diff --git a/admin/AGENTS.md b/admin/AGENTS.md index 103af38e..899cfd9f 100644 --- a/admin/AGENTS.md +++ b/admin/AGENTS.md @@ -194,12 +194,16 @@ When adding a new entity, build the files in this order, matching the existing f - Tables use `public static function table(Table $table): Table` with `->columns([])`, `->filters([])`, `->recordActions([...])`, `->toolbarActions([...])`. - Actions come from the `Filament\Actions\` namespace (`EditAction`, `CreateAction`, `DeleteAction`, `BulkActionGroup`, `DeleteBulkAction`). - Import individual components (`Filament\Forms\Components\TextInput`, `Filament\Tables\Columns\TextColumn`), not the parent `Forms`/`Tables` namespaces. +- For reactive `->options()` or `->live()` closures that receive `Get $get`, import `Filament\Schemas\Components\Utilities\Get` (NOT `Filament\Forms\Get` - that will throw a type error at runtime). - Page classes set `protected static string $resource = {Name}Resource::class;`. List pages expose `CreateAction::make()` in `getHeaderActions()`. Create and Edit pages redirect with `getRedirectUrl(): string` returning `$this->getResource()::getUrl('index')`. - Rich text uses `AmidEsfahani\FilamentTinyEditor\TinyEditor`. - Select fields backed by an enum use `->options(SomeEnum::options())` and `->default(SomeEnum::CASE->value)`. - Table text columns that can be long (headings, relation labels) use `->limit(30)->wrap()`. - Enum-backed table columns render via `->getStateUsing(fn ($record) => $record->field->label())` and `->color(fn ($record) => $record->field->color())`. - Manage many-to-many pivots with a relationship multi-select: `Select::make('products')->relationship('products', 'heading')->multiple()->searchable()->preload()` (see `CouponResource`). No separate resource for pure scoping pivots. +- Control navigation order within a group with `protected static ?int $navigationSort = 1;` (lower = higher in the list). +- Add an explanatory subheading to a list page with `protected ?string $subheading = 'Description here.';` on the `ListRecords` page class. +- Add a tooltip to a form field with `->hintIcon('heroicon-o-information-circle')->hintIconTooltip('Explanation...')`. Use this instead of always-visible `->hint()` when the text is long. ## Models @@ -218,6 +222,7 @@ When adding a new entity, build the files in this order, matching the existing f ## Migrations +- **Development rule**: NEVER create a new migration to add a column to a table that already has a migration in this branch. Update the existing `create_*` migration directly to keep history clean. After editing, run `php artisan migrate:fresh` inside the container to re-apply everything from scratch. Only create additive migrations when the table already exists in production. - Anonymous class style: `return new class extends Migration`. - Use `$table->foreignIdFor(Model::class)` for foreign keys (add `->nullable()` when optional). Chain `->constrained()->cascadeOnDelete()` / `->nullOnDelete()` / `->restrictOnDelete()` to add the real FK constraint with its delete rule. - For a second FK to the same table, use a named column: `$table->foreignId('user_creator_id')->nullable()->constrained('users')->nullOnDelete()` (see `coupons`). @@ -255,5 +260,6 @@ When adding a new entity, build the files in this order, matching the existing f - The implementation status and priority order live in `IMPLEMENTATION.md`. When an entity is finished or the plan changes, update it. - The full schema reference is `ShoFlow db doc.md`. Treat it as the source of truth for table columns and relationships. +- Cache keys that have been identified but not yet implemented are tracked in `CACHE.md`. When adding a model whose data is likely to be cached (products, categories, banners, menus, etc.), check `CACHE.md` and add or update the relevant rows. - Keep this "ShopFlow Admin Conventions" section updated whenever a new reusable pattern is introduced. diff --git a/admin/CACHE.md b/admin/CACHE.md new file mode 100644 index 00000000..adc39e4b --- /dev/null +++ b/admin/CACHE.md @@ -0,0 +1,37 @@ +# ShopFlow Cache Register + +Tracks cache keys that have been identified but are not yet implemented. +When a cache is implemented, move it to the **Implemented** section and record the key, driver, TTL, and where it is invalidated. + +Legend: `[ ]` not started, `[x]` implemented. + +> **Note:** `variety_counts` on `products` is NOT a cache. It is a denormalized DB column kept in sync by `Variety::booted()` (saved/deleted events calling `syncProductVarietyCount()`). No cache entry needed for it. + +--- + +## Pending (identified, not implemented) + +| # | Cache key / pattern | What it caches | Suggested TTL | Invalidated when | +|---|---------------------|----------------|---------------|-----------------| +| 1 | `categories.tree` | Full nested category tree | 1 hour | Category saved / deleted | +| 2 | `banners.{position}` | Published banners for a given position | 30 min | Banner saved / deleted | +| 3 | `menus.{slug}` | Rendered menu tree for a given slug | 1 hour | Menu or MenuItem saved / deleted | +| 4 | `attributes.group.{group_id}` | Attributes belonging to a group | 1 hour | Attribute saved / deleted | +| 5 | `products.slug.{slug}` | Single product record (with images, attributes, brand, category) | 30 min | Product saved / deleted | +| 6 | `products.category.{category_id}` | Published products list for a category page | 15 min | Product saved / deleted | +| 7 | `varieties.product.{product_id}` | All varieties for a product (price, inventory, status) | 15 min | Variety saved / deleted | + +--- + +## Implemented + +_None yet._ + +--- + +## Rules + +- Cache keys use dot notation and include any dynamic segment as `{placeholder}`. +- Tag caches by entity name so bulk-invalidation is possible (e.g. `Cache::tags(['banners'])->flush()`). +- Invalidation logic goes in the model's `booted()` method or a dedicated observer, never in controllers or resources. +- Document every new key here before or when implementing it. diff --git a/admin/IMPLEMENTATION.md b/admin/IMPLEMENTATION.md index 9b22c0e3..0fc77b1b 100644 --- a/admin/IMPLEMENTATION.md +++ b/admin/IMPLEMENTATION.md @@ -24,17 +24,23 @@ Catalog layer and platform basics. - [x] Discounts (auto-applied price rules per variety) - [x] Coupons (+ `coupon_product`, `coupon_variety`, `category_coupon` scoping pivots) - [x] Images (polymorphic, used via uploads - no standalone resource by design) +- [x] Banners (polymorphic images via `images` table) - [~] Addresses (model only, no resource yet) Sample data for manual admin testing lives in `TestSeeder` (`php artisan db:seed --class=TestSeeder`); `DatabaseSeeder` holds only necessary data. +Cross-cutting improvements landed: +- Navigation groups reorganized: Catalog / Promotions / Attribute / Content / Address. +- `CACHE.md` added to track identified-but-not-implemented cache keys. + ## Phase 0 - Finish current branch (`implement_variety`) Done. Variety has model, migration, factory, resource (+ pages), tests, and `variety_counts` auto-sync. - [x] Fix `VarietyResource` table: `product.heading` column (was `product.title` with `->numeric()` on a string) -- [ ] Variety extensions (`warehouse_id`, `guarantee_name_id`, `attribute_id`, `variety_attribute`, `variety_serials`, `variety_details`) - deferred to Phase 3, they need Warehouses / Guarantees first -- [ ] Attribute `as_filter` / `required` flags into the product/category flow (open `// todo` in the attribute-group-category migration) - moved to its own branch; it is an attribute/category feature, not variety +- [x] `attribute_id` FK on varieties - links each variety to one attribute; auto-populates `attribute_value` and `color` from the attribute on save +- [ ] Variety extensions (`warehouse_id`, `guarantee_name_id`, `variety_serials`, `variety_details`) - deferred to Phase 3, they need Warehouses / Guarantees first +- [x] Attribute `required` flag enforced in `ProductResource`: if a category has required attribute groups, saving a product without them shows a danger notification and skips the sync ## Phase 1 - Pricing & promotions (recommended next) @@ -42,12 +48,16 @@ Builds on Products/Varieties; prerequisite for Orders. - [x] Discounts (auto-applied price rules per variety) - [x] Coupons (+ `coupon_product`, `coupon_variety`, `category_coupon` scoping pivots) +- [ ] Cron jobs for Discounts & Coupons: + - Auto-expire discounts when `ended_at` is passed (set status or filter in queries) + - Auto-expire coupons when `expired_at` is passed + - Optionally: reset `sold` / `total_used` counters on a schedule if needed ## Phase 2 - CMS / content (independent quick wins) Depend mostly on Images only. -- [ ] Banners +- [x] Banners - [ ] Sliders + Slides - [ ] Menus + Menu Items - [ ] Pages diff --git a/admin/ShoFlow db doc.md b/admin/ShoFlow db doc.md index ac617d4f..9a1cf06b 100644 --- a/admin/ShoFlow db doc.md +++ b/admin/ShoFlow db doc.md @@ -94,11 +94,10 @@ Used to store banners. * `position` specifies the advertisement location, which is an arbitrary name to retrieve the corresponding record from the database. * `heading` specifies the banner item title or the alt text of the image. * `url` specifies the item link, which redirects when the image or title is clicked. -* `image_id1` specifies the item's image. -* `image_id2` specifies the item's image. -* `image_id3` specifies the item's image. * `sort` specifies the item order. -* `status` specifies the publication and draft status of the banner. +* `status` stores the publication status of the banner, with values 10 for deleted, 20 for published, and 30 for draft. + +Images are attached through the polymorphic `images` table (`imageable_type` / `imageable_id`), so a banner can have one or more images instead of fixed `image_id` columns. The featured image is the one with `is_featured` set to true. # Brand\_Category @@ -374,7 +373,7 @@ In short: discounts are automatic, per-variety, condition-based price rules. The * Stores images. * `path`: Stores the relative path of the images, the absolute path can be specified using the `static_asset` function relative to the CDN. -* `imageable_type:` used for polymorphic relation Attributes Brand Categories +* `imageable_type:` used for polymorphic relation Attributes, Brand, Categories, Products, Banners * `imageable_id:` used for polymorphic relation * `created_at`: Specifies the record creation date. @@ -818,9 +817,10 @@ For storing user permissions and removing role-based permissions. Contains product variations entered by the seller on the site. This table creates a record depending on the selected variation and price. -* `product_id`: Indicates which product this variety belongs to. Foreign key to `products`; cascades on product delete. -* `attribute_value`: Free-text value of the selected variation (e.g., "Red", "8GB"). Currently not linked to the `attributes` table. -* `color`: Optional color value for the variation. +* `product_id`: Indicates which product this variety belongs to. Foreign key to `products`; cascades on product delete. +* `attribute_id`: Links to the `attributes` table - the specific attribute that defines this variety (e.g. "Red", "XL"). Nullable FK; set to null when the attribute is deleted. When set, `attribute_value` and `color` are auto-populated from the linked attribute via model saving event. +* `attribute_value`: Display label for the variation, auto-populated from `attribute.value` when `attribute_id` is set. Can also be set manually when no attribute is linked. +* `color`: Hex or name color for the variation, auto-populated from `attribute.color` when `attribute_id` is set. * `price` * `sale_price` * `inventory`: Number of ShopFlow inventory, the default value is 0\. diff --git a/admin/app/Enums/BannerStatusEnum.php b/admin/app/Enums/BannerStatusEnum.php new file mode 100644 index 00000000..9eb7dfb0 --- /dev/null +++ b/admin/app/Enums/BannerStatusEnum.php @@ -0,0 +1,34 @@ + 'Deleted', + self::PUBLISHED => 'Published', + self::DRAFT => 'Draft', + }; + } + + public function color(): string + { + return match ($this) { + self::DELETED => 'danger', + self::PUBLISHED => 'success', + self::DRAFT => 'warning', + }; + } +} diff --git a/admin/app/Filament/Resources/AncestorResource.php b/admin/app/Filament/Resources/AncestorResource.php index 8e9650b4..375e9ab4 100644 --- a/admin/app/Filament/Resources/AncestorResource.php +++ b/admin/app/Filament/Resources/AncestorResource.php @@ -23,6 +23,8 @@ class AncestorResource extends Resource protected static string | \UnitEnum | null $navigationGroup = 'Attribute'; + protected static ?int $navigationSort = 1; + protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack'; public static function form(Schema $schema): Schema diff --git a/admin/app/Filament/Resources/AttributeGroupCategoryResource.php b/admin/app/Filament/Resources/AttributeGroupCategoryResource.php index bfa7a91e..71221c95 100644 --- a/admin/app/Filament/Resources/AttributeGroupCategoryResource.php +++ b/admin/app/Filament/Resources/AttributeGroupCategoryResource.php @@ -25,6 +25,8 @@ class AttributeGroupCategoryResource extends Resource protected static string | \UnitEnum | null $navigationGroup = 'Attribute'; + protected static ?int $navigationSort = 3; + protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack'; public static function form(Schema $schema): Schema @@ -33,13 +35,21 @@ public static function form(Schema $schema): Schema ->components([ Select::make('attribute_group_id') ->relationship('attributeGroup', 'name') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The attribute group to attach to the category (e.g. "Color", "Size").') ->required(), Select::make('category_id') ->relationship('category', 'title') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The category this attribute group will be available for.') ->required(), Toggle::make('as_filter') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When enabled, this group appears as a filter panel on the category\'s product listing page.') ->required(), Toggle::make('required') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When enabled, admins must select at least one attribute from this group before saving a product in this category.') ->required(), ]); } diff --git a/admin/app/Filament/Resources/AttributeGroupCategoryResource/Pages/ListAttributeGroupCategories.php b/admin/app/Filament/Resources/AttributeGroupCategoryResource/Pages/ListAttributeGroupCategories.php index cef32cfa..f74ed450 100644 --- a/admin/app/Filament/Resources/AttributeGroupCategoryResource/Pages/ListAttributeGroupCategories.php +++ b/admin/app/Filament/Resources/AttributeGroupCategoryResource/Pages/ListAttributeGroupCategories.php @@ -12,6 +12,8 @@ class ListAttributeGroupCategories extends ListRecords { protected static string $resource = AttributeGroupCategoryResource::class; + protected ?string $subheading = 'Links an attribute group to a category. This tells the system which attributes are relevant for products in that category. Use "As Filter" to show the group as a filter panel on the category page, and "Required" to force admins to pick an attribute from this group when creating a product in that category.'; + protected function getHeaderActions(): array { return [ diff --git a/admin/app/Filament/Resources/AttributeGroupResource.php b/admin/app/Filament/Resources/AttributeGroupResource.php index 545d2b71..4c3a4e01 100644 --- a/admin/app/Filament/Resources/AttributeGroupResource.php +++ b/admin/app/Filament/Resources/AttributeGroupResource.php @@ -24,6 +24,8 @@ class AttributeGroupResource extends Resource protected static string | \UnitEnum | null $navigationGroup = 'Attribute'; + protected static ?int $navigationSort = 2; + protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack'; public static function form(Schema $schema): Schema @@ -32,11 +34,15 @@ public static function form(Schema $schema): Schema ->components([ Select::make('ancestor_id') ->relationship('ancestor', 'name') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Groups attribute groups under a common ancestor (e.g. "Physical", "Technical"). Create ancestors first.') ->required(), TextInput::make('name') ->required() ->maxLength(255), TextInput::make('label') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The label shown to the customer on the frontend (e.g. "Choose a color"). If empty, the name is used.') ->maxLength(255), TextInput::make('order') ->numeric(), diff --git a/admin/app/Filament/Resources/AttributeGroupResource/Pages/ListAttributeGroups.php b/admin/app/Filament/Resources/AttributeGroupResource/Pages/ListAttributeGroups.php index 3ec1fbea..b4d8271e 100644 --- a/admin/app/Filament/Resources/AttributeGroupResource/Pages/ListAttributeGroups.php +++ b/admin/app/Filament/Resources/AttributeGroupResource/Pages/ListAttributeGroups.php @@ -12,6 +12,8 @@ class ListAttributeGroups extends ListRecords { protected static string $resource = AttributeGroupResource::class; + protected ?string $subheading = 'An attribute group is a set of attributes that share a common property (e.g. "Color" contains Red, Blue, Green). Each group belongs to an ancestor and is linked to categories via Attribute Group Categories. Products then use a group to define their variety differentiator.'; + protected function getHeaderActions(): array { return [ diff --git a/admin/app/Filament/Resources/AttributeResource.php b/admin/app/Filament/Resources/AttributeResource.php index c19dbce4..e35f7578 100644 --- a/admin/app/Filament/Resources/AttributeResource.php +++ b/admin/app/Filament/Resources/AttributeResource.php @@ -24,6 +24,8 @@ class AttributeResource extends Resource protected static string | \UnitEnum | null $navigationGroup = 'Attribute'; + protected static ?int $navigationSort = 4; + protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack'; public static function form(Schema $schema): Schema @@ -32,11 +34,17 @@ public static function form(Schema $schema): Schema ->components([ Select::make('attribute_group_id') ->relationship('attributeGroup', 'name') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The group this attribute belongs to (e.g. "Color", "Size"). Create attribute groups first.') ->required(), TextInput::make('value') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The display value of this attribute (e.g. "Red", "XL"). Shown to customers and used as the variety label.') ->required() ->maxLength(255), TextInput::make('color') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Optional hex or color name (e.g. #ff0000). Auto-copied to the variety\'s color when this attribute is selected.') ->nullable() ->maxLength(31), ]); diff --git a/admin/app/Filament/Resources/AttributeResource/Pages/ListAttributes.php b/admin/app/Filament/Resources/AttributeResource/Pages/ListAttributes.php index e146875f..0e568f2d 100644 --- a/admin/app/Filament/Resources/AttributeResource/Pages/ListAttributes.php +++ b/admin/app/Filament/Resources/AttributeResource/Pages/ListAttributes.php @@ -12,6 +12,8 @@ class ListAttributes extends ListRecords { protected static string $resource = AttributeResource::class; + protected ?string $subheading = 'Attributes are the individual values inside an attribute group (e.g. "Red", "Blue", "Green" inside "Color"). Each attribute can have an optional color swatch. When linked to a variety via attribute_id, the variety\'s value and color are auto-filled from the attribute.'; + protected function getHeaderActions(): array { return [ diff --git a/admin/app/Filament/Resources/BannerResource.php b/admin/app/Filament/Resources/BannerResource.php new file mode 100644 index 00000000..818b8a9c --- /dev/null +++ b/admin/app/Filament/Resources/BannerResource.php @@ -0,0 +1,130 @@ +components([ + TextInput::make('position') + ->required() + ->maxLength(255), + TextInput::make('heading') + ->required() + ->maxLength(255), + TextInput::make('url') + ->url() + ->maxLength(255), + TextInput::make('sort') + ->numeric() + ->nullable(), + Select::make('status') + ->required() + ->options(BannerStatusEnum::options()) + ->default(BannerStatusEnum::PUBLISHED->value), + Repeater::make('images') + ->relationship('images') + ->schema([ + FileUpload::make('path') + ->nullable() + ->columns(1) + ->columnSpanFull(), + Toggle::make('is_featured') + ->label('Featured Image') + ->reactive(), + TextInput::make('alt_text') + ->label('Alt Text'), + ]) + ->columnSpanFull(), + ]); + } + + public static function table(Table $table): Table + { + return $table + ->columns([ + TextColumn::make('position') + ->searchable(), + TextColumn::make('heading') + ->limit(30) + ->wrap() + ->searchable(), + ImageColumn::make('featuredImage.path') + ->label('Featured') + ->square(), + TextColumn::make('url') + ->limit(30), + TextColumn::make('sort') + ->numeric() + ->sortable(), + TextColumn::make('status') + ->getStateUsing(fn (Banner $record): string => $record->status->label()) + ->color(fn (Banner $record): string => $record->status->color()) + ->sortable(), + TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->recordActions([ + EditAction::make(), + ]) + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), + ]), + ]); + } + + public static function getRelations(): array + { + return [ + // + ]; + } + + public static function getPages(): array + { + return [ + 'index' => ListBanners::route('/'), + 'create' => CreateBanner::route('/create'), + 'edit' => EditBanner::route('/{record}/edit'), + ]; + } +} diff --git a/admin/app/Filament/Resources/BannerResource/Pages/CreateBanner.php b/admin/app/Filament/Resources/BannerResource/Pages/CreateBanner.php new file mode 100644 index 00000000..e0bc1ce9 --- /dev/null +++ b/admin/app/Filament/Resources/BannerResource/Pages/CreateBanner.php @@ -0,0 +1,13 @@ +getResource()::getUrl('index'); + } + + protected function getHeaderActions(): array + { + return [ + DeleteAction::make(), + ]; + } +} diff --git a/admin/app/Filament/Resources/BannerResource/Pages/ListBanners.php b/admin/app/Filament/Resources/BannerResource/Pages/ListBanners.php new file mode 100644 index 00000000..97fd4c94 --- /dev/null +++ b/admin/app/Filament/Resources/BannerResource/Pages/ListBanners.php @@ -0,0 +1,21 @@ +components([ TextInput::make('name') ->required() - ->maxLength(255), + ->maxLength(255) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Internal name for this coupon. Not shown to customers.'), TextInput::make('code') ->required() ->maxLength(255) - ->unique(Coupon::class, 'code', ignoreRecord: true), - Toggle::make('is_percent'), + ->unique(Coupon::class, 'code', ignoreRecord: true) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The code the customer enters at checkout. Must be unique.'), + Toggle::make('is_percent') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When on, the amount is a percentage (e.g. 20 = 20% off). When off, it is a fixed amount in Tomans.'), TextInput::make('amount') ->required() - ->numeric(), + ->numeric() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Discount value. Interpreted as percent or fixed amount based on the toggle above.'), TextInput::make('min_price') ->numeric() - ->nullable(), + ->nullable() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Minimum cart total required to use this coupon. Leave empty for no minimum.'), TextInput::make('max_discount') ->numeric() - ->nullable(), + ->nullable() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Maximum discount amount even if the percentage would give more. Leave empty for no cap.'), TextInput::make('total_used') ->required() ->numeric() - ->default(0), + ->default(0) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Total times this coupon has been used. Usually managed automatically.'), TextInput::make('total_uses') ->numeric() - ->nullable(), - Toggle::make('shipping'), + ->nullable() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Maximum total uses across all customers. Leave empty for unlimited.'), + Toggle::make('shipping') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When on, this coupon also grants free shipping.'), Select::make('status') ->required() ->options(CouponStatusEnum::options()) @@ -67,39 +86,61 @@ public static function form(Schema $schema): Schema Select::make('is_for') ->required() ->options(CouponForEnum::options()) - ->default(CouponForEnum::EVERYONE->value), - DateTimePicker::make('started_at'), - DateTimePicker::make('expired_at'), + ->default(CouponForEnum::EVERYONE->value) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Restricts who can use this coupon: everyone, registered users only, or partners only.'), + DateTimePicker::make('started_at') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When the coupon becomes valid. Leave empty to activate immediately.'), + DateTimePicker::make('expired_at') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When the coupon expires. Leave empty for no expiry.'), Select::make('user_id') ->relationship('user', 'email') ->searchable() ->preload() - ->native(false), + ->native(false) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Lock this coupon to one specific user. Leave empty for any user.'), Select::make('user_creator_id') ->relationship('userCreator', 'email') ->searchable() ->preload() - ->native(false), + ->native(false) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The admin user who created this coupon.'), Select::make('seller_creator_id') ->relationship('sellerCreator', 'email') ->searchable() ->preload() - ->native(false), + ->native(false) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The seller who created this coupon, if applicable.'), Select::make('products') ->relationship('products', 'heading') ->multiple() ->searchable() - ->preload(), + ->preload() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Scope this coupon to specific products only. Leave empty to apply to all products.'), Select::make('varieties') ->relationship('varieties', 'attribute_value') + ->getOptionLabelFromRecordUsing(fn (Variety $record): string => implode(' — ', array_filter([ + $record->product->heading, + $record->attribute_value ?? ('Variety #' . $record->id), + ]))) ->multiple() ->searchable() - ->preload(), + ->preload() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Scope this coupon to specific varieties only. Leave empty to apply to all varieties.'), Select::make('categories') ->relationship('categories', 'heading') ->multiple() ->searchable() - ->preload(), + ->preload() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Scope this coupon to specific categories only. Leave empty to apply to all categories.'), ]); } diff --git a/admin/app/Filament/Resources/CouponResource/Pages/ListCoupons.php b/admin/app/Filament/Resources/CouponResource/Pages/ListCoupons.php index 472221a7..fdff5e5f 100644 --- a/admin/app/Filament/Resources/CouponResource/Pages/ListCoupons.php +++ b/admin/app/Filament/Resources/CouponResource/Pages/ListCoupons.php @@ -12,6 +12,8 @@ class ListCoupons extends ListRecords { protected static string $resource = CouponResource::class; + protected ?string $subheading = 'Coupons are manual discount codes entered by the customer at checkout. Unlike auto-applied discounts, a coupon requires a code. You can limit a coupon by minimum cart price, maximum discount cap, total usage, audience, and time window. Optionally scope it to specific products, varieties, or categories.'; + protected function getHeaderActions(): array { return [ diff --git a/admin/app/Filament/Resources/DiscountResource.php b/admin/app/Filament/Resources/DiscountResource.php index 040eceef..4f613252 100644 --- a/admin/app/Filament/Resources/DiscountResource.php +++ b/admin/app/Filament/Resources/DiscountResource.php @@ -9,6 +9,7 @@ use App\Filament\Resources\DiscountResource\Pages\EditDiscount; use App\Filament\Resources\DiscountResource\Pages\ListDiscounts; use App\Models\Discount; +use App\Models\Variety; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteBulkAction; use Filament\Actions\EditAction; @@ -26,7 +27,7 @@ class DiscountResource extends Resource { protected static ?string $model = Discount::class; - protected static string | \UnitEnum | null $navigationGroup = 'Product'; + protected static string | \UnitEnum | null $navigationGroup = 'Promotions'; protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-receipt-percent'; @@ -35,7 +36,13 @@ public static function form(Schema $schema): Schema return $schema ->components([ Select::make('variety_id') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The specific variety this discount applies to. Label shows: Product — Variety.') ->relationship('variety', 'attribute_value') + ->getOptionLabelFromRecordUsing(fn (Variety $record): string => implode(' — ', array_filter([ + $record->product->heading, + $record->attribute_value ?? ('Variety #' . $record->id), + ]))) ->searchable() ->preload() ->native(false) @@ -43,31 +50,51 @@ public static function form(Schema $schema): Schema TextInput::make('quantity') ->required() ->numeric() - ->default(1), + ->default(1) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Minimum quantity the customer must purchase for this discount to apply.'), TextInput::make('priority') ->required() ->numeric() - ->default(0), - Toggle::make('is_percent'), + ->default(0) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When multiple discounts qualify, the one with the highest priority wins.'), + Toggle::make('is_percent') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When on, the amount is treated as a percentage (e.g. 20 = 20% off). When off, it is a fixed amount in Tomans.'), TextInput::make('amount') ->required() - ->numeric(), - DateTimePicker::make('started_at'), - DateTimePicker::make('ended_at'), + ->numeric() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The discount value. Interpreted as percent or fixed amount based on the toggle above.'), + DateTimePicker::make('started_at') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When the discount becomes active. Leave empty to start immediately.'), + DateTimePicker::make('ended_at') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When the discount expires. Leave empty for no expiry.'), TextInput::make('sold') ->required() ->numeric() - ->default(0), + ->default(0) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Number of times this discount has already been used. Usually managed automatically.'), TextInput::make('max_sell') ->numeric() - ->nullable(), + ->nullable() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Total usage cap across all customers. Leave empty for unlimited.'), TextInput::make('max_sell_by_user') ->numeric() - ->nullable(), + ->nullable() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Maximum times a single user can use this discount. Leave empty for unlimited.'), Select::make('is_for') ->required() ->options(DiscountForEnum::options()) - ->default(DiscountForEnum::EVERYONE->value), + ->default(DiscountForEnum::EVERYONE->value) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Restricts who can benefit from this discount: everyone, registered users only, or partners only.'), ]); } diff --git a/admin/app/Filament/Resources/DiscountResource/Pages/ListDiscounts.php b/admin/app/Filament/Resources/DiscountResource/Pages/ListDiscounts.php index 5a180f5a..f43ce718 100644 --- a/admin/app/Filament/Resources/DiscountResource/Pages/ListDiscounts.php +++ b/admin/app/Filament/Resources/DiscountResource/Pages/ListDiscounts.php @@ -12,6 +12,8 @@ class ListDiscounts extends ListRecords { protected static string $resource = DiscountResource::class; + protected ?string $subheading = 'Discounts are automatic price rules applied to a specific variety when their conditions are met — no code needed. Each discount targets one variety and can be limited by quantity, time window, audience, and usage cap. When an order qualifies, the discount amount is stored on the order for historical reference.'; + protected function getHeaderActions(): array { return [ diff --git a/admin/app/Filament/Resources/ProductResource.php b/admin/app/Filament/Resources/ProductResource.php index 3ea8fb0d..a1e85c89 100644 --- a/admin/app/Filament/Resources/ProductResource.php +++ b/admin/app/Filament/Resources/ProductResource.php @@ -11,6 +11,9 @@ use App\Filament\Resources\ProductResource\Pages\EditProduct; use App\Filament\Resources\ProductResource\Pages\ListProducts; use App\Models\Attribute; +use App\Models\Attribute as AttributeModel; +use App\Models\AttributeGroup; +use App\Models\AttributeGroupCategory; use App\Models\Product; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteBulkAction; @@ -23,13 +26,14 @@ use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; use Filament\Resources\Resource; -use Filament\Schemas\Components\Fieldset; +use Filament\Schemas\Components\Utilities\Get; use Filament\Schemas\Components\Utilities\Set; use Filament\Schemas\Schema; use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\ImageColumn; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; +use Illuminate\Support\Collection; use Illuminate\Support\Str; use Livewire\Component; @@ -37,7 +41,7 @@ class ProductResource extends Resource { protected static ?string $model = Product::class; - protected static string | \UnitEnum | null $navigationGroup = 'Product'; + protected static string | \UnitEnum | null $navigationGroup = 'Catalog'; protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-shopping-bag'; @@ -59,22 +63,34 @@ public static function form(Schema $schema): Schema ->dehydrated() ->required() ->maxLength(255) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Auto-generated from the heading on create. Cannot be changed after creation.') ->unique(Product::class, 'slug', ignoreRecord: true), TextInput::make('price') ->required() ->numeric() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Base price shown when no variety is selected.') ->prefix('تومان'), TinyEditor::make('content') ->columnSpanFull() ->required(), TextInput::make('title') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('SEO tag. If empty, the heading is used.') ->maxLength(255), Textarea::make('description') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('SEO meta description shown in search results.') ->maxLength(255) ->columnSpanFull(), Toggle::make('no_index') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When on, adds a noindex meta tag so search engines skip this page.') ->required(), TextInput::make('canonical') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Canonical URL to prevent duplicate content. Leave empty unless this product mirrors another page.') ->maxLength(255), Repeater::make('images') ->relationship('images') @@ -95,13 +111,19 @@ public static function form(Schema $schema): Schema Select::make('attribute_group_id') ->relationship('attributeGroup', 'name') + ->searchable() ->native(false) - ->preload(), + ->live() + ->preload() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Defines which attribute group differentiates the varieties of this product (e.g. "Color"). Changing this reloads the attribute options in the variety rows below.'), Select::make('category_id') ->relationship('category', 'heading') ->required() ->native(false) - ->preload(), + ->preload() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The category this product belongs to. Required attribute groups for this category will be enforced on save.'), Select::make('brand_id') ->relationship('brand', 'heading') ->required() @@ -110,20 +132,30 @@ public static function form(Schema $schema): Schema TextInput::make('minimum') ->required() ->numeric() - ->default(1), + ->default(1) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Minimum quantity a customer can add to their cart.'), TextInput::make('maximum') - ->numeric(), + ->numeric() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Maximum quantity per order. Leave empty for no limit.'), TextInput::make('step') ->required() ->numeric() - ->default(1), + ->default(1) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Quantity increment step (e.g. 2 means customers can add 2, 4, 6...).'), TextInput::make('profit_percent') ->required() ->numeric() ->suffix('%') - ->default(0), + ->default(0) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('ShopFlow\'s commission percentage from each sale of this product.'), Repeater::make('attributes') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Product-level attributes that describe this product (e.g. material, dimensions). These are not varieties — they are shared across all varieties. Mark an attribute as Highlight to feature it prominently on the product page.') ->schema([ Select::make('attribute_id') ->label('Attribute') @@ -138,7 +170,6 @@ public static function form(Schema $schema): Schema Checkbox::make('pivot.is_highlight') ->label('Highlight'), ]) - ->dehydrated(false) ->afterStateHydrated(function (mixed $state, callable $set, Component $livewire): void { if (isset($livewire->record) && $livewire->record) { $attributes = $livewire->record->attributes()->get(); @@ -192,35 +223,48 @@ public static function form(Schema $schema): Schema ->required() ->numeric() ->default(0), - Fieldset::make('Variety Details') + Repeater::make('varieties') + ->label('Variety Details') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Each row is a variety of this product. The attribute options depend on the Attribute Group selected above — set that first.') + ->relationship('varieties') + ->columnSpanFull() ->schema([ - Repeater::make('varieties') - ->relationship('varieties') - ->schema([ - TextInput::make('attribute_value') - ->maxLength(255), - TextInput::make('color') - ->maxLength(255), - TextInput::make('price') - ->required() - ->numeric(), - TextInput::make('sale_price') - ->numeric() - ->nullable(), - TextInput::make('inventory') - ->required() - ->numeric() - ->default(0), - Toggle::make('has_stock') - ->default(true) - ->required(), - Select::make('status') - ->required() - ->options(VarietyStatusEnum::options()) - ->default(VarietyStatusEnum::PUBLISHED->value), - ]) - ->columnSpanFull(), - ]), + Select::make('attribute_id') + ->label('Attribute') + ->options(function (Get $get): array { + $groupId = $get('../../attribute_group_id'); + if (! $groupId) { + return []; + } + + return AttributeModel::query() + ->where('attribute_group_id', $groupId) + ->pluck('value', 'id') + ->toArray(); + }) + ->searchable() + ->nullable() + ->helperText('Selecting an attribute auto-fills the value and color.'), + TextInput::make('price') + ->required() + ->numeric(), + TextInput::make('sale_price') + ->numeric() + ->nullable(), + TextInput::make('inventory') + ->required() + ->numeric() + ->default(0), + Toggle::make('has_stock') + ->default(true) + ->required(), + Select::make('status') + ->required() + ->options(VarietyStatusEnum::options()) + ->default(VarietyStatusEnum::PUBLISHED->value), + ]) + ->columnSpanFull(), ]); } @@ -310,6 +354,38 @@ public static function table(Table $table): Table ]); } + /** + * Returns names of required attribute groups that have no selected attribute. + * + * @param array<mixed> $attributeState + * @return Collection<int, string> + */ + public static function missingRequiredGroups(array $attributeState, int $categoryId): Collection + { + $selectedAttributeIds = collect($attributeState) + ->filter(fn (array $item): bool => ! empty($item['attribute_id'])) + ->pluck('attribute_id') + ->map(fn (mixed $id): int => (int) $id) + ->all(); + + $requiredGroupIds = AttributeGroupCategory::query() + ->where('category_id', $categoryId) + ->where('required', true) + ->pluck('attribute_group_id'); + + if ($requiredGroupIds->isEmpty()) { + return collect(); + } + + $selectedGroupIds = Attribute::query() + ->whereIn('id', $selectedAttributeIds) + ->pluck('attribute_group_id'); + + return AttributeGroup::query() + ->whereIn('id', $requiredGroupIds->diff($selectedGroupIds)) + ->pluck('name'); + } + public static function getRelations(): array { return [ diff --git a/admin/app/Filament/Resources/ProductResource/Pages/CreateProduct.php b/admin/app/Filament/Resources/ProductResource/Pages/CreateProduct.php index 2aae6a31..485b184d 100644 --- a/admin/app/Filament/Resources/ProductResource/Pages/CreateProduct.php +++ b/admin/app/Filament/Resources/ProductResource/Pages/CreateProduct.php @@ -5,9 +5,41 @@ namespace App\Filament\Resources\ProductResource\Pages; use App\Filament\Resources\ProductResource; +use Filament\Notifications\Notification; use Filament\Resources\Pages\CreateRecord; class CreateProduct extends CreateRecord { protected static string $resource = ProductResource::class; + + protected function beforeCreate(): void + { + $categoryId = (int) ($this->data['category_id'] ?? 0); + + if ($categoryId === 0) { + return; + } + + $missing = ProductResource::missingRequiredGroups( + $this->data['attributes'] ?? [], + $categoryId, + ); + + if ($missing->isNotEmpty()) { + Notification::make() + ->danger() + ->title('Required attribute groups missing') + ->body('Add at least one attribute from: ' . $missing->join(', ')) + ->send(); + + $this->halt(); + } + } + + protected function mutateFormDataBeforeCreate(array $data): array + { + unset($data['attributes']); + + return $data; + } } diff --git a/admin/app/Filament/Resources/ProductResource/Pages/EditProduct.php b/admin/app/Filament/Resources/ProductResource/Pages/EditProduct.php index 36d920a3..3476114a 100644 --- a/admin/app/Filament/Resources/ProductResource/Pages/EditProduct.php +++ b/admin/app/Filament/Resources/ProductResource/Pages/EditProduct.php @@ -6,12 +6,44 @@ use App\Filament\Resources\ProductResource; use Filament\Actions\DeleteAction; +use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; class EditProduct extends EditRecord { protected static string $resource = ProductResource::class; + protected function beforeSave(): void + { + $categoryId = (int) ($this->data['category_id'] ?? 0); + + if ($categoryId === 0) { + return; + } + + $missing = ProductResource::missingRequiredGroups( + $this->data['attributes'] ?? [], + $categoryId, + ); + + if ($missing->isNotEmpty()) { + Notification::make() + ->danger() + ->title('Required attribute groups missing') + ->body('Add at least one attribute from: ' . $missing->join(', ')) + ->send(); + + $this->halt(); + } + } + + protected function mutateFormDataBeforeSave(array $data): array + { + unset($data['attributes']); + + return $data; + } + protected function getHeaderActions(): array { return [ diff --git a/admin/app/Filament/Resources/ProductResource/Pages/ListProducts.php b/admin/app/Filament/Resources/ProductResource/Pages/ListProducts.php index 5e10233d..04523179 100644 --- a/admin/app/Filament/Resources/ProductResource/Pages/ListProducts.php +++ b/admin/app/Filament/Resources/ProductResource/Pages/ListProducts.php @@ -12,6 +12,8 @@ class ListProducts extends ListRecords { protected static string $resource = ProductResource::class; + protected ?string $subheading = 'Products are the items sold on ShopFlow. Each product belongs to a category and brand, has a base price, and can have multiple varieties (e.g. different colors or sizes) each with their own price and inventory. Set an attribute group to define which attribute type differentiates the varieties. Product-level attributes describe shared specifications shown on the product page.'; + protected function getHeaderActions(): array { return [ diff --git a/admin/app/Filament/Resources/VarietyResource.php b/admin/app/Filament/Resources/VarietyResource.php index c35bcc25..efa48a8d 100644 --- a/admin/app/Filament/Resources/VarietyResource.php +++ b/admin/app/Filament/Resources/VarietyResource.php @@ -8,6 +8,8 @@ use App\Filament\Resources\VarietyResource\Pages\CreateVariety; use App\Filament\Resources\VarietyResource\Pages\EditVariety; use App\Filament\Resources\VarietyResource\Pages\ListVarieties; +use App\Models\Attribute; +use App\Models\Product; use App\Models\Variety; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteBulkAction; @@ -16,6 +18,7 @@ use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; use Filament\Resources\Resource; +use Filament\Schemas\Components\Utilities\Get; use Filament\Schemas\Schema; use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\TextColumn; @@ -25,7 +28,7 @@ class VarietyResource extends Resource { protected static ?string $model = Variety::class; - protected static string | \UnitEnum | null $navigationGroup = 'Product'; + protected static string | \UnitEnum | null $navigationGroup = 'Catalog'; protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-shopping-bag'; @@ -36,23 +39,52 @@ public static function form(Schema $schema): Schema Select::make('product_id') ->relationship('product', 'heading') ->searchable() - ->required(), - TextInput::make('attribute_value') - ->maxLength(255), - TextInput::make('color') - ->maxLength(255), + ->live() + ->required() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The product this variety belongs to. Changing it reloads the available attributes below.'), + Select::make('attribute_id') + ->label('Attribute') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The attribute that defines this variety (e.g. "Red" from the "Color" group). Auto-fills value and color on save. Options are filtered by the product\'s attribute group.') + ->options(function (Get $get, ?Variety $record): array { + $productId = $get('product_id') ?? $record?->product_id; + if (! $productId) { + return []; + } + $product = Product::find($productId); + if (! $product?->attribute_group_id) { + return []; + } + + return Attribute::query() + ->where('attribute_group_id', $product->attribute_group_id) + ->pluck('value', 'id') + ->toArray(); + }) + ->searchable() + ->nullable() + ->helperText('Selecting an attribute auto-fills the value and color.'), TextInput::make('price') ->required() ->numeric() - ->prefix('$'), + ->prefix('تومان') + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('The selling price of this variety.'), TextInput::make('sale_price') - ->numeric(), + ->numeric() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Discounted price shown instead of the regular price when set. Leave empty for no sale price.'), TextInput::make('inventory') ->required() ->numeric() - ->default(0), + ->default(0) + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('Number of units available in stock.'), Toggle::make('has_stock') - ->required(), + ->required() + ->hintIcon('heroicon-o-information-circle') + ->hintIconTooltip('When off, this variety is shown as out of stock regardless of inventory count.'), Select::make('status') ->required() ->options(VarietyStatusEnum::options()) @@ -68,7 +100,11 @@ public static function table(Table $table): Table ->limit(30) ->wrap() ->searchable(), - TextColumn::make('attribute_value'), + TextColumn::make('attribute.value') + ->label('Attribute') + ->searchable(), + TextColumn::make('attribute_value') + ->label('Value'), TextColumn::make('color'), TextColumn::make('price') ->money(), diff --git a/admin/app/Filament/Resources/VarietyResource/Pages/ListVarieties.php b/admin/app/Filament/Resources/VarietyResource/Pages/ListVarieties.php index 926f3963..5a5dfb76 100644 --- a/admin/app/Filament/Resources/VarietyResource/Pages/ListVarieties.php +++ b/admin/app/Filament/Resources/VarietyResource/Pages/ListVarieties.php @@ -12,6 +12,8 @@ class ListVarieties extends ListRecords { protected static string $resource = VarietyResource::class; + protected ?string $subheading = 'Varieties are the purchasable options of a product (e.g. a T-shirt in Red or Blue, each with its own price and inventory). Each variety belongs to one product and is linked to one attribute from the product\'s attribute group. Selecting an attribute auto-fills the variety\'s label and color.'; + protected function getHeaderActions(): array { return [ diff --git a/admin/app/Models/Banner.php b/admin/app/Models/Banner.php new file mode 100644 index 00000000..b46618d1 --- /dev/null +++ b/admin/app/Models/Banner.php @@ -0,0 +1,60 @@ +<?php + +declare(strict_types=1); + +namespace App\Models; + +use App\Enums\BannerStatusEnum; +use Database\Factories\BannerFactory; +use Illuminate\Database\Eloquent\Collection; +use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\HasOne; +use Illuminate\Database\Eloquent\Relations\MorphMany; + +/** + * @property positive-int $id + * @property string $position + * @property string $heading + * @property string|null $url + * @property positive-int|null $sort + * @property BannerStatusEnum $status + * @property Image|null $featuredImage + * @property Collection<Image> $images + */ +class Banner extends Model +{ + /** @use HasFactory<BannerFactory> */ + use HasFactory; + + protected $fillable = [ + 'position', + 'heading', + 'url', + 'sort', + 'status', + ]; + + protected $casts = [ + 'status' => BannerStatusEnum::class, + ]; + + protected static function booted(): void + { + static::deleting(function (Banner $banner): void { + $banner->images()->delete(); + }); + } + + public function images(): MorphMany + { + return $this->morphMany(Image::class, 'imageable'); + } + + public function featuredImage(): HasOne + { + return $this->hasOne(Image::class, 'imageable_id') + ->where('imageable_type', self::class) + ->where('is_featured', true); + } +} diff --git a/admin/app/Models/Variety.php b/admin/app/Models/Variety.php index 66bdb4e0..2b001b6a 100644 --- a/admin/app/Models/Variety.php +++ b/admin/app/Models/Variety.php @@ -11,14 +11,17 @@ /** * @property positive-int $id - * @property Product $product - * @property string $attribute_value + * @property positive-int $product_id + * @property positive-int|null $attribute_id + * @property string|null $attribute_value * @property string|null $color * @property positive-int $price * @property positive-int|null $sale_price * @property positive-int $inventory * @property bool $has_stock * @property VarietyStatusEnum $status + * @property Product $product + * @property Attribute|null $attribute */ class Variety extends Model { @@ -26,6 +29,7 @@ class Variety extends Model protected $fillable = [ 'product_id', + 'attribute_id', 'attribute_value', 'color', 'price', @@ -42,6 +46,18 @@ class Variety extends Model protected static function booted(): void { + static::saving(function (Variety $variety): void { + if ($variety->attribute_id === null) { + return; + } + $attribute = Attribute::find($variety->attribute_id); + if ($attribute === null) { + return; + } + $variety->attribute_value = $attribute->value; + $variety->color = $attribute->color; + }); + static::saved(fn (Variety $variety) => $variety->syncProductVarietyCount()); static::deleted(fn (Variety $variety) => $variety->syncProductVarietyCount()); } @@ -60,10 +76,13 @@ public function syncProductVarietyCount(): void ])->saveQuietly(); } - // Relationships - public function product(): BelongsTo { return $this->belongsTo(Product::class); } + + public function attribute(): BelongsTo + { + return $this->belongsTo(Attribute::class); + } } diff --git a/admin/config/livewire.php b/admin/config/livewire.php index 9b2cf87f..93f067ef 100644 --- a/admin/config/livewire.php +++ b/admin/config/livewire.php @@ -6,41 +6,47 @@ /* |--------------------------------------------------------------------------- - | Class Namespace + | Component Locations |--------------------------------------------------------------------------- | - | This value sets the root class namespace for Livewire component classes in - | your application. This value will change where component auto-discovery - | finds components. It's also referenced by the file creation commands. + | This value sets the root directories that'll be used to resolve view-based + | components like single and multi-file components. The make command will + | use the first directory in this array to add new component files to. | */ - 'class_namespace' => 'App\\Livewire', + 'component_locations' => [ + resource_path('views/components'), + resource_path('views/livewire'), + ], /* |--------------------------------------------------------------------------- - | View Path + | Component Namespaces |--------------------------------------------------------------------------- | - | This value is used to specify where Livewire component Blade templates are - | stored when running file creation commands like `artisan make:livewire`. - | It is also used if you choose to omit a component's render() method. + | This value sets default namespaces that will be used to resolve view-based + | components like single-file and multi-file components. These folders'll + | also be referenced when creating new components via the make command. | */ - 'view_path' => resource_path('views/livewire'), + 'component_namespaces' => [ + 'layouts' => resource_path('views/layouts'), + 'pages' => resource_path('views/pages'), + ], /* |--------------------------------------------------------------------------- - | Layout + | Page Layout |--------------------------------------------------------------------------- - | The view that will be used as the layout when rendering a single component - | as an entire page via `Route::get('/post/create', CreatePost::class);`. - | In this case, the view returned by CreatePost will render into $slot. + | The view that will be used as the layout when rendering a single component as + | an entire page via `Route::livewire('/post/create', 'pages::create-post')`. + | In this case, the content of pages::create-post will render into $slot. | */ - 'layout' => 'components.layouts.app', + 'component_layout' => 'layouts::app', /* |--------------------------------------------------------------------------- @@ -52,7 +58,66 @@ | */ - 'lazy_placeholder' => null, + 'component_placeholder' => null, // Example: 'placeholders::skeleton' + + /* + |--------------------------------------------------------------------------- + | Make Command + |--------------------------------------------------------------------------- + | This value determines the default configuration for the artisan make command + | You can configure the component type (sfc, mfc, class) and whether to use + | the high-voltage (⚡) emoji as a prefix in the sfc|mfc component names. + | + */ + + 'make_command' => [ + 'type' => 'sfc', // Options: 'sfc', 'mfc', 'class' + 'emoji' => true, // Options: true, false + 'with' => [ + 'js' => false, + 'css' => false, + 'test' => false, + ], + ], + + /* + |--------------------------------------------------------------------------- + | Class Namespace + |--------------------------------------------------------------------------- + | + | This value sets the root class namespace for Livewire component classes in + | your application. This value will change where component auto-discovery + | finds components. It's also referenced by the file creation commands. + | + */ + + 'class_namespace' => 'App\\Livewire', + + /* + |--------------------------------------------------------------------------- + | Class Path + |--------------------------------------------------------------------------- + | + | This value is used to specify the path where Livewire component class files + | are created when running creation commands like `artisan make:livewire`. + | This path is customizable to match your projects directory structure. + | + */ + + 'class_path' => app_path('Livewire'), + + /* + |--------------------------------------------------------------------------- + | View Path + |--------------------------------------------------------------------------- + | + | This value is used to specify where Livewire component Blade templates are + | stored when running file creation commands like `artisan make:livewire`. + | It is also used if you choose to omit a component's render() method. + | + */ + + 'view_path' => resource_path('views/livewire'), /* |--------------------------------------------------------------------------- @@ -66,11 +131,11 @@ */ 'temporary_file_upload' => [ - 'disk' => null, // Example: 'local', 's3' | Default: 'default' - 'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB) - 'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp' - 'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1' - 'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs... + 'disk' => env('LIVEWIRE_TEMPORARY_FILE_UPLOAD_DISK'), // Example: 'local', 's3' | Default: 'default' + 'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB) + 'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp' + 'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1' + 'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs... 'png', 'gif', 'bmp', 'svg', 'wav', 'mp4', 'mov', 'avi', 'wmv', 'mp3', 'm4a', 'jpg', 'jpeg', 'mpga', 'webp', 'wma', @@ -147,6 +212,19 @@ 'inject_morph_markers' => true, + /* + |--------------------------------------------------------------------------- + | Smart Wire Keys + |--------------------------------------------------------------------------- + | + | Livewire uses loops and keys used within loops to generate smart keys that + | are applied to nested components that don't have them. This makes using + | nested components more reliable by ensuring that they all have keys. + | + */ + + 'smart_wire_keys' => true, + /* |--------------------------------------------------------------------------- | Pagination Theme @@ -159,4 +237,48 @@ */ 'pagination_theme' => 'tailwind', + + /* + |--------------------------------------------------------------------------- + | Release Token + |--------------------------------------------------------------------------- + | + | This token is stored client-side and sent along with each request to check + | a users session to see if a new release has invalidated it. If there is + | a mismatch it will throw an error and prompt for a browser refresh. + | + */ + + 'release_token' => 'a', + + /* + |--------------------------------------------------------------------------- + | CSP Safe + |--------------------------------------------------------------------------- + | + | This config is used to determine if Livewire will use the CSP-safe version + | of Alpine in its bundle. This is useful for applications that are using + | strict Content Security Policy (CSP) to protect against XSS attacks. + | + */ + + 'csp_safe' => false, + + /* + |--------------------------------------------------------------------------- + | Payload Guards + |--------------------------------------------------------------------------- + | + | These settings protect against malicious or oversized payloads that could + | cause denial of service. The default values should feel reasonable for + | most web applications. Each can be set to null to disable the limit. + | + */ + + 'payload' => [ + 'max_size' => 1024 * 1024, // 1MB - maximum request payload size in bytes + 'max_nesting_depth' => 10, // Maximum depth of dot-notation property paths + 'max_calls' => 50, // Maximum method calls per request + 'max_components' => 200, // Maximum components per batch request + ], ]; diff --git a/admin/database/factories/BannerFactory.php b/admin/database/factories/BannerFactory.php new file mode 100644 index 00000000..64c0f32f --- /dev/null +++ b/admin/database/factories/BannerFactory.php @@ -0,0 +1,45 @@ +<?php + +declare(strict_types=1); + +namespace Database\Factories; + +use App\Enums\BannerStatusEnum; +use App\Models\Banner; +use Illuminate\Database\Eloquent\Factories\Factory; + +/** + * @extends Factory<Banner> + */ +class BannerFactory extends Factory +{ + protected $model = Banner::class; + + /** + * @return array<string, mixed> + */ + public function definition(): array + { + return [ + 'position' => fake()->randomElement(['home-top', 'home-middle', 'category-side']), + 'heading' => fake()->words(3, true), + 'url' => fake()->url(), + 'sort' => fake()->numberBetween(0, 20), + 'status' => fake()->randomElement(BannerStatusEnum::cases()), + ]; + } + + public function withImages(int $count = 3): static + { + return $this->afterCreating(function (Banner $banner) use ($count) { + for ($i = 0; $i < $count; $i++) { + $banner->images()->create([ + 'path' => fake()->imageUrl(), + 'is_featured' => $i === 0, + 'order' => $i, + 'alt_text' => fake()->words(2, true), + ]); + } + }); + } +} diff --git a/admin/database/factories/VarietyFactory.php b/admin/database/factories/VarietyFactory.php index 65761ce1..06f549dc 100644 --- a/admin/database/factories/VarietyFactory.php +++ b/admin/database/factories/VarietyFactory.php @@ -5,25 +5,40 @@ namespace Database\Factories; use App\Enums\VarietyStatusEnum; +use App\Models\Attribute; use App\Models\Product; use App\Models\Variety; use Illuminate\Database\Eloquent\Factories\Factory; +/** + * @extends Factory<Variety> + */ class VarietyFactory extends Factory { protected $model = Variety::class; + /** + * @return array<string, mixed> + */ public function definition(): array { return [ 'product_id' => Product::factory(), - 'attribute_value' => $this->faker->word(), - 'color' => $this->faker->safeColorName(), - 'price' => $this->faker->numberBetween(1000, 100000), - 'sale_price' => $this->faker->optional()->numberBetween(500, 90000), - 'inventory' => $this->faker->numberBetween(0, 100), - 'has_stock' => $this->faker->boolean(80), // 80% chance of being true + 'attribute_id' => null, + 'attribute_value' => fake()->word(), + 'color' => fake()->safeColorName(), + 'price' => fake()->numberBetween(1000, 100000), + 'sale_price' => fake()->optional()->numberBetween(500, 90000), + 'inventory' => fake()->numberBetween(0, 100), + 'has_stock' => fake()->boolean(80), 'status' => fake()->randomElement(VarietyStatusEnum::cases()), ]; } + + public function withAttribute(Attribute $attribute): static + { + return $this->state([ + 'attribute_id' => $attribute->id, + ]); + } } diff --git a/admin/database/migrations/2024_12_23_185231_create_attribute_group_category_table.php b/admin/database/migrations/2024_12_23_185231_create_attribute_group_category_table.php index df1cb06b..ca4e88c3 100644 --- a/admin/database/migrations/2024_12_23_185231_create_attribute_group_category_table.php +++ b/admin/database/migrations/2024_12_23_185231_create_attribute_group_category_table.php @@ -20,7 +20,6 @@ public function up(): void $table->foreignIdFor(AttributeGroup::class); $table->foreignIdFor(Category::class); $table->boolean('as_filter')->default(false); - // todo : implement in product resource $table->boolean('required')->default(false); $table->timestamps(); }); diff --git a/admin/database/migrations/2025_08_15_132349_create_varieties_table.php b/admin/database/migrations/2025_08_15_132349_create_varieties_table.php index 30202277..185188a9 100644 --- a/admin/database/migrations/2025_08_15_132349_create_varieties_table.php +++ b/admin/database/migrations/2025_08_15_132349_create_varieties_table.php @@ -3,6 +3,7 @@ declare(strict_types=1); use App\Enums\VarietyStatusEnum; +use App\Models\Attribute; use App\Models\Product; use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; @@ -18,6 +19,7 @@ public function up(): void Schema::create('varieties', function (Blueprint $table) { $table->id(); $table->foreignIdFor(Product::class)->constrained()->cascadeOnDelete(); + $table->foreignIdFor(Attribute::class)->nullable()->constrained()->nullOnDelete(); $table->string('attribute_value')->nullable(); $table->string('color')->nullable(); $table->decimal('price', 10, 2); diff --git a/admin/database/migrations/2026_06_19_000006_create_banners_table.php b/admin/database/migrations/2026_06_19_000006_create_banners_table.php new file mode 100644 index 00000000..55fb752a --- /dev/null +++ b/admin/database/migrations/2026_06_19_000006_create_banners_table.php @@ -0,0 +1,35 @@ +<?php + +declare(strict_types=1); + +use App\Enums\BannerStatusEnum; +use Illuminate\Database\Migrations\Migration; +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\Schema; + +return new class extends Migration +{ + /** + * Run the migrations. + */ + public function up(): void + { + Schema::create('banners', function (Blueprint $table) { + $table->id(); + $table->string('position'); + $table->string('heading'); + $table->string('url')->nullable(); + $table->unsignedInteger('sort')->nullable(); + $table->unsignedTinyInteger('status')->default(BannerStatusEnum::PUBLISHED->value); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('banners'); + } +}; diff --git a/admin/database/seeders/BannerSeeder.php b/admin/database/seeders/BannerSeeder.php new file mode 100644 index 00000000..3e481db6 --- /dev/null +++ b/admin/database/seeders/BannerSeeder.php @@ -0,0 +1,17 @@ +<?php + +declare(strict_types=1); + +namespace Database\Seeders; + +use App\Models\Banner; +use Illuminate\Database\Seeder; + +class BannerSeeder extends Seeder +{ + public function run(): void + { + Banner::query()->truncate(); + Banner::factory()->count(20)->withImages()->create(); + } +} diff --git a/admin/database/seeders/TestSeeder.php b/admin/database/seeders/TestSeeder.php index 6e657322..ec7ef176 100644 --- a/admin/database/seeders/TestSeeder.php +++ b/admin/database/seeders/TestSeeder.php @@ -17,6 +17,7 @@ public function run(): void VarietySeeder::class, DiscountSeeder::class, CouponSeeder::class, + BannerSeeder::class, ]); } } diff --git a/admin/public/vendor/livewire/livewire.csp.esm.js b/admin/public/vendor/livewire/livewire.csp.esm.js new file mode 100644 index 00000000..2f713776 --- /dev/null +++ b/admin/public/vendor/livewire/livewire.csp.esm.js @@ -0,0 +1,16284 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +// node_modules/@alpinejs/csp/dist/module.cjs.js +var require_module_cjs = __commonJS({ + "node_modules/@alpinejs/csp/dist/module.cjs.js"(exports, module) { + var __create2 = Object.create; + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __getProtoOf2 = Object.getPrototypeOf; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( + isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var require_shared_cjs = __commonJS2({ + "node_modules/@vue/shared/dist/shared.cjs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + function makeMap(str, expectsLowerCase) { + const map = /* @__PURE__ */ Object.create(null); + const list = str.split(","); + for (let i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val]; + } + var PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `HYDRATE_EVENTS`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `HOISTED`, + [-2]: `BAIL` + }; + var slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" + }; + var GLOBALS_WHITE_LISTED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt"; + var isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED); + var range = 2; + function generateCodeFrame(source, start22 = 0, end = source.length) { + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start22) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) + continue; + const line = j + 1; + res.push(`${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start22 - (count - (lineLength + newLineSeqLength)); + const length = Math.max(1, end > count ? lineLength - pad : end - start22); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); + } + var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + var isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); + var isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`); + var unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; + var attrValidationCache = {}; + function isSSRSafeAttrName(name) { + if (attrValidationCache.hasOwnProperty(name)) { + return attrValidationCache[name]; + } + const isUnsafe = unsafeAttrCharRE.test(name); + if (isUnsafe) { + console.error(`unsafe attribute name: ${name}`); + } + return attrValidationCache[name] = !isUnsafe; + } + var propsToAttrMap = { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" + }; + var isNoUnitNumericStyleProp = /* @__PURE__ */ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width`); + var isKnownAttr = /* @__PURE__ */ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`); + function normalizeStyle(value) { + if (isArray2(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = normalizeStyle(isString(item) ? parseStringStyle(item) : item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isObject22(value)) { + return value; + } + } + var listDelimiterRE = /;(?![^(]*\))/g; + var propertyDelimiterRE = /:(.+)/; + function parseStringStyle(cssText) { + const ret = {}; + cssText.split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function stringifyStyle(styles) { + let ret = ""; + if (!styles) { + return ret; + } + for (const key in styles) { + const value = styles[key]; + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + if (isString(value) || typeof value === "number" && isNoUnitNumericStyleProp(normalizedKey)) { + ret += `${normalizedKey}:${value};`; + } + } + return ret; + } + function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray2(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject22(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); + } + var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; + var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; + var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; + var isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + var isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + var isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + var escapeRE = /["'&<>]/; + function escapeHtml(string) { + const str = "" + string; + const match = escapeRE.exec(str); + if (!match) { + return str; + } + let html = ""; + let escaped; + let index; + let lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escaped = """; + break; + case 38: + escaped = "&"; + break; + case 39: + escaped = "'"; + break; + case 60: + escaped = "<"; + break; + case 62: + escaped = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.substring(lastIndex, index); + } + lastIndex = index + 1; + html += escaped; + } + return lastIndex !== index ? html + str.substring(lastIndex, index) : html; + } + var commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g; + function escapeHtmlComment(src) { + return src.replace(commentStripRE, ""); + } + function looseCompareArrays(a, b) { + if (a.length !== b.length) + return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; + } + function looseEqual(a, b) { + if (a === b) + return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isArray2(a); + bValidType = isArray2(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject22(a); + bValidType = isObject22(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); + } + function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); + } + var toDisplayString = (val) => { + return val == null ? "" : isObject22(val) ? JSON.stringify(val, replacer, 2) : String(val); + }; + var replacer = (_key, val) => { + if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => { + entries[`${key} =>`] = val2; + return entries; + }, {}) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()] + }; + } else if (isObject22(val) && !isArray2(val) && !isPlainObject(val)) { + return String(val); + } + return val; + }; + var babelParserDefaultPlugins = [ + "bigInt", + "optionalChaining", + "nullishCoalescingOperator" + ]; + var EMPTY_OBJ = Object.freeze({}); + var EMPTY_ARR = Object.freeze([]); + var NOOP = () => { + }; + var NO = () => false; + var onRE = /^on[^a-z]/; + var isOn = (key) => onRE.test(key); + var isModelListener = (key) => key.startsWith("onUpdate:"); + var extend = Object.assign; + var remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var hasOwn = (val, key) => hasOwnProperty.call(val, key); + var isArray2 = Array.isArray; + var isMap = (val) => toTypeString(val) === "[object Map]"; + var isSet = (val) => toTypeString(val) === "[object Set]"; + var isDate = (val) => val instanceof Date; + var isFunction2 = (val) => typeof val === "function"; + var isString = (val) => typeof val === "string"; + var isSymbol = (val) => typeof val === "symbol"; + var isObject22 = (val) => val !== null && typeof val === "object"; + var isPromise = (val) => { + return isObject22(val) && isFunction2(val.then) && isFunction2(val.catch); + }; + var objectToString = Object.prototype.toString; + var toTypeString = (value) => objectToString.call(value); + var toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + var isPlainObject = (val) => toTypeString(val) === "[object Object]"; + var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + var isReservedProp = /* @__PURE__ */ makeMap( + ",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + var cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; + }; + var camelizeRE = /-(\w)/g; + var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); + }); + var hyphenateRE = /\B([A-Z])/g; + var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase()); + var capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1)); + var toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``); + var hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue); + var invokeArrayFns = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } + }; + var def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); + }; + var toNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; + }; + var _globalThis; + var getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + exports2.EMPTY_ARR = EMPTY_ARR; + exports2.EMPTY_OBJ = EMPTY_OBJ; + exports2.NO = NO; + exports2.NOOP = NOOP; + exports2.PatchFlagNames = PatchFlagNames; + exports2.babelParserDefaultPlugins = babelParserDefaultPlugins; + exports2.camelize = camelize; + exports2.capitalize = capitalize; + exports2.def = def; + exports2.escapeHtml = escapeHtml; + exports2.escapeHtmlComment = escapeHtmlComment; + exports2.extend = extend; + exports2.generateCodeFrame = generateCodeFrame; + exports2.getGlobalThis = getGlobalThis; + exports2.hasChanged = hasChanged; + exports2.hasOwn = hasOwn; + exports2.hyphenate = hyphenate; + exports2.invokeArrayFns = invokeArrayFns; + exports2.isArray = isArray2; + exports2.isBooleanAttr = isBooleanAttr2; + exports2.isDate = isDate; + exports2.isFunction = isFunction2; + exports2.isGloballyWhitelisted = isGloballyWhitelisted; + exports2.isHTMLTag = isHTMLTag; + exports2.isIntegerKey = isIntegerKey; + exports2.isKnownAttr = isKnownAttr; + exports2.isMap = isMap; + exports2.isModelListener = isModelListener; + exports2.isNoUnitNumericStyleProp = isNoUnitNumericStyleProp; + exports2.isObject = isObject22; + exports2.isOn = isOn; + exports2.isPlainObject = isPlainObject; + exports2.isPromise = isPromise; + exports2.isReservedProp = isReservedProp; + exports2.isSSRSafeAttrName = isSSRSafeAttrName; + exports2.isSVGTag = isSVGTag; + exports2.isSet = isSet; + exports2.isSpecialBooleanAttr = isSpecialBooleanAttr; + exports2.isString = isString; + exports2.isSymbol = isSymbol; + exports2.isVoidTag = isVoidTag; + exports2.looseEqual = looseEqual; + exports2.looseIndexOf = looseIndexOf; + exports2.makeMap = makeMap; + exports2.normalizeClass = normalizeClass; + exports2.normalizeStyle = normalizeStyle; + exports2.objectToString = objectToString; + exports2.parseStringStyle = parseStringStyle; + exports2.propsToAttrMap = propsToAttrMap; + exports2.remove = remove; + exports2.slotFlagsText = slotFlagsText; + exports2.stringifyStyle = stringifyStyle; + exports2.toDisplayString = toDisplayString; + exports2.toHandlerKey = toHandlerKey; + exports2.toNumber = toNumber; + exports2.toRawType = toRawType; + exports2.toTypeString = toTypeString; + } + }); + var require_shared = __commonJS2({ + "node_modules/@vue/shared/index.js"(exports2, module2) { + "use strict"; + if (false) { + module2.exports = null; + } else { + module2.exports = require_shared_cjs(); + } + } + }); + var require_reactivity_cjs = __commonJS2({ + "node_modules/@vue/reactivity/dist/reactivity.cjs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var shared = require_shared(); + var targetMap = /* @__PURE__ */ new WeakMap(); + var effectStack = []; + var activeEffect; + var ITERATE_KEY = Symbol("iterate"); + var MAP_KEY_ITERATE_KEY = Symbol("Map key iterate"); + function isEffect(fn) { + return fn && fn._isEffect === true; + } + function effect3(fn, options = shared.EMPTY_OBJ) { + if (isEffect(fn)) { + fn = fn.raw; + } + const effect4 = createReactiveEffect(fn, options); + if (!options.lazy) { + effect4(); + } + return effect4; + } + function stop2(effect4) { + if (effect4.active) { + cleanup(effect4); + if (effect4.options.onStop) { + effect4.options.onStop(); + } + effect4.active = false; + } + } + var uid = 0; + function createReactiveEffect(fn, options) { + const effect4 = function reactiveEffect() { + if (!effect4.active) { + return fn(); + } + if (!effectStack.includes(effect4)) { + cleanup(effect4); + try { + enableTracking(); + effectStack.push(effect4); + activeEffect = effect4; + return fn(); + } finally { + effectStack.pop(); + resetTracking(); + activeEffect = effectStack[effectStack.length - 1]; + } + } + }; + effect4.id = uid++; + effect4.allowRecurse = !!options.allowRecurse; + effect4._isEffect = true; + effect4.active = true; + effect4.raw = fn; + effect4.deps = []; + effect4.options = options; + return effect4; + } + function cleanup(effect4) { + const { deps } = effect4; + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].delete(effect4); + } + deps.length = 0; + } + } + var shouldTrack = true; + var trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function enableTracking() { + trackStack.push(shouldTrack); + shouldTrack = true; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function track2(target, type, key) { + if (!shouldTrack || activeEffect === void 0) { + return; + } + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = /* @__PURE__ */ new Set()); + } + if (!dep.has(activeEffect)) { + dep.add(activeEffect); + activeEffect.deps.push(dep); + if (activeEffect.options.onTrack) { + activeEffect.options.onTrack({ + effect: activeEffect, + target, + type, + key + }); + } + } + } + function trigger2(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + const effects = /* @__PURE__ */ new Set(); + const add2 = (effectsToAdd) => { + if (effectsToAdd) { + effectsToAdd.forEach((effect4) => { + if (effect4 !== activeEffect || effect4.allowRecurse) { + effects.add(effect4); + } + }); + } + }; + if (type === "clear") { + depsMap.forEach(add2); + } else if (key === "length" && shared.isArray(target)) { + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 >= newValue) { + add2(dep); + } + }); + } else { + if (key !== void 0) { + add2(depsMap.get(key)); + } + switch (type) { + case "add": + if (!shared.isArray(target)) { + add2(depsMap.get(ITERATE_KEY)); + if (shared.isMap(target)) { + add2(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (shared.isIntegerKey(key)) { + add2(depsMap.get("length")); + } + break; + case "delete": + if (!shared.isArray(target)) { + add2(depsMap.get(ITERATE_KEY)); + if (shared.isMap(target)) { + add2(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (shared.isMap(target)) { + add2(depsMap.get(ITERATE_KEY)); + } + break; + } + } + const run = (effect4) => { + if (effect4.options.onTrigger) { + effect4.options.onTrigger({ + effect: effect4, + target, + key, + type, + newValue, + oldValue, + oldTarget + }); + } + if (effect4.options.scheduler) { + effect4.options.scheduler(effect4); + } else { + effect4(); + } + }; + effects.forEach(run); + } + var isNonTrackableKeys = /* @__PURE__ */ shared.makeMap(`__proto__,__v_isRef,__isVue`); + var builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(shared.isSymbol)); + var get2 = /* @__PURE__ */ createGetter(); + var shallowGet = /* @__PURE__ */ createGetter(false, true); + var readonlyGet = /* @__PURE__ */ createGetter(true); + var shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true); + var arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations(); + function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw2(this); + for (let i = 0, l = this.length; i < l; i++) { + track2(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw2)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + const res = toRaw2(this)[key].apply(this, args); + resetTracking(); + return res; + }; + }); + return instrumentations; + } + function createGetter(isReadonly2 = false, shallow = false) { + return function get3(target, key, receiver) { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) { + return target; + } + const targetIsArray = shared.isArray(target); + if (!isReadonly2 && targetIsArray && shared.hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + const res = Reflect.get(target, key, receiver); + if (shared.isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track2(target, "get", key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + const shouldUnwrap = !targetIsArray || !shared.isIntegerKey(key); + return shouldUnwrap ? res.value : res; + } + if (shared.isObject(res)) { + return isReadonly2 ? readonly(res) : reactive3(res); + } + return res; + }; + } + var set2 = /* @__PURE__ */ createSetter(); + var shallowSet = /* @__PURE__ */ createSetter(true); + function createSetter(shallow = false) { + return function set3(target, key, value, receiver) { + let oldValue = target[key]; + if (!shallow) { + value = toRaw2(value); + oldValue = toRaw2(oldValue); + if (!shared.isArray(target) && isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + } + const hadKey = shared.isArray(target) && shared.isIntegerKey(key) ? Number(key) < target.length : shared.hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw2(receiver)) { + if (!hadKey) { + trigger2(target, "add", key, value); + } else if (shared.hasChanged(value, oldValue)) { + trigger2(target, "set", key, value, oldValue); + } + } + return result; + }; + } + function deleteProperty(target, key) { + const hadKey = shared.hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger2(target, "delete", key, void 0, oldValue); + } + return result; + } + function has(target, key) { + const result = Reflect.has(target, key); + if (!shared.isSymbol(key) || !builtInSymbols.has(key)) { + track2(target, "has", key); + } + return result; + } + function ownKeys(target) { + track2(target, "iterate", shared.isArray(target) ? "length" : ITERATE_KEY); + return Reflect.ownKeys(target); + } + var mutableHandlers = { + get: get2, + set: set2, + deleteProperty, + has, + ownKeys + }; + var readonlyHandlers = { + get: readonlyGet, + set(target, key) { + { + console.warn(`Set operation on key "${String(key)}" failed: target is readonly.`, target); + } + return true; + }, + deleteProperty(target, key) { + { + console.warn(`Delete operation on key "${String(key)}" failed: target is readonly.`, target); + } + return true; + } + }; + var shallowReactiveHandlers = /* @__PURE__ */ shared.extend({}, mutableHandlers, { + get: shallowGet, + set: shallowSet + }); + var shallowReadonlyHandlers = /* @__PURE__ */ shared.extend({}, readonlyHandlers, { + get: shallowReadonlyGet + }); + var toReactive = (value) => shared.isObject(value) ? reactive3(value) : value; + var toReadonly = (value) => shared.isObject(value) ? readonly(value) : value; + var toShallow = (value) => value; + var getProto = (v) => Reflect.getPrototypeOf(v); + function get$1(target, key, isReadonly2 = false, isShallow = false) { + target = target["__v_raw"]; + const rawTarget = toRaw2(target); + const rawKey = toRaw2(key); + if (key !== rawKey) { + !isReadonly2 && track2(rawTarget, "get", key); + } + !isReadonly2 && track2(rawTarget, "get", rawKey); + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + } + function has$1(key, isReadonly2 = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw2(target); + const rawKey = toRaw2(key); + if (key !== rawKey) { + !isReadonly2 && track2(rawTarget, "has", key); + } + !isReadonly2 && track2(rawTarget, "has", rawKey); + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + } + function size(target, isReadonly2 = false) { + target = target["__v_raw"]; + !isReadonly2 && track2(toRaw2(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); + } + function add(value) { + value = toRaw2(value); + const target = toRaw2(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger2(target, "add", value, value); + } + return this; + } + function set$1(key, value) { + value = toRaw2(value); + const target = toRaw2(this); + const { has: has2, get: get3 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw2(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get3.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger2(target, "add", key, value); + } else if (shared.hasChanged(value, oldValue)) { + trigger2(target, "set", key, value, oldValue); + } + return this; + } + function deleteEntry(key) { + const target = toRaw2(this); + const { has: has2, get: get3 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw2(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get3 ? get3.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger2(target, "delete", key, void 0, oldValue); + } + return result; + } + function clear() { + const target = toRaw2(this); + const hadItems = target.size !== 0; + const oldTarget = shared.isMap(target) ? new Map(target) : new Set(target); + const result = target.clear(); + if (hadItems) { + trigger2(target, "clear", void 0, void 0, oldTarget); + } + return result; + } + function createForEach(isReadonly2, isShallow) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw2(target); + const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track2(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; + } + function createIterableMethod(method, isReadonly2, isShallow) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw2(target); + const targetIsMap = shared.isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track2(rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY); + return { + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + [Symbol.iterator]() { + return this; + } + }; + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + console.warn(`${shared.capitalize(type)} operation ${key}failed: target is readonly.`, toRaw2(this)); + } + return type === "delete" ? false : this; + }; + } + function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get$1(this, key); + }, + get size() { + return size(this); + }, + has: has$1, + add, + set: set$1, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get$1(this, key, false, true); + }, + get size() { + return size(this); + }, + has: has$1, + add, + set: set$1, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get$1(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has$1.call(this, key, true); + }, + add: createReadonlyMethod( + "add" + ), + set: createReadonlyMethod( + "set" + ), + delete: createReadonlyMethod( + "delete" + ), + clear: createReadonlyMethod( + "clear" + ), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get$1(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has$1.call(this, key, true); + }, + add: createReadonlyMethod( + "add" + ), + set: createReadonlyMethod( + "set" + ), + delete: createReadonlyMethod( + "delete" + ), + clear: createReadonlyMethod( + "clear" + ), + forEach: createForEach(true, true) + }; + const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod(method, false, false); + readonlyInstrumentations2[method] = createIterableMethod(method, true, false); + shallowInstrumentations2[method] = createIterableMethod(method, false, true); + shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; + } + var [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations(); + function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get(shared.hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver); + }; + } + var mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + var shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + var readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + var shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw2(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = shared.toRawType(target); + console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`); + } + } + var reactiveMap = /* @__PURE__ */ new WeakMap(); + var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + var readonlyMap = /* @__PURE__ */ new WeakMap(); + var shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2; + default: + return 0; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(shared.toRawType(value)); + } + function reactive3(target) { + if (target && target["__v_isReadonly"]) { + return target; + } + return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap); + } + function shallowReactive(target) { + return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap); + } + function readonly(target) { + return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap); + } + function shallowReadonly(target) { + return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!shared.isObject(target)) { + { + console.warn(`value cannot be made reactive: ${String(target)}`); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0) { + return target; + } + const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers); + proxyMap.set(target, proxy); + return proxy; + } + function isReactive2(value) { + if (isReadonly(value)) { + return isReactive2(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + function isProxy(value) { + return isReactive2(value) || isReadonly(value); + } + function toRaw2(observed) { + return observed && toRaw2(observed["__v_raw"]) || observed; + } + function markRaw(value) { + shared.def(value, "__v_skip", true); + return value; + } + var convert = (val) => shared.isObject(val) ? reactive3(val) : val; + function isRef(r) { + return Boolean(r && r.__v_isRef === true); + } + function ref(value) { + return createRef(value); + } + function shallowRef(value) { + return createRef(value, true); + } + var RefImpl = class { + constructor(value, _shallow = false) { + this._shallow = _shallow; + this.__v_isRef = true; + this._rawValue = _shallow ? value : toRaw2(value); + this._value = _shallow ? value : convert(value); + } + get value() { + track2(toRaw2(this), "get", "value"); + return this._value; + } + set value(newVal) { + newVal = this._shallow ? newVal : toRaw2(newVal); + if (shared.hasChanged(newVal, this._rawValue)) { + this._rawValue = newVal; + this._value = this._shallow ? newVal : convert(newVal); + trigger2(toRaw2(this), "set", "value", newVal); + } + } + }; + function createRef(rawValue, shallow = false) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + function triggerRef(ref2) { + trigger2(toRaw2(ref2), "set", "value", ref2.value); + } + function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; + } + var shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive2(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + var CustomRefImpl = class { + constructor(factory) { + this.__v_isRef = true; + const { get: get3, set: set3 } = factory(() => track2(this, "get", "value"), () => trigger2(this, "set", "value")); + this._get = get3; + this._set = set3; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } + }; + function customRef(factory) { + return new CustomRefImpl(factory); + } + function toRefs(object) { + if (!isProxy(object)) { + console.warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = shared.isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = toRef(object, key); + } + return ret; + } + var ObjectRefImpl = class { + constructor(_object, _key) { + this._object = _object; + this._key = _key; + this.__v_isRef = true; + } + get value() { + return this._object[this._key]; + } + set value(newVal) { + this._object[this._key] = newVal; + } + }; + function toRef(object, key) { + return isRef(object[key]) ? object[key] : new ObjectRefImpl(object, key); + } + var ComputedRefImpl = class { + constructor(getter, _setter, isReadonly2) { + this._setter = _setter; + this._dirty = true; + this.__v_isRef = true; + this.effect = effect3(getter, { + lazy: true, + scheduler: () => { + if (!this._dirty) { + this._dirty = true; + trigger2(toRaw2(this), "set", "value"); + } + } + }); + this["__v_isReadonly"] = isReadonly2; + } + get value() { + const self2 = toRaw2(this); + if (self2._dirty) { + self2._value = this.effect(); + self2._dirty = false; + } + track2(self2, "get", "value"); + return self2._value; + } + set value(newValue) { + this._setter(newValue); + } + }; + function computed(getterOrOptions) { + let getter; + let setter; + if (shared.isFunction(getterOrOptions)) { + getter = getterOrOptions; + setter = () => { + console.warn("Write operation failed: computed value is readonly"); + }; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + return new ComputedRefImpl(getter, setter, shared.isFunction(getterOrOptions) || !getterOrOptions.set); + } + exports2.ITERATE_KEY = ITERATE_KEY; + exports2.computed = computed; + exports2.customRef = customRef; + exports2.effect = effect3; + exports2.enableTracking = enableTracking; + exports2.isProxy = isProxy; + exports2.isReactive = isReactive2; + exports2.isReadonly = isReadonly; + exports2.isRef = isRef; + exports2.markRaw = markRaw; + exports2.pauseTracking = pauseTracking; + exports2.proxyRefs = proxyRefs; + exports2.reactive = reactive3; + exports2.readonly = readonly; + exports2.ref = ref; + exports2.resetTracking = resetTracking; + exports2.shallowReactive = shallowReactive; + exports2.shallowReadonly = shallowReadonly; + exports2.shallowRef = shallowRef; + exports2.stop = stop2; + exports2.toRaw = toRaw2; + exports2.toRef = toRef; + exports2.toRefs = toRefs; + exports2.track = track2; + exports2.trigger = trigger2; + exports2.triggerRef = triggerRef; + exports2.unref = unref; + } + }); + var require_reactivity = __commonJS2({ + "node_modules/@vue/reactivity/index.js"(exports2, module2) { + "use strict"; + if (false) { + module2.exports = null; + } else { + module2.exports = require_reactivity_cjs(); + } + } + }); + var module_exports = {}; + __export(module_exports, { + Alpine: () => src_default2, + default: () => module_default2 + }); + module.exports = __toCommonJS(module_exports); + var flushPending = false; + var flushing = false; + var queue = []; + var lastFlushedIndex = -1; + var transactionActive = false; + function scheduler(callback) { + queueJob(callback); + } + function startTransaction() { + transactionActive = true; + } + function commitTransaction() { + transactionActive = false; + queueFlush(); + } + function queueJob(job) { + if (!queue.includes(job)) + queue.push(job); + queueFlush(); + } + function dequeueJob(job) { + let index = queue.indexOf(job); + if (index !== -1 && index > lastFlushedIndex) + queue.splice(index, 1); + } + function queueFlush() { + if (!flushing && !flushPending) { + if (transactionActive) + return; + flushPending = true; + queueMicrotask(flushJobs); + } + } + function flushJobs() { + flushPending = false; + flushing = true; + for (let i = 0; i < queue.length; i++) { + queue[i](); + lastFlushedIndex = i; + } + queue.length = 0; + lastFlushedIndex = -1; + flushing = false; + } + var reactive; + var effect; + var release; + var raw; + var shouldSchedule = true; + function disableEffectScheduling(callback) { + shouldSchedule = false; + callback(); + shouldSchedule = true; + } + function setReactivityEngine(engine) { + reactive = engine.reactive; + release = engine.release; + effect = (callback) => engine.effect(callback, { scheduler: (task) => { + if (shouldSchedule) { + scheduler(task); + } else { + task(); + } + } }); + raw = engine.raw; + } + function overrideEffect(override) { + effect = override; + } + function elementBoundEffect(el) { + let cleanup = () => { + }; + let wrappedEffect = (callback) => { + let effectReference = effect(callback); + if (!el._x_effects) { + el._x_effects = /* @__PURE__ */ new Set(); + el._x_runEffects = () => { + el._x_effects.forEach((i) => i()); + }; + } + el._x_effects.add(effectReference); + cleanup = () => { + if (effectReference === void 0) + return; + el._x_effects.delete(effectReference); + release(effectReference); + }; + return effectReference; + }; + return [wrappedEffect, () => { + cleanup(); + }]; + } + function watch(getter, callback) { + let firstTime = true; + let oldValue; + let oldValueJSON; + let effectReference = effect(() => { + let value = getter(); + let newJSON = JSON.stringify(value); + if (!firstTime) { + if (typeof value === "object" || value !== oldValue) { + let previousValue = typeof oldValue === "object" ? JSON.parse(oldValueJSON) : oldValue; + queueMicrotask(() => { + callback(value, previousValue); + }); + } + } + oldValue = value; + oldValueJSON = newJSON; + firstTime = false; + }); + return () => release(effectReference); + } + async function transaction(callback) { + startTransaction(); + try { + await callback(); + await Promise.resolve(); + } finally { + commitTransaction(); + } + } + var onAttributeAddeds = []; + var onElRemoveds = []; + var onElAddeds = []; + function onElAdded(callback) { + onElAddeds.push(callback); + } + function onElRemoved(el, callback) { + if (typeof callback === "function") { + if (!el._x_cleanups) + el._x_cleanups = []; + el._x_cleanups.push(callback); + } else { + callback = el; + onElRemoveds.push(callback); + } + } + function onAttributesAdded(callback) { + onAttributeAddeds.push(callback); + } + function onAttributeRemoved(el, name, callback) { + if (!el._x_attributeCleanups) + el._x_attributeCleanups = {}; + if (!el._x_attributeCleanups[name]) + el._x_attributeCleanups[name] = []; + el._x_attributeCleanups[name].push(callback); + } + function cleanupAttributes(el, names) { + if (!el._x_attributeCleanups) + return; + Object.entries(el._x_attributeCleanups).forEach(([name, value]) => { + if (names === void 0 || names.includes(name)) { + value.forEach((i) => i()); + delete el._x_attributeCleanups[name]; + } + }); + } + function cleanupElement(el) { + var _a, _b; + (_a = el._x_effects) == null ? void 0 : _a.forEach(dequeueJob); + while ((_b = el._x_cleanups) == null ? void 0 : _b.length) + el._x_cleanups.pop()(); + } + var observer = new MutationObserver(onMutate); + var currentlyObserving = false; + function startObservingMutations() { + observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true }); + currentlyObserving = true; + } + function stopObservingMutations() { + flushObserver(); + observer.disconnect(); + currentlyObserving = false; + } + var queuedMutations = []; + function flushObserver() { + let records = observer.takeRecords(); + queuedMutations.push(() => records.length > 0 && onMutate(records)); + let queueLengthWhenTriggered = queuedMutations.length; + queueMicrotask(() => { + if (queuedMutations.length === queueLengthWhenTriggered) { + while (queuedMutations.length > 0) + queuedMutations.shift()(); + } + }); + } + function mutateDom(callback) { + if (!currentlyObserving) + return callback(); + stopObservingMutations(); + let result = callback(); + startObservingMutations(); + return result; + } + var isCollecting = false; + var deferredMutations = []; + function deferMutations() { + isCollecting = true; + } + function flushAndStopDeferringMutations() { + isCollecting = false; + onMutate(deferredMutations); + deferredMutations = []; + } + function onMutate(mutations) { + if (isCollecting) { + deferredMutations = deferredMutations.concat(mutations); + return; + } + let addedNodes = []; + let removedNodes = /* @__PURE__ */ new Set(); + let addedAttributes = /* @__PURE__ */ new Map(); + let removedAttributes = /* @__PURE__ */ new Map(); + for (let i = 0; i < mutations.length; i++) { + if (mutations[i].target._x_ignoreMutationObserver) + continue; + if (mutations[i].type === "childList") { + mutations[i].removedNodes.forEach((node) => { + if (node.nodeType !== 1) + return; + if (!node._x_marker) + return; + removedNodes.add(node); + }); + mutations[i].addedNodes.forEach((node) => { + if (node.nodeType !== 1) + return; + if (removedNodes.has(node)) { + removedNodes.delete(node); + return; + } + if (node._x_marker) + return; + addedNodes.push(node); + }); + } + if (mutations[i].type === "attributes") { + let el = mutations[i].target; + let name = mutations[i].attributeName; + let oldValue = mutations[i].oldValue; + let add = () => { + if (!addedAttributes.has(el)) + addedAttributes.set(el, []); + addedAttributes.get(el).push({ name, value: el.getAttribute(name) }); + }; + let remove = () => { + if (!removedAttributes.has(el)) + removedAttributes.set(el, []); + removedAttributes.get(el).push(name); + }; + if (el.hasAttribute(name) && oldValue === null) { + add(); + } else if (el.hasAttribute(name)) { + remove(); + add(); + } else { + remove(); + } + } + } + removedAttributes.forEach((attrs, el) => { + cleanupAttributes(el, attrs); + }); + addedAttributes.forEach((attrs, el) => { + onAttributeAddeds.forEach((i) => i(el, attrs)); + }); + for (let node of removedNodes) { + if (addedNodes.some((i) => i.contains(node))) + continue; + onElRemoveds.forEach((i) => i(node)); + } + for (let node of addedNodes) { + if (!node.isConnected) + continue; + onElAddeds.forEach((i) => i(node)); + } + addedNodes = null; + removedNodes = null; + addedAttributes = null; + removedAttributes = null; + } + function scope(node) { + return mergeProxies(closestDataStack(node)); + } + function addScopeToNode(node, data2, referenceNode) { + node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)]; + return () => { + node._x_dataStack = node._x_dataStack.filter((i) => i !== data2); + }; + } + function closestDataStack(node) { + if (node._x_dataStack) + return node._x_dataStack; + if (typeof ShadowRoot === "function" && node instanceof ShadowRoot) { + return closestDataStack(node.host); + } + if (!node.parentNode) { + return []; + } + return closestDataStack(node.parentNode); + } + function mergeProxies(objects) { + return new Proxy({ objects }, mergeProxyTrap); + } + function keyInPrototypeChain(obj, key) { + if (obj === null || obj === Object.prototype) + return null; + if (Object.prototype.hasOwnProperty.call(obj, key)) + return obj; + return keyInPrototypeChain(Object.getPrototypeOf(obj), key); + } + var mergeProxyTrap = { + ownKeys({ objects }) { + return Array.from( + new Set(objects.flatMap((i) => Object.keys(i))) + ); + }, + has({ objects }, name) { + if (name == Symbol.unscopables) + return false; + return objects.some( + (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name) + ); + }, + get({ objects }, name, thisProxy) { + if (name == "toJSON") + return collapseProxies; + return Reflect.get( + objects.find( + (obj) => Reflect.has(obj, name) + ) || {}, + name, + thisProxy + ); + }, + set({ objects }, name, value, thisProxy) { + let target; + for (const obj of objects) { + target = keyInPrototypeChain(obj, name); + if (target) + break; + } + if (!target) + target = objects[objects.length - 1]; + const descriptor = Object.getOwnPropertyDescriptor(target, name); + if ((descriptor == null ? void 0 : descriptor.set) && (descriptor == null ? void 0 : descriptor.get)) + return descriptor.set.call(thisProxy, value) || true; + return Reflect.set(target, name, value); + } + }; + function collapseProxies() { + let keys = Reflect.ownKeys(this); + return keys.reduce((acc, key) => { + acc[key] = Reflect.get(this, key); + return acc; + }, {}); + } + function initInterceptors(data2) { + let isObject22 = (val) => typeof val === "object" && !Array.isArray(val) && val !== null; + let recurse = (obj, basePath = "") => { + Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => { + if (enumerable === false || value === void 0) + return; + if (typeof value === "object" && value !== null && value.__v_skip) + return; + let path = basePath === "" ? key : `${basePath}.${key}`; + if (typeof value === "object" && value !== null && value._x_interceptor) { + obj[key] = value.initialize(data2, path, key); + } else { + if (isObject22(value) && value !== obj && !(value instanceof Element)) { + recurse(value, path); + } + } + }); + }; + return recurse(data2); + } + function interceptor(callback, mutateObj = () => { + }) { + let obj = { + initialValue: void 0, + _x_interceptor: true, + initialize(data2, path, key) { + return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key); + } + }; + mutateObj(obj); + return (initialValue) => { + if (typeof initialValue === "object" && initialValue !== null && initialValue._x_interceptor) { + let initialize = obj.initialize.bind(obj); + obj.initialize = (data2, path, key) => { + let innerValue = initialValue.initialize(data2, path, key); + obj.initialValue = innerValue; + return initialize(data2, path, key); + }; + } else { + obj.initialValue = initialValue; + } + return obj; + }; + } + function get(obj, path) { + return path.split(".").reduce((carry, segment) => carry[segment], obj); + } + function set(obj, path, value) { + if (typeof path === "string") + path = path.split("."); + if (path.length === 1) + obj[path[0]] = value; + else if (path.length === 0) + throw error; + else { + if (obj[path[0]]) + return set(obj[path[0]], path.slice(1), value); + else { + obj[path[0]] = {}; + return set(obj[path[0]], path.slice(1), value); + } + } + } + var magics = {}; + function magic(name, callback) { + magics[name] = callback; + } + function injectMagics(obj, el) { + let memoizedUtilities = getUtilities(el); + Object.entries(magics).forEach(([name, callback]) => { + Object.defineProperty(obj, `$${name}`, { + get() { + return callback(el, memoizedUtilities); + }, + enumerable: false + }); + }); + return obj; + } + function getUtilities(el) { + let [utilities, cleanup] = getElementBoundUtilities(el); + let utils = { interceptor, ...utilities }; + onElRemoved(el, cleanup); + return utils; + } + function tryCatch(el, expression, callback, ...args) { + try { + return callback(...args); + } catch (e) { + handleError(e, el, expression); + } + } + function handleError(...args) { + return errorHandler(...args); + } + var errorHandler = normalErrorHandler; + function setErrorHandler(handler4) { + errorHandler = handler4; + } + function normalErrorHandler(error2, el, expression = void 0) { + error2 = Object.assign( + error2 != null ? error2 : { message: "No error message given." }, + { el, expression } + ); + console.warn(`Alpine Expression Error: ${error2.message} + +${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); + setTimeout(() => { + throw error2; + }, 0); + } + var shouldAutoEvaluateFunctions = true; + function dontAutoEvaluateFunctions(callback) { + let cache = shouldAutoEvaluateFunctions; + shouldAutoEvaluateFunctions = false; + let result = callback(); + shouldAutoEvaluateFunctions = cache; + return result; + } + function evaluate(el, expression, extras = {}) { + let result; + evaluateLater(el, expression)((value) => result = value, extras); + return result; + } + function evaluateLater(...args) { + return theEvaluatorFunction(...args); + } + var theEvaluatorFunction = () => { + }; + function setEvaluator(newEvaluator) { + theEvaluatorFunction = newEvaluator; + } + var theRawEvaluatorFunction; + function setRawEvaluator(newEvaluator) { + theRawEvaluatorFunction = newEvaluator; + } + function generateEvaluatorFromFunction(dataStack, func) { + return (receiver = () => { + }, { scope: scope2 = {}, params = [], context } = {}) => { + if (!shouldAutoEvaluateFunctions) { + runIfTypeOfFunction(receiver, func, mergeProxies([scope2, ...dataStack]), params); + return; + } + let result = func.apply(mergeProxies([scope2, ...dataStack]), params); + runIfTypeOfFunction(receiver, result); + }; + } + function runIfTypeOfFunction(receiver, value, scope2, params, el) { + if (shouldAutoEvaluateFunctions && typeof value === "function") { + let result = value.apply(scope2, params); + if (result instanceof Promise) { + result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value)); + } else { + receiver(result); + } + } else if (typeof value === "object" && value instanceof Promise) { + value.then((i) => receiver(i)); + } else { + receiver(value); + } + } + function evaluateRaw(...args) { + return theRawEvaluatorFunction(...args); + } + var prefixAsString = "x-"; + function prefix(subject = "") { + return prefixAsString + subject; + } + function setPrefix(newPrefix) { + prefixAsString = newPrefix; + } + var directiveHandlers = {}; + function directive2(name, callback) { + directiveHandlers[name] = callback; + return { + before(directive22) { + if (!directiveHandlers[directive22]) { + console.warn(String.raw`Cannot find directive \`${directive22}\`. \`${name}\` will use the default order of execution`); + return; + } + const pos = directiveOrder.indexOf(directive22); + directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf("DEFAULT"), 0, name); + } + }; + } + function directiveExists(name) { + return Object.keys(directiveHandlers).includes(name); + } + function directives(el, attributes, originalAttributeOverride) { + attributes = Array.from(attributes); + if (el._x_virtualDirectives) { + let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value })); + let staticAttributes = attributesOnly(vAttributes); + vAttributes = vAttributes.map((attribute) => { + if (staticAttributes.find((attr) => attr.name === attribute.name)) { + return { + name: `x-bind:${attribute.name}`, + value: `"${attribute.value}"` + }; + } + return attribute; + }); + attributes = attributes.concat(vAttributes); + } + let transformedAttributeMap = {}; + let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority); + return directives2.map((directive22) => { + return getDirectiveHandler(el, directive22); + }); + } + function attributesOnly(attributes) { + return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr)); + } + var isDeferringHandlers = false; + var directiveHandlerStacks = /* @__PURE__ */ new Map(); + var currentHandlerStackKey = Symbol(); + function deferHandlingDirectives(callback) { + isDeferringHandlers = true; + let key = Symbol(); + currentHandlerStackKey = key; + directiveHandlerStacks.set(key, []); + let flushHandlers = () => { + while (directiveHandlerStacks.get(key).length) + directiveHandlerStacks.get(key).shift()(); + directiveHandlerStacks.delete(key); + }; + let stopDeferring = () => { + isDeferringHandlers = false; + flushHandlers(); + }; + callback(flushHandlers); + stopDeferring(); + } + function getElementBoundUtilities(el) { + let cleanups2 = []; + let cleanup = (callback) => cleanups2.push(callback); + let [effect3, cleanupEffect] = elementBoundEffect(el); + cleanups2.push(cleanupEffect); + let utilities = { + Alpine: alpine_default, + effect: effect3, + cleanup, + evaluateLater: evaluateLater.bind(evaluateLater, el), + evaluate: evaluate.bind(evaluate, el) + }; + let doCleanup = () => cleanups2.forEach((i) => i()); + return [utilities, doCleanup]; + } + function getDirectiveHandler(el, directive22) { + let noop = () => { + }; + let handler4 = directiveHandlers[directive22.type] || noop; + let [utilities, cleanup] = getElementBoundUtilities(el); + onAttributeRemoved(el, directive22.original, cleanup); + let fullHandler = () => { + if (el._x_ignore || el._x_ignoreSelf) + return; + handler4.inline && handler4.inline(el, directive22, utilities); + handler4 = handler4.bind(handler4, el, directive22, utilities); + isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4(); + }; + fullHandler.runCleanups = cleanup; + return fullHandler; + } + var startingWith = (subject, replacement) => ({ name, value }) => { + if (name.startsWith(subject)) + name = name.replace(subject, replacement); + return { name, value }; + }; + var into = (i) => i; + function toTransformedAttributes(callback = () => { + }) { + return ({ name, value }) => { + let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => { + return transform(carry); + }, { name, value }); + if (newName !== name) + callback(newName, name); + return { name: newName, value: newValue }; + }; + } + var attributeTransformers = []; + function mapAttributes(callback) { + attributeTransformers.push(callback); + } + function outNonAlpineAttributes({ name }) { + return alpineAttributeRegex().test(name); + } + var alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\b`); + function toParsedDirectives(transformedAttributeMap, originalAttributeOverride) { + return ({ name, value }) => { + if (name === value) + value = ""; + let typeMatch = name.match(alpineAttributeRegex()); + let valueMatch = name.match(/:([a-zA-Z0-9\-_:]+)/); + let modifiers = name.match(/\.[^.\]]+(?=[^\]]*$)/g) || []; + let original = originalAttributeOverride || transformedAttributeMap[name] || name; + return { + type: typeMatch ? typeMatch[1] : null, + value: valueMatch ? valueMatch[1] : null, + modifiers: modifiers.map((i) => i.replace(".", "")), + expression: value, + original + }; + }; + } + var DEFAULT = "DEFAULT"; + var directiveOrder = [ + "ignore", + "ref", + "id", + "data", + "anchor", + "bind", + "init", + "for", + "model", + "modelable", + "transition", + "show", + "if", + DEFAULT, + "teleport" + ]; + function byPriority(a, b) { + let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type; + let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type; + return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB); + } + function dispatch3(el, name, detail = {}, options = {}) { + return el.dispatchEvent( + new CustomEvent(name, { + detail, + bubbles: true, + composed: true, + cancelable: true, + ...options + }) + ); + } + function walk(el, callback) { + if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) { + Array.from(el.children).forEach((el2) => walk(el2, callback)); + return; + } + let skip = false; + callback(el, () => skip = true); + if (skip) + return; + let node = el.firstElementChild; + while (node) { + walk(node, callback, false); + node = node.nextElementSibling; + } + } + function warn(message, ...args) { + console.warn(`Alpine Warning: ${message}`, ...args); + } + var started = false; + function start2() { + if (started) + warn("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."); + started = true; + if (!document.body) + warn("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?"); + dispatch3(document, "alpine:init"); + dispatch3(document, "alpine:initializing"); + startObservingMutations(); + onElAdded((el) => initTree(el, walk)); + onElRemoved((el) => destroyTree(el)); + onAttributesAdded((el, attrs) => { + directives(el, attrs).forEach((handle) => handle()); + }); + let outNestedComponents = (el) => !closestRoot(el.parentElement, true); + Array.from(document.querySelectorAll(allSelectors().join(","))).filter(outNestedComponents).forEach((el) => { + initTree(el); + }); + dispatch3(document, "alpine:initialized"); + setTimeout(() => { + warnAboutMissingPlugins(); + }); + } + var rootSelectorCallbacks = []; + var initSelectorCallbacks = []; + function rootSelectors() { + return rootSelectorCallbacks.map((fn) => fn()); + } + function allSelectors() { + return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn()); + } + function addRootSelector(selectorCallback) { + rootSelectorCallbacks.push(selectorCallback); + } + function addInitSelector(selectorCallback) { + initSelectorCallbacks.push(selectorCallback); + } + function closestRoot(el, includeInitSelectors = false) { + return findClosest(el, (element) => { + const selectors = includeInitSelectors ? allSelectors() : rootSelectors(); + if (selectors.some((selector) => element.matches(selector))) + return true; + }); + } + function findClosest(el, callback) { + if (!el) + return; + if (callback(el)) + return el; + if (el._x_teleportBack) + return findClosest(el._x_teleportBack, callback); + if (el.parentNode instanceof ShadowRoot) { + return findClosest(el.parentNode.host, callback); + } + if (!el.parentElement) + return; + return findClosest(el.parentElement, callback); + } + function isRoot(el) { + return rootSelectors().some((selector) => el.matches(selector)); + } + var initInterceptors2 = []; + function interceptInit(callback) { + initInterceptors2.push(callback); + } + var markerDispenser = 1; + function initTree(el, walker = walk, intercept = () => { + }) { + if (findClosest(el, (i) => i._x_ignore)) + return; + deferHandlingDirectives(() => { + walker(el, (el2, skip) => { + if (el2._x_marker) + return; + intercept(el2, skip); + initInterceptors2.forEach((i) => i(el2, skip)); + directives(el2, el2.attributes).forEach((handle) => handle()); + if (!el2._x_ignore) + el2._x_marker = markerDispenser++; + el2._x_ignore && skip(); + }); + }); + } + function destroyTree(root, walker = walk) { + walker(root, (el) => { + cleanupElement(el); + cleanupAttributes(el); + delete el._x_marker; + }); + } + function warnAboutMissingPlugins() { + let pluginDirectives = [ + ["ui", "dialog", ["[x-dialog], [x-popover]"]], + ["anchor", "anchor", ["[x-anchor]"]], + ["sort", "sort", ["[x-sort]"]] + ]; + pluginDirectives.forEach(([plugin2, directive22, selectors]) => { + if (directiveExists(directive22)) + return; + selectors.some((selector) => { + if (document.querySelector(selector)) { + warn(`found "${selector}", but missing ${plugin2} plugin`); + return true; + } + }); + }); + } + var tickStack = []; + var isHolding = false; + function nextTick(callback = () => { + }) { + queueMicrotask(() => { + isHolding || setTimeout(() => { + releaseNextTicks(); + }); + }); + return new Promise((res) => { + tickStack.push(() => { + callback(); + res(); + }); + }); + } + function releaseNextTicks() { + isHolding = false; + while (tickStack.length) + tickStack.shift()(); + } + function holdNextTicks() { + isHolding = true; + } + function setClasses(el, value) { + if (Array.isArray(value)) { + return setClassesFromString(el, value.join(" ")); + } else if (typeof value === "object" && value !== null) { + return setClassesFromObject(el, value); + } else if (typeof value === "function") { + return setClasses(el, value()); + } + return setClassesFromString(el, value); + } + function splitClasses(classString) { + return classString.split(/\s/).filter(Boolean); + } + function setClassesFromString(el, classString) { + let missingClasses = (classString2) => splitClasses(classString2).filter((i) => !el.classList.contains(i)).filter(Boolean); + let addClassesAndReturnUndo = (classes) => { + el.classList.add(...classes); + return () => { + el.classList.remove(...classes); + }; + }; + classString = classString === true ? classString = "" : classString || ""; + return addClassesAndReturnUndo(missingClasses(classString)); + } + function setClassesFromObject(el, classObject) { + let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? splitClasses(classString) : false).filter(Boolean); + let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? splitClasses(classString) : false).filter(Boolean); + let added = []; + let removed = []; + forRemove.forEach((i) => { + if (el.classList.contains(i)) { + el.classList.remove(i); + removed.push(i); + } + }); + forAdd.forEach((i) => { + if (!el.classList.contains(i)) { + el.classList.add(i); + added.push(i); + } + }); + return () => { + removed.forEach((i) => el.classList.add(i)); + added.forEach((i) => el.classList.remove(i)); + }; + } + function setStyles(el, value) { + if (typeof value === "object" && value !== null) { + return setStylesFromObject(el, value); + } + return setStylesFromString(el, value); + } + function setStylesFromObject(el, value) { + let previousStyles = {}; + Object.entries(value).forEach(([key, value2]) => { + previousStyles[key] = el.style[key]; + if (!key.startsWith("--")) { + key = kebabCase(key); + } + el.style.setProperty(key, value2); + }); + setTimeout(() => { + if (el.style.length === 0) { + el.removeAttribute("style"); + } + }); + return () => { + setStyles(el, previousStyles); + }; + } + function setStylesFromString(el, value) { + let cache = el.getAttribute("style", value); + el.setAttribute("style", value); + return () => { + el.setAttribute("style", cache || ""); + }; + } + function kebabCase(subject) { + return subject.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); + } + function once(callback, fallback2 = () => { + }) { + let called = false; + return function() { + if (!called) { + called = true; + callback.apply(this, arguments); + } else { + fallback2.apply(this, arguments); + } + }; + } + directive2("transition", (el, { value, modifiers, expression }, { evaluate: evaluate2 }) => { + if (typeof expression === "function") + expression = evaluate2(expression); + if (expression === false) + return; + if (!expression || typeof expression === "boolean") { + registerTransitionsFromHelper(el, modifiers, value); + } else { + registerTransitionsFromClassString(el, expression, value); + } + }); + function registerTransitionsFromClassString(el, classString, stage) { + registerTransitionObject(el, setClasses, ""); + let directiveStorageMap = { + "enter": (classes) => { + el._x_transition.enter.during = classes; + }, + "enter-start": (classes) => { + el._x_transition.enter.start = classes; + }, + "enter-end": (classes) => { + el._x_transition.enter.end = classes; + }, + "leave": (classes) => { + el._x_transition.leave.during = classes; + }, + "leave-start": (classes) => { + el._x_transition.leave.start = classes; + }, + "leave-end": (classes) => { + el._x_transition.leave.end = classes; + } + }; + directiveStorageMap[stage](classString); + } + function registerTransitionsFromHelper(el, modifiers, stage) { + registerTransitionObject(el, setStyles); + let doesntSpecify = !modifiers.includes("in") && !modifiers.includes("out") && !stage; + let transitioningIn = doesntSpecify || modifiers.includes("in") || ["enter"].includes(stage); + let transitioningOut = doesntSpecify || modifiers.includes("out") || ["leave"].includes(stage); + if (modifiers.includes("in") && !doesntSpecify) { + modifiers = modifiers.filter((i, index) => index < modifiers.indexOf("out")); + } + if (modifiers.includes("out") && !doesntSpecify) { + modifiers = modifiers.filter((i, index) => index > modifiers.indexOf("out")); + } + let wantsAll = !modifiers.includes("opacity") && !modifiers.includes("scale"); + let wantsOpacity = wantsAll || modifiers.includes("opacity"); + let wantsScale = wantsAll || modifiers.includes("scale"); + let opacityValue = wantsOpacity ? 0 : 1; + let scaleValue = wantsScale ? modifierValue(modifiers, "scale", 95) / 100 : 1; + let delay = modifierValue(modifiers, "delay", 0) / 1e3; + let origin = modifierValue(modifiers, "origin", "center"); + let property = "opacity, transform"; + let durationIn = modifierValue(modifiers, "duration", 150) / 1e3; + let durationOut = modifierValue(modifiers, "duration", 75) / 1e3; + let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`; + if (transitioningIn) { + el._x_transition.enter.during = { + transformOrigin: origin, + transitionDelay: `${delay}s`, + transitionProperty: property, + transitionDuration: `${durationIn}s`, + transitionTimingFunction: easing + }; + el._x_transition.enter.start = { + opacity: opacityValue, + transform: `scale(${scaleValue})` + }; + el._x_transition.enter.end = { + opacity: 1, + transform: `scale(1)` + }; + } + if (transitioningOut) { + el._x_transition.leave.during = { + transformOrigin: origin, + transitionDelay: `${delay}s`, + transitionProperty: property, + transitionDuration: `${durationOut}s`, + transitionTimingFunction: easing + }; + el._x_transition.leave.start = { + opacity: 1, + transform: `scale(1)` + }; + el._x_transition.leave.end = { + opacity: opacityValue, + transform: `scale(${scaleValue})` + }; + } + } + function registerTransitionObject(el, setFunction, defaultValue = {}) { + if (!el._x_transition) + el._x_transition = { + enter: { during: defaultValue, start: defaultValue, end: defaultValue }, + leave: { during: defaultValue, start: defaultValue, end: defaultValue }, + in(before = () => { + }, after = () => { + }) { + transition(el, setFunction, { + during: this.enter.during, + start: this.enter.start, + end: this.enter.end + }, before, after); + }, + out(before = () => { + }, after = () => { + }) { + transition(el, setFunction, { + during: this.leave.during, + start: this.leave.start, + end: this.leave.end + }, before, after); + } + }; + } + window.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) { + const nextTick2 = document.visibilityState === "visible" ? requestAnimationFrame : setTimeout; + let clickAwayCompatibleShow = () => nextTick2(show); + if (value) { + if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) { + el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow(); + } else { + el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow(); + } + return; + } + el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => { + el._x_transition.out(() => { + }, () => resolve(hide)); + el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true })); + }) : Promise.resolve(hide); + queueMicrotask(() => { + let closest = closestHide(el); + if (closest) { + if (!closest._x_hideChildren) + closest._x_hideChildren = []; + closest._x_hideChildren.push(el); + } else { + nextTick2(() => { + let hideAfterChildren = (el2) => { + let carry = Promise.all([ + el2._x_hidePromise, + ...(el2._x_hideChildren || []).map(hideAfterChildren) + ]).then(([i]) => i == null ? void 0 : i()); + delete el2._x_hidePromise; + delete el2._x_hideChildren; + return carry; + }; + hideAfterChildren(el).catch((e) => { + if (!e.isFromCancelledTransition) + throw e; + }); + }); + } + }); + }; + function closestHide(el) { + let parent = el.parentNode; + if (!parent) + return; + return parent._x_hidePromise ? parent : closestHide(parent); + } + function transition(el, setFunction, { during, start: start22, end } = {}, before = () => { + }, after = () => { + }) { + if (el._x_transitioning) + el._x_transitioning.cancel(); + if (Object.keys(during).length === 0 && Object.keys(start22).length === 0 && Object.keys(end).length === 0) { + before(); + after(); + return; + } + let undoStart, undoDuring, undoEnd; + performTransition(el, { + start() { + undoStart = setFunction(el, start22); + }, + during() { + undoDuring = setFunction(el, during); + }, + before, + end() { + undoStart(); + undoEnd = setFunction(el, end); + }, + after, + cleanup() { + undoDuring(); + undoEnd(); + } + }); + } + function performTransition(el, stages) { + let interrupted, reachedBefore, reachedEnd; + let finish = once(() => { + mutateDom(() => { + interrupted = true; + if (!reachedBefore) + stages.before(); + if (!reachedEnd) { + stages.end(); + releaseNextTicks(); + } + stages.after(); + if (el.isConnected) + stages.cleanup(); + delete el._x_transitioning; + }); + }); + el._x_transitioning = { + beforeCancels: [], + beforeCancel(callback) { + this.beforeCancels.push(callback); + }, + cancel: once(function() { + while (this.beforeCancels.length) { + this.beforeCancels.shift()(); + } + ; + finish(); + }), + finish + }; + mutateDom(() => { + stages.start(); + stages.during(); + }); + holdNextTicks(); + requestAnimationFrame(() => { + if (interrupted) + return; + let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, "").replace("s", "")) * 1e3; + let delay = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, "").replace("s", "")) * 1e3; + if (duration === 0) + duration = Number(getComputedStyle(el).animationDuration.replace("s", "")) * 1e3; + mutateDom(() => { + stages.before(); + }); + reachedBefore = true; + requestAnimationFrame(() => { + if (interrupted) + return; + mutateDom(() => { + stages.end(); + }); + releaseNextTicks(); + setTimeout(el._x_transitioning.finish, duration + delay); + reachedEnd = true; + }); + }); + } + function modifierValue(modifiers, key, fallback2) { + if (modifiers.indexOf(key) === -1) + return fallback2; + const rawValue = modifiers[modifiers.indexOf(key) + 1]; + if (!rawValue) + return fallback2; + if (key === "scale") { + if (isNaN(rawValue)) + return fallback2; + } + if (key === "duration" || key === "delay") { + let match = rawValue.match(/([0-9]+)ms/); + if (match) + return match[1]; + } + if (key === "origin") { + if (["top", "right", "left", "center", "bottom"].includes(modifiers[modifiers.indexOf(key) + 2])) { + return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(" "); + } + } + return rawValue; + } + var isCloning = false; + function skipDuringClone(callback, fallback2 = () => { + }) { + return (...args) => isCloning ? fallback2(...args) : callback(...args); + } + function onlyDuringClone(callback) { + return (...args) => isCloning && callback(...args); + } + var interceptors2 = []; + function interceptClone(callback) { + interceptors2.push(callback); + } + function cloneNode(from, to) { + interceptors2.forEach((i) => i(from, to)); + isCloning = true; + dontRegisterReactiveSideEffects(() => { + initTree(to, (el, callback) => { + callback(el, () => { + }); + }); + }); + isCloning = false; + } + var isCloningLegacy = false; + function clone(oldEl, newEl) { + if (!newEl._x_dataStack) + newEl._x_dataStack = oldEl._x_dataStack; + isCloning = true; + isCloningLegacy = true; + dontRegisterReactiveSideEffects(() => { + cloneTree(newEl); + }); + isCloning = false; + isCloningLegacy = false; + } + function cloneTree(el) { + let hasRunThroughFirstEl = false; + let shallowWalker = (el2, callback) => { + walk(el2, (el3, skip) => { + if (hasRunThroughFirstEl && isRoot(el3)) + return skip(); + hasRunThroughFirstEl = true; + callback(el3, skip); + }); + }; + initTree(el, shallowWalker); + } + function dontRegisterReactiveSideEffects(callback) { + let cache = effect; + overrideEffect((callback2, el) => { + let storedEffect = cache(callback2); + release(storedEffect); + return () => { + }; + }); + callback(); + overrideEffect(cache); + } + function bind(el, name, value, modifiers = []) { + if (!el._x_bindings) + el._x_bindings = reactive({}); + el._x_bindings[name] = value; + name = modifiers.includes("camel") ? camelCase(name) : name; + switch (name) { + case "value": + bindInputValue(el, value); + break; + case "style": + bindStyles(el, value); + break; + case "class": + bindClasses(el, value); + break; + case "selected": + case "checked": + bindAttributeAndProperty(el, name, value); + break; + default: + bindAttribute(el, name, value); + break; + } + } + function bindInputValue(el, value) { + if (isRadio(el)) { + if (el.attributes.value === void 0) { + el.value = value; + } + } else if (isCheckbox(el)) { + if (Number.isInteger(value)) { + el.value = value; + } else if (!Array.isArray(value) && typeof value !== "boolean" && ![null, void 0].includes(value)) { + el.value = String(value); + } else { + if (Array.isArray(value)) { + el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value)); + } else { + el.checked = !!value; + } + } + } else if (el.tagName === "SELECT") { + updateSelect(el, value); + } else { + if (el.value === value) + return; + el.value = value === void 0 ? "" : value; + } + } + function bindClasses(el, value) { + if (el._x_undoAddedClasses) + el._x_undoAddedClasses(); + el._x_undoAddedClasses = setClasses(el, value); + } + function bindStyles(el, value) { + if (el._x_undoAddedStyles) + el._x_undoAddedStyles(); + el._x_undoAddedStyles = setStyles(el, value); + } + function bindAttributeAndProperty(el, name, value) { + bindAttribute(el, name, value); + setPropertyIfChanged(el, name, value); + } + function bindAttribute(el, name, value) { + if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) { + el.removeAttribute(name); + } else { + if (isBooleanAttr(name)) + value = name; + setIfChanged(el, name, value); + } + } + function setIfChanged(el, attrName, value) { + if (el.getAttribute(attrName) != value) { + el.setAttribute(attrName, value); + } + } + function setPropertyIfChanged(el, propName, value) { + if (el[propName] !== value) { + el[propName] = value; + } + } + function updateSelect(el, value) { + const arrayWrappedValue = [].concat(value).map((value2) => { + return value2 + ""; + }); + Array.from(el.options).forEach((option) => { + option.selected = arrayWrappedValue.includes(option.value); + }); + } + function camelCase(subject) { + return subject.toLowerCase().replace(/-(\w)/g, (match, char) => char.toUpperCase()); + } + function checkedAttrLooseCompare(valueA, valueB) { + return valueA == valueB; + } + function safeParseBoolean(rawValue) { + if ([1, "1", "true", "on", "yes", true].includes(rawValue)) { + return true; + } + if ([0, "0", "false", "off", "no", false].includes(rawValue)) { + return false; + } + return rawValue ? Boolean(rawValue) : null; + } + var booleanAttributes = /* @__PURE__ */ new Set([ + "allowfullscreen", + "async", + "autofocus", + "autoplay", + "checked", + "controls", + "default", + "defer", + "disabled", + "formnovalidate", + "inert", + "ismap", + "itemscope", + "loop", + "multiple", + "muted", + "nomodule", + "novalidate", + "open", + "playsinline", + "readonly", + "required", + "reversed", + "selected", + "shadowrootclonable", + "shadowrootdelegatesfocus", + "shadowrootserializable" + ]); + function isBooleanAttr(attrName) { + return booleanAttributes.has(attrName); + } + function attributeShouldntBePreservedIfFalsy(name) { + return !["aria-pressed", "aria-checked", "aria-expanded", "aria-selected"].includes(name); + } + function getBinding(el, name, fallback2) { + if (el._x_bindings && el._x_bindings[name] !== void 0) + return el._x_bindings[name]; + return getAttributeBinding(el, name, fallback2); + } + function extractProp(el, name, fallback2, extract = true) { + if (el._x_bindings && el._x_bindings[name] !== void 0) + return el._x_bindings[name]; + if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) { + let binding = el._x_inlineBindings[name]; + binding.extract = extract; + return dontAutoEvaluateFunctions(() => { + return evaluate(el, binding.expression); + }); + } + return getAttributeBinding(el, name, fallback2); + } + function getAttributeBinding(el, name, fallback2) { + let attr = el.getAttribute(name); + if (attr === null) + return typeof fallback2 === "function" ? fallback2() : fallback2; + if (attr === "") + return true; + if (isBooleanAttr(name)) { + return !![name, "true"].includes(attr); + } + return attr; + } + function isCheckbox(el) { + return el.type === "checkbox" || el.localName === "ui-checkbox" || el.localName === "ui-switch"; + } + function isRadio(el) { + return el.type === "radio" || el.localName === "ui-radio"; + } + function debounce2(func, wait) { + let timeout; + return function() { + const context = this, args = arguments; + const later = function() { + timeout = null; + func.apply(context, args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; + } + function throttle2(func, limit) { + let inThrottle; + return function() { + let context = this, args = arguments; + if (!inThrottle) { + func.apply(context, args); + inThrottle = true; + setTimeout(() => inThrottle = false, limit); + } + }; + } + function entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) { + let firstRun = true; + let outerHash; + let innerHash; + let reference = effect(() => { + let outer = outerGet(); + let inner = innerGet(); + if (firstRun) { + innerSet(cloneIfObject2(outer)); + firstRun = false; + } else { + let outerHashLatest = JSON.stringify(outer); + let innerHashLatest = JSON.stringify(inner); + if (outerHashLatest !== outerHash) { + innerSet(cloneIfObject2(outer)); + } else if (outerHashLatest !== innerHashLatest) { + outerSet(cloneIfObject2(inner)); + } else { + } + } + outerHash = JSON.stringify(outerGet()); + innerHash = JSON.stringify(innerGet()); + }); + return () => { + release(reference); + }; + } + function cloneIfObject2(value) { + return typeof value === "object" ? JSON.parse(JSON.stringify(value)) : value; + } + function plugin(callback) { + let callbacks = Array.isArray(callback) ? callback : [callback]; + callbacks.forEach((i) => i(alpine_default)); + } + var stores = {}; + var isReactive = false; + function store(name, value) { + if (!isReactive) { + stores = reactive(stores); + isReactive = true; + } + if (value === void 0) { + return stores[name]; + } + stores[name] = value; + initInterceptors(stores[name]); + if (typeof value === "object" && value !== null && value.hasOwnProperty("init") && typeof value.init === "function") { + stores[name].init(); + } + } + function getStores() { + return stores; + } + var binds = {}; + function bind2(name, bindings) { + let getBindings = typeof bindings !== "function" ? () => bindings : bindings; + if (name instanceof Element) { + return applyBindingsObject(name, getBindings()); + } else { + binds[name] = getBindings; + } + return () => { + }; + } + function injectBindingProviders(obj) { + Object.entries(binds).forEach(([name, callback]) => { + Object.defineProperty(obj, name, { + get() { + return (...args) => { + return callback(...args); + }; + } + }); + }); + return obj; + } + function applyBindingsObject(el, obj, original) { + let cleanupRunners = []; + while (cleanupRunners.length) + cleanupRunners.pop()(); + let attributes = Object.entries(obj).map(([name, value]) => ({ name, value })); + let staticAttributes = attributesOnly(attributes); + attributes = attributes.map((attribute) => { + if (staticAttributes.find((attr) => attr.name === attribute.name)) { + return { + name: `x-bind:${attribute.name}`, + value: `"${attribute.value}"` + }; + } + return attribute; + }); + directives(el, attributes, original).map((handle) => { + cleanupRunners.push(handle.runCleanups); + handle(); + }); + return () => { + while (cleanupRunners.length) + cleanupRunners.pop()(); + }; + } + var datas = {}; + function data(name, callback) { + datas[name] = callback; + } + function injectDataProviders(obj, context) { + Object.entries(datas).forEach(([name, callback]) => { + Object.defineProperty(obj, name, { + get() { + return (...args) => { + return callback.bind(context)(...args); + }; + }, + enumerable: false + }); + }); + return obj; + } + var Alpine25 = { + get reactive() { + return reactive; + }, + get release() { + return release; + }, + get effect() { + return effect; + }, + get raw() { + return raw; + }, + get transaction() { + return transaction; + }, + version: "3.15.12", + flushAndStopDeferringMutations, + dontAutoEvaluateFunctions, + disableEffectScheduling, + startObservingMutations, + stopObservingMutations, + setReactivityEngine, + onAttributeRemoved, + onAttributesAdded, + closestDataStack, + skipDuringClone, + onlyDuringClone, + addRootSelector, + addInitSelector, + setErrorHandler, + interceptClone, + addScopeToNode, + deferMutations, + mapAttributes, + evaluateLater, + interceptInit, + initInterceptors, + injectMagics, + setEvaluator, + setRawEvaluator, + mergeProxies, + extractProp, + findClosest, + onElRemoved, + closestRoot, + destroyTree, + interceptor, + transition, + setStyles, + mutateDom, + directive: directive2, + entangle, + throttle: throttle2, + debounce: debounce2, + evaluate, + evaluateRaw, + initTree, + nextTick, + prefixed: prefix, + prefix: setPrefix, + plugin, + magic, + store, + start: start2, + clone, + cloneNode, + bound: getBinding, + $data: scope, + watch, + walk, + data, + bind: bind2 + }; + var alpine_default = Alpine25; + var safemap = /* @__PURE__ */ new WeakMap(); + var globals = /* @__PURE__ */ new Set(); + Object.getOwnPropertyNames(globalThis).forEach((key) => { + if (key === "styleMedia" || key === "sharedStorage") + return; + globals.add(globalThis[key]); + }); + var Token = class { + constructor(type, value, start22, end) { + this.type = type; + this.value = value; + this.start = start22; + this.end = end; + } + }; + var Tokenizer = class { + constructor(input) { + this.input = input; + this.position = 0; + this.tokens = []; + } + tokenize() { + while (this.position < this.input.length) { + this.skipWhitespace(); + if (this.position >= this.input.length) + break; + const char = this.input[this.position]; + if (this.isDigit(char)) { + this.readNumber(); + } else if (this.isAlpha(char) || char === "_" || char === "$") { + this.readIdentifierOrKeyword(); + } else if (char === '"' || char === "'") { + this.readString(); + } else if (char === "/" && this.peek() === "/") { + this.skipLineComment(); + } else { + this.readOperatorOrPunctuation(); + } + } + this.tokens.push(new Token("EOF", null, this.position, this.position)); + return this.tokens; + } + skipWhitespace() { + while (this.position < this.input.length && /\s/.test(this.input[this.position])) { + this.position++; + } + } + skipLineComment() { + while (this.position < this.input.length && this.input[this.position] !== "\n") { + this.position++; + } + } + isDigit(char) { + return /[0-9]/.test(char); + } + isAlpha(char) { + return /[a-zA-Z]/.test(char); + } + isAlphaNumeric(char) { + return /[a-zA-Z0-9_$]/.test(char); + } + peek(offset = 1) { + return this.input[this.position + offset] || ""; + } + readNumber() { + const start22 = this.position; + let hasDecimal = false; + while (this.position < this.input.length) { + const char = this.input[this.position]; + if (this.isDigit(char)) { + this.position++; + } else if (char === "." && !hasDecimal) { + hasDecimal = true; + this.position++; + } else { + break; + } + } + const value = this.input.slice(start22, this.position); + this.tokens.push(new Token("NUMBER", parseFloat(value), start22, this.position)); + } + readIdentifierOrKeyword() { + const start22 = this.position; + while (this.position < this.input.length && this.isAlphaNumeric(this.input[this.position])) { + this.position++; + } + const value = this.input.slice(start22, this.position); + const keywords = ["true", "false", "null", "undefined", "new", "typeof", "void", "delete", "in", "instanceof"]; + if (keywords.includes(value)) { + if (value === "true" || value === "false") { + this.tokens.push(new Token("BOOLEAN", value === "true", start22, this.position)); + } else if (value === "null") { + this.tokens.push(new Token("NULL", null, start22, this.position)); + } else if (value === "undefined") { + this.tokens.push(new Token("UNDEFINED", void 0, start22, this.position)); + } else { + this.tokens.push(new Token("KEYWORD", value, start22, this.position)); + } + } else { + this.tokens.push(new Token("IDENTIFIER", value, start22, this.position)); + } + } + readString() { + const start22 = this.position; + const quote = this.input[this.position]; + this.position++; + let value = ""; + let escaped = false; + while (this.position < this.input.length) { + const char = this.input[this.position]; + if (escaped) { + switch (char) { + case "n": + value += "\n"; + break; + case "t": + value += " "; + break; + case "r": + value += "\r"; + break; + case "\\": + value += "\\"; + break; + case quote: + value += quote; + break; + default: + value += char; + } + escaped = false; + } else if (char === "\\") { + escaped = true; + } else if (char === quote) { + this.position++; + this.tokens.push(new Token("STRING", value, start22, this.position)); + return; + } else { + value += char; + } + this.position++; + } + throw new Error(`Unterminated string starting at position ${start22}`); + } + readOperatorOrPunctuation() { + const start22 = this.position; + const char = this.input[this.position]; + const next = this.peek(); + const nextNext = this.peek(2); + if (char === "=" && next === "=" && nextNext === "=") { + this.position += 3; + this.tokens.push(new Token("OPERATOR", "===", start22, this.position)); + } else if (char === "!" && next === "=" && nextNext === "=") { + this.position += 3; + this.tokens.push(new Token("OPERATOR", "!==", start22, this.position)); + } else if (char === "=" && next === "=") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "==", start22, this.position)); + } else if (char === "!" && next === "=") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "!=", start22, this.position)); + } else if (char === "<" && next === "=") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "<=", start22, this.position)); + } else if (char === ">" && next === "=") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", ">=", start22, this.position)); + } else if (char === "&" && next === "&") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "&&", start22, this.position)); + } else if (char === "|" && next === "|") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "||", start22, this.position)); + } else if (char === "+" && next === "+") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "++", start22, this.position)); + } else if (char === "-" && next === "-") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "--", start22, this.position)); + } else { + this.position++; + const type = "()[]{},.;:?".includes(char) ? "PUNCTUATION" : "OPERATOR"; + this.tokens.push(new Token(type, char, start22, this.position)); + } + } + }; + var Parser = class { + constructor(tokens) { + this.tokens = tokens; + this.position = 0; + } + parse() { + if (this.isAtEnd()) { + throw new Error("Empty expression"); + } + const expr = this.parseExpression(); + this.match("PUNCTUATION", ";"); + if (!this.isAtEnd()) { + throw new Error(`Unexpected token: ${this.current().value}`); + } + return expr; + } + parseExpression() { + return this.parseAssignment(); + } + parseAssignment() { + const expr = this.parseTernary(); + if (this.match("OPERATOR", "=")) { + const value = this.parseAssignment(); + if (expr.type === "Identifier" || expr.type === "MemberExpression") { + return { + type: "AssignmentExpression", + left: expr, + operator: "=", + right: value + }; + } + throw new Error("Invalid assignment target"); + } + return expr; + } + parseTernary() { + const expr = this.parseLogicalOr(); + if (this.match("PUNCTUATION", "?")) { + const consequent = this.parseExpression(); + this.consume("PUNCTUATION", ":"); + const alternate = this.parseExpression(); + return { + type: "ConditionalExpression", + test: expr, + consequent, + alternate + }; + } + return expr; + } + parseLogicalOr() { + let expr = this.parseLogicalAnd(); + while (this.match("OPERATOR", "||")) { + const operator = this.previous().value; + const right = this.parseLogicalAnd(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseLogicalAnd() { + let expr = this.parseEquality(); + while (this.match("OPERATOR", "&&")) { + const operator = this.previous().value; + const right = this.parseEquality(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseEquality() { + let expr = this.parseRelational(); + while (this.match("OPERATOR", "==", "!=", "===", "!==")) { + const operator = this.previous().value; + const right = this.parseRelational(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseRelational() { + let expr = this.parseAdditive(); + while (this.match("OPERATOR", "<", ">", "<=", ">=")) { + const operator = this.previous().value; + const right = this.parseAdditive(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseAdditive() { + let expr = this.parseMultiplicative(); + while (this.match("OPERATOR", "+", "-")) { + const operator = this.previous().value; + const right = this.parseMultiplicative(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseMultiplicative() { + let expr = this.parseUnary(); + while (this.match("OPERATOR", "*", "/", "%")) { + const operator = this.previous().value; + const right = this.parseUnary(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseUnary() { + if (this.match("OPERATOR", "++", "--")) { + const operator = this.previous().value; + const argument = this.parseUnary(); + return { + type: "UpdateExpression", + operator, + argument, + prefix: true + }; + } + if (this.match("OPERATOR", "!", "-", "+")) { + const operator = this.previous().value; + const argument = this.parseUnary(); + return { + type: "UnaryExpression", + operator, + argument, + prefix: true + }; + } + return this.parsePostfix(); + } + parsePostfix() { + let expr = this.parseMember(); + if (this.match("OPERATOR", "++", "--")) { + const operator = this.previous().value; + return { + type: "UpdateExpression", + operator, + argument: expr, + prefix: false + }; + } + return expr; + } + parseMember() { + let expr = this.parsePrimary(); + while (true) { + if (this.match("PUNCTUATION", ".")) { + const property = this.consume("IDENTIFIER"); + expr = { + type: "MemberExpression", + object: expr, + property: { type: "Identifier", name: property.value }, + computed: false + }; + } else if (this.match("PUNCTUATION", "[")) { + const property = this.parseExpression(); + this.consume("PUNCTUATION", "]"); + expr = { + type: "MemberExpression", + object: expr, + property, + computed: true + }; + } else if (this.match("PUNCTUATION", "(")) { + const args = this.parseArguments(); + expr = { + type: "CallExpression", + callee: expr, + arguments: args + }; + } else { + break; + } + } + return expr; + } + parseArguments() { + const args = []; + if (!this.check("PUNCTUATION", ")")) { + do { + args.push(this.parseExpression()); + } while (this.match("PUNCTUATION", ",")); + } + this.consume("PUNCTUATION", ")"); + return args; + } + parsePrimary() { + if (this.match("NUMBER")) { + return { type: "Literal", value: this.previous().value }; + } + if (this.match("STRING")) { + return { type: "Literal", value: this.previous().value }; + } + if (this.match("BOOLEAN")) { + return { type: "Literal", value: this.previous().value }; + } + if (this.match("NULL")) { + return { type: "Literal", value: null }; + } + if (this.match("UNDEFINED")) { + return { type: "Literal", value: void 0 }; + } + if (this.match("IDENTIFIER")) { + return { type: "Identifier", name: this.previous().value }; + } + if (this.match("PUNCTUATION", "(")) { + const expr = this.parseExpression(); + this.consume("PUNCTUATION", ")"); + return expr; + } + if (this.match("PUNCTUATION", "[")) { + return this.parseArrayLiteral(); + } + if (this.match("PUNCTUATION", "{")) { + return this.parseObjectLiteral(); + } + throw new Error(`Unexpected token: ${this.current().type} "${this.current().value}"`); + } + parseArrayLiteral() { + const elements = []; + while (!this.check("PUNCTUATION", "]") && !this.isAtEnd()) { + elements.push(this.parseExpression()); + if (this.match("PUNCTUATION", ",")) { + if (this.check("PUNCTUATION", "]")) { + break; + } + } else { + break; + } + } + this.consume("PUNCTUATION", "]"); + return { + type: "ArrayExpression", + elements + }; + } + parseObjectLiteral() { + const properties2 = []; + while (!this.check("PUNCTUATION", "}") && !this.isAtEnd()) { + let key; + let computed = false; + if (this.match("STRING")) { + key = { type: "Literal", value: this.previous().value }; + } else if (this.match("IDENTIFIER")) { + const name = this.previous().value; + key = { type: "Identifier", name }; + } else if (this.match("PUNCTUATION", "[")) { + key = this.parseExpression(); + computed = true; + this.consume("PUNCTUATION", "]"); + } else { + throw new Error("Expected property key"); + } + this.consume("PUNCTUATION", ":"); + const value = this.parseExpression(); + properties2.push({ + type: "Property", + key, + value, + computed, + shorthand: false + }); + if (this.match("PUNCTUATION", ",")) { + if (this.check("PUNCTUATION", "}")) { + break; + } + } else { + break; + } + } + this.consume("PUNCTUATION", "}"); + return { + type: "ObjectExpression", + properties: properties2 + }; + } + match(...args) { + for (let i = 0; i < args.length; i++) { + const arg = args[i]; + if (i === 0 && args.length > 1) { + const type = arg; + for (let j = 1; j < args.length; j++) { + if (this.check(type, args[j])) { + this.advance(); + return true; + } + } + return false; + } else if (args.length === 1) { + if (this.checkType(arg)) { + this.advance(); + return true; + } + return false; + } + } + return false; + } + check(type, value) { + if (this.isAtEnd()) + return false; + if (value !== void 0) { + return this.current().type === type && this.current().value === value; + } + return this.current().type === type; + } + checkType(type) { + if (this.isAtEnd()) + return false; + return this.current().type === type; + } + advance() { + if (!this.isAtEnd()) + this.position++; + return this.previous(); + } + isAtEnd() { + return this.current().type === "EOF"; + } + current() { + return this.tokens[this.position]; + } + previous() { + return this.tokens[this.position - 1]; + } + consume(type, value) { + if (value !== void 0) { + if (this.check(type, value)) + return this.advance(); + throw new Error(`Expected ${type} "${value}" but got ${this.current().type} "${this.current().value}"`); + } + if (this.check(type)) + return this.advance(); + throw new Error(`Expected ${type} but got ${this.current().type} "${this.current().value}"`); + } + }; + var Evaluator = class { + evaluate({ node, scope: scope2 = {}, context = null, forceBindingRootScopeToFunctions = true }) { + switch (node.type) { + case "Literal": + return node.value; + case "Identifier": + if (node.name in scope2) { + const value2 = scope2[node.name]; + this.checkForDangerousValues(value2); + if (typeof value2 === "function") { + return value2.bind(scope2); + } + return value2; + } + throw new Error(`Undefined variable: ${node.name}`); + case "MemberExpression": + const object = this.evaluate({ node: node.object, scope: scope2, context, forceBindingRootScopeToFunctions }); + if (object == null) { + throw new Error("Cannot read property of null or undefined"); + } + let property; + if (node.computed) { + property = this.evaluate({ node: node.property, scope: scope2, context, forceBindingRootScopeToFunctions }); + } else { + property = node.property.name; + } + this.checkForDangerousKeywords(property); + let memberValue = object[property]; + this.checkForDangerousValues(memberValue); + if (typeof memberValue === "function") { + if (forceBindingRootScopeToFunctions) { + return memberValue.bind(scope2); + } else { + return memberValue.bind(object); + } + } + return memberValue; + case "CallExpression": + const args = node.arguments.map((arg) => this.evaluate({ node: arg, scope: scope2, context, forceBindingRootScopeToFunctions })); + let returnValue; + if (node.callee.type === "MemberExpression") { + const obj = this.evaluate({ node: node.callee.object, scope: scope2, context, forceBindingRootScopeToFunctions }); + let prop; + if (node.callee.computed) { + prop = this.evaluate({ node: node.callee.property, scope: scope2, context, forceBindingRootScopeToFunctions }); + } else { + prop = node.callee.property.name; + } + this.checkForDangerousKeywords(prop); + let func = obj[prop]; + if (typeof func !== "function") { + throw new Error("Value is not a function"); + } + returnValue = func.apply(obj, args); + } else { + if (node.callee.type === "Identifier") { + const name = node.callee.name; + let func; + if (name in scope2) { + func = scope2[name]; + } else { + throw new Error(`Undefined variable: ${name}`); + } + if (typeof func !== "function") { + throw new Error("Value is not a function"); + } + const thisContext = context !== null ? context : scope2; + returnValue = func.apply(thisContext, args); + } else { + const callee = this.evaluate({ node: node.callee, scope: scope2, context, forceBindingRootScopeToFunctions }); + if (typeof callee !== "function") { + throw new Error("Value is not a function"); + } + returnValue = callee.apply(context, args); + } + } + this.checkForDangerousValues(returnValue); + return returnValue; + case "UnaryExpression": + const argument = this.evaluate({ node: node.argument, scope: scope2, context, forceBindingRootScopeToFunctions }); + switch (node.operator) { + case "!": + return !argument; + case "-": + return -argument; + case "+": + return +argument; + default: + throw new Error(`Unknown unary operator: ${node.operator}`); + } + case "UpdateExpression": + if (node.argument.type === "Identifier") { + const name = node.argument.name; + if (!(name in scope2)) { + throw new Error(`Undefined variable: ${name}`); + } + const oldValue = scope2[name]; + if (node.operator === "++") { + scope2[name] = oldValue + 1; + } else if (node.operator === "--") { + scope2[name] = oldValue - 1; + } + return node.prefix ? scope2[name] : oldValue; + } else if (node.argument.type === "MemberExpression") { + const obj = this.evaluate({ node: node.argument.object, scope: scope2, context, forceBindingRootScopeToFunctions }); + const prop = node.argument.computed ? this.evaluate({ node: node.argument.property, scope: scope2, context, forceBindingRootScopeToFunctions }) : node.argument.property.name; + if (this.isDOMObject(obj)) { + throw new Error("Property assignments on DOM objects are prohibited in the CSP build"); + } + this.checkForDangerousKeywords(prop); + const oldValue = obj[prop]; + if (node.operator === "++") { + obj[prop] = oldValue + 1; + } else if (node.operator === "--") { + obj[prop] = oldValue - 1; + } + return node.prefix ? obj[prop] : oldValue; + } + throw new Error("Invalid update expression target"); + case "BinaryExpression": + const left = this.evaluate({ node: node.left, scope: scope2, context, forceBindingRootScopeToFunctions }); + const evalRight = () => this.evaluate({ node: node.right, scope: scope2, context, forceBindingRootScopeToFunctions }); + if (node.operator === "&&") + return left && evalRight(); + if (node.operator === "||") + return left || evalRight(); + const right = evalRight(); + switch (node.operator) { + case "+": + return left + right; + case "-": + return left - right; + case "*": + return left * right; + case "/": + return left / right; + case "%": + return left % right; + case "==": + return left == right; + case "!=": + return left != right; + case "===": + return left === right; + case "!==": + return left !== right; + case "<": + return left < right; + case ">": + return left > right; + case "<=": + return left <= right; + case ">=": + return left >= right; + default: + throw new Error(`Unknown binary operator: ${node.operator}`); + } + case "ConditionalExpression": + const test = this.evaluate({ node: node.test, scope: scope2, context, forceBindingRootScopeToFunctions }); + return test ? this.evaluate({ node: node.consequent, scope: scope2, context, forceBindingRootScopeToFunctions }) : this.evaluate({ node: node.alternate, scope: scope2, context, forceBindingRootScopeToFunctions }); + case "AssignmentExpression": + const value = this.evaluate({ node: node.right, scope: scope2, context, forceBindingRootScopeToFunctions }); + if (node.left.type === "Identifier") { + scope2[node.left.name] = value; + return value; + } else if (node.left.type === "MemberExpression") { + const obj = this.evaluate({ node: node.left.object, scope: scope2, context, forceBindingRootScopeToFunctions }); + const prop = node.left.computed ? this.evaluate({ node: node.left.property, scope: scope2, context, forceBindingRootScopeToFunctions }) : node.left.property.name; + if (this.isDOMObject(obj)) { + throw new Error("Property assignments on DOM objects are prohibited in the CSP build"); + } + this.checkForDangerousKeywords(prop); + obj[prop] = value; + return value; + } + throw new Error("Invalid assignment target"); + case "ArrayExpression": + return node.elements.map((el) => this.evaluate({ node: el, scope: scope2, context, forceBindingRootScopeToFunctions })); + case "ObjectExpression": + const result = {}; + for (const prop of node.properties) { + const key = prop.computed ? this.evaluate({ node: prop.key, scope: scope2, context, forceBindingRootScopeToFunctions }) : prop.key.type === "Identifier" ? prop.key.name : this.evaluate({ node: prop.key, scope: scope2, context, forceBindingRootScopeToFunctions }); + const value2 = this.evaluate({ node: prop.value, scope: scope2, context, forceBindingRootScopeToFunctions }); + result[key] = value2; + } + return result; + default: + throw new Error(`Unknown node type: ${node.type}`); + } + } + isDOMObject(obj) { + return obj instanceof Node || typeof CSSStyleDeclaration !== "undefined" && obj instanceof CSSStyleDeclaration || typeof DOMStringMap !== "undefined" && obj instanceof DOMStringMap || typeof DOMTokenList !== "undefined" && obj instanceof DOMTokenList || typeof NamedNodeMap !== "undefined" && obj instanceof NamedNodeMap; + } + checkForDangerousKeywords(keyword) { + let blacklist = [ + "constructor", + "prototype", + "__proto__", + "__defineGetter__", + "__defineSetter__", + "insertAdjacentHTML", + "setAttribute", + "setAttributeNS", + "setAttributeNode", + "setAttributeNodeNS" + ]; + if (blacklist.includes(keyword)) { + throw new Error(`Accessing "${keyword}" is prohibited in the CSP build`); + } + } + checkForDangerousValues(prop) { + if (prop === null) { + return; + } + if (typeof prop !== "object" && typeof prop !== "function") { + return; + } + if (safemap.has(prop)) { + return; + } + if (prop instanceof HTMLIFrameElement || prop instanceof HTMLScriptElement) { + throw new Error("Accessing iframes and scripts is prohibited in the CSP build"); + } + if (globals.has(prop)) { + throw new Error("Accessing global variables is prohibited in the CSP build"); + } + safemap.set(prop, true); + return true; + } + }; + function generateRuntimeFunction(expression) { + try { + const tokenizer = new Tokenizer(expression); + const tokens = tokenizer.tokenize(); + const parser = new Parser(tokens); + const ast = parser.parse(); + const evaluator = new Evaluator(); + return function(options = {}) { + const { scope: scope2 = {}, context = null, forceBindingRootScopeToFunctions = false } = options; + return evaluator.evaluate({ node: ast, scope: scope2, context, forceBindingRootScopeToFunctions }); + }; + } catch (error2) { + throw new Error(`CSP Parser Error: ${error2.message}`); + } + } + function cspRawEvaluator(el, expression, extras = {}) { + var _a, _b; + let dataStack = generateDataStack(el); + let scope2 = mergeProxies([(_a = extras.scope) != null ? _a : {}, ...dataStack]); + let params = (_b = extras.params) != null ? _b : []; + let evaluate2 = generateRuntimeFunction(expression); + let result = evaluate2({ + scope: scope2, + forceBindingRootScopeToFunctions: true + }); + if (typeof result === "function" && shouldAutoEvaluateFunctions) { + return result.apply(scope2, params); + } + return result; + } + function cspEvaluator(el, expression) { + let dataStack = generateDataStack(el); + if (typeof expression === "function") { + return generateEvaluatorFromFunction(dataStack, expression); + } + let evaluator = generateEvaluator(el, expression, dataStack); + return tryCatch.bind(null, el, expression, evaluator); + } + function generateDataStack(el) { + let overriddenMagics = {}; + injectMagics(overriddenMagics, el); + return [overriddenMagics, ...closestDataStack(el)]; + } + function generateEvaluator(el, expression, dataStack) { + if (el instanceof HTMLIFrameElement) { + throw new Error("Evaluating expressions on an iframe is prohibited in the CSP build"); + } + if (el instanceof HTMLScriptElement) { + throw new Error("Evaluating expressions on a script is prohibited in the CSP build"); + } + return (receiver = () => { + }, { scope: scope2 = {}, params = [] } = {}) => { + let completeScope = mergeProxies([scope2, ...dataStack]); + let evaluate2 = generateRuntimeFunction(expression); + let returnValue = evaluate2({ + scope: completeScope, + forceBindingRootScopeToFunctions: true + }); + if (shouldAutoEvaluateFunctions && typeof returnValue === "function") { + let nextReturnValue = returnValue.apply(returnValue, params); + if (nextReturnValue instanceof Promise) { + nextReturnValue.then((i) => receiver(i)); + } else { + receiver(nextReturnValue); + } + } else if (typeof returnValue === "object" && returnValue instanceof Promise) { + returnValue.then((i) => receiver(i)); + } else { + receiver(returnValue); + } + }; + } + var import_reactivity10 = __toESM2(require_reactivity()); + magic("nextTick", () => nextTick); + magic("dispatch", (el) => dispatch3.bind(dispatch3, el)); + magic("watch", (el, { evaluateLater: evaluateLater2, cleanup }) => (key, callback) => { + let evaluate2 = evaluateLater2(key); + let getter = () => { + let value; + evaluate2((i) => value = i); + return value; + }; + let unwatch = watch(getter, callback); + cleanup(unwatch); + }); + magic("store", getStores); + magic("data", (el) => scope(el)); + magic("root", (el) => closestRoot(el)); + magic("refs", (el) => { + if (el._x_refs_proxy) + return el._x_refs_proxy; + el._x_refs_proxy = mergeProxies(getArrayOfRefObject(el)); + return el._x_refs_proxy; + }); + function getArrayOfRefObject(el) { + let refObjects = []; + findClosest(el, (i) => { + if (i._x_refs) + refObjects.push(i._x_refs); + }); + return refObjects; + } + var globalIdMemo = {}; + function findAndIncrementId(name) { + if (!globalIdMemo[name]) + globalIdMemo[name] = 0; + return ++globalIdMemo[name]; + } + function closestIdRoot(el, name) { + return findClosest(el, (element) => { + if (element._x_ids && element._x_ids[name]) + return true; + }); + } + function setIdRoot(el, name) { + if (!el._x_ids) + el._x_ids = {}; + if (!el._x_ids[name]) + el._x_ids[name] = findAndIncrementId(name); + } + magic("id", (el, { cleanup }) => (name, key = null) => { + let cacheKey = `${name}${key ? `-${key}` : ""}`; + return cacheIdByNameOnElement(el, cacheKey, cleanup, () => { + let root = closestIdRoot(el, name); + let id = root ? root._x_ids[name] : findAndIncrementId(name); + return key ? `${name}-${id}-${key}` : `${name}-${id}`; + }); + }); + interceptClone((from, to) => { + if (from._x_id) { + to._x_id = from._x_id; + } + }); + function cacheIdByNameOnElement(el, cacheKey, cleanup, callback) { + if (!el._x_id) + el._x_id = {}; + if (el._x_id[cacheKey]) + return el._x_id[cacheKey]; + let output = callback(); + el._x_id[cacheKey] = output; + cleanup(() => { + delete el._x_id[cacheKey]; + }); + return output; + } + magic("el", (el) => el); + warnMissingPluginMagic("Focus", "focus", "focus"); + warnMissingPluginMagic("Persist", "persist", "persist"); + function warnMissingPluginMagic(name, magicName, slug) { + magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el)); + } + directive2("modelable", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup }) => { + let func = evaluateLater2(expression); + let innerGet = () => { + let result; + func((i) => result = i); + return result; + }; + let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`); + let innerSet = (val) => evaluateInnerSet(() => { + }, { scope: { "__placeholder": val } }); + let initialValue = innerGet(); + innerSet(initialValue); + queueMicrotask(() => { + if (!el._x_model) + return; + el._x_removeModelListeners["default"](); + let outerGet = el._x_model.get; + let outerSet = el._x_model.setWithModifiers; + let releaseEntanglement = entangle( + { + get() { + return outerGet(); + }, + set(value) { + outerSet(value); + } + }, + { + get() { + return innerGet(); + }, + set(value) { + innerSet(value); + } + } + ); + cleanup(releaseEntanglement); + }); + }); + directive2("teleport", (el, { modifiers, expression }, { cleanup }) => { + if (el.tagName.toLowerCase() !== "template") + warn("x-teleport can only be used on a <template> tag", el); + let target = getTarget(expression); + let clone2 = el.content.cloneNode(true).firstElementChild; + el._x_teleport = clone2; + clone2._x_teleportBack = el; + el.setAttribute("data-teleport-template", true); + clone2.setAttribute("data-teleport-target", true); + if (el._x_forwardEvents) { + el._x_forwardEvents.forEach((eventName) => { + clone2.addEventListener(eventName, (e) => { + e.stopPropagation(); + el.dispatchEvent(new e.constructor(e.type, e)); + }); + }); + } + addScopeToNode(clone2, {}, el); + let placeInDom = (clone3, target2, modifiers2) => { + if (modifiers2.includes("prepend")) { + target2.parentNode.insertBefore(clone3, target2); + } else if (modifiers2.includes("append")) { + target2.parentNode.insertBefore(clone3, target2.nextSibling); + } else { + target2.appendChild(clone3); + } + }; + mutateDom(() => { + skipDuringClone(() => { + placeInDom(clone2, target, modifiers); + initTree(clone2); + })(); + }); + el._x_teleportPutBack = () => { + let target2 = getTarget(expression); + mutateDom(() => { + placeInDom(el._x_teleport, target2, modifiers); + }); + }; + cleanup( + () => mutateDom(() => { + clone2.remove(); + destroyTree(clone2); + }) + ); + }); + var teleportContainerDuringClone = document.createElement("div"); + function getTarget(expression) { + let target = skipDuringClone(() => { + return document.querySelector(expression); + }, () => { + return teleportContainerDuringClone; + })(); + if (!target) + warn(`Cannot find x-teleport element for selector: "${expression}"`); + return target; + } + var handler = () => { + }; + handler.inline = (el, { modifiers }, { cleanup }) => { + modifiers.includes("self") ? el._x_ignoreSelf = true : el._x_ignore = true; + cleanup(() => { + modifiers.includes("self") ? delete el._x_ignoreSelf : delete el._x_ignore; + }); + }; + directive2("ignore", handler); + directive2("effect", skipDuringClone((el, { expression }, { effect: effect3 }) => { + effect3(evaluateLater(el, expression)); + })); + function on3(el, event, modifiers, callback) { + let listenerTarget = el; + let handler4 = (e) => callback(e); + let options = {}; + let wrapHandler = (callback2, wrapper) => (e) => wrapper(callback2, e); + if (modifiers.includes("dot")) + event = dotSyntax(event); + if (modifiers.includes("camel")) + event = camelCase2(event); + if (modifiers.includes("capture")) + options.capture = true; + if (modifiers.includes("window")) + listenerTarget = window; + if (modifiers.includes("document")) + listenerTarget = document; + if (modifiers.includes("passive")) { + options.passive = modifiers[modifiers.indexOf("passive") + 1] !== "false"; + } + handler4 = addDebounceOrThrottle(modifiers, handler4); + if (modifiers.includes("prevent")) + handler4 = wrapHandler(handler4, (next, e) => { + e.preventDefault(); + next(e); + }); + if (modifiers.includes("stop")) + handler4 = wrapHandler(handler4, (next, e) => { + e.stopPropagation(); + next(e); + }); + if (modifiers.includes("once")) { + handler4 = wrapHandler(handler4, (next, e) => { + next(e); + listenerTarget.removeEventListener(event, handler4, options); + }); + } + if (modifiers.includes("away") || modifiers.includes("outside")) { + listenerTarget = document; + handler4 = wrapHandler(handler4, (next, e) => { + if (el.contains(e.target)) + return; + if (e.target.isConnected === false) + return; + if (el.offsetWidth < 1 && el.offsetHeight < 1) + return; + if (el._x_isShown === false) + return; + next(e); + }); + } + if (modifiers.includes("self")) + handler4 = wrapHandler(handler4, (next, e) => { + e.target === el && next(e); + }); + if (event === "submit") { + handler4 = wrapHandler(handler4, (next, e) => { + if (e.target._x_pendingModelUpdates) { + e.target._x_pendingModelUpdates.forEach((fn) => fn()); + } + next(e); + }); + } + if (isKeyEvent(event) || isClickEvent(event)) { + handler4 = wrapHandler(handler4, (next, e) => { + if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) { + return; + } + next(e); + }); + } + listenerTarget.addEventListener(event, handler4, options); + return () => { + listenerTarget.removeEventListener(event, handler4, options); + }; + } + function addDebounceOrThrottle(modifiers, handler4) { + if (modifiers.includes("debounce")) { + let nextModifier = modifiers[modifiers.indexOf("debounce") + 1] || "invalid-wait"; + let wait = isNumeric2(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; + handler4 = debounce2(handler4, wait); + } + if (modifiers.includes("throttle")) { + let nextModifier = modifiers[modifiers.indexOf("throttle") + 1] || "invalid-wait"; + let wait = isNumeric2(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; + handler4 = throttle2(handler4, wait); + } + return handler4; + } + function dotSyntax(subject) { + return subject.replace(/-/g, "."); + } + function camelCase2(subject) { + return subject.toLowerCase().replace(/-(\w)/g, (match, char) => char.toUpperCase()); + } + function isNumeric2(subject) { + return !Array.isArray(subject) && !isNaN(subject); + } + function kebabCase2(subject) { + if ([" ", "_"].includes( + subject + )) + return subject; + return subject.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\s]/, "-").toLowerCase(); + } + function isKeyEvent(event) { + return ["keydown", "keyup"].includes(event); + } + function isClickEvent(event) { + return ["contextmenu", "click", "mouse"].some((i) => event.includes(i)); + } + function isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) { + let keyModifiers = modifiers.filter((i) => { + return !["window", "document", "prevent", "stop", "once", "capture", "self", "away", "outside", "passive", "preserve-scroll", "blur", "change", "lazy"].includes(i); + }); + if (keyModifiers.includes("debounce")) { + let debounceIndex = keyModifiers.indexOf("debounce"); + keyModifiers.splice(debounceIndex, isNumeric2((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); + } + if (keyModifiers.includes("throttle")) { + let debounceIndex = keyModifiers.indexOf("throttle"); + keyModifiers.splice(debounceIndex, isNumeric2((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); + } + if (keyModifiers.length === 0) + return false; + if (keyModifiers.length === 1 && keyToModifiers(e.key).includes(keyModifiers[0])) + return false; + const systemKeyModifiers = ["ctrl", "shift", "alt", "meta", "cmd", "super"]; + const selectedSystemKeyModifiers = systemKeyModifiers.filter((modifier) => keyModifiers.includes(modifier)); + keyModifiers = keyModifiers.filter((i) => !selectedSystemKeyModifiers.includes(i)); + if (selectedSystemKeyModifiers.length > 0) { + const activelyPressedKeyModifiers = selectedSystemKeyModifiers.filter((modifier) => { + if (modifier === "cmd" || modifier === "super") + modifier = "meta"; + return e[`${modifier}Key`]; + }); + if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) { + if (isClickEvent(e.type)) + return false; + if (keyToModifiers(e.key).includes(keyModifiers[0])) + return false; + } + } + return true; + } + function keyToModifiers(key) { + if (!key) + return []; + key = kebabCase2(key); + let modifierToKeyMap = { + "ctrl": "control", + "slash": "/", + "space": " ", + "spacebar": " ", + "cmd": "meta", + "esc": "escape", + "up": "arrow-up", + "down": "arrow-down", + "left": "arrow-left", + "right": "arrow-right", + "period": ".", + "comma": ",", + "equal": "=", + "minus": "-", + "underscore": "_" + }; + modifierToKeyMap[key] = key; + return Object.keys(modifierToKeyMap).map((modifier) => { + if (modifierToKeyMap[modifier] === key) + return modifier; + }).filter((modifier) => modifier); + } + directive2("model", (el, { modifiers, expression }, { effect: effect3, cleanup }) => { + let scopeTarget = el; + if (modifiers.includes("parent")) { + scopeTarget = findClosest(el, (element) => element !== el); + } + let evaluateGet = evaluateLater(scopeTarget, expression); + let evaluateSet; + if (typeof expression === "string") { + evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`); + } else if (typeof expression === "function" && typeof expression() === "string") { + evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`); + } else { + evaluateSet = () => { + }; + } + let getValue = () => { + let result; + evaluateGet((value) => result = value); + return isGetterSetter(result) ? result.get() : result; + }; + let setValue = (value) => { + let result; + evaluateGet((value2) => result = value2); + if (isGetterSetter(result)) { + result.set(value); + } else { + evaluateSet(() => { + }, { + scope: { "__placeholder": value } + }); + } + }; + if (typeof expression === "string" && el.type === "radio") { + mutateDom(() => { + if (!el.hasAttribute("name")) + el.setAttribute("name", expression); + }); + } + let hasChangeModifier = modifiers.includes("change") || modifiers.includes("lazy"); + let hasBlurModifier = modifiers.includes("blur"); + let hasEnterModifier = modifiers.includes("enter"); + let hasExplicitEventModifiers = hasChangeModifier || hasBlurModifier || hasEnterModifier; + let removeListener; + if (isCloning) { + removeListener = () => { + }; + } else if (hasExplicitEventModifiers) { + let listeners2 = []; + let syncValue = (e) => setValue(getInputValue(el, modifiers, e, getValue())); + if (hasChangeModifier) { + listeners2.push(on3(el, "change", modifiers, syncValue)); + } + if (hasBlurModifier) { + listeners2.push(on3(el, "blur", modifiers, syncValue)); + if (el.form) { + let form = el.form; + let syncCallback = () => syncValue({ target: el }); + if (!form._x_pendingModelUpdates) + form._x_pendingModelUpdates = []; + form._x_pendingModelUpdates.push(syncCallback); + cleanup(() => { + if (form._x_pendingModelUpdates) { + form._x_pendingModelUpdates.splice(form._x_pendingModelUpdates.indexOf(syncCallback), 1); + } + }); + } + } + if (hasEnterModifier) { + listeners2.push(on3(el, "keydown", modifiers, (e) => { + if (e.key === "Enter") + syncValue(e); + })); + } + removeListener = () => listeners2.forEach((remove) => remove()); + } else { + let event = el.tagName.toLowerCase() === "select" || ["checkbox", "radio"].includes(el.type) ? "change" : "input"; + removeListener = on3(el, event, modifiers, (e) => { + setValue(getInputValue(el, modifiers, e, getValue())); + }); + } + if (modifiers.includes("fill")) { + if ([void 0, null, ""].includes(getValue()) || isCheckbox(el) && Array.isArray(getValue()) || el.tagName.toLowerCase() === "select" && el.multiple) { + setValue( + getInputValue(el, modifiers, { target: el }, getValue()) + ); + } + } + if (!el._x_removeModelListeners) + el._x_removeModelListeners = {}; + el._x_removeModelListeners["default"] = removeListener; + cleanup(() => el._x_removeModelListeners["default"]()); + if (el.form) { + let removeResetListener = on3(el.form, "reset", [], (e) => { + nextTick(() => el._x_model && el._x_model.set(getInputValue(el, modifiers, { target: el }, getValue()))); + }); + cleanup(() => removeResetListener()); + } + el._x_model = { + get() { + return getValue(); + }, + set(value) { + setValue(value); + }, + setWithModifiers: addDebounceOrThrottle(modifiers, setValue) + }; + el._x_forceModelUpdate = (value) => { + if (value === void 0 && typeof expression === "string" && expression.match(/\./)) + value = ""; + mutateDom(() => { + if (isCheckbox(el)) { + if (Array.isArray(value)) { + el.checked = value.some((val) => val == el.value); + } else { + el.checked = !!value; + } + } else if (isRadio(el)) { + if (typeof value === "boolean") { + el.checked = safeParseBoolean(el.value) === value; + } else { + el.checked = el.value == value; + } + } else { + bind(el, "value", value); + } + }); + }; + effect3(() => { + let value = getValue(); + if (modifiers.includes("unintrusive") && document.activeElement.isSameNode(el)) + return; + el._x_forceModelUpdate(value); + }); + }); + function getInputValue(el, modifiers, event, currentValue) { + return mutateDom(() => { + if (event instanceof CustomEvent && event.detail !== void 0) + return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value; + else if (isCheckbox(el)) { + if (Array.isArray(currentValue)) { + let newValue = null; + if (modifiers.includes("number")) { + newValue = safeParseNumber(event.target.value); + } else if (modifiers.includes("boolean")) { + newValue = safeParseBoolean(event.target.value); + } else { + newValue = event.target.value; + } + return event.target.checked ? currentValue.includes(newValue) ? currentValue : currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue)); + } else { + return event.target.checked; + } + } else if (el.tagName.toLowerCase() === "select" && el.multiple) { + if (modifiers.includes("number")) { + return Array.from(event.target.selectedOptions).map((option) => { + let rawValue = option.value || option.text; + return safeParseNumber(rawValue); + }); + } else if (modifiers.includes("boolean")) { + return Array.from(event.target.selectedOptions).map((option) => { + let rawValue = option.value || option.text; + return safeParseBoolean(rawValue); + }); + } + return Array.from(event.target.selectedOptions).map((option) => { + return option.value || option.text; + }); + } else { + let newValue; + if (isRadio(el)) { + if (event.target.checked) { + newValue = event.target.value; + } else { + newValue = currentValue; + } + } else { + newValue = event.target.value; + } + if (modifiers.includes("number")) { + return safeParseNumber(newValue); + } else if (modifiers.includes("boolean")) { + return safeParseBoolean(newValue); + } else if (modifiers.includes("trim")) { + return newValue.trim(); + } else { + return newValue; + } + } + }); + } + function safeParseNumber(rawValue) { + let number = rawValue ? parseFloat(rawValue) : null; + return isNumeric22(number) ? number : rawValue; + } + function checkedAttrLooseCompare2(valueA, valueB) { + return valueA == valueB; + } + function isNumeric22(subject) { + return !Array.isArray(subject) && !isNaN(subject); + } + function isGetterSetter(value) { + return value !== null && typeof value === "object" && typeof value.get === "function" && typeof value.set === "function"; + } + directive2("cloak", (el) => queueMicrotask(() => mutateDom(() => el.removeAttribute(prefix("cloak"))))); + addInitSelector(() => `[${prefix("init")}]`); + directive2("init", skipDuringClone((el, { expression }, { evaluate: evaluate2 }) => { + if (typeof expression === "string") { + return !!expression.trim() && evaluate2(expression, {}, false); + } + return evaluate2(expression, {}, false); + })); + directive2("text", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => { + let evaluate2 = evaluateLater2(expression); + effect3(() => { + evaluate2((value) => { + mutateDom(() => { + el.textContent = value; + }); + }); + }); + }); + directive2("html", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => { + let evaluate2 = evaluateLater2(expression); + effect3(() => { + evaluate2((value) => { + mutateDom(() => { + el.innerHTML = value != null ? value : ""; + el._x_ignoreSelf = true; + initTree(el); + delete el._x_ignoreSelf; + }); + }); + }); + }); + mapAttributes(startingWith(":", into(prefix("bind:")))); + var handler2 = (el, { value, modifiers, expression, original }, { effect: effect3, cleanup }) => { + if (!value) { + let bindingProviders = {}; + injectBindingProviders(bindingProviders); + let getBindings = evaluateLater(el, expression); + getBindings((bindings) => { + applyBindingsObject(el, bindings, original); + }, { scope: bindingProviders }); + return; + } + if (value === "key") + return storeKeyForXFor(el, expression); + if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) { + return; + } + let evaluate2 = evaluateLater(el, expression); + effect3(() => evaluate2((result) => { + if (result === void 0 && typeof expression === "string" && expression.match(/\./)) { + result = ""; + } + mutateDom(() => bind(el, value, result, modifiers)); + })); + cleanup(() => { + el._x_undoAddedClasses && el._x_undoAddedClasses(); + el._x_undoAddedStyles && el._x_undoAddedStyles(); + }); + }; + handler2.inline = (el, { value, modifiers, expression }) => { + if (!value) + return; + if (!el._x_inlineBindings) + el._x_inlineBindings = {}; + el._x_inlineBindings[value] = { expression, extract: false }; + }; + directive2("bind", handler2); + function storeKeyForXFor(el, expression) { + el._x_keyExpression = expression; + } + addRootSelector(() => `[${prefix("data")}]`); + directive2("data", (el, { expression }, { cleanup }) => { + if (shouldSkipRegisteringDataDuringClone(el)) + return; + expression = expression === "" ? "{}" : expression; + let magicContext = {}; + injectMagics(magicContext, el); + let dataProviderContext = {}; + injectDataProviders(dataProviderContext, magicContext); + let data2 = evaluate(el, expression, { scope: dataProviderContext }); + if (data2 === void 0 || data2 === true) + data2 = {}; + injectMagics(data2, el); + let reactiveData = reactive(data2); + initInterceptors(reactiveData); + let undo = addScopeToNode(el, reactiveData); + reactiveData["init"] && evaluate(el, reactiveData["init"]); + cleanup(() => { + reactiveData["destroy"] && evaluate(el, reactiveData["destroy"]); + undo(); + }); + }); + interceptClone((from, to) => { + if (from._x_dataStack) { + to._x_dataStack = from._x_dataStack; + to.setAttribute("data-has-alpine-state", true); + } + }); + function shouldSkipRegisteringDataDuringClone(el) { + if (!isCloning) + return false; + if (isCloningLegacy) + return true; + return el.hasAttribute("data-has-alpine-state"); + } + directive2("show", (el, { modifiers, expression }, { effect: effect3 }) => { + let evaluate2 = evaluateLater(el, expression); + if (!el._x_doHide) + el._x_doHide = () => { + mutateDom(() => { + el.style.setProperty("display", "none", modifiers.includes("important") ? "important" : void 0); + }); + }; + if (!el._x_doShow) + el._x_doShow = () => { + mutateDom(() => { + if (el.style.length === 1 && el.style.display === "none") { + el.removeAttribute("style"); + } else { + el.style.removeProperty("display"); + } + }); + }; + let hide = () => { + el._x_doHide(); + el._x_isShown = false; + }; + let show = () => { + el._x_doShow(); + el._x_isShown = true; + }; + let clickAwayCompatibleShow = () => setTimeout(show); + let toggle = once( + (value) => value ? show() : hide(), + (value) => { + if (typeof el._x_toggleAndCascadeWithTransitions === "function") { + el._x_toggleAndCascadeWithTransitions(el, value, show, hide); + } else { + value ? clickAwayCompatibleShow() : hide(); + } + } + ); + let oldValue; + let firstTime = true; + effect3(() => evaluate2((value) => { + if (!firstTime && value === oldValue) + return; + if (modifiers.includes("immediate")) + value ? clickAwayCompatibleShow() : hide(); + toggle(value); + oldValue = value; + firstTime = false; + })); + }); + directive2("for", (el, { expression }, { effect: effect3, cleanup }) => { + let iteratorNames = parseForExpression(expression); + let evaluateItems = evaluateLater(el, iteratorNames.items); + let evaluateKey = evaluateLater( + el, + el._x_keyExpression || "index" + ); + el._x_lookup = /* @__PURE__ */ new Map(); + effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey)); + cleanup(() => { + el._x_lookup.forEach( + (el2) => mutateDom(() => { + destroyTree(el2); + el2.remove(); + }) + ); + delete el._x_lookup; + }); + }); + function refreshScope(scope2) { + return (newScope) => { + Object.entries(newScope).forEach(([key, value]) => { + scope2[key] = value; + }); + }; + } + function loop(templateEl, iteratorNames, evaluateItems, evaluateKey) { + evaluateItems((items) => { + if (isNumeric3(items)) + items = Array.from({ length: items }, (_, i) => i + 1); + if (items === void 0 || items === null) + items = []; + if (items instanceof Set) + items = Array.from(items); + if (items instanceof Map) + items = Array.from(items); + let oldLookup = templateEl._x_lookup; + let lookup = /* @__PURE__ */ new Map(); + templateEl._x_lookup = lookup; + let hasStringKeys = isObject2(items); + let scopeEntries = Object.entries(items).map(([index, item]) => { + if (!hasStringKeys) + index = parseInt(index); + let scope2 = getIterationScopeVariables(iteratorNames, item, index, items); + let key; + evaluateKey((innerKey) => { + if (typeof innerKey === "object") + warn("x-for key cannot be an object, it must be a string or an integer", templateEl); + if (oldLookup.has(innerKey)) { + lookup.set(innerKey, oldLookup.get(innerKey)); + oldLookup.delete(innerKey); + } + key = innerKey; + }, { scope: { index, ...scope2 } }); + return [key, scope2]; + }); + mutateDom(() => { + oldLookup.forEach((el) => { + destroyTree(el); + el.remove(); + }); + let added = /* @__PURE__ */ new Set(); + let prev = templateEl; + scopeEntries.forEach(([key, scope2]) => { + if (lookup.has(key)) { + let el = lookup.get(key); + el._x_refreshXForScope(scope2); + if (prev.nextElementSibling !== el) { + if (prev.nextElementSibling) + el.replaceWith(prev.nextElementSibling); + prev.after(el); + } + prev = el; + if (el._x_currentIfEl) { + if (el.nextElementSibling !== el._x_currentIfEl) + prev.after(el._x_currentIfEl); + prev = el._x_currentIfEl; + } + return; + } + if (templateEl.content.children.length > 1) + warn("x-for templates require a single root element, additional elements will be ignored.", templateEl); + let clone2 = document.importNode(templateEl.content, true).firstElementChild; + let reactiveScope = reactive(scope2); + addScopeToNode(clone2, reactiveScope, templateEl); + clone2._x_refreshXForScope = refreshScope(reactiveScope); + lookup.set(key, clone2); + added.add(clone2); + prev.after(clone2); + prev = clone2; + }); + skipDuringClone(() => added.forEach((clone2) => initTree(clone2)))(); + }); + }); + } + function parseForExpression(expression) { + let forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; + let stripParensRE = /^\s*\(|\)\s*$/g; + let forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/; + let inMatch = expression.match(forAliasRE); + if (!inMatch) + return; + let res = {}; + res.items = inMatch[2].trim(); + let item = inMatch[1].replace(stripParensRE, "").trim(); + let iteratorMatch = item.match(forIteratorRE); + if (iteratorMatch) { + res.item = item.replace(forIteratorRE, "").trim(); + res.index = iteratorMatch[1].trim(); + if (iteratorMatch[2]) { + res.collection = iteratorMatch[2].trim(); + } + } else { + res.item = item; + } + return res; + } + function getIterationScopeVariables(iteratorNames, item, index, items) { + let scopeVariables = {}; + if (/^\[.*\]$/.test(iteratorNames.item) && Array.isArray(item)) { + let names = iteratorNames.item.replace("[", "").replace("]", "").split(",").map((i) => i.trim()); + names.forEach((name, i) => { + scopeVariables[name] = item[i]; + }); + } else if (/^\{.*\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === "object") { + let names = iteratorNames.item.replace("{", "").replace("}", "").split(",").map((i) => i.trim()); + names.forEach((name) => { + scopeVariables[name] = item[name]; + }); + } else { + scopeVariables[iteratorNames.item] = item; + } + if (iteratorNames.index) + scopeVariables[iteratorNames.index] = index; + if (iteratorNames.collection) + scopeVariables[iteratorNames.collection] = items; + return scopeVariables; + } + function isNumeric3(subject) { + return typeof subject !== "object" && !isNaN(subject); + } + function isObject2(subject) { + return typeof subject === "object" && !Array.isArray(subject); + } + function handler3() { + } + handler3.inline = (el, { expression }, { cleanup }) => { + let root = closestRoot(el); + if (!root) + return; + if (!root._x_refs) + root._x_refs = {}; + root._x_refs[expression] = el; + cleanup(() => delete root._x_refs[expression]); + }; + directive2("ref", handler3); + directive2("if", (el, { expression }, { effect: effect3, cleanup }) => { + if (el.tagName.toLowerCase() !== "template") + warn("x-if can only be used on a <template> tag", el); + let evaluate2 = evaluateLater(el, expression); + let show = () => { + if (el._x_currentIfEl) + return el._x_currentIfEl; + let clone2 = el.content.cloneNode(true).firstElementChild; + addScopeToNode(clone2, {}, el); + mutateDom(() => { + el.after(clone2); + skipDuringClone(() => initTree(clone2))(); + }); + el._x_currentIfEl = clone2; + el._x_undoIf = () => { + mutateDom(() => { + destroyTree(clone2); + clone2.remove(); + }); + delete el._x_currentIfEl; + }; + return clone2; + }; + let hide = () => { + if (!el._x_undoIf) + return; + el._x_undoIf(); + delete el._x_undoIf; + }; + effect3(() => evaluate2((value) => { + value ? show() : hide(); + })); + cleanup(() => el._x_undoIf && el._x_undoIf()); + }); + directive2("id", (el, { expression }, { evaluate: evaluate2 }) => { + let names = evaluate2(expression); + names.forEach((name) => setIdRoot(el, name)); + }); + interceptClone((from, to) => { + if (from._x_ids) { + to._x_ids = from._x_ids; + } + }); + mapAttributes(startingWith("@", into(prefix("on:")))); + directive2("on", skipDuringClone((el, { value, modifiers, expression }, { cleanup }) => { + let evaluate2 = expression ? evaluateLater(el, expression) : () => { + }; + if (el.tagName.toLowerCase() === "template") { + if (!el._x_forwardEvents) + el._x_forwardEvents = []; + if (!el._x_forwardEvents.includes(value)) + el._x_forwardEvents.push(value); + } + let removeListener = on3(el, value, modifiers, (e) => { + evaluate2(() => { + }, { scope: { "$event": e }, params: [e] }); + }); + cleanup(() => removeListener()); + })); + warnMissingPluginDirective("Collapse", "collapse", "collapse"); + warnMissingPluginDirective("Intersect", "intersect", "intersect"); + warnMissingPluginDirective("Focus", "trap", "focus"); + warnMissingPluginDirective("Mask", "mask", "mask"); + function warnMissingPluginDirective(name, directiveName, slug) { + directive2(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el)); + } + directive2("html", (el, { expression }) => { + handleError(new Error("Using the x-html directive is prohibited in the CSP build"), el); + }); + alpine_default.setEvaluator(cspEvaluator); + alpine_default.setRawEvaluator(cspRawEvaluator); + alpine_default.setReactivityEngine({ reactive: import_reactivity10.reactive, effect: import_reactivity10.effect, release: import_reactivity10.stop, raw: import_reactivity10.toRaw }); + var src_default2 = alpine_default; + var module_default2 = src_default2; + } +}); + +// node_modules/@alpinejs/collapse/dist/module.cjs.js +var require_module_cjs2 = __commonJS({ + "node_modules/@alpinejs/collapse/dist/module.cjs.js"(exports, module) { + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var module_exports = {}; + __export(module_exports, { + collapse: () => src_default2, + default: () => module_default2 + }); + module.exports = __toCommonJS(module_exports); + function src_default2(Alpine25) { + Alpine25.directive("collapse", collapse3); + collapse3.inline = (el, { modifiers }) => { + if (!modifiers.includes("min")) + return; + el._x_doShow = () => { + }; + el._x_doHide = () => { + }; + }; + function collapse3(el, { modifiers }) { + let duration = modifierValue(modifiers, "duration", 250) / 1e3; + let floor = modifierValue(modifiers, "min", 0); + let fullyHide = !modifiers.includes("min"); + if (!el._x_isShown) + el.style.height = `${floor}px`; + if (!el._x_isShown && fullyHide) + el.hidden = true; + if (!el._x_isShown) + el.style.overflow = "hidden"; + let setFunction = (el2, styles) => { + let revertFunction = Alpine25.setStyles(el2, styles); + return styles.height ? () => { + } : revertFunction; + }; + let transitionStyles = { + transitionProperty: "height", + transitionDuration: `${duration}s`, + transitionTimingFunction: "cubic-bezier(0.4, 0.0, 0.2, 1)" + }; + el._x_transition = { + in(before = () => { + }, after = () => { + }) { + if (fullyHide) + el.hidden = false; + if (fullyHide) + el.style.display = null; + let current = el.getBoundingClientRect().height; + el.style.height = "auto"; + let full = el.getBoundingClientRect().height; + if (current === full) { + current = floor; + } + Alpine25.transition(el, Alpine25.setStyles, { + during: transitionStyles, + start: { height: current + "px" }, + end: { height: full + "px" } + }, () => el._x_isShown = true, () => { + if (Math.abs(el.getBoundingClientRect().height - full) < 1) { + el.style.overflow = null; + } + }); + }, + out(before = () => { + }, after = () => { + }) { + let full = el.getBoundingClientRect().height; + Alpine25.transition(el, setFunction, { + during: transitionStyles, + start: { height: full + "px" }, + end: { height: floor + "px" } + }, () => el.style.overflow = "hidden", () => { + el._x_isShown = false; + if (el.style.height == `${floor}px` && fullyHide) { + el.style.display = "none"; + el.hidden = true; + } + }); + } + }; + } + } + function modifierValue(modifiers, key, fallback2) { + if (modifiers.indexOf(key) === -1) + return fallback2; + const rawValue = modifiers[modifiers.indexOf(key) + 1]; + if (!rawValue) + return fallback2; + if (key === "duration") { + let match = rawValue.match(/([0-9]+)ms/); + if (match) + return match[1]; + } + if (key === "min") { + let match = rawValue.match(/([0-9]+)px/); + if (match) + return match[1]; + } + return rawValue; + } + var module_default2 = src_default2; + } +}); + +// node_modules/@alpinejs/focus/dist/module.cjs.js +var require_module_cjs3 = __commonJS({ + "node_modules/@alpinejs/focus/dist/module.cjs.js"(exports, module) { + var __create2 = Object.create; + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __getProtoOf2 = Object.getPrototypeOf; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( + isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var require_dist = __commonJS2({ + "node_modules/tabbable/dist/index.js"(exports2) { + "use strict"; + var candidateSelectors = ["input:not([inert]):not([inert] *)", "select:not([inert]):not([inert] *)", "textarea:not([inert]):not([inert] *)", "a[href]:not([inert]):not([inert] *)", "button:not([inert]):not([inert] *)", "[tabindex]:not(slot):not([inert]):not([inert] *)", "audio[controls]:not([inert]):not([inert] *)", "video[controls]:not([inert]):not([inert] *)", '[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)', "details>summary:first-of-type:not([inert]):not([inert] *)", "details:not([inert]):not([inert] *)"]; + var candidateSelector = /* @__PURE__ */ candidateSelectors.join(","); + var NoElement = typeof Element === "undefined"; + var matches = NoElement ? function() { + } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; + var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) { + var _element$getRootNode; + return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element); + } : function(element) { + return element === null || element === void 0 ? void 0 : element.ownerDocument; + }; + var _isInert = function isInert(node, lookUp) { + var _node$getAttribute; + if (lookUp === void 0) { + lookUp = true; + } + var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, "inert"); + var inert = inertAtt === "" || inertAtt === "true"; + var result = inert || lookUp && node && (typeof node.closest === "function" ? node.closest("[inert]") : _isInert(node.parentNode)); + return result; + }; + var isContentEditable = function isContentEditable2(node) { + var _node$getAttribute2; + var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, "contenteditable"); + return attValue === "" || attValue === "true"; + }; + var getCandidates = function getCandidates2(el, includeContainer, filter) { + if (_isInert(el)) { + return []; + } + var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector)); + if (includeContainer && matches.call(el, candidateSelector)) { + candidates.unshift(el); + } + candidates = candidates.filter(filter); + return candidates; + }; + var _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) { + var candidates = []; + var elementsToCheck = Array.from(elements); + while (elementsToCheck.length) { + var element = elementsToCheck.shift(); + if (_isInert(element, false)) { + continue; + } + if (element.tagName === "SLOT") { + var assigned = element.assignedElements(); + var content = assigned.length ? assigned : element.children; + var nestedCandidates = _getCandidatesIteratively(content, true, options); + if (options.flatten) { + candidates.push.apply(candidates, nestedCandidates); + } else { + candidates.push({ + scopeParent: element, + candidates: nestedCandidates + }); + } + } else { + var validCandidate = matches.call(element, candidateSelector); + if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) { + candidates.push(element); + } + var shadowRoot = element.shadowRoot || typeof options.getShadowRoot === "function" && options.getShadowRoot(element); + var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element)); + if (shadowRoot && validShadowRoot) { + var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options); + if (options.flatten) { + candidates.push.apply(candidates, _nestedCandidates); + } else { + candidates.push({ + scopeParent: element, + candidates: _nestedCandidates + }); + } + } else { + elementsToCheck.unshift.apply(elementsToCheck, element.children); + } + } + } + return candidates; + }; + var hasTabIndex = function hasTabIndex2(node) { + return !isNaN(parseInt(node.getAttribute("tabindex"), 10)); + }; + var getTabIndex = function getTabIndex2(node) { + if (!node) { + throw new Error("No node provided"); + } + if (node.tabIndex < 0) { + if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) { + return 0; + } + } + return node.tabIndex; + }; + var getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) { + var tabIndex = getTabIndex(node); + if (tabIndex < 0 && isScope && !hasTabIndex(node)) { + return 0; + } + return tabIndex; + }; + var sortOrderedTabbables = function sortOrderedTabbables2(a, b) { + return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex; + }; + var isInput = function isInput2(node) { + return node.tagName === "INPUT"; + }; + var isHiddenInput = function isHiddenInput2(node) { + return isInput(node) && node.type === "hidden"; + }; + var isDetailsWithSummary = function isDetailsWithSummary2(node) { + var r = node.tagName === "DETAILS" && Array.prototype.slice.apply(node.children).some(function(child) { + return child.tagName === "SUMMARY"; + }); + return r; + }; + var getCheckedRadio = function getCheckedRadio2(nodes, form) { + for (var i = 0; i < nodes.length; i++) { + if (nodes[i].checked && nodes[i].form === form) { + return nodes[i]; + } + } + }; + var isTabbableRadio = function isTabbableRadio2(node) { + if (!node.name) { + return true; + } + var radioScope = node.form || getRootNode(node); + var queryRadios = function queryRadios2(name) { + return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]'); + }; + var radioSet; + if (typeof window !== "undefined" && typeof window.CSS !== "undefined" && typeof window.CSS.escape === "function") { + radioSet = queryRadios(window.CSS.escape(node.name)); + } else { + try { + radioSet = queryRadios(node.name); + } catch (err) { + console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s", err.message); + return false; + } + } + var checked = getCheckedRadio(radioSet, node.form); + return !checked || checked === node; + }; + var isRadio = function isRadio2(node) { + return isInput(node) && node.type === "radio"; + }; + var isNonTabbableRadio = function isNonTabbableRadio2(node) { + return isRadio(node) && !isTabbableRadio(node); + }; + var isNodeAttached = function isNodeAttached2(node) { + var _nodeRoot; + var nodeRoot = node && getRootNode(node); + var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host; + var attached = false; + if (nodeRoot && nodeRoot !== node) { + var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument; + attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node)); + while (!attached && nodeRootHost) { + var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD; + nodeRoot = getRootNode(nodeRootHost); + nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host; + attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost)); + } + } + return attached; + }; + var isZeroArea = function isZeroArea2(node) { + var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height; + return width === 0 && height === 0; + }; + var isHidden = function isHidden2(node, _ref) { + var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot; + if (displayCheck === "full-native") { + if ("checkVisibility" in node) { + var visible = node.checkVisibility({ + checkOpacity: false, + opacityProperty: false, + contentVisibilityAuto: true, + visibilityProperty: true, + checkVisibilityCSS: true + }); + return !visible; + } + } + if (getComputedStyle(node).visibility === "hidden") { + return true; + } + var isDirectSummary = matches.call(node, "details>summary:first-of-type"); + var nodeUnderDetails = isDirectSummary ? node.parentElement : node; + if (matches.call(nodeUnderDetails, "details:not([open]) *")) { + return true; + } + if (!displayCheck || displayCheck === "full" || displayCheck === "full-native" || displayCheck === "legacy-full") { + if (typeof getShadowRoot === "function") { + var originalNode = node; + while (node) { + var parentElement = node.parentElement; + var rootNode = getRootNode(node); + if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) { + return isZeroArea(node); + } else if (node.assignedSlot) { + node = node.assignedSlot; + } else if (!parentElement && rootNode !== node.ownerDocument) { + node = rootNode.host; + } else { + node = parentElement; + } + } + node = originalNode; + } + if (isNodeAttached(node)) { + return !node.getClientRects().length; + } + if (displayCheck !== "legacy-full") { + return true; + } + } else if (displayCheck === "non-zero-area") { + return isZeroArea(node); + } + return false; + }; + var isDisabledFromFieldset = function isDisabledFromFieldset2(node) { + if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) { + var parentNode = node.parentElement; + while (parentNode) { + if (parentNode.tagName === "FIELDSET" && parentNode.disabled) { + for (var i = 0; i < parentNode.children.length; i++) { + var child = parentNode.children.item(i); + if (child.tagName === "LEGEND") { + return matches.call(parentNode, "fieldset[disabled] *") ? true : !child.contains(node); + } + } + return true; + } + parentNode = parentNode.parentElement; + } + } + return false; + }; + var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) { + if (node.disabled || isHiddenInput(node) || isHidden(node, options) || isDetailsWithSummary(node) || isDisabledFromFieldset(node)) { + return false; + } + return true; + }; + var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) { + if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) { + return false; + } + return true; + }; + var isShadowRootTabbable = function isShadowRootTabbable2(shadowHostNode) { + var tabIndex = parseInt(shadowHostNode.getAttribute("tabindex"), 10); + if (isNaN(tabIndex) || tabIndex >= 0) { + return true; + } + return false; + }; + var _sortByOrder = function sortByOrder(candidates) { + var regularTabbables = []; + var orderedTabbables = []; + candidates.forEach(function(item, i) { + var isScope = !!item.scopeParent; + var element = isScope ? item.scopeParent : item; + var candidateTabindex = getSortOrderTabIndex(element, isScope); + var elements = isScope ? _sortByOrder(item.candidates) : element; + if (candidateTabindex === 0) { + isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element); + } else { + orderedTabbables.push({ + documentOrder: i, + tabIndex: candidateTabindex, + item, + isScope, + content: elements + }); + } + }); + return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) { + sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content); + return acc; + }, []).concat(regularTabbables); + }; + var tabbable = function tabbable2(container, options) { + options = options || {}; + var candidates; + if (options.getShadowRoot) { + candidates = _getCandidatesIteratively([container], options.includeContainer, { + filter: isNodeMatchingSelectorTabbable.bind(null, options), + flatten: false, + getShadowRoot: options.getShadowRoot, + shadowRootFilter: isShadowRootTabbable + }); + } else { + candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options)); + } + return _sortByOrder(candidates); + }; + var focusable2 = function focusable3(container, options) { + options = options || {}; + var candidates; + if (options.getShadowRoot) { + candidates = _getCandidatesIteratively([container], options.includeContainer, { + filter: isNodeMatchingSelectorFocusable.bind(null, options), + flatten: true, + getShadowRoot: options.getShadowRoot + }); + } else { + candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options)); + } + return candidates; + }; + var isTabbable = function isTabbable2(node, options) { + options = options || {}; + if (!node) { + throw new Error("No node provided"); + } + if (matches.call(node, candidateSelector) === false) { + return false; + } + return isNodeMatchingSelectorTabbable(options, node); + }; + var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat("iframe:not([inert]):not([inert] *)").join(","); + var isFocusable2 = function isFocusable3(node, options) { + options = options || {}; + if (!node) { + throw new Error("No node provided"); + } + if (matches.call(node, focusableCandidateSelector) === false) { + return false; + } + return isNodeMatchingSelectorFocusable(options, node); + }; + exports2.focusable = focusable2; + exports2.getTabIndex = getTabIndex; + exports2.isFocusable = isFocusable2; + exports2.isTabbable = isTabbable; + exports2.tabbable = tabbable; + } + }); + var require_focus_trap = __commonJS2({ + "node_modules/focus-trap/dist/focus-trap.js"(exports2) { + "use strict"; + var tabbable = require_dist(); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) + n[e] = r[e]; + return n; + } + function _arrayWithoutHoles(r) { + if (Array.isArray(r)) + return _arrayLikeToArray(r); + } + function asyncGeneratorStep(n, t, e, r, o, a, c) { + try { + var i = n[a](c), u = i.value; + } catch (n2) { + return void e(n2); + } + i.done ? t(u) : Promise.resolve(u).then(r, o); + } + function _asyncToGenerator(n) { + return function() { + var t = this, e = arguments; + return new Promise(function(r, o) { + var a = n.apply(t, e); + function _next(n2) { + asyncGeneratorStep(a, r, o, _next, _throw, "next", n2); + } + function _throw(n2) { + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2); + } + _next(void 0); + }); + }; + } + function _createForOfIteratorHelper(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (!t) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { + t && (r = t); + var n = 0, F = function() { + }; + return { + s: F, + n: function() { + return n >= r.length ? { + done: true + } : { + done: false, + value: r[n++] + }; + }, + e: function(r2) { + throw r2; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var o, a = true, u = false; + return { + s: function() { + t = t.call(r); + }, + n: function() { + var r2 = t.next(); + return a = r2.done, r2; + }, + e: function(r2) { + u = true, o = r2; + }, + f: function() { + try { + a || null == t.return || t.return(); + } finally { + if (u) + throw o; + } + } + }; + } + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: true, + configurable: true, + writable: true + }) : e[r] = t, e; + } + function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) + return Array.from(r); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function ownKeys(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + function _objectSpread2(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + function _regenerator() { + var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; + function i(r2, n2, o2, i2) { + var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype); + return _regeneratorDefine(u2, "_invoke", function(r3, n3, o3) { + var i3, c3, u3, f2 = 0, p = o3 || [], y = false, G = { + p: 0, + n: 0, + v: e, + a: d, + f: d.bind(e, 4), + d: function(t2, r4) { + return i3 = t2, c3 = 0, u3 = e, G.n = r4, a; + } + }; + function d(r4, n4) { + for (c3 = r4, u3 = n4, t = 0; !y && f2 && !o4 && t < p.length; t++) { + var o4, i4 = p[t], d2 = G.p, l = i4[2]; + r4 > 3 ? (o4 = l === n4) && (u3 = i4[(c3 = i4[4]) ? 5 : (c3 = 3, 3)], i4[4] = i4[5] = e) : i4[0] <= d2 && ((o4 = r4 < 2 && d2 < i4[1]) ? (c3 = 0, G.v = n4, G.n = i4[1]) : d2 < l && (o4 = r4 < 3 || i4[0] > n4 || n4 > l) && (i4[4] = r4, i4[5] = n4, G.n = l, c3 = 0)); + } + if (o4 || r4 > 1) + return a; + throw y = true, n4; + } + return function(o4, p2, l) { + if (f2 > 1) + throw TypeError("Generator is already running"); + for (y && 1 === p2 && d(p2, l), c3 = p2, u3 = l; (t = c3 < 2 ? e : u3) || !y; ) { + i3 || (c3 ? c3 < 3 ? (c3 > 1 && (G.n = -1), d(c3, u3)) : G.n = u3 : G.v = u3); + try { + if (f2 = 2, i3) { + if (c3 || (o4 = "next"), t = i3[o4]) { + if (!(t = t.call(i3, u3))) + throw TypeError("iterator result is not an object"); + if (!t.done) + return t; + u3 = t.value, c3 < 2 && (c3 = 0); + } else + 1 === c3 && (t = i3.return) && t.call(i3), c3 < 2 && (u3 = TypeError("The iterator does not provide a '" + o4 + "' method"), c3 = 1); + i3 = e; + } else if ((t = (y = G.n < 0) ? u3 : r3.call(n3, G)) !== a) + break; + } catch (t2) { + i3 = e, c3 = 1, u3 = t2; + } finally { + f2 = 1; + } + } + return { + value: t, + done: y + }; + }; + }(r2, o2, i2), true), u2; + } + var a = {}; + function Generator() { + } + function GeneratorFunction() { + } + function GeneratorFunctionPrototype() { + } + t = Object.getPrototypeOf; + var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function() { + return this; + }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); + function f(e2) { + return Object.setPrototypeOf ? Object.setPrototypeOf(e2, GeneratorFunctionPrototype) : (e2.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e2, o, "GeneratorFunction")), e2.prototype = Object.create(u), e2; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function() { + return this; + }), _regeneratorDefine(u, "toString", function() { + return "[object Generator]"; + }), (_regenerator = function() { + return { + w: i, + m: f + }; + })(); + } + function _regeneratorDefine(e, r, n, t) { + var i = Object.defineProperty; + try { + i({}, "", {}); + } catch (e2) { + i = 0; + } + _regeneratorDefine = function(e2, r2, n2, t2) { + function o(r3, n3) { + _regeneratorDefine(e2, r3, function(e3) { + return this._invoke(r3, n3, e3); + }); + } + r2 ? i ? i(e2, r2, { + value: n2, + enumerable: !t2, + configurable: !t2, + writable: !t2 + }) : e2[r2] = n2 : (o("next", 0), o("throw", 1), o("return", 2)); + }, _regeneratorDefine(e, r, n, t); + } + function _toConsumableArray(r) { + return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); + } + function _toPrimitive(t, r) { + if ("object" != typeof t || !t) + return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r); + if ("object" != typeof i) + return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == typeof i ? i : i + ""; + } + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) + return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + var activeFocusTraps = { + getActiveTrap: function getActiveTrap(trapStack) { + if ((trapStack === null || trapStack === void 0 ? void 0 : trapStack.length) > 0) { + return trapStack[trapStack.length - 1]; + } + return null; + }, + activateTrap: function activateTrap(trapStack, trap) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + if (trap !== activeTrap) { + activeFocusTraps.pauseTrap(trapStack); + } + var trapIndex = trapStack.indexOf(trap); + if (trapIndex === -1) { + trapStack.push(trap); + } else { + trapStack.splice(trapIndex, 1); + trapStack.push(trap); + } + }, + deactivateTrap: function deactivateTrap(trapStack, trap) { + var trapIndex = trapStack.indexOf(trap); + if (trapIndex !== -1) { + trapStack.splice(trapIndex, 1); + } + activeFocusTraps.unpauseTrap(trapStack); + }, + pauseTrap: function pauseTrap(trapStack) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + activeTrap === null || activeTrap === void 0 || activeTrap._setPausedState(true); + }, + unpauseTrap: function unpauseTrap(trapStack) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + if (activeTrap && !activeTrap._isManuallyPaused()) { + activeTrap._setPausedState(false); + } + } + }; + var isSelectableInput = function isSelectableInput2(node) { + return node.tagName && node.tagName.toLowerCase() === "input" && typeof node.select === "function"; + }; + var isEscapeEvent = function isEscapeEvent2(e) { + return (e === null || e === void 0 ? void 0 : e.key) === "Escape" || (e === null || e === void 0 ? void 0 : e.key) === "Esc" || (e === null || e === void 0 ? void 0 : e.keyCode) === 27; + }; + var isTabEvent = function isTabEvent2(e) { + return (e === null || e === void 0 ? void 0 : e.key) === "Tab" || (e === null || e === void 0 ? void 0 : e.keyCode) === 9; + }; + var isKeyForward = function isKeyForward2(e) { + return isTabEvent(e) && !e.shiftKey; + }; + var isKeyBackward = function isKeyBackward2(e) { + return isTabEvent(e) && e.shiftKey; + }; + var delay = function delay2(fn) { + return setTimeout(fn, 0); + }; + var valueOrHandler = function valueOrHandler2(value) { + for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + params[_key - 1] = arguments[_key]; + } + return typeof value === "function" ? value.apply(void 0, params) : value; + }; + var getActualTarget = function getActualTarget2(event) { + return event.target.shadowRoot && typeof event.composedPath === "function" ? event.composedPath()[0] : event.target; + }; + var internalTrapStack = []; + var createFocusTrap2 = function createFocusTrap3(elements, userOptions) { + var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document; + var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack; + var config = _objectSpread2({ + returnFocusOnDeactivate: true, + escapeDeactivates: true, + delayInitialFocus: true, + isolateSubtrees: false, + isKeyForward, + isKeyBackward + }, userOptions); + var state = { + containers: [], + containerGroups: [], + tabbableGroups: [], + adjacentElements: /* @__PURE__ */ new Set(), + alreadySilent: /* @__PURE__ */ new Set(), + nodeFocusedBeforeActivation: null, + mostRecentlyFocusedNode: null, + active: false, + paused: false, + manuallyPaused: false, + delayInitialFocusTimer: void 0, + recentNavEvent: void 0 + }; + var trap; + var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) { + return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName]; + }; + var findContainerIndex = function findContainerIndex2(element, event) { + var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === "function" ? event.composedPath() : void 0; + return state.containerGroups.findIndex(function(_ref) { + var container = _ref.container, tabbableNodes = _ref.tabbableNodes; + return container.contains(element) || (composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function(node) { + return node === element; + }); + }); + }; + var getNodeForOption = function getNodeForOption2(optionName) { + var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$hasFallback = _ref2.hasFallback, hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback, _ref2$params = _ref2.params, params = _ref2$params === void 0 ? [] : _ref2$params; + var optionValue = config[optionName]; + if (typeof optionValue === "function") { + optionValue = optionValue.apply(void 0, _toConsumableArray(params)); + } + if (optionValue === true) { + optionValue = void 0; + } + if (!optionValue) { + if (optionValue === void 0 || optionValue === false) { + return optionValue; + } + throw new Error("`".concat(optionName, "` was specified but was not a node, or did not return a node")); + } + var node = optionValue; + if (typeof optionValue === "string") { + try { + node = doc.querySelector(optionValue); + } catch (err) { + throw new Error("`".concat(optionName, '` appears to be an invalid selector; error="').concat(err.message, '"')); + } + if (!node) { + if (!hasFallback) { + throw new Error("`".concat(optionName, "` as selector refers to no known node")); + } + } + } + return node; + }; + var getInitialFocusNode = function getInitialFocusNode2() { + var node = getNodeForOption("initialFocus", { + hasFallback: true + }); + if (node === false) { + return false; + } + if (node === void 0 || node && !tabbable.isFocusable(node, config.tabbableOptions)) { + if (findContainerIndex(doc.activeElement) >= 0) { + node = doc.activeElement; + } else { + var firstTabbableGroup = state.tabbableGroups[0]; + var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; + node = firstTabbableNode || getNodeForOption("fallbackFocus"); + } + } else if (node === null) { + node = getNodeForOption("fallbackFocus"); + } + if (!node) { + throw new Error("Your focus-trap needs to have at least one focusable element"); + } + return node; + }; + var updateTabbableNodes = function updateTabbableNodes2() { + state.containerGroups = state.containers.map(function(container) { + var tabbableNodes = tabbable.tabbable(container, config.tabbableOptions); + var focusableNodes = tabbable.focusable(container, config.tabbableOptions); + var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0; + var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0; + var firstDomTabbableNode = focusableNodes.find(function(node) { + return tabbable.isTabbable(node); + }); + var lastDomTabbableNode = focusableNodes.slice().reverse().find(function(node) { + return tabbable.isTabbable(node); + }); + var posTabIndexesFound = !!tabbableNodes.find(function(node) { + return tabbable.getTabIndex(node) > 0; + }); + return { + container, + tabbableNodes, + focusableNodes, + posTabIndexesFound, + firstTabbableNode, + lastTabbableNode, + firstDomTabbableNode, + lastDomTabbableNode, + nextTabbableNode: function nextTabbableNode(node) { + var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + var nodeIdx = tabbableNodes.indexOf(node); + if (nodeIdx < 0) { + if (forward) { + return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function(el) { + return tabbable.isTabbable(el); + }); + } + return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function(el) { + return tabbable.isTabbable(el); + }); + } + return tabbableNodes[nodeIdx + (forward ? 1 : -1)]; + } + }; + }); + state.tabbableGroups = state.containerGroups.filter(function(group) { + return group.tabbableNodes.length > 0; + }); + if (state.tabbableGroups.length <= 0 && !getNodeForOption("fallbackFocus")) { + throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times"); + } + if (state.containerGroups.find(function(g) { + return g.posTabIndexesFound; + }) && state.containerGroups.length > 1) { + throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps."); + } + }; + var _getActiveElement = function getActiveElement(el) { + var activeElement = el.activeElement; + if (!activeElement) { + return; + } + if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) { + return _getActiveElement(activeElement.shadowRoot); + } + return activeElement; + }; + var _tryFocus = function tryFocus(node) { + if (node === false) { + return; + } + if (node === _getActiveElement(document)) { + return; + } + if (!node || !node.focus) { + _tryFocus(getInitialFocusNode()); + return; + } + node.focus({ + preventScroll: !!config.preventScroll + }); + state.mostRecentlyFocusedNode = node; + if (isSelectableInput(node)) { + node.select(); + } + }; + var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) { + var node = getNodeForOption("setReturnFocus", { + params: [previousActiveElement] + }); + return node ? node : node === false ? false : previousActiveElement; + }; + var findNextNavNode = function findNextNavNode2(_ref3) { + var target = _ref3.target, event = _ref3.event, _ref3$isBackward = _ref3.isBackward, isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward; + target = target || getActualTarget(event); + updateTabbableNodes(); + var destinationNode = null; + if (state.tabbableGroups.length > 0) { + var containerIndex = findContainerIndex(target, event); + var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0; + if (containerIndex < 0) { + if (isBackward) { + destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode; + } else { + destinationNode = state.tabbableGroups[0].firstTabbableNode; + } + } else if (isBackward) { + var startOfGroupIndex = state.tabbableGroups.findIndex(function(_ref4) { + var firstTabbableNode = _ref4.firstTabbableNode; + return target === firstTabbableNode; + }); + if (startOfGroupIndex < 0 && (containerGroup.container === target || tabbable.isFocusable(target, config.tabbableOptions) && !tabbable.isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) { + startOfGroupIndex = containerIndex; + } + if (startOfGroupIndex >= 0) { + var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1; + var destinationGroup = state.tabbableGroups[destinationGroupIndex]; + destinationNode = tabbable.getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode; + } else if (!isTabEvent(event)) { + destinationNode = containerGroup.nextTabbableNode(target, false); + } + } else { + var lastOfGroupIndex = state.tabbableGroups.findIndex(function(_ref5) { + var lastTabbableNode = _ref5.lastTabbableNode; + return target === lastTabbableNode; + }); + if (lastOfGroupIndex < 0 && (containerGroup.container === target || tabbable.isFocusable(target, config.tabbableOptions) && !tabbable.isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) { + lastOfGroupIndex = containerIndex; + } + if (lastOfGroupIndex >= 0) { + var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1; + var _destinationGroup = state.tabbableGroups[_destinationGroupIndex]; + destinationNode = tabbable.getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode; + } else if (!isTabEvent(event)) { + destinationNode = containerGroup.nextTabbableNode(target); + } + } + } else { + destinationNode = getNodeForOption("fallbackFocus"); + } + return destinationNode; + }; + var checkPointerDown = function checkPointerDown2(e) { + var target = getActualTarget(e); + if (findContainerIndex(target, e) >= 0) { + return; + } + if (valueOrHandler(config.clickOutsideDeactivates, e)) { + trap.deactivate({ + returnFocus: config.returnFocusOnDeactivate + }); + return; + } + if (valueOrHandler(config.allowOutsideClick, e)) { + return; + } + e.preventDefault(); + }; + var checkFocusIn = function checkFocusIn2(event) { + var target = getActualTarget(event); + var targetContained = findContainerIndex(target, event) >= 0; + if (targetContained || target instanceof Document) { + if (targetContained) { + state.mostRecentlyFocusedNode = target; + } + } else { + event.stopImmediatePropagation(); + var nextNode; + var navAcrossContainers = true; + if (state.mostRecentlyFocusedNode) { + if (tabbable.getTabIndex(state.mostRecentlyFocusedNode) > 0) { + var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode); + var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes; + if (tabbableNodes.length > 0) { + var mruTabIdx = tabbableNodes.findIndex(function(node) { + return node === state.mostRecentlyFocusedNode; + }); + if (mruTabIdx >= 0) { + if (config.isKeyForward(state.recentNavEvent)) { + if (mruTabIdx + 1 < tabbableNodes.length) { + nextNode = tabbableNodes[mruTabIdx + 1]; + navAcrossContainers = false; + } + } else { + if (mruTabIdx - 1 >= 0) { + nextNode = tabbableNodes[mruTabIdx - 1]; + navAcrossContainers = false; + } + } + } + } + } else { + if (!state.containerGroups.some(function(g) { + return g.tabbableNodes.some(function(n) { + return tabbable.getTabIndex(n) > 0; + }); + })) { + navAcrossContainers = false; + } + } + } else { + navAcrossContainers = false; + } + if (navAcrossContainers) { + nextNode = findNextNavNode({ + target: state.mostRecentlyFocusedNode, + isBackward: config.isKeyBackward(state.recentNavEvent) + }); + } + if (nextNode) { + _tryFocus(nextNode); + } else { + _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); + } + } + state.recentNavEvent = void 0; + }; + var checkKeyNav = function checkKeyNav2(event) { + var isBackward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; + state.recentNavEvent = event; + var destinationNode = findNextNavNode({ + event, + isBackward + }); + if (destinationNode) { + if (isTabEvent(event)) { + event.preventDefault(); + } + _tryFocus(destinationNode); + } + }; + var checkTabKey = function checkTabKey2(event) { + if (config.isKeyForward(event) || config.isKeyBackward(event)) { + checkKeyNav(event, config.isKeyBackward(event)); + } + }; + var checkEscapeKey = function checkEscapeKey2(event) { + if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) { + event.preventDefault(); + trap.deactivate(); + } + }; + var checkClick = function checkClick2(e) { + var target = getActualTarget(e); + if (findContainerIndex(target, e) >= 0) { + return; + } + if (valueOrHandler(config.clickOutsideDeactivates, e)) { + return; + } + if (valueOrHandler(config.allowOutsideClick, e)) { + return; + } + e.preventDefault(); + e.stopImmediatePropagation(); + }; + var addListeners = function addListeners2() { + if (!state.active) { + return Promise.resolve(); + } + activeFocusTraps.activateTrap(trapStack, trap); + var promise; + if (config.delayInitialFocus) { + promise = new Promise(function(resolve) { + state.delayInitialFocusTimer = delay(function() { + _tryFocus(getInitialFocusNode()); + resolve(); + }); + }); + } else { + promise = Promise.resolve(); + _tryFocus(getInitialFocusNode()); + } + doc.addEventListener("focusin", checkFocusIn, true); + doc.addEventListener("mousedown", checkPointerDown, { + capture: true, + passive: false + }); + doc.addEventListener("touchstart", checkPointerDown, { + capture: true, + passive: false + }); + doc.addEventListener("click", checkClick, { + capture: true, + passive: false + }); + doc.addEventListener("keydown", checkTabKey, { + capture: true, + passive: false + }); + doc.addEventListener("keydown", checkEscapeKey); + return promise; + }; + var collectAdjacentElements = function collectAdjacentElements2(containers) { + if (state.active && !state.paused) { + trap._setSubtreeIsolation(false); + } + state.adjacentElements.clear(); + state.alreadySilent.clear(); + var containerAncestors = /* @__PURE__ */ new Set(); + var adjacentElements = /* @__PURE__ */ new Set(); + var _iterator = _createForOfIteratorHelper(containers), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var container = _step.value; + containerAncestors.add(container); + var insideShadowRoot = typeof ShadowRoot !== "undefined" && container.getRootNode() instanceof ShadowRoot; + var current = container; + while (current) { + containerAncestors.add(current); + var parent = current.parentElement; + var siblings = []; + if (parent) { + siblings = parent.children; + } else if (!parent && insideShadowRoot) { + siblings = current.getRootNode().children; + parent = current.getRootNode().host; + insideShadowRoot = typeof ShadowRoot !== "undefined" && parent.getRootNode() instanceof ShadowRoot; + } + var _iterator2 = _createForOfIteratorHelper(siblings), _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { + var child = _step2.value; + adjacentElements.add(child); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + current = parent; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + containerAncestors.forEach(function(el) { + adjacentElements["delete"](el); + }); + state.adjacentElements = adjacentElements; + }; + var removeListeners = function removeListeners2() { + if (!state.active) { + return; + } + doc.removeEventListener("focusin", checkFocusIn, true); + doc.removeEventListener("mousedown", checkPointerDown, true); + doc.removeEventListener("touchstart", checkPointerDown, true); + doc.removeEventListener("click", checkClick, true); + doc.removeEventListener("keydown", checkTabKey, true); + doc.removeEventListener("keydown", checkEscapeKey); + return trap; + }; + var checkDomRemoval = function checkDomRemoval2(mutations) { + var isFocusedNodeRemoved = mutations.some(function(mutation) { + var removedNodes = Array.from(mutation.removedNodes); + return removedNodes.some(function(node) { + return node === state.mostRecentlyFocusedNode; + }); + }); + if (isFocusedNodeRemoved) { + _tryFocus(getInitialFocusNode()); + } + }; + var mutationObserver = typeof window !== "undefined" && "MutationObserver" in window ? new MutationObserver(checkDomRemoval) : void 0; + var updateObservedNodes = function updateObservedNodes2() { + if (!mutationObserver) { + return; + } + mutationObserver.disconnect(); + if (state.active && !state.paused) { + state.containers.map(function(container) { + mutationObserver.observe(container, { + subtree: true, + childList: true + }); + }); + } + }; + trap = { + get active() { + return state.active; + }, + get paused() { + return state.paused; + }, + activate: function activate(activateOptions) { + if (state.active) { + return this; + } + var onActivate = getOption(activateOptions, "onActivate"); + var onPostActivate = getOption(activateOptions, "onPostActivate"); + var checkCanFocusTrap = getOption(activateOptions, "checkCanFocusTrap"); + var preexistingTrap = activeFocusTraps.getActiveTrap(trapStack); + var revertState = false; + if (preexistingTrap && !preexistingTrap.paused) { + var _preexistingTrap$_set; + (_preexistingTrap$_set = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set === void 0 || _preexistingTrap$_set.call(preexistingTrap, false); + revertState = true; + } + try { + if (!checkCanFocusTrap) { + updateTabbableNodes(); + } + state.active = true; + state.paused = false; + state.nodeFocusedBeforeActivation = _getActiveElement(doc); + onActivate === null || onActivate === void 0 || onActivate(); + var finishActivation = /* @__PURE__ */ function() { + var _ref6 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee() { + return _regenerator().w(function(_context) { + while (1) + switch (_context.n) { + case 0: + if (checkCanFocusTrap) { + updateTabbableNodes(); + } + _context.n = 1; + return addListeners(); + case 1: + trap._setSubtreeIsolation(true); + updateObservedNodes(); + onPostActivate === null || onPostActivate === void 0 || onPostActivate(); + case 2: + return _context.a(2); + } + }, _callee); + })); + return function finishActivation2() { + return _ref6.apply(this, arguments); + }; + }(); + if (checkCanFocusTrap) { + checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation); + return this; + } + finishActivation(); + } catch (error2) { + if (preexistingTrap === activeFocusTraps.getActiveTrap(trapStack) && revertState) { + var _preexistingTrap$_set2; + (_preexistingTrap$_set2 = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set2 === void 0 || _preexistingTrap$_set2.call(preexistingTrap, true); + } + throw error2; + } + return this; + }, + deactivate: function deactivate(deactivateOptions) { + if (!state.active) { + return this; + } + var options = _objectSpread2({ + onDeactivate: config.onDeactivate, + onPostDeactivate: config.onPostDeactivate, + checkCanReturnFocus: config.checkCanReturnFocus + }, deactivateOptions); + clearTimeout(state.delayInitialFocusTimer); + state.delayInitialFocusTimer = void 0; + if (!state.paused) { + trap._setSubtreeIsolation(false); + } + state.alreadySilent.clear(); + removeListeners(); + state.active = false; + state.paused = false; + updateObservedNodes(); + activeFocusTraps.deactivateTrap(trapStack, trap); + var onDeactivate = getOption(options, "onDeactivate"); + var onPostDeactivate = getOption(options, "onPostDeactivate"); + var checkCanReturnFocus = getOption(options, "checkCanReturnFocus"); + var returnFocus = getOption(options, "returnFocus", "returnFocusOnDeactivate"); + onDeactivate === null || onDeactivate === void 0 || onDeactivate(); + var finishDeactivation = function finishDeactivation2() { + delay(function() { + if (returnFocus) { + _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)); + } + onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate(); + }); + }; + if (returnFocus && checkCanReturnFocus) { + checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation); + return this; + } + finishDeactivation(); + return this; + }, + pause: function pause(pauseOptions) { + if (!state.active) { + return this; + } + state.manuallyPaused = true; + return this._setPausedState(true, pauseOptions); + }, + unpause: function unpause(unpauseOptions) { + if (!state.active) { + return this; + } + state.manuallyPaused = false; + if (trapStack[trapStack.length - 1] !== this) { + return this; + } + return this._setPausedState(false, unpauseOptions); + }, + updateContainerElements: function updateContainerElements(containerElements) { + var elementsAsArray = [].concat(containerElements).filter(Boolean); + state.containers = elementsAsArray.map(function(element) { + return typeof element === "string" ? doc.querySelector(element) : element; + }); + if (config.isolateSubtrees) { + collectAdjacentElements(state.containers); + } + if (state.active) { + updateTabbableNodes(); + if (!state.paused) { + trap._setSubtreeIsolation(true); + } + } + updateObservedNodes(); + return this; + } + }; + Object.defineProperties(trap, { + _isManuallyPaused: { + value: function value() { + return state.manuallyPaused; + } + }, + _setPausedState: { + value: function value(paused, options) { + if (state.paused === paused) { + return this; + } + state.paused = paused; + if (paused) { + var onPause = getOption(options, "onPause"); + var onPostPause = getOption(options, "onPostPause"); + onPause === null || onPause === void 0 || onPause(); + removeListeners(); + trap._setSubtreeIsolation(false); + updateObservedNodes(); + onPostPause === null || onPostPause === void 0 || onPostPause(); + } else { + var onUnpause = getOption(options, "onUnpause"); + var onPostUnpause = getOption(options, "onPostUnpause"); + onUnpause === null || onUnpause === void 0 || onUnpause(); + var finishUnpause = /* @__PURE__ */ function() { + var _ref7 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee2() { + return _regenerator().w(function(_context2) { + while (1) + switch (_context2.n) { + case 0: + updateTabbableNodes(); + _context2.n = 1; + return addListeners(); + case 1: + trap._setSubtreeIsolation(true); + updateObservedNodes(); + onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause(); + case 2: + return _context2.a(2); + } + }, _callee2); + })); + return function finishUnpause2() { + return _ref7.apply(this, arguments); + }; + }(); + finishUnpause(); + } + return this; + } + }, + _setSubtreeIsolation: { + value: function value(isEnabled) { + if (config.isolateSubtrees) { + state.adjacentElements.forEach(function(el) { + var _el$getAttribute; + if (isEnabled) { + switch (config.isolateSubtrees) { + case "aria-hidden": + if (el.ariaHidden === "true" || ((_el$getAttribute = el.getAttribute("aria-hidden")) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.toLowerCase()) === "true") { + state.alreadySilent.add(el); + } + el.setAttribute("aria-hidden", "true"); + break; + default: + if (el.inert || el.hasAttribute("inert")) { + state.alreadySilent.add(el); + } + el.setAttribute("inert", true); + break; + } + } else { + if (state.alreadySilent.has(el)) + ; + else { + switch (config.isolateSubtrees) { + case "aria-hidden": + el.removeAttribute("aria-hidden"); + break; + default: + el.removeAttribute("inert"); + break; + } + } + } + }); + } + } + } + }); + trap.updateContainerElements(elements); + return trap; + }; + exports2.createFocusTrap = createFocusTrap2; + } + }); + var module_exports = {}; + __export(module_exports, { + default: () => module_default2, + focus: () => src_default2 + }); + module.exports = __toCommonJS(module_exports); + var import_focus_trap = __toESM2(require_focus_trap()); + var import_tabbable = __toESM2(require_dist()); + function src_default2(Alpine25) { + let lastFocused; + let currentFocused; + window.addEventListener("focusin", () => { + lastFocused = currentFocused; + currentFocused = document.activeElement; + }); + Alpine25.magic("focus", (el) => { + let within = el; + return { + __noscroll: false, + __wrapAround: false, + within(el2) { + within = el2; + return this; + }, + withoutScrolling() { + this.__noscroll = true; + return this; + }, + noscroll() { + this.__noscroll = true; + return this; + }, + withWrapAround() { + this.__wrapAround = true; + return this; + }, + wrap() { + return this.withWrapAround(); + }, + focusable(el2) { + return (0, import_tabbable.isFocusable)(el2); + }, + previouslyFocused() { + return lastFocused; + }, + lastFocused() { + return lastFocused; + }, + focused() { + return currentFocused; + }, + focusables() { + if (Array.isArray(within)) + return within; + return (0, import_tabbable.focusable)(within, { displayCheck: "none" }); + }, + all() { + return this.focusables(); + }, + isFirst(el2) { + let els2 = this.all(); + return els2[0] && els2[0].isSameNode(el2); + }, + isLast(el2) { + let els2 = this.all(); + return els2.length && els2.slice(-1)[0].isSameNode(el2); + }, + getFirst() { + return this.all()[0]; + }, + getLast() { + return this.all().slice(-1)[0]; + }, + getNext() { + let list = this.all(); + let current = document.activeElement; + if (list.indexOf(current) === -1) + return; + if (this.__wrapAround && list.indexOf(current) === list.length - 1) { + return list[0]; + } + return list[list.indexOf(current) + 1]; + }, + getPrevious() { + let list = this.all(); + let current = document.activeElement; + if (list.indexOf(current) === -1) + return; + if (this.__wrapAround && list.indexOf(current) === 0) { + return list.slice(-1)[0]; + } + return list[list.indexOf(current) - 1]; + }, + first() { + this.focus(this.getFirst()); + }, + last() { + this.focus(this.getLast()); + }, + next() { + this.focus(this.getNext()); + }, + previous() { + this.focus(this.getPrevious()); + }, + prev() { + return this.previous(); + }, + focus(el2) { + if (!el2) + return; + setTimeout(() => { + if (!el2.hasAttribute("tabindex")) + el2.setAttribute("tabindex", "0"); + el2.focus({ preventScroll: this.__noscroll }); + }); + } + }; + }); + Alpine25.directive("trap", Alpine25.skipDuringClone( + (el, { expression, modifiers }, { effect, evaluateLater, cleanup }) => { + let evaluator = evaluateLater(expression); + let oldValue = false; + let options = { + escapeDeactivates: false, + allowOutsideClick: true, + fallbackFocus: () => el + }; + let undoInert = () => { + }; + if (modifiers.includes("noautofocus")) { + options.initialFocus = false; + } else { + let autofocusEl = el.querySelector("[autofocus]"); + if (autofocusEl) + options.initialFocus = autofocusEl; + } + if (modifiers.includes("inert")) { + options.onPostActivate = () => { + Alpine25.nextTick(() => { + undoInert = setInert(el); + }); + }; + } + let trap = (0, import_focus_trap.createFocusTrap)(el, options); + let undoDisableScrolling = () => { + }; + const releaseFocus = () => { + undoInert(); + undoInert = () => { + }; + undoDisableScrolling(); + undoDisableScrolling = () => { + }; + trap.deactivate({ + returnFocus: !modifiers.includes("noreturn") + }); + }; + effect(() => evaluator((value) => { + if (oldValue === value) + return; + if (value && !oldValue) { + if (modifiers.includes("noscroll")) + undoDisableScrolling = disableScrolling(); + setTimeout(() => { + trap.activate(); + }, 15); + } + if (!value && oldValue) { + releaseFocus(); + } + oldValue = !!value; + })); + cleanup(releaseFocus); + }, + (el, { expression, modifiers }, { evaluate }) => { + if (modifiers.includes("inert") && evaluate(expression)) + setInert(el); + } + )); + } + function setInert(el) { + let undos = []; + crawlSiblingsUp(el, (sibling) => { + let cache = sibling.hasAttribute("aria-hidden"); + sibling.setAttribute("aria-hidden", "true"); + undos.push(() => cache || sibling.removeAttribute("aria-hidden")); + }); + return () => { + while (undos.length) + undos.pop()(); + }; + } + function crawlSiblingsUp(el, callback) { + if (el.isSameNode(document.body) || !el.parentNode) + return; + Array.from(el.parentNode.children).forEach((sibling) => { + if (sibling.isSameNode(el)) { + crawlSiblingsUp(el.parentNode, callback); + } else { + callback(sibling); + } + }); + } + function disableScrolling() { + let overflow = document.documentElement.style.overflow; + let paddingRight = document.documentElement.style.paddingRight; + let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; + let scrollbarGutter = window.getComputedStyle(document.documentElement).scrollbarGutter; + document.documentElement.style.overflow = "hidden"; + if (scrollbarGutter && scrollbarGutter !== "auto") { + return () => { + document.documentElement.style.overflow = overflow; + }; + } + document.documentElement.style.paddingRight = `${scrollbarWidth}px`; + return () => { + document.documentElement.style.overflow = overflow; + document.documentElement.style.paddingRight = paddingRight; + }; + } + var module_default2 = src_default2; + } +}); + +// node_modules/@alpinejs/intersect/dist/module.cjs.js +var require_module_cjs4 = __commonJS({ + "node_modules/@alpinejs/intersect/dist/module.cjs.js"(exports, module) { + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var module_exports = {}; + __export(module_exports, { + default: () => module_default2, + intersect: () => src_default2 + }); + module.exports = __toCommonJS(module_exports); + function src_default2(Alpine25) { + Alpine25.directive("intersect", Alpine25.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { + let evaluate = evaluateLater(expression); + let options = { + rootMargin: getRootMargin(modifiers), + threshold: getThreshold(modifiers) + }; + let observer = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting === (value === "leave")) + return; + evaluate(); + modifiers.includes("once") && observer.disconnect(); + }); + }, options); + observer.observe(el); + cleanup(() => { + observer.disconnect(); + }); + })); + } + function getThreshold(modifiers) { + if (modifiers.includes("full")) + return 0.99; + if (modifiers.includes("half")) + return 0.5; + if (!modifiers.includes("threshold")) + return 0; + let threshold = modifiers[modifiers.indexOf("threshold") + 1]; + if (threshold === "100") + return 1; + if (threshold === "0") + return 0; + return Number(`.${threshold}`); + } + function getLengthValue(rawValue) { + let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/); + return match ? match[1] + (match[2] || "px") : void 0; + } + function getRootMargin(modifiers) { + const key = "margin"; + const fallback2 = "0px 0px 0px 0px"; + const index = modifiers.indexOf(key); + if (index === -1) + return fallback2; + let values = []; + for (let i = 1; i < 5; i++) { + values.push(getLengthValue(modifiers[index + i] || "")); + } + values = values.filter((v) => v !== void 0); + return values.length ? values.join(" ").trim() : fallback2; + } + var module_default2 = src_default2; + } +}); + +// node_modules/@alpinejs/sort/dist/module.cjs.js +var require_module_cjs5 = __commonJS({ + "node_modules/@alpinejs/sort/dist/module.cjs.js"(exports, module) { + var __create2 = Object.create; + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __getProtoOf2 = Object.getPrototypeOf; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( + isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var require_Sortable_min = __commonJS2({ + "node_modules/sortablejs/Sortable.min.js"(exports2, module2) { + !function(t, e) { + "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = t || self).Sortable = e(); + }(exports2, function() { + "use strict"; + function e(e2, t2) { + var n2, o2 = Object.keys(e2); + return Object.getOwnPropertySymbols && (n2 = Object.getOwnPropertySymbols(e2), t2 && (n2 = n2.filter(function(t3) { + return Object.getOwnPropertyDescriptor(e2, t3).enumerable; + })), o2.push.apply(o2, n2)), o2; + } + function I(o2) { + for (var t2 = 1; t2 < arguments.length; t2++) { + var i2 = null != arguments[t2] ? arguments[t2] : {}; + t2 % 2 ? e(Object(i2), true).forEach(function(t3) { + var e2, n2; + e2 = o2, t3 = i2[n2 = t3], n2 in e2 ? Object.defineProperty(e2, n2, { value: t3, enumerable: true, configurable: true, writable: true }) : e2[n2] = t3; + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o2, Object.getOwnPropertyDescriptors(i2)) : e(Object(i2)).forEach(function(t3) { + Object.defineProperty(o2, t3, Object.getOwnPropertyDescriptor(i2, t3)); + }); + } + return o2; + } + function o(t2) { + return (o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t3) { + return typeof t3; + } : function(t3) { + return t3 && "function" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? "symbol" : typeof t3; + })(t2); + } + function a() { + return (a = Object.assign || function(t2) { + for (var e2 = 1; e2 < arguments.length; e2++) { + var n2, o2 = arguments[e2]; + for (n2 in o2) + Object.prototype.hasOwnProperty.call(o2, n2) && (t2[n2] = o2[n2]); + } + return t2; + }).apply(this, arguments); + } + function i(t2, e2) { + if (null == t2) + return {}; + var n2, o2 = function(t3, e3) { + if (null == t3) + return {}; + for (var n3, o3 = {}, i3 = Object.keys(t3), r3 = 0; r3 < i3.length; r3++) + n3 = i3[r3], 0 <= e3.indexOf(n3) || (o3[n3] = t3[n3]); + return o3; + }(t2, e2); + if (Object.getOwnPropertySymbols) + for (var i2 = Object.getOwnPropertySymbols(t2), r2 = 0; r2 < i2.length; r2++) + n2 = i2[r2], 0 <= e2.indexOf(n2) || Object.prototype.propertyIsEnumerable.call(t2, n2) && (o2[n2] = t2[n2]); + return o2; + } + function r(t2) { + return function(t3) { + if (Array.isArray(t3)) + return l(t3); + }(t2) || function(t3) { + if ("undefined" != typeof Symbol && null != t3[Symbol.iterator] || null != t3["@@iterator"]) + return Array.from(t3); + }(t2) || function(t3, e2) { + if (t3) { + if ("string" == typeof t3) + return l(t3, e2); + var n2 = Object.prototype.toString.call(t3).slice(8, -1); + return "Map" === (n2 = "Object" === n2 && t3.constructor ? t3.constructor.name : n2) || "Set" === n2 ? Array.from(t3) : "Arguments" === n2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2) ? l(t3, e2) : void 0; + } + }(t2) || function() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + }(); + } + function l(t2, e2) { + (null == e2 || e2 > t2.length) && (e2 = t2.length); + for (var n2 = 0, o2 = new Array(e2); n2 < e2; n2++) + o2[n2] = t2[n2]; + return o2; + } + function t(t2) { + if ("undefined" != typeof window && window.navigator) + return !!navigator.userAgent.match(t2); + } + var y = t(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i), w = t(/Edge/i), s = t(/firefox/i), u = t(/safari/i) && !t(/chrome/i) && !t(/android/i), n = t(/iP(ad|od|hone)/i), c = t(/chrome/i) && t(/android/i), d = { capture: false, passive: false }; + function h(t2, e2, n2) { + t2.addEventListener(e2, n2, !y && d); + } + function f(t2, e2, n2) { + t2.removeEventListener(e2, n2, !y && d); + } + function p(t2, e2) { + if (e2 && (">" === e2[0] && (e2 = e2.substring(1)), t2)) + try { + if (t2.matches) + return t2.matches(e2); + if (t2.msMatchesSelector) + return t2.msMatchesSelector(e2); + if (t2.webkitMatchesSelector) + return t2.webkitMatchesSelector(e2); + } catch (t3) { + return; + } + } + function P(t2, e2, n2, o2) { + if (t2) { + n2 = n2 || document; + do { + if (null != e2 && (">" !== e2[0] || t2.parentNode === n2) && p(t2, e2) || o2 && t2 === n2) + return t2; + } while (t2 !== n2 && (t2 = (i2 = t2).host && i2 !== document && i2.host.nodeType ? i2.host : i2.parentNode)); + } + var i2; + return null; + } + var g, m = /\s+/g; + function k(t2, e2, n2) { + var o2; + t2 && e2 && (t2.classList ? t2.classList[n2 ? "add" : "remove"](e2) : (o2 = (" " + t2.className + " ").replace(m, " ").replace(" " + e2 + " ", " "), t2.className = (o2 + (n2 ? " " + e2 : "")).replace(m, " "))); + } + function R(t2, e2, n2) { + var o2 = t2 && t2.style; + if (o2) { + if (void 0 === n2) + return document.defaultView && document.defaultView.getComputedStyle ? n2 = document.defaultView.getComputedStyle(t2, "") : t2.currentStyle && (n2 = t2.currentStyle), void 0 === e2 ? n2 : n2[e2]; + o2[e2 = !(e2 in o2 || -1 !== e2.indexOf("webkit")) ? "-webkit-" + e2 : e2] = n2 + ("string" == typeof n2 ? "" : "px"); + } + } + function v(t2, e2) { + var n2 = ""; + if ("string" == typeof t2) + n2 = t2; + else + do { + var o2 = R(t2, "transform"); + } while (o2 && "none" !== o2 && (n2 = o2 + " " + n2), !e2 && (t2 = t2.parentNode)); + var i2 = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; + return i2 && new i2(n2); + } + function b(t2, e2, n2) { + if (t2) { + var o2 = t2.getElementsByTagName(e2), i2 = 0, r2 = o2.length; + if (n2) + for (; i2 < r2; i2++) + n2(o2[i2], i2); + return o2; + } + return []; + } + function O() { + var t2 = document.scrollingElement; + return t2 || document.documentElement; + } + function X(t2, e2, n2, o2, i2) { + if (t2.getBoundingClientRect || t2 === window) { + var r2, a2, l2, s2, c2, u2, d2 = t2 !== window && t2.parentNode && t2 !== O() ? (a2 = (r2 = t2.getBoundingClientRect()).top, l2 = r2.left, s2 = r2.bottom, c2 = r2.right, u2 = r2.height, r2.width) : (l2 = a2 = 0, s2 = window.innerHeight, c2 = window.innerWidth, u2 = window.innerHeight, window.innerWidth); + if ((e2 || n2) && t2 !== window && (i2 = i2 || t2.parentNode, !y)) + do { + if (i2 && i2.getBoundingClientRect && ("none" !== R(i2, "transform") || n2 && "static" !== R(i2, "position"))) { + var h2 = i2.getBoundingClientRect(); + a2 -= h2.top + parseInt(R(i2, "border-top-width")), l2 -= h2.left + parseInt(R(i2, "border-left-width")), s2 = a2 + r2.height, c2 = l2 + r2.width; + break; + } + } while (i2 = i2.parentNode); + return o2 && t2 !== window && (o2 = (e2 = v(i2 || t2)) && e2.a, t2 = e2 && e2.d, e2 && (s2 = (a2 /= t2) + (u2 /= t2), c2 = (l2 /= o2) + (d2 /= o2))), { top: a2, left: l2, bottom: s2, right: c2, width: d2, height: u2 }; + } + } + function Y(t2, e2, n2) { + for (var o2 = M(t2, true), i2 = X(t2)[e2]; o2; ) { + var r2 = X(o2)[n2]; + if (!("top" === n2 || "left" === n2 ? r2 <= i2 : i2 <= r2)) + return o2; + if (o2 === O()) + break; + o2 = M(o2, false); + } + return false; + } + function B(t2, e2, n2, o2) { + for (var i2 = 0, r2 = 0, a2 = t2.children; r2 < a2.length; ) { + if ("none" !== a2[r2].style.display && a2[r2] !== Ft.ghost && (o2 || a2[r2] !== Ft.dragged) && P(a2[r2], n2.draggable, t2, false)) { + if (i2 === e2) + return a2[r2]; + i2++; + } + r2++; + } + return null; + } + function F(t2, e2) { + for (var n2 = t2.lastElementChild; n2 && (n2 === Ft.ghost || "none" === R(n2, "display") || e2 && !p(n2, e2)); ) + n2 = n2.previousElementSibling; + return n2 || null; + } + function j(t2, e2) { + var n2 = 0; + if (!t2 || !t2.parentNode) + return -1; + for (; t2 = t2.previousElementSibling; ) + "TEMPLATE" === t2.nodeName.toUpperCase() || t2 === Ft.clone || e2 && !p(t2, e2) || n2++; + return n2; + } + function E(t2) { + var e2 = 0, n2 = 0, o2 = O(); + if (t2) + do { + var i2 = v(t2), r2 = i2.a, i2 = i2.d; + } while (e2 += t2.scrollLeft * r2, n2 += t2.scrollTop * i2, t2 !== o2 && (t2 = t2.parentNode)); + return [e2, n2]; + } + function M(t2, e2) { + if (!t2 || !t2.getBoundingClientRect) + return O(); + var n2 = t2, o2 = false; + do { + if (n2.clientWidth < n2.scrollWidth || n2.clientHeight < n2.scrollHeight) { + var i2 = R(n2); + if (n2.clientWidth < n2.scrollWidth && ("auto" == i2.overflowX || "scroll" == i2.overflowX) || n2.clientHeight < n2.scrollHeight && ("auto" == i2.overflowY || "scroll" == i2.overflowY)) { + if (!n2.getBoundingClientRect || n2 === document.body) + return O(); + if (o2 || e2) + return n2; + o2 = true; + } + } + } while (n2 = n2.parentNode); + return O(); + } + function D(t2, e2) { + return Math.round(t2.top) === Math.round(e2.top) && Math.round(t2.left) === Math.round(e2.left) && Math.round(t2.height) === Math.round(e2.height) && Math.round(t2.width) === Math.round(e2.width); + } + function S(e2, n2) { + return function() { + var t2; + g || (1 === (t2 = arguments).length ? e2.call(this, t2[0]) : e2.apply(this, t2), g = setTimeout(function() { + g = void 0; + }, n2)); + }; + } + function H(t2, e2, n2) { + t2.scrollLeft += e2, t2.scrollTop += n2; + } + function _(t2) { + var e2 = window.Polymer, n2 = window.jQuery || window.Zepto; + return e2 && e2.dom ? e2.dom(t2).cloneNode(true) : n2 ? n2(t2).clone(true)[0] : t2.cloneNode(true); + } + function C(t2, e2) { + R(t2, "position", "absolute"), R(t2, "top", e2.top), R(t2, "left", e2.left), R(t2, "width", e2.width), R(t2, "height", e2.height); + } + function T(t2) { + R(t2, "position", ""), R(t2, "top", ""), R(t2, "left", ""), R(t2, "width", ""), R(t2, "height", ""); + } + function L(n2, o2, i2) { + var r2 = {}; + return Array.from(n2.children).forEach(function(t2) { + var e2; + P(t2, o2.draggable, n2, false) && !t2.animated && t2 !== i2 && (e2 = X(t2), r2.left = Math.min(null !== (t2 = r2.left) && void 0 !== t2 ? t2 : 1 / 0, e2.left), r2.top = Math.min(null !== (t2 = r2.top) && void 0 !== t2 ? t2 : 1 / 0, e2.top), r2.right = Math.max(null !== (t2 = r2.right) && void 0 !== t2 ? t2 : -1 / 0, e2.right), r2.bottom = Math.max(null !== (t2 = r2.bottom) && void 0 !== t2 ? t2 : -1 / 0, e2.bottom)); + }), r2.width = r2.right - r2.left, r2.height = r2.bottom - r2.top, r2.x = r2.left, r2.y = r2.top, r2; + } + var K = "Sortable" + new Date().getTime(); + function x() { + var e2, o2 = []; + return { captureAnimationState: function() { + o2 = [], this.options.animation && [].slice.call(this.el.children).forEach(function(t2) { + var e3, n2; + "none" !== R(t2, "display") && t2 !== Ft.ghost && (o2.push({ target: t2, rect: X(t2) }), e3 = I({}, o2[o2.length - 1].rect), !t2.thisAnimationDuration || (n2 = v(t2, true)) && (e3.top -= n2.f, e3.left -= n2.e), t2.fromRect = e3); + }); + }, addAnimationState: function(t2) { + o2.push(t2); + }, removeAnimationState: function(t2) { + o2.splice(function(t3, e3) { + for (var n2 in t3) + if (t3.hasOwnProperty(n2)) { + for (var o3 in e3) + if (e3.hasOwnProperty(o3) && e3[o3] === t3[n2][o3]) + return Number(n2); + } + return -1; + }(o2, { target: t2 }), 1); + }, animateAll: function(t2) { + var c2 = this; + if (!this.options.animation) + return clearTimeout(e2), void ("function" == typeof t2 && t2()); + var u2 = false, d2 = 0; + o2.forEach(function(t3) { + var e3 = 0, n2 = t3.target, o3 = n2.fromRect, i2 = X(n2), r2 = n2.prevFromRect, a2 = n2.prevToRect, l2 = t3.rect, s2 = v(n2, true); + s2 && (i2.top -= s2.f, i2.left -= s2.e), n2.toRect = i2, n2.thisAnimationDuration && D(r2, i2) && !D(o3, i2) && (l2.top - i2.top) / (l2.left - i2.left) == (o3.top - i2.top) / (o3.left - i2.left) && (t3 = l2, s2 = r2, r2 = a2, a2 = c2.options, e3 = Math.sqrt(Math.pow(s2.top - t3.top, 2) + Math.pow(s2.left - t3.left, 2)) / Math.sqrt(Math.pow(s2.top - r2.top, 2) + Math.pow(s2.left - r2.left, 2)) * a2.animation), D(i2, o3) || (n2.prevFromRect = o3, n2.prevToRect = i2, e3 = e3 || c2.options.animation, c2.animate(n2, l2, i2, e3)), e3 && (u2 = true, d2 = Math.max(d2, e3), clearTimeout(n2.animationResetTimer), n2.animationResetTimer = setTimeout(function() { + n2.animationTime = 0, n2.prevFromRect = null, n2.fromRect = null, n2.prevToRect = null, n2.thisAnimationDuration = null; + }, e3), n2.thisAnimationDuration = e3); + }), clearTimeout(e2), u2 ? e2 = setTimeout(function() { + "function" == typeof t2 && t2(); + }, d2) : "function" == typeof t2 && t2(), o2 = []; + }, animate: function(t2, e3, n2, o3) { + var i2, r2; + o3 && (R(t2, "transition", ""), R(t2, "transform", ""), i2 = (r2 = v(this.el)) && r2.a, r2 = r2 && r2.d, i2 = (e3.left - n2.left) / (i2 || 1), r2 = (e3.top - n2.top) / (r2 || 1), t2.animatingX = !!i2, t2.animatingY = !!r2, R(t2, "transform", "translate3d(" + i2 + "px," + r2 + "px,0)"), this.forRepaintDummy = t2.offsetWidth, R(t2, "transition", "transform " + o3 + "ms" + (this.options.easing ? " " + this.options.easing : "")), R(t2, "transform", "translate3d(0,0,0)"), "number" == typeof t2.animated && clearTimeout(t2.animated), t2.animated = setTimeout(function() { + R(t2, "transition", ""), R(t2, "transform", ""), t2.animated = false, t2.animatingX = false, t2.animatingY = false; + }, o3)); + } }; + } + var A = [], N = { initializeByDefault: true }, W = { mount: function(e2) { + for (var t2 in N) + !N.hasOwnProperty(t2) || t2 in e2 || (e2[t2] = N[t2]); + A.forEach(function(t3) { + if (t3.pluginName === e2.pluginName) + throw "Sortable: Cannot mount plugin ".concat(e2.pluginName, " more than once"); + }), A.push(e2); + }, pluginEvent: function(e2, n2, o2) { + var t2 = this; + this.eventCanceled = false, o2.cancel = function() { + t2.eventCanceled = true; + }; + var i2 = e2 + "Global"; + A.forEach(function(t3) { + n2[t3.pluginName] && (n2[t3.pluginName][i2] && n2[t3.pluginName][i2](I({ sortable: n2 }, o2)), n2.options[t3.pluginName] && n2[t3.pluginName][e2] && n2[t3.pluginName][e2](I({ sortable: n2 }, o2))); + }); + }, initializePlugins: function(n2, o2, i2, t2) { + for (var e2 in A.forEach(function(t3) { + var e3 = t3.pluginName; + (n2.options[e3] || t3.initializeByDefault) && ((t3 = new t3(n2, o2, n2.options)).sortable = n2, t3.options = n2.options, n2[e3] = t3, a(i2, t3.defaults)); + }), n2.options) { + var r2; + n2.options.hasOwnProperty(e2) && (void 0 !== (r2 = this.modifyOption(n2, e2, n2.options[e2])) && (n2.options[e2] = r2)); + } + }, getEventProperties: function(e2, n2) { + var o2 = {}; + return A.forEach(function(t2) { + "function" == typeof t2.eventProperties && a(o2, t2.eventProperties.call(n2[t2.pluginName], e2)); + }), o2; + }, modifyOption: function(e2, n2, o2) { + var i2; + return A.forEach(function(t2) { + e2[t2.pluginName] && t2.optionListeners && "function" == typeof t2.optionListeners[n2] && (i2 = t2.optionListeners[n2].call(e2[t2.pluginName], o2)); + }), i2; + } }; + function z(t2) { + var e2 = t2.sortable, n2 = t2.rootEl, o2 = t2.name, i2 = t2.targetEl, r2 = t2.cloneEl, a2 = t2.toEl, l2 = t2.fromEl, s2 = t2.oldIndex, c2 = t2.newIndex, u2 = t2.oldDraggableIndex, d2 = t2.newDraggableIndex, h2 = t2.originalEvent, f2 = t2.putSortable, p2 = t2.extraEventProperties; + if (e2 = e2 || n2 && n2[K]) { + var g2, m2 = e2.options, t2 = "on" + o2.charAt(0).toUpperCase() + o2.substr(1); + !window.CustomEvent || y || w ? (g2 = document.createEvent("Event")).initEvent(o2, true, true) : g2 = new CustomEvent(o2, { bubbles: true, cancelable: true }), g2.to = a2 || n2, g2.from = l2 || n2, g2.item = i2 || n2, g2.clone = r2, g2.oldIndex = s2, g2.newIndex = c2, g2.oldDraggableIndex = u2, g2.newDraggableIndex = d2, g2.originalEvent = h2, g2.pullMode = f2 ? f2.lastPutMode : void 0; + var v2, b2 = I(I({}, p2), W.getEventProperties(o2, e2)); + for (v2 in b2) + g2[v2] = b2[v2]; + n2 && n2.dispatchEvent(g2), m2[t2] && m2[t2].call(e2, g2); + } + } + function G(t2, e2) { + var n2 = (o2 = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}).evt, o2 = i(o2, U); + W.pluginEvent.bind(Ft)(t2, e2, I({ dragEl: V, parentEl: Z, ghostEl: $, rootEl: Q, nextEl: J, lastDownEl: tt, cloneEl: et, cloneHidden: nt, dragStarted: gt, putSortable: st, activeSortable: Ft.active, originalEvent: n2, oldIndex: ot, oldDraggableIndex: rt, newIndex: it, newDraggableIndex: at, hideGhostForTarget: Rt, unhideGhostForTarget: Xt, cloneNowHidden: function() { + nt = true; + }, cloneNowShown: function() { + nt = false; + }, dispatchSortableEvent: function(t3) { + q({ sortable: e2, name: t3, originalEvent: n2 }); + } }, o2)); + } + var U = ["evt"]; + function q(t2) { + z(I({ putSortable: st, cloneEl: et, targetEl: V, rootEl: Q, oldIndex: ot, oldDraggableIndex: rt, newIndex: it, newDraggableIndex: at }, t2)); + } + var V, Z, $, Q, J, tt, et, nt, ot, it, rt, at, lt, st, ct, ut, dt, ht, ft, pt, gt, mt, vt, bt, yt, wt = false, Et = false, Dt = [], St = false, _t = false, Ct = [], Tt = false, xt = [], Ot = "undefined" != typeof document, Mt = n, At = w || y ? "cssFloat" : "float", Nt = Ot && !c && !n && "draggable" in document.createElement("div"), It = function() { + if (Ot) { + if (y) + return false; + var t2 = document.createElement("x"); + return t2.style.cssText = "pointer-events:auto", "auto" === t2.style.pointerEvents; + } + }(), Pt = function(t2, e2) { + var n2 = R(t2), o2 = parseInt(n2.width) - parseInt(n2.paddingLeft) - parseInt(n2.paddingRight) - parseInt(n2.borderLeftWidth) - parseInt(n2.borderRightWidth), i2 = B(t2, 0, e2), r2 = B(t2, 1, e2), a2 = i2 && R(i2), l2 = r2 && R(r2), s2 = a2 && parseInt(a2.marginLeft) + parseInt(a2.marginRight) + X(i2).width, t2 = l2 && parseInt(l2.marginLeft) + parseInt(l2.marginRight) + X(r2).width; + if ("flex" === n2.display) + return "column" === n2.flexDirection || "column-reverse" === n2.flexDirection ? "vertical" : "horizontal"; + if ("grid" === n2.display) + return n2.gridTemplateColumns.split(" ").length <= 1 ? "vertical" : "horizontal"; + if (i2 && a2.float && "none" !== a2.float) { + e2 = "left" === a2.float ? "left" : "right"; + return !r2 || "both" !== l2.clear && l2.clear !== e2 ? "horizontal" : "vertical"; + } + return i2 && ("block" === a2.display || "flex" === a2.display || "table" === a2.display || "grid" === a2.display || o2 <= s2 && "none" === n2[At] || r2 && "none" === n2[At] && o2 < s2 + t2) ? "vertical" : "horizontal"; + }, kt = function(t2) { + function l2(r2, a2) { + return function(t3, e3, n3, o2) { + var i2 = t3.options.group.name && e3.options.group.name && t3.options.group.name === e3.options.group.name; + if (null == r2 && (a2 || i2)) + return true; + if (null == r2 || false === r2) + return false; + if (a2 && "clone" === r2) + return r2; + if ("function" == typeof r2) + return l2(r2(t3, e3, n3, o2), a2)(t3, e3, n3, o2); + e3 = (a2 ? t3 : e3).options.group.name; + return true === r2 || "string" == typeof r2 && r2 === e3 || r2.join && -1 < r2.indexOf(e3); + }; + } + var e2 = {}, n2 = t2.group; + n2 && "object" == o(n2) || (n2 = { name: n2 }), e2.name = n2.name, e2.checkPull = l2(n2.pull, true), e2.checkPut = l2(n2.put), e2.revertClone = n2.revertClone, t2.group = e2; + }, Rt = function() { + !It && $ && R($, "display", "none"); + }, Xt = function() { + !It && $ && R($, "display", ""); + }; + Ot && !c && document.addEventListener("click", function(t2) { + if (Et) + return t2.preventDefault(), t2.stopPropagation && t2.stopPropagation(), t2.stopImmediatePropagation && t2.stopImmediatePropagation(), Et = false; + }, true); + function Yt(t2) { + if (V) { + t2 = t2.touches ? t2.touches[0] : t2; + var e2 = (i2 = t2.clientX, r2 = t2.clientY, Dt.some(function(t3) { + var e3 = t3[K].options.emptyInsertThreshold; + if (e3 && !F(t3)) { + var n3 = X(t3), o3 = i2 >= n3.left - e3 && i2 <= n3.right + e3, e3 = r2 >= n3.top - e3 && r2 <= n3.bottom + e3; + return o3 && e3 ? a2 = t3 : void 0; + } + }), a2); + if (e2) { + var n2, o2 = {}; + for (n2 in t2) + t2.hasOwnProperty(n2) && (o2[n2] = t2[n2]); + o2.target = o2.rootEl = e2, o2.preventDefault = void 0, o2.stopPropagation = void 0, e2[K]._onDragOver(o2); + } + } + var i2, r2, a2; + } + function Bt(t2) { + V && V.parentNode[K]._isOutsideThisEl(t2.target); + } + function Ft(t2, e2) { + if (!t2 || !t2.nodeType || 1 !== t2.nodeType) + throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t2)); + this.el = t2, this.options = e2 = a({}, e2), t2[K] = this; + var n2, o2, i2 = { group: null, sort: true, disabled: false, store: null, handle: null, draggable: /^[uo]l$/i.test(t2.nodeName) ? ">li" : ">*", swapThreshold: 1, invertSwap: false, invertedSwapThreshold: null, removeCloneOnHide: true, direction: function() { + return Pt(t2, this.options); + }, ghostClass: "sortable-ghost", chosenClass: "sortable-chosen", dragClass: "sortable-drag", ignore: "a, img", filter: null, preventOnFilter: true, animation: 0, easing: null, setData: function(t3, e3) { + t3.setData("Text", e3.textContent); + }, dropBubble: false, dragoverBubble: false, dataIdAttr: "data-id", delay: 0, delayOnTouchOnly: false, touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, forceFallback: false, fallbackClass: "sortable-fallback", fallbackOnBody: false, fallbackTolerance: 0, fallbackOffset: { x: 0, y: 0 }, supportPointer: false !== Ft.supportPointer && "PointerEvent" in window && !u, emptyInsertThreshold: 5 }; + for (n2 in W.initializePlugins(this, t2, i2), i2) + n2 in e2 || (e2[n2] = i2[n2]); + for (o2 in kt(e2), this) + "_" === o2.charAt(0) && "function" == typeof this[o2] && (this[o2] = this[o2].bind(this)); + this.nativeDraggable = !e2.forceFallback && Nt, this.nativeDraggable && (this.options.touchStartThreshold = 1), e2.supportPointer ? h(t2, "pointerdown", this._onTapStart) : (h(t2, "mousedown", this._onTapStart), h(t2, "touchstart", this._onTapStart)), this.nativeDraggable && (h(t2, "dragover", this), h(t2, "dragenter", this)), Dt.push(this.el), e2.store && e2.store.get && this.sort(e2.store.get(this) || []), a(this, x()); + } + function jt(t2, e2, n2, o2, i2, r2, a2, l2) { + var s2, c2, u2 = t2[K], d2 = u2.options.onMove; + return !window.CustomEvent || y || w ? (s2 = document.createEvent("Event")).initEvent("move", true, true) : s2 = new CustomEvent("move", { bubbles: true, cancelable: true }), s2.to = e2, s2.from = t2, s2.dragged = n2, s2.draggedRect = o2, s2.related = i2 || e2, s2.relatedRect = r2 || X(e2), s2.willInsertAfter = l2, s2.originalEvent = a2, t2.dispatchEvent(s2), c2 = d2 ? d2.call(u2, s2, a2) : c2; + } + function Ht(t2) { + t2.draggable = false; + } + function Lt() { + Tt = false; + } + function Kt(t2) { + return setTimeout(t2, 0); + } + function Wt(t2) { + return clearTimeout(t2); + } + Ft.prototype = { constructor: Ft, _isOutsideThisEl: function(t2) { + this.el.contains(t2) || t2 === this.el || (mt = null); + }, _getDirection: function(t2, e2) { + return "function" == typeof this.options.direction ? this.options.direction.call(this, t2, e2, V) : this.options.direction; + }, _onTapStart: function(e2) { + if (e2.cancelable) { + var n2 = this, o2 = this.el, t2 = this.options, i2 = t2.preventOnFilter, r2 = e2.type, a2 = e2.touches && e2.touches[0] || e2.pointerType && "touch" === e2.pointerType && e2, l2 = (a2 || e2).target, s2 = e2.target.shadowRoot && (e2.path && e2.path[0] || e2.composedPath && e2.composedPath()[0]) || l2, c2 = t2.filter; + if (!function(t3) { + xt.length = 0; + var e3 = t3.getElementsByTagName("input"), n3 = e3.length; + for (; n3--; ) { + var o3 = e3[n3]; + o3.checked && xt.push(o3); + } + }(o2), !V && !(/mousedown|pointerdown/.test(r2) && 0 !== e2.button || t2.disabled) && !s2.isContentEditable && (this.nativeDraggable || !u || !l2 || "SELECT" !== l2.tagName.toUpperCase()) && !((l2 = P(l2, t2.draggable, o2, false)) && l2.animated || tt === l2)) { + if (ot = j(l2), rt = j(l2, t2.draggable), "function" == typeof c2) { + if (c2.call(this, e2, l2, this)) + return q({ sortable: n2, rootEl: s2, name: "filter", targetEl: l2, toEl: o2, fromEl: o2 }), G("filter", n2, { evt: e2 }), void (i2 && e2.cancelable && e2.preventDefault()); + } else if (c2 = c2 && c2.split(",").some(function(t3) { + if (t3 = P(s2, t3.trim(), o2, false)) + return q({ sortable: n2, rootEl: t3, name: "filter", targetEl: l2, fromEl: o2, toEl: o2 }), G("filter", n2, { evt: e2 }), true; + })) + return void (i2 && e2.cancelable && e2.preventDefault()); + t2.handle && !P(s2, t2.handle, o2, false) || this._prepareDragStart(e2, a2, l2); + } + } + }, _prepareDragStart: function(t2, e2, n2) { + var o2, i2 = this, r2 = i2.el, a2 = i2.options, l2 = r2.ownerDocument; + n2 && !V && n2.parentNode === r2 && (o2 = X(n2), Q = r2, Z = (V = n2).parentNode, J = V.nextSibling, tt = n2, lt = a2.group, ct = { target: Ft.dragged = V, clientX: (e2 || t2).clientX, clientY: (e2 || t2).clientY }, ft = ct.clientX - o2.left, pt = ct.clientY - o2.top, this._lastX = (e2 || t2).clientX, this._lastY = (e2 || t2).clientY, V.style["will-change"] = "all", o2 = function() { + G("delayEnded", i2, { evt: t2 }), Ft.eventCanceled ? i2._onDrop() : (i2._disableDelayedDragEvents(), !s && i2.nativeDraggable && (V.draggable = true), i2._triggerDragStart(t2, e2), q({ sortable: i2, name: "choose", originalEvent: t2 }), k(V, a2.chosenClass, true)); + }, a2.ignore.split(",").forEach(function(t3) { + b(V, t3.trim(), Ht); + }), h(l2, "dragover", Yt), h(l2, "mousemove", Yt), h(l2, "touchmove", Yt), h(l2, "mouseup", i2._onDrop), h(l2, "touchend", i2._onDrop), h(l2, "touchcancel", i2._onDrop), s && this.nativeDraggable && (this.options.touchStartThreshold = 4, V.draggable = true), G("delayStart", this, { evt: t2 }), !a2.delay || a2.delayOnTouchOnly && !e2 || this.nativeDraggable && (w || y) ? o2() : Ft.eventCanceled ? this._onDrop() : (h(l2, "mouseup", i2._disableDelayedDrag), h(l2, "touchend", i2._disableDelayedDrag), h(l2, "touchcancel", i2._disableDelayedDrag), h(l2, "mousemove", i2._delayedDragTouchMoveHandler), h(l2, "touchmove", i2._delayedDragTouchMoveHandler), a2.supportPointer && h(l2, "pointermove", i2._delayedDragTouchMoveHandler), i2._dragStartTimer = setTimeout(o2, a2.delay))); + }, _delayedDragTouchMoveHandler: function(t2) { + t2 = t2.touches ? t2.touches[0] : t2; + Math.max(Math.abs(t2.clientX - this._lastX), Math.abs(t2.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1)) && this._disableDelayedDrag(); + }, _disableDelayedDrag: function() { + V && Ht(V), clearTimeout(this._dragStartTimer), this._disableDelayedDragEvents(); + }, _disableDelayedDragEvents: function() { + var t2 = this.el.ownerDocument; + f(t2, "mouseup", this._disableDelayedDrag), f(t2, "touchend", this._disableDelayedDrag), f(t2, "touchcancel", this._disableDelayedDrag), f(t2, "mousemove", this._delayedDragTouchMoveHandler), f(t2, "touchmove", this._delayedDragTouchMoveHandler), f(t2, "pointermove", this._delayedDragTouchMoveHandler); + }, _triggerDragStart: function(t2, e2) { + e2 = e2 || "touch" == t2.pointerType && t2, !this.nativeDraggable || e2 ? this.options.supportPointer ? h(document, "pointermove", this._onTouchMove) : h(document, e2 ? "touchmove" : "mousemove", this._onTouchMove) : (h(V, "dragend", this), h(Q, "dragstart", this._onDragStart)); + try { + document.selection ? Kt(function() { + document.selection.empty(); + }) : window.getSelection().removeAllRanges(); + } catch (t3) { + } + }, _dragStarted: function(t2, e2) { + var n2; + wt = false, Q && V ? (G("dragStarted", this, { evt: e2 }), this.nativeDraggable && h(document, "dragover", Bt), n2 = this.options, t2 || k(V, n2.dragClass, false), k(V, n2.ghostClass, true), Ft.active = this, t2 && this._appendGhost(), q({ sortable: this, name: "start", originalEvent: e2 })) : this._nulling(); + }, _emulateDragOver: function() { + if (ut) { + this._lastX = ut.clientX, this._lastY = ut.clientY, Rt(); + for (var t2 = document.elementFromPoint(ut.clientX, ut.clientY), e2 = t2; t2 && t2.shadowRoot && (t2 = t2.shadowRoot.elementFromPoint(ut.clientX, ut.clientY)) !== e2; ) + e2 = t2; + if (V.parentNode[K]._isOutsideThisEl(t2), e2) + do { + if (e2[K]) { + if (e2[K]._onDragOver({ clientX: ut.clientX, clientY: ut.clientY, target: t2, rootEl: e2 }) && !this.options.dragoverBubble) + break; + } + } while (e2 = (t2 = e2).parentNode); + Xt(); + } + }, _onTouchMove: function(t2) { + if (ct) { + var e2 = this.options, n2 = e2.fallbackTolerance, o2 = e2.fallbackOffset, i2 = t2.touches ? t2.touches[0] : t2, r2 = $ && v($, true), a2 = $ && r2 && r2.a, l2 = $ && r2 && r2.d, e2 = Mt && yt && E(yt), a2 = (i2.clientX - ct.clientX + o2.x) / (a2 || 1) + (e2 ? e2[0] - Ct[0] : 0) / (a2 || 1), l2 = (i2.clientY - ct.clientY + o2.y) / (l2 || 1) + (e2 ? e2[1] - Ct[1] : 0) / (l2 || 1); + if (!Ft.active && !wt) { + if (n2 && Math.max(Math.abs(i2.clientX - this._lastX), Math.abs(i2.clientY - this._lastY)) < n2) + return; + this._onDragStart(t2, true); + } + $ && (r2 ? (r2.e += a2 - (dt || 0), r2.f += l2 - (ht || 0)) : r2 = { a: 1, b: 0, c: 0, d: 1, e: a2, f: l2 }, r2 = "matrix(".concat(r2.a, ",").concat(r2.b, ",").concat(r2.c, ",").concat(r2.d, ",").concat(r2.e, ",").concat(r2.f, ")"), R($, "webkitTransform", r2), R($, "mozTransform", r2), R($, "msTransform", r2), R($, "transform", r2), dt = a2, ht = l2, ut = i2), t2.cancelable && t2.preventDefault(); + } + }, _appendGhost: function() { + if (!$) { + var t2 = this.options.fallbackOnBody ? document.body : Q, e2 = X(V, true, Mt, true, t2), n2 = this.options; + if (Mt) { + for (yt = t2; "static" === R(yt, "position") && "none" === R(yt, "transform") && yt !== document; ) + yt = yt.parentNode; + yt !== document.body && yt !== document.documentElement ? (yt === document && (yt = O()), e2.top += yt.scrollTop, e2.left += yt.scrollLeft) : yt = O(), Ct = E(yt); + } + k($ = V.cloneNode(true), n2.ghostClass, false), k($, n2.fallbackClass, true), k($, n2.dragClass, true), R($, "transition", ""), R($, "transform", ""), R($, "box-sizing", "border-box"), R($, "margin", 0), R($, "top", e2.top), R($, "left", e2.left), R($, "width", e2.width), R($, "height", e2.height), R($, "opacity", "0.8"), R($, "position", Mt ? "absolute" : "fixed"), R($, "zIndex", "100000"), R($, "pointerEvents", "none"), Ft.ghost = $, t2.appendChild($), R($, "transform-origin", ft / parseInt($.style.width) * 100 + "% " + pt / parseInt($.style.height) * 100 + "%"); + } + }, _onDragStart: function(t2, e2) { + var n2 = this, o2 = t2.dataTransfer, i2 = n2.options; + G("dragStart", this, { evt: t2 }), Ft.eventCanceled ? this._onDrop() : (G("setupClone", this), Ft.eventCanceled || ((et = _(V)).removeAttribute("id"), et.draggable = false, et.style["will-change"] = "", this._hideClone(), k(et, this.options.chosenClass, false), Ft.clone = et), n2.cloneId = Kt(function() { + G("clone", n2), Ft.eventCanceled || (n2.options.removeCloneOnHide || Q.insertBefore(et, V), n2._hideClone(), q({ sortable: n2, name: "clone" })); + }), e2 || k(V, i2.dragClass, true), e2 ? (Et = true, n2._loopId = setInterval(n2._emulateDragOver, 50)) : (f(document, "mouseup", n2._onDrop), f(document, "touchend", n2._onDrop), f(document, "touchcancel", n2._onDrop), o2 && (o2.effectAllowed = "move", i2.setData && i2.setData.call(n2, o2, V)), h(document, "drop", n2), R(V, "transform", "translateZ(0)")), wt = true, n2._dragStartId = Kt(n2._dragStarted.bind(n2, e2, t2)), h(document, "selectstart", n2), gt = true, u && R(document.body, "user-select", "none")); + }, _onDragOver: function(n2) { + var o2, i2, r2, t2, e2, a2 = this.el, l2 = n2.target, s2 = this.options, c2 = s2.group, u2 = Ft.active, d2 = lt === c2, h2 = s2.sort, f2 = st || u2, p2 = this, g2 = false; + if (!Tt) { + if (void 0 !== n2.preventDefault && n2.cancelable && n2.preventDefault(), l2 = P(l2, s2.draggable, a2, true), O2("dragOver"), Ft.eventCanceled) + return g2; + if (V.contains(n2.target) || l2.animated && l2.animatingX && l2.animatingY || p2._ignoreWhileAnimating === l2) + return A2(false); + if (Et = false, u2 && !s2.disabled && (d2 ? h2 || (i2 = Z !== Q) : st === this || (this.lastPutMode = lt.checkPull(this, u2, V, n2)) && c2.checkPut(this, u2, V, n2))) { + if (r2 = "vertical" === this._getDirection(n2, l2), o2 = X(V), O2("dragOverValid"), Ft.eventCanceled) + return g2; + if (i2) + return Z = Q, M2(), this._hideClone(), O2("revert"), Ft.eventCanceled || (J ? Q.insertBefore(V, J) : Q.appendChild(V)), A2(true); + var m2 = F(a2, s2.draggable); + if (m2 && (S2 = n2, c2 = r2, x2 = X(F((D2 = this).el, D2.options.draggable)), D2 = L(D2.el, D2.options, $), !(c2 ? S2.clientX > D2.right + 10 || S2.clientY > x2.bottom && S2.clientX > x2.left : S2.clientY > D2.bottom + 10 || S2.clientX > x2.right && S2.clientY > x2.top) || m2.animated)) { + if (m2 && (t2 = n2, e2 = r2, C2 = X(B((_2 = this).el, 0, _2.options, true)), _2 = L(_2.el, _2.options, $), e2 ? t2.clientX < _2.left - 10 || t2.clientY < C2.top && t2.clientX < C2.right : t2.clientY < _2.top - 10 || t2.clientY < C2.bottom && t2.clientX < C2.left)) { + var v2 = B(a2, 0, s2, true); + if (v2 === V) + return A2(false); + if (E2 = X(l2 = v2), false !== jt(Q, a2, V, o2, l2, E2, n2, false)) + return M2(), a2.insertBefore(V, v2), Z = a2, N2(), A2(true); + } else if (l2.parentNode === a2) { + var b2, y2, w2, E2 = X(l2), D2 = V.parentNode !== a2, S2 = (S2 = V.animated && V.toRect || o2, x2 = l2.animated && l2.toRect || E2, _2 = (e2 = r2) ? S2.left : S2.top, t2 = e2 ? S2.right : S2.bottom, C2 = e2 ? S2.width : S2.height, v2 = e2 ? x2.left : x2.top, S2 = e2 ? x2.right : x2.bottom, x2 = e2 ? x2.width : x2.height, !(_2 === v2 || t2 === S2 || _2 + C2 / 2 === v2 + x2 / 2)), _2 = r2 ? "top" : "left", C2 = Y(l2, "top", "top") || Y(V, "top", "top"), v2 = C2 ? C2.scrollTop : void 0; + if (mt !== l2 && (y2 = E2[_2], St = false, _t = !S2 && s2.invertSwap || D2), 0 !== (b2 = function(t3, e3, n3, o3, i3, r3, a3, l3) { + var s3 = o3 ? t3.clientY : t3.clientX, c3 = o3 ? n3.height : n3.width, t3 = o3 ? n3.top : n3.left, o3 = o3 ? n3.bottom : n3.right, n3 = false; + if (!a3) { + if (l3 && bt < c3 * i3) { + if (St = !St && (1 === vt ? t3 + c3 * r3 / 2 < s3 : s3 < o3 - c3 * r3 / 2) ? true : St) + n3 = true; + else if (1 === vt ? s3 < t3 + bt : o3 - bt < s3) + return -vt; + } else if (t3 + c3 * (1 - i3) / 2 < s3 && s3 < o3 - c3 * (1 - i3) / 2) + return function(t4) { + return j(V) < j(t4) ? 1 : -1; + }(e3); + } + if ((n3 = n3 || a3) && (s3 < t3 + c3 * r3 / 2 || o3 - c3 * r3 / 2 < s3)) + return t3 + c3 / 2 < s3 ? 1 : -1; + return 0; + }(n2, l2, E2, r2, S2 ? 1 : s2.swapThreshold, null == s2.invertedSwapThreshold ? s2.swapThreshold : s2.invertedSwapThreshold, _t, mt === l2))) + for (var T2 = j(V); (w2 = Z.children[T2 -= b2]) && ("none" === R(w2, "display") || w2 === $); ) + ; + if (0 === b2 || w2 === l2) + return A2(false); + vt = b2; + var x2 = (mt = l2).nextElementSibling, D2 = false, S2 = jt(Q, a2, V, o2, l2, E2, n2, D2 = 1 === b2); + if (false !== S2) + return 1 !== S2 && -1 !== S2 || (D2 = 1 === S2), Tt = true, setTimeout(Lt, 30), M2(), D2 && !x2 ? a2.appendChild(V) : l2.parentNode.insertBefore(V, D2 ? x2 : l2), C2 && H(C2, 0, v2 - C2.scrollTop), Z = V.parentNode, void 0 === y2 || _t || (bt = Math.abs(y2 - X(l2)[_2])), N2(), A2(true); + } + } else { + if (m2 === V) + return A2(false); + if ((l2 = m2 && a2 === n2.target ? m2 : l2) && (E2 = X(l2)), false !== jt(Q, a2, V, o2, l2, E2, n2, !!l2)) + return M2(), m2 && m2.nextSibling ? a2.insertBefore(V, m2.nextSibling) : a2.appendChild(V), Z = a2, N2(), A2(true); + } + if (a2.contains(V)) + return A2(false); + } + return false; + } + function O2(t3, e3) { + G(t3, p2, I({ evt: n2, isOwner: d2, axis: r2 ? "vertical" : "horizontal", revert: i2, dragRect: o2, targetRect: E2, canSort: h2, fromSortable: f2, target: l2, completed: A2, onMove: function(t4, e4) { + return jt(Q, a2, V, o2, t4, X(t4), n2, e4); + }, changed: N2 }, e3)); + } + function M2() { + O2("dragOverAnimationCapture"), p2.captureAnimationState(), p2 !== f2 && f2.captureAnimationState(); + } + function A2(t3) { + return O2("dragOverCompleted", { insertion: t3 }), t3 && (d2 ? u2._hideClone() : u2._showClone(p2), p2 !== f2 && (k(V, (st || u2).options.ghostClass, false), k(V, s2.ghostClass, true)), st !== p2 && p2 !== Ft.active ? st = p2 : p2 === Ft.active && st && (st = null), f2 === p2 && (p2._ignoreWhileAnimating = l2), p2.animateAll(function() { + O2("dragOverAnimationComplete"), p2._ignoreWhileAnimating = null; + }), p2 !== f2 && (f2.animateAll(), f2._ignoreWhileAnimating = null)), (l2 === V && !V.animated || l2 === a2 && !l2.animated) && (mt = null), s2.dragoverBubble || n2.rootEl || l2 === document || (V.parentNode[K]._isOutsideThisEl(n2.target), t3 || Yt(n2)), !s2.dragoverBubble && n2.stopPropagation && n2.stopPropagation(), g2 = true; + } + function N2() { + it = j(V), at = j(V, s2.draggable), q({ sortable: p2, name: "change", toEl: a2, newIndex: it, newDraggableIndex: at, originalEvent: n2 }); + } + }, _ignoreWhileAnimating: null, _offMoveEvents: function() { + f(document, "mousemove", this._onTouchMove), f(document, "touchmove", this._onTouchMove), f(document, "pointermove", this._onTouchMove), f(document, "dragover", Yt), f(document, "mousemove", Yt), f(document, "touchmove", Yt); + }, _offUpEvents: function() { + var t2 = this.el.ownerDocument; + f(t2, "mouseup", this._onDrop), f(t2, "touchend", this._onDrop), f(t2, "pointerup", this._onDrop), f(t2, "touchcancel", this._onDrop), f(document, "selectstart", this); + }, _onDrop: function(t2) { + var e2 = this.el, n2 = this.options; + it = j(V), at = j(V, n2.draggable), G("drop", this, { evt: t2 }), Z = V && V.parentNode, it = j(V), at = j(V, n2.draggable), Ft.eventCanceled || (St = _t = wt = false, clearInterval(this._loopId), clearTimeout(this._dragStartTimer), Wt(this.cloneId), Wt(this._dragStartId), this.nativeDraggable && (f(document, "drop", this), f(e2, "dragstart", this._onDragStart)), this._offMoveEvents(), this._offUpEvents(), u && R(document.body, "user-select", ""), R(V, "transform", ""), t2 && (gt && (t2.cancelable && t2.preventDefault(), n2.dropBubble || t2.stopPropagation()), $ && $.parentNode && $.parentNode.removeChild($), (Q === Z || st && "clone" !== st.lastPutMode) && et && et.parentNode && et.parentNode.removeChild(et), V && (this.nativeDraggable && f(V, "dragend", this), Ht(V), V.style["will-change"] = "", gt && !wt && k(V, (st || this).options.ghostClass, false), k(V, this.options.chosenClass, false), q({ sortable: this, name: "unchoose", toEl: Z, newIndex: null, newDraggableIndex: null, originalEvent: t2 }), Q !== Z ? (0 <= it && (q({ rootEl: Z, name: "add", toEl: Z, fromEl: Q, originalEvent: t2 }), q({ sortable: this, name: "remove", toEl: Z, originalEvent: t2 }), q({ rootEl: Z, name: "sort", toEl: Z, fromEl: Q, originalEvent: t2 }), q({ sortable: this, name: "sort", toEl: Z, originalEvent: t2 })), st && st.save()) : it !== ot && 0 <= it && (q({ sortable: this, name: "update", toEl: Z, originalEvent: t2 }), q({ sortable: this, name: "sort", toEl: Z, originalEvent: t2 })), Ft.active && (null != it && -1 !== it || (it = ot, at = rt), q({ sortable: this, name: "end", toEl: Z, originalEvent: t2 }), this.save())))), this._nulling(); + }, _nulling: function() { + G("nulling", this), Q = V = Z = $ = J = et = tt = nt = ct = ut = gt = it = at = ot = rt = mt = vt = st = lt = Ft.dragged = Ft.ghost = Ft.clone = Ft.active = null, xt.forEach(function(t2) { + t2.checked = true; + }), xt.length = dt = ht = 0; + }, handleEvent: function(t2) { + switch (t2.type) { + case "drop": + case "dragend": + this._onDrop(t2); + break; + case "dragenter": + case "dragover": + V && (this._onDragOver(t2), function(t3) { + t3.dataTransfer && (t3.dataTransfer.dropEffect = "move"); + t3.cancelable && t3.preventDefault(); + }(t2)); + break; + case "selectstart": + t2.preventDefault(); + } + }, toArray: function() { + for (var t2, e2 = [], n2 = this.el.children, o2 = 0, i2 = n2.length, r2 = this.options; o2 < i2; o2++) + P(t2 = n2[o2], r2.draggable, this.el, false) && e2.push(t2.getAttribute(r2.dataIdAttr) || function(t3) { + var e3 = t3.tagName + t3.className + t3.src + t3.href + t3.textContent, n3 = e3.length, o3 = 0; + for (; n3--; ) + o3 += e3.charCodeAt(n3); + return o3.toString(36); + }(t2)); + return e2; + }, sort: function(t2, e2) { + var n2 = {}, o2 = this.el; + this.toArray().forEach(function(t3, e3) { + e3 = o2.children[e3]; + P(e3, this.options.draggable, o2, false) && (n2[t3] = e3); + }, this), e2 && this.captureAnimationState(), t2.forEach(function(t3) { + n2[t3] && (o2.removeChild(n2[t3]), o2.appendChild(n2[t3])); + }), e2 && this.animateAll(); + }, save: function() { + var t2 = this.options.store; + t2 && t2.set && t2.set(this); + }, closest: function(t2, e2) { + return P(t2, e2 || this.options.draggable, this.el, false); + }, option: function(t2, e2) { + var n2 = this.options; + if (void 0 === e2) + return n2[t2]; + var o2 = W.modifyOption(this, t2, e2); + n2[t2] = void 0 !== o2 ? o2 : e2, "group" === t2 && kt(n2); + }, destroy: function() { + G("destroy", this); + var t2 = this.el; + t2[K] = null, f(t2, "mousedown", this._onTapStart), f(t2, "touchstart", this._onTapStart), f(t2, "pointerdown", this._onTapStart), this.nativeDraggable && (f(t2, "dragover", this), f(t2, "dragenter", this)), Array.prototype.forEach.call(t2.querySelectorAll("[draggable]"), function(t3) { + t3.removeAttribute("draggable"); + }), this._onDrop(), this._disableDelayedDragEvents(), Dt.splice(Dt.indexOf(this.el), 1), this.el = t2 = null; + }, _hideClone: function() { + nt || (G("hideClone", this), Ft.eventCanceled || (R(et, "display", "none"), this.options.removeCloneOnHide && et.parentNode && et.parentNode.removeChild(et), nt = true)); + }, _showClone: function(t2) { + "clone" === t2.lastPutMode ? nt && (G("showClone", this), Ft.eventCanceled || (V.parentNode != Q || this.options.group.revertClone ? J ? Q.insertBefore(et, J) : Q.appendChild(et) : Q.insertBefore(et, V), this.options.group.revertClone && this.animate(V, et), R(et, "display", ""), nt = false)) : this._hideClone(); + } }, Ot && h(document, "touchmove", function(t2) { + (Ft.active || wt) && t2.cancelable && t2.preventDefault(); + }), Ft.utils = { on: h, off: f, css: R, find: b, is: function(t2, e2) { + return !!P(t2, e2, t2, false); + }, extend: function(t2, e2) { + if (t2 && e2) + for (var n2 in e2) + e2.hasOwnProperty(n2) && (t2[n2] = e2[n2]); + return t2; + }, throttle: S, closest: P, toggleClass: k, clone: _, index: j, nextTick: Kt, cancelNextTick: Wt, detectDirection: Pt, getChild: B }, Ft.get = function(t2) { + return t2[K]; + }, Ft.mount = function() { + for (var t2 = arguments.length, e2 = new Array(t2), n2 = 0; n2 < t2; n2++) + e2[n2] = arguments[n2]; + (e2 = e2[0].constructor === Array ? e2[0] : e2).forEach(function(t3) { + if (!t3.prototype || !t3.prototype.constructor) + throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(t3)); + t3.utils && (Ft.utils = I(I({}, Ft.utils), t3.utils)), W.mount(t3); + }); + }, Ft.create = function(t2, e2) { + return new Ft(t2, e2); + }; + var zt, Gt, Ut, qt, Vt, Zt, $t = [], Qt = !(Ft.version = "1.15.2"); + function Jt() { + $t.forEach(function(t2) { + clearInterval(t2.pid); + }), $t = []; + } + function te() { + clearInterval(Zt); + } + var ee, ne = S(function(n2, t2, e2, o2) { + if (t2.scroll) { + var i2, r2 = (n2.touches ? n2.touches[0] : n2).clientX, a2 = (n2.touches ? n2.touches[0] : n2).clientY, l2 = t2.scrollSensitivity, s2 = t2.scrollSpeed, c2 = O(), u2 = false; + Gt !== e2 && (Gt = e2, Jt(), zt = t2.scroll, i2 = t2.scrollFn, true === zt && (zt = M(e2, true))); + var d2 = 0, h2 = zt; + do { + var f2 = h2, p2 = X(f2), g2 = p2.top, m2 = p2.bottom, v2 = p2.left, b2 = p2.right, y2 = p2.width, w2 = p2.height, E2 = void 0, D2 = void 0, S2 = f2.scrollWidth, _2 = f2.scrollHeight, C2 = R(f2), T2 = f2.scrollLeft, p2 = f2.scrollTop, D2 = f2 === c2 ? (E2 = y2 < S2 && ("auto" === C2.overflowX || "scroll" === C2.overflowX || "visible" === C2.overflowX), w2 < _2 && ("auto" === C2.overflowY || "scroll" === C2.overflowY || "visible" === C2.overflowY)) : (E2 = y2 < S2 && ("auto" === C2.overflowX || "scroll" === C2.overflowX), w2 < _2 && ("auto" === C2.overflowY || "scroll" === C2.overflowY)), T2 = E2 && (Math.abs(b2 - r2) <= l2 && T2 + y2 < S2) - (Math.abs(v2 - r2) <= l2 && !!T2), p2 = D2 && (Math.abs(m2 - a2) <= l2 && p2 + w2 < _2) - (Math.abs(g2 - a2) <= l2 && !!p2); + if (!$t[d2]) + for (var x2 = 0; x2 <= d2; x2++) + $t[x2] || ($t[x2] = {}); + $t[d2].vx == T2 && $t[d2].vy == p2 && $t[d2].el === f2 || ($t[d2].el = f2, $t[d2].vx = T2, $t[d2].vy = p2, clearInterval($t[d2].pid), 0 == T2 && 0 == p2 || (u2 = true, $t[d2].pid = setInterval(function() { + o2 && 0 === this.layer && Ft.active._onTouchMove(Vt); + var t3 = $t[this.layer].vy ? $t[this.layer].vy * s2 : 0, e3 = $t[this.layer].vx ? $t[this.layer].vx * s2 : 0; + "function" == typeof i2 && "continue" !== i2.call(Ft.dragged.parentNode[K], e3, t3, n2, Vt, $t[this.layer].el) || H($t[this.layer].el, e3, t3); + }.bind({ layer: d2 }), 24))), d2++; + } while (t2.bubbleScroll && h2 !== c2 && (h2 = M(h2, false))); + Qt = u2; + } + }, 30), c = function(t2) { + var e2 = t2.originalEvent, n2 = t2.putSortable, o2 = t2.dragEl, i2 = t2.activeSortable, r2 = t2.dispatchSortableEvent, a2 = t2.hideGhostForTarget, t2 = t2.unhideGhostForTarget; + e2 && (i2 = n2 || i2, a2(), e2 = e2.changedTouches && e2.changedTouches.length ? e2.changedTouches[0] : e2, e2 = document.elementFromPoint(e2.clientX, e2.clientY), t2(), i2 && !i2.el.contains(e2) && (r2("spill"), this.onSpill({ dragEl: o2, putSortable: n2 }))); + }; + function oe() { + } + function ie() { + } + oe.prototype = { startIndex: null, dragStart: function(t2) { + t2 = t2.oldDraggableIndex; + this.startIndex = t2; + }, onSpill: function(t2) { + var e2 = t2.dragEl, n2 = t2.putSortable; + this.sortable.captureAnimationState(), n2 && n2.captureAnimationState(); + t2 = B(this.sortable.el, this.startIndex, this.options); + t2 ? this.sortable.el.insertBefore(e2, t2) : this.sortable.el.appendChild(e2), this.sortable.animateAll(), n2 && n2.animateAll(); + }, drop: c }, a(oe, { pluginName: "revertOnSpill" }), ie.prototype = { onSpill: function(t2) { + var e2 = t2.dragEl, t2 = t2.putSortable || this.sortable; + t2.captureAnimationState(), e2.parentNode && e2.parentNode.removeChild(e2), t2.animateAll(); + }, drop: c }, a(ie, { pluginName: "removeOnSpill" }); + var re, ae, le, se, ce, ue = [], de = [], he = false, fe = false, pe = false; + function ge(n2, o2) { + de.forEach(function(t2, e2) { + e2 = o2.children[t2.sortableIndex + (n2 ? Number(e2) : 0)]; + e2 ? o2.insertBefore(t2, e2) : o2.appendChild(t2); + }); + } + function me() { + ue.forEach(function(t2) { + t2 !== le && t2.parentNode && t2.parentNode.removeChild(t2); + }); + } + return Ft.mount(new function() { + function t2() { + for (var t3 in this.defaults = { scroll: true, forceAutoScrollFallback: false, scrollSensitivity: 30, scrollSpeed: 10, bubbleScroll: true }, this) + "_" === t3.charAt(0) && "function" == typeof this[t3] && (this[t3] = this[t3].bind(this)); + } + return t2.prototype = { dragStarted: function(t3) { + t3 = t3.originalEvent; + this.sortable.nativeDraggable ? h(document, "dragover", this._handleAutoScroll) : this.options.supportPointer ? h(document, "pointermove", this._handleFallbackAutoScroll) : t3.touches ? h(document, "touchmove", this._handleFallbackAutoScroll) : h(document, "mousemove", this._handleFallbackAutoScroll); + }, dragOverCompleted: function(t3) { + t3 = t3.originalEvent; + this.options.dragOverBubble || t3.rootEl || this._handleAutoScroll(t3); + }, drop: function() { + this.sortable.nativeDraggable ? f(document, "dragover", this._handleAutoScroll) : (f(document, "pointermove", this._handleFallbackAutoScroll), f(document, "touchmove", this._handleFallbackAutoScroll), f(document, "mousemove", this._handleFallbackAutoScroll)), te(), Jt(), clearTimeout(g), g = void 0; + }, nulling: function() { + Vt = Gt = zt = Qt = Zt = Ut = qt = null, $t.length = 0; + }, _handleFallbackAutoScroll: function(t3) { + this._handleAutoScroll(t3, true); + }, _handleAutoScroll: function(e2, n2) { + var o2, i2 = this, r2 = (e2.touches ? e2.touches[0] : e2).clientX, a2 = (e2.touches ? e2.touches[0] : e2).clientY, t3 = document.elementFromPoint(r2, a2); + Vt = e2, n2 || this.options.forceAutoScrollFallback || w || y || u ? (ne(e2, this.options, t3, n2), o2 = M(t3, true), !Qt || Zt && r2 === Ut && a2 === qt || (Zt && te(), Zt = setInterval(function() { + var t4 = M(document.elementFromPoint(r2, a2), true); + t4 !== o2 && (o2 = t4, Jt()), ne(e2, i2.options, t4, n2); + }, 10), Ut = r2, qt = a2)) : this.options.bubbleScroll && M(t3, true) !== O() ? ne(e2, this.options, M(t3, false), false) : Jt(); + } }, a(t2, { pluginName: "scroll", initializeByDefault: true }); + }()), Ft.mount(ie, oe), Ft.mount(new function() { + function t2() { + this.defaults = { swapClass: "sortable-swap-highlight" }; + } + return t2.prototype = { dragStart: function(t3) { + t3 = t3.dragEl; + ee = t3; + }, dragOverValid: function(t3) { + var e2 = t3.completed, n2 = t3.target, o2 = t3.onMove, i2 = t3.activeSortable, r2 = t3.changed, a2 = t3.cancel; + i2.options.swap && (t3 = this.sortable.el, i2 = this.options, n2 && n2 !== t3 && (t3 = ee, ee = false !== o2(n2) ? (k(n2, i2.swapClass, true), n2) : null, t3 && t3 !== ee && k(t3, i2.swapClass, false)), r2(), e2(true), a2()); + }, drop: function(t3) { + var e2, n2, o2 = t3.activeSortable, i2 = t3.putSortable, r2 = t3.dragEl, a2 = i2 || this.sortable, l2 = this.options; + ee && k(ee, l2.swapClass, false), ee && (l2.swap || i2 && i2.options.swap) && r2 !== ee && (a2.captureAnimationState(), a2 !== o2 && o2.captureAnimationState(), n2 = ee, t3 = (e2 = r2).parentNode, l2 = n2.parentNode, t3 && l2 && !t3.isEqualNode(n2) && !l2.isEqualNode(e2) && (i2 = j(e2), r2 = j(n2), t3.isEqualNode(l2) && i2 < r2 && r2++, t3.insertBefore(n2, t3.children[i2]), l2.insertBefore(e2, l2.children[r2])), a2.animateAll(), a2 !== o2 && o2.animateAll()); + }, nulling: function() { + ee = null; + } }, a(t2, { pluginName: "swap", eventProperties: function() { + return { swapItem: ee }; + } }); + }()), Ft.mount(new function() { + function t2(o2) { + for (var t3 in this) + "_" === t3.charAt(0) && "function" == typeof this[t3] && (this[t3] = this[t3].bind(this)); + o2.options.avoidImplicitDeselect || (o2.options.supportPointer ? h(document, "pointerup", this._deselectMultiDrag) : (h(document, "mouseup", this._deselectMultiDrag), h(document, "touchend", this._deselectMultiDrag))), h(document, "keydown", this._checkKeyDown), h(document, "keyup", this._checkKeyUp), this.defaults = { selectedClass: "sortable-selected", multiDragKey: null, avoidImplicitDeselect: false, setData: function(t4, e2) { + var n2 = ""; + ue.length && ae === o2 ? ue.forEach(function(t5, e3) { + n2 += (e3 ? ", " : "") + t5.textContent; + }) : n2 = e2.textContent, t4.setData("Text", n2); + } }; + } + return t2.prototype = { multiDragKeyDown: false, isMultiDrag: false, delayStartGlobal: function(t3) { + t3 = t3.dragEl; + le = t3; + }, delayEnded: function() { + this.isMultiDrag = ~ue.indexOf(le); + }, setupClone: function(t3) { + var e2 = t3.sortable, t3 = t3.cancel; + if (this.isMultiDrag) { + for (var n2 = 0; n2 < ue.length; n2++) + de.push(_(ue[n2])), de[n2].sortableIndex = ue[n2].sortableIndex, de[n2].draggable = false, de[n2].style["will-change"] = "", k(de[n2], this.options.selectedClass, false), ue[n2] === le && k(de[n2], this.options.chosenClass, false); + e2._hideClone(), t3(); + } + }, clone: function(t3) { + var e2 = t3.sortable, n2 = t3.rootEl, o2 = t3.dispatchSortableEvent, t3 = t3.cancel; + this.isMultiDrag && (this.options.removeCloneOnHide || ue.length && ae === e2 && (ge(true, n2), o2("clone"), t3())); + }, showClone: function(t3) { + var e2 = t3.cloneNowShown, n2 = t3.rootEl, t3 = t3.cancel; + this.isMultiDrag && (ge(false, n2), de.forEach(function(t4) { + R(t4, "display", ""); + }), e2(), ce = false, t3()); + }, hideClone: function(t3) { + var e2 = this, n2 = (t3.sortable, t3.cloneNowHidden), t3 = t3.cancel; + this.isMultiDrag && (de.forEach(function(t4) { + R(t4, "display", "none"), e2.options.removeCloneOnHide && t4.parentNode && t4.parentNode.removeChild(t4); + }), n2(), ce = true, t3()); + }, dragStartGlobal: function(t3) { + t3.sortable; + !this.isMultiDrag && ae && ae.multiDrag._deselectMultiDrag(), ue.forEach(function(t4) { + t4.sortableIndex = j(t4); + }), ue = ue.sort(function(t4, e2) { + return t4.sortableIndex - e2.sortableIndex; + }), pe = true; + }, dragStarted: function(t3) { + var e2, n2 = this, t3 = t3.sortable; + this.isMultiDrag && (this.options.sort && (t3.captureAnimationState(), this.options.animation && (ue.forEach(function(t4) { + t4 !== le && R(t4, "position", "absolute"); + }), e2 = X(le, false, true, true), ue.forEach(function(t4) { + t4 !== le && C(t4, e2); + }), he = fe = true)), t3.animateAll(function() { + he = fe = false, n2.options.animation && ue.forEach(function(t4) { + T(t4); + }), n2.options.sort && me(); + })); + }, dragOver: function(t3) { + var e2 = t3.target, n2 = t3.completed, t3 = t3.cancel; + fe && ~ue.indexOf(e2) && (n2(false), t3()); + }, revert: function(t3) { + var n2, o2, e2 = t3.fromSortable, i2 = t3.rootEl, r2 = t3.sortable, a2 = t3.dragRect; + 1 < ue.length && (ue.forEach(function(t4) { + r2.addAnimationState({ target: t4, rect: fe ? X(t4) : a2 }), T(t4), t4.fromRect = a2, e2.removeAnimationState(t4); + }), fe = false, n2 = !this.options.removeCloneOnHide, o2 = i2, ue.forEach(function(t4, e3) { + e3 = o2.children[t4.sortableIndex + (n2 ? Number(e3) : 0)]; + e3 ? o2.insertBefore(t4, e3) : o2.appendChild(t4); + })); + }, dragOverCompleted: function(t3) { + var e2, n2 = t3.sortable, o2 = t3.isOwner, i2 = t3.insertion, r2 = t3.activeSortable, a2 = t3.parentEl, l2 = t3.putSortable, t3 = this.options; + i2 && (o2 && r2._hideClone(), he = false, t3.animation && 1 < ue.length && (fe || !o2 && !r2.options.sort && !l2) && (e2 = X(le, false, true, true), ue.forEach(function(t4) { + t4 !== le && (C(t4, e2), a2.appendChild(t4)); + }), fe = true), o2 || (fe || me(), 1 < ue.length ? (o2 = ce, r2._showClone(n2), r2.options.animation && !ce && o2 && de.forEach(function(t4) { + r2.addAnimationState({ target: t4, rect: se }), t4.fromRect = se, t4.thisAnimationDuration = null; + })) : r2._showClone(n2))); + }, dragOverAnimationCapture: function(t3) { + var e2 = t3.dragRect, n2 = t3.isOwner, t3 = t3.activeSortable; + ue.forEach(function(t4) { + t4.thisAnimationDuration = null; + }), t3.options.animation && !n2 && t3.multiDrag.isMultiDrag && (se = a({}, e2), e2 = v(le, true), se.top -= e2.f, se.left -= e2.e); + }, dragOverAnimationComplete: function() { + fe && (fe = false, me()); + }, drop: function(t3) { + var e2 = t3.originalEvent, n2 = t3.rootEl, o2 = t3.parentEl, i2 = t3.sortable, r2 = t3.dispatchSortableEvent, a2 = t3.oldIndex, l2 = t3.putSortable, s2 = l2 || this.sortable; + if (e2) { + var c2, u2, d2, h2 = this.options, f2 = o2.children; + if (!pe) + if (h2.multiDragKey && !this.multiDragKeyDown && this._deselectMultiDrag(), k(le, h2.selectedClass, !~ue.indexOf(le)), ~ue.indexOf(le)) + ue.splice(ue.indexOf(le), 1), re = null, z({ sortable: i2, rootEl: n2, name: "deselect", targetEl: le, originalEvent: e2 }); + else { + if (ue.push(le), z({ sortable: i2, rootEl: n2, name: "select", targetEl: le, originalEvent: e2 }), e2.shiftKey && re && i2.el.contains(re)) { + var p2 = j(re), t3 = j(le); + if (~p2 && ~t3 && p2 !== t3) + for (var g2, m2 = p2 < t3 ? (g2 = p2, t3) : (g2 = t3, p2 + 1); g2 < m2; g2++) + ~ue.indexOf(f2[g2]) || (k(f2[g2], h2.selectedClass, true), ue.push(f2[g2]), z({ sortable: i2, rootEl: n2, name: "select", targetEl: f2[g2], originalEvent: e2 })); + } else + re = le; + ae = s2; + } + pe && this.isMultiDrag && (fe = false, (o2[K].options.sort || o2 !== n2) && 1 < ue.length && (c2 = X(le), u2 = j(le, ":not(." + this.options.selectedClass + ")"), !he && h2.animation && (le.thisAnimationDuration = null), s2.captureAnimationState(), he || (h2.animation && (le.fromRect = c2, ue.forEach(function(t4) { + var e3; + t4.thisAnimationDuration = null, t4 !== le && (e3 = fe ? X(t4) : c2, t4.fromRect = e3, s2.addAnimationState({ target: t4, rect: e3 })); + })), me(), ue.forEach(function(t4) { + f2[u2] ? o2.insertBefore(t4, f2[u2]) : o2.appendChild(t4), u2++; + }), a2 === j(le) && (d2 = false, ue.forEach(function(t4) { + t4.sortableIndex !== j(t4) && (d2 = true); + }), d2 && (r2("update"), r2("sort")))), ue.forEach(function(t4) { + T(t4); + }), s2.animateAll()), ae = s2), (n2 === o2 || l2 && "clone" !== l2.lastPutMode) && de.forEach(function(t4) { + t4.parentNode && t4.parentNode.removeChild(t4); + }); + } + }, nullingGlobal: function() { + this.isMultiDrag = pe = false, de.length = 0; + }, destroyGlobal: function() { + this._deselectMultiDrag(), f(document, "pointerup", this._deselectMultiDrag), f(document, "mouseup", this._deselectMultiDrag), f(document, "touchend", this._deselectMultiDrag), f(document, "keydown", this._checkKeyDown), f(document, "keyup", this._checkKeyUp); + }, _deselectMultiDrag: function(t3) { + if (!(void 0 !== pe && pe || ae !== this.sortable || t3 && P(t3.target, this.options.draggable, this.sortable.el, false) || t3 && 0 !== t3.button)) + for (; ue.length; ) { + var e2 = ue[0]; + k(e2, this.options.selectedClass, false), ue.shift(), z({ sortable: this.sortable, rootEl: this.sortable.el, name: "deselect", targetEl: e2, originalEvent: t3 }); + } + }, _checkKeyDown: function(t3) { + t3.key === this.options.multiDragKey && (this.multiDragKeyDown = true); + }, _checkKeyUp: function(t3) { + t3.key === this.options.multiDragKey && (this.multiDragKeyDown = false); + } }, a(t2, { pluginName: "multiDrag", utils: { select: function(t3) { + var e2 = t3.parentNode[K]; + e2 && e2.options.multiDrag && !~ue.indexOf(t3) && (ae && ae !== e2 && (ae.multiDrag._deselectMultiDrag(), ae = e2), k(t3, e2.options.selectedClass, true), ue.push(t3)); + }, deselect: function(t3) { + var e2 = t3.parentNode[K], n2 = ue.indexOf(t3); + e2 && e2.options.multiDrag && ~n2 && (k(t3, e2.options.selectedClass, false), ue.splice(n2, 1)); + } }, eventProperties: function() { + var n2 = this, o2 = [], i2 = []; + return ue.forEach(function(t3) { + var e2; + o2.push({ multiDragElement: t3, index: t3.sortableIndex }), e2 = fe && t3 !== le ? -1 : fe ? j(t3, ":not(." + n2.options.selectedClass + ")") : j(t3), i2.push({ multiDragElement: t3, index: e2 }); + }), { items: r(ue), clones: [].concat(de), oldIndicies: o2, newIndicies: i2 }; + }, optionListeners: { multiDragKey: function(t3) { + return "ctrl" === (t3 = t3.toLowerCase()) ? t3 = "Control" : 1 < t3.length && (t3 = t3.charAt(0).toUpperCase() + t3.substr(1)), t3; + } } }); + }()), Ft; + }); + } + }); + var module_exports = {}; + __export(module_exports, { + default: () => module_default2, + sort: () => src_default2 + }); + module.exports = __toCommonJS(module_exports); + var import_sortablejs = __toESM2(require_Sortable_min()); + function walk(el, callback) { + if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) { + Array.from(el.children).forEach((el2) => walk(el2, callback)); + return; + } + let skip = false; + callback(el, () => skip = true); + if (skip) + return; + let node = el.firstElementChild; + while (node) { + walk(node, callback, false); + node = node.nextElementSibling; + } + } + function src_default2(Alpine25) { + Alpine25.directive("sort", (el, { value, modifiers, expression }, { effect, evaluate, cleanup }) => { + if (value === "config") { + return; + } + if (value === "handle") { + return; + } + if (value === "group") { + return; + } + if (value === "key" || value === "item") { + if ([void 0, null, ""].includes(expression)) + return; + el._x_sort_key = evaluate(expression); + return; + } + let handleSelector = "[x-sort\\:handle],[wire\\:sort\\:handle]"; + let preferences = { + hideGhost: !modifiers.includes("ghost"), + useHandles: !!el.querySelector(handleSelector) || Array.from(el.querySelectorAll("template:not(svg template)")).some((tmpl) => { + var _a; + return (_a = tmpl.content) == null ? void 0 : _a.querySelector(handleSelector); + }), + group: getGroupName(el, modifiers) + }; + let handleSort = generateSortHandler(expression, evaluate); + let config = getConfigurationOverrides(el, modifiers, evaluate); + let sortable = initSortable(el, config, preferences, (key, position) => { + handleSort(key, position); + }); + cleanup(() => sortable.destroy()); + }); + } + function generateSortHandler(expression, evaluate) { + if ([void 0, null, ""].includes(expression)) + return () => { + }; + return (key, position) => { + evaluate(expression, { scope: { + $key: key, + $item: key, + $position: position + }, params: [ + key, + position + ] }); + }; + } + function getConfigurationOverrides(el, modifiers, evaluate) { + if (el.hasAttribute("x-sort:config")) { + return evaluate(el.getAttribute("x-sort:config")); + } + if (el.hasAttribute("wire:sort:config")) { + return evaluate(el.getAttribute("wire:sort:config")); + } + return {}; + } + function initSortable(el, config, preferences, handle) { + let ghostRef; + let options = { + animation: 150, + handle: preferences.useHandles ? "[x-sort\\:handle],[wire\\:sort\\:handle]" : null, + group: preferences.group, + scroll: true, + forceAutoScrollFallback: true, + scrollSensitivity: 50, + preventOnFilter: false, + filter(e) { + if (e.target.hasAttribute("x-sort:ignore") || e.target.hasAttribute("wire:sort:ignore")) + return true; + if (e.target.closest("[x-sort\\:ignore]") || e.target.closest("[wire\\:sort\\:ignore]")) + return true; + if (!el.querySelector("[x-sort\\:item],[wire\\:sort\\:item]")) + return false; + let itemHasAttribute = e.target.closest("[x-sort\\:item],[wire\\:sort\\:item]"); + return itemHasAttribute ? false : true; + }, + onSort(e) { + if (e.from !== e.to) { + if (e.to !== e.target) { + return; + } + } + let key = void 0; + walk(e.item, (el2, skip) => { + if (key !== void 0) + return; + if (el2._x_sort_key) { + key = el2._x_sort_key; + skip(); + } + }); + let position = e.newIndex; + if (key !== void 0 || key !== null) { + handle(key, position); + } + }, + onStart() { + document.body.classList.add("sorting"); + ghostRef = document.querySelector(".sortable-ghost"); + if (preferences.hideGhost && ghostRef) + ghostRef.style.opacity = "0"; + }, + onEnd() { + document.body.classList.remove("sorting"); + if (preferences.hideGhost && ghostRef) + ghostRef.style.opacity = "1"; + ghostRef = void 0; + keepElementsWithinMorphMarkers(el); + } + }; + return new import_sortablejs.default(el, { ...options, ...config }); + } + function keepElementsWithinMorphMarkers(el) { + let cursor = el.firstChild; + while (cursor.nextSibling) { + if (cursor.textContent.trim() === "[if ENDBLOCK]><![endif]") { + el.append(cursor); + break; + } + cursor = cursor.nextSibling; + } + } + function getGroupName(el, modifiers) { + if (el.hasAttribute("x-sort:group")) { + return el.getAttribute("x-sort:group"); + } + if (el.hasAttribute("wire:sort:group")) { + return el.getAttribute("wire:sort:group"); + } + return modifiers.indexOf("group") !== -1 ? modifiers[modifiers.indexOf("group") + 1] : null; + } + var module_default2 = src_default2; + } +}); + +// node_modules/@alpinejs/resize/dist/module.cjs.js +var require_module_cjs6 = __commonJS({ + "node_modules/@alpinejs/resize/dist/module.cjs.js"(exports, module) { + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var module_exports = {}; + __export(module_exports, { + default: () => module_default2, + resize: () => src_default2 + }); + module.exports = __toCommonJS(module_exports); + function src_default2(Alpine25) { + Alpine25.directive("resize", Alpine25.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { + let evaluator = evaluateLater(expression); + let evaluate = (width, height) => { + evaluator(() => { + }, { scope: { "$width": width, "$height": height } }); + }; + let off = modifiers.includes("document") ? onDocumentResize(evaluate) : onElResize(el, evaluate); + cleanup(() => off()); + })); + } + function onElResize(el, callback) { + let observer = new ResizeObserver((entries) => { + let [width, height] = dimensions(entries); + callback(width, height); + }); + observer.observe(el); + return () => observer.disconnect(); + } + var documentResizeObserver; + var documentResizeObserverCallbacks = /* @__PURE__ */ new Set(); + function onDocumentResize(callback) { + documentResizeObserverCallbacks.add(callback); + if (!documentResizeObserver) { + documentResizeObserver = new ResizeObserver((entries) => { + let [width, height] = dimensions(entries); + documentResizeObserverCallbacks.forEach((i) => i(width, height)); + }); + documentResizeObserver.observe(document.documentElement); + } + return () => { + documentResizeObserverCallbacks.delete(callback); + }; + } + function dimensions(entries) { + let width, height; + for (let entry of entries) { + width = entry.borderBoxSize[0].inlineSize; + height = entry.borderBoxSize[0].blockSize; + } + return [width, height]; + } + var module_default2 = src_default2; + } +}); + +// node_modules/@alpinejs/anchor/dist/module.cjs.js +var require_module_cjs7 = __commonJS({ + "node_modules/@alpinejs/anchor/dist/module.cjs.js"(exports, module) { + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var module_exports = {}; + __export(module_exports, { + anchor: () => src_default2, + default: () => module_default2 + }); + module.exports = __toCommonJS(module_exports); + var min = Math.min; + var max = Math.max; + var round = Math.round; + var floor = Math.floor; + var createCoords = (v) => ({ + x: v, + y: v + }); + var oppositeSideMap = { + left: "right", + right: "left", + bottom: "top", + top: "bottom" + }; + var oppositeAlignmentMap = { + start: "end", + end: "start" + }; + function clamp(start2, value, end) { + return max(start2, min(value, end)); + } + function evaluate(value, param) { + return typeof value === "function" ? value(param) : value; + } + function getSide(placement) { + return placement.split("-")[0]; + } + function getAlignment(placement) { + return placement.split("-")[1]; + } + function getOppositeAxis(axis) { + return axis === "x" ? "y" : "x"; + } + function getAxisLength(axis) { + return axis === "y" ? "height" : "width"; + } + function getSideAxis(placement) { + return ["top", "bottom"].includes(getSide(placement)) ? "y" : "x"; + } + function getAlignmentAxis(placement) { + return getOppositeAxis(getSideAxis(placement)); + } + function getAlignmentSides(placement, rects, rtl) { + if (rtl === void 0) { + rtl = false; + } + const alignment = getAlignment(placement); + const alignmentAxis = getAlignmentAxis(placement); + const length = getAxisLength(alignmentAxis); + let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top"; + if (rects.reference[length] > rects.floating[length]) { + mainAlignmentSide = getOppositePlacement(mainAlignmentSide); + } + return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)]; + } + function getExpandedPlacements(placement) { + const oppositePlacement = getOppositePlacement(placement); + return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)]; + } + function getOppositeAlignmentPlacement(placement) { + return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]); + } + function getSideList(side, isStart, rtl) { + const lr = ["left", "right"]; + const rl = ["right", "left"]; + const tb = ["top", "bottom"]; + const bt = ["bottom", "top"]; + switch (side) { + case "top": + case "bottom": + if (rtl) + return isStart ? rl : lr; + return isStart ? lr : rl; + case "left": + case "right": + return isStart ? tb : bt; + default: + return []; + } + } + function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) { + const alignment = getAlignment(placement); + let list = getSideList(getSide(placement), direction === "start", rtl); + if (alignment) { + list = list.map((side) => side + "-" + alignment); + if (flipAlignment) { + list = list.concat(list.map(getOppositeAlignmentPlacement)); + } + } + return list; + } + function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]); + } + function expandPaddingObject(padding) { + return { + top: 0, + right: 0, + bottom: 0, + left: 0, + ...padding + }; + } + function getPaddingObject(padding) { + return typeof padding !== "number" ? expandPaddingObject(padding) : { + top: padding, + right: padding, + bottom: padding, + left: padding + }; + } + function rectToClientRect(rect) { + return { + ...rect, + top: rect.y, + left: rect.x, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }; + } + function computeCoordsFromPlacement(_ref, placement, rtl) { + let { + reference, + floating + } = _ref; + const sideAxis = getSideAxis(placement); + const alignmentAxis = getAlignmentAxis(placement); + const alignLength = getAxisLength(alignmentAxis); + const side = getSide(placement); + const isVertical = sideAxis === "y"; + const commonX = reference.x + reference.width / 2 - floating.width / 2; + const commonY = reference.y + reference.height / 2 - floating.height / 2; + const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2; + let coords; + switch (side) { + case "top": + coords = { + x: commonX, + y: reference.y - floating.height + }; + break; + case "bottom": + coords = { + x: commonX, + y: reference.y + reference.height + }; + break; + case "right": + coords = { + x: reference.x + reference.width, + y: commonY + }; + break; + case "left": + coords = { + x: reference.x - floating.width, + y: commonY + }; + break; + default: + coords = { + x: reference.x, + y: reference.y + }; + } + switch (getAlignment(placement)) { + case "start": + coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1); + break; + case "end": + coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1); + break; + } + return coords; + } + var computePosition = async (reference, floating, config) => { + const { + placement = "bottom", + strategy = "absolute", + middleware = [], + platform: platform2 + } = config; + const validMiddleware = middleware.filter(Boolean); + const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating)); + let rects = await platform2.getElementRects({ + reference, + floating, + strategy + }); + let { + x, + y + } = computeCoordsFromPlacement(rects, placement, rtl); + let statefulPlacement = placement; + let middlewareData = {}; + let resetCount = 0; + for (let i = 0; i < validMiddleware.length; i++) { + const { + name, + fn + } = validMiddleware[i]; + const { + x: nextX, + y: nextY, + data, + reset + } = await fn({ + x, + y, + initialPlacement: placement, + placement: statefulPlacement, + strategy, + middlewareData, + rects, + platform: platform2, + elements: { + reference, + floating + } + }); + x = nextX != null ? nextX : x; + y = nextY != null ? nextY : y; + middlewareData = { + ...middlewareData, + [name]: { + ...middlewareData[name], + ...data + } + }; + if (reset && resetCount <= 50) { + resetCount++; + if (typeof reset === "object") { + if (reset.placement) { + statefulPlacement = reset.placement; + } + if (reset.rects) { + rects = reset.rects === true ? await platform2.getElementRects({ + reference, + floating, + strategy + }) : reset.rects; + } + ({ + x, + y + } = computeCoordsFromPlacement(rects, statefulPlacement, rtl)); + } + i = -1; + continue; + } + } + return { + x, + y, + placement: statefulPlacement, + strategy, + middlewareData + }; + }; + async function detectOverflow(state, options) { + var _await$platform$isEle; + if (options === void 0) { + options = {}; + } + const { + x, + y, + platform: platform2, + rects, + elements, + strategy + } = state; + const { + boundary = "clippingAncestors", + rootBoundary = "viewport", + elementContext = "floating", + altBoundary = false, + padding = 0 + } = evaluate(options, state); + const paddingObject = getPaddingObject(padding); + const altContext = elementContext === "floating" ? "reference" : "floating"; + const element = elements[altBoundary ? altContext : elementContext]; + const clippingClientRect = rectToClientRect(await platform2.getClippingRect({ + element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)), + boundary, + rootBoundary, + strategy + })); + const rect = elementContext === "floating" ? { + ...rects.floating, + x, + y + } : rects.reference; + const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating)); + const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || { + x: 1, + y: 1 + } : { + x: 1, + y: 1 + }; + const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({ + rect, + offsetParent, + strategy + }) : rect); + return { + top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y, + bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y, + left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x, + right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x + }; + } + var flip = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: "flip", + options, + async fn(state) { + var _middlewareData$arrow, _middlewareData$flip; + const { + placement, + middlewareData, + rects, + initialPlacement, + platform: platform2, + elements + } = state; + const { + mainAxis: checkMainAxis = true, + crossAxis: checkCrossAxis = true, + fallbackPlacements: specifiedFallbackPlacements, + fallbackStrategy = "bestFit", + fallbackAxisSideDirection = "none", + flipAlignment = true, + ...detectOverflowOptions + } = evaluate(options, state); + if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) { + return {}; + } + const side = getSide(placement); + const isBasePlacement = getSide(initialPlacement) === initialPlacement; + const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)); + const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement)); + if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== "none") { + fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl)); + } + const placements2 = [initialPlacement, ...fallbackPlacements]; + const overflow = await detectOverflow(state, detectOverflowOptions); + const overflows = []; + let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || []; + if (checkMainAxis) { + overflows.push(overflow[side]); + } + if (checkCrossAxis) { + const sides2 = getAlignmentSides(placement, rects, rtl); + overflows.push(overflow[sides2[0]], overflow[sides2[1]]); + } + overflowsData = [...overflowsData, { + placement, + overflows + }]; + if (!overflows.every((side2) => side2 <= 0)) { + var _middlewareData$flip2, _overflowsData$filter; + const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1; + const nextPlacement = placements2[nextIndex]; + if (nextPlacement) { + return { + data: { + index: nextIndex, + overflows: overflowsData + }, + reset: { + placement: nextPlacement + } + }; + } + let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement; + if (!resetPlacement) { + switch (fallbackStrategy) { + case "bestFit": { + var _overflowsData$map$so; + const placement2 = (_overflowsData$map$so = overflowsData.map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0]; + if (placement2) { + resetPlacement = placement2; + } + break; + } + case "initialPlacement": + resetPlacement = initialPlacement; + break; + } + } + if (placement !== resetPlacement) { + return { + reset: { + placement: resetPlacement + } + }; + } + } + return {}; + } + }; + }; + async function convertValueToCoords(state, options) { + const { + placement, + platform: platform2, + elements + } = state; + const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)); + const side = getSide(placement); + const alignment = getAlignment(placement); + const isVertical = getSideAxis(placement) === "y"; + const mainAxisMulti = ["left", "top"].includes(side) ? -1 : 1; + const crossAxisMulti = rtl && isVertical ? -1 : 1; + const rawValue = evaluate(options, state); + let { + mainAxis, + crossAxis, + alignmentAxis + } = typeof rawValue === "number" ? { + mainAxis: rawValue, + crossAxis: 0, + alignmentAxis: null + } : { + mainAxis: 0, + crossAxis: 0, + alignmentAxis: null, + ...rawValue + }; + if (alignment && typeof alignmentAxis === "number") { + crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis; + } + return isVertical ? { + x: crossAxis * crossAxisMulti, + y: mainAxis * mainAxisMulti + } : { + x: mainAxis * mainAxisMulti, + y: crossAxis * crossAxisMulti + }; + } + var offset = function(options) { + if (options === void 0) { + options = 0; + } + return { + name: "offset", + options, + async fn(state) { + const { + x, + y + } = state; + const diffCoords = await convertValueToCoords(state, options); + return { + x: x + diffCoords.x, + y: y + diffCoords.y, + data: diffCoords + }; + } + }; + }; + var shift = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: "shift", + options, + async fn(state) { + const { + x, + y, + placement + } = state; + const { + mainAxis: checkMainAxis = true, + crossAxis: checkCrossAxis = false, + limiter = { + fn: (_ref) => { + let { + x: x2, + y: y2 + } = _ref; + return { + x: x2, + y: y2 + }; + } + }, + ...detectOverflowOptions + } = evaluate(options, state); + const coords = { + x, + y + }; + const overflow = await detectOverflow(state, detectOverflowOptions); + const crossAxis = getSideAxis(getSide(placement)); + const mainAxis = getOppositeAxis(crossAxis); + let mainAxisCoord = coords[mainAxis]; + let crossAxisCoord = coords[crossAxis]; + if (checkMainAxis) { + const minSide = mainAxis === "y" ? "top" : "left"; + const maxSide = mainAxis === "y" ? "bottom" : "right"; + const min2 = mainAxisCoord + overflow[minSide]; + const max2 = mainAxisCoord - overflow[maxSide]; + mainAxisCoord = clamp(min2, mainAxisCoord, max2); + } + if (checkCrossAxis) { + const minSide = crossAxis === "y" ? "top" : "left"; + const maxSide = crossAxis === "y" ? "bottom" : "right"; + const min2 = crossAxisCoord + overflow[minSide]; + const max2 = crossAxisCoord - overflow[maxSide]; + crossAxisCoord = clamp(min2, crossAxisCoord, max2); + } + const limitedCoords = limiter.fn({ + ...state, + [mainAxis]: mainAxisCoord, + [crossAxis]: crossAxisCoord + }); + return { + ...limitedCoords, + data: { + x: limitedCoords.x - x, + y: limitedCoords.y - y + } + }; + } + }; + }; + function getNodeName(node) { + if (isNode(node)) { + return (node.nodeName || "").toLowerCase(); + } + return "#document"; + } + function getWindow(node) { + var _node$ownerDocument; + return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window; + } + function getDocumentElement(node) { + var _ref; + return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement; + } + function isNode(value) { + return value instanceof Node || value instanceof getWindow(value).Node; + } + function isElement(value) { + return value instanceof Element || value instanceof getWindow(value).Element; + } + function isHTMLElement(value) { + return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement; + } + function isShadowRoot(value) { + if (typeof ShadowRoot === "undefined") { + return false; + } + return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot; + } + function isOverflowElement(element) { + const { + overflow, + overflowX, + overflowY, + display + } = getComputedStyle2(element); + return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !["inline", "contents"].includes(display); + } + function isTableElement(element) { + return ["table", "td", "th"].includes(getNodeName(element)); + } + function isContainingBlock(element) { + const webkit = isWebKit(); + const css = getComputedStyle2(element); + return css.transform !== "none" || css.perspective !== "none" || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || ["transform", "perspective", "filter"].some((value) => (css.willChange || "").includes(value)) || ["paint", "layout", "strict", "content"].some((value) => (css.contain || "").includes(value)); + } + function getContainingBlock(element) { + let currentNode = getParentNode(element); + while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) { + if (isContainingBlock(currentNode)) { + return currentNode; + } else { + currentNode = getParentNode(currentNode); + } + } + return null; + } + function isWebKit() { + if (typeof CSS === "undefined" || !CSS.supports) + return false; + return CSS.supports("-webkit-backdrop-filter", "none"); + } + function isLastTraversableNode(node) { + return ["html", "body", "#document"].includes(getNodeName(node)); + } + function getComputedStyle2(element) { + return getWindow(element).getComputedStyle(element); + } + function getNodeScroll(element) { + if (isElement(element)) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + return { + scrollLeft: element.pageXOffset, + scrollTop: element.pageYOffset + }; + } + function getParentNode(node) { + if (getNodeName(node) === "html") { + return node; + } + const result = node.assignedSlot || node.parentNode || isShadowRoot(node) && node.host || getDocumentElement(node); + return isShadowRoot(result) ? result.host : result; + } + function getNearestOverflowAncestor(node) { + const parentNode = getParentNode(node); + if (isLastTraversableNode(parentNode)) { + return node.ownerDocument ? node.ownerDocument.body : node.body; + } + if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) { + return parentNode; + } + return getNearestOverflowAncestor(parentNode); + } + function getOverflowAncestors(node, list, traverseIframes) { + var _node$ownerDocument2; + if (list === void 0) { + list = []; + } + if (traverseIframes === void 0) { + traverseIframes = true; + } + const scrollableAncestor = getNearestOverflowAncestor(node); + const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body); + const win = getWindow(scrollableAncestor); + if (isBody) { + return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []); + } + return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes)); + } + function getCssDimensions(element) { + const css = getComputedStyle2(element); + let width = parseFloat(css.width) || 0; + let height = parseFloat(css.height) || 0; + const hasOffset = isHTMLElement(element); + const offsetWidth = hasOffset ? element.offsetWidth : width; + const offsetHeight = hasOffset ? element.offsetHeight : height; + const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight; + if (shouldFallback) { + width = offsetWidth; + height = offsetHeight; + } + return { + width, + height, + $: shouldFallback + }; + } + function unwrapElement(element) { + return !isElement(element) ? element.contextElement : element; + } + function getScale(element) { + const domElement = unwrapElement(element); + if (!isHTMLElement(domElement)) { + return createCoords(1); + } + const rect = domElement.getBoundingClientRect(); + const { + width, + height, + $ + } = getCssDimensions(domElement); + let x = ($ ? round(rect.width) : rect.width) / width; + let y = ($ ? round(rect.height) : rect.height) / height; + if (!x || !Number.isFinite(x)) { + x = 1; + } + if (!y || !Number.isFinite(y)) { + y = 1; + } + return { + x, + y + }; + } + var noOffsets = /* @__PURE__ */ createCoords(0); + function getVisualOffsets(element) { + const win = getWindow(element); + if (!isWebKit() || !win.visualViewport) { + return noOffsets; + } + return { + x: win.visualViewport.offsetLeft, + y: win.visualViewport.offsetTop + }; + } + function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) { + if (isFixed === void 0) { + isFixed = false; + } + if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) { + return false; + } + return isFixed; + } + function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) { + if (includeScale === void 0) { + includeScale = false; + } + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + const clientRect = element.getBoundingClientRect(); + const domElement = unwrapElement(element); + let scale = createCoords(1); + if (includeScale) { + if (offsetParent) { + if (isElement(offsetParent)) { + scale = getScale(offsetParent); + } + } else { + scale = getScale(element); + } + } + const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0); + let x = (clientRect.left + visualOffsets.x) / scale.x; + let y = (clientRect.top + visualOffsets.y) / scale.y; + let width = clientRect.width / scale.x; + let height = clientRect.height / scale.y; + if (domElement) { + const win = getWindow(domElement); + const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent; + let currentIFrame = win.frameElement; + while (currentIFrame && offsetParent && offsetWin !== win) { + const iframeScale = getScale(currentIFrame); + const iframeRect = currentIFrame.getBoundingClientRect(); + const css = getComputedStyle2(currentIFrame); + const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x; + const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y; + x *= iframeScale.x; + y *= iframeScale.y; + width *= iframeScale.x; + height *= iframeScale.y; + x += left; + y += top; + currentIFrame = getWindow(currentIFrame).frameElement; + } + } + return rectToClientRect({ + width, + height, + x, + y + }); + } + function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) { + let { + rect, + offsetParent, + strategy + } = _ref; + const isOffsetParentAnElement = isHTMLElement(offsetParent); + const documentElement = getDocumentElement(offsetParent); + if (offsetParent === documentElement) { + return rect; + } + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + let scale = createCoords(1); + const offsets = createCoords(0); + if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== "fixed") { + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + if (isHTMLElement(offsetParent)) { + const offsetRect = getBoundingClientRect(offsetParent); + scale = getScale(offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } + } + return { + width: rect.width * scale.x, + height: rect.height * scale.y, + x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x, + y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + }; + } + function getClientRects(element) { + return Array.from(element.getClientRects()); + } + function getWindowScrollBarX(element) { + return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft; + } + function getDocumentRect(element) { + const html = getDocumentElement(element); + const scroll = getNodeScroll(element); + const body = element.ownerDocument.body; + const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth); + const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight); + let x = -scroll.scrollLeft + getWindowScrollBarX(element); + const y = -scroll.scrollTop; + if (getComputedStyle2(body).direction === "rtl") { + x += max(html.clientWidth, body.clientWidth) - width; + } + return { + width, + height, + x, + y + }; + } + function getViewportRect(element, strategy) { + const win = getWindow(element); + const html = getDocumentElement(element); + const visualViewport = win.visualViewport; + let width = html.clientWidth; + let height = html.clientHeight; + let x = 0; + let y = 0; + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + const visualViewportBased = isWebKit(); + if (!visualViewportBased || visualViewportBased && strategy === "fixed") { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + return { + width, + height, + x, + y + }; + } + function getInnerBoundingClientRect(element, strategy) { + const clientRect = getBoundingClientRect(element, true, strategy === "fixed"); + const top = clientRect.top + element.clientTop; + const left = clientRect.left + element.clientLeft; + const scale = isHTMLElement(element) ? getScale(element) : createCoords(1); + const width = element.clientWidth * scale.x; + const height = element.clientHeight * scale.y; + const x = left * scale.x; + const y = top * scale.y; + return { + width, + height, + x, + y + }; + } + function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) { + let rect; + if (clippingAncestor === "viewport") { + rect = getViewportRect(element, strategy); + } else if (clippingAncestor === "document") { + rect = getDocumentRect(getDocumentElement(element)); + } else if (isElement(clippingAncestor)) { + rect = getInnerBoundingClientRect(clippingAncestor, strategy); + } else { + const visualOffsets = getVisualOffsets(element); + rect = { + ...clippingAncestor, + x: clippingAncestor.x - visualOffsets.x, + y: clippingAncestor.y - visualOffsets.y + }; + } + return rectToClientRect(rect); + } + function hasFixedPositionAncestor(element, stopNode) { + const parentNode = getParentNode(element); + if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) { + return false; + } + return getComputedStyle2(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode); + } + function getClippingElementAncestors(element, cache) { + const cachedResult = cache.get(element); + if (cachedResult) { + return cachedResult; + } + let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body"); + let currentContainingBlockComputedStyle = null; + const elementIsFixed = getComputedStyle2(element).position === "fixed"; + let currentNode = elementIsFixed ? getParentNode(element) : element; + while (isElement(currentNode) && !isLastTraversableNode(currentNode)) { + const computedStyle = getComputedStyle2(currentNode); + const currentNodeIsContaining = isContainingBlock(currentNode); + if (!currentNodeIsContaining && computedStyle.position === "fixed") { + currentContainingBlockComputedStyle = null; + } + const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && ["absolute", "fixed"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode); + if (shouldDropCurrentNode) { + result = result.filter((ancestor) => ancestor !== currentNode); + } else { + currentContainingBlockComputedStyle = computedStyle; + } + currentNode = getParentNode(currentNode); + } + cache.set(element, result); + return result; + } + function getClippingRect(_ref) { + let { + element, + boundary, + rootBoundary, + strategy + } = _ref; + const elementClippingAncestors = boundary === "clippingAncestors" ? getClippingElementAncestors(element, this._c) : [].concat(boundary); + const clippingAncestors = [...elementClippingAncestors, rootBoundary]; + const firstClippingAncestor = clippingAncestors[0]; + const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => { + const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy)); + return { + width: clippingRect.right - clippingRect.left, + height: clippingRect.bottom - clippingRect.top, + x: clippingRect.left, + y: clippingRect.top + }; + } + function getDimensions(element) { + return getCssDimensions(element); + } + function getRectRelativeToOffsetParent(element, offsetParent, strategy) { + const isOffsetParentAnElement = isHTMLElement(offsetParent); + const documentElement = getDocumentElement(offsetParent); + const isFixed = strategy === "fixed"; + const rect = getBoundingClientRect(element, true, isFixed, offsetParent); + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + const offsets = createCoords(0); + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + if (isOffsetParentAnElement) { + const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; + } + function getTrueOffsetParent(element, polyfill) { + if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") { + return null; + } + if (polyfill) { + return polyfill(element); + } + return element.offsetParent; + } + function getOffsetParent(element, polyfill) { + const window2 = getWindow(element); + if (!isHTMLElement(element)) { + return window2; + } + let offsetParent = getTrueOffsetParent(element, polyfill); + while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") { + offsetParent = getTrueOffsetParent(offsetParent, polyfill); + } + if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static" && !isContainingBlock(offsetParent))) { + return window2; + } + return offsetParent || getContainingBlock(element) || window2; + } + var getElementRects = async function(_ref) { + let { + reference, + floating, + strategy + } = _ref; + const getOffsetParentFn = this.getOffsetParent || getOffsetParent; + const getDimensionsFn = this.getDimensions; + return { + reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy), + floating: { + x: 0, + y: 0, + ...await getDimensionsFn(floating) + } + }; + }; + function isRTL(element) { + return getComputedStyle2(element).direction === "rtl"; + } + var platform = { + convertOffsetParentRelativeRectToViewportRelativeRect, + getDocumentElement, + getClippingRect, + getOffsetParent, + getElementRects, + getClientRects, + getDimensions, + getScale, + isElement, + isRTL + }; + function observeMove(element, onMove) { + let io = null; + let timeoutId; + const root = getDocumentElement(element); + function cleanup() { + clearTimeout(timeoutId); + io && io.disconnect(); + io = null; + } + function refresh(skip, threshold) { + if (skip === void 0) { + skip = false; + } + if (threshold === void 0) { + threshold = 1; + } + cleanup(); + const { + left, + top, + width, + height + } = element.getBoundingClientRect(); + if (!skip) { + onMove(); + } + if (!width || !height) { + return; + } + const insetTop = floor(top); + const insetRight = floor(root.clientWidth - (left + width)); + const insetBottom = floor(root.clientHeight - (top + height)); + const insetLeft = floor(left); + const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px"; + const options = { + rootMargin, + threshold: max(0, min(1, threshold)) || 1 + }; + let isFirstUpdate = true; + function handleObserve(entries) { + const ratio = entries[0].intersectionRatio; + if (ratio !== threshold) { + if (!isFirstUpdate) { + return refresh(); + } + if (!ratio) { + timeoutId = setTimeout(() => { + refresh(false, 1e-7); + }, 100); + } else { + refresh(false, ratio); + } + } + isFirstUpdate = false; + } + try { + io = new IntersectionObserver(handleObserve, { + ...options, + root: root.ownerDocument + }); + } catch (e) { + io = new IntersectionObserver(handleObserve, options); + } + io.observe(element); + } + refresh(true); + return cleanup; + } + function autoUpdate(reference, floating, update, options) { + if (options === void 0) { + options = {}; + } + const { + ancestorScroll = true, + ancestorResize = true, + elementResize = typeof ResizeObserver === "function", + layoutShift = typeof IntersectionObserver === "function", + animationFrame = false + } = options; + const referenceEl = unwrapElement(reference); + const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : []; + ancestors.forEach((ancestor) => { + ancestorScroll && ancestor.addEventListener("scroll", update, { + passive: true + }); + ancestorResize && ancestor.addEventListener("resize", update); + }); + const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null; + let reobserveFrame = -1; + let resizeObserver = null; + if (elementResize) { + resizeObserver = new ResizeObserver((_ref) => { + let [firstEntry] = _ref; + if (firstEntry && firstEntry.target === referenceEl && resizeObserver) { + resizeObserver.unobserve(floating); + cancelAnimationFrame(reobserveFrame); + reobserveFrame = requestAnimationFrame(() => { + resizeObserver && resizeObserver.observe(floating); + }); + } + update(); + }); + if (referenceEl && !animationFrame) { + resizeObserver.observe(referenceEl); + } + resizeObserver.observe(floating); + } + let frameId; + let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null; + if (animationFrame) { + frameLoop(); + } + function frameLoop() { + const nextRefRect = getBoundingClientRect(reference); + if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) { + update(); + } + prevRefRect = nextRefRect; + frameId = requestAnimationFrame(frameLoop); + } + update(); + return () => { + ancestors.forEach((ancestor) => { + ancestorScroll && ancestor.removeEventListener("scroll", update); + ancestorResize && ancestor.removeEventListener("resize", update); + }); + cleanupIo && cleanupIo(); + resizeObserver && resizeObserver.disconnect(); + resizeObserver = null; + if (animationFrame) { + cancelAnimationFrame(frameId); + } + }; + } + var computePosition2 = (reference, floating, options) => { + const cache = /* @__PURE__ */ new Map(); + const mergedOptions = { + platform, + ...options + }; + const platformWithCache = { + ...mergedOptions.platform, + _c: cache + }; + return computePosition(reference, floating, { + ...mergedOptions, + platform: platformWithCache + }); + }; + function src_default2(Alpine25) { + Alpine25.magic("anchor", (el) => { + if (!el._x_anchor) + throw "Alpine: No x-anchor directive found on element using $anchor..."; + return el._x_anchor; + }); + Alpine25.interceptClone((from, to) => { + if (from && from._x_anchor && !to._x_anchor) { + to._x_anchor = from._x_anchor; + } + }); + Alpine25.directive("anchor", Alpine25.skipDuringClone( + (el, { expression, modifiers, value }, { evaluate: evaluate2, effect, cleanup }) => { + let { placement, offsetValue, unstyled, strategy, allowFlip } = getOptions(modifiers); + el._x_anchor = Alpine25.reactive({ x: 0, y: 0 }); + let previousReference = null; + let release = null; + effect(() => { + let reference = evaluate2(expression); + if (!reference) + return; + if (previousReference !== reference) { + if (release) + release(); + previousReference = reference; + let compute = () => { + let previousValue; + computePosition2(reference, el, { + placement, + strategy, + middleware: [allowFlip && flip(), shift({ padding: 5 }), offset(offsetValue)] + }).then(({ x, y }) => { + unstyled || setStyles(el, x, y, strategy); + if (JSON.stringify({ x, y }) !== previousValue) { + el._x_anchor.x = x; + el._x_anchor.y = y; + } + previousValue = JSON.stringify({ x, y }); + }); + }; + release = autoUpdate(reference, el, () => compute()); + } + }); + cleanup(() => { + if (release) + release(); + }); + }, + (el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => { + let { placement, offsetValue, unstyled, strategy } = getOptions(modifiers); + if (el._x_anchor) { + unstyled || setStyles(el, el._x_anchor.x, el._x_anchor.y, strategy); + } + } + )); + } + function setStyles(el, x, y, strategy = "absolute") { + Object.assign(el.style, { + left: x + "px", + top: y + "px", + position: strategy + }); + } + function getOptions(modifiers) { + let positions = ["top", "top-start", "top-end", "right", "right-start", "right-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end"]; + let placement = positions.find((i) => modifiers.includes(i)); + let offsetValue = 0; + if (modifiers.includes("offset")) { + let idx = modifiers.findIndex((i) => i === "offset"); + offsetValue = modifiers[idx + 1] !== void 0 ? Number(modifiers[idx + 1]) : offsetValue; + } + let unstyled = modifiers.includes("no-style"); + let allowFlip = !modifiers.includes("noflip"); + let strategy = modifiers.includes("fixed") ? "fixed" : "absolute"; + return { placement, offsetValue, unstyled, strategy, allowFlip }; + } + var module_default2 = src_default2; + } +}); + +// node_modules/nprogress/nprogress.js +var require_nprogress = __commonJS({ + "node_modules/nprogress/nprogress.js"(exports, module) { + (function(root, factory) { + if (typeof define === "function" && define.amd) { + define(factory); + } else if (typeof exports === "object") { + module.exports = factory(); + } else { + root.NProgress = factory(); + } + })(exports, function() { + var NProgress2 = {}; + NProgress2.version = "0.2.0"; + var Settings = NProgress2.settings = { + minimum: 0.08, + easing: "ease", + positionUsing: "", + speed: 200, + trickle: true, + trickleRate: 0.02, + trickleSpeed: 800, + showSpinner: true, + barSelector: '[role="bar"]', + spinnerSelector: '[role="spinner"]', + parent: "body", + template: '<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>' + }; + NProgress2.configure = function(options) { + var key, value; + for (key in options) { + value = options[key]; + if (value !== void 0 && options.hasOwnProperty(key)) + Settings[key] = value; + } + return this; + }; + NProgress2.status = null; + NProgress2.set = function(n) { + var started = NProgress2.isStarted(); + n = clamp(n, Settings.minimum, 1); + NProgress2.status = n === 1 ? null : n; + var progress = NProgress2.render(!started), bar = progress.querySelector(Settings.barSelector), speed = Settings.speed, ease = Settings.easing; + progress.offsetWidth; + queue(function(next) { + if (Settings.positionUsing === "") + Settings.positionUsing = NProgress2.getPositioningCSS(); + css(bar, barPositionCSS(n, speed, ease)); + if (n === 1) { + css(progress, { + transition: "none", + opacity: 1 + }); + progress.offsetWidth; + setTimeout(function() { + css(progress, { + transition: "all " + speed + "ms linear", + opacity: 0 + }); + setTimeout(function() { + NProgress2.remove(); + next(); + }, speed); + }, speed); + } else { + setTimeout(next, speed); + } + }); + return this; + }; + NProgress2.isStarted = function() { + return typeof NProgress2.status === "number"; + }; + NProgress2.start = function() { + if (!NProgress2.status) + NProgress2.set(0); + var work = function() { + setTimeout(function() { + if (!NProgress2.status) + return; + NProgress2.trickle(); + work(); + }, Settings.trickleSpeed); + }; + if (Settings.trickle) + work(); + return this; + }; + NProgress2.done = function(force) { + if (!force && !NProgress2.status) + return this; + return NProgress2.inc(0.3 + 0.5 * Math.random()).set(1); + }; + NProgress2.inc = function(amount) { + var n = NProgress2.status; + if (!n) { + return NProgress2.start(); + } else { + if (typeof amount !== "number") { + amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95); + } + n = clamp(n + amount, 0, 0.994); + return NProgress2.set(n); + } + }; + NProgress2.trickle = function() { + return NProgress2.inc(Math.random() * Settings.trickleRate); + }; + (function() { + var initial = 0, current = 0; + NProgress2.promise = function($promise) { + if (!$promise || $promise.state() === "resolved") { + return this; + } + if (current === 0) { + NProgress2.start(); + } + initial++; + current++; + $promise.always(function() { + current--; + if (current === 0) { + initial = 0; + NProgress2.done(); + } else { + NProgress2.set((initial - current) / initial); + } + }); + return this; + }; + })(); + NProgress2.render = function(fromStart) { + if (NProgress2.isRendered()) + return document.getElementById("nprogress"); + addClass(document.documentElement, "nprogress-busy"); + var progress = document.createElement("div"); + progress.id = "nprogress"; + progress.innerHTML = Settings.template; + var bar = progress.querySelector(Settings.barSelector), perc = fromStart ? "-100" : toBarPerc(NProgress2.status || 0), parent = document.querySelector(Settings.parent), spinner; + css(bar, { + transition: "all 0 linear", + transform: "translate3d(" + perc + "%,0,0)" + }); + if (!Settings.showSpinner) { + spinner = progress.querySelector(Settings.spinnerSelector); + spinner && removeElement(spinner); + } + if (parent != document.body) { + addClass(parent, "nprogress-custom-parent"); + } + parent.appendChild(progress); + return progress; + }; + NProgress2.remove = function() { + removeClass(document.documentElement, "nprogress-busy"); + removeClass(document.querySelector(Settings.parent), "nprogress-custom-parent"); + var progress = document.getElementById("nprogress"); + progress && removeElement(progress); + }; + NProgress2.isRendered = function() { + return !!document.getElementById("nprogress"); + }; + NProgress2.getPositioningCSS = function() { + var bodyStyle = document.body.style; + var vendorPrefix = "WebkitTransform" in bodyStyle ? "Webkit" : "MozTransform" in bodyStyle ? "Moz" : "msTransform" in bodyStyle ? "ms" : "OTransform" in bodyStyle ? "O" : ""; + if (vendorPrefix + "Perspective" in bodyStyle) { + return "translate3d"; + } else if (vendorPrefix + "Transform" in bodyStyle) { + return "translate"; + } else { + return "margin"; + } + }; + function clamp(n, min, max) { + if (n < min) + return min; + if (n > max) + return max; + return n; + } + function toBarPerc(n) { + return (-1 + n) * 100; + } + function barPositionCSS(n, speed, ease) { + var barCSS; + if (Settings.positionUsing === "translate3d") { + barCSS = { transform: "translate3d(" + toBarPerc(n) + "%,0,0)" }; + } else if (Settings.positionUsing === "translate") { + barCSS = { transform: "translate(" + toBarPerc(n) + "%,0)" }; + } else { + barCSS = { "margin-left": toBarPerc(n) + "%" }; + } + barCSS.transition = "all " + speed + "ms " + ease; + return barCSS; + } + var queue = function() { + var pending = []; + function next() { + var fn = pending.shift(); + if (fn) { + fn(next); + } + } + return function(fn) { + pending.push(fn); + if (pending.length == 1) + next(); + }; + }(); + var css = function() { + var cssPrefixes = ["Webkit", "O", "Moz", "ms"], cssProps = {}; + function camelCase(string) { + return string.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function(match, letter) { + return letter.toUpperCase(); + }); + } + function getVendorProp(name) { + var style = document.body.style; + if (name in style) + return name; + var i = cssPrefixes.length, capName = name.charAt(0).toUpperCase() + name.slice(1), vendorName; + while (i--) { + vendorName = cssPrefixes[i] + capName; + if (vendorName in style) + return vendorName; + } + return name; + } + function getStyleProp(name) { + name = camelCase(name); + return cssProps[name] || (cssProps[name] = getVendorProp(name)); + } + function applyCss(element, prop, value) { + prop = getStyleProp(prop); + element.style[prop] = value; + } + return function(element, properties2) { + var args = arguments, prop, value; + if (args.length == 2) { + for (prop in properties2) { + value = properties2[prop]; + if (value !== void 0 && properties2.hasOwnProperty(prop)) + applyCss(element, prop, value); + } + } else { + applyCss(element, args[1], args[2]); + } + }; + }(); + function hasClass(element, name) { + var list = typeof element == "string" ? element : classList(element); + return list.indexOf(" " + name + " ") >= 0; + } + function addClass(element, name) { + var oldList = classList(element), newList = oldList + name; + if (hasClass(oldList, name)) + return; + element.className = newList.substring(1); + } + function removeClass(element, name) { + var oldList = classList(element), newList; + if (!hasClass(element, name)) + return; + newList = oldList.replace(" " + name + " ", " "); + element.className = newList.substring(1, newList.length - 1); + } + function classList(element) { + return (" " + (element.className || "") + " ").replace(/\s+/gi, " "); + } + function removeElement(element) { + element && element.parentNode && element.parentNode.removeChild(element); + } + return NProgress2; + }); + } +}); + +// node_modules/@alpinejs/morph/dist/module.cjs.js +var require_module_cjs8 = __commonJS({ + "node_modules/@alpinejs/morph/dist/module.cjs.js"(exports, module) { + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var module_exports = {}; + __export(module_exports, { + default: () => module_default2, + morph: () => src_default2 + }); + module.exports = __toCommonJS(module_exports); + function morph3(from, toHtml, options) { + monkeyPatchDomSetAttributeToAllowAtSymbols(); + let context = createMorphContext(options); + let toEl = typeof toHtml === "string" ? createElement(toHtml) : toHtml; + if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) { + toEl._x_dataStack = window.Alpine.closestDataStack(from); + toEl._x_dataStack && window.Alpine.cloneNode(from, toEl); + } + context.patch(from, toEl); + return from; + } + function morphBetween(startMarker, endMarker, toHtml, options = {}) { + monkeyPatchDomSetAttributeToAllowAtSymbols(); + let context = createMorphContext(options); + let fromContainer = startMarker.parentNode; + let fromBlock = new Block(startMarker, endMarker); + let toContainer = typeof toHtml === "string" ? (() => { + let container = document.createElement("div"); + container.insertAdjacentHTML("beforeend", toHtml); + return container; + })() : toHtml; + let toStartMarker = document.createComment("[morph-start]"); + let toEndMarker = document.createComment("[morph-end]"); + toContainer.insertBefore(toStartMarker, toContainer.firstChild); + toContainer.appendChild(toEndMarker); + let toBlock = new Block(toStartMarker, toEndMarker); + if (window.Alpine && window.Alpine.closestDataStack) { + toContainer._x_dataStack = window.Alpine.closestDataStack(fromContainer); + toContainer._x_dataStack && window.Alpine.cloneNode(fromContainer, toContainer); + } + context.patchChildren(fromBlock, toBlock); + } + function createMorphContext(options = {}) { + let defaultGetKey = (el) => el.getAttribute("key"); + let noop = () => { + }; + let context = { + key: options.key || defaultGetKey, + lookahead: options.lookahead || false, + updating: options.updating || noop, + updated: options.updated || noop, + removing: options.removing || noop, + removed: options.removed || noop, + adding: options.adding || noop, + added: options.added || noop + }; + context.patch = function(from, to) { + if (context.differentElementNamesTypesOrKeys(from, to)) { + return context.swapElements(from, to); + } + let updateChildrenOnly = false; + let skipChildren = false; + let skipUntil = (predicate) => context.skipUntilCondition = predicate; + if (shouldSkipChildren(context.updating, () => skipChildren = true, skipUntil, from, to, () => updateChildrenOnly = true)) + return; + if (from.nodeType === 1 && window.Alpine) { + window.Alpine.cloneNode(from, to); + if (from._x_teleport && to._x_teleport) { + context.patch(from._x_teleport, to._x_teleport); + } + } + if (textOrComment(to)) { + context.patchNodeValue(from, to); + context.updated(from, to); + return; + } + if (!updateChildrenOnly) { + context.patchAttributes(from, to); + } + context.updated(from, to); + if (!skipChildren) { + context.patchChildren(from, to); + } + }; + context.differentElementNamesTypesOrKeys = function(from, to) { + return from.nodeType != to.nodeType || from.nodeName != to.nodeName || context.getKey(from) != context.getKey(to); + }; + context.swapElements = function(from, to) { + if (shouldSkip(context.removing, from)) + return; + let toCloned = to.cloneNode(true); + if (shouldSkip(context.adding, toCloned)) + return; + from.replaceWith(toCloned); + context.removed(from); + context.added(toCloned); + }; + context.patchNodeValue = function(from, to) { + let value = to.nodeValue; + if (from.nodeValue !== value) { + from.nodeValue = value; + } + }; + context.patchAttributes = function(from, to) { + if (from._x_transitioning) + return; + if (from._x_isShown && !to._x_isShown) { + return; + } + if (!from._x_isShown && to._x_isShown) { + return; + } + let domAttributes = Array.from(from.attributes); + let toAttributes = Array.from(to.attributes); + for (let i = domAttributes.length - 1; i >= 0; i--) { + let name = domAttributes[i].name; + if (!to.hasAttribute(name)) { + if (name === "open" && from.nodeName === "DIALOG" && from.open) { + from.close(); + } else { + from.removeAttribute(name); + } + } + } + for (let i = toAttributes.length - 1; i >= 0; i--) { + let name = toAttributes[i].name; + let value = toAttributes[i].value; + if (from.getAttribute(name) !== value) { + from.setAttribute(name, value); + } + } + }; + context.patchChildren = function(from, to) { + let fromKeys = context.keyToMap(from.children); + let fromKeyHoldovers = {}; + let currentTo = getFirstNode(to); + let currentFrom = getFirstNode(from); + while (currentTo) { + seedingMatchingId(currentTo, currentFrom); + let toKey = context.getKey(currentTo); + let fromKey = context.getKey(currentFrom); + if (context.skipUntilCondition) { + let fromDone = !currentFrom || context.skipUntilCondition(currentFrom); + let toDone = !currentTo || context.skipUntilCondition(currentTo); + if (fromDone && toDone) { + context.skipUntilCondition = null; + } else { + if (!fromDone) + currentFrom = currentFrom && getNextSibling(from, currentFrom); + if (!toDone) + currentTo = currentTo && getNextSibling(to, currentTo); + continue; + } + } + if (!currentFrom) { + if (toKey && fromKeyHoldovers[toKey]) { + let holdover = fromKeyHoldovers[toKey]; + from.appendChild(holdover); + currentFrom = holdover; + fromKey = context.getKey(currentFrom); + } else { + if (!shouldSkip(context.adding, currentTo)) { + let clone = currentTo.cloneNode(true); + from.appendChild(clone); + context.added(clone); + } + currentTo = getNextSibling(to, currentTo); + continue; + } + } + let isIf = (node) => node && node.nodeType === 8 && node.textContent === "[if BLOCK]><![endif]"; + let isEnd = (node) => node && node.nodeType === 8 && node.textContent === "[if ENDBLOCK]><![endif]"; + if (isIf(currentTo) && isIf(currentFrom)) { + let nestedIfCount = 0; + let fromBlockStart = currentFrom; + while (currentFrom) { + let next = getNextSibling(from, currentFrom); + if (isIf(next)) { + nestedIfCount++; + } else if (isEnd(next) && nestedIfCount > 0) { + nestedIfCount--; + } else if (isEnd(next) && nestedIfCount === 0) { + currentFrom = next; + break; + } + currentFrom = next; + } + let fromBlockEnd = currentFrom; + nestedIfCount = 0; + let toBlockStart = currentTo; + while (currentTo) { + let next = getNextSibling(to, currentTo); + if (isIf(next)) { + nestedIfCount++; + } else if (isEnd(next) && nestedIfCount > 0) { + nestedIfCount--; + } else if (isEnd(next) && nestedIfCount === 0) { + currentTo = next; + break; + } + currentTo = next; + } + let toBlockEnd = currentTo; + let fromBlock = new Block(fromBlockStart, fromBlockEnd); + let toBlock = new Block(toBlockStart, toBlockEnd); + context.patchChildren(fromBlock, toBlock); + continue; + } + if (currentFrom.nodeType === 1 && context.lookahead && !currentFrom.isEqualNode(currentTo)) { + let nextToElementSibling = getNextSibling(to, currentTo); + let found = false; + while (!found && nextToElementSibling) { + if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) { + found = true; + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); + fromKey = context.getKey(currentFrom); + } + nextToElementSibling = getNextSibling(to, nextToElementSibling); + } + } + if (toKey !== fromKey) { + if (!toKey && fromKey) { + fromKeyHoldovers[fromKey] = currentFrom; + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); + fromKeyHoldovers[fromKey].remove(); + currentFrom = getNextSibling(from, currentFrom); + currentTo = getNextSibling(to, currentTo); + continue; + } + if (toKey && !fromKey) { + if (fromKeys[toKey]) { + currentFrom.replaceWith(fromKeys[toKey]); + currentFrom = fromKeys[toKey]; + fromKey = context.getKey(currentFrom); + } + } + if (toKey && fromKey) { + let fromKeyNode = fromKeys[toKey]; + if (fromKeyNode) { + fromKeyHoldovers[fromKey] = currentFrom; + currentFrom.replaceWith(fromKeyNode); + currentFrom = fromKeyNode; + fromKey = context.getKey(currentFrom); + } else { + fromKeyHoldovers[fromKey] = currentFrom; + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); + fromKeyHoldovers[fromKey].remove(); + currentFrom = getNextSibling(from, currentFrom); + currentTo = getNextSibling(to, currentTo); + continue; + } + } + } + let currentFromNext = currentFrom && getNextSibling(from, currentFrom); + context.patch(currentFrom, currentTo); + currentTo = currentTo && getNextSibling(to, currentTo); + currentFrom = currentFromNext; + } + let removals = []; + while (currentFrom) { + if (!shouldSkip(context.removing, currentFrom)) + removals.push(currentFrom); + currentFrom = getNextSibling(from, currentFrom); + } + while (removals.length) { + let domForRemoval = removals.shift(); + domForRemoval.remove(); + context.removed(domForRemoval); + } + }; + context.getKey = function(el) { + return el && el.nodeType === 1 && context.key(el); + }; + context.keyToMap = function(els2) { + let map = {}; + for (let el of els2) { + let theKey = context.getKey(el); + if (theKey) { + map[theKey] = el; + } + } + return map; + }; + context.addNodeBefore = function(parent, node, beforeMe) { + if (!shouldSkip(context.adding, node)) { + let clone = node.cloneNode(true); + parent.insertBefore(clone, beforeMe); + context.added(clone); + return clone; + } + return node; + }; + return context; + } + morph3.step = () => { + }; + morph3.log = () => { + }; + function shouldSkip(hook, ...args) { + let skip = false; + hook(...args, () => skip = true); + return skip; + } + function shouldSkipChildren(hook, skipChildren, skipUntil, ...args) { + let skip = false; + hook(...args, () => skip = true, skipChildren, skipUntil); + return skip; + } + var patched = false; + function createElement(html) { + const template = document.createElement("template"); + template.innerHTML = html; + return template.content.firstElementChild; + } + function textOrComment(el) { + return el.nodeType === 3 || el.nodeType === 8; + } + var Block = class { + constructor(start2, end) { + this.startComment = start2; + this.endComment = end; + } + get children() { + let children = []; + let currentNode = this.startComment.nextSibling; + while (currentNode && currentNode !== this.endComment) { + children.push(currentNode); + currentNode = currentNode.nextSibling; + } + return children; + } + appendChild(child) { + this.endComment.before(child); + } + get firstChild() { + let first2 = this.startComment.nextSibling; + if (first2 === this.endComment) + return; + return first2; + } + nextNode(reference) { + let next = reference.nextSibling; + if (next === this.endComment) + return; + return next; + } + insertBefore(newNode, reference) { + reference.before(newNode); + return newNode; + } + }; + function getFirstNode(parent) { + return parent.firstChild; + } + function getNextSibling(parent, reference) { + let next; + if (parent instanceof Block) { + next = parent.nextNode(reference); + } else { + next = reference.nextSibling; + } + return next; + } + function monkeyPatchDomSetAttributeToAllowAtSymbols() { + if (patched) + return; + patched = true; + let original = Element.prototype.setAttribute; + let hostDiv = document.createElement("div"); + Element.prototype.setAttribute = function newSetAttribute(name, value) { + if (!name.includes("@")) { + return original.call(this, name, value); + } + let escapedValue = value.replace(/&/g, "&").replace(/"/g, """); + hostDiv.innerHTML = `<span ${name}="${escapedValue}"></span>`; + let attr = hostDiv.firstElementChild.getAttributeNode(name); + hostDiv.firstElementChild.removeAttributeNode(attr); + this.setAttributeNode(attr); + }; + } + function seedingMatchingId(to, from) { + let fromId = from && from._x_bindings && from._x_bindings.id; + if (!fromId) + return; + if (!to.setAttribute) + return; + to.setAttribute("id", fromId); + to.id = fromId; + } + function src_default2(Alpine25) { + Alpine25.morph = morph3; + Alpine25.morphBetween = morphBetween; + } + var module_default2 = src_default2; + } +}); + +// node_modules/@alpinejs/mask/dist/module.cjs.js +var require_module_cjs9 = __commonJS({ + "node_modules/@alpinejs/mask/dist/module.cjs.js"(exports, module) { + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var module_exports = {}; + __export(module_exports, { + default: () => module_default2, + formatInput: () => formatInput, + mask: () => src_default2 + }); + module.exports = __toCommonJS(module_exports); + function src_default2(Alpine25) { + Alpine25.directive("mask", (el, { value, expression }, { effect, evaluateLater, cleanup }) => { + let templateFn = () => expression; + let lastInputValue = ""; + queueMicrotask(() => { + if (["function", "dynamic"].includes(value)) { + let evaluator = evaluateLater(expression); + effect(() => { + templateFn = (input) => { + let result; + Alpine25.dontAutoEvaluateFunctions(() => { + evaluator((value2) => { + result = typeof value2 === "function" ? value2(input) : value2; + }, { scope: { + "$input": input, + "$money": formatMoney.bind({ el }) + } }); + }); + return result; + }; + processInputValue(el, false); + }); + } else { + processInputValue(el, false); + } + if (el._x_model) { + if (el._x_model.get() !== el.value) { + if (!(el._x_model.get() === null && el.value === "")) { + el._x_model.set(el.value); + } + } + let updater = el._x_forceModelUpdate; + el._x_forceModelUpdate = (value2) => { + value2 = String(value2); + let template = templateFn(value2); + if (template && template !== "false") { + value2 = formatInput(template, value2); + } + lastInputValue = value2; + updater(value2); + el._x_model.set(value2); + }; + } + }); + const controller = new AbortController(); + cleanup(() => { + controller.abort(); + }); + el.addEventListener("input", () => processInputValue(el), { + signal: controller.signal, + capture: true + }); + el.addEventListener("blur", () => processInputValue(el, false), { signal: controller.signal }); + function processInputValue(el2, shouldRestoreCursor = true) { + let input = el2.value; + let template = templateFn(input); + if (!template || template === "false") + return false; + if (lastInputValue.length - el2.value.length === 1) { + return lastInputValue = el2.value; + } + let setInput = () => { + lastInputValue = el2.value = formatInput(template, input); + }; + if (shouldRestoreCursor) { + restoreCursorPosition(el2, template, () => { + setInput(); + }); + } else { + setInput(); + } + } + }).before("model"); + } + function restoreCursorPosition(el, template, callback) { + let cursorPosition = el.selectionStart; + let unformattedValue = el.value; + callback(); + let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition); + let newPosition = formatInput( + template, + beforeLeftOfCursorBeforeFormatting + ).length; + el.setSelectionRange(newPosition, newPosition); + } + var regexes = { + "9": /[0-9]/, + "a": /[a-zA-Z]/, + "*": /[a-zA-Z0-9]/ + }; + function formatInput(template, input) { + let templateMark = 0; + let inputMark = 0; + let output = ""; + while (templateMark < template.length && inputMark < input.length) { + let templateChar = template[templateMark]; + let inputChar = input[inputMark]; + if (templateChar in regexes) { + if (regexes[templateChar].test(inputChar)) { + output += inputChar; + templateMark++; + } + inputMark++; + } else { + output += templateChar; + templateMark++; + if (templateChar === input[inputMark]) + inputMark++; + } + } + return output; + } + function formatMoney(input, delimiter = ".", thousands, precision = 2) { + if (input === "-") + return "-"; + if (/^\D+$/.test(input)) + return "9"; + if (thousands === null || thousands === void 0) { + thousands = delimiter === "," ? "." : ","; + } + let addThousands = (input2, thousands2) => { + let output = ""; + let counter = 0; + for (let i = input2.length - 1; i >= 0; i--) { + if (input2[i] === thousands2) + continue; + if (counter === 3) { + output = input2[i] + thousands2 + output; + counter = 0; + } else { + output = input2[i] + output; + } + counter++; + } + return output; + }; + let minus = input.startsWith("-") ? "-" : ""; + let strippedInput = input.replaceAll(new RegExp(`[^0-9\\${delimiter}]`, "g"), ""); + let template = Array.from({ length: strippedInput.split(delimiter)[0].length }).fill("9").join(""); + template = `${minus}${addThousands(template, thousands)}`; + if (precision > 0 && input.includes(delimiter)) + template += `${delimiter}` + "9".repeat(precision); + queueMicrotask(() => { + if (this.el.value.endsWith(delimiter)) + return; + if (this.el.value[this.el.selectionStart - 1] === delimiter) { + this.el.setSelectionRange(this.el.selectionStart - 1, this.el.selectionStart - 1); + } + }); + return template; + } + var module_default2 = src_default2; + } +}); + +// js/utils.js +var Bag = class { + constructor() { + this.arrays = {}; + } + add(key, value) { + if (!this.arrays[key]) + this.arrays[key] = []; + this.arrays[key].push(value); + } + remove(key) { + if (this.arrays[key]) + delete this.arrays[key]; + } + get(key) { + return this.arrays[key] || []; + } + each(key, callback) { + return this.get(key).forEach(callback); + } +}; +var WeakBag = class { + constructor() { + this.arrays = /* @__PURE__ */ new WeakMap(); + } + add(key, value) { + if (!this.arrays.has(key)) + this.arrays.set(key, []); + this.arrays.get(key).push(value); + } + remove(key) { + if (this.arrays.has(key)) + this.arrays.delete(key, []); + } + get(key) { + return this.arrays.has(key) ? this.arrays.get(key) : []; + } + each(key, callback) { + return this.get(key).forEach(callback); + } +}; +function dispatch(target, name, detail = {}, bubbles = true) { + target.dispatchEvent( + new CustomEvent(name, { + detail, + bubbles, + composed: true, + cancelable: true + }) + ); +} +function listen(target, name, handler) { + target.addEventListener(name, handler); + return () => target.removeEventListener(name, handler); +} +function isObjecty(subject) { + return typeof subject === "object" && subject !== null; +} +function isObject(subject) { + return isObjecty(subject) && !isArray(subject); +} +function isArray(subject) { + return Array.isArray(subject); +} +function isFunction(subject) { + return typeof subject === "function"; +} +function isPrimitive(subject) { + return typeof subject !== "object" || subject === null; +} +function deepClone(obj) { + return JSON.parse(JSON.stringify(obj)); +} +function deeplyEqual(a, b) { + return JSON.stringify(a) === JSON.stringify(b); +} +function parsePathSegments(path) { + if (path === "") + return []; + return path.replace(/\[(['"]?)(.+?)\1\]/g, ".$2").replace(/^\./, "").split("."); +} +function dataGet(object, key) { + if (key === "") + return object; + return parsePathSegments(key).reduce((carry, i) => { + return carry?.[i]; + }, object); +} +function dataSet(object, key, value) { + let segments = parsePathSegments(key); + if (segments.length === 1) { + return object[segments[0]] = value; + } + let firstSegment = segments.shift(); + let restOfSegments = segments.join("."); + let nextSegment = segments[0]; + if (object[firstSegment] === void 0) { + object[firstSegment] = {}; + } + if (isArray(object[firstSegment]) && isNumeric(nextSegment) && parseInt(nextSegment) > object[firstSegment].length) { + object[firstSegment] = { ...object[firstSegment] }; + } + dataSet(object[firstSegment], restOfSegments, value); +} +function isNumeric(subject) { + return !isNaN(parseInt(subject)); +} +function diff(left, right, diffs = {}, path = "") { + if (left === right) + return diffs; + if (typeof left !== typeof right || isObject(left) && isArray(right) || isArray(left) && isObject(right)) { + diffs[path] = right; + return diffs; + } + if (isPrimitive(left) || isPrimitive(right)) { + diffs[path] = right; + return diffs; + } + let leftKeys = Object.keys(left); + let rightKeys = Object.keys(right); + if (isObject(left) && leftKeys.some((key, i) => key !== rightKeys[i])) { + diffs[path] = right; + return diffs; + } + Object.entries(right).forEach(([key, value]) => { + diffs = { ...diffs, ...diff(left[key], right[key], diffs, path === "" ? key : `${path}.${key}`) }; + leftKeys = leftKeys.filter((i) => i !== key); + }); + leftKeys.forEach((key) => { + diffs[`${path}.${key}`] = "__rm__"; + }); + return diffs; +} +function diffAndConsolidate(left, right) { + let diffs = {}; + diffRecursive(left, right, "", diffs, left, right); + return diffs; +} +function diffRecursive(left, right, path, diffs, rootLeft, rootRight) { + if (left === right) + return { changed: false, consolidated: false }; + let convertedToObject = false; + let hasNonNumericKeys = (arr) => { + return isArray(arr) && Object.keys(arr).some((k) => isNaN(parseInt(k))); + }; + if (typeof left !== typeof right || isObject(left) && isArray(right) || isArray(left) && isObject(right)) { + if (isArray(left) && left.length === 0 && isObject(right)) { + left = {}; + convertedToObject = true; + } else if ((left === void 0 || left === null) && isObject(right)) { + left = {}; + convertedToObject = true; + } else { + diffs[path] = right; + return { changed: true, consolidated: false }; + } + } + if (isArray(left) && isArray(right) && hasNonNumericKeys(right)) { + if (Object.keys(left).length === 0) { + convertedToObject = true; + } + } + if (isPrimitive(left) || isPrimitive(right)) { + diffs[path] = right; + return { changed: true, consolidated: false }; + } + let leftKeys = Object.keys(left); + let rightKeys = Object.keys(right); + if (leftKeys.length !== rightKeys.length && !convertedToObject) { + if (path === "") { + Object.keys(right).forEach((key) => { + if (!deeplyEqual(left[key], right[key])) { + diffs[key] = right[key]; + } + }); + return { changed: true, consolidated: true }; + } + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + if (isObject(left) && leftKeys.length === rightKeys.length && leftKeys.some((key, i) => key !== rightKeys[i])) { + if (path !== "") { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + } + let keysMatch = leftKeys.every((k) => rightKeys.includes(k)); + if (!keysMatch && !convertedToObject) { + if (path !== "") { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + } + let childDiffs = {}; + let changedCount = 0; + let consolidatedCount = 0; + let totalChildren = rightKeys.length; + rightKeys.forEach((key) => { + let childPath = path === "" ? key : `${path}.${key}`; + let result = diffRecursive(left[key], right[key], childPath, childDiffs, rootLeft, rootRight); + if (result.changed) + changedCount++; + if (result.consolidated) + consolidatedCount++; + }); + if (path !== "" && totalChildren > 1 && changedCount === totalChildren && consolidatedCount === 0 && !convertedToObject) { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + Object.assign(diffs, childDiffs); + return { changed: changedCount > 0, consolidated: consolidatedCount > 0 || convertedToObject }; +} +function diffAndPatchRecursive(left, right, target) { + let leftKeys = new Set(Object.keys(left || {})); + let rightKeys = Object.keys(right); + if (!isArray(target) && [...leftKeys].some((key, i) => key !== rightKeys[i])) { + for (let key of Object.keys(target)) + delete target[key]; + for (let key of rightKeys) + target[key] = right[key]; + return; + } + rightKeys.forEach((key) => { + leftKeys.delete(key); + if (deeplyEqual(left?.[key], right[key])) + return; + if (isObjecty(left?.[key]) && isObjecty(right[key]) && isObjecty(target[key]) && isArray(right[key]) === isArray(target[key])) { + diffAndPatchRecursive(left[key], right[key], target[key]); + } else { + target[key] = right[key]; + } + }); + let removedKeys = [...leftKeys]; + removedKeys.sort((a, b) => { + let aNum = parseInt(a) || 0; + let bNum = parseInt(b) || 0; + return bNum - aNum; + }).forEach((key) => { + if (isArray(target)) { + target.splice(parseInt(key), 1); + } else { + delete target[key]; + } + }); +} +function extractData(payload) { + let value = isSynthetic(payload) ? payload[0] : payload; + let meta = isSynthetic(payload) ? payload[1] : void 0; + if (isObjecty(value)) { + Object.entries(value).forEach(([key, iValue]) => { + value[key] = extractData(iValue); + }); + } + return value; +} +function isSynthetic(subject) { + return Array.isArray(subject) && subject.length === 2 && typeof subject[1] === "object" && Object.keys(subject[1]).includes("s"); +} +function getCsrfToken() { + if (document.querySelector('meta[name="csrf-token"]')) { + return document.querySelector('meta[name="csrf-token"]').getAttribute("content"); + } + if (document.querySelector("[data-csrf]")) { + return document.querySelector("[data-csrf]").getAttribute("data-csrf"); + } + if (window.livewireScriptConfig["csrf"] ?? false) { + return window.livewireScriptConfig["csrf"]; + } + throw "Livewire: No CSRF token detected"; +} +var nonce; +function getNonce() { + if (nonce) + return nonce; + if (window.livewireScriptConfig && (window.livewireScriptConfig["nonce"] ?? false)) { + nonce = window.livewireScriptConfig["nonce"]; + return nonce; + } + let elWithNonce = document.querySelector("style[data-livewire-style][nonce]"); + if (elWithNonce) { + nonce = elWithNonce.nonce; + return nonce; + } + return null; +} +function replaceNoncesInHtml(html) { + let nonce2 = getNonce(); + if (!nonce2) + return html; + let nonceMatch = html.match(/nonce="([^"]+)"/); + if (!nonceMatch) + return html; + let newNonce = nonceMatch[1]; + if (newNonce === nonce2) + return html; + return html.replaceAll(`nonce="${newNonce}"`, `nonce="${nonce2}"`); +} +function cloneScriptTag(el) { + let script = document.createElement("script"); + script.textContent = el.textContent; + script.async = el.async; + for (let attr of el.attributes) { + if (attr.name === "nonce") { + script.nonce = getNonce() || el.nonce; + } else { + script.setAttribute(attr.name, attr.value); + } + } + return script; +} +function getModuleUrl() { + return document.querySelector("[data-module-url]")?.getAttribute("data-module-url") ?? window.livewireScriptConfig["moduleUrl"] ?? null; +} +function getUpdateUri() { + return document.querySelector("[data-update-uri]")?.getAttribute("data-update-uri") ?? window.livewireScriptConfig["uri"] ?? null; +} +function contentIsFromDump(content) { + return !!content.match(/<script>Sfdump\(".+"\)<\/script>/); +} +function splitDumpFromContent(content) { + let dump = content.match(/.*<script>Sfdump\(".+"\)<\/script>/s); + return [dump, content.replace(dump, "")]; +} +function walkUpwards(el, callback) { + let current = el; + while (current) { + let stop = void 0; + callback(current, { stop: (value) => value === void 0 ? stop = current : stop = value }); + if (stop !== void 0) + return stop; + if (current._x_teleportBack) + current = current._x_teleportBack; + current = current.parentElement; + } +} +function walkBackwards(el, callback) { + let current = el; + while (current) { + let stop = void 0; + callback(current, { stop: (value) => value === void 0 ? stop = current : stop = value }); + if (stop !== void 0) + return stop; + current = current.previousSibling; + } +} + +// js/features/supportFileUploads.js +var uploadManagers = /* @__PURE__ */ new WeakMap(); +function getUploadManager(component) { + if (!uploadManagers.has(component)) { + let manager = new UploadManager(component); + uploadManagers.set(component, manager); + manager.registerListeners(); + } + return uploadManagers.get(component); +} +function handleFileUpload(el, property, component, cleanup) { + let manager = getUploadManager(component); + let start2 = () => el.dispatchEvent(new CustomEvent("livewire-upload-start", { bubbles: true, detail: { id: component.id, property } })); + let finish = () => el.dispatchEvent(new CustomEvent("livewire-upload-finish", { bubbles: true, detail: { id: component.id, property } })); + let error2 = () => el.dispatchEvent(new CustomEvent("livewire-upload-error", { bubbles: true, detail: { id: component.id, property } })); + let cancel = () => el.dispatchEvent(new CustomEvent("livewire-upload-cancel", { bubbles: true, detail: { id: component.id, property } })); + let progress = (progressEvent) => { + var percentCompleted = Math.round(progressEvent.loaded * 100 / progressEvent.total); + el.dispatchEvent( + new CustomEvent("livewire-upload-progress", { + bubbles: true, + detail: { progress: percentCompleted } + }) + ); + }; + let eventHandler = (e) => { + if (e.target.files.length === 0) + return; + start2(); + if (e.target.multiple) { + manager.uploadMultiple(property, e.target.files, finish, error2, progress, cancel); + } else { + manager.upload(property, e.target.files[0], finish, error2, progress, cancel); + } + }; + el.addEventListener("change", eventHandler); + component.$wire.$watch(property, (value) => { + if (!el.isConnected) + return; + if (value === null || value === "") { + el.value = ""; + } + if (el.multiple && Array.isArray(value) && value.length === 0) { + el.value = ""; + } + }); + let clearFileInputValue = () => { + el.value = null; + }; + el.addEventListener("click", clearFileInputValue); + el.addEventListener("livewire-upload-cancel", clearFileInputValue); + cleanup(() => { + el.removeEventListener("change", eventHandler); + el.removeEventListener("click", clearFileInputValue); + }); +} +var UploadManager = class { + constructor(component) { + this.component = component; + this.uploadBag = new MessageBag(); + this.removeBag = new MessageBag(); + } + registerListeners() { + this.component.$wire.$on("upload:generatedSignedUrl", ({ name, url }) => { + setUploadLoading(this.component, name); + this.handleSignedUrl(name, url); + }); + this.component.$wire.$on("upload:generatedSignedUrlForS3", ({ name, payload }) => { + setUploadLoading(this.component, name); + this.handleS3PreSignedUrl(name, payload); + }); + this.component.$wire.$on("upload:finished", ({ name, tmpFilenames }) => this.markUploadFinished(name, tmpFilenames)); + this.component.$wire.$on("upload:errored", ({ name }) => this.markUploadErrored(name)); + this.component.$wire.$on("upload:removed", ({ name, tmpFilename }) => this.removeBag.shift(name).finishCallback(tmpFilename)); + } + upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback) { + this.setUpload(name, { + files: [file], + multiple: false, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback, + append: false + }); + } + uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback, append = true) { + this.setUpload(name, { + files: Array.from(files), + multiple: true, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback, + append + }); + } + removeUpload(name, tmpFilename, finishCallback) { + this.removeBag.push(name, { + tmpFilename, + finishCallback + }); + this.component.$wire.call("_removeUpload", name, tmpFilename); + } + setUpload(name, uploadObject) { + this.uploadBag.add(name, uploadObject); + if (this.uploadBag.get(name).length === 1) { + this.startUpload(name, uploadObject); + } + } + handleSignedUrl(name, url) { + let formData = new FormData(); + Array.from(this.uploadBag.first(name).files).forEach((file) => formData.append("files[]", file, file.name)); + let headers = { + "Accept": "application/json" + }; + let csrfToken = getCsrfToken(); + if (csrfToken) + headers["X-CSRF-TOKEN"] = csrfToken; + this.makeRequest(name, formData, "post", url, headers, (response) => { + return response.paths; + }); + } + handleS3PreSignedUrl(name, payload) { + let formData = this.uploadBag.first(name).files[0]; + let headers = payload.headers; + if ("Host" in headers) + delete headers.Host; + let url = payload.url; + this.makeRequest(name, formData, "put", url, headers, (response) => { + return [payload.path]; + }); + } + makeRequest(name, formData, method, url, headers, retrievePaths) { + let request = new XMLHttpRequest(); + request.open(method, url); + Object.entries(headers).forEach(([key, value]) => { + request.setRequestHeader(key, value); + }); + request.upload.addEventListener("progress", (e) => { + e.detail = {}; + e.detail.progress = Math.floor(e.loaded * 100 / e.total); + this.uploadBag.first(name).progressCallback(e); + }); + request.addEventListener("load", () => { + if ((request.status + "")[0] === "2") { + let paths = retrievePaths(request.response && JSON.parse(request.response)); + this.component.$wire.call("_finishUpload", name, paths, this.uploadBag.first(name).multiple, this.uploadBag.first(name).append); + return; + } + let errors = null; + if (request.status === 422) { + errors = request.response; + } + this.component.$wire.call("_uploadErrored", name, errors, this.uploadBag.first(name).multiple); + }); + request.addEventListener("error", () => { + this.component.$wire.call("_uploadErrored", name, null, this.uploadBag.first(name).multiple); + }); + this.uploadBag.first(name).request = request; + request.send(formData); + } + startUpload(name, uploadObject) { + let fileInfos = uploadObject.files.map((file) => { + return { name: file.name, size: file.size, type: file.type }; + }); + this.component.$wire.call("_startUpload", name, fileInfos, uploadObject.multiple); + setUploadLoading(this.component, name); + } + markUploadFinished(name, tmpFilenames) { + unsetUploadLoading(this.component); + let uploadObject = this.uploadBag.shift(name); + uploadObject.finishCallback(uploadObject.multiple ? tmpFilenames : tmpFilenames[0]); + if (this.uploadBag.get(name).length > 0) + this.startUpload(name, this.uploadBag.last(name)); + } + markUploadErrored(name) { + unsetUploadLoading(this.component); + this.uploadBag.shift(name).errorCallback(); + if (this.uploadBag.get(name).length > 0) + this.startUpload(name, this.uploadBag.last(name)); + } + cancelUpload(name, cancelledCallback = null) { + unsetUploadLoading(this.component); + let uploadItem = this.uploadBag.first(name); + if (uploadItem) { + if (uploadItem.request) { + uploadItem.request.abort(); + } + this.uploadBag.shift(name).cancelledCallback(); + if (cancelledCallback) + cancelledCallback(); + } + } +}; +var MessageBag = class { + constructor() { + this.bag = {}; + } + add(name, thing) { + if (!this.bag[name]) { + this.bag[name] = []; + } + this.bag[name].push(thing); + } + push(name, thing) { + this.add(name, thing); + } + first(name) { + if (!this.bag[name]) + return null; + return this.bag[name][0]; + } + last(name) { + return this.bag[name].slice(-1)[0]; + } + get(name) { + return this.bag[name]; + } + shift(name) { + return this.bag[name].shift(); + } + call(name, ...params) { + (this.listeners[name] || []).forEach((callback) => { + callback(...params); + }); + } + has(name) { + return Object.keys(this.listeners).includes(name); + } +}; +function setUploadLoading() { +} +function unsetUploadLoading() { +} +function upload(component, name, file, finishCallback = () => { +}, errorCallback = () => { +}, progressCallback = () => { +}, cancelledCallback = () => { +}) { + let uploadManager = getUploadManager(component); + uploadManager.upload( + name, + file, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback + ); +} +function uploadMultiple(component, name, files, finishCallback = () => { +}, errorCallback = () => { +}, progressCallback = () => { +}, cancelledCallback = () => { +}, append = true) { + let uploadManager = getUploadManager(component); + uploadManager.uploadMultiple( + name, + files, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback, + append + ); +} +function removeUpload(component, name, tmpFilename, finishCallback = () => { +}, errorCallback = () => { +}) { + let uploadManager = getUploadManager(component); + uploadManager.removeUpload( + name, + tmpFilename, + finishCallback, + errorCallback + ); +} +function cancelUpload(component, name, cancelledCallback = () => { +}) { + let uploadManager = getUploadManager(component); + uploadManager.cancelUpload( + name, + cancelledCallback + ); +} + +// js/features/supportEntangle.js +var import_alpinejs = __toESM(require_module_cjs()); +function generateEntangleFunction(component, cleanup) { + if (!cleanup) + cleanup = () => { + }; + return (name, live = false) => { + let isLive = live; + let livewireProperty = name; + let livewireComponent = component.$wire; + let livewirePropertyValue = livewireComponent.get(livewireProperty); + let interceptor = import_alpinejs.default.interceptor((initialValue, getter, setter, path, key) => { + if (typeof livewirePropertyValue === "undefined") { + console.error(`Livewire Entangle Error: Livewire property ['${livewireProperty}'] cannot be found on component: ['${component.name}']`); + return; + } + let release = import_alpinejs.default.entangle({ + get() { + return livewireComponent.get(name); + }, + set(value) { + livewireComponent.set(name, value, isLive); + } + }, { + get() { + return getter(); + }, + set(value) { + setter(value); + } + }); + cleanup(() => release()); + return cloneIfObject(livewireComponent.get(name)); + }, (obj) => { + Object.defineProperty(obj, "live", { + get() { + isLive = true; + return obj; + } + }); + }); + return interceptor(livewirePropertyValue); + }; +} +function cloneIfObject(value) { + return typeof value === "object" ? JSON.parse(JSON.stringify(value)) : value; +} + +// js/$wire.js +var import_alpinejs3 = __toESM(require_module_cjs()); + +// js/hooks.js +var listeners = []; +function on(name, callback) { + if (!listeners[name]) + listeners[name] = []; + listeners[name].push(callback); + return () => { + listeners[name] = listeners[name].filter((i) => i !== callback); + }; +} +function trigger(name, ...params) { + let callbacks = listeners[name] || []; + let finishers = []; + for (let i = 0; i < callbacks.length; i++) { + let finisher = callbacks[i](...params); + if (isFunction(finisher)) + finishers.push(finisher); + } + return (result) => { + return runFinishers(finishers, result); + }; +} +async function triggerAsync(name, ...params) { + let callbacks = listeners[name] || []; + let finishers = []; + for (let i = 0; i < callbacks.length; i++) { + let finisher = await callbacks[i](...params); + if (isFunction(finisher)) + finishers.push(finisher); + } + return (result) => { + return runFinishers(finishers, result); + }; +} +function runFinishers(finishers, result) { + let latest = result; + for (let i = 0; i < finishers.length; i++) { + let iResult = finishers[i](latest); + if (iResult !== void 0) { + latest = iResult; + } + } + return latest; +} + +// js/request/interactions.js +function coordinateNetworkInteractions(messageBus2) { + interceptPartition(({ message, compileRequest }) => { + if (!message.component.isIsolated) + return; + compileRequest([message]); + }); + interceptPartition(({ message, compileRequest }) => { + if (message.component.isLazy && !message.component.hasBeenLazyLoaded && message.component.isLazyIsolated) { + compileRequest([message]); + } + }); + interceptPartition(({ message, compileRequest }) => { + let component = message.component; + let bundledMessages = []; + component.getDeepChildrenWithBindings((child) => { + let action = constructAction(child, "$commit"); + let message2 = createOrAddToOutstandingMessage(action); + bundledMessages.push(message2); + }); + if (bundledMessages.length > 0) { + compileRequest([message, ...bundledMessages]); + } + }); + interceptAction(({ action }) => { + let isRenderless = action?.origin?.directive?.modifiers.includes("renderless"); + if (isRenderless) { + action.metadata.renderless = true; + } + let message = messageBus2.activeMessageMatchingScope(action); + if (message) { + if (message.isAsync() || action.isAsync()) + return; + if (action.metadata.type === "poll") { + return action.cancel(); + } + if (Array.from(message.actions).every((action2) => action2.metadata.type === "poll")) { + return message.cancel(); + } + if (Array.from(message.actions).every((action2) => action2.metadata.type === "model.live")) { + if (action.metadata.type === "model.live") { + return; + } + } + action.defer(); + message.addInterceptor(({ onFinish }) => { + onFinish(() => action.fire()); + }); + } + }); +} + +// js/request/request.js +var MessageRequest = class { + messages = /* @__PURE__ */ new Set(); + controller = new AbortController(); + interceptors = []; + cancelled = false; + uri = null; + payload = null; + options = null; + addMessage(message) { + message.setRequest(this); + this.messages.add(message); + } + getActiveMessages() { + return new Set([...this.messages].filter((message) => !message.isCancelled())); + } + initInterceptors(interceptorRegistry) { + this.interceptors = interceptorRegistry.getRequestInterceptors(this); + this.messages.forEach((message) => { + let messageInterceptors = interceptorRegistry.getMessageInterceptors(message); + message.setInterceptors(messageInterceptors); + }); + this.interceptors.forEach((interceptor) => interceptor.init()); + this.messages.forEach((message) => { + message.getInterceptors().forEach((interceptor) => interceptor.init()); + }); + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.controller.abort(); + this.messages.forEach((message) => { + if (message.isCancelled()) + return; + message.cancel(); + }); + } + hasAllCancelledMessages() { + return this.getActiveMessages().size === 0; + } + isCancelled() { + return this.cancelled; + } + invokeOnSend({ responsePromise }) { + this.interceptors.forEach((interceptor) => interceptor.onSend({ responsePromise })); + this.messages.forEach((message) => message.invokeOnSend()); + } + invokeOnCancel() { + this.interceptors.forEach((interceptor) => interceptor.onCancel()); + } + invokeOnFailure({ error: error2 }) { + this.interceptors.forEach((interceptor) => interceptor.onFailure({ error: error2 })); + this.messages.forEach((message) => message.invokeOnFailure(error2)); + } + invokeOnResponse({ response }) { + this.interceptors.forEach((interceptor) => interceptor.onResponse({ response })); + } + invokeOnStream({ response }) { + this.interceptors.forEach((interceptor) => interceptor.onStream({ response })); + } + invokeOnParsed({ response, body }) { + this.interceptors.forEach((interceptor) => interceptor.onParsed({ response, body })); + } + invokeOnRedirect({ url, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onRedirect({ url, preventDefault })); + } + invokeOnDump({ html, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onDump({ html, preventDefault })); + } + invokeOnError({ response, body, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onError({ response, body, preventDefault })); + this.messages.forEach((message) => message.invokeOnError({ response, body, preventDefault })); + } + invokeOnSuccess({ response, body, json }) { + this.interceptors.forEach((interceptor) => interceptor.onSuccess({ response, body, json })); + } + invokeOnFinish() { + this.interceptors.forEach((interceptor) => interceptor.onFinish()); + } +}; +var PageRequest = class { + controller = new AbortController(); + constructor(uri) { + this.uri = uri; + } + cancel() { + this.controller.abort(); + } + isCancelled() { + return this.controller.signal.aborted; + } +}; + +// js/request/interceptor.js +var MessageInterceptor = class { + onSend = () => { + }; + onCancel = () => { + }; + onFailure = () => { + }; + onError = () => { + }; + onStream = () => { + }; + onSuccess = () => { + }; + onSkipped = () => { + }; + onFinish = () => { + }; + onSync = () => { + }; + onEffect = () => { + }; + onMorph = async () => { + }; + onRender = () => { + }; + constructor(message, callback) { + this.message = message; + this.callback = callback; + this.callback({ + message: this.message, + cancel: () => { + let attachedToMessage = this.message.getInterceptors().includes(this); + if (!attachedToMessage) { + this.onCancel(); + } + this.message.cancel(); + }, + onSend: (callback2) => this.onSend = callback2, + onCancel: (callback2) => this.onCancel = callback2, + onFailure: (callback2) => this.onFailure = callback2, + onError: (callback2) => this.onError = callback2, + onStream: (callback2) => this.onStream = callback2, + onSuccess: (callback2) => this.onSuccess = callback2, + onSkipped: (callback2) => this.onSkipped = callback2, + onFinish: (callback2) => this.onFinish = callback2 + }); + } + init() { + } +}; +var RequestInterceptor = class { + onSend = () => { + }; + onCancel = () => { + }; + onFailure = () => { + }; + onResponse = () => { + }; + onParsed = () => { + }; + onError = () => { + }; + onStream = () => { + }; + onRedirect = () => { + }; + onDump = () => { + }; + onSuccess = () => { + }; + onFinish = () => { + }; + constructor(request, callback) { + this.request = request; + this.callback = callback; + this.callback({ + request: this.request, + onSend: (callback2) => this.onSend = callback2, + onCancel: (callback2) => this.onCancel = callback2, + onFailure: (callback2) => this.onFailure = callback2, + onResponse: (callback2) => this.onResponse = callback2, + onParsed: (callback2) => this.onParsed = callback2, + onError: (callback2) => this.onError = callback2, + onStream: (callback2) => this.onStream = callback2, + onRedirect: (callback2) => this.onRedirect = callback2, + onDump: (callback2) => this.onDump = callback2, + onSuccess: (callback2) => this.onSuccess = callback2, + onFinish: (callback2) => this.onFinish = callback2 + }); + } + init() { + } +}; +var InterceptorRegistry = class { + messageInterceptorCallbacks = []; + messageInterceptorCallbacksByComponent = new WeakBag(); + requestInterceptorCallbacks = []; + addInterceptor(component, callback) { + this.messageInterceptorCallbacksByComponent.add(component, callback); + return () => { + this.messageInterceptorCallbacksByComponent.delete(component, callback); + }; + } + addMessageInterceptor(callback) { + this.messageInterceptorCallbacks.push(callback); + return () => { + this.messageInterceptorCallbacks.splice(this.messageInterceptorCallbacks.indexOf(callback), 1); + }; + } + addRequestInterceptor(callback) { + this.requestInterceptorCallbacks.push(callback); + return () => { + this.requestInterceptorCallbacks.splice(this.requestInterceptorCallbacks.indexOf(callback), 1); + }; + } + getMessageInterceptors(message) { + let callbacks = [ + ...this.messageInterceptorCallbacksByComponent.get(message.component), + ...this.messageInterceptorCallbacks + ]; + return callbacks.map((callback) => { + return new MessageInterceptor(message, callback); + }); + } + getRequestInterceptors(request) { + return this.requestInterceptorCallbacks.map((callback) => { + return new RequestInterceptor(request, callback); + }); + } +}; + +// js/utils/modal.js +function showHtmlModal(html) { + let page = document.createElement("html"); + page.innerHTML = html; + page.querySelectorAll("a").forEach( + (a) => a.setAttribute("target", "_top") + ); + let modal = document.getElementById("livewire-error"); + if (typeof modal != "undefined" && modal != null) { + modal.innerHTML = ""; + } else { + modal = document.createElement("dialog"); + modal.id = "livewire-error"; + modal.style.margin = "50px"; + modal.style.width = "calc(100% - 100px)"; + modal.style.height = "calc(100% - 100px)"; + modal.style.borderRadius = "5px"; + modal.style.padding = "0px"; + } + let iframe = document.createElement("iframe"); + iframe.style.backgroundColor = "#17161A"; + iframe.style.borderRadius = "5px"; + iframe.style.width = "100%"; + iframe.style.height = "100%"; + modal.appendChild(iframe); + document.body.prepend(modal); + document.body.style.overflow = "hidden"; + iframe.contentWindow.document.open(); + iframe.contentWindow.document.write(page.outerHTML); + iframe.contentWindow.document.close(); + modal.addEventListener("click", () => hideHtmlModal(modal)); + modal.addEventListener("close", () => cleanupModal(modal)); + modal.showModal(); + modal.focus(); + modal.blur(); +} +function hideHtmlModal(modal) { + modal.close(); +} +function cleanupModal(modal) { + modal.outerHTML = ""; + document.body.style.overflow = "visible"; +} + +// js/request/messageBus.js +var componentSymbols = /* @__PURE__ */ new WeakMap(); +var componentIslandSymbols = /* @__PURE__ */ new WeakMap(); +function scopeSymbolFromMessage(message) { + let component = message.component; + let hasAllIslands = Array.from(message.actions).every((action) => action.metadata.island); + if (hasAllIslands) { + let islandName = Array.from(message.actions).map((action) => action.metadata.island.name).sort().join("|"); + let islandSymbols = componentIslandSymbols.get(component); + if (!islandSymbols) { + islandSymbols = { [islandName]: Symbol() }; + componentIslandSymbols.set(component, islandSymbols); + } + if (!islandSymbols[islandName]) { + islandSymbols[islandName] = Symbol(); + } + return islandSymbols[islandName]; + } + if (!componentSymbols.has(component)) { + componentSymbols.set(component, Symbol()); + } + return componentSymbols.get(component); +} +function scopeSymbolFromAction(action) { + let component = action.component; + let isIsland = !!action.metadata.island; + if (isIsland) { + let islandName = action.metadata.island.name; + let islandSymbols = componentIslandSymbols.get(component); + if (!islandSymbols) { + islandSymbols = { [islandName]: Symbol() }; + componentIslandSymbols.set(component, islandSymbols); + } + if (!islandSymbols[islandName]) { + islandSymbols[islandName] = Symbol(); + } + return islandSymbols[islandName]; + } + if (!componentSymbols.has(component)) { + componentSymbols.set(component, Symbol()); + } + return componentSymbols.get(component); +} +var MessageBus = class { + pendingMessages = /* @__PURE__ */ new Set(); + activeMessages = /* @__PURE__ */ new Set(); + bufferingMessages = /* @__PURE__ */ new Set(); + constructor() { + } + messageBuffer(message, callback) { + if (this.bufferingMessages.has(message)) { + return; + } + this.bufferingMessages.add(message); + setTimeout(() => { + callback(); + this.bufferingMessages.delete(message); + }, 5); + } + addPendingMessage(message) { + this.pendingMessages.add(message); + } + clearPendingMessages() { + this.pendingMessages.clear(); + } + getPendingMessages() { + return Array.from(this.pendingMessages); + } + addActiveMessage(message) { + this.activeMessages.add(message); + } + removeActiveMessage(message) { + this.activeMessages.delete(message); + } + findScopedPendingMessage(action) { + if (action.isAsync()) + return null; + let actionScope = scopeSymbolFromAction(action); + return Array.from(this.pendingMessages).find((message) => { + if (message.component !== action.component) + return false; + return Array.from(message.actions).some( + (existingAction) => scopeSymbolFromAction(existingAction) === actionScope + ); + }); + } + activeMessageMatchingScope(action) { + return Array.from(this.activeMessages).find((message) => this.matchesScope(message, action)); + } + matchesScope(message, action) { + return message.scope === scopeSymbolFromAction(action); + } + allScopedMessages(action) { + return [...Array.from(this.activeMessages), ...Array.from(this.pendingMessages)].filter((message) => { + return this.matchesScope(message, action); + }); + } + eachPendingMessage(callback) { + Array.from(this.pendingMessages).forEach(callback); + } +}; + +// js/request/message.js +var Message = class { + actions = /* @__PURE__ */ new Set(); + snapshot = null; + updates = null; + calls = null; + payload = null; + responsePayload = null; + pendingReturns = []; + pendingReturnsMeta = {}; + interceptors = []; + cancelled = false; + skipped = false; + request = null; + _scope = null; + get scope() { + if (!this._scope) { + throw new Error("Message scope has not been set yet"); + } + return this._scope; + } + set scope(scope) { + this._scope = scope; + } + constructor(component) { + this.component = component; + } + addAction(action) { + let actionsByFingerprint = /* @__PURE__ */ new Map(); + Array.from(this.actions).forEach((action2) => { + actionsByFingerprint.set(action2.fingerprint, action2); + }); + if (actionsByFingerprint.has(action.fingerprint)) { + actionsByFingerprint.get(action.fingerprint).addSquashedAction(action); + return; + } + action.message = this; + this.actions.add(action); + } + removeAction(action) { + this.actions.delete(action); + action.message = null; + if (this.actions.size === 0) { + this.cancel(); + } + } + getActions() { + return Array.from(this.actions); + } + hasActionForIsland(island) { + return this.getActions().some((action) => { + return action.metadata.island?.name === island.metadata.name; + }); + } + hasActionForComponent() { + return this.getActions().some((action) => { + return action.metadata.island === void 0; + }); + } + setInterceptors(interceptors2) { + this.interceptors = interceptors2; + } + addInterceptor(callback) { + let interceptor = new MessageInterceptor(this, callback); + this.interceptors.push(interceptor); + interceptor.init(); + } + setRequest(request) { + this.request = request; + } + getInterceptors() { + return this.interceptors; + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.invokeOnCancel(); + if (this.request?.hasAllCancelledMessages()) { + this.request.cancel(); + } + } + isCancelled() { + return this.cancelled; + } + markSkipped() { + this.skipped = true; + } + isSkipped() { + return this.skipped; + } + isAsync() { + return Array.from(this.actions).every((action) => action.isAsync()); + } + invokeOnSend() { + this.interceptors.forEach((interceptor) => interceptor.onSend({ + payload: this.payload + })); + Array.from(this.actions).forEach((action, index) => { + let call = this.calls[index]; + action.invokeOnSend({ call }); + }); + } + invokeOnCancel() { + this.interceptors.forEach((interceptor) => interceptor.onCancel()); + this.rejectActionPromises({ status: null, body: null, json: null, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnFailure(error2) { + this.interceptors.forEach((interceptor) => interceptor.onFailure({ error: error2 })); + Array.from(this.actions).forEach((action) => action.invokeOnFailure({ error: error2 })); + this.rejectActionPromises({ status: null, body: null, json: null, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnError({ response, body, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onError({ + response, + body, + preventDefault + })); + Array.from(this.actions).forEach((action) => action.invokeOnError({ response, body, preventDefault })); + let json = null; + try { + json = JSON.parse(body); + } catch (e) { + } + this.rejectActionPromises({ status: response.status, body, json, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnStream({ json }) { + this.interceptors.forEach((interceptor) => interceptor.onStream({ json })); + } + invokeOnSuccess() { + this.interceptors.forEach((interceptor) => { + interceptor.onSuccess({ + payload: this.responsePayload, + onSync: (callback) => interceptor.onSync = callback, + onEffect: (callback) => interceptor.onEffect = callback, + onMorph: (callback) => interceptor.onMorph = callback, + onRender: (callback) => interceptor.onRender = callback + }); + }); + this.pendingReturns = this.responsePayload.effects["returns"] || []; + this.pendingReturnsMeta = this.responsePayload.effects["returnsMeta"] || {}; + } + invokeOnSync() { + this.interceptors.forEach((interceptor) => interceptor.onSync()); + } + invokeOnEffect() { + this.interceptors.forEach((interceptor) => interceptor.onEffect()); + } + async invokeOnMorph() { + await Promise.all( + this.interceptors.map((interceptor) => interceptor.onMorph()) + ); + } + invokeOnRender() { + this.interceptors.forEach((interceptor) => interceptor.onRender()); + } + invokeOnFinish() { + this.interceptors.forEach((interceptor) => interceptor.onFinish()); + } + invokeOnSkipped() { + this.interceptors.forEach((interceptor) => interceptor.onSkipped()); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + } + rejectActionPromises({ status, body, json, errors }) { + Array.from(this.actions).forEach((action) => { + action.rejectPromise({ status, body, json, errors }); + }); + } + resolveActionPromises(returns, returnsMeta) { + let resolvedActions = /* @__PURE__ */ new Set(); + returns.forEach((value, index) => { + let action = Array.from(this.actions)[index]; + if (!action) + return; + let meta = returnsMeta[index]; + if (meta?.errors) { + action.rejectPromise({ status: 422, body: null, json: null, errors: meta.errors }); + action.invokeOnFinish(); + resolvedActions.add(action); + return; + } + if (meta?.status) { + action.rejectPromise({ status: meta.status, body: null, json: null, errors: null }); + action.invokeOnFinish(); + resolvedActions.add(action); + return; + } + action.invokeOnSuccess(value); + action.resolvePromise(value); + action.invokeOnFinish(); + resolvedActions.add(action); + }); + Array.from(this.actions).forEach((action) => { + if (resolvedActions.has(action)) + return; + action.invokeOnSuccess(void 0); + action.resolvePromise(); + action.invokeOnFinish(); + }); + } +}; + +// js/request/action.js +var Action = class { + squashedActions = /* @__PURE__ */ new Set(); + onSendCallbacks = []; + onCancelCallbacks = []; + onSuccessCallbacks = []; + onErrorCallbacks = []; + onFailureCallbacks = []; + onFinishCallbacks = []; + message = null; + cancelled = false; + deferred = false; + _fire = null; + constructor(component, name, params = [], metadata = {}, origin = null) { + this.component = component; + this.name = name; + this.params = params; + this.metadata = metadata; + this.origin = origin; + this.promise = new Promise((resolve, reject) => { + this.promiseResolution = { resolve, reject }; + }); + this.promise._livewireAction = this; + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.invokeOnCancel(); + this.invokeOnFinish(); + this.rejectPromise({ status: null, body: null, json: null, errors: null }); + this.squashedActions.forEach((action) => action.cancel()); + if (this.message) { + this.message.removeAction(this); + } + } + isCancelled() { + return this.cancelled; + } + defer() { + this.deferred = true; + } + isDeferred() { + return this.deferred; + } + fire() { + if (this._fire) { + this._fire(this); + } + } + get fingerprint() { + let componentId = this.component.id; + let name = this.name; + let params = JSON.stringify(this.params); + let metadata = JSON.stringify(this.metadata); + let bytes = new TextEncoder().encode(componentId + name + params + metadata); + let binary = ""; + let chunkSize = 8192; + for (let i = 0; i < bytes.length; i += chunkSize) { + binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize)); + } + return window.btoa(binary); + } + isAsync() { + let asyncMethods = this.component.snapshot.memo?.async || []; + let methodIsMarkedAsync = asyncMethods.includes(this.name); + let actionIsAsync = this.origin?.directive?.modifiers.includes("async") || !!this.metadata.async; + return methodIsMarkedAsync || actionIsAsync; + } + isJson() { + let jsonMethods = this.component.snapshot.memo?.json || []; + return jsonMethods.includes(this.name); + } + addInterceptor(callback) { + callback({ + action: this, + onSend: (cb) => this.onSendCallbacks.push(cb), + onCancel: (cb) => this.onCancelCallbacks.push(cb), + onSuccess: (cb) => this.onSuccessCallbacks.push(cb), + onError: (cb) => this.onErrorCallbacks.push(cb), + onFailure: (cb) => this.onFailureCallbacks.push(cb), + onFinish: (cb) => this.onFinishCallbacks.push(cb) + }); + } + invokeOnSend({ call }) { + this.onSendCallbacks.forEach((cb) => cb({ call })); + this.squashedActions.forEach((action) => action.invokeOnSend({ call })); + } + invokeOnCancel() { + this.onCancelCallbacks.forEach((cb) => cb()); + this.squashedActions.forEach((action) => action.invokeOnCancel()); + } + invokeOnSuccess(result) { + this.onSuccessCallbacks.forEach((cb) => cb(result)); + this.squashedActions.forEach((action) => action.invokeOnSuccess(result)); + } + invokeOnError({ response, body, preventDefault }) { + this.onErrorCallbacks.forEach((cb) => cb({ response, body, preventDefault })); + this.squashedActions.forEach((action) => action.invokeOnError({ response, body, preventDefault })); + } + invokeOnFailure({ error: error2 }) { + this.onFailureCallbacks.forEach((cb) => cb({ error: error2 })); + this.squashedActions.forEach((action) => action.invokeOnFailure({ error: error2 })); + } + invokeOnFinish() { + this.onFinishCallbacks.forEach((cb) => cb()); + this.squashedActions.forEach((action) => action.invokeOnFinish()); + } + mergeMetadata(metadata) { + this.metadata = { ...this.metadata, ...metadata }; + } + rejectPromise(error2) { + this.squashedActions.forEach((action) => action.rejectPromise(error2)); + this.promiseResolution.reject(error2); + } + addSquashedAction(action) { + this.squashedActions.add(action); + } + resolvePromise(value) { + this.squashedActions.forEach((action) => action.resolvePromise(value)); + this.promiseResolution.resolve(value); + } +}; + +// js/request/legacy.js +function registerLegacyEventSupport(interceptRequest2, interceptMessage2) { + interceptRequest2(({ + request, + onFailure, + onResponse, + onError, + onSuccess + }) => { + let respondCallbacks = []; + let succeedCallbacks = []; + let failCallbacks = []; + trigger("request", { + url: request.uri, + options: request.options, + payload: request.options.body, + respond: (i) => respondCallbacks.push(i), + succeed: (i) => succeedCallbacks.push(i), + fail: (i) => failCallbacks.push(i) + }); + onResponse(({ response }) => { + respondCallbacks.forEach((callback) => callback({ + status: response.status, + response + })); + }); + onSuccess(({ response, json }) => { + succeedCallbacks.forEach((callback) => callback({ + status: response.status, + json + })); + }); + onFailure(({ error: error2 }) => { + failCallbacks.forEach((callback) => callback({ + status: 503, + content: null, + preventDefault: () => { + } + })); + }); + onError(({ response, body, preventDefault }) => { + failCallbacks.forEach((callback) => callback({ + status: response.status, + content: body, + preventDefault + })); + }); + }); + interceptMessage2(({ + message, + onCancel, + onError, + onSuccess, + onFinish + }) => { + let respondCallbacks = []; + let succeedCallbacks = []; + let failCallbacks = []; + trigger("commit", { + component: message.component, + commit: message.payload, + respond: (callback) => { + respondCallbacks.push(callback); + }, + succeed: (callback) => { + succeedCallbacks.push(callback); + }, + fail: (callback) => { + failCallbacks.push(callback); + } + }); + onFinish(() => { + respondCallbacks.forEach((callback) => callback()); + }); + onSuccess(({ payload, onSync, onMorph, onRender }) => { + onRender(() => { + succeedCallbacks.forEach((callback) => callback({ + snapshot: payload.snapshot, + effects: payload.effects + })); + }); + }); + onError(() => { + failCallbacks.forEach((callback) => callback()); + }); + onCancel(() => { + failCallbacks.forEach((callback) => callback()); + }); + }); +} + +// js/request/index.js +var outstandingActionOrigin = null; +var outstandingActionMetadata = {}; +var outstandingActionInterceptors = []; +var interceptors = new InterceptorRegistry(); +var messageBus = new MessageBus(); +var actionInterceptors = []; +var partitionInterceptors = []; +var sessionExpired = false; +function sessionIsExpired() { + return sessionExpired; +} +function setNextActionOrigin(origin) { + outstandingActionOrigin = origin; +} +function setNextActionMetadata(metadata) { + outstandingActionMetadata = metadata; +} +function setNextActionInterceptor(callback) { + outstandingActionInterceptors.push(callback); +} +function interceptAction(callback) { + actionInterceptors.push(callback); + return () => { + actionInterceptors.splice(actionInterceptors.indexOf(callback), 1); + }; +} +function interceptMessage(callback) { + return interceptors.addMessageInterceptor(callback); +} +function interceptRequest(callback) { + return interceptors.addRequestInterceptor(callback); +} +function interceptPartition(callback) { + partitionInterceptors.push(callback); + return () => { + partitionInterceptors.splice(partitionInterceptors.indexOf(callback), 1); + }; +} +function interceptComponentAction(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptAction(({ action, ...rest }) => { + if (action.component !== component) + return; + if (actionName && action.name !== actionName) + return; + callback({ action, ...rest }); + }); +} +function interceptComponentMessage(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptors.addInterceptor(component, ({ message, ...rest }) => { + if (actionName) { + let hasAction = Array.from(message.actions).some((a) => a.name === actionName); + if (!hasAction) + return; + } + callback({ message, ...rest }); + }); +} +function interceptComponentRequest(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptRequest(({ request, ...rest }) => { + let matchingMessages = Array.from(request.messages).filter((m) => { + if (m.component !== component) + return false; + if (actionName) { + return Array.from(m.actions).some((a) => a.name === actionName); + } + return true; + }); + if (matchingMessages.length === 0) + return; + callback({ request, ...rest }); + }); +} +interceptMessage(({ message, onFinish }) => { + messageBus.addActiveMessage(message); + onFinish(() => messageBus.removeActiveMessage(message)); +}); +queueMicrotask(() => { + coordinateNetworkInteractions(messageBus); +}); +function fireAction(component, method, params = [], metadata = {}) { + if (component.__isWireProxy) + component = component.__instance; + let action = constructAction(component, method, params, metadata); + actionInterceptors.forEach((callback) => { + callback({ + action, + onSend: (cb) => action.onSendCallbacks.push(cb), + onCancel: (cb) => action.onCancelCallbacks.push(cb), + onSuccess: (cb) => action.onSuccessCallbacks.push(cb), + onError: (cb) => action.onErrorCallbacks.push(cb), + onFailure: (cb) => action.onFailureCallbacks.push(cb), + onFinish: (cb) => action.onFinishCallbacks.push(cb) + }); + }); + if (action.isCancelled() || action.isDeferred()) + return action.promise; + return fireActionInstance(action); +} +function constructAction(component, method, params, metadata) { + let origin = outstandingActionOrigin; + let pendingInterceptors = outstandingActionInterceptors; + outstandingActionOrigin = null; + outstandingActionInterceptors = []; + metadata = { + ...metadata, + ...outstandingActionMetadata + }; + outstandingActionMetadata = {}; + let action = new Action(component, method, params, metadata, origin); + action._fire = fireActionInstance; + pendingInterceptors.forEach((callback) => action.addInterceptor(callback)); + return action; +} +function fireActionInstance(action) { + let message = createOrAddToOutstandingMessage(action); + messageBus.messageBuffer(message, () => { + sendMessages(); + }); + return action.promise; +} +function createOrAddToOutstandingMessage(action) { + let message = messageBus.findScopedPendingMessage(action); + if (!message) + message = new Message(action.component); + message.addAction(action); + messageBus.addPendingMessage(message); + return message; +} +function sendMessages() { + let requests = /* @__PURE__ */ new Set(); + messageBus.eachPendingMessage((message) => { + partitionInterceptors.forEach((callback) => { + callback({ + message, + compileRequest: (messages2) => { + let existingRequest = Array.from(requests).find( + (request2) => messages2.some((message2) => request2.messages.has(message2)) + ); + if (existingRequest) { + messages2.forEach((message2) => { + if (!existingRequest.messages.has(message2)) { + existingRequest.addMessage(message2); + } + }); + return existingRequest; + } + let request = new MessageRequest(); + messages2.forEach((message2) => request.addMessage(message2)); + requests.add(request); + return request; + } + }); + }); + }); + let messages = messageBus.getPendingMessages(); + messageBus.clearPendingMessages(); + for (let message of messages) { + if (Array.from(requests).some((request) => request.messages.has(message))) { + continue; + } + let hasFoundRequest = false; + requests.forEach((request) => { + if (!hasFoundRequest) { + let hasMessageForSameComponent = Array.from(request.messages).some((m) => m.component === message.component); + if (hasMessageForSameComponent) + return; + request.addMessage(message); + hasFoundRequest = true; + } + }); + if (!hasFoundRequest) { + let request = new MessageRequest(); + request.addMessage(message); + requests.add(request); + } + } + requests.forEach((request) => { + request.messages.forEach((message) => { + message.snapshot = message.component.getEncodedSnapshotWithLatestChildrenMergedIn(); + message.updates = message.component.getUpdates(); + message.calls = Array.from(message.actions).map((i) => ({ + method: i.name, + params: i.params, + metadata: i.metadata + })); + message.payload = { + snapshot: message.snapshot, + updates: message.updates, + calls: message.calls + }; + }); + }); + requests.forEach((request) => { + request.messages.forEach((message) => { + message.scope = scopeSymbolFromMessage(message); + }); + }); + requests.forEach((request) => { + request.uri = getUpdateUri(); + Object.defineProperty(request, "payload", { + get() { + return { + _token: getCsrfToken(), + components: Array.from(request.messages, (i) => i.payload) + }; + } + }); + let cachedOptions = null; + Object.defineProperty(request, "options", { + get() { + if (cachedOptions) + return cachedOptions; + cachedOptions = { + method: "POST", + body: JSON.stringify(request.payload), + headers: { + "Content-type": "application/json", + "X-Livewire": "1" + }, + signal: request.controller.signal + }; + return cachedOptions; + } + }); + }); + requests.forEach((request) => { + request.initInterceptors(interceptors); + if (request.hasAllCancelledMessages()) { + request.cancel(); + } + sendRequest(request, { + send: ({ responsePromise }) => { + request.invokeOnSend({ responsePromise }); + }, + failure: ({ error: error2 }) => { + request.invokeOnFailure({ error: error2 }); + }, + finish: () => { + request.invokeOnFinish(); + }, + response: ({ response }) => { + request.invokeOnResponse({ response }); + }, + stream: async ({ response }) => { + request.invokeOnStream({ response }); + let finalResponse = ""; + try { + finalResponse = await interceptStreamAndReturnFinalResponse(response, (json) => { + let componentId = json.id; + request.messages.forEach((message) => { + if (message.component.id === componentId) { + message.invokeOnStream({ json }); + } + }); + trigger("stream", json); + }); + } catch (e) { + request.cancel(); + throw e; + } + return finalResponse; + }, + parsed: ({ response, responseBody }) => { + request.invokeOnParsed({ response, body: responseBody }); + }, + error: ({ response, responseBody }) => { + let preventDefault = false; + request.invokeOnError({ response, body: responseBody, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + if (response.status === 419) { + if (sessionExpired) + return; + sessionExpired = true; + confirm( + "This page has expired.\nWould you like to refresh the page?" + ) && window.location.reload(); + return; + } + if (response.aborted) + return; + showHtmlModal(responseBody); + }, + redirect: (url) => { + let preventDefault = false; + request.invokeOnRedirect({ url, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + window.location.href = url; + }, + dump: (html) => { + let preventDefault = false; + request.invokeOnDump({ html, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + showHtmlModal(html); + }, + success: async ({ response, responseBody, responseJson }) => { + request.invokeOnSuccess({ response, body: responseBody, json: responseJson }); + await triggerAsync("payload.intercept", responseJson); + let messageResponsePayloads = responseJson.components; + request.messages.forEach((message) => { + messageResponsePayloads.forEach((payload) => { + if (message.isCancelled()) + return; + if (payload.skip) { + if (payload.id === message.component.id) { + message.responsePayload = payload; + message.markSkipped(); + message.invokeOnSkipped(); + message.resolveActionPromises([], []); + message.invokeOnFinish(); + } + return; + } + let { snapshot: snapshotEncoded, effects } = payload; + let snapshot = JSON.parse(snapshotEncoded); + if (snapshot.memo.id === message.component.id) { + message.responsePayload = { snapshot, effects }; + message.invokeOnSuccess(); + if (message.isCancelled()) + return; + Alpine.transaction(async () => { + message.component.mergeNewSnapshot(snapshotEncoded, effects, message.updates); + message.invokeOnSync(); + if (message.isCancelled()) + return; + message.component.processEffects(effects, request); + message.invokeOnEffect(); + if (message.isCancelled()) + return; + await message.invokeOnMorph(); + }).then(() => { + if (!message.isCancelled()) { + message.resolveActionPromises( + message.pendingReturns, + message.pendingReturnsMeta + ); + message.invokeOnFinish(); + } + requestAnimationFrame(() => { + if (message.isCancelled()) + return; + message.invokeOnRender(); + }); + }); + } + }); + }); + } + }); + }); +} +async function sendRequest(request, handlers) { + let response; + try { + if (request.isCancelled()) + return; + let responsePromise = fetch(request.uri, request.options); + if (request.isCancelled()) + return; + handlers.send({ responsePromise }); + response = await responsePromise; + } catch (e) { + if (request.isCancelled()) + return; + handlers.failure({ error: e }); + handlers.finish(); + return; + } + handlers.response({ response }); + let responseBody = null; + if (response.headers.has("X-Livewire-Stream")) { + responseBody = await handlers.stream({ response }); + } else { + responseBody = await response.text(); + } + if (request.isCancelled()) + return; + handlers.parsed({ response, responseBody }); + if (!response.ok) { + handlers.error({ response, responseBody }); + handlers.finish(); + return; + } + if (response.redirected) { + handlers.redirect(response.url); + } + if (contentIsFromDump(responseBody)) { + let dump; + [dump, responseBody] = splitDumpFromContent(responseBody); + handlers.dump(dump); + } + let responseJson = null; + try { + responseJson = JSON.parse(responseBody); + } catch (e) { + console.error(e); + handlers.error({ response, responseBody }); + handlers.finish(); + return; + } + handlers.success({ response, responseBody, responseJson }); + handlers.finish(); +} +async function interceptStreamAndReturnFinalResponse(response, callback) { + let reader = response.body.getReader(); + let remainingResponse = ""; + while (true) { + let { done, value: chunk } = await reader.read(); + let decoder = new TextDecoder(); + let output = decoder.decode(chunk); + let [streams, remaining] = extractStreamObjects(remainingResponse + output); + streams.forEach((stream) => { + callback(stream); + }); + remainingResponse = remaining; + if (done) + return remainingResponse; + } +} +function extractStreamObjects(raw) { + let regex = /({"stream":true.*?"endStream":true})/g; + let matches = raw.match(regex); + let parsed = []; + if (matches) { + for (let i = 0; i < matches.length; i++) { + parsed.push(JSON.parse(matches[i]).body); + } + } + let remaining = raw.replace(regex, ""); + return [parsed, remaining]; +} +async function sendNavigateRequest(uri, callback, errorCallback) { + let request = new PageRequest(uri); + let options = { + headers: { + "X-Livewire-Navigate": "1" + }, + signal: request.controller.signal + }; + trigger("navigate.request", { + uri, + options + }); + let response; + try { + response = await fetch(uri, options); + let destination = getDestination(uri, response); + let html = await response.text(); + let status = response.status; + callback(html, destination, status); + } catch (error2) { + errorCallback(error2); + throw error2; + } +} +function getDestination(uri, response) { + let destination = createUrlObjectFromString(uri); + let finalDestination = createUrlObjectFromString(response.url); + if (destination.pathname + destination.search === finalDestination.pathname + finalDestination.search) { + finalDestination.hash = destination.hash; + } + return finalDestination; +} +function createUrlObjectFromString(urlString) { + return urlString !== null && new URL(urlString, document.baseURI); +} +registerLegacyEventSupport(interceptRequest, interceptMessage); + +// js/features/supportErrors.js +var import_alpinejs2 = __toESM(require_module_cjs()); +function getErrorsObject(component) { + let state = component.__errorsState ??= import_alpinejs2.default.reactive({ + clientErrors: null + }); + component.__lastErrorsSnapshot ??= component.snapshot; + return { + messages() { + if (component.__lastErrorsSnapshot !== component.snapshot) { + state.clientErrors = null; + component.__lastErrorsSnapshot = component.snapshot; + } + return state.clientErrors ??= component.snapshot.memo.errors; + }, + keys() { + return Object.keys(this.messages()); + }, + has(...keys) { + if (this.isEmpty()) + return false; + if (keys.length === 0 || keys.length === 1 && keys[0] == null) + return this.any(); + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + for (let key of keys) { + if (this.first(key) === "") + return false; + } + return true; + }, + hasAny(keys) { + if (this.isEmpty()) + return false; + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + for (let key of keys) { + if (this.has(key)) + return true; + } + return false; + }, + missing(...keys) { + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + return !this.hasAny(keys); + }, + first(key = null) { + let messages = key === null ? this.all() : this.get(key); + let firstMessage = messages.length > 0 ? messages[0] : ""; + return Array.isArray(firstMessage) ? firstMessage[0] : firstMessage; + }, + get(key) { + return this.messages()[key] || []; + }, + all() { + return Object.values(this.messages()).flat(); + }, + isEmpty() { + return !this.any(); + }, + isNotEmpty() { + return this.any(); + }, + any() { + return Object.keys(this.messages()).length > 0; + }, + count() { + return Object.values(this.messages()).reduce((total, array) => { + return total + array.length; + }, 0); + }, + clear(field = null) { + if (field === null) { + state.clientErrors = {}; + } else { + let errors = { ...state.clientErrors ?? component.snapshot.memo.errors }; + delete errors[field]; + state.clientErrors = errors; + } + } + }; +} + +// js/features/supportRefs.js +function findRefEl(component, name) { + let refEl = component.el.querySelector(`[wire\\:ref="${name}"]`); + if (!refEl) + return console.error(`Ref "${name}" not found in component "${component.id}"`); + return refEl; +} + +// js/directives.js +var customDirectiveNames = /* @__PURE__ */ new Set(); +function matchesForLivewireDirective(attributeName) { + return attributeName.match(new RegExp("wire:")); +} +function extractDirective(el, name) { + let [value, ...modifiers] = name.replace(new RegExp("wire:"), "").split("."); + return new Directive(value, modifiers, name, el); +} +function directive(name, callback) { + if (customDirectiveNames.has(name)) + return; + customDirectiveNames.add(name); + on("directive.init", ({ el, component, directive: directive2, cleanup }) => { + if (directive2.value === name) { + callback({ + el, + directive: directive2, + component, + $wire: component.$wire, + cleanup + }); + } + }); +} +function globalDirective(name, callback) { + if (customDirectiveNames.has(name)) + return; + customDirectiveNames.add(name); + on("directive.global.init", ({ el, directive: directive2, cleanup }) => { + if (directive2.value === name) { + callback({ el, directive: directive2, cleanup }); + } + }); +} +function getDirectives(el) { + return new DirectiveManager(el); +} +function customDirectiveHasBeenRegistered(name) { + return customDirectiveNames.has(name); +} +var DirectiveManager = class { + constructor(el) { + this.el = el; + this.directives = this.extractTypeModifiersAndValue(); + } + all() { + return this.directives; + } + has(value) { + return this.directives.map((directive2) => directive2.value).includes(value); + } + missing(value) { + return !this.has(value); + } + get(value) { + return this.directives.find((directive2) => directive2.value === value); + } + extractTypeModifiersAndValue() { + return Array.from(this.el.getAttributeNames().filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(this.el, name))); + } +}; +var Directive = class { + constructor(value, modifiers, rawName, el) { + this.rawName = this.raw = rawName; + this.el = el; + this.eventContext; + this.wire; + this.value = value; + this.modifiers = modifiers; + this.expression = this.el.getAttribute(this.rawName); + } + get method() { + const methods = this.parseOutMethodsAndParams(this.expression); + return methods[0].method; + } + get methods() { + return this.parseOutMethodsAndParams(this.expression); + } + get params() { + const methods = this.parseOutMethodsAndParams(this.expression); + return methods[0].params; + } + parseOutMethodsAndParams(rawMethod) { + let methods = []; + let parsedMethods = this.splitAndParseMethods(rawMethod); + for (let { method, paramString } of parsedMethods) { + let params = []; + if (paramString.length > 0) { + let argumentsToArray = function() { + for (var l = arguments.length, p = new Array(l), k = 0; k < l; k++) { + p[k] = arguments[k]; + } + return [].concat(p); + }; + try { + params = Alpine.evaluate( + document, + "argumentsToArray(" + paramString + ")", + { + scope: { argumentsToArray } + } + ); + } catch (error2) { + console.warn("Failed to parse parameters:", paramString, error2); + params = []; + } + } + methods.push({ method, params }); + } + return methods; + } + splitAndParseMethods(methodExpression) { + let methods = []; + let current = ""; + let parenCount = 0; + let inString = false; + let stringChar = null; + let trimmedExpression = methodExpression.trim(); + for (let i = 0; i < trimmedExpression.length; i++) { + let char = trimmedExpression[i]; + if (!inString) { + if (char === '"' || char === "'") { + inString = true; + stringChar = char; + current += char; + } else if (char === "(") { + parenCount++; + current += char; + } else if (char === ")") { + parenCount--; + current += char; + } else if (char === "," && parenCount === 0) { + methods.push(this.parseMethodCall(current.trim())); + current = ""; + } else { + current += char; + } + } else { + if (char === stringChar && trimmedExpression[i - 1] !== "\\") { + inString = false; + stringChar = null; + } + current += char; + } + } + if (current.trim().length > 0) { + methods.push(this.parseMethodCall(current.trim())); + } + return methods; + } + parseMethodCall(methodString) { + let methodMatch = methodString.match(/^([^(]+)\(/); + if (!methodMatch) { + return { + method: methodString.trim(), + paramString: "" + }; + } + let method = methodMatch[1].trim(); + let paramStart = methodMatch[0].length - 1; + let lastParenIndex = methodString.lastIndexOf(")"); + if (lastParenIndex === -1) { + throw new Error(`Missing closing parenthesis for method "${method}"`); + } + let paramString = methodString.slice(paramStart + 1, lastParenIndex).trim(); + return { + method, + paramString + }; + } +}; + +// js/directives/shared.js +function toggleBooleanStateDirective(el, directive2, isTruthy, cachedDisplay = null) { + isTruthy = directive2.modifiers.includes("remove") ? !isTruthy : isTruthy; + if (directive2.modifiers.includes("class")) { + let classes = directive2.expression.split(" ").filter(String); + if (isTruthy) { + el.classList.add(...classes); + } else { + el.classList.remove(...classes); + } + } else if (directive2.modifiers.includes("attr")) { + if (isTruthy) { + el.setAttribute(directive2.expression, true); + } else { + el.removeAttribute(directive2.expression); + } + } else { + let cache = cachedDisplay ?? window.getComputedStyle(el, null).getPropertyValue("display"); + let display = ["inline", "list-item", "block", "table", "flex", "grid", "inline-flex"].filter((i) => directive2.modifiers.includes(i))[0] || "inline-block"; + display = directive2.modifiers.includes("remove") && !isTruthy ? cache : display; + el.style.display = isTruthy ? display : "none"; + } +} + +// js/directives/wire-dirty.js +var refreshDirtyStatesByComponent = new WeakBag(); +on("commit", ({ component, succeed }) => { + succeed(() => { + setTimeout(() => { + refreshDirtyStatesByComponent.each(component, (i) => i(false)); + }); + }); +}); +directive("dirty", ({ el, directive: directive2, component }) => { + let targets = dirtyTargets(el); + let oldIsDirty = false; + let initialDisplay = el.style.display; + let refreshDirtyState = (isDirty) => { + toggleBooleanStateDirective(el, directive2, isDirty, initialDisplay); + oldIsDirty = isDirty; + }; + refreshDirtyStatesByComponent.add(component, refreshDirtyState); + Alpine.effect(() => { + let isDirty = false; + isDirty = checkDirty(component, targets.length === 0 ? void 0 : targets); + if (oldIsDirty !== isDirty) { + refreshDirtyState(isDirty); + } + oldIsDirty = isDirty; + }); +}); +function checkDirty(component, targets) { + let isDirty = false; + if (targets === void 0) { + isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive); + } else if (Array.isArray(targets)) { + for (let i = 0; i < targets.length; i++) { + if (isDirty) + break; + let target = targets[i]; + isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target)); + } + } else { + isDirty = JSON.stringify(dataGet(component.canonical, targets)) !== JSON.stringify(dataGet(component.reactive, targets)); + } + return isDirty; +} +function dirtyTargets(el) { + let directives = getDirectives(el); + let targets = []; + if (directives.has("model")) { + targets.push(directives.get("model").expression); + } + if (directives.has("target")) { + targets = targets.concat( + directives.get("target").expression.split(",").map((s) => s.trim()) + ); + } + return targets; +} + +// js/features/supportJsModules.js +var pendingComponentAssets = /* @__PURE__ */ new WeakMap(); +on("effect", ({ component, effects }) => { + let scriptModuleHash = effects.scriptModule; + if (scriptModuleHash) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/js/${encodedName}.js?v=${scriptModuleHash}`; + pendingComponentAssets.set(component, Alpine.reactive({ + loading: true, + afterLoaded: [] + })); + import( + /* @vite-ignore */ + path + ).then((module) => { + module.run.call(component.$wire, component.$wire, component.$wire.js); + pendingComponentAssets.get(component).loading = false; + pendingComponentAssets.get(component).afterLoaded.forEach((callback) => callback()); + pendingComponentAssets.delete(component); + }); + } +}); +function assetIsPendingFor(component) { + return pendingComponentAssets.has(component) && pendingComponentAssets.get(component).loading; +} +function runAfterAssetIsLoadedFor(component, callback) { + if (assetIsPendingFor(component)) { + pendingComponentAssets.get(component).afterLoaded.push(() => callback()); + } else { + callback(); + } +} + +// js/$wire.js +var properties = {}; +var fallback; +function wireProperty(name, callback, component = null) { + properties[name] = callback; +} +function wireFallback(callback) { + fallback = callback; +} +var aliases = { + "on": "$on", + "el": "$el", + "id": "$id", + "js": "$js", + "get": "$get", + "set": "$set", + "refs": "$refs", + "call": "$call", + "hook": "$hook", + "watch": "$watch", + "dirty": "$dirty", + "effect": "$effect", + "commit": "$commit", + "errors": "$errors", + "island": "$island", + "upload": "$upload", + "entangle": "$entangle", + "dispatch": "$dispatch", + "intercept": "$intercept", + "interceptAction": "$interceptAction", + "interceptMessage": "$interceptMessage", + "interceptRequest": "$interceptRequest", + "dispatchTo": "$dispatchTo", + "dispatchSelf": "$dispatchSelf", + "dispatchEl": "$dispatchEl", + "dispatchRef": "$dispatchRef", + "removeUpload": "$removeUpload", + "cancelUpload": "$cancelUpload", + "uploadMultiple": "$uploadMultiple" +}; +function generateWireObject(component, state) { + let isScoped = false; + return new Proxy({}, { + get(target, property) { + if (property === "__instance") + return component; + if (property in aliases) { + return getProperty(component, aliases[property]); + } else if (property in properties) { + return getProperty(component, property); + } else if (property in state) { + return state[property]; + } else if (property === "toJSON") { + return () => component.toJSON(); + } else if (!["then"].includes(property)) { + return getFallback(component)(property); + } + }, + set(target, property, value) { + if (property in state) { + state[property] = value; + } + return true; + } + }); +} +function getProperty(component, name) { + return properties[name](component); +} +function getFallback(component) { + return fallback(component); +} +import_alpinejs3.default.magic("wire", (el, { cleanup }) => { + let component; + return new Proxy({}, { + get(target, property) { + if (!component) { + try { + component = findComponentByEl(el); + } catch (e) { + return () => { + }; + } + } + if (["$entangle", "entangle"].includes(property)) { + return generateEntangleFunction(component, cleanup); + } + return component.$wire[property]; + }, + set(target, property, value) { + if (!component) { + try { + component = findComponentByEl(el); + } catch (e) { + return true; + } + } + component.$wire[property] = value; + return true; + } + }); +}); +wireProperty("__instance", (component) => component); +wireProperty("$get", (component) => (property, reactive = true) => dataGet(reactive ? component.reactive : component.ephemeral, property)); +wireProperty("$el", (component) => { + return component.el; +}); +wireProperty("$id", (component) => { + return component.id; +}); +wireProperty("$js", (component) => { + let fn = component.addJsAction.bind(component); + let jsActions = component.getJsActions(); + Object.keys(jsActions).forEach((name) => { + fn[name] = jsActions[name]; + }); + return new Proxy(fn, { + set(target, property, value) { + component.addJsAction(property, value); + return true; + }, + get(target, property) { + if (assetIsPendingFor(component)) { + let resolver = null; + let promise = new Promise((resolve) => { + resolver = resolve; + }); + return (...params) => { + runAfterAssetIsLoadedFor(component, () => { + resolver(component.getJsAction(property)(...params)); + }); + return promise; + }; + } + return target[property]; + } + }); +}); +wireProperty("$set", (component) => async (property, value, live = true) => { + dataSet(component.reactive, property, value); + if (live) { + component.queueUpdate(property, value); + return fireAction(component, "$set"); + } + return Promise.resolve(); +}); +wireProperty("$refs", (component) => { + let fn = (name) => findRefEl(component, name); + return new Proxy(fn, { + get(target, property) { + if (property in target) { + return target[property]; + } + return fn(property); + } + }); +}); +wireProperty("$dirty", (component) => (property) => { + let reactive = import_alpinejs3.default.reactive({ dirty: false }); + interceptComponentMessage(component, ({ onFinish }) => { + onFinish(() => { + queueMicrotask(() => { + reactive.dirty = checkDirty(component, property); + }); + }); + }); + import_alpinejs3.default.effect(() => { + reactive.dirty = checkDirty(component, property); + }); + return reactive.dirty; +}); +wireProperty("$intercept", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentAction(component, actionNameOrCallback, maybeCallback); +}); +wireProperty("$interceptAction", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentAction(component, actionNameOrCallback, maybeCallback); +}); +wireProperty("$interceptMessage", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentMessage(component, actionNameOrCallback, maybeCallback); +}); +wireProperty("$interceptRequest", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentRequest(component, actionNameOrCallback, maybeCallback); +}); +wireProperty("$errors", (component) => getErrorsObject(component)); +wireProperty("$call", (component) => async (method, ...params) => { + return await component.$wire[method](...params); +}); +wireProperty("$island", (component) => (name, options = {}) => { + setNextActionMetadata({ island: { name, mode: "morph", ...options } }); + return component.$wire; +}); +wireProperty("$entangle", (component) => (name, live = false) => { + return generateEntangleFunction(component)(name, live); +}); +wireProperty("$toggle", (component) => (name, live = true) => { + return component.$wire.set(name, !component.$wire.get(name), live); +}); +wireProperty("$watch", (component) => (path, callback) => { + let getter = () => { + return dataGet(component.reactive, path); + }; + let unwatch = import_alpinejs3.default.watch(getter, callback); + component.addCleanup(unwatch); + return unwatch; +}); +wireProperty("$effect", (component) => (callback) => { + let effect = import_alpinejs3.default.effect(callback); + component.addCleanup(effect); + return effect; +}); +wireProperty("$refresh", (component) => async () => { + return fireAction(component, "$refresh"); +}); +wireProperty("$commit", (component) => async () => { + return fireAction(component, "$commit"); +}); +wireProperty("$on", (component) => (...params) => listen2(component, ...params)); +wireProperty("$hook", (component) => (name, callback) => { + let unhook = on(name, ({ component: hookComponent, ...params }) => { + if (hookComponent === void 0) + return callback(params); + if (hookComponent.id === component.id) + return callback({ component: hookComponent, ...params }); + }); + component.addCleanup(unhook); + return unhook; +}); +wireProperty("$dispatch", (component) => (...params) => dispatch2(component, ...params)); +wireProperty("$dispatchSelf", (component) => (...params) => dispatchSelf(component, ...params)); +wireProperty("$dispatchTo", () => (...params) => dispatchTo(...params)); +wireProperty("$dispatchEl", (component) => (...params) => dispatchEl(component, ...params)); +wireProperty("$dispatchRef", (component) => (...params) => dispatchRef(component, ...params)); +wireProperty("$upload", (component) => (...params) => upload(component, ...params)); +wireProperty("$uploadMultiple", (component) => (...params) => uploadMultiple(component, ...params)); +wireProperty("$removeUpload", (component) => (...params) => removeUpload(component, ...params)); +wireProperty("$cancelUpload", (component) => (...params) => cancelUpload(component, ...params)); +var parentMemo = /* @__PURE__ */ new WeakMap(); +wireProperty("$parent", (component) => { + if (parentMemo.has(component)) + return parentMemo.get(component).$wire; + let parent = findComponentByEl(component.el.parentElement, false); + if (!parent) + return; + parentMemo.set(component, parent); + return parent.$wire; +}); +var overriddenMethods = /* @__PURE__ */ new WeakMap(); +function overrideMethod(component, method, callback) { + if (!overriddenMethods.has(component)) { + overriddenMethods.set(component, {}); + } + let obj = overriddenMethods.get(component); + obj[method] = callback; + overriddenMethods.set(component, obj); +} +wireFallback((component) => (property) => (...params) => { + if (params.length === 1 && params[0] instanceof Event) { + params = []; + } + if (overriddenMethods.has(component)) { + let overrides = overriddenMethods.get(component); + if (typeof overrides[property] === "function") { + return overrides[property](params); + } + } + return fireAction(component, property, params); +}); + +// js/component.js +var Component = class { + constructor(el) { + if (el.__livewire) + throw "Component already initialized"; + el.__livewire = this; + this.el = el; + this.id = el.getAttribute("wire:id"); + this.key = el.getAttribute("wire:key"); + this.__livewireId = this.id; + this.snapshotEncoded = el.getAttribute("wire:snapshot"); + this.snapshot = JSON.parse(this.snapshotEncoded); + if (!this.snapshot) { + throw `Snapshot missing on Livewire component with id: ` + this.id; + } + this.name = this.snapshot.memo.name; + this.effects = JSON.parse(el.getAttribute("wire:effects")); + this.originalEffects = deepClone(this.effects); + this.canonical = extractData(deepClone(this.snapshot.data)); + this.ephemeral = extractData(deepClone(this.snapshot.data)); + this.reactive = Alpine.reactive(this.ephemeral); + this.queuedUpdates = {}; + this.jsActions = {}; + this.$wire = generateWireObject(this, this.reactive); + el.$wire = this.$wire; + this.cleanups = []; + this.processEffects(this.effects); + } + addActionContext(context) { + if (context.el || context.directive) { + setNextActionOrigin({ + el: context.el, + directive: context.directive + }); + } + } + intercept(action, callback = null) { + return this.$wire.$intercept(action, callback); + } + mergeNewSnapshot(snapshotEncoded, effects, updates = {}) { + let snapshot = JSON.parse(snapshotEncoded); + let oldCanonical = deepClone(this.canonical); + let updatedOldCanonical = this.applyUpdates(oldCanonical, updates); + let newCanonical = extractData(deepClone(snapshot.data)); + let dirty = diff(updatedOldCanonical, newCanonical); + this.snapshotEncoded = snapshotEncoded; + this.snapshot = snapshot; + this.effects = effects; + this.canonical = extractData(deepClone(snapshot.data)); + let newData = extractData(deepClone(snapshot.data)); + diffAndPatchRecursive(updatedOldCanonical, newData, this.reactive); + return dirty; + } + queueUpdate(propertyName, value) { + this.queuedUpdates[propertyName] = value; + } + mergeQueuedUpdates(diff2) { + Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => { + Object.entries(diff2).forEach(([diffKey, diffValue]) => { + if (diffKey.startsWith(updateKey)) { + delete diff2[diffKey]; + } + }); + diff2[updateKey] = updateValue; + }); + this.queuedUpdates = []; + return diff2; + } + getUpdates() { + let propertiesDiff = diffAndConsolidate(this.canonical, this.ephemeral); + return this.mergeQueuedUpdates(propertiesDiff); + } + applyUpdates(object, updates) { + for (let key in updates) { + dataSet(object, key, updates[key]); + } + return object; + } + replayUpdate(snapshot, html) { + let effects = { ...this.effects, html }; + this.mergeNewSnapshot(JSON.stringify(snapshot), effects); + this.processEffects({ html }); + } + processEffects(effects, request) { + trigger("effects", this, effects); + trigger("effect", { + component: this, + effects, + cleanup: (i) => this.addCleanup(i), + request + }); + } + get children() { + let componentEl = this.el; + let children = []; + componentEl.querySelectorAll("[wire\\:id]").forEach((el) => { + let parentComponentEl = el.parentElement.closest("[wire\\:id]"); + if (parentComponentEl !== componentEl) + return; + let componentInstance = el.__livewire; + if (!componentInstance) + return; + children.push(componentInstance); + }); + return children; + } + get islands() { + let islands = this.snapshot.memo.islands; + return islands; + } + get parent() { + return findComponentByEl(this.el.parentElement); + } + get isIsolated() { + return this.snapshot.memo.isolate; + } + get isLazy() { + return this.snapshot.memo.lazyLoaded !== void 0; + } + get hasBeenLazyLoaded() { + return this.snapshot.memo.lazyLoaded === true; + } + get isLazyIsolated() { + return !!this.snapshot.memo.lazyIsolated; + } + getDeepChildrenWithBindings(callback) { + this.getDeepChildren((child) => { + if (child.isLazy && !child.hasBeenLazyLoaded) + return; + if (child.hasReactiveProps() || child.hasWireModelableBindings()) { + callback(child); + } + }); + } + hasReactiveProps() { + let meta = this.snapshot.memo; + let props = meta.props; + return !!props; + } + hasWireModelableBindings() { + let meta = this.snapshot.memo; + let bindings = meta.bindings; + return !!bindings; + } + getDeepChildren(callback) { + this.children.forEach((child) => { + callback(child); + child.getDeepChildren(callback); + }); + } + getEncodedSnapshotWithLatestChildrenMergedIn() { + let { snapshotEncoded, children, snapshot } = this; + let childrenMemo = {}; + children.forEach((child) => { + childrenMemo[child.key] = [child.el.tagName.toLowerCase(), child.id]; + }); + return snapshotEncoded.replace( + /"children":\{[^}]*\}/, + `"children":${JSON.stringify(childrenMemo)}` + ); + } + inscribeSnapshotAndEffectsOnElement() { + let el = this.el; + el.setAttribute("wire:snapshot", this.snapshotEncoded); + let effects = this.originalEffects.listeners ? { listeners: this.originalEffects.listeners } : {}; + if (this.originalEffects.url) { + effects.url = this.originalEffects.url; + } + if (this.originalEffects.scripts) { + effects.scripts = this.originalEffects.scripts; + } + el.setAttribute("wire:effects", JSON.stringify(effects)); + el.setAttribute("wire:key", this.key); + } + addJsAction(name, action) { + this.jsActions[name] = action; + } + hasJsAction(name) { + return this.jsActions[name] !== void 0; + } + getJsAction(name) { + return this.jsActions[name].bind(this.$wire); + } + getJsActions() { + let actions = {}; + for (let key of Object.keys(this.jsActions)) { + actions[key] = this.getJsAction(key); + } + return actions; + } + toJSON() { + return { + id: this.id, + name: this.name, + key: this.key, + data: Object.fromEntries(Object.entries(this.ephemeral)) + }; + } + addCleanup(cleanup) { + this.cleanups.push(cleanup); + } + cleanup() { + delete this.el.__livewire; + while (this.cleanups.length > 0) { + this.cleanups.pop()(); + } + } +}; + +// js/fragment.js +function closestFragment(el, { isMatch, hasReachedBoundary }) { + if (!hasReachedBoundary) + hasReachedBoundary = () => false; + let current = el; + while (current) { + let sibling = current.previousSibling; + let foundEndMarker = []; + while (sibling) { + if (isEndFragmentMarker(sibling)) { + foundEndMarker.push("a"); + } + if (isStartFragmentMarker(sibling)) { + if (foundEndMarker.length > 0) { + foundEndMarker.pop(); + } else { + let metadata = extractFragmentMetadataFromMarkerNode(sibling); + if (isMatch(metadata)) { + return new Fragment(sibling); + } + } + } + sibling = sibling.previousSibling; + } + current = current.parentElement; + if (current && hasReachedBoundary({ el: current })) { + break; + } + } + return null; +} +function findFragment(el, { isMatch, hasReachedBoundary }) { + if (!hasReachedBoundary) + hasReachedBoundary = () => false; + let startNode = null; + let rootEl = el; + walkElements(rootEl, (el2, { skip, stop }) => { + if (el2.hasAttribute && el2 !== rootEl && hasReachedBoundary({ el: el2 })) { + return skip(); + } + Array.from(el2.childNodes).forEach((node) => { + if (isStartFragmentMarker(node)) { + let metadata = extractFragmentMetadataFromMarkerNode(node); + if (isMatch(metadata)) { + startNode = node; + stop(); + } + } + }); + }); + return startNode && new Fragment(startNode); +} +function isStartFragmentMarker(el) { + return el.nodeType === 8 && el.textContent.startsWith("[if FRAGMENT"); +} +function isEndFragmentMarker(el) { + return el.nodeType === 8 && el.textContent.startsWith("[if ENDFRAGMENT"); +} +function walkElements(el, callback) { + let skip = false; + let stop = false; + callback(el, { skip: () => skip = true, stop: () => stop = true }); + if (skip || stop) + return; + Array.from(el.children).forEach((child) => { + walkElements(child, callback); + if (stop) + return; + }); +} +var Fragment = class { + constructor(startMarkerNode) { + this.startMarkerNode = startMarkerNode; + this.metadata = extractFragmentMetadataFromMarkerNode(startMarkerNode); + } + get endMarkerNode() { + return findMatchingEndMarkerNode(this.startMarkerNode, this.metadata); + } + append(mountContainerTagName, html) { + let container = document.createElement(mountContainerTagName); + container.innerHTML = html; + Array.from(container.childNodes).forEach((node) => { + this.endMarkerNode.before(node); + }); + } + prepend(mountContainerTagName, html) { + let container = document.createElement(mountContainerTagName); + container.innerHTML = html; + Array.from(container.childNodes).reverse().forEach((node) => { + this.startMarkerNode.after(node); + }); + } +}; +function findMatchingEndMarkerNode(startMarkerNode, metadata) { + let current = startMarkerNode; + while (current) { + if (isEndFragmentMarker(current)) { + let currentMetadata = extractFragmentMetadataFromMarkerNode(current); + if (Object.keys(metadata).every((key) => metadata[key] === currentMetadata[key])) { + return current; + } + } + current = current.nextSibling; + } + return null; +} +function extractInnerHtmlFromFragmentHtml(fragmentHtml) { + let regex = /<!--\[if FRAGMENT\b.*?\]><!\[endif\]-->([\s\S]*)<!--\[if ENDFRAGMENT\b.*?\]><!\[endif\]-->/i; + let match = fragmentHtml.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, html] = match; + return html; +} +function extractFragmentMetadataFromHtml(fragmentHtml) { + let regex = /\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/; + let match = fragmentHtml.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, __, encodedMetadata] = match; + return decodeMetadata(encodedMetadata); +} +function extractFragmentMetadataFromMarkerNode(startMarkerNode) { + let regex = /\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/; + let match = startMarkerNode.textContent.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, __, encodedMetadata] = match; + return decodeMetadata(encodedMetadata); +} +function decodeMetadata(encodedMetadata) { + let metadata = {}; + let pairs = encodedMetadata.split("|"); + pairs.forEach((pair) => { + let [key, value] = pair.split("="); + metadata[key] = value; + }); + return metadata; +} + +// js/store.js +var components = {}; +function initComponent(el) { + let component = new Component(el); + if (components[component.id]) + throw "Component already registered"; + let cleanup = (i) => component.addCleanup(i); + trigger("component.init", { component, cleanup }); + components[component.id] = component; + return component; +} +function destroyComponent(id) { + let component = components[id]; + if (!component) + return; + component.cleanup(); + delete components[id]; +} +function hasComponent(id) { + return !!components[id]; +} +function findComponent(id, strict = true) { + let component = components[id]; + if (!component) { + if (strict) + throw "Component not found: " + id; + return; + } + return component; +} +function findComponentByEl(el, strict = true) { + let componentId = walkUpwards(el, (node, { stop }) => { + if (node.__livewire) + return stop(node.__livewire.id); + let endMarkers = []; + let slotParentId = walkBackwards(node, (siblingNode, { stop: stop2 }) => { + if (isEndFragmentMarker(siblingNode)) { + let metadata = extractFragmentMetadataFromMarkerNode(siblingNode); + if (metadata.type !== "slot") + return; + endMarkers.push("a"); + return; + } + if (isStartFragmentMarker(siblingNode)) { + let metadata = extractFragmentMetadataFromMarkerNode(siblingNode); + if (metadata.type !== "slot") + return; + if (endMarkers.length > 0) { + endMarkers.pop(); + } else { + return stop2(metadata.parent); + } + } + }); + if (slotParentId) + return stop(slotParentId); + }); + let component = findComponent(componentId, strict); + if (!component) { + if (strict) + throw "Could not find Livewire component in DOM tree"; + return; + } + return component; +} +function componentsByName(name) { + return Object.values(components).filter((component) => { + return name == component.name; + }); +} +function getByName(name) { + return componentsByName(name).map((i) => i.$wire); +} +function find(id) { + let component = components[id]; + return component && component.$wire; +} +function first() { + return Object.values(components)[0].$wire; +} +function all() { + return Object.values(components); +} + +// js/events.js +function dispatch2(component, name, params) { + dispatchEvent(component.el, name, params); +} +function dispatchGlobal(name, params) { + dispatchEvent(window, name, params); +} +function dispatchSelf(component, name, params) { + dispatchEvent(component.el, name, params, false); +} +function dispatchEl(component, selector, name, params) { + let targets = component.el.querySelectorAll(selector); + targets.forEach((target) => { + dispatchEvent(target, name, params, false); + }); +} +function dispatchTo(componentName, name, params) { + let targets = componentsByName(componentName); + targets.forEach((target) => { + dispatchEvent(target.el, name, params, false); + }); +} +function dispatchRef(component, ref, name, params) { + let el = findRefEl(component, ref); + dispatchEvent(el, name, params, false); +} +function listen2(component, name, callback) { + component.el.addEventListener(name, (e) => { + callback(e.detail); + }); +} +function on2(eventName, callback) { + let handler = (e) => { + if (!e.__livewire) + return; + callback(e.detail); + }; + window.addEventListener(eventName, handler); + return () => { + window.removeEventListener(eventName, handler); + }; +} +function dispatchEvent(target, name, params, bubbles = true) { + if (typeof params === "string") { + params = [params]; + } + let e = new CustomEvent(name, { bubbles, detail: params }); + e.__livewire = { name, params, receivedBy: [] }; + target.dispatchEvent(e); +} + +// js/lifecycle.js +var import_collapse = __toESM(require_module_cjs2()); +var import_focus = __toESM(require_module_cjs3()); + +// node_modules/@alpinejs/persist/dist/module.esm.js +function src_default(Alpine25) { + let persist = () => { + let alias; + let storage; + try { + storage = localStorage; + } catch (e) { + console.error(e); + console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable."); + let dummy = /* @__PURE__ */ new Map(); + storage = { + getItem: dummy.get.bind(dummy), + setItem: dummy.set.bind(dummy) + }; + } + return Alpine25.interceptor((initialValue, getter, setter, path, key) => { + let lookup = alias || `_x_${path}`; + let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue; + setter(initial); + Alpine25.effect(() => { + let value = getter(); + storageSet(lookup, value, storage); + setter(value); + }); + return initial; + }, (func) => { + func.as = (key) => { + alias = key; + return func; + }, func.using = (target) => { + storage = target; + return func; + }; + }); + }; + Object.defineProperty(Alpine25, "$persist", { get: () => persist() }); + Alpine25.magic("persist", persist); + Alpine25.persist = (key, { get, set }, storage = localStorage) => { + let initial = storageHas(key, storage) ? storageGet(key, storage) : get(); + set(initial); + Alpine25.effect(() => { + let value = get(); + storageSet(key, value, storage); + set(value); + }); + }; +} +function storageHas(key, storage) { + return storage.getItem(key) !== null; +} +function storageGet(key, storage) { + let value = storage.getItem(key); + if (value === void 0) + return; + return JSON.parse(value); +} +function storageSet(key, value, storage) { + storage.setItem(key, JSON.stringify(value)); +} +var module_default = src_default; + +// js/lifecycle.js +var import_intersect = __toESM(require_module_cjs4()); +var import_sort = __toESM(require_module_cjs5()); +var import_resize = __toESM(require_module_cjs6()); +var import_anchor = __toESM(require_module_cjs7()); + +// js/plugins/history/utils.js +function unwrap(object) { + if (object === void 0) + return void 0; + return JSON.parse(JSON.stringify(object)); +} +function batch(callback) { + let batch2 = { + queued: false, + updates: {}, + add(updates) { + Object.assign(batch2.updates, updates); + if (batch2.queued) + return; + batch2.queued = true; + queueMicrotask(batch2.flush); + }, + flush() { + if (Object.keys(batch2.updates).length) { + callback(batch2.updates); + } + batch2.queued = false; + batch2.updates = {}; + } + }; + return batch2; +} + +// js/plugins/history/coordinator.js +var HistoryCoordinator = class { + constructor() { + this.url = null; + this.errorHandlers = {}; + this.batch = batch((updates) => { + let url = this.getUrl(); + this.writeToHistory("replaceState", url, (state) => { + state.alpine = { ...state.alpine, ...unwrap(updates) }; + return state; + }); + this.url = null; + }); + } + addErrorHandler(key, callback) { + this.errorHandlers[key] = callback; + } + getUrl() { + if (this.url) { + if (this.url instanceof URL) + this.url.hash = window.location.hash; + return this.url; + } + return new URL(window.location.href); + } + replaceState(url, updates) { + this.url = url; + this.batch.add(updates); + } + pushState(url, updates) { + this.batch.flush(); + this.writeToHistory("pushState", url, (state) => { + state = { alpine: { ...state.alpine, ...unwrap(updates) } }; + return state; + }); + } + writeToHistory(method, url, callback) { + let state = window.history.state || {}; + if (!state.alpine) + state.alpine = {}; + state = callback(state); + try { + window.history[method](state, "", url.toString()); + } catch (error2) { + Object.values(this.errorHandlers).forEach( + (handler) => typeof handler === "function" && handler(error2, url) + ); + this.errorHandlers = {}; + console.error(error2); + } + } +}; +var historyCoordinator = new HistoryCoordinator(); +var coordinator_default = historyCoordinator; + +// js/plugins/navigate/history.js +var Snapshot = class { + constructor(url, html) { + this.url = url; + this.html = html; + } +}; +var snapshotCache = { + currentKey: null, + currentUrl: null, + keys: [], + lookup: {}, + limit: 10, + has(location) { + return this.lookup[location] !== void 0; + }, + retrieve(location) { + let snapshot = this.lookup[location]; + if (snapshot === void 0) + throw "No back button cache found for current location: " + location; + return snapshot; + }, + replace(key, snapshot) { + if (this.has(key)) { + this.lookup[key] = snapshot; + } else { + this.push(key, snapshot); + } + }, + push(key, snapshot) { + this.lookup[key] = snapshot; + let index = this.keys.indexOf(key); + if (index > -1) + this.keys.splice(index, 1); + this.keys.unshift(key); + this.trim(); + }, + trim() { + for (let key of this.keys.splice(this.limit)) { + delete this.lookup[key]; + } + } +}; +var currentPageStatus = null; +function storeCurrentPageStatus(status) { + currentPageStatus = status; +} +function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() { + let url = coordinator_default.getUrl(); + replaceUrl(url, document.documentElement.outerHTML); +} +function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(key, url) { + let html = document.documentElement.outerHTML; + snapshotCache.replace(key, new Snapshot(url, html)); +} +function whenTheBackOrForwardButtonIsClicked(registerFallback, handleHtml) { + let fallback2; + registerFallback((i) => fallback2 = i); + window.addEventListener("popstate", (e) => { + let state = e.state || {}; + let alpine = state.alpine || {}; + if (currentPageStatus && (currentPageStatus < 200 || currentPageStatus >= 300)) { + return window.location.href = alpine.url; + } + if (Object.keys(state).length === 0) + return; + if (!alpine.snapshotIdx) + return; + if (snapshotCache.has(alpine.snapshotIdx)) { + let snapshot = snapshotCache.retrieve(alpine.snapshotIdx); + handleHtml(snapshot.html, snapshot.url, snapshotCache.currentUrl, snapshotCache.currentKey); + snapshotCache.currentKey = alpine.snapshotIdx; + snapshotCache.currentUrl = snapshot.url; + } else { + snapshotCache.currentKey = null; + snapshotCache.currentUrl = null; + fallback2(alpine.url); + } + }); +} +function updateUrlAndStoreLatestHtmlForFutureBackButtons(html, destination) { + pushUrl(destination, html); +} +function pushUrl(url, html) { + updateUrl("pushState", url, html); +} +function replaceUrl(url, html) { + updateUrl("replaceState", url, html); +} +function updateUrl(method, url, html) { + let key = url.toString() + "-" + Math.random(); + method === "pushState" ? snapshotCache.push(key, new Snapshot(url, html)) : snapshotCache.replace(key = snapshotCache.currentKey ?? key, new Snapshot(url, html)); + coordinator_default.addErrorHandler("navigate", (error2) => { + if (error2 instanceof DOMException && error2.name === "SecurityError") { + console.error( + "Livewire: You can't use wire:navigate with a link to a different root domain: " + url + ); + } + }); + coordinator_default[method](url, { snapshotIdx: key, url: url.toString() }); + snapshotCache.currentKey = key; + snapshotCache.currentUrl = url; +} + +// js/plugins/navigate/links.js +function whenThisLinkIsPressed(el, callback) { + let isProgrammaticClick = (e) => !e.isTrusted; + let isNotPlainLeftClick = (e) => e.which > 1 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey; + let isNotPlainEnterKey = (e) => e.which !== 13 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey; + el.addEventListener("click", (e) => { + if (isProgrammaticClick(e)) { + e.preventDefault(); + callback((whenReleased) => whenReleased()); + return; + } + if (isNotPlainLeftClick(e)) + return; + e.preventDefault(); + }); + el.addEventListener("mousedown", (e) => { + if (isNotPlainLeftClick(e)) + return; + e.preventDefault(); + callback((whenReleased) => { + let handler = (e2) => { + e2.preventDefault(); + requestAnimationFrame(() => { + whenReleased(); + }); + el.removeEventListener("mouseup", handler); + }; + el.addEventListener("mouseup", handler); + }); + }); + el.addEventListener("keydown", (e) => { + if (isNotPlainEnterKey(e)) + return; + e.preventDefault(); + callback((whenReleased) => whenReleased()); + }); +} +function whenThisLinkIsHoveredFor(el, ms = 60, callback) { + el.addEventListener("mouseenter", (e) => { + let timeout = setTimeout(() => { + callback(e); + }, ms); + let handler = () => { + clearTimeout(timeout); + el.removeEventListener("mouseleave", handler); + }; + el.addEventListener("mouseleave", handler); + }); +} +function extractDestinationFromLink(linkEl) { + return createUrlObjectFromString2(linkEl.getAttribute("href")); +} +function createUrlObjectFromString2(urlString) { + return urlString !== null && new URL(urlString, document.baseURI); +} +function getUriStringFromUrlObject(urlObject) { + return urlObject.pathname + urlObject.search + urlObject.hash; +} + +// js/plugins/navigate/fetch.js +function fetchHtml(destination, callback, errorCallback) { + let uri = getUriStringFromUrlObject(destination); + performFetch(uri, (html, finalDestination, status) => { + storeCurrentPageStatus(status); + callback(html, finalDestination); + }, errorCallback); +} +function performFetch(uri, callback, errorCallback) { + sendNavigateRequest(uri, callback, errorCallback); +} + +// js/plugins/navigate/prefetch.js +var prefetches = {}; +var cacheDuration = 3e4; +function prefetchHtml(destination, callback, errorCallback) { + let uri = getUriStringFromUrlObject(destination); + if (prefetches[uri]) + return; + prefetches[uri] = { finished: false, html: null, whenFinished: () => setTimeout(() => delete prefetches[uri], cacheDuration) }; + performFetch(uri, (html, routedUri, status) => { + storeCurrentPageStatus(status); + callback(html, routedUri); + }, () => { + delete prefetches[uri]; + errorCallback(); + }); +} +function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination) { + let state = prefetches[getUriStringFromUrlObject(destination)]; + state.html = html; + state.finished = true; + state.finalDestination = finalDestination; + state.whenFinished(); +} +function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) { + let uri = getUriStringFromUrlObject(destination); + if (!prefetches[uri]) + return ifNoPrefetchExists(); + if (prefetches[uri].finished) { + let html = prefetches[uri].html; + let finalDestination = prefetches[uri].finalDestination; + delete prefetches[uri]; + return receive(html, finalDestination); + } else { + prefetches[uri].whenFinished = () => { + let html = prefetches[uri].html; + let finalDestination = prefetches[uri].finalDestination; + delete prefetches[uri]; + receive(html, finalDestination); + }; + } +} + +// js/plugins/navigate/teleport.js +var import_alpinejs4 = __toESM(require_module_cjs()); +function packUpPersistedTeleports(persistedEl) { + import_alpinejs4.default.mutateDom(() => { + persistedEl.querySelectorAll("[data-teleport-template]").forEach((i) => i._x_teleport.remove()); + }); +} +function removeAnyLeftOverStaleTeleportTargets(body) { + import_alpinejs4.default.mutateDom(() => { + body.querySelectorAll("[data-teleport-target]").forEach((i) => i.remove()); + }); +} +function unPackPersistedTeleports(persistedEl) { + import_alpinejs4.default.walk(persistedEl, (el, skip) => { + if (!el._x_teleport) + return; + el._x_teleportPutBack(); + skip(); + }); +} +function isTeleportTarget(el) { + return el.hasAttribute("data-teleport-target"); +} + +// js/plugins/navigate/scroll.js +function storeScrollInformationInHtmlBeforeNavigatingAway() { + document.body.setAttribute("data-scroll-x", document.body.scrollLeft); + document.body.setAttribute("data-scroll-y", document.body.scrollTop); + document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:navigate\\:scroll]"]).forEach((el) => { + el.setAttribute("data-scroll-x", el.scrollLeft); + el.setAttribute("data-scroll-y", el.scrollTop); + }); +} +function restoreScrollPositionOrScrollToTop() { + let scroll = (el) => { + if (!el.hasAttribute("data-scroll-x")) { + window.scrollTo({ top: 0, left: 0, behavior: "instant" }); + } else { + el.scrollTo({ + top: Number(el.getAttribute("data-scroll-y")), + left: Number(el.getAttribute("data-scroll-x")), + behavior: "instant" + }); + el.removeAttribute("data-scroll-x"); + el.removeAttribute("data-scroll-y"); + } + }; + queueMicrotask(() => { + queueMicrotask(() => { + scroll(document.body); + document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:navigate\\:scroll]"]).forEach(scroll); + }); + }); +} + +// js/plugins/navigate/persist.js +var import_alpinejs5 = __toESM(require_module_cjs()); +var els = {}; +function storePersistantElementsForLater(callback) { + els = {}; + document.querySelectorAll("[x-persist]").forEach((i) => { + els[i.getAttribute("x-persist")] = i; + callback(i); + import_alpinejs5.default.mutateDom(() => { + i.remove(); + }); + }); +} +function putPersistantElementsBack(callback) { + let usedPersists = []; + document.querySelectorAll("[x-persist]").forEach((i) => { + let old = els[i.getAttribute("x-persist")]; + if (!old) + return; + usedPersists.push(i.getAttribute("x-persist")); + old._x_wasPersisted = true; + callback(old, i); + import_alpinejs5.default.mutateDom(() => { + i.replaceWith(old); + }); + }); + Object.entries(els).forEach(([key, el]) => { + if (usedPersists.includes(key)) + return; + import_alpinejs5.default.destroyTree(el); + }); + els = {}; +} +function isPersistedElement(el) { + return el.hasAttribute("x-persist"); +} + +// js/plugins/navigate/bar.js +var import_nprogress = __toESM(require_nprogress()); +import_nprogress.default.configure({ + minimum: 0.1, + trickleSpeed: 200, + showSpinner: false, + parent: "body" +}); +injectStyles(); +var inProgress = false; +function showAndStartProgressBar() { + inProgress = true; + setTimeout(() => { + if (!inProgress) + return; + import_nprogress.default.start(); + }, 150); +} +function finishAndHideProgressBar() { + inProgress = false; + import_nprogress.default.done(); +} +function removeAnyLeftOverStaleProgressBars() { + import_nprogress.default.remove(); +} +function injectStyles() { + let style = document.createElement("style"); + style.innerHTML = `/* Make clicks pass-through */ + + #nprogress { + pointer-events: none; + } + + #nprogress .bar { + background: var(--livewire-progress-bar-color, #29d); + + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; + } + + /* Fancy blur effect */ + #nprogress .peg { + display: block; + position: absolute; + right: 0px; + width: 100px; + height: 100%; + box-shadow: 0 0 10px var(--livewire-progress-bar-color, #29d), 0 0 5px var(--livewire-progress-bar-color, #29d); + opacity: 1.0; + + -webkit-transform: rotate(3deg) translate(0px, -4px); + -ms-transform: rotate(3deg) translate(0px, -4px); + transform: rotate(3deg) translate(0px, -4px); + } + + /* Remove these to get rid of the spinner */ + #nprogress .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 15px; + right: 15px; + } + + #nprogress .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + + border: solid 2px transparent; + border-top-color: var(--livewire-progress-bar-color, #29d); + border-left-color: var(--livewire-progress-bar-color, #29d); + border-radius: 50%; + + -webkit-animation: nprogress-spinner 400ms linear infinite; + animation: nprogress-spinner 400ms linear infinite; + } + + .nprogress-custom-parent { + overflow: hidden; + position: relative; + } + + .nprogress-custom-parent #nprogress .spinner, + .nprogress-custom-parent #nprogress .bar { + position: absolute; + } + + @-webkit-keyframes nprogress-spinner { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); } + } + @keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + `; + let nonce2 = getNonce(); + if (nonce2) + style.nonce = nonce2; + document.head.appendChild(style); +} + +// js/plugins/navigate/popover.js +function packUpPersistedPopovers(persistedEl) { + if (!isPopoverSupported()) + return; + persistedEl.querySelectorAll(":popover-open").forEach((el) => { + el.setAttribute("data-navigate-popover-open", ""); + let animations = el.getAnimations(); + el._pausedAnimations = animations.map((animation) => ({ + keyframes: animation.effect.getKeyframes(), + options: { + duration: animation.effect.getTiming().duration, + easing: animation.effect.getTiming().easing, + fill: animation.effect.getTiming().fill, + iterations: animation.effect.getTiming().iterations + }, + currentTime: animation.currentTime, + playState: animation.playState + })); + animations.forEach((i) => i.pause()); + }); +} +function unPackPersistedPopovers(persistedEl) { + if (!isPopoverSupported()) + return; + persistedEl.querySelectorAll("[data-navigate-popover-open]").forEach((el) => { + el.removeAttribute("data-navigate-popover-open"); + queueMicrotask(() => { + if (!el.isConnected) + return; + el.showPopover(); + el.getAnimations().forEach((i) => i.finish()); + if (el._pausedAnimations) { + el._pausedAnimations.forEach(({ keyframes, options, currentTime, now, playState }) => { + let animation = el.animate(keyframes, options); + animation.currentTime = currentTime; + }); + delete el._pausedAnimations; + } + }); + }); +} +function isPopoverSupported() { + return typeof document.createElement("div").showPopover === "function"; +} + +// js/plugins/navigate/page.js +var oldBodyScriptTagHashes = []; +var attributesExemptFromScriptTagHashing = [ + "data-csrf", + "nonce", + "aria-hidden" +]; +function swapCurrentPageWithNewHtml(html, andThen) { + html = replaceNoncesInHtml(html); + let newDocument = new DOMParser().parseFromString(html, "text/html"); + let newHtml = newDocument.documentElement; + let newBody = document.adoptNode(newDocument.body); + let newHead = document.adoptNode(newDocument.head); + oldBodyScriptTagHashes = oldBodyScriptTagHashes.concat(Array.from(document.body.querySelectorAll("script")).map((i) => { + return simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)); + })); + let afterRemoteScriptsHaveLoaded = () => { + }; + replaceHtmlAttributes(newHtml); + mergeNewHead(newHead).finally(() => { + afterRemoteScriptsHaveLoaded(); + }); + prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes); + let oldBody = document.body; + document.body.replaceWith(newBody); + Alpine.destroyTree(oldBody); + andThen((i) => afterRemoteScriptsHaveLoaded = i); +} +function prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes2) { + newBody.querySelectorAll("script").forEach((i) => { + if (i.hasAttribute("data-navigate-once")) { + let hash = simpleHash( + ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing) + ); + if (oldBodyScriptTagHashes2.includes(hash)) + return; + } + i.replaceWith(cloneScriptTag(i)); + }); +} +function replaceHtmlAttributes(newHtmlElement) { + let currentHtmlElement = document.documentElement; + Array.from(newHtmlElement.attributes).forEach((attr) => { + const name = attr.name; + const value = attr.value; + if (currentHtmlElement.getAttribute(name) !== value) { + currentHtmlElement.setAttribute(name, value); + } + }); + Array.from(currentHtmlElement.attributes).forEach((attr) => { + if (!newHtmlElement.hasAttribute(attr.name)) { + currentHtmlElement.removeAttribute(attr.name); + } + }); +} +function mergeNewHead(newHead) { + let children = Array.from(document.head.children); + let headChildrenHtmlLookup = children.map( + (i) => ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing) + ); + let garbageCollector = document.createDocumentFragment(); + let touchedHeadElements = []; + let remoteScriptsPromises = []; + for (let child of Array.from(newHead.children)) { + if (isAsset(child)) { + let childHtml = ignoreAttributes(child.outerHTML, attributesExemptFromScriptTagHashing); + if (!headChildrenHtmlLookup.includes(childHtml)) { + if (isTracked(child)) { + if (ifTheQueryStringChangedSinceLastRequest(child, children)) { + setTimeout(() => window.location.reload()); + } + } + if (isScript(child)) { + try { + remoteScriptsPromises.push( + injectScriptTagAndWaitForItToFullyLoad( + cloneScriptTag(child) + ) + ); + } catch (error2) { + } + } else { + document.head.appendChild(child); + } + } else { + garbageCollector.appendChild(child); + } + touchedHeadElements.push(child); + } + } + for (let child of Array.from(document.head.children)) { + if (!isAsset(child)) + child.remove(); + } + for (let child of Array.from(newHead.children)) { + if (child.tagName.toLowerCase() === "noscript") + continue; + document.head.appendChild(child); + } + return Promise.all(remoteScriptsPromises); +} +async function injectScriptTagAndWaitForItToFullyLoad(script) { + return new Promise((resolve, reject) => { + if (script.src) { + script.onload = () => resolve(); + script.onerror = () => reject(); + } else { + resolve(); + } + document.head.appendChild(script); + }); +} +function isTracked(el) { + return el.hasAttribute("data-navigate-track"); +} +function ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) { + let [uri, queryString] = extractUriAndQueryString(el); + return currentHeadChildren.some((child) => { + if (!isTracked(child)) + return false; + let [currentUri, currentQueryString] = extractUriAndQueryString(child); + if (currentUri === uri && queryString !== currentQueryString) + return true; + }); +} +function extractUriAndQueryString(el) { + let url = isScript(el) ? el.src : el.href; + return url.split("?"); +} +function isAsset(el) { + return el.tagName.toLowerCase() === "link" && el.getAttribute("rel").toLowerCase() === "stylesheet" || el.tagName.toLowerCase() === "style" || el.tagName.toLowerCase() === "script"; +} +function isScript(el) { + return el.tagName.toLowerCase() === "script"; +} +function simpleHash(str) { + return str.split("").reduce((a, b) => { + a = (a << 5) - a + b.charCodeAt(0); + return a & a; + }, 0); +} +function ignoreAttributes(subject, attributesToRemove) { + let result = subject; + attributesToRemove.forEach((attr) => { + const regex = new RegExp(`${attr}="[^"]*"|${attr}='[^']*'`, "g"); + result = result.replace(regex, ""); + }); + result = result.replaceAll(" ", ""); + return result.trim(); +} + +// js/plugins/navigate/index.js +var enablePersist = true; +var showProgressBar = true; +var restoreScroll = true; +var autofocus = false; +function navigate_default(Alpine25) { + Alpine25.navigate = (url, options = {}) => { + let { preserveScroll = false } = options; + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { + url: destination, + history: false, + cached: false + }); + if (prevented) + return; + navigateTo(destination, { preserveScroll }); + }; + Alpine25.navigate.disableProgressBar = () => { + showProgressBar = false; + }; + Alpine25.addInitSelector(() => `[${Alpine25.prefixed("navigate")}]`); + Alpine25.directive("navigate", (el, { modifiers }) => { + let shouldPrefetchOnHover = modifiers.includes("hover"); + let preserveScroll = modifiers.includes("preserve-scroll"); + shouldPrefetchOnHover && whenThisLinkIsHoveredFor(el, 60, () => { + let destination = extractDestinationFromLink(el); + if (!destination) + return; + prefetchHtml(destination, (html, finalDestination) => { + storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination); + }, () => { + showProgressBar && finishAndHideProgressBar(); + }); + }); + whenThisLinkIsPressed(el, (whenItIsReleased) => { + let destination = extractDestinationFromLink(el); + if (!destination) + return; + prefetchHtml(destination, (html, finalDestination) => { + storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination); + }, () => { + showProgressBar && finishAndHideProgressBar(); + }); + whenItIsReleased(() => { + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { + url: destination, + history: false, + cached: false + }); + if (prevented) + return; + navigateTo(destination, { preserveScroll }); + }); + }); + }); + function navigateTo(destination, { preserveScroll = false, shouldPushToHistoryState = true }) { + showProgressBar && showAndStartProgressBar(); + fetchHtmlOrUsePrefetchedHtml(destination, (html, finalDestination) => { + let swapCallbacks = []; + fireEventForOtherLibrariesToHookInto("alpine:navigating", { + onSwap: (callback) => swapCallbacks.push(callback) + }); + restoreScroll && storeScrollInformationInHtmlBeforeNavigatingAway(); + cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement(); + shouldPushToHistoryState && updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks(); + preventAlpineFromPickingUpDomChanges(Alpine25, (andAfterAllThis) => { + enablePersist && storePersistantElementsForLater((persistedEl) => { + packUpPersistedTeleports(persistedEl); + packUpPersistedPopovers(persistedEl); + }); + if (shouldPushToHistoryState) { + updateUrlAndStoreLatestHtmlForFutureBackButtons(html, finalDestination); + } else { + replaceUrl(finalDestination, html); + } + swapCurrentPageWithNewHtml(html, (afterNewScriptsAreDoneLoading) => { + removeAnyLeftOverStaleTeleportTargets(document.body); + enablePersist && putPersistantElementsBack((persistedEl, newStub) => { + unPackPersistedTeleports(persistedEl); + unPackPersistedPopovers(persistedEl); + }); + !preserveScroll && restoreScrollPositionOrScrollToTop(); + swapCallbacks.forEach((callback) => callback()); + afterNewScriptsAreDoneLoading(() => { + andAfterAllThis(() => { + setTimeout(() => { + autofocus && autofocusElementsWithTheAutofocusAttribute(); + }); + nowInitializeAlpineOnTheNewPage(Alpine25); + fireEventForOtherLibrariesToHookInto("alpine:navigated"); + showProgressBar && finishAndHideProgressBar(); + }); + }); + }); + }); + }, () => { + showProgressBar && finishAndHideProgressBar(); + }); + } + whenTheBackOrForwardButtonIsClicked( + (ifThePageBeingVisitedHasntBeenCached) => { + ifThePageBeingVisitedHasntBeenCached((url) => { + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { + url: destination, + history: true, + cached: false + }); + if (prevented) + return; + navigateTo(destination, { shouldPushToHistoryState: false }); + }); + }, + (html, url, currentPageUrl, currentPageKey) => { + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { + url: destination, + history: true, + cached: true + }); + if (prevented) + return; + storeScrollInformationInHtmlBeforeNavigatingAway(); + let swapCallbacks = []; + fireEventForOtherLibrariesToHookInto("alpine:navigating", { + onSwap: (callback) => swapCallbacks.push(callback) + }); + updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageKey, currentPageUrl); + preventAlpineFromPickingUpDomChanges(Alpine25, (andAfterAllThis) => { + enablePersist && storePersistantElementsForLater((persistedEl) => { + packUpPersistedTeleports(persistedEl); + packUpPersistedPopovers(persistedEl); + }); + swapCurrentPageWithNewHtml(html, () => { + removeAnyLeftOverStaleProgressBars(); + removeAnyLeftOverStaleTeleportTargets(document.body); + enablePersist && putPersistantElementsBack((persistedEl, newStub) => { + unPackPersistedTeleports(persistedEl); + unPackPersistedPopovers(persistedEl); + }); + restoreScrollPositionOrScrollToTop(); + swapCallbacks.forEach((callback) => callback()); + andAfterAllThis(() => { + autofocus && autofocusElementsWithTheAutofocusAttribute(); + nowInitializeAlpineOnTheNewPage(Alpine25); + fireEventForOtherLibrariesToHookInto("alpine:navigated"); + }); + }); + }); + } + ); + setTimeout(() => { + fireEventForOtherLibrariesToHookInto("alpine:navigated"); + }); +} +function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCallback) { + getPretchedHtmlOr(fromDestination, callback, () => { + fetchHtml(fromDestination, callback, errorCallback); + }); +} +function preventAlpineFromPickingUpDomChanges(Alpine25, callback) { + Alpine25.stopObservingMutations(); + callback((afterAllThis) => { + Alpine25.startObservingMutations(); + queueMicrotask(() => { + afterAllThis(); + }); + }); +} +function fireEventForOtherLibrariesToHookInto(name, detail) { + let event = new CustomEvent(name, { + cancelable: true, + bubbles: true, + detail + }); + document.dispatchEvent(event); + return event.defaultPrevented; +} +function nowInitializeAlpineOnTheNewPage(Alpine25) { + Alpine25.initTree(document.body, void 0, (el, skip) => { + if (el._x_wasPersisted) + skip(); + }); +} +function autofocusElementsWithTheAutofocusAttribute() { + document.querySelector("[autofocus]") && document.querySelector("[autofocus]").focus(); +} +function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() { + let walker = function(root, callback) { + Alpine.walk(root, (el, skip) => { + if (isPersistedElement(el)) + skip(); + if (isTeleportTarget(el)) + skip(); + else + callback(el, skip); + }); + }; + Alpine.destroyTree(document.body, walker); +} + +// js/plugins/history/index.js +function history(Alpine25) { + Alpine25.magic("queryString", (el, { interceptor }) => { + let alias; + let alwaysShow = false; + let usePush = false; + return interceptor((initialSeedValue, getter, setter, path, key) => { + let queryKey = alias || path; + let { initial, replace: replace2, push: push2, pop } = track(queryKey, initialSeedValue, alwaysShow); + setter(initial); + if (!usePush) { + Alpine25.effect(() => replace2(getter())); + } else { + Alpine25.effect(() => push2(getter())); + pop(async (newValue) => { + setter(newValue); + let tillTheEndOfTheMicrotaskQueue = () => Promise.resolve(); + await tillTheEndOfTheMicrotaskQueue(); + }); + } + return initial; + }, (func) => { + func.alwaysShow = () => { + alwaysShow = true; + return func; + }; + func.usePush = () => { + usePush = true; + return func; + }; + func.as = (key) => { + alias = key; + return func; + }; + }); + }); + Alpine25.history = { track }; +} +function track(name, initialSeedValue, alwaysShow = false, except = null) { + let { has, get, set, remove } = queryStringUtils(); + let url = coordinator_default.getUrl(); + let isInitiallyPresentInUrl = has(url, name); + let initialValue = isInitiallyPresentInUrl ? get(url, name) : initialSeedValue; + let initialValueMemo = JSON.stringify(initialValue); + let exceptValueMemo = JSON.stringify(except); + let hasReturnedToInitialValue = (newValue) => JSON.stringify(newValue) === initialValueMemo; + let hasReturnedToExceptValue = (newValue) => JSON.stringify(newValue) === exceptValueMemo; + if (alwaysShow) + url = set(url, name, initialValue); + replace(url, name, { value: initialValue }); + let lock = false; + let update = (strategy, newValue) => { + if (lock) + return; + let url2 = coordinator_default.getUrl(); + if (!alwaysShow && !isInitiallyPresentInUrl && hasReturnedToInitialValue(newValue)) { + url2 = remove(url2, name); + } else if (newValue === void 0) { + url2 = remove(url2, name); + } else if (!alwaysShow && hasReturnedToExceptValue(newValue)) { + url2 = remove(url2, name); + } else { + url2 = set(url2, name, newValue); + } + strategy(url2, name, { value: newValue }); + }; + return { + initial: initialValue, + replace(newValue) { + update(replace, newValue); + }, + push(newValue) { + update(push, newValue); + }, + pop(receiver) { + let handler = (e) => { + if (!e.state || !e.state.alpine) + return; + Object.entries(e.state.alpine).forEach(([iName, { value: newValue }]) => { + if (iName !== name) + return; + lock = true; + let result = receiver(newValue); + if (result instanceof Promise) { + result.finally(() => lock = false); + } else { + lock = false; + } + }); + }; + window.addEventListener("popstate", handler); + return () => window.removeEventListener("popstate", handler); + } + }; +} +function replace(url, key, object) { + coordinator_default.replaceState(url, { [key]: object }); +} +function push(url, key, object) { + coordinator_default.pushState(url, { [key]: object }); +} +function queryStringUtils() { + return { + has(url, key) { + let search = url.search; + if (!search) + return false; + let data = fromQueryString(search, key); + return Object.keys(data).includes(key); + }, + get(url, key) { + let search = url.search; + if (!search) + return false; + let data = fromQueryString(search, key); + return data[key]; + }, + set(url, key, value) { + let data = fromQueryString(url.search, key); + data[key] = stripNulls(unwrap(value)); + url.search = toQueryString(data); + return url; + }, + remove(url, key) { + let data = fromQueryString(url.search, key); + delete data[key]; + url.search = toQueryString(data); + return url; + } + }; +} +function stripNulls(value) { + if (!isObjecty(value)) + return value; + for (let key in value) { + if (value[key] === null) + delete value[key]; + else + value[key] = stripNulls(value[key]); + } + return value; +} +function toQueryString(data) { + let isObjecty2 = (subject) => typeof subject === "object" && subject !== null; + let buildQueryStringEntries = (data2, entries2 = {}, baseKey = "") => { + Object.entries(data2).forEach(([iKey, iValue]) => { + let key = baseKey === "" ? iKey : `${baseKey}[${iKey}]`; + if (iValue === null) { + entries2[key] = ""; + } else if (!isObjecty2(iValue)) { + entries2[key] = encodeURIComponent(iValue).replaceAll("%20", "+").replaceAll("%2C", ","); + } else { + entries2 = { ...entries2, ...buildQueryStringEntries(iValue, entries2, key) }; + } + }); + return entries2; + }; + let entries = buildQueryStringEntries(data); + return Object.entries(entries).map(([key, value]) => `${key}=${value}`).join("&"); +} +function fromQueryString(search, queryKey) { + search = search.replace("?", ""); + if (search === "") + return {}; + let insertDotNotatedValueIntoData = (key, value, data2) => { + let [first2, second, ...rest] = key.split("."); + if (!second) + return data2[key] = value; + if (data2[first2] === void 0) { + data2[first2] = isNaN(second) ? {} : []; + } + insertDotNotatedValueIntoData([second, ...rest].join("."), value, data2[first2]); + }; + let entries = search.split("&").map((i) => i.split("=")); + let data = /* @__PURE__ */ Object.create(null); + entries.forEach(([key, value]) => { + if (typeof value == "undefined") + return; + value = decodeURIComponent(value.replaceAll("+", "%20")); + let decodedKey = decodeURIComponent(key); + let shouldBeHandledAsArray = decodedKey.includes("[") && decodedKey.startsWith(queryKey); + if (!shouldBeHandledAsArray) { + data[key] = value; + } else { + let dotNotatedKey = decodedKey.replaceAll("[", ".").replaceAll("]", ""); + insertDotNotatedValueIntoData(dotNotatedKey, value, data); + } + }); + return data; +} + +// js/lifecycle.js +var import_morph = __toESM(require_module_cjs8()); +var import_mask = __toESM(require_module_cjs9()); +var import_alpinejs6 = __toESM(require_module_cjs()); +function start() { + setTimeout(() => ensureLivewireScriptIsntMisplaced()); + dispatch(document, "livewire:init"); + dispatch(document, "livewire:initializing"); + import_alpinejs6.default.plugin(import_morph.default); + import_alpinejs6.default.plugin(history); + import_alpinejs6.default.plugin(import_intersect.default); + import_alpinejs6.default.plugin(import_sort.default); + import_alpinejs6.default.plugin(import_resize.default); + import_alpinejs6.default.plugin(import_collapse.default); + import_alpinejs6.default.plugin(import_anchor.default); + import_alpinejs6.default.plugin(import_focus.default); + import_alpinejs6.default.plugin(module_default); + import_alpinejs6.default.plugin(navigate_default); + import_alpinejs6.default.plugin(import_mask.default); + import_alpinejs6.default.addRootSelector(() => "[wire\\:id]"); + import_alpinejs6.default.onAttributesAdded((el, attributes) => { + if (!Array.from(attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) + return; + let component = findComponentByEl(el, false); + if (!component) + return; + attributes.forEach((attribute) => { + if (!matchesForLivewireDirective(attribute.name)) + return; + let directive2 = extractDirective(el, attribute.name); + trigger("directive.init", { el, component, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + }); + import_alpinejs6.default.interceptInit( + import_alpinejs6.default.skipDuringClone( + (el) => { + if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) + return; + if (el.hasAttribute("wire:id") && !el.__livewire && !hasComponent(el.getAttribute("wire:id"))) { + let component2 = initComponent(el); + import_alpinejs6.default.onAttributeRemoved(el, "wire:id", () => { + destroyComponent(component2.id); + }); + } + let directives = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name)); + directives.forEach((directive2) => { + trigger("directive.global.init", { el, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + let component = findComponentByEl(el, false); + if (component) { + trigger("element.init", { el, component }); + directives.forEach((directive2) => { + trigger("directive.init", { el, component, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + } + }, + (el) => { + if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) + return; + let directives = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name)); + directives.forEach((directive2) => { + trigger("directive.global.init", { el, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + } + ) + ); + import_alpinejs6.default.start(); + setTimeout(() => window.Livewire.initialRenderIsFinished = true); + dispatch(document, "livewire:initialized"); +} +function ensureLivewireScriptIsntMisplaced() { + let el = document.querySelector("script[data-update-uri][data-csrf]"); + if (!el) + return; + let livewireEl = el.closest("[wire\\:id]"); + if (livewireEl) { + console.warn("Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.", livewireEl); + } +} + +// js/index.js +var import_alpinejs23 = __toESM(require_module_cjs()); + +// js/features/supportListeners.js +on("effect", ({ component, effects }) => { + registerListeners(component, effects.listeners || []); +}); +function registerListeners(component, listeners2) { + listeners2.forEach((name) => { + let handler = (e) => { + if (component.isLazy && !component.hasBeenLazyLoaded) + return; + if (e.__livewire) + e.__livewire.receivedBy.push(component); + component.$wire.call("__dispatch", name, e.detail || {}); + }; + window.addEventListener(name, handler); + component.addCleanup(() => window.removeEventListener(name, handler)); + component.el.addEventListener(name, (e) => { + if (component.isLazy && !component.hasBeenLazyLoaded) + return; + if (!e.__livewire) + return; + if (e.bubbles) + return; + if (e.__livewire) + e.__livewire.receivedBy.push(component.id); + component.$wire.call("__dispatch", name, e.detail || {}); + }); + }); +} + +// js/features/supportScriptsAndAssets.js +var import_alpinejs8 = __toESM(require_module_cjs()); + +// js/evaluator.js +var import_alpinejs7 = __toESM(require_module_cjs()); +function getAlpineScopeKeys(el) { + let keys = []; + let currentEl = el; + while (currentEl) { + if (currentEl._x_dataStack && currentEl._x_dataStack.length > 0) { + let ownScope = currentEl._x_dataStack[0]; + for (let key of Object.keys(ownScope)) { + if (!keys.includes(key) && !key.startsWith("$")) + keys.push(key); + } + } + if (currentEl.hasAttribute && currentEl.hasAttribute("wire:id")) + break; + currentEl = currentEl.parentElement; + } + return keys; +} +function evaluateExpression(el, expression, options = {}) { + if (!expression || expression.trim() === "") + return; + let result = import_alpinejs7.default.evaluateRaw(el, expression, options); + if (result instanceof Promise) { + result.catch(() => { + }); + } + return result; +} +function evaluateActionExpression(el, expression, options = {}) { + if (!expression || expression.trim() === "") + return; + let contextualExpression = contextualizeExpression(expression, el); + try { + let result = import_alpinejs7.default.evaluateRaw(el, contextualExpression, options); + if (result instanceof Promise && result._livewireAction) { + result.catch(() => { + }); + } + return result; + } catch (error2) { + console.warn(`Livewire Expression Error: ${error2.message} + +${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); + console.error(error2); + } +} +function contextualizeExpression(expression, el) { + let SKIP = ["JSON", "true", "false", "null", "undefined", "this", "$wire", "$event"]; + if (el) { + SKIP.push(...getAlpineScopeKeys(el)); + } + let strings = []; + let result = expression.replace(/(["'`])(?:(?!\1)[^\\]|\\.)*\1/g, (m) => { + strings.push(m); + return `___${strings.length - 1}___`; + }); + result = result.replace(/(^|[^.\w$])(\$?[a-zA-Z_]\w*)/g, (m, pre, ident, offset) => { + if (SKIP.includes(ident) || /^___\d+___$/.test(ident)) + return pre + ident; + if (result[offset + m.length] === ":") + return pre + ident; + return pre + "$wire." + ident; + }); + return result.replace(/___(\d+)___/g, (m, i) => strings[i]); +} + +// js/features/supportScriptsAndAssets.js +var executedScripts = /* @__PURE__ */ new WeakMap(); +var executedAssets = /* @__PURE__ */ new Set(); +on("payload.intercept", async ({ assets }) => { + if (!assets) + return; + for (let [key, asset] of Object.entries(assets)) { + await onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, async () => { + await addAssetsToHeadTagOfPage(asset); + }); + } +}); +on("component.init", ({ component }) => { + let assets = component.snapshot.memo.assets; + if (assets) { + assets.forEach((key) => { + if (executedAssets.has(key)) + return; + executedAssets.add(key); + }); + } +}); +on("effect", ({ component, effects }) => { + let scripts = effects.scripts; + if (scripts) { + Object.entries(scripts).forEach(([key, content]) => { + onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, () => { + let scriptContent = extractScriptTagContent(content); + scriptContent = scriptContent.includes("await") ? `(async()=>{ ${scriptContent} })()` : `(()=>{ ${scriptContent} })()`; + import_alpinejs8.default.dontAutoEvaluateFunctions(() => { + evaluateExpression(component.el, scriptContent, { + context: component.$wire, + scope: { + "$wire": component.$wire, + "$js": component.$wire.js + } + }); + }); + }); + }); + } +}); +function onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, callback) { + if (executedScripts.has(component)) { + let alreadyRunKeys2 = executedScripts.get(component); + if (alreadyRunKeys2.includes(key)) + return; + } + callback(); + if (!executedScripts.has(component)) + executedScripts.set(component, []); + let alreadyRunKeys = executedScripts.get(component); + alreadyRunKeys.push(key); + executedScripts.set(component, alreadyRunKeys); +} +function extractScriptTagContent(rawHtml) { + let scriptRegex = /<script\b[^>]*>([\s\S]*?)<\/script>/gm; + let matches = scriptRegex.exec(rawHtml); + let innards = matches && matches[1] ? matches[1].trim() : ""; + return innards; +} +async function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callback) { + if (executedAssets.has(key)) + return; + executedAssets.add(key); + await callback(); +} +async function addAssetsToHeadTagOfPage(rawHtml) { + rawHtml = replaceNoncesInHtml(rawHtml); + let newDocument = new DOMParser().parseFromString(rawHtml, "text/html"); + let newHead = document.adoptNode(newDocument.head); + for (let child of newHead.children) { + try { + await runAssetSynchronously(child); + } catch (error2) { + } + } +} +async function runAssetSynchronously(child) { + return new Promise((resolve, reject) => { + if (isScript2(child)) { + let script = cloneScriptTag(child); + if (script.src) { + script.onload = () => resolve(); + script.onerror = () => reject(); + } else { + resolve(); + } + document.head.appendChild(script); + } else { + document.head.appendChild(child); + resolve(); + } + }); +} +function isScript2(el) { + return el.tagName.toLowerCase() === "script"; +} + +// js/features/supportJsEvaluation.js +var import_alpinejs9 = __toESM(require_module_cjs()); +import_alpinejs9.default.magic("js", (el) => { + let component = findComponentByEl(el); + return component.$wire.js; +}); +on("effect", ({ component, effects }) => { + let js = effects.js; + let xjs = effects.xjs; + if (js) { + Object.entries(js).forEach(([method, body]) => { + overrideMethod(component, method, () => { + evaluateExpression(component.el, body); + }); + }); + } + if (xjs) { + xjs.forEach(({ expression, params }) => { + params = Object.values(params); + evaluateExpression(component.el, expression, { scope: component.getJsActions(), params }); + }); + } +}); + +// js/morph.js +var import_alpinejs10 = __toESM(require_module_cjs()); + +// js/directives/wire-transition.js +var defaultName = "match-element"; +globalDirective("transition", ({ el, directive: directive2, cleanup }) => { +}); +function setTransitionNames(root, options = {}) { + root.querySelectorAll("[wire\\:transition]").forEach((el) => { + if (el.style.viewTransitionName) + return; + let name = el.getAttribute("wire:transition"); + if (!name && options.type) + return; + el.style.viewTransitionName = name || defaultName; + }); +} +function clearTransitionNames(root) { + root.querySelectorAll("[wire\\:transition]").forEach((el) => { + el.style.viewTransitionName = ""; + }); +} +async function transitionDomMutation(fromEl, toEl, callback, options = {}) { + if (options.skip) + return callback(); + if (!fromEl.querySelector("[wire\\:transition]") && !toEl.querySelector("[wire\\:transition]")) + return callback(); + if (typeof document.startViewTransition !== "function") { + return callback(); + } + if (document.querySelector("dialog:modal")) + return callback(); + setTransitionNames(fromEl, options); + let style = document.createElement("style"); + style.textContent = ` + @media (prefers-reduced-motion: reduce) { + ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { + animation: none !important; + } + } + + ::view-transition-old(root) { + animation: none !important; + opacity: 0 !important; + } + + ::view-transition-new(root) { + animation: none !important; + opacity: 1 !important; + } + `; + document.head.appendChild(style); + let update = () => { + callback(); + setTransitionNames(fromEl, options); + }; + let transitionConfig = { update }; + if (options.type) { + transitionConfig.types = [options.type]; + } + let cleanup = () => { + style.remove(); + clearTransitionNames(fromEl); + }; + let skipOnDialog = (transition) => { + let observer = new MutationObserver(() => { + if (document.querySelector("dialog:modal")) { + transition.skipTransition(); + observer.disconnect(); + } + }); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ["open"], + subtree: true + }); + transition.finished.finally(() => observer.disconnect()); + }; + try { + let transition = document.startViewTransition(transitionConfig); + skipOnDialog(transition); + transition.finished.finally(cleanup); + await transition.updateCallbackDone; + } catch (e) { + let transition = document.startViewTransition(update); + skipOnDialog(transition); + transition.finished.finally(cleanup); + await transition.updateCallbackDone; + } +} + +// js/morph.js +async function morph2(component, el, html) { + let wrapperTag = getTagName(el.parentElement); + let wrapper = document.createElement(wrapperTag); + wrapper.innerHTML = html; + let parentComponent; + try { + parentComponent = findComponentByEl(el.parentElement); + } catch (e) { + } + parentComponent && (wrapper.__livewire = parentComponent); + let to = wrapper.firstElementChild; + to.setAttribute("wire:snapshot", component.snapshotEncoded); + let effects = { ...component.effects }; + delete effects.html; + to.setAttribute("wire:effects", JSON.stringify(effects)); + to.__livewire = component; + trigger("morph", { el, toEl: to, component }); + let existingComponentsMap = {}; + el.querySelectorAll("[wire\\:id]").forEach((component2) => { + existingComponentsMap[component2.getAttribute("wire:id")] = component2; + }); + to.querySelectorAll("[wire\\:id]").forEach((child) => { + if (child.hasAttribute("wire:snapshot")) + return; + let wireId = child.getAttribute("wire:id"); + let existingComponent = existingComponentsMap[wireId]; + if (existingComponent) { + child.replaceWith(existingComponent.cloneNode(true)); + } + }); + let transitionOptions = component.effects.transition || {}; + await transitionDomMutation(el, to, () => { + import_alpinejs10.default.morph(el, to, getMorphConfig(component)); + }, transitionOptions); + trigger("morphed", { el, component }); +} +async function morphFragment(component, startNode, endNode, toHTML) { + let fromContainer = startNode.parentElement; + let fromContainerTag = getTagName(fromContainer); + let toContainer = document.createElement(fromContainerTag); + toContainer.innerHTML = toHTML; + toContainer.__livewire = component; + let parentElement = component.el.parentElement; + let parentElementTag = getTagName(parentElement); + let parentComponent; + try { + parentComponent = parentElement ? findComponentByEl(parentElement) : null; + } catch (e) { + } + if (parentComponent) { + let parentProviderWrapper = document.createElement(parentElementTag); + parentProviderWrapper.appendChild(toContainer); + parentProviderWrapper.__livewire = parentComponent; + } + trigger("island.morph", { startNode, endNode, component }); + let transitionOptions = component.effects.transition || {}; + let islandHasTransition = false; + let node = startNode.nextSibling; + while (node && node !== endNode) { + if (node.nodeType === 1 && (node.hasAttribute?.("wire:transition") || node.querySelector?.("[wire\\:transition]"))) { + islandHasTransition = true; + break; + } + node = node.nextSibling; + } + let fromEl = islandHasTransition ? fromContainer : document.createElement("div"); + await transitionDomMutation(fromEl, toContainer, () => { + import_alpinejs10.default.morphBetween(startNode, endNode, toContainer, getMorphConfig(component)); + }, transitionOptions); + trigger("island.morphed", { startNode, endNode, component }); +} +function getMorphConfig(component) { + return { + updating: (el, toEl, childrenOnly, skip, skipChildren, skipUntil) => { + if (isStartFragmentMarker(el) && isStartFragmentMarker(toEl)) { + let metadata = extractFragmentMetadataFromMarkerNode(toEl); + if (metadata.mode !== "morph") { + skipUntil((node) => { + if (isEndFragmentMarker(node)) { + let endMarkerMetadata = extractFragmentMetadataFromMarkerNode(node); + return endMarkerMetadata.token === metadata.token; + } + return false; + }); + } + } + if (isntElement(el)) + return; + trigger("morph.updating", { el, toEl, component, skip, childrenOnly, skipChildren, skipUntil }); + if (el.__livewire_replace === true) + el.innerHTML = toEl.innerHTML; + if (el.__livewire_replace_self === true) { + el.outerHTML = toEl.outerHTML; + return skip(); + } + if (el.__livewire_ignore === true) + return skip(); + if (el.__livewire_ignore_self === true) + childrenOnly(); + if (el.__livewire_ignore_children === true) + return skipChildren(); + if (isComponentRootEl(el) && el.getAttribute("wire:id") !== component.id) + return skip(); + if (isComponentRootEl(el)) + toEl.__livewire = component; + }, + updated: (el) => { + if (isntElement(el)) + return; + trigger("morph.updated", { el, component }); + }, + removing: (el, skip) => { + if (isntElement(el)) + return; + trigger("morph.removing", { el, component, skip }); + }, + removed: (el) => { + if (isntElement(el)) + return; + trigger("morph.removed", { el, component }); + }, + adding: (el) => { + trigger("morph.adding", { el, component }); + }, + added: (el) => { + if (isntElement(el)) + return; + trigger("morph.added", { el }); + }, + key: (el) => { + if (isntElement(el)) + return; + return el.hasAttribute(`wire:id`) ? el.getAttribute(`wire:id`) : el.hasAttribute(`wire:key`) ? el.getAttribute(`wire:key`) : el.id; + }, + lookahead: false + }; +} +function isntElement(el) { + return typeof el.hasAttribute !== "function"; +} +function isComponentRootEl(el) { + return el.hasAttribute("wire:id"); +} +function getTagName(el) { + let tag = el ? el.tagName.toLowerCase() : "div"; + let customElement = customElements.get(tag); + return customElement ? customElement.name : tag; +} + +// js/features/supportMorphDom.js +interceptMessage(({ message, onSuccess }) => { + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let html = payload.effects.html; + if (!html) + return; + await morph2(message.component, message.component.el, html); + }); + }); +}); + +// js/features/supportDispatches.js +on("effect", ({ component, effects }) => { + queueMicrotask(() => { + queueMicrotask(() => { + queueMicrotask(() => { + dispatchEvents(component, effects.dispatches || []); + }); + }); + }); +}); +function dispatchEvents(component, dispatches) { + dispatches.forEach(({ name, params = {}, self: self2 = false, component: componentName, ref, el }) => { + if (self2) + dispatchSelf(component, name, params); + else if (componentName) + dispatchTo(componentName, name, params); + else if (ref) + dispatchRef(component, ref, name, params); + else if (el) + dispatchEl(component, el, name, params); + else + dispatch2(component, name, params); + }); +} + +// js/features/supportDisablingFormsDuringRequest.js +var import_alpinejs11 = __toESM(require_module_cjs()); +var cleanups = new Bag(); +on("directive.init", ({ el, directive: directive2, cleanup, component }) => setTimeout(() => { + if (directive2.value !== "submit") + return; + el.addEventListener("submit", () => { + let componentId = directive2.expression.startsWith("$parent") ? component.parent.id : component.id; + let cleanup2 = disableForm(el); + cleanups.add(componentId, cleanup2); + }); +})); +on("commit", ({ component, respond }) => { + respond(() => { + cleanups.each(component.id, (i) => i()); + cleanups.remove(component.id); + }); +}); +function disableForm(formEl) { + let undos = []; + import_alpinejs11.default.walk(formEl, (el, skip) => { + if (!formEl.contains(el)) + return; + if (el.hasAttribute("wire:ignore")) + return skip(); + if (shouldMarkDisabled(el)) { + undos.push(markDisabled(el)); + } else if (shouldMarkReadOnly(el)) { + undos.push(markReadOnly(el)); + } + }); + return () => { + while (undos.length > 0) + undos.shift()(); + }; +} +function shouldMarkDisabled(el) { + let tag = el.tagName.toLowerCase(); + let inputTypesThatDontSupportReadonly = [ + "hidden", + "range", + "color", + "checkbox", + "radio", + "file", + "submit", + "image", + "reset", + "button" + ]; + if (tag === "select") + return true; + if (tag === "button" && el.type === "submit") + return true; + if (tag === "input" && inputTypesThatDontSupportReadonly.includes(el.type)) + return true; + return false; +} +function shouldMarkReadOnly(el) { + return ["input", "textarea"].includes(el.tagName.toLowerCase()); +} +function markDisabled(el) { + let undo = el.disabled ? () => { + } : () => el.disabled = false; + el.disabled = true; + return undo; +} +function markReadOnly(el) { + let undo = el.readOnly ? () => { + } : () => el.readOnly = false; + el.readOnly = true; + return undo; +} + +// js/features/supportFileDownloads.js +on("commit", ({ succeed }) => { + succeed(({ effects }) => { + let download = effects.download; + if (!download) + return; + let urlObject = window.webkitURL || window.URL; + let url = urlObject.createObjectURL( + base64toBlob(download.content, download.contentType) + ); + let invisibleLink = document.createElement("a"); + invisibleLink.style.display = "none"; + invisibleLink.href = url; + invisibleLink.download = download.name; + document.body.appendChild(invisibleLink); + invisibleLink.click(); + setTimeout(function() { + urlObject.revokeObjectURL(url); + }, 0); + }); +}); +function base64toBlob(b64Data, contentType = "", sliceSize = 512) { + const byteCharacters = atob(b64Data); + const byteArrays = []; + if (contentType === null) + contentType = ""; + for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { + let slice = byteCharacters.slice(offset, offset + sliceSize); + let byteNumbers = new Array(slice.length); + for (let i = 0; i < slice.length; i++) { + byteNumbers[i] = slice.charCodeAt(i); + } + let byteArray = new Uint8Array(byteNumbers); + byteArrays.push(byteArray); + } + return new Blob(byteArrays, { type: contentType }); +} + +// js/features/supportQueryString.js +var import_alpinejs12 = __toESM(require_module_cjs()); +on("effect", ({ component, effects, cleanup }) => { + let queryString = effects["url"]; + if (!queryString) + return; + Object.entries(queryString).forEach(([key, value]) => { + let { name, as, use, alwaysShow, except } = normalizeQueryStringEntry(key, value); + if (!as) + as = name; + let initialValue = [false, null, void 0].includes(except) ? dataGet(component.ephemeral, name) : except; + let { replace: replace2, push: push2, pop } = track(as, initialValue, alwaysShow, except); + if (use === "replace") { + let effectReference = import_alpinejs12.default.effect(() => { + replace2(dataGet(component.reactive, name)); + }); + cleanup(() => import_alpinejs12.default.release(effectReference)); + } else if (use === "push") { + let popNavigating = false; + let forgetCommitHandler = on("commit", ({ component: commitComponent, succeed }) => { + if (component !== commitComponent) + return; + let beforeValue = dataGet(component.canonical, name); + succeed(() => { + let afterValue = dataGet(component.canonical, name); + if (JSON.stringify(beforeValue) === JSON.stringify(afterValue)) + return; + if (popNavigating) { + replace2(afterValue); + } else { + push2(afterValue); + } + }); + }); + let forgetPopHandler = pop(async (newValue) => { + popNavigating = true; + await component.$wire.set(name, newValue); + document.querySelectorAll("input").forEach((el) => { + el._x_forceModelUpdate && el._x_forceModelUpdate(el._x_model.get()); + }); + requestAnimationFrame(() => popNavigating = false); + }); + let currentValue = dataGet(component.ephemeral, name); + if (JSON.stringify(currentValue) !== JSON.stringify(initialValue)) { + replace2(currentValue); + } + cleanup(() => { + forgetCommitHandler(); + forgetPopHandler(); + }); + } + }); +}); +function normalizeQueryStringEntry(key, value) { + let defaults = { use: "replace", alwaysShow: false }; + if (typeof value === "string") { + return { ...defaults, name: value, as: value }; + } else { + let fullerDefaults = { ...defaults, name: key, as: key }; + return { ...fullerDefaults, ...value }; + } +} + +// js/features/supportLaravelEcho.js +on("request", ({ options }) => { + if (window.Echo) { + options.headers["X-Socket-ID"] = window.Echo.socketId(); + } +}); +on("effect", ({ component, effects }) => { + let listeners2 = effects.listeners || []; + listeners2.forEach((event) => { + if (event.startsWith("echo")) { + if (typeof window.Echo === "undefined") { + console.warn("Laravel Echo cannot be found"); + return; + } + let event_parts = event.split(/(echo:|echo-)|:|,/); + if (event_parts[1] == "echo:") { + event_parts.splice(2, 0, "channel", void 0); + } + if (event_parts[2] == "notification") { + event_parts.push(void 0, void 0); + } + let [ + s1, + signature, + channel_type, + s2, + channel, + s3, + event_name + ] = event_parts; + if (["channel", "private", "encryptedPrivate"].includes(channel_type)) { + let handler = (e) => dispatchSelf(component, event, [e]); + window.Echo[channel_type](channel).listen(event_name, handler); + component.addCleanup(() => { + window.Echo[channel_type](channel).stopListening(event_name, handler); + }); + } else if (channel_type == "presence") { + if (["here", "joining", "leaving"].includes(event_name)) { + window.Echo.join(channel)[event_name]((e) => { + dispatchSelf(component, event, [e]); + }); + component.addCleanup(() => { + window.Echo.leave(channel); + }); + } else { + let handler = (e) => dispatchSelf(component, event, [e]); + window.Echo.join(channel).listen(event_name, handler); + component.addCleanup(() => { + window.Echo.leave(channel); + }); + } + } else if (channel_type == "notification") { + window.Echo.private(channel).notification((notification) => { + dispatchSelf(component, event, [notification]); + }); + component.addCleanup(() => { + window.Echo.private(channel).stopListening(".Illuminate\\Notifications\\Events\\BroadcastNotificationCreated"); + }); + } else { + console.warn("Echo channel type not yet supported"); + } + } + }); +}); + +// js/features/supportStreaming.js +interceptMessage(({ message, onStream }) => { + onStream(({ json }) => { + let { id, type, name, el, ref, content, mode } = json; + if (type === "island") + return; + let component = findComponent(id); + let targetEl = null; + if (type === "directive") { + const replaceEl = component.el.querySelector(`[wire\\:stream\\.replace="${name}"]`); + if (replaceEl) { + targetEl = replaceEl; + mode = "replace"; + } else { + targetEl = component.el.querySelector(`[wire\\:stream="${name}"]`); + } + } else if (type === "ref") { + targetEl = findRefEl(component, ref); + } else if (type === "element") { + targetEl = component.el.querySelector(el); + } + if (!targetEl) + return; + if (mode === "replace") { + targetEl.innerHTML = content; + } else { + targetEl.insertAdjacentHTML("beforeend", content); + } + }); +}); + +// js/features/supportNavigate.js +document.addEventListener("livewire:initialized", () => { + shouldHideProgressBar() && Alpine.navigate.disableProgressBar(); +}); +document.addEventListener("alpine:navigate", (e) => forwardEvent("livewire:navigate", e)); +document.addEventListener("alpine:navigating", (e) => forwardEvent("livewire:navigating", e)); +document.addEventListener("alpine:navigated", (e) => forwardEvent("livewire:navigated", e)); +function forwardEvent(name, original) { + let event = new CustomEvent(name, { cancelable: true, bubbles: true, detail: original.detail }); + document.dispatchEvent(event); + if (event.defaultPrevented) { + original.preventDefault(); + } +} +function shouldRedirectUsingNavigateOr(effects, url, or) { + let forceNavigate = effects.redirectUsingNavigate; + if (forceNavigate) { + Alpine.navigate(url); + } else { + or(); + } +} +function shouldHideProgressBar() { + if (!!document.querySelector("[data-no-progress-bar]")) + return true; + if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === "data-no-progress-bar") + return true; + return false; +} + +// js/features/supportRedirects.js +on("effect", ({ effects, request }) => { + if (!effects["redirect"]) + return; + let preventDefault = false; + request.invokeOnRedirect({ url: effects["redirect"], preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + let url = effects["redirect"]; + shouldRedirectUsingNavigateOr(effects, url, () => { + window.location.href = url; + }); +}); + +// js/features/supportIslands.js +interceptAction(({ action }) => { + let origin = action.origin; + if (!origin) + return; + let { el, directive: directive2 } = origin; + let islandAttr = Array.from(el.attributes).find((attr) => attr.name.startsWith("wire:island")); + if (islandAttr) { + let islandName = islandAttr.value; + let attrParts = islandAttr.name.split("."); + let isPrepend = attrParts.includes("prepend"); + let isAppend = attrParts.includes("append"); + let mode = isPrepend ? "prepend" : isAppend ? "append" : "morph"; + action.mergeMetadata({ + island: { + name: islandName, + mode + } + }); + return; + } + let fragment = closestIsland(origin.el); + if (!fragment) + return; + action.mergeMetadata({ + island: { + name: fragment.metadata.name, + mode: "morph" + } + }); +}); +interceptMessage(({ message, onSuccess, onStream }) => { + onStream(({ json }) => { + let { type, islandFragment } = json; + if (type !== "island") + return; + renderIsland(message.component, islandFragment); + }); + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let fragments = payload.effects.islandFragments || []; + fragments.forEach(async (fragmentHtml) => { + await renderIsland(message.component, fragmentHtml); + }); + }); + }); +}); +function closestIsland(el) { + return closestFragment(el, { + isMatch: ({ type }) => { + return type === "island"; + } + }); +} +async function renderIsland(component, islandHtml) { + let metadata = extractFragmentMetadataFromHtml(islandHtml); + let fragment = findFragment(component.el, { + isMatch: ({ type, token }) => { + return type === metadata.type && token === metadata.token; + } + }); + if (!fragment) + return; + let incomingMetadata = extractFragmentMetadataFromHtml(islandHtml); + let strippedContent = extractInnerHtmlFromFragmentHtml(islandHtml); + let parentElementTag = getTagName(fragment.startMarkerNode.parentElement); + let mode = incomingMetadata.mode || "morph"; + if (mode === "morph") { + await morphFragment(component, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent); + } else if (mode === "append") { + fragment.append(parentElementTag, strippedContent); + } else if (mode === "prepend") { + fragment.prepend(parentElementTag, strippedContent); + } +} + +// js/features/supportSlots.js +interceptMessage(({ message, onSuccess, onStream }) => { + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let fragments = payload.effects.slotFragments || []; + fragments.forEach(async (fragmentHtml) => { + await renderSlot(message.component, fragmentHtml); + }); + }); + }); +}); +async function renderSlot(component, fragmentHtml) { + let metadata = extractFragmentMetadataFromHtml(fragmentHtml); + let targetComponent = findComponent(metadata.id); + let fragment = findFragment(targetComponent.el, { + isMatch: ({ name, token }) => { + return name === metadata.name && token === metadata.token; + } + }); + if (!fragment) + return; + let strippedContent = extractInnerHtmlFromFragmentHtml(fragmentHtml); + await morphFragment(targetComponent, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent); +} + +// js/features/supportDataLoading.js +interceptMessage(({ message, onSend, onFinish }) => { + let undos = []; + onSend(() => { + message.actions.forEach((action) => { + let origin = action.origin; + if (!origin) + return; + let el = origin.hasOwnProperty("targetEl") ? origin.targetEl : origin.el; + if (!el) + return; + el.setAttribute("data-loading", "true"); + undos.push(() => { + el.removeAttribute("data-loading"); + }); + }); + }); + onFinish(() => undos.forEach((undo) => undo())); +}); + +// js/directives/wire-current.js +var import_alpinejs13 = __toESM(require_module_cjs()); +import_alpinejs13.default.addInitSelector(() => `[wire\\:current]`); +var onPageChanges = /* @__PURE__ */ new Map(); +document.addEventListener("livewire:navigated", () => { + onPageChanges.forEach((i) => i(new URL(window.location.href))); +}); +globalDirective("current", ({ el, directive: directive2, cleanup }) => { + let expression = directive2.expression; + let options = { + exact: directive2.modifiers.includes("exact"), + strict: directive2.modifiers.includes("strict"), + ignore: directive2.modifiers.includes("ignore") + }; + if (options.ignore) + return; + if (expression.startsWith("#")) + return; + if (!el.hasAttribute("href")) + return; + let href = el.getAttribute("href"); + let hrefUrl = new URL(href, window.location.href); + let classes = expression.split(" ").filter(String); + let refreshCurrent = (url) => { + if (pathMatches(hrefUrl, url, options)) { + el.classList.add(...classes); + el.setAttribute("data-current", ""); + } else { + el.classList.remove(...classes); + el.removeAttribute("data-current"); + } + }; + refreshCurrent(new URL(window.location.href)); + onPageChanges.set(el, refreshCurrent); + cleanup(() => onPageChanges.delete(el)); +}); +function pathMatches(hrefUrl, actualUrl, options = {}) { + if (hrefUrl.hostname !== actualUrl.hostname) + return false; + let hrefPath = options.strict ? hrefUrl.pathname : hrefUrl.pathname.replace(/\/+$/, ""); + let actualPath = options.strict ? actualUrl.pathname : actualUrl.pathname.replace(/\/+$/, ""); + if (options.exact) { + return hrefPath === actualPath; + } + let hrefPathSegments = hrefPath.split("/"); + let actualPathSegments = actualPath.split("/"); + for (let i = 0; i < hrefPathSegments.length; i++) { + if (hrefPathSegments[i] !== actualPathSegments[i]) + return false; + } + return true; +} + +// js/directives/wire-navigate.js +var import_alpinejs14 = __toESM(require_module_cjs()); +var wireNavigateSelectors = [ + "[wire\\:navigate]", + "[wire\\:navigate\\.hover]", + "[wire\\:navigate\\.preserve-scroll]", + "[wire\\:navigate\\.preserve-scroll\\.hover]", + "[wire\\:navigate\\.hover\\.preserve-scroll]" +]; +var wireNavigateSelector = wireNavigateSelectors.join(", "); +var attributeMap = { + "wire:navigate": "x-navigate", + "wire:navigate.hover": "x-navigate.hover", + "wire:navigate.preserve-scroll": "x-navigate.preserve-scroll", + "wire:navigate.preserve-scroll.hover": "x-navigate.preserve-scroll.hover", + "wire:navigate.hover.preserve-scroll": "x-navigate.hover.preserve-scroll" +}; +wireNavigateSelectors.forEach((selector) => { + import_alpinejs14.default.addInitSelector(() => selector); +}); +import_alpinejs14.default.interceptInit( + import_alpinejs14.default.skipDuringClone((el) => { + for (let [wireAttr, alpineDirective] of Object.entries(attributeMap)) { + if (el.hasAttribute(wireAttr)) { + import_alpinejs14.default.bind(el, { [alpineDirective]: true }); + break; + } + } + }) +); +document.addEventListener("alpine:navigating", () => { + Livewire.all().forEach((component) => { + component.inscribeSnapshotAndEffectsOnElement(); + }); +}); + +// js/features/supportDataCurrent.js +document.addEventListener("livewire:navigated", () => { + updateNavigateLinks(); +}); +document.addEventListener("DOMContentLoaded", () => { + updateNavigateLinks(); +}); +function updateNavigateLinks() { + let currentUrl = new URL(window.location.href); + let options = { + exact: true + }; + document.querySelectorAll(wireNavigateSelector).forEach((el) => { + if (Array.from(el.attributes).some((attr) => attr.name.startsWith("wire:current"))) + return; + let href = el.getAttribute("href"); + if (!href || href.startsWith("#")) + return; + try { + let hrefUrl = new URL(href, window.location.href); + if (pathMatches(hrefUrl, currentUrl, options)) { + el.setAttribute("data-current", ""); + } else { + el.removeAttribute("data-current"); + } + } catch (e) { + } + }); +} + +// js/features/supportPreserveScroll.js +interceptMessage(({ message, onSuccess }) => { + onSuccess(({ onSync, onMorph, onRender }) => { + message.actions.forEach((action) => { + let origin = action.origin; + if (!origin || !origin.directive) + return; + let directive2 = origin.directive; + if (!directive2.modifiers.includes("preserve-scroll")) + return; + let oldHeight; + let oldScroll; + onSync(() => { + oldHeight = document.body.scrollHeight; + oldScroll = window.scrollY; + }); + onMorph(async () => { + let heightDiff = document.body.scrollHeight - oldHeight; + window.scrollTo(0, oldScroll + heightDiff); + oldHeight = null; + oldScroll = null; + }); + }); + }); +}); + +// js/features/supportWireIntersect.js +var import_alpinejs15 = __toESM(require_module_cjs()); +import_alpinejs15.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:intersect")) { + let { name, value } = el.attributes[i]; + let directive2 = extractDirective(el, name); + let modifierString = name.split("wire:intersect")[1]; + let expression = value.trim(); + import_alpinejs15.default.bind(el, { + ["x-intersect" + modifierString](e) { + directive2.eventContext = e; + let component = findComponentByEl(el, false); + if (!component) + return; + component.addActionContext({ + el, + directive: directive2 + }); + evaluateActionExpression(el, expression); + } + }); + } + } +}); + +// js/features/supportWireSort.js +var import_alpinejs16 = __toESM(require_module_cjs()); +import_alpinejs16.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:sort:item")) { + let directive2 = extractDirective(el, el.attributes[i].name); + let modifierString = directive2.modifiers.join("."); + let expression = directive2.expression; + import_alpinejs16.default.bind(el, { + ["x-sort:item" + modifierString]() { + return expression; + } + }); + } else if (el.attributes[i].name.startsWith("wire:sort:group-id")) { + continue; + } else if (el.attributes[i].name.startsWith("wire:sort:group")) { + return; + } else if (el.attributes[i].name.startsWith("wire:sort")) { + let directive2 = extractDirective(el, el.attributes[i].name); + let attribute = directive2.rawName.replace("wire:", "x-"); + if (directive2.modifiers.includes("async")) { + attribute = attribute.replace(".async", ""); + } + if (directive2.modifiers.includes("renderless")) { + attribute = attribute.replace(".renderless", ""); + } + if (directive2.modifiers.includes("prepend")) { + attribute = attribute.replace(".prepend", ""); + } + if (directive2.modifiers.includes("append")) { + attribute = attribute.replace(".append", ""); + } + let expression = directive2.expression; + import_alpinejs16.default.bind(el, { + [attribute]() { + setNextActionOrigin({ el, directive: directive2 }); + let sortableChildren = Array.from(el.children).filter( + (child) => child.hasAttribute("x-sort:item") || child.hasAttribute("wire:sort:item") + ); + let itemPosition = sortableChildren.findIndex((child) => child._x_sort_key === this.$item); + let position = itemPosition !== -1 ? itemPosition : this.$position; + let params = [this.$item, position]; + let scope = { $item: this.$item, $position: position }; + let sortId = el.getAttribute("wire:sort:group-id"); + if (sortId !== null) { + params.push(sortId); + scope.$id = sortId; + } + evaluateActionExpression(el, expression, { scope, params }); + } + }); + } + } +}); + +// js/features/supportCssModules.js +var loadedStyles = /* @__PURE__ */ new Set(); +on("effect", ({ component, effects }) => { + if (effects.styleModule) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/css/${encodedName}.css?v=${effects.styleModule}`; + if (!loadedStyles.has(path)) { + loadedStyles.add(path); + injectStylesheet(path); + } + } + if (effects.globalStyleModule) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/css/${encodedName}.global.css?v=${effects.globalStyleModule}`; + if (!loadedStyles.has(path)) { + loadedStyles.add(path); + injectStylesheet(path); + } + } +}); +function injectStylesheet(href) { + let link = document.createElement("link"); + link.rel = "stylesheet"; + link.href = href; + let nonce2 = getNonce(); + if (nonce2) + link.nonce = nonce2; + document.head.appendChild(link); +} + +// js/debounce.js +var callbacksByComponent = new WeakBag(); +function callAndClearComponentDebounces(component, callback) { + callbacksByComponent.each(component, (callbackRegister) => { + callbackRegister.callback(); + callbackRegister.callback = () => { + }; + }); + callback(); +} + +// js/directives/wire-wildcard.js +var import_alpinejs17 = __toESM(require_module_cjs()); +on("directive.init", ({ el, directive: directive2, cleanup, component }) => { + if (["snapshot", "effects", "model", "init", "loading", "poll", "ignore", "id", "data", "key", "target", "dirty", "sort"].includes(directive2.value)) + return; + if (customDirectiveHasBeenRegistered(directive2.value)) + return; + let attribute = directive2.rawName.replace("wire:", "x-on:"); + if (directive2.value === "submit" && !directive2.modifiers.includes("prevent")) { + attribute = attribute + ".prevent"; + } + if (directive2.modifiers.includes("async")) { + attribute = attribute.replace(".async", ""); + } + if (directive2.modifiers.includes("renderless")) { + attribute = attribute.replace(".renderless", ""); + } + if (directive2.modifiers.includes("prepend")) { + attribute = attribute.replace(".prepend", ""); + } + if (directive2.modifiers.includes("append")) { + attribute = attribute.replace(".append", ""); + } + let cleanupBinding = import_alpinejs17.default.bind(el, { + [attribute](e) { + directive2.eventContext = e; + directive2.wire = component.$wire; + let execute = () => { + callAndClearComponentDebounces(component, () => { + if (directive2.value === "submit") { + let submitButton = e.submitter || el.querySelector('button[type="submit"], input[type="submit"]'); + setNextActionOrigin({ el, directive: directive2, targetEl: submitButton }); + } else { + setNextActionOrigin({ el, directive: directive2 }); + } + let livewireOptions = e.detail?.livewire; + if (livewireOptions?.interceptAction) { + setNextActionInterceptor(livewireOptions.interceptAction); + } + let expression = directive2.expression; + if (livewireOptions?.defaultParams !== void 0 && !expression.includes("(")) { + let params = Array.isArray(livewireOptions.defaultParams) ? livewireOptions.defaultParams : [livewireOptions.defaultParams]; + expression = expression + "(" + params.map((p) => JSON.stringify(p)).join(", ") + ")"; + } + evaluateActionExpression(el, expression, { scope: { $event: e } }); + }); + }; + if (el.__livewire_confirm) { + el.__livewire_confirm(() => { + execute(); + }, () => { + e.stopImmediatePropagation(); + }); + } else { + execute(); + } + } + }); + cleanup(cleanupBinding); +}); + +// js/directives/wire-confirm.js +directive("confirm", ({ el, directive: directive2 }) => { + let message = directive2.expression; + let shouldPrompt = directive2.modifiers.includes("prompt"); + message = message.replaceAll("\\n", "\n"); + if (message === "") + message = "Are you sure?"; + el.__livewire_confirm = (action, instead) => { + if (shouldPrompt) { + let [question, expected] = message.split("|"); + if (!expected) { + console.warn("Livewire: Must provide expectation with wire:confirm.prompt"); + } else { + let input = prompt(question); + if (input === expected) { + action(); + } else { + instead(); + } + } + } else { + if (confirm(message)) + action(); + else + instead(); + } + }; +}); + +// js/directives/wire-offline.js +var offlineHandlers = /* @__PURE__ */ new Set(); +var onlineHandlers = /* @__PURE__ */ new Set(); +window.addEventListener("offline", () => offlineHandlers.forEach((i) => i())); +window.addEventListener("online", () => onlineHandlers.forEach((i) => i())); +directive("offline", ({ el, directive: directive2, cleanup }) => { + let setOffline = () => toggleBooleanStateDirective(el, directive2, true); + let setOnline = () => toggleBooleanStateDirective(el, directive2, false); + offlineHandlers.add(setOffline); + onlineHandlers.add(setOnline); + cleanup(() => { + offlineHandlers.delete(setOffline); + onlineHandlers.delete(setOnline); + }); +}); + +// js/directives/wire-loading.js +directive("loading", ({ el, directive: directive2, component, cleanup }) => { + let { targets, inverted } = getTargets(el); + let [delay, abortDelay] = applyDelay(directive2); + let cleanupA = whenTargetsArePartOfRequest(component, el, targets, inverted, [ + () => delay(() => toggleBooleanStateDirective(el, directive2, true)), + () => abortDelay(() => toggleBooleanStateDirective(el, directive2, false)) + ]); + let cleanupB = whenTargetsArePartOfFileUpload(component, targets, [ + () => delay(() => toggleBooleanStateDirective(el, directive2, true)), + () => abortDelay(() => toggleBooleanStateDirective(el, directive2, false)) + ]); + cleanup(() => { + cleanupA(); + cleanupB(); + }); +}); +function applyDelay(directive2) { + if (!directive2.modifiers.includes("delay") || directive2.modifiers.includes("none")) + return [(i) => i(), (i) => i()]; + let duration = 200; + let delayModifiers = { + "shortest": 50, + "shorter": 100, + "short": 150, + "default": 200, + "long": 300, + "longer": 500, + "longest": 1e3 + }; + Object.keys(delayModifiers).some((key) => { + if (directive2.modifiers.includes(key)) { + duration = delayModifiers[key]; + return true; + } + }); + let timeout; + let started = false; + return [ + (callback) => { + timeout = setTimeout(() => { + callback(); + started = true; + }, duration); + }, + async (callback) => { + if (started) { + await callback(); + started = false; + } else { + clearTimeout(timeout); + } + } + ]; +} +function whenTargetsArePartOfRequest(component, el, targets, inverted, [startLoading, endLoading]) { + return interceptMessage(({ message, onSend, onSuccess, onFinish }) => { + if (component !== message.component) + return; + if (targets.length === 0) { + let island = closestIsland(el); + if (island && !message.hasActionForIsland(island)) { + return; + } + if (!island && !message.hasActionForComponent()) { + return; + } + } + let matches = true; + let cleared = false; + onSend(({ payload }) => { + if (targets.length > 0 && containsTargets(payload, targets) === inverted) { + matches = false; + } + matches && startLoading(); + }); + onSuccess(({ onEffect }) => { + onEffect(() => { + if (matches && !cleared) { + endLoading(); + cleared = true; + } + }); + }); + onFinish(() => { + if (matches && !cleared) { + endLoading(); + cleared = true; + } + }); + }); +} +function whenTargetsArePartOfFileUpload(component, targets, [startLoading, endLoading]) { + let eventMismatch = (e) => { + let { id, property } = e.detail; + if (id !== component.id) + return true; + if (targets.length > 0 && !targets.map((i) => i.target).includes(property)) + return true; + return false; + }; + let cleanupA = listen(window, "livewire-upload-start", (e) => { + if (eventMismatch(e)) + return; + startLoading(); + }); + let cleanupB = listen(window, "livewire-upload-finish", (e) => { + if (eventMismatch(e)) + return; + endLoading(); + }); + let cleanupC = listen(window, "livewire-upload-error", (e) => { + if (eventMismatch(e)) + return; + endLoading(); + }); + return () => { + cleanupA(); + cleanupB(); + cleanupC(); + }; +} +function containsTargets(payload, targets) { + let { updates, calls } = payload; + return targets.some(({ target, params }) => { + if (params) { + return calls.some(({ method, params: methodParams }) => { + return target === method && params === quickHash(JSON.stringify(methodParams)); + }); + } + let hasMatchingUpdate = Object.keys(updates).some((property) => { + if (property.includes(".")) { + let propertyRoot = property.split(".")[0]; + if (propertyRoot === target) + return true; + } + return property === target; + }); + if (hasMatchingUpdate) + return true; + if (calls.map((i) => i.method).includes(target)) + return true; + }); +} +function getTargets(el) { + let directives = getDirectives(el); + let targets = []; + let inverted = false; + if (directives.has("target")) { + let directive2 = directives.get("target"); + if (directive2.modifiers.includes("except")) + inverted = true; + directive2.methods.forEach(({ method, params }) => { + targets.push({ + target: method, + params: params && params.length > 0 ? quickHash(JSON.stringify(params)) : void 0 + }); + }); + } else { + let nonActionOrModelLivewireDirectives = ["init", "dirty", "offline", "navigate", "target", "loading", "poll", "ignore", "key", "id"]; + directives.all().filter((i) => !nonActionOrModelLivewireDirectives.includes(i.value)).map((i) => i.expression.split("(")[0]).forEach((target) => targets.push({ target })); + } + return { targets, inverted }; +} +function quickHash(subject) { + return btoa(encodeURIComponent(subject)); +} + +// js/directives/wire-replace.js +directive("replace", ({ el, directive: directive2 }) => { + if (directive2.modifiers.includes("self")) { + el.__livewire_replace_self = true; + } else { + el.__livewire_replace = true; + } +}); + +// js/directives/wire-ignore.js +directive("ignore", ({ el, directive: directive2 }) => { + if (directive2.modifiers.includes("self")) { + el.__livewire_ignore_self = true; + } else if (directive2.modifiers.includes("children")) { + el.__livewire_ignore_children = true; + } else { + el.__livewire_ignore = true; + } +}); + +// js/directives/wire-cloak.js +var import_alpinejs18 = __toESM(require_module_cjs()); +import_alpinejs18.default.interceptInit((el) => { + if (el.hasAttribute("wire:cloak")) { + import_alpinejs18.default.mutateDom(() => el.removeAttribute("wire:cloak")); + } +}); + +// js/directives/wire-model.js +var import_alpinejs19 = __toESM(require_module_cjs()); +directive("model", ({ el, directive: directive2, component, cleanup }) => { + component = findComponentByEl(el); + let { expression, modifiers } = directive2; + if (!expression) { + return console.warn("Livewire: [wire:model] is missing a value.", el); + } + if (componentIsMissingProperty(component, expression)) { + return console.warn('Livewire: [wire:model="' + expression + '"] property does not exist on component: [' + component.name + "]", el); + } + if (el.type && el.type.toLowerCase() === "file") { + return handleFileUpload(el, expression, component, cleanup); + } + let liveIndex = modifiers.indexOf("live"); + let isLive = liveIndex !== -1; + let hasLazyWithoutLive = modifiers.includes("lazy") && !isLive; + let shouldSendNetwork = isLive || hasLazyWithoutLive; + let ephemeralModifiers = isLive && !hasLazyWithoutLive ? modifiers.slice(0, liveIndex) : modifiers.slice(); + let networkModifiers = isLive && !hasLazyWithoutLive ? modifiers.slice(liveIndex + 1) : []; + if (hasLazyWithoutLive) { + ephemeralModifiers = ephemeralModifiers.filter((m) => m !== "lazy"); + networkModifiers.push("change"); + } + if (!(ephemeralModifiers.includes("deep") || networkModifiers.includes("deep"))) { + if (!ephemeralModifiers.includes("self")) { + ephemeralModifiers.push("self"); + } + } + let ephemeralOnBlur = ephemeralModifiers.includes("blur"); + let ephemeralOnChange = ephemeralModifiers.includes("change") || ephemeralModifiers.includes("lazy"); + let ephemeralOnEnter = ephemeralModifiers.includes("enter"); + let hasEphemeralTriggers = ephemeralOnBlur || ephemeralOnChange || ephemeralOnEnter; + let networkOnBlur = networkModifiers.includes("blur"); + let networkOnChange = networkModifiers.includes("change") || networkModifiers.includes("lazy"); + let networkOnEnter = networkModifiers.includes("enter"); + let hasNetworkTriggers = networkOnBlur || networkOnChange || networkOnEnter; + let isDebounced = networkModifiers.includes("debounce"); + let isThrottled = networkModifiers.includes("throttle"); + let update = () => { + setNextActionOrigin({ el, directive: directive2 }); + if (isLive || isDebounced) { + setNextActionMetadata({ type: "model.live" }); + } + expression.startsWith("$parent") ? component.$wire.$parent.$commit() : component.$wire.$commit(); + }; + let debouncedUpdate = update; + if (shouldSendNetwork && !hasNetworkTriggers && isRealtimeInput(el) || isDebounced) { + debouncedUpdate = debounce(debouncedUpdate, parseModifierDuration(networkModifiers, "debounce") || 150); + } + if (isThrottled) { + debouncedUpdate = throttle(debouncedUpdate, parseModifierDuration(networkModifiers, "throttle") || 150); + } + let bindings = {}; + if (shouldSendNetwork && networkOnBlur) { + bindings["@blur"] = () => update(); + } + if (shouldSendNetwork && networkOnChange) { + bindings["@change"] = () => update(); + } + if (shouldSendNetwork && networkOnEnter) { + bindings["@keydown.enter"] = () => update(); + } + let xModelTail = getModifierTail(ephemeralModifiers); + bindings["x-model" + xModelTail] = () => { + return { + get() { + return dataGet(component.$wire, expression); + }, + set(value) { + dataSet(component.$wire, expression, value); + if (shouldSendNetwork && !hasNetworkTriggers) { + debouncedUpdate(); + } + } + }; + }; + import_alpinejs19.default.bind(el, bindings); +}); +function getModifierTail(modifiers) { + modifiers = modifiers.filter((i) => ![ + "defer", + "live" + ].includes(i)); + if (modifiers.includes("debounce")) { + let index = modifiers.indexOf("debounce"); + let hasDuration = parseModifierDuration(modifiers, "debounce") !== void 0; + modifiers.splice(index, hasDuration ? 2 : 1); + } + if (modifiers.includes("throttle")) { + let index = modifiers.indexOf("throttle"); + let hasDuration = parseModifierDuration(modifiers, "throttle") !== void 0; + modifiers.splice(index, hasDuration ? 2 : 1); + } + if (modifiers.length === 0) + return ""; + return "." + modifiers.join("."); +} +function isRealtimeInput(el) { + return ["INPUT", "TEXTAREA"].includes(el.tagName.toUpperCase()) && !["checkbox", "radio"].includes(el.type) || el.tagName.toUpperCase() === "UI-SLIDER" || el.tagName.toUpperCase() === "UI-COMPOSER"; +} +function componentIsMissingProperty(component, property) { + if (property.startsWith("$parent")) { + let parent = findComponentByEl(component.el.parentElement, false); + if (!parent) + return true; + return componentIsMissingProperty(parent, property.slice(7).replace(/^\./, "")); + } + let match = property.match(/^\[['"]?([^\]'"]+)['"]?\]/) || property.match(/^([^.\[]+)/); + let baseProperty = match[1]; + return !Object.keys(component.canonical).includes(baseProperty); +} +function debounce(func, wait) { + var timeout; + return function() { + var context = this, args = arguments; + var later = function() { + timeout = null; + func.apply(context, args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; +} +function throttle(func, limit) { + let inThrottle; + return function() { + let context = this, args = arguments; + if (!inThrottle) { + func.apply(context, args); + inThrottle = true; + setTimeout(() => inThrottle = false, limit); + } + }; +} +function parseModifierDuration(modifiers, key) { + let index = modifiers.indexOf(key); + if (index === -1) + return void 0; + let nextModifier = modifiers[modifiers.indexOf(key) + 1] || "invalid-wait"; + let duration = nextModifier.split("ms")[0]; + return !isNaN(duration) ? duration : void 0; +} + +// js/directives/wire-init.js +directive("init", ({ component, el, directive: directive2 }) => { + let fullMethod = directive2.expression ? directive2.expression : "$refresh"; + setNextActionOrigin({ el, directive: directive2 }); + evaluateActionExpression(el, fullMethod); +}); + +// js/directives/wire-poll.js +directive("poll", ({ el, directive: directive2, component }) => { + let interval = extractDurationFrom(directive2.modifiers, 2e3); + let { start: start2, pauseWhile, throttleWhile, stopWhen } = poll(() => { + triggerComponentRequest(el, directive2, component); + }, interval); + start2(); + throttleWhile(() => theTabIsInTheBackground() && theDirectiveIsMissingKeepAlive(directive2)); + pauseWhile(() => theDirectiveHasVisible(directive2) && theElementIsNotInTheViewport(el)); + pauseWhile(() => theDirectiveIsOffTheElement(el)); + pauseWhile(() => livewireIsOffline()); + pauseWhile(() => sessionIsExpired()); + stopWhen(() => theElementIsDisconnected(el)); +}); +function triggerComponentRequest(el, directive2, component) { + setNextActionOrigin({ el, directive: directive2, targetEl: null }); + setNextActionMetadata({ type: "poll" }); + let fullMethod = directive2.expression ? directive2.expression : "$refresh"; + evaluateActionExpression(el, fullMethod); +} +function poll(callback, interval = 2e3) { + let pauseConditions = []; + let throttleConditions = []; + let stopConditions = []; + return { + start() { + let clear = syncronizedInterval(interval, () => { + if (stopConditions.some((i) => i())) + return clear(); + if (pauseConditions.some((i) => i())) + return; + if (throttleConditions.some((i) => i()) && Math.random() < 0.95) + return; + callback(); + }); + }, + pauseWhile(condition) { + pauseConditions.push(condition); + }, + throttleWhile(condition) { + throttleConditions.push(condition); + }, + stopWhen(condition) { + stopConditions.push(condition); + } + }; +} +var clocks = []; +function syncronizedInterval(ms, callback) { + if (!clocks[ms]) { + let clock = { + timer: setInterval(() => clock.callbacks.forEach((i) => i()), ms), + callbacks: /* @__PURE__ */ new Set() + }; + clocks[ms] = clock; + } + clocks[ms].callbacks.add(callback); + return () => { + clocks[ms].callbacks.delete(callback); + if (clocks[ms].callbacks.size === 0) { + clearInterval(clocks[ms].timer); + delete clocks[ms]; + } + }; +} +var isOffline = false; +window.addEventListener("offline", () => isOffline = true); +window.addEventListener("online", () => isOffline = false); +function livewireIsOffline() { + return isOffline; +} +var inBackground = false; +document.addEventListener("visibilitychange", () => { + inBackground = document.hidden; +}, false); +function theTabIsInTheBackground() { + return inBackground; +} +function theDirectiveIsOffTheElement(el) { + return !getDirectives(el).has("poll"); +} +function theDirectiveIsMissingKeepAlive(directive2) { + return !directive2.modifiers.includes("keep-alive"); +} +function theDirectiveHasVisible(directive2) { + return directive2.modifiers.includes("visible"); +} +function theElementIsNotInTheViewport(el) { + let bounding = el.getBoundingClientRect(); + return !(bounding.top < (window.innerHeight || document.documentElement.clientHeight) && bounding.left < (window.innerWidth || document.documentElement.clientWidth) && bounding.bottom > 0 && bounding.right > 0); +} +function theElementIsDisconnected(el) { + return el.isConnected === false; +} +function extractDurationFrom(modifiers, defaultDuration) { + let durationInMilliSeconds; + let durationInMilliSecondsString = modifiers.find((mod) => mod.match(/([0-9]+)ms/)); + let durationInSecondsString = modifiers.find((mod) => mod.match(/([0-9]+)s/)); + if (durationInMilliSecondsString) { + durationInMilliSeconds = Number(durationInMilliSecondsString.replace("ms", "")); + } else if (durationInSecondsString) { + durationInMilliSeconds = Number(durationInSecondsString.replace("s", "")) * 1e3; + } + return durationInMilliSeconds || defaultDuration; +} + +// js/directives/wire-show.js +var import_alpinejs20 = __toESM(require_module_cjs()); +import_alpinejs20.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:show")) { + let { name, value } = el.attributes[i]; + let modifierString = name.split("wire:show")[1]; + let expression = value.trim(); + import_alpinejs20.default.bind(el, { + ["x-show" + modifierString]() { + return evaluateActionExpression(el, expression); + } + }); + } + } +}); + +// js/directives/wire-text.js +var import_alpinejs21 = __toESM(require_module_cjs()); +import_alpinejs21.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:text")) { + let { name, value } = el.attributes[i]; + let modifierString = name.split("wire:text")[1]; + let expression = value.trim(); + import_alpinejs21.default.bind(el, { + ["x-text" + modifierString]() { + return evaluateActionExpression(el, expression); + } + }); + } + } +}); + +// js/directives/wire-bind.js +var import_alpinejs22 = __toESM(require_module_cjs()); +import_alpinejs22.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:bind:")) { + let { name, value } = el.attributes[i]; + let remainder = name.split("wire:bind")[1]; + let expression = value.trim(); + import_alpinejs22.default.bind(el, { + ["x-bind" + remainder]() { + return evaluateActionExpression(el, expression); + } + }); + } + } +}); + +// js/index.js +var Livewire2 = { + directive, + dispatchTo, + interceptAction: (callback) => interceptAction(callback), + interceptMessage: (callback) => interceptMessage(callback), + interceptRequest: (callback) => interceptRequest(callback), + fireAction: (component, method, params = [], metadata = {}) => fireAction(component, method, params, metadata), + start, + first, + find, + getByName, + all, + hook: on, + trigger, + triggerAsync, + dispatch: dispatchGlobal, + on: on2, + get navigate() { + return import_alpinejs23.default.navigate; + } +}; +var warnAboutMultipleInstancesOf = (entity) => console.warn(`Detected multiple instances of ${entity} running`); +if (window.Livewire) + warnAboutMultipleInstancesOf("Livewire"); +if (window.Alpine) + warnAboutMultipleInstancesOf("Alpine"); +window.Livewire = Livewire2; +window.Alpine = import_alpinejs23.default; +if (window.livewireScriptConfig === void 0) { + window.Alpine.__fromLivewire = true; + document.addEventListener("DOMContentLoaded", () => { + if (window.Alpine.__fromLivewire === void 0) { + warnAboutMultipleInstancesOf("Alpine"); + } + Livewire2.start(); + }); +} +var export_Alpine = import_alpinejs23.default; +export { + export_Alpine as Alpine, + Livewire2 as Livewire +}; +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ +/*! Bundled license information: + +sortablejs/Sortable.min.js: + (*! Sortable 1.15.2 - MIT | git://github.com/SortableJS/Sortable.git *) +*/ +/*! Bundled license information: + +tabbable/dist/index.js: + (*! + * tabbable 6.4.0 + * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE + *) + +focus-trap/dist/focus-trap.js: + (*! + * focus-trap 8.0.0 + * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE + *) + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *) +*/ +//# sourceMappingURL=livewire.csp.esm.js.map diff --git a/admin/public/vendor/livewire/livewire.csp.esm.js.map b/admin/public/vendor/livewire/livewire.csp.esm.js.map new file mode 100644 index 00000000..d753cb13 --- /dev/null +++ b/admin/public/vendor/livewire/livewire.csp.esm.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../node_modules/@alpinejs/csp/dist/module.cjs.js", "../node_modules/@alpinejs/collapse/dist/module.cjs.js", "../node_modules/@alpinejs/focus/dist/module.cjs.js", "../node_modules/@alpinejs/intersect/dist/module.cjs.js", "../node_modules/@alpinejs/sort/dist/module.cjs.js", "../node_modules/@alpinejs/resize/dist/module.cjs.js", "../node_modules/@alpinejs/anchor/dist/module.cjs.js", "../node_modules/nprogress/nprogress.js", "../node_modules/@alpinejs/morph/dist/module.cjs.js", "../node_modules/@alpinejs/mask/dist/module.cjs.js", "../js/utils.js", "../js/features/supportFileUploads.js", "../js/features/supportEntangle.js", "../js/$wire.js", "../js/hooks.js", "../js/request/interactions.js", "../js/request/request.js", "../js/request/interceptor.js", "../js/utils/modal.js", "../js/request/messageBus.js", "../js/request/message.js", "../js/request/action.js", "../js/request/legacy.js", "../js/request/index.js", "../js/features/supportErrors.js", "../js/features/supportRefs.js", "../js/directives.js", "../js/directives/shared.js", "../js/directives/wire-dirty.js", "../js/features/supportJsModules.js", "../js/component.js", "../js/fragment.js", "../js/store.js", "../js/events.js", "../js/lifecycle.js", "../node_modules/@alpinejs/persist/dist/module.esm.js", "../js/plugins/history/utils.js", "../js/plugins/history/coordinator.js", "../js/plugins/navigate/history.js", "../js/plugins/navigate/links.js", "../js/plugins/navigate/fetch.js", "../js/plugins/navigate/prefetch.js", "../js/plugins/navigate/teleport.js", "../js/plugins/navigate/scroll.js", "../js/plugins/navigate/persist.js", "../js/plugins/navigate/bar.js", "../js/plugins/navigate/popover.js", "../js/plugins/navigate/page.js", "../js/plugins/navigate/index.js", "../js/plugins/history/index.js", "../js/index.js", "../js/features/supportListeners.js", "../js/features/supportScriptsAndAssets.js", "../js/evaluator.js", "../js/features/supportJsEvaluation.js", "../js/morph.js", "../js/directives/wire-transition.js", "../js/features/supportMorphDom.js", "../js/features/supportDispatches.js", "../js/features/supportDisablingFormsDuringRequest.js", "../js/features/supportFileDownloads.js", "../js/features/supportQueryString.js", "../js/features/supportLaravelEcho.js", "../js/features/supportStreaming.js", "../js/features/supportNavigate.js", "../js/features/supportRedirects.js", "../js/features/supportIslands.js", "../js/features/supportSlots.js", "../js/features/supportDataLoading.js", "../js/directives/wire-current.js", "../js/directives/wire-navigate.js", "../js/features/supportDataCurrent.js", "../js/features/supportPreserveScroll.js", "../js/features/supportWireIntersect.js", "../js/features/supportWireSort.js", "../js/features/supportCssModules.js", "../js/debounce.js", "../js/directives/wire-wildcard.js", "../js/directives/wire-confirm.js", "../js/directives/wire-offline.js", "../js/directives/wire-loading.js", "../js/directives/wire-replace.js", "../js/directives/wire-ignore.js", "../js/directives/wire-cloak.js", "../js/directives/wire-model.js", "../js/directives/wire-init.js", "../js/directives/wire-poll.js", "../js/directives/wire-show.js", "../js/directives/wire-text.js", "../js/directives/wire-bind.js"], + "sourcesContent": ["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// node_modules/@vue/shared/dist/shared.cjs.js\nvar require_shared_cjs = __commonJS({\n \"node_modules/@vue/shared/dist/shared.cjs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n function makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n }\n var PatchFlagNames = {\n [\n 1\n /* TEXT */\n ]: `TEXT`,\n [\n 2\n /* CLASS */\n ]: `CLASS`,\n [\n 4\n /* STYLE */\n ]: `STYLE`,\n [\n 8\n /* PROPS */\n ]: `PROPS`,\n [\n 16\n /* FULL_PROPS */\n ]: `FULL_PROPS`,\n [\n 32\n /* HYDRATE_EVENTS */\n ]: `HYDRATE_EVENTS`,\n [\n 64\n /* STABLE_FRAGMENT */\n ]: `STABLE_FRAGMENT`,\n [\n 128\n /* KEYED_FRAGMENT */\n ]: `KEYED_FRAGMENT`,\n [\n 256\n /* UNKEYED_FRAGMENT */\n ]: `UNKEYED_FRAGMENT`,\n [\n 512\n /* NEED_PATCH */\n ]: `NEED_PATCH`,\n [\n 1024\n /* DYNAMIC_SLOTS */\n ]: `DYNAMIC_SLOTS`,\n [\n 2048\n /* DEV_ROOT_FRAGMENT */\n ]: `DEV_ROOT_FRAGMENT`,\n [\n -1\n /* HOISTED */\n ]: `HOISTED`,\n [\n -2\n /* BAIL */\n ]: `BAIL`\n };\n var slotFlagsText = {\n [\n 1\n /* STABLE */\n ]: \"STABLE\",\n [\n 2\n /* DYNAMIC */\n ]: \"DYNAMIC\",\n [\n 3\n /* FORWARDED */\n ]: \"FORWARDED\"\n };\n var GLOBALS_WHITE_LISTED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt\";\n var isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);\n var range = 2;\n function generateCodeFrame(source, start2 = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start2) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start2 - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start2);\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n }\n var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\n var isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\n var isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`);\n var unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\n var attrValidationCache = {};\n function isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n }\n var propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n };\n var isNoUnitNumericStyleProp = /* @__PURE__ */ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width`);\n var isKnownAttr = /* @__PURE__ */ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`);\n function normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = normalizeStyle(isString(item) ? parseStringStyle(item) : item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isObject2(value)) {\n return value;\n }\n }\n var listDelimiterRE = /;(?![^(]*\\))/g;\n var propertyDelimiterRE = /:(.+)/;\n function parseStringStyle(cssText) {\n const ret = {};\n cssText.split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n }\n function stringifyStyle(styles) {\n let ret = \"\";\n if (!styles) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\" && isNoUnitNumericStyleProp(normalizedKey)) {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n }\n function normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject2(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n }\n var HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\n var SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\n var VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\n var isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\n var isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\n var isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n var escapeRE = /[\"'&<>]/;\n function escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n }\n var commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\n function escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n }\n function looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n }\n function looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject2(a);\n bValidType = isObject2(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n }\n function looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n }\n var toDisplayString = (val) => {\n return val == null ? \"\" : isObject2(val) ? JSON.stringify(val, replacer, 2) : String(val);\n };\n var replacer = (_key, val) => {\n if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n entries[`${key} =>`] = val2;\n return entries;\n }, {})\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n } else if (isObject2(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n };\n var babelParserDefaultPlugins = [\n \"bigInt\",\n \"optionalChaining\",\n \"nullishCoalescingOperator\"\n ];\n var EMPTY_OBJ = Object.freeze({});\n var EMPTY_ARR = Object.freeze([]);\n var NOOP = () => {\n };\n var NO = () => false;\n var onRE = /^on[^a-z]/;\n var isOn = (key) => onRE.test(key);\n var isModelListener = (key) => key.startsWith(\"onUpdate:\");\n var extend = Object.assign;\n var remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n };\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasOwn = (val, key) => hasOwnProperty.call(val, key);\n var isArray = Array.isArray;\n var isMap = (val) => toTypeString(val) === \"[object Map]\";\n var isSet = (val) => toTypeString(val) === \"[object Set]\";\n var isDate = (val) => val instanceof Date;\n var isFunction = (val) => typeof val === \"function\";\n var isString = (val) => typeof val === \"string\";\n var isSymbol = (val) => typeof val === \"symbol\";\n var isObject2 = (val) => val !== null && typeof val === \"object\";\n var isPromise = (val) => {\n return isObject2(val) && isFunction(val.then) && isFunction(val.catch);\n };\n var objectToString = Object.prototype.toString;\n var toTypeString = (value) => objectToString.call(value);\n var toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n };\n var isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\n var isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\n var isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n );\n var cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n };\n var camelizeRE = /-(\\w)/g;\n var camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n });\n var hyphenateRE = /\\B([A-Z])/g;\n var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\n var capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\n var toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\n var hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue);\n var invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n };\n var def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n };\n var toNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n };\n var _globalThis;\n var getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n };\n exports.EMPTY_ARR = EMPTY_ARR;\n exports.EMPTY_OBJ = EMPTY_OBJ;\n exports.NO = NO;\n exports.NOOP = NOOP;\n exports.PatchFlagNames = PatchFlagNames;\n exports.babelParserDefaultPlugins = babelParserDefaultPlugins;\n exports.camelize = camelize;\n exports.capitalize = capitalize;\n exports.def = def;\n exports.escapeHtml = escapeHtml;\n exports.escapeHtmlComment = escapeHtmlComment;\n exports.extend = extend;\n exports.generateCodeFrame = generateCodeFrame;\n exports.getGlobalThis = getGlobalThis;\n exports.hasChanged = hasChanged;\n exports.hasOwn = hasOwn;\n exports.hyphenate = hyphenate;\n exports.invokeArrayFns = invokeArrayFns;\n exports.isArray = isArray;\n exports.isBooleanAttr = isBooleanAttr2;\n exports.isDate = isDate;\n exports.isFunction = isFunction;\n exports.isGloballyWhitelisted = isGloballyWhitelisted;\n exports.isHTMLTag = isHTMLTag;\n exports.isIntegerKey = isIntegerKey;\n exports.isKnownAttr = isKnownAttr;\n exports.isMap = isMap;\n exports.isModelListener = isModelListener;\n exports.isNoUnitNumericStyleProp = isNoUnitNumericStyleProp;\n exports.isObject = isObject2;\n exports.isOn = isOn;\n exports.isPlainObject = isPlainObject;\n exports.isPromise = isPromise;\n exports.isReservedProp = isReservedProp;\n exports.isSSRSafeAttrName = isSSRSafeAttrName;\n exports.isSVGTag = isSVGTag;\n exports.isSet = isSet;\n exports.isSpecialBooleanAttr = isSpecialBooleanAttr;\n exports.isString = isString;\n exports.isSymbol = isSymbol;\n exports.isVoidTag = isVoidTag;\n exports.looseEqual = looseEqual;\n exports.looseIndexOf = looseIndexOf;\n exports.makeMap = makeMap;\n exports.normalizeClass = normalizeClass;\n exports.normalizeStyle = normalizeStyle;\n exports.objectToString = objectToString;\n exports.parseStringStyle = parseStringStyle;\n exports.propsToAttrMap = propsToAttrMap;\n exports.remove = remove;\n exports.slotFlagsText = slotFlagsText;\n exports.stringifyStyle = stringifyStyle;\n exports.toDisplayString = toDisplayString;\n exports.toHandlerKey = toHandlerKey;\n exports.toNumber = toNumber;\n exports.toRawType = toRawType;\n exports.toTypeString = toTypeString;\n }\n});\n\n// node_modules/@vue/shared/index.js\nvar require_shared = __commonJS({\n \"node_modules/@vue/shared/index.js\"(exports, module2) {\n \"use strict\";\n if (false) {\n module2.exports = null;\n } else {\n module2.exports = require_shared_cjs();\n }\n }\n});\n\n// node_modules/@vue/reactivity/dist/reactivity.cjs.js\nvar require_reactivity_cjs = __commonJS({\n \"node_modules/@vue/reactivity/dist/reactivity.cjs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var shared = require_shared();\n var targetMap = /* @__PURE__ */ new WeakMap();\n var effectStack = [];\n var activeEffect;\n var ITERATE_KEY = Symbol(\"iterate\");\n var MAP_KEY_ITERATE_KEY = Symbol(\"Map key iterate\");\n function isEffect(fn) {\n return fn && fn._isEffect === true;\n }\n function effect3(fn, options = shared.EMPTY_OBJ) {\n if (isEffect(fn)) {\n fn = fn.raw;\n }\n const effect4 = createReactiveEffect(fn, options);\n if (!options.lazy) {\n effect4();\n }\n return effect4;\n }\n function stop2(effect4) {\n if (effect4.active) {\n cleanup(effect4);\n if (effect4.options.onStop) {\n effect4.options.onStop();\n }\n effect4.active = false;\n }\n }\n var uid = 0;\n function createReactiveEffect(fn, options) {\n const effect4 = function reactiveEffect() {\n if (!effect4.active) {\n return fn();\n }\n if (!effectStack.includes(effect4)) {\n cleanup(effect4);\n try {\n enableTracking();\n effectStack.push(effect4);\n activeEffect = effect4;\n return fn();\n } finally {\n effectStack.pop();\n resetTracking();\n activeEffect = effectStack[effectStack.length - 1];\n }\n }\n };\n effect4.id = uid++;\n effect4.allowRecurse = !!options.allowRecurse;\n effect4._isEffect = true;\n effect4.active = true;\n effect4.raw = fn;\n effect4.deps = [];\n effect4.options = options;\n return effect4;\n }\n function cleanup(effect4) {\n const { deps } = effect4;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect4);\n }\n deps.length = 0;\n }\n }\n var shouldTrack = true;\n var trackStack = [];\n function pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n }\n function enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n }\n function resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n }\n function track(target, type, key) {\n if (!shouldTrack || activeEffect === void 0) {\n return;\n }\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = /* @__PURE__ */ new Set());\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (activeEffect.options.onTrack) {\n activeEffect.options.onTrack({\n effect: activeEffect,\n target,\n type,\n key\n });\n }\n }\n }\n function trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n const effects = /* @__PURE__ */ new Set();\n const add2 = (effectsToAdd) => {\n if (effectsToAdd) {\n effectsToAdd.forEach((effect4) => {\n if (effect4 !== activeEffect || effect4.allowRecurse) {\n effects.add(effect4);\n }\n });\n }\n };\n if (type === \"clear\") {\n depsMap.forEach(add2);\n } else if (key === \"length\" && shared.isArray(target)) {\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newValue) {\n add2(dep);\n }\n });\n } else {\n if (key !== void 0) {\n add2(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!shared.isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (shared.isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (shared.isIntegerKey(key)) {\n add2(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!shared.isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (shared.isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (shared.isMap(target)) {\n add2(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const run = (effect4) => {\n if (effect4.options.onTrigger) {\n effect4.options.onTrigger({\n effect: effect4,\n target,\n key,\n type,\n newValue,\n oldValue,\n oldTarget\n });\n }\n if (effect4.options.scheduler) {\n effect4.options.scheduler(effect4);\n } else {\n effect4();\n }\n };\n effects.forEach(run);\n }\n var isNonTrackableKeys = /* @__PURE__ */ shared.makeMap(`__proto__,__v_isRef,__isVue`);\n var builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(shared.isSymbol));\n var get2 = /* @__PURE__ */ createGetter();\n var shallowGet = /* @__PURE__ */ createGetter(false, true);\n var readonlyGet = /* @__PURE__ */ createGetter(true);\n var shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);\n var arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\n function createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw2(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw2));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw2(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n }\n function createGetter(isReadonly2 = false, shallow = false) {\n return function get3(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = shared.isArray(target);\n if (!isReadonly2 && targetIsArray && shared.hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (shared.isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n const shouldUnwrap = !targetIsArray || !shared.isIntegerKey(key);\n return shouldUnwrap ? res.value : res;\n }\n if (shared.isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive3(res);\n }\n return res;\n };\n }\n var set2 = /* @__PURE__ */ createSetter();\n var shallowSet = /* @__PURE__ */ createSetter(true);\n function createSetter(shallow = false) {\n return function set3(target, key, value, receiver) {\n let oldValue = target[key];\n if (!shallow) {\n value = toRaw2(value);\n oldValue = toRaw2(oldValue);\n if (!shared.isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = shared.isArray(target) && shared.isIntegerKey(key) ? Number(key) < target.length : shared.hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw2(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (shared.hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n };\n }\n function deleteProperty(target, key) {\n const hadKey = shared.hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n function has(target, key) {\n const result = Reflect.has(target, key);\n if (!shared.isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n function ownKeys(target) {\n track(target, \"iterate\", shared.isArray(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n }\n var mutableHandlers = {\n get: get2,\n set: set2,\n deleteProperty,\n has,\n ownKeys\n };\n var readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n {\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n {\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n };\n var shallowReactiveHandlers = /* @__PURE__ */ shared.extend({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n });\n var shallowReadonlyHandlers = /* @__PURE__ */ shared.extend({}, readonlyHandlers, {\n get: shallowReadonlyGet\n });\n var toReactive = (value) => shared.isObject(value) ? reactive3(value) : value;\n var toReadonly = (value) => shared.isObject(value) ? readonly(value) : value;\n var toShallow = (value) => value;\n var getProto = (v) => Reflect.getPrototypeOf(v);\n function get$1(target, key, isReadonly2 = false, isShallow = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const rawKey = toRaw2(key);\n if (key !== rawKey) {\n !isReadonly2 && track(rawTarget, \"get\", key);\n }\n !isReadonly2 && track(rawTarget, \"get\", rawKey);\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n }\n function has$1(key, isReadonly2 = false) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const rawKey = toRaw2(key);\n if (key !== rawKey) {\n !isReadonly2 && track(rawTarget, \"has\", key);\n }\n !isReadonly2 && track(rawTarget, \"has\", rawKey);\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n }\n function size(target, isReadonly2 = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n !isReadonly2 && track(toRaw2(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n }\n function add(value) {\n value = toRaw2(value);\n const target = toRaw2(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n }\n function set$1(key, value) {\n value = toRaw2(value);\n const target = toRaw2(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw2(key);\n hadKey = has2.call(target, key);\n } else {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (shared.hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n }\n function deleteEntry(key) {\n const target = toRaw2(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw2(key);\n hadKey = has2.call(target, key);\n } else {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3 ? get3.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n function clear() {\n const target = toRaw2(this);\n const hadItems = target.size !== 0;\n const oldTarget = shared.isMap(target) ? new Map(target) : new Set(target);\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n }\n function createForEach(isReadonly2, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n }\n function createIterableMethod(method, isReadonly2, isShallow) {\n return function(...args) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const targetIsMap = shared.isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n }\n function createReadonlyMethod(type) {\n return function(...args) {\n {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${shared.capitalize(type)} operation ${key}failed: target is readonly.`, toRaw2(this));\n }\n return type === \"delete\" ? false : this;\n };\n }\n function createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n }\n var [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\n function createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(shared.hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n };\n }\n var mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n };\n var shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n };\n var readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n };\n var shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n };\n function checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw2(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = shared.toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`);\n }\n }\n var reactiveMap = /* @__PURE__ */ new WeakMap();\n var shallowReactiveMap = /* @__PURE__ */ new WeakMap();\n var readonlyMap = /* @__PURE__ */ new WeakMap();\n var shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\n function targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n }\n function getTargetType(value) {\n return value[\n \"__v_skip\"\n /* SKIP */\n ] || !Object.isExtensible(value) ? 0 : targetTypeMap(shared.toRawType(value));\n }\n function reactive3(target) {\n if (target && target[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ]) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n }\n function shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n }\n function readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n }\n function shallowReadonly(target) {\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\n }\n function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!shared.isObject(target)) {\n {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\n \"__v_raw\"\n /* RAW */\n ] && !(isReadonly2 && target[\n \"__v_isReactive\"\n /* IS_REACTIVE */\n ])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n }\n function isReactive2(value) {\n if (isReadonly(value)) {\n return isReactive2(value[\n \"__v_raw\"\n /* RAW */\n ]);\n }\n return !!(value && value[\n \"__v_isReactive\"\n /* IS_REACTIVE */\n ]);\n }\n function isReadonly(value) {\n return !!(value && value[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ]);\n }\n function isProxy(value) {\n return isReactive2(value) || isReadonly(value);\n }\n function toRaw2(observed) {\n return observed && toRaw2(observed[\n \"__v_raw\"\n /* RAW */\n ]) || observed;\n }\n function markRaw(value) {\n shared.def(value, \"__v_skip\", true);\n return value;\n }\n var convert = (val) => shared.isObject(val) ? reactive3(val) : val;\n function isRef(r) {\n return Boolean(r && r.__v_isRef === true);\n }\n function ref(value) {\n return createRef(value);\n }\n function shallowRef(value) {\n return createRef(value, true);\n }\n var RefImpl = class {\n constructor(value, _shallow = false) {\n this._shallow = _shallow;\n this.__v_isRef = true;\n this._rawValue = _shallow ? value : toRaw2(value);\n this._value = _shallow ? value : convert(value);\n }\n get value() {\n track(toRaw2(this), \"get\", \"value\");\n return this._value;\n }\n set value(newVal) {\n newVal = this._shallow ? newVal : toRaw2(newVal);\n if (shared.hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = this._shallow ? newVal : convert(newVal);\n trigger(toRaw2(this), \"set\", \"value\", newVal);\n }\n }\n };\n function createRef(rawValue, shallow = false) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n }\n function triggerRef(ref2) {\n trigger(toRaw2(ref2), \"set\", \"value\", ref2.value);\n }\n function unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n }\n var shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n };\n function proxyRefs(objectWithRefs) {\n return isReactive2(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n }\n var CustomRefImpl = class {\n constructor(factory) {\n this.__v_isRef = true;\n const { get: get3, set: set3 } = factory(() => track(this, \"get\", \"value\"), () => trigger(this, \"set\", \"value\"));\n this._get = get3;\n this._set = set3;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n };\n function customRef(factory) {\n return new CustomRefImpl(factory);\n }\n function toRefs(object) {\n if (!isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = shared.isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n }\n var ObjectRefImpl = class {\n constructor(_object, _key) {\n this._object = _object;\n this._key = _key;\n this.__v_isRef = true;\n }\n get value() {\n return this._object[this._key];\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n };\n function toRef(object, key) {\n return isRef(object[key]) ? object[key] : new ObjectRefImpl(object, key);\n }\n var ComputedRefImpl = class {\n constructor(getter, _setter, isReadonly2) {\n this._setter = _setter;\n this._dirty = true;\n this.__v_isRef = true;\n this.effect = effect3(getter, {\n lazy: true,\n scheduler: () => {\n if (!this._dirty) {\n this._dirty = true;\n trigger(toRaw2(this), \"set\", \"value\");\n }\n }\n });\n this[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ] = isReadonly2;\n }\n get value() {\n const self2 = toRaw2(this);\n if (self2._dirty) {\n self2._value = this.effect();\n self2._dirty = false;\n }\n track(self2, \"get\", \"value\");\n return self2._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n };\n function computed(getterOrOptions) {\n let getter;\n let setter;\n if (shared.isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n setter = () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n };\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n return new ComputedRefImpl(getter, setter, shared.isFunction(getterOrOptions) || !getterOrOptions.set);\n }\n exports.ITERATE_KEY = ITERATE_KEY;\n exports.computed = computed;\n exports.customRef = customRef;\n exports.effect = effect3;\n exports.enableTracking = enableTracking;\n exports.isProxy = isProxy;\n exports.isReactive = isReactive2;\n exports.isReadonly = isReadonly;\n exports.isRef = isRef;\n exports.markRaw = markRaw;\n exports.pauseTracking = pauseTracking;\n exports.proxyRefs = proxyRefs;\n exports.reactive = reactive3;\n exports.readonly = readonly;\n exports.ref = ref;\n exports.resetTracking = resetTracking;\n exports.shallowReactive = shallowReactive;\n exports.shallowReadonly = shallowReadonly;\n exports.shallowRef = shallowRef;\n exports.stop = stop2;\n exports.toRaw = toRaw2;\n exports.toRef = toRef;\n exports.toRefs = toRefs;\n exports.track = track;\n exports.trigger = trigger;\n exports.triggerRef = triggerRef;\n exports.unref = unref;\n }\n});\n\n// node_modules/@vue/reactivity/index.js\nvar require_reactivity = __commonJS({\n \"node_modules/@vue/reactivity/index.js\"(exports, module2) {\n \"use strict\";\n if (false) {\n module2.exports = null;\n } else {\n module2.exports = require_reactivity_cjs();\n }\n }\n});\n\n// packages/csp/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n Alpine: () => src_default,\n default: () => module_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/alpinejs/src/scheduler.js\nvar flushPending = false;\nvar flushing = false;\nvar queue = [];\nvar lastFlushedIndex = -1;\nvar transactionActive = false;\nfunction scheduler(callback) {\n queueJob(callback);\n}\nfunction startTransaction() {\n transactionActive = true;\n}\nfunction commitTransaction() {\n transactionActive = false;\n queueFlush();\n}\nfunction queueJob(job) {\n if (!queue.includes(job))\n queue.push(job);\n queueFlush();\n}\nfunction dequeueJob(job) {\n let index = queue.indexOf(job);\n if (index !== -1 && index > lastFlushedIndex)\n queue.splice(index, 1);\n}\nfunction queueFlush() {\n if (!flushing && !flushPending) {\n if (transactionActive)\n return;\n flushPending = true;\n queueMicrotask(flushJobs);\n }\n}\nfunction flushJobs() {\n flushPending = false;\n flushing = true;\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n lastFlushedIndex = i;\n }\n queue.length = 0;\n lastFlushedIndex = -1;\n flushing = false;\n}\n\n// packages/alpinejs/src/reactivity.js\nvar reactive;\nvar effect;\nvar release;\nvar raw;\nvar shouldSchedule = true;\nfunction disableEffectScheduling(callback) {\n shouldSchedule = false;\n callback();\n shouldSchedule = true;\n}\nfunction setReactivityEngine(engine) {\n reactive = engine.reactive;\n release = engine.release;\n effect = (callback) => engine.effect(callback, { scheduler: (task) => {\n if (shouldSchedule) {\n scheduler(task);\n } else {\n task();\n }\n } });\n raw = engine.raw;\n}\nfunction overrideEffect(override) {\n effect = override;\n}\nfunction elementBoundEffect(el) {\n let cleanup = () => {\n };\n let wrappedEffect = (callback) => {\n let effectReference = effect(callback);\n if (!el._x_effects) {\n el._x_effects = /* @__PURE__ */ new Set();\n el._x_runEffects = () => {\n el._x_effects.forEach((i) => i());\n };\n }\n el._x_effects.add(effectReference);\n cleanup = () => {\n if (effectReference === void 0)\n return;\n el._x_effects.delete(effectReference);\n release(effectReference);\n };\n return effectReference;\n };\n return [wrappedEffect, () => {\n cleanup();\n }];\n}\nfunction watch(getter, callback) {\n let firstTime = true;\n let oldValue;\n let oldValueJSON;\n let effectReference = effect(() => {\n let value = getter();\n let newJSON = JSON.stringify(value);\n if (!firstTime) {\n if (typeof value === \"object\" || value !== oldValue) {\n let previousValue = typeof oldValue === \"object\" ? JSON.parse(oldValueJSON) : oldValue;\n queueMicrotask(() => {\n callback(value, previousValue);\n });\n }\n }\n oldValue = value;\n oldValueJSON = newJSON;\n firstTime = false;\n });\n return () => release(effectReference);\n}\nasync function transaction(callback) {\n startTransaction();\n try {\n await callback();\n await Promise.resolve();\n } finally {\n commitTransaction();\n }\n}\n\n// packages/alpinejs/src/mutation.js\nvar onAttributeAddeds = [];\nvar onElRemoveds = [];\nvar onElAddeds = [];\nfunction onElAdded(callback) {\n onElAddeds.push(callback);\n}\nfunction onElRemoved(el, callback) {\n if (typeof callback === \"function\") {\n if (!el._x_cleanups)\n el._x_cleanups = [];\n el._x_cleanups.push(callback);\n } else {\n callback = el;\n onElRemoveds.push(callback);\n }\n}\nfunction onAttributesAdded(callback) {\n onAttributeAddeds.push(callback);\n}\nfunction onAttributeRemoved(el, name, callback) {\n if (!el._x_attributeCleanups)\n el._x_attributeCleanups = {};\n if (!el._x_attributeCleanups[name])\n el._x_attributeCleanups[name] = [];\n el._x_attributeCleanups[name].push(callback);\n}\nfunction cleanupAttributes(el, names) {\n if (!el._x_attributeCleanups)\n return;\n Object.entries(el._x_attributeCleanups).forEach(([name, value]) => {\n if (names === void 0 || names.includes(name)) {\n value.forEach((i) => i());\n delete el._x_attributeCleanups[name];\n }\n });\n}\nfunction cleanupElement(el) {\n var _a, _b;\n (_a = el._x_effects) == null ? void 0 : _a.forEach(dequeueJob);\n while ((_b = el._x_cleanups) == null ? void 0 : _b.length)\n el._x_cleanups.pop()();\n}\nvar observer = new MutationObserver(onMutate);\nvar currentlyObserving = false;\nfunction startObservingMutations() {\n observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });\n currentlyObserving = true;\n}\nfunction stopObservingMutations() {\n flushObserver();\n observer.disconnect();\n currentlyObserving = false;\n}\nvar queuedMutations = [];\nfunction flushObserver() {\n let records = observer.takeRecords();\n queuedMutations.push(() => records.length > 0 && onMutate(records));\n let queueLengthWhenTriggered = queuedMutations.length;\n queueMicrotask(() => {\n if (queuedMutations.length === queueLengthWhenTriggered) {\n while (queuedMutations.length > 0)\n queuedMutations.shift()();\n }\n });\n}\nfunction mutateDom(callback) {\n if (!currentlyObserving)\n return callback();\n stopObservingMutations();\n let result = callback();\n startObservingMutations();\n return result;\n}\nvar isCollecting = false;\nvar deferredMutations = [];\nfunction deferMutations() {\n isCollecting = true;\n}\nfunction flushAndStopDeferringMutations() {\n isCollecting = false;\n onMutate(deferredMutations);\n deferredMutations = [];\n}\nfunction onMutate(mutations) {\n if (isCollecting) {\n deferredMutations = deferredMutations.concat(mutations);\n return;\n }\n let addedNodes = [];\n let removedNodes = /* @__PURE__ */ new Set();\n let addedAttributes = /* @__PURE__ */ new Map();\n let removedAttributes = /* @__PURE__ */ new Map();\n for (let i = 0; i < mutations.length; i++) {\n if (mutations[i].target._x_ignoreMutationObserver)\n continue;\n if (mutations[i].type === \"childList\") {\n mutations[i].removedNodes.forEach((node) => {\n if (node.nodeType !== 1)\n return;\n if (!node._x_marker)\n return;\n removedNodes.add(node);\n });\n mutations[i].addedNodes.forEach((node) => {\n if (node.nodeType !== 1)\n return;\n if (removedNodes.has(node)) {\n removedNodes.delete(node);\n return;\n }\n if (node._x_marker)\n return;\n addedNodes.push(node);\n });\n }\n if (mutations[i].type === \"attributes\") {\n let el = mutations[i].target;\n let name = mutations[i].attributeName;\n let oldValue = mutations[i].oldValue;\n let add = () => {\n if (!addedAttributes.has(el))\n addedAttributes.set(el, []);\n addedAttributes.get(el).push({ name, value: el.getAttribute(name) });\n };\n let remove = () => {\n if (!removedAttributes.has(el))\n removedAttributes.set(el, []);\n removedAttributes.get(el).push(name);\n };\n if (el.hasAttribute(name) && oldValue === null) {\n add();\n } else if (el.hasAttribute(name)) {\n remove();\n add();\n } else {\n remove();\n }\n }\n }\n removedAttributes.forEach((attrs, el) => {\n cleanupAttributes(el, attrs);\n });\n addedAttributes.forEach((attrs, el) => {\n onAttributeAddeds.forEach((i) => i(el, attrs));\n });\n for (let node of removedNodes) {\n if (addedNodes.some((i) => i.contains(node)))\n continue;\n onElRemoveds.forEach((i) => i(node));\n }\n for (let node of addedNodes) {\n if (!node.isConnected)\n continue;\n onElAddeds.forEach((i) => i(node));\n }\n addedNodes = null;\n removedNodes = null;\n addedAttributes = null;\n removedAttributes = null;\n}\n\n// packages/alpinejs/src/scope.js\nfunction scope(node) {\n return mergeProxies(closestDataStack(node));\n}\nfunction addScopeToNode(node, data2, referenceNode) {\n node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)];\n return () => {\n node._x_dataStack = node._x_dataStack.filter((i) => i !== data2);\n };\n}\nfunction closestDataStack(node) {\n if (node._x_dataStack)\n return node._x_dataStack;\n if (typeof ShadowRoot === \"function\" && node instanceof ShadowRoot) {\n return closestDataStack(node.host);\n }\n if (!node.parentNode) {\n return [];\n }\n return closestDataStack(node.parentNode);\n}\nfunction mergeProxies(objects) {\n return new Proxy({ objects }, mergeProxyTrap);\n}\nfunction keyInPrototypeChain(obj, key) {\n if (obj === null || obj === Object.prototype)\n return null;\n if (Object.prototype.hasOwnProperty.call(obj, key))\n return obj;\n return keyInPrototypeChain(Object.getPrototypeOf(obj), key);\n}\nvar mergeProxyTrap = {\n ownKeys({ objects }) {\n return Array.from(\n new Set(objects.flatMap((i) => Object.keys(i)))\n );\n },\n has({ objects }, name) {\n if (name == Symbol.unscopables)\n return false;\n return objects.some(\n (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name)\n );\n },\n get({ objects }, name, thisProxy) {\n if (name == \"toJSON\")\n return collapseProxies;\n return Reflect.get(\n objects.find(\n (obj) => Reflect.has(obj, name)\n ) || {},\n name,\n thisProxy\n );\n },\n set({ objects }, name, value, thisProxy) {\n let target;\n for (const obj of objects) {\n target = keyInPrototypeChain(obj, name);\n if (target)\n break;\n }\n if (!target)\n target = objects[objects.length - 1];\n const descriptor = Object.getOwnPropertyDescriptor(target, name);\n if ((descriptor == null ? void 0 : descriptor.set) && (descriptor == null ? void 0 : descriptor.get))\n return descriptor.set.call(thisProxy, value) || true;\n return Reflect.set(target, name, value);\n }\n};\nfunction collapseProxies() {\n let keys = Reflect.ownKeys(this);\n return keys.reduce((acc, key) => {\n acc[key] = Reflect.get(this, key);\n return acc;\n }, {});\n}\n\n// packages/alpinejs/src/interceptor.js\nfunction initInterceptors(data2) {\n let isObject2 = (val) => typeof val === \"object\" && !Array.isArray(val) && val !== null;\n let recurse = (obj, basePath = \"\") => {\n Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {\n if (enumerable === false || value === void 0)\n return;\n if (typeof value === \"object\" && value !== null && value.__v_skip)\n return;\n let path = basePath === \"\" ? key : `${basePath}.${key}`;\n if (typeof value === \"object\" && value !== null && value._x_interceptor) {\n obj[key] = value.initialize(data2, path, key);\n } else {\n if (isObject2(value) && value !== obj && !(value instanceof Element)) {\n recurse(value, path);\n }\n }\n });\n };\n return recurse(data2);\n}\nfunction interceptor(callback, mutateObj = () => {\n}) {\n let obj = {\n initialValue: void 0,\n _x_interceptor: true,\n initialize(data2, path, key) {\n return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key);\n }\n };\n mutateObj(obj);\n return (initialValue) => {\n if (typeof initialValue === \"object\" && initialValue !== null && initialValue._x_interceptor) {\n let initialize = obj.initialize.bind(obj);\n obj.initialize = (data2, path, key) => {\n let innerValue = initialValue.initialize(data2, path, key);\n obj.initialValue = innerValue;\n return initialize(data2, path, key);\n };\n } else {\n obj.initialValue = initialValue;\n }\n return obj;\n };\n}\nfunction get(obj, path) {\n return path.split(\".\").reduce((carry, segment) => carry[segment], obj);\n}\nfunction set(obj, path, value) {\n if (typeof path === \"string\")\n path = path.split(\".\");\n if (path.length === 1)\n obj[path[0]] = value;\n else if (path.length === 0)\n throw error;\n else {\n if (obj[path[0]])\n return set(obj[path[0]], path.slice(1), value);\n else {\n obj[path[0]] = {};\n return set(obj[path[0]], path.slice(1), value);\n }\n }\n}\n\n// packages/alpinejs/src/magics.js\nvar magics = {};\nfunction magic(name, callback) {\n magics[name] = callback;\n}\nfunction injectMagics(obj, el) {\n let memoizedUtilities = getUtilities(el);\n Object.entries(magics).forEach(([name, callback]) => {\n Object.defineProperty(obj, `$${name}`, {\n get() {\n return callback(el, memoizedUtilities);\n },\n enumerable: false\n });\n });\n return obj;\n}\nfunction getUtilities(el) {\n let [utilities, cleanup] = getElementBoundUtilities(el);\n let utils = { interceptor, ...utilities };\n onElRemoved(el, cleanup);\n return utils;\n}\n\n// packages/alpinejs/src/utils/error.js\nfunction tryCatch(el, expression, callback, ...args) {\n try {\n return callback(...args);\n } catch (e) {\n handleError(e, el, expression);\n }\n}\nfunction handleError(...args) {\n return errorHandler(...args);\n}\nvar errorHandler = normalErrorHandler;\nfunction setErrorHandler(handler4) {\n errorHandler = handler4;\n}\nfunction normalErrorHandler(error2, el, expression = void 0) {\n error2 = Object.assign(\n error2 != null ? error2 : { message: \"No error message given.\" },\n { el, expression }\n );\n console.warn(`Alpine Expression Error: ${error2.message}\n\n${expression ? 'Expression: \"' + expression + '\"\\n\\n' : \"\"}`, el);\n setTimeout(() => {\n throw error2;\n }, 0);\n}\n\n// packages/alpinejs/src/evaluator.js\nvar shouldAutoEvaluateFunctions = true;\nfunction dontAutoEvaluateFunctions(callback) {\n let cache = shouldAutoEvaluateFunctions;\n shouldAutoEvaluateFunctions = false;\n let result = callback();\n shouldAutoEvaluateFunctions = cache;\n return result;\n}\nfunction evaluate(el, expression, extras = {}) {\n let result;\n evaluateLater(el, expression)((value) => result = value, extras);\n return result;\n}\nfunction evaluateLater(...args) {\n return theEvaluatorFunction(...args);\n}\nvar theEvaluatorFunction = () => {\n};\nfunction setEvaluator(newEvaluator) {\n theEvaluatorFunction = newEvaluator;\n}\nvar theRawEvaluatorFunction;\nfunction setRawEvaluator(newEvaluator) {\n theRawEvaluatorFunction = newEvaluator;\n}\nfunction generateEvaluatorFromFunction(dataStack, func) {\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [], context } = {}) => {\n if (!shouldAutoEvaluateFunctions) {\n runIfTypeOfFunction(receiver, func, mergeProxies([scope2, ...dataStack]), params);\n return;\n }\n let result = func.apply(mergeProxies([scope2, ...dataStack]), params);\n runIfTypeOfFunction(receiver, result);\n };\n}\nfunction runIfTypeOfFunction(receiver, value, scope2, params, el) {\n if (shouldAutoEvaluateFunctions && typeof value === \"function\") {\n let result = value.apply(scope2, params);\n if (result instanceof Promise) {\n result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value));\n } else {\n receiver(result);\n }\n } else if (typeof value === \"object\" && value instanceof Promise) {\n value.then((i) => receiver(i));\n } else {\n receiver(value);\n }\n}\nfunction evaluateRaw(...args) {\n return theRawEvaluatorFunction(...args);\n}\n\n// packages/alpinejs/src/directives.js\nvar prefixAsString = \"x-\";\nfunction prefix(subject = \"\") {\n return prefixAsString + subject;\n}\nfunction setPrefix(newPrefix) {\n prefixAsString = newPrefix;\n}\nvar directiveHandlers = {};\nfunction directive(name, callback) {\n directiveHandlers[name] = callback;\n return {\n before(directive2) {\n if (!directiveHandlers[directive2]) {\n console.warn(String.raw`Cannot find directive \\`${directive2}\\`. \\`${name}\\` will use the default order of execution`);\n return;\n }\n const pos = directiveOrder.indexOf(directive2);\n directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf(\"DEFAULT\"), 0, name);\n }\n };\n}\nfunction directiveExists(name) {\n return Object.keys(directiveHandlers).includes(name);\n}\nfunction directives(el, attributes, originalAttributeOverride) {\n attributes = Array.from(attributes);\n if (el._x_virtualDirectives) {\n let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(vAttributes);\n vAttributes = vAttributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n attributes = attributes.concat(vAttributes);\n }\n let transformedAttributeMap = {};\n let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority);\n return directives2.map((directive2) => {\n return getDirectiveHandler(el, directive2);\n });\n}\nfunction attributesOnly(attributes) {\n return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr));\n}\nvar isDeferringHandlers = false;\nvar directiveHandlerStacks = /* @__PURE__ */ new Map();\nvar currentHandlerStackKey = Symbol();\nfunction deferHandlingDirectives(callback) {\n isDeferringHandlers = true;\n let key = Symbol();\n currentHandlerStackKey = key;\n directiveHandlerStacks.set(key, []);\n let flushHandlers = () => {\n while (directiveHandlerStacks.get(key).length)\n directiveHandlerStacks.get(key).shift()();\n directiveHandlerStacks.delete(key);\n };\n let stopDeferring = () => {\n isDeferringHandlers = false;\n flushHandlers();\n };\n callback(flushHandlers);\n stopDeferring();\n}\nfunction getElementBoundUtilities(el) {\n let cleanups = [];\n let cleanup = (callback) => cleanups.push(callback);\n let [effect3, cleanupEffect] = elementBoundEffect(el);\n cleanups.push(cleanupEffect);\n let utilities = {\n Alpine: alpine_default,\n effect: effect3,\n cleanup,\n evaluateLater: evaluateLater.bind(evaluateLater, el),\n evaluate: evaluate.bind(evaluate, el)\n };\n let doCleanup = () => cleanups.forEach((i) => i());\n return [utilities, doCleanup];\n}\nfunction getDirectiveHandler(el, directive2) {\n let noop = () => {\n };\n let handler4 = directiveHandlers[directive2.type] || noop;\n let [utilities, cleanup] = getElementBoundUtilities(el);\n onAttributeRemoved(el, directive2.original, cleanup);\n let fullHandler = () => {\n if (el._x_ignore || el._x_ignoreSelf)\n return;\n handler4.inline && handler4.inline(el, directive2, utilities);\n handler4 = handler4.bind(handler4, el, directive2, utilities);\n isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4();\n };\n fullHandler.runCleanups = cleanup;\n return fullHandler;\n}\nvar startingWith = (subject, replacement) => ({ name, value }) => {\n if (name.startsWith(subject))\n name = name.replace(subject, replacement);\n return { name, value };\n};\nvar into = (i) => i;\nfunction toTransformedAttributes(callback = () => {\n}) {\n return ({ name, value }) => {\n let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => {\n return transform(carry);\n }, { name, value });\n if (newName !== name)\n callback(newName, name);\n return { name: newName, value: newValue };\n };\n}\nvar attributeTransformers = [];\nfunction mapAttributes(callback) {\n attributeTransformers.push(callback);\n}\nfunction outNonAlpineAttributes({ name }) {\n return alpineAttributeRegex().test(name);\n}\nvar alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\\\b`);\nfunction toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {\n return ({ name, value }) => {\n if (name === value)\n value = \"\";\n let typeMatch = name.match(alpineAttributeRegex());\n let valueMatch = name.match(/:([a-zA-Z0-9\\-_:]+)/);\n let modifiers = name.match(/\\.[^.\\]]+(?=[^\\]]*$)/g) || [];\n let original = originalAttributeOverride || transformedAttributeMap[name] || name;\n return {\n type: typeMatch ? typeMatch[1] : null,\n value: valueMatch ? valueMatch[1] : null,\n modifiers: modifiers.map((i) => i.replace(\".\", \"\")),\n expression: value,\n original\n };\n };\n}\nvar DEFAULT = \"DEFAULT\";\nvar directiveOrder = [\n \"ignore\",\n \"ref\",\n \"id\",\n \"data\",\n \"anchor\",\n \"bind\",\n \"init\",\n \"for\",\n \"model\",\n \"modelable\",\n \"transition\",\n \"show\",\n \"if\",\n DEFAULT,\n \"teleport\"\n];\nfunction byPriority(a, b) {\n let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type;\n let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type;\n return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);\n}\n\n// packages/alpinejs/src/utils/dispatch.js\nfunction dispatch(el, name, detail = {}, options = {}) {\n return el.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles: true,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true,\n // Allows overriding the default event options.\n ...options\n })\n );\n}\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/alpinejs/src/utils/warn.js\nfunction warn(message, ...args) {\n console.warn(`Alpine Warning: ${message}`, ...args);\n}\n\n// packages/alpinejs/src/lifecycle.js\nvar started = false;\nfunction start() {\n if (started)\n warn(\"Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.\");\n started = true;\n if (!document.body)\n warn(\"Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?\");\n dispatch(document, \"alpine:init\");\n dispatch(document, \"alpine:initializing\");\n startObservingMutations();\n onElAdded((el) => initTree(el, walk));\n onElRemoved((el) => destroyTree(el));\n onAttributesAdded((el, attrs) => {\n directives(el, attrs).forEach((handle) => handle());\n });\n let outNestedComponents = (el) => !closestRoot(el.parentElement, true);\n Array.from(document.querySelectorAll(allSelectors().join(\",\"))).filter(outNestedComponents).forEach((el) => {\n initTree(el);\n });\n dispatch(document, \"alpine:initialized\");\n setTimeout(() => {\n warnAboutMissingPlugins();\n });\n}\nvar rootSelectorCallbacks = [];\nvar initSelectorCallbacks = [];\nfunction rootSelectors() {\n return rootSelectorCallbacks.map((fn) => fn());\n}\nfunction allSelectors() {\n return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn());\n}\nfunction addRootSelector(selectorCallback) {\n rootSelectorCallbacks.push(selectorCallback);\n}\nfunction addInitSelector(selectorCallback) {\n initSelectorCallbacks.push(selectorCallback);\n}\nfunction closestRoot(el, includeInitSelectors = false) {\n return findClosest(el, (element) => {\n const selectors = includeInitSelectors ? allSelectors() : rootSelectors();\n if (selectors.some((selector) => element.matches(selector)))\n return true;\n });\n}\nfunction findClosest(el, callback) {\n if (!el)\n return;\n if (callback(el))\n return el;\n if (el._x_teleportBack)\n return findClosest(el._x_teleportBack, callback);\n if (el.parentNode instanceof ShadowRoot) {\n return findClosest(el.parentNode.host, callback);\n }\n if (!el.parentElement)\n return;\n return findClosest(el.parentElement, callback);\n}\nfunction isRoot(el) {\n return rootSelectors().some((selector) => el.matches(selector));\n}\nvar initInterceptors2 = [];\nfunction interceptInit(callback) {\n initInterceptors2.push(callback);\n}\nvar markerDispenser = 1;\nfunction initTree(el, walker = walk, intercept = () => {\n}) {\n if (findClosest(el, (i) => i._x_ignore))\n return;\n deferHandlingDirectives(() => {\n walker(el, (el2, skip) => {\n if (el2._x_marker)\n return;\n intercept(el2, skip);\n initInterceptors2.forEach((i) => i(el2, skip));\n directives(el2, el2.attributes).forEach((handle) => handle());\n if (!el2._x_ignore)\n el2._x_marker = markerDispenser++;\n el2._x_ignore && skip();\n });\n });\n}\nfunction destroyTree(root, walker = walk) {\n walker(root, (el) => {\n cleanupElement(el);\n cleanupAttributes(el);\n delete el._x_marker;\n });\n}\nfunction warnAboutMissingPlugins() {\n let pluginDirectives = [\n [\"ui\", \"dialog\", [\"[x-dialog], [x-popover]\"]],\n [\"anchor\", \"anchor\", [\"[x-anchor]\"]],\n [\"sort\", \"sort\", [\"[x-sort]\"]]\n ];\n pluginDirectives.forEach(([plugin2, directive2, selectors]) => {\n if (directiveExists(directive2))\n return;\n selectors.some((selector) => {\n if (document.querySelector(selector)) {\n warn(`found \"${selector}\", but missing ${plugin2} plugin`);\n return true;\n }\n });\n });\n}\n\n// packages/alpinejs/src/nextTick.js\nvar tickStack = [];\nvar isHolding = false;\nfunction nextTick(callback = () => {\n}) {\n queueMicrotask(() => {\n isHolding || setTimeout(() => {\n releaseNextTicks();\n });\n });\n return new Promise((res) => {\n tickStack.push(() => {\n callback();\n res();\n });\n });\n}\nfunction releaseNextTicks() {\n isHolding = false;\n while (tickStack.length)\n tickStack.shift()();\n}\nfunction holdNextTicks() {\n isHolding = true;\n}\n\n// packages/alpinejs/src/utils/classes.js\nfunction setClasses(el, value) {\n if (Array.isArray(value)) {\n return setClassesFromString(el, value.join(\" \"));\n } else if (typeof value === \"object\" && value !== null) {\n return setClassesFromObject(el, value);\n } else if (typeof value === \"function\") {\n return setClasses(el, value());\n }\n return setClassesFromString(el, value);\n}\nfunction splitClasses(classString) {\n return classString.split(/\\s/).filter(Boolean);\n}\nfunction setClassesFromString(el, classString) {\n let missingClasses = (classString2) => splitClasses(classString2).filter((i) => !el.classList.contains(i)).filter(Boolean);\n let addClassesAndReturnUndo = (classes) => {\n el.classList.add(...classes);\n return () => {\n el.classList.remove(...classes);\n };\n };\n classString = classString === true ? classString = \"\" : classString || \"\";\n return addClassesAndReturnUndo(missingClasses(classString));\n}\nfunction setClassesFromObject(el, classObject) {\n let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? splitClasses(classString) : false).filter(Boolean);\n let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? splitClasses(classString) : false).filter(Boolean);\n let added = [];\n let removed = [];\n forRemove.forEach((i) => {\n if (el.classList.contains(i)) {\n el.classList.remove(i);\n removed.push(i);\n }\n });\n forAdd.forEach((i) => {\n if (!el.classList.contains(i)) {\n el.classList.add(i);\n added.push(i);\n }\n });\n return () => {\n removed.forEach((i) => el.classList.add(i));\n added.forEach((i) => el.classList.remove(i));\n };\n}\n\n// packages/alpinejs/src/utils/styles.js\nfunction setStyles(el, value) {\n if (typeof value === \"object\" && value !== null) {\n return setStylesFromObject(el, value);\n }\n return setStylesFromString(el, value);\n}\nfunction setStylesFromObject(el, value) {\n let previousStyles = {};\n Object.entries(value).forEach(([key, value2]) => {\n previousStyles[key] = el.style[key];\n if (!key.startsWith(\"--\")) {\n key = kebabCase(key);\n }\n el.style.setProperty(key, value2);\n });\n setTimeout(() => {\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n });\n return () => {\n setStyles(el, previousStyles);\n };\n}\nfunction setStylesFromString(el, value) {\n let cache = el.getAttribute(\"style\", value);\n el.setAttribute(\"style\", value);\n return () => {\n el.setAttribute(\"style\", cache || \"\");\n };\n}\nfunction kebabCase(subject) {\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\n// packages/alpinejs/src/utils/once.js\nfunction once(callback, fallback = () => {\n}) {\n let called = false;\n return function() {\n if (!called) {\n called = true;\n callback.apply(this, arguments);\n } else {\n fallback.apply(this, arguments);\n }\n };\n}\n\n// packages/alpinejs/src/directives/x-transition.js\ndirective(\"transition\", (el, { value, modifiers, expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"function\")\n expression = evaluate2(expression);\n if (expression === false)\n return;\n if (!expression || typeof expression === \"boolean\") {\n registerTransitionsFromHelper(el, modifiers, value);\n } else {\n registerTransitionsFromClassString(el, expression, value);\n }\n});\nfunction registerTransitionsFromClassString(el, classString, stage) {\n registerTransitionObject(el, setClasses, \"\");\n let directiveStorageMap = {\n \"enter\": (classes) => {\n el._x_transition.enter.during = classes;\n },\n \"enter-start\": (classes) => {\n el._x_transition.enter.start = classes;\n },\n \"enter-end\": (classes) => {\n el._x_transition.enter.end = classes;\n },\n \"leave\": (classes) => {\n el._x_transition.leave.during = classes;\n },\n \"leave-start\": (classes) => {\n el._x_transition.leave.start = classes;\n },\n \"leave-end\": (classes) => {\n el._x_transition.leave.end = classes;\n }\n };\n directiveStorageMap[stage](classString);\n}\nfunction registerTransitionsFromHelper(el, modifiers, stage) {\n registerTransitionObject(el, setStyles);\n let doesntSpecify = !modifiers.includes(\"in\") && !modifiers.includes(\"out\") && !stage;\n let transitioningIn = doesntSpecify || modifiers.includes(\"in\") || [\"enter\"].includes(stage);\n let transitioningOut = doesntSpecify || modifiers.includes(\"out\") || [\"leave\"].includes(stage);\n if (modifiers.includes(\"in\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index < modifiers.indexOf(\"out\"));\n }\n if (modifiers.includes(\"out\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index > modifiers.indexOf(\"out\"));\n }\n let wantsAll = !modifiers.includes(\"opacity\") && !modifiers.includes(\"scale\");\n let wantsOpacity = wantsAll || modifiers.includes(\"opacity\");\n let wantsScale = wantsAll || modifiers.includes(\"scale\");\n let opacityValue = wantsOpacity ? 0 : 1;\n let scaleValue = wantsScale ? modifierValue(modifiers, \"scale\", 95) / 100 : 1;\n let delay = modifierValue(modifiers, \"delay\", 0) / 1e3;\n let origin = modifierValue(modifiers, \"origin\", \"center\");\n let property = \"opacity, transform\";\n let durationIn = modifierValue(modifiers, \"duration\", 150) / 1e3;\n let durationOut = modifierValue(modifiers, \"duration\", 75) / 1e3;\n let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`;\n if (transitioningIn) {\n el._x_transition.enter.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationIn}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.enter.start = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n el._x_transition.enter.end = {\n opacity: 1,\n transform: `scale(1)`\n };\n }\n if (transitioningOut) {\n el._x_transition.leave.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationOut}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.leave.start = {\n opacity: 1,\n transform: `scale(1)`\n };\n el._x_transition.leave.end = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n }\n}\nfunction registerTransitionObject(el, setFunction, defaultValue = {}) {\n if (!el._x_transition)\n el._x_transition = {\n enter: { during: defaultValue, start: defaultValue, end: defaultValue },\n leave: { during: defaultValue, start: defaultValue, end: defaultValue },\n in(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.enter.during,\n start: this.enter.start,\n end: this.enter.end\n }, before, after);\n },\n out(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.leave.during,\n start: this.leave.start,\n end: this.leave.end\n }, before, after);\n }\n };\n}\nwindow.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) {\n const nextTick2 = document.visibilityState === \"visible\" ? requestAnimationFrame : setTimeout;\n let clickAwayCompatibleShow = () => nextTick2(show);\n if (value) {\n if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) {\n el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow();\n } else {\n el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();\n }\n return;\n }\n el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => {\n el._x_transition.out(() => {\n }, () => resolve(hide));\n el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true }));\n }) : Promise.resolve(hide);\n queueMicrotask(() => {\n let closest = closestHide(el);\n if (closest) {\n if (!closest._x_hideChildren)\n closest._x_hideChildren = [];\n closest._x_hideChildren.push(el);\n } else {\n nextTick2(() => {\n let hideAfterChildren = (el2) => {\n let carry = Promise.all([\n el2._x_hidePromise,\n ...(el2._x_hideChildren || []).map(hideAfterChildren)\n ]).then(([i]) => i == null ? void 0 : i());\n delete el2._x_hidePromise;\n delete el2._x_hideChildren;\n return carry;\n };\n hideAfterChildren(el).catch((e) => {\n if (!e.isFromCancelledTransition)\n throw e;\n });\n });\n }\n });\n};\nfunction closestHide(el) {\n let parent = el.parentNode;\n if (!parent)\n return;\n return parent._x_hidePromise ? parent : closestHide(parent);\n}\nfunction transition(el, setFunction, { during, start: start2, end } = {}, before = () => {\n}, after = () => {\n}) {\n if (el._x_transitioning)\n el._x_transitioning.cancel();\n if (Object.keys(during).length === 0 && Object.keys(start2).length === 0 && Object.keys(end).length === 0) {\n before();\n after();\n return;\n }\n let undoStart, undoDuring, undoEnd;\n performTransition(el, {\n start() {\n undoStart = setFunction(el, start2);\n },\n during() {\n undoDuring = setFunction(el, during);\n },\n before,\n end() {\n undoStart();\n undoEnd = setFunction(el, end);\n },\n after,\n cleanup() {\n undoDuring();\n undoEnd();\n }\n });\n}\nfunction performTransition(el, stages) {\n let interrupted, reachedBefore, reachedEnd;\n let finish = once(() => {\n mutateDom(() => {\n interrupted = true;\n if (!reachedBefore)\n stages.before();\n if (!reachedEnd) {\n stages.end();\n releaseNextTicks();\n }\n stages.after();\n if (el.isConnected)\n stages.cleanup();\n delete el._x_transitioning;\n });\n });\n el._x_transitioning = {\n beforeCancels: [],\n beforeCancel(callback) {\n this.beforeCancels.push(callback);\n },\n cancel: once(function() {\n while (this.beforeCancels.length) {\n this.beforeCancels.shift()();\n }\n ;\n finish();\n }),\n finish\n };\n mutateDom(() => {\n stages.start();\n stages.during();\n });\n holdNextTicks();\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n let delay = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n if (duration === 0)\n duration = Number(getComputedStyle(el).animationDuration.replace(\"s\", \"\")) * 1e3;\n mutateDom(() => {\n stages.before();\n });\n reachedBefore = true;\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n mutateDom(() => {\n stages.end();\n });\n releaseNextTicks();\n setTimeout(el._x_transitioning.finish, duration + delay);\n reachedEnd = true;\n });\n });\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"scale\") {\n if (isNaN(rawValue))\n return fallback;\n }\n if (key === \"duration\" || key === \"delay\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"origin\") {\n if ([\"top\", \"right\", \"left\", \"center\", \"bottom\"].includes(modifiers[modifiers.indexOf(key) + 2])) {\n return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(\" \");\n }\n }\n return rawValue;\n}\n\n// packages/alpinejs/src/clone.js\nvar isCloning = false;\nfunction skipDuringClone(callback, fallback = () => {\n}) {\n return (...args) => isCloning ? fallback(...args) : callback(...args);\n}\nfunction onlyDuringClone(callback) {\n return (...args) => isCloning && callback(...args);\n}\nvar interceptors = [];\nfunction interceptClone(callback) {\n interceptors.push(callback);\n}\nfunction cloneNode(from, to) {\n interceptors.forEach((i) => i(from, to));\n isCloning = true;\n dontRegisterReactiveSideEffects(() => {\n initTree(to, (el, callback) => {\n callback(el, () => {\n });\n });\n });\n isCloning = false;\n}\nvar isCloningLegacy = false;\nfunction clone(oldEl, newEl) {\n if (!newEl._x_dataStack)\n newEl._x_dataStack = oldEl._x_dataStack;\n isCloning = true;\n isCloningLegacy = true;\n dontRegisterReactiveSideEffects(() => {\n cloneTree(newEl);\n });\n isCloning = false;\n isCloningLegacy = false;\n}\nfunction cloneTree(el) {\n let hasRunThroughFirstEl = false;\n let shallowWalker = (el2, callback) => {\n walk(el2, (el3, skip) => {\n if (hasRunThroughFirstEl && isRoot(el3))\n return skip();\n hasRunThroughFirstEl = true;\n callback(el3, skip);\n });\n };\n initTree(el, shallowWalker);\n}\nfunction dontRegisterReactiveSideEffects(callback) {\n let cache = effect;\n overrideEffect((callback2, el) => {\n let storedEffect = cache(callback2);\n release(storedEffect);\n return () => {\n };\n });\n callback();\n overrideEffect(cache);\n}\n\n// packages/alpinejs/src/utils/bind.js\nfunction bind(el, name, value, modifiers = []) {\n if (!el._x_bindings)\n el._x_bindings = reactive({});\n el._x_bindings[name] = value;\n name = modifiers.includes(\"camel\") ? camelCase(name) : name;\n switch (name) {\n case \"value\":\n bindInputValue(el, value);\n break;\n case \"style\":\n bindStyles(el, value);\n break;\n case \"class\":\n bindClasses(el, value);\n break;\n case \"selected\":\n case \"checked\":\n bindAttributeAndProperty(el, name, value);\n break;\n default:\n bindAttribute(el, name, value);\n break;\n }\n}\nfunction bindInputValue(el, value) {\n if (isRadio(el)) {\n if (el.attributes.value === void 0) {\n el.value = value;\n }\n } else if (isCheckbox(el)) {\n if (Number.isInteger(value)) {\n el.value = value;\n } else if (!Array.isArray(value) && typeof value !== \"boolean\" && ![null, void 0].includes(value)) {\n el.value = String(value);\n } else {\n if (Array.isArray(value)) {\n el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value));\n } else {\n el.checked = !!value;\n }\n }\n } else if (el.tagName === \"SELECT\") {\n updateSelect(el, value);\n } else {\n if (el.value === value)\n return;\n el.value = value === void 0 ? \"\" : value;\n }\n}\nfunction bindClasses(el, value) {\n if (el._x_undoAddedClasses)\n el._x_undoAddedClasses();\n el._x_undoAddedClasses = setClasses(el, value);\n}\nfunction bindStyles(el, value) {\n if (el._x_undoAddedStyles)\n el._x_undoAddedStyles();\n el._x_undoAddedStyles = setStyles(el, value);\n}\nfunction bindAttributeAndProperty(el, name, value) {\n bindAttribute(el, name, value);\n setPropertyIfChanged(el, name, value);\n}\nfunction bindAttribute(el, name, value) {\n if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) {\n el.removeAttribute(name);\n } else {\n if (isBooleanAttr(name))\n value = name;\n setIfChanged(el, name, value);\n }\n}\nfunction setIfChanged(el, attrName, value) {\n if (el.getAttribute(attrName) != value) {\n el.setAttribute(attrName, value);\n }\n}\nfunction setPropertyIfChanged(el, propName, value) {\n if (el[propName] !== value) {\n el[propName] = value;\n }\n}\nfunction updateSelect(el, value) {\n const arrayWrappedValue = [].concat(value).map((value2) => {\n return value2 + \"\";\n });\n Array.from(el.options).forEach((option) => {\n option.selected = arrayWrappedValue.includes(option.value);\n });\n}\nfunction camelCase(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction checkedAttrLooseCompare(valueA, valueB) {\n return valueA == valueB;\n}\nfunction safeParseBoolean(rawValue) {\n if ([1, \"1\", \"true\", \"on\", \"yes\", true].includes(rawValue)) {\n return true;\n }\n if ([0, \"0\", \"false\", \"off\", \"no\", false].includes(rawValue)) {\n return false;\n }\n return rawValue ? Boolean(rawValue) : null;\n}\nvar booleanAttributes = /* @__PURE__ */ new Set([\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"defer\",\n \"disabled\",\n \"formnovalidate\",\n \"inert\",\n \"ismap\",\n \"itemscope\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"selected\",\n \"shadowrootclonable\",\n \"shadowrootdelegatesfocus\",\n \"shadowrootserializable\"\n]);\nfunction isBooleanAttr(attrName) {\n return booleanAttributes.has(attrName);\n}\nfunction attributeShouldntBePreservedIfFalsy(name) {\n return ![\"aria-pressed\", \"aria-checked\", \"aria-expanded\", \"aria-selected\"].includes(name);\n}\nfunction getBinding(el, name, fallback) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n return getAttributeBinding(el, name, fallback);\n}\nfunction extractProp(el, name, fallback, extract = true) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) {\n let binding = el._x_inlineBindings[name];\n binding.extract = extract;\n return dontAutoEvaluateFunctions(() => {\n return evaluate(el, binding.expression);\n });\n }\n return getAttributeBinding(el, name, fallback);\n}\nfunction getAttributeBinding(el, name, fallback) {\n let attr = el.getAttribute(name);\n if (attr === null)\n return typeof fallback === \"function\" ? fallback() : fallback;\n if (attr === \"\")\n return true;\n if (isBooleanAttr(name)) {\n return !![name, \"true\"].includes(attr);\n }\n return attr;\n}\nfunction isCheckbox(el) {\n return el.type === \"checkbox\" || el.localName === \"ui-checkbox\" || el.localName === \"ui-switch\";\n}\nfunction isRadio(el) {\n return el.type === \"radio\" || el.localName === \"ui-radio\";\n}\n\n// packages/alpinejs/src/utils/debounce.js\nfunction debounce(func, wait) {\n let timeout;\n return function() {\n const context = this, args = arguments;\n const later = function() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n// packages/alpinejs/src/utils/throttle.js\nfunction throttle(func, limit) {\n let inThrottle;\n return function() {\n let context = this, args = arguments;\n if (!inThrottle) {\n func.apply(context, args);\n inThrottle = true;\n setTimeout(() => inThrottle = false, limit);\n }\n };\n}\n\n// packages/alpinejs/src/entangle.js\nfunction entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {\n let firstRun = true;\n let outerHash;\n let innerHash;\n let reference = effect(() => {\n let outer = outerGet();\n let inner = innerGet();\n if (firstRun) {\n innerSet(cloneIfObject(outer));\n firstRun = false;\n } else {\n let outerHashLatest = JSON.stringify(outer);\n let innerHashLatest = JSON.stringify(inner);\n if (outerHashLatest !== outerHash) {\n innerSet(cloneIfObject(outer));\n } else if (outerHashLatest !== innerHashLatest) {\n outerSet(cloneIfObject(inner));\n } else {\n }\n }\n outerHash = JSON.stringify(outerGet());\n innerHash = JSON.stringify(innerGet());\n });\n return () => {\n release(reference);\n };\n}\nfunction cloneIfObject(value) {\n return typeof value === \"object\" ? JSON.parse(JSON.stringify(value)) : value;\n}\n\n// packages/alpinejs/src/plugin.js\nfunction plugin(callback) {\n let callbacks = Array.isArray(callback) ? callback : [callback];\n callbacks.forEach((i) => i(alpine_default));\n}\n\n// packages/alpinejs/src/store.js\nvar stores = {};\nvar isReactive = false;\nfunction store(name, value) {\n if (!isReactive) {\n stores = reactive(stores);\n isReactive = true;\n }\n if (value === void 0) {\n return stores[name];\n }\n stores[name] = value;\n initInterceptors(stores[name]);\n if (typeof value === \"object\" && value !== null && value.hasOwnProperty(\"init\") && typeof value.init === \"function\") {\n stores[name].init();\n }\n}\nfunction getStores() {\n return stores;\n}\n\n// packages/alpinejs/src/binds.js\nvar binds = {};\nfunction bind2(name, bindings) {\n let getBindings = typeof bindings !== \"function\" ? () => bindings : bindings;\n if (name instanceof Element) {\n return applyBindingsObject(name, getBindings());\n } else {\n binds[name] = getBindings;\n }\n return () => {\n };\n}\nfunction injectBindingProviders(obj) {\n Object.entries(binds).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback(...args);\n };\n }\n });\n });\n return obj;\n}\nfunction applyBindingsObject(el, obj, original) {\n let cleanupRunners = [];\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n let attributes = Object.entries(obj).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(attributes);\n attributes = attributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n directives(el, attributes, original).map((handle) => {\n cleanupRunners.push(handle.runCleanups);\n handle();\n });\n return () => {\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n };\n}\n\n// packages/alpinejs/src/datas.js\nvar datas = {};\nfunction data(name, callback) {\n datas[name] = callback;\n}\nfunction injectDataProviders(obj, context) {\n Object.entries(datas).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback.bind(context)(...args);\n };\n },\n enumerable: false\n });\n });\n return obj;\n}\n\n// packages/alpinejs/src/alpine.js\nvar Alpine = {\n get reactive() {\n return reactive;\n },\n get release() {\n return release;\n },\n get effect() {\n return effect;\n },\n get raw() {\n return raw;\n },\n get transaction() {\n return transaction;\n },\n version: \"3.15.12\",\n flushAndStopDeferringMutations,\n dontAutoEvaluateFunctions,\n disableEffectScheduling,\n startObservingMutations,\n stopObservingMutations,\n setReactivityEngine,\n onAttributeRemoved,\n onAttributesAdded,\n closestDataStack,\n skipDuringClone,\n onlyDuringClone,\n addRootSelector,\n addInitSelector,\n setErrorHandler,\n interceptClone,\n addScopeToNode,\n deferMutations,\n mapAttributes,\n evaluateLater,\n interceptInit,\n initInterceptors,\n injectMagics,\n setEvaluator,\n setRawEvaluator,\n mergeProxies,\n extractProp,\n findClosest,\n onElRemoved,\n closestRoot,\n destroyTree,\n interceptor,\n // INTERNAL: not public API and is subject to change without major release.\n transition,\n // INTERNAL\n setStyles,\n // INTERNAL\n mutateDom,\n directive,\n entangle,\n throttle,\n debounce,\n evaluate,\n evaluateRaw,\n initTree,\n nextTick,\n prefixed: prefix,\n prefix: setPrefix,\n plugin,\n magic,\n store,\n start,\n clone,\n // INTERNAL\n cloneNode,\n // INTERNAL\n bound: getBinding,\n $data: scope,\n watch,\n walk,\n data,\n bind: bind2\n};\nvar alpine_default = Alpine;\n\n// packages/csp/src/parser.js\nvar safemap = /* @__PURE__ */ new WeakMap();\nvar globals = /* @__PURE__ */ new Set();\nObject.getOwnPropertyNames(globalThis).forEach((key) => {\n if (key === \"styleMedia\" || key === \"sharedStorage\")\n return;\n globals.add(globalThis[key]);\n});\nvar Token = class {\n constructor(type, value, start2, end) {\n this.type = type;\n this.value = value;\n this.start = start2;\n this.end = end;\n }\n};\nvar Tokenizer = class {\n constructor(input) {\n this.input = input;\n this.position = 0;\n this.tokens = [];\n }\n tokenize() {\n while (this.position < this.input.length) {\n this.skipWhitespace();\n if (this.position >= this.input.length)\n break;\n const char = this.input[this.position];\n if (this.isDigit(char)) {\n this.readNumber();\n } else if (this.isAlpha(char) || char === \"_\" || char === \"$\") {\n this.readIdentifierOrKeyword();\n } else if (char === '\"' || char === \"'\") {\n this.readString();\n } else if (char === \"/\" && this.peek() === \"/\") {\n this.skipLineComment();\n } else {\n this.readOperatorOrPunctuation();\n }\n }\n this.tokens.push(new Token(\"EOF\", null, this.position, this.position));\n return this.tokens;\n }\n skipWhitespace() {\n while (this.position < this.input.length && /\\s/.test(this.input[this.position])) {\n this.position++;\n }\n }\n skipLineComment() {\n while (this.position < this.input.length && this.input[this.position] !== \"\\n\") {\n this.position++;\n }\n }\n isDigit(char) {\n return /[0-9]/.test(char);\n }\n isAlpha(char) {\n return /[a-zA-Z]/.test(char);\n }\n isAlphaNumeric(char) {\n return /[a-zA-Z0-9_$]/.test(char);\n }\n peek(offset = 1) {\n return this.input[this.position + offset] || \"\";\n }\n readNumber() {\n const start2 = this.position;\n let hasDecimal = false;\n while (this.position < this.input.length) {\n const char = this.input[this.position];\n if (this.isDigit(char)) {\n this.position++;\n } else if (char === \".\" && !hasDecimal) {\n hasDecimal = true;\n this.position++;\n } else {\n break;\n }\n }\n const value = this.input.slice(start2, this.position);\n this.tokens.push(new Token(\"NUMBER\", parseFloat(value), start2, this.position));\n }\n readIdentifierOrKeyword() {\n const start2 = this.position;\n while (this.position < this.input.length && this.isAlphaNumeric(this.input[this.position])) {\n this.position++;\n }\n const value = this.input.slice(start2, this.position);\n const keywords = [\"true\", \"false\", \"null\", \"undefined\", \"new\", \"typeof\", \"void\", \"delete\", \"in\", \"instanceof\"];\n if (keywords.includes(value)) {\n if (value === \"true\" || value === \"false\") {\n this.tokens.push(new Token(\"BOOLEAN\", value === \"true\", start2, this.position));\n } else if (value === \"null\") {\n this.tokens.push(new Token(\"NULL\", null, start2, this.position));\n } else if (value === \"undefined\") {\n this.tokens.push(new Token(\"UNDEFINED\", void 0, start2, this.position));\n } else {\n this.tokens.push(new Token(\"KEYWORD\", value, start2, this.position));\n }\n } else {\n this.tokens.push(new Token(\"IDENTIFIER\", value, start2, this.position));\n }\n }\n readString() {\n const start2 = this.position;\n const quote = this.input[this.position];\n this.position++;\n let value = \"\";\n let escaped = false;\n while (this.position < this.input.length) {\n const char = this.input[this.position];\n if (escaped) {\n switch (char) {\n case \"n\":\n value += \"\\n\";\n break;\n case \"t\":\n value += \"\t\";\n break;\n case \"r\":\n value += \"\\r\";\n break;\n case \"\\\\\":\n value += \"\\\\\";\n break;\n case quote:\n value += quote;\n break;\n default:\n value += char;\n }\n escaped = false;\n } else if (char === \"\\\\\") {\n escaped = true;\n } else if (char === quote) {\n this.position++;\n this.tokens.push(new Token(\"STRING\", value, start2, this.position));\n return;\n } else {\n value += char;\n }\n this.position++;\n }\n throw new Error(`Unterminated string starting at position ${start2}`);\n }\n readOperatorOrPunctuation() {\n const start2 = this.position;\n const char = this.input[this.position];\n const next = this.peek();\n const nextNext = this.peek(2);\n if (char === \"=\" && next === \"=\" && nextNext === \"=\") {\n this.position += 3;\n this.tokens.push(new Token(\"OPERATOR\", \"===\", start2, this.position));\n } else if (char === \"!\" && next === \"=\" && nextNext === \"=\") {\n this.position += 3;\n this.tokens.push(new Token(\"OPERATOR\", \"!==\", start2, this.position));\n } else if (char === \"=\" && next === \"=\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"==\", start2, this.position));\n } else if (char === \"!\" && next === \"=\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"!=\", start2, this.position));\n } else if (char === \"<\" && next === \"=\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"<=\", start2, this.position));\n } else if (char === \">\" && next === \"=\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \">=\", start2, this.position));\n } else if (char === \"&\" && next === \"&\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"&&\", start2, this.position));\n } else if (char === \"|\" && next === \"|\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"||\", start2, this.position));\n } else if (char === \"+\" && next === \"+\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"++\", start2, this.position));\n } else if (char === \"-\" && next === \"-\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"--\", start2, this.position));\n } else {\n this.position++;\n const type = \"()[]{},.;:?\".includes(char) ? \"PUNCTUATION\" : \"OPERATOR\";\n this.tokens.push(new Token(type, char, start2, this.position));\n }\n }\n};\nvar Parser = class {\n constructor(tokens) {\n this.tokens = tokens;\n this.position = 0;\n }\n parse() {\n if (this.isAtEnd()) {\n throw new Error(\"Empty expression\");\n }\n const expr = this.parseExpression();\n this.match(\"PUNCTUATION\", \";\");\n if (!this.isAtEnd()) {\n throw new Error(`Unexpected token: ${this.current().value}`);\n }\n return expr;\n }\n parseExpression() {\n return this.parseAssignment();\n }\n parseAssignment() {\n const expr = this.parseTernary();\n if (this.match(\"OPERATOR\", \"=\")) {\n const value = this.parseAssignment();\n if (expr.type === \"Identifier\" || expr.type === \"MemberExpression\") {\n return {\n type: \"AssignmentExpression\",\n left: expr,\n operator: \"=\",\n right: value\n };\n }\n throw new Error(\"Invalid assignment target\");\n }\n return expr;\n }\n parseTernary() {\n const expr = this.parseLogicalOr();\n if (this.match(\"PUNCTUATION\", \"?\")) {\n const consequent = this.parseExpression();\n this.consume(\"PUNCTUATION\", \":\");\n const alternate = this.parseExpression();\n return {\n type: \"ConditionalExpression\",\n test: expr,\n consequent,\n alternate\n };\n }\n return expr;\n }\n parseLogicalOr() {\n let expr = this.parseLogicalAnd();\n while (this.match(\"OPERATOR\", \"||\")) {\n const operator = this.previous().value;\n const right = this.parseLogicalAnd();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseLogicalAnd() {\n let expr = this.parseEquality();\n while (this.match(\"OPERATOR\", \"&&\")) {\n const operator = this.previous().value;\n const right = this.parseEquality();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseEquality() {\n let expr = this.parseRelational();\n while (this.match(\"OPERATOR\", \"==\", \"!=\", \"===\", \"!==\")) {\n const operator = this.previous().value;\n const right = this.parseRelational();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseRelational() {\n let expr = this.parseAdditive();\n while (this.match(\"OPERATOR\", \"<\", \">\", \"<=\", \">=\")) {\n const operator = this.previous().value;\n const right = this.parseAdditive();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseAdditive() {\n let expr = this.parseMultiplicative();\n while (this.match(\"OPERATOR\", \"+\", \"-\")) {\n const operator = this.previous().value;\n const right = this.parseMultiplicative();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseMultiplicative() {\n let expr = this.parseUnary();\n while (this.match(\"OPERATOR\", \"*\", \"/\", \"%\")) {\n const operator = this.previous().value;\n const right = this.parseUnary();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseUnary() {\n if (this.match(\"OPERATOR\", \"++\", \"--\")) {\n const operator = this.previous().value;\n const argument = this.parseUnary();\n return {\n type: \"UpdateExpression\",\n operator,\n argument,\n prefix: true\n };\n }\n if (this.match(\"OPERATOR\", \"!\", \"-\", \"+\")) {\n const operator = this.previous().value;\n const argument = this.parseUnary();\n return {\n type: \"UnaryExpression\",\n operator,\n argument,\n prefix: true\n };\n }\n return this.parsePostfix();\n }\n parsePostfix() {\n let expr = this.parseMember();\n if (this.match(\"OPERATOR\", \"++\", \"--\")) {\n const operator = this.previous().value;\n return {\n type: \"UpdateExpression\",\n operator,\n argument: expr,\n prefix: false\n };\n }\n return expr;\n }\n parseMember() {\n let expr = this.parsePrimary();\n while (true) {\n if (this.match(\"PUNCTUATION\", \".\")) {\n const property = this.consume(\"IDENTIFIER\");\n expr = {\n type: \"MemberExpression\",\n object: expr,\n property: { type: \"Identifier\", name: property.value },\n computed: false\n };\n } else if (this.match(\"PUNCTUATION\", \"[\")) {\n const property = this.parseExpression();\n this.consume(\"PUNCTUATION\", \"]\");\n expr = {\n type: \"MemberExpression\",\n object: expr,\n property,\n computed: true\n };\n } else if (this.match(\"PUNCTUATION\", \"(\")) {\n const args = this.parseArguments();\n expr = {\n type: \"CallExpression\",\n callee: expr,\n arguments: args\n };\n } else {\n break;\n }\n }\n return expr;\n }\n parseArguments() {\n const args = [];\n if (!this.check(\"PUNCTUATION\", \")\")) {\n do {\n args.push(this.parseExpression());\n } while (this.match(\"PUNCTUATION\", \",\"));\n }\n this.consume(\"PUNCTUATION\", \")\");\n return args;\n }\n parsePrimary() {\n if (this.match(\"NUMBER\")) {\n return { type: \"Literal\", value: this.previous().value };\n }\n if (this.match(\"STRING\")) {\n return { type: \"Literal\", value: this.previous().value };\n }\n if (this.match(\"BOOLEAN\")) {\n return { type: \"Literal\", value: this.previous().value };\n }\n if (this.match(\"NULL\")) {\n return { type: \"Literal\", value: null };\n }\n if (this.match(\"UNDEFINED\")) {\n return { type: \"Literal\", value: void 0 };\n }\n if (this.match(\"IDENTIFIER\")) {\n return { type: \"Identifier\", name: this.previous().value };\n }\n if (this.match(\"PUNCTUATION\", \"(\")) {\n const expr = this.parseExpression();\n this.consume(\"PUNCTUATION\", \")\");\n return expr;\n }\n if (this.match(\"PUNCTUATION\", \"[\")) {\n return this.parseArrayLiteral();\n }\n if (this.match(\"PUNCTUATION\", \"{\")) {\n return this.parseObjectLiteral();\n }\n throw new Error(`Unexpected token: ${this.current().type} \"${this.current().value}\"`);\n }\n parseArrayLiteral() {\n const elements = [];\n while (!this.check(\"PUNCTUATION\", \"]\") && !this.isAtEnd()) {\n elements.push(this.parseExpression());\n if (this.match(\"PUNCTUATION\", \",\")) {\n if (this.check(\"PUNCTUATION\", \"]\")) {\n break;\n }\n } else {\n break;\n }\n }\n this.consume(\"PUNCTUATION\", \"]\");\n return {\n type: \"ArrayExpression\",\n elements\n };\n }\n parseObjectLiteral() {\n const properties = [];\n while (!this.check(\"PUNCTUATION\", \"}\") && !this.isAtEnd()) {\n let key;\n let computed = false;\n if (this.match(\"STRING\")) {\n key = { type: \"Literal\", value: this.previous().value };\n } else if (this.match(\"IDENTIFIER\")) {\n const name = this.previous().value;\n key = { type: \"Identifier\", name };\n } else if (this.match(\"PUNCTUATION\", \"[\")) {\n key = this.parseExpression();\n computed = true;\n this.consume(\"PUNCTUATION\", \"]\");\n } else {\n throw new Error(\"Expected property key\");\n }\n this.consume(\"PUNCTUATION\", \":\");\n const value = this.parseExpression();\n properties.push({\n type: \"Property\",\n key,\n value,\n computed,\n shorthand: false\n });\n if (this.match(\"PUNCTUATION\", \",\")) {\n if (this.check(\"PUNCTUATION\", \"}\")) {\n break;\n }\n } else {\n break;\n }\n }\n this.consume(\"PUNCTUATION\", \"}\");\n return {\n type: \"ObjectExpression\",\n properties\n };\n }\n match(...args) {\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (i === 0 && args.length > 1) {\n const type = arg;\n for (let j = 1; j < args.length; j++) {\n if (this.check(type, args[j])) {\n this.advance();\n return true;\n }\n }\n return false;\n } else if (args.length === 1) {\n if (this.checkType(arg)) {\n this.advance();\n return true;\n }\n return false;\n }\n }\n return false;\n }\n check(type, value) {\n if (this.isAtEnd())\n return false;\n if (value !== void 0) {\n return this.current().type === type && this.current().value === value;\n }\n return this.current().type === type;\n }\n checkType(type) {\n if (this.isAtEnd())\n return false;\n return this.current().type === type;\n }\n advance() {\n if (!this.isAtEnd())\n this.position++;\n return this.previous();\n }\n isAtEnd() {\n return this.current().type === \"EOF\";\n }\n current() {\n return this.tokens[this.position];\n }\n previous() {\n return this.tokens[this.position - 1];\n }\n consume(type, value) {\n if (value !== void 0) {\n if (this.check(type, value))\n return this.advance();\n throw new Error(`Expected ${type} \"${value}\" but got ${this.current().type} \"${this.current().value}\"`);\n }\n if (this.check(type))\n return this.advance();\n throw new Error(`Expected ${type} but got ${this.current().type} \"${this.current().value}\"`);\n }\n};\nvar Evaluator = class {\n evaluate({ node, scope: scope2 = {}, context = null, forceBindingRootScopeToFunctions = true }) {\n switch (node.type) {\n case \"Literal\":\n return node.value;\n case \"Identifier\":\n if (node.name in scope2) {\n const value2 = scope2[node.name];\n this.checkForDangerousValues(value2);\n if (typeof value2 === \"function\") {\n return value2.bind(scope2);\n }\n return value2;\n }\n throw new Error(`Undefined variable: ${node.name}`);\n case \"MemberExpression\":\n const object = this.evaluate({ node: node.object, scope: scope2, context, forceBindingRootScopeToFunctions });\n if (object == null) {\n throw new Error(\"Cannot read property of null or undefined\");\n }\n let property;\n if (node.computed) {\n property = this.evaluate({ node: node.property, scope: scope2, context, forceBindingRootScopeToFunctions });\n } else {\n property = node.property.name;\n }\n this.checkForDangerousKeywords(property);\n let memberValue = object[property];\n this.checkForDangerousValues(memberValue);\n if (typeof memberValue === \"function\") {\n if (forceBindingRootScopeToFunctions) {\n return memberValue.bind(scope2);\n } else {\n return memberValue.bind(object);\n }\n }\n return memberValue;\n case \"CallExpression\":\n const args = node.arguments.map((arg) => this.evaluate({ node: arg, scope: scope2, context, forceBindingRootScopeToFunctions }));\n let returnValue;\n if (node.callee.type === \"MemberExpression\") {\n const obj = this.evaluate({ node: node.callee.object, scope: scope2, context, forceBindingRootScopeToFunctions });\n let prop;\n if (node.callee.computed) {\n prop = this.evaluate({ node: node.callee.property, scope: scope2, context, forceBindingRootScopeToFunctions });\n } else {\n prop = node.callee.property.name;\n }\n this.checkForDangerousKeywords(prop);\n let func = obj[prop];\n if (typeof func !== \"function\") {\n throw new Error(\"Value is not a function\");\n }\n returnValue = func.apply(obj, args);\n } else {\n if (node.callee.type === \"Identifier\") {\n const name = node.callee.name;\n let func;\n if (name in scope2) {\n func = scope2[name];\n } else {\n throw new Error(`Undefined variable: ${name}`);\n }\n if (typeof func !== \"function\") {\n throw new Error(\"Value is not a function\");\n }\n const thisContext = context !== null ? context : scope2;\n returnValue = func.apply(thisContext, args);\n } else {\n const callee = this.evaluate({ node: node.callee, scope: scope2, context, forceBindingRootScopeToFunctions });\n if (typeof callee !== \"function\") {\n throw new Error(\"Value is not a function\");\n }\n returnValue = callee.apply(context, args);\n }\n }\n this.checkForDangerousValues(returnValue);\n return returnValue;\n case \"UnaryExpression\":\n const argument = this.evaluate({ node: node.argument, scope: scope2, context, forceBindingRootScopeToFunctions });\n switch (node.operator) {\n case \"!\":\n return !argument;\n case \"-\":\n return -argument;\n case \"+\":\n return +argument;\n default:\n throw new Error(`Unknown unary operator: ${node.operator}`);\n }\n case \"UpdateExpression\":\n if (node.argument.type === \"Identifier\") {\n const name = node.argument.name;\n if (!(name in scope2)) {\n throw new Error(`Undefined variable: ${name}`);\n }\n const oldValue = scope2[name];\n if (node.operator === \"++\") {\n scope2[name] = oldValue + 1;\n } else if (node.operator === \"--\") {\n scope2[name] = oldValue - 1;\n }\n return node.prefix ? scope2[name] : oldValue;\n } else if (node.argument.type === \"MemberExpression\") {\n const obj = this.evaluate({ node: node.argument.object, scope: scope2, context, forceBindingRootScopeToFunctions });\n const prop = node.argument.computed ? this.evaluate({ node: node.argument.property, scope: scope2, context, forceBindingRootScopeToFunctions }) : node.argument.property.name;\n if (this.isDOMObject(obj)) {\n throw new Error(\"Property assignments on DOM objects are prohibited in the CSP build\");\n }\n this.checkForDangerousKeywords(prop);\n const oldValue = obj[prop];\n if (node.operator === \"++\") {\n obj[prop] = oldValue + 1;\n } else if (node.operator === \"--\") {\n obj[prop] = oldValue - 1;\n }\n return node.prefix ? obj[prop] : oldValue;\n }\n throw new Error(\"Invalid update expression target\");\n case \"BinaryExpression\":\n const left = this.evaluate({ node: node.left, scope: scope2, context, forceBindingRootScopeToFunctions });\n const evalRight = () => this.evaluate({ node: node.right, scope: scope2, context, forceBindingRootScopeToFunctions });\n if (node.operator === \"&&\")\n return left && evalRight();\n if (node.operator === \"||\")\n return left || evalRight();\n const right = evalRight();\n switch (node.operator) {\n case \"+\":\n return left + right;\n case \"-\":\n return left - right;\n case \"*\":\n return left * right;\n case \"/\":\n return left / right;\n case \"%\":\n return left % right;\n case \"==\":\n return left == right;\n case \"!=\":\n return left != right;\n case \"===\":\n return left === right;\n case \"!==\":\n return left !== right;\n case \"<\":\n return left < right;\n case \">\":\n return left > right;\n case \"<=\":\n return left <= right;\n case \">=\":\n return left >= right;\n default:\n throw new Error(`Unknown binary operator: ${node.operator}`);\n }\n case \"ConditionalExpression\":\n const test = this.evaluate({ node: node.test, scope: scope2, context, forceBindingRootScopeToFunctions });\n return test ? this.evaluate({ node: node.consequent, scope: scope2, context, forceBindingRootScopeToFunctions }) : this.evaluate({ node: node.alternate, scope: scope2, context, forceBindingRootScopeToFunctions });\n case \"AssignmentExpression\":\n const value = this.evaluate({ node: node.right, scope: scope2, context, forceBindingRootScopeToFunctions });\n if (node.left.type === \"Identifier\") {\n scope2[node.left.name] = value;\n return value;\n } else if (node.left.type === \"MemberExpression\") {\n const obj = this.evaluate({ node: node.left.object, scope: scope2, context, forceBindingRootScopeToFunctions });\n const prop = node.left.computed ? this.evaluate({ node: node.left.property, scope: scope2, context, forceBindingRootScopeToFunctions }) : node.left.property.name;\n if (this.isDOMObject(obj)) {\n throw new Error(\"Property assignments on DOM objects are prohibited in the CSP build\");\n }\n this.checkForDangerousKeywords(prop);\n obj[prop] = value;\n return value;\n }\n throw new Error(\"Invalid assignment target\");\n case \"ArrayExpression\":\n return node.elements.map((el) => this.evaluate({ node: el, scope: scope2, context, forceBindingRootScopeToFunctions }));\n case \"ObjectExpression\":\n const result = {};\n for (const prop of node.properties) {\n const key = prop.computed ? this.evaluate({ node: prop.key, scope: scope2, context, forceBindingRootScopeToFunctions }) : prop.key.type === \"Identifier\" ? prop.key.name : this.evaluate({ node: prop.key, scope: scope2, context, forceBindingRootScopeToFunctions });\n const value2 = this.evaluate({ node: prop.value, scope: scope2, context, forceBindingRootScopeToFunctions });\n result[key] = value2;\n }\n return result;\n default:\n throw new Error(`Unknown node type: ${node.type}`);\n }\n }\n isDOMObject(obj) {\n return obj instanceof Node || typeof CSSStyleDeclaration !== \"undefined\" && obj instanceof CSSStyleDeclaration || typeof DOMStringMap !== \"undefined\" && obj instanceof DOMStringMap || typeof DOMTokenList !== \"undefined\" && obj instanceof DOMTokenList || typeof NamedNodeMap !== \"undefined\" && obj instanceof NamedNodeMap;\n }\n checkForDangerousKeywords(keyword) {\n let blacklist = [\n \"constructor\",\n \"prototype\",\n \"__proto__\",\n \"__defineGetter__\",\n \"__defineSetter__\",\n \"insertAdjacentHTML\",\n \"setAttribute\",\n \"setAttributeNS\",\n \"setAttributeNode\",\n \"setAttributeNodeNS\"\n ];\n if (blacklist.includes(keyword)) {\n throw new Error(`Accessing \"${keyword}\" is prohibited in the CSP build`);\n }\n }\n checkForDangerousValues(prop) {\n if (prop === null) {\n return;\n }\n if (typeof prop !== \"object\" && typeof prop !== \"function\") {\n return;\n }\n if (safemap.has(prop)) {\n return;\n }\n if (prop instanceof HTMLIFrameElement || prop instanceof HTMLScriptElement) {\n throw new Error(\"Accessing iframes and scripts is prohibited in the CSP build\");\n }\n if (globals.has(prop)) {\n throw new Error(\"Accessing global variables is prohibited in the CSP build\");\n }\n safemap.set(prop, true);\n return true;\n }\n};\nfunction generateRuntimeFunction(expression) {\n try {\n const tokenizer = new Tokenizer(expression);\n const tokens = tokenizer.tokenize();\n const parser = new Parser(tokens);\n const ast = parser.parse();\n const evaluator = new Evaluator();\n return function(options = {}) {\n const { scope: scope2 = {}, context = null, forceBindingRootScopeToFunctions = false } = options;\n return evaluator.evaluate({ node: ast, scope: scope2, context, forceBindingRootScopeToFunctions });\n };\n } catch (error2) {\n throw new Error(`CSP Parser Error: ${error2.message}`);\n }\n}\n\n// packages/csp/src/evaluator.js\nfunction cspRawEvaluator(el, expression, extras = {}) {\n var _a, _b;\n let dataStack = generateDataStack(el);\n let scope2 = mergeProxies([(_a = extras.scope) != null ? _a : {}, ...dataStack]);\n let params = (_b = extras.params) != null ? _b : [];\n let evaluate2 = generateRuntimeFunction(expression);\n let result = evaluate2({\n scope: scope2,\n forceBindingRootScopeToFunctions: true\n });\n if (typeof result === \"function\" && shouldAutoEvaluateFunctions) {\n return result.apply(scope2, params);\n }\n return result;\n}\nfunction cspEvaluator(el, expression) {\n let dataStack = generateDataStack(el);\n if (typeof expression === \"function\") {\n return generateEvaluatorFromFunction(dataStack, expression);\n }\n let evaluator = generateEvaluator(el, expression, dataStack);\n return tryCatch.bind(null, el, expression, evaluator);\n}\nfunction generateDataStack(el) {\n let overriddenMagics = {};\n injectMagics(overriddenMagics, el);\n return [overriddenMagics, ...closestDataStack(el)];\n}\nfunction generateEvaluator(el, expression, dataStack) {\n if (el instanceof HTMLIFrameElement) {\n throw new Error(\"Evaluating expressions on an iframe is prohibited in the CSP build\");\n }\n if (el instanceof HTMLScriptElement) {\n throw new Error(\"Evaluating expressions on a script is prohibited in the CSP build\");\n }\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [] } = {}) => {\n let completeScope = mergeProxies([scope2, ...dataStack]);\n let evaluate2 = generateRuntimeFunction(expression);\n let returnValue = evaluate2({\n scope: completeScope,\n forceBindingRootScopeToFunctions: true\n });\n if (shouldAutoEvaluateFunctions && typeof returnValue === \"function\") {\n let nextReturnValue = returnValue.apply(returnValue, params);\n if (nextReturnValue instanceof Promise) {\n nextReturnValue.then((i) => receiver(i));\n } else {\n receiver(nextReturnValue);\n }\n } else if (typeof returnValue === \"object\" && returnValue instanceof Promise) {\n returnValue.then((i) => receiver(i));\n } else {\n receiver(returnValue);\n }\n };\n}\n\n// packages/csp/src/index.js\nvar import_reactivity10 = __toESM(require_reactivity());\n\n// packages/alpinejs/src/magics/$nextTick.js\nmagic(\"nextTick\", () => nextTick);\n\n// packages/alpinejs/src/magics/$dispatch.js\nmagic(\"dispatch\", (el) => dispatch.bind(dispatch, el));\n\n// packages/alpinejs/src/magics/$watch.js\nmagic(\"watch\", (el, { evaluateLater: evaluateLater2, cleanup }) => (key, callback) => {\n let evaluate2 = evaluateLater2(key);\n let getter = () => {\n let value;\n evaluate2((i) => value = i);\n return value;\n };\n let unwatch = watch(getter, callback);\n cleanup(unwatch);\n});\n\n// packages/alpinejs/src/magics/$store.js\nmagic(\"store\", getStores);\n\n// packages/alpinejs/src/magics/$data.js\nmagic(\"data\", (el) => scope(el));\n\n// packages/alpinejs/src/magics/$root.js\nmagic(\"root\", (el) => closestRoot(el));\n\n// packages/alpinejs/src/magics/$refs.js\nmagic(\"refs\", (el) => {\n if (el._x_refs_proxy)\n return el._x_refs_proxy;\n el._x_refs_proxy = mergeProxies(getArrayOfRefObject(el));\n return el._x_refs_proxy;\n});\nfunction getArrayOfRefObject(el) {\n let refObjects = [];\n findClosest(el, (i) => {\n if (i._x_refs)\n refObjects.push(i._x_refs);\n });\n return refObjects;\n}\n\n// packages/alpinejs/src/ids.js\nvar globalIdMemo = {};\nfunction findAndIncrementId(name) {\n if (!globalIdMemo[name])\n globalIdMemo[name] = 0;\n return ++globalIdMemo[name];\n}\nfunction closestIdRoot(el, name) {\n return findClosest(el, (element) => {\n if (element._x_ids && element._x_ids[name])\n return true;\n });\n}\nfunction setIdRoot(el, name) {\n if (!el._x_ids)\n el._x_ids = {};\n if (!el._x_ids[name])\n el._x_ids[name] = findAndIncrementId(name);\n}\n\n// packages/alpinejs/src/magics/$id.js\nmagic(\"id\", (el, { cleanup }) => (name, key = null) => {\n let cacheKey = `${name}${key ? `-${key}` : \"\"}`;\n return cacheIdByNameOnElement(el, cacheKey, cleanup, () => {\n let root = closestIdRoot(el, name);\n let id = root ? root._x_ids[name] : findAndIncrementId(name);\n return key ? `${name}-${id}-${key}` : `${name}-${id}`;\n });\n});\ninterceptClone((from, to) => {\n if (from._x_id) {\n to._x_id = from._x_id;\n }\n});\nfunction cacheIdByNameOnElement(el, cacheKey, cleanup, callback) {\n if (!el._x_id)\n el._x_id = {};\n if (el._x_id[cacheKey])\n return el._x_id[cacheKey];\n let output = callback();\n el._x_id[cacheKey] = output;\n cleanup(() => {\n delete el._x_id[cacheKey];\n });\n return output;\n}\n\n// packages/alpinejs/src/magics/$el.js\nmagic(\"el\", (el) => el);\n\n// packages/alpinejs/src/magics/index.js\nwarnMissingPluginMagic(\"Focus\", \"focus\", \"focus\");\nwarnMissingPluginMagic(\"Persist\", \"persist\", \"persist\");\nfunction warnMissingPluginMagic(name, magicName, slug) {\n magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/directives/x-modelable.js\ndirective(\"modelable\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup }) => {\n let func = evaluateLater2(expression);\n let innerGet = () => {\n let result;\n func((i) => result = i);\n return result;\n };\n let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`);\n let innerSet = (val) => evaluateInnerSet(() => {\n }, { scope: { \"__placeholder\": val } });\n let initialValue = innerGet();\n innerSet(initialValue);\n queueMicrotask(() => {\n if (!el._x_model)\n return;\n el._x_removeModelListeners[\"default\"]();\n let outerGet = el._x_model.get;\n let outerSet = el._x_model.setWithModifiers;\n let releaseEntanglement = entangle(\n {\n get() {\n return outerGet();\n },\n set(value) {\n outerSet(value);\n }\n },\n {\n get() {\n return innerGet();\n },\n set(value) {\n innerSet(value);\n }\n }\n );\n cleanup(releaseEntanglement);\n });\n});\n\n// packages/alpinejs/src/directives/x-teleport.js\ndirective(\"teleport\", (el, { modifiers, expression }, { cleanup }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-teleport can only be used on a <template> tag\", el);\n let target = getTarget(expression);\n let clone2 = el.content.cloneNode(true).firstElementChild;\n el._x_teleport = clone2;\n clone2._x_teleportBack = el;\n el.setAttribute(\"data-teleport-template\", true);\n clone2.setAttribute(\"data-teleport-target\", true);\n if (el._x_forwardEvents) {\n el._x_forwardEvents.forEach((eventName) => {\n clone2.addEventListener(eventName, (e) => {\n e.stopPropagation();\n el.dispatchEvent(new e.constructor(e.type, e));\n });\n });\n }\n addScopeToNode(clone2, {}, el);\n let placeInDom = (clone3, target2, modifiers2) => {\n if (modifiers2.includes(\"prepend\")) {\n target2.parentNode.insertBefore(clone3, target2);\n } else if (modifiers2.includes(\"append\")) {\n target2.parentNode.insertBefore(clone3, target2.nextSibling);\n } else {\n target2.appendChild(clone3);\n }\n };\n mutateDom(() => {\n skipDuringClone(() => {\n placeInDom(clone2, target, modifiers);\n initTree(clone2);\n })();\n });\n el._x_teleportPutBack = () => {\n let target2 = getTarget(expression);\n mutateDom(() => {\n placeInDom(el._x_teleport, target2, modifiers);\n });\n };\n cleanup(\n () => mutateDom(() => {\n clone2.remove();\n destroyTree(clone2);\n })\n );\n});\nvar teleportContainerDuringClone = document.createElement(\"div\");\nfunction getTarget(expression) {\n let target = skipDuringClone(() => {\n return document.querySelector(expression);\n }, () => {\n return teleportContainerDuringClone;\n })();\n if (!target)\n warn(`Cannot find x-teleport element for selector: \"${expression}\"`);\n return target;\n}\n\n// packages/alpinejs/src/directives/x-ignore.js\nvar handler = () => {\n};\nhandler.inline = (el, { modifiers }, { cleanup }) => {\n modifiers.includes(\"self\") ? el._x_ignoreSelf = true : el._x_ignore = true;\n cleanup(() => {\n modifiers.includes(\"self\") ? delete el._x_ignoreSelf : delete el._x_ignore;\n });\n};\ndirective(\"ignore\", handler);\n\n// packages/alpinejs/src/directives/x-effect.js\ndirective(\"effect\", skipDuringClone((el, { expression }, { effect: effect3 }) => {\n effect3(evaluateLater(el, expression));\n}));\n\n// packages/alpinejs/src/utils/on.js\nfunction on(el, event, modifiers, callback) {\n let listenerTarget = el;\n let handler4 = (e) => callback(e);\n let options = {};\n let wrapHandler = (callback2, wrapper) => (e) => wrapper(callback2, e);\n if (modifiers.includes(\"dot\"))\n event = dotSyntax(event);\n if (modifiers.includes(\"camel\"))\n event = camelCase2(event);\n if (modifiers.includes(\"capture\"))\n options.capture = true;\n if (modifiers.includes(\"window\"))\n listenerTarget = window;\n if (modifiers.includes(\"document\"))\n listenerTarget = document;\n if (modifiers.includes(\"passive\")) {\n options.passive = modifiers[modifiers.indexOf(\"passive\") + 1] !== \"false\";\n }\n handler4 = addDebounceOrThrottle(modifiers, handler4);\n if (modifiers.includes(\"prevent\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.preventDefault();\n next(e);\n });\n if (modifiers.includes(\"stop\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.stopPropagation();\n next(e);\n });\n if (modifiers.includes(\"once\")) {\n handler4 = wrapHandler(handler4, (next, e) => {\n next(e);\n listenerTarget.removeEventListener(event, handler4, options);\n });\n }\n if (modifiers.includes(\"away\") || modifiers.includes(\"outside\")) {\n listenerTarget = document;\n handler4 = wrapHandler(handler4, (next, e) => {\n if (el.contains(e.target))\n return;\n if (e.target.isConnected === false)\n return;\n if (el.offsetWidth < 1 && el.offsetHeight < 1)\n return;\n if (el._x_isShown === false)\n return;\n next(e);\n });\n }\n if (modifiers.includes(\"self\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.target === el && next(e);\n });\n if (event === \"submit\") {\n handler4 = wrapHandler(handler4, (next, e) => {\n if (e.target._x_pendingModelUpdates) {\n e.target._x_pendingModelUpdates.forEach((fn) => fn());\n }\n next(e);\n });\n }\n if (isKeyEvent(event) || isClickEvent(event)) {\n handler4 = wrapHandler(handler4, (next, e) => {\n if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) {\n return;\n }\n next(e);\n });\n }\n listenerTarget.addEventListener(event, handler4, options);\n return () => {\n listenerTarget.removeEventListener(event, handler4, options);\n };\n}\nfunction addDebounceOrThrottle(modifiers, handler4) {\n if (modifiers.includes(\"debounce\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"debounce\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = debounce(handler4, wait);\n }\n if (modifiers.includes(\"throttle\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"throttle\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = throttle(handler4, wait);\n }\n return handler4;\n}\nfunction dotSyntax(subject) {\n return subject.replace(/-/g, \".\");\n}\nfunction camelCase2(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction isNumeric(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction kebabCase2(subject) {\n if ([\" \", \"_\"].includes(\n subject\n ))\n return subject;\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[_\\s]/, \"-\").toLowerCase();\n}\nfunction isKeyEvent(event) {\n return [\"keydown\", \"keyup\"].includes(event);\n}\nfunction isClickEvent(event) {\n return [\"contextmenu\", \"click\", \"mouse\"].some((i) => event.includes(i));\n}\nfunction isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) {\n let keyModifiers = modifiers.filter((i) => {\n return ![\"window\", \"document\", \"prevent\", \"stop\", \"once\", \"capture\", \"self\", \"away\", \"outside\", \"passive\", \"preserve-scroll\", \"blur\", \"change\", \"lazy\"].includes(i);\n });\n if (keyModifiers.includes(\"debounce\")) {\n let debounceIndex = keyModifiers.indexOf(\"debounce\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.includes(\"throttle\")) {\n let debounceIndex = keyModifiers.indexOf(\"throttle\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.length === 0)\n return false;\n if (keyModifiers.length === 1 && keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n const systemKeyModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\", \"cmd\", \"super\"];\n const selectedSystemKeyModifiers = systemKeyModifiers.filter((modifier) => keyModifiers.includes(modifier));\n keyModifiers = keyModifiers.filter((i) => !selectedSystemKeyModifiers.includes(i));\n if (selectedSystemKeyModifiers.length > 0) {\n const activelyPressedKeyModifiers = selectedSystemKeyModifiers.filter((modifier) => {\n if (modifier === \"cmd\" || modifier === \"super\")\n modifier = \"meta\";\n return e[`${modifier}Key`];\n });\n if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) {\n if (isClickEvent(e.type))\n return false;\n if (keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n }\n }\n return true;\n}\nfunction keyToModifiers(key) {\n if (!key)\n return [];\n key = kebabCase2(key);\n let modifierToKeyMap = {\n \"ctrl\": \"control\",\n \"slash\": \"/\",\n \"space\": \" \",\n \"spacebar\": \" \",\n \"cmd\": \"meta\",\n \"esc\": \"escape\",\n \"up\": \"arrow-up\",\n \"down\": \"arrow-down\",\n \"left\": \"arrow-left\",\n \"right\": \"arrow-right\",\n \"period\": \".\",\n \"comma\": \",\",\n \"equal\": \"=\",\n \"minus\": \"-\",\n \"underscore\": \"_\"\n };\n modifierToKeyMap[key] = key;\n return Object.keys(modifierToKeyMap).map((modifier) => {\n if (modifierToKeyMap[modifier] === key)\n return modifier;\n }).filter((modifier) => modifier);\n}\n\n// packages/alpinejs/src/directives/x-model.js\ndirective(\"model\", (el, { modifiers, expression }, { effect: effect3, cleanup }) => {\n let scopeTarget = el;\n if (modifiers.includes(\"parent\")) {\n scopeTarget = findClosest(el, (element) => element !== el);\n }\n let evaluateGet = evaluateLater(scopeTarget, expression);\n let evaluateSet;\n if (typeof expression === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`);\n } else if (typeof expression === \"function\" && typeof expression() === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`);\n } else {\n evaluateSet = () => {\n };\n }\n let getValue = () => {\n let result;\n evaluateGet((value) => result = value);\n return isGetterSetter(result) ? result.get() : result;\n };\n let setValue = (value) => {\n let result;\n evaluateGet((value2) => result = value2);\n if (isGetterSetter(result)) {\n result.set(value);\n } else {\n evaluateSet(() => {\n }, {\n scope: { \"__placeholder\": value }\n });\n }\n };\n if (typeof expression === \"string\" && el.type === \"radio\") {\n mutateDom(() => {\n if (!el.hasAttribute(\"name\"))\n el.setAttribute(\"name\", expression);\n });\n }\n let hasChangeModifier = modifiers.includes(\"change\") || modifiers.includes(\"lazy\");\n let hasBlurModifier = modifiers.includes(\"blur\");\n let hasEnterModifier = modifiers.includes(\"enter\");\n let hasExplicitEventModifiers = hasChangeModifier || hasBlurModifier || hasEnterModifier;\n let removeListener;\n if (isCloning) {\n removeListener = () => {\n };\n } else if (hasExplicitEventModifiers) {\n let listeners = [];\n let syncValue = (e) => setValue(getInputValue(el, modifiers, e, getValue()));\n if (hasChangeModifier) {\n listeners.push(on(el, \"change\", modifiers, syncValue));\n }\n if (hasBlurModifier) {\n listeners.push(on(el, \"blur\", modifiers, syncValue));\n if (el.form) {\n let form = el.form;\n let syncCallback = () => syncValue({ target: el });\n if (!form._x_pendingModelUpdates)\n form._x_pendingModelUpdates = [];\n form._x_pendingModelUpdates.push(syncCallback);\n cleanup(() => {\n if (form._x_pendingModelUpdates) {\n form._x_pendingModelUpdates.splice(form._x_pendingModelUpdates.indexOf(syncCallback), 1);\n }\n });\n }\n }\n if (hasEnterModifier) {\n listeners.push(on(el, \"keydown\", modifiers, (e) => {\n if (e.key === \"Enter\")\n syncValue(e);\n }));\n }\n removeListener = () => listeners.forEach((remove) => remove());\n } else {\n let event = el.tagName.toLowerCase() === \"select\" || [\"checkbox\", \"radio\"].includes(el.type) ? \"change\" : \"input\";\n removeListener = on(el, event, modifiers, (e) => {\n setValue(getInputValue(el, modifiers, e, getValue()));\n });\n }\n if (modifiers.includes(\"fill\")) {\n if ([void 0, null, \"\"].includes(getValue()) || isCheckbox(el) && Array.isArray(getValue()) || el.tagName.toLowerCase() === \"select\" && el.multiple) {\n setValue(\n getInputValue(el, modifiers, { target: el }, getValue())\n );\n }\n }\n if (!el._x_removeModelListeners)\n el._x_removeModelListeners = {};\n el._x_removeModelListeners[\"default\"] = removeListener;\n cleanup(() => el._x_removeModelListeners[\"default\"]());\n if (el.form) {\n let removeResetListener = on(el.form, \"reset\", [], (e) => {\n nextTick(() => el._x_model && el._x_model.set(getInputValue(el, modifiers, { target: el }, getValue())));\n });\n cleanup(() => removeResetListener());\n }\n el._x_model = {\n get() {\n return getValue();\n },\n set(value) {\n setValue(value);\n },\n setWithModifiers: addDebounceOrThrottle(modifiers, setValue)\n };\n el._x_forceModelUpdate = (value) => {\n if (value === void 0 && typeof expression === \"string\" && expression.match(/\\./))\n value = \"\";\n mutateDom(() => {\n if (isCheckbox(el)) {\n if (Array.isArray(value)) {\n el.checked = value.some((val) => val == el.value);\n } else {\n el.checked = !!value;\n }\n } else if (isRadio(el)) {\n if (typeof value === \"boolean\") {\n el.checked = safeParseBoolean(el.value) === value;\n } else {\n el.checked = el.value == value;\n }\n } else {\n bind(el, \"value\", value);\n }\n });\n };\n effect3(() => {\n let value = getValue();\n if (modifiers.includes(\"unintrusive\") && document.activeElement.isSameNode(el))\n return;\n el._x_forceModelUpdate(value);\n });\n});\nfunction getInputValue(el, modifiers, event, currentValue) {\n return mutateDom(() => {\n if (event instanceof CustomEvent && event.detail !== void 0)\n return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value;\n else if (isCheckbox(el)) {\n if (Array.isArray(currentValue)) {\n let newValue = null;\n if (modifiers.includes(\"number\")) {\n newValue = safeParseNumber(event.target.value);\n } else if (modifiers.includes(\"boolean\")) {\n newValue = safeParseBoolean(event.target.value);\n } else {\n newValue = event.target.value;\n }\n return event.target.checked ? currentValue.includes(newValue) ? currentValue : currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));\n } else {\n return event.target.checked;\n }\n } else if (el.tagName.toLowerCase() === \"select\" && el.multiple) {\n if (modifiers.includes(\"number\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseNumber(rawValue);\n });\n } else if (modifiers.includes(\"boolean\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseBoolean(rawValue);\n });\n }\n return Array.from(event.target.selectedOptions).map((option) => {\n return option.value || option.text;\n });\n } else {\n let newValue;\n if (isRadio(el)) {\n if (event.target.checked) {\n newValue = event.target.value;\n } else {\n newValue = currentValue;\n }\n } else {\n newValue = event.target.value;\n }\n if (modifiers.includes(\"number\")) {\n return safeParseNumber(newValue);\n } else if (modifiers.includes(\"boolean\")) {\n return safeParseBoolean(newValue);\n } else if (modifiers.includes(\"trim\")) {\n return newValue.trim();\n } else {\n return newValue;\n }\n }\n });\n}\nfunction safeParseNumber(rawValue) {\n let number = rawValue ? parseFloat(rawValue) : null;\n return isNumeric2(number) ? number : rawValue;\n}\nfunction checkedAttrLooseCompare2(valueA, valueB) {\n return valueA == valueB;\n}\nfunction isNumeric2(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction isGetterSetter(value) {\n return value !== null && typeof value === \"object\" && typeof value.get === \"function\" && typeof value.set === \"function\";\n}\n\n// packages/alpinejs/src/directives/x-cloak.js\ndirective(\"cloak\", (el) => queueMicrotask(() => mutateDom(() => el.removeAttribute(prefix(\"cloak\")))));\n\n// packages/alpinejs/src/directives/x-init.js\naddInitSelector(() => `[${prefix(\"init\")}]`);\ndirective(\"init\", skipDuringClone((el, { expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"string\") {\n return !!expression.trim() && evaluate2(expression, {}, false);\n }\n return evaluate2(expression, {}, false);\n}));\n\n// packages/alpinejs/src/directives/x-text.js\ndirective(\"text\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.textContent = value;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-html.js\ndirective(\"html\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.innerHTML = value != null ? value : \"\";\n el._x_ignoreSelf = true;\n initTree(el);\n delete el._x_ignoreSelf;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-bind.js\nmapAttributes(startingWith(\":\", into(prefix(\"bind:\"))));\nvar handler2 = (el, { value, modifiers, expression, original }, { effect: effect3, cleanup }) => {\n if (!value) {\n let bindingProviders = {};\n injectBindingProviders(bindingProviders);\n let getBindings = evaluateLater(el, expression);\n getBindings((bindings) => {\n applyBindingsObject(el, bindings, original);\n }, { scope: bindingProviders });\n return;\n }\n if (value === \"key\")\n return storeKeyForXFor(el, expression);\n if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) {\n return;\n }\n let evaluate2 = evaluateLater(el, expression);\n effect3(() => evaluate2((result) => {\n if (result === void 0 && typeof expression === \"string\" && expression.match(/\\./)) {\n result = \"\";\n }\n mutateDom(() => bind(el, value, result, modifiers));\n }));\n cleanup(() => {\n el._x_undoAddedClasses && el._x_undoAddedClasses();\n el._x_undoAddedStyles && el._x_undoAddedStyles();\n });\n};\nhandler2.inline = (el, { value, modifiers, expression }) => {\n if (!value)\n return;\n if (!el._x_inlineBindings)\n el._x_inlineBindings = {};\n el._x_inlineBindings[value] = { expression, extract: false };\n};\ndirective(\"bind\", handler2);\nfunction storeKeyForXFor(el, expression) {\n el._x_keyExpression = expression;\n}\n\n// packages/alpinejs/src/directives/x-data.js\naddRootSelector(() => `[${prefix(\"data\")}]`);\ndirective(\"data\", (el, { expression }, { cleanup }) => {\n if (shouldSkipRegisteringDataDuringClone(el))\n return;\n expression = expression === \"\" ? \"{}\" : expression;\n let magicContext = {};\n injectMagics(magicContext, el);\n let dataProviderContext = {};\n injectDataProviders(dataProviderContext, magicContext);\n let data2 = evaluate(el, expression, { scope: dataProviderContext });\n if (data2 === void 0 || data2 === true)\n data2 = {};\n injectMagics(data2, el);\n let reactiveData = reactive(data2);\n initInterceptors(reactiveData);\n let undo = addScopeToNode(el, reactiveData);\n reactiveData[\"init\"] && evaluate(el, reactiveData[\"init\"]);\n cleanup(() => {\n reactiveData[\"destroy\"] && evaluate(el, reactiveData[\"destroy\"]);\n undo();\n });\n});\ninterceptClone((from, to) => {\n if (from._x_dataStack) {\n to._x_dataStack = from._x_dataStack;\n to.setAttribute(\"data-has-alpine-state\", true);\n }\n});\nfunction shouldSkipRegisteringDataDuringClone(el) {\n if (!isCloning)\n return false;\n if (isCloningLegacy)\n return true;\n return el.hasAttribute(\"data-has-alpine-state\");\n}\n\n// packages/alpinejs/src/directives/x-show.js\ndirective(\"show\", (el, { modifiers, expression }, { effect: effect3 }) => {\n let evaluate2 = evaluateLater(el, expression);\n if (!el._x_doHide)\n el._x_doHide = () => {\n mutateDom(() => {\n el.style.setProperty(\"display\", \"none\", modifiers.includes(\"important\") ? \"important\" : void 0);\n });\n };\n if (!el._x_doShow)\n el._x_doShow = () => {\n mutateDom(() => {\n if (el.style.length === 1 && el.style.display === \"none\") {\n el.removeAttribute(\"style\");\n } else {\n el.style.removeProperty(\"display\");\n }\n });\n };\n let hide = () => {\n el._x_doHide();\n el._x_isShown = false;\n };\n let show = () => {\n el._x_doShow();\n el._x_isShown = true;\n };\n let clickAwayCompatibleShow = () => setTimeout(show);\n let toggle = once(\n (value) => value ? show() : hide(),\n (value) => {\n if (typeof el._x_toggleAndCascadeWithTransitions === \"function\") {\n el._x_toggleAndCascadeWithTransitions(el, value, show, hide);\n } else {\n value ? clickAwayCompatibleShow() : hide();\n }\n }\n );\n let oldValue;\n let firstTime = true;\n effect3(() => evaluate2((value) => {\n if (!firstTime && value === oldValue)\n return;\n if (modifiers.includes(\"immediate\"))\n value ? clickAwayCompatibleShow() : hide();\n toggle(value);\n oldValue = value;\n firstTime = false;\n }));\n});\n\n// packages/alpinejs/src/directives/x-for.js\ndirective(\"for\", (el, { expression }, { effect: effect3, cleanup }) => {\n let iteratorNames = parseForExpression(expression);\n let evaluateItems = evaluateLater(el, iteratorNames.items);\n let evaluateKey = evaluateLater(\n el,\n // the x-bind:key expression is stored for our use instead of evaluated.\n el._x_keyExpression || \"index\"\n );\n el._x_lookup = /* @__PURE__ */ new Map();\n effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey));\n cleanup(() => {\n el._x_lookup.forEach(\n (el2) => mutateDom(() => {\n destroyTree(el2);\n el2.remove();\n })\n );\n delete el._x_lookup;\n });\n});\nfunction refreshScope(scope2) {\n return (newScope) => {\n Object.entries(newScope).forEach(([key, value]) => {\n scope2[key] = value;\n });\n };\n}\nfunction loop(templateEl, iteratorNames, evaluateItems, evaluateKey) {\n evaluateItems((items) => {\n if (isNumeric3(items))\n items = Array.from({ length: items }, (_, i) => i + 1);\n if (items === void 0 || items === null)\n items = [];\n if (items instanceof Set)\n items = Array.from(items);\n if (items instanceof Map)\n items = Array.from(items);\n let oldLookup = templateEl._x_lookup;\n let lookup = /* @__PURE__ */ new Map();\n templateEl._x_lookup = lookup;\n let hasStringKeys = isObject(items);\n let scopeEntries = Object.entries(items).map(([index, item]) => {\n if (!hasStringKeys)\n index = parseInt(index);\n let scope2 = getIterationScopeVariables(iteratorNames, item, index, items);\n let key;\n evaluateKey((innerKey) => {\n if (typeof innerKey === \"object\")\n warn(\"x-for key cannot be an object, it must be a string or an integer\", templateEl);\n if (oldLookup.has(innerKey)) {\n lookup.set(innerKey, oldLookup.get(innerKey));\n oldLookup.delete(innerKey);\n }\n key = innerKey;\n }, { scope: { index, ...scope2 } });\n return [key, scope2];\n });\n mutateDom(() => {\n oldLookup.forEach((el) => {\n destroyTree(el);\n el.remove();\n });\n let added = /* @__PURE__ */ new Set();\n let prev = templateEl;\n scopeEntries.forEach(([key, scope2]) => {\n if (lookup.has(key)) {\n let el = lookup.get(key);\n el._x_refreshXForScope(scope2);\n if (prev.nextElementSibling !== el) {\n if (prev.nextElementSibling)\n el.replaceWith(prev.nextElementSibling);\n prev.after(el);\n }\n prev = el;\n if (el._x_currentIfEl) {\n if (el.nextElementSibling !== el._x_currentIfEl)\n prev.after(el._x_currentIfEl);\n prev = el._x_currentIfEl;\n }\n return;\n }\n if (templateEl.content.children.length > 1)\n warn(\"x-for templates require a single root element, additional elements will be ignored.\", templateEl);\n let clone2 = document.importNode(templateEl.content, true).firstElementChild;\n let reactiveScope = reactive(scope2);\n addScopeToNode(clone2, reactiveScope, templateEl);\n clone2._x_refreshXForScope = refreshScope(reactiveScope);\n lookup.set(key, clone2);\n added.add(clone2);\n prev.after(clone2);\n prev = clone2;\n });\n skipDuringClone(() => added.forEach((clone2) => initTree(clone2)))();\n });\n });\n}\nfunction parseForExpression(expression) {\n let forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\n let stripParensRE = /^\\s*\\(|\\)\\s*$/g;\n let forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\n let inMatch = expression.match(forAliasRE);\n if (!inMatch)\n return;\n let res = {};\n res.items = inMatch[2].trim();\n let item = inMatch[1].replace(stripParensRE, \"\").trim();\n let iteratorMatch = item.match(forIteratorRE);\n if (iteratorMatch) {\n res.item = item.replace(forIteratorRE, \"\").trim();\n res.index = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.collection = iteratorMatch[2].trim();\n }\n } else {\n res.item = item;\n }\n return res;\n}\nfunction getIterationScopeVariables(iteratorNames, item, index, items) {\n let scopeVariables = {};\n if (/^\\[.*\\]$/.test(iteratorNames.item) && Array.isArray(item)) {\n let names = iteratorNames.item.replace(\"[\", \"\").replace(\"]\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name, i) => {\n scopeVariables[name] = item[i];\n });\n } else if (/^\\{.*\\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === \"object\") {\n let names = iteratorNames.item.replace(\"{\", \"\").replace(\"}\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name) => {\n scopeVariables[name] = item[name];\n });\n } else {\n scopeVariables[iteratorNames.item] = item;\n }\n if (iteratorNames.index)\n scopeVariables[iteratorNames.index] = index;\n if (iteratorNames.collection)\n scopeVariables[iteratorNames.collection] = items;\n return scopeVariables;\n}\nfunction isNumeric3(subject) {\n return typeof subject !== \"object\" && !isNaN(subject);\n}\nfunction isObject(subject) {\n return typeof subject === \"object\" && !Array.isArray(subject);\n}\n\n// packages/alpinejs/src/directives/x-ref.js\nfunction handler3() {\n}\nhandler3.inline = (el, { expression }, { cleanup }) => {\n let root = closestRoot(el);\n if (!root)\n return;\n if (!root._x_refs)\n root._x_refs = {};\n root._x_refs[expression] = el;\n cleanup(() => delete root._x_refs[expression]);\n};\ndirective(\"ref\", handler3);\n\n// packages/alpinejs/src/directives/x-if.js\ndirective(\"if\", (el, { expression }, { effect: effect3, cleanup }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-if can only be used on a <template> tag\", el);\n let evaluate2 = evaluateLater(el, expression);\n let show = () => {\n if (el._x_currentIfEl)\n return el._x_currentIfEl;\n let clone2 = el.content.cloneNode(true).firstElementChild;\n addScopeToNode(clone2, {}, el);\n mutateDom(() => {\n el.after(clone2);\n skipDuringClone(() => initTree(clone2))();\n });\n el._x_currentIfEl = clone2;\n el._x_undoIf = () => {\n mutateDom(() => {\n destroyTree(clone2);\n clone2.remove();\n });\n delete el._x_currentIfEl;\n };\n return clone2;\n };\n let hide = () => {\n if (!el._x_undoIf)\n return;\n el._x_undoIf();\n delete el._x_undoIf;\n };\n effect3(() => evaluate2((value) => {\n value ? show() : hide();\n }));\n cleanup(() => el._x_undoIf && el._x_undoIf());\n});\n\n// packages/alpinejs/src/directives/x-id.js\ndirective(\"id\", (el, { expression }, { evaluate: evaluate2 }) => {\n let names = evaluate2(expression);\n names.forEach((name) => setIdRoot(el, name));\n});\ninterceptClone((from, to) => {\n if (from._x_ids) {\n to._x_ids = from._x_ids;\n }\n});\n\n// packages/alpinejs/src/directives/x-on.js\nmapAttributes(startingWith(\"@\", into(prefix(\"on:\"))));\ndirective(\"on\", skipDuringClone((el, { value, modifiers, expression }, { cleanup }) => {\n let evaluate2 = expression ? evaluateLater(el, expression) : () => {\n };\n if (el.tagName.toLowerCase() === \"template\") {\n if (!el._x_forwardEvents)\n el._x_forwardEvents = [];\n if (!el._x_forwardEvents.includes(value))\n el._x_forwardEvents.push(value);\n }\n let removeListener = on(el, value, modifiers, (e) => {\n evaluate2(() => {\n }, { scope: { \"$event\": e }, params: [e] });\n });\n cleanup(() => removeListener());\n}));\n\n// packages/alpinejs/src/directives/index.js\nwarnMissingPluginDirective(\"Collapse\", \"collapse\", \"collapse\");\nwarnMissingPluginDirective(\"Intersect\", \"intersect\", \"intersect\");\nwarnMissingPluginDirective(\"Focus\", \"trap\", \"focus\");\nwarnMissingPluginDirective(\"Mask\", \"mask\", \"mask\");\nfunction warnMissingPluginDirective(name, directiveName, slug) {\n directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/csp/src/directives/x-html.js\ndirective(\"html\", (el, { expression }) => {\n handleError(new Error(\"Using the x-html directive is prohibited in the CSP build\"), el);\n});\n\n// packages/csp/src/index.js\nalpine_default.setEvaluator(cspEvaluator);\nalpine_default.setRawEvaluator(cspRawEvaluator);\nalpine_default.setReactivityEngine({ reactive: import_reactivity10.reactive, effect: import_reactivity10.effect, release: import_reactivity10.stop, raw: import_reactivity10.toRaw });\nvar src_default = alpine_default;\n\n// packages/csp/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n Alpine\n});\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/collapse/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n collapse: () => src_default,\n default: () => module_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/collapse/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"collapse\", collapse);\n collapse.inline = (el, { modifiers }) => {\n if (!modifiers.includes(\"min\"))\n return;\n el._x_doShow = () => {\n };\n el._x_doHide = () => {\n };\n };\n function collapse(el, { modifiers }) {\n let duration = modifierValue(modifiers, \"duration\", 250) / 1e3;\n let floor = modifierValue(modifiers, \"min\", 0);\n let fullyHide = !modifiers.includes(\"min\");\n if (!el._x_isShown)\n el.style.height = `${floor}px`;\n if (!el._x_isShown && fullyHide)\n el.hidden = true;\n if (!el._x_isShown)\n el.style.overflow = \"hidden\";\n let setFunction = (el2, styles) => {\n let revertFunction = Alpine.setStyles(el2, styles);\n return styles.height ? () => {\n } : revertFunction;\n };\n let transitionStyles = {\n transitionProperty: \"height\",\n transitionDuration: `${duration}s`,\n transitionTimingFunction: \"cubic-bezier(0.4, 0.0, 0.2, 1)\"\n };\n el._x_transition = {\n in(before = () => {\n }, after = () => {\n }) {\n if (fullyHide)\n el.hidden = false;\n if (fullyHide)\n el.style.display = null;\n let current = el.getBoundingClientRect().height;\n el.style.height = \"auto\";\n let full = el.getBoundingClientRect().height;\n if (current === full) {\n current = floor;\n }\n Alpine.transition(el, Alpine.setStyles, {\n during: transitionStyles,\n start: { height: current + \"px\" },\n end: { height: full + \"px\" }\n }, () => el._x_isShown = true, () => {\n if (Math.abs(el.getBoundingClientRect().height - full) < 1) {\n el.style.overflow = null;\n }\n });\n },\n out(before = () => {\n }, after = () => {\n }) {\n let full = el.getBoundingClientRect().height;\n Alpine.transition(el, setFunction, {\n during: transitionStyles,\n start: { height: full + \"px\" },\n end: { height: floor + \"px\" }\n }, () => el.style.overflow = \"hidden\", () => {\n el._x_isShown = false;\n if (el.style.height == `${floor}px` && fullyHide) {\n el.style.display = \"none\";\n el.hidden = true;\n }\n });\n }\n };\n }\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"duration\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"min\") {\n let match = rawValue.match(/([0-9]+)px/);\n if (match)\n return match[1];\n }\n return rawValue;\n}\n\n// packages/collapse/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n collapse\n});\n", "var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// node_modules/tabbable/dist/index.js\nvar require_dist = __commonJS({\n \"node_modules/tabbable/dist/index.js\"(exports) {\n \"use strict\";\n var candidateSelectors = [\"input:not([inert]):not([inert] *)\", \"select:not([inert]):not([inert] *)\", \"textarea:not([inert]):not([inert] *)\", \"a[href]:not([inert]):not([inert] *)\", \"button:not([inert]):not([inert] *)\", \"[tabindex]:not(slot):not([inert]):not([inert] *)\", \"audio[controls]:not([inert]):not([inert] *)\", \"video[controls]:not([inert]):not([inert] *)\", '[contenteditable]:not([contenteditable=\"false\"]):not([inert]):not([inert] *)', \"details>summary:first-of-type:not([inert]):not([inert] *)\", \"details:not([inert]):not([inert] *)\"];\n var candidateSelector = /* @__PURE__ */ candidateSelectors.join(\",\");\n var NoElement = typeof Element === \"undefined\";\n var matches = NoElement ? function() {\n } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n } : function(element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n };\n var _isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, \"inert\");\n var inert = inertAtt === \"\" || inertAtt === \"true\";\n var result = inert || lookUp && node && // closest does not exist on shadow roots, so we fall back to a manual\n // lookup upward, in case it is not defined.\n (typeof node.closest === \"function\" ? node.closest(\"[inert]\") : _isInert(node.parentNode));\n return result;\n };\n var isContentEditable = function isContentEditable2(node) {\n var _node$getAttribute2;\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, \"contenteditable\");\n return attValue === \"\" || attValue === \"true\";\n };\n var getCandidates = function getCandidates2(el, includeContainer, filter) {\n if (_isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n };\n var _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (_isInert(element, false)) {\n continue;\n }\n if (element.tagName === \"SLOT\") {\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = _getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === \"function\" && options.getShadowRoot(element);\n var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n };\n var hasTabIndex = function hasTabIndex2(node) {\n return !isNaN(parseInt(node.getAttribute(\"tabindex\"), 10));\n };\n var getTabIndex = function getTabIndex2(node) {\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (node.tabIndex < 0) {\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n };\n var getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n };\n var sortOrderedTabbables = function sortOrderedTabbables2(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n };\n var isInput = function isInput2(node) {\n return node.tagName === \"INPUT\";\n };\n var isHiddenInput = function isHiddenInput2(node) {\n return isInput(node) && node.type === \"hidden\";\n };\n var isDetailsWithSummary = function isDetailsWithSummary2(node) {\n var r = node.tagName === \"DETAILS\" && Array.prototype.slice.apply(node.children).some(function(child) {\n return child.tagName === \"SUMMARY\";\n });\n return r;\n };\n var getCheckedRadio = function getCheckedRadio2(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n };\n var isTabbableRadio = function isTabbableRadio2(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios2(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== \"undefined\" && typeof window.CSS !== \"undefined\" && typeof window.CSS.escape === \"function\") {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\", err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n };\n var isRadio = function isRadio2(node) {\n return isInput(node) && node.type === \"radio\";\n };\n var isNonTabbableRadio = function isNonTabbableRadio2(node) {\n return isRadio(node) && !isTabbableRadio(node);\n };\n var isNodeAttached = function isNodeAttached2(node) {\n var _nodeRoot;\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n };\n var isZeroArea = function isZeroArea2(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n };\n var isHidden = function isHidden2(node, _ref) {\n var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot;\n if (displayCheck === \"full-native\") {\n if (\"checkVisibility\" in node) {\n var visible = node.checkVisibility({\n // Checking opacity might be desirable for some use cases, but natively,\n // opacity zero elements _are_ focusable and tabbable.\n checkOpacity: false,\n opacityProperty: false,\n contentVisibilityAuto: true,\n visibilityProperty: true,\n // This is an alias for `visibilityProperty`. Contemporary browsers\n // support both. However, this alias has wider browser support (Chrome\n // >= 105 and Firefox >= 106, vs. Chrome >= 121 and Firefox >= 122), so\n // we include it anyway.\n checkVisibilityCSS: true\n });\n return !visible;\n }\n }\n if (getComputedStyle(node).visibility === \"hidden\") {\n return true;\n }\n var isDirectSummary = matches.call(node, \"details>summary:first-of-type\");\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, \"details:not([open]) *\")) {\n return true;\n }\n if (!displayCheck || displayCheck === \"full\" || // full-native can run this branch when it falls through in case\n // Element#checkVisibility is unsupported\n displayCheck === \"full-native\" || displayCheck === \"legacy-full\") {\n if (typeof getShadowRoot === \"function\") {\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) {\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n node = rootNode.host;\n } else {\n node = parentElement;\n }\n }\n node = originalNode;\n }\n if (isNodeAttached(node)) {\n return !node.getClientRects().length;\n }\n if (displayCheck !== \"legacy-full\") {\n return true;\n }\n } else if (displayCheck === \"non-zero-area\") {\n return isZeroArea(node);\n }\n return false;\n };\n var isDisabledFromFieldset = function isDisabledFromFieldset2(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n while (parentNode) {\n if (parentNode.tagName === \"FIELDSET\" && parentNode.disabled) {\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n if (child.tagName === \"LEGEND\") {\n return matches.call(parentNode, \"fieldset[disabled] *\") ? true : !child.contains(node);\n }\n }\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n return false;\n };\n var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n };\n var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n };\n var isShadowRootTabbable = function isShadowRootTabbable2(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute(\"tabindex\"), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n return false;\n };\n var _sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function(item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? _sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item,\n isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n };\n var tabbable = function tabbable2(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return _sortByOrder(candidates);\n };\n var focusable2 = function focusable3(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n };\n var isTabbable = function isTabbable2(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n };\n var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat(\"iframe:not([inert]):not([inert] *)\").join(\",\");\n var isFocusable2 = function isFocusable3(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n };\n exports.focusable = focusable2;\n exports.getTabIndex = getTabIndex;\n exports.isFocusable = isFocusable2;\n exports.isTabbable = isTabbable;\n exports.tabbable = tabbable;\n }\n});\n\n// node_modules/focus-trap/dist/focus-trap.js\nvar require_focus_trap = __commonJS({\n \"node_modules/focus-trap/dist/focus-trap.js\"(exports) {\n \"use strict\";\n var tabbable = require_dist();\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++)\n n[e] = r[e];\n return n;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r))\n return _arrayLikeToArray(r);\n }\n function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c), u = i.value;\n } catch (n2) {\n return void e(n2);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n }\n function _asyncToGenerator(n) {\n return function() {\n var t = this, e = arguments;\n return new Promise(function(r, o) {\n var a = n.apply(t, e);\n function _next(n2) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n2);\n }\n function _throw(n2) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n2);\n }\n _next(void 0);\n });\n };\n }\n function _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {\n t && (r = t);\n var n = 0, F = function() {\n };\n return {\n s: F,\n n: function() {\n return n >= r.length ? {\n done: true\n } : {\n done: false,\n value: r[n++]\n };\n },\n e: function(r2) {\n throw r2;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o, a = true, u = false;\n return {\n s: function() {\n t = t.call(r);\n },\n n: function() {\n var r2 = t.next();\n return a = r2.done, r2;\n },\n e: function(r2) {\n u = true, o = r2;\n },\n f: function() {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u)\n throw o;\n }\n }\n };\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"])\n return Array.from(r);\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function(r2) {\n return Object.getOwnPropertyDescriptor(e, r2).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {\n _defineProperty(e, r2, t[r2]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {\n Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));\n });\n }\n return e;\n }\n function _regenerator() {\n var e, t, r = \"function\" == typeof Symbol ? Symbol : {}, n = r.iterator || \"@@iterator\", o = r.toStringTag || \"@@toStringTag\";\n function i(r2, n2, o2, i2) {\n var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype);\n return _regeneratorDefine(u2, \"_invoke\", function(r3, n3, o3) {\n var i3, c3, u3, f2 = 0, p = o3 || [], y = false, G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function(t2, r4) {\n return i3 = t2, c3 = 0, u3 = e, G.n = r4, a;\n }\n };\n function d(r4, n4) {\n for (c3 = r4, u3 = n4, t = 0; !y && f2 && !o4 && t < p.length; t++) {\n var o4, i4 = p[t], d2 = G.p, l = i4[2];\n r4 > 3 ? (o4 = l === n4) && (u3 = i4[(c3 = i4[4]) ? 5 : (c3 = 3, 3)], i4[4] = i4[5] = e) : i4[0] <= d2 && ((o4 = r4 < 2 && d2 < i4[1]) ? (c3 = 0, G.v = n4, G.n = i4[1]) : d2 < l && (o4 = r4 < 3 || i4[0] > n4 || n4 > l) && (i4[4] = r4, i4[5] = n4, G.n = l, c3 = 0));\n }\n if (o4 || r4 > 1)\n return a;\n throw y = true, n4;\n }\n return function(o4, p2, l) {\n if (f2 > 1)\n throw TypeError(\"Generator is already running\");\n for (y && 1 === p2 && d(p2, l), c3 = p2, u3 = l; (t = c3 < 2 ? e : u3) || !y; ) {\n i3 || (c3 ? c3 < 3 ? (c3 > 1 && (G.n = -1), d(c3, u3)) : G.n = u3 : G.v = u3);\n try {\n if (f2 = 2, i3) {\n if (c3 || (o4 = \"next\"), t = i3[o4]) {\n if (!(t = t.call(i3, u3)))\n throw TypeError(\"iterator result is not an object\");\n if (!t.done)\n return t;\n u3 = t.value, c3 < 2 && (c3 = 0);\n } else\n 1 === c3 && (t = i3.return) && t.call(i3), c3 < 2 && (u3 = TypeError(\"The iterator does not provide a '\" + o4 + \"' method\"), c3 = 1);\n i3 = e;\n } else if ((t = (y = G.n < 0) ? u3 : r3.call(n3, G)) !== a)\n break;\n } catch (t2) {\n i3 = e, c3 = 1, u3 = t2;\n } finally {\n f2 = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r2, o2, i2), true), u2;\n }\n var a = {};\n function Generator() {\n }\n function GeneratorFunction() {\n }\n function GeneratorFunctionPrototype() {\n }\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function() {\n return this;\n }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e2) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e2, GeneratorFunctionPrototype) : (e2.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e2, o, \"GeneratorFunction\")), e2.prototype = Object.create(u), e2;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", _regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), _regeneratorDefine(u), _regeneratorDefine(u, o, \"Generator\"), _regeneratorDefine(u, n, function() {\n return this;\n }), _regeneratorDefine(u, \"toString\", function() {\n return \"[object Generator]\";\n }), (_regenerator = function() {\n return {\n w: i,\n m: f\n };\n })();\n }\n function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e2) {\n i = 0;\n }\n _regeneratorDefine = function(e2, r2, n2, t2) {\n function o(r3, n3) {\n _regeneratorDefine(e2, r3, function(e3) {\n return this._invoke(r3, n3, e3);\n });\n }\n r2 ? i ? i(e2, r2, {\n value: n2,\n enumerable: !t2,\n configurable: !t2,\n writable: !t2\n }) : e2[r2] = n2 : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, _regeneratorDefine(e, r, n, t);\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t)\n return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i)\n return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r)\n return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n var activeFocusTraps = {\n // Returns the trap from the top of the stack.\n getActiveTrap: function getActiveTrap(trapStack) {\n if ((trapStack === null || trapStack === void 0 ? void 0 : trapStack.length) > 0) {\n return trapStack[trapStack.length - 1];\n }\n return null;\n },\n // Pauses the currently active trap, then adds a new trap to the stack.\n activateTrap: function activateTrap(trapStack, trap) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (trap !== activeTrap) {\n activeFocusTraps.pauseTrap(trapStack);\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n // Removes the trap from the top of the stack, then unpauses the next trap down.\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n activeFocusTraps.unpauseTrap(trapStack);\n },\n // Pauses the trap at the top of the stack.\n pauseTrap: function pauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n activeTrap === null || activeTrap === void 0 || activeTrap._setPausedState(true);\n },\n // Unpauses the trap at the top of the stack.\n unpauseTrap: function unpauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (activeTrap && !activeTrap._isManuallyPaused()) {\n activeTrap._setPausedState(false);\n }\n }\n };\n var isSelectableInput = function isSelectableInput2(node) {\n return node.tagName && node.tagName.toLowerCase() === \"input\" && typeof node.select === \"function\";\n };\n var isEscapeEvent = function isEscapeEvent2(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === \"Escape\" || (e === null || e === void 0 ? void 0 : e.key) === \"Esc\" || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n };\n var isTabEvent = function isTabEvent2(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === \"Tab\" || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n };\n var isKeyForward = function isKeyForward2(e) {\n return isTabEvent(e) && !e.shiftKey;\n };\n var isKeyBackward = function isKeyBackward2(e) {\n return isTabEvent(e) && e.shiftKey;\n };\n var delay = function delay2(fn) {\n return setTimeout(fn, 0);\n };\n var valueOrHandler = function valueOrHandler2(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === \"function\" ? value.apply(void 0, params) : value;\n };\n var getActualTarget = function getActualTarget2(event) {\n return event.target.shadowRoot && typeof event.composedPath === \"function\" ? event.composedPath()[0] : event.target;\n };\n var internalTrapStack = [];\n var createFocusTrap2 = function createFocusTrap3(elements, userOptions) {\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isolateSubtrees: false,\n isKeyForward,\n isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n /** @type {Array<HTMLElement>} */\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n /** @type {Array<{\n * container: HTMLElement,\n * tabbableNodes: Array<HTMLElement>, // empty if none\n * focusableNodes: Array<HTMLElement>, // empty if none\n * posTabIndexesFound: boolean,\n * firstTabbableNode: HTMLElement|undefined,\n * lastTabbableNode: HTMLElement|undefined,\n * firstDomTabbableNode: HTMLElement|undefined,\n * lastDomTabbableNode: HTMLElement|undefined,\n * nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n * }>}\n */\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n // references to nodes that are siblings to the ancestors of this trap's containers.\n /** @type {Set<HTMLElement>} */\n adjacentElements: /* @__PURE__ */ new Set(),\n // references to nodes that were inert or aria-hidden before the trap was activated.\n /** @type {Set<HTMLElement>} */\n alreadySilent: /* @__PURE__ */ new Set(),\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n manuallyPaused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: void 0,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: void 0\n };\n var trap;\n var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n var findContainerIndex = function findContainerIndex2(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === \"function\" ? event.composedPath() : void 0;\n return state.containerGroups.findIndex(function(_ref) {\n var container = _ref.container, tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n (composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function(node) {\n return node === element;\n });\n });\n };\n var getNodeForOption = function getNodeForOption2(optionName) {\n var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$hasFallback = _ref2.hasFallback, hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback, _ref2$params = _ref2.params, params = _ref2$params === void 0 ? [] : _ref2$params;\n var optionValue = config[optionName];\n if (typeof optionValue === \"function\") {\n optionValue = optionValue.apply(void 0, _toConsumableArray(params));\n }\n if (optionValue === true) {\n optionValue = void 0;\n }\n if (!optionValue) {\n if (optionValue === void 0 || optionValue === false) {\n return optionValue;\n }\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue;\n if (typeof optionValue === \"string\") {\n try {\n node = doc.querySelector(optionValue);\n } catch (err) {\n throw new Error(\"`\".concat(optionName, '` appears to be an invalid selector; error=\"').concat(err.message, '\"'));\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode2() {\n var node = getNodeForOption(\"initialFocus\", {\n hasFallback: true\n });\n if (node === false) {\n return false;\n }\n if (node === void 0 || node && !tabbable.isFocusable(node, config.tabbableOptions)) {\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n node = firstTabbableNode || getNodeForOption(\"fallbackFocus\");\n }\n } else if (node === null) {\n node = getNodeForOption(\"fallbackFocus\");\n }\n if (!node) {\n throw new Error(\"Your focus-trap needs to have at least one focusable element\");\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes2() {\n state.containerGroups = state.containers.map(function(container) {\n var tabbableNodes = tabbable.tabbable(container, config.tabbableOptions);\n var focusableNodes = tabbable.focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0;\n var firstDomTabbableNode = focusableNodes.find(function(node) {\n return tabbable.isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function(node) {\n return tabbable.isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function(node) {\n return tabbable.getTabIndex(node) > 0;\n });\n return {\n container,\n tabbableNodes,\n focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function(el) {\n return tabbable.isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function(el) {\n return tabbable.isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function(group) {\n return group.tabbableNodes.length > 0;\n });\n if (state.tabbableGroups.length <= 0 && !getNodeForOption(\"fallbackFocus\")) {\n throw new Error(\"Your focus-trap must have at least one container with at least one tabbable node in it at all times\");\n }\n if (state.containerGroups.find(function(g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n var _getActiveElement = function getActiveElement(el) {\n var activeElement = el.activeElement;\n if (!activeElement) {\n return;\n }\n if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {\n return _getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n };\n var _tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === _getActiveElement(document)) {\n return;\n }\n if (!node || !node.focus) {\n _tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) {\n var node = getNodeForOption(\"setReturnFocus\", {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n };\n var findNextNavNode = function findNextNavNode2(_ref3) {\n var target = _ref3.target, event = _ref3.event, _ref3$isBackward = _ref3.isBackward, isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0;\n if (containerIndex < 0) {\n if (isBackward) {\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n var startOfGroupIndex = state.tabbableGroups.findIndex(function(_ref4) {\n var firstTabbableNode = _ref4.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || tabbable.isFocusable(target, config.tabbableOptions) && !tabbable.isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = tabbable.getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n var lastOfGroupIndex = state.tabbableGroups.findIndex(function(_ref5) {\n var lastTabbableNode = _ref5.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || tabbable.isFocusable(target, config.tabbableOptions) && !tabbable.isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = tabbable.getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n destinationNode = getNodeForOption(\"fallbackFocus\");\n }\n return destinationNode;\n };\n var checkPointerDown = function checkPointerDown2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n };\n var checkFocusIn = function checkFocusIn2(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n event.stopImmediatePropagation();\n var nextNode;\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (tabbable.getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n var mruTabIdx = tabbableNodes.findIndex(function(node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n }\n }\n }\n } else {\n if (!state.containerGroups.some(function(g) {\n return g.tabbableNodes.some(function(n) {\n return tabbable.getTabIndex(n) > 0;\n });\n })) {\n navAcrossContainers = false;\n }\n }\n } else {\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n _tryFocus(nextNode);\n } else {\n _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = void 0;\n };\n var checkKeyNav = function checkKeyNav2(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event,\n isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n event.preventDefault();\n }\n _tryFocus(destinationNode);\n }\n };\n var checkTabKey = function checkTabKey2(event) {\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n var checkEscapeKey = function checkEscapeKey2(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n }\n };\n var checkClick = function checkClick2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n var addListeners = function addListeners2() {\n if (!state.active) {\n return Promise.resolve();\n }\n activeFocusTraps.activateTrap(trapStack, trap);\n var promise;\n if (config.delayInitialFocus) {\n promise = new Promise(function(resolve) {\n state.delayInitialFocusTimer = delay(function() {\n _tryFocus(getInitialFocusNode());\n resolve();\n });\n });\n } else {\n promise = Promise.resolve();\n _tryFocus(getInitialFocusNode());\n }\n doc.addEventListener(\"focusin\", checkFocusIn, true);\n doc.addEventListener(\"mousedown\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"touchstart\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"click\", checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkTabKey, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkEscapeKey);\n return promise;\n };\n var collectAdjacentElements = function collectAdjacentElements2(containers) {\n if (state.active && !state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.adjacentElements.clear();\n state.alreadySilent.clear();\n var containerAncestors = /* @__PURE__ */ new Set();\n var adjacentElements = /* @__PURE__ */ new Set();\n var _iterator = _createForOfIteratorHelper(containers), _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done; ) {\n var container = _step.value;\n containerAncestors.add(container);\n var insideShadowRoot = typeof ShadowRoot !== \"undefined\" && container.getRootNode() instanceof ShadowRoot;\n var current = container;\n while (current) {\n containerAncestors.add(current);\n var parent = current.parentElement;\n var siblings = [];\n if (parent) {\n siblings = parent.children;\n } else if (!parent && insideShadowRoot) {\n siblings = current.getRootNode().children;\n parent = current.getRootNode().host;\n insideShadowRoot = typeof ShadowRoot !== \"undefined\" && parent.getRootNode() instanceof ShadowRoot;\n }\n var _iterator2 = _createForOfIteratorHelper(siblings), _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {\n var child = _step2.value;\n adjacentElements.add(child);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n current = parent;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n containerAncestors.forEach(function(el) {\n adjacentElements[\"delete\"](el);\n });\n state.adjacentElements = adjacentElements;\n };\n var removeListeners = function removeListeners2() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener(\"focusin\", checkFocusIn, true);\n doc.removeEventListener(\"mousedown\", checkPointerDown, true);\n doc.removeEventListener(\"touchstart\", checkPointerDown, true);\n doc.removeEventListener(\"click\", checkClick, true);\n doc.removeEventListener(\"keydown\", checkTabKey, true);\n doc.removeEventListener(\"keydown\", checkEscapeKey);\n return trap;\n };\n var checkDomRemoval = function checkDomRemoval2(mutations) {\n var isFocusedNodeRemoved = mutations.some(function(mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function(node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n if (isFocusedNodeRemoved) {\n _tryFocus(getInitialFocusNode());\n }\n };\n var mutationObserver = typeof window !== \"undefined\" && \"MutationObserver\" in window ? new MutationObserver(checkDomRemoval) : void 0;\n var updateObservedNodes = function updateObservedNodes2() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function(container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, \"onActivate\");\n var onPostActivate = getOption(activateOptions, \"onPostActivate\");\n var checkCanFocusTrap = getOption(activateOptions, \"checkCanFocusTrap\");\n var preexistingTrap = activeFocusTraps.getActiveTrap(trapStack);\n var revertState = false;\n if (preexistingTrap && !preexistingTrap.paused) {\n var _preexistingTrap$_set;\n (_preexistingTrap$_set = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set === void 0 || _preexistingTrap$_set.call(preexistingTrap, false);\n revertState = true;\n }\n try {\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = _getActiveElement(doc);\n onActivate === null || onActivate === void 0 || onActivate();\n var finishActivation = /* @__PURE__ */ function() {\n var _ref6 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee() {\n return _regenerator().w(function(_context) {\n while (1)\n switch (_context.n) {\n case 0:\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n _context.n = 1;\n return addListeners();\n case 1:\n trap._setSubtreeIsolation(true);\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 || onPostActivate();\n case 2:\n return _context.a(2);\n }\n }, _callee);\n }));\n return function finishActivation2() {\n return _ref6.apply(this, arguments);\n };\n }();\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n } catch (error) {\n if (preexistingTrap === activeFocusTraps.getActiveTrap(trapStack) && revertState) {\n var _preexistingTrap$_set2;\n (_preexistingTrap$_set2 = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set2 === void 0 || _preexistingTrap$_set2.call(preexistingTrap, true);\n }\n throw error;\n }\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer);\n state.delayInitialFocusTimer = void 0;\n if (!state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.alreadySilent.clear();\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, \"onDeactivate\");\n var onPostDeactivate = getOption(options, \"onPostDeactivate\");\n var checkCanReturnFocus = getOption(options, \"checkCanReturnFocus\");\n var returnFocus = getOption(options, \"returnFocus\", \"returnFocusOnDeactivate\");\n onDeactivate === null || onDeactivate === void 0 || onDeactivate();\n var finishDeactivation = function finishDeactivation2() {\n delay(function() {\n if (returnFocus) {\n _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = true;\n return this._setPausedState(true, pauseOptions);\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = false;\n if (trapStack[trapStack.length - 1] !== this) {\n return this;\n }\n return this._setPausedState(false, unpauseOptions);\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function(element) {\n return typeof element === \"string\" ? doc.querySelector(element) : element;\n });\n if (config.isolateSubtrees) {\n collectAdjacentElements(state.containers);\n }\n if (state.active) {\n updateTabbableNodes();\n if (!state.paused) {\n trap._setSubtreeIsolation(true);\n }\n }\n updateObservedNodes();\n return this;\n }\n };\n Object.defineProperties(trap, {\n _isManuallyPaused: {\n value: function value() {\n return state.manuallyPaused;\n }\n },\n _setPausedState: {\n value: function value(paused, options) {\n if (state.paused === paused) {\n return this;\n }\n state.paused = paused;\n if (paused) {\n var onPause = getOption(options, \"onPause\");\n var onPostPause = getOption(options, \"onPostPause\");\n onPause === null || onPause === void 0 || onPause();\n removeListeners();\n trap._setSubtreeIsolation(false);\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 || onPostPause();\n } else {\n var onUnpause = getOption(options, \"onUnpause\");\n var onPostUnpause = getOption(options, \"onPostUnpause\");\n onUnpause === null || onUnpause === void 0 || onUnpause();\n var finishUnpause = /* @__PURE__ */ function() {\n var _ref7 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee2() {\n return _regenerator().w(function(_context2) {\n while (1)\n switch (_context2.n) {\n case 0:\n updateTabbableNodes();\n _context2.n = 1;\n return addListeners();\n case 1:\n trap._setSubtreeIsolation(true);\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();\n case 2:\n return _context2.a(2);\n }\n }, _callee2);\n }));\n return function finishUnpause2() {\n return _ref7.apply(this, arguments);\n };\n }();\n finishUnpause();\n }\n return this;\n }\n },\n _setSubtreeIsolation: {\n value: function value(isEnabled) {\n if (config.isolateSubtrees) {\n state.adjacentElements.forEach(function(el) {\n var _el$getAttribute;\n if (isEnabled) {\n switch (config.isolateSubtrees) {\n case \"aria-hidden\":\n if (el.ariaHidden === \"true\" || ((_el$getAttribute = el.getAttribute(\"aria-hidden\")) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.toLowerCase()) === \"true\") {\n state.alreadySilent.add(el);\n }\n el.setAttribute(\"aria-hidden\", \"true\");\n break;\n default:\n if (el.inert || el.hasAttribute(\"inert\")) {\n state.alreadySilent.add(el);\n }\n el.setAttribute(\"inert\", true);\n break;\n }\n } else {\n if (state.alreadySilent.has(el))\n ;\n else {\n switch (config.isolateSubtrees) {\n case \"aria-hidden\":\n el.removeAttribute(\"aria-hidden\");\n break;\n default:\n el.removeAttribute(\"inert\");\n break;\n }\n }\n }\n });\n }\n }\n }\n });\n trap.updateContainerElements(elements);\n return trap;\n };\n exports.createFocusTrap = createFocusTrap2;\n }\n});\n\n// packages/focus/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n focus: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/focus/src/index.js\nvar import_focus_trap = __toESM(require_focus_trap());\nvar import_tabbable = __toESM(require_dist());\nfunction src_default(Alpine) {\n let lastFocused;\n let currentFocused;\n window.addEventListener(\"focusin\", () => {\n lastFocused = currentFocused;\n currentFocused = document.activeElement;\n });\n Alpine.magic(\"focus\", (el) => {\n let within = el;\n return {\n __noscroll: false,\n __wrapAround: false,\n within(el2) {\n within = el2;\n return this;\n },\n withoutScrolling() {\n this.__noscroll = true;\n return this;\n },\n noscroll() {\n this.__noscroll = true;\n return this;\n },\n withWrapAround() {\n this.__wrapAround = true;\n return this;\n },\n wrap() {\n return this.withWrapAround();\n },\n focusable(el2) {\n return (0, import_tabbable.isFocusable)(el2);\n },\n previouslyFocused() {\n return lastFocused;\n },\n lastFocused() {\n return lastFocused;\n },\n focused() {\n return currentFocused;\n },\n focusables() {\n if (Array.isArray(within))\n return within;\n return (0, import_tabbable.focusable)(within, { displayCheck: \"none\" });\n },\n all() {\n return this.focusables();\n },\n isFirst(el2) {\n let els = this.all();\n return els[0] && els[0].isSameNode(el2);\n },\n isLast(el2) {\n let els = this.all();\n return els.length && els.slice(-1)[0].isSameNode(el2);\n },\n getFirst() {\n return this.all()[0];\n },\n getLast() {\n return this.all().slice(-1)[0];\n },\n getNext() {\n let list = this.all();\n let current = document.activeElement;\n if (list.indexOf(current) === -1)\n return;\n if (this.__wrapAround && list.indexOf(current) === list.length - 1) {\n return list[0];\n }\n return list[list.indexOf(current) + 1];\n },\n getPrevious() {\n let list = this.all();\n let current = document.activeElement;\n if (list.indexOf(current) === -1)\n return;\n if (this.__wrapAround && list.indexOf(current) === 0) {\n return list.slice(-1)[0];\n }\n return list[list.indexOf(current) - 1];\n },\n first() {\n this.focus(this.getFirst());\n },\n last() {\n this.focus(this.getLast());\n },\n next() {\n this.focus(this.getNext());\n },\n previous() {\n this.focus(this.getPrevious());\n },\n prev() {\n return this.previous();\n },\n focus(el2) {\n if (!el2)\n return;\n setTimeout(() => {\n if (!el2.hasAttribute(\"tabindex\"))\n el2.setAttribute(\"tabindex\", \"0\");\n el2.focus({ preventScroll: this.__noscroll });\n });\n }\n };\n });\n Alpine.directive(\"trap\", Alpine.skipDuringClone(\n (el, { expression, modifiers }, { effect, evaluateLater, cleanup }) => {\n let evaluator = evaluateLater(expression);\n let oldValue = false;\n let options = {\n escapeDeactivates: false,\n allowOutsideClick: true,\n fallbackFocus: () => el\n };\n let undoInert = () => {\n };\n if (modifiers.includes(\"noautofocus\")) {\n options.initialFocus = false;\n } else {\n let autofocusEl = el.querySelector(\"[autofocus]\");\n if (autofocusEl)\n options.initialFocus = autofocusEl;\n }\n if (modifiers.includes(\"inert\")) {\n options.onPostActivate = () => {\n Alpine.nextTick(() => {\n undoInert = setInert(el);\n });\n };\n }\n let trap = (0, import_focus_trap.createFocusTrap)(el, options);\n let undoDisableScrolling = () => {\n };\n const releaseFocus = () => {\n undoInert();\n undoInert = () => {\n };\n undoDisableScrolling();\n undoDisableScrolling = () => {\n };\n trap.deactivate({\n returnFocus: !modifiers.includes(\"noreturn\")\n });\n };\n effect(() => evaluator((value) => {\n if (oldValue === value)\n return;\n if (value && !oldValue) {\n if (modifiers.includes(\"noscroll\"))\n undoDisableScrolling = disableScrolling();\n setTimeout(() => {\n trap.activate();\n }, 15);\n }\n if (!value && oldValue) {\n releaseFocus();\n }\n oldValue = !!value;\n }));\n cleanup(releaseFocus);\n },\n // When cloning, we only want to add aria-hidden attributes to the\n // DOM and not try to actually trap, as trapping can mess with the\n // live DOM and isn't just isolated to the cloned DOM.\n (el, { expression, modifiers }, { evaluate }) => {\n if (modifiers.includes(\"inert\") && evaluate(expression))\n setInert(el);\n }\n ));\n}\nfunction setInert(el) {\n let undos = [];\n crawlSiblingsUp(el, (sibling) => {\n let cache = sibling.hasAttribute(\"aria-hidden\");\n sibling.setAttribute(\"aria-hidden\", \"true\");\n undos.push(() => cache || sibling.removeAttribute(\"aria-hidden\"));\n });\n return () => {\n while (undos.length)\n undos.pop()();\n };\n}\nfunction crawlSiblingsUp(el, callback) {\n if (el.isSameNode(document.body) || !el.parentNode)\n return;\n Array.from(el.parentNode.children).forEach((sibling) => {\n if (sibling.isSameNode(el)) {\n crawlSiblingsUp(el.parentNode, callback);\n } else {\n callback(sibling);\n }\n });\n}\nfunction disableScrolling() {\n let overflow = document.documentElement.style.overflow;\n let paddingRight = document.documentElement.style.paddingRight;\n let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n let scrollbarGutter = window.getComputedStyle(document.documentElement).scrollbarGutter;\n document.documentElement.style.overflow = \"hidden\";\n if (scrollbarGutter && scrollbarGutter !== \"auto\") {\n return () => {\n document.documentElement.style.overflow = overflow;\n };\n }\n document.documentElement.style.paddingRight = `${scrollbarWidth}px`;\n return () => {\n document.documentElement.style.overflow = overflow;\n document.documentElement.style.paddingRight = paddingRight;\n };\n}\n\n// packages/focus/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n focus\n});\n/*! Bundled license information:\n\ntabbable/dist/index.js:\n (*!\n * tabbable 6.4.0\n * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n *)\n\nfocus-trap/dist/focus-trap.js:\n (*!\n * focus-trap 8.0.0\n * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n *)\n (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *)\n*/\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/intersect/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n intersect: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/intersect/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"intersect\", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {\n let evaluate = evaluateLater(expression);\n let options = {\n rootMargin: getRootMargin(modifiers),\n threshold: getThreshold(modifiers)\n };\n let observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting === (value === \"leave\"))\n return;\n evaluate();\n modifiers.includes(\"once\") && observer.disconnect();\n });\n }, options);\n observer.observe(el);\n cleanup(() => {\n observer.disconnect();\n });\n }));\n}\nfunction getThreshold(modifiers) {\n if (modifiers.includes(\"full\"))\n return 0.99;\n if (modifiers.includes(\"half\"))\n return 0.5;\n if (!modifiers.includes(\"threshold\"))\n return 0;\n let threshold = modifiers[modifiers.indexOf(\"threshold\") + 1];\n if (threshold === \"100\")\n return 1;\n if (threshold === \"0\")\n return 0;\n return Number(`.${threshold}`);\n}\nfunction getLengthValue(rawValue) {\n let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);\n return match ? match[1] + (match[2] || \"px\") : void 0;\n}\nfunction getRootMargin(modifiers) {\n const key = \"margin\";\n const fallback = \"0px 0px 0px 0px\";\n const index = modifiers.indexOf(key);\n if (index === -1)\n return fallback;\n let values = [];\n for (let i = 1; i < 5; i++) {\n values.push(getLengthValue(modifiers[index + i] || \"\"));\n }\n values = values.filter((v) => v !== void 0);\n return values.length ? values.join(\" \").trim() : fallback;\n}\n\n// packages/intersect/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n intersect\n});\n", "var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// node_modules/sortablejs/Sortable.min.js\nvar require_Sortable_min = __commonJS({\n \"node_modules/sortablejs/Sortable.min.js\"(exports, module2) {\n !function(t, e) {\n \"object\" == typeof exports && \"undefined\" != typeof module2 ? module2.exports = e() : \"function\" == typeof define && define.amd ? define(e) : (t = t || self).Sortable = e();\n }(exports, function() {\n \"use strict\";\n function e(e2, t2) {\n var n2, o2 = Object.keys(e2);\n return Object.getOwnPropertySymbols && (n2 = Object.getOwnPropertySymbols(e2), t2 && (n2 = n2.filter(function(t3) {\n return Object.getOwnPropertyDescriptor(e2, t3).enumerable;\n })), o2.push.apply(o2, n2)), o2;\n }\n function I(o2) {\n for (var t2 = 1; t2 < arguments.length; t2++) {\n var i2 = null != arguments[t2] ? arguments[t2] : {};\n t2 % 2 ? e(Object(i2), true).forEach(function(t3) {\n var e2, n2;\n e2 = o2, t3 = i2[n2 = t3], n2 in e2 ? Object.defineProperty(e2, n2, { value: t3, enumerable: true, configurable: true, writable: true }) : e2[n2] = t3;\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o2, Object.getOwnPropertyDescriptors(i2)) : e(Object(i2)).forEach(function(t3) {\n Object.defineProperty(o2, t3, Object.getOwnPropertyDescriptor(i2, t3));\n });\n }\n return o2;\n }\n function o(t2) {\n return (o = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(t3) {\n return typeof t3;\n } : function(t3) {\n return t3 && \"function\" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? \"symbol\" : typeof t3;\n })(t2);\n }\n function a() {\n return (a = Object.assign || function(t2) {\n for (var e2 = 1; e2 < arguments.length; e2++) {\n var n2, o2 = arguments[e2];\n for (n2 in o2)\n Object.prototype.hasOwnProperty.call(o2, n2) && (t2[n2] = o2[n2]);\n }\n return t2;\n }).apply(this, arguments);\n }\n function i(t2, e2) {\n if (null == t2)\n return {};\n var n2, o2 = function(t3, e3) {\n if (null == t3)\n return {};\n for (var n3, o3 = {}, i3 = Object.keys(t3), r3 = 0; r3 < i3.length; r3++)\n n3 = i3[r3], 0 <= e3.indexOf(n3) || (o3[n3] = t3[n3]);\n return o3;\n }(t2, e2);\n if (Object.getOwnPropertySymbols)\n for (var i2 = Object.getOwnPropertySymbols(t2), r2 = 0; r2 < i2.length; r2++)\n n2 = i2[r2], 0 <= e2.indexOf(n2) || Object.prototype.propertyIsEnumerable.call(t2, n2) && (o2[n2] = t2[n2]);\n return o2;\n }\n function r(t2) {\n return function(t3) {\n if (Array.isArray(t3))\n return l(t3);\n }(t2) || function(t3) {\n if (\"undefined\" != typeof Symbol && null != t3[Symbol.iterator] || null != t3[\"@@iterator\"])\n return Array.from(t3);\n }(t2) || function(t3, e2) {\n if (t3) {\n if (\"string\" == typeof t3)\n return l(t3, e2);\n var n2 = Object.prototype.toString.call(t3).slice(8, -1);\n return \"Map\" === (n2 = \"Object\" === n2 && t3.constructor ? t3.constructor.name : n2) || \"Set\" === n2 ? Array.from(t3) : \"Arguments\" === n2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2) ? l(t3, e2) : void 0;\n }\n }(t2) || function() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n function l(t2, e2) {\n (null == e2 || e2 > t2.length) && (e2 = t2.length);\n for (var n2 = 0, o2 = new Array(e2); n2 < e2; n2++)\n o2[n2] = t2[n2];\n return o2;\n }\n function t(t2) {\n if (\"undefined\" != typeof window && window.navigator)\n return !!navigator.userAgent.match(t2);\n }\n var y = t(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i), w = t(/Edge/i), s = t(/firefox/i), u = t(/safari/i) && !t(/chrome/i) && !t(/android/i), n = t(/iP(ad|od|hone)/i), c = t(/chrome/i) && t(/android/i), d = { capture: false, passive: false };\n function h(t2, e2, n2) {\n t2.addEventListener(e2, n2, !y && d);\n }\n function f(t2, e2, n2) {\n t2.removeEventListener(e2, n2, !y && d);\n }\n function p(t2, e2) {\n if (e2 && (\">\" === e2[0] && (e2 = e2.substring(1)), t2))\n try {\n if (t2.matches)\n return t2.matches(e2);\n if (t2.msMatchesSelector)\n return t2.msMatchesSelector(e2);\n if (t2.webkitMatchesSelector)\n return t2.webkitMatchesSelector(e2);\n } catch (t3) {\n return;\n }\n }\n function P(t2, e2, n2, o2) {\n if (t2) {\n n2 = n2 || document;\n do {\n if (null != e2 && (\">\" !== e2[0] || t2.parentNode === n2) && p(t2, e2) || o2 && t2 === n2)\n return t2;\n } while (t2 !== n2 && (t2 = (i2 = t2).host && i2 !== document && i2.host.nodeType ? i2.host : i2.parentNode));\n }\n var i2;\n return null;\n }\n var g, m = /\\s+/g;\n function k(t2, e2, n2) {\n var o2;\n t2 && e2 && (t2.classList ? t2.classList[n2 ? \"add\" : \"remove\"](e2) : (o2 = (\" \" + t2.className + \" \").replace(m, \" \").replace(\" \" + e2 + \" \", \" \"), t2.className = (o2 + (n2 ? \" \" + e2 : \"\")).replace(m, \" \")));\n }\n function R(t2, e2, n2) {\n var o2 = t2 && t2.style;\n if (o2) {\n if (void 0 === n2)\n return document.defaultView && document.defaultView.getComputedStyle ? n2 = document.defaultView.getComputedStyle(t2, \"\") : t2.currentStyle && (n2 = t2.currentStyle), void 0 === e2 ? n2 : n2[e2];\n o2[e2 = !(e2 in o2 || -1 !== e2.indexOf(\"webkit\")) ? \"-webkit-\" + e2 : e2] = n2 + (\"string\" == typeof n2 ? \"\" : \"px\");\n }\n }\n function v(t2, e2) {\n var n2 = \"\";\n if (\"string\" == typeof t2)\n n2 = t2;\n else\n do {\n var o2 = R(t2, \"transform\");\n } while (o2 && \"none\" !== o2 && (n2 = o2 + \" \" + n2), !e2 && (t2 = t2.parentNode));\n var i2 = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n return i2 && new i2(n2);\n }\n function b(t2, e2, n2) {\n if (t2) {\n var o2 = t2.getElementsByTagName(e2), i2 = 0, r2 = o2.length;\n if (n2)\n for (; i2 < r2; i2++)\n n2(o2[i2], i2);\n return o2;\n }\n return [];\n }\n function O() {\n var t2 = document.scrollingElement;\n return t2 || document.documentElement;\n }\n function X(t2, e2, n2, o2, i2) {\n if (t2.getBoundingClientRect || t2 === window) {\n var r2, a2, l2, s2, c2, u2, d2 = t2 !== window && t2.parentNode && t2 !== O() ? (a2 = (r2 = t2.getBoundingClientRect()).top, l2 = r2.left, s2 = r2.bottom, c2 = r2.right, u2 = r2.height, r2.width) : (l2 = a2 = 0, s2 = window.innerHeight, c2 = window.innerWidth, u2 = window.innerHeight, window.innerWidth);\n if ((e2 || n2) && t2 !== window && (i2 = i2 || t2.parentNode, !y))\n do {\n if (i2 && i2.getBoundingClientRect && (\"none\" !== R(i2, \"transform\") || n2 && \"static\" !== R(i2, \"position\"))) {\n var h2 = i2.getBoundingClientRect();\n a2 -= h2.top + parseInt(R(i2, \"border-top-width\")), l2 -= h2.left + parseInt(R(i2, \"border-left-width\")), s2 = a2 + r2.height, c2 = l2 + r2.width;\n break;\n }\n } while (i2 = i2.parentNode);\n return o2 && t2 !== window && (o2 = (e2 = v(i2 || t2)) && e2.a, t2 = e2 && e2.d, e2 && (s2 = (a2 /= t2) + (u2 /= t2), c2 = (l2 /= o2) + (d2 /= o2))), { top: a2, left: l2, bottom: s2, right: c2, width: d2, height: u2 };\n }\n }\n function Y(t2, e2, n2) {\n for (var o2 = M(t2, true), i2 = X(t2)[e2]; o2; ) {\n var r2 = X(o2)[n2];\n if (!(\"top\" === n2 || \"left\" === n2 ? r2 <= i2 : i2 <= r2))\n return o2;\n if (o2 === O())\n break;\n o2 = M(o2, false);\n }\n return false;\n }\n function B(t2, e2, n2, o2) {\n for (var i2 = 0, r2 = 0, a2 = t2.children; r2 < a2.length; ) {\n if (\"none\" !== a2[r2].style.display && a2[r2] !== Ft.ghost && (o2 || a2[r2] !== Ft.dragged) && P(a2[r2], n2.draggable, t2, false)) {\n if (i2 === e2)\n return a2[r2];\n i2++;\n }\n r2++;\n }\n return null;\n }\n function F(t2, e2) {\n for (var n2 = t2.lastElementChild; n2 && (n2 === Ft.ghost || \"none\" === R(n2, \"display\") || e2 && !p(n2, e2)); )\n n2 = n2.previousElementSibling;\n return n2 || null;\n }\n function j(t2, e2) {\n var n2 = 0;\n if (!t2 || !t2.parentNode)\n return -1;\n for (; t2 = t2.previousElementSibling; )\n \"TEMPLATE\" === t2.nodeName.toUpperCase() || t2 === Ft.clone || e2 && !p(t2, e2) || n2++;\n return n2;\n }\n function E(t2) {\n var e2 = 0, n2 = 0, o2 = O();\n if (t2)\n do {\n var i2 = v(t2), r2 = i2.a, i2 = i2.d;\n } while (e2 += t2.scrollLeft * r2, n2 += t2.scrollTop * i2, t2 !== o2 && (t2 = t2.parentNode));\n return [e2, n2];\n }\n function M(t2, e2) {\n if (!t2 || !t2.getBoundingClientRect)\n return O();\n var n2 = t2, o2 = false;\n do {\n if (n2.clientWidth < n2.scrollWidth || n2.clientHeight < n2.scrollHeight) {\n var i2 = R(n2);\n if (n2.clientWidth < n2.scrollWidth && (\"auto\" == i2.overflowX || \"scroll\" == i2.overflowX) || n2.clientHeight < n2.scrollHeight && (\"auto\" == i2.overflowY || \"scroll\" == i2.overflowY)) {\n if (!n2.getBoundingClientRect || n2 === document.body)\n return O();\n if (o2 || e2)\n return n2;\n o2 = true;\n }\n }\n } while (n2 = n2.parentNode);\n return O();\n }\n function D(t2, e2) {\n return Math.round(t2.top) === Math.round(e2.top) && Math.round(t2.left) === Math.round(e2.left) && Math.round(t2.height) === Math.round(e2.height) && Math.round(t2.width) === Math.round(e2.width);\n }\n function S(e2, n2) {\n return function() {\n var t2;\n g || (1 === (t2 = arguments).length ? e2.call(this, t2[0]) : e2.apply(this, t2), g = setTimeout(function() {\n g = void 0;\n }, n2));\n };\n }\n function H(t2, e2, n2) {\n t2.scrollLeft += e2, t2.scrollTop += n2;\n }\n function _(t2) {\n var e2 = window.Polymer, n2 = window.jQuery || window.Zepto;\n return e2 && e2.dom ? e2.dom(t2).cloneNode(true) : n2 ? n2(t2).clone(true)[0] : t2.cloneNode(true);\n }\n function C(t2, e2) {\n R(t2, \"position\", \"absolute\"), R(t2, \"top\", e2.top), R(t2, \"left\", e2.left), R(t2, \"width\", e2.width), R(t2, \"height\", e2.height);\n }\n function T(t2) {\n R(t2, \"position\", \"\"), R(t2, \"top\", \"\"), R(t2, \"left\", \"\"), R(t2, \"width\", \"\"), R(t2, \"height\", \"\");\n }\n function L(n2, o2, i2) {\n var r2 = {};\n return Array.from(n2.children).forEach(function(t2) {\n var e2;\n P(t2, o2.draggable, n2, false) && !t2.animated && t2 !== i2 && (e2 = X(t2), r2.left = Math.min(null !== (t2 = r2.left) && void 0 !== t2 ? t2 : 1 / 0, e2.left), r2.top = Math.min(null !== (t2 = r2.top) && void 0 !== t2 ? t2 : 1 / 0, e2.top), r2.right = Math.max(null !== (t2 = r2.right) && void 0 !== t2 ? t2 : -1 / 0, e2.right), r2.bottom = Math.max(null !== (t2 = r2.bottom) && void 0 !== t2 ? t2 : -1 / 0, e2.bottom));\n }), r2.width = r2.right - r2.left, r2.height = r2.bottom - r2.top, r2.x = r2.left, r2.y = r2.top, r2;\n }\n var K = \"Sortable\" + new Date().getTime();\n function x() {\n var e2, o2 = [];\n return { captureAnimationState: function() {\n o2 = [], this.options.animation && [].slice.call(this.el.children).forEach(function(t2) {\n var e3, n2;\n \"none\" !== R(t2, \"display\") && t2 !== Ft.ghost && (o2.push({ target: t2, rect: X(t2) }), e3 = I({}, o2[o2.length - 1].rect), !t2.thisAnimationDuration || (n2 = v(t2, true)) && (e3.top -= n2.f, e3.left -= n2.e), t2.fromRect = e3);\n });\n }, addAnimationState: function(t2) {\n o2.push(t2);\n }, removeAnimationState: function(t2) {\n o2.splice(function(t3, e3) {\n for (var n2 in t3)\n if (t3.hasOwnProperty(n2)) {\n for (var o3 in e3)\n if (e3.hasOwnProperty(o3) && e3[o3] === t3[n2][o3])\n return Number(n2);\n }\n return -1;\n }(o2, { target: t2 }), 1);\n }, animateAll: function(t2) {\n var c2 = this;\n if (!this.options.animation)\n return clearTimeout(e2), void (\"function\" == typeof t2 && t2());\n var u2 = false, d2 = 0;\n o2.forEach(function(t3) {\n var e3 = 0, n2 = t3.target, o3 = n2.fromRect, i2 = X(n2), r2 = n2.prevFromRect, a2 = n2.prevToRect, l2 = t3.rect, s2 = v(n2, true);\n s2 && (i2.top -= s2.f, i2.left -= s2.e), n2.toRect = i2, n2.thisAnimationDuration && D(r2, i2) && !D(o3, i2) && (l2.top - i2.top) / (l2.left - i2.left) == (o3.top - i2.top) / (o3.left - i2.left) && (t3 = l2, s2 = r2, r2 = a2, a2 = c2.options, e3 = Math.sqrt(Math.pow(s2.top - t3.top, 2) + Math.pow(s2.left - t3.left, 2)) / Math.sqrt(Math.pow(s2.top - r2.top, 2) + Math.pow(s2.left - r2.left, 2)) * a2.animation), D(i2, o3) || (n2.prevFromRect = o3, n2.prevToRect = i2, e3 = e3 || c2.options.animation, c2.animate(n2, l2, i2, e3)), e3 && (u2 = true, d2 = Math.max(d2, e3), clearTimeout(n2.animationResetTimer), n2.animationResetTimer = setTimeout(function() {\n n2.animationTime = 0, n2.prevFromRect = null, n2.fromRect = null, n2.prevToRect = null, n2.thisAnimationDuration = null;\n }, e3), n2.thisAnimationDuration = e3);\n }), clearTimeout(e2), u2 ? e2 = setTimeout(function() {\n \"function\" == typeof t2 && t2();\n }, d2) : \"function\" == typeof t2 && t2(), o2 = [];\n }, animate: function(t2, e3, n2, o3) {\n var i2, r2;\n o3 && (R(t2, \"transition\", \"\"), R(t2, \"transform\", \"\"), i2 = (r2 = v(this.el)) && r2.a, r2 = r2 && r2.d, i2 = (e3.left - n2.left) / (i2 || 1), r2 = (e3.top - n2.top) / (r2 || 1), t2.animatingX = !!i2, t2.animatingY = !!r2, R(t2, \"transform\", \"translate3d(\" + i2 + \"px,\" + r2 + \"px,0)\"), this.forRepaintDummy = t2.offsetWidth, R(t2, \"transition\", \"transform \" + o3 + \"ms\" + (this.options.easing ? \" \" + this.options.easing : \"\")), R(t2, \"transform\", \"translate3d(0,0,0)\"), \"number\" == typeof t2.animated && clearTimeout(t2.animated), t2.animated = setTimeout(function() {\n R(t2, \"transition\", \"\"), R(t2, \"transform\", \"\"), t2.animated = false, t2.animatingX = false, t2.animatingY = false;\n }, o3));\n } };\n }\n var A = [], N = { initializeByDefault: true }, W = { mount: function(e2) {\n for (var t2 in N)\n !N.hasOwnProperty(t2) || t2 in e2 || (e2[t2] = N[t2]);\n A.forEach(function(t3) {\n if (t3.pluginName === e2.pluginName)\n throw \"Sortable: Cannot mount plugin \".concat(e2.pluginName, \" more than once\");\n }), A.push(e2);\n }, pluginEvent: function(e2, n2, o2) {\n var t2 = this;\n this.eventCanceled = false, o2.cancel = function() {\n t2.eventCanceled = true;\n };\n var i2 = e2 + \"Global\";\n A.forEach(function(t3) {\n n2[t3.pluginName] && (n2[t3.pluginName][i2] && n2[t3.pluginName][i2](I({ sortable: n2 }, o2)), n2.options[t3.pluginName] && n2[t3.pluginName][e2] && n2[t3.pluginName][e2](I({ sortable: n2 }, o2)));\n });\n }, initializePlugins: function(n2, o2, i2, t2) {\n for (var e2 in A.forEach(function(t3) {\n var e3 = t3.pluginName;\n (n2.options[e3] || t3.initializeByDefault) && ((t3 = new t3(n2, o2, n2.options)).sortable = n2, t3.options = n2.options, n2[e3] = t3, a(i2, t3.defaults));\n }), n2.options) {\n var r2;\n n2.options.hasOwnProperty(e2) && (void 0 !== (r2 = this.modifyOption(n2, e2, n2.options[e2])) && (n2.options[e2] = r2));\n }\n }, getEventProperties: function(e2, n2) {\n var o2 = {};\n return A.forEach(function(t2) {\n \"function\" == typeof t2.eventProperties && a(o2, t2.eventProperties.call(n2[t2.pluginName], e2));\n }), o2;\n }, modifyOption: function(e2, n2, o2) {\n var i2;\n return A.forEach(function(t2) {\n e2[t2.pluginName] && t2.optionListeners && \"function\" == typeof t2.optionListeners[n2] && (i2 = t2.optionListeners[n2].call(e2[t2.pluginName], o2));\n }), i2;\n } };\n function z(t2) {\n var e2 = t2.sortable, n2 = t2.rootEl, o2 = t2.name, i2 = t2.targetEl, r2 = t2.cloneEl, a2 = t2.toEl, l2 = t2.fromEl, s2 = t2.oldIndex, c2 = t2.newIndex, u2 = t2.oldDraggableIndex, d2 = t2.newDraggableIndex, h2 = t2.originalEvent, f2 = t2.putSortable, p2 = t2.extraEventProperties;\n if (e2 = e2 || n2 && n2[K]) {\n var g2, m2 = e2.options, t2 = \"on\" + o2.charAt(0).toUpperCase() + o2.substr(1);\n !window.CustomEvent || y || w ? (g2 = document.createEvent(\"Event\")).initEvent(o2, true, true) : g2 = new CustomEvent(o2, { bubbles: true, cancelable: true }), g2.to = a2 || n2, g2.from = l2 || n2, g2.item = i2 || n2, g2.clone = r2, g2.oldIndex = s2, g2.newIndex = c2, g2.oldDraggableIndex = u2, g2.newDraggableIndex = d2, g2.originalEvent = h2, g2.pullMode = f2 ? f2.lastPutMode : void 0;\n var v2, b2 = I(I({}, p2), W.getEventProperties(o2, e2));\n for (v2 in b2)\n g2[v2] = b2[v2];\n n2 && n2.dispatchEvent(g2), m2[t2] && m2[t2].call(e2, g2);\n }\n }\n function G(t2, e2) {\n var n2 = (o2 = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}).evt, o2 = i(o2, U);\n W.pluginEvent.bind(Ft)(t2, e2, I({ dragEl: V, parentEl: Z, ghostEl: $, rootEl: Q, nextEl: J, lastDownEl: tt, cloneEl: et, cloneHidden: nt, dragStarted: gt, putSortable: st, activeSortable: Ft.active, originalEvent: n2, oldIndex: ot, oldDraggableIndex: rt, newIndex: it, newDraggableIndex: at, hideGhostForTarget: Rt, unhideGhostForTarget: Xt, cloneNowHidden: function() {\n nt = true;\n }, cloneNowShown: function() {\n nt = false;\n }, dispatchSortableEvent: function(t3) {\n q({ sortable: e2, name: t3, originalEvent: n2 });\n } }, o2));\n }\n var U = [\"evt\"];\n function q(t2) {\n z(I({ putSortable: st, cloneEl: et, targetEl: V, rootEl: Q, oldIndex: ot, oldDraggableIndex: rt, newIndex: it, newDraggableIndex: at }, t2));\n }\n var V, Z, $, Q, J, tt, et, nt, ot, it, rt, at, lt, st, ct, ut, dt, ht, ft, pt, gt, mt, vt, bt, yt, wt = false, Et = false, Dt = [], St = false, _t = false, Ct = [], Tt = false, xt = [], Ot = \"undefined\" != typeof document, Mt = n, At = w || y ? \"cssFloat\" : \"float\", Nt = Ot && !c && !n && \"draggable\" in document.createElement(\"div\"), It = function() {\n if (Ot) {\n if (y)\n return false;\n var t2 = document.createElement(\"x\");\n return t2.style.cssText = \"pointer-events:auto\", \"auto\" === t2.style.pointerEvents;\n }\n }(), Pt = function(t2, e2) {\n var n2 = R(t2), o2 = parseInt(n2.width) - parseInt(n2.paddingLeft) - parseInt(n2.paddingRight) - parseInt(n2.borderLeftWidth) - parseInt(n2.borderRightWidth), i2 = B(t2, 0, e2), r2 = B(t2, 1, e2), a2 = i2 && R(i2), l2 = r2 && R(r2), s2 = a2 && parseInt(a2.marginLeft) + parseInt(a2.marginRight) + X(i2).width, t2 = l2 && parseInt(l2.marginLeft) + parseInt(l2.marginRight) + X(r2).width;\n if (\"flex\" === n2.display)\n return \"column\" === n2.flexDirection || \"column-reverse\" === n2.flexDirection ? \"vertical\" : \"horizontal\";\n if (\"grid\" === n2.display)\n return n2.gridTemplateColumns.split(\" \").length <= 1 ? \"vertical\" : \"horizontal\";\n if (i2 && a2.float && \"none\" !== a2.float) {\n e2 = \"left\" === a2.float ? \"left\" : \"right\";\n return !r2 || \"both\" !== l2.clear && l2.clear !== e2 ? \"horizontal\" : \"vertical\";\n }\n return i2 && (\"block\" === a2.display || \"flex\" === a2.display || \"table\" === a2.display || \"grid\" === a2.display || o2 <= s2 && \"none\" === n2[At] || r2 && \"none\" === n2[At] && o2 < s2 + t2) ? \"vertical\" : \"horizontal\";\n }, kt = function(t2) {\n function l2(r2, a2) {\n return function(t3, e3, n3, o2) {\n var i2 = t3.options.group.name && e3.options.group.name && t3.options.group.name === e3.options.group.name;\n if (null == r2 && (a2 || i2))\n return true;\n if (null == r2 || false === r2)\n return false;\n if (a2 && \"clone\" === r2)\n return r2;\n if (\"function\" == typeof r2)\n return l2(r2(t3, e3, n3, o2), a2)(t3, e3, n3, o2);\n e3 = (a2 ? t3 : e3).options.group.name;\n return true === r2 || \"string\" == typeof r2 && r2 === e3 || r2.join && -1 < r2.indexOf(e3);\n };\n }\n var e2 = {}, n2 = t2.group;\n n2 && \"object\" == o(n2) || (n2 = { name: n2 }), e2.name = n2.name, e2.checkPull = l2(n2.pull, true), e2.checkPut = l2(n2.put), e2.revertClone = n2.revertClone, t2.group = e2;\n }, Rt = function() {\n !It && $ && R($, \"display\", \"none\");\n }, Xt = function() {\n !It && $ && R($, \"display\", \"\");\n };\n Ot && !c && document.addEventListener(\"click\", function(t2) {\n if (Et)\n return t2.preventDefault(), t2.stopPropagation && t2.stopPropagation(), t2.stopImmediatePropagation && t2.stopImmediatePropagation(), Et = false;\n }, true);\n function Yt(t2) {\n if (V) {\n t2 = t2.touches ? t2.touches[0] : t2;\n var e2 = (i2 = t2.clientX, r2 = t2.clientY, Dt.some(function(t3) {\n var e3 = t3[K].options.emptyInsertThreshold;\n if (e3 && !F(t3)) {\n var n3 = X(t3), o3 = i2 >= n3.left - e3 && i2 <= n3.right + e3, e3 = r2 >= n3.top - e3 && r2 <= n3.bottom + e3;\n return o3 && e3 ? a2 = t3 : void 0;\n }\n }), a2);\n if (e2) {\n var n2, o2 = {};\n for (n2 in t2)\n t2.hasOwnProperty(n2) && (o2[n2] = t2[n2]);\n o2.target = o2.rootEl = e2, o2.preventDefault = void 0, o2.stopPropagation = void 0, e2[K]._onDragOver(o2);\n }\n }\n var i2, r2, a2;\n }\n function Bt(t2) {\n V && V.parentNode[K]._isOutsideThisEl(t2.target);\n }\n function Ft(t2, e2) {\n if (!t2 || !t2.nodeType || 1 !== t2.nodeType)\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(t2));\n this.el = t2, this.options = e2 = a({}, e2), t2[K] = this;\n var n2, o2, i2 = { group: null, sort: true, disabled: false, store: null, handle: null, draggable: /^[uo]l$/i.test(t2.nodeName) ? \">li\" : \">*\", swapThreshold: 1, invertSwap: false, invertedSwapThreshold: null, removeCloneOnHide: true, direction: function() {\n return Pt(t2, this.options);\n }, ghostClass: \"sortable-ghost\", chosenClass: \"sortable-chosen\", dragClass: \"sortable-drag\", ignore: \"a, img\", filter: null, preventOnFilter: true, animation: 0, easing: null, setData: function(t3, e3) {\n t3.setData(\"Text\", e3.textContent);\n }, dropBubble: false, dragoverBubble: false, dataIdAttr: \"data-id\", delay: 0, delayOnTouchOnly: false, touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, forceFallback: false, fallbackClass: \"sortable-fallback\", fallbackOnBody: false, fallbackTolerance: 0, fallbackOffset: { x: 0, y: 0 }, supportPointer: false !== Ft.supportPointer && \"PointerEvent\" in window && !u, emptyInsertThreshold: 5 };\n for (n2 in W.initializePlugins(this, t2, i2), i2)\n n2 in e2 || (e2[n2] = i2[n2]);\n for (o2 in kt(e2), this)\n \"_\" === o2.charAt(0) && \"function\" == typeof this[o2] && (this[o2] = this[o2].bind(this));\n this.nativeDraggable = !e2.forceFallback && Nt, this.nativeDraggable && (this.options.touchStartThreshold = 1), e2.supportPointer ? h(t2, \"pointerdown\", this._onTapStart) : (h(t2, \"mousedown\", this._onTapStart), h(t2, \"touchstart\", this._onTapStart)), this.nativeDraggable && (h(t2, \"dragover\", this), h(t2, \"dragenter\", this)), Dt.push(this.el), e2.store && e2.store.get && this.sort(e2.store.get(this) || []), a(this, x());\n }\n function jt(t2, e2, n2, o2, i2, r2, a2, l2) {\n var s2, c2, u2 = t2[K], d2 = u2.options.onMove;\n return !window.CustomEvent || y || w ? (s2 = document.createEvent(\"Event\")).initEvent(\"move\", true, true) : s2 = new CustomEvent(\"move\", { bubbles: true, cancelable: true }), s2.to = e2, s2.from = t2, s2.dragged = n2, s2.draggedRect = o2, s2.related = i2 || e2, s2.relatedRect = r2 || X(e2), s2.willInsertAfter = l2, s2.originalEvent = a2, t2.dispatchEvent(s2), c2 = d2 ? d2.call(u2, s2, a2) : c2;\n }\n function Ht(t2) {\n t2.draggable = false;\n }\n function Lt() {\n Tt = false;\n }\n function Kt(t2) {\n return setTimeout(t2, 0);\n }\n function Wt(t2) {\n return clearTimeout(t2);\n }\n Ft.prototype = { constructor: Ft, _isOutsideThisEl: function(t2) {\n this.el.contains(t2) || t2 === this.el || (mt = null);\n }, _getDirection: function(t2, e2) {\n return \"function\" == typeof this.options.direction ? this.options.direction.call(this, t2, e2, V) : this.options.direction;\n }, _onTapStart: function(e2) {\n if (e2.cancelable) {\n var n2 = this, o2 = this.el, t2 = this.options, i2 = t2.preventOnFilter, r2 = e2.type, a2 = e2.touches && e2.touches[0] || e2.pointerType && \"touch\" === e2.pointerType && e2, l2 = (a2 || e2).target, s2 = e2.target.shadowRoot && (e2.path && e2.path[0] || e2.composedPath && e2.composedPath()[0]) || l2, c2 = t2.filter;\n if (!function(t3) {\n xt.length = 0;\n var e3 = t3.getElementsByTagName(\"input\"), n3 = e3.length;\n for (; n3--; ) {\n var o3 = e3[n3];\n o3.checked && xt.push(o3);\n }\n }(o2), !V && !(/mousedown|pointerdown/.test(r2) && 0 !== e2.button || t2.disabled) && !s2.isContentEditable && (this.nativeDraggable || !u || !l2 || \"SELECT\" !== l2.tagName.toUpperCase()) && !((l2 = P(l2, t2.draggable, o2, false)) && l2.animated || tt === l2)) {\n if (ot = j(l2), rt = j(l2, t2.draggable), \"function\" == typeof c2) {\n if (c2.call(this, e2, l2, this))\n return q({ sortable: n2, rootEl: s2, name: \"filter\", targetEl: l2, toEl: o2, fromEl: o2 }), G(\"filter\", n2, { evt: e2 }), void (i2 && e2.cancelable && e2.preventDefault());\n } else if (c2 = c2 && c2.split(\",\").some(function(t3) {\n if (t3 = P(s2, t3.trim(), o2, false))\n return q({ sortable: n2, rootEl: t3, name: \"filter\", targetEl: l2, fromEl: o2, toEl: o2 }), G(\"filter\", n2, { evt: e2 }), true;\n }))\n return void (i2 && e2.cancelable && e2.preventDefault());\n t2.handle && !P(s2, t2.handle, o2, false) || this._prepareDragStart(e2, a2, l2);\n }\n }\n }, _prepareDragStart: function(t2, e2, n2) {\n var o2, i2 = this, r2 = i2.el, a2 = i2.options, l2 = r2.ownerDocument;\n n2 && !V && n2.parentNode === r2 && (o2 = X(n2), Q = r2, Z = (V = n2).parentNode, J = V.nextSibling, tt = n2, lt = a2.group, ct = { target: Ft.dragged = V, clientX: (e2 || t2).clientX, clientY: (e2 || t2).clientY }, ft = ct.clientX - o2.left, pt = ct.clientY - o2.top, this._lastX = (e2 || t2).clientX, this._lastY = (e2 || t2).clientY, V.style[\"will-change\"] = \"all\", o2 = function() {\n G(\"delayEnded\", i2, { evt: t2 }), Ft.eventCanceled ? i2._onDrop() : (i2._disableDelayedDragEvents(), !s && i2.nativeDraggable && (V.draggable = true), i2._triggerDragStart(t2, e2), q({ sortable: i2, name: \"choose\", originalEvent: t2 }), k(V, a2.chosenClass, true));\n }, a2.ignore.split(\",\").forEach(function(t3) {\n b(V, t3.trim(), Ht);\n }), h(l2, \"dragover\", Yt), h(l2, \"mousemove\", Yt), h(l2, \"touchmove\", Yt), h(l2, \"mouseup\", i2._onDrop), h(l2, \"touchend\", i2._onDrop), h(l2, \"touchcancel\", i2._onDrop), s && this.nativeDraggable && (this.options.touchStartThreshold = 4, V.draggable = true), G(\"delayStart\", this, { evt: t2 }), !a2.delay || a2.delayOnTouchOnly && !e2 || this.nativeDraggable && (w || y) ? o2() : Ft.eventCanceled ? this._onDrop() : (h(l2, \"mouseup\", i2._disableDelayedDrag), h(l2, \"touchend\", i2._disableDelayedDrag), h(l2, \"touchcancel\", i2._disableDelayedDrag), h(l2, \"mousemove\", i2._delayedDragTouchMoveHandler), h(l2, \"touchmove\", i2._delayedDragTouchMoveHandler), a2.supportPointer && h(l2, \"pointermove\", i2._delayedDragTouchMoveHandler), i2._dragStartTimer = setTimeout(o2, a2.delay)));\n }, _delayedDragTouchMoveHandler: function(t2) {\n t2 = t2.touches ? t2.touches[0] : t2;\n Math.max(Math.abs(t2.clientX - this._lastX), Math.abs(t2.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1)) && this._disableDelayedDrag();\n }, _disableDelayedDrag: function() {\n V && Ht(V), clearTimeout(this._dragStartTimer), this._disableDelayedDragEvents();\n }, _disableDelayedDragEvents: function() {\n var t2 = this.el.ownerDocument;\n f(t2, \"mouseup\", this._disableDelayedDrag), f(t2, \"touchend\", this._disableDelayedDrag), f(t2, \"touchcancel\", this._disableDelayedDrag), f(t2, \"mousemove\", this._delayedDragTouchMoveHandler), f(t2, \"touchmove\", this._delayedDragTouchMoveHandler), f(t2, \"pointermove\", this._delayedDragTouchMoveHandler);\n }, _triggerDragStart: function(t2, e2) {\n e2 = e2 || \"touch\" == t2.pointerType && t2, !this.nativeDraggable || e2 ? this.options.supportPointer ? h(document, \"pointermove\", this._onTouchMove) : h(document, e2 ? \"touchmove\" : \"mousemove\", this._onTouchMove) : (h(V, \"dragend\", this), h(Q, \"dragstart\", this._onDragStart));\n try {\n document.selection ? Kt(function() {\n document.selection.empty();\n }) : window.getSelection().removeAllRanges();\n } catch (t3) {\n }\n }, _dragStarted: function(t2, e2) {\n var n2;\n wt = false, Q && V ? (G(\"dragStarted\", this, { evt: e2 }), this.nativeDraggable && h(document, \"dragover\", Bt), n2 = this.options, t2 || k(V, n2.dragClass, false), k(V, n2.ghostClass, true), Ft.active = this, t2 && this._appendGhost(), q({ sortable: this, name: \"start\", originalEvent: e2 })) : this._nulling();\n }, _emulateDragOver: function() {\n if (ut) {\n this._lastX = ut.clientX, this._lastY = ut.clientY, Rt();\n for (var t2 = document.elementFromPoint(ut.clientX, ut.clientY), e2 = t2; t2 && t2.shadowRoot && (t2 = t2.shadowRoot.elementFromPoint(ut.clientX, ut.clientY)) !== e2; )\n e2 = t2;\n if (V.parentNode[K]._isOutsideThisEl(t2), e2)\n do {\n if (e2[K]) {\n if (e2[K]._onDragOver({ clientX: ut.clientX, clientY: ut.clientY, target: t2, rootEl: e2 }) && !this.options.dragoverBubble)\n break;\n }\n } while (e2 = (t2 = e2).parentNode);\n Xt();\n }\n }, _onTouchMove: function(t2) {\n if (ct) {\n var e2 = this.options, n2 = e2.fallbackTolerance, o2 = e2.fallbackOffset, i2 = t2.touches ? t2.touches[0] : t2, r2 = $ && v($, true), a2 = $ && r2 && r2.a, l2 = $ && r2 && r2.d, e2 = Mt && yt && E(yt), a2 = (i2.clientX - ct.clientX + o2.x) / (a2 || 1) + (e2 ? e2[0] - Ct[0] : 0) / (a2 || 1), l2 = (i2.clientY - ct.clientY + o2.y) / (l2 || 1) + (e2 ? e2[1] - Ct[1] : 0) / (l2 || 1);\n if (!Ft.active && !wt) {\n if (n2 && Math.max(Math.abs(i2.clientX - this._lastX), Math.abs(i2.clientY - this._lastY)) < n2)\n return;\n this._onDragStart(t2, true);\n }\n $ && (r2 ? (r2.e += a2 - (dt || 0), r2.f += l2 - (ht || 0)) : r2 = { a: 1, b: 0, c: 0, d: 1, e: a2, f: l2 }, r2 = \"matrix(\".concat(r2.a, \",\").concat(r2.b, \",\").concat(r2.c, \",\").concat(r2.d, \",\").concat(r2.e, \",\").concat(r2.f, \")\"), R($, \"webkitTransform\", r2), R($, \"mozTransform\", r2), R($, \"msTransform\", r2), R($, \"transform\", r2), dt = a2, ht = l2, ut = i2), t2.cancelable && t2.preventDefault();\n }\n }, _appendGhost: function() {\n if (!$) {\n var t2 = this.options.fallbackOnBody ? document.body : Q, e2 = X(V, true, Mt, true, t2), n2 = this.options;\n if (Mt) {\n for (yt = t2; \"static\" === R(yt, \"position\") && \"none\" === R(yt, \"transform\") && yt !== document; )\n yt = yt.parentNode;\n yt !== document.body && yt !== document.documentElement ? (yt === document && (yt = O()), e2.top += yt.scrollTop, e2.left += yt.scrollLeft) : yt = O(), Ct = E(yt);\n }\n k($ = V.cloneNode(true), n2.ghostClass, false), k($, n2.fallbackClass, true), k($, n2.dragClass, true), R($, \"transition\", \"\"), R($, \"transform\", \"\"), R($, \"box-sizing\", \"border-box\"), R($, \"margin\", 0), R($, \"top\", e2.top), R($, \"left\", e2.left), R($, \"width\", e2.width), R($, \"height\", e2.height), R($, \"opacity\", \"0.8\"), R($, \"position\", Mt ? \"absolute\" : \"fixed\"), R($, \"zIndex\", \"100000\"), R($, \"pointerEvents\", \"none\"), Ft.ghost = $, t2.appendChild($), R($, \"transform-origin\", ft / parseInt($.style.width) * 100 + \"% \" + pt / parseInt($.style.height) * 100 + \"%\");\n }\n }, _onDragStart: function(t2, e2) {\n var n2 = this, o2 = t2.dataTransfer, i2 = n2.options;\n G(\"dragStart\", this, { evt: t2 }), Ft.eventCanceled ? this._onDrop() : (G(\"setupClone\", this), Ft.eventCanceled || ((et = _(V)).removeAttribute(\"id\"), et.draggable = false, et.style[\"will-change\"] = \"\", this._hideClone(), k(et, this.options.chosenClass, false), Ft.clone = et), n2.cloneId = Kt(function() {\n G(\"clone\", n2), Ft.eventCanceled || (n2.options.removeCloneOnHide || Q.insertBefore(et, V), n2._hideClone(), q({ sortable: n2, name: \"clone\" }));\n }), e2 || k(V, i2.dragClass, true), e2 ? (Et = true, n2._loopId = setInterval(n2._emulateDragOver, 50)) : (f(document, \"mouseup\", n2._onDrop), f(document, \"touchend\", n2._onDrop), f(document, \"touchcancel\", n2._onDrop), o2 && (o2.effectAllowed = \"move\", i2.setData && i2.setData.call(n2, o2, V)), h(document, \"drop\", n2), R(V, \"transform\", \"translateZ(0)\")), wt = true, n2._dragStartId = Kt(n2._dragStarted.bind(n2, e2, t2)), h(document, \"selectstart\", n2), gt = true, u && R(document.body, \"user-select\", \"none\"));\n }, _onDragOver: function(n2) {\n var o2, i2, r2, t2, e2, a2 = this.el, l2 = n2.target, s2 = this.options, c2 = s2.group, u2 = Ft.active, d2 = lt === c2, h2 = s2.sort, f2 = st || u2, p2 = this, g2 = false;\n if (!Tt) {\n if (void 0 !== n2.preventDefault && n2.cancelable && n2.preventDefault(), l2 = P(l2, s2.draggable, a2, true), O2(\"dragOver\"), Ft.eventCanceled)\n return g2;\n if (V.contains(n2.target) || l2.animated && l2.animatingX && l2.animatingY || p2._ignoreWhileAnimating === l2)\n return A2(false);\n if (Et = false, u2 && !s2.disabled && (d2 ? h2 || (i2 = Z !== Q) : st === this || (this.lastPutMode = lt.checkPull(this, u2, V, n2)) && c2.checkPut(this, u2, V, n2))) {\n if (r2 = \"vertical\" === this._getDirection(n2, l2), o2 = X(V), O2(\"dragOverValid\"), Ft.eventCanceled)\n return g2;\n if (i2)\n return Z = Q, M2(), this._hideClone(), O2(\"revert\"), Ft.eventCanceled || (J ? Q.insertBefore(V, J) : Q.appendChild(V)), A2(true);\n var m2 = F(a2, s2.draggable);\n if (m2 && (S2 = n2, c2 = r2, x2 = X(F((D2 = this).el, D2.options.draggable)), D2 = L(D2.el, D2.options, $), !(c2 ? S2.clientX > D2.right + 10 || S2.clientY > x2.bottom && S2.clientX > x2.left : S2.clientY > D2.bottom + 10 || S2.clientX > x2.right && S2.clientY > x2.top) || m2.animated)) {\n if (m2 && (t2 = n2, e2 = r2, C2 = X(B((_2 = this).el, 0, _2.options, true)), _2 = L(_2.el, _2.options, $), e2 ? t2.clientX < _2.left - 10 || t2.clientY < C2.top && t2.clientX < C2.right : t2.clientY < _2.top - 10 || t2.clientY < C2.bottom && t2.clientX < C2.left)) {\n var v2 = B(a2, 0, s2, true);\n if (v2 === V)\n return A2(false);\n if (E2 = X(l2 = v2), false !== jt(Q, a2, V, o2, l2, E2, n2, false))\n return M2(), a2.insertBefore(V, v2), Z = a2, N2(), A2(true);\n } else if (l2.parentNode === a2) {\n var b2, y2, w2, E2 = X(l2), D2 = V.parentNode !== a2, S2 = (S2 = V.animated && V.toRect || o2, x2 = l2.animated && l2.toRect || E2, _2 = (e2 = r2) ? S2.left : S2.top, t2 = e2 ? S2.right : S2.bottom, C2 = e2 ? S2.width : S2.height, v2 = e2 ? x2.left : x2.top, S2 = e2 ? x2.right : x2.bottom, x2 = e2 ? x2.width : x2.height, !(_2 === v2 || t2 === S2 || _2 + C2 / 2 === v2 + x2 / 2)), _2 = r2 ? \"top\" : \"left\", C2 = Y(l2, \"top\", \"top\") || Y(V, \"top\", \"top\"), v2 = C2 ? C2.scrollTop : void 0;\n if (mt !== l2 && (y2 = E2[_2], St = false, _t = !S2 && s2.invertSwap || D2), 0 !== (b2 = function(t3, e3, n3, o3, i3, r3, a3, l3) {\n var s3 = o3 ? t3.clientY : t3.clientX, c3 = o3 ? n3.height : n3.width, t3 = o3 ? n3.top : n3.left, o3 = o3 ? n3.bottom : n3.right, n3 = false;\n if (!a3) {\n if (l3 && bt < c3 * i3) {\n if (St = !St && (1 === vt ? t3 + c3 * r3 / 2 < s3 : s3 < o3 - c3 * r3 / 2) ? true : St)\n n3 = true;\n else if (1 === vt ? s3 < t3 + bt : o3 - bt < s3)\n return -vt;\n } else if (t3 + c3 * (1 - i3) / 2 < s3 && s3 < o3 - c3 * (1 - i3) / 2)\n return function(t4) {\n return j(V) < j(t4) ? 1 : -1;\n }(e3);\n }\n if ((n3 = n3 || a3) && (s3 < t3 + c3 * r3 / 2 || o3 - c3 * r3 / 2 < s3))\n return t3 + c3 / 2 < s3 ? 1 : -1;\n return 0;\n }(n2, l2, E2, r2, S2 ? 1 : s2.swapThreshold, null == s2.invertedSwapThreshold ? s2.swapThreshold : s2.invertedSwapThreshold, _t, mt === l2)))\n for (var T2 = j(V); (w2 = Z.children[T2 -= b2]) && (\"none\" === R(w2, \"display\") || w2 === $); )\n ;\n if (0 === b2 || w2 === l2)\n return A2(false);\n vt = b2;\n var x2 = (mt = l2).nextElementSibling, D2 = false, S2 = jt(Q, a2, V, o2, l2, E2, n2, D2 = 1 === b2);\n if (false !== S2)\n return 1 !== S2 && -1 !== S2 || (D2 = 1 === S2), Tt = true, setTimeout(Lt, 30), M2(), D2 && !x2 ? a2.appendChild(V) : l2.parentNode.insertBefore(V, D2 ? x2 : l2), C2 && H(C2, 0, v2 - C2.scrollTop), Z = V.parentNode, void 0 === y2 || _t || (bt = Math.abs(y2 - X(l2)[_2])), N2(), A2(true);\n }\n } else {\n if (m2 === V)\n return A2(false);\n if ((l2 = m2 && a2 === n2.target ? m2 : l2) && (E2 = X(l2)), false !== jt(Q, a2, V, o2, l2, E2, n2, !!l2))\n return M2(), m2 && m2.nextSibling ? a2.insertBefore(V, m2.nextSibling) : a2.appendChild(V), Z = a2, N2(), A2(true);\n }\n if (a2.contains(V))\n return A2(false);\n }\n return false;\n }\n function O2(t3, e3) {\n G(t3, p2, I({ evt: n2, isOwner: d2, axis: r2 ? \"vertical\" : \"horizontal\", revert: i2, dragRect: o2, targetRect: E2, canSort: h2, fromSortable: f2, target: l2, completed: A2, onMove: function(t4, e4) {\n return jt(Q, a2, V, o2, t4, X(t4), n2, e4);\n }, changed: N2 }, e3));\n }\n function M2() {\n O2(\"dragOverAnimationCapture\"), p2.captureAnimationState(), p2 !== f2 && f2.captureAnimationState();\n }\n function A2(t3) {\n return O2(\"dragOverCompleted\", { insertion: t3 }), t3 && (d2 ? u2._hideClone() : u2._showClone(p2), p2 !== f2 && (k(V, (st || u2).options.ghostClass, false), k(V, s2.ghostClass, true)), st !== p2 && p2 !== Ft.active ? st = p2 : p2 === Ft.active && st && (st = null), f2 === p2 && (p2._ignoreWhileAnimating = l2), p2.animateAll(function() {\n O2(\"dragOverAnimationComplete\"), p2._ignoreWhileAnimating = null;\n }), p2 !== f2 && (f2.animateAll(), f2._ignoreWhileAnimating = null)), (l2 === V && !V.animated || l2 === a2 && !l2.animated) && (mt = null), s2.dragoverBubble || n2.rootEl || l2 === document || (V.parentNode[K]._isOutsideThisEl(n2.target), t3 || Yt(n2)), !s2.dragoverBubble && n2.stopPropagation && n2.stopPropagation(), g2 = true;\n }\n function N2() {\n it = j(V), at = j(V, s2.draggable), q({ sortable: p2, name: \"change\", toEl: a2, newIndex: it, newDraggableIndex: at, originalEvent: n2 });\n }\n }, _ignoreWhileAnimating: null, _offMoveEvents: function() {\n f(document, \"mousemove\", this._onTouchMove), f(document, \"touchmove\", this._onTouchMove), f(document, \"pointermove\", this._onTouchMove), f(document, \"dragover\", Yt), f(document, \"mousemove\", Yt), f(document, \"touchmove\", Yt);\n }, _offUpEvents: function() {\n var t2 = this.el.ownerDocument;\n f(t2, \"mouseup\", this._onDrop), f(t2, \"touchend\", this._onDrop), f(t2, \"pointerup\", this._onDrop), f(t2, \"touchcancel\", this._onDrop), f(document, \"selectstart\", this);\n }, _onDrop: function(t2) {\n var e2 = this.el, n2 = this.options;\n it = j(V), at = j(V, n2.draggable), G(\"drop\", this, { evt: t2 }), Z = V && V.parentNode, it = j(V), at = j(V, n2.draggable), Ft.eventCanceled || (St = _t = wt = false, clearInterval(this._loopId), clearTimeout(this._dragStartTimer), Wt(this.cloneId), Wt(this._dragStartId), this.nativeDraggable && (f(document, \"drop\", this), f(e2, \"dragstart\", this._onDragStart)), this._offMoveEvents(), this._offUpEvents(), u && R(document.body, \"user-select\", \"\"), R(V, \"transform\", \"\"), t2 && (gt && (t2.cancelable && t2.preventDefault(), n2.dropBubble || t2.stopPropagation()), $ && $.parentNode && $.parentNode.removeChild($), (Q === Z || st && \"clone\" !== st.lastPutMode) && et && et.parentNode && et.parentNode.removeChild(et), V && (this.nativeDraggable && f(V, \"dragend\", this), Ht(V), V.style[\"will-change\"] = \"\", gt && !wt && k(V, (st || this).options.ghostClass, false), k(V, this.options.chosenClass, false), q({ sortable: this, name: \"unchoose\", toEl: Z, newIndex: null, newDraggableIndex: null, originalEvent: t2 }), Q !== Z ? (0 <= it && (q({ rootEl: Z, name: \"add\", toEl: Z, fromEl: Q, originalEvent: t2 }), q({ sortable: this, name: \"remove\", toEl: Z, originalEvent: t2 }), q({ rootEl: Z, name: \"sort\", toEl: Z, fromEl: Q, originalEvent: t2 }), q({ sortable: this, name: \"sort\", toEl: Z, originalEvent: t2 })), st && st.save()) : it !== ot && 0 <= it && (q({ sortable: this, name: \"update\", toEl: Z, originalEvent: t2 }), q({ sortable: this, name: \"sort\", toEl: Z, originalEvent: t2 })), Ft.active && (null != it && -1 !== it || (it = ot, at = rt), q({ sortable: this, name: \"end\", toEl: Z, originalEvent: t2 }), this.save())))), this._nulling();\n }, _nulling: function() {\n G(\"nulling\", this), Q = V = Z = $ = J = et = tt = nt = ct = ut = gt = it = at = ot = rt = mt = vt = st = lt = Ft.dragged = Ft.ghost = Ft.clone = Ft.active = null, xt.forEach(function(t2) {\n t2.checked = true;\n }), xt.length = dt = ht = 0;\n }, handleEvent: function(t2) {\n switch (t2.type) {\n case \"drop\":\n case \"dragend\":\n this._onDrop(t2);\n break;\n case \"dragenter\":\n case \"dragover\":\n V && (this._onDragOver(t2), function(t3) {\n t3.dataTransfer && (t3.dataTransfer.dropEffect = \"move\");\n t3.cancelable && t3.preventDefault();\n }(t2));\n break;\n case \"selectstart\":\n t2.preventDefault();\n }\n }, toArray: function() {\n for (var t2, e2 = [], n2 = this.el.children, o2 = 0, i2 = n2.length, r2 = this.options; o2 < i2; o2++)\n P(t2 = n2[o2], r2.draggable, this.el, false) && e2.push(t2.getAttribute(r2.dataIdAttr) || function(t3) {\n var e3 = t3.tagName + t3.className + t3.src + t3.href + t3.textContent, n3 = e3.length, o3 = 0;\n for (; n3--; )\n o3 += e3.charCodeAt(n3);\n return o3.toString(36);\n }(t2));\n return e2;\n }, sort: function(t2, e2) {\n var n2 = {}, o2 = this.el;\n this.toArray().forEach(function(t3, e3) {\n e3 = o2.children[e3];\n P(e3, this.options.draggable, o2, false) && (n2[t3] = e3);\n }, this), e2 && this.captureAnimationState(), t2.forEach(function(t3) {\n n2[t3] && (o2.removeChild(n2[t3]), o2.appendChild(n2[t3]));\n }), e2 && this.animateAll();\n }, save: function() {\n var t2 = this.options.store;\n t2 && t2.set && t2.set(this);\n }, closest: function(t2, e2) {\n return P(t2, e2 || this.options.draggable, this.el, false);\n }, option: function(t2, e2) {\n var n2 = this.options;\n if (void 0 === e2)\n return n2[t2];\n var o2 = W.modifyOption(this, t2, e2);\n n2[t2] = void 0 !== o2 ? o2 : e2, \"group\" === t2 && kt(n2);\n }, destroy: function() {\n G(\"destroy\", this);\n var t2 = this.el;\n t2[K] = null, f(t2, \"mousedown\", this._onTapStart), f(t2, \"touchstart\", this._onTapStart), f(t2, \"pointerdown\", this._onTapStart), this.nativeDraggable && (f(t2, \"dragover\", this), f(t2, \"dragenter\", this)), Array.prototype.forEach.call(t2.querySelectorAll(\"[draggable]\"), function(t3) {\n t3.removeAttribute(\"draggable\");\n }), this._onDrop(), this._disableDelayedDragEvents(), Dt.splice(Dt.indexOf(this.el), 1), this.el = t2 = null;\n }, _hideClone: function() {\n nt || (G(\"hideClone\", this), Ft.eventCanceled || (R(et, \"display\", \"none\"), this.options.removeCloneOnHide && et.parentNode && et.parentNode.removeChild(et), nt = true));\n }, _showClone: function(t2) {\n \"clone\" === t2.lastPutMode ? nt && (G(\"showClone\", this), Ft.eventCanceled || (V.parentNode != Q || this.options.group.revertClone ? J ? Q.insertBefore(et, J) : Q.appendChild(et) : Q.insertBefore(et, V), this.options.group.revertClone && this.animate(V, et), R(et, \"display\", \"\"), nt = false)) : this._hideClone();\n } }, Ot && h(document, \"touchmove\", function(t2) {\n (Ft.active || wt) && t2.cancelable && t2.preventDefault();\n }), Ft.utils = { on: h, off: f, css: R, find: b, is: function(t2, e2) {\n return !!P(t2, e2, t2, false);\n }, extend: function(t2, e2) {\n if (t2 && e2)\n for (var n2 in e2)\n e2.hasOwnProperty(n2) && (t2[n2] = e2[n2]);\n return t2;\n }, throttle: S, closest: P, toggleClass: k, clone: _, index: j, nextTick: Kt, cancelNextTick: Wt, detectDirection: Pt, getChild: B }, Ft.get = function(t2) {\n return t2[K];\n }, Ft.mount = function() {\n for (var t2 = arguments.length, e2 = new Array(t2), n2 = 0; n2 < t2; n2++)\n e2[n2] = arguments[n2];\n (e2 = e2[0].constructor === Array ? e2[0] : e2).forEach(function(t3) {\n if (!t3.prototype || !t3.prototype.constructor)\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(t3));\n t3.utils && (Ft.utils = I(I({}, Ft.utils), t3.utils)), W.mount(t3);\n });\n }, Ft.create = function(t2, e2) {\n return new Ft(t2, e2);\n };\n var zt, Gt, Ut, qt, Vt, Zt, $t = [], Qt = !(Ft.version = \"1.15.2\");\n function Jt() {\n $t.forEach(function(t2) {\n clearInterval(t2.pid);\n }), $t = [];\n }\n function te() {\n clearInterval(Zt);\n }\n var ee, ne = S(function(n2, t2, e2, o2) {\n if (t2.scroll) {\n var i2, r2 = (n2.touches ? n2.touches[0] : n2).clientX, a2 = (n2.touches ? n2.touches[0] : n2).clientY, l2 = t2.scrollSensitivity, s2 = t2.scrollSpeed, c2 = O(), u2 = false;\n Gt !== e2 && (Gt = e2, Jt(), zt = t2.scroll, i2 = t2.scrollFn, true === zt && (zt = M(e2, true)));\n var d2 = 0, h2 = zt;\n do {\n var f2 = h2, p2 = X(f2), g2 = p2.top, m2 = p2.bottom, v2 = p2.left, b2 = p2.right, y2 = p2.width, w2 = p2.height, E2 = void 0, D2 = void 0, S2 = f2.scrollWidth, _2 = f2.scrollHeight, C2 = R(f2), T2 = f2.scrollLeft, p2 = f2.scrollTop, D2 = f2 === c2 ? (E2 = y2 < S2 && (\"auto\" === C2.overflowX || \"scroll\" === C2.overflowX || \"visible\" === C2.overflowX), w2 < _2 && (\"auto\" === C2.overflowY || \"scroll\" === C2.overflowY || \"visible\" === C2.overflowY)) : (E2 = y2 < S2 && (\"auto\" === C2.overflowX || \"scroll\" === C2.overflowX), w2 < _2 && (\"auto\" === C2.overflowY || \"scroll\" === C2.overflowY)), T2 = E2 && (Math.abs(b2 - r2) <= l2 && T2 + y2 < S2) - (Math.abs(v2 - r2) <= l2 && !!T2), p2 = D2 && (Math.abs(m2 - a2) <= l2 && p2 + w2 < _2) - (Math.abs(g2 - a2) <= l2 && !!p2);\n if (!$t[d2])\n for (var x2 = 0; x2 <= d2; x2++)\n $t[x2] || ($t[x2] = {});\n $t[d2].vx == T2 && $t[d2].vy == p2 && $t[d2].el === f2 || ($t[d2].el = f2, $t[d2].vx = T2, $t[d2].vy = p2, clearInterval($t[d2].pid), 0 == T2 && 0 == p2 || (u2 = true, $t[d2].pid = setInterval(function() {\n o2 && 0 === this.layer && Ft.active._onTouchMove(Vt);\n var t3 = $t[this.layer].vy ? $t[this.layer].vy * s2 : 0, e3 = $t[this.layer].vx ? $t[this.layer].vx * s2 : 0;\n \"function\" == typeof i2 && \"continue\" !== i2.call(Ft.dragged.parentNode[K], e3, t3, n2, Vt, $t[this.layer].el) || H($t[this.layer].el, e3, t3);\n }.bind({ layer: d2 }), 24))), d2++;\n } while (t2.bubbleScroll && h2 !== c2 && (h2 = M(h2, false)));\n Qt = u2;\n }\n }, 30), c = function(t2) {\n var e2 = t2.originalEvent, n2 = t2.putSortable, o2 = t2.dragEl, i2 = t2.activeSortable, r2 = t2.dispatchSortableEvent, a2 = t2.hideGhostForTarget, t2 = t2.unhideGhostForTarget;\n e2 && (i2 = n2 || i2, a2(), e2 = e2.changedTouches && e2.changedTouches.length ? e2.changedTouches[0] : e2, e2 = document.elementFromPoint(e2.clientX, e2.clientY), t2(), i2 && !i2.el.contains(e2) && (r2(\"spill\"), this.onSpill({ dragEl: o2, putSortable: n2 })));\n };\n function oe() {\n }\n function ie() {\n }\n oe.prototype = { startIndex: null, dragStart: function(t2) {\n t2 = t2.oldDraggableIndex;\n this.startIndex = t2;\n }, onSpill: function(t2) {\n var e2 = t2.dragEl, n2 = t2.putSortable;\n this.sortable.captureAnimationState(), n2 && n2.captureAnimationState();\n t2 = B(this.sortable.el, this.startIndex, this.options);\n t2 ? this.sortable.el.insertBefore(e2, t2) : this.sortable.el.appendChild(e2), this.sortable.animateAll(), n2 && n2.animateAll();\n }, drop: c }, a(oe, { pluginName: \"revertOnSpill\" }), ie.prototype = { onSpill: function(t2) {\n var e2 = t2.dragEl, t2 = t2.putSortable || this.sortable;\n t2.captureAnimationState(), e2.parentNode && e2.parentNode.removeChild(e2), t2.animateAll();\n }, drop: c }, a(ie, { pluginName: \"removeOnSpill\" });\n var re, ae, le, se, ce, ue = [], de = [], he = false, fe = false, pe = false;\n function ge(n2, o2) {\n de.forEach(function(t2, e2) {\n e2 = o2.children[t2.sortableIndex + (n2 ? Number(e2) : 0)];\n e2 ? o2.insertBefore(t2, e2) : o2.appendChild(t2);\n });\n }\n function me() {\n ue.forEach(function(t2) {\n t2 !== le && t2.parentNode && t2.parentNode.removeChild(t2);\n });\n }\n return Ft.mount(new function() {\n function t2() {\n for (var t3 in this.defaults = { scroll: true, forceAutoScrollFallback: false, scrollSensitivity: 30, scrollSpeed: 10, bubbleScroll: true }, this)\n \"_\" === t3.charAt(0) && \"function\" == typeof this[t3] && (this[t3] = this[t3].bind(this));\n }\n return t2.prototype = { dragStarted: function(t3) {\n t3 = t3.originalEvent;\n this.sortable.nativeDraggable ? h(document, \"dragover\", this._handleAutoScroll) : this.options.supportPointer ? h(document, \"pointermove\", this._handleFallbackAutoScroll) : t3.touches ? h(document, \"touchmove\", this._handleFallbackAutoScroll) : h(document, \"mousemove\", this._handleFallbackAutoScroll);\n }, dragOverCompleted: function(t3) {\n t3 = t3.originalEvent;\n this.options.dragOverBubble || t3.rootEl || this._handleAutoScroll(t3);\n }, drop: function() {\n this.sortable.nativeDraggable ? f(document, \"dragover\", this._handleAutoScroll) : (f(document, \"pointermove\", this._handleFallbackAutoScroll), f(document, \"touchmove\", this._handleFallbackAutoScroll), f(document, \"mousemove\", this._handleFallbackAutoScroll)), te(), Jt(), clearTimeout(g), g = void 0;\n }, nulling: function() {\n Vt = Gt = zt = Qt = Zt = Ut = qt = null, $t.length = 0;\n }, _handleFallbackAutoScroll: function(t3) {\n this._handleAutoScroll(t3, true);\n }, _handleAutoScroll: function(e2, n2) {\n var o2, i2 = this, r2 = (e2.touches ? e2.touches[0] : e2).clientX, a2 = (e2.touches ? e2.touches[0] : e2).clientY, t3 = document.elementFromPoint(r2, a2);\n Vt = e2, n2 || this.options.forceAutoScrollFallback || w || y || u ? (ne(e2, this.options, t3, n2), o2 = M(t3, true), !Qt || Zt && r2 === Ut && a2 === qt || (Zt && te(), Zt = setInterval(function() {\n var t4 = M(document.elementFromPoint(r2, a2), true);\n t4 !== o2 && (o2 = t4, Jt()), ne(e2, i2.options, t4, n2);\n }, 10), Ut = r2, qt = a2)) : this.options.bubbleScroll && M(t3, true) !== O() ? ne(e2, this.options, M(t3, false), false) : Jt();\n } }, a(t2, { pluginName: \"scroll\", initializeByDefault: true });\n }()), Ft.mount(ie, oe), Ft.mount(new function() {\n function t2() {\n this.defaults = { swapClass: \"sortable-swap-highlight\" };\n }\n return t2.prototype = { dragStart: function(t3) {\n t3 = t3.dragEl;\n ee = t3;\n }, dragOverValid: function(t3) {\n var e2 = t3.completed, n2 = t3.target, o2 = t3.onMove, i2 = t3.activeSortable, r2 = t3.changed, a2 = t3.cancel;\n i2.options.swap && (t3 = this.sortable.el, i2 = this.options, n2 && n2 !== t3 && (t3 = ee, ee = false !== o2(n2) ? (k(n2, i2.swapClass, true), n2) : null, t3 && t3 !== ee && k(t3, i2.swapClass, false)), r2(), e2(true), a2());\n }, drop: function(t3) {\n var e2, n2, o2 = t3.activeSortable, i2 = t3.putSortable, r2 = t3.dragEl, a2 = i2 || this.sortable, l2 = this.options;\n ee && k(ee, l2.swapClass, false), ee && (l2.swap || i2 && i2.options.swap) && r2 !== ee && (a2.captureAnimationState(), a2 !== o2 && o2.captureAnimationState(), n2 = ee, t3 = (e2 = r2).parentNode, l2 = n2.parentNode, t3 && l2 && !t3.isEqualNode(n2) && !l2.isEqualNode(e2) && (i2 = j(e2), r2 = j(n2), t3.isEqualNode(l2) && i2 < r2 && r2++, t3.insertBefore(n2, t3.children[i2]), l2.insertBefore(e2, l2.children[r2])), a2.animateAll(), a2 !== o2 && o2.animateAll());\n }, nulling: function() {\n ee = null;\n } }, a(t2, { pluginName: \"swap\", eventProperties: function() {\n return { swapItem: ee };\n } });\n }()), Ft.mount(new function() {\n function t2(o2) {\n for (var t3 in this)\n \"_\" === t3.charAt(0) && \"function\" == typeof this[t3] && (this[t3] = this[t3].bind(this));\n o2.options.avoidImplicitDeselect || (o2.options.supportPointer ? h(document, \"pointerup\", this._deselectMultiDrag) : (h(document, \"mouseup\", this._deselectMultiDrag), h(document, \"touchend\", this._deselectMultiDrag))), h(document, \"keydown\", this._checkKeyDown), h(document, \"keyup\", this._checkKeyUp), this.defaults = { selectedClass: \"sortable-selected\", multiDragKey: null, avoidImplicitDeselect: false, setData: function(t4, e2) {\n var n2 = \"\";\n ue.length && ae === o2 ? ue.forEach(function(t5, e3) {\n n2 += (e3 ? \", \" : \"\") + t5.textContent;\n }) : n2 = e2.textContent, t4.setData(\"Text\", n2);\n } };\n }\n return t2.prototype = { multiDragKeyDown: false, isMultiDrag: false, delayStartGlobal: function(t3) {\n t3 = t3.dragEl;\n le = t3;\n }, delayEnded: function() {\n this.isMultiDrag = ~ue.indexOf(le);\n }, setupClone: function(t3) {\n var e2 = t3.sortable, t3 = t3.cancel;\n if (this.isMultiDrag) {\n for (var n2 = 0; n2 < ue.length; n2++)\n de.push(_(ue[n2])), de[n2].sortableIndex = ue[n2].sortableIndex, de[n2].draggable = false, de[n2].style[\"will-change\"] = \"\", k(de[n2], this.options.selectedClass, false), ue[n2] === le && k(de[n2], this.options.chosenClass, false);\n e2._hideClone(), t3();\n }\n }, clone: function(t3) {\n var e2 = t3.sortable, n2 = t3.rootEl, o2 = t3.dispatchSortableEvent, t3 = t3.cancel;\n this.isMultiDrag && (this.options.removeCloneOnHide || ue.length && ae === e2 && (ge(true, n2), o2(\"clone\"), t3()));\n }, showClone: function(t3) {\n var e2 = t3.cloneNowShown, n2 = t3.rootEl, t3 = t3.cancel;\n this.isMultiDrag && (ge(false, n2), de.forEach(function(t4) {\n R(t4, \"display\", \"\");\n }), e2(), ce = false, t3());\n }, hideClone: function(t3) {\n var e2 = this, n2 = (t3.sortable, t3.cloneNowHidden), t3 = t3.cancel;\n this.isMultiDrag && (de.forEach(function(t4) {\n R(t4, \"display\", \"none\"), e2.options.removeCloneOnHide && t4.parentNode && t4.parentNode.removeChild(t4);\n }), n2(), ce = true, t3());\n }, dragStartGlobal: function(t3) {\n t3.sortable;\n !this.isMultiDrag && ae && ae.multiDrag._deselectMultiDrag(), ue.forEach(function(t4) {\n t4.sortableIndex = j(t4);\n }), ue = ue.sort(function(t4, e2) {\n return t4.sortableIndex - e2.sortableIndex;\n }), pe = true;\n }, dragStarted: function(t3) {\n var e2, n2 = this, t3 = t3.sortable;\n this.isMultiDrag && (this.options.sort && (t3.captureAnimationState(), this.options.animation && (ue.forEach(function(t4) {\n t4 !== le && R(t4, \"position\", \"absolute\");\n }), e2 = X(le, false, true, true), ue.forEach(function(t4) {\n t4 !== le && C(t4, e2);\n }), he = fe = true)), t3.animateAll(function() {\n he = fe = false, n2.options.animation && ue.forEach(function(t4) {\n T(t4);\n }), n2.options.sort && me();\n }));\n }, dragOver: function(t3) {\n var e2 = t3.target, n2 = t3.completed, t3 = t3.cancel;\n fe && ~ue.indexOf(e2) && (n2(false), t3());\n }, revert: function(t3) {\n var n2, o2, e2 = t3.fromSortable, i2 = t3.rootEl, r2 = t3.sortable, a2 = t3.dragRect;\n 1 < ue.length && (ue.forEach(function(t4) {\n r2.addAnimationState({ target: t4, rect: fe ? X(t4) : a2 }), T(t4), t4.fromRect = a2, e2.removeAnimationState(t4);\n }), fe = false, n2 = !this.options.removeCloneOnHide, o2 = i2, ue.forEach(function(t4, e3) {\n e3 = o2.children[t4.sortableIndex + (n2 ? Number(e3) : 0)];\n e3 ? o2.insertBefore(t4, e3) : o2.appendChild(t4);\n }));\n }, dragOverCompleted: function(t3) {\n var e2, n2 = t3.sortable, o2 = t3.isOwner, i2 = t3.insertion, r2 = t3.activeSortable, a2 = t3.parentEl, l2 = t3.putSortable, t3 = this.options;\n i2 && (o2 && r2._hideClone(), he = false, t3.animation && 1 < ue.length && (fe || !o2 && !r2.options.sort && !l2) && (e2 = X(le, false, true, true), ue.forEach(function(t4) {\n t4 !== le && (C(t4, e2), a2.appendChild(t4));\n }), fe = true), o2 || (fe || me(), 1 < ue.length ? (o2 = ce, r2._showClone(n2), r2.options.animation && !ce && o2 && de.forEach(function(t4) {\n r2.addAnimationState({ target: t4, rect: se }), t4.fromRect = se, t4.thisAnimationDuration = null;\n })) : r2._showClone(n2)));\n }, dragOverAnimationCapture: function(t3) {\n var e2 = t3.dragRect, n2 = t3.isOwner, t3 = t3.activeSortable;\n ue.forEach(function(t4) {\n t4.thisAnimationDuration = null;\n }), t3.options.animation && !n2 && t3.multiDrag.isMultiDrag && (se = a({}, e2), e2 = v(le, true), se.top -= e2.f, se.left -= e2.e);\n }, dragOverAnimationComplete: function() {\n fe && (fe = false, me());\n }, drop: function(t3) {\n var e2 = t3.originalEvent, n2 = t3.rootEl, o2 = t3.parentEl, i2 = t3.sortable, r2 = t3.dispatchSortableEvent, a2 = t3.oldIndex, l2 = t3.putSortable, s2 = l2 || this.sortable;\n if (e2) {\n var c2, u2, d2, h2 = this.options, f2 = o2.children;\n if (!pe)\n if (h2.multiDragKey && !this.multiDragKeyDown && this._deselectMultiDrag(), k(le, h2.selectedClass, !~ue.indexOf(le)), ~ue.indexOf(le))\n ue.splice(ue.indexOf(le), 1), re = null, z({ sortable: i2, rootEl: n2, name: \"deselect\", targetEl: le, originalEvent: e2 });\n else {\n if (ue.push(le), z({ sortable: i2, rootEl: n2, name: \"select\", targetEl: le, originalEvent: e2 }), e2.shiftKey && re && i2.el.contains(re)) {\n var p2 = j(re), t3 = j(le);\n if (~p2 && ~t3 && p2 !== t3)\n for (var g2, m2 = p2 < t3 ? (g2 = p2, t3) : (g2 = t3, p2 + 1); g2 < m2; g2++)\n ~ue.indexOf(f2[g2]) || (k(f2[g2], h2.selectedClass, true), ue.push(f2[g2]), z({ sortable: i2, rootEl: n2, name: \"select\", targetEl: f2[g2], originalEvent: e2 }));\n } else\n re = le;\n ae = s2;\n }\n pe && this.isMultiDrag && (fe = false, (o2[K].options.sort || o2 !== n2) && 1 < ue.length && (c2 = X(le), u2 = j(le, \":not(.\" + this.options.selectedClass + \")\"), !he && h2.animation && (le.thisAnimationDuration = null), s2.captureAnimationState(), he || (h2.animation && (le.fromRect = c2, ue.forEach(function(t4) {\n var e3;\n t4.thisAnimationDuration = null, t4 !== le && (e3 = fe ? X(t4) : c2, t4.fromRect = e3, s2.addAnimationState({ target: t4, rect: e3 }));\n })), me(), ue.forEach(function(t4) {\n f2[u2] ? o2.insertBefore(t4, f2[u2]) : o2.appendChild(t4), u2++;\n }), a2 === j(le) && (d2 = false, ue.forEach(function(t4) {\n t4.sortableIndex !== j(t4) && (d2 = true);\n }), d2 && (r2(\"update\"), r2(\"sort\")))), ue.forEach(function(t4) {\n T(t4);\n }), s2.animateAll()), ae = s2), (n2 === o2 || l2 && \"clone\" !== l2.lastPutMode) && de.forEach(function(t4) {\n t4.parentNode && t4.parentNode.removeChild(t4);\n });\n }\n }, nullingGlobal: function() {\n this.isMultiDrag = pe = false, de.length = 0;\n }, destroyGlobal: function() {\n this._deselectMultiDrag(), f(document, \"pointerup\", this._deselectMultiDrag), f(document, \"mouseup\", this._deselectMultiDrag), f(document, \"touchend\", this._deselectMultiDrag), f(document, \"keydown\", this._checkKeyDown), f(document, \"keyup\", this._checkKeyUp);\n }, _deselectMultiDrag: function(t3) {\n if (!(void 0 !== pe && pe || ae !== this.sortable || t3 && P(t3.target, this.options.draggable, this.sortable.el, false) || t3 && 0 !== t3.button))\n for (; ue.length; ) {\n var e2 = ue[0];\n k(e2, this.options.selectedClass, false), ue.shift(), z({ sortable: this.sortable, rootEl: this.sortable.el, name: \"deselect\", targetEl: e2, originalEvent: t3 });\n }\n }, _checkKeyDown: function(t3) {\n t3.key === this.options.multiDragKey && (this.multiDragKeyDown = true);\n }, _checkKeyUp: function(t3) {\n t3.key === this.options.multiDragKey && (this.multiDragKeyDown = false);\n } }, a(t2, { pluginName: \"multiDrag\", utils: { select: function(t3) {\n var e2 = t3.parentNode[K];\n e2 && e2.options.multiDrag && !~ue.indexOf(t3) && (ae && ae !== e2 && (ae.multiDrag._deselectMultiDrag(), ae = e2), k(t3, e2.options.selectedClass, true), ue.push(t3));\n }, deselect: function(t3) {\n var e2 = t3.parentNode[K], n2 = ue.indexOf(t3);\n e2 && e2.options.multiDrag && ~n2 && (k(t3, e2.options.selectedClass, false), ue.splice(n2, 1));\n } }, eventProperties: function() {\n var n2 = this, o2 = [], i2 = [];\n return ue.forEach(function(t3) {\n var e2;\n o2.push({ multiDragElement: t3, index: t3.sortableIndex }), e2 = fe && t3 !== le ? -1 : fe ? j(t3, \":not(.\" + n2.options.selectedClass + \")\") : j(t3), i2.push({ multiDragElement: t3, index: e2 });\n }), { items: r(ue), clones: [].concat(de), oldIndicies: o2, newIndicies: i2 };\n }, optionListeners: { multiDragKey: function(t3) {\n return \"ctrl\" === (t3 = t3.toLowerCase()) ? t3 = \"Control\" : 1 < t3.length && (t3 = t3.charAt(0).toUpperCase() + t3.substr(1)), t3;\n } } });\n }()), Ft;\n });\n }\n});\n\n// packages/sort/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n sort: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/sort/src/index.js\nvar import_sortablejs = __toESM(require_Sortable_min());\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/sort/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"sort\", (el, { value, modifiers, expression }, { effect, evaluate, cleanup }) => {\n if (value === \"config\") {\n return;\n }\n if (value === \"handle\") {\n return;\n }\n if (value === \"group\") {\n return;\n }\n if (value === \"key\" || value === \"item\") {\n if ([void 0, null, \"\"].includes(expression))\n return;\n el._x_sort_key = evaluate(expression);\n return;\n }\n let handleSelector = \"[x-sort\\\\:handle],[wire\\\\:sort\\\\:handle]\";\n let preferences = {\n hideGhost: !modifiers.includes(\"ghost\"),\n useHandles: !!el.querySelector(handleSelector) || Array.from(el.querySelectorAll(\"template:not(svg template)\")).some((tmpl) => {\n var _a;\n return (_a = tmpl.content) == null ? void 0 : _a.querySelector(handleSelector);\n }),\n group: getGroupName(el, modifiers)\n };\n let handleSort = generateSortHandler(expression, evaluate);\n let config = getConfigurationOverrides(el, modifiers, evaluate);\n let sortable = initSortable(el, config, preferences, (key, position) => {\n handleSort(key, position);\n });\n cleanup(() => sortable.destroy());\n });\n}\nfunction generateSortHandler(expression, evaluate) {\n if ([void 0, null, \"\"].includes(expression))\n return () => {\n };\n return (key, position) => {\n evaluate(expression, { scope: {\n // Supporting both `$item` AND `$key` ($key for BC)...\n $key: key,\n $item: key,\n $position: position\n }, params: [\n key,\n position\n ] });\n };\n}\nfunction getConfigurationOverrides(el, modifiers, evaluate) {\n if (el.hasAttribute(\"x-sort:config\")) {\n return evaluate(el.getAttribute(\"x-sort:config\"));\n }\n if (el.hasAttribute(\"wire:sort:config\")) {\n return evaluate(el.getAttribute(\"wire:sort:config\"));\n }\n return {};\n}\nfunction initSortable(el, config, preferences, handle) {\n let ghostRef;\n let options = {\n animation: 150,\n handle: preferences.useHandles ? \"[x-sort\\\\:handle],[wire\\\\:sort\\\\:handle]\" : null,\n group: preferences.group,\n scroll: true,\n forceAutoScrollFallback: true,\n scrollSensitivity: 50,\n // This is here so that if a div containing inputs or buttons has x-sort:ignore, it will not prevent interaction...\n preventOnFilter: false,\n filter(e) {\n if (e.target.hasAttribute(\"x-sort:ignore\") || e.target.hasAttribute(\"wire:sort:ignore\"))\n return true;\n if (e.target.closest(\"[x-sort\\\\:ignore]\") || e.target.closest(\"[wire\\\\:sort\\\\:ignore]\"))\n return true;\n if (!el.querySelector(\"[x-sort\\\\:item],[wire\\\\:sort\\\\:item]\"))\n return false;\n let itemHasAttribute = e.target.closest(\"[x-sort\\\\:item],[wire\\\\:sort\\\\:item]\");\n return itemHasAttribute ? false : true;\n },\n onSort(e) {\n if (e.from !== e.to) {\n if (e.to !== e.target) {\n return;\n }\n }\n let key = void 0;\n walk(e.item, (el2, skip) => {\n if (key !== void 0)\n return;\n if (el2._x_sort_key) {\n key = el2._x_sort_key;\n skip();\n }\n });\n let position = e.newIndex;\n if (key !== void 0 || key !== null) {\n handle(key, position);\n }\n },\n onStart() {\n document.body.classList.add(\"sorting\");\n ghostRef = document.querySelector(\".sortable-ghost\");\n if (preferences.hideGhost && ghostRef)\n ghostRef.style.opacity = \"0\";\n },\n onEnd() {\n document.body.classList.remove(\"sorting\");\n if (preferences.hideGhost && ghostRef)\n ghostRef.style.opacity = \"1\";\n ghostRef = void 0;\n keepElementsWithinMorphMarkers(el);\n }\n };\n return new import_sortablejs.default(el, { ...options, ...config });\n}\nfunction keepElementsWithinMorphMarkers(el) {\n let cursor = el.firstChild;\n while (cursor.nextSibling) {\n if (cursor.textContent.trim() === \"[if ENDBLOCK]><![endif]\") {\n el.append(cursor);\n break;\n }\n cursor = cursor.nextSibling;\n }\n}\nfunction getGroupName(el, modifiers) {\n if (el.hasAttribute(\"x-sort:group\")) {\n return el.getAttribute(\"x-sort:group\");\n }\n if (el.hasAttribute(\"wire:sort:group\")) {\n return el.getAttribute(\"wire:sort:group\");\n }\n return modifiers.indexOf(\"group\") !== -1 ? modifiers[modifiers.indexOf(\"group\") + 1] : null;\n}\n\n// packages/sort/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n sort\n});\n/*! Bundled license information:\n\nsortablejs/Sortable.min.js:\n (*! Sortable 1.15.2 - MIT | git://github.com/SortableJS/Sortable.git *)\n*/\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/resize/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n resize: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/resize/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"resize\", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {\n let evaluator = evaluateLater(expression);\n let evaluate = (width, height) => {\n evaluator(() => {\n }, { scope: { \"$width\": width, \"$height\": height } });\n };\n let off = modifiers.includes(\"document\") ? onDocumentResize(evaluate) : onElResize(el, evaluate);\n cleanup(() => off());\n }));\n}\nfunction onElResize(el, callback) {\n let observer = new ResizeObserver((entries) => {\n let [width, height] = dimensions(entries);\n callback(width, height);\n });\n observer.observe(el);\n return () => observer.disconnect();\n}\nvar documentResizeObserver;\nvar documentResizeObserverCallbacks = /* @__PURE__ */ new Set();\nfunction onDocumentResize(callback) {\n documentResizeObserverCallbacks.add(callback);\n if (!documentResizeObserver) {\n documentResizeObserver = new ResizeObserver((entries) => {\n let [width, height] = dimensions(entries);\n documentResizeObserverCallbacks.forEach((i) => i(width, height));\n });\n documentResizeObserver.observe(document.documentElement);\n }\n return () => {\n documentResizeObserverCallbacks.delete(callback);\n };\n}\nfunction dimensions(entries) {\n let width, height;\n for (let entry of entries) {\n width = entry.borderBoxSize[0].inlineSize;\n height = entry.borderBoxSize[0].blockSize;\n }\n return [width, height];\n}\n\n// packages/resize/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n resize\n});\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/anchor/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n anchor: () => src_default,\n default: () => module_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\nvar min = Math.min;\nvar max = Math.max;\nvar round = Math.round;\nvar floor = Math.floor;\nvar createCoords = (v) => ({\n x: v,\n y: v\n});\nvar oppositeSideMap = {\n left: \"right\",\n right: \"left\",\n bottom: \"top\",\n top: \"bottom\"\n};\nvar oppositeAlignmentMap = {\n start: \"end\",\n end: \"start\"\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === \"function\" ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split(\"-\")[0];\n}\nfunction getAlignment(placement) {\n return placement.split(\"-\")[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === \"x\" ? \"y\" : \"x\";\n}\nfunction getAxisLength(axis) {\n return axis === \"y\" ? \"height\" : \"width\";\n}\nfunction getSideAxis(placement) {\n return [\"top\", \"bottom\"].includes(getSide(placement)) ? \"y\" : \"x\";\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === \"x\" ? alignment === (rtl ? \"end\" : \"start\") ? \"right\" : \"left\" : alignment === \"start\" ? \"bottom\" : \"top\";\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = [\"left\", \"right\"];\n const rl = [\"right\", \"left\"];\n const tb = [\"top\", \"bottom\"];\n const bt = [\"bottom\", \"top\"];\n switch (side) {\n case \"top\":\n case \"bottom\":\n if (rtl)\n return isStart ? rl : lr;\n return isStart ? lr : rl;\n case \"left\":\n case \"right\":\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === \"start\", rtl);\n if (alignment) {\n list = list.map((side) => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== \"number\" ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n// node_modules/@floating-ui/core/dist/floating-ui.core.mjs\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === \"y\";\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case \"top\":\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case \"bottom\":\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case \"right\":\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case \"left\":\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case \"start\":\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case \"end\":\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\nvar computePosition = async (reference, floating, config) => {\n const {\n placement = \"bottom\",\n strategy = \"absolute\",\n middleware = [],\n platform: platform2\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));\n let rects = await platform2.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platform2,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === \"object\") {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform2.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform: platform2,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = \"clippingAncestors\",\n rootBoundary = \"viewport\",\n elementContext = \"floating\",\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === \"floating\" ? \"reference\" : \"floating\";\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform2.getClippingRect({\n element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === \"floating\" ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));\n const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\nvar flip = function(options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: \"flip\",\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform: platform2,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = \"bestFit\",\n fallbackAxisSideDirection = \"none\",\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== \"none\") {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements2 = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides2 = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides2[0]], overflow[sides2[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n if (!overflows.every((side2) => side2 <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements2[nextIndex];\n if (nextPlacement) {\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case \"bestFit\": {\n var _overflowsData$map$so;\n const placement2 = (_overflowsData$map$so = overflowsData.map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement2) {\n resetPlacement = placement2;\n }\n break;\n }\n case \"initialPlacement\":\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform: platform2,\n elements\n } = state;\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === \"y\";\n const mainAxisMulti = [\"left\", \"top\"].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === \"number\" ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === \"number\") {\n crossAxis = alignment === \"end\" ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\nvar offset = function(options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: \"offset\",\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\nvar shift = function(options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: \"shift\",\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: (_ref) => {\n let {\n x: x2,\n y: y2\n } = _ref;\n return {\n x: x2,\n y: y2\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === \"y\" ? \"top\" : \"left\";\n const maxSide = mainAxis === \"y\" ? \"bottom\" : \"right\";\n const min2 = mainAxisCoord + overflow[minSide];\n const max2 = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min2, mainAxisCoord, max2);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === \"y\" ? \"top\" : \"left\";\n const maxSide = crossAxis === \"y\" ? \"bottom\" : \"right\";\n const min2 = crossAxisCoord + overflow[minSide];\n const max2 = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min2, crossAxisCoord, max2);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n\n// node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || \"\").toLowerCase();\n }\n return \"#document\";\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (typeof ShadowRoot === \"undefined\") {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && ![\"inline\", \"contents\"].includes(display);\n}\nfunction isTableElement(element) {\n return [\"table\", \"td\", \"th\"].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n return css.transform !== \"none\" || css.perspective !== \"none\" || (css.containerType ? css.containerType !== \"normal\" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== \"none\" : false) || !webkit && (css.filter ? css.filter !== \"none\" : false) || [\"transform\", \"perspective\", \"filter\"].some((value) => (css.willChange || \"\").includes(value)) || [\"paint\", \"layout\", \"strict\", \"content\"].some((value) => (css.contain || \"\").includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === \"undefined\" || !CSS.supports)\n return false;\n return CSS.supports(\"-webkit-backdrop-filter\", \"none\");\n}\nfunction isLastTraversableNode(node) {\n return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === \"html\") {\n return node;\n }\n const result = (\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot || // DOM Element detected.\n node.parentNode || // ShadowRoot detected.\n isShadowRoot(node) && node.host || // Fallback.\n getDocumentElement(node)\n );\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\n// node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\nvar noOffsets = /* @__PURE__ */ createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== \"fixed\") {\n if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\nfunction getWindowScrollBarX(element) {\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === \"rtl\") {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === \"fixed\") {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === \"fixed\");\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === \"viewport\") {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === \"document\") {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === \"fixed\" || hasFixedPositionAncestor(parentNode, stopNode);\n}\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== \"body\");\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === \"fixed\";\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === \"fixed\") {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === \"static\" && !!currentContainingBlockComputedStyle && [\"absolute\", \"fixed\"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n result = result.filter((ancestor) => ancestor !== currentNode);\n } else {\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === \"clippingAncestors\" ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === \"fixed\";\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === \"fixed\") {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getOffsetParent(element, polyfill) {\n const window2 = getWindow(element);\n if (!isHTMLElement(element)) {\n return window2;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === \"static\") {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === \"html\" || getNodeName(offsetParent) === \"body\" && getComputedStyle(offsetParent).position === \"static\" && !isContainingBlock(offsetParent))) {\n return window2;\n }\n return offsetParent || getContainingBlock(element) || window2;\n}\nvar getElementRects = async function(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...await getDimensionsFn(floating)\n }\n };\n};\nfunction isRTL(element) {\n return getComputedStyle(element).direction === \"rtl\";\n}\nvar platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === \"function\",\n layoutShift = typeof IntersectionObserver === \"function\",\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];\n ancestors.forEach((ancestor) => {\n ancestorScroll && ancestor.addEventListener(\"scroll\", update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener(\"resize\", update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver((_ref) => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach((ancestor) => {\n ancestorScroll && ancestor.removeEventListener(\"scroll\", update);\n ancestorResize && ancestor.removeEventListener(\"resize\", update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\nvar computePosition2 = (reference, floating, options) => {\n const cache = /* @__PURE__ */ new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\n// packages/anchor/src/index.js\nfunction src_default(Alpine) {\n Alpine.magic(\"anchor\", (el) => {\n if (!el._x_anchor)\n throw \"Alpine: No x-anchor directive found on element using $anchor...\";\n return el._x_anchor;\n });\n Alpine.interceptClone((from, to) => {\n if (from && from._x_anchor && !to._x_anchor) {\n to._x_anchor = from._x_anchor;\n }\n });\n Alpine.directive(\"anchor\", Alpine.skipDuringClone(\n (el, { expression, modifiers, value }, { evaluate: evaluate2, effect, cleanup }) => {\n let { placement, offsetValue, unstyled, strategy, allowFlip } = getOptions(modifiers);\n el._x_anchor = Alpine.reactive({ x: 0, y: 0 });\n let previousReference = null;\n let release = null;\n effect(() => {\n let reference = evaluate2(expression);\n if (!reference)\n return;\n if (previousReference !== reference) {\n if (release)\n release();\n previousReference = reference;\n let compute = () => {\n let previousValue;\n computePosition2(reference, el, {\n placement,\n strategy,\n middleware: [allowFlip && flip(), shift({ padding: 5 }), offset(offsetValue)]\n }).then(({ x, y }) => {\n unstyled || setStyles(el, x, y, strategy);\n if (JSON.stringify({ x, y }) !== previousValue) {\n el._x_anchor.x = x;\n el._x_anchor.y = y;\n }\n previousValue = JSON.stringify({ x, y });\n });\n };\n release = autoUpdate(reference, el, () => compute());\n }\n });\n cleanup(() => {\n if (release)\n release();\n });\n },\n // When cloning (or \"morphing\"), we will graft the style and position data from the live tree...\n (el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => {\n let { placement, offsetValue, unstyled, strategy } = getOptions(modifiers);\n if (el._x_anchor) {\n unstyled || setStyles(el, el._x_anchor.x, el._x_anchor.y, strategy);\n }\n }\n ));\n}\nfunction setStyles(el, x, y, strategy = \"absolute\") {\n Object.assign(el.style, {\n left: x + \"px\",\n top: y + \"px\",\n position: strategy\n });\n}\nfunction getOptions(modifiers) {\n let positions = [\"top\", \"top-start\", \"top-end\", \"right\", \"right-start\", \"right-end\", \"bottom\", \"bottom-start\", \"bottom-end\", \"left\", \"left-start\", \"left-end\"];\n let placement = positions.find((i) => modifiers.includes(i));\n let offsetValue = 0;\n if (modifiers.includes(\"offset\")) {\n let idx = modifiers.findIndex((i) => i === \"offset\");\n offsetValue = modifiers[idx + 1] !== void 0 ? Number(modifiers[idx + 1]) : offsetValue;\n }\n let unstyled = modifiers.includes(\"no-style\");\n let allowFlip = !modifiers.includes(\"noflip\");\n let strategy = modifiers.includes(\"fixed\") ? \"fixed\" : \"absolute\";\n return { placement, offsetValue, unstyled, strategy, allowFlip };\n}\n\n// packages/anchor/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n anchor\n});\n", "/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/morph/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n morph: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/morph/src/morph.js\nfunction morph(from, toHtml, options) {\n monkeyPatchDomSetAttributeToAllowAtSymbols();\n let context = createMorphContext(options);\n let toEl = typeof toHtml === \"string\" ? createElement(toHtml) : toHtml;\n if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) {\n toEl._x_dataStack = window.Alpine.closestDataStack(from);\n toEl._x_dataStack && window.Alpine.cloneNode(from, toEl);\n }\n context.patch(from, toEl);\n return from;\n}\nfunction morphBetween(startMarker, endMarker, toHtml, options = {}) {\n monkeyPatchDomSetAttributeToAllowAtSymbols();\n let context = createMorphContext(options);\n let fromContainer = startMarker.parentNode;\n let fromBlock = new Block(startMarker, endMarker);\n let toContainer = typeof toHtml === \"string\" ? (() => {\n let container = document.createElement(\"div\");\n container.insertAdjacentHTML(\"beforeend\", toHtml);\n return container;\n })() : toHtml;\n let toStartMarker = document.createComment(\"[morph-start]\");\n let toEndMarker = document.createComment(\"[morph-end]\");\n toContainer.insertBefore(toStartMarker, toContainer.firstChild);\n toContainer.appendChild(toEndMarker);\n let toBlock = new Block(toStartMarker, toEndMarker);\n if (window.Alpine && window.Alpine.closestDataStack) {\n toContainer._x_dataStack = window.Alpine.closestDataStack(fromContainer);\n toContainer._x_dataStack && window.Alpine.cloneNode(fromContainer, toContainer);\n }\n context.patchChildren(fromBlock, toBlock);\n}\nfunction createMorphContext(options = {}) {\n let defaultGetKey = (el) => el.getAttribute(\"key\");\n let noop = () => {\n };\n let context = {\n key: options.key || defaultGetKey,\n lookahead: options.lookahead || false,\n updating: options.updating || noop,\n updated: options.updated || noop,\n removing: options.removing || noop,\n removed: options.removed || noop,\n adding: options.adding || noop,\n added: options.added || noop\n };\n context.patch = function(from, to) {\n if (context.differentElementNamesTypesOrKeys(from, to)) {\n return context.swapElements(from, to);\n }\n let updateChildrenOnly = false;\n let skipChildren = false;\n let skipUntil = (predicate) => context.skipUntilCondition = predicate;\n if (shouldSkipChildren(context.updating, () => skipChildren = true, skipUntil, from, to, () => updateChildrenOnly = true))\n return;\n if (from.nodeType === 1 && window.Alpine) {\n window.Alpine.cloneNode(from, to);\n if (from._x_teleport && to._x_teleport) {\n context.patch(from._x_teleport, to._x_teleport);\n }\n }\n if (textOrComment(to)) {\n context.patchNodeValue(from, to);\n context.updated(from, to);\n return;\n }\n if (!updateChildrenOnly) {\n context.patchAttributes(from, to);\n }\n context.updated(from, to);\n if (!skipChildren) {\n context.patchChildren(from, to);\n }\n };\n context.differentElementNamesTypesOrKeys = function(from, to) {\n return from.nodeType != to.nodeType || from.nodeName != to.nodeName || context.getKey(from) != context.getKey(to);\n };\n context.swapElements = function(from, to) {\n if (shouldSkip(context.removing, from))\n return;\n let toCloned = to.cloneNode(true);\n if (shouldSkip(context.adding, toCloned))\n return;\n from.replaceWith(toCloned);\n context.removed(from);\n context.added(toCloned);\n };\n context.patchNodeValue = function(from, to) {\n let value = to.nodeValue;\n if (from.nodeValue !== value) {\n from.nodeValue = value;\n }\n };\n context.patchAttributes = function(from, to) {\n if (from._x_transitioning)\n return;\n if (from._x_isShown && !to._x_isShown) {\n return;\n }\n if (!from._x_isShown && to._x_isShown) {\n return;\n }\n let domAttributes = Array.from(from.attributes);\n let toAttributes = Array.from(to.attributes);\n for (let i = domAttributes.length - 1; i >= 0; i--) {\n let name = domAttributes[i].name;\n if (!to.hasAttribute(name)) {\n if (name === \"open\" && from.nodeName === \"DIALOG\" && from.open) {\n from.close();\n } else {\n from.removeAttribute(name);\n }\n }\n }\n for (let i = toAttributes.length - 1; i >= 0; i--) {\n let name = toAttributes[i].name;\n let value = toAttributes[i].value;\n if (from.getAttribute(name) !== value) {\n from.setAttribute(name, value);\n }\n }\n };\n context.patchChildren = function(from, to) {\n let fromKeys = context.keyToMap(from.children);\n let fromKeyHoldovers = {};\n let currentTo = getFirstNode(to);\n let currentFrom = getFirstNode(from);\n while (currentTo) {\n seedingMatchingId(currentTo, currentFrom);\n let toKey = context.getKey(currentTo);\n let fromKey = context.getKey(currentFrom);\n if (context.skipUntilCondition) {\n let fromDone = !currentFrom || context.skipUntilCondition(currentFrom);\n let toDone = !currentTo || context.skipUntilCondition(currentTo);\n if (fromDone && toDone) {\n context.skipUntilCondition = null;\n } else {\n if (!fromDone)\n currentFrom = currentFrom && getNextSibling(from, currentFrom);\n if (!toDone)\n currentTo = currentTo && getNextSibling(to, currentTo);\n continue;\n }\n }\n if (!currentFrom) {\n if (toKey && fromKeyHoldovers[toKey]) {\n let holdover = fromKeyHoldovers[toKey];\n from.appendChild(holdover);\n currentFrom = holdover;\n fromKey = context.getKey(currentFrom);\n } else {\n if (!shouldSkip(context.adding, currentTo)) {\n let clone = currentTo.cloneNode(true);\n from.appendChild(clone);\n context.added(clone);\n }\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n }\n let isIf = (node) => node && node.nodeType === 8 && node.textContent === \"[if BLOCK]><![endif]\";\n let isEnd = (node) => node && node.nodeType === 8 && node.textContent === \"[if ENDBLOCK]><![endif]\";\n if (isIf(currentTo) && isIf(currentFrom)) {\n let nestedIfCount = 0;\n let fromBlockStart = currentFrom;\n while (currentFrom) {\n let next = getNextSibling(from, currentFrom);\n if (isIf(next)) {\n nestedIfCount++;\n } else if (isEnd(next) && nestedIfCount > 0) {\n nestedIfCount--;\n } else if (isEnd(next) && nestedIfCount === 0) {\n currentFrom = next;\n break;\n }\n currentFrom = next;\n }\n let fromBlockEnd = currentFrom;\n nestedIfCount = 0;\n let toBlockStart = currentTo;\n while (currentTo) {\n let next = getNextSibling(to, currentTo);\n if (isIf(next)) {\n nestedIfCount++;\n } else if (isEnd(next) && nestedIfCount > 0) {\n nestedIfCount--;\n } else if (isEnd(next) && nestedIfCount === 0) {\n currentTo = next;\n break;\n }\n currentTo = next;\n }\n let toBlockEnd = currentTo;\n let fromBlock = new Block(fromBlockStart, fromBlockEnd);\n let toBlock = new Block(toBlockStart, toBlockEnd);\n context.patchChildren(fromBlock, toBlock);\n continue;\n }\n if (currentFrom.nodeType === 1 && context.lookahead && !currentFrom.isEqualNode(currentTo)) {\n let nextToElementSibling = getNextSibling(to, currentTo);\n let found = false;\n while (!found && nextToElementSibling) {\n if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) {\n found = true;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKey = context.getKey(currentFrom);\n }\n nextToElementSibling = getNextSibling(to, nextToElementSibling);\n }\n }\n if (toKey !== fromKey) {\n if (!toKey && fromKey) {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKeyHoldovers[fromKey].remove();\n currentFrom = getNextSibling(from, currentFrom);\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n if (toKey && !fromKey) {\n if (fromKeys[toKey]) {\n currentFrom.replaceWith(fromKeys[toKey]);\n currentFrom = fromKeys[toKey];\n fromKey = context.getKey(currentFrom);\n }\n }\n if (toKey && fromKey) {\n let fromKeyNode = fromKeys[toKey];\n if (fromKeyNode) {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom.replaceWith(fromKeyNode);\n currentFrom = fromKeyNode;\n fromKey = context.getKey(currentFrom);\n } else {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKeyHoldovers[fromKey].remove();\n currentFrom = getNextSibling(from, currentFrom);\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n }\n }\n let currentFromNext = currentFrom && getNextSibling(from, currentFrom);\n context.patch(currentFrom, currentTo);\n currentTo = currentTo && getNextSibling(to, currentTo);\n currentFrom = currentFromNext;\n }\n let removals = [];\n while (currentFrom) {\n if (!shouldSkip(context.removing, currentFrom))\n removals.push(currentFrom);\n currentFrom = getNextSibling(from, currentFrom);\n }\n while (removals.length) {\n let domForRemoval = removals.shift();\n domForRemoval.remove();\n context.removed(domForRemoval);\n }\n };\n context.getKey = function(el) {\n return el && el.nodeType === 1 && context.key(el);\n };\n context.keyToMap = function(els) {\n let map = {};\n for (let el of els) {\n let theKey = context.getKey(el);\n if (theKey) {\n map[theKey] = el;\n }\n }\n return map;\n };\n context.addNodeBefore = function(parent, node, beforeMe) {\n if (!shouldSkip(context.adding, node)) {\n let clone = node.cloneNode(true);\n parent.insertBefore(clone, beforeMe);\n context.added(clone);\n return clone;\n }\n return node;\n };\n return context;\n}\nmorph.step = () => {\n};\nmorph.log = () => {\n};\nfunction shouldSkip(hook, ...args) {\n let skip = false;\n hook(...args, () => skip = true);\n return skip;\n}\nfunction shouldSkipChildren(hook, skipChildren, skipUntil, ...args) {\n let skip = false;\n hook(...args, () => skip = true, skipChildren, skipUntil);\n return skip;\n}\nvar patched = false;\nfunction createElement(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content.firstElementChild;\n}\nfunction textOrComment(el) {\n return el.nodeType === 3 || el.nodeType === 8;\n}\nvar Block = class {\n constructor(start, end) {\n this.startComment = start;\n this.endComment = end;\n }\n get children() {\n let children = [];\n let currentNode = this.startComment.nextSibling;\n while (currentNode && currentNode !== this.endComment) {\n children.push(currentNode);\n currentNode = currentNode.nextSibling;\n }\n return children;\n }\n appendChild(child) {\n this.endComment.before(child);\n }\n get firstChild() {\n let first = this.startComment.nextSibling;\n if (first === this.endComment)\n return;\n return first;\n }\n nextNode(reference) {\n let next = reference.nextSibling;\n if (next === this.endComment)\n return;\n return next;\n }\n insertBefore(newNode, reference) {\n reference.before(newNode);\n return newNode;\n }\n};\nfunction getFirstNode(parent) {\n return parent.firstChild;\n}\nfunction getNextSibling(parent, reference) {\n let next;\n if (parent instanceof Block) {\n next = parent.nextNode(reference);\n } else {\n next = reference.nextSibling;\n }\n return next;\n}\nfunction monkeyPatchDomSetAttributeToAllowAtSymbols() {\n if (patched)\n return;\n patched = true;\n let original = Element.prototype.setAttribute;\n let hostDiv = document.createElement(\"div\");\n Element.prototype.setAttribute = function newSetAttribute(name, value) {\n if (!name.includes(\"@\")) {\n return original.call(this, name, value);\n }\n let escapedValue = value.replace(/&/g, \"&\").replace(/\"/g, \""\");\n hostDiv.innerHTML = `<span ${name}=\"${escapedValue}\"></span>`;\n let attr = hostDiv.firstElementChild.getAttributeNode(name);\n hostDiv.firstElementChild.removeAttributeNode(attr);\n this.setAttributeNode(attr);\n };\n}\nfunction seedingMatchingId(to, from) {\n let fromId = from && from._x_bindings && from._x_bindings.id;\n if (!fromId)\n return;\n if (!to.setAttribute)\n return;\n to.setAttribute(\"id\", fromId);\n to.id = fromId;\n}\n\n// packages/morph/src/index.js\nfunction src_default(Alpine) {\n Alpine.morph = morph;\n Alpine.morphBetween = morphBetween;\n}\n\n// packages/morph/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n morph\n});\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/mask/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n formatInput: () => formatInput,\n mask: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/mask/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"mask\", (el, { value, expression }, { effect, evaluateLater, cleanup }) => {\n let templateFn = () => expression;\n let lastInputValue = \"\";\n queueMicrotask(() => {\n if ([\"function\", \"dynamic\"].includes(value)) {\n let evaluator = evaluateLater(expression);\n effect(() => {\n templateFn = (input) => {\n let result;\n Alpine.dontAutoEvaluateFunctions(() => {\n evaluator((value2) => {\n result = typeof value2 === \"function\" ? value2(input) : value2;\n }, { scope: {\n // These are \"magics\" we'll make available to the x-mask:function:\n \"$input\": input,\n \"$money\": formatMoney.bind({ el })\n } });\n });\n return result;\n };\n processInputValue(el, false);\n });\n } else {\n processInputValue(el, false);\n }\n if (el._x_model) {\n if (el._x_model.get() !== el.value) {\n if (!(el._x_model.get() === null && el.value === \"\")) {\n el._x_model.set(el.value);\n }\n }\n let updater = el._x_forceModelUpdate;\n el._x_forceModelUpdate = (value2) => {\n value2 = String(value2);\n let template = templateFn(value2);\n if (template && template !== \"false\") {\n value2 = formatInput(template, value2);\n }\n lastInputValue = value2;\n updater(value2);\n el._x_model.set(value2);\n };\n }\n });\n const controller = new AbortController();\n cleanup(() => {\n controller.abort();\n });\n el.addEventListener(\"input\", () => processInputValue(el), {\n signal: controller.signal,\n // Setting this as a capture phase listener to ensure it runs\n // before wire:model or x-model added as a latent binding...\n capture: true\n });\n el.addEventListener(\"blur\", () => processInputValue(el, false), { signal: controller.signal });\n function processInputValue(el2, shouldRestoreCursor = true) {\n let input = el2.value;\n let template = templateFn(input);\n if (!template || template === \"false\")\n return false;\n if (lastInputValue.length - el2.value.length === 1) {\n return lastInputValue = el2.value;\n }\n let setInput = () => {\n lastInputValue = el2.value = formatInput(template, input);\n };\n if (shouldRestoreCursor) {\n restoreCursorPosition(el2, template, () => {\n setInput();\n });\n } else {\n setInput();\n }\n }\n }).before(\"model\");\n}\nfunction restoreCursorPosition(el, template, callback) {\n let cursorPosition = el.selectionStart;\n let unformattedValue = el.value;\n callback();\n let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition);\n let newPosition = formatInput(\n template,\n beforeLeftOfCursorBeforeFormatting\n ).length;\n el.setSelectionRange(newPosition, newPosition);\n}\nvar regexes = {\n \"9\": /[0-9]/,\n \"a\": /[a-zA-Z]/,\n \"*\": /[a-zA-Z0-9]/\n};\nfunction formatInput(template, input) {\n let templateMark = 0;\n let inputMark = 0;\n let output = \"\";\n while (templateMark < template.length && inputMark < input.length) {\n let templateChar = template[templateMark];\n let inputChar = input[inputMark];\n if (templateChar in regexes) {\n if (regexes[templateChar].test(inputChar)) {\n output += inputChar;\n templateMark++;\n }\n inputMark++;\n } else {\n output += templateChar;\n templateMark++;\n if (templateChar === input[inputMark])\n inputMark++;\n }\n }\n return output;\n}\nfunction formatMoney(input, delimiter = \".\", thousands, precision = 2) {\n if (input === \"-\")\n return \"-\";\n if (/^\\D+$/.test(input))\n return \"9\";\n if (thousands === null || thousands === void 0) {\n thousands = delimiter === \",\" ? \".\" : \",\";\n }\n let addThousands = (input2, thousands2) => {\n let output = \"\";\n let counter = 0;\n for (let i = input2.length - 1; i >= 0; i--) {\n if (input2[i] === thousands2)\n continue;\n if (counter === 3) {\n output = input2[i] + thousands2 + output;\n counter = 0;\n } else {\n output = input2[i] + output;\n }\n counter++;\n }\n return output;\n };\n let minus = input.startsWith(\"-\") ? \"-\" : \"\";\n let strippedInput = input.replaceAll(new RegExp(`[^0-9\\\\${delimiter}]`, \"g\"), \"\");\n let template = Array.from({ length: strippedInput.split(delimiter)[0].length }).fill(\"9\").join(\"\");\n template = `${minus}${addThousands(template, thousands)}`;\n if (precision > 0 && input.includes(delimiter))\n template += `${delimiter}` + \"9\".repeat(precision);\n queueMicrotask(() => {\n if (this.el.value.endsWith(delimiter))\n return;\n if (this.el.value[this.el.selectionStart - 1] === delimiter) {\n this.el.setSelectionRange(this.el.selectionStart - 1, this.el.selectionStart - 1);\n }\n });\n return template;\n}\n\n// packages/mask/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n formatInput,\n mask\n});\n", "\nexport class Bag {\n constructor() { this.arrays = {} }\n\n add(key, value) {\n if (! this.arrays[key]) this.arrays[key] = []\n this.arrays[key].push(value)\n }\n\n remove(key) {\n if (this.arrays[key]) delete this.arrays[key]\n }\n\n get(key) { return this.arrays[key] || [] }\n\n each(key, callback) { return this.get(key).forEach(callback) }\n}\n\nexport class WeakBag {\n constructor() { this.arrays = new WeakMap }\n\n add(key, value) {\n if (! this.arrays.has(key)) this.arrays.set(key, [])\n this.arrays.get(key).push(value)\n }\n\n remove(key) {\n if (this.arrays.has(key)) this.arrays.delete(key, [])\n }\n\n get(key) { return this.arrays.has(key) ? this.arrays.get(key) : [] }\n\n each(key, callback) { return this.get(key).forEach(callback) }\n}\n\nexport function dispatch(target, name, detail = {}, bubbles = true) {\n target.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true,\n })\n )\n}\n\nexport function listen(target, name, handler) {\n target.addEventListener(name, handler)\n\n return () => target.removeEventListener(name, handler)\n}\n\n/**\n * Type-checking in JS is weird and annoying, these are better.\n */\nexport function isObjecty(subject) { return (typeof subject === 'object' && subject !== null) }\nexport function isObject(subject) { return (isObjecty(subject) && ! isArray(subject)) }\nexport function isArray(subject) { return Array.isArray(subject) }\nexport function isFunction(subject) { return typeof subject === 'function' }\nexport function isPrimitive(subject) { return typeof subject !== 'object' || subject === null }\n\n/**\n * Clone an object deeply to wipe out any shared references.\n */\nexport function deepClone(obj) { return JSON.parse(JSON.stringify(obj)) }\n\n/**\n * Determine if two objects take the exact same shape.\n */\nexport function deeplyEqual(a, b) { return JSON.stringify(a) === JSON.stringify(b) }\n\n/**\n * An easy way to loop through arrays and objects.\n */\nexport function each(subject, callback) {\n Object.entries(subject).forEach(([key, value]) => callback(key, value))\n}\n\n/**\n * Parse a path string into segments, supporting dot and bracket notation.\n * e.g. \"foo.bar\", \"foo[0].bar\", \"foo['hey'].baz\"\n */\nfunction parsePathSegments(path) {\n if (path === '') return []\n\n return path\n .replace(/\\[(['\"]?)(.+?)\\1\\]/g, '.$2') // Convert brackets to dots: foo['bar'] \u2192 foo.bar, foo[0] \u2192 foo.0\n .replace(/^\\./, '') // Remove leading dot if present\n .split('.')\n}\n\n/**\n * Get a property from an object with support for dot-notation and bracket-notation.\n */\nexport function dataGet(object, key) {\n if (key === '') return object\n\n return parsePathSegments(key).reduce((carry, i) => {\n return carry?.[i]\n }, object)\n}\n\n/**\n * Set a property on an object with support for dot-notation and bracket-notation.\n */\nexport function dataSet(object, key, value) {\n let segments = parsePathSegments(key)\n\n if (segments.length === 1) {\n return object[segments[0]] = value\n }\n\n let firstSegment = segments.shift()\n let restOfSegments = segments.join('.')\n let nextSegment = segments[0]\n\n if (object[firstSegment] === undefined) {\n object[firstSegment] = {}\n }\n\n // If we're about to set a numeric key that would create null gaps, convert to object.\n // This prevents JavaScript from filling intermediate indices with nulls\n // (e.g., arr[1000] = true creates 1000 null entries in a JS array).\n // We only convert when the key would create gaps (key > length), not when appending.\n if (isArray(object[firstSegment]) && isNumeric(nextSegment) && parseInt(nextSegment) > object[firstSegment].length) {\n object[firstSegment] = { ...object[firstSegment] }\n }\n\n dataSet(object[firstSegment], restOfSegments, value)\n}\n\nfunction isNumeric(subject) {\n return ! isNaN(parseInt(subject))\n}\n\n/**\n * Delete a property from an object with support for dot-notation and bracket-notation.\n */\nexport function dataDelete(object, key) {\n let segments = parsePathSegments(key)\n\n if (segments.length === 1) {\n if (Array.isArray(object)) {\n object.splice(segments[0], 1)\n } else {\n delete object[segments[0]]\n }\n return\n }\n\n let firstSegment = segments.shift()\n let restOfSegments = segments.join('.')\n\n if (object[firstSegment] !== undefined) {\n dataDelete(object[firstSegment], restOfSegments)\n }\n}\n\n/**\n * Create a flat, dot-notated diff of two objects.\n * @deprecated Use diffAndConsolidate instead for smarter update consolidation\n */\nexport function diff(left, right, diffs = {}, path = '') {\n // Are they the same?\n if (left === right) return diffs\n\n // Are they COMPLETELY different?\n if (typeof left !== typeof right || (isObject(left) && isArray(right)) || (isArray(left) && isObject(right))) {\n diffs[path] = right;\n return diffs\n }\n\n // Is the right or left side a primitive value (a leaf node)?\n if (isPrimitive(left) || isPrimitive(right)) {\n diffs[path] = right\n return diffs\n }\n\n // We now know both are objects...\n let leftKeys = Object.keys(left)\n let rightKeys = Object.keys(right)\n\n // Did the key order change? (includes insertions that shift existing keys)\n if (isObject(left) && leftKeys.some((key, i) => key !== rightKeys[i])) {\n diffs[path] = right\n return diffs\n }\n\n // Recursively diff the object's properties...\n Object.entries(right).forEach(([key, value]) => {\n diffs = {...diffs, ...diff(left[key], right[key], diffs, path === '' ? key : `${path}.${key}`)}\n leftKeys = leftKeys.filter(i => i !== key)\n })\n\n // Mark any items for removal...\n leftKeys.forEach(key => {\n diffs[`${path}.${key}`] = '__rm__'\n })\n\n return diffs\n}\n\n/**\n * Create a flat, dot-notated diff of two objects with automatic consolidation.\n * When multiple items in an array/object change or the size changes,\n * the diff is consolidated to the parent level instead of individual items.\n */\nexport function diffAndConsolidate(left, right) {\n let diffs = {}\n\n diffRecursive(left, right, '', diffs, left, right)\n\n return diffs\n}\n\nfunction diffRecursive(left, right, path, diffs, rootLeft, rootRight) {\n // Are they the same?\n if (left === right) return { changed: false, consolidated: false }\n\n // Track if we're doing a type conversion from empty array/null/undefined to object\n // In this case, we want granular diffs, not consolidation\n let convertedToObject = false\n\n // Helper to check if an array has non-numeric (string) keys\n // Arrays with string keys need granular diffs because JSON.stringify ignores them\n let hasNonNumericKeys = (arr) => {\n return isArray(arr) && Object.keys(arr).some(k => isNaN(parseInt(k)))\n }\n\n // Are they COMPLETELY different types?\n if (typeof left !== typeof right || (isObject(left) && isArray(right)) || (isArray(left) && isObject(right))) {\n // Special case: if left is an empty array and right is an object,\n // treat the empty array as an empty object so we get granular diffs.\n // This handles the case where wire:model.live=\"tableFilters.filter_1.value\"\n // updates tableFilters from [] to { filter_1: { value: 'foo' } }\n if (isArray(left) && left.length === 0 && isObject(right)) {\n left = {}\n convertedToObject = true\n // Fall through to continue with object comparison below\n }\n // Special case: if left is undefined/null and right is an object,\n // treat left as an empty object to get granular diffs for new properties\n else if ((left === undefined || left === null) && isObject(right)) {\n left = {}\n convertedToObject = true\n // Fall through to continue with object comparison below\n } else {\n diffs[path] = right\n return { changed: true, consolidated: false }\n }\n }\n\n // Special case: if both are arrays but right has non-numeric keys,\n // we need granular diffs because JSON.stringify ignores string keys on arrays.\n // Treat both as objects to properly diff the string keys.\n if (isArray(left) && isArray(right) && hasNonNumericKeys(right)) {\n // Treat the arrays as objects for comparison\n // If left was empty, mark as converted to object to prevent consolidation\n if (Object.keys(left).length === 0) {\n convertedToObject = true\n }\n }\n\n // Is either side a primitive value (a leaf node)?\n if (isPrimitive(left) || isPrimitive(right)) {\n diffs[path] = right\n return { changed: true, consolidated: false }\n }\n\n // Both are objects/arrays - check if we should consolidate at this level\n let leftKeys = Object.keys(left)\n let rightKeys = Object.keys(right)\n\n // If the size changed, consolidate at this level\n // BUT if we converted to object, don't consolidate - we're adding new items\n // and should produce granular diffs for query string handling\n if (leftKeys.length !== rightKeys.length && !convertedToObject) {\n // For root level, we can't consolidate to a single key, so diff each root property\n if (path === '') {\n Object.keys(right).forEach(key => {\n if (!deeplyEqual(left[key], right[key])) {\n diffs[key] = right[key]\n }\n })\n return { changed: true, consolidated: true }\n }\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n\n // Did the key order change?\n if (isObject(left) && leftKeys.length === rightKeys.length && leftKeys.some((key, i) => key !== rightKeys[i])) {\n if (path !== '') {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n }\n\n // Check if all keys are the same (no additions/removals)\n let keysMatch = leftKeys.every(k => rightKeys.includes(k))\n\n if (!keysMatch && !convertedToObject) {\n // Keys differ (some added, some removed) - consolidate\n if (path !== '') {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n }\n\n // Recursively diff children\n let childDiffs = {}\n let changedCount = 0\n let consolidatedCount = 0\n let totalChildren = rightKeys.length\n\n rightKeys.forEach(key => {\n let childPath = path === '' ? key : `${path}.${key}`\n let result = diffRecursive(left[key], right[key], childPath, childDiffs, rootLeft, rootRight)\n if (result.changed) changedCount++\n if (result.consolidated) consolidatedCount++\n })\n\n // If all children changed AND none of them were already consolidated, consolidate to this level\n // (unless we're at root). This prevents double-consolidation up the tree.\n // ALSO skip consolidation if we converted to object - we're adding new items, not replacing\n // Only consolidate if there are MULTIPLE children - single property changes should remain granular\n // for wire:target to work correctly (e.g., wire:target=\"form.text\" needs \"form.text\" not \"form\")\n if (path !== '' && totalChildren > 1 && changedCount === totalChildren && consolidatedCount === 0 && !convertedToObject) {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n\n // Otherwise, add individual child diffs\n Object.assign(diffs, childDiffs)\n\n // If any child was consolidated, bubble that up to prevent further consolidation\n // Also bubble up convertedToObject to prevent parent consolidation from\n // JSON-serializing arrays with non-numeric keys (which JSON.stringify ignores)\n return { changed: changedCount > 0, consolidated: consolidatedCount > 0 || convertedToObject }\n}\n\n/**\n * Diff two object trees (left = old, right = new) and patch the differences\n * onto a target object. Walks the trees directly via object key access,\n * avoiding dot-notated path strings which break when object keys contain dots.\n */\nexport function diffAndPatchRecursive(left, right, target) {\n let leftKeys = new Set(Object.keys(left || {}))\n let rightKeys = Object.keys(right)\n\n // If existing keys shifted position in an object (e.g. a key was inserted\n // in the middle), we can't patch key-by-key because new keys would be\n // appended at the end. Replace all keys on the target to preserve order.\n if (!isArray(target) && [...leftKeys].some((key, i) => key !== rightKeys[i])) {\n for (let key of Object.keys(target)) delete target[key]\n for (let key of rightKeys) target[key] = right[key]\n return\n }\n\n rightKeys.forEach(key => {\n leftKeys.delete(key)\n\n if (deeplyEqual(left?.[key], right[key])) return\n\n if (isObjecty(left?.[key]) && isObjecty(right[key]) && isObjecty(target[key])\n && isArray(right[key]) === isArray(target[key])) {\n diffAndPatchRecursive(left[key], right[key], target[key])\n } else {\n target[key] = right[key]\n }\n })\n\n // Handle removals \u2014 keys present in left but not in right.\n // Sort in reverse numeric order so array splice indices stay valid.\n let removedKeys = [...leftKeys]\n\n removedKeys.sort((a, b) => {\n let aNum = parseInt(a) || 0\n let bNum = parseInt(b) || 0\n return bNum - aNum\n }).forEach(key => {\n if (isArray(target)) {\n target.splice(parseInt(key), 1)\n } else {\n delete target[key]\n }\n })\n}\n\n/**\n * The data that's passed between the browser and server is in the form of\n * nested tuples consisting of the schema: [rawValue, metadata]. In this\n * method we're extracting the plain JS object of only the raw values.\n */\nexport function extractData(payload) {\n let value = isSynthetic(payload) ? payload[0] : payload\n let meta = isSynthetic(payload) ? payload[1] : undefined\n\n if (isObjecty(value)) {\n Object.entries(value).forEach(([key, iValue]) => {\n value[key] = extractData(iValue)\n })\n }\n\n return value\n}\n\n/**\n * Determine if the variable passed in is a node in a nested metadata\n * tuple tree. (Meaning it takes the form of: [rawData, metadata])\n */\nexport function isSynthetic(subject) {\n return Array.isArray(subject)\n && subject.length === 2\n && typeof subject[1] === 'object'\n && Object.keys(subject[1]).includes('s')\n}\n\n/**\n * Post requests in Laravel require a csrf token to be passed\n * along with the payload. Here, we'll try and locate one.\n */\nexport function getCsrfToken() {\n // Purposely not caching. Fetching it fresh every time ensures we're\n // not depending on a stale session's CSRF token...\n\n if (document.querySelector('meta[name=\"csrf-token\"]')) {\n return document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content')\n }\n\n if (document.querySelector('[data-csrf]')) {\n return document.querySelector('[data-csrf]').getAttribute('data-csrf')\n }\n\n if (window.livewireScriptConfig['csrf'] ?? false) {\n return window.livewireScriptConfig['csrf']\n }\n\n throw 'Livewire: No CSRF token detected'\n}\n\nlet nonce;\n\nexport function getNonce() {\n if (nonce) return nonce\n\n\n if (window.livewireScriptConfig && (window.livewireScriptConfig['nonce'] ?? false)) {\n nonce = window.livewireScriptConfig['nonce']\n\n return nonce\n }\n\n let elWithNonce = document.querySelector('style[data-livewire-style][nonce]')\n\n if (elWithNonce) {\n nonce = elWithNonce.nonce\n\n return nonce\n }\n\n return null\n}\n\nexport function replaceNoncesInHtml(html) {\n let nonce = getNonce()\n if (! nonce) return html\n\n let nonceMatch = html.match(/nonce=\"([^\"]+)\"/)\n if (! nonceMatch) return html\n\n let newNonce = nonceMatch[1]\n if (newNonce === nonce) return html\n\n return html.replaceAll(`nonce=\"${newNonce}\"`, `nonce=\"${nonce}\"`)\n}\n\nexport function cloneScriptTag(el) {\n let script = document.createElement('script')\n\n script.textContent = el.textContent\n script.async = el.async\n\n for (let attr of el.attributes) {\n if (attr.name === 'nonce') {\n // Browsers clear .nonce from DOMParser-parsed elements,\n // so fall back to the page's original nonce...\n script.nonce = getNonce() || el.nonce\n } else {\n script.setAttribute(attr.name, attr.value)\n }\n }\n\n return script\n}\n\n/**\n * Livewire's base URL for loading JS/CSS modules.\n * Returns a full URL including origin, generated by PHP's url() helper.\n */\nexport function getModuleUrl() {\n return document.querySelector('[data-module-url]')?.getAttribute('data-module-url') ?? window.livewireScriptConfig['moduleUrl'] ?? null\n}\n\n/**\n * Livewire's update URI. This is configurable via Livewire::setUpdateRoute(...)\n */\nexport function getUpdateUri() {\n return document.querySelector('[data-update-uri]')?.getAttribute('data-update-uri') ?? window.livewireScriptConfig['uri'] ?? null\n}\n\nexport function contentIsFromDump(content) {\n return !! content.match(/<script>Sfdump\\(\".+\"\\)<\\/script>/)\n}\n\nexport function splitDumpFromContent(content) {\n let dump = content.match(/.*<script>Sfdump\\(\".+\"\\)<\\/script>/s)\n\n return [dump, content.replace(dump, '')]\n}\n\nexport function walkUpwards(el, callback) {\n let current = el\n\n while (current) {\n let stop = undefined\n\n callback(current, { stop: (value) => value === undefined ? stop = current : stop = value })\n\n if (stop !== undefined) return stop\n\n if (current._x_teleportBack) current = current._x_teleportBack\n\n current = current.parentElement\n }\n}\n\nexport function walkBackwards(el, callback) {\n let current = el\n\n while (current) {\n let stop = undefined\n\n callback(current, { stop: (value) => value === undefined ? stop = current : stop = value })\n\n if (stop !== undefined) return stop\n\n current = current.previousSibling\n }\n}\n", "import { getCsrfToken } from '@/utils';\n\nlet uploadManagers = new WeakMap\n\nfunction getUploadManager(component) {\n if (! uploadManagers.has(component)) {\n let manager = new UploadManager(component)\n\n uploadManagers.set(component, manager)\n\n manager.registerListeners()\n }\n\n return uploadManagers.get(component)\n}\n\nexport function handleFileUpload(el, property, component, cleanup) {\n let manager = getUploadManager(component)\n\n let start = () => el.dispatchEvent(new CustomEvent('livewire-upload-start', { bubbles: true, detail: { id: component.id, property} }))\n let finish = () => el.dispatchEvent(new CustomEvent('livewire-upload-finish', { bubbles: true, detail: { id: component.id, property} }))\n let error = () => el.dispatchEvent(new CustomEvent('livewire-upload-error', { bubbles: true, detail: { id: component.id, property} }))\n let cancel = () => el.dispatchEvent(new CustomEvent('livewire-upload-cancel', { bubbles: true, detail: { id: component.id, property} }))\n let progress = (progressEvent) => {\n var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total )\n\n el.dispatchEvent(\n new CustomEvent('livewire-upload-progress', {\n bubbles: true, detail: { progress: percentCompleted }\n })\n )\n }\n\n let eventHandler = e => {\n if (e.target.files.length === 0) return\n\n start()\n\n if (e.target.multiple) {\n manager.uploadMultiple(property, e.target.files, finish, error, progress, cancel)\n } else {\n manager.upload(property, e.target.files[0], finish, error, progress, cancel)\n }\n }\n\n el.addEventListener('change', eventHandler)\n\n // If the Livewire property has changed to null or an empty string, then reset the input...\n component.$wire.$watch(property, (value) => {\n // This watch will only be released when the component is removed. However, the\n // actual file-upload element may be removed from the DOM withou the entire\n // component being removed. In this case, let's just bail early on this.\n if (! el.isConnected) return\n\n if (value === null || value === '') {\n el.value = ''\n }\n \n // If the file input is a multiple file input and the value has been reset to an empty array, then reset the input...\n if (el.multiple && Array.isArray(value) && value.length === 0) {\n el.value = ''\n }\n })\n\n // There's a bug in browsers where selecting a file, removing it,\n // then re-adding it doesn't fire the change event. This fixes it.\n // Reference: https://stackoverflow.com/questions/12030686/html-input-file-selection-event-not-firing-upon-selecting-the-same-file\n let clearFileInputValue = () => { el.value = null }\n el.addEventListener('click', clearFileInputValue)\n\n // Clear the input if the uploaded is cancelled...\n el.addEventListener('livewire-upload-cancel', clearFileInputValue)\n\n cleanup(() => {\n el.removeEventListener('change', eventHandler)\n el.removeEventListener('click', clearFileInputValue)\n })\n}\n\nclass UploadManager {\n constructor(component) {\n this.component = component\n this.uploadBag = new MessageBag\n this.removeBag = new MessageBag\n }\n\n registerListeners() {\n this.component.$wire.$on('upload:generatedSignedUrl', ({ name, url }) => {\n // We have to add reduntant \"setLoading\" calls because the dom-patch\n // from the first response will clear the setUploadLoading call\n // from the first upload call.\n setUploadLoading(this.component, name)\n\n this.handleSignedUrl(name, url)\n })\n\n this.component.$wire.$on('upload:generatedSignedUrlForS3', ({ name, payload }) => {\n setUploadLoading(this.component, name)\n\n this.handleS3PreSignedUrl(name, payload)\n })\n\n this.component.$wire.$on('upload:finished', ({ name, tmpFilenames }) => this.markUploadFinished(name, tmpFilenames))\n this.component.$wire.$on('upload:errored', ({ name }) => this.markUploadErrored(name))\n this.component.$wire.$on('upload:removed', ({ name, tmpFilename }) => this.removeBag.shift(name).finishCallback(tmpFilename))\n }\n\n upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback) {\n this.setUpload(name, {\n files: [file],\n multiple: false,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append: false,\n })\n }\n\n uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback, append = true) {\n this.setUpload(name, {\n files: Array.from(files),\n multiple: true,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append,\n })\n }\n\n removeUpload(name, tmpFilename, finishCallback) {\n this.removeBag.push(name, {\n tmpFilename, finishCallback\n })\n\n this.component.$wire.call('_removeUpload', name, tmpFilename);\n }\n\n setUpload(name, uploadObject) {\n this.uploadBag.add(name, uploadObject)\n\n if (this.uploadBag.get(name).length === 1) {\n this.startUpload(name, uploadObject)\n }\n }\n\n handleSignedUrl(name, url) {\n let formData = new FormData()\n Array.from(this.uploadBag.first(name).files).forEach(file => formData.append('files[]', file, file.name))\n\n let headers = {\n 'Accept': 'application/json',\n }\n\n let csrfToken = getCsrfToken()\n\n if (csrfToken) headers['X-CSRF-TOKEN'] = csrfToken\n\n this.makeRequest(name, formData, 'post', url, headers, response => {\n return response.paths\n })\n }\n\n handleS3PreSignedUrl(name, payload) {\n let formData = this.uploadBag.first(name).files[0]\n\n let headers = payload.headers\n if ('Host' in headers) delete headers.Host\n let url = payload.url\n\n this.makeRequest(name, formData, 'put', url, headers, response => {\n return [payload.path]\n })\n }\n\n makeRequest(name, formData, method, url, headers, retrievePaths) {\n let request = new XMLHttpRequest()\n\n request.open(method, url)\n\n Object.entries(headers).forEach(([key, value]) => {\n request.setRequestHeader(key, value)\n })\n\n request.upload.addEventListener('progress', e => {\n e.detail = {}\n e.detail.progress = Math.floor((e.loaded * 100) / e.total)\n\n this.uploadBag.first(name).progressCallback(e)\n })\n\n request.addEventListener('load', () => {\n if ((request.status+'')[0] === '2') {\n let paths = retrievePaths(request.response && JSON.parse(request.response))\n\n this.component.$wire.call('_finishUpload', name, paths, this.uploadBag.first(name).multiple, this.uploadBag.first(name).append)\n\n return\n }\n\n let errors = null\n\n if (request.status === 422) {\n errors = request.response\n }\n\n this.component.$wire.call('_uploadErrored', name, errors, this.uploadBag.first(name).multiple)\n })\n\n request.addEventListener('error', () => {\n this.component.$wire.call('_uploadErrored', name, null, this.uploadBag.first(name).multiple)\n })\n\n this.uploadBag.first(name).request = request\n\n request.send(formData)\n }\n\n startUpload(name, uploadObject) {\n let fileInfos = uploadObject.files.map(file => {\n return { name: file.name, size: file.size, type: file.type }\n })\n\n this.component.$wire.call('_startUpload', name, fileInfos, uploadObject.multiple);\n\n setUploadLoading(this.component, name)\n }\n\n markUploadFinished(name, tmpFilenames) {\n unsetUploadLoading(this.component)\n\n let uploadObject = this.uploadBag.shift(name)\n uploadObject.finishCallback(uploadObject.multiple ? tmpFilenames : tmpFilenames[0])\n\n if (this.uploadBag.get(name).length > 0) this.startUpload(name, this.uploadBag.last(name))\n }\n\n markUploadErrored(name) {\n unsetUploadLoading(this.component)\n\n this.uploadBag.shift(name).errorCallback()\n\n if (this.uploadBag.get(name).length > 0) this.startUpload(name, this.uploadBag.last(name))\n }\n\n cancelUpload(name, cancelledCallback = null) {\n unsetUploadLoading(this.component)\n\n let uploadItem = this.uploadBag.first(name);\n\n if (uploadItem) {\n if (uploadItem.request) {\n uploadItem.request.abort();\n }\n\n this.uploadBag.shift(name).cancelledCallback();\n\n if (cancelledCallback) cancelledCallback()\n }\n }\n}\n\nexport default class MessageBag {\n constructor() {\n this.bag = {}\n }\n\n add(name, thing) {\n if (! this.bag[name]) {\n this.bag[name] = []\n }\n\n this.bag[name].push(thing)\n }\n\n push(name, thing) {\n this.add(name, thing)\n }\n\n first(name) {\n if (! this.bag[name]) return null\n\n return this.bag[name][0]\n }\n\n last(name) {\n return this.bag[name].slice(-1)[0]\n }\n\n get(name) {\n return this.bag[name]\n }\n\n shift(name) {\n return this.bag[name].shift()\n }\n\n call(name, ...params) {\n (this.listeners[name] || []).forEach(callback => {\n callback(...params)\n })\n }\n\n has(name) {\n return Object.keys(this.listeners).includes(name)\n }\n}\n\nfunction setUploadLoading() {\n // @todo\n}\n\nfunction unsetUploadLoading() {\n // @todo\n}\n\nexport function upload(\n component,\n name,\n file,\n finishCallback = () => { },\n errorCallback = () => { },\n progressCallback = () => { },\n cancelledCallback = () => { },\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.upload(\n name,\n file,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n )\n}\n\nexport function uploadMultiple(\n component,\n name,\n files,\n finishCallback = () => { },\n errorCallback = () => { },\n progressCallback = () => { },\n cancelledCallback = () => { },\n append = true,\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.uploadMultiple(\n name,\n files,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append,\n )\n}\n\nexport function removeUpload(\n component,\n name,\n tmpFilename,\n finishCallback = () => { },\n errorCallback = () => { }\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.removeUpload(\n name,\n tmpFilename,\n finishCallback,\n errorCallback\n )\n}\n\nexport function cancelUpload(\n component,\n name,\n cancelledCallback = () => { }\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.cancelUpload(\n name,\n cancelledCallback\n )\n}\n", "import Alpine from 'alpinejs'\n\nexport function generateEntangleFunction(component, cleanup) {\n if (! cleanup) cleanup = () => {}\n\n return (name, live = false) => {\n let isLive = live\n let livewireProperty = name\n let livewireComponent = component.$wire\n let livewirePropertyValue = livewireComponent.get(livewireProperty)\n\n let interceptor = Alpine.interceptor((initialValue, getter, setter, path, key) => {\n // Check to see if the Livewire property exists and if not log a console error\n // and return so everything else keeps running.\n if (typeof livewirePropertyValue === 'undefined') {\n console.error(`Livewire Entangle Error: Livewire property ['${livewireProperty}'] cannot be found on component: ['${component.name}']`)\n return\n }\n\n let release = Alpine.entangle({\n // Outer scope...\n get() {\n return livewireComponent.get(name)\n },\n set(value) {\n livewireComponent.set(name, value, isLive)\n }\n }, {\n // Inner scope...\n get() {\n return getter()\n },\n set(value) {\n setter(value)\n }\n })\n\n cleanup(() => release())\n\n return cloneIfObject(livewireComponent.get(name))\n }, obj => {\n Object.defineProperty(obj, 'live', {\n get() {\n isLive = true\n\n return obj\n }\n })\n })\n\n return interceptor(livewirePropertyValue)\n }\n}\n\nfunction cloneIfObject(value) {\n return typeof value === 'object'\n ? JSON.parse(JSON.stringify(value))\n : value\n}\n", "import { cancelUpload, removeUpload, upload, uploadMultiple } from './features/supportFileUploads'\nimport { dispatch, dispatchEl, dispatchRef, dispatchSelf, dispatchTo, listen } from '@/events'\nimport { generateEntangleFunction } from '@/features/supportEntangle'\nimport { findComponentByEl } from '@/store'\nimport { dataGet, dataSet } from '@/utils'\nimport Alpine from 'alpinejs'\nimport { on as hook } from './hooks'\nimport { fireAction, setNextActionMetadata, interceptComponentAction, interceptComponentMessage, interceptComponentRequest } from '@/request'\nimport { getErrorsObject } from '@/features/supportErrors'\nimport { findRefEl } from '@/features/supportRefs'\nimport { checkDirty } from './directives/wire-dirty'\nimport { assetIsPendingFor, runAfterAssetIsLoadedFor } from './features/supportJsModules'\n\nlet properties = {}\nlet fallback\n\nfunction wireProperty(name, callback, component = null) {\n properties[name] = callback\n}\n\nfunction wireFallback(callback) {\n fallback = callback\n}\n\n// For V2 backwards compatibility...\n// And I actually like both depending on the scenario...\nlet aliases = {\n 'on': '$on',\n 'el': '$el',\n 'id': '$id',\n 'js': '$js',\n 'get': '$get',\n 'set': '$set',\n 'refs': '$refs',\n 'call': '$call',\n 'hook': '$hook',\n 'watch': '$watch',\n 'dirty': '$dirty',\n 'effect': '$effect',\n 'commit': '$commit',\n 'errors': '$errors',\n 'island': '$island',\n 'upload': '$upload',\n 'entangle': '$entangle',\n 'dispatch': '$dispatch',\n 'intercept': '$intercept',\n 'interceptAction': '$interceptAction',\n 'interceptMessage': '$interceptMessage',\n 'interceptRequest': '$interceptRequest',\n 'dispatchTo': '$dispatchTo',\n 'dispatchSelf': '$dispatchSelf',\n 'dispatchEl': '$dispatchEl',\n 'dispatchRef': '$dispatchRef',\n 'removeUpload': '$removeUpload',\n 'cancelUpload': '$cancelUpload',\n 'uploadMultiple': '$uploadMultiple',\n}\n\nexport function generateWireObject(component, state) {\n let isScoped = false\n\n return new Proxy({}, {\n get(target, property) {\n if (property === '__instance') return component\n\n if (property in aliases) {\n return getProperty(component, aliases[property])\n } else if (property in properties) {\n return getProperty(component, property)\n } else if (property in state) {\n return state[property]\n } else if (property === 'toJSON') {\n // Tools like Laravel Boost call JSON.stringify() on objects\n // (e.g. for browser console logging). Without this, the Proxy\n // fallback would send \"toJSON\" as a server-side method call,\n // throwing a MethodNotFoundException.\n return () => component.toJSON()\n } else if (! ['then'].includes(property)) {\n return getFallback(component)(property)\n }\n },\n\n set(target, property, value) {\n if (property in state) {\n state[property] = value\n }\n\n return true\n },\n })\n}\n\nfunction getProperty(component, name) {\n return properties[name](component)\n}\n\nfunction getFallback(component) {\n return fallback(component)\n}\n\nAlpine.magic('wire', (el, { cleanup }) => {\n // Purposely initializing an empty variable here is a \"memo\"\n // so that a component is lazy-loaded when using $wire from Alpine...\n let component\n\n // Override $wire methods that need to be cleaned up when\n // and element is removed. For example, `x-data=\"{ foo: $wire.entangle(...) }\"`:\n // we would want the entangle effect freed if the element was removed from the DOM...\n return new Proxy({}, {\n get(target, property) {\n if (! component) {\n try {\n component = findComponentByEl(el)\n } catch (e) {\n return () => {}\n }\n }\n\n if (['$entangle', 'entangle'].includes(property)) {\n return generateEntangleFunction(component, cleanup)\n }\n\n return component.$wire[property]\n },\n\n set(target, property, value) {\n if (! component) {\n try {\n component = findComponentByEl(el)\n } catch (e) {\n return true\n }\n }\n\n component.$wire[property] = value\n\n return true\n },\n })\n})\n\nwireProperty('__instance', (component) => component)\n\nwireProperty('$get', (component) => (property, reactive = true) => dataGet(reactive ? component.reactive : component.ephemeral, property))\n\nwireProperty('$el', (component) => {\n return component.el\n})\n\nwireProperty('$id', (component) => {\n return component.id\n})\n\nwireProperty('$js', (component) => {\n let fn = component.addJsAction.bind(component)\n\n let jsActions = component.getJsActions()\n\n Object.keys(jsActions).forEach((name) => {\n fn[name] = jsActions[name]\n })\n\n return new Proxy(fn, {\n set(target, property, value) {\n component.addJsAction(property, value)\n\n return true\n },\n get(target, property) {\n // Scripts in view-based components are imported dynamically,\n // which means they run asynchronously. This causes issues with\n // things like wire:text=\"$js.foo()\" not being available on page load.\n // To patch this, we return a promise that resolves the $js action\n // after the script is fully imported and executed...\n if (assetIsPendingFor(component)) {\n let resolver = null\n\n let promise = new Promise((resolve) => {\n resolver = resolve\n })\n\n return (...params) => {\n runAfterAssetIsLoadedFor(component, () => {\n resolver(component.getJsAction(property)(...params))\n })\n\n return promise\n }\n }\n\n return target[property]\n }\n })\n})\n\nwireProperty('$set', (component) => async (property, value, live = true) => {\n dataSet(component.reactive, property, value)\n\n // If \"live\", send a request, queueing the property update to happen first\n // on the server, then trickle back down to the client and get merged...\n if (live) {\n component.queueUpdate(property, value)\n\n return fireAction(component, '$set')\n }\n\n return Promise.resolve()\n})\n\nwireProperty('$refs', (component) => {\n let fn = (name) => findRefEl(component, name)\n\n return new Proxy(fn, {\n get(target, property) {\n if (property in target) {\n return target[property]\n }\n\n return fn(property)\n }\n })\n})\n\nwireProperty('$dirty', (component) => (property) => {\n let reactive = Alpine.reactive({ dirty: false })\n\n interceptComponentMessage(component, ({ onFinish }) => {\n onFinish(() => {\n queueMicrotask(() => {\n reactive.dirty = checkDirty(component, property)\n })\n })\n })\n\n Alpine.effect(() => {\n reactive.dirty = checkDirty(component, property)\n })\n\n return reactive.dirty\n})\n\nwireProperty('$intercept', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentAction(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptAction', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentAction(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptMessage', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentMessage(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptRequest', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentRequest(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$errors', (component) => getErrorsObject(component))\n\nwireProperty('$call', (component) => async (method, ...params) => {\n return await component.$wire[method](...params)\n})\n\nwireProperty('$island', (component) => (name, options = {}) => {\n setNextActionMetadata({ island: { name, mode: 'morph', ...options } })\n\n return component.$wire\n})\n\nwireProperty('$entangle', (component) => (name, live = false) => {\n return generateEntangleFunction(component)(name, live)\n})\n\nwireProperty('$toggle', (component) => (name, live = true) => {\n return component.$wire.set(name, ! component.$wire.get(name), live)\n})\n\nwireProperty('$watch', (component) => (path, callback) => {\n let getter = () => {\n return dataGet(component.reactive, path)\n }\n\n let unwatch = Alpine.watch(getter, callback)\n\n component.addCleanup(unwatch)\n\n return unwatch\n})\n\nwireProperty('$effect', (component) => (callback) => {\n let effect = Alpine.effect(callback)\n\n component.addCleanup(effect)\n\n return effect\n})\n\nwireProperty('$refresh', (component) => async () => {\n return fireAction(component, '$refresh')\n})\n\nwireProperty('$commit', (component) => async () => {\n return fireAction(component, '$commit')\n})\n\nwireProperty('$on', (component) => (...params) => listen(component, ...params))\n\nwireProperty('$hook', (component) => (name, callback) => {\n let unhook = hook(name, ({component: hookComponent, ...params}) => {\n // Request level hooks don't have a component, so just run the callback\n if (hookComponent === undefined) return callback(params)\n\n // Run the callback if the component in the hook matches the $wire component\n if (hookComponent.id === component.id) return callback({component: hookComponent, ...params})\n })\n\n component.addCleanup(unhook)\n\n // Return the unhook function so it can be called manually if needed\n return unhook\n})\n\nwireProperty('$dispatch', (component) => (...params) => dispatch(component, ...params))\nwireProperty('$dispatchSelf', (component) => (...params) => dispatchSelf(component, ...params))\nwireProperty('$dispatchTo', () => (...params) => dispatchTo(...params))\nwireProperty('$dispatchEl', (component) => (...params) => dispatchEl(component, ...params))\nwireProperty('$dispatchRef', (component) => (...params) => dispatchRef(component, ...params))\nwireProperty('$upload', (component) => (...params) => upload(component, ...params))\nwireProperty('$uploadMultiple', (component) => (...params) => uploadMultiple(component, ...params))\nwireProperty('$removeUpload', (component) => (...params) => removeUpload(component, ...params))\nwireProperty('$cancelUpload', (component) => (...params) => cancelUpload(component, ...params))\n\nlet parentMemo = new WeakMap\n\nwireProperty('$parent', component => {\n if (parentMemo.has(component)) return parentMemo.get(component).$wire\n\n let parent = findComponentByEl(component.el.parentElement, false)\n\n if (! parent) return\n\n parentMemo.set(component, parent)\n\n return parent.$wire\n})\n\nlet overriddenMethods = new WeakMap\n\nexport function overrideMethod(component, method, callback) {\n if (! overriddenMethods.has(component)) {\n overriddenMethods.set(component, {})\n }\n\n let obj = overriddenMethods.get(component)\n\n obj[method] = callback\n\n overriddenMethods.set(component, obj)\n}\n\nwireFallback((component) => (property) => (...params) => {\n // If this method is passed directly to a Vue or Alpine\n // event listener (@click=\"someMethod\") without using\n // parens, strip out the automatically added event.\n if (params.length === 1 && params[0] instanceof Event) {\n params = []\n }\n\n if (overriddenMethods.has(component)) {\n let overrides = overriddenMethods.get(component)\n\n if (typeof overrides[property] === 'function') {\n return overrides[property](params)\n }\n }\n\n return fireAction(component, property, params)\n})\n", "import { isFunction } from '@/utils'\n\n/**\n * Our internal event listener bus...\n */\nlet listeners = []\n\n/**\n * Register a callback to run when an event is triggered...\n */\nexport function on(name, callback) {\n if (! listeners[name]) listeners[name] = []\n\n listeners[name].push(callback)\n\n // Return an \"off\" callback to remove the listener...\n return () => {\n listeners[name] = listeners[name].filter(i => i !== callback)\n }\n}\n\n/**\n * In addition to triggering an event, this method allows you to\n * defer running callbacks returned from listeners and pass a\n * value through each one so they can act like middleware.\n *\n * An example of using this combination to the fullest:\n *\n * // First let's look at the triggering phase:\n * let finish = trigger([event name], ...[event params])\n *\n * return finish([pass-through value])\n *\n * // Now, let's look at the \"listening\" phase:\n * on([event name], (...[event params]) => {\n * // The contents of this callback will be run immediately on trigger.\n *\n * return ([pass-through value]) => {\n * // This callback will be run when \"finish()\" is called.\n *\n * // The [pass-through value] can be mutated and must\n * // be returned for the next callback to process.\n * return [pass-through value]\n * }\n * })\n */\nexport function trigger(name, ...params) {\n let callbacks = listeners[name] || []\n\n let finishers = []\n\n for (let i = 0; i < callbacks.length; i++) {\n let finisher = callbacks[i](...params)\n\n if (isFunction(finisher)) finishers.push(finisher)\n }\n\n return (result) => {\n return runFinishers(finishers, result)\n }\n}\n\nexport async function triggerAsync(name, ...params) {\n let callbacks = listeners[name] || []\n\n let finishers = []\n\n for (let i = 0; i < callbacks.length; i++) {\n let finisher = await callbacks[i](...params)\n\n if (isFunction(finisher)) finishers.push(finisher)\n }\n\n return (result) => {\n return runFinishers(finishers, result)\n }\n}\n\nexport function runFinishers(finishers, result)\n{\n let latest = result\n\n for (let i = 0; i < finishers.length; i++) {\n let iResult = finishers[i](latest)\n\n if (iResult !== undefined) {\n latest = iResult\n }\n }\n\n return latest\n}\n", "import { constructAction, createOrAddToOutstandingMessage, interceptAction, interceptPartition } from '@/request'\n\nexport function coordinateNetworkInteractions(messageBus) {\n // Handle isolated components...\n interceptPartition(({ message, compileRequest }) => {\n if (! message.component.isIsolated) return\n\n compileRequest([message])\n })\n\n // Handle lazy components...\n interceptPartition(({ message, compileRequest }) => {\n if (\n message.component.isLazy &&\n ! message.component.hasBeenLazyLoaded &&\n message.component.isLazyIsolated\n ) {\n compileRequest([message])\n }\n })\n\n // Handle modelable/reactive components...\n interceptPartition(({ message, compileRequest }) => {\n let component = message.component\n\n let bundledMessages = []\n\n component.getDeepChildrenWithBindings(child => {\n let action = constructAction(child, '$commit')\n let message = createOrAddToOutstandingMessage(action)\n\n bundledMessages.push(message)\n })\n\n if (bundledMessages.length > 0) {\n compileRequest([message, ...bundledMessages])\n }\n })\n\n // If a request is in-flight, queue up the action to fire after the in-flight request has finished...\n interceptAction(({ action }) => {\n // Wire:click.renderless\n let isRenderless = action?.origin?.directive?.modifiers.includes('renderless')\n if (isRenderless) {\n action.metadata.renderless = true\n }\n\n let message = messageBus.activeMessageMatchingScope(action)\n\n if (message) {\n // Wire:click.async:\n // - allow async actions incoming to pass through...\n // - if active message actions are async, allow the incoming async action to pass through as well...\n if (message.isAsync() || action.isAsync()) return\n\n // Wire:poll:\n // - Throw away new polls if a request of any kind is in-flight...\n if (action.metadata.type === 'poll') {\n return action.cancel()\n }\n\n // Wire:poll:\n // - Cancel in-flight polls to prioritize the new poll...\n if (Array.from(message.actions).every(action => action.metadata.type === 'poll')) {\n return message.cancel()\n }\n\n // Wire:model.live:\n // - If both incoming and outgoing requests are model.live, let them run in parallel...\n if (Array.from(message.actions).every(action => action.metadata.type === 'model.live')) {\n if (action.metadata.type === 'model.live') {\n return\n }\n }\n\n action.defer()\n\n message.addInterceptor(({ onFinish }) => {\n onFinish(() => action.fire())\n })\n }\n })\n}\n", "\nexport class MessageRequest {\n messages = new Set()\n controller = new AbortController()\n interceptors = []\n cancelled = false\n uri = null\n payload = null\n options = null\n\n addMessage(message) {\n message.setRequest(this)\n\n this.messages.add(message)\n }\n\n getActiveMessages() {\n return new Set([...this.messages].filter(message => ! message.isCancelled()))\n }\n\n initInterceptors(interceptorRegistry) {\n this.interceptors = interceptorRegistry.getRequestInterceptors(this)\n\n this.messages.forEach(message => {\n let messageInterceptors = interceptorRegistry.getMessageInterceptors(message)\n\n message.setInterceptors(messageInterceptors)\n })\n\n this.interceptors.forEach(interceptor => interceptor.init())\n\n this.messages.forEach(message => {\n message.getInterceptors().forEach(interceptor => interceptor.init())\n })\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.controller.abort()\n\n this.messages.forEach(message => {\n if (message.isCancelled()) return\n\n message.cancel()\n })\n }\n\n hasAllCancelledMessages() {\n return this.getActiveMessages().size === 0\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n /**\n * Lifecycle methods\n */\n invokeOnSend({ responsePromise }) {\n this.interceptors.forEach(interceptor => interceptor.onSend({ responsePromise }))\n\n this.messages.forEach(message => message.invokeOnSend())\n }\n\n invokeOnCancel() {\n this.interceptors.forEach(interceptor => interceptor.onCancel())\n }\n\n invokeOnFailure({ error }) {\n this.interceptors.forEach(interceptor => interceptor.onFailure({ error }))\n\n this.messages.forEach(message => message.invokeOnFailure(error))\n }\n\n invokeOnResponse({ response }) {\n this.interceptors.forEach(interceptor => interceptor.onResponse({ response }))\n }\n\n invokeOnStream({ response }) {\n this.interceptors.forEach(interceptor => interceptor.onStream({ response }))\n }\n\n invokeOnParsed({ response, body }) {\n this.interceptors.forEach(interceptor => interceptor.onParsed({ response, body }))\n }\n\n\n invokeOnRedirect({ url, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onRedirect({ url, preventDefault }))\n }\n\n invokeOnDump({ html, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onDump({ html, preventDefault }))\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onError({ response, body, preventDefault }))\n\n this.messages.forEach(message => message.invokeOnError({ response, body, preventDefault }))\n }\n\n invokeOnSuccess({ response, body, json }) {\n this.interceptors.forEach(interceptor => interceptor.onSuccess({ response, body, json }))\n }\n\n invokeOnFinish() {\n this.interceptors.forEach(interceptor => interceptor.onFinish())\n }\n}\n\nexport class PageRequest {\n controller = new AbortController()\n\n constructor(uri) {\n this.uri = uri\n }\n\n cancel() {\n this.controller.abort()\n }\n\n isCancelled() {\n return this.controller.signal.aborted\n }\n}\n", "import { WeakBag } from \"@/utils\"\n\nexport class MessageInterceptor {\n onSend = () => {}\n onCancel = () => {}\n onFailure = () => {}\n onError = () => {}\n onStream = () => {}\n onSuccess = () => {}\n onSkipped = () => {}\n onFinish = () => {}\n onSync = () => {}\n onEffect = () => {}\n onMorph = async () => {}\n onRender = () => {}\n\n constructor(message, callback) {\n this.message = message\n this.callback = callback\n\n this.callback({\n message: this.message,\n cancel: () => {\n // If we're not yet attached to the message's interceptors,\n // call our own onCancel since message.invokeOnCancel() won't reach us\n let attachedToMessage = this.message.getInterceptors().includes(this)\n\n if (!attachedToMessage) {\n this.onCancel()\n }\n\n this.message.cancel()\n },\n onSend: (callback) => this.onSend = callback,\n onCancel: (callback) => this.onCancel = callback,\n onFailure: (callback) => this.onFailure = callback,\n onError: (callback) => this.onError = callback,\n onStream: (callback) => this.onStream = callback,\n onSuccess: (callback) => this.onSuccess = callback,\n onSkipped: (callback) => this.onSkipped = callback,\n onFinish: (callback) => this.onFinish = callback,\n })\n }\n\n init() {\n // Reserved for future use\n }\n}\n\nexport class RequestInterceptor {\n onSend = () => {}\n onCancel = () => {}\n onFailure = () => {}\n onResponse = () => {}\n onParsed = () => {}\n onError = () => {}\n onStream = () => {}\n onRedirect = () => {}\n onDump = () => {}\n onSuccess = () => {}\n onFinish = () => {}\n\n constructor(request, callback) {\n this.request = request\n this.callback = callback\n\n this.callback({\n request: this.request,\n onSend: (callback) => this.onSend = callback,\n onCancel: (callback) => this.onCancel = callback,\n onFailure: (callback) => this.onFailure = callback,\n onResponse: (callback) => this.onResponse = callback,\n onParsed: (callback) => this.onParsed = callback,\n onError: (callback) => this.onError = callback,\n onStream: (callback) => this.onStream = callback,\n onRedirect: (callback) => this.onRedirect = callback,\n onDump: (callback) => this.onDump = callback,\n onSuccess: (callback) => this.onSuccess = callback,\n onFinish: (callback) => this.onFinish = callback,\n })\n }\n\n init() {\n // Reserved for future use\n }\n}\n\nexport class InterceptorRegistry {\n messageInterceptorCallbacks = []\n messageInterceptorCallbacksByComponent = new WeakBag\n requestInterceptorCallbacks = []\n\n addInterceptor(component, callback) {\n this.messageInterceptorCallbacksByComponent.add(component, callback)\n\n return () => {\n this.messageInterceptorCallbacksByComponent.delete(component, callback)\n }\n }\n\n addMessageInterceptor(callback) {\n this.messageInterceptorCallbacks.push(callback)\n\n return () => {\n this.messageInterceptorCallbacks.splice(this.messageInterceptorCallbacks.indexOf(callback), 1)\n }\n }\n\n addRequestInterceptor(callback) {\n this.requestInterceptorCallbacks.push(callback)\n\n return () => {\n this.requestInterceptorCallbacks.splice(this.requestInterceptorCallbacks.indexOf(callback), 1)\n }\n }\n\n getMessageInterceptors(message) {\n let callbacks = [\n ...this.messageInterceptorCallbacksByComponent.get(message.component),\n ...this.messageInterceptorCallbacks,\n ]\n\n return callbacks.map(callback => {\n return new MessageInterceptor(message, callback)\n })\n }\n\n getRequestInterceptors(request) {\n return this.requestInterceptorCallbacks.map(callback => {\n return new RequestInterceptor(request, callback)\n })\n }\n}", "\n// This code and concept is all Jonathan Reinink - thanks man!\nexport function showHtmlModal(html) {\n let page = document.createElement('html')\n page.innerHTML = html\n page.querySelectorAll('a').forEach(a =>\n a.setAttribute('target', '_top')\n )\n\n let modal = document.getElementById('livewire-error')\n\n if (typeof modal != 'undefined' && modal != null) {\n // Modal already exists.\n modal.innerHTML = ''\n } else {\n modal = document.createElement('dialog')\n modal.id = 'livewire-error'\n modal.style.margin = '50px'\n modal.style.width = 'calc(100% - 100px)'\n modal.style.height = 'calc(100% - 100px)'\n modal.style.borderRadius = '5px'\n modal.style.padding = '0px'\n // Background color is set on the ::backdrop in Livewire's styles...\n }\n\n let iframe = document.createElement('iframe')\n iframe.style.backgroundColor = '#17161A'\n iframe.style.borderRadius = '5px'\n iframe.style.width = '100%'\n iframe.style.height = '100%'\n modal.appendChild(iframe)\n\n document.body.prepend(modal)\n document.body.style.overflow = 'hidden'\n iframe.contentWindow.document.open()\n iframe.contentWindow.document.write(page.outerHTML)\n iframe.contentWindow.document.close()\n\n // Close on click...\n modal.addEventListener('click', () => hideHtmlModal(modal))\n\n // Clean up on dialog close. This ensures that the modal dialog captures the escape\n // event first, so that dialog elements below it do not capture the event, before\n // we clean up and remove the modal from the DOM...\n modal.addEventListener('close', () => cleanupModal(modal))\n\n // Show the modal and focus it to ensure that the escape key works, otherwise it'll \n // be captured by the iframe, then blur so the modal focus ring isn't visible...\n modal.showModal()\n modal.focus()\n modal.blur()\n}\n\n// We don't want to clean up in here anymore because we're using the close \n// event to trigger the cleanup. This function is kept here to maintain \n// backwards compatibility as it is an exported function...\nexport function hideHtmlModal(modal) {\n modal.close()\n}\n\nfunction cleanupModal(modal) {\n modal.outerHTML = ''\n document.body.style.overflow = 'visible'\n}\n", "\nlet componentSymbols = new WeakMap\nlet componentIslandSymbols = new WeakMap\n\nexport function scopeSymbolFromMessage(message) {\n let component = message.component\n\n let hasAllIslands = Array.from(message.actions).every(action => action.metadata.island)\n\n if (hasAllIslands) {\n let islandName = Array.from(message.actions).map(action => action.metadata.island.name).sort().join('|')\n\n let islandSymbols = componentIslandSymbols.get(component)\n\n if (! islandSymbols) {\n islandSymbols = { [islandName]: Symbol() }\n\n componentIslandSymbols.set(component, islandSymbols)\n }\n\n if (! islandSymbols[islandName]) {\n islandSymbols[islandName] = Symbol()\n }\n\n return islandSymbols[islandName]\n }\n\n if (! componentSymbols.has(component)) {\n componentSymbols.set(component, Symbol())\n }\n\n return componentSymbols.get(component)\n}\n\nexport function scopeSymbolFromAction(action) {\n let component = action.component\n\n let isIsland = !! action.metadata.island\n\n if (isIsland) {\n let islandName = action.metadata.island.name\n\n let islandSymbols = componentIslandSymbols.get(component)\n\n if (! islandSymbols) {\n islandSymbols = { [islandName]: Symbol() }\n\n componentIslandSymbols.set(component, islandSymbols)\n }\n\n if (! islandSymbols[islandName]) {\n islandSymbols[islandName] = Symbol()\n }\n\n return islandSymbols[islandName]\n }\n\n if (! componentSymbols.has(component)) {\n componentSymbols.set(component, Symbol())\n }\n\n return componentSymbols.get(component)\n}\n\nexport class MessageBus {\n pendingMessages = new Set\n activeMessages = new Set\n bufferingMessages = new Set\n\n constructor() {\n //\n }\n\n messageBuffer(message, callback) {\n if (this.bufferingMessages.has(message)) {\n return\n }\n\n this.bufferingMessages.add(message)\n\n setTimeout(() => { // Buffer for 5ms to allow other areas of the codebase to hook into the lifecycle of an individual commit...\n callback()\n\n this.bufferingMessages.delete(message)\n }, 5)\n }\n\n addPendingMessage(message) {\n this.pendingMessages.add(message)\n }\n\n clearPendingMessages() {\n this.pendingMessages.clear()\n }\n\n getPendingMessages() {\n return Array.from(this.pendingMessages)\n }\n\n addActiveMessage(message) {\n this.activeMessages.add(message)\n }\n\n removeActiveMessage(message) {\n this.activeMessages.delete(message)\n }\n\n findScopedPendingMessage(action) {\n if (action.isAsync()) return null\n\n let actionScope = scopeSymbolFromAction(action)\n\n return Array.from(this.pendingMessages).find(message => {\n if (message.component !== action.component) return false\n\n // Check if any action in the message has the same scope\n return Array.from(message.actions).some(existingAction =>\n scopeSymbolFromAction(existingAction) === actionScope\n )\n })\n }\n\n activeMessageMatchingScope(action) {\n return Array.from(this.activeMessages).find(message => this.matchesScope(message, action))\n }\n\n matchesScope(message, action) {\n return message.scope === scopeSymbolFromAction(action)\n }\n\n allScopedMessages(action) {\n return [...Array.from(this.activeMessages), ...Array.from(this.pendingMessages)].filter(message => {\n return this.matchesScope(message, action)\n })\n }\n\n eachPendingMessage(callback) {\n Array.from(this.pendingMessages).forEach(callback)\n }\n}", "import { MessageInterceptor } from \"./interceptor\"\n\nexport default class Message {\n actions = new Set()\n snapshot = null\n updates = null\n calls = null\n payload = null\n responsePayload = null\n pendingReturns = []\n pendingReturnsMeta = {}\n interceptors = []\n cancelled = false\n skipped = false\n request = null\n _scope = null\n\n // Ensure scope isn't accessed until it's been set...\n get scope() {\n if (! this._scope) {\n throw new Error('Message scope has not been set yet')\n }\n\n return this._scope\n }\n\n set scope(scope) {\n this._scope = scope\n }\n\n constructor(component) {\n this.component = component\n }\n\n addAction(action) {\n let actionsByFingerprint = new Map()\n\n Array.from(this.actions).forEach(action => {\n actionsByFingerprint.set(action.fingerprint, action)\n })\n\n if (actionsByFingerprint.has(action.fingerprint)) {\n actionsByFingerprint.get(action.fingerprint).addSquashedAction(action)\n\n return\n }\n\n action.message = this\n this.actions.add(action)\n }\n\n removeAction(action) {\n this.actions.delete(action)\n action.message = null\n\n // If no actions remain, cancel the message\n if (this.actions.size === 0) {\n this.cancel()\n }\n }\n\n getActions() {\n return Array.from(this.actions)\n }\n\n hasActionForIsland(island) {\n return this.getActions().some(action => {\n return action.metadata.island?.name === island.metadata.name\n })\n }\n\n hasActionForComponent() {\n return this.getActions().some(action => {\n return action.metadata.island === undefined\n })\n }\n\n setInterceptors(interceptors) {\n this.interceptors = interceptors\n }\n\n addInterceptor(callback) {\n let interceptor = new MessageInterceptor(this, callback)\n\n this.interceptors.push(interceptor)\n\n interceptor.init()\n }\n\n setRequest(request) {\n this.request = request\n }\n\n getInterceptors() {\n return this.interceptors\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.invokeOnCancel()\n\n if (this.request?.hasAllCancelledMessages()) {\n this.request.cancel()\n }\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n markSkipped() {\n this.skipped = true\n }\n\n isSkipped() {\n return this.skipped\n }\n\n isAsync() {\n return Array.from(this.actions).every(action => action.isAsync())\n }\n\n /**\n * Lifecycle methods...\n */\n\n invokeOnSend() {\n this.interceptors.forEach(interceptor => interceptor.onSend({\n payload: this.payload\n }))\n\n // Invoke action-level onSend callbacks\n Array.from(this.actions).forEach((action, index) => {\n let call = this.calls[index]\n action.invokeOnSend({ call })\n })\n }\n\n invokeOnCancel() {\n this.interceptors.forEach(interceptor => interceptor.onCancel())\n\n this.rejectActionPromises({ status: null, body: null, json: null, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnFailure(error) {\n this.interceptors.forEach(interceptor => interceptor.onFailure({ error }))\n\n // Invoke action-level onFailure callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFailure({ error }))\n\n this.rejectActionPromises({ status: null, body: null, json: null, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onError({\n response,\n body,\n preventDefault\n }))\n\n // Invoke action-level onError callbacks\n Array.from(this.actions).forEach(action => action.invokeOnError({ response, body, preventDefault }))\n\n // Try to parse body as JSON for the rejection payload\n let json = null\n try { json = JSON.parse(body) } catch (e) {}\n\n this.rejectActionPromises({ status: response.status, body, json, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnStream({ json }) {\n this.interceptors.forEach(interceptor => interceptor.onStream({ json }))\n }\n\n invokeOnSuccess() {\n this.interceptors.forEach(interceptor => {\n interceptor.onSuccess({\n payload: this.responsePayload,\n onSync: callback => interceptor.onSync = callback,\n onEffect: callback => interceptor.onEffect = callback,\n onMorph: callback => interceptor.onMorph = callback,\n onRender: callback => interceptor.onRender = callback\n })\n })\n\n // Store returns for later resolution (after morph)\n this.pendingReturns = this.responsePayload.effects['returns'] || []\n this.pendingReturnsMeta = this.responsePayload.effects['returnsMeta'] || {}\n }\n\n invokeOnSync() {\n this.interceptors.forEach(interceptor => interceptor.onSync())\n }\n\n invokeOnEffect() {\n this.interceptors.forEach(interceptor => interceptor.onEffect())\n }\n\n async invokeOnMorph() {\n await Promise.all(\n this.interceptors.map(interceptor => interceptor.onMorph())\n )\n }\n\n invokeOnRender() {\n this.interceptors.forEach(interceptor => interceptor.onRender())\n }\n\n invokeOnFinish() {\n this.interceptors.forEach(interceptor => interceptor.onFinish())\n }\n\n invokeOnSkipped() {\n this.interceptors.forEach(interceptor => interceptor.onSkipped())\n\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n }\n\n rejectActionPromises({ status, body, json, errors }) {\n Array.from(this.actions).forEach(action => {\n action.rejectPromise({ status, body, json, errors })\n })\n }\n\n resolveActionPromises(returns, returnsMeta) {\n let resolvedActions = new Set()\n\n returns.forEach((value, index) => {\n let action = Array.from(this.actions)[index]\n\n if (! action) return;\n\n // Check for errors in returnsMeta\n let meta = returnsMeta[index]\n if (meta?.errors) {\n action.rejectPromise({ status: 422, body: null, json: null, errors: meta.errors })\n action.invokeOnFinish()\n resolvedActions.add(action)\n return\n }\n\n if (meta?.status) {\n action.rejectPromise({ status: meta.status, body: null, json: null, errors: null })\n action.invokeOnFinish()\n resolvedActions.add(action)\n return\n }\n\n // Invoke action-level onSuccess callback with the return value\n action.invokeOnSuccess(value)\n\n action.resolvePromise(value)\n\n // Invoke action-level onFinish callback\n action.invokeOnFinish()\n\n resolvedActions.add(action)\n })\n\n Array.from(this.actions).forEach(action => {\n if (resolvedActions.has(action)) return\n\n // Invoke action-level onSuccess callback (undefined return)\n action.invokeOnSuccess(undefined)\n\n action.resolvePromise()\n\n // Invoke action-level onFinish callback\n action.invokeOnFinish()\n })\n }\n}\n", "\nexport default class Action {\n squashedActions = new Set()\n\n // Interceptor callbacks\n onSendCallbacks = []\n onCancelCallbacks = []\n onSuccessCallbacks = []\n onErrorCallbacks = []\n onFailureCallbacks = []\n onFinishCallbacks = []\n\n // Reference to the message this action belongs to (set by message.addAction)\n message = null\n cancelled = false\n deferred = false\n\n // Set by constructAction() to avoid circular dependency\n _fire = null\n\n constructor(component, name, params = [], metadata = {}, origin = null) {\n this.component = component\n this.name = name\n this.params = params\n this.metadata = metadata\n this.origin = origin\n\n this.promise = new Promise((resolve, reject) => {\n this.promiseResolution = { resolve, reject }\n })\n\n this.promise._livewireAction = this\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.invokeOnCancel()\n this.invokeOnFinish()\n this.rejectPromise({ status: null, body: null, json: null, errors: null })\n\n // Also cancel squashed actions\n this.squashedActions.forEach(action => action.cancel())\n\n // Remove from message if attached\n if (this.message) {\n this.message.removeAction(this)\n }\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n defer() {\n this.deferred = true\n }\n\n isDeferred() {\n return this.deferred\n }\n\n fire() {\n if (this._fire) {\n this._fire(this)\n }\n }\n\n get fingerprint() {\n let componentId = this.component.id\n let name = this.name\n let params = JSON.stringify(this.params)\n let metadata = JSON.stringify(this.metadata)\n\n // btoa only supports Latin-1 characters, not UTF-8, so we need to encode the string first...\n let bytes = new TextEncoder().encode(componentId + name + params + metadata)\n\n // Process in chunks to avoid \"Maximum call stack size exceeded\" with large payloads\n // (e.g., 300KB+ base64 images). The spread operator in String.fromCharCode(...array)\n // fails when array length exceeds JS engine's argument limit (~125k elements).\n let binary = ''\n let chunkSize = 8192\n for (let i = 0; i < bytes.length; i += chunkSize) {\n binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize))\n }\n\n return window.btoa(binary)\n }\n\n isAsync() {\n let asyncMethods = this.component.snapshot.memo?.async || []\n\n let methodIsMarkedAsync = asyncMethods.includes(this.name)\n\n let actionIsAsync = this.origin?.directive?.modifiers.includes('async') || (!! this.metadata.async)\n\n return methodIsMarkedAsync || actionIsAsync\n }\n\n isJson() {\n let jsonMethods = this.component.snapshot.memo?.json || []\n\n return jsonMethods.includes(this.name)\n }\n\n addInterceptor(callback) {\n callback({\n action: this,\n onSend: (cb) => this.onSendCallbacks.push(cb),\n onCancel: (cb) => this.onCancelCallbacks.push(cb),\n onSuccess: (cb) => this.onSuccessCallbacks.push(cb),\n onError: (cb) => this.onErrorCallbacks.push(cb),\n onFailure: (cb) => this.onFailureCallbacks.push(cb),\n onFinish: (cb) => this.onFinishCallbacks.push(cb),\n })\n }\n\n // Lifecycle invocations\n invokeOnSend({ call }) {\n this.onSendCallbacks.forEach(cb => cb({ call }))\n this.squashedActions.forEach(action => action.invokeOnSend({ call }))\n }\n\n invokeOnCancel() {\n this.onCancelCallbacks.forEach(cb => cb())\n this.squashedActions.forEach(action => action.invokeOnCancel())\n }\n\n invokeOnSuccess(result) {\n this.onSuccessCallbacks.forEach(cb => cb(result))\n this.squashedActions.forEach(action => action.invokeOnSuccess(result))\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.onErrorCallbacks.forEach(cb => cb({ response, body, preventDefault }))\n this.squashedActions.forEach(action => action.invokeOnError({ response, body, preventDefault }))\n }\n\n invokeOnFailure({ error }) {\n this.onFailureCallbacks.forEach(cb => cb({ error }))\n this.squashedActions.forEach(action => action.invokeOnFailure({ error }))\n }\n\n invokeOnFinish() {\n this.onFinishCallbacks.forEach(cb => cb())\n this.squashedActions.forEach(action => action.invokeOnFinish())\n }\n\n mergeMetadata(metadata) {\n this.metadata = { ...this.metadata, ...metadata }\n }\n\n rejectPromise(error) {\n this.squashedActions.forEach(action => action.rejectPromise(error))\n\n this.promiseResolution.reject(error)\n }\n\n addSquashedAction(action) {\n this.squashedActions.add(action)\n }\n\n resolvePromise(value) {\n this.squashedActions.forEach(action => action.resolvePromise(value))\n this.promiseResolution.resolve(value)\n }\n}\n", "import { trigger } from '@/hooks.js'\n\nexport function registerLegacyEventSupport(interceptRequest, interceptMessage) {\n\n// Support legacy 'request' event...\ninterceptRequest(({\n request,\n onFailure,\n onResponse,\n onError,\n onSuccess,\n}) => {\n let respondCallbacks = []\n let succeedCallbacks = []\n let failCallbacks = []\n\n trigger('request', {\n url: request.uri,\n options: request.options,\n payload: request.options.body,\n respond: i => respondCallbacks.push(i),\n succeed: i => succeedCallbacks.push(i),\n fail: i => failCallbacks.push(i),\n })\n\n onResponse(({ response }) => {\n respondCallbacks.forEach(callback => callback({\n status: response.status,\n response,\n }))\n })\n\n onSuccess(({ response, json }) => {\n succeedCallbacks.forEach(callback => callback({\n status: response.status,\n json,\n }))\n })\n\n onFailure(({ error }) => {\n failCallbacks.forEach(callback => callback({\n status: 503,\n content: null,\n preventDefault: () => {},\n }))\n })\n\n onError(({ response, body, preventDefault }) => {\n failCallbacks.forEach(callback => callback({\n status: response.status,\n content: body,\n preventDefault,\n }))\n })\n})\n\n// Support legacy 'commit' event...\ninterceptMessage(({\n message,\n onCancel,\n onError,\n onSuccess,\n onFinish,\n}) => {\n // Allow other areas of the codebase to hook into the lifecycle\n // of an individual commit...\n let respondCallbacks = []\n let succeedCallbacks = []\n let failCallbacks = []\n\n trigger('commit', {\n component: message.component,\n commit: message.payload,\n respond: (callback) => {\n respondCallbacks.push(callback)\n },\n succeed: (callback) => {\n succeedCallbacks.push(callback)\n },\n fail: (callback) => {\n failCallbacks.push(callback)\n },\n })\n\n onFinish(() => {\n respondCallbacks.forEach(callback => callback())\n })\n\n onSuccess(({ payload, onSync, onMorph, onRender }) => {\n onRender(() => {\n succeedCallbacks.forEach(callback => callback({\n snapshot: payload.snapshot,\n effects: payload.effects,\n }))\n })\n })\n\n onError(() => {\n failCallbacks.forEach(callback => callback())\n })\n\n onCancel(() => {\n failCallbacks.forEach(callback => callback())\n })\n})\n\n}\n", "import { getCsrfToken, contentIsFromDump, splitDumpFromContent, getUpdateUri } from '@/utils'\nimport { coordinateNetworkInteractions } from './interactions.js'\nimport { MessageRequest, PageRequest } from './request.js'\nimport { InterceptorRegistry } from './interceptor.js'\nimport { trigger, triggerAsync } from '@/hooks.js'\nimport { showHtmlModal } from '@/utils/modal.js'\nimport { MessageBus, scopeSymbolFromMessage } from './messageBus.js'\nimport Message from './message.js'\nimport Action from './action.js'\n\nlet outstandingActionOrigin = null\nlet outstandingActionMetadata = {}\nlet outstandingActionInterceptors = []\nlet interceptors = new InterceptorRegistry\nlet messageBus = new MessageBus()\nlet actionInterceptors = []\nlet partitionInterceptors = []\nlet sessionExpired = false\n\nexport function sessionIsExpired() {\n return sessionExpired\n}\n\nexport function setNextActionOrigin(origin) {\n outstandingActionOrigin = origin\n}\n\nexport function setNextActionMetadata(metadata) {\n outstandingActionMetadata = metadata\n}\n\nexport function setNextActionInterceptor(callback) {\n outstandingActionInterceptors.push(callback)\n}\n\nexport function interceptAction(callback) {\n actionInterceptors.push(callback)\n\n return () => {\n actionInterceptors.splice(actionInterceptors.indexOf(callback), 1)\n }\n}\n\nexport function interceptMessage(callback) {\n return interceptors.addMessageInterceptor(callback)\n}\n\nexport function interceptRequest(callback) {\n return interceptors.addRequestInterceptor(callback)\n}\n\nexport function interceptPartition(callback) {\n partitionInterceptors.push(callback)\n\n return () => {\n partitionInterceptors.splice(partitionInterceptors.indexOf(callback), 1)\n }\n}\n\n// Component-scoped interceptors...\n\nexport function interceptComponentAction(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptAction(({ action, ...rest }) => {\n if (action.component !== component) return\n if (actionName && action.name !== actionName) return\n\n callback({ action, ...rest })\n })\n}\n\nexport function interceptComponentMessage(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptors.addInterceptor(component, ({ message, ...rest }) => {\n if (actionName) {\n let hasAction = Array.from(message.actions).some(a => a.name === actionName)\n\n if (! hasAction) return\n }\n\n callback({ message, ...rest })\n })\n}\n\nexport function interceptComponentRequest(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptRequest(({ request, ...rest }) => {\n let matchingMessages = Array.from(request.messages).filter(m => {\n if (m.component !== component) return false\n\n if (actionName) {\n return Array.from(m.actions).some(a => a.name === actionName)\n }\n\n return true\n })\n\n if (matchingMessages.length === 0) return\n\n callback({ request, ...rest })\n })\n}\n\ninterceptMessage(({ message, onFinish }) => {\n messageBus.addActiveMessage(message)\n\n onFinish(() => messageBus.removeActiveMessage(message))\n})\n\n// Ensure that other parts of the codebase are able to intercept actions before the default handling...\nqueueMicrotask(() => {\n coordinateNetworkInteractions(messageBus)\n})\n\nexport function fireAction(component, method, params = [], metadata = {}) {\n if (component.__isWireProxy) component = component.__instance\n\n let action = constructAction(component, method, params, metadata)\n\n actionInterceptors.forEach(callback => {\n callback({\n action,\n onSend: (cb) => action.onSendCallbacks.push(cb),\n onCancel: (cb) => action.onCancelCallbacks.push(cb),\n onSuccess: (cb) => action.onSuccessCallbacks.push(cb),\n onError: (cb) => action.onErrorCallbacks.push(cb),\n onFailure: (cb) => action.onFailureCallbacks.push(cb),\n onFinish: (cb) => action.onFinishCallbacks.push(cb),\n })\n })\n\n if (action.isCancelled() || action.isDeferred()) return action.promise\n\n return fireActionInstance(action)\n}\n\nexport function constructAction(component, method, params, metadata) {\n let origin = outstandingActionOrigin\n let pendingInterceptors = outstandingActionInterceptors\n\n outstandingActionOrigin = null\n outstandingActionInterceptors = []\n\n metadata = {\n ...metadata,\n ...outstandingActionMetadata,\n }\n\n outstandingActionMetadata = {}\n\n let action = new Action(component, method, params, metadata, origin)\n\n // Set fire function to avoid circular dependency\n action._fire = fireActionInstance\n\n // Attach any per-action interceptors (from event.detail.livewire.interceptAction)\n pendingInterceptors.forEach(callback => action.addInterceptor(callback))\n\n return action\n}\n\nexport function fireActionInstance(action) {\n let message = createOrAddToOutstandingMessage(action)\n\n messageBus.messageBuffer(message, () => {\n sendMessages()\n })\n\n return action.promise\n}\n\nexport function createOrAddToOutstandingMessage(action) {\n let message = messageBus.findScopedPendingMessage(action)\n\n if (! message) message = new Message(action.component)\n\n message.addAction(action)\n\n messageBus.addPendingMessage(message)\n\n return message\n}\n\nfunction sendMessages() {\n let requests = new Set()\n\n messageBus.eachPendingMessage(message => {\n partitionInterceptors.forEach(callback => {\n callback({\n message,\n compileRequest: (messages) => {\n // When multiple components in a hierarchy listen to the same event and one\n // has a modelable child, the partition interceptor may try to bundle the\n // same child message into multiple requests. For example: Parent and Child\n // both listen to 'foo', and Child has a modelable grandchild. Parent's\n // interceptor bundles [Parent, Grandchild] into Request 1. Then Child's\n // interceptor tries to bundle [Child, Grandchild], but Grandchild is already\n // in Request 1. Rather than throwing an error, we merge Child into Request 1\n // so all related components are sent together, maintaining data consistency.\n let existingRequest = Array.from(requests).find(request =>\n messages.some(message => request.messages.has(message))\n )\n\n if (existingRequest) {\n // Add any new messages to the existing request\n messages.forEach(message => {\n if (!existingRequest.messages.has(message)) {\n existingRequest.addMessage(message)\n }\n })\n return existingRequest\n }\n\n // No overlap, create a new request\n let request = new MessageRequest()\n\n messages.forEach(message => request.addMessage(message))\n\n requests.add(request)\n\n return request\n },\n })\n })\n })\n\n let messages = messageBus.getPendingMessages()\n\n messageBus.clearPendingMessages()\n\n for (let message of messages) {\n if (Array.from(requests).some(request => request.messages.has(message))) {\n continue\n }\n\n let hasFoundRequest = false\n\n requests.forEach(request => {\n if (! hasFoundRequest) {\n // Don't add to a request that already has a message for the same component\n let hasMessageForSameComponent = Array.from(request.messages).some(m => m.component === message.component)\n\n if (hasMessageForSameComponent) return\n\n request.addMessage(message)\n\n hasFoundRequest = true\n }\n })\n\n if (! hasFoundRequest) {\n let request = new MessageRequest()\n\n request.addMessage(message)\n\n requests.add(request)\n }\n }\n\n requests.forEach(request => {\n request.messages.forEach(message => {\n message.snapshot = message.component.getEncodedSnapshotWithLatestChildrenMergedIn()\n message.updates = message.component.getUpdates()\n message.calls = Array.from(message.actions).map(i => ({\n method: i.name,\n params: i.params,\n metadata: i.metadata,\n }))\n\n message.payload = {\n snapshot: message.snapshot,\n updates: message.updates,\n calls: message.calls,\n }\n })\n })\n\n // Assign scope symbols to messages...\n requests.forEach(request => {\n request.messages.forEach(message => {\n message.scope = scopeSymbolFromMessage(message)\n })\n })\n\n requests.forEach(request => {\n request.uri = getUpdateUri()\n\n Object.defineProperty(request, 'payload', {\n get() {\n return {\n _token: getCsrfToken(),\n components: Array.from(request.messages, i => i.payload)\n }\n }\n })\n\n let cachedOptions = null\n\n Object.defineProperty(request, 'options', {\n get() {\n if (cachedOptions) return cachedOptions\n\n cachedOptions = {\n method: 'POST',\n body: JSON.stringify(request.payload),\n headers: {\n 'Content-type': 'application/json',\n 'X-Livewire': '1', // This '1' value means nothing, but it stops Cloudflare from stripping the header...\n },\n signal: request.controller.signal,\n }\n\n return cachedOptions\n }\n })\n })\n\n requests.forEach(request => {\n request.initInterceptors(interceptors)\n\n if (request.hasAllCancelledMessages()) {\n request.cancel()\n }\n\n sendRequest(request, {\n send: ({ responsePromise }) => {\n request.invokeOnSend({ responsePromise })\n },\n failure: ({ error }) => {\n request.invokeOnFailure({ error })\n },\n finish: () => {\n request.invokeOnFinish()\n },\n response: ({ response }) => {\n request.invokeOnResponse({ response })\n },\n stream: async ({ response }) => {\n request.invokeOnStream({ response })\n\n let finalResponse = ''\n\n try {\n finalResponse = await interceptStreamAndReturnFinalResponse(response, json => {\n let componentId = json.id\n\n request.messages.forEach(message => {\n if (message.component.id === componentId) {\n message.invokeOnStream({ json })\n }\n })\n\n trigger('stream', json)\n })\n } catch (e) {\n request.cancel()\n\n throw e\n }\n\n return finalResponse\n },\n parsed: ({ response, responseBody }) => {\n request.invokeOnParsed({ response, body: responseBody })\n },\n error: ({ response, responseBody }) => {\n let preventDefault = false\n\n request.invokeOnError({ response, body: responseBody, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n if (response.status === 419) {\n if (sessionExpired) return\n\n sessionExpired = true\n\n confirm(\n 'This page has expired.\\nWould you like to refresh the page?'\n ) && window.location.reload()\n\n return\n }\n\n if (response.aborted) return\n\n showHtmlModal(responseBody)\n },\n redirect: (url) => {\n let preventDefault = false\n\n request.invokeOnRedirect({ url, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n window.location.href = url\n },\n dump: (html) => {\n let preventDefault = false\n\n request.invokeOnDump({ html, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n showHtmlModal(html)\n },\n success: async ({ response, responseBody, responseJson }) => {\n request.invokeOnSuccess({ response, body: responseBody, json: responseJson })\n\n await triggerAsync('payload.intercept', responseJson)\n\n let messageResponsePayloads = responseJson.components\n\n request.messages.forEach(message => {\n messageResponsePayloads.forEach(payload => {\n if (message.isCancelled()) return\n\n // Server skipped this child (unchanged reactive props)...\n if (payload.skip) {\n if (payload.id === message.component.id) {\n message.responsePayload = payload\n message.markSkipped()\n message.invokeOnSkipped()\n message.resolveActionPromises([], [])\n message.invokeOnFinish()\n }\n\n return\n }\n\n let { snapshot: snapshotEncoded, effects } = payload\n let snapshot = JSON.parse(snapshotEncoded)\n\n if (snapshot.memo.id === message.component.id) {\n message.responsePayload = { snapshot, effects }\n\n message.invokeOnSuccess()\n if (message.isCancelled()) return\n\n // Use Alpine.transaction to batch data updates and DOM morphing\n // This prevents effects from firing before the morph cleanup runs\n Alpine.transaction(async () => {\n message.component.mergeNewSnapshot(snapshotEncoded, effects, message.updates)\n\n message.invokeOnSync()\n if (message.isCancelled()) return\n\n // Trigger any side effects from the payload like \"morph\" and \"dispatch event\"...\n message.component.processEffects(effects, request)\n\n message.invokeOnEffect()\n if (message.isCancelled()) return\n\n await message.invokeOnMorph()\n }).then(() => {\n // Resolve promises & finish AFTER morph completes\n if (! message.isCancelled()) {\n message.resolveActionPromises(\n message.pendingReturns,\n message.pendingReturnsMeta\n )\n message.invokeOnFinish()\n }\n\n requestAnimationFrame(() => {\n if (message.isCancelled()) return\n\n message.invokeOnRender()\n })\n })\n }\n })\n })\n },\n })\n })\n}\n\nasync function sendRequest(request, handlers) {\n let response\n\n try {\n if (request.isCancelled()) return\n\n let responsePromise = fetch(request.uri, request.options)\n\n if (request.isCancelled()) return\n handlers.send({ responsePromise })\n\n response = await responsePromise\n } catch (e) {\n if (request.isCancelled()) return\n\n handlers.failure({ error: e })\n handlers.finish()\n\n return\n }\n\n handlers.response({ response })\n\n let responseBody = null\n\n if (response.headers.has('X-Livewire-Stream')) {\n responseBody = await handlers.stream({ response })\n } else {\n responseBody = await response.text()\n }\n\n if (request.isCancelled()) return\n\n handlers.parsed({ response, responseBody })\n\n // Handle error response...\n if (! response.ok) {\n handlers.error({ response, responseBody })\n handlers.finish()\n\n return\n }\n\n if (response.redirected) {\n handlers.redirect(response.url)\n }\n\n /**\n * Sometimes a response will be prepended with html to render a dump, so we\n * will separate the dump html from Livewire's JSON response content and\n * render the dump in a modal and allow Livewire to continue with the\n * request.\n */\n if (contentIsFromDump(responseBody)) {\n let dump\n\n [dump, responseBody] = splitDumpFromContent(responseBody)\n\n handlers.dump(dump)\n }\n\n let responseJson = null\n\n try {\n responseJson = JSON.parse(responseBody)\n } catch (e) {\n console.error(e)\n\n // When a stream is started, the headers are already sent,\n // so if an error occurs, the responseBody won't be JSON,\n // and we can treat it like an error response...\n handlers.error({ response, responseBody })\n handlers.finish()\n\n return\n }\n\n handlers.success({ response, responseBody, responseJson })\n handlers.finish()\n}\n\nasync function interceptStreamAndReturnFinalResponse(response, callback) {\n let reader = response.body.getReader()\n let remainingResponse = ''\n\n while (true) {\n let { done, value: chunk } = await reader.read()\n\n let decoder = new TextDecoder\n let output = decoder.decode(chunk)\n\n let [ streams, remaining ] = extractStreamObjects(remainingResponse + output)\n\n streams.forEach(stream => {\n callback(stream)\n })\n\n remainingResponse = remaining\n\n if (done) return remainingResponse\n }\n}\n\nfunction extractStreamObjects(raw) {\n let regex = /({\"stream\":true.*?\"endStream\":true})/g\n\n let matches = raw.match(regex)\n\n let parsed = []\n\n if (matches) {\n for (let i = 0; i < matches.length; i++) {\n parsed.push(JSON.parse(matches[i]).body)\n }\n }\n\n let remaining = raw.replace(regex, '');\n\n return [ parsed, remaining ];\n}\n\nexport async function sendNavigateRequest(uri, callback, errorCallback) {\n let request = new PageRequest(uri)\n\n let options = {\n // method: 'GET',\n headers: {\n 'X-Livewire-Navigate': '1', // This '1' value means nothing, but it stops Cloudflare from stripping the header...\n },\n signal: request.controller.signal,\n }\n\n trigger('navigate.request', {\n uri,\n options,\n })\n\n let response\n\n try {\n response = await fetch(uri, options)\n\n let destination = getDestination(uri, response)\n\n let html = await response.text()\n\n let status = response.status\n\n callback(html, destination, status)\n } catch (error) {\n errorCallback(error)\n\n throw error\n }\n}\n\nfunction getDestination(uri, response) {\n let destination = createUrlObjectFromString(uri)\n let finalDestination = createUrlObjectFromString(response.url)\n\n // If there was no redirect triggered by the URL that was fetched...\n if ((destination.pathname + destination.search) === (finalDestination.pathname + finalDestination.search)) {\n // Then let's carry over any \"hash\" entries on the URL.\n // We have to do this because hashes aren't sent to\n // the server by \"fetch\", so it needs to get added\n finalDestination.hash = destination.hash\n }\n\n return finalDestination\n}\n\nfunction createUrlObjectFromString(urlString) {\n return urlString !== null && new URL(urlString, document.baseURI)\n}\n\n// Load legacy event support ('request' and 'commit' events)\nimport { registerLegacyEventSupport } from './legacy.js'\nregisterLegacyEventSupport(interceptRequest, interceptMessage)\n", "// This errors object has the most common methods from \\Illuminate\\Support\\MessageBag class on the backend...\nimport Alpine from 'alpinejs'\n\nexport function getErrorsObject(component) {\n let state = component.__errorsState ??= Alpine.reactive({\n clientErrors: null,\n })\n\n // Store lastSnapshot outside reactive state to avoid Proxy wrapping breaking identity comparison...\n component.__lastErrorsSnapshot ??= component.snapshot\n\n return {\n messages() {\n // If the snapshot changed (server responded), reset client overrides...\n if (component.__lastErrorsSnapshot !== component.snapshot) {\n state.clientErrors = null\n component.__lastErrorsSnapshot = component.snapshot\n }\n\n // Assign into reactive state so Alpine can track changes...\n return state.clientErrors ??= component.snapshot.memo.errors\n },\n\n keys() {\n return Object.keys(this.messages())\n },\n\n has(...keys) {\n if (this.isEmpty()) return false\n\n if (keys.length === 0 || (keys.length === 1 && keys[0] == null)) return this.any()\n\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n for (let key of keys) {\n if (this.first(key) === '') return false\n }\n\n return true\n },\n\n hasAny(keys) {\n if (this.isEmpty()) return false\n\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n for (let key of keys) {\n if (this.has(key)) return true\n }\n\n return false\n },\n\n missing(...keys) {\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n return ! this.hasAny(keys)\n },\n\n first(key = null) {\n let messages = key === null ? this.all() : this.get(key)\n\n let firstMessage = messages.length > 0 ? messages[0] : ''\n\n return Array.isArray(firstMessage) ? firstMessage[0] : firstMessage\n },\n\n get(key) {\n return this.messages()[key] || []\n },\n\n all() {\n return Object.values(this.messages()).flat()\n },\n\n isEmpty() {\n return ! this.any()\n },\n\n isNotEmpty() {\n return this.any()\n },\n\n any() {\n return Object.keys(this.messages()).length > 0\n },\n\n count() {\n return Object.values(this.messages()).reduce((total, array) => {\n return total + array.length;\n }, 0);\n },\n\n clear(field = null) {\n if (field === null) {\n state.clientErrors = {}\n } else {\n let errors = { ...(state.clientErrors ?? component.snapshot.memo.errors) }\n delete errors[field]\n state.clientErrors = errors\n }\n },\n }\n}\n", "\nexport function findRefEl(component, name) {\n let refEl = component.el.querySelector(`[wire\\\\:ref=\"${name}\"]`)\n\n if (! refEl) return console.error(`Ref \"${name}\" not found in component \"${component.id}\"`)\n\n return refEl\n}\n", "import { on } from './hooks'\n\nlet customDirectiveNames = new Set\n\nexport function matchesForLivewireDirective(attributeName) {\n return attributeName.match(new RegExp('wire:'))\n}\n\nexport function extractDirective(el, name) {\n let [value, ...modifiers] = name.replace(new RegExp('wire:'), '').split('.')\n\n return new Directive(value, modifiers, name, el)\n}\n\nexport function directive(name, callback) {\n // Prevent the same directive from registering multiple initialization listeners...\n if (customDirectiveNames.has(name)) return\n\n customDirectiveNames.add(name)\n\n on('directive.init', ({ el, component, directive, cleanup }) => {\n if (directive.value === name) {\n callback({\n el, directive, component, $wire: component.$wire, cleanup\n })\n }\n })\n}\n\nexport function globalDirective(name, callback) {\n // Prevent the same directive from registering multiple initialization listeners...\n if (customDirectiveNames.has(name)) return\n\n customDirectiveNames.add(name)\n\n on('directive.global.init', ({ el, directive, cleanup }) => {\n if (directive.value === name) {\n callback({ el, directive, cleanup })\n }\n })\n}\n\nexport function getDirectives(el) {\n return new DirectiveManager(el)\n}\n\nexport function customDirectiveHasBeenRegistered(name) {\n return customDirectiveNames.has(name)\n}\n\nclass DirectiveManager {\n constructor(el) {\n this.el = el\n this.directives = this.extractTypeModifiersAndValue()\n }\n\n all() {\n return this.directives\n }\n\n has(value) {\n return this.directives.map(directive => directive.value).includes(value)\n }\n\n missing(value) {\n return ! this.has(value)\n }\n\n get(value) {\n return this.directives.find(directive => directive.value === value)\n }\n\n extractTypeModifiersAndValue() {\n return Array.from(this.el.getAttributeNames()\n // Filter only the livewire directives.\n .filter(name => matchesForLivewireDirective(name))\n // Parse out the type, modifiers, and value from it.\n .map(name => extractDirective(this.el, name)))\n }\n}\n\nexport class Directive {\n constructor(value, modifiers, rawName, el) {\n this.rawName = this.raw = rawName\n this.el = el\n this.eventContext\n this.wire\n\n this.value = value\n this.modifiers = modifiers\n this.expression = this.el.getAttribute(this.rawName)\n }\n\n get method() {\n const methods = this.parseOutMethodsAndParams(this.expression)\n\n return methods[0].method\n }\n\n get methods() {\n return this.parseOutMethodsAndParams(this.expression)\n }\n\n get params() {\n const methods = this.parseOutMethodsAndParams(this.expression)\n\n return methods[0].params\n }\n\n parseOutMethodsAndParams(rawMethod) {\n let methods = []\n\n // Split methods string into individual methods and their parameters\n let parsedMethods = this.splitAndParseMethods(rawMethod)\n\n // Evaluate parameters for each method and build the methods array\n for (let { method, paramString } of parsedMethods) {\n let params = []\n\n if (paramString.length > 0) {\n function argumentsToArray() {\n for (var l=arguments.length, p=new Array(l), k=0; k<l; k++) {\n p[k] = arguments[k]\n }\n return [].concat(p)\n }\n\n try {\n params = Alpine.evaluate(\n document,\n 'argumentsToArray(' + paramString + ')',\n {\n scope: { argumentsToArray },\n },\n )\n } catch (error) {\n console.warn('Failed to parse parameters:', paramString, error)\n params = []\n }\n }\n\n methods.push({ method, params })\n }\n\n return methods\n }\n\n splitAndParseMethods(methodExpression) {\n let methods = []\n let current = ''\n let parenCount = 0\n let inString = false\n let stringChar = null\n\n let trimmedExpression = methodExpression.trim()\n\n // Parse the expression character by character, splitting on commas only at the top level\n // This handles nested parentheses and strings correctly: foo(bar(1,2), 'hello, world')\n for (let i = 0; i < trimmedExpression.length; i++) {\n let char = trimmedExpression[i]\n\n if (!inString) {\n if (char === '\"' || char === \"'\") {\n inString = true\n stringChar = char\n current += char\n } else if (char === '(') {\n parenCount++\n current += char\n } else if (char === ')') {\n parenCount--\n current += char\n } else if (char === ',' && parenCount === 0) {\n // Found a comma at the top level - parse and add this method\n methods.push(this.parseMethodCall(current.trim()))\n current = ''\n } else {\n current += char\n }\n } else {\n // Inside a string - only exit on matching quote that's not escaped\n if (char === stringChar && trimmedExpression[i-1] !== '\\\\') {\n inString = false\n stringChar = null\n }\n current += char\n }\n }\n\n // Add the last method if there's anything left\n if (current.trim().length > 0) {\n methods.push(this.parseMethodCall(current.trim()))\n }\n\n return methods\n }\n\n parseMethodCall(methodString) {\n // Find the method name - everything before the first opening parenthesis\n let methodMatch = methodString.match(/^([^(]+)\\(/)\n if (!methodMatch) {\n // No parentheses found, treat as method with no params\n return {\n method: methodString.trim(),\n paramString: ''\n }\n }\n\n let method = methodMatch[1].trim()\n let paramStart = methodMatch[0].length - 1 // Position of opening parenthesis\n\n // Since splitAndParseMethods already validated balanced parentheses,\n // we can safely find the last closing parenthesis in the string\n let lastParenIndex = methodString.lastIndexOf(')')\n if (lastParenIndex === -1) {\n throw new Error(`Missing closing parenthesis for method \"${method}\"`)\n }\n\n let paramString = methodString.slice(paramStart + 1, lastParenIndex).trim()\n\n return {\n method,\n paramString\n }\n }\n}\n", "\nexport function toggleBooleanStateDirective(el, directive, isTruthy, cachedDisplay = null) {\n isTruthy = directive.modifiers.includes('remove') ? ! isTruthy : isTruthy\n\n if (directive.modifiers.includes('class')) {\n let classes = directive.expression.split(' ').filter(String)\n\n if (isTruthy) {\n el.classList.add(...classes)\n } else {\n el.classList.remove(...classes)\n }\n } else if (directive.modifiers.includes('attr')) {\n if (isTruthy) {\n el.setAttribute(directive.expression, true)\n } else {\n el.removeAttribute(directive.expression)\n }\n } else {\n let cache = cachedDisplay ?? window\n .getComputedStyle(el, null)\n .getPropertyValue('display')\n\n let display = (['inline', 'list-item', 'block', 'table', 'flex', 'grid', 'inline-flex']\n .filter(i => directive.modifiers.includes(i))[0] || 'inline-block')\n\n // If element is to be removed, set display to its current value...\n // display = (directive.modifiers.includes('remove') && ! isTruthy)\n display = (directive.modifiers.includes('remove') && ! isTruthy)\n ? cache : display\n\n el.style.display = isTruthy ? display : 'none'\n }\n}\n", "import { directive, getDirectives } from '@/directives'\nimport { toggleBooleanStateDirective } from './shared'\nimport { dataGet, WeakBag } from '@/utils'\nimport { on } from '@/hooks'\n\nlet refreshDirtyStatesByComponent = new WeakBag\n\non('commit', ({ component, succeed }) => {\n succeed(() => {\n setTimeout(() => { // Doing a \"setTimeout\" to let morphdom do its thing first...\n refreshDirtyStatesByComponent.each(component, i => i(false))\n })\n })\n})\n\ndirective('dirty', ({ el, directive, component }) => {\n let targets = dirtyTargets(el)\n\n let oldIsDirty = false\n\n let initialDisplay = el.style.display\n\n let refreshDirtyState = (isDirty) => {\n toggleBooleanStateDirective(el, directive, isDirty, initialDisplay)\n\n oldIsDirty = isDirty\n }\n\n refreshDirtyStatesByComponent.add(component, refreshDirtyState)\n\n Alpine.effect(() => {\n let isDirty = false\n\n isDirty = checkDirty(component, targets.length === 0 ? undefined : targets)\n\n if (oldIsDirty !== isDirty) {\n refreshDirtyState(isDirty)\n }\n\n oldIsDirty = isDirty\n })\n})\n\nexport function checkDirty(component, targets) {\n let isDirty = false\n\n if (targets === undefined) {\n isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive)\n } else if (Array.isArray(targets)) {\n for (let i = 0; i < targets.length; i++) {\n if (isDirty) break;\n\n let target = targets[i]\n\n isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target))\n }\n } else {\n isDirty = JSON.stringify(dataGet(component.canonical, targets)) !== JSON.stringify(dataGet(component.reactive, targets))\n }\n\n return isDirty\n}\n\nfunction dirtyTargets(el) {\n let directives = getDirectives(el)\n let targets = []\n\n if (directives.has('model')) {\n targets.push(directives.get('model').expression)\n }\n\n if (directives.has('target')) {\n targets = targets.concat(\n directives\n .get('target')\n .expression.split(',')\n .map(s => s.trim())\n )\n }\n\n return targets\n}\n", "import { on } from '@/hooks'\nimport { getModuleUrl } from '@/utils'\n\nlet pendingComponentAssets = new WeakMap()\n\non('effect', ({ component, effects }) => {\n let scriptModuleHash = effects.scriptModule\n\n if (scriptModuleHash) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/js/${encodedName}.js?v=${scriptModuleHash}`\n\n pendingComponentAssets.set(component, Alpine.reactive({\n loading: true,\n afterLoaded: [],\n }))\n\n import(/* @vite-ignore */ path).then(module => {\n module.run.call(component.$wire, component.$wire, component.$wire.js);\n\n pendingComponentAssets.get(component).loading = false\n pendingComponentAssets.get(component).afterLoaded.forEach(callback => callback())\n pendingComponentAssets.delete(component)\n });\n }\n})\n\nexport function assetIsPendingFor(component) {\n return pendingComponentAssets.has(component) && pendingComponentAssets.get(component).loading\n}\n\nexport function runAfterAssetIsLoadedFor(component, callback) {\n if (assetIsPendingFor(component)) {\n pendingComponentAssets.get(component).afterLoaded.push(() => callback())\n } else {\n callback()\n }\n}", "import { dataSet, deepClone, diff, diffAndConsolidate, diffAndPatchRecursive, extractData} from '@/utils'\nimport { generateWireObject } from '@/$wire'\nimport { findComponentByEl, findComponent, hasComponent } from '@/store'\nimport { trigger } from '@/hooks'\nimport { setNextActionOrigin } from '@/request'\n\nexport class Component {\n constructor(el) {\n if (el.__livewire) throw 'Component already initialized';\n\n el.__livewire = this\n\n this.el = el\n\n this.id = el.getAttribute('wire:id')\n\n this.key = el.getAttribute('wire:key')\n\n this.__livewireId = this.id // @legacy\n\n this.snapshotEncoded = el.getAttribute('wire:snapshot')\n\n this.snapshot = JSON.parse(this.snapshotEncoded)\n\n if (! this.snapshot) {\n throw `Snapshot missing on Livewire component with id: ` + this.id\n }\n\n this.name = this.snapshot.memo.name\n\n this.effects = JSON.parse(el.getAttribute('wire:effects'))\n this.originalEffects = deepClone(this.effects)\n\n // \"canonical\" data represents the last known server state.\n this.canonical = extractData(deepClone(this.snapshot.data))\n // \"ephemeral\" represents the most current state. (This can be freely manipulated by end users)\n this.ephemeral = extractData(deepClone(this.snapshot.data))\n // \"reactive\" is just ephemeral, except when you mutate it, front-ends like Vue react.\n this.reactive = Alpine.reactive(this.ephemeral)\n\n this.queuedUpdates = {}\n\n this.jsActions = {}\n\n // this.$wire = this.reactive\n this.$wire = generateWireObject(this, this.reactive)\n\n // Set the $wire property on the root element...\n el.$wire = this.$wire\n\n this.cleanups = []\n\n // Effects will be processed after every request, but we'll also handle them on initialization.\n this.processEffects(this.effects)\n }\n\n addActionContext(context) {\n // New system: just set the origin for next action\n if (context.el || context.directive) {\n setNextActionOrigin({\n el: context.el,\n directive: context.directive\n })\n }\n\n // Note: Non-origin metadata should be passed directly to fireAction\n // This method is kept for backwards compatibility but simplified\n }\n\n intercept(action, callback = null) {\n return this.$wire.$intercept(action, callback)\n }\n\n mergeNewSnapshot(snapshotEncoded, effects, updates = {}) {\n let snapshot = JSON.parse(snapshotEncoded)\n\n let oldCanonical = deepClone(this.canonical)\n let updatedOldCanonical = this.applyUpdates(oldCanonical, updates)\n\n let newCanonical = extractData(deepClone(snapshot.data))\n\n let dirty = diff(updatedOldCanonical, newCanonical)\n\n this.snapshotEncoded = snapshotEncoded\n\n this.snapshot = snapshot\n\n this.effects = effects\n\n this.canonical = extractData(deepClone(snapshot.data))\n\n let newData = extractData(deepClone(snapshot.data))\n\n // Diff old vs new and patch differences onto the reactive proxy. Walks\n // the trees directly, avoiding dot-notated paths which break when\n // object keys contain dots.\n diffAndPatchRecursive(updatedOldCanonical, newData, this.reactive)\n\n return dirty\n }\n\n queueUpdate(propertyName, value) {\n // These updates will be applied first on the server\n // on the next request, then trickle back to the\n // client on the next request that gets sent.\n this.queuedUpdates[propertyName] = value\n }\n\n mergeQueuedUpdates(diff) {\n // Before adding queuedUpdates into the diff list, we will remove any diffs\n // that will be overriden by the queued update. Queued updates will take\n // priority against ephemeral updates that have happend since them...\n Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => {\n Object.entries(diff).forEach(([diffKey, diffValue]) => {\n if (diffKey.startsWith(updateKey)) {\n delete diff[diffKey]\n }\n })\n\n diff[updateKey] = updateValue\n })\n\n this.queuedUpdates = []\n\n return diff\n }\n\n getUpdates() {\n let propertiesDiff = diffAndConsolidate(this.canonical, this.ephemeral)\n\n return this.mergeQueuedUpdates(propertiesDiff)\n }\n\n applyUpdates(object, updates) {\n for (let key in updates) {\n dataSet(object, key, updates[key])\n }\n\n return object\n }\n\n replayUpdate(snapshot, html) {\n let effects = { ...this.effects, html}\n\n this.mergeNewSnapshot(JSON.stringify(snapshot), effects)\n\n this.processEffects({ html })\n }\n\n /**\n * Here we'll take the new state and side effects from the\n * server and use them to update the existing data that\n * users interact with, triggering reactive effects.\n */\n processEffects(effects, request) {\n // This is for BC.\n trigger('effects', this, effects)\n\n trigger('effect', {\n component: this,\n effects,\n cleanup: i => this.addCleanup(i),\n request,\n })\n }\n\n get children() {\n let componentEl = this.el\n\n let children = []\n\n componentEl.querySelectorAll('[wire\\\\:id]').forEach(el => {\n let parentComponentEl = el.parentElement.closest('[wire\\\\:id]')\n\n if (parentComponentEl !== componentEl) return\n\n let componentInstance = el.__livewire\n\n if (! componentInstance) return\n\n children.push(componentInstance)\n })\n\n return children\n }\n\n get islands() {\n let islands = this.snapshot.memo.islands\n\n return islands\n }\n\n get parent() {\n return findComponentByEl(this.el.parentElement)\n }\n\n get isIsolated() {\n return this.snapshot.memo.isolate\n }\n\n get isLazy() {\n return this.snapshot.memo.lazyLoaded !== undefined\n }\n\n get hasBeenLazyLoaded() {\n return this.snapshot.memo.lazyLoaded === true\n }\n\n get isLazyIsolated() {\n return !! this.snapshot.memo.lazyIsolated\n }\n\n getDeepChildrenWithBindings(callback) {\n this.getDeepChildren(child => {\n if (child.isLazy && ! child.hasBeenLazyLoaded) return\n\n if (child.hasReactiveProps() || child.hasWireModelableBindings()) {\n callback(child)\n }\n })\n }\n\n hasReactiveProps() {\n let meta = this.snapshot.memo\n let props = meta.props\n\n return !! props\n }\n\n hasWireModelableBindings() {\n let meta = this.snapshot.memo\n let bindings = meta.bindings\n\n return !! bindings\n }\n\n getDeepChildren(callback) {\n this.children.forEach(child => {\n callback(child)\n\n child.getDeepChildren(callback)\n })\n }\n\n getEncodedSnapshotWithLatestChildrenMergedIn() {\n let { snapshotEncoded, children, snapshot } = this\n\n let childrenMemo = {}\n\n children.forEach(child => {\n childrenMemo[child.key] = [child.el.tagName.toLowerCase(), child.id]\n })\n\n return snapshotEncoded.replace(\n /\"children\":\\{[^}]*\\}/,\n `\"children\":${JSON.stringify(childrenMemo)}`\n )\n }\n\n inscribeSnapshotAndEffectsOnElement() {\n let el = this.el\n\n el.setAttribute('wire:snapshot', this.snapshotEncoded)\n\n // We need to re-register any event listeners that were originally registered...\n let effects = this.originalEffects.listeners\n ? { listeners: this.originalEffects.listeners }\n : {}\n\n // We need to re-register any url/query-string bindings...\n if (this.originalEffects.url) {\n effects.url = this.originalEffects.url\n }\n\n // We need to re-register any scripts that were originally registered...\n if (this.originalEffects.scripts) {\n effects.scripts = this.originalEffects.scripts;\n }\n\n el.setAttribute('wire:effects', JSON.stringify(effects))\n\n el.setAttribute('wire:key', this.key)\n }\n\n addJsAction(name, action) {\n this.jsActions[name] = action\n }\n\n hasJsAction(name) {\n return this.jsActions[name] !== undefined\n }\n\n getJsAction(name) {\n return this.jsActions[name].bind(this.$wire)\n }\n\n getJsActions() {\n let actions = {}\n for (let key of Object.keys(this.jsActions)) {\n actions[key] = this.getJsAction(key)\n }\n return actions\n }\n\n // Called by JSON.stringify() on both $wire (via the Proxy) and the\n // Component instance directly. Without this, stringifying a Component\n // throws a circular reference error (el <-> component). Tools like\n // Laravel Boost trigger this when logging objects to the browser console.\n toJSON() {\n return {\n id: this.id,\n name: this.name,\n key: this.key,\n data: Object.fromEntries(Object.entries(this.ephemeral)),\n }\n }\n\n addCleanup(cleanup) {\n this.cleanups.push(cleanup)\n }\n\n cleanup() {\n delete this.el.__livewire\n\n while (this.cleanups.length > 0) {\n this.cleanups.pop()()\n }\n }\n}\n", "\nexport function closestFragment(el, { isMatch, hasReachedBoundary }) {\n if (! hasReachedBoundary) hasReachedBoundary = () => false\n\n let current = el\n\n while (current) {\n // Check previous siblings\n let sibling = current.previousSibling;\n\n let foundEndMarker = []\n\n while (sibling) {\n if (isEndFragmentMarker(sibling)) {\n // Keep iterating up until we find the start marker and skip it...\n foundEndMarker.push('a')\n }\n\n if (isStartFragmentMarker(sibling)) {\n if (foundEndMarker.length > 0) {\n foundEndMarker.pop()\n } else {\n let metadata = extractFragmentMetadataFromMarkerNode(sibling)\n\n if (isMatch(metadata)) {\n return new Fragment(sibling)\n }\n }\n }\n\n sibling = sibling.previousSibling;\n }\n\n // No start marker found at this level or found end marker\n // Go up to parent unless we've hit the component root\n current = current.parentElement;\n\n if (current && hasReachedBoundary({ el: current })) {\n break; // Stop at component root\n }\n }\n\n return null;\n}\n\nexport function findFragment(el, { isMatch, hasReachedBoundary }) {\n if (! hasReachedBoundary) hasReachedBoundary = () => false\n\n let startNode = null\n\n let rootEl = el\n\n walkElements(rootEl, (el, { skip, stop }) => {\n // Skip nested Livewire components\n if (el.hasAttribute && el !== rootEl && hasReachedBoundary({ el })) {\n return skip()\n }\n\n // Check all child nodes (including text and comment nodes)\n Array.from(el.childNodes).forEach(node => {\n if (isStartFragmentMarker(node)) {\n let metadata = extractFragmentMetadataFromMarkerNode(node)\n\n if (isMatch(metadata)) {\n startNode = node\n\n stop()\n }\n }\n })\n })\n\n return startNode && new Fragment(startNode)\n}\n\nexport function isStartFragmentMarker(el) {\n return el.nodeType === 8 && el.textContent.startsWith('[if FRAGMENT')\n}\n\nexport function isEndFragmentMarker(el) {\n return el.nodeType === 8 && el.textContent.startsWith('[if ENDFRAGMENT')\n}\n\nfunction walkElements(el, callback) {\n let skip = false\n let stop = false\n\n callback(el, { skip: () => skip = true, stop: () => stop = true })\n\n if (skip || stop) return\n\n Array.from(el.children).forEach(child => {\n walkElements(child, callback)\n\n if (stop) return\n })\n}\n\nexport class Fragment {\n constructor(startMarkerNode) {\n this.startMarkerNode = startMarkerNode\n\n this.metadata = extractFragmentMetadataFromMarkerNode(startMarkerNode)\n }\n\n get endMarkerNode() {\n return findMatchingEndMarkerNode(this.startMarkerNode, this.metadata)\n }\n\n append(mountContainerTagName, html) {\n let container = document.createElement(mountContainerTagName)\n\n container.innerHTML = html\n\n Array.from(container.childNodes).forEach(node => {\n this.endMarkerNode.before(node)\n })\n }\n\n prepend(mountContainerTagName, html) {\n let container = document.createElement(mountContainerTagName)\n\n container.innerHTML = html\n\n Array.from(container.childNodes)\n .reverse()\n .forEach(node => {\n this.startMarkerNode.after(node)\n })\n }\n}\n\nexport function findMatchingEndMarkerNode(startMarkerNode, metadata) {\n let current = startMarkerNode\n\n while (current) {\n if (isEndFragmentMarker(current)) {\n let currentMetadata = extractFragmentMetadataFromMarkerNode(current)\n\n if (Object.keys(metadata).every(key => metadata[key] === currentMetadata[key])) {\n return current\n }\n }\n\n current = current.nextSibling\n }\n\n return null\n}\n\nexport function extractInnerHtmlFromFragmentHtml(fragmentHtml) {\n let regex = /<!--\\[if FRAGMENT\\b.*?\\]><!\\[endif\\]-->([\\s\\S]*)<!--\\[if ENDFRAGMENT\\b.*?\\]><!\\[endif\\]-->/i;\n\n let match = fragmentHtml.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, html] = match\n\n return html\n}\n\nexport function extractFragmentMetadataFromHtml(fragmentHtml) {\n let regex = /\\[if (FRAGMENT|ENDFRAGMENT):(.*?)\\]/\n\n let match = fragmentHtml.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, __, encodedMetadata] = match\n\n return decodeMetadata(encodedMetadata)\n}\n\nexport function extractFragmentMetadataFromMarkerNode(startMarkerNode) {\n let regex = /\\[if (FRAGMENT|ENDFRAGMENT):(.*?)\\]/\n\n let match = startMarkerNode.textContent.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, __, encodedMetadata] = match\n\n return decodeMetadata(encodedMetadata)\n}\n\nexport function decodeMetadata(encodedMetadata) {\n let metadata = {}\n\n // Split by pipe character to get key=value pairs\n let pairs = encodedMetadata.split('|')\n\n pairs.forEach(pair => {\n // Split each pair by = to get key and value\n let [key, value] = pair.split('=')\n metadata[key] = value\n })\n\n return metadata\n}\n", "import { Component } from \"@/component\";\nimport { trigger } from \"@/hooks\";\nimport { walkBackwards, walkUpwards } from \"./utils\";\nimport { extractFragmentMetadataFromMarkerNode, isEndFragmentMarker, isStartFragmentMarker } from \"./fragment\";\n\nlet components = {}\n\nexport function initComponent(el) {\n let component = new Component(el)\n\n if (components[component.id]) throw 'Component already registered'\n\n let cleanup = (i) => component.addCleanup(i)\n\n trigger('component.init', { component, cleanup })\n\n components[component.id] = component\n\n return component\n}\n\nexport function destroyComponent(id) {\n let component = components[id]\n\n if (! component) return\n\n component.cleanup()\n\n delete components[id]\n}\n\nexport function hasComponent(id) {\n return !! components[id]\n}\n\nexport function findComponent(id, strict = true) {\n let component = components[id]\n\n if (! component) {\n if (strict) throw 'Component not found: ' + id\n\n return\n }\n\n return component\n}\n\nexport function findComponentByEl(el, strict = true) {\n let componentId = walkUpwards(el, (node, { stop }) => {\n if (node.__livewire) return stop(node.__livewire.id)\n\n let endMarkers = []\n\n let slotParentId = walkBackwards(node, (siblingNode, { stop }) => {\n if (isEndFragmentMarker(siblingNode)) {\n let metadata = extractFragmentMetadataFromMarkerNode(siblingNode)\n\n if (metadata.type !== 'slot') return\n\n endMarkers.push('a')\n\n return\n }\n\n if (isStartFragmentMarker(siblingNode)) {\n let metadata = extractFragmentMetadataFromMarkerNode(siblingNode)\n\n if (metadata.type !== 'slot') return\n\n\n if (endMarkers.length > 0) {\n endMarkers.pop()\n } else {\n return stop(metadata.parent)\n }\n }\n })\n\n if (slotParentId) return stop(slotParentId)\n })\n\n let component = findComponent(componentId, strict)\n\n if (! component) {\n if (strict) throw \"Could not find Livewire component in DOM tree\"\n\n return\n }\n\n return component\n}\n\nexport function componentsByName(name) {\n return Object.values(components).filter(component => {\n return name == component.name\n })\n}\n\nexport function getByName(name) {\n return componentsByName(name).map(i => i.$wire)\n}\n\nexport function find(id) {\n let component = components[id]\n\n return component && component.$wire\n}\n\nexport function first() {\n return Object.values(components)[0].$wire\n}\n\nexport function all() {\n return Object.values(components)\n}\n", "import { componentsByName } from \"@/store\"\nimport { findRefEl } from \"@/features/supportRefs\"\n\nexport function dispatch(component, name, params) {\n dispatchEvent(component.el, name, params)\n}\n\nexport function dispatchGlobal(name, params) {\n dispatchEvent(window, name, params)\n}\n\nexport function dispatchSelf(component, name, params) {\n dispatchEvent(component.el, name, params, false)\n}\n\nexport function dispatchEl(component, selector, name, params) {\n let targets = component.el.querySelectorAll(selector)\n\n targets.forEach(target => {\n dispatchEvent(target, name, params, false)\n })\n}\n\nexport function dispatchTo(componentName, name, params) {\n let targets = componentsByName(componentName)\n\n targets.forEach(target => {\n dispatchEvent(target.el, name, params, false)\n })\n}\n\nexport function dispatchRef(component, ref, name, params) {\n let el = findRefEl(component, ref)\n\n dispatchEvent(el, name, params, false)\n}\n\nexport function listen(component, name, callback) {\n component.el.addEventListener(name, e => {\n callback(e.detail)\n })\n}\n\nexport function on(eventName, callback) {\n let handler = (e) => {\n // Implemented for backwards compatibility...\n if (! e.__livewire) return\n\n callback(e.detail)\n }\n\n window.addEventListener(eventName, handler)\n\n return () => {\n window.removeEventListener(eventName, handler)\n }\n}\n\nfunction dispatchEvent(target, name, params, bubbles = true) {\n // We need to ensure the params are an array (or object), so we need to wrap them if they're not already...\n if (typeof params === 'string') {\n params = [params]\n }\n\n let e = new CustomEvent(name, { bubbles, detail: params })\n\n e.__livewire = { name, params, receivedBy: [] }\n\n target.dispatchEvent(e)\n}\n", "import { findComponentByEl, destroyComponent, initComponent, hasComponent } from './store'\nimport { matchesForLivewireDirective, extractDirective } from './directives'\nimport { trigger } from './hooks'\nimport collapse from '@alpinejs/collapse'\nimport focus from '@alpinejs/focus'\nimport persist from '@alpinejs/persist'\nimport intersect from '@alpinejs/intersect'\nimport sort from '@alpinejs/sort'\nimport resize from '@alpinejs/resize'\nimport anchor from '@alpinejs/anchor'\nimport navigate from './plugins/navigate'\nimport history from './plugins/history'\nimport morph from '@alpinejs/morph'\nimport mask from '@alpinejs/mask'\nimport Alpine from 'alpinejs'\nimport { dispatch } from './utils'\n\nexport function start() {\n setTimeout(() => ensureLivewireScriptIsntMisplaced())\n\n dispatch(document, 'livewire:init')\n dispatch(document, 'livewire:initializing')\n\n Alpine.plugin(morph)\n Alpine.plugin(history)\n Alpine.plugin(intersect)\n Alpine.plugin(sort)\n Alpine.plugin(resize)\n Alpine.plugin(collapse)\n Alpine.plugin(anchor)\n Alpine.plugin(focus)\n Alpine.plugin(persist)\n Alpine.plugin(navigate)\n Alpine.plugin(mask)\n\n Alpine.addRootSelector(() => '[wire\\\\:id]')\n\n Alpine.onAttributesAdded((el, attributes) => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n let component = findComponentByEl(el, false)\n\n if (! component) return\n\n attributes.forEach(attribute => {\n if (! matchesForLivewireDirective(attribute.name)) return;\n\n let directive = extractDirective(el, attribute.name)\n\n trigger('directive.init', { el, component, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n })\n\n Alpine.interceptInit(\n Alpine.skipDuringClone(el => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(el.attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n if (el.hasAttribute('wire:id') && ! el.__livewire && ! hasComponent(el.getAttribute('wire:id'))) {\n let component = initComponent(el)\n\n Alpine.onAttributeRemoved(el, 'wire:id', () => {\n destroyComponent(component.id)\n })\n }\n\n let directives = Array.from(el.getAttributeNames())\n .filter(name => matchesForLivewireDirective(name))\n .map(name => extractDirective(el, name))\n\n directives.forEach(directive => {\n trigger('directive.global.init', { el, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n\n let component = findComponentByEl(el, false)\n\n if (component) {\n trigger('element.init', { el, component })\n\n directives.forEach(directive => {\n trigger('directive.init', { el, component, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n }\n },\n // We still want global directives to be processed during cloning, so we can do that in this fallback callback...\n el => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(el.attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n let directives = Array.from(el.getAttributeNames())\n .filter(name => matchesForLivewireDirective(name))\n .map(name => extractDirective(el, name))\n\n directives.forEach(directive => {\n trigger('directive.global.init', { el, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n })\n )\n\n Alpine.start()\n\n setTimeout(() => window.Livewire.initialRenderIsFinished = true)\n\n dispatch(document, 'livewire:initialized')\n}\n\nfunction ensureLivewireScriptIsntMisplaced() {\n let el = document.querySelector('script[data-update-uri][data-csrf]')\n\n // If there is no Livewire-injected script on the page, move on...\n if (! el) return\n\n // If there is, let's ensure it's at the top-level. If it's nested\n // inside a normal element, that probably means that a closing\n // tag was missing in the template and Chrome moved the tag.\n\n // We're only checking for \"div\" here because it's quick and useful...\n let livewireEl = el.closest('[wire\\\\:id]')\n\n if (livewireEl) {\n console.warn('Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.', livewireEl)\n }\n}\n", "// packages/persist/src/index.js\nfunction src_default(Alpine) {\n let persist = () => {\n let alias;\n let storage;\n try {\n storage = localStorage;\n } catch (e) {\n console.error(e);\n console.warn(\"Alpine: $persist is using temporary storage since localStorage is unavailable.\");\n let dummy = /* @__PURE__ */ new Map();\n storage = {\n getItem: dummy.get.bind(dummy),\n setItem: dummy.set.bind(dummy)\n };\n }\n return Alpine.interceptor((initialValue, getter, setter, path, key) => {\n let lookup = alias || `_x_${path}`;\n let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue;\n setter(initial);\n Alpine.effect(() => {\n let value = getter();\n storageSet(lookup, value, storage);\n setter(value);\n });\n return initial;\n }, (func) => {\n func.as = (key) => {\n alias = key;\n return func;\n }, func.using = (target) => {\n storage = target;\n return func;\n };\n });\n };\n Object.defineProperty(Alpine, \"$persist\", { get: () => persist() });\n Alpine.magic(\"persist\", persist);\n Alpine.persist = (key, { get, set }, storage = localStorage) => {\n let initial = storageHas(key, storage) ? storageGet(key, storage) : get();\n set(initial);\n Alpine.effect(() => {\n let value = get();\n storageSet(key, value, storage);\n set(value);\n });\n };\n}\nfunction storageHas(key, storage) {\n return storage.getItem(key) !== null;\n}\nfunction storageGet(key, storage) {\n let value = storage.getItem(key);\n if (value === void 0)\n return;\n return JSON.parse(value);\n}\nfunction storageSet(key, value, storage) {\n storage.setItem(key, JSON.stringify(value));\n}\n\n// packages/persist/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as persist\n};\n", "export function unwrap(object) {\n if (object === undefined) return undefined\n\n return JSON.parse(JSON.stringify(object))\n}\n\nexport function batch(callback) {\n let batch = {\n queued: false,\n updates: {},\n add(updates) {\n Object.assign(batch.updates, updates)\n\n if (batch.queued) return\n\n batch.queued = true\n\n queueMicrotask(batch.flush)\n },\n\n flush() {\n if (Object.keys(batch.updates).length) {\n callback(batch.updates)\n }\n\n batch.queued = false\n batch.updates = {}\n },\n }\n\n return batch\n}\n", "import { batch, unwrap } from \"./utils\"\n\nclass HistoryCoordinator {\n constructor() {\n this.url = null\n this.errorHandlers = {}\n\n this.batch = batch((updates) => {\n let url = this.getUrl()\n\n this.writeToHistory('replaceState', url, (state) => {\n // Only update state.alpine as we are merging...\n state.alpine = { ...state.alpine, ...unwrap(updates) }\n\n return state\n })\n\n this.url = null\n })\n }\n\n addErrorHandler(key, callback) {\n this.errorHandlers[key] = callback\n }\n\n getUrl() {\n // If the querystring has started changing the URL before the batch has been flushed, use the URL that was passed in...\n if (this.url) {\n // Always pick up the current hash from the browser, since Livewire only manages query strings\n // and the hash may have been changed externally (e.g. during Alpine init)...\n if (this.url instanceof URL) this.url.hash = window.location.hash\n return this.url\n }\n\n return new URL(window.location.href)\n }\n\n replaceState(url, updates) {\n this.url = url\n this.batch.add(updates)\n }\n\n pushState(url, updates) {\n // Flush any pending replaces first...\n this.batch.flush()\n\n this.writeToHistory('pushState', url, (state) => {\n // Replace the entire state as we are pushing...\n state = { alpine: { ...state.alpine, ...unwrap(updates) } }\n\n return state\n })\n }\n\n writeToHistory(method, url, callback) {\n let state = window.history.state || {}\n if (!state.alpine) state.alpine = {}\n\n // Process the state using the callback...\n state = callback(state)\n\n try {\n // 640k character limit:\n window.history[method](state, '', url.toString())\n } catch (error) {\n Object.values(this.errorHandlers).forEach(\n handler => typeof handler === 'function' && handler(error, url)\n )\n\n // Remove error handlers after processing as they could be different depending on what is calling the method...\n this.errorHandlers = {}\n\n console.error(error)\n }\n }\n}\n\nlet historyCoordinator = new HistoryCoordinator()\n\nexport default historyCoordinator\n", "import historyCoordinator from \"@/plugins/history/coordinator\"\n\nclass Snapshot {\n constructor(url, html) {\n this.url = url\n this.html = html\n }\n}\n\nlet snapshotCache = {\n currentKey: null,\n currentUrl: null,\n keys: [],\n lookup: {},\n\n limit: 10,\n\n has(location) {\n return this.lookup[location] !== undefined\n },\n\n retrieve(location) {\n let snapshot = this.lookup[location]\n\n if (snapshot === undefined)\n throw (\n 'No back button cache found for current location: ' +\n location\n )\n\n return snapshot\n },\n\n replace(key, snapshot) {\n if (this.has(key)) {\n this.lookup[key] = snapshot\n } else {\n this.push(key, snapshot)\n }\n },\n\n push(key, snapshot) {\n this.lookup[key] = snapshot\n\n let index = this.keys.indexOf(key)\n\n if (index > -1) this.keys.splice(index, 1)\n\n this.keys.unshift(key)\n\n this.trim()\n },\n\n trim() {\n for (let key of this.keys.splice(this.limit)) {\n delete this.lookup[key]\n }\n }\n}\n\nlet currentPageStatus = null\n\nexport function storeCurrentPageStatus(status) {\n currentPageStatus = status\n}\n\nexport function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() {\n // Get the URL with all querystring changes...\n let url = historyCoordinator.getUrl()\n \n // Create a history state entry for the initial page load.\n // (This is so later hitting back can restore this page).\n replaceUrl(url, document.documentElement.outerHTML)\n}\n\nexport function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(key, url) {\n let html = document.documentElement.outerHTML\n\n snapshotCache.replace(key, new Snapshot(url, html))\n}\n\nexport function whenTheBackOrForwardButtonIsClicked(\n registerFallback,\n handleHtml\n) {\n let fallback\n\n registerFallback(i => (fallback = i))\n\n window.addEventListener('popstate', e => {\n let state = e.state || {}\n\n let alpine = state.alpine || {}\n\n // If the current page is not a 2xx status code, then we want to force a full page refresh to ensure that the error page assets aren't kept in the DOM...\n if (currentPageStatus && (currentPageStatus < 200 || currentPageStatus >= 300)) {\n return window.location.href = alpine.url\n }\n\n // If state is an empty object, then the popstate has probably been triggered\n // by anchor tags `#my-heading`, so we don't want to handle them.\n if (Object.keys(state).length === 0) return\n\n if (! alpine.snapshotIdx) return\n\n if (snapshotCache.has(alpine.snapshotIdx)) {\n let snapshot = snapshotCache.retrieve(alpine.snapshotIdx)\n\n handleHtml(snapshot.html, snapshot.url, snapshotCache.currentUrl, snapshotCache.currentKey)\n\n snapshotCache.currentKey = alpine.snapshotIdx\n snapshotCache.currentUrl = snapshot.url\n } else {\n snapshotCache.currentKey = null\n snapshotCache.currentUrl = null\n\n fallback(alpine.url)\n }\n })\n}\n\nexport function updateUrlAndStoreLatestHtmlForFutureBackButtons(\n html,\n destination\n) {\n pushUrl(destination, html)\n}\n\nexport function pushUrl(url, html) {\n updateUrl('pushState', url, html)\n}\n\nexport function replaceUrl(url, html) {\n updateUrl('replaceState', url, html)\n}\n\nfunction updateUrl(method, url, html) {\n let key = url.toString() + '-' + Math.random()\n\n method === 'pushState'\n ? snapshotCache.push(key, new Snapshot(url, html))\n : snapshotCache.replace(key = (snapshotCache.currentKey ?? key), new Snapshot(url, html))\n\n historyCoordinator.addErrorHandler('navigate', error => {\n if (error instanceof DOMException && error.name === 'SecurityError') {\n console.error(\n \"Livewire: You can't use wire:navigate with a link to a different root domain: \" +\n url\n )\n }\n })\n\n historyCoordinator[method](url, { snapshotIdx: key, url: url.toString() })\n\n snapshotCache.currentKey = key\n snapshotCache.currentUrl = url\n}\n", "\nexport function whenThisLinkIsPressed(el, callback) {\n let isProgrammaticClick = e => ! e.isTrusted\n let isNotPlainLeftClick = e => (e.which > 1) || (e.altKey) || (e.ctrlKey) || (e.metaKey) || (e.shiftKey)\n let isNotPlainEnterKey = (e) => (e.which !== 13) || (e.altKey) || (e.ctrlKey) || (e.metaKey) || (e.shiftKey)\n\n el.addEventListener('click', e => {\n // This allows programmatic clicking of links via: `$0.click()`...\n if (isProgrammaticClick(e)) {\n e.preventDefault()\n\n callback(whenReleased => whenReleased())\n\n return\n }\n\n // This allows cmd+click and such to still work as expected...\n if (isNotPlainLeftClick(e)) return;\n\n // If it's a plain left click, we want to prevent \"click\" and let \"mouseup\" do its thing...\n e.preventDefault()\n })\n\n el.addEventListener('mousedown', e => {\n // We only care about left clicks for wire:navigate...\n if (isNotPlainLeftClick(e)) return;\n\n e.preventDefault()\n\n callback((whenReleased) => {\n let handler = e => {\n e.preventDefault()\n\n requestAnimationFrame(() => {\n whenReleased()\n })\n\n el.removeEventListener('mouseup', handler)\n }\n\n el.addEventListener('mouseup', handler)\n })\n })\n\n el.addEventListener(\"keydown\", e => {\n // We only care about the enter key...\n if (isNotPlainEnterKey(e)) return;\n\n e.preventDefault()\n\n callback(whenReleased => whenReleased())\n })\n}\n\nexport function whenThisLinkIsHoveredFor(el, ms = 60, callback) {\n el.addEventListener('mouseenter', e => {\n let timeout = setTimeout(() => {\n callback(e)\n }, ms)\n\n let handler = () => {\n clearTimeout(timeout)\n el.removeEventListener('mouseleave', handler)\n }\n\n el.addEventListener('mouseleave', handler)\n })\n}\n\nexport function extractDestinationFromLink(linkEl) {\n return createUrlObjectFromString(linkEl.getAttribute('href'))\n}\n\nexport function createUrlObjectFromString(urlString) {\n return urlString !== null && new URL(urlString, document.baseURI)\n}\n\nexport function getUriStringFromUrlObject(urlObject) {\n return urlObject.pathname + urlObject.search + urlObject.hash\n}\n", "import { getUriStringFromUrlObject } from \"./links\"\nimport { sendNavigateRequest } from \"@/request\"\nimport { storeCurrentPageStatus } from \"./history\"\n\nexport function fetchHtml(destination, callback, errorCallback) {\n let uri = getUriStringFromUrlObject(destination)\n\n performFetch(uri, (html, finalDestination, status) => {\n storeCurrentPageStatus(status)\n\n callback(html, finalDestination)\n }, errorCallback)\n}\n\nexport function performFetch(uri, callback, errorCallback) {\n sendNavigateRequest(uri, callback, errorCallback)\n}\n", "import { performFetch } from \"@/plugins/navigate/fetch\";\nimport { getUriStringFromUrlObject } from \"./links\";\nimport { storeCurrentPageStatus } from \"./history\";\n\n// Warning: this could cause some memory leaks\nlet prefetches = {}\n\n// Default prefetch cache duration is 30 seconds...\nlet cacheDuration = 30000\n\nexport function prefetchHtml(destination, callback, errorCallback) {\n let uri = getUriStringFromUrlObject(destination)\n\n if (prefetches[uri]) return\n\n prefetches[uri] = { finished: false, html: null, whenFinished: () => setTimeout(() => delete prefetches[uri], cacheDuration) }\n\n performFetch(uri, (html, routedUri, status) => {\n storeCurrentPageStatus(status)\n\n callback(html, routedUri)\n }, () => {\n // If the fetch failed, remove the prefetch so it gets attempted again...\n delete prefetches[uri]\n\n errorCallback()\n })\n}\n\nexport function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination) {\n let state = prefetches[getUriStringFromUrlObject(destination)]\n state.html = html\n state.finished = true\n state.finalDestination = finalDestination\n state.whenFinished()\n}\n\nexport function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) {\n let uri = getUriStringFromUrlObject(destination)\n\n if (! prefetches[uri]) return ifNoPrefetchExists()\n\n if (prefetches[uri].finished) {\n let html = prefetches[uri].html\n let finalDestination = prefetches[uri].finalDestination\n\n delete prefetches[uri]\n\n return receive(html, finalDestination)\n } else {\n prefetches[uri].whenFinished = () => {\n let html = prefetches[uri].html\n let finalDestination = prefetches[uri].finalDestination\n\n delete prefetches[uri]\n\n receive(html, finalDestination)\n }\n }\n}\n\n", "import Alpine from \"alpinejs\"\n\nexport function packUpPersistedTeleports(persistedEl) {\n // Persisted elements get removed from the DOM and then re-added later. We need to do the same\n // with any `x-teleport`ed elements...\n Alpine.mutateDom(() => {\n persistedEl.querySelectorAll('[data-teleport-template]').forEach(i => i._x_teleport.remove())\n })\n}\n\nexport function removeAnyLeftOverStaleTeleportTargets(body) {\n // We need to remove any left-over teleported elements form the page\n // as they are stale and will be re-initialized when Alpine boots up on this page...\n Alpine.mutateDom(() => {\n body.querySelectorAll('[data-teleport-target]').forEach(i => i.remove())\n })\n}\n\nexport function unPackPersistedTeleports(persistedEl) {\n // Before we put back any persisted elements, we're going to\n // find any \"x-teleports\" and put their targets back on the page...\n Alpine.walk(persistedEl, (el, skip) => {\n if (! el._x_teleport) return;\n\n el._x_teleportPutBack()\n\n skip()\n })\n}\n\nexport function isTeleportTarget(el) {\n return el.hasAttribute('data-teleport-target')\n}\n", "\nexport function storeScrollInformationInHtmlBeforeNavigatingAway() {\n document.body.setAttribute('data-scroll-x', document.body.scrollLeft)\n document.body.setAttribute('data-scroll-y', document.body.scrollTop)\n\n document.querySelectorAll(['[x-navigate\\\\:scroll]', '[wire\\\\:navigate\\\\:scroll]']).forEach(el => {\n el.setAttribute('data-scroll-x', el.scrollLeft)\n el.setAttribute('data-scroll-y', el.scrollTop)\n })\n}\n\nexport function restoreScrollPositionOrScrollToTop() {\n let scroll = el => {\n if (! el.hasAttribute('data-scroll-x')) {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' })\n } else {\n el.scrollTo({\n top: Number(el.getAttribute('data-scroll-y')),\n left: Number(el.getAttribute('data-scroll-x')),\n behavior: 'instant',\n })\n el.removeAttribute('data-scroll-x')\n el.removeAttribute('data-scroll-y')\n }\n }\n\n queueMicrotask(() => {\n queueMicrotask(() => { // Double microtask here to make sure scrolling restoration is the LAST thing to happen. (Even after Alpine's x-init functions)...\n scroll(document.body)\n\n document.querySelectorAll(['[x-navigate\\\\:scroll]', '[wire\\\\:navigate\\\\:scroll]']).forEach(scroll)\n })\n })\n}\n", "import Alpine from 'alpinejs'\n\nlet els = {}\n\nexport function storePersistantElementsForLater(callback) {\n els = {}\n\n document.querySelectorAll('[x-persist]').forEach(i => {\n els[i.getAttribute('x-persist')] = i\n\n callback(i)\n\n Alpine.mutateDom(() => {\n i.remove()\n })\n })\n}\n\nexport function putPersistantElementsBack(callback) {\n let usedPersists = []\n\n document.querySelectorAll('[x-persist]').forEach(i => {\n let old = els[i.getAttribute('x-persist')]\n\n // There might be a brand new x-persist element...\n if (! old) return\n\n usedPersists.push(i.getAttribute('x-persist'))\n\n old._x_wasPersisted = true\n\n callback(old, i)\n\n Alpine.mutateDom(() => {\n i.replaceWith(old)\n })\n })\n\n Object.entries(els).forEach(([key, el]) => {\n if (usedPersists.includes(key)) return\n\n // Destory the un-used persist DOM trees before releasing them...\n Alpine.destroyTree(el)\n })\n\n // Release unused persists for garbage collection...\n els = {}\n}\n\nexport function isPersistedElement(el) {\n return el.hasAttribute('x-persist')\n}\n", "import NProgress from 'nprogress'\nimport { getNonce } from '@/utils'\n\nNProgress.configure({\n minimum: 0.1,\n trickleSpeed: 200,\n showSpinner: false,\n parent: 'body',\n})\n\ninjectStyles()\n\nlet inProgress = false\n\nexport function showAndStartProgressBar() {\n inProgress = true\n\n // Only show progress bar if it's been a little bit...\n setTimeout(() => {\n if (! inProgress) return\n\n NProgress.start()\n }, 150)\n}\n\nexport function finishAndHideProgressBar() {\n inProgress = false\n\n NProgress.done()\n}\n\nexport function removeAnyLeftOverStaleProgressBars() {\n NProgress.remove()\n}\n\nfunction injectStyles() {\n let style = document.createElement('style')\n\n style.innerHTML = `/* Make clicks pass-through */\n\n #nprogress {\n pointer-events: none;\n }\n\n #nprogress .bar {\n background: var(--livewire-progress-bar-color, #29d);\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n }\n\n /* Fancy blur effect */\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px var(--livewire-progress-bar-color, #29d), 0 0 5px var(--livewire-progress-bar-color, #29d);\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n\n /* Remove these to get rid of the spinner */\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n\n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: var(--livewire-progress-bar-color, #29d);\n border-left-color: var(--livewire-progress-bar-color, #29d);\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n\n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n\n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n\n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `\n\n let nonce = getNonce()\n\n if (nonce) style.nonce = nonce\n\n document.head.appendChild(style)\n}\n", "\nexport function packUpPersistedPopovers(persistedEl) {\n if (!isPopoverSupported()) return;\n\n persistedEl.querySelectorAll(':popover-open').forEach(el => {\n el.setAttribute('data-navigate-popover-open', '')\n\n let animations = el.getAnimations()\n\n // Gather any in-progress animations, serialize them, and pause them, for later re-triggering...\n el._pausedAnimations = animations.map(animation => ({\n keyframes: animation.effect.getKeyframes(),\n options: {\n duration: animation.effect.getTiming().duration,\n easing: animation.effect.getTiming().easing,\n fill: animation.effect.getTiming().fill,\n iterations: animation.effect.getTiming().iterations\n },\n currentTime: animation.currentTime,\n playState: animation.playState\n }))\n\n animations.forEach(i => i.pause())\n })\n}\n\nexport function unPackPersistedPopovers(persistedEl) {\n if (!isPopoverSupported()) return;\n\n persistedEl.querySelectorAll('[data-navigate-popover-open]').forEach(el => {\n el.removeAttribute('data-navigate-popover-open')\n\n // Wait for the popovers to be fully connected to the DOM...\n queueMicrotask(() => {\n if (! el.isConnected) return\n\n // Show them because disconnected popovers are force-hidden...\n el.showPopover()\n\n // End the out-of-the-box animations...\n el.getAnimations().forEach(i => i.finish())\n\n // If there are any paused animations, we need to re-trigger them...\n if (el._pausedAnimations) {\n el._pausedAnimations.forEach(({keyframes, options, currentTime, now, playState}) => {\n let animation = el.animate(keyframes, options);\n\n animation.currentTime = currentTime;\n })\n\n delete el._pausedAnimations\n }\n })\n })\n}\n\nfunction isPopoverSupported() {\n return typeof document.createElement('div').showPopover === 'function';\n}\n", "import { replaceNoncesInHtml, cloneScriptTag } from '@/utils'\n\nlet oldBodyScriptTagHashes = []\n\nlet attributesExemptFromScriptTagHashing = [\n 'data-csrf',\n 'nonce',\n 'aria-hidden',\n]\n\nexport function swapCurrentPageWithNewHtml(html, andThen) {\n // Rewrite nonces in the fetched HTML to match the original page's nonce\n // before parsing, so DOMParser doesn't trigger CSP violations...\n html = replaceNoncesInHtml(html)\n\n let newDocument = (new DOMParser()).parseFromString(html, \"text/html\")\n let newHtml = newDocument.documentElement\n let newBody = document.adoptNode(newDocument.body)\n let newHead = document.adoptNode(newDocument.head)\n\n oldBodyScriptTagHashes = oldBodyScriptTagHashes.concat(Array.from(document.body.querySelectorAll('script')).map(i => {\n return simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing))\n }))\n\n let afterRemoteScriptsHaveLoaded = () => {}\n\n replaceHtmlAttributes(newHtml)\n\n mergeNewHead(newHead).finally(() => {\n afterRemoteScriptsHaveLoaded()\n })\n\n prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes)\n\n let oldBody = document.body\n\n document.body.replaceWith(newBody)\n\n Alpine.destroyTree(oldBody)\n\n andThen(i => afterRemoteScriptsHaveLoaded = i)\n}\n\nfunction prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes) {\n newBody.querySelectorAll('script').forEach(i => {\n // We don't want to re-run script tags marked as \"data-navigate-once\"...\n if (i.hasAttribute('data-navigate-once')) {\n // However, if they didn't exist on the previous page, we do.\n // Therefore, we'll check the \"old body script hashes\" to\n // see if it was already there before skipping it...\n\n let hash = simpleHash(\n ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)\n )\n\n if (oldBodyScriptTagHashes.includes(hash)) return\n }\n\n i.replaceWith(cloneScriptTag(i))\n })\n}\n\nfunction replaceHtmlAttributes(newHtmlElement) {\n let currentHtmlElement = document.documentElement\n\n // Process attributes that are in the new element...\n Array.from(newHtmlElement.attributes).forEach(attr => {\n const name = attr.name\n const value = attr.value\n\n if (currentHtmlElement.getAttribute(name) !== value) {\n // Add or update attribute if the value differs...\n currentHtmlElement.setAttribute(name, value)\n }\n })\n\n // Remove remaining attributes that are not in the new element...\n Array.from(currentHtmlElement.attributes).forEach(attr => {\n if (!newHtmlElement.hasAttribute(attr.name)) {\n currentHtmlElement.removeAttribute(attr.name)\n }\n })\n}\n\nfunction mergeNewHead(newHead) {\n let children = Array.from(document.head.children)\n\n // Compare head assets ignoring nonces so that identical assets\n // with different nonces aren't treated as \"new\"...\n let headChildrenHtmlLookup = children.map(i =>\n ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)\n )\n\n // Only add scripts and styles that aren't already loaded on the page.\n let garbageCollector = document.createDocumentFragment()\n\n let touchedHeadElements = []\n\n let remoteScriptsPromises = []\n\n for (let child of Array.from(newHead.children)) {\n if (isAsset(child)) {\n let childHtml = ignoreAttributes(child.outerHTML, attributesExemptFromScriptTagHashing)\n\n if (! headChildrenHtmlLookup.includes(childHtml)) {\n if (isTracked(child)) {\n if (ifTheQueryStringChangedSinceLastRequest(child, children)) {\n setTimeout(() => window.location.reload())\n }\n }\n\n if (isScript(child)) {\n try {\n remoteScriptsPromises.push(\n injectScriptTagAndWaitForItToFullyLoad(\n cloneScriptTag(child)\n )\n )\n } catch (error) {\n // Let's eat any promise rejects so that we don't\n // break the rest of the Alpine intializing...\n // Any errors triggered by adding the script tag to the page\n // will still be thrown...\n }\n } else {\n document.head.appendChild(child)\n }\n } else {\n garbageCollector.appendChild(child)\n }\n\n touchedHeadElements.push(child)\n }\n }\n\n // Remove any assets that aren't on the new page...\n // @todo: Re-enable this code and find a better way to managed injected stylesheets. See livewire/livewire#6824\n // for (let child of Array.from(document.head.children)) {\n // if (isAsset(child)) {\n // if (! touchedHeadElements.some(i => i.outerHTML === child.outerHTML)) {\n // child.remove()\n // }\n // }\n // }\n\n // How to free up the garbage collector?\n\n // Remove existing non-asset elements like meta, base, title, template.\n for (let child of Array.from(document.head.children)) {\n if (! isAsset(child)) child.remove()\n }\n\n // Add new non-asset elements left over in the new head element.\n for (let child of Array.from(newHead.children)) {\n if (child.tagName.toLowerCase() === 'noscript') continue\n\n document.head.appendChild(child)\n }\n\n return Promise.all(remoteScriptsPromises)\n}\n\nasync function injectScriptTagAndWaitForItToFullyLoad(script) {\n return new Promise((resolve, reject) => {\n // Script assets need to be loaded synchronously so that scripts have\n // their global variables available...\n if (script.src) {\n script.onload = () => resolve()\n script.onerror = () => reject()\n } else {\n resolve()\n }\n\n document.head.appendChild(script)\n })\n}\n\nfunction isTracked(el) {\n return el.hasAttribute('data-navigate-track')\n}\n\nfunction ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) {\n let [uri, queryString] = extractUriAndQueryString(el)\n\n return currentHeadChildren.some(child => {\n if (! isTracked(child)) return false\n\n let [currentUri, currentQueryString] = extractUriAndQueryString(child)\n\n // Only consider a data-navigate-track element changed if the query string has changed (not the URI)...\n if (currentUri === uri && queryString !== currentQueryString) return true\n })\n}\n\nfunction extractUriAndQueryString(el) {\n let url = isScript(el) ? el.src : el.href\n\n return url.split('?')\n}\n\nfunction isAsset(el) {\n return (el.tagName.toLowerCase() === 'link' && el.getAttribute('rel').toLowerCase() === 'stylesheet')\n || el.tagName.toLowerCase() === 'style'\n || el.tagName.toLowerCase() === 'script'\n}\n\nfunction isScript(el) {\n return el.tagName.toLowerCase() === 'script'\n}\n\nfunction simpleHash(str) {\n return str.split('').reduce((a, b) => {\n a = ((a << 5) - a) + b.charCodeAt(0)\n\n return a & a\n }, 0);\n}\n\nfunction ignoreAttributes(subject, attributesToRemove) {\n let result = subject\n\n attributesToRemove.forEach(attr => {\n // Create a regex pattern to match the attribute and its value.\n // The regex handles attributes that have values surrounded by either single or double quotes.\n const regex = new RegExp(`${attr}=\"[^\"]*\"|${attr}='[^']*'`, 'g')\n\n result = result.replace(regex, '')\n })\n\n // Remove all whitespace to make things less flaky...\n result = result.replaceAll(' ', '')\n\n return result.trim()\n}\n", "import { replaceUrl, updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks, updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks, updateUrlAndStoreLatestHtmlForFutureBackButtons, whenTheBackOrForwardButtonIsClicked } from \"./history\"\nimport { getPretchedHtmlOr, prefetchHtml, storeThePrefetchedHtmlForWhenALinkIsClicked } from \"./prefetch\"\nimport { createUrlObjectFromString, extractDestinationFromLink, whenThisLinkIsHoveredFor, whenThisLinkIsPressed } from \"./links\"\nimport { isTeleportTarget, packUpPersistedTeleports, removeAnyLeftOverStaleTeleportTargets, unPackPersistedTeleports } from \"./teleport\"\nimport { restoreScrollPositionOrScrollToTop, storeScrollInformationInHtmlBeforeNavigatingAway } from \"./scroll\"\nimport { isPersistedElement, putPersistantElementsBack, storePersistantElementsForLater } from \"./persist\"\nimport { finishAndHideProgressBar, removeAnyLeftOverStaleProgressBars, showAndStartProgressBar } from \"./bar\"\nimport { packUpPersistedPopovers, unPackPersistedPopovers } from \"./popover\"\nimport { swapCurrentPageWithNewHtml } from \"./page\"\nimport { fetchHtml } from \"./fetch\"\n\nlet enablePersist = true\nlet showProgressBar = true\nlet restoreScroll = true\nlet autofocus = false\n\nexport default function (Alpine) {\n\n Alpine.navigate = (url, options = {}) => {\n let { preserveScroll = false } = options\n\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: false, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { preserveScroll })\n }\n\n Alpine.navigate.disableProgressBar = () => {\n showProgressBar = false\n }\n\n Alpine.addInitSelector(() => `[${Alpine.prefixed('navigate')}]`)\n\n Alpine.directive('navigate', (el, { modifiers }) => {\n let shouldPrefetchOnHover = modifiers.includes('hover')\n\n let preserveScroll = modifiers.includes('preserve-scroll')\n\n shouldPrefetchOnHover && whenThisLinkIsHoveredFor(el, 60, () => {\n let destination = extractDestinationFromLink(el)\n\n if (! destination) return\n\n prefetchHtml(destination, (html, finalDestination) => {\n storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination)\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n })\n\n whenThisLinkIsPressed(el, (whenItIsReleased) => {\n let destination = extractDestinationFromLink(el)\n\n if (! destination) return\n\n prefetchHtml(destination, (html, finalDestination) => {\n storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination)\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n\n whenItIsReleased(() => {\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: false, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { preserveScroll })\n })\n })\n })\n\n function navigateTo(destination, { preserveScroll = false, shouldPushToHistoryState = true }) {\n showProgressBar && showAndStartProgressBar()\n\n fetchHtmlOrUsePrefetchedHtml(destination, (html, finalDestination) => {\n // Fire the navigating event, allowing listeners to register onSwap callbacks\n let swapCallbacks = []\n\n fireEventForOtherLibrariesToHookInto('alpine:navigating', {\n onSwap: (callback) => swapCallbacks.push(callback)\n })\n\n restoreScroll && storeScrollInformationInHtmlBeforeNavigatingAway()\n\n cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement()\n\n // Only update the current page's history state if we're pushing to history.\n // For popstate-triggered navigations (shouldPushToHistoryState = false),\n // the history state has already changed and we shouldn't overwrite it.\n shouldPushToHistoryState && updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks()\n\n preventAlpineFromPickingUpDomChanges(Alpine, andAfterAllThis => {\n enablePersist && storePersistantElementsForLater(persistedEl => {\n packUpPersistedTeleports(persistedEl)\n packUpPersistedPopovers(persistedEl)\n })\n\n if (shouldPushToHistoryState) {\n updateUrlAndStoreLatestHtmlForFutureBackButtons(html, finalDestination)\n } else {\n replaceUrl(finalDestination, html)\n }\n\n swapCurrentPageWithNewHtml(html, (afterNewScriptsAreDoneLoading) => {\n removeAnyLeftOverStaleTeleportTargets(document.body)\n\n enablePersist && putPersistantElementsBack((persistedEl, newStub) => {\n unPackPersistedTeleports(persistedEl)\n unPackPersistedPopovers(persistedEl)\n })\n\n !preserveScroll && restoreScrollPositionOrScrollToTop()\n\n // Invoke any callbacks registered via onSwap during the navigating event\n swapCallbacks.forEach(callback => callback())\n\n afterNewScriptsAreDoneLoading(() => {\n andAfterAllThis(() => {\n setTimeout(() => {\n autofocus && autofocusElementsWithTheAutofocusAttribute()\n })\n\n nowInitializeAlpineOnTheNewPage(Alpine)\n\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n showProgressBar && finishAndHideProgressBar()\n })\n })\n })\n })\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n }\n\n whenTheBackOrForwardButtonIsClicked(\n (ifThePageBeingVisitedHasntBeenCached) => {\n ifThePageBeingVisitedHasntBeenCached((url) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: true, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { shouldPushToHistoryState: false })\n })\n },\n (html, url, currentPageUrl, currentPageKey) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: true, cached: true,\n })\n\n if (prevented) return\n\n // @todo: see if there's a way to update the current HTML BEFORE\n // the back button is hit, and not AFTER:\n storeScrollInformationInHtmlBeforeNavigatingAway()\n\n // Fire the navigating event, allowing listeners to register onSwap callbacks\n let swapCallbacks = []\n\n fireEventForOtherLibrariesToHookInto('alpine:navigating', {\n onSwap: (callback) => swapCallbacks.push(callback)\n })\n\n // Update the snapshot (not the history state, as the history state has\n // already changed to the new page due to the popstate event).\n // This ensures the current HTML has the latest snapshot.\n updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageKey, currentPageUrl)\n\n preventAlpineFromPickingUpDomChanges(Alpine, andAfterAllThis => {\n enablePersist && storePersistantElementsForLater(persistedEl => {\n packUpPersistedTeleports(persistedEl)\n packUpPersistedPopovers(persistedEl)\n })\n\n swapCurrentPageWithNewHtml(html, () => {\n removeAnyLeftOverStaleProgressBars()\n\n removeAnyLeftOverStaleTeleportTargets(document.body)\n\n enablePersist && putPersistantElementsBack((persistedEl, newStub) => {\n unPackPersistedTeleports(persistedEl)\n unPackPersistedPopovers(persistedEl)\n })\n\n restoreScrollPositionOrScrollToTop()\n\n // Invoke any callbacks registered via onSwap during the navigating event\n swapCallbacks.forEach(callback => callback())\n\n andAfterAllThis(() => {\n autofocus && autofocusElementsWithTheAutofocusAttribute()\n\n nowInitializeAlpineOnTheNewPage(Alpine)\n\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n })\n })\n })\n },\n )\n\n // Because DOMContentLoaded is fired on first load,\n // we should fire alpine:navigated as a replacement as well...\n setTimeout(() => {\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n })\n}\n\nfunction fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCallback) {\n getPretchedHtmlOr(fromDestination, callback, () => {\n fetchHtml(fromDestination, callback, errorCallback)\n })\n}\n\nfunction preventAlpineFromPickingUpDomChanges(Alpine, callback) {\n Alpine.stopObservingMutations()\n\n callback((afterAllThis) => {\n Alpine.startObservingMutations()\n\n queueMicrotask(() => {\n afterAllThis()\n })\n })\n}\n\nfunction fireEventForOtherLibrariesToHookInto(name, detail) {\n let event = new CustomEvent(name, {\n cancelable: true,\n bubbles: true,\n detail,\n })\n\n document.dispatchEvent(event)\n\n return event.defaultPrevented\n}\n\nfunction nowInitializeAlpineOnTheNewPage(Alpine) {\n Alpine.initTree(document.body, undefined, (el, skip) => {\n if (el._x_wasPersisted) skip()\n })\n}\n\nfunction autofocusElementsWithTheAutofocusAttribute() {\n document.querySelector('[autofocus]') && document.querySelector('[autofocus]').focus()\n}\n\nfunction cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() {\n // Create a new tree walker that skips persisted elements...\n let walker = function (root, callback) {\n Alpine.walk(root, (el, skip) => {\n if (isPersistedElement(el)) skip()\n if (isTeleportTarget(el)) skip()\n else callback(el, skip)\n })\n }\n\n // Set Alpine in motion to destroy itself on the page. If this proves\n // to be a performance issue at some point (walking the DOM tree),\n // we can be more surgical about cleaning up x-for/if instead...\n Alpine.destroyTree(document.body, walker)\n}\n", "import { isObjecty } from \"@/utils\"\nimport historyCoordinator from \"./coordinator\"\nimport { unwrap } from \"./utils\"\n\nexport default function history(Alpine) {\n Alpine.magic('queryString', (el, { interceptor }) => {\n let alias\n let alwaysShow = false\n let usePush = false\n\n return interceptor((initialSeedValue, getter, setter, path, key) => {\n let queryKey = alias || path\n\n let { initial, replace, push, pop } = track(queryKey, initialSeedValue, alwaysShow)\n\n setter(initial)\n\n if (! usePush) {\n Alpine.effect(() => replace(getter()))\n } else {\n Alpine.effect(() => push(getter()))\n\n pop(async newValue => {\n setter(newValue)\n\n let tillTheEndOfTheMicrotaskQueue = () => Promise.resolve()\n\n await tillTheEndOfTheMicrotaskQueue() // ...so that we preserve the internal lock...\n })\n }\n\n return initial\n }, func => {\n func.alwaysShow = () => { alwaysShow = true; return func }\n func.usePush = () => { usePush = true; return func }\n func.as = key => { alias = key; return func }\n })\n })\n\n Alpine.history = { track }\n}\n\nexport function track(name, initialSeedValue, alwaysShow = false, except = null) {\n let { has, get, set, remove } = queryStringUtils()\n\n let url = historyCoordinator.getUrl()\n let isInitiallyPresentInUrl = has(url, name)\n let initialValue = isInitiallyPresentInUrl ? get(url, name) : initialSeedValue\n let initialValueMemo = JSON.stringify(initialValue)\n let exceptValueMemo = JSON.stringify(except)\n\n let hasReturnedToInitialValue = (newValue) => JSON.stringify(newValue) === initialValueMemo\n let hasReturnedToExceptValue = (newValue) => JSON.stringify(newValue) === exceptValueMemo\n\n if (alwaysShow) url = set(url, name, initialValue)\n\n replace(url, name, { value: initialValue })\n\n let lock = false\n\n let update = (strategy, newValue) => {\n if (lock) return\n\n let url = historyCoordinator.getUrl()\n\n // This block of code is what needs to be changed for this failing test to pass:\n if (! alwaysShow && ! isInitiallyPresentInUrl && hasReturnedToInitialValue(newValue)) {\n url = remove(url, name)\n // This is so that when deeply nested values are tracked, but their parent array/object\n // is removed, we can handle it gracefully by removing the entry from the URL instead\n // of letting it get set to `?someKey=undefined` which causes issues on refresh...\n } else if (newValue === undefined) {\n url = remove(url, name)\n } else if (! alwaysShow && hasReturnedToExceptValue(newValue)) {\n url = remove(url, name)\n } else {\n url = set(url, name, newValue)\n }\n\n // Right now, the above block, checks a few conditions and updates/removes an entry from the query string.\n // The new strategy needs to be something like:\n // - If \"alwaysShow\" is toggled on, then just \"set\" the whole thing with no deep diff\n // - Otherwise, run a deep comparison callback (given the original value and new value).\n // - The callback recieves two params (leaf name and value)\n // - Check leaf name and value for existance in the original URL from page load. If it's there, just call \"set\"\n // - Check leaf name and value for equivelance to original name and value, if equal, call \"remove\", otherwise, \"set\"\n\n // That code will look something like this:\n\n // if (alwaysShow) {\n // set(url, name, newValue)\n // } else {\n // deepCompare(name, newValue, originalValue, (leafName, leafValue) => {\n // // ....\n // })\n // }\n\n strategy(url, name, { value: newValue})\n }\n\n return {\n initial: initialValue,\n\n replace(newValue) { // Update via replaceState...\n update(replace, newValue)\n },\n\n push(newValue) { // Update via pushState...\n update(push, newValue)\n },\n\n pop(receiver) { // \"popstate\" handler...\n let handler = (e) => {\n if (! e.state || ! e.state.alpine) return\n\n Object.entries(e.state.alpine).forEach(([iName, { value: newValue }]) => {\n if (iName !== name) return\n\n lock = true\n\n // Allow the \"receiver\" to be an async function in case a non-syncronous\n // operation (like an ajax) requests needs to happen while preserving\n // the \"locking\" mechanism (\"lock = true\" in this case)...\n let result = receiver(newValue)\n\n if (result instanceof Promise) {\n result.finally(() => lock = false)\n } else {\n lock = false\n }\n })\n }\n\n window.addEventListener('popstate', handler)\n\n return () => window.removeEventListener('popstate', handler)\n }\n }\n}\n\nfunction replace(url, key, object) {\n historyCoordinator.replaceState(url, { [key]: object })\n}\n\nfunction push(url, key, object) {\n historyCoordinator.pushState(url, { [key]: object })\n}\n\nfunction queryStringUtils() {\n return {\n has(url, key) {\n let search = url.search\n\n if (! search) return false\n\n let data = fromQueryString(search, key)\n\n return Object.keys(data).includes(key)\n },\n get(url, key) {\n let search = url.search\n\n if (! search) return false\n\n let data = fromQueryString(search, key)\n\n return data[key]\n },\n set(url, key, value) {\n let data = fromQueryString(url.search, key)\n\n data[key] = stripNulls(unwrap(value))\n\n url.search = toQueryString(data)\n\n return url\n },\n remove(url, key) {\n let data = fromQueryString(url.search, key)\n\n delete data[key]\n\n url.search = toQueryString(data)\n\n return url\n },\n }\n}\n\nfunction stripNulls(value) {\n if (! isObjecty(value)) return value\n\n for (let key in value) {\n if (value[key] === null) delete value[key]\n else value[key] = stripNulls(value[key])\n }\n\n return value\n}\n\n// This function converts JavaScript data to bracketed query string notation...\n// { items: [['foo']] } -> \"items[0][0]=foo\"\nfunction toQueryString(data) {\n let isObjecty = (subject) => typeof subject === 'object' && subject !== null\n\n let buildQueryStringEntries = (data, entries = {}, baseKey = '') => {\n Object.entries(data).forEach(([iKey, iValue]) => {\n let key = baseKey === '' ? iKey : `${baseKey}[${iKey}]`\n\n if (iValue === null) {\n entries[key] = '';\n } else if (! isObjecty(iValue)) {\n entries[key] = encodeURIComponent(iValue)\n .replaceAll('%20', '+') // Conform to RFC1738\n .replaceAll('%2C', ',')\n } else {\n entries = {...entries, ...buildQueryStringEntries(iValue, entries, key)}\n }\n })\n\n return entries\n }\n\n let entries = buildQueryStringEntries(data)\n\n return Object.entries(entries).map(([key, value]) => `${key}=${value}`).join('&')\n}\n\n// This function converts bracketed query string notation back to JS data...\n// \"items[0][0]=foo\" -> { items: [['foo']] }\nfunction fromQueryString(search, queryKey) {\n search = search.replace('?', '')\n\n if (search === '') return {}\n\n let insertDotNotatedValueIntoData = (key, value, data) => {\n let [first, second, ...rest] = key.split('.')\n\n // We're at a leaf node, let's make the assigment...\n if (! second) return data[key] = value\n\n // This is where we fill in empty arrays/objects allong the way to the assigment...\n if (data[first] === undefined) {\n data[first] = isNaN(second) ? {} : []\n }\n\n // Keep deferring assignment until the full key is built up...\n insertDotNotatedValueIntoData([second, ...rest].join('.'), value, data[first])\n }\n\n let entries = search.split('&').map(i => i.split('='))\n\n // let data = {} creates a security (XSS) vulnerability here. We need to use\n // Object.create(null) instead so that we have a \"pure\" object that doesnt\n // inherit Object.prototype and expose the js internals to manipulation.\n let data = Object.create(null)\n\n entries.forEach(([key, value]) => {\n // Query string params don't always have values... (`?foo=`)\n if ( typeof value == 'undefined' ) return;\n\n value = decodeURIComponent(value.replaceAll('+', '%20'))\n\n let decodedKey = decodeURIComponent(key)\n\n let shouldBeHandledAsArray = decodedKey.includes('[') && decodedKey.startsWith(queryKey)\n\n if (!shouldBeHandledAsArray) {\n data[key] = value\n } else {\n // Convert to dot notation because it's easier...\n let dotNotatedKey = decodedKey.replaceAll('[', '.').replaceAll(']', '')\n\n insertDotNotatedValueIntoData(dotNotatedKey, value, data)\n }\n })\n\n return data\n}\n", "import { dispatchGlobal as dispatch, dispatchTo, on } from './events'\nimport { find, first, getByName, all } from './store'\nimport { start } from './lifecycle'\nimport { on as hook, trigger, triggerAsync } from './hooks'\nimport { directive } from './directives'\nimport Alpine from 'alpinejs'\nimport { fireAction, interceptAction, interceptMessage, interceptRequest } from '@/request'\n\nlet Livewire = {\n directive,\n dispatchTo,\n // @todo: See if this can be injected from a v4 feature...\n interceptAction: (callback) => interceptAction(callback),\n interceptMessage: (callback) => interceptMessage(callback),\n interceptRequest: (callback) => interceptRequest(callback),\n fireAction: (component, method, params = [], metadata = {}) => fireAction(component, method, params, metadata),\n start,\n first,\n find,\n getByName,\n all,\n hook,\n trigger,\n triggerAsync,\n dispatch,\n on,\n get navigate() {\n return Alpine.navigate\n }\n}\n\nlet warnAboutMultipleInstancesOf = entity => console.warn(`Detected multiple instances of ${entity} running`)\n\nif (window.Livewire) warnAboutMultipleInstancesOf('Livewire')\nif (window.Alpine) warnAboutMultipleInstancesOf('Alpine')\n\n// Register features...\nimport './features/index'\n\n// Register directives...\nimport './directives/index'\n\n// Make globals...\nwindow.Livewire = Livewire\nwindow.Alpine = Alpine\n\nif (window.livewireScriptConfig === undefined) {\n window.Alpine.__fromLivewire = true\n\n document.addEventListener('DOMContentLoaded', () => {\n if (window.Alpine.__fromLivewire === undefined) {\n // If this is undefined, we know that an outside Alpine bundle\n // has been included on the page and will cause problems...\n warnAboutMultipleInstancesOf('Alpine')\n }\n\n // Start Livewire...\n Livewire.start()\n })\n}\n\nexport { Livewire, Alpine }\n", "import { on as hook } from '@/hooks'\n\nhook('effect', ({ component, effects }) => {\n registerListeners(component, effects.listeners || [])\n})\n\nfunction registerListeners(component, listeners) {\n listeners.forEach(name => {\n // Register a global listener...\n let handler = (e) => {\n if (component.isLazy && ! component.hasBeenLazyLoaded) return\n\n if (e.__livewire) e.__livewire.receivedBy.push(component)\n\n component.$wire.call('__dispatch', name, e.detail || {})\n }\n\n window.addEventListener(name, handler)\n\n component.addCleanup(() => window.removeEventListener(name, handler))\n\n // Register a listener for when \"to\" or \"self\"\n component.el.addEventListener(name, (e) => {\n if (component.isLazy && ! component.hasBeenLazyLoaded) return\n\n // We don't care about non-Livewire dispatches...\n if (! e.__livewire) return\n\n // We don't care about Livewire bubbling dispatches (only \"to\" and \"self\")...\n if (e.bubbles) return\n\n if (e.__livewire) e.__livewire.receivedBy.push(component.id)\n\n component.$wire.call('__dispatch', name, e.detail || {})\n })\n })\n}\n\n\n", "import { on } from '@/hooks'\nimport Alpine from 'alpinejs'\nimport { evaluateExpression } from '../evaluator'\nimport { replaceNoncesInHtml, cloneScriptTag } from '../utils'\n\nlet executedScripts = new WeakMap\n\nlet executedAssets = new Set\n\non('payload.intercept', async ({ assets }) => {\n if(! assets) return\n\n for (let [key, asset] of Object.entries(assets)) {\n await onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, async () => {\n await addAssetsToHeadTagOfPage(asset)\n })\n }\n})\n\n// Assets that were injected into the HTML need to be registered so that\n// they aren't loaded again...\non('component.init', ({ component }) => {\n let assets = component.snapshot.memo.assets\n\n if (assets) {\n assets.forEach((key) => {\n if (executedAssets.has(key)) return\n executedAssets.add(key)\n })\n }\n})\n\non('effect', ({ component, effects }) => {\n let scripts = effects.scripts\n\n if (scripts) {\n Object.entries(scripts).forEach(([key, content]) => {\n onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, () => {\n let scriptContent = extractScriptTagContent(content)\n\n // Always wrap @script content in an IIFE since it's multi-statement code.\n // Alpine's evaluator tries to detect let/const at the start, but doesn't\n // account for leading comments which causes syntax errors.\n scriptContent = scriptContent.includes('await')\n ? `(async()=>{ ${scriptContent} })()`\n : `(()=>{ ${scriptContent} })()`\n\n Alpine.dontAutoEvaluateFunctions(() => {\n evaluateExpression(component.el, scriptContent, {\n context: component.$wire,\n scope: {\n '$wire': component.$wire,\n '$js': component.$wire.js,\n },\n })\n })\n })\n })\n }\n})\n\nfunction onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, callback) {\n if (executedScripts.has(component)) {\n let alreadyRunKeys = executedScripts.get(component)\n\n if (alreadyRunKeys.includes(key)) return\n }\n\n callback()\n\n if (! executedScripts.has(component)) executedScripts.set(component, [])\n\n let alreadyRunKeys = executedScripts.get(component)\n\n alreadyRunKeys.push(key)\n\n executedScripts.set(component, alreadyRunKeys)\n}\n\nfunction extractScriptTagContent(rawHtml) {\n let scriptRegex = /<script\\b[^>]*>([\\s\\S]*?)<\\/script>/gm\n let matches = scriptRegex.exec(rawHtml)\n let innards = matches && matches[1] ? matches[1].trim() : ''\n\n return innards\n}\n\nasync function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callback) {\n if (executedAssets.has(key)) return\n\n executedAssets.add(key)\n\n await callback()\n}\n\nasync function addAssetsToHeadTagOfPage(rawHtml) {\n // Rewrite nonces in the asset HTML to match the initial page's nonce.\n // Assets from Livewire update requests have a new nonce, but the browser\n // still enforces the original page's CSP header...\n rawHtml = replaceNoncesInHtml(rawHtml)\n\n let newDocument = (new DOMParser()).parseFromString(rawHtml, \"text/html\")\n let newHead = document.adoptNode(newDocument.head)\n\n for (let child of newHead.children) {\n try {\n await runAssetSynchronously(child)\n } catch (error) {\n // Let's eat any promise rejects so that we don't\n // break the rest of Livewire's handling of the response...\n // Any errors triggered by adding the script tag to the page\n // will still be thrown...\n }\n }\n}\n\nasync function runAssetSynchronously(child) {\n return new Promise((resolve, reject) => {\n if (isScript(child)) {\n let script = cloneScriptTag(child)\n\n // Script assets need to be loaded synchronously so that scripts have\n // their global variables available...\n if (script.src) {\n script.onload = () => resolve()\n script.onerror = () => reject()\n } else {\n resolve()\n }\n\n document.head.appendChild(script)\n } else {\n document.head.appendChild(child)\n\n resolve()\n }\n })\n}\n\nfunction isScript(el) {\n return el.tagName.toLowerCase() === 'script'\n}\n\n", "import Alpine from 'alpinejs'\n\nfunction getAlpineScopeKeys(el) {\n let keys = []\n let currentEl = el\n\n while (currentEl) {\n if (currentEl._x_dataStack && currentEl._x_dataStack.length > 0) {\n // Only read the first scope object -- this is the element's OWN\n // data, not inherited parent scopes. Alpine's addScopeToNode()\n // always puts the element's own data at index 0, followed by\n // the parent chain. Reading all entries would leak parent Alpine\n // scope keys across the Livewire component boundary.\n let ownScope = currentEl._x_dataStack[0]\n\n for (let key of Object.keys(ownScope)) {\n if (! keys.includes(key) && ! key.startsWith('$')) keys.push(key)\n }\n }\n\n // Stop at the Livewire component root element...\n if (currentEl.hasAttribute && currentEl.hasAttribute('wire:id')) break\n\n currentEl = currentEl.parentElement\n }\n\n return keys\n}\n\nexport function evaluateExpression(el, expression, options = {}) {\n if (! expression || expression.trim() === '') return\n\n let result = Alpine.evaluateRaw(el, expression, options)\n\n if (result instanceof Promise) {\n result.catch(() => {})\n }\n\n return result\n}\n\nexport function evaluateActionExpression(el, expression, options = {}) {\n if (! expression || expression.trim() === '') return\n\n let contextualExpression = contextualizeExpression(expression, el)\n\n try {\n let result = Alpine.evaluateRaw(el, contextualExpression, options)\n\n // Silently catch Livewire request failures. These are handled by\n // Livewire at the request level...\n if (result instanceof Promise && result._livewireAction) {\n result.catch(() => {})\n }\n\n return result\n } catch (error) {\n console.warn(`Livewire Expression Error: ${error.message}\\n\\n${ expression ? 'Expression: \\\"' + expression + '\\\"\\n\\n' : '' }`, el)\n\n console.error(error)\n }\n}\n\nexport function contextualizeExpression(expression, el) {\n let SKIP = ['JSON', 'true', 'false', 'null', 'undefined', 'this', '$wire', '$event']\n\n // If an element is provided, collect Alpine scope keys between\n // this element and the Livewire component root so they don't\n // get incorrectly prefixed with $wire.\n if (el) {\n SKIP.push(...getAlpineScopeKeys(el))\n }\n let strings = []\n\n // 1. Yank out string literals so we don't touch them\n let result = expression.replace(/([\"'`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/g, (m) => {\n strings.push(m)\n return `___${strings.length - 1}___`\n })\n\n // 2. Prefix identifiers not after a dot (skip placeholders from step 1)\n // Also skip object keys (identifiers immediately followed by colon)\n result = result.replace(/(^|[^.\\w$])(\\$?[a-zA-Z_]\\w*)/g, (m, pre, ident, offset) => {\n if (SKIP.includes(ident) || /^___\\d+___$/.test(ident)) return pre + ident\n if (result[offset + m.length] === ':') return pre + ident\n return pre + '$wire.' + ident\n })\n\n // 3. Restore strings\n return result.replace(/___(\\d+)___/g, (m, i) => strings[i])\n}\n", "import { evaluateExpression } from '../evaluator'\nimport { findComponentByEl } from '@/store'\nimport { overrideMethod } from '@/$wire'\nimport { on } from '@/hooks'\nimport Alpine from 'alpinejs'\n\nAlpine.magic('js', el => {\n let component = findComponentByEl(el)\n\n return component.$wire.js\n})\n\non('effect', ({ component, effects }) => {\n let js = effects.js\n let xjs = effects.xjs\n\n if (js) {\n Object.entries(js).forEach(([method, body]) => {\n overrideMethod(component, method, () => {\n evaluateExpression(component.el, body)\n })\n })\n }\n\n if (xjs) {\n xjs.forEach(({ expression, params }) => {\n params = Object.values(params)\n\n evaluateExpression(component.el, expression, { scope: component.getJsActions(), params })\n })\n }\n})\n", "import { trigger } from \"@/hooks\"\nimport { findComponentByEl } from \"@/store\"\nimport Alpine from 'alpinejs'\nimport { extractFragmentMetadataFromMarkerNode, isEndFragmentMarker, isStartFragmentMarker } from \"./fragment\"\nimport { transitionDomMutation } from \"./directives/wire-transition\"\n\nexport async function morph(component, el, html) {\n let wrapperTag = getTagName(el.parentElement)\n\n let wrapper = document.createElement(wrapperTag)\n\n wrapper.innerHTML = html\n let parentComponent\n\n try {\n parentComponent = findComponentByEl(el.parentElement)\n } catch (e) {}\n\n parentComponent && (wrapper.__livewire = parentComponent)\n\n let to = wrapper.firstElementChild\n\n // Set the snapshot and effects on the `to` element that way if there's a\n // mismatch or problem the component will able to be re-initialized...\n to.setAttribute('wire:snapshot', component.snapshotEncoded)\n\n // Remove the 'html' key from the effects as the html will be morphed...\n let effects = { ...component.effects }\n delete effects.html\n to.setAttribute('wire:effects', JSON.stringify(effects))\n\n to.__livewire = component\n\n trigger('morph', { el, toEl: to, component })\n\n // Let's first do a lookup of all the child components to see if the component already\n // exists and if so we'll clone it and replace the child component with the clone.\n // This is to ensure that components don't loose state even if there might be a\n // `wire:key` missing from elements within a loop around the component...\n let existingComponentsMap = {}\n\n el.querySelectorAll('[wire\\\\:id]').forEach(component => {\n existingComponentsMap[component.getAttribute('wire:id')] = component\n })\n\n to.querySelectorAll('[wire\\\\:id]').forEach(child => {\n // If the child has a `wire:snapshot` it means it's new, so we don't need to find it...\n if (child.hasAttribute('wire:snapshot')) return\n\n let wireId = child.getAttribute('wire:id')\n let existingComponent = existingComponentsMap[wireId]\n\n if (existingComponent) {\n child.replaceWith(existingComponent.cloneNode(true))\n }\n })\n\n let transitionOptions = component.effects.transition || {}\n\n await transitionDomMutation(el, to, () => {\n Alpine.morph(el, to, getMorphConfig(component))\n }, transitionOptions)\n\n trigger('morphed', { el, component })\n}\n\nexport async function morphFragment(component, startNode, endNode, toHTML) {\n let fromContainer = startNode.parentElement\n let fromContainerTag = getTagName(fromContainer)\n\n let toContainer = document.createElement(fromContainerTag)\n toContainer.innerHTML = toHTML\n toContainer.__livewire = component\n\n // Add the parent component reference to an outer wrapper if it exists...\n let parentElement = component.el.parentElement\n let parentElementTag = getTagName(parentElement)\n\n let parentComponent\n\n try {\n parentComponent = parentElement ? findComponentByEl(parentElement) : null\n } catch (e) {}\n\n if (parentComponent) {\n let parentProviderWrapper = document.createElement(parentElementTag)\n parentProviderWrapper.appendChild(toContainer)\n parentProviderWrapper.__livewire = parentComponent\n }\n\n trigger('island.morph', { startNode, endNode, component })\n\n let transitionOptions = component.effects.transition || {}\n\n // Check if the island's own content has [wire:transition] elements.\n // Without this, the parent element (which contains everything) would be\n // passed to transitionDomMutation, causing it to find [wire:transition]\n // elements outside the island and trigger spurious view transitions...\n let islandHasTransition = false\n let node = startNode.nextSibling\n while (node && node !== endNode) {\n if (node.nodeType === 1 && (node.hasAttribute?.('wire:transition') || node.querySelector?.('[wire\\\\:transition]'))) {\n islandHasTransition = true\n break\n }\n node = node.nextSibling\n }\n\n let fromEl = islandHasTransition ? fromContainer : document.createElement('div')\n\n await transitionDomMutation(fromEl, toContainer, () => {\n Alpine.morphBetween(startNode, endNode, toContainer, getMorphConfig(component))\n }, transitionOptions)\n\n trigger('island.morphed', { startNode, endNode, component })\n}\n\nfunction getMorphConfig(component) {\n return {\n updating: (el, toEl, childrenOnly, skip, skipChildren, skipUntil) => {\n // Skip fragments...\n if (isStartFragmentMarker(el) && isStartFragmentMarker(toEl)) {\n let metadata = extractFragmentMetadataFromMarkerNode(toEl)\n\n if (metadata.mode !== 'morph') {\n skipUntil(node => {\n if (isEndFragmentMarker(node)) {\n let endMarkerMetadata = extractFragmentMetadataFromMarkerNode(node)\n\n return endMarkerMetadata.token === metadata.token\n }\n\n return false\n })\n }\n }\n\n if (isntElement(el)) return\n\n trigger('morph.updating', { el, toEl, component, skip, childrenOnly, skipChildren, skipUntil })\n\n // bypass DOM diffing for children by overwriting the content\n if (el.__livewire_replace === true) el.innerHTML = toEl.innerHTML;\n // completely bypass DOM diffing for this element and all children\n if (el.__livewire_replace_self === true) { el.outerHTML = toEl.outerHTML; return skip(); }\n\n if (el.__livewire_ignore === true) return skip()\n if (el.__livewire_ignore_self === true) childrenOnly()\n if (el.__livewire_ignore_children === true) return skipChildren()\n\n // Children will update themselves.\n if (isComponentRootEl(el) && el.getAttribute('wire:id') !== component.id) return skip()\n\n // Give the root Livewire \"to\" element, the same object reference as the \"from\"\n // element. This ensures new Alpine magics like $wire and @entangle can\n // initialize in the context of a real Livewire component object.\n if (isComponentRootEl(el)) toEl.__livewire = component\n },\n\n updated: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.updated', { el, component })\n },\n\n removing: (el, skip) => {\n if (isntElement(el)) return\n\n trigger('morph.removing', { el, component, skip })\n },\n\n removed: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.removed', { el, component })\n },\n\n adding: (el) => {\n trigger('morph.adding', { el, component })\n },\n\n added: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.added', { el })\n },\n\n key: (el) => {\n if (isntElement(el)) return\n\n return el.hasAttribute(`wire:id`)\n ? el.getAttribute(`wire:id`)\n : // If no component \"id\", then first check for \"wire:key\", then \"id\"\n el.hasAttribute(`wire:key`)\n ? el.getAttribute(`wire:key`)\n : el.id\n },\n\n lookahead: false,\n }\n}\n\nfunction isntElement(el) {\n return typeof el.hasAttribute !== 'function'\n}\n\nfunction isComponentRootEl(el) {\n return el.hasAttribute('wire:id')\n}\n\nexport function getTagName(el) {\n // If the root element is a \"tr\", we need the wrapper to be a \"table\"...\n let tag = el ? el.tagName.toLowerCase() : 'div'\n\n // If the tag is a custom element, we can't instantiate it using the hyphenated\n // tag name, so we need to get the name off the custom element instead...\n let customElement = customElements.get(tag)\n\n return customElement ? customElement.name : tag\n}", "import { globalDirective } from \"@/directives\"\n\nlet defaultName = 'match-element'\n\n// No-op \u2014 viewTransitionName is now set dynamically by transitionDomMutation()\n// to avoid creating permanent stacking contexts...\nglobalDirective('transition', ({ el, directive, cleanup }) => {\n //\n})\n\nfunction setTransitionNames(root, options = {}) {\n root.querySelectorAll('[wire\\\\:transition]').forEach(el => {\n if (el.style.viewTransitionName) return\n\n let name = el.getAttribute('wire:transition')\n\n // When the developer orchestrates a typed swap (e.g. #[Transition('forward')]),\n // unnamed wire:transition elements stay unnamed so they ride with the parent's\n // snapshot instead of becoming independent groups with the browser's default fade...\n if (! name && options.type) return\n\n el.style.viewTransitionName = name || defaultName\n })\n}\n\nfunction clearTransitionNames(root) {\n root.querySelectorAll('[wire\\\\:transition]').forEach(el => {\n el.style.viewTransitionName = ''\n })\n}\n\nexport async function transitionDomMutation(fromEl, toEl, callback, options = {}) {\n // Skip transitions entirely if requested...\n if (options.skip) return callback()\n\n // Only transition if there is a [wire:transition] element within either the from or to elements...\n if (! fromEl.querySelector('[wire\\\\:transition]') && ! toEl.querySelector('[wire\\\\:transition]')) return callback()\n\n // Check if View Transitions API is supported...\n if (typeof document.startViewTransition !== 'function') {\n return callback()\n }\n\n // Skip entirely if a modal dialog is already open (transitions behind\n // a dialog are invisible to the user and the ::view-transition pseudo-\n // elements would paint above the dialog during animation)...\n if (document.querySelector('dialog:modal')) return callback()\n\n // Set transition names right before the transition starts (not permanently)...\n setTransitionNames(fromEl, options)\n\n // Disable root transitions for the page...\n let style = document.createElement('style')\n\n style.textContent = `\n @media (prefers-reduced-motion: reduce) {\n ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) {\n animation: none !important;\n }\n }\n\n ::view-transition-old(root) {\n animation: none !important;\n opacity: 0 !important;\n }\n\n ::view-transition-new(root) {\n animation: none !important;\n opacity: 1 !important;\n }\n `\n\n document.head.appendChild(style)\n\n let update = () => {\n callback()\n\n // After a morph, newly added wire:transition elements need their viewTransitionName\n // set synchronously. Alpine's MutationObserver would normally handle this, but its\n // internal queueMicrotask batching delays processing by one microtask hop \u2014 and the\n // View Transitions API's \"activate\" step captures the new DOM state in between,\n // before Alpine has a chance to initialize the directive...\n setTransitionNames(fromEl, options)\n }\n\n let transitionConfig = { update }\n\n // Add transition types if provided...\n if (options.type) {\n transitionConfig.types = [options.type]\n }\n\n let cleanup = () => {\n style.remove()\n clearTransitionNames(fromEl)\n }\n\n // Watch for modal dialogs opening during the transition (e.g., via Alpine x-effect).\n // ::view-transition pseudo-elements paint above the top layer, so elements with\n // wire:transition would visually appear above dialog modals during animation.\n // This observer catches showModal() the instant it sets the `open` attribute\n // and skips the transition before the browser paints a frame...\n let skipOnDialog = (transition) => {\n let observer = new MutationObserver(() => {\n if (document.querySelector('dialog:modal')) {\n transition.skipTransition()\n observer.disconnect()\n }\n })\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['open'],\n subtree: true,\n })\n\n transition.finished.finally(() => observer.disconnect())\n }\n\n try {\n let transition = document.startViewTransition(transitionConfig)\n\n skipOnDialog(transition)\n\n transition.finished.finally(cleanup)\n\n await transition.updateCallbackDone\n } catch (e) {\n // Firefox 144+ supports View Transitions but only with a callback, not a config object (no transition types support)\n let transition = document.startViewTransition(update)\n\n skipOnDialog(transition)\n\n transition.finished.finally(cleanup)\n\n await transition.updateCallbackDone\n }\n}\n", "import { morph } from \"@/morph\";\nimport { interceptMessage } from \"@/request\";\n\ninterceptMessage(({ message, onSuccess }) => {\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let html = payload.effects.html\n\n if (! html) return\n\n await morph(message.component, message.component.el, html)\n })\n })\n})\n", "import { dispatch, dispatchEl, dispatchRef, dispatchSelf, dispatchTo } from '@/events'\nimport { on } from '@/hooks'\n\non('effect', ({ component, effects }) => {\n // Wrapping this in a triple queueMicrotask...\n // The first one puts it after all other \"effect\" hooks...\n // The second one puts it after all reactive Alpine effects\n // (that are processed via flushJobs in scheduler)...\n // The third one puts it after morph changes have been applied...\n queueMicrotask(() => {\n queueMicrotask(() => {\n queueMicrotask(() => {\n dispatchEvents(component, effects.dispatches || [])\n })\n })\n })\n})\n\nfunction dispatchEvents(component, dispatches) {\n dispatches.forEach(({ name, params = {}, self = false, component: componentName, ref, el }) => {\n if (self) dispatchSelf(component, name, params)\n else if (componentName) dispatchTo(componentName, name, params)\n else if (ref) dispatchRef(component, ref, name, params)\n else if (el) dispatchEl(component, el, name, params)\n else dispatch(component, name, params)\n })\n}\n", "import { getDirectives } from '@/directives'\nimport { on } from '@/hooks'\nimport { Bag } from '@/utils'\nimport Alpine from 'alpinejs'\n\nlet cleanups = new Bag\n\n// Adding a setTimeout here so that these event listeners are\n// registered AFTER most other event listenrs, this way, we\n// can call \"stopPropagation\" for things like wire:confirm\non('directive.init', ({ el, directive, cleanup, component }) => setTimeout(() => {\n if (directive.value !== 'submit') return\n\n // Livewire will clean it all up automatically when the form\n // submission returns and the new DOM lacks these additions...\n el.addEventListener('submit', () => {\n // If using wire:submit=\"$parent...\", we will need to use\n // the parent ID as a reference for undoing because it's\n // the ID that will come back from the network request.\n let componentId = directive.expression.startsWith('$parent')\n ? component.parent.id\n : component.id\n\n let cleanup = disableForm(el)\n\n cleanups.add(componentId, cleanup)\n })\n}))\n\non('commit', ({ component, respond }) => {\n respond(() => {\n cleanups.each(component.id, i => i())\n cleanups.remove(component.id)\n })\n})\n\nfunction disableForm(formEl) {\n let undos = []\n\n Alpine.walk(formEl, (el, skip) => {\n if (! formEl.contains(el)) return\n\n if (el.hasAttribute('wire:ignore')) return skip()\n\n if (shouldMarkDisabled(el)) {\n undos.push(markDisabled(el))\n } else if (shouldMarkReadOnly(el)) {\n undos.push(markReadOnly(el))\n }\n })\n\n return () => {\n while (undos.length > 0) undos.shift()()\n }\n}\n\nfunction shouldMarkDisabled(el) {\n let tag = el.tagName.toLowerCase()\n let inputTypesThatDontSupportReadonly = [\n 'hidden', 'range', 'color', 'checkbox', 'radio',\n 'file', 'submit', 'image', 'reset', 'button'\n ]\n\n if (tag === 'select') return true\n if (tag === 'button' && el.type === 'submit') return true\n if (tag === 'input' && inputTypesThatDontSupportReadonly.includes(el.type)) return true\n\n return false\n}\n\nfunction shouldMarkReadOnly(el) {\n return ['input', 'textarea'].includes(el.tagName.toLowerCase())\n}\n\nfunction markDisabled(el) {\n let undo = el.disabled\n ? () => {}\n : () => el.disabled = false\n\n el.disabled = true\n\n return undo\n}\n\nfunction markReadOnly(el) {\n let undo = el.readOnly\n ? () => {}\n : () => el.readOnly = false\n\n el.readOnly = true\n\n return undo\n}\n", "import { on } from '@/hooks'\n\non('commit', ({ succeed }) => {\n succeed(({ effects }) => {\n let download = effects.download\n\n if (! download) return\n\n // We need to use window.webkitURL so downloads work on iOS Safari.\n let urlObject = window.webkitURL || window.URL\n\n let url = urlObject.createObjectURL(\n base64toBlob(download.content, download.contentType)\n )\n\n let invisibleLink = document.createElement('a')\n\n invisibleLink.style.display = 'none'\n invisibleLink.href = url\n invisibleLink.download = download.name\n\n document.body.appendChild(invisibleLink)\n\n invisibleLink.click()\n\n setTimeout(function() {\n urlObject.revokeObjectURL(url)\n }, 0);\n })\n})\n\nfunction base64toBlob(b64Data, contentType = '', sliceSize = 512) {\n const byteCharacters = atob(b64Data)\n const byteArrays = []\n\n if (contentType === null) contentType = ''\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n let slice = byteCharacters.slice(offset, offset + sliceSize)\n\n let byteNumbers = new Array(slice.length)\n\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i)\n }\n\n let byteArray = new Uint8Array(byteNumbers)\n\n byteArrays.push(byteArray)\n }\n\n return new Blob(byteArrays, { type: contentType });\n}\n", "import { on } from '@/hooks'\nimport { dataGet } from '@/utils'\nimport Alpine from 'alpinejs'\nimport { track } from '@/plugins/history'\n\non('effect', ({ component, effects, cleanup }) => {\n let queryString = effects['url']\n\n if (! queryString) return\n\n Object.entries(queryString).forEach(([key, value]) => {\n let { name, as, use, alwaysShow, except } = normalizeQueryStringEntry(key, value)\n\n if (! as) as = name\n\n let initialValue = [false, null, undefined].includes(except) ? dataGet(component.ephemeral, name) : except\n\n let { replace, push, pop } = track(as, initialValue, alwaysShow, except)\n\n if (use === 'replace') {\n let effectReference = Alpine.effect(() => {\n replace(dataGet(component.reactive, name))\n })\n\n cleanup(() => Alpine.release(effectReference))\n } else if (use === 'push') {\n let popNavigating = false\n\n let forgetCommitHandler = on('commit', ({ component: commitComponent, succeed }) => {\n if (component !== commitComponent) return\n\n let beforeValue = dataGet(component.canonical, name)\n\n succeed(() => {\n let afterValue = dataGet(component.canonical, name)\n\n if (JSON.stringify(beforeValue) === JSON.stringify(afterValue)) return\n\n // If we're handling a popstate (back/forward navigation), use\n // replaceState instead of pushState so we don't wipe out the\n // forward history entries...\n if (popNavigating) {\n replace(afterValue)\n } else {\n push(afterValue)\n }\n })\n })\n\n let forgetPopHandler = pop(async newValue => {\n popNavigating = true\n\n await component.$wire.set(name, newValue)\n\n // @todo: this is the absolute worst thing ever I'm so sorry this needs to be refactored stat:\n document.querySelectorAll('input').forEach(el => {\n el._x_forceModelUpdate && el._x_forceModelUpdate(el._x_model.get())\n })\n\n // Use requestAnimationFrame to ensure the flag stays true through\n // the succeed callback which fires in a requestAnimationFrame...\n requestAnimationFrame(() => popNavigating = false)\n })\n\n // If the current property value differs from the initial value\n // (e.g. restored from session), sync the URL via replaceState...\n let currentValue = dataGet(component.ephemeral, name)\n\n if (JSON.stringify(currentValue) !== JSON.stringify(initialValue)) {\n replace(currentValue)\n }\n\n cleanup(() => {\n forgetCommitHandler()\n forgetPopHandler()\n })\n }\n })\n})\n\nfunction normalizeQueryStringEntry(key, value) {\n let defaults = { use: 'replace', alwaysShow: false }\n\n if (typeof value === 'string') {\n return {...defaults, name: value, as: value }\n } else {\n let fullerDefaults = {...defaults, name: key, as: key }\n\n return {...fullerDefaults, ...value }\n }\n}\n", "import { on } from '@/hooks'\nimport { dispatchSelf } from '@/events'\n\non('request', ({ options }) => {\n if (window.Echo) {\n options.headers['X-Socket-ID'] = window.Echo.socketId()\n }\n})\n\non('effect', ({ component, effects }) => {\n let listeners = effects.listeners || []\n\n listeners.forEach(event => {\n if (event.startsWith('echo')) {\n if (typeof window.Echo === 'undefined') {\n console.warn('Laravel Echo cannot be found')\n\n return\n }\n\n let event_parts = event.split(/(echo:|echo-)|:|,/)\n\n if (event_parts[1] == 'echo:') {\n event_parts.splice(2, 0, 'channel', undefined)\n }\n\n if (event_parts[2] == 'notification') {\n event_parts.push(undefined, undefined)\n }\n\n let [\n s1,\n signature,\n channel_type,\n s2,\n channel,\n s3,\n event_name,\n ] = event_parts\n\n if (['channel', 'private', 'encryptedPrivate'].includes(channel_type)) {\n let handler = e => dispatchSelf(component, event, [e])\n\n window.Echo[channel_type](channel).listen(event_name, handler)\n\n component.addCleanup(() => {\n window.Echo[channel_type](channel).stopListening(event_name, handler)\n })\n } else if (channel_type == 'presence') {\n if (['here', 'joining', 'leaving'].includes(event_name)) {\n window.Echo.join(channel)[event_name](e => {\n dispatchSelf(component, event, [e])\n })\n\n component.addCleanup(() => {\n window.Echo.leave(channel)\n })\n } else{\n let handler = e => dispatchSelf(component, event, [e])\n\n window.Echo.join(channel).listen(event_name, handler)\n\n component.addCleanup(() => {\n window.Echo.leave(channel)\n })\n }\n } else if (channel_type == 'notification') {\n window.Echo.private(channel).notification(notification => {\n dispatchSelf(component, event, [notification])\n })\n\n component.addCleanup(() => {\n window.Echo.private(channel).stopListening('.Illuminate\\\\Notifications\\\\Events\\\\BroadcastNotificationCreated')\n })\n } else {\n console.warn('Echo channel type not yet supported')\n }\n }\n })\n})\n", "import { findRefEl } from '@/features/supportRefs'\nimport { interceptMessage } from '@/request'\nimport { findComponent } from '@/store'\n\ninterceptMessage(({ message, onStream }) => {\n onStream(({ json }) => {\n let { id, type, name, el, ref, content, mode } = json\n\n // Early return for islands because they are handled by the islands feature...\n if (type === 'island') return\n\n let component = findComponent(id)\n\n let targetEl = null\n\n if (type === 'directive') {\n const replaceEl = component.el.querySelector(`[wire\\\\:stream\\\\.replace=\"${name}\"]`)\n\n if (replaceEl) {\n targetEl = replaceEl\n mode = 'replace'\n } else {\n targetEl = component.el.querySelector(`[wire\\\\:stream=\"${name}\"]`)\n }\n } else if (type === 'ref') {\n targetEl = findRefEl(component, ref)\n } else if (type === 'element') {\n targetEl = component.el.querySelector(el)\n }\n\n if (! targetEl) return // Noop...\n\n if (mode === 'replace') {\n targetEl.innerHTML = content\n } else {\n targetEl.insertAdjacentHTML('beforeend', content)\n }\n })\n})\n", "document.addEventListener('livewire:initialized', () => {\n shouldHideProgressBar() && Alpine.navigate.disableProgressBar()\n})\n\ndocument.addEventListener('alpine:navigate', e => forwardEvent('livewire:navigate', e))\ndocument.addEventListener('alpine:navigating', e => forwardEvent('livewire:navigating', e))\ndocument.addEventListener('alpine:navigated', e => forwardEvent('livewire:navigated', e))\n\nfunction forwardEvent(name, original) {\n let event = new CustomEvent(name, { cancelable: true, bubbles: true, detail: original.detail })\n\n document.dispatchEvent(event)\n\n if (event.defaultPrevented) {\n original.preventDefault()\n }\n}\n\nexport function shouldRedirectUsingNavigateOr(effects, url, or) {\n let forceNavigate = effects.redirectUsingNavigate\n\n if (forceNavigate) {\n Alpine.navigate(url)\n } else {\n or()\n }\n}\n\nfunction shouldHideProgressBar() {\n if (!! document.querySelector('[data-no-progress-bar]')) return true\n\n if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === 'data-no-progress-bar') return true\n\n return false\n}\n", "import { on } from \"@/hooks\"\nimport { shouldRedirectUsingNavigateOr } from \"./supportNavigate\"\n\non('effect', ({ effects, request }) => {\n if (! effects['redirect']) return\n\n let preventDefault = false\n\n request.invokeOnRedirect({ url: effects['redirect'], preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n let url = effects['redirect']\n\n shouldRedirectUsingNavigateOr(effects, url, () => {\n window.location.href = url\n })\n})\n", "import { closestFragment, extractFragmentMetadataFromHtml, extractInnerHtmlFromFragmentHtml, findFragment } from '@/fragment'\nimport { interceptAction, interceptMessage } from '@/request'\nimport { morphFragment, getTagName } from '@/morph'\n\ninterceptAction(({ action }) => {\n let origin = action.origin\n\n if (! origin) return\n\n let { el, directive } = origin\n\n // Check for wire:island with modifiers (e.g., wire:island.append=\"foo\")\n let islandAttr = Array.from(el.attributes).find(attr => attr.name.startsWith('wire:island'))\n\n if (islandAttr) {\n let islandName = islandAttr.value\n\n // Parse modifiers from attribute name (e.g., \"wire:island.append\" -> [\"append\"])\n let attrParts = islandAttr.name.split('.')\n let isPrepend = attrParts.includes('prepend')\n let isAppend = attrParts.includes('append')\n\n let mode = isPrepend ? 'prepend' : (isAppend ? 'append' : 'morph')\n\n action.mergeMetadata({\n island: {\n name: islandName,\n mode: mode,\n }\n })\n\n return\n }\n\n let fragment = closestIsland(origin.el)\n\n if (! fragment) return\n\n action.mergeMetadata({\n island: {\n name: fragment.metadata.name,\n mode: 'morph',\n }\n })\n})\n\ninterceptMessage(({ message, onSuccess, onStream }) => {\n onStream(({ json }) => {\n let { type, islandFragment } = json\n\n if (type !== 'island') return\n\n renderIsland(message.component, islandFragment)\n })\n\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let fragments = payload.effects.islandFragments || []\n\n fragments.forEach(async fragmentHtml => {\n await renderIsland(message.component, fragmentHtml)\n })\n })\n })\n})\n\nexport function closestIsland(el) {\n return closestFragment(el, {\n isMatch: ({ type }) => {\n return type === 'island'\n },\n })\n}\n\nexport async function renderIsland(component, islandHtml) {\n let metadata = extractFragmentMetadataFromHtml(islandHtml)\n\n let fragment = findFragment(component.el, {\n isMatch: ({ type, token }) => {\n return type === metadata.type && token === metadata.token\n },\n })\n\n if (! fragment) return\n\n let incomingMetadata = extractFragmentMetadataFromHtml(islandHtml)\n let strippedContent = extractInnerHtmlFromFragmentHtml(islandHtml)\n\n let parentElementTag = getTagName(fragment.startMarkerNode.parentElement)\n\n let mode = incomingMetadata.mode || 'morph'\n\n if (mode === 'morph') {\n await morphFragment(component, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent)\n } else if (mode === 'append') {\n fragment.append(parentElementTag, strippedContent)\n } else if (mode === 'prepend') {\n fragment.prepend(parentElementTag, strippedContent)\n }\n}\n", "import { extractFragmentMetadataFromHtml, extractInnerHtmlFromFragmentHtml, findFragment } from '@/fragment'\nimport { interceptMessage } from '@/request'\nimport { findComponent } from '@/store'\nimport { morphFragment } from '@/morph'\n\ninterceptMessage(({ message, onSuccess, onStream }) => {\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let fragments = payload.effects.slotFragments || []\n\n fragments.forEach(async fragmentHtml => {\n await renderSlot(message.component, fragmentHtml)\n })\n })\n })\n})\n\nexport async function renderSlot(component, fragmentHtml) {\n let metadata = extractFragmentMetadataFromHtml(fragmentHtml)\n\n let targetComponent = findComponent(metadata.id)\n\n let fragment = findFragment(targetComponent.el, {\n isMatch: ({ name, token }) => {\n return name === metadata.name && token === metadata.token\n },\n })\n\n if (! fragment) return\n\n let strippedContent = extractInnerHtmlFromFragmentHtml(fragmentHtml)\n\n await morphFragment(targetComponent, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent)\n}\n", "import { interceptMessage } from '@/request'\n\ninterceptMessage(({ message, onSend, onFinish }) => {\n let undos = []\n\n onSend(() => {\n message.actions.forEach(action => {\n let origin = action.origin\n\n if (! origin) return\n\n // Use targetEl if explicitly set (can be null to skip data-loading entirely)\n let el = origin.hasOwnProperty('targetEl') ? origin.targetEl : origin.el\n\n // Skip if no element to apply data-loading to\n if (! el) return\n\n el.setAttribute('data-loading', 'true')\n\n undos.push(() => {\n el.removeAttribute('data-loading')\n })\n })\n })\n\n onFinish(() => undos.forEach(undo => undo()))\n})\n", "import { globalDirective } from \"@/directives\"\nimport Alpine from 'alpinejs'\n\nAlpine.addInitSelector(() => `[wire\\\\:current]`)\n\nlet onPageChanges = new Map\n\ndocument.addEventListener('livewire:navigated', () => {\n onPageChanges.forEach(i => i(new URL(window.location.href)))\n})\n\nglobalDirective('current', ({ el, directive, cleanup }) => {\n let expression = directive.expression\n\n let options = {\n exact: directive.modifiers.includes('exact'),\n strict: directive.modifiers.includes('strict'),\n ignore: directive.modifiers.includes('ignore'),\n }\n\n if (options.ignore) return\n\n // Fragment hrefs aren't supported as of yet...\n if (expression.startsWith('#')) return\n\n // If there is no href, let's not do anything...\n if (! el.hasAttribute('href')) return\n\n let href = el.getAttribute('href')\n\n let hrefUrl = new URL(href, window.location.href)\n\n let classes = expression.split(' ').filter(String)\n\n let refreshCurrent = url => {\n if (pathMatches(hrefUrl, url, options)) {\n el.classList.add(...classes)\n el.setAttribute('data-current', '')\n } else {\n el.classList.remove(...classes)\n el.removeAttribute('data-current')\n }\n }\n\n refreshCurrent(new URL(window.location.href))\n\n onPageChanges.set(el, refreshCurrent)\n\n cleanup(() => onPageChanges.delete(el))\n})\n\nexport function pathMatches(hrefUrl, actualUrl, options = {}) {\n // If the domains/hostnames don't match, we are not going to match...\n if (hrefUrl.hostname !== actualUrl.hostname) return false\n\n // Remove trailing slashes for consistency (if not .strict)...\n let hrefPath = options.strict ? hrefUrl.pathname : hrefUrl.pathname.replace(/\\/+$/, '')\n let actualPath = options.strict ? actualUrl.pathname : actualUrl.pathname.replace(/\\/+$/, '')\n\n if (options.exact) {\n return hrefPath === actualPath\n }\n\n let hrefPathSegments = hrefPath.split('/')\n let actualPathSegments = actualPath.split('/')\n\n\n for (let i = 0; i < hrefPathSegments.length; i++) {\n if (hrefPathSegments[i] !== actualPathSegments[i]) return false\n }\n\n return true\n}\n", "import Alpine from 'alpinejs'\n\n// Export all wire:navigate variations for use in other files\nexport let wireNavigateSelectors = [\n '[wire\\\\:navigate]',\n '[wire\\\\:navigate\\\\.hover]',\n '[wire\\\\:navigate\\\\.preserve-scroll]',\n '[wire\\\\:navigate\\\\.preserve-scroll\\\\.hover]',\n '[wire\\\\:navigate\\\\.hover\\\\.preserve-scroll]',\n]\n\n// Combined selector for querying all wire:navigate elements\nexport let wireNavigateSelector = wireNavigateSelectors.join(', ')\n\n// Attribute to Alpine directive mapping\nlet attributeMap = {\n 'wire:navigate': 'x-navigate',\n 'wire:navigate.hover': 'x-navigate.hover',\n 'wire:navigate.preserve-scroll': 'x-navigate.preserve-scroll',\n 'wire:navigate.preserve-scroll.hover': 'x-navigate.preserve-scroll.hover',\n 'wire:navigate.hover.preserve-scroll': 'x-navigate.hover.preserve-scroll',\n}\n\n// Register all selectors with Alpine\nwireNavigateSelectors.forEach(selector => {\n Alpine.addInitSelector(() => selector)\n})\n\nAlpine.interceptInit(\n Alpine.skipDuringClone(el => {\n // Find which wire:navigate attribute this element has\n for (let [wireAttr, alpineDirective] of Object.entries(attributeMap)) {\n if (el.hasAttribute(wireAttr)) {\n Alpine.bind(el, { [alpineDirective]: true })\n break\n }\n }\n })\n)\n\ndocument.addEventListener('alpine:navigating', () => {\n // Before navigating away, we'll inscribe the latest state of each component\n // in their HTML so that upon return, they will have the latest state...\n Livewire.all().forEach(component => {\n component.inscribeSnapshotAndEffectsOnElement()\n })\n})\n", "import { pathMatches } from '@/directives/wire-current'\nimport { wireNavigateSelector } from '@/directives/wire-navigate'\n\ndocument.addEventListener('livewire:navigated', () => {\n updateNavigateLinks()\n})\n\n// Also run on initial page load\ndocument.addEventListener('DOMContentLoaded', () => {\n updateNavigateLinks()\n})\n\nfunction updateNavigateLinks() {\n let currentUrl = new URL(window.location.href)\n let options = {\n exact: true,\n }\n\n // Find all links with any wire:navigate variation\n document.querySelectorAll(wireNavigateSelector).forEach(el => {\n // If the element has `wire:current` then the user might want to specify strict or \n // exact matching, so we will just return early so we don't override that...\n if (Array.from(el.attributes).some(attr => attr.name.startsWith('wire:current'))) return\n\n // Fragment hrefs aren't supported...\n let href = el.getAttribute('href')\n\n if (! href || href.startsWith('#')) return\n\n try {\n let hrefUrl = new URL(href, window.location.href)\n\n // Check if this link matches the current URL (using default partial matching)\n if (pathMatches(hrefUrl, currentUrl, options)) {\n el.setAttribute('data-current', '')\n } else {\n el.removeAttribute('data-current')\n }\n } catch (e) {\n // Invalid URL, skip\n }\n })\n}\n", "import { interceptMessage } from '@/request'\n\ninterceptMessage(({ message, onSuccess }) => {\n onSuccess(({ onSync, onMorph, onRender }) => {\n message.actions.forEach(action => {\n let origin = action.origin\n\n if (! origin || ! origin.directive) return\n\n let directive = origin.directive\n\n if (! directive.modifiers.includes('preserve-scroll')) return\n\n let oldHeight\n let oldScroll\n\n onSync(() => {\n oldHeight = document.body.scrollHeight\n oldScroll = window.scrollY\n })\n\n onMorph(async () => {\n let heightDiff = document.body.scrollHeight - oldHeight\n window.scrollTo(0, oldScroll + heightDiff)\n\n oldHeight = null\n oldScroll = null\n })\n })\n })\n})\n", "import Alpine from 'alpinejs'\nimport { extractDirective } from '@/directives'\nimport { evaluateActionExpression } from '@/evaluator'\nimport { findComponentByEl } from '@/store'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:intersect')) {\n let { name, value } = el.attributes[i]\n\n let directive = extractDirective(el, name)\n\n let modifierString = name.split('wire:intersect')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-intersect' + modifierString](e) {\n directive.eventContext = e\n\n let component = findComponentByEl(el, false)\n\n if (! component) return\n\n component.addActionContext({\n el,\n directive,\n })\n\n evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n", "import { setNextActionOrigin } from '@/request'\nimport { evaluateActionExpression } from '../evaluator'\nimport Alpine from 'alpinejs'\nimport { extractDirective } from '@/directives'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:sort:item')) {\n let directive = extractDirective(el, el.attributes[i].name)\n\n let modifierString = directive.modifiers.join('.')\n\n let expression = directive.expression\n\n Alpine.bind(el, {\n ['x-sort:item' + modifierString]() {\n return expression\n }\n })\n } else if (el.attributes[i].name.startsWith('wire:sort:group-id')) {\n // This will get read by the wire:sort handler below...\n continue\n } else if (el.attributes[i].name.startsWith('wire:sort:group')) {\n // This will get picked up by Alpine's x-sort source...\n return\n } else if (el.attributes[i].name.startsWith('wire:sort')) {\n let directive = extractDirective(el, el.attributes[i].name)\n\n let attribute = directive.rawName.replace('wire:', 'x-')\n\n // Strip .async from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('async')) {\n attribute = attribute.replace('.async', '')\n }\n\n // Strip .renderless from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('renderless')) {\n attribute = attribute.replace('.renderless', '')\n }\n\n // Strip .prepend from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('prepend')) {\n attribute = attribute.replace('.prepend', '')\n }\n\n // Strip .append from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('append')) {\n attribute = attribute.replace('.append', '')\n }\n\n let expression = directive.expression\n\n Alpine.bind(el, {\n [attribute]() {\n setNextActionOrigin({ el, directive })\n\n // Alpine's x-sort provides $position as the raw DOM index (e.newIndex\n // from SortableJS), which counts ALL children including non-sortable\n // siblings like wire:sort:ignore / x-sort:ignore elements. Recalculate\n // as the index among only sortable items (wire:sort:item / x-sort:item).\n let sortableChildren = Array.from(el.children).filter(child =>\n child.hasAttribute('x-sort:item') || child.hasAttribute('wire:sort:item')\n )\n let itemPosition = sortableChildren.findIndex(child => child._x_sort_key === this.$item)\n let position = itemPosition !== -1 ? itemPosition : this.$position\n\n let params = [this.$item, position]\n let scope = { $item: this.$item, $position: position }\n\n let sortId = el.getAttribute('wire:sort:group-id')\n\n if (sortId !== null) {\n params.push(sortId)\n scope.$id = sortId\n }\n\n evaluateActionExpression(el, expression, { scope, params })\n }\n })\n }\n }\n})", "import { on } from '@/hooks'\nimport { getModuleUrl, getNonce } from '@/utils'\n\nlet loadedStyles = new Set()\n\non('effect', ({ component, effects }) => {\n // Handle scoped styles\n if (effects.styleModule) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/css/${encodedName}.css?v=${effects.styleModule}`\n\n if (!loadedStyles.has(path)) {\n loadedStyles.add(path)\n injectStylesheet(path)\n }\n }\n\n // Handle global styles\n if (effects.globalStyleModule) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/css/${encodedName}.global.css?v=${effects.globalStyleModule}`\n\n if (!loadedStyles.has(path)) {\n loadedStyles.add(path)\n injectStylesheet(path)\n }\n }\n})\n\nfunction injectStylesheet(href) {\n let link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = href\n\n let nonce = getNonce()\n if (nonce) link.nonce = nonce\n\n document.head.appendChild(link)\n}\n", "import { WeakBag } from './utils'\n\nlet callbacksByComponent = new WeakBag\n\nexport function debounceByComponent(component, callback, time) {\n // Prepare yourself for what's happening here.\n // Any text input with wire:model on it should be \"debounced\" by ~150ms by default.\n // We can't use a simple debounce function because we need a way to clear all the pending\n // debounces if a user submits a form or performs some other action.\n // This is a modified debounce function that acts just like a debounce, except it stores\n // the pending callbacks in a global property so we can \"clear them\" on command instead\n // of waiting for their setTimeouts to expire. I know.\n\n // This is a \"null\" callback. Each wire:model will resister one of these upon initialization.\n let callbackRegister = { callback: () => { } }\n callbacksByComponent.add(component, callbackRegister)\n\n // This is a normal \"timeout\" for a debounce function.\n var timeout\n\n return e => {\n clearTimeout(timeout)\n\n timeout = setTimeout(() => {\n callback(e)\n timeout = undefined\n\n // Because we just called the callback, let's return the\n // callback register to it's normal \"null\" state.\n callbackRegister.callback = () => { }\n }, time)\n\n // Register the current callback in the register as a kind-of \"escape-hatch\".\n callbackRegister.callback = () => {\n clearTimeout(timeout)\n callback(e)\n }\n }\n}\n\nexport function callAndClearComponentDebounces(component, callback) {\n // This is to protect against the following scenario:\n // A user is typing into a debounced input, and hits the enter key.\n // If the enter key submits a form or something, the submission\n // will happen BEFORE the model input finishes syncing because\n // of the debounce. This makes sure to clear anything in the debounce queue.\n\n callbacksByComponent.each(component, callbackRegister => {\n callbackRegister.callback()\n callbackRegister.callback = () => { }\n })\n\n callback()\n}\n", "import { callAndClearComponentDebounces } from '@/debounce'\nimport { customDirectiveHasBeenRegistered } from '@/directives'\nimport { on } from '@/hooks'\nimport { setNextActionOrigin, setNextActionInterceptor } from '@/request'\nimport Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\non('directive.init', ({ el, directive, cleanup, component }) => {\n if (['snapshot', 'effects', 'model', 'init', 'loading', 'poll', 'ignore', 'id', 'data', 'key', 'target', 'dirty', 'sort'].includes(directive.value)) return\n if (customDirectiveHasBeenRegistered(directive.value)) return\n\n let attribute = directive.rawName.replace('wire:', 'x-on:')\n\n // Automatically add .prevent to wire:submit, if they didn't add it themselves...\n if (directive.value === 'submit' && ! directive.modifiers.includes('prevent')) {\n attribute = attribute + '.prevent'\n }\n\n // Strip .async from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('async')) {\n attribute = attribute.replace('.async', '')\n }\n\n // Strip .renderless from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('renderless')) {\n attribute = attribute.replace('.renderless', '')\n }\n\n // Strip .prepend from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('prepend')) {\n attribute = attribute.replace('.prepend', '')\n }\n\n // Strip .append from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('append')) {\n attribute = attribute.replace('.append', '')\n }\n\n let cleanupBinding = Alpine.bind(el, {\n [attribute](e) {\n directive.eventContext = e\n directive.wire = component.$wire\n\n let execute = () => {\n callAndClearComponentDebounces(component, () => {\n // For wire:submit, apply data-loading to the submit button, not the form\n if (directive.value === 'submit') {\n let submitButton = e.submitter || el.querySelector('button[type=\"submit\"], input[type=\"submit\"]')\n setNextActionOrigin({ el, directive, targetEl: submitButton })\n } else {\n setNextActionOrigin({ el, directive })\n }\n\n // Check for Livewire event options in $event.detail.livewire\n let livewireOptions = e.detail?.livewire\n\n if (livewireOptions?.interceptAction) {\n setNextActionInterceptor(livewireOptions.interceptAction)\n }\n\n let expression = directive.expression\n\n // Handle defaultParams - if expression has no parentheses, append the default params\n // This uses a simple heuristic: if the expression contains '(', we assume params\n // are already provided. This works for common cases like \"someMethod\" but will\n // skip adding params for edge cases like \"someMethod.bind(this)\" or \"obj['method()']\"\n if (livewireOptions?.defaultParams !== undefined && !expression.includes('(')) {\n let params = Array.isArray(livewireOptions.defaultParams)\n ? livewireOptions.defaultParams\n : [livewireOptions.defaultParams]\n expression = expression + '(' + params.map((p) => JSON.stringify(p)).join(', ') + ')'\n }\n\n evaluateActionExpression(el, expression, { scope: { $event: e } })\n })\n }\n\n // Account for the existance of wire:confirm=\"...\" on the action...\n if (el.__livewire_confirm) {\n el.__livewire_confirm(() => {\n execute()\n }, () => {\n e.stopImmediatePropagation()\n })\n } else {\n execute()\n }\n }\n })\n\n cleanup(cleanupBinding)\n})\n", "import { directive } from \"@/directives\"\n\ndirective('confirm', ({ el, directive }) => {\n let message = directive.expression\n let shouldPrompt = directive.modifiers.includes('prompt')\n\n // Convert sanitized linebreaks (\"\\n\") to real line breaks...\n message = message.replaceAll('\\\\n', '\\n')\n\n if (message === '') message = 'Are you sure?'\n\n el.__livewire_confirm = (action, instead) => {\n if (shouldPrompt) {\n let [question, expected] = message.split('|')\n\n if (! expected) {\n console.warn('Livewire: Must provide expectation with wire:confirm.prompt')\n } else {\n let input = prompt(question)\n\n if (input === expected) {\n action()\n } else {\n instead()\n }\n }\n } else {\n if (confirm(message)) action()\n else instead()\n }\n }\n})\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive } from '@/directives'\n\nlet offlineHandlers = new Set\nlet onlineHandlers = new Set\n\nwindow.addEventListener('offline', () => offlineHandlers.forEach(i => i()))\nwindow.addEventListener('online', () => onlineHandlers.forEach(i => i()))\n\ndirective('offline', ({ el, directive, cleanup }) => {\n let setOffline = () => toggleBooleanStateDirective(el, directive, true)\n let setOnline = () => toggleBooleanStateDirective(el, directive, false)\n\n offlineHandlers.add(setOffline)\n onlineHandlers.add(setOnline)\n\n cleanup(() => {\n offlineHandlers.delete(setOffline)\n onlineHandlers.delete(setOnline)\n })\n})\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive, getDirectives } from \"@/directives\"\nimport { closestIsland } from '@/features/supportIslands'\nimport { interceptMessage } from '@/request'\nimport { listen } from '@/utils'\n\ndirective('loading', ({ el, directive, component, cleanup }) => {\n let { targets, inverted } = getTargets(el)\n\n let [delay, abortDelay] = applyDelay(directive)\n\n let cleanupA = whenTargetsArePartOfRequest(component, el, targets, inverted, [\n () => delay(() => toggleBooleanStateDirective(el, directive, true)),\n () => abortDelay(() => toggleBooleanStateDirective(el, directive, false)),\n ])\n\n let cleanupB = whenTargetsArePartOfFileUpload(component, targets, [\n () => delay(() => toggleBooleanStateDirective(el, directive, true)),\n () => abortDelay(() => toggleBooleanStateDirective(el, directive, false)),\n ])\n\n cleanup(() => {\n cleanupA()\n cleanupB()\n })\n})\n\nfunction applyDelay(directive) {\n if (! directive.modifiers.includes('delay') || directive.modifiers.includes('none')) return [i => i(), i => i()]\n\n let duration = 200\n\n let delayModifiers = {\n 'shortest': 50,\n 'shorter': 100,\n 'short': 150,\n 'default': 200,\n 'long': 300,\n 'longer': 500,\n 'longest': 1000,\n }\n\n Object.keys(delayModifiers).some(key => {\n if (directive.modifiers.includes(key)) {\n duration = delayModifiers[key]\n\n return true\n }\n })\n\n let timeout\n let started = false\n\n return [\n (callback) => { // Initiate delay...\n timeout = setTimeout(() => {\n callback()\n\n started = true\n }, duration)\n },\n async (callback) => { // Execute or abort...\n if (started) {\n await callback()\n started = false\n } else {\n clearTimeout(timeout)\n }\n },\n ]\n}\n\nfunction whenTargetsArePartOfRequest(component, el, targets, inverted, [ startLoading, endLoading ]) {\n return interceptMessage(({ message, onSend, onSuccess, onFinish }) => {\n if (component !== message.component) return\n\n // When explicit targets are set via wire:target, skip island scope filtering\n // and let the target matching handle scoping. This allows wire:loading to\n // respond to any request containing the target, regardless of island boundaries...\n if (targets.length === 0) {\n let island = closestIsland(el)\n\n // If an island is found, see if the message has an action for the island and return if not...\n if (island && ! message.hasActionForIsland(island)) {\n return\n }\n\n // If no island is found, see if the message has an action for the component and return if not...\n if (! island && ! message.hasActionForComponent()) {\n return\n }\n }\n\n let matches = true\n let cleared = false\n\n onSend(({ payload }) => {\n if (targets.length > 0 && containsTargets(payload, targets) === inverted) {\n matches = false\n }\n\n matches && startLoading()\n })\n\n // Clear loading before morph on success\n onSuccess(({ onEffect }) => {\n onEffect(() => {\n if (matches && ! cleared) {\n endLoading()\n cleared = true\n }\n })\n })\n\n // Clear loading on cancel/error/failure (onFinish fires immediately on these paths)\n onFinish(() => {\n if (matches && ! cleared) {\n endLoading()\n cleared = true\n }\n })\n })\n}\n\nfunction whenTargetsArePartOfFileUpload(component, targets, [ startLoading, endLoading ]) {\n let eventMismatch = e => {\n let { id, property } = e.detail\n\n if (id !== component.id) return true\n if (targets.length > 0 && ! targets.map(i => i.target).includes(property)) return true\n\n return false\n }\n\n let cleanupA = listen(window, 'livewire-upload-start', e => {\n if (eventMismatch(e)) return\n\n startLoading()\n })\n\n let cleanupB = listen(window, 'livewire-upload-finish', e => {\n if (eventMismatch(e)) return\n\n endLoading()\n })\n\n let cleanupC = listen(window, 'livewire-upload-error', e => {\n if (eventMismatch(e)) return\n\n endLoading()\n })\n\n return () => {\n cleanupA()\n cleanupB()\n cleanupC()\n }\n}\n\nfunction containsTargets(payload, targets) {\n let { updates, calls } = payload\n\n return targets.some(({ target, params }) => {\n if (params) {\n return calls.some(({ method, params: methodParams }) => {\n return target === method\n && params === quickHash(JSON.stringify(methodParams))\n })\n }\n\n let hasMatchingUpdate = Object.keys(updates).some(property => {\n // If the property is nested, like `foo.bar`, we need to check if the root `foo` is the target.\n if (property.includes('.')) {\n let propertyRoot = property.split('.')[0]\n\n if (propertyRoot === target) return true\n }\n\n return property === target\n })\n\n if (hasMatchingUpdate) return true\n\n if (calls.map(i => i.method).includes(target)) return true\n })\n}\n\nfunction getTargets(el) {\n let directives = getDirectives(el)\n\n let targets = []\n\n let inverted = false\n\n if (directives.has('target')) {\n let directive = directives.get('target')\n\n if (directive.modifiers.includes(\"except\")) inverted = true\n\n directive.methods.forEach(({ method, params }) => {\n targets.push({\n target: method,\n params: params && params.length > 0 ? quickHash(JSON.stringify(params)) : undefined\n })\n })\n } else {\n // If there is no wire:target, let's check for the existance of a wire:click=\"foo\" or something,\n // and automatically scope this loading directive to that action.\n let nonActionOrModelLivewireDirectives = [ 'init', 'dirty', 'offline', 'navigate', 'target', 'loading', 'poll', 'ignore', 'key', 'id' ]\n\n directives\n .all()\n .filter(i => ! nonActionOrModelLivewireDirectives.includes(i.value))\n .map(i => i.expression.split('(')[0])\n .forEach(target => targets.push({ target }))\n }\n\n return { targets, inverted }\n}\n\nfunction quickHash(subject) {\n return btoa(encodeURIComponent(subject))\n}\n", "import { directive } from \"@/directives\"\n\ndirective('replace', ({ el, directive }) => {\n if (directive.modifiers.includes('self')) {\n el.__livewire_replace_self = true\n } else {\n el.__livewire_replace = true\n }\n})\n", "import { directive } from \"@/directives\"\n\ndirective('ignore', ({ el, directive }) => {\n if (directive.modifiers.includes('self')) {\n el.__livewire_ignore_self = true\n } else if (directive.modifiers.includes('children')) {\n el.__livewire_ignore_children = true\n } else {\n el.__livewire_ignore = true\n }\n})\n", "import Alpine from 'alpinejs'\n\nAlpine.interceptInit(el => {\n if (el.hasAttribute('wire:cloak')) {\n Alpine.mutateDom(() => el.removeAttribute('wire:cloak'))\n }\n})\n", "import { directive } from '@/directives'\nimport { handleFileUpload } from '@/features/supportFileUploads'\nimport { findComponentByEl } from '@/store'\nimport { dataGet, dataSet } from '@/utils'\nimport { setNextActionMetadata, setNextActionOrigin } from '@/request'\nimport Alpine from 'alpinejs'\n\ndirective('model', ({ el, directive, component, cleanup }) => {\n // @todo: will need to probaby do this further upstream i just don't want to bog down the entire lifecycle right now...\n // this is to support slots properly...\n component = findComponentByEl(el)\n\n let { expression, modifiers } = directive\n\n if (! expression) {\n return console.warn('Livewire: [wire:model] is missing a value.', el)\n }\n\n if (componentIsMissingProperty(component, expression)) {\n return console.warn('Livewire: [wire:model=\"'+expression+'\"] property does not exist on component: ['+component.name+']', el)\n }\n\n // Handle file uploads differently...\n if (el.type && el.type.toLowerCase() === 'file') {\n return handleFileUpload(el, expression, component, cleanup)\n }\n\n // Split modifiers at .live boundary\n // Modifiers BEFORE .live control client-side (x-model) sync timing\n // Modifiers AFTER .live control network request timing\n let liveIndex = modifiers.indexOf('live')\n let isLive = liveIndex !== -1\n\n // Backwards compatibility: .lazy without .live implies .change.live\n let hasLazyWithoutLive = modifiers.includes('lazy') && ! isLive\n let shouldSendNetwork = isLive || hasLazyWithoutLive\n\n let ephemeralModifiers = isLive && ! hasLazyWithoutLive ? modifiers.slice(0, liveIndex) : modifiers.slice()\n let networkModifiers = isLive && ! hasLazyWithoutLive ? modifiers.slice(liveIndex + 1) : []\n\n // For .lazy backwards compat, trigger network on change\n if (hasLazyWithoutLive) {\n // Remove 'lazy' from ephemeralModifiers for .lazy backwards compat\n ephemeralModifiers = ephemeralModifiers.filter(m => m !== 'lazy')\n networkModifiers.push('change')\n }\n\n // Add self/deep modifier for event propagation control\n if (! (ephemeralModifiers.includes('deep') || networkModifiers.includes('deep'))) {\n if (! ephemeralModifiers.includes('self')) {\n ephemeralModifiers.push('self')\n }\n }\n\n // Extract ephemeral trigger modifiers (these control when x-model syncs)\n let ephemeralOnBlur = ephemeralModifiers.includes('blur')\n let ephemeralOnChange = ephemeralModifiers.includes('change') || ephemeralModifiers.includes('lazy')\n let ephemeralOnEnter = ephemeralModifiers.includes('enter')\n let hasEphemeralTriggers = ephemeralOnBlur || ephemeralOnChange || ephemeralOnEnter\n\n // Extract network trigger modifiers\n let networkOnBlur = networkModifiers.includes('blur')\n let networkOnChange = networkModifiers.includes('change') || networkModifiers.includes('lazy')\n let networkOnEnter = networkModifiers.includes('enter')\n let hasNetworkTriggers = networkOnBlur || networkOnChange || networkOnEnter\n let isDebounced = networkModifiers.includes('debounce')\n let isThrottled = networkModifiers.includes('throttle')\n\n // Trigger a network request\n let update = () => {\n setNextActionOrigin({ el, directive })\n\n if (isLive || isDebounced) {\n setNextActionMetadata({ type: 'model.live' })\n }\n\n expression.startsWith('$parent')\n ? component.$wire.$parent.$commit()\n : component.$wire.$commit()\n }\n\n let debouncedUpdate = update\n\n // Apply debounce/throttle from network modifiers\n if ((shouldSendNetwork && ! hasNetworkTriggers && isRealtimeInput(el)) || isDebounced) {\n debouncedUpdate = debounce(debouncedUpdate, parseModifierDuration(networkModifiers, 'debounce') || 150)\n }\n\n if (isThrottled) {\n debouncedUpdate = throttle(debouncedUpdate, parseModifierDuration(networkModifiers, 'throttle') || 150)\n }\n\n // Build the bindings object\n let bindings = {}\n\n // Network event listeners (for modifiers after .live, or .lazy backwards compat)\n if (shouldSendNetwork && networkOnBlur) {\n bindings['@blur'] = () => update()\n }\n\n if (shouldSendNetwork && networkOnChange) {\n bindings['@change'] = () => update()\n }\n\n if (shouldSendNetwork && networkOnEnter) {\n bindings['@keydown.enter'] = () => update()\n }\n\n // Build x-model modifier tail from ephemeral modifiers\n let xModelTail = getModifierTail(ephemeralModifiers)\n\n bindings['x-model' + xModelTail] = () => {\n return {\n get() {\n return dataGet(component.$wire, expression)\n },\n set(value) {\n dataSet(component.$wire, expression, value)\n\n // If .live is present and no specific network triggers, fire on every ephemeral sync\n if (shouldSendNetwork && ! hasNetworkTriggers) {\n debouncedUpdate()\n }\n },\n }\n }\n\n Alpine.bind(el, bindings)\n})\n\nfunction getModifierTail(modifiers) {\n // Filter out Livewire-specific modifiers that shouldn't go to x-model\n // Keep: blur, change, lazy, enter, self, deep, number, boolean, trim, fill\n // Remove: defer, live, debounce, throttle (and their durations)\n modifiers = modifiers.filter(i => ! [\n 'defer', 'live'\n ].includes(i))\n\n if (modifiers.includes('debounce')) {\n let index = modifiers.indexOf('debounce')\n let hasDuration = parseModifierDuration(modifiers, 'debounce') !== undefined\n\n // Delete the subsequent modifier if it's a duration...\n modifiers.splice(index, hasDuration ? 2 : 1)\n }\n\n if (modifiers.includes('throttle')) {\n let index = modifiers.indexOf('throttle')\n let hasDuration = parseModifierDuration(modifiers, 'throttle') !== undefined\n\n // Delete the subsequent modifier if it's a duration...\n modifiers.splice(index, hasDuration ? 2 : 1)\n }\n\n if (modifiers.length === 0) return ''\n\n return '.' + modifiers.join('.')\n}\n\nfunction isRealtimeInput(el) {\n return (\n ['INPUT', 'TEXTAREA'].includes(el.tagName.toUpperCase()) &&\n !['checkbox', 'radio'].includes(el.type)\n )\n || el.tagName.toUpperCase() === 'UI-SLIDER' // Flux UI\n || el.tagName.toUpperCase() === 'UI-COMPOSER' // Flux UI\n}\n\nfunction isDirty(subject, dirty) {\n // Check for exact match: wire:model=\"bob\" in ['bob']\n if (dirty.includes(subject)) return true\n\n // Check case of parent: wire:model=\"bob.1\" in ['bob']\n return dirty.some(i => subject.startsWith(i))\n}\n\nfunction componentIsMissingProperty(component, property) {\n if (property.startsWith('$parent')) {\n let parent = findComponentByEl(component.el.parentElement, false)\n\n if (! parent) return true\n\n return componentIsMissingProperty(parent, property.slice(7).replace(/^\\./, ''))\n }\n\n // Extract base property, handling both \"foo.bar\" and \"['foo'].bar\"\n let match = property.match(/^\\[['\"]?([^\\]'\"]+)['\"]?\\]/) || property.match(/^([^.\\[]+)/)\n let baseProperty = match[1]\n\n return ! Object.keys(component.canonical).includes(baseProperty)\n}\n\nfunction debounce(func, wait) {\n var timeout;\n\n return function() {\n var context = this, args = arguments;\n\n var later = function() {\n timeout = null\n\n func.apply(context, args)\n }\n\n clearTimeout(timeout)\n\n timeout = setTimeout(later, wait)\n }\n}\n\nfunction throttle(func, limit) {\n let inThrottle\n\n return function() {\n let context = this, args = arguments\n\n if (! inThrottle) {\n func.apply(context, args)\n\n inThrottle = true\n\n setTimeout(() => inThrottle = false, limit)\n }\n }\n}\n\nfunction parseModifierDuration(modifiers, key) {\n let index = modifiers.indexOf(key)\n if (index === -1) return undefined\n\n let nextModifier = modifiers[modifiers.indexOf(key)+1] || 'invalid-wait'\n let duration = nextModifier.split('ms')[0]\n\n return ! isNaN(duration) ? duration : undefined\n}", "import { directive } from \"@/directives\"\nimport { evaluateActionExpression } from '../evaluator'\nimport { setNextActionOrigin } from \"@/request\"\n\ndirective('init', ({ component, el, directive }) => {\n let fullMethod = directive.expression ? directive.expression : '$refresh'\n\n setNextActionOrigin({ el, directive })\n\n evaluateActionExpression(el, fullMethod)\n})\n", "import { directive, getDirectives } from \"@/directives\"\nimport { setNextActionMetadata, setNextActionOrigin, sessionIsExpired } from '@/request'\nimport { evaluateActionExpression } from '../evaluator'\n\ndirective('poll', ({ el, directive, component }) => {\n let interval = extractDurationFrom(directive.modifiers, 2000)\n\n let { start, pauseWhile, throttleWhile, stopWhen } = poll(() => {\n triggerComponentRequest(el, directive, component)\n }, interval)\n\n start()\n\n throttleWhile(() => theTabIsInTheBackground() && theDirectiveIsMissingKeepAlive(directive))\n pauseWhile(() => theDirectiveHasVisible(directive) && theElementIsNotInTheViewport(el))\n pauseWhile(() => theDirectiveIsOffTheElement(el))\n pauseWhile(() => livewireIsOffline())\n pauseWhile(() => sessionIsExpired())\n stopWhen(() => theElementIsDisconnected(el))\n})\n\nfunction triggerComponentRequest(el, directive, component) {\n // Set targetEl to null to prevent data-loading on poll actions\n setNextActionOrigin({ el, directive, targetEl: null })\n setNextActionMetadata({ type: 'poll' })\n\n let fullMethod = directive.expression ? directive.expression : '$refresh'\n\n evaluateActionExpression(el, fullMethod)\n}\n\nexport function poll(callback, interval = 2000) {\n let pauseConditions = []\n let throttleConditions = []\n let stopConditions = []\n\n return {\n start() {\n let clear = syncronizedInterval(interval, () => {\n if (stopConditions.some(i => i())) return clear()\n if (pauseConditions.some(i => i())) return\n if (throttleConditions.some(i => i()) && Math.random() < .95) return\n\n callback()\n })\n },\n pauseWhile(condition) {\n pauseConditions.push(condition)\n },\n throttleWhile(condition) {\n throttleConditions.push(condition)\n },\n stopWhen(condition) {\n stopConditions.push(condition)\n }\n }\n}\n\nlet clocks = []\n\nfunction syncronizedInterval(ms, callback) {\n if (! clocks[ms]) {\n let clock = {\n timer: setInterval(() => clock.callbacks.forEach(i => i()), ms),\n callbacks: new Set,\n }\n\n clocks[ms] = clock\n }\n\n clocks[ms].callbacks.add(callback)\n\n return () => {\n clocks[ms].callbacks.delete(callback)\n\n if (clocks[ms].callbacks.size === 0) {\n clearInterval(clocks[ms].timer)\n delete clocks[ms]\n }\n }\n}\n\nlet isOffline = false\n\nwindow.addEventListener('offline', () => isOffline = true)\nwindow.addEventListener('online', () => isOffline = false)\n\nexport function livewireIsOffline() {\n return isOffline\n}\n\nlet inBackground = false\n\ndocument.addEventListener('visibilitychange', () => { inBackground = document.hidden }, false)\n\nfunction theTabIsInTheBackground() {\n return inBackground\n}\n\nfunction theDirectiveIsOffTheElement(el) {\n return ! getDirectives(el).has('poll')\n}\n\nfunction theDirectiveIsMissingKeepAlive(directive) {\n return ! directive.modifiers.includes('keep-alive')\n}\n\nfunction theDirectiveHasVisible(directive) {\n return directive.modifiers.includes('visible')\n}\n\nfunction theElementIsNotInTheViewport(el) {\n let bounding = el.getBoundingClientRect()\n\n return ! (\n bounding.top < (window.innerHeight || document.documentElement.clientHeight) &&\n bounding.left < (window.innerWidth || document.documentElement.clientWidth) &&\n bounding.bottom > 0 &&\n bounding.right > 0\n )\n}\n\nexport function theElementIsDisconnected(el) {\n return el.isConnected === false\n}\n\nexport function extractDurationFrom(modifiers, defaultDuration) {\n let durationInMilliSeconds\n let durationInMilliSecondsString = modifiers.find(mod => mod.match(/([0-9]+)ms/))\n let durationInSecondsString = modifiers.find(mod => mod.match(/([0-9]+)s/))\n\n if (durationInMilliSecondsString) {\n durationInMilliSeconds = Number(durationInMilliSecondsString.replace('ms', ''))\n } else if (durationInSecondsString) {\n durationInMilliSeconds = Number(durationInSecondsString.replace('s', '')) * 1000\n }\n\n return durationInMilliSeconds || defaultDuration\n}\n", "import { evaluateActionExpression } from '../evaluator'\nimport Alpine from 'alpinejs'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:show')) {\n let { name, value } = el.attributes[i]\n\n let modifierString = name.split('wire:show')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-show' + modifierString]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})", "import Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:text')) {\n let { name, value } = el.attributes[i]\n\n let modifierString = name.split('wire:text')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-text' + modifierString]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n", "import Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:bind:')) {\n let { name, value } = el.attributes[i]\n\n let remainder = name.split('wire:bind')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-bind' + remainder]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n"], + "mappings": "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", + "names": ["__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__commonJS", "all", "__copyProps", "__toESM", "exports", "start2", "isArray", "isObject2", "isFunction", "track", "trigger", "src_default", "module_default", "directive", "directive2", "cleanups", "dispatch", "start", "fallback", "interceptors", "debounce", "throttle", "cloneIfObject", "Alpine", "properties", "on", "isNumeric", "listeners", "isNumeric2", "isObject", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "src_default", "module_default", "Alpine", "collapse", "fallback", "require_module_cjs", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__commonJS", "all", "__copyProps", "__toESM", "exports", "error", "module_default", "src_default", "Alpine", "els", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "module_default", "src_default", "Alpine", "fallback", "require_module_cjs", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__commonJS", "all", "__copyProps", "__toESM", "exports", "module_default", "src_default", "Alpine", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "module_default", "src_default", "Alpine", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "src_default", "module_default", "start", "getComputedStyle", "Alpine", "NProgress", "properties", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "module_default", "src_default", "morph", "els", "start", "first", "Alpine", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "module_default", "src_default", "Alpine", "nonce", "start", "error", "Alpine", "import_alpinejs", "messageBus", "message", "action", "error", "callback", "action", "interceptors", "error", "error", "interceptRequest", "interceptMessage", "error", "messages", "request", "message", "error", "import_alpinejs", "Alpine", "directive", "error", "directive", "directive", "Alpine", "listen", "dispatch", "diff", "el", "stop", "dispatch", "listen", "on", "Alpine", "batch", "error", "fallback", "error", "e", "createUrlObjectFromString", "import_alpinejs", "Alpine", "import_alpinejs", "Alpine", "NProgress", "nonce", "oldBodyScriptTagHashes", "error", "Alpine", "createUrlObjectFromString", "Alpine", "replace", "push", "url", "isObjecty", "data", "entries", "first", "import_alpinejs", "Alpine", "morph", "intersect", "sort", "resize", "collapse", "anchor", "focus", "mask", "directive", "component", "import_alpinejs", "listeners", "import_alpinejs", "import_alpinejs", "Alpine", "error", "Alpine", "alreadyRunKeys", "error", "isScript", "import_alpinejs", "Alpine", "import_alpinejs", "directive", "morph", "component", "Alpine", "morph", "self", "dispatch", "import_alpinejs", "directive", "cleanup", "Alpine", "import_alpinejs", "replace", "push", "Alpine", "listeners", "directive", "import_alpinejs", "Alpine", "directive", "import_alpinejs", "Alpine", "directive", "import_alpinejs", "Alpine", "directive", "import_alpinejs", "Alpine", "directive", "nonce", "import_alpinejs", "directive", "Alpine", "directive", "directive", "directive", "directive", "directive", "import_alpinejs", "Alpine", "import_alpinejs", "directive", "Alpine", "directive", "directive", "start", "import_alpinejs", "Alpine", "import_alpinejs", "Alpine", "import_alpinejs", "Alpine", "Livewire", "on", "Alpine"] +} diff --git a/admin/public/vendor/livewire/livewire.csp.js b/admin/public/vendor/livewire/livewire.csp.js new file mode 100644 index 00000000..dc6d3333 --- /dev/null +++ b/admin/public/vendor/livewire/livewire.csp.js @@ -0,0 +1,17258 @@ +(() => { + var __create = Object.create; + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __getProtoOf = Object.getPrototypeOf; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + + // node_modules/@alpinejs/csp/dist/module.cjs.js + var require_module_cjs = __commonJS({ + "node_modules/@alpinejs/csp/dist/module.cjs.js"(exports, module) { + var __create2 = Object.create; + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __getProtoOf2 = Object.getPrototypeOf; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( + isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var require_shared_cjs = __commonJS2({ + "node_modules/@vue/shared/dist/shared.cjs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + function makeMap(str, expectsLowerCase) { + const map = /* @__PURE__ */ Object.create(null); + const list = str.split(","); + for (let i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val]; + } + var PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `HYDRATE_EVENTS`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `HOISTED`, + [-2]: `BAIL` + }; + var slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" + }; + var GLOBALS_WHITE_LISTED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt"; + var isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED); + var range = 2; + function generateCodeFrame(source, start22 = 0, end = source.length) { + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start22) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) + continue; + const line = j + 1; + res.push(`${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start22 - (count - (lineLength + newLineSeqLength)); + const length = Math.max(1, end > count ? lineLength - pad : end - start22); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); + } + var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + var isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); + var isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`); + var unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; + var attrValidationCache = {}; + function isSSRSafeAttrName(name) { + if (attrValidationCache.hasOwnProperty(name)) { + return attrValidationCache[name]; + } + const isUnsafe = unsafeAttrCharRE.test(name); + if (isUnsafe) { + console.error(`unsafe attribute name: ${name}`); + } + return attrValidationCache[name] = !isUnsafe; + } + var propsToAttrMap = { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" + }; + var isNoUnitNumericStyleProp = /* @__PURE__ */ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width`); + var isKnownAttr = /* @__PURE__ */ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`); + function normalizeStyle(value) { + if (isArray2(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = normalizeStyle(isString(item) ? parseStringStyle(item) : item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isObject22(value)) { + return value; + } + } + var listDelimiterRE = /;(?![^(]*\))/g; + var propertyDelimiterRE = /:(.+)/; + function parseStringStyle(cssText) { + const ret = {}; + cssText.split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function stringifyStyle(styles) { + let ret = ""; + if (!styles) { + return ret; + } + for (const key in styles) { + const value = styles[key]; + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + if (isString(value) || typeof value === "number" && isNoUnitNumericStyleProp(normalizedKey)) { + ret += `${normalizedKey}:${value};`; + } + } + return ret; + } + function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray2(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject22(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); + } + var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; + var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; + var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; + var isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + var isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + var isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + var escapeRE = /["'&<>]/; + function escapeHtml(string) { + const str = "" + string; + const match = escapeRE.exec(str); + if (!match) { + return str; + } + let html = ""; + let escaped; + let index2; + let lastIndex = 0; + for (index2 = match.index; index2 < str.length; index2++) { + switch (str.charCodeAt(index2)) { + case 34: + escaped = """; + break; + case 38: + escaped = "&"; + break; + case 39: + escaped = "'"; + break; + case 60: + escaped = "<"; + break; + case 62: + escaped = ">"; + break; + default: + continue; + } + if (lastIndex !== index2) { + html += str.substring(lastIndex, index2); + } + lastIndex = index2 + 1; + html += escaped; + } + return lastIndex !== index2 ? html + str.substring(lastIndex, index2) : html; + } + var commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g; + function escapeHtmlComment(src) { + return src.replace(commentStripRE, ""); + } + function looseCompareArrays(a, b) { + if (a.length !== b.length) + return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; + } + function looseEqual(a, b) { + if (a === b) + return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isArray2(a); + bValidType = isArray2(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject22(a); + bValidType = isObject22(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); + } + function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); + } + var toDisplayString = (val) => { + return val == null ? "" : isObject22(val) ? JSON.stringify(val, replacer, 2) : String(val); + }; + var replacer = (_key, val) => { + if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => { + entries[`${key} =>`] = val2; + return entries; + }, {}) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()] + }; + } else if (isObject22(val) && !isArray2(val) && !isPlainObject(val)) { + return String(val); + } + return val; + }; + var babelParserDefaultPlugins = [ + "bigInt", + "optionalChaining", + "nullishCoalescingOperator" + ]; + var EMPTY_OBJ = Object.freeze({}); + var EMPTY_ARR = Object.freeze([]); + var NOOP = () => { + }; + var NO = () => false; + var onRE = /^on[^a-z]/; + var isOn = (key) => onRE.test(key); + var isModelListener = (key) => key.startsWith("onUpdate:"); + var extend2 = Object.assign; + var remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var hasOwn = (val, key) => hasOwnProperty.call(val, key); + var isArray2 = Array.isArray; + var isMap = (val) => toTypeString(val) === "[object Map]"; + var isSet = (val) => toTypeString(val) === "[object Set]"; + var isDate = (val) => val instanceof Date; + var isFunction2 = (val) => typeof val === "function"; + var isString = (val) => typeof val === "string"; + var isSymbol = (val) => typeof val === "symbol"; + var isObject22 = (val) => val !== null && typeof val === "object"; + var isPromise = (val) => { + return isObject22(val) && isFunction2(val.then) && isFunction2(val.catch); + }; + var objectToString = Object.prototype.toString; + var toTypeString = (value) => objectToString.call(value); + var toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + var isPlainObject = (val) => toTypeString(val) === "[object Object]"; + var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + var isReservedProp = /* @__PURE__ */ makeMap( + ",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + var cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; + }; + var camelizeRE = /-(\w)/g; + var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); + }); + var hyphenateRE = /\B([A-Z])/g; + var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase()); + var capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1)); + var toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``); + var hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue); + var invokeArrayFns = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } + }; + var def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); + }; + var toNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; + }; + var _globalThis; + var getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + exports2.EMPTY_ARR = EMPTY_ARR; + exports2.EMPTY_OBJ = EMPTY_OBJ; + exports2.NO = NO; + exports2.NOOP = NOOP; + exports2.PatchFlagNames = PatchFlagNames; + exports2.babelParserDefaultPlugins = babelParserDefaultPlugins; + exports2.camelize = camelize; + exports2.capitalize = capitalize; + exports2.def = def; + exports2.escapeHtml = escapeHtml; + exports2.escapeHtmlComment = escapeHtmlComment; + exports2.extend = extend2; + exports2.generateCodeFrame = generateCodeFrame; + exports2.getGlobalThis = getGlobalThis; + exports2.hasChanged = hasChanged; + exports2.hasOwn = hasOwn; + exports2.hyphenate = hyphenate; + exports2.invokeArrayFns = invokeArrayFns; + exports2.isArray = isArray2; + exports2.isBooleanAttr = isBooleanAttr2; + exports2.isDate = isDate; + exports2.isFunction = isFunction2; + exports2.isGloballyWhitelisted = isGloballyWhitelisted; + exports2.isHTMLTag = isHTMLTag; + exports2.isIntegerKey = isIntegerKey; + exports2.isKnownAttr = isKnownAttr; + exports2.isMap = isMap; + exports2.isModelListener = isModelListener; + exports2.isNoUnitNumericStyleProp = isNoUnitNumericStyleProp; + exports2.isObject = isObject22; + exports2.isOn = isOn; + exports2.isPlainObject = isPlainObject; + exports2.isPromise = isPromise; + exports2.isReservedProp = isReservedProp; + exports2.isSSRSafeAttrName = isSSRSafeAttrName; + exports2.isSVGTag = isSVGTag; + exports2.isSet = isSet; + exports2.isSpecialBooleanAttr = isSpecialBooleanAttr; + exports2.isString = isString; + exports2.isSymbol = isSymbol; + exports2.isVoidTag = isVoidTag; + exports2.looseEqual = looseEqual; + exports2.looseIndexOf = looseIndexOf; + exports2.makeMap = makeMap; + exports2.normalizeClass = normalizeClass; + exports2.normalizeStyle = normalizeStyle; + exports2.objectToString = objectToString; + exports2.parseStringStyle = parseStringStyle; + exports2.propsToAttrMap = propsToAttrMap; + exports2.remove = remove; + exports2.slotFlagsText = slotFlagsText; + exports2.stringifyStyle = stringifyStyle; + exports2.toDisplayString = toDisplayString; + exports2.toHandlerKey = toHandlerKey; + exports2.toNumber = toNumber; + exports2.toRawType = toRawType; + exports2.toTypeString = toTypeString; + } + }); + var require_shared = __commonJS2({ + "node_modules/@vue/shared/index.js"(exports2, module2) { + "use strict"; + if (false) { + module2.exports = null; + } else { + module2.exports = require_shared_cjs(); + } + } + }); + var require_reactivity_cjs = __commonJS2({ + "node_modules/@vue/reactivity/dist/reactivity.cjs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var shared = require_shared(); + var targetMap = /* @__PURE__ */ new WeakMap(); + var effectStack = []; + var activeEffect; + var ITERATE_KEY = Symbol("iterate"); + var MAP_KEY_ITERATE_KEY = Symbol("Map key iterate"); + function isEffect(fn) { + return fn && fn._isEffect === true; + } + function effect3(fn, options = shared.EMPTY_OBJ) { + if (isEffect(fn)) { + fn = fn.raw; + } + const effect4 = createReactiveEffect(fn, options); + if (!options.lazy) { + effect4(); + } + return effect4; + } + function stop2(effect4) { + if (effect4.active) { + cleanup(effect4); + if (effect4.options.onStop) { + effect4.options.onStop(); + } + effect4.active = false; + } + } + var uid = 0; + function createReactiveEffect(fn, options) { + const effect4 = function reactiveEffect() { + if (!effect4.active) { + return fn(); + } + if (!effectStack.includes(effect4)) { + cleanup(effect4); + try { + enableTracking(); + effectStack.push(effect4); + activeEffect = effect4; + return fn(); + } finally { + effectStack.pop(); + resetTracking(); + activeEffect = effectStack[effectStack.length - 1]; + } + } + }; + effect4.id = uid++; + effect4.allowRecurse = !!options.allowRecurse; + effect4._isEffect = true; + effect4.active = true; + effect4.raw = fn; + effect4.deps = []; + effect4.options = options; + return effect4; + } + function cleanup(effect4) { + const { deps } = effect4; + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].delete(effect4); + } + deps.length = 0; + } + } + var shouldTrack = true; + var trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function enableTracking() { + trackStack.push(shouldTrack); + shouldTrack = true; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function track2(target, type, key) { + if (!shouldTrack || activeEffect === void 0) { + return; + } + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = /* @__PURE__ */ new Set()); + } + if (!dep.has(activeEffect)) { + dep.add(activeEffect); + activeEffect.deps.push(dep); + if (activeEffect.options.onTrack) { + activeEffect.options.onTrack({ + effect: activeEffect, + target, + type, + key + }); + } + } + } + function trigger2(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + const effects = /* @__PURE__ */ new Set(); + const add2 = (effectsToAdd) => { + if (effectsToAdd) { + effectsToAdd.forEach((effect4) => { + if (effect4 !== activeEffect || effect4.allowRecurse) { + effects.add(effect4); + } + }); + } + }; + if (type === "clear") { + depsMap.forEach(add2); + } else if (key === "length" && shared.isArray(target)) { + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 >= newValue) { + add2(dep); + } + }); + } else { + if (key !== void 0) { + add2(depsMap.get(key)); + } + switch (type) { + case "add": + if (!shared.isArray(target)) { + add2(depsMap.get(ITERATE_KEY)); + if (shared.isMap(target)) { + add2(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (shared.isIntegerKey(key)) { + add2(depsMap.get("length")); + } + break; + case "delete": + if (!shared.isArray(target)) { + add2(depsMap.get(ITERATE_KEY)); + if (shared.isMap(target)) { + add2(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (shared.isMap(target)) { + add2(depsMap.get(ITERATE_KEY)); + } + break; + } + } + const run = (effect4) => { + if (effect4.options.onTrigger) { + effect4.options.onTrigger({ + effect: effect4, + target, + key, + type, + newValue, + oldValue, + oldTarget + }); + } + if (effect4.options.scheduler) { + effect4.options.scheduler(effect4); + } else { + effect4(); + } + }; + effects.forEach(run); + } + var isNonTrackableKeys = /* @__PURE__ */ shared.makeMap(`__proto__,__v_isRef,__isVue`); + var builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(shared.isSymbol)); + var get2 = /* @__PURE__ */ createGetter(); + var shallowGet = /* @__PURE__ */ createGetter(false, true); + var readonlyGet = /* @__PURE__ */ createGetter(true); + var shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true); + var arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations(); + function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw2(this); + for (let i = 0, l = this.length; i < l; i++) { + track2(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw2)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + const res = toRaw2(this)[key].apply(this, args); + resetTracking(); + return res; + }; + }); + return instrumentations; + } + function createGetter(isReadonly2 = false, shallow = false) { + return function get3(target, key, receiver) { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) { + return target; + } + const targetIsArray = shared.isArray(target); + if (!isReadonly2 && targetIsArray && shared.hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + const res = Reflect.get(target, key, receiver); + if (shared.isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track2(target, "get", key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + const shouldUnwrap = !targetIsArray || !shared.isIntegerKey(key); + return shouldUnwrap ? res.value : res; + } + if (shared.isObject(res)) { + return isReadonly2 ? readonly(res) : reactive3(res); + } + return res; + }; + } + var set2 = /* @__PURE__ */ createSetter(); + var shallowSet = /* @__PURE__ */ createSetter(true); + function createSetter(shallow = false) { + return function set3(target, key, value, receiver) { + let oldValue = target[key]; + if (!shallow) { + value = toRaw2(value); + oldValue = toRaw2(oldValue); + if (!shared.isArray(target) && isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + } + const hadKey = shared.isArray(target) && shared.isIntegerKey(key) ? Number(key) < target.length : shared.hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw2(receiver)) { + if (!hadKey) { + trigger2(target, "add", key, value); + } else if (shared.hasChanged(value, oldValue)) { + trigger2(target, "set", key, value, oldValue); + } + } + return result; + }; + } + function deleteProperty(target, key) { + const hadKey = shared.hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger2(target, "delete", key, void 0, oldValue); + } + return result; + } + function has(target, key) { + const result = Reflect.has(target, key); + if (!shared.isSymbol(key) || !builtInSymbols.has(key)) { + track2(target, "has", key); + } + return result; + } + function ownKeys3(target) { + track2(target, "iterate", shared.isArray(target) ? "length" : ITERATE_KEY); + return Reflect.ownKeys(target); + } + var mutableHandlers = { + get: get2, + set: set2, + deleteProperty, + has, + ownKeys: ownKeys3 + }; + var readonlyHandlers = { + get: readonlyGet, + set(target, key) { + { + console.warn(`Set operation on key "${String(key)}" failed: target is readonly.`, target); + } + return true; + }, + deleteProperty(target, key) { + { + console.warn(`Delete operation on key "${String(key)}" failed: target is readonly.`, target); + } + return true; + } + }; + var shallowReactiveHandlers = /* @__PURE__ */ shared.extend({}, mutableHandlers, { + get: shallowGet, + set: shallowSet + }); + var shallowReadonlyHandlers = /* @__PURE__ */ shared.extend({}, readonlyHandlers, { + get: shallowReadonlyGet + }); + var toReactive = (value) => shared.isObject(value) ? reactive3(value) : value; + var toReadonly = (value) => shared.isObject(value) ? readonly(value) : value; + var toShallow = (value) => value; + var getProto = (v) => Reflect.getPrototypeOf(v); + function get$1(target, key, isReadonly2 = false, isShallow = false) { + target = target["__v_raw"]; + const rawTarget = toRaw2(target); + const rawKey = toRaw2(key); + if (key !== rawKey) { + !isReadonly2 && track2(rawTarget, "get", key); + } + !isReadonly2 && track2(rawTarget, "get", rawKey); + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + } + function has$1(key, isReadonly2 = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw2(target); + const rawKey = toRaw2(key); + if (key !== rawKey) { + !isReadonly2 && track2(rawTarget, "has", key); + } + !isReadonly2 && track2(rawTarget, "has", rawKey); + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + } + function size(target, isReadonly2 = false) { + target = target["__v_raw"]; + !isReadonly2 && track2(toRaw2(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); + } + function add(value) { + value = toRaw2(value); + const target = toRaw2(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger2(target, "add", value, value); + } + return this; + } + function set$1(key, value) { + value = toRaw2(value); + const target = toRaw2(this); + const { has: has2, get: get3 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw2(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get3.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger2(target, "add", key, value); + } else if (shared.hasChanged(value, oldValue)) { + trigger2(target, "set", key, value, oldValue); + } + return this; + } + function deleteEntry(key) { + const target = toRaw2(this); + const { has: has2, get: get3 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw2(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get3 ? get3.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger2(target, "delete", key, void 0, oldValue); + } + return result; + } + function clear() { + const target = toRaw2(this); + const hadItems = target.size !== 0; + const oldTarget = shared.isMap(target) ? new Map(target) : new Set(target); + const result = target.clear(); + if (hadItems) { + trigger2(target, "clear", void 0, void 0, oldTarget); + } + return result; + } + function createForEach(isReadonly2, isShallow) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw2(target); + const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track2(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; + } + function createIterableMethod(method, isReadonly2, isShallow) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw2(target); + const targetIsMap = shared.isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track2(rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY); + return { + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + [Symbol.iterator]() { + return this; + } + }; + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + console.warn(`${shared.capitalize(type)} operation ${key}failed: target is readonly.`, toRaw2(this)); + } + return type === "delete" ? false : this; + }; + } + function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get$1(this, key); + }, + get size() { + return size(this); + }, + has: has$1, + add, + set: set$1, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get$1(this, key, false, true); + }, + get size() { + return size(this); + }, + has: has$1, + add, + set: set$1, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get$1(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has$1.call(this, key, true); + }, + add: createReadonlyMethod( + "add" + ), + set: createReadonlyMethod( + "set" + ), + delete: createReadonlyMethod( + "delete" + ), + clear: createReadonlyMethod( + "clear" + ), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get$1(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has$1.call(this, key, true); + }, + add: createReadonlyMethod( + "add" + ), + set: createReadonlyMethod( + "set" + ), + delete: createReadonlyMethod( + "delete" + ), + clear: createReadonlyMethod( + "clear" + ), + forEach: createForEach(true, true) + }; + const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod(method, false, false); + readonlyInstrumentations2[method] = createIterableMethod(method, true, false); + shallowInstrumentations2[method] = createIterableMethod(method, false, true); + shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; + } + var [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations(); + function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get(shared.hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver); + }; + } + var mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + var shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + var readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + var shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw2(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = shared.toRawType(target); + console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`); + } + } + var reactiveMap = /* @__PURE__ */ new WeakMap(); + var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + var readonlyMap = /* @__PURE__ */ new WeakMap(); + var shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2; + default: + return 0; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(shared.toRawType(value)); + } + function reactive3(target) { + if (target && target["__v_isReadonly"]) { + return target; + } + return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap); + } + function shallowReactive(target) { + return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap); + } + function readonly(target) { + return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap); + } + function shallowReadonly(target) { + return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!shared.isObject(target)) { + { + console.warn(`value cannot be made reactive: ${String(target)}`); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0) { + return target; + } + const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers); + proxyMap.set(target, proxy); + return proxy; + } + function isReactive2(value) { + if (isReadonly(value)) { + return isReactive2(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + function isProxy(value) { + return isReactive2(value) || isReadonly(value); + } + function toRaw2(observed) { + return observed && toRaw2(observed["__v_raw"]) || observed; + } + function markRaw(value) { + shared.def(value, "__v_skip", true); + return value; + } + var convert = (val) => shared.isObject(val) ? reactive3(val) : val; + function isRef(r) { + return Boolean(r && r.__v_isRef === true); + } + function ref(value) { + return createRef(value); + } + function shallowRef(value) { + return createRef(value, true); + } + var RefImpl = class { + constructor(value, _shallow = false) { + this._shallow = _shallow; + this.__v_isRef = true; + this._rawValue = _shallow ? value : toRaw2(value); + this._value = _shallow ? value : convert(value); + } + get value() { + track2(toRaw2(this), "get", "value"); + return this._value; + } + set value(newVal) { + newVal = this._shallow ? newVal : toRaw2(newVal); + if (shared.hasChanged(newVal, this._rawValue)) { + this._rawValue = newVal; + this._value = this._shallow ? newVal : convert(newVal); + trigger2(toRaw2(this), "set", "value", newVal); + } + } + }; + function createRef(rawValue, shallow = false) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + function triggerRef(ref2) { + trigger2(toRaw2(ref2), "set", "value", ref2.value); + } + function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; + } + var shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive2(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + var CustomRefImpl = class { + constructor(factory) { + this.__v_isRef = true; + const { get: get3, set: set3 } = factory(() => track2(this, "get", "value"), () => trigger2(this, "set", "value")); + this._get = get3; + this._set = set3; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } + }; + function customRef(factory) { + return new CustomRefImpl(factory); + } + function toRefs(object) { + if (!isProxy(object)) { + console.warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = shared.isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = toRef(object, key); + } + return ret; + } + var ObjectRefImpl = class { + constructor(_object, _key) { + this._object = _object; + this._key = _key; + this.__v_isRef = true; + } + get value() { + return this._object[this._key]; + } + set value(newVal) { + this._object[this._key] = newVal; + } + }; + function toRef(object, key) { + return isRef(object[key]) ? object[key] : new ObjectRefImpl(object, key); + } + var ComputedRefImpl = class { + constructor(getter, _setter, isReadonly2) { + this._setter = _setter; + this._dirty = true; + this.__v_isRef = true; + this.effect = effect3(getter, { + lazy: true, + scheduler: () => { + if (!this._dirty) { + this._dirty = true; + trigger2(toRaw2(this), "set", "value"); + } + } + }); + this["__v_isReadonly"] = isReadonly2; + } + get value() { + const self2 = toRaw2(this); + if (self2._dirty) { + self2._value = this.effect(); + self2._dirty = false; + } + track2(self2, "get", "value"); + return self2._value; + } + set value(newValue) { + this._setter(newValue); + } + }; + function computed(getterOrOptions) { + let getter; + let setter; + if (shared.isFunction(getterOrOptions)) { + getter = getterOrOptions; + setter = () => { + console.warn("Write operation failed: computed value is readonly"); + }; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + return new ComputedRefImpl(getter, setter, shared.isFunction(getterOrOptions) || !getterOrOptions.set); + } + exports2.ITERATE_KEY = ITERATE_KEY; + exports2.computed = computed; + exports2.customRef = customRef; + exports2.effect = effect3; + exports2.enableTracking = enableTracking; + exports2.isProxy = isProxy; + exports2.isReactive = isReactive2; + exports2.isReadonly = isReadonly; + exports2.isRef = isRef; + exports2.markRaw = markRaw; + exports2.pauseTracking = pauseTracking; + exports2.proxyRefs = proxyRefs; + exports2.reactive = reactive3; + exports2.readonly = readonly; + exports2.ref = ref; + exports2.resetTracking = resetTracking; + exports2.shallowReactive = shallowReactive; + exports2.shallowReadonly = shallowReadonly; + exports2.shallowRef = shallowRef; + exports2.stop = stop2; + exports2.toRaw = toRaw2; + exports2.toRef = toRef; + exports2.toRefs = toRefs; + exports2.track = track2; + exports2.trigger = trigger2; + exports2.triggerRef = triggerRef; + exports2.unref = unref; + } + }); + var require_reactivity = __commonJS2({ + "node_modules/@vue/reactivity/index.js"(exports2, module2) { + "use strict"; + if (false) { + module2.exports = null; + } else { + module2.exports = require_reactivity_cjs(); + } + } + }); + var module_exports = {}; + __export(module_exports, { + Alpine: () => src_default10, + default: () => module_default10 + }); + module.exports = __toCommonJS(module_exports); + var flushPending = false; + var flushing = false; + var queue = []; + var lastFlushedIndex = -1; + var transactionActive = false; + function scheduler(callback) { + queueJob(callback); + } + function startTransaction() { + transactionActive = true; + } + function commitTransaction() { + transactionActive = false; + queueFlush(); + } + function queueJob(job) { + if (!queue.includes(job)) + queue.push(job); + queueFlush(); + } + function dequeueJob(job) { + let index2 = queue.indexOf(job); + if (index2 !== -1 && index2 > lastFlushedIndex) + queue.splice(index2, 1); + } + function queueFlush() { + if (!flushing && !flushPending) { + if (transactionActive) + return; + flushPending = true; + queueMicrotask(flushJobs); + } + } + function flushJobs() { + flushPending = false; + flushing = true; + for (let i = 0; i < queue.length; i++) { + queue[i](); + lastFlushedIndex = i; + } + queue.length = 0; + lastFlushedIndex = -1; + flushing = false; + } + var reactive; + var effect; + var release; + var raw; + var shouldSchedule = true; + function disableEffectScheduling(callback) { + shouldSchedule = false; + callback(); + shouldSchedule = true; + } + function setReactivityEngine(engine) { + reactive = engine.reactive; + release = engine.release; + effect = (callback) => engine.effect(callback, { scheduler: (task) => { + if (shouldSchedule) { + scheduler(task); + } else { + task(); + } + } }); + raw = engine.raw; + } + function overrideEffect(override) { + effect = override; + } + function elementBoundEffect(el) { + let cleanup = () => { + }; + let wrappedEffect = (callback) => { + let effectReference = effect(callback); + if (!el._x_effects) { + el._x_effects = /* @__PURE__ */ new Set(); + el._x_runEffects = () => { + el._x_effects.forEach((i) => i()); + }; + } + el._x_effects.add(effectReference); + cleanup = () => { + if (effectReference === void 0) + return; + el._x_effects.delete(effectReference); + release(effectReference); + }; + return effectReference; + }; + return [wrappedEffect, () => { + cleanup(); + }]; + } + function watch(getter, callback) { + let firstTime = true; + let oldValue; + let oldValueJSON; + let effectReference = effect(() => { + let value = getter(); + let newJSON = JSON.stringify(value); + if (!firstTime) { + if (typeof value === "object" || value !== oldValue) { + let previousValue = typeof oldValue === "object" ? JSON.parse(oldValueJSON) : oldValue; + queueMicrotask(() => { + callback(value, previousValue); + }); + } + } + oldValue = value; + oldValueJSON = newJSON; + firstTime = false; + }); + return () => release(effectReference); + } + async function transaction(callback) { + startTransaction(); + try { + await callback(); + await Promise.resolve(); + } finally { + commitTransaction(); + } + } + var onAttributeAddeds = []; + var onElRemoveds = []; + var onElAddeds = []; + function onElAdded(callback) { + onElAddeds.push(callback); + } + function onElRemoved(el, callback) { + if (typeof callback === "function") { + if (!el._x_cleanups) + el._x_cleanups = []; + el._x_cleanups.push(callback); + } else { + callback = el; + onElRemoveds.push(callback); + } + } + function onAttributesAdded(callback) { + onAttributeAddeds.push(callback); + } + function onAttributeRemoved(el, name, callback) { + if (!el._x_attributeCleanups) + el._x_attributeCleanups = {}; + if (!el._x_attributeCleanups[name]) + el._x_attributeCleanups[name] = []; + el._x_attributeCleanups[name].push(callback); + } + function cleanupAttributes(el, names) { + if (!el._x_attributeCleanups) + return; + Object.entries(el._x_attributeCleanups).forEach(([name, value]) => { + if (names === void 0 || names.includes(name)) { + value.forEach((i) => i()); + delete el._x_attributeCleanups[name]; + } + }); + } + function cleanupElement(el) { + var _a, _b; + (_a = el._x_effects) == null ? void 0 : _a.forEach(dequeueJob); + while ((_b = el._x_cleanups) == null ? void 0 : _b.length) + el._x_cleanups.pop()(); + } + var observer = new MutationObserver(onMutate); + var currentlyObserving = false; + function startObservingMutations() { + observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true }); + currentlyObserving = true; + } + function stopObservingMutations() { + flushObserver(); + observer.disconnect(); + currentlyObserving = false; + } + var queuedMutations = []; + function flushObserver() { + let records = observer.takeRecords(); + queuedMutations.push(() => records.length > 0 && onMutate(records)); + let queueLengthWhenTriggered = queuedMutations.length; + queueMicrotask(() => { + if (queuedMutations.length === queueLengthWhenTriggered) { + while (queuedMutations.length > 0) + queuedMutations.shift()(); + } + }); + } + function mutateDom(callback) { + if (!currentlyObserving) + return callback(); + stopObservingMutations(); + let result = callback(); + startObservingMutations(); + return result; + } + var isCollecting = false; + var deferredMutations = []; + function deferMutations() { + isCollecting = true; + } + function flushAndStopDeferringMutations() { + isCollecting = false; + onMutate(deferredMutations); + deferredMutations = []; + } + function onMutate(mutations) { + if (isCollecting) { + deferredMutations = deferredMutations.concat(mutations); + return; + } + let addedNodes = []; + let removedNodes = /* @__PURE__ */ new Set(); + let addedAttributes = /* @__PURE__ */ new Map(); + let removedAttributes = /* @__PURE__ */ new Map(); + for (let i = 0; i < mutations.length; i++) { + if (mutations[i].target._x_ignoreMutationObserver) + continue; + if (mutations[i].type === "childList") { + mutations[i].removedNodes.forEach((node) => { + if (node.nodeType !== 1) + return; + if (!node._x_marker) + return; + removedNodes.add(node); + }); + mutations[i].addedNodes.forEach((node) => { + if (node.nodeType !== 1) + return; + if (removedNodes.has(node)) { + removedNodes.delete(node); + return; + } + if (node._x_marker) + return; + addedNodes.push(node); + }); + } + if (mutations[i].type === "attributes") { + let el = mutations[i].target; + let name = mutations[i].attributeName; + let oldValue = mutations[i].oldValue; + let add = () => { + if (!addedAttributes.has(el)) + addedAttributes.set(el, []); + addedAttributes.get(el).push({ name, value: el.getAttribute(name) }); + }; + let remove = () => { + if (!removedAttributes.has(el)) + removedAttributes.set(el, []); + removedAttributes.get(el).push(name); + }; + if (el.hasAttribute(name) && oldValue === null) { + add(); + } else if (el.hasAttribute(name)) { + remove(); + add(); + } else { + remove(); + } + } + } + removedAttributes.forEach((attrs, el) => { + cleanupAttributes(el, attrs); + }); + addedAttributes.forEach((attrs, el) => { + onAttributeAddeds.forEach((i) => i(el, attrs)); + }); + for (let node of removedNodes) { + if (addedNodes.some((i) => i.contains(node))) + continue; + onElRemoveds.forEach((i) => i(node)); + } + for (let node of addedNodes) { + if (!node.isConnected) + continue; + onElAddeds.forEach((i) => i(node)); + } + addedNodes = null; + removedNodes = null; + addedAttributes = null; + removedAttributes = null; + } + function scope(node) { + return mergeProxies(closestDataStack(node)); + } + function addScopeToNode(node, data2, referenceNode) { + node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)]; + return () => { + node._x_dataStack = node._x_dataStack.filter((i) => i !== data2); + }; + } + function closestDataStack(node) { + if (node._x_dataStack) + return node._x_dataStack; + if (typeof ShadowRoot === "function" && node instanceof ShadowRoot) { + return closestDataStack(node.host); + } + if (!node.parentNode) { + return []; + } + return closestDataStack(node.parentNode); + } + function mergeProxies(objects) { + return new Proxy({ objects }, mergeProxyTrap); + } + function keyInPrototypeChain(obj, key) { + if (obj === null || obj === Object.prototype) + return null; + if (Object.prototype.hasOwnProperty.call(obj, key)) + return obj; + return keyInPrototypeChain(Object.getPrototypeOf(obj), key); + } + var mergeProxyTrap = { + ownKeys({ objects }) { + return Array.from( + new Set(objects.flatMap((i) => Object.keys(i))) + ); + }, + has({ objects }, name) { + if (name == Symbol.unscopables) + return false; + return objects.some( + (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name) + ); + }, + get({ objects }, name, thisProxy) { + if (name == "toJSON") + return collapseProxies; + return Reflect.get( + objects.find( + (obj) => Reflect.has(obj, name) + ) || {}, + name, + thisProxy + ); + }, + set({ objects }, name, value, thisProxy) { + let target; + for (const obj of objects) { + target = keyInPrototypeChain(obj, name); + if (target) + break; + } + if (!target) + target = objects[objects.length - 1]; + const descriptor = Object.getOwnPropertyDescriptor(target, name); + if ((descriptor == null ? void 0 : descriptor.set) && (descriptor == null ? void 0 : descriptor.get)) + return descriptor.set.call(thisProxy, value) || true; + return Reflect.set(target, name, value); + } + }; + function collapseProxies() { + let keys = Reflect.ownKeys(this); + return keys.reduce((acc, key) => { + acc[key] = Reflect.get(this, key); + return acc; + }, {}); + } + function initInterceptors(data2) { + let isObject22 = (val) => typeof val === "object" && !Array.isArray(val) && val !== null; + let recurse = (obj, basePath = "") => { + Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => { + if (enumerable === false || value === void 0) + return; + if (typeof value === "object" && value !== null && value.__v_skip) + return; + let path = basePath === "" ? key : `${basePath}.${key}`; + if (typeof value === "object" && value !== null && value._x_interceptor) { + obj[key] = value.initialize(data2, path, key); + } else { + if (isObject22(value) && value !== obj && !(value instanceof Element)) { + recurse(value, path); + } + } + }); + }; + return recurse(data2); + } + function interceptor(callback, mutateObj = () => { + }) { + let obj = { + initialValue: void 0, + _x_interceptor: true, + initialize(data2, path, key) { + return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key); + } + }; + mutateObj(obj); + return (initialValue) => { + if (typeof initialValue === "object" && initialValue !== null && initialValue._x_interceptor) { + let initialize = obj.initialize.bind(obj); + obj.initialize = (data2, path, key) => { + let innerValue = initialValue.initialize(data2, path, key); + obj.initialValue = innerValue; + return initialize(data2, path, key); + }; + } else { + obj.initialValue = initialValue; + } + return obj; + }; + } + function get(obj, path) { + return path.split(".").reduce((carry, segment) => carry[segment], obj); + } + function set(obj, path, value) { + if (typeof path === "string") + path = path.split("."); + if (path.length === 1) + obj[path[0]] = value; + else if (path.length === 0) + throw error; + else { + if (obj[path[0]]) + return set(obj[path[0]], path.slice(1), value); + else { + obj[path[0]] = {}; + return set(obj[path[0]], path.slice(1), value); + } + } + } + var magics = {}; + function magic(name, callback) { + magics[name] = callback; + } + function injectMagics(obj, el) { + let memoizedUtilities = getUtilities(el); + Object.entries(magics).forEach(([name, callback]) => { + Object.defineProperty(obj, `$${name}`, { + get() { + return callback(el, memoizedUtilities); + }, + enumerable: false + }); + }); + return obj; + } + function getUtilities(el) { + let [utilities, cleanup] = getElementBoundUtilities(el); + let utils = { interceptor, ...utilities }; + onElRemoved(el, cleanup); + return utils; + } + function tryCatch(el, expression, callback, ...args) { + try { + return callback(...args); + } catch (e) { + handleError(e, el, expression); + } + } + function handleError(...args) { + return errorHandler(...args); + } + var errorHandler = normalErrorHandler; + function setErrorHandler(handler4) { + errorHandler = handler4; + } + function normalErrorHandler(error2, el, expression = void 0) { + error2 = Object.assign( + error2 != null ? error2 : { message: "No error message given." }, + { el, expression } + ); + console.warn(`Alpine Expression Error: ${error2.message} + +${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); + setTimeout(() => { + throw error2; + }, 0); + } + var shouldAutoEvaluateFunctions = true; + function dontAutoEvaluateFunctions(callback) { + let cache = shouldAutoEvaluateFunctions; + shouldAutoEvaluateFunctions = false; + let result = callback(); + shouldAutoEvaluateFunctions = cache; + return result; + } + function evaluate2(el, expression, extras = {}) { + let result; + evaluateLater(el, expression)((value) => result = value, extras); + return result; + } + function evaluateLater(...args) { + return theEvaluatorFunction(...args); + } + var theEvaluatorFunction = () => { + }; + function setEvaluator(newEvaluator) { + theEvaluatorFunction = newEvaluator; + } + var theRawEvaluatorFunction; + function setRawEvaluator(newEvaluator) { + theRawEvaluatorFunction = newEvaluator; + } + function generateEvaluatorFromFunction(dataStack, func) { + return (receiver = () => { + }, { scope: scope2 = {}, params = [], context } = {}) => { + if (!shouldAutoEvaluateFunctions) { + runIfTypeOfFunction(receiver, func, mergeProxies([scope2, ...dataStack]), params); + return; + } + let result = func.apply(mergeProxies([scope2, ...dataStack]), params); + runIfTypeOfFunction(receiver, result); + }; + } + function runIfTypeOfFunction(receiver, value, scope2, params, el) { + if (shouldAutoEvaluateFunctions && typeof value === "function") { + let result = value.apply(scope2, params); + if (result instanceof Promise) { + result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value)); + } else { + receiver(result); + } + } else if (typeof value === "object" && value instanceof Promise) { + value.then((i) => receiver(i)); + } else { + receiver(value); + } + } + function evaluateRaw(...args) { + return theRawEvaluatorFunction(...args); + } + var prefixAsString = "x-"; + function prefix(subject = "") { + return prefixAsString + subject; + } + function setPrefix(newPrefix) { + prefixAsString = newPrefix; + } + var directiveHandlers = {}; + function directive2(name, callback) { + directiveHandlers[name] = callback; + return { + before(directive22) { + if (!directiveHandlers[directive22]) { + console.warn(String.raw`Cannot find directive \`${directive22}\`. \`${name}\` will use the default order of execution`); + return; + } + const pos = directiveOrder.indexOf(directive22); + directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf("DEFAULT"), 0, name); + } + }; + } + function directiveExists(name) { + return Object.keys(directiveHandlers).includes(name); + } + function directives(el, attributes, originalAttributeOverride) { + attributes = Array.from(attributes); + if (el._x_virtualDirectives) { + let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value })); + let staticAttributes = attributesOnly(vAttributes); + vAttributes = vAttributes.map((attribute) => { + if (staticAttributes.find((attr) => attr.name === attribute.name)) { + return { + name: `x-bind:${attribute.name}`, + value: `"${attribute.value}"` + }; + } + return attribute; + }); + attributes = attributes.concat(vAttributes); + } + let transformedAttributeMap = {}; + let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority); + return directives2.map((directive22) => { + return getDirectiveHandler(el, directive22); + }); + } + function attributesOnly(attributes) { + return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr)); + } + var isDeferringHandlers = false; + var directiveHandlerStacks = /* @__PURE__ */ new Map(); + var currentHandlerStackKey = Symbol(); + function deferHandlingDirectives(callback) { + isDeferringHandlers = true; + let key = Symbol(); + currentHandlerStackKey = key; + directiveHandlerStacks.set(key, []); + let flushHandlers = () => { + while (directiveHandlerStacks.get(key).length) + directiveHandlerStacks.get(key).shift()(); + directiveHandlerStacks.delete(key); + }; + let stopDeferring = () => { + isDeferringHandlers = false; + flushHandlers(); + }; + callback(flushHandlers); + stopDeferring(); + } + function getElementBoundUtilities(el) { + let cleanups2 = []; + let cleanup = (callback) => cleanups2.push(callback); + let [effect3, cleanupEffect] = elementBoundEffect(el); + cleanups2.push(cleanupEffect); + let utilities = { + Alpine: alpine_default, + effect: effect3, + cleanup, + evaluateLater: evaluateLater.bind(evaluateLater, el), + evaluate: evaluate2.bind(evaluate2, el) + }; + let doCleanup = () => cleanups2.forEach((i) => i()); + return [utilities, doCleanup]; + } + function getDirectiveHandler(el, directive22) { + let noop = () => { + }; + let handler4 = directiveHandlers[directive22.type] || noop; + let [utilities, cleanup] = getElementBoundUtilities(el); + onAttributeRemoved(el, directive22.original, cleanup); + let fullHandler = () => { + if (el._x_ignore || el._x_ignoreSelf) + return; + handler4.inline && handler4.inline(el, directive22, utilities); + handler4 = handler4.bind(handler4, el, directive22, utilities); + isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4(); + }; + fullHandler.runCleanups = cleanup; + return fullHandler; + } + var startingWith = (subject, replacement) => ({ name, value }) => { + if (name.startsWith(subject)) + name = name.replace(subject, replacement); + return { name, value }; + }; + var into = (i) => i; + function toTransformedAttributes(callback = () => { + }) { + return ({ name, value }) => { + let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => { + return transform(carry); + }, { name, value }); + if (newName !== name) + callback(newName, name); + return { name: newName, value: newValue }; + }; + } + var attributeTransformers = []; + function mapAttributes(callback) { + attributeTransformers.push(callback); + } + function outNonAlpineAttributes({ name }) { + return alpineAttributeRegex().test(name); + } + var alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\b`); + function toParsedDirectives(transformedAttributeMap, originalAttributeOverride) { + return ({ name, value }) => { + if (name === value) + value = ""; + let typeMatch = name.match(alpineAttributeRegex()); + let valueMatch = name.match(/:([a-zA-Z0-9\-_:]+)/); + let modifiers = name.match(/\.[^.\]]+(?=[^\]]*$)/g) || []; + let original = originalAttributeOverride || transformedAttributeMap[name] || name; + return { + type: typeMatch ? typeMatch[1] : null, + value: valueMatch ? valueMatch[1] : null, + modifiers: modifiers.map((i) => i.replace(".", "")), + expression: value, + original + }; + }; + } + var DEFAULT = "DEFAULT"; + var directiveOrder = [ + "ignore", + "ref", + "id", + "data", + "anchor", + "bind", + "init", + "for", + "model", + "modelable", + "transition", + "show", + "if", + DEFAULT, + "teleport" + ]; + function byPriority(a, b) { + let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type; + let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type; + return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB); + } + function dispatch3(el, name, detail = {}, options = {}) { + return el.dispatchEvent( + new CustomEvent(name, { + detail, + bubbles: true, + composed: true, + cancelable: true, + ...options + }) + ); + } + function walk2(el, callback) { + if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) { + Array.from(el.children).forEach((el2) => walk2(el2, callback)); + return; + } + let skip = false; + callback(el, () => skip = true); + if (skip) + return; + let node = el.firstElementChild; + while (node) { + walk2(node, callback, false); + node = node.nextElementSibling; + } + } + function warn(message, ...args) { + console.warn(`Alpine Warning: ${message}`, ...args); + } + var started = false; + function start2() { + if (started) + warn("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."); + started = true; + if (!document.body) + warn("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?"); + dispatch3(document, "alpine:init"); + dispatch3(document, "alpine:initializing"); + startObservingMutations(); + onElAdded((el) => initTree(el, walk2)); + onElRemoved((el) => destroyTree(el)); + onAttributesAdded((el, attrs) => { + directives(el, attrs).forEach((handle) => handle()); + }); + let outNestedComponents = (el) => !closestRoot(el.parentElement, true); + Array.from(document.querySelectorAll(allSelectors().join(","))).filter(outNestedComponents).forEach((el) => { + initTree(el); + }); + dispatch3(document, "alpine:initialized"); + setTimeout(() => { + warnAboutMissingPlugins(); + }); + } + var rootSelectorCallbacks = []; + var initSelectorCallbacks = []; + function rootSelectors() { + return rootSelectorCallbacks.map((fn) => fn()); + } + function allSelectors() { + return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn()); + } + function addRootSelector(selectorCallback) { + rootSelectorCallbacks.push(selectorCallback); + } + function addInitSelector(selectorCallback) { + initSelectorCallbacks.push(selectorCallback); + } + function closestRoot(el, includeInitSelectors = false) { + return findClosest(el, (element) => { + const selectors = includeInitSelectors ? allSelectors() : rootSelectors(); + if (selectors.some((selector) => element.matches(selector))) + return true; + }); + } + function findClosest(el, callback) { + if (!el) + return; + if (callback(el)) + return el; + if (el._x_teleportBack) + return findClosest(el._x_teleportBack, callback); + if (el.parentNode instanceof ShadowRoot) { + return findClosest(el.parentNode.host, callback); + } + if (!el.parentElement) + return; + return findClosest(el.parentElement, callback); + } + function isRoot(el) { + return rootSelectors().some((selector) => el.matches(selector)); + } + var initInterceptors2 = []; + function interceptInit(callback) { + initInterceptors2.push(callback); + } + var markerDispenser = 1; + function initTree(el, walker = walk2, intercept = () => { + }) { + if (findClosest(el, (i) => i._x_ignore)) + return; + deferHandlingDirectives(() => { + walker(el, (el2, skip) => { + if (el2._x_marker) + return; + intercept(el2, skip); + initInterceptors2.forEach((i) => i(el2, skip)); + directives(el2, el2.attributes).forEach((handle) => handle()); + if (!el2._x_ignore) + el2._x_marker = markerDispenser++; + el2._x_ignore && skip(); + }); + }); + } + function destroyTree(root, walker = walk2) { + walker(root, (el) => { + cleanupElement(el); + cleanupAttributes(el); + delete el._x_marker; + }); + } + function warnAboutMissingPlugins() { + let pluginDirectives = [ + ["ui", "dialog", ["[x-dialog], [x-popover]"]], + ["anchor", "anchor", ["[x-anchor]"]], + ["sort", "sort", ["[x-sort]"]] + ]; + pluginDirectives.forEach(([plugin2, directive22, selectors]) => { + if (directiveExists(directive22)) + return; + selectors.some((selector) => { + if (document.querySelector(selector)) { + warn(`found "${selector}", but missing ${plugin2} plugin`); + return true; + } + }); + }); + } + var tickStack = []; + var isHolding = false; + function nextTick(callback = () => { + }) { + queueMicrotask(() => { + isHolding || setTimeout(() => { + releaseNextTicks(); + }); + }); + return new Promise((res) => { + tickStack.push(() => { + callback(); + res(); + }); + }); + } + function releaseNextTicks() { + isHolding = false; + while (tickStack.length) + tickStack.shift()(); + } + function holdNextTicks() { + isHolding = true; + } + function setClasses(el, value) { + if (Array.isArray(value)) { + return setClassesFromString(el, value.join(" ")); + } else if (typeof value === "object" && value !== null) { + return setClassesFromObject(el, value); + } else if (typeof value === "function") { + return setClasses(el, value()); + } + return setClassesFromString(el, value); + } + function splitClasses(classString) { + return classString.split(/\s/).filter(Boolean); + } + function setClassesFromString(el, classString) { + let missingClasses = (classString2) => splitClasses(classString2).filter((i) => !el.classList.contains(i)).filter(Boolean); + let addClassesAndReturnUndo = (classes) => { + el.classList.add(...classes); + return () => { + el.classList.remove(...classes); + }; + }; + classString = classString === true ? classString = "" : classString || ""; + return addClassesAndReturnUndo(missingClasses(classString)); + } + function setClassesFromObject(el, classObject) { + let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? splitClasses(classString) : false).filter(Boolean); + let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? splitClasses(classString) : false).filter(Boolean); + let added = []; + let removed = []; + forRemove.forEach((i) => { + if (el.classList.contains(i)) { + el.classList.remove(i); + removed.push(i); + } + }); + forAdd.forEach((i) => { + if (!el.classList.contains(i)) { + el.classList.add(i); + added.push(i); + } + }); + return () => { + removed.forEach((i) => el.classList.add(i)); + added.forEach((i) => el.classList.remove(i)); + }; + } + function setStyles2(el, value) { + if (typeof value === "object" && value !== null) { + return setStylesFromObject(el, value); + } + return setStylesFromString(el, value); + } + function setStylesFromObject(el, value) { + let previousStyles = {}; + Object.entries(value).forEach(([key, value2]) => { + previousStyles[key] = el.style[key]; + if (!key.startsWith("--")) { + key = kebabCase(key); + } + el.style.setProperty(key, value2); + }); + setTimeout(() => { + if (el.style.length === 0) { + el.removeAttribute("style"); + } + }); + return () => { + setStyles2(el, previousStyles); + }; + } + function setStylesFromString(el, value) { + let cache = el.getAttribute("style", value); + el.setAttribute("style", value); + return () => { + el.setAttribute("style", cache || ""); + }; + } + function kebabCase(subject) { + return subject.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); + } + function once(callback, fallback2 = () => { + }) { + let called = false; + return function() { + if (!called) { + called = true; + callback.apply(this, arguments); + } else { + fallback2.apply(this, arguments); + } + }; + } + directive2("transition", (el, { value, modifiers, expression }, { evaluate: evaluate22 }) => { + if (typeof expression === "function") + expression = evaluate22(expression); + if (expression === false) + return; + if (!expression || typeof expression === "boolean") { + registerTransitionsFromHelper(el, modifiers, value); + } else { + registerTransitionsFromClassString(el, expression, value); + } + }); + function registerTransitionsFromClassString(el, classString, stage) { + registerTransitionObject(el, setClasses, ""); + let directiveStorageMap = { + "enter": (classes) => { + el._x_transition.enter.during = classes; + }, + "enter-start": (classes) => { + el._x_transition.enter.start = classes; + }, + "enter-end": (classes) => { + el._x_transition.enter.end = classes; + }, + "leave": (classes) => { + el._x_transition.leave.during = classes; + }, + "leave-start": (classes) => { + el._x_transition.leave.start = classes; + }, + "leave-end": (classes) => { + el._x_transition.leave.end = classes; + } + }; + directiveStorageMap[stage](classString); + } + function registerTransitionsFromHelper(el, modifiers, stage) { + registerTransitionObject(el, setStyles2); + let doesntSpecify = !modifiers.includes("in") && !modifiers.includes("out") && !stage; + let transitioningIn = doesntSpecify || modifiers.includes("in") || ["enter"].includes(stage); + let transitioningOut = doesntSpecify || modifiers.includes("out") || ["leave"].includes(stage); + if (modifiers.includes("in") && !doesntSpecify) { + modifiers = modifiers.filter((i, index2) => index2 < modifiers.indexOf("out")); + } + if (modifiers.includes("out") && !doesntSpecify) { + modifiers = modifiers.filter((i, index2) => index2 > modifiers.indexOf("out")); + } + let wantsAll = !modifiers.includes("opacity") && !modifiers.includes("scale"); + let wantsOpacity = wantsAll || modifiers.includes("opacity"); + let wantsScale = wantsAll || modifiers.includes("scale"); + let opacityValue = wantsOpacity ? 0 : 1; + let scaleValue = wantsScale ? modifierValue2(modifiers, "scale", 95) / 100 : 1; + let delay3 = modifierValue2(modifiers, "delay", 0) / 1e3; + let origin = modifierValue2(modifiers, "origin", "center"); + let property = "opacity, transform"; + let durationIn = modifierValue2(modifiers, "duration", 150) / 1e3; + let durationOut = modifierValue2(modifiers, "duration", 75) / 1e3; + let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`; + if (transitioningIn) { + el._x_transition.enter.during = { + transformOrigin: origin, + transitionDelay: `${delay3}s`, + transitionProperty: property, + transitionDuration: `${durationIn}s`, + transitionTimingFunction: easing + }; + el._x_transition.enter.start = { + opacity: opacityValue, + transform: `scale(${scaleValue})` + }; + el._x_transition.enter.end = { + opacity: 1, + transform: `scale(1)` + }; + } + if (transitioningOut) { + el._x_transition.leave.during = { + transformOrigin: origin, + transitionDelay: `${delay3}s`, + transitionProperty: property, + transitionDuration: `${durationOut}s`, + transitionTimingFunction: easing + }; + el._x_transition.leave.start = { + opacity: 1, + transform: `scale(1)` + }; + el._x_transition.leave.end = { + opacity: opacityValue, + transform: `scale(${scaleValue})` + }; + } + } + function registerTransitionObject(el, setFunction, defaultValue = {}) { + if (!el._x_transition) + el._x_transition = { + enter: { during: defaultValue, start: defaultValue, end: defaultValue }, + leave: { during: defaultValue, start: defaultValue, end: defaultValue }, + in(before = () => { + }, after = () => { + }) { + transition(el, setFunction, { + during: this.enter.during, + start: this.enter.start, + end: this.enter.end + }, before, after); + }, + out(before = () => { + }, after = () => { + }) { + transition(el, setFunction, { + during: this.leave.during, + start: this.leave.start, + end: this.leave.end + }, before, after); + } + }; + } + window.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) { + const nextTick2 = document.visibilityState === "visible" ? requestAnimationFrame : setTimeout; + let clickAwayCompatibleShow = () => nextTick2(show); + if (value) { + if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) { + el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow(); + } else { + el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow(); + } + return; + } + el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => { + el._x_transition.out(() => { + }, () => resolve(hide)); + el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true })); + }) : Promise.resolve(hide); + queueMicrotask(() => { + let closest2 = closestHide(el); + if (closest2) { + if (!closest2._x_hideChildren) + closest2._x_hideChildren = []; + closest2._x_hideChildren.push(el); + } else { + nextTick2(() => { + let hideAfterChildren = (el2) => { + let carry = Promise.all([ + el2._x_hidePromise, + ...(el2._x_hideChildren || []).map(hideAfterChildren) + ]).then(([i]) => i == null ? void 0 : i()); + delete el2._x_hidePromise; + delete el2._x_hideChildren; + return carry; + }; + hideAfterChildren(el).catch((e) => { + if (!e.isFromCancelledTransition) + throw e; + }); + }); + } + }); + }; + function closestHide(el) { + let parent = el.parentNode; + if (!parent) + return; + return parent._x_hidePromise ? parent : closestHide(parent); + } + function transition(el, setFunction, { during, start: start22, end } = {}, before = () => { + }, after = () => { + }) { + if (el._x_transitioning) + el._x_transitioning.cancel(); + if (Object.keys(during).length === 0 && Object.keys(start22).length === 0 && Object.keys(end).length === 0) { + before(); + after(); + return; + } + let undoStart, undoDuring, undoEnd; + performTransition(el, { + start() { + undoStart = setFunction(el, start22); + }, + during() { + undoDuring = setFunction(el, during); + }, + before, + end() { + undoStart(); + undoEnd = setFunction(el, end); + }, + after, + cleanup() { + undoDuring(); + undoEnd(); + } + }); + } + function performTransition(el, stages) { + let interrupted, reachedBefore, reachedEnd; + let finish = once(() => { + mutateDom(() => { + interrupted = true; + if (!reachedBefore) + stages.before(); + if (!reachedEnd) { + stages.end(); + releaseNextTicks(); + } + stages.after(); + if (el.isConnected) + stages.cleanup(); + delete el._x_transitioning; + }); + }); + el._x_transitioning = { + beforeCancels: [], + beforeCancel(callback) { + this.beforeCancels.push(callback); + }, + cancel: once(function() { + while (this.beforeCancels.length) { + this.beforeCancels.shift()(); + } + ; + finish(); + }), + finish + }; + mutateDom(() => { + stages.start(); + stages.during(); + }); + holdNextTicks(); + requestAnimationFrame(() => { + if (interrupted) + return; + let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, "").replace("s", "")) * 1e3; + let delay3 = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, "").replace("s", "")) * 1e3; + if (duration === 0) + duration = Number(getComputedStyle(el).animationDuration.replace("s", "")) * 1e3; + mutateDom(() => { + stages.before(); + }); + reachedBefore = true; + requestAnimationFrame(() => { + if (interrupted) + return; + mutateDom(() => { + stages.end(); + }); + releaseNextTicks(); + setTimeout(el._x_transitioning.finish, duration + delay3); + reachedEnd = true; + }); + }); + } + function modifierValue2(modifiers, key, fallback2) { + if (modifiers.indexOf(key) === -1) + return fallback2; + const rawValue = modifiers[modifiers.indexOf(key) + 1]; + if (!rawValue) + return fallback2; + if (key === "scale") { + if (isNaN(rawValue)) + return fallback2; + } + if (key === "duration" || key === "delay") { + let match = rawValue.match(/([0-9]+)ms/); + if (match) + return match[1]; + } + if (key === "origin") { + if (["top", "right", "left", "center", "bottom"].includes(modifiers[modifiers.indexOf(key) + 2])) { + return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(" "); + } + } + return rawValue; + } + var isCloning = false; + function skipDuringClone(callback, fallback2 = () => { + }) { + return (...args) => isCloning ? fallback2(...args) : callback(...args); + } + function onlyDuringClone(callback) { + return (...args) => isCloning && callback(...args); + } + var interceptors2 = []; + function interceptClone(callback) { + interceptors2.push(callback); + } + function cloneNode(from, to) { + interceptors2.forEach((i) => i(from, to)); + isCloning = true; + dontRegisterReactiveSideEffects(() => { + initTree(to, (el, callback) => { + callback(el, () => { + }); + }); + }); + isCloning = false; + } + var isCloningLegacy = false; + function clone2(oldEl, newEl) { + if (!newEl._x_dataStack) + newEl._x_dataStack = oldEl._x_dataStack; + isCloning = true; + isCloningLegacy = true; + dontRegisterReactiveSideEffects(() => { + cloneTree(newEl); + }); + isCloning = false; + isCloningLegacy = false; + } + function cloneTree(el) { + let hasRunThroughFirstEl = false; + let shallowWalker = (el2, callback) => { + walk2(el2, (el3, skip) => { + if (hasRunThroughFirstEl && isRoot(el3)) + return skip(); + hasRunThroughFirstEl = true; + callback(el3, skip); + }); + }; + initTree(el, shallowWalker); + } + function dontRegisterReactiveSideEffects(callback) { + let cache = effect; + overrideEffect((callback2, el) => { + let storedEffect = cache(callback2); + release(storedEffect); + return () => { + }; + }); + callback(); + overrideEffect(cache); + } + function bind(el, name, value, modifiers = []) { + if (!el._x_bindings) + el._x_bindings = reactive({}); + el._x_bindings[name] = value; + name = modifiers.includes("camel") ? camelCase(name) : name; + switch (name) { + case "value": + bindInputValue(el, value); + break; + case "style": + bindStyles(el, value); + break; + case "class": + bindClasses(el, value); + break; + case "selected": + case "checked": + bindAttributeAndProperty(el, name, value); + break; + default: + bindAttribute(el, name, value); + break; + } + } + function bindInputValue(el, value) { + if (isRadio3(el)) { + if (el.attributes.value === void 0) { + el.value = value; + } + } else if (isCheckbox(el)) { + if (Number.isInteger(value)) { + el.value = value; + } else if (!Array.isArray(value) && typeof value !== "boolean" && ![null, void 0].includes(value)) { + el.value = String(value); + } else { + if (Array.isArray(value)) { + el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value)); + } else { + el.checked = !!value; + } + } + } else if (el.tagName === "SELECT") { + updateSelect(el, value); + } else { + if (el.value === value) + return; + el.value = value === void 0 ? "" : value; + } + } + function bindClasses(el, value) { + if (el._x_undoAddedClasses) + el._x_undoAddedClasses(); + el._x_undoAddedClasses = setClasses(el, value); + } + function bindStyles(el, value) { + if (el._x_undoAddedStyles) + el._x_undoAddedStyles(); + el._x_undoAddedStyles = setStyles2(el, value); + } + function bindAttributeAndProperty(el, name, value) { + bindAttribute(el, name, value); + setPropertyIfChanged(el, name, value); + } + function bindAttribute(el, name, value) { + if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) { + el.removeAttribute(name); + } else { + if (isBooleanAttr(name)) + value = name; + setIfChanged(el, name, value); + } + } + function setIfChanged(el, attrName, value) { + if (el.getAttribute(attrName) != value) { + el.setAttribute(attrName, value); + } + } + function setPropertyIfChanged(el, propName, value) { + if (el[propName] !== value) { + el[propName] = value; + } + } + function updateSelect(el, value) { + const arrayWrappedValue = [].concat(value).map((value2) => { + return value2 + ""; + }); + Array.from(el.options).forEach((option2) => { + option2.selected = arrayWrappedValue.includes(option2.value); + }); + } + function camelCase(subject) { + return subject.toLowerCase().replace(/-(\w)/g, (match, char) => char.toUpperCase()); + } + function checkedAttrLooseCompare(valueA, valueB) { + return valueA == valueB; + } + function safeParseBoolean(rawValue) { + if ([1, "1", "true", "on", "yes", true].includes(rawValue)) { + return true; + } + if ([0, "0", "false", "off", "no", false].includes(rawValue)) { + return false; + } + return rawValue ? Boolean(rawValue) : null; + } + var booleanAttributes = /* @__PURE__ */ new Set([ + "allowfullscreen", + "async", + "autofocus", + "autoplay", + "checked", + "controls", + "default", + "defer", + "disabled", + "formnovalidate", + "inert", + "ismap", + "itemscope", + "loop", + "multiple", + "muted", + "nomodule", + "novalidate", + "open", + "playsinline", + "readonly", + "required", + "reversed", + "selected", + "shadowrootclonable", + "shadowrootdelegatesfocus", + "shadowrootserializable" + ]); + function isBooleanAttr(attrName) { + return booleanAttributes.has(attrName); + } + function attributeShouldntBePreservedIfFalsy(name) { + return !["aria-pressed", "aria-checked", "aria-expanded", "aria-selected"].includes(name); + } + function getBinding(el, name, fallback2) { + if (el._x_bindings && el._x_bindings[name] !== void 0) + return el._x_bindings[name]; + return getAttributeBinding(el, name, fallback2); + } + function extractProp(el, name, fallback2, extract = true) { + if (el._x_bindings && el._x_bindings[name] !== void 0) + return el._x_bindings[name]; + if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) { + let binding = el._x_inlineBindings[name]; + binding.extract = extract; + return dontAutoEvaluateFunctions(() => { + return evaluate2(el, binding.expression); + }); + } + return getAttributeBinding(el, name, fallback2); + } + function getAttributeBinding(el, name, fallback2) { + let attr = el.getAttribute(name); + if (attr === null) + return typeof fallback2 === "function" ? fallback2() : fallback2; + if (attr === "") + return true; + if (isBooleanAttr(name)) { + return !![name, "true"].includes(attr); + } + return attr; + } + function isCheckbox(el) { + return el.type === "checkbox" || el.localName === "ui-checkbox" || el.localName === "ui-switch"; + } + function isRadio3(el) { + return el.type === "radio" || el.localName === "ui-radio"; + } + function debounce2(func, wait) { + let timeout; + return function() { + const context = this, args = arguments; + const later = function() { + timeout = null; + func.apply(context, args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; + } + function throttle3(func, limit) { + let inThrottle; + return function() { + let context = this, args = arguments; + if (!inThrottle) { + func.apply(context, args); + inThrottle = true; + setTimeout(() => inThrottle = false, limit); + } + }; + } + function entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) { + let firstRun = true; + let outerHash; + let innerHash; + let reference = effect(() => { + let outer = outerGet(); + let inner = innerGet(); + if (firstRun) { + innerSet(cloneIfObject2(outer)); + firstRun = false; + } else { + let outerHashLatest = JSON.stringify(outer); + let innerHashLatest = JSON.stringify(inner); + if (outerHashLatest !== outerHash) { + innerSet(cloneIfObject2(outer)); + } else if (outerHashLatest !== innerHashLatest) { + outerSet(cloneIfObject2(inner)); + } else { + } + } + outerHash = JSON.stringify(outerGet()); + innerHash = JSON.stringify(innerGet()); + }); + return () => { + release(reference); + }; + } + function cloneIfObject2(value) { + return typeof value === "object" ? JSON.parse(JSON.stringify(value)) : value; + } + function plugin(callback) { + let callbacks = Array.isArray(callback) ? callback : [callback]; + callbacks.forEach((i) => i(alpine_default)); + } + var stores = {}; + var isReactive = false; + function store(name, value) { + if (!isReactive) { + stores = reactive(stores); + isReactive = true; + } + if (value === void 0) { + return stores[name]; + } + stores[name] = value; + initInterceptors(stores[name]); + if (typeof value === "object" && value !== null && value.hasOwnProperty("init") && typeof value.init === "function") { + stores[name].init(); + } + } + function getStores() { + return stores; + } + var binds = {}; + function bind2(name, bindings) { + let getBindings = typeof bindings !== "function" ? () => bindings : bindings; + if (name instanceof Element) { + return applyBindingsObject(name, getBindings()); + } else { + binds[name] = getBindings; + } + return () => { + }; + } + function injectBindingProviders(obj) { + Object.entries(binds).forEach(([name, callback]) => { + Object.defineProperty(obj, name, { + get() { + return (...args) => { + return callback(...args); + }; + } + }); + }); + return obj; + } + function applyBindingsObject(el, obj, original) { + let cleanupRunners = []; + while (cleanupRunners.length) + cleanupRunners.pop()(); + let attributes = Object.entries(obj).map(([name, value]) => ({ name, value })); + let staticAttributes = attributesOnly(attributes); + attributes = attributes.map((attribute) => { + if (staticAttributes.find((attr) => attr.name === attribute.name)) { + return { + name: `x-bind:${attribute.name}`, + value: `"${attribute.value}"` + }; + } + return attribute; + }); + directives(el, attributes, original).map((handle) => { + cleanupRunners.push(handle.runCleanups); + handle(); + }); + return () => { + while (cleanupRunners.length) + cleanupRunners.pop()(); + }; + } + var datas = {}; + function data(name, callback) { + datas[name] = callback; + } + function injectDataProviders(obj, context) { + Object.entries(datas).forEach(([name, callback]) => { + Object.defineProperty(obj, name, { + get() { + return (...args) => { + return callback.bind(context)(...args); + }; + }, + enumerable: false + }); + }); + return obj; + } + var Alpine25 = { + get reactive() { + return reactive; + }, + get release() { + return release; + }, + get effect() { + return effect; + }, + get raw() { + return raw; + }, + get transaction() { + return transaction; + }, + version: "3.15.12", + flushAndStopDeferringMutations, + dontAutoEvaluateFunctions, + disableEffectScheduling, + startObservingMutations, + stopObservingMutations, + setReactivityEngine, + onAttributeRemoved, + onAttributesAdded, + closestDataStack, + skipDuringClone, + onlyDuringClone, + addRootSelector, + addInitSelector, + setErrorHandler, + interceptClone, + addScopeToNode, + deferMutations, + mapAttributes, + evaluateLater, + interceptInit, + initInterceptors, + injectMagics, + setEvaluator, + setRawEvaluator, + mergeProxies, + extractProp, + findClosest, + onElRemoved, + closestRoot, + destroyTree, + interceptor, + transition, + setStyles: setStyles2, + mutateDom, + directive: directive2, + entangle, + throttle: throttle3, + debounce: debounce2, + evaluate: evaluate2, + evaluateRaw, + initTree, + nextTick, + prefixed: prefix, + prefix: setPrefix, + plugin, + magic, + store, + start: start2, + clone: clone2, + cloneNode, + bound: getBinding, + $data: scope, + watch, + walk: walk2, + data, + bind: bind2 + }; + var alpine_default = Alpine25; + var safemap = /* @__PURE__ */ new WeakMap(); + var globals = /* @__PURE__ */ new Set(); + Object.getOwnPropertyNames(globalThis).forEach((key) => { + if (key === "styleMedia" || key === "sharedStorage") + return; + globals.add(globalThis[key]); + }); + var Token = class { + constructor(type, value, start22, end) { + this.type = type; + this.value = value; + this.start = start22; + this.end = end; + } + }; + var Tokenizer = class { + constructor(input) { + this.input = input; + this.position = 0; + this.tokens = []; + } + tokenize() { + while (this.position < this.input.length) { + this.skipWhitespace(); + if (this.position >= this.input.length) + break; + const char = this.input[this.position]; + if (this.isDigit(char)) { + this.readNumber(); + } else if (this.isAlpha(char) || char === "_" || char === "$") { + this.readIdentifierOrKeyword(); + } else if (char === '"' || char === "'") { + this.readString(); + } else if (char === "/" && this.peek() === "/") { + this.skipLineComment(); + } else { + this.readOperatorOrPunctuation(); + } + } + this.tokens.push(new Token("EOF", null, this.position, this.position)); + return this.tokens; + } + skipWhitespace() { + while (this.position < this.input.length && /\s/.test(this.input[this.position])) { + this.position++; + } + } + skipLineComment() { + while (this.position < this.input.length && this.input[this.position] !== "\n") { + this.position++; + } + } + isDigit(char) { + return /[0-9]/.test(char); + } + isAlpha(char) { + return /[a-zA-Z]/.test(char); + } + isAlphaNumeric(char) { + return /[a-zA-Z0-9_$]/.test(char); + } + peek(offset2 = 1) { + return this.input[this.position + offset2] || ""; + } + readNumber() { + const start22 = this.position; + let hasDecimal = false; + while (this.position < this.input.length) { + const char = this.input[this.position]; + if (this.isDigit(char)) { + this.position++; + } else if (char === "." && !hasDecimal) { + hasDecimal = true; + this.position++; + } else { + break; + } + } + const value = this.input.slice(start22, this.position); + this.tokens.push(new Token("NUMBER", parseFloat(value), start22, this.position)); + } + readIdentifierOrKeyword() { + const start22 = this.position; + while (this.position < this.input.length && this.isAlphaNumeric(this.input[this.position])) { + this.position++; + } + const value = this.input.slice(start22, this.position); + const keywords = ["true", "false", "null", "undefined", "new", "typeof", "void", "delete", "in", "instanceof"]; + if (keywords.includes(value)) { + if (value === "true" || value === "false") { + this.tokens.push(new Token("BOOLEAN", value === "true", start22, this.position)); + } else if (value === "null") { + this.tokens.push(new Token("NULL", null, start22, this.position)); + } else if (value === "undefined") { + this.tokens.push(new Token("UNDEFINED", void 0, start22, this.position)); + } else { + this.tokens.push(new Token("KEYWORD", value, start22, this.position)); + } + } else { + this.tokens.push(new Token("IDENTIFIER", value, start22, this.position)); + } + } + readString() { + const start22 = this.position; + const quote = this.input[this.position]; + this.position++; + let value = ""; + let escaped = false; + while (this.position < this.input.length) { + const char = this.input[this.position]; + if (escaped) { + switch (char) { + case "n": + value += "\n"; + break; + case "t": + value += " "; + break; + case "r": + value += "\r"; + break; + case "\\": + value += "\\"; + break; + case quote: + value += quote; + break; + default: + value += char; + } + escaped = false; + } else if (char === "\\") { + escaped = true; + } else if (char === quote) { + this.position++; + this.tokens.push(new Token("STRING", value, start22, this.position)); + return; + } else { + value += char; + } + this.position++; + } + throw new Error(`Unterminated string starting at position ${start22}`); + } + readOperatorOrPunctuation() { + const start22 = this.position; + const char = this.input[this.position]; + const next = this.peek(); + const nextNext = this.peek(2); + if (char === "=" && next === "=" && nextNext === "=") { + this.position += 3; + this.tokens.push(new Token("OPERATOR", "===", start22, this.position)); + } else if (char === "!" && next === "=" && nextNext === "=") { + this.position += 3; + this.tokens.push(new Token("OPERATOR", "!==", start22, this.position)); + } else if (char === "=" && next === "=") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "==", start22, this.position)); + } else if (char === "!" && next === "=") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "!=", start22, this.position)); + } else if (char === "<" && next === "=") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "<=", start22, this.position)); + } else if (char === ">" && next === "=") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", ">=", start22, this.position)); + } else if (char === "&" && next === "&") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "&&", start22, this.position)); + } else if (char === "|" && next === "|") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "||", start22, this.position)); + } else if (char === "+" && next === "+") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "++", start22, this.position)); + } else if (char === "-" && next === "-") { + this.position += 2; + this.tokens.push(new Token("OPERATOR", "--", start22, this.position)); + } else { + this.position++; + const type = "()[]{},.;:?".includes(char) ? "PUNCTUATION" : "OPERATOR"; + this.tokens.push(new Token(type, char, start22, this.position)); + } + } + }; + var Parser = class { + constructor(tokens) { + this.tokens = tokens; + this.position = 0; + } + parse() { + if (this.isAtEnd()) { + throw new Error("Empty expression"); + } + const expr = this.parseExpression(); + this.match("PUNCTUATION", ";"); + if (!this.isAtEnd()) { + throw new Error(`Unexpected token: ${this.current().value}`); + } + return expr; + } + parseExpression() { + return this.parseAssignment(); + } + parseAssignment() { + const expr = this.parseTernary(); + if (this.match("OPERATOR", "=")) { + const value = this.parseAssignment(); + if (expr.type === "Identifier" || expr.type === "MemberExpression") { + return { + type: "AssignmentExpression", + left: expr, + operator: "=", + right: value + }; + } + throw new Error("Invalid assignment target"); + } + return expr; + } + parseTernary() { + const expr = this.parseLogicalOr(); + if (this.match("PUNCTUATION", "?")) { + const consequent = this.parseExpression(); + this.consume("PUNCTUATION", ":"); + const alternate = this.parseExpression(); + return { + type: "ConditionalExpression", + test: expr, + consequent, + alternate + }; + } + return expr; + } + parseLogicalOr() { + let expr = this.parseLogicalAnd(); + while (this.match("OPERATOR", "||")) { + const operator = this.previous().value; + const right = this.parseLogicalAnd(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseLogicalAnd() { + let expr = this.parseEquality(); + while (this.match("OPERATOR", "&&")) { + const operator = this.previous().value; + const right = this.parseEquality(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseEquality() { + let expr = this.parseRelational(); + while (this.match("OPERATOR", "==", "!=", "===", "!==")) { + const operator = this.previous().value; + const right = this.parseRelational(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseRelational() { + let expr = this.parseAdditive(); + while (this.match("OPERATOR", "<", ">", "<=", ">=")) { + const operator = this.previous().value; + const right = this.parseAdditive(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseAdditive() { + let expr = this.parseMultiplicative(); + while (this.match("OPERATOR", "+", "-")) { + const operator = this.previous().value; + const right = this.parseMultiplicative(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseMultiplicative() { + let expr = this.parseUnary(); + while (this.match("OPERATOR", "*", "/", "%")) { + const operator = this.previous().value; + const right = this.parseUnary(); + expr = { + type: "BinaryExpression", + operator, + left: expr, + right + }; + } + return expr; + } + parseUnary() { + if (this.match("OPERATOR", "++", "--")) { + const operator = this.previous().value; + const argument = this.parseUnary(); + return { + type: "UpdateExpression", + operator, + argument, + prefix: true + }; + } + if (this.match("OPERATOR", "!", "-", "+")) { + const operator = this.previous().value; + const argument = this.parseUnary(); + return { + type: "UnaryExpression", + operator, + argument, + prefix: true + }; + } + return this.parsePostfix(); + } + parsePostfix() { + let expr = this.parseMember(); + if (this.match("OPERATOR", "++", "--")) { + const operator = this.previous().value; + return { + type: "UpdateExpression", + operator, + argument: expr, + prefix: false + }; + } + return expr; + } + parseMember() { + let expr = this.parsePrimary(); + while (true) { + if (this.match("PUNCTUATION", ".")) { + const property = this.consume("IDENTIFIER"); + expr = { + type: "MemberExpression", + object: expr, + property: { type: "Identifier", name: property.value }, + computed: false + }; + } else if (this.match("PUNCTUATION", "[")) { + const property = this.parseExpression(); + this.consume("PUNCTUATION", "]"); + expr = { + type: "MemberExpression", + object: expr, + property, + computed: true + }; + } else if (this.match("PUNCTUATION", "(")) { + const args = this.parseArguments(); + expr = { + type: "CallExpression", + callee: expr, + arguments: args + }; + } else { + break; + } + } + return expr; + } + parseArguments() { + const args = []; + if (!this.check("PUNCTUATION", ")")) { + do { + args.push(this.parseExpression()); + } while (this.match("PUNCTUATION", ",")); + } + this.consume("PUNCTUATION", ")"); + return args; + } + parsePrimary() { + if (this.match("NUMBER")) { + return { type: "Literal", value: this.previous().value }; + } + if (this.match("STRING")) { + return { type: "Literal", value: this.previous().value }; + } + if (this.match("BOOLEAN")) { + return { type: "Literal", value: this.previous().value }; + } + if (this.match("NULL")) { + return { type: "Literal", value: null }; + } + if (this.match("UNDEFINED")) { + return { type: "Literal", value: void 0 }; + } + if (this.match("IDENTIFIER")) { + return { type: "Identifier", name: this.previous().value }; + } + if (this.match("PUNCTUATION", "(")) { + const expr = this.parseExpression(); + this.consume("PUNCTUATION", ")"); + return expr; + } + if (this.match("PUNCTUATION", "[")) { + return this.parseArrayLiteral(); + } + if (this.match("PUNCTUATION", "{")) { + return this.parseObjectLiteral(); + } + throw new Error(`Unexpected token: ${this.current().type} "${this.current().value}"`); + } + parseArrayLiteral() { + const elements = []; + while (!this.check("PUNCTUATION", "]") && !this.isAtEnd()) { + elements.push(this.parseExpression()); + if (this.match("PUNCTUATION", ",")) { + if (this.check("PUNCTUATION", "]")) { + break; + } + } else { + break; + } + } + this.consume("PUNCTUATION", "]"); + return { + type: "ArrayExpression", + elements + }; + } + parseObjectLiteral() { + const properties2 = []; + while (!this.check("PUNCTUATION", "}") && !this.isAtEnd()) { + let key; + let computed = false; + if (this.match("STRING")) { + key = { type: "Literal", value: this.previous().value }; + } else if (this.match("IDENTIFIER")) { + const name = this.previous().value; + key = { type: "Identifier", name }; + } else if (this.match("PUNCTUATION", "[")) { + key = this.parseExpression(); + computed = true; + this.consume("PUNCTUATION", "]"); + } else { + throw new Error("Expected property key"); + } + this.consume("PUNCTUATION", ":"); + const value = this.parseExpression(); + properties2.push({ + type: "Property", + key, + value, + computed, + shorthand: false + }); + if (this.match("PUNCTUATION", ",")) { + if (this.check("PUNCTUATION", "}")) { + break; + } + } else { + break; + } + } + this.consume("PUNCTUATION", "}"); + return { + type: "ObjectExpression", + properties: properties2 + }; + } + match(...args) { + for (let i = 0; i < args.length; i++) { + const arg = args[i]; + if (i === 0 && args.length > 1) { + const type = arg; + for (let j = 1; j < args.length; j++) { + if (this.check(type, args[j])) { + this.advance(); + return true; + } + } + return false; + } else if (args.length === 1) { + if (this.checkType(arg)) { + this.advance(); + return true; + } + return false; + } + } + return false; + } + check(type, value) { + if (this.isAtEnd()) + return false; + if (value !== void 0) { + return this.current().type === type && this.current().value === value; + } + return this.current().type === type; + } + checkType(type) { + if (this.isAtEnd()) + return false; + return this.current().type === type; + } + advance() { + if (!this.isAtEnd()) + this.position++; + return this.previous(); + } + isAtEnd() { + return this.current().type === "EOF"; + } + current() { + return this.tokens[this.position]; + } + previous() { + return this.tokens[this.position - 1]; + } + consume(type, value) { + if (value !== void 0) { + if (this.check(type, value)) + return this.advance(); + throw new Error(`Expected ${type} "${value}" but got ${this.current().type} "${this.current().value}"`); + } + if (this.check(type)) + return this.advance(); + throw new Error(`Expected ${type} but got ${this.current().type} "${this.current().value}"`); + } + }; + var Evaluator = class { + evaluate({ node, scope: scope2 = {}, context = null, forceBindingRootScopeToFunctions = true }) { + switch (node.type) { + case "Literal": + return node.value; + case "Identifier": + if (node.name in scope2) { + const value2 = scope2[node.name]; + this.checkForDangerousValues(value2); + if (typeof value2 === "function") { + return value2.bind(scope2); + } + return value2; + } + throw new Error(`Undefined variable: ${node.name}`); + case "MemberExpression": + const object = this.evaluate({ node: node.object, scope: scope2, context, forceBindingRootScopeToFunctions }); + if (object == null) { + throw new Error("Cannot read property of null or undefined"); + } + let property; + if (node.computed) { + property = this.evaluate({ node: node.property, scope: scope2, context, forceBindingRootScopeToFunctions }); + } else { + property = node.property.name; + } + this.checkForDangerousKeywords(property); + let memberValue = object[property]; + this.checkForDangerousValues(memberValue); + if (typeof memberValue === "function") { + if (forceBindingRootScopeToFunctions) { + return memberValue.bind(scope2); + } else { + return memberValue.bind(object); + } + } + return memberValue; + case "CallExpression": + const args = node.arguments.map((arg) => this.evaluate({ node: arg, scope: scope2, context, forceBindingRootScopeToFunctions })); + let returnValue; + if (node.callee.type === "MemberExpression") { + const obj = this.evaluate({ node: node.callee.object, scope: scope2, context, forceBindingRootScopeToFunctions }); + let prop; + if (node.callee.computed) { + prop = this.evaluate({ node: node.callee.property, scope: scope2, context, forceBindingRootScopeToFunctions }); + } else { + prop = node.callee.property.name; + } + this.checkForDangerousKeywords(prop); + let func = obj[prop]; + if (typeof func !== "function") { + throw new Error("Value is not a function"); + } + returnValue = func.apply(obj, args); + } else { + if (node.callee.type === "Identifier") { + const name = node.callee.name; + let func; + if (name in scope2) { + func = scope2[name]; + } else { + throw new Error(`Undefined variable: ${name}`); + } + if (typeof func !== "function") { + throw new Error("Value is not a function"); + } + const thisContext = context !== null ? context : scope2; + returnValue = func.apply(thisContext, args); + } else { + const callee = this.evaluate({ node: node.callee, scope: scope2, context, forceBindingRootScopeToFunctions }); + if (typeof callee !== "function") { + throw new Error("Value is not a function"); + } + returnValue = callee.apply(context, args); + } + } + this.checkForDangerousValues(returnValue); + return returnValue; + case "UnaryExpression": + const argument = this.evaluate({ node: node.argument, scope: scope2, context, forceBindingRootScopeToFunctions }); + switch (node.operator) { + case "!": + return !argument; + case "-": + return -argument; + case "+": + return +argument; + default: + throw new Error(`Unknown unary operator: ${node.operator}`); + } + case "UpdateExpression": + if (node.argument.type === "Identifier") { + const name = node.argument.name; + if (!(name in scope2)) { + throw new Error(`Undefined variable: ${name}`); + } + const oldValue = scope2[name]; + if (node.operator === "++") { + scope2[name] = oldValue + 1; + } else if (node.operator === "--") { + scope2[name] = oldValue - 1; + } + return node.prefix ? scope2[name] : oldValue; + } else if (node.argument.type === "MemberExpression") { + const obj = this.evaluate({ node: node.argument.object, scope: scope2, context, forceBindingRootScopeToFunctions }); + const prop = node.argument.computed ? this.evaluate({ node: node.argument.property, scope: scope2, context, forceBindingRootScopeToFunctions }) : node.argument.property.name; + if (this.isDOMObject(obj)) { + throw new Error("Property assignments on DOM objects are prohibited in the CSP build"); + } + this.checkForDangerousKeywords(prop); + const oldValue = obj[prop]; + if (node.operator === "++") { + obj[prop] = oldValue + 1; + } else if (node.operator === "--") { + obj[prop] = oldValue - 1; + } + return node.prefix ? obj[prop] : oldValue; + } + throw new Error("Invalid update expression target"); + case "BinaryExpression": + const left = this.evaluate({ node: node.left, scope: scope2, context, forceBindingRootScopeToFunctions }); + const evalRight = () => this.evaluate({ node: node.right, scope: scope2, context, forceBindingRootScopeToFunctions }); + if (node.operator === "&&") + return left && evalRight(); + if (node.operator === "||") + return left || evalRight(); + const right = evalRight(); + switch (node.operator) { + case "+": + return left + right; + case "-": + return left - right; + case "*": + return left * right; + case "/": + return left / right; + case "%": + return left % right; + case "==": + return left == right; + case "!=": + return left != right; + case "===": + return left === right; + case "!==": + return left !== right; + case "<": + return left < right; + case ">": + return left > right; + case "<=": + return left <= right; + case ">=": + return left >= right; + default: + throw new Error(`Unknown binary operator: ${node.operator}`); + } + case "ConditionalExpression": + const test = this.evaluate({ node: node.test, scope: scope2, context, forceBindingRootScopeToFunctions }); + return test ? this.evaluate({ node: node.consequent, scope: scope2, context, forceBindingRootScopeToFunctions }) : this.evaluate({ node: node.alternate, scope: scope2, context, forceBindingRootScopeToFunctions }); + case "AssignmentExpression": + const value = this.evaluate({ node: node.right, scope: scope2, context, forceBindingRootScopeToFunctions }); + if (node.left.type === "Identifier") { + scope2[node.left.name] = value; + return value; + } else if (node.left.type === "MemberExpression") { + const obj = this.evaluate({ node: node.left.object, scope: scope2, context, forceBindingRootScopeToFunctions }); + const prop = node.left.computed ? this.evaluate({ node: node.left.property, scope: scope2, context, forceBindingRootScopeToFunctions }) : node.left.property.name; + if (this.isDOMObject(obj)) { + throw new Error("Property assignments on DOM objects are prohibited in the CSP build"); + } + this.checkForDangerousKeywords(prop); + obj[prop] = value; + return value; + } + throw new Error("Invalid assignment target"); + case "ArrayExpression": + return node.elements.map((el) => this.evaluate({ node: el, scope: scope2, context, forceBindingRootScopeToFunctions })); + case "ObjectExpression": + const result = {}; + for (const prop of node.properties) { + const key = prop.computed ? this.evaluate({ node: prop.key, scope: scope2, context, forceBindingRootScopeToFunctions }) : prop.key.type === "Identifier" ? prop.key.name : this.evaluate({ node: prop.key, scope: scope2, context, forceBindingRootScopeToFunctions }); + const value2 = this.evaluate({ node: prop.value, scope: scope2, context, forceBindingRootScopeToFunctions }); + result[key] = value2; + } + return result; + default: + throw new Error(`Unknown node type: ${node.type}`); + } + } + isDOMObject(obj) { + return obj instanceof Node || typeof CSSStyleDeclaration !== "undefined" && obj instanceof CSSStyleDeclaration || typeof DOMStringMap !== "undefined" && obj instanceof DOMStringMap || typeof DOMTokenList !== "undefined" && obj instanceof DOMTokenList || typeof NamedNodeMap !== "undefined" && obj instanceof NamedNodeMap; + } + checkForDangerousKeywords(keyword) { + let blacklist = [ + "constructor", + "prototype", + "__proto__", + "__defineGetter__", + "__defineSetter__", + "insertAdjacentHTML", + "setAttribute", + "setAttributeNS", + "setAttributeNode", + "setAttributeNodeNS" + ]; + if (blacklist.includes(keyword)) { + throw new Error(`Accessing "${keyword}" is prohibited in the CSP build`); + } + } + checkForDangerousValues(prop) { + if (prop === null) { + return; + } + if (typeof prop !== "object" && typeof prop !== "function") { + return; + } + if (safemap.has(prop)) { + return; + } + if (prop instanceof HTMLIFrameElement || prop instanceof HTMLScriptElement) { + throw new Error("Accessing iframes and scripts is prohibited in the CSP build"); + } + if (globals.has(prop)) { + throw new Error("Accessing global variables is prohibited in the CSP build"); + } + safemap.set(prop, true); + return true; + } + }; + function generateRuntimeFunction(expression) { + try { + const tokenizer = new Tokenizer(expression); + const tokens = tokenizer.tokenize(); + const parser = new Parser(tokens); + const ast = parser.parse(); + const evaluator = new Evaluator(); + return function(options = {}) { + const { scope: scope2 = {}, context = null, forceBindingRootScopeToFunctions = false } = options; + return evaluator.evaluate({ node: ast, scope: scope2, context, forceBindingRootScopeToFunctions }); + }; + } catch (error2) { + throw new Error(`CSP Parser Error: ${error2.message}`); + } + } + function cspRawEvaluator(el, expression, extras = {}) { + var _a, _b; + let dataStack = generateDataStack(el); + let scope2 = mergeProxies([(_a = extras.scope) != null ? _a : {}, ...dataStack]); + let params = (_b = extras.params) != null ? _b : []; + let evaluate22 = generateRuntimeFunction(expression); + let result = evaluate22({ + scope: scope2, + forceBindingRootScopeToFunctions: true + }); + if (typeof result === "function" && shouldAutoEvaluateFunctions) { + return result.apply(scope2, params); + } + return result; + } + function cspEvaluator(el, expression) { + let dataStack = generateDataStack(el); + if (typeof expression === "function") { + return generateEvaluatorFromFunction(dataStack, expression); + } + let evaluator = generateEvaluator(el, expression, dataStack); + return tryCatch.bind(null, el, expression, evaluator); + } + function generateDataStack(el) { + let overriddenMagics = {}; + injectMagics(overriddenMagics, el); + return [overriddenMagics, ...closestDataStack(el)]; + } + function generateEvaluator(el, expression, dataStack) { + if (el instanceof HTMLIFrameElement) { + throw new Error("Evaluating expressions on an iframe is prohibited in the CSP build"); + } + if (el instanceof HTMLScriptElement) { + throw new Error("Evaluating expressions on a script is prohibited in the CSP build"); + } + return (receiver = () => { + }, { scope: scope2 = {}, params = [] } = {}) => { + let completeScope = mergeProxies([scope2, ...dataStack]); + let evaluate22 = generateRuntimeFunction(expression); + let returnValue = evaluate22({ + scope: completeScope, + forceBindingRootScopeToFunctions: true + }); + if (shouldAutoEvaluateFunctions && typeof returnValue === "function") { + let nextReturnValue = returnValue.apply(returnValue, params); + if (nextReturnValue instanceof Promise) { + nextReturnValue.then((i) => receiver(i)); + } else { + receiver(nextReturnValue); + } + } else if (typeof returnValue === "object" && returnValue instanceof Promise) { + returnValue.then((i) => receiver(i)); + } else { + receiver(returnValue); + } + }; + } + var import_reactivity10 = __toESM2(require_reactivity()); + magic("nextTick", () => nextTick); + magic("dispatch", (el) => dispatch3.bind(dispatch3, el)); + magic("watch", (el, { evaluateLater: evaluateLater2, cleanup }) => (key, callback) => { + let evaluate22 = evaluateLater2(key); + let getter = () => { + let value; + evaluate22((i) => value = i); + return value; + }; + let unwatch = watch(getter, callback); + cleanup(unwatch); + }); + magic("store", getStores); + magic("data", (el) => scope(el)); + magic("root", (el) => closestRoot(el)); + magic("refs", (el) => { + if (el._x_refs_proxy) + return el._x_refs_proxy; + el._x_refs_proxy = mergeProxies(getArrayOfRefObject(el)); + return el._x_refs_proxy; + }); + function getArrayOfRefObject(el) { + let refObjects = []; + findClosest(el, (i) => { + if (i._x_refs) + refObjects.push(i._x_refs); + }); + return refObjects; + } + var globalIdMemo = {}; + function findAndIncrementId(name) { + if (!globalIdMemo[name]) + globalIdMemo[name] = 0; + return ++globalIdMemo[name]; + } + function closestIdRoot(el, name) { + return findClosest(el, (element) => { + if (element._x_ids && element._x_ids[name]) + return true; + }); + } + function setIdRoot(el, name) { + if (!el._x_ids) + el._x_ids = {}; + if (!el._x_ids[name]) + el._x_ids[name] = findAndIncrementId(name); + } + magic("id", (el, { cleanup }) => (name, key = null) => { + let cacheKey = `${name}${key ? `-${key}` : ""}`; + return cacheIdByNameOnElement(el, cacheKey, cleanup, () => { + let root = closestIdRoot(el, name); + let id = root ? root._x_ids[name] : findAndIncrementId(name); + return key ? `${name}-${id}-${key}` : `${name}-${id}`; + }); + }); + interceptClone((from, to) => { + if (from._x_id) { + to._x_id = from._x_id; + } + }); + function cacheIdByNameOnElement(el, cacheKey, cleanup, callback) { + if (!el._x_id) + el._x_id = {}; + if (el._x_id[cacheKey]) + return el._x_id[cacheKey]; + let output = callback(); + el._x_id[cacheKey] = output; + cleanup(() => { + delete el._x_id[cacheKey]; + }); + return output; + } + magic("el", (el) => el); + warnMissingPluginMagic("Focus", "focus", "focus"); + warnMissingPluginMagic("Persist", "persist", "persist"); + function warnMissingPluginMagic(name, magicName, slug) { + magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el)); + } + directive2("modelable", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup }) => { + let func = evaluateLater2(expression); + let innerGet = () => { + let result; + func((i) => result = i); + return result; + }; + let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`); + let innerSet = (val) => evaluateInnerSet(() => { + }, { scope: { "__placeholder": val } }); + let initialValue = innerGet(); + innerSet(initialValue); + queueMicrotask(() => { + if (!el._x_model) + return; + el._x_removeModelListeners["default"](); + let outerGet = el._x_model.get; + let outerSet = el._x_model.setWithModifiers; + let releaseEntanglement = entangle( + { + get() { + return outerGet(); + }, + set(value) { + outerSet(value); + } + }, + { + get() { + return innerGet(); + }, + set(value) { + innerSet(value); + } + } + ); + cleanup(releaseEntanglement); + }); + }); + directive2("teleport", (el, { modifiers, expression }, { cleanup }) => { + if (el.tagName.toLowerCase() !== "template") + warn("x-teleport can only be used on a <template> tag", el); + let target = getTarget(expression); + let clone22 = el.content.cloneNode(true).firstElementChild; + el._x_teleport = clone22; + clone22._x_teleportBack = el; + el.setAttribute("data-teleport-template", true); + clone22.setAttribute("data-teleport-target", true); + if (el._x_forwardEvents) { + el._x_forwardEvents.forEach((eventName) => { + clone22.addEventListener(eventName, (e) => { + e.stopPropagation(); + el.dispatchEvent(new e.constructor(e.type, e)); + }); + }); + } + addScopeToNode(clone22, {}, el); + let placeInDom = (clone3, target2, modifiers2) => { + if (modifiers2.includes("prepend")) { + target2.parentNode.insertBefore(clone3, target2); + } else if (modifiers2.includes("append")) { + target2.parentNode.insertBefore(clone3, target2.nextSibling); + } else { + target2.appendChild(clone3); + } + }; + mutateDom(() => { + skipDuringClone(() => { + placeInDom(clone22, target, modifiers); + initTree(clone22); + })(); + }); + el._x_teleportPutBack = () => { + let target2 = getTarget(expression); + mutateDom(() => { + placeInDom(el._x_teleport, target2, modifiers); + }); + }; + cleanup( + () => mutateDom(() => { + clone22.remove(); + destroyTree(clone22); + }) + ); + }); + var teleportContainerDuringClone = document.createElement("div"); + function getTarget(expression) { + let target = skipDuringClone(() => { + return document.querySelector(expression); + }, () => { + return teleportContainerDuringClone; + })(); + if (!target) + warn(`Cannot find x-teleport element for selector: "${expression}"`); + return target; + } + var handler = () => { + }; + handler.inline = (el, { modifiers }, { cleanup }) => { + modifiers.includes("self") ? el._x_ignoreSelf = true : el._x_ignore = true; + cleanup(() => { + modifiers.includes("self") ? delete el._x_ignoreSelf : delete el._x_ignore; + }); + }; + directive2("ignore", handler); + directive2("effect", skipDuringClone((el, { expression }, { effect: effect3 }) => { + effect3(evaluateLater(el, expression)); + })); + function on4(el, event, modifiers, callback) { + let listenerTarget = el; + let handler4 = (e) => callback(e); + let options = {}; + let wrapHandler = (callback2, wrapper) => (e) => wrapper(callback2, e); + if (modifiers.includes("dot")) + event = dotSyntax(event); + if (modifiers.includes("camel")) + event = camelCase2(event); + if (modifiers.includes("capture")) + options.capture = true; + if (modifiers.includes("window")) + listenerTarget = window; + if (modifiers.includes("document")) + listenerTarget = document; + if (modifiers.includes("passive")) { + options.passive = modifiers[modifiers.indexOf("passive") + 1] !== "false"; + } + handler4 = addDebounceOrThrottle(modifiers, handler4); + if (modifiers.includes("prevent")) + handler4 = wrapHandler(handler4, (next, e) => { + e.preventDefault(); + next(e); + }); + if (modifiers.includes("stop")) + handler4 = wrapHandler(handler4, (next, e) => { + e.stopPropagation(); + next(e); + }); + if (modifiers.includes("once")) { + handler4 = wrapHandler(handler4, (next, e) => { + next(e); + listenerTarget.removeEventListener(event, handler4, options); + }); + } + if (modifiers.includes("away") || modifiers.includes("outside")) { + listenerTarget = document; + handler4 = wrapHandler(handler4, (next, e) => { + if (el.contains(e.target)) + return; + if (e.target.isConnected === false) + return; + if (el.offsetWidth < 1 && el.offsetHeight < 1) + return; + if (el._x_isShown === false) + return; + next(e); + }); + } + if (modifiers.includes("self")) + handler4 = wrapHandler(handler4, (next, e) => { + e.target === el && next(e); + }); + if (event === "submit") { + handler4 = wrapHandler(handler4, (next, e) => { + if (e.target._x_pendingModelUpdates) { + e.target._x_pendingModelUpdates.forEach((fn) => fn()); + } + next(e); + }); + } + if (isKeyEvent(event) || isClickEvent(event)) { + handler4 = wrapHandler(handler4, (next, e) => { + if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) { + return; + } + next(e); + }); + } + listenerTarget.addEventListener(event, handler4, options); + return () => { + listenerTarget.removeEventListener(event, handler4, options); + }; + } + function addDebounceOrThrottle(modifiers, handler4) { + if (modifiers.includes("debounce")) { + let nextModifier = modifiers[modifiers.indexOf("debounce") + 1] || "invalid-wait"; + let wait = isNumeric2(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; + handler4 = debounce2(handler4, wait); + } + if (modifiers.includes("throttle")) { + let nextModifier = modifiers[modifiers.indexOf("throttle") + 1] || "invalid-wait"; + let wait = isNumeric2(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; + handler4 = throttle3(handler4, wait); + } + return handler4; + } + function dotSyntax(subject) { + return subject.replace(/-/g, "."); + } + function camelCase2(subject) { + return subject.toLowerCase().replace(/-(\w)/g, (match, char) => char.toUpperCase()); + } + function isNumeric2(subject) { + return !Array.isArray(subject) && !isNaN(subject); + } + function kebabCase2(subject) { + if ([" ", "_"].includes( + subject + )) + return subject; + return subject.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\s]/, "-").toLowerCase(); + } + function isKeyEvent(event) { + return ["keydown", "keyup"].includes(event); + } + function isClickEvent(event) { + return ["contextmenu", "click", "mouse"].some((i) => event.includes(i)); + } + function isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) { + let keyModifiers = modifiers.filter((i) => { + return !["window", "document", "prevent", "stop", "once", "capture", "self", "away", "outside", "passive", "preserve-scroll", "blur", "change", "lazy"].includes(i); + }); + if (keyModifiers.includes("debounce")) { + let debounceIndex = keyModifiers.indexOf("debounce"); + keyModifiers.splice(debounceIndex, isNumeric2((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); + } + if (keyModifiers.includes("throttle")) { + let debounceIndex = keyModifiers.indexOf("throttle"); + keyModifiers.splice(debounceIndex, isNumeric2((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); + } + if (keyModifiers.length === 0) + return false; + if (keyModifiers.length === 1 && keyToModifiers(e.key).includes(keyModifiers[0])) + return false; + const systemKeyModifiers = ["ctrl", "shift", "alt", "meta", "cmd", "super"]; + const selectedSystemKeyModifiers = systemKeyModifiers.filter((modifier) => keyModifiers.includes(modifier)); + keyModifiers = keyModifiers.filter((i) => !selectedSystemKeyModifiers.includes(i)); + if (selectedSystemKeyModifiers.length > 0) { + const activelyPressedKeyModifiers = selectedSystemKeyModifiers.filter((modifier) => { + if (modifier === "cmd" || modifier === "super") + modifier = "meta"; + return e[`${modifier}Key`]; + }); + if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) { + if (isClickEvent(e.type)) + return false; + if (keyToModifiers(e.key).includes(keyModifiers[0])) + return false; + } + } + return true; + } + function keyToModifiers(key) { + if (!key) + return []; + key = kebabCase2(key); + let modifierToKeyMap = { + "ctrl": "control", + "slash": "/", + "space": " ", + "spacebar": " ", + "cmd": "meta", + "esc": "escape", + "up": "arrow-up", + "down": "arrow-down", + "left": "arrow-left", + "right": "arrow-right", + "period": ".", + "comma": ",", + "equal": "=", + "minus": "-", + "underscore": "_" + }; + modifierToKeyMap[key] = key; + return Object.keys(modifierToKeyMap).map((modifier) => { + if (modifierToKeyMap[modifier] === key) + return modifier; + }).filter((modifier) => modifier); + } + directive2("model", (el, { modifiers, expression }, { effect: effect3, cleanup }) => { + let scopeTarget = el; + if (modifiers.includes("parent")) { + scopeTarget = findClosest(el, (element) => element !== el); + } + let evaluateGet = evaluateLater(scopeTarget, expression); + let evaluateSet; + if (typeof expression === "string") { + evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`); + } else if (typeof expression === "function" && typeof expression() === "string") { + evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`); + } else { + evaluateSet = () => { + }; + } + let getValue = () => { + let result; + evaluateGet((value) => result = value); + return isGetterSetter(result) ? result.get() : result; + }; + let setValue = (value) => { + let result; + evaluateGet((value2) => result = value2); + if (isGetterSetter(result)) { + result.set(value); + } else { + evaluateSet(() => { + }, { + scope: { "__placeholder": value } + }); + } + }; + if (typeof expression === "string" && el.type === "radio") { + mutateDom(() => { + if (!el.hasAttribute("name")) + el.setAttribute("name", expression); + }); + } + let hasChangeModifier = modifiers.includes("change") || modifiers.includes("lazy"); + let hasBlurModifier = modifiers.includes("blur"); + let hasEnterModifier = modifiers.includes("enter"); + let hasExplicitEventModifiers = hasChangeModifier || hasBlurModifier || hasEnterModifier; + let removeListener; + if (isCloning) { + removeListener = () => { + }; + } else if (hasExplicitEventModifiers) { + let listeners2 = []; + let syncValue = (e) => setValue(getInputValue(el, modifiers, e, getValue())); + if (hasChangeModifier) { + listeners2.push(on4(el, "change", modifiers, syncValue)); + } + if (hasBlurModifier) { + listeners2.push(on4(el, "blur", modifiers, syncValue)); + if (el.form) { + let form = el.form; + let syncCallback = () => syncValue({ target: el }); + if (!form._x_pendingModelUpdates) + form._x_pendingModelUpdates = []; + form._x_pendingModelUpdates.push(syncCallback); + cleanup(() => { + if (form._x_pendingModelUpdates) { + form._x_pendingModelUpdates.splice(form._x_pendingModelUpdates.indexOf(syncCallback), 1); + } + }); + } + } + if (hasEnterModifier) { + listeners2.push(on4(el, "keydown", modifiers, (e) => { + if (e.key === "Enter") + syncValue(e); + })); + } + removeListener = () => listeners2.forEach((remove) => remove()); + } else { + let event = el.tagName.toLowerCase() === "select" || ["checkbox", "radio"].includes(el.type) ? "change" : "input"; + removeListener = on4(el, event, modifiers, (e) => { + setValue(getInputValue(el, modifiers, e, getValue())); + }); + } + if (modifiers.includes("fill")) { + if ([void 0, null, ""].includes(getValue()) || isCheckbox(el) && Array.isArray(getValue()) || el.tagName.toLowerCase() === "select" && el.multiple) { + setValue( + getInputValue(el, modifiers, { target: el }, getValue()) + ); + } + } + if (!el._x_removeModelListeners) + el._x_removeModelListeners = {}; + el._x_removeModelListeners["default"] = removeListener; + cleanup(() => el._x_removeModelListeners["default"]()); + if (el.form) { + let removeResetListener = on4(el.form, "reset", [], (e) => { + nextTick(() => el._x_model && el._x_model.set(getInputValue(el, modifiers, { target: el }, getValue()))); + }); + cleanup(() => removeResetListener()); + } + el._x_model = { + get() { + return getValue(); + }, + set(value) { + setValue(value); + }, + setWithModifiers: addDebounceOrThrottle(modifiers, setValue) + }; + el._x_forceModelUpdate = (value) => { + if (value === void 0 && typeof expression === "string" && expression.match(/\./)) + value = ""; + mutateDom(() => { + if (isCheckbox(el)) { + if (Array.isArray(value)) { + el.checked = value.some((val) => val == el.value); + } else { + el.checked = !!value; + } + } else if (isRadio3(el)) { + if (typeof value === "boolean") { + el.checked = safeParseBoolean(el.value) === value; + } else { + el.checked = el.value == value; + } + } else { + bind(el, "value", value); + } + }); + }; + effect3(() => { + let value = getValue(); + if (modifiers.includes("unintrusive") && document.activeElement.isSameNode(el)) + return; + el._x_forceModelUpdate(value); + }); + }); + function getInputValue(el, modifiers, event, currentValue) { + return mutateDom(() => { + if (event instanceof CustomEvent && event.detail !== void 0) + return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value; + else if (isCheckbox(el)) { + if (Array.isArray(currentValue)) { + let newValue = null; + if (modifiers.includes("number")) { + newValue = safeParseNumber(event.target.value); + } else if (modifiers.includes("boolean")) { + newValue = safeParseBoolean(event.target.value); + } else { + newValue = event.target.value; + } + return event.target.checked ? currentValue.includes(newValue) ? currentValue : currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue)); + } else { + return event.target.checked; + } + } else if (el.tagName.toLowerCase() === "select" && el.multiple) { + if (modifiers.includes("number")) { + return Array.from(event.target.selectedOptions).map((option2) => { + let rawValue = option2.value || option2.text; + return safeParseNumber(rawValue); + }); + } else if (modifiers.includes("boolean")) { + return Array.from(event.target.selectedOptions).map((option2) => { + let rawValue = option2.value || option2.text; + return safeParseBoolean(rawValue); + }); + } + return Array.from(event.target.selectedOptions).map((option2) => { + return option2.value || option2.text; + }); + } else { + let newValue; + if (isRadio3(el)) { + if (event.target.checked) { + newValue = event.target.value; + } else { + newValue = currentValue; + } + } else { + newValue = event.target.value; + } + if (modifiers.includes("number")) { + return safeParseNumber(newValue); + } else if (modifiers.includes("boolean")) { + return safeParseBoolean(newValue); + } else if (modifiers.includes("trim")) { + return newValue.trim(); + } else { + return newValue; + } + } + }); + } + function safeParseNumber(rawValue) { + let number = rawValue ? parseFloat(rawValue) : null; + return isNumeric22(number) ? number : rawValue; + } + function checkedAttrLooseCompare2(valueA, valueB) { + return valueA == valueB; + } + function isNumeric22(subject) { + return !Array.isArray(subject) && !isNaN(subject); + } + function isGetterSetter(value) { + return value !== null && typeof value === "object" && typeof value.get === "function" && typeof value.set === "function"; + } + directive2("cloak", (el) => queueMicrotask(() => mutateDom(() => el.removeAttribute(prefix("cloak"))))); + addInitSelector(() => `[${prefix("init")}]`); + directive2("init", skipDuringClone((el, { expression }, { evaluate: evaluate22 }) => { + if (typeof expression === "string") { + return !!expression.trim() && evaluate22(expression, {}, false); + } + return evaluate22(expression, {}, false); + })); + directive2("text", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => { + let evaluate22 = evaluateLater2(expression); + effect3(() => { + evaluate22((value) => { + mutateDom(() => { + el.textContent = value; + }); + }); + }); + }); + directive2("html", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => { + let evaluate22 = evaluateLater2(expression); + effect3(() => { + evaluate22((value) => { + mutateDom(() => { + el.innerHTML = value != null ? value : ""; + el._x_ignoreSelf = true; + initTree(el); + delete el._x_ignoreSelf; + }); + }); + }); + }); + mapAttributes(startingWith(":", into(prefix("bind:")))); + var handler2 = (el, { value, modifiers, expression, original }, { effect: effect3, cleanup }) => { + if (!value) { + let bindingProviders = {}; + injectBindingProviders(bindingProviders); + let getBindings = evaluateLater(el, expression); + getBindings((bindings) => { + applyBindingsObject(el, bindings, original); + }, { scope: bindingProviders }); + return; + } + if (value === "key") + return storeKeyForXFor(el, expression); + if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) { + return; + } + let evaluate22 = evaluateLater(el, expression); + effect3(() => evaluate22((result) => { + if (result === void 0 && typeof expression === "string" && expression.match(/\./)) { + result = ""; + } + mutateDom(() => bind(el, value, result, modifiers)); + })); + cleanup(() => { + el._x_undoAddedClasses && el._x_undoAddedClasses(); + el._x_undoAddedStyles && el._x_undoAddedStyles(); + }); + }; + handler2.inline = (el, { value, modifiers, expression }) => { + if (!value) + return; + if (!el._x_inlineBindings) + el._x_inlineBindings = {}; + el._x_inlineBindings[value] = { expression, extract: false }; + }; + directive2("bind", handler2); + function storeKeyForXFor(el, expression) { + el._x_keyExpression = expression; + } + addRootSelector(() => `[${prefix("data")}]`); + directive2("data", (el, { expression }, { cleanup }) => { + if (shouldSkipRegisteringDataDuringClone(el)) + return; + expression = expression === "" ? "{}" : expression; + let magicContext = {}; + injectMagics(magicContext, el); + let dataProviderContext = {}; + injectDataProviders(dataProviderContext, magicContext); + let data2 = evaluate2(el, expression, { scope: dataProviderContext }); + if (data2 === void 0 || data2 === true) + data2 = {}; + injectMagics(data2, el); + let reactiveData = reactive(data2); + initInterceptors(reactiveData); + let undo = addScopeToNode(el, reactiveData); + reactiveData["init"] && evaluate2(el, reactiveData["init"]); + cleanup(() => { + reactiveData["destroy"] && evaluate2(el, reactiveData["destroy"]); + undo(); + }); + }); + interceptClone((from, to) => { + if (from._x_dataStack) { + to._x_dataStack = from._x_dataStack; + to.setAttribute("data-has-alpine-state", true); + } + }); + function shouldSkipRegisteringDataDuringClone(el) { + if (!isCloning) + return false; + if (isCloningLegacy) + return true; + return el.hasAttribute("data-has-alpine-state"); + } + directive2("show", (el, { modifiers, expression }, { effect: effect3 }) => { + let evaluate22 = evaluateLater(el, expression); + if (!el._x_doHide) + el._x_doHide = () => { + mutateDom(() => { + el.style.setProperty("display", "none", modifiers.includes("important") ? "important" : void 0); + }); + }; + if (!el._x_doShow) + el._x_doShow = () => { + mutateDom(() => { + if (el.style.length === 1 && el.style.display === "none") { + el.removeAttribute("style"); + } else { + el.style.removeProperty("display"); + } + }); + }; + let hide = () => { + el._x_doHide(); + el._x_isShown = false; + }; + let show = () => { + el._x_doShow(); + el._x_isShown = true; + }; + let clickAwayCompatibleShow = () => setTimeout(show); + let toggle = once( + (value) => value ? show() : hide(), + (value) => { + if (typeof el._x_toggleAndCascadeWithTransitions === "function") { + el._x_toggleAndCascadeWithTransitions(el, value, show, hide); + } else { + value ? clickAwayCompatibleShow() : hide(); + } + } + ); + let oldValue; + let firstTime = true; + effect3(() => evaluate22((value) => { + if (!firstTime && value === oldValue) + return; + if (modifiers.includes("immediate")) + value ? clickAwayCompatibleShow() : hide(); + toggle(value); + oldValue = value; + firstTime = false; + })); + }); + directive2("for", (el, { expression }, { effect: effect3, cleanup }) => { + let iteratorNames = parseForExpression(expression); + let evaluateItems = evaluateLater(el, iteratorNames.items); + let evaluateKey = evaluateLater( + el, + el._x_keyExpression || "index" + ); + el._x_lookup = /* @__PURE__ */ new Map(); + effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey)); + cleanup(() => { + el._x_lookup.forEach( + (el2) => mutateDom(() => { + destroyTree(el2); + el2.remove(); + }) + ); + delete el._x_lookup; + }); + }); + function refreshScope(scope2) { + return (newScope) => { + Object.entries(newScope).forEach(([key, value]) => { + scope2[key] = value; + }); + }; + } + function loop(templateEl, iteratorNames, evaluateItems, evaluateKey) { + evaluateItems((items) => { + if (isNumeric3(items)) + items = Array.from({ length: items }, (_, i) => i + 1); + if (items === void 0 || items === null) + items = []; + if (items instanceof Set) + items = Array.from(items); + if (items instanceof Map) + items = Array.from(items); + let oldLookup = templateEl._x_lookup; + let lookup = /* @__PURE__ */ new Map(); + templateEl._x_lookup = lookup; + let hasStringKeys = isObject2(items); + let scopeEntries = Object.entries(items).map(([index2, item]) => { + if (!hasStringKeys) + index2 = parseInt(index2); + let scope2 = getIterationScopeVariables(iteratorNames, item, index2, items); + let key; + evaluateKey((innerKey) => { + if (typeof innerKey === "object") + warn("x-for key cannot be an object, it must be a string or an integer", templateEl); + if (oldLookup.has(innerKey)) { + lookup.set(innerKey, oldLookup.get(innerKey)); + oldLookup.delete(innerKey); + } + key = innerKey; + }, { scope: { index: index2, ...scope2 } }); + return [key, scope2]; + }); + mutateDom(() => { + oldLookup.forEach((el) => { + destroyTree(el); + el.remove(); + }); + let added = /* @__PURE__ */ new Set(); + let prev = templateEl; + scopeEntries.forEach(([key, scope2]) => { + if (lookup.has(key)) { + let el = lookup.get(key); + el._x_refreshXForScope(scope2); + if (prev.nextElementSibling !== el) { + if (prev.nextElementSibling) + el.replaceWith(prev.nextElementSibling); + prev.after(el); + } + prev = el; + if (el._x_currentIfEl) { + if (el.nextElementSibling !== el._x_currentIfEl) + prev.after(el._x_currentIfEl); + prev = el._x_currentIfEl; + } + return; + } + if (templateEl.content.children.length > 1) + warn("x-for templates require a single root element, additional elements will be ignored.", templateEl); + let clone22 = document.importNode(templateEl.content, true).firstElementChild; + let reactiveScope = reactive(scope2); + addScopeToNode(clone22, reactiveScope, templateEl); + clone22._x_refreshXForScope = refreshScope(reactiveScope); + lookup.set(key, clone22); + added.add(clone22); + prev.after(clone22); + prev = clone22; + }); + skipDuringClone(() => added.forEach((clone22) => initTree(clone22)))(); + }); + }); + } + function parseForExpression(expression) { + let forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; + let stripParensRE = /^\s*\(|\)\s*$/g; + let forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/; + let inMatch = expression.match(forAliasRE); + if (!inMatch) + return; + let res = {}; + res.items = inMatch[2].trim(); + let item = inMatch[1].replace(stripParensRE, "").trim(); + let iteratorMatch = item.match(forIteratorRE); + if (iteratorMatch) { + res.item = item.replace(forIteratorRE, "").trim(); + res.index = iteratorMatch[1].trim(); + if (iteratorMatch[2]) { + res.collection = iteratorMatch[2].trim(); + } + } else { + res.item = item; + } + return res; + } + function getIterationScopeVariables(iteratorNames, item, index2, items) { + let scopeVariables = {}; + if (/^\[.*\]$/.test(iteratorNames.item) && Array.isArray(item)) { + let names = iteratorNames.item.replace("[", "").replace("]", "").split(",").map((i) => i.trim()); + names.forEach((name, i) => { + scopeVariables[name] = item[i]; + }); + } else if (/^\{.*\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === "object") { + let names = iteratorNames.item.replace("{", "").replace("}", "").split(",").map((i) => i.trim()); + names.forEach((name) => { + scopeVariables[name] = item[name]; + }); + } else { + scopeVariables[iteratorNames.item] = item; + } + if (iteratorNames.index) + scopeVariables[iteratorNames.index] = index2; + if (iteratorNames.collection) + scopeVariables[iteratorNames.collection] = items; + return scopeVariables; + } + function isNumeric3(subject) { + return typeof subject !== "object" && !isNaN(subject); + } + function isObject2(subject) { + return typeof subject === "object" && !Array.isArray(subject); + } + function handler3() { + } + handler3.inline = (el, { expression }, { cleanup }) => { + let root = closestRoot(el); + if (!root) + return; + if (!root._x_refs) + root._x_refs = {}; + root._x_refs[expression] = el; + cleanup(() => delete root._x_refs[expression]); + }; + directive2("ref", handler3); + directive2("if", (el, { expression }, { effect: effect3, cleanup }) => { + if (el.tagName.toLowerCase() !== "template") + warn("x-if can only be used on a <template> tag", el); + let evaluate22 = evaluateLater(el, expression); + let show = () => { + if (el._x_currentIfEl) + return el._x_currentIfEl; + let clone22 = el.content.cloneNode(true).firstElementChild; + addScopeToNode(clone22, {}, el); + mutateDom(() => { + el.after(clone22); + skipDuringClone(() => initTree(clone22))(); + }); + el._x_currentIfEl = clone22; + el._x_undoIf = () => { + mutateDom(() => { + destroyTree(clone22); + clone22.remove(); + }); + delete el._x_currentIfEl; + }; + return clone22; + }; + let hide = () => { + if (!el._x_undoIf) + return; + el._x_undoIf(); + delete el._x_undoIf; + }; + effect3(() => evaluate22((value) => { + value ? show() : hide(); + })); + cleanup(() => el._x_undoIf && el._x_undoIf()); + }); + directive2("id", (el, { expression }, { evaluate: evaluate22 }) => { + let names = evaluate22(expression); + names.forEach((name) => setIdRoot(el, name)); + }); + interceptClone((from, to) => { + if (from._x_ids) { + to._x_ids = from._x_ids; + } + }); + mapAttributes(startingWith("@", into(prefix("on:")))); + directive2("on", skipDuringClone((el, { value, modifiers, expression }, { cleanup }) => { + let evaluate22 = expression ? evaluateLater(el, expression) : () => { + }; + if (el.tagName.toLowerCase() === "template") { + if (!el._x_forwardEvents) + el._x_forwardEvents = []; + if (!el._x_forwardEvents.includes(value)) + el._x_forwardEvents.push(value); + } + let removeListener = on4(el, value, modifiers, (e) => { + evaluate22(() => { + }, { scope: { "$event": e }, params: [e] }); + }); + cleanup(() => removeListener()); + })); + warnMissingPluginDirective("Collapse", "collapse", "collapse"); + warnMissingPluginDirective("Intersect", "intersect", "intersect"); + warnMissingPluginDirective("Focus", "trap", "focus"); + warnMissingPluginDirective("Mask", "mask", "mask"); + function warnMissingPluginDirective(name, directiveName, slug) { + directive2(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el)); + } + directive2("html", (el, { expression }) => { + handleError(new Error("Using the x-html directive is prohibited in the CSP build"), el); + }); + alpine_default.setEvaluator(cspEvaluator); + alpine_default.setRawEvaluator(cspRawEvaluator); + alpine_default.setReactivityEngine({ reactive: import_reactivity10.reactive, effect: import_reactivity10.effect, release: import_reactivity10.stop, raw: import_reactivity10.toRaw }); + var src_default10 = alpine_default; + var module_default10 = src_default10; + } + }); + + // node_modules/nprogress/nprogress.js + var require_nprogress = __commonJS({ + "node_modules/nprogress/nprogress.js"(exports, module) { + (function(root, factory) { + if (typeof define === "function" && define.amd) { + define(factory); + } else if (typeof exports === "object") { + module.exports = factory(); + } else { + root.NProgress = factory(); + } + })(exports, function() { + var NProgress2 = {}; + NProgress2.version = "0.2.0"; + var Settings = NProgress2.settings = { + minimum: 0.08, + easing: "ease", + positionUsing: "", + speed: 200, + trickle: true, + trickleRate: 0.02, + trickleSpeed: 800, + showSpinner: true, + barSelector: '[role="bar"]', + spinnerSelector: '[role="spinner"]', + parent: "body", + template: '<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>' + }; + NProgress2.configure = function(options) { + var key, value; + for (key in options) { + value = options[key]; + if (value !== void 0 && options.hasOwnProperty(key)) + Settings[key] = value; + } + return this; + }; + NProgress2.status = null; + NProgress2.set = function(n) { + var started = NProgress2.isStarted(); + n = clamp2(n, Settings.minimum, 1); + NProgress2.status = n === 1 ? null : n; + var progress = NProgress2.render(!started), bar = progress.querySelector(Settings.barSelector), speed = Settings.speed, ease = Settings.easing; + progress.offsetWidth; + queue(function(next) { + if (Settings.positionUsing === "") + Settings.positionUsing = NProgress2.getPositioningCSS(); + css2(bar, barPositionCSS(n, speed, ease)); + if (n === 1) { + css2(progress, { + transition: "none", + opacity: 1 + }); + progress.offsetWidth; + setTimeout(function() { + css2(progress, { + transition: "all " + speed + "ms linear", + opacity: 0 + }); + setTimeout(function() { + NProgress2.remove(); + next(); + }, speed); + }, speed); + } else { + setTimeout(next, speed); + } + }); + return this; + }; + NProgress2.isStarted = function() { + return typeof NProgress2.status === "number"; + }; + NProgress2.start = function() { + if (!NProgress2.status) + NProgress2.set(0); + var work = function() { + setTimeout(function() { + if (!NProgress2.status) + return; + NProgress2.trickle(); + work(); + }, Settings.trickleSpeed); + }; + if (Settings.trickle) + work(); + return this; + }; + NProgress2.done = function(force) { + if (!force && !NProgress2.status) + return this; + return NProgress2.inc(0.3 + 0.5 * Math.random()).set(1); + }; + NProgress2.inc = function(amount) { + var n = NProgress2.status; + if (!n) { + return NProgress2.start(); + } else { + if (typeof amount !== "number") { + amount = (1 - n) * clamp2(Math.random() * n, 0.1, 0.95); + } + n = clamp2(n + amount, 0, 0.994); + return NProgress2.set(n); + } + }; + NProgress2.trickle = function() { + return NProgress2.inc(Math.random() * Settings.trickleRate); + }; + (function() { + var initial = 0, current = 0; + NProgress2.promise = function($promise) { + if (!$promise || $promise.state() === "resolved") { + return this; + } + if (current === 0) { + NProgress2.start(); + } + initial++; + current++; + $promise.always(function() { + current--; + if (current === 0) { + initial = 0; + NProgress2.done(); + } else { + NProgress2.set((initial - current) / initial); + } + }); + return this; + }; + })(); + NProgress2.render = function(fromStart) { + if (NProgress2.isRendered()) + return document.getElementById("nprogress"); + addClass(document.documentElement, "nprogress-busy"); + var progress = document.createElement("div"); + progress.id = "nprogress"; + progress.innerHTML = Settings.template; + var bar = progress.querySelector(Settings.barSelector), perc = fromStart ? "-100" : toBarPerc(NProgress2.status || 0), parent = document.querySelector(Settings.parent), spinner; + css2(bar, { + transition: "all 0 linear", + transform: "translate3d(" + perc + "%,0,0)" + }); + if (!Settings.showSpinner) { + spinner = progress.querySelector(Settings.spinnerSelector); + spinner && removeElement(spinner); + } + if (parent != document.body) { + addClass(parent, "nprogress-custom-parent"); + } + parent.appendChild(progress); + return progress; + }; + NProgress2.remove = function() { + removeClass(document.documentElement, "nprogress-busy"); + removeClass(document.querySelector(Settings.parent), "nprogress-custom-parent"); + var progress = document.getElementById("nprogress"); + progress && removeElement(progress); + }; + NProgress2.isRendered = function() { + return !!document.getElementById("nprogress"); + }; + NProgress2.getPositioningCSS = function() { + var bodyStyle = document.body.style; + var vendorPrefix = "WebkitTransform" in bodyStyle ? "Webkit" : "MozTransform" in bodyStyle ? "Moz" : "msTransform" in bodyStyle ? "ms" : "OTransform" in bodyStyle ? "O" : ""; + if (vendorPrefix + "Perspective" in bodyStyle) { + return "translate3d"; + } else if (vendorPrefix + "Transform" in bodyStyle) { + return "translate"; + } else { + return "margin"; + } + }; + function clamp2(n, min2, max2) { + if (n < min2) + return min2; + if (n > max2) + return max2; + return n; + } + function toBarPerc(n) { + return (-1 + n) * 100; + } + function barPositionCSS(n, speed, ease) { + var barCSS; + if (Settings.positionUsing === "translate3d") { + barCSS = { transform: "translate3d(" + toBarPerc(n) + "%,0,0)" }; + } else if (Settings.positionUsing === "translate") { + barCSS = { transform: "translate(" + toBarPerc(n) + "%,0)" }; + } else { + barCSS = { "margin-left": toBarPerc(n) + "%" }; + } + barCSS.transition = "all " + speed + "ms " + ease; + return barCSS; + } + var queue = function() { + var pending = []; + function next() { + var fn = pending.shift(); + if (fn) { + fn(next); + } + } + return function(fn) { + pending.push(fn); + if (pending.length == 1) + next(); + }; + }(); + var css2 = function() { + var cssPrefixes = ["Webkit", "O", "Moz", "ms"], cssProps = {}; + function camelCase(string) { + return string.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function(match, letter) { + return letter.toUpperCase(); + }); + } + function getVendorProp(name) { + var style = document.body.style; + if (name in style) + return name; + var i = cssPrefixes.length, capName = name.charAt(0).toUpperCase() + name.slice(1), vendorName; + while (i--) { + vendorName = cssPrefixes[i] + capName; + if (vendorName in style) + return vendorName; + } + return name; + } + function getStyleProp(name) { + name = camelCase(name); + return cssProps[name] || (cssProps[name] = getVendorProp(name)); + } + function applyCss(element, prop, value) { + prop = getStyleProp(prop); + element.style[prop] = value; + } + return function(element, properties2) { + var args = arguments, prop, value; + if (args.length == 2) { + for (prop in properties2) { + value = properties2[prop]; + if (value !== void 0 && properties2.hasOwnProperty(prop)) + applyCss(element, prop, value); + } + } else { + applyCss(element, args[1], args[2]); + } + }; + }(); + function hasClass(element, name) { + var list = typeof element == "string" ? element : classList(element); + return list.indexOf(" " + name + " ") >= 0; + } + function addClass(element, name) { + var oldList = classList(element), newList = oldList + name; + if (hasClass(oldList, name)) + return; + element.className = newList.substring(1); + } + function removeClass(element, name) { + var oldList = classList(element), newList; + if (!hasClass(element, name)) + return; + newList = oldList.replace(" " + name + " ", " "); + element.className = newList.substring(1, newList.length - 1); + } + function classList(element) { + return (" " + (element.className || "") + " ").replace(/\s+/gi, " "); + } + function removeElement(element) { + element && element.parentNode && element.parentNode.removeChild(element); + } + return NProgress2; + }); + } + }); + + // js/utils.js + var Bag = class { + constructor() { + this.arrays = {}; + } + add(key, value) { + if (!this.arrays[key]) + this.arrays[key] = []; + this.arrays[key].push(value); + } + remove(key) { + if (this.arrays[key]) + delete this.arrays[key]; + } + get(key) { + return this.arrays[key] || []; + } + each(key, callback) { + return this.get(key).forEach(callback); + } + }; + var WeakBag = class { + constructor() { + this.arrays = /* @__PURE__ */ new WeakMap(); + } + add(key, value) { + if (!this.arrays.has(key)) + this.arrays.set(key, []); + this.arrays.get(key).push(value); + } + remove(key) { + if (this.arrays.has(key)) + this.arrays.delete(key, []); + } + get(key) { + return this.arrays.has(key) ? this.arrays.get(key) : []; + } + each(key, callback) { + return this.get(key).forEach(callback); + } + }; + function dispatch(target, name, detail = {}, bubbles = true) { + target.dispatchEvent( + new CustomEvent(name, { + detail, + bubbles, + composed: true, + cancelable: true + }) + ); + } + function listen(target, name, handler) { + target.addEventListener(name, handler); + return () => target.removeEventListener(name, handler); + } + function isObjecty(subject) { + return typeof subject === "object" && subject !== null; + } + function isObject(subject) { + return isObjecty(subject) && !isArray(subject); + } + function isArray(subject) { + return Array.isArray(subject); + } + function isFunction(subject) { + return typeof subject === "function"; + } + function isPrimitive(subject) { + return typeof subject !== "object" || subject === null; + } + function deepClone(obj) { + return JSON.parse(JSON.stringify(obj)); + } + function deeplyEqual(a, b) { + return JSON.stringify(a) === JSON.stringify(b); + } + function parsePathSegments(path) { + if (path === "") + return []; + return path.replace(/\[(['"]?)(.+?)\1\]/g, ".$2").replace(/^\./, "").split("."); + } + function dataGet(object, key) { + if (key === "") + return object; + return parsePathSegments(key).reduce((carry, i) => { + return carry?.[i]; + }, object); + } + function dataSet(object, key, value) { + let segments = parsePathSegments(key); + if (segments.length === 1) { + return object[segments[0]] = value; + } + let firstSegment = segments.shift(); + let restOfSegments = segments.join("."); + let nextSegment = segments[0]; + if (object[firstSegment] === void 0) { + object[firstSegment] = {}; + } + if (isArray(object[firstSegment]) && isNumeric(nextSegment) && parseInt(nextSegment) > object[firstSegment].length) { + object[firstSegment] = { ...object[firstSegment] }; + } + dataSet(object[firstSegment], restOfSegments, value); + } + function isNumeric(subject) { + return !isNaN(parseInt(subject)); + } + function diff(left, right, diffs = {}, path = "") { + if (left === right) + return diffs; + if (typeof left !== typeof right || isObject(left) && isArray(right) || isArray(left) && isObject(right)) { + diffs[path] = right; + return diffs; + } + if (isPrimitive(left) || isPrimitive(right)) { + diffs[path] = right; + return diffs; + } + let leftKeys = Object.keys(left); + let rightKeys = Object.keys(right); + if (isObject(left) && leftKeys.some((key, i) => key !== rightKeys[i])) { + diffs[path] = right; + return diffs; + } + Object.entries(right).forEach(([key, value]) => { + diffs = { ...diffs, ...diff(left[key], right[key], diffs, path === "" ? key : `${path}.${key}`) }; + leftKeys = leftKeys.filter((i) => i !== key); + }); + leftKeys.forEach((key) => { + diffs[`${path}.${key}`] = "__rm__"; + }); + return diffs; + } + function diffAndConsolidate(left, right) { + let diffs = {}; + diffRecursive(left, right, "", diffs, left, right); + return diffs; + } + function diffRecursive(left, right, path, diffs, rootLeft, rootRight) { + if (left === right) + return { changed: false, consolidated: false }; + let convertedToObject = false; + let hasNonNumericKeys = (arr) => { + return isArray(arr) && Object.keys(arr).some((k) => isNaN(parseInt(k))); + }; + if (typeof left !== typeof right || isObject(left) && isArray(right) || isArray(left) && isObject(right)) { + if (isArray(left) && left.length === 0 && isObject(right)) { + left = {}; + convertedToObject = true; + } else if ((left === void 0 || left === null) && isObject(right)) { + left = {}; + convertedToObject = true; + } else { + diffs[path] = right; + return { changed: true, consolidated: false }; + } + } + if (isArray(left) && isArray(right) && hasNonNumericKeys(right)) { + if (Object.keys(left).length === 0) { + convertedToObject = true; + } + } + if (isPrimitive(left) || isPrimitive(right)) { + diffs[path] = right; + return { changed: true, consolidated: false }; + } + let leftKeys = Object.keys(left); + let rightKeys = Object.keys(right); + if (leftKeys.length !== rightKeys.length && !convertedToObject) { + if (path === "") { + Object.keys(right).forEach((key) => { + if (!deeplyEqual(left[key], right[key])) { + diffs[key] = right[key]; + } + }); + return { changed: true, consolidated: true }; + } + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + if (isObject(left) && leftKeys.length === rightKeys.length && leftKeys.some((key, i) => key !== rightKeys[i])) { + if (path !== "") { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + } + let keysMatch = leftKeys.every((k) => rightKeys.includes(k)); + if (!keysMatch && !convertedToObject) { + if (path !== "") { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + } + let childDiffs = {}; + let changedCount = 0; + let consolidatedCount = 0; + let totalChildren = rightKeys.length; + rightKeys.forEach((key) => { + let childPath = path === "" ? key : `${path}.${key}`; + let result = diffRecursive(left[key], right[key], childPath, childDiffs, rootLeft, rootRight); + if (result.changed) + changedCount++; + if (result.consolidated) + consolidatedCount++; + }); + if (path !== "" && totalChildren > 1 && changedCount === totalChildren && consolidatedCount === 0 && !convertedToObject) { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + Object.assign(diffs, childDiffs); + return { changed: changedCount > 0, consolidated: consolidatedCount > 0 || convertedToObject }; + } + function diffAndPatchRecursive(left, right, target) { + let leftKeys = new Set(Object.keys(left || {})); + let rightKeys = Object.keys(right); + if (!isArray(target) && [...leftKeys].some((key, i) => key !== rightKeys[i])) { + for (let key of Object.keys(target)) + delete target[key]; + for (let key of rightKeys) + target[key] = right[key]; + return; + } + rightKeys.forEach((key) => { + leftKeys.delete(key); + if (deeplyEqual(left?.[key], right[key])) + return; + if (isObjecty(left?.[key]) && isObjecty(right[key]) && isObjecty(target[key]) && isArray(right[key]) === isArray(target[key])) { + diffAndPatchRecursive(left[key], right[key], target[key]); + } else { + target[key] = right[key]; + } + }); + let removedKeys = [...leftKeys]; + removedKeys.sort((a, b) => { + let aNum = parseInt(a) || 0; + let bNum = parseInt(b) || 0; + return bNum - aNum; + }).forEach((key) => { + if (isArray(target)) { + target.splice(parseInt(key), 1); + } else { + delete target[key]; + } + }); + } + function extractData(payload) { + let value = isSynthetic(payload) ? payload[0] : payload; + let meta = isSynthetic(payload) ? payload[1] : void 0; + if (isObjecty(value)) { + Object.entries(value).forEach(([key, iValue]) => { + value[key] = extractData(iValue); + }); + } + return value; + } + function isSynthetic(subject) { + return Array.isArray(subject) && subject.length === 2 && typeof subject[1] === "object" && Object.keys(subject[1]).includes("s"); + } + function getCsrfToken() { + if (document.querySelector('meta[name="csrf-token"]')) { + return document.querySelector('meta[name="csrf-token"]').getAttribute("content"); + } + if (document.querySelector("[data-csrf]")) { + return document.querySelector("[data-csrf]").getAttribute("data-csrf"); + } + if (window.livewireScriptConfig["csrf"] ?? false) { + return window.livewireScriptConfig["csrf"]; + } + throw "Livewire: No CSRF token detected"; + } + var nonce; + function getNonce() { + if (nonce) + return nonce; + if (window.livewireScriptConfig && (window.livewireScriptConfig["nonce"] ?? false)) { + nonce = window.livewireScriptConfig["nonce"]; + return nonce; + } + let elWithNonce = document.querySelector("style[data-livewire-style][nonce]"); + if (elWithNonce) { + nonce = elWithNonce.nonce; + return nonce; + } + return null; + } + function replaceNoncesInHtml(html) { + let nonce2 = getNonce(); + if (!nonce2) + return html; + let nonceMatch = html.match(/nonce="([^"]+)"/); + if (!nonceMatch) + return html; + let newNonce = nonceMatch[1]; + if (newNonce === nonce2) + return html; + return html.replaceAll(`nonce="${newNonce}"`, `nonce="${nonce2}"`); + } + function cloneScriptTag(el) { + let script = document.createElement("script"); + script.textContent = el.textContent; + script.async = el.async; + for (let attr of el.attributes) { + if (attr.name === "nonce") { + script.nonce = getNonce() || el.nonce; + } else { + script.setAttribute(attr.name, attr.value); + } + } + return script; + } + function getModuleUrl() { + return document.querySelector("[data-module-url]")?.getAttribute("data-module-url") ?? window.livewireScriptConfig["moduleUrl"] ?? null; + } + function getUpdateUri() { + return document.querySelector("[data-update-uri]")?.getAttribute("data-update-uri") ?? window.livewireScriptConfig["uri"] ?? null; + } + function contentIsFromDump(content) { + return !!content.match(/<script>Sfdump\(".+"\)<\/script>/); + } + function splitDumpFromContent(content) { + let dump = content.match(/.*<script>Sfdump\(".+"\)<\/script>/s); + return [dump, content.replace(dump, "")]; + } + function walkUpwards(el, callback) { + let current = el; + while (current) { + let stop = void 0; + callback(current, { stop: (value) => value === void 0 ? stop = current : stop = value }); + if (stop !== void 0) + return stop; + if (current._x_teleportBack) + current = current._x_teleportBack; + current = current.parentElement; + } + } + function walkBackwards(el, callback) { + let current = el; + while (current) { + let stop = void 0; + callback(current, { stop: (value) => value === void 0 ? stop = current : stop = value }); + if (stop !== void 0) + return stop; + current = current.previousSibling; + } + } + + // js/features/supportFileUploads.js + var uploadManagers = /* @__PURE__ */ new WeakMap(); + function getUploadManager(component) { + if (!uploadManagers.has(component)) { + let manager = new UploadManager(component); + uploadManagers.set(component, manager); + manager.registerListeners(); + } + return uploadManagers.get(component); + } + function handleFileUpload(el, property, component, cleanup) { + let manager = getUploadManager(component); + let start2 = () => el.dispatchEvent(new CustomEvent("livewire-upload-start", { bubbles: true, detail: { id: component.id, property } })); + let finish = () => el.dispatchEvent(new CustomEvent("livewire-upload-finish", { bubbles: true, detail: { id: component.id, property } })); + let error2 = () => el.dispatchEvent(new CustomEvent("livewire-upload-error", { bubbles: true, detail: { id: component.id, property } })); + let cancel = () => el.dispatchEvent(new CustomEvent("livewire-upload-cancel", { bubbles: true, detail: { id: component.id, property } })); + let progress = (progressEvent) => { + var percentCompleted = Math.round(progressEvent.loaded * 100 / progressEvent.total); + el.dispatchEvent( + new CustomEvent("livewire-upload-progress", { + bubbles: true, + detail: { progress: percentCompleted } + }) + ); + }; + let eventHandler = (e) => { + if (e.target.files.length === 0) + return; + start2(); + if (e.target.multiple) { + manager.uploadMultiple(property, e.target.files, finish, error2, progress, cancel); + } else { + manager.upload(property, e.target.files[0], finish, error2, progress, cancel); + } + }; + el.addEventListener("change", eventHandler); + component.$wire.$watch(property, (value) => { + if (!el.isConnected) + return; + if (value === null || value === "") { + el.value = ""; + } + if (el.multiple && Array.isArray(value) && value.length === 0) { + el.value = ""; + } + }); + let clearFileInputValue = () => { + el.value = null; + }; + el.addEventListener("click", clearFileInputValue); + el.addEventListener("livewire-upload-cancel", clearFileInputValue); + cleanup(() => { + el.removeEventListener("change", eventHandler); + el.removeEventListener("click", clearFileInputValue); + }); + } + var UploadManager = class { + constructor(component) { + this.component = component; + this.uploadBag = new MessageBag(); + this.removeBag = new MessageBag(); + } + registerListeners() { + this.component.$wire.$on("upload:generatedSignedUrl", ({ name, url }) => { + setUploadLoading(this.component, name); + this.handleSignedUrl(name, url); + }); + this.component.$wire.$on("upload:generatedSignedUrlForS3", ({ name, payload }) => { + setUploadLoading(this.component, name); + this.handleS3PreSignedUrl(name, payload); + }); + this.component.$wire.$on("upload:finished", ({ name, tmpFilenames }) => this.markUploadFinished(name, tmpFilenames)); + this.component.$wire.$on("upload:errored", ({ name }) => this.markUploadErrored(name)); + this.component.$wire.$on("upload:removed", ({ name, tmpFilename }) => this.removeBag.shift(name).finishCallback(tmpFilename)); + } + upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback) { + this.setUpload(name, { + files: [file], + multiple: false, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback, + append: false + }); + } + uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback, append = true) { + this.setUpload(name, { + files: Array.from(files), + multiple: true, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback, + append + }); + } + removeUpload(name, tmpFilename, finishCallback) { + this.removeBag.push(name, { + tmpFilename, + finishCallback + }); + this.component.$wire.call("_removeUpload", name, tmpFilename); + } + setUpload(name, uploadObject) { + this.uploadBag.add(name, uploadObject); + if (this.uploadBag.get(name).length === 1) { + this.startUpload(name, uploadObject); + } + } + handleSignedUrl(name, url) { + let formData = new FormData(); + Array.from(this.uploadBag.first(name).files).forEach((file) => formData.append("files[]", file, file.name)); + let headers = { + "Accept": "application/json" + }; + let csrfToken = getCsrfToken(); + if (csrfToken) + headers["X-CSRF-TOKEN"] = csrfToken; + this.makeRequest(name, formData, "post", url, headers, (response) => { + return response.paths; + }); + } + handleS3PreSignedUrl(name, payload) { + let formData = this.uploadBag.first(name).files[0]; + let headers = payload.headers; + if ("Host" in headers) + delete headers.Host; + let url = payload.url; + this.makeRequest(name, formData, "put", url, headers, (response) => { + return [payload.path]; + }); + } + makeRequest(name, formData, method, url, headers, retrievePaths) { + let request = new XMLHttpRequest(); + request.open(method, url); + Object.entries(headers).forEach(([key, value]) => { + request.setRequestHeader(key, value); + }); + request.upload.addEventListener("progress", (e) => { + e.detail = {}; + e.detail.progress = Math.floor(e.loaded * 100 / e.total); + this.uploadBag.first(name).progressCallback(e); + }); + request.addEventListener("load", () => { + if ((request.status + "")[0] === "2") { + let paths = retrievePaths(request.response && JSON.parse(request.response)); + this.component.$wire.call("_finishUpload", name, paths, this.uploadBag.first(name).multiple, this.uploadBag.first(name).append); + return; + } + let errors = null; + if (request.status === 422) { + errors = request.response; + } + this.component.$wire.call("_uploadErrored", name, errors, this.uploadBag.first(name).multiple); + }); + request.addEventListener("error", () => { + this.component.$wire.call("_uploadErrored", name, null, this.uploadBag.first(name).multiple); + }); + this.uploadBag.first(name).request = request; + request.send(formData); + } + startUpload(name, uploadObject) { + let fileInfos = uploadObject.files.map((file) => { + return { name: file.name, size: file.size, type: file.type }; + }); + this.component.$wire.call("_startUpload", name, fileInfos, uploadObject.multiple); + setUploadLoading(this.component, name); + } + markUploadFinished(name, tmpFilenames) { + unsetUploadLoading(this.component); + let uploadObject = this.uploadBag.shift(name); + uploadObject.finishCallback(uploadObject.multiple ? tmpFilenames : tmpFilenames[0]); + if (this.uploadBag.get(name).length > 0) + this.startUpload(name, this.uploadBag.last(name)); + } + markUploadErrored(name) { + unsetUploadLoading(this.component); + this.uploadBag.shift(name).errorCallback(); + if (this.uploadBag.get(name).length > 0) + this.startUpload(name, this.uploadBag.last(name)); + } + cancelUpload(name, cancelledCallback = null) { + unsetUploadLoading(this.component); + let uploadItem = this.uploadBag.first(name); + if (uploadItem) { + if (uploadItem.request) { + uploadItem.request.abort(); + } + this.uploadBag.shift(name).cancelledCallback(); + if (cancelledCallback) + cancelledCallback(); + } + } + }; + var MessageBag = class { + constructor() { + this.bag = {}; + } + add(name, thing) { + if (!this.bag[name]) { + this.bag[name] = []; + } + this.bag[name].push(thing); + } + push(name, thing) { + this.add(name, thing); + } + first(name) { + if (!this.bag[name]) + return null; + return this.bag[name][0]; + } + last(name) { + return this.bag[name].slice(-1)[0]; + } + get(name) { + return this.bag[name]; + } + shift(name) { + return this.bag[name].shift(); + } + call(name, ...params) { + (this.listeners[name] || []).forEach((callback) => { + callback(...params); + }); + } + has(name) { + return Object.keys(this.listeners).includes(name); + } + }; + function setUploadLoading() { + } + function unsetUploadLoading() { + } + function upload(component, name, file, finishCallback = () => { + }, errorCallback = () => { + }, progressCallback = () => { + }, cancelledCallback = () => { + }) { + let uploadManager = getUploadManager(component); + uploadManager.upload( + name, + file, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback + ); + } + function uploadMultiple(component, name, files, finishCallback = () => { + }, errorCallback = () => { + }, progressCallback = () => { + }, cancelledCallback = () => { + }, append = true) { + let uploadManager = getUploadManager(component); + uploadManager.uploadMultiple( + name, + files, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback, + append + ); + } + function removeUpload(component, name, tmpFilename, finishCallback = () => { + }, errorCallback = () => { + }) { + let uploadManager = getUploadManager(component); + uploadManager.removeUpload( + name, + tmpFilename, + finishCallback, + errorCallback + ); + } + function cancelUpload(component, name, cancelledCallback = () => { + }) { + let uploadManager = getUploadManager(component); + uploadManager.cancelUpload( + name, + cancelledCallback + ); + } + + // js/features/supportEntangle.js + var import_alpinejs = __toESM(require_module_cjs()); + function generateEntangleFunction(component, cleanup) { + if (!cleanup) + cleanup = () => { + }; + return (name, live = false) => { + let isLive = live; + let livewireProperty = name; + let livewireComponent = component.$wire; + let livewirePropertyValue = livewireComponent.get(livewireProperty); + let interceptor = import_alpinejs.default.interceptor((initialValue, getter, setter, path, key) => { + if (typeof livewirePropertyValue === "undefined") { + console.error(`Livewire Entangle Error: Livewire property ['${livewireProperty}'] cannot be found on component: ['${component.name}']`); + return; + } + let release = import_alpinejs.default.entangle({ + get() { + return livewireComponent.get(name); + }, + set(value) { + livewireComponent.set(name, value, isLive); + } + }, { + get() { + return getter(); + }, + set(value) { + setter(value); + } + }); + cleanup(() => release()); + return cloneIfObject(livewireComponent.get(name)); + }, (obj) => { + Object.defineProperty(obj, "live", { + get() { + isLive = true; + return obj; + } + }); + }); + return interceptor(livewirePropertyValue); + }; + } + function cloneIfObject(value) { + return typeof value === "object" ? JSON.parse(JSON.stringify(value)) : value; + } + + // js/$wire.js + var import_alpinejs3 = __toESM(require_module_cjs()); + + // js/hooks.js + var listeners = []; + function on(name, callback) { + if (!listeners[name]) + listeners[name] = []; + listeners[name].push(callback); + return () => { + listeners[name] = listeners[name].filter((i) => i !== callback); + }; + } + function trigger(name, ...params) { + let callbacks = listeners[name] || []; + let finishers = []; + for (let i = 0; i < callbacks.length; i++) { + let finisher = callbacks[i](...params); + if (isFunction(finisher)) + finishers.push(finisher); + } + return (result) => { + return runFinishers(finishers, result); + }; + } + async function triggerAsync(name, ...params) { + let callbacks = listeners[name] || []; + let finishers = []; + for (let i = 0; i < callbacks.length; i++) { + let finisher = await callbacks[i](...params); + if (isFunction(finisher)) + finishers.push(finisher); + } + return (result) => { + return runFinishers(finishers, result); + }; + } + function runFinishers(finishers, result) { + let latest = result; + for (let i = 0; i < finishers.length; i++) { + let iResult = finishers[i](latest); + if (iResult !== void 0) { + latest = iResult; + } + } + return latest; + } + + // js/request/interactions.js + function coordinateNetworkInteractions(messageBus2) { + interceptPartition(({ message, compileRequest }) => { + if (!message.component.isIsolated) + return; + compileRequest([message]); + }); + interceptPartition(({ message, compileRequest }) => { + if (message.component.isLazy && !message.component.hasBeenLazyLoaded && message.component.isLazyIsolated) { + compileRequest([message]); + } + }); + interceptPartition(({ message, compileRequest }) => { + let component = message.component; + let bundledMessages = []; + component.getDeepChildrenWithBindings((child) => { + let action = constructAction(child, "$commit"); + let message2 = createOrAddToOutstandingMessage(action); + bundledMessages.push(message2); + }); + if (bundledMessages.length > 0) { + compileRequest([message, ...bundledMessages]); + } + }); + interceptAction(({ action }) => { + let isRenderless = action?.origin?.directive?.modifiers.includes("renderless"); + if (isRenderless) { + action.metadata.renderless = true; + } + let message = messageBus2.activeMessageMatchingScope(action); + if (message) { + if (message.isAsync() || action.isAsync()) + return; + if (action.metadata.type === "poll") { + return action.cancel(); + } + if (Array.from(message.actions).every((action2) => action2.metadata.type === "poll")) { + return message.cancel(); + } + if (Array.from(message.actions).every((action2) => action2.metadata.type === "model.live")) { + if (action.metadata.type === "model.live") { + return; + } + } + action.defer(); + message.addInterceptor(({ onFinish }) => { + onFinish(() => action.fire()); + }); + } + }); + } + + // js/request/request.js + var MessageRequest = class { + messages = /* @__PURE__ */ new Set(); + controller = new AbortController(); + interceptors = []; + cancelled = false; + uri = null; + payload = null; + options = null; + addMessage(message) { + message.setRequest(this); + this.messages.add(message); + } + getActiveMessages() { + return new Set([...this.messages].filter((message) => !message.isCancelled())); + } + initInterceptors(interceptorRegistry) { + this.interceptors = interceptorRegistry.getRequestInterceptors(this); + this.messages.forEach((message) => { + let messageInterceptors = interceptorRegistry.getMessageInterceptors(message); + message.setInterceptors(messageInterceptors); + }); + this.interceptors.forEach((interceptor) => interceptor.init()); + this.messages.forEach((message) => { + message.getInterceptors().forEach((interceptor) => interceptor.init()); + }); + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.controller.abort(); + this.messages.forEach((message) => { + if (message.isCancelled()) + return; + message.cancel(); + }); + } + hasAllCancelledMessages() { + return this.getActiveMessages().size === 0; + } + isCancelled() { + return this.cancelled; + } + invokeOnSend({ responsePromise }) { + this.interceptors.forEach((interceptor) => interceptor.onSend({ responsePromise })); + this.messages.forEach((message) => message.invokeOnSend()); + } + invokeOnCancel() { + this.interceptors.forEach((interceptor) => interceptor.onCancel()); + } + invokeOnFailure({ error: error2 }) { + this.interceptors.forEach((interceptor) => interceptor.onFailure({ error: error2 })); + this.messages.forEach((message) => message.invokeOnFailure(error2)); + } + invokeOnResponse({ response }) { + this.interceptors.forEach((interceptor) => interceptor.onResponse({ response })); + } + invokeOnStream({ response }) { + this.interceptors.forEach((interceptor) => interceptor.onStream({ response })); + } + invokeOnParsed({ response, body }) { + this.interceptors.forEach((interceptor) => interceptor.onParsed({ response, body })); + } + invokeOnRedirect({ url, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onRedirect({ url, preventDefault })); + } + invokeOnDump({ html, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onDump({ html, preventDefault })); + } + invokeOnError({ response, body, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onError({ response, body, preventDefault })); + this.messages.forEach((message) => message.invokeOnError({ response, body, preventDefault })); + } + invokeOnSuccess({ response, body, json }) { + this.interceptors.forEach((interceptor) => interceptor.onSuccess({ response, body, json })); + } + invokeOnFinish() { + this.interceptors.forEach((interceptor) => interceptor.onFinish()); + } + }; + var PageRequest = class { + controller = new AbortController(); + constructor(uri) { + this.uri = uri; + } + cancel() { + this.controller.abort(); + } + isCancelled() { + return this.controller.signal.aborted; + } + }; + + // js/request/interceptor.js + var MessageInterceptor = class { + onSend = () => { + }; + onCancel = () => { + }; + onFailure = () => { + }; + onError = () => { + }; + onStream = () => { + }; + onSuccess = () => { + }; + onSkipped = () => { + }; + onFinish = () => { + }; + onSync = () => { + }; + onEffect = () => { + }; + onMorph = async () => { + }; + onRender = () => { + }; + constructor(message, callback) { + this.message = message; + this.callback = callback; + this.callback({ + message: this.message, + cancel: () => { + let attachedToMessage = this.message.getInterceptors().includes(this); + if (!attachedToMessage) { + this.onCancel(); + } + this.message.cancel(); + }, + onSend: (callback2) => this.onSend = callback2, + onCancel: (callback2) => this.onCancel = callback2, + onFailure: (callback2) => this.onFailure = callback2, + onError: (callback2) => this.onError = callback2, + onStream: (callback2) => this.onStream = callback2, + onSuccess: (callback2) => this.onSuccess = callback2, + onSkipped: (callback2) => this.onSkipped = callback2, + onFinish: (callback2) => this.onFinish = callback2 + }); + } + init() { + } + }; + var RequestInterceptor = class { + onSend = () => { + }; + onCancel = () => { + }; + onFailure = () => { + }; + onResponse = () => { + }; + onParsed = () => { + }; + onError = () => { + }; + onStream = () => { + }; + onRedirect = () => { + }; + onDump = () => { + }; + onSuccess = () => { + }; + onFinish = () => { + }; + constructor(request, callback) { + this.request = request; + this.callback = callback; + this.callback({ + request: this.request, + onSend: (callback2) => this.onSend = callback2, + onCancel: (callback2) => this.onCancel = callback2, + onFailure: (callback2) => this.onFailure = callback2, + onResponse: (callback2) => this.onResponse = callback2, + onParsed: (callback2) => this.onParsed = callback2, + onError: (callback2) => this.onError = callback2, + onStream: (callback2) => this.onStream = callback2, + onRedirect: (callback2) => this.onRedirect = callback2, + onDump: (callback2) => this.onDump = callback2, + onSuccess: (callback2) => this.onSuccess = callback2, + onFinish: (callback2) => this.onFinish = callback2 + }); + } + init() { + } + }; + var InterceptorRegistry = class { + messageInterceptorCallbacks = []; + messageInterceptorCallbacksByComponent = new WeakBag(); + requestInterceptorCallbacks = []; + addInterceptor(component, callback) { + this.messageInterceptorCallbacksByComponent.add(component, callback); + return () => { + this.messageInterceptorCallbacksByComponent.delete(component, callback); + }; + } + addMessageInterceptor(callback) { + this.messageInterceptorCallbacks.push(callback); + return () => { + this.messageInterceptorCallbacks.splice(this.messageInterceptorCallbacks.indexOf(callback), 1); + }; + } + addRequestInterceptor(callback) { + this.requestInterceptorCallbacks.push(callback); + return () => { + this.requestInterceptorCallbacks.splice(this.requestInterceptorCallbacks.indexOf(callback), 1); + }; + } + getMessageInterceptors(message) { + let callbacks = [ + ...this.messageInterceptorCallbacksByComponent.get(message.component), + ...this.messageInterceptorCallbacks + ]; + return callbacks.map((callback) => { + return new MessageInterceptor(message, callback); + }); + } + getRequestInterceptors(request) { + return this.requestInterceptorCallbacks.map((callback) => { + return new RequestInterceptor(request, callback); + }); + } + }; + + // js/utils/modal.js + function showHtmlModal(html) { + let page = document.createElement("html"); + page.innerHTML = html; + page.querySelectorAll("a").forEach( + (a) => a.setAttribute("target", "_top") + ); + let modal = document.getElementById("livewire-error"); + if (typeof modal != "undefined" && modal != null) { + modal.innerHTML = ""; + } else { + modal = document.createElement("dialog"); + modal.id = "livewire-error"; + modal.style.margin = "50px"; + modal.style.width = "calc(100% - 100px)"; + modal.style.height = "calc(100% - 100px)"; + modal.style.borderRadius = "5px"; + modal.style.padding = "0px"; + } + let iframe = document.createElement("iframe"); + iframe.style.backgroundColor = "#17161A"; + iframe.style.borderRadius = "5px"; + iframe.style.width = "100%"; + iframe.style.height = "100%"; + modal.appendChild(iframe); + document.body.prepend(modal); + document.body.style.overflow = "hidden"; + iframe.contentWindow.document.open(); + iframe.contentWindow.document.write(page.outerHTML); + iframe.contentWindow.document.close(); + modal.addEventListener("click", () => hideHtmlModal(modal)); + modal.addEventListener("close", () => cleanupModal(modal)); + modal.showModal(); + modal.focus(); + modal.blur(); + } + function hideHtmlModal(modal) { + modal.close(); + } + function cleanupModal(modal) { + modal.outerHTML = ""; + document.body.style.overflow = "visible"; + } + + // js/request/messageBus.js + var componentSymbols = /* @__PURE__ */ new WeakMap(); + var componentIslandSymbols = /* @__PURE__ */ new WeakMap(); + function scopeSymbolFromMessage(message) { + let component = message.component; + let hasAllIslands = Array.from(message.actions).every((action) => action.metadata.island); + if (hasAllIslands) { + let islandName = Array.from(message.actions).map((action) => action.metadata.island.name).sort().join("|"); + let islandSymbols = componentIslandSymbols.get(component); + if (!islandSymbols) { + islandSymbols = { [islandName]: Symbol() }; + componentIslandSymbols.set(component, islandSymbols); + } + if (!islandSymbols[islandName]) { + islandSymbols[islandName] = Symbol(); + } + return islandSymbols[islandName]; + } + if (!componentSymbols.has(component)) { + componentSymbols.set(component, Symbol()); + } + return componentSymbols.get(component); + } + function scopeSymbolFromAction(action) { + let component = action.component; + let isIsland = !!action.metadata.island; + if (isIsland) { + let islandName = action.metadata.island.name; + let islandSymbols = componentIslandSymbols.get(component); + if (!islandSymbols) { + islandSymbols = { [islandName]: Symbol() }; + componentIslandSymbols.set(component, islandSymbols); + } + if (!islandSymbols[islandName]) { + islandSymbols[islandName] = Symbol(); + } + return islandSymbols[islandName]; + } + if (!componentSymbols.has(component)) { + componentSymbols.set(component, Symbol()); + } + return componentSymbols.get(component); + } + var MessageBus = class { + pendingMessages = /* @__PURE__ */ new Set(); + activeMessages = /* @__PURE__ */ new Set(); + bufferingMessages = /* @__PURE__ */ new Set(); + constructor() { + } + messageBuffer(message, callback) { + if (this.bufferingMessages.has(message)) { + return; + } + this.bufferingMessages.add(message); + setTimeout(() => { + callback(); + this.bufferingMessages.delete(message); + }, 5); + } + addPendingMessage(message) { + this.pendingMessages.add(message); + } + clearPendingMessages() { + this.pendingMessages.clear(); + } + getPendingMessages() { + return Array.from(this.pendingMessages); + } + addActiveMessage(message) { + this.activeMessages.add(message); + } + removeActiveMessage(message) { + this.activeMessages.delete(message); + } + findScopedPendingMessage(action) { + if (action.isAsync()) + return null; + let actionScope = scopeSymbolFromAction(action); + return Array.from(this.pendingMessages).find((message) => { + if (message.component !== action.component) + return false; + return Array.from(message.actions).some( + (existingAction) => scopeSymbolFromAction(existingAction) === actionScope + ); + }); + } + activeMessageMatchingScope(action) { + return Array.from(this.activeMessages).find((message) => this.matchesScope(message, action)); + } + matchesScope(message, action) { + return message.scope === scopeSymbolFromAction(action); + } + allScopedMessages(action) { + return [...Array.from(this.activeMessages), ...Array.from(this.pendingMessages)].filter((message) => { + return this.matchesScope(message, action); + }); + } + eachPendingMessage(callback) { + Array.from(this.pendingMessages).forEach(callback); + } + }; + + // js/request/message.js + var Message = class { + actions = /* @__PURE__ */ new Set(); + snapshot = null; + updates = null; + calls = null; + payload = null; + responsePayload = null; + pendingReturns = []; + pendingReturnsMeta = {}; + interceptors = []; + cancelled = false; + skipped = false; + request = null; + _scope = null; + get scope() { + if (!this._scope) { + throw new Error("Message scope has not been set yet"); + } + return this._scope; + } + set scope(scope) { + this._scope = scope; + } + constructor(component) { + this.component = component; + } + addAction(action) { + let actionsByFingerprint = /* @__PURE__ */ new Map(); + Array.from(this.actions).forEach((action2) => { + actionsByFingerprint.set(action2.fingerprint, action2); + }); + if (actionsByFingerprint.has(action.fingerprint)) { + actionsByFingerprint.get(action.fingerprint).addSquashedAction(action); + return; + } + action.message = this; + this.actions.add(action); + } + removeAction(action) { + this.actions.delete(action); + action.message = null; + if (this.actions.size === 0) { + this.cancel(); + } + } + getActions() { + return Array.from(this.actions); + } + hasActionForIsland(island) { + return this.getActions().some((action) => { + return action.metadata.island?.name === island.metadata.name; + }); + } + hasActionForComponent() { + return this.getActions().some((action) => { + return action.metadata.island === void 0; + }); + } + setInterceptors(interceptors2) { + this.interceptors = interceptors2; + } + addInterceptor(callback) { + let interceptor = new MessageInterceptor(this, callback); + this.interceptors.push(interceptor); + interceptor.init(); + } + setRequest(request) { + this.request = request; + } + getInterceptors() { + return this.interceptors; + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.invokeOnCancel(); + if (this.request?.hasAllCancelledMessages()) { + this.request.cancel(); + } + } + isCancelled() { + return this.cancelled; + } + markSkipped() { + this.skipped = true; + } + isSkipped() { + return this.skipped; + } + isAsync() { + return Array.from(this.actions).every((action) => action.isAsync()); + } + invokeOnSend() { + this.interceptors.forEach((interceptor) => interceptor.onSend({ + payload: this.payload + })); + Array.from(this.actions).forEach((action, index2) => { + let call = this.calls[index2]; + action.invokeOnSend({ call }); + }); + } + invokeOnCancel() { + this.interceptors.forEach((interceptor) => interceptor.onCancel()); + this.rejectActionPromises({ status: null, body: null, json: null, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnFailure(error2) { + this.interceptors.forEach((interceptor) => interceptor.onFailure({ error: error2 })); + Array.from(this.actions).forEach((action) => action.invokeOnFailure({ error: error2 })); + this.rejectActionPromises({ status: null, body: null, json: null, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnError({ response, body, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onError({ + response, + body, + preventDefault + })); + Array.from(this.actions).forEach((action) => action.invokeOnError({ response, body, preventDefault })); + let json = null; + try { + json = JSON.parse(body); + } catch (e) { + } + this.rejectActionPromises({ status: response.status, body, json, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnStream({ json }) { + this.interceptors.forEach((interceptor) => interceptor.onStream({ json })); + } + invokeOnSuccess() { + this.interceptors.forEach((interceptor) => { + interceptor.onSuccess({ + payload: this.responsePayload, + onSync: (callback) => interceptor.onSync = callback, + onEffect: (callback) => interceptor.onEffect = callback, + onMorph: (callback) => interceptor.onMorph = callback, + onRender: (callback) => interceptor.onRender = callback + }); + }); + this.pendingReturns = this.responsePayload.effects["returns"] || []; + this.pendingReturnsMeta = this.responsePayload.effects["returnsMeta"] || {}; + } + invokeOnSync() { + this.interceptors.forEach((interceptor) => interceptor.onSync()); + } + invokeOnEffect() { + this.interceptors.forEach((interceptor) => interceptor.onEffect()); + } + async invokeOnMorph() { + await Promise.all( + this.interceptors.map((interceptor) => interceptor.onMorph()) + ); + } + invokeOnRender() { + this.interceptors.forEach((interceptor) => interceptor.onRender()); + } + invokeOnFinish() { + this.interceptors.forEach((interceptor) => interceptor.onFinish()); + } + invokeOnSkipped() { + this.interceptors.forEach((interceptor) => interceptor.onSkipped()); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + } + rejectActionPromises({ status, body, json, errors }) { + Array.from(this.actions).forEach((action) => { + action.rejectPromise({ status, body, json, errors }); + }); + } + resolveActionPromises(returns, returnsMeta) { + let resolvedActions = /* @__PURE__ */ new Set(); + returns.forEach((value, index2) => { + let action = Array.from(this.actions)[index2]; + if (!action) + return; + let meta = returnsMeta[index2]; + if (meta?.errors) { + action.rejectPromise({ status: 422, body: null, json: null, errors: meta.errors }); + action.invokeOnFinish(); + resolvedActions.add(action); + return; + } + if (meta?.status) { + action.rejectPromise({ status: meta.status, body: null, json: null, errors: null }); + action.invokeOnFinish(); + resolvedActions.add(action); + return; + } + action.invokeOnSuccess(value); + action.resolvePromise(value); + action.invokeOnFinish(); + resolvedActions.add(action); + }); + Array.from(this.actions).forEach((action) => { + if (resolvedActions.has(action)) + return; + action.invokeOnSuccess(void 0); + action.resolvePromise(); + action.invokeOnFinish(); + }); + } + }; + + // js/request/action.js + var Action = class { + squashedActions = /* @__PURE__ */ new Set(); + onSendCallbacks = []; + onCancelCallbacks = []; + onSuccessCallbacks = []; + onErrorCallbacks = []; + onFailureCallbacks = []; + onFinishCallbacks = []; + message = null; + cancelled = false; + deferred = false; + _fire = null; + constructor(component, name, params = [], metadata = {}, origin = null) { + this.component = component; + this.name = name; + this.params = params; + this.metadata = metadata; + this.origin = origin; + this.promise = new Promise((resolve, reject) => { + this.promiseResolution = { resolve, reject }; + }); + this.promise._livewireAction = this; + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.invokeOnCancel(); + this.invokeOnFinish(); + this.rejectPromise({ status: null, body: null, json: null, errors: null }); + this.squashedActions.forEach((action) => action.cancel()); + if (this.message) { + this.message.removeAction(this); + } + } + isCancelled() { + return this.cancelled; + } + defer() { + this.deferred = true; + } + isDeferred() { + return this.deferred; + } + fire() { + if (this._fire) { + this._fire(this); + } + } + get fingerprint() { + let componentId = this.component.id; + let name = this.name; + let params = JSON.stringify(this.params); + let metadata = JSON.stringify(this.metadata); + let bytes = new TextEncoder().encode(componentId + name + params + metadata); + let binary = ""; + let chunkSize = 8192; + for (let i = 0; i < bytes.length; i += chunkSize) { + binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize)); + } + return window.btoa(binary); + } + isAsync() { + let asyncMethods = this.component.snapshot.memo?.async || []; + let methodIsMarkedAsync = asyncMethods.includes(this.name); + let actionIsAsync = this.origin?.directive?.modifiers.includes("async") || !!this.metadata.async; + return methodIsMarkedAsync || actionIsAsync; + } + isJson() { + let jsonMethods = this.component.snapshot.memo?.json || []; + return jsonMethods.includes(this.name); + } + addInterceptor(callback) { + callback({ + action: this, + onSend: (cb) => this.onSendCallbacks.push(cb), + onCancel: (cb) => this.onCancelCallbacks.push(cb), + onSuccess: (cb) => this.onSuccessCallbacks.push(cb), + onError: (cb) => this.onErrorCallbacks.push(cb), + onFailure: (cb) => this.onFailureCallbacks.push(cb), + onFinish: (cb) => this.onFinishCallbacks.push(cb) + }); + } + invokeOnSend({ call }) { + this.onSendCallbacks.forEach((cb) => cb({ call })); + this.squashedActions.forEach((action) => action.invokeOnSend({ call })); + } + invokeOnCancel() { + this.onCancelCallbacks.forEach((cb) => cb()); + this.squashedActions.forEach((action) => action.invokeOnCancel()); + } + invokeOnSuccess(result) { + this.onSuccessCallbacks.forEach((cb) => cb(result)); + this.squashedActions.forEach((action) => action.invokeOnSuccess(result)); + } + invokeOnError({ response, body, preventDefault }) { + this.onErrorCallbacks.forEach((cb) => cb({ response, body, preventDefault })); + this.squashedActions.forEach((action) => action.invokeOnError({ response, body, preventDefault })); + } + invokeOnFailure({ error: error2 }) { + this.onFailureCallbacks.forEach((cb) => cb({ error: error2 })); + this.squashedActions.forEach((action) => action.invokeOnFailure({ error: error2 })); + } + invokeOnFinish() { + this.onFinishCallbacks.forEach((cb) => cb()); + this.squashedActions.forEach((action) => action.invokeOnFinish()); + } + mergeMetadata(metadata) { + this.metadata = { ...this.metadata, ...metadata }; + } + rejectPromise(error2) { + this.squashedActions.forEach((action) => action.rejectPromise(error2)); + this.promiseResolution.reject(error2); + } + addSquashedAction(action) { + this.squashedActions.add(action); + } + resolvePromise(value) { + this.squashedActions.forEach((action) => action.resolvePromise(value)); + this.promiseResolution.resolve(value); + } + }; + + // js/request/legacy.js + function registerLegacyEventSupport(interceptRequest2, interceptMessage2) { + interceptRequest2(({ + request, + onFailure, + onResponse, + onError, + onSuccess + }) => { + let respondCallbacks = []; + let succeedCallbacks = []; + let failCallbacks = []; + trigger("request", { + url: request.uri, + options: request.options, + payload: request.options.body, + respond: (i) => respondCallbacks.push(i), + succeed: (i) => succeedCallbacks.push(i), + fail: (i) => failCallbacks.push(i) + }); + onResponse(({ response }) => { + respondCallbacks.forEach((callback) => callback({ + status: response.status, + response + })); + }); + onSuccess(({ response, json }) => { + succeedCallbacks.forEach((callback) => callback({ + status: response.status, + json + })); + }); + onFailure(({ error: error2 }) => { + failCallbacks.forEach((callback) => callback({ + status: 503, + content: null, + preventDefault: () => { + } + })); + }); + onError(({ response, body, preventDefault }) => { + failCallbacks.forEach((callback) => callback({ + status: response.status, + content: body, + preventDefault + })); + }); + }); + interceptMessage2(({ + message, + onCancel, + onError, + onSuccess, + onFinish + }) => { + let respondCallbacks = []; + let succeedCallbacks = []; + let failCallbacks = []; + trigger("commit", { + component: message.component, + commit: message.payload, + respond: (callback) => { + respondCallbacks.push(callback); + }, + succeed: (callback) => { + succeedCallbacks.push(callback); + }, + fail: (callback) => { + failCallbacks.push(callback); + } + }); + onFinish(() => { + respondCallbacks.forEach((callback) => callback()); + }); + onSuccess(({ payload, onSync, onMorph, onRender }) => { + onRender(() => { + succeedCallbacks.forEach((callback) => callback({ + snapshot: payload.snapshot, + effects: payload.effects + })); + }); + }); + onError(() => { + failCallbacks.forEach((callback) => callback()); + }); + onCancel(() => { + failCallbacks.forEach((callback) => callback()); + }); + }); + } + + // js/request/index.js + var outstandingActionOrigin = null; + var outstandingActionMetadata = {}; + var outstandingActionInterceptors = []; + var interceptors = new InterceptorRegistry(); + var messageBus = new MessageBus(); + var actionInterceptors = []; + var partitionInterceptors = []; + var sessionExpired = false; + function sessionIsExpired() { + return sessionExpired; + } + function setNextActionOrigin(origin) { + outstandingActionOrigin = origin; + } + function setNextActionMetadata(metadata) { + outstandingActionMetadata = metadata; + } + function setNextActionInterceptor(callback) { + outstandingActionInterceptors.push(callback); + } + function interceptAction(callback) { + actionInterceptors.push(callback); + return () => { + actionInterceptors.splice(actionInterceptors.indexOf(callback), 1); + }; + } + function interceptMessage(callback) { + return interceptors.addMessageInterceptor(callback); + } + function interceptRequest(callback) { + return interceptors.addRequestInterceptor(callback); + } + function interceptPartition(callback) { + partitionInterceptors.push(callback); + return () => { + partitionInterceptors.splice(partitionInterceptors.indexOf(callback), 1); + }; + } + function interceptComponentAction(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptAction(({ action, ...rest }) => { + if (action.component !== component) + return; + if (actionName && action.name !== actionName) + return; + callback({ action, ...rest }); + }); + } + function interceptComponentMessage(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptors.addInterceptor(component, ({ message, ...rest }) => { + if (actionName) { + let hasAction = Array.from(message.actions).some((a) => a.name === actionName); + if (!hasAction) + return; + } + callback({ message, ...rest }); + }); + } + function interceptComponentRequest(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptRequest(({ request, ...rest }) => { + let matchingMessages = Array.from(request.messages).filter((m) => { + if (m.component !== component) + return false; + if (actionName) { + return Array.from(m.actions).some((a) => a.name === actionName); + } + return true; + }); + if (matchingMessages.length === 0) + return; + callback({ request, ...rest }); + }); + } + interceptMessage(({ message, onFinish }) => { + messageBus.addActiveMessage(message); + onFinish(() => messageBus.removeActiveMessage(message)); + }); + queueMicrotask(() => { + coordinateNetworkInteractions(messageBus); + }); + function fireAction(component, method, params = [], metadata = {}) { + if (component.__isWireProxy) + component = component.__instance; + let action = constructAction(component, method, params, metadata); + actionInterceptors.forEach((callback) => { + callback({ + action, + onSend: (cb) => action.onSendCallbacks.push(cb), + onCancel: (cb) => action.onCancelCallbacks.push(cb), + onSuccess: (cb) => action.onSuccessCallbacks.push(cb), + onError: (cb) => action.onErrorCallbacks.push(cb), + onFailure: (cb) => action.onFailureCallbacks.push(cb), + onFinish: (cb) => action.onFinishCallbacks.push(cb) + }); + }); + if (action.isCancelled() || action.isDeferred()) + return action.promise; + return fireActionInstance(action); + } + function constructAction(component, method, params, metadata) { + let origin = outstandingActionOrigin; + let pendingInterceptors = outstandingActionInterceptors; + outstandingActionOrigin = null; + outstandingActionInterceptors = []; + metadata = { + ...metadata, + ...outstandingActionMetadata + }; + outstandingActionMetadata = {}; + let action = new Action(component, method, params, metadata, origin); + action._fire = fireActionInstance; + pendingInterceptors.forEach((callback) => action.addInterceptor(callback)); + return action; + } + function fireActionInstance(action) { + let message = createOrAddToOutstandingMessage(action); + messageBus.messageBuffer(message, () => { + sendMessages(); + }); + return action.promise; + } + function createOrAddToOutstandingMessage(action) { + let message = messageBus.findScopedPendingMessage(action); + if (!message) + message = new Message(action.component); + message.addAction(action); + messageBus.addPendingMessage(message); + return message; + } + function sendMessages() { + let requests = /* @__PURE__ */ new Set(); + messageBus.eachPendingMessage((message) => { + partitionInterceptors.forEach((callback) => { + callback({ + message, + compileRequest: (messages2) => { + let existingRequest = Array.from(requests).find( + (request2) => messages2.some((message2) => request2.messages.has(message2)) + ); + if (existingRequest) { + messages2.forEach((message2) => { + if (!existingRequest.messages.has(message2)) { + existingRequest.addMessage(message2); + } + }); + return existingRequest; + } + let request = new MessageRequest(); + messages2.forEach((message2) => request.addMessage(message2)); + requests.add(request); + return request; + } + }); + }); + }); + let messages = messageBus.getPendingMessages(); + messageBus.clearPendingMessages(); + for (let message of messages) { + if (Array.from(requests).some((request) => request.messages.has(message))) { + continue; + } + let hasFoundRequest = false; + requests.forEach((request) => { + if (!hasFoundRequest) { + let hasMessageForSameComponent = Array.from(request.messages).some((m) => m.component === message.component); + if (hasMessageForSameComponent) + return; + request.addMessage(message); + hasFoundRequest = true; + } + }); + if (!hasFoundRequest) { + let request = new MessageRequest(); + request.addMessage(message); + requests.add(request); + } + } + requests.forEach((request) => { + request.messages.forEach((message) => { + message.snapshot = message.component.getEncodedSnapshotWithLatestChildrenMergedIn(); + message.updates = message.component.getUpdates(); + message.calls = Array.from(message.actions).map((i) => ({ + method: i.name, + params: i.params, + metadata: i.metadata + })); + message.payload = { + snapshot: message.snapshot, + updates: message.updates, + calls: message.calls + }; + }); + }); + requests.forEach((request) => { + request.messages.forEach((message) => { + message.scope = scopeSymbolFromMessage(message); + }); + }); + requests.forEach((request) => { + request.uri = getUpdateUri(); + Object.defineProperty(request, "payload", { + get() { + return { + _token: getCsrfToken(), + components: Array.from(request.messages, (i) => i.payload) + }; + } + }); + let cachedOptions = null; + Object.defineProperty(request, "options", { + get() { + if (cachedOptions) + return cachedOptions; + cachedOptions = { + method: "POST", + body: JSON.stringify(request.payload), + headers: { + "Content-type": "application/json", + "X-Livewire": "1" + }, + signal: request.controller.signal + }; + return cachedOptions; + } + }); + }); + requests.forEach((request) => { + request.initInterceptors(interceptors); + if (request.hasAllCancelledMessages()) { + request.cancel(); + } + sendRequest(request, { + send: ({ responsePromise }) => { + request.invokeOnSend({ responsePromise }); + }, + failure: ({ error: error2 }) => { + request.invokeOnFailure({ error: error2 }); + }, + finish: () => { + request.invokeOnFinish(); + }, + response: ({ response }) => { + request.invokeOnResponse({ response }); + }, + stream: async ({ response }) => { + request.invokeOnStream({ response }); + let finalResponse = ""; + try { + finalResponse = await interceptStreamAndReturnFinalResponse(response, (json) => { + let componentId = json.id; + request.messages.forEach((message) => { + if (message.component.id === componentId) { + message.invokeOnStream({ json }); + } + }); + trigger("stream", json); + }); + } catch (e) { + request.cancel(); + throw e; + } + return finalResponse; + }, + parsed: ({ response, responseBody }) => { + request.invokeOnParsed({ response, body: responseBody }); + }, + error: ({ response, responseBody }) => { + let preventDefault = false; + request.invokeOnError({ response, body: responseBody, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + if (response.status === 419) { + if (sessionExpired) + return; + sessionExpired = true; + confirm( + "This page has expired.\nWould you like to refresh the page?" + ) && window.location.reload(); + return; + } + if (response.aborted) + return; + showHtmlModal(responseBody); + }, + redirect: (url) => { + let preventDefault = false; + request.invokeOnRedirect({ url, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + window.location.href = url; + }, + dump: (html) => { + let preventDefault = false; + request.invokeOnDump({ html, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + showHtmlModal(html); + }, + success: async ({ response, responseBody, responseJson }) => { + request.invokeOnSuccess({ response, body: responseBody, json: responseJson }); + await triggerAsync("payload.intercept", responseJson); + let messageResponsePayloads = responseJson.components; + request.messages.forEach((message) => { + messageResponsePayloads.forEach((payload) => { + if (message.isCancelled()) + return; + if (payload.skip) { + if (payload.id === message.component.id) { + message.responsePayload = payload; + message.markSkipped(); + message.invokeOnSkipped(); + message.resolveActionPromises([], []); + message.invokeOnFinish(); + } + return; + } + let { snapshot: snapshotEncoded, effects } = payload; + let snapshot = JSON.parse(snapshotEncoded); + if (snapshot.memo.id === message.component.id) { + message.responsePayload = { snapshot, effects }; + message.invokeOnSuccess(); + if (message.isCancelled()) + return; + Alpine.transaction(async () => { + message.component.mergeNewSnapshot(snapshotEncoded, effects, message.updates); + message.invokeOnSync(); + if (message.isCancelled()) + return; + message.component.processEffects(effects, request); + message.invokeOnEffect(); + if (message.isCancelled()) + return; + await message.invokeOnMorph(); + }).then(() => { + if (!message.isCancelled()) { + message.resolveActionPromises( + message.pendingReturns, + message.pendingReturnsMeta + ); + message.invokeOnFinish(); + } + requestAnimationFrame(() => { + if (message.isCancelled()) + return; + message.invokeOnRender(); + }); + }); + } + }); + }); + } + }); + }); + } + async function sendRequest(request, handlers) { + let response; + try { + if (request.isCancelled()) + return; + let responsePromise = fetch(request.uri, request.options); + if (request.isCancelled()) + return; + handlers.send({ responsePromise }); + response = await responsePromise; + } catch (e) { + if (request.isCancelled()) + return; + handlers.failure({ error: e }); + handlers.finish(); + return; + } + handlers.response({ response }); + let responseBody = null; + if (response.headers.has("X-Livewire-Stream")) { + responseBody = await handlers.stream({ response }); + } else { + responseBody = await response.text(); + } + if (request.isCancelled()) + return; + handlers.parsed({ response, responseBody }); + if (!response.ok) { + handlers.error({ response, responseBody }); + handlers.finish(); + return; + } + if (response.redirected) { + handlers.redirect(response.url); + } + if (contentIsFromDump(responseBody)) { + let dump; + [dump, responseBody] = splitDumpFromContent(responseBody); + handlers.dump(dump); + } + let responseJson = null; + try { + responseJson = JSON.parse(responseBody); + } catch (e) { + console.error(e); + handlers.error({ response, responseBody }); + handlers.finish(); + return; + } + handlers.success({ response, responseBody, responseJson }); + handlers.finish(); + } + async function interceptStreamAndReturnFinalResponse(response, callback) { + let reader = response.body.getReader(); + let remainingResponse = ""; + while (true) { + let { done, value: chunk } = await reader.read(); + let decoder = new TextDecoder(); + let output = decoder.decode(chunk); + let [streams, remaining] = extractStreamObjects(remainingResponse + output); + streams.forEach((stream) => { + callback(stream); + }); + remainingResponse = remaining; + if (done) + return remainingResponse; + } + } + function extractStreamObjects(raw) { + let regex = /({"stream":true.*?"endStream":true})/g; + let matches3 = raw.match(regex); + let parsed = []; + if (matches3) { + for (let i = 0; i < matches3.length; i++) { + parsed.push(JSON.parse(matches3[i]).body); + } + } + let remaining = raw.replace(regex, ""); + return [parsed, remaining]; + } + async function sendNavigateRequest(uri, callback, errorCallback) { + let request = new PageRequest(uri); + let options = { + headers: { + "X-Livewire-Navigate": "1" + }, + signal: request.controller.signal + }; + trigger("navigate.request", { + uri, + options + }); + let response; + try { + response = await fetch(uri, options); + let destination = getDestination(uri, response); + let html = await response.text(); + let status = response.status; + callback(html, destination, status); + } catch (error2) { + errorCallback(error2); + throw error2; + } + } + function getDestination(uri, response) { + let destination = createUrlObjectFromString(uri); + let finalDestination = createUrlObjectFromString(response.url); + if (destination.pathname + destination.search === finalDestination.pathname + finalDestination.search) { + finalDestination.hash = destination.hash; + } + return finalDestination; + } + function createUrlObjectFromString(urlString) { + return urlString !== null && new URL(urlString, document.baseURI); + } + registerLegacyEventSupport(interceptRequest, interceptMessage); + + // js/features/supportErrors.js + var import_alpinejs2 = __toESM(require_module_cjs()); + function getErrorsObject(component) { + let state = component.__errorsState ??= import_alpinejs2.default.reactive({ + clientErrors: null + }); + component.__lastErrorsSnapshot ??= component.snapshot; + return { + messages() { + if (component.__lastErrorsSnapshot !== component.snapshot) { + state.clientErrors = null; + component.__lastErrorsSnapshot = component.snapshot; + } + return state.clientErrors ??= component.snapshot.memo.errors; + }, + keys() { + return Object.keys(this.messages()); + }, + has(...keys) { + if (this.isEmpty()) + return false; + if (keys.length === 0 || keys.length === 1 && keys[0] == null) + return this.any(); + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + for (let key of keys) { + if (this.first(key) === "") + return false; + } + return true; + }, + hasAny(keys) { + if (this.isEmpty()) + return false; + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + for (let key of keys) { + if (this.has(key)) + return true; + } + return false; + }, + missing(...keys) { + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + return !this.hasAny(keys); + }, + first(key = null) { + let messages = key === null ? this.all() : this.get(key); + let firstMessage = messages.length > 0 ? messages[0] : ""; + return Array.isArray(firstMessage) ? firstMessage[0] : firstMessage; + }, + get(key) { + return this.messages()[key] || []; + }, + all() { + return Object.values(this.messages()).flat(); + }, + isEmpty() { + return !this.any(); + }, + isNotEmpty() { + return this.any(); + }, + any() { + return Object.keys(this.messages()).length > 0; + }, + count() { + return Object.values(this.messages()).reduce((total, array) => { + return total + array.length; + }, 0); + }, + clear(field = null) { + if (field === null) { + state.clientErrors = {}; + } else { + let errors = { ...state.clientErrors ?? component.snapshot.memo.errors }; + delete errors[field]; + state.clientErrors = errors; + } + } + }; + } + + // js/features/supportRefs.js + function findRefEl(component, name) { + let refEl = component.el.querySelector(`[wire\\:ref="${name}"]`); + if (!refEl) + return console.error(`Ref "${name}" not found in component "${component.id}"`); + return refEl; + } + + // js/directives.js + var customDirectiveNames = /* @__PURE__ */ new Set(); + function matchesForLivewireDirective(attributeName) { + return attributeName.match(new RegExp("wire:")); + } + function extractDirective(el, name) { + let [value, ...modifiers] = name.replace(new RegExp("wire:"), "").split("."); + return new Directive(value, modifiers, name, el); + } + function directive(name, callback) { + if (customDirectiveNames.has(name)) + return; + customDirectiveNames.add(name); + on("directive.init", ({ el, component, directive: directive2, cleanup }) => { + if (directive2.value === name) { + callback({ + el, + directive: directive2, + component, + $wire: component.$wire, + cleanup + }); + } + }); + } + function globalDirective(name, callback) { + if (customDirectiveNames.has(name)) + return; + customDirectiveNames.add(name); + on("directive.global.init", ({ el, directive: directive2, cleanup }) => { + if (directive2.value === name) { + callback({ el, directive: directive2, cleanup }); + } + }); + } + function getDirectives(el) { + return new DirectiveManager(el); + } + function customDirectiveHasBeenRegistered(name) { + return customDirectiveNames.has(name); + } + var DirectiveManager = class { + constructor(el) { + this.el = el; + this.directives = this.extractTypeModifiersAndValue(); + } + all() { + return this.directives; + } + has(value) { + return this.directives.map((directive2) => directive2.value).includes(value); + } + missing(value) { + return !this.has(value); + } + get(value) { + return this.directives.find((directive2) => directive2.value === value); + } + extractTypeModifiersAndValue() { + return Array.from(this.el.getAttributeNames().filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(this.el, name))); + } + }; + var Directive = class { + constructor(value, modifiers, rawName, el) { + this.rawName = this.raw = rawName; + this.el = el; + this.eventContext; + this.wire; + this.value = value; + this.modifiers = modifiers; + this.expression = this.el.getAttribute(this.rawName); + } + get method() { + const methods = this.parseOutMethodsAndParams(this.expression); + return methods[0].method; + } + get methods() { + return this.parseOutMethodsAndParams(this.expression); + } + get params() { + const methods = this.parseOutMethodsAndParams(this.expression); + return methods[0].params; + } + parseOutMethodsAndParams(rawMethod) { + let methods = []; + let parsedMethods = this.splitAndParseMethods(rawMethod); + for (let { method, paramString } of parsedMethods) { + let params = []; + if (paramString.length > 0) { + let argumentsToArray = function() { + for (var l = arguments.length, p = new Array(l), k = 0; k < l; k++) { + p[k] = arguments[k]; + } + return [].concat(p); + }; + try { + params = Alpine.evaluate( + document, + "argumentsToArray(" + paramString + ")", + { + scope: { argumentsToArray } + } + ); + } catch (error2) { + console.warn("Failed to parse parameters:", paramString, error2); + params = []; + } + } + methods.push({ method, params }); + } + return methods; + } + splitAndParseMethods(methodExpression) { + let methods = []; + let current = ""; + let parenCount = 0; + let inString = false; + let stringChar = null; + let trimmedExpression = methodExpression.trim(); + for (let i = 0; i < trimmedExpression.length; i++) { + let char = trimmedExpression[i]; + if (!inString) { + if (char === '"' || char === "'") { + inString = true; + stringChar = char; + current += char; + } else if (char === "(") { + parenCount++; + current += char; + } else if (char === ")") { + parenCount--; + current += char; + } else if (char === "," && parenCount === 0) { + methods.push(this.parseMethodCall(current.trim())); + current = ""; + } else { + current += char; + } + } else { + if (char === stringChar && trimmedExpression[i - 1] !== "\\") { + inString = false; + stringChar = null; + } + current += char; + } + } + if (current.trim().length > 0) { + methods.push(this.parseMethodCall(current.trim())); + } + return methods; + } + parseMethodCall(methodString) { + let methodMatch = methodString.match(/^([^(]+)\(/); + if (!methodMatch) { + return { + method: methodString.trim(), + paramString: "" + }; + } + let method = methodMatch[1].trim(); + let paramStart = methodMatch[0].length - 1; + let lastParenIndex = methodString.lastIndexOf(")"); + if (lastParenIndex === -1) { + throw new Error(`Missing closing parenthesis for method "${method}"`); + } + let paramString = methodString.slice(paramStart + 1, lastParenIndex).trim(); + return { + method, + paramString + }; + } + }; + + // js/directives/shared.js + function toggleBooleanStateDirective(el, directive2, isTruthy, cachedDisplay = null) { + isTruthy = directive2.modifiers.includes("remove") ? !isTruthy : isTruthy; + if (directive2.modifiers.includes("class")) { + let classes = directive2.expression.split(" ").filter(String); + if (isTruthy) { + el.classList.add(...classes); + } else { + el.classList.remove(...classes); + } + } else if (directive2.modifiers.includes("attr")) { + if (isTruthy) { + el.setAttribute(directive2.expression, true); + } else { + el.removeAttribute(directive2.expression); + } + } else { + let cache = cachedDisplay ?? window.getComputedStyle(el, null).getPropertyValue("display"); + let display = ["inline", "list-item", "block", "table", "flex", "grid", "inline-flex"].filter((i) => directive2.modifiers.includes(i))[0] || "inline-block"; + display = directive2.modifiers.includes("remove") && !isTruthy ? cache : display; + el.style.display = isTruthy ? display : "none"; + } + } + + // js/directives/wire-dirty.js + var refreshDirtyStatesByComponent = new WeakBag(); + on("commit", ({ component, succeed }) => { + succeed(() => { + setTimeout(() => { + refreshDirtyStatesByComponent.each(component, (i) => i(false)); + }); + }); + }); + directive("dirty", ({ el, directive: directive2, component }) => { + let targets = dirtyTargets(el); + let oldIsDirty = false; + let initialDisplay = el.style.display; + let refreshDirtyState = (isDirty) => { + toggleBooleanStateDirective(el, directive2, isDirty, initialDisplay); + oldIsDirty = isDirty; + }; + refreshDirtyStatesByComponent.add(component, refreshDirtyState); + Alpine.effect(() => { + let isDirty = false; + isDirty = checkDirty(component, targets.length === 0 ? void 0 : targets); + if (oldIsDirty !== isDirty) { + refreshDirtyState(isDirty); + } + oldIsDirty = isDirty; + }); + }); + function checkDirty(component, targets) { + let isDirty = false; + if (targets === void 0) { + isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive); + } else if (Array.isArray(targets)) { + for (let i = 0; i < targets.length; i++) { + if (isDirty) + break; + let target = targets[i]; + isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target)); + } + } else { + isDirty = JSON.stringify(dataGet(component.canonical, targets)) !== JSON.stringify(dataGet(component.reactive, targets)); + } + return isDirty; + } + function dirtyTargets(el) { + let directives = getDirectives(el); + let targets = []; + if (directives.has("model")) { + targets.push(directives.get("model").expression); + } + if (directives.has("target")) { + targets = targets.concat( + directives.get("target").expression.split(",").map((s) => s.trim()) + ); + } + return targets; + } + + // js/features/supportJsModules.js + var pendingComponentAssets = /* @__PURE__ */ new WeakMap(); + on("effect", ({ component, effects }) => { + let scriptModuleHash = effects.scriptModule; + if (scriptModuleHash) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/js/${encodedName}.js?v=${scriptModuleHash}`; + pendingComponentAssets.set(component, Alpine.reactive({ + loading: true, + afterLoaded: [] + })); + import( + /* @vite-ignore */ + path + ).then((module) => { + module.run.call(component.$wire, component.$wire, component.$wire.js); + pendingComponentAssets.get(component).loading = false; + pendingComponentAssets.get(component).afterLoaded.forEach((callback) => callback()); + pendingComponentAssets.delete(component); + }); + } + }); + function assetIsPendingFor(component) { + return pendingComponentAssets.has(component) && pendingComponentAssets.get(component).loading; + } + function runAfterAssetIsLoadedFor(component, callback) { + if (assetIsPendingFor(component)) { + pendingComponentAssets.get(component).afterLoaded.push(() => callback()); + } else { + callback(); + } + } + + // js/$wire.js + var properties = {}; + var fallback; + function wireProperty(name, callback, component = null) { + properties[name] = callback; + } + function wireFallback(callback) { + fallback = callback; + } + var aliases = { + "on": "$on", + "el": "$el", + "id": "$id", + "js": "$js", + "get": "$get", + "set": "$set", + "refs": "$refs", + "call": "$call", + "hook": "$hook", + "watch": "$watch", + "dirty": "$dirty", + "effect": "$effect", + "commit": "$commit", + "errors": "$errors", + "island": "$island", + "upload": "$upload", + "entangle": "$entangle", + "dispatch": "$dispatch", + "intercept": "$intercept", + "interceptAction": "$interceptAction", + "interceptMessage": "$interceptMessage", + "interceptRequest": "$interceptRequest", + "dispatchTo": "$dispatchTo", + "dispatchSelf": "$dispatchSelf", + "dispatchEl": "$dispatchEl", + "dispatchRef": "$dispatchRef", + "removeUpload": "$removeUpload", + "cancelUpload": "$cancelUpload", + "uploadMultiple": "$uploadMultiple" + }; + function generateWireObject(component, state) { + let isScoped = false; + return new Proxy({}, { + get(target, property) { + if (property === "__instance") + return component; + if (property in aliases) { + return getProperty(component, aliases[property]); + } else if (property in properties) { + return getProperty(component, property); + } else if (property in state) { + return state[property]; + } else if (property === "toJSON") { + return () => component.toJSON(); + } else if (!["then"].includes(property)) { + return getFallback(component)(property); + } + }, + set(target, property, value) { + if (property in state) { + state[property] = value; + } + return true; + } + }); + } + function getProperty(component, name) { + return properties[name](component); + } + function getFallback(component) { + return fallback(component); + } + import_alpinejs3.default.magic("wire", (el, { cleanup }) => { + let component; + return new Proxy({}, { + get(target, property) { + if (!component) { + try { + component = findComponentByEl(el); + } catch (e) { + return () => { + }; + } + } + if (["$entangle", "entangle"].includes(property)) { + return generateEntangleFunction(component, cleanup); + } + return component.$wire[property]; + }, + set(target, property, value) { + if (!component) { + try { + component = findComponentByEl(el); + } catch (e) { + return true; + } + } + component.$wire[property] = value; + return true; + } + }); + }); + wireProperty("__instance", (component) => component); + wireProperty("$get", (component) => (property, reactive = true) => dataGet(reactive ? component.reactive : component.ephemeral, property)); + wireProperty("$el", (component) => { + return component.el; + }); + wireProperty("$id", (component) => { + return component.id; + }); + wireProperty("$js", (component) => { + let fn = component.addJsAction.bind(component); + let jsActions = component.getJsActions(); + Object.keys(jsActions).forEach((name) => { + fn[name] = jsActions[name]; + }); + return new Proxy(fn, { + set(target, property, value) { + component.addJsAction(property, value); + return true; + }, + get(target, property) { + if (assetIsPendingFor(component)) { + let resolver = null; + let promise = new Promise((resolve) => { + resolver = resolve; + }); + return (...params) => { + runAfterAssetIsLoadedFor(component, () => { + resolver(component.getJsAction(property)(...params)); + }); + return promise; + }; + } + return target[property]; + } + }); + }); + wireProperty("$set", (component) => async (property, value, live = true) => { + dataSet(component.reactive, property, value); + if (live) { + component.queueUpdate(property, value); + return fireAction(component, "$set"); + } + return Promise.resolve(); + }); + wireProperty("$refs", (component) => { + let fn = (name) => findRefEl(component, name); + return new Proxy(fn, { + get(target, property) { + if (property in target) { + return target[property]; + } + return fn(property); + } + }); + }); + wireProperty("$dirty", (component) => (property) => { + let reactive = import_alpinejs3.default.reactive({ dirty: false }); + interceptComponentMessage(component, ({ onFinish }) => { + onFinish(() => { + queueMicrotask(() => { + reactive.dirty = checkDirty(component, property); + }); + }); + }); + import_alpinejs3.default.effect(() => { + reactive.dirty = checkDirty(component, property); + }); + return reactive.dirty; + }); + wireProperty("$intercept", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentAction(component, actionNameOrCallback, maybeCallback); + }); + wireProperty("$interceptAction", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentAction(component, actionNameOrCallback, maybeCallback); + }); + wireProperty("$interceptMessage", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentMessage(component, actionNameOrCallback, maybeCallback); + }); + wireProperty("$interceptRequest", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentRequest(component, actionNameOrCallback, maybeCallback); + }); + wireProperty("$errors", (component) => getErrorsObject(component)); + wireProperty("$call", (component) => async (method, ...params) => { + return await component.$wire[method](...params); + }); + wireProperty("$island", (component) => (name, options = {}) => { + setNextActionMetadata({ island: { name, mode: "morph", ...options } }); + return component.$wire; + }); + wireProperty("$entangle", (component) => (name, live = false) => { + return generateEntangleFunction(component)(name, live); + }); + wireProperty("$toggle", (component) => (name, live = true) => { + return component.$wire.set(name, !component.$wire.get(name), live); + }); + wireProperty("$watch", (component) => (path, callback) => { + let getter = () => { + return dataGet(component.reactive, path); + }; + let unwatch = import_alpinejs3.default.watch(getter, callback); + component.addCleanup(unwatch); + return unwatch; + }); + wireProperty("$effect", (component) => (callback) => { + let effect = import_alpinejs3.default.effect(callback); + component.addCleanup(effect); + return effect; + }); + wireProperty("$refresh", (component) => async () => { + return fireAction(component, "$refresh"); + }); + wireProperty("$commit", (component) => async () => { + return fireAction(component, "$commit"); + }); + wireProperty("$on", (component) => (...params) => listen2(component, ...params)); + wireProperty("$hook", (component) => (name, callback) => { + let unhook = on(name, ({ component: hookComponent, ...params }) => { + if (hookComponent === void 0) + return callback(params); + if (hookComponent.id === component.id) + return callback({ component: hookComponent, ...params }); + }); + component.addCleanup(unhook); + return unhook; + }); + wireProperty("$dispatch", (component) => (...params) => dispatch2(component, ...params)); + wireProperty("$dispatchSelf", (component) => (...params) => dispatchSelf(component, ...params)); + wireProperty("$dispatchTo", () => (...params) => dispatchTo(...params)); + wireProperty("$dispatchEl", (component) => (...params) => dispatchEl(component, ...params)); + wireProperty("$dispatchRef", (component) => (...params) => dispatchRef(component, ...params)); + wireProperty("$upload", (component) => (...params) => upload(component, ...params)); + wireProperty("$uploadMultiple", (component) => (...params) => uploadMultiple(component, ...params)); + wireProperty("$removeUpload", (component) => (...params) => removeUpload(component, ...params)); + wireProperty("$cancelUpload", (component) => (...params) => cancelUpload(component, ...params)); + var parentMemo = /* @__PURE__ */ new WeakMap(); + wireProperty("$parent", (component) => { + if (parentMemo.has(component)) + return parentMemo.get(component).$wire; + let parent = findComponentByEl(component.el.parentElement, false); + if (!parent) + return; + parentMemo.set(component, parent); + return parent.$wire; + }); + var overriddenMethods = /* @__PURE__ */ new WeakMap(); + function overrideMethod(component, method, callback) { + if (!overriddenMethods.has(component)) { + overriddenMethods.set(component, {}); + } + let obj = overriddenMethods.get(component); + obj[method] = callback; + overriddenMethods.set(component, obj); + } + wireFallback((component) => (property) => (...params) => { + if (params.length === 1 && params[0] instanceof Event) { + params = []; + } + if (overriddenMethods.has(component)) { + let overrides = overriddenMethods.get(component); + if (typeof overrides[property] === "function") { + return overrides[property](params); + } + } + return fireAction(component, property, params); + }); + + // js/component.js + var Component = class { + constructor(el) { + if (el.__livewire) + throw "Component already initialized"; + el.__livewire = this; + this.el = el; + this.id = el.getAttribute("wire:id"); + this.key = el.getAttribute("wire:key"); + this.__livewireId = this.id; + this.snapshotEncoded = el.getAttribute("wire:snapshot"); + this.snapshot = JSON.parse(this.snapshotEncoded); + if (!this.snapshot) { + throw `Snapshot missing on Livewire component with id: ` + this.id; + } + this.name = this.snapshot.memo.name; + this.effects = JSON.parse(el.getAttribute("wire:effects")); + this.originalEffects = deepClone(this.effects); + this.canonical = extractData(deepClone(this.snapshot.data)); + this.ephemeral = extractData(deepClone(this.snapshot.data)); + this.reactive = Alpine.reactive(this.ephemeral); + this.queuedUpdates = {}; + this.jsActions = {}; + this.$wire = generateWireObject(this, this.reactive); + el.$wire = this.$wire; + this.cleanups = []; + this.processEffects(this.effects); + } + addActionContext(context) { + if (context.el || context.directive) { + setNextActionOrigin({ + el: context.el, + directive: context.directive + }); + } + } + intercept(action, callback = null) { + return this.$wire.$intercept(action, callback); + } + mergeNewSnapshot(snapshotEncoded, effects, updates = {}) { + let snapshot = JSON.parse(snapshotEncoded); + let oldCanonical = deepClone(this.canonical); + let updatedOldCanonical = this.applyUpdates(oldCanonical, updates); + let newCanonical = extractData(deepClone(snapshot.data)); + let dirty = diff(updatedOldCanonical, newCanonical); + this.snapshotEncoded = snapshotEncoded; + this.snapshot = snapshot; + this.effects = effects; + this.canonical = extractData(deepClone(snapshot.data)); + let newData = extractData(deepClone(snapshot.data)); + diffAndPatchRecursive(updatedOldCanonical, newData, this.reactive); + return dirty; + } + queueUpdate(propertyName, value) { + this.queuedUpdates[propertyName] = value; + } + mergeQueuedUpdates(diff2) { + Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => { + Object.entries(diff2).forEach(([diffKey, diffValue]) => { + if (diffKey.startsWith(updateKey)) { + delete diff2[diffKey]; + } + }); + diff2[updateKey] = updateValue; + }); + this.queuedUpdates = []; + return diff2; + } + getUpdates() { + let propertiesDiff = diffAndConsolidate(this.canonical, this.ephemeral); + return this.mergeQueuedUpdates(propertiesDiff); + } + applyUpdates(object, updates) { + for (let key in updates) { + dataSet(object, key, updates[key]); + } + return object; + } + replayUpdate(snapshot, html) { + let effects = { ...this.effects, html }; + this.mergeNewSnapshot(JSON.stringify(snapshot), effects); + this.processEffects({ html }); + } + processEffects(effects, request) { + trigger("effects", this, effects); + trigger("effect", { + component: this, + effects, + cleanup: (i) => this.addCleanup(i), + request + }); + } + get children() { + let componentEl = this.el; + let children = []; + componentEl.querySelectorAll("[wire\\:id]").forEach((el) => { + let parentComponentEl = el.parentElement.closest("[wire\\:id]"); + if (parentComponentEl !== componentEl) + return; + let componentInstance = el.__livewire; + if (!componentInstance) + return; + children.push(componentInstance); + }); + return children; + } + get islands() { + let islands = this.snapshot.memo.islands; + return islands; + } + get parent() { + return findComponentByEl(this.el.parentElement); + } + get isIsolated() { + return this.snapshot.memo.isolate; + } + get isLazy() { + return this.snapshot.memo.lazyLoaded !== void 0; + } + get hasBeenLazyLoaded() { + return this.snapshot.memo.lazyLoaded === true; + } + get isLazyIsolated() { + return !!this.snapshot.memo.lazyIsolated; + } + getDeepChildrenWithBindings(callback) { + this.getDeepChildren((child) => { + if (child.isLazy && !child.hasBeenLazyLoaded) + return; + if (child.hasReactiveProps() || child.hasWireModelableBindings()) { + callback(child); + } + }); + } + hasReactiveProps() { + let meta = this.snapshot.memo; + let props = meta.props; + return !!props; + } + hasWireModelableBindings() { + let meta = this.snapshot.memo; + let bindings = meta.bindings; + return !!bindings; + } + getDeepChildren(callback) { + this.children.forEach((child) => { + callback(child); + child.getDeepChildren(callback); + }); + } + getEncodedSnapshotWithLatestChildrenMergedIn() { + let { snapshotEncoded, children, snapshot } = this; + let childrenMemo = {}; + children.forEach((child) => { + childrenMemo[child.key] = [child.el.tagName.toLowerCase(), child.id]; + }); + return snapshotEncoded.replace( + /"children":\{[^}]*\}/, + `"children":${JSON.stringify(childrenMemo)}` + ); + } + inscribeSnapshotAndEffectsOnElement() { + let el = this.el; + el.setAttribute("wire:snapshot", this.snapshotEncoded); + let effects = this.originalEffects.listeners ? { listeners: this.originalEffects.listeners } : {}; + if (this.originalEffects.url) { + effects.url = this.originalEffects.url; + } + if (this.originalEffects.scripts) { + effects.scripts = this.originalEffects.scripts; + } + el.setAttribute("wire:effects", JSON.stringify(effects)); + el.setAttribute("wire:key", this.key); + } + addJsAction(name, action) { + this.jsActions[name] = action; + } + hasJsAction(name) { + return this.jsActions[name] !== void 0; + } + getJsAction(name) { + return this.jsActions[name].bind(this.$wire); + } + getJsActions() { + let actions = {}; + for (let key of Object.keys(this.jsActions)) { + actions[key] = this.getJsAction(key); + } + return actions; + } + toJSON() { + return { + id: this.id, + name: this.name, + key: this.key, + data: Object.fromEntries(Object.entries(this.ephemeral)) + }; + } + addCleanup(cleanup) { + this.cleanups.push(cleanup); + } + cleanup() { + delete this.el.__livewire; + while (this.cleanups.length > 0) { + this.cleanups.pop()(); + } + } + }; + + // js/fragment.js + function closestFragment(el, { isMatch, hasReachedBoundary }) { + if (!hasReachedBoundary) + hasReachedBoundary = () => false; + let current = el; + while (current) { + let sibling = current.previousSibling; + let foundEndMarker = []; + while (sibling) { + if (isEndFragmentMarker(sibling)) { + foundEndMarker.push("a"); + } + if (isStartFragmentMarker(sibling)) { + if (foundEndMarker.length > 0) { + foundEndMarker.pop(); + } else { + let metadata = extractFragmentMetadataFromMarkerNode(sibling); + if (isMatch(metadata)) { + return new Fragment(sibling); + } + } + } + sibling = sibling.previousSibling; + } + current = current.parentElement; + if (current && hasReachedBoundary({ el: current })) { + break; + } + } + return null; + } + function findFragment(el, { isMatch, hasReachedBoundary }) { + if (!hasReachedBoundary) + hasReachedBoundary = () => false; + let startNode = null; + let rootEl2 = el; + walkElements(rootEl2, (el2, { skip, stop }) => { + if (el2.hasAttribute && el2 !== rootEl2 && hasReachedBoundary({ el: el2 })) { + return skip(); + } + Array.from(el2.childNodes).forEach((node) => { + if (isStartFragmentMarker(node)) { + let metadata = extractFragmentMetadataFromMarkerNode(node); + if (isMatch(metadata)) { + startNode = node; + stop(); + } + } + }); + }); + return startNode && new Fragment(startNode); + } + function isStartFragmentMarker(el) { + return el.nodeType === 8 && el.textContent.startsWith("[if FRAGMENT"); + } + function isEndFragmentMarker(el) { + return el.nodeType === 8 && el.textContent.startsWith("[if ENDFRAGMENT"); + } + function walkElements(el, callback) { + let skip = false; + let stop = false; + callback(el, { skip: () => skip = true, stop: () => stop = true }); + if (skip || stop) + return; + Array.from(el.children).forEach((child) => { + walkElements(child, callback); + if (stop) + return; + }); + } + var Fragment = class { + constructor(startMarkerNode) { + this.startMarkerNode = startMarkerNode; + this.metadata = extractFragmentMetadataFromMarkerNode(startMarkerNode); + } + get endMarkerNode() { + return findMatchingEndMarkerNode(this.startMarkerNode, this.metadata); + } + append(mountContainerTagName, html) { + let container = document.createElement(mountContainerTagName); + container.innerHTML = html; + Array.from(container.childNodes).forEach((node) => { + this.endMarkerNode.before(node); + }); + } + prepend(mountContainerTagName, html) { + let container = document.createElement(mountContainerTagName); + container.innerHTML = html; + Array.from(container.childNodes).reverse().forEach((node) => { + this.startMarkerNode.after(node); + }); + } + }; + function findMatchingEndMarkerNode(startMarkerNode, metadata) { + let current = startMarkerNode; + while (current) { + if (isEndFragmentMarker(current)) { + let currentMetadata = extractFragmentMetadataFromMarkerNode(current); + if (Object.keys(metadata).every((key) => metadata[key] === currentMetadata[key])) { + return current; + } + } + current = current.nextSibling; + } + return null; + } + function extractInnerHtmlFromFragmentHtml(fragmentHtml) { + let regex = /<!--\[if FRAGMENT\b.*?\]><!\[endif\]-->([\s\S]*)<!--\[if ENDFRAGMENT\b.*?\]><!\[endif\]-->/i; + let match = fragmentHtml.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, html] = match; + return html; + } + function extractFragmentMetadataFromHtml(fragmentHtml) { + let regex = /\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/; + let match = fragmentHtml.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, __, encodedMetadata] = match; + return decodeMetadata(encodedMetadata); + } + function extractFragmentMetadataFromMarkerNode(startMarkerNode) { + let regex = /\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/; + let match = startMarkerNode.textContent.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, __, encodedMetadata] = match; + return decodeMetadata(encodedMetadata); + } + function decodeMetadata(encodedMetadata) { + let metadata = {}; + let pairs = encodedMetadata.split("|"); + pairs.forEach((pair) => { + let [key, value] = pair.split("="); + metadata[key] = value; + }); + return metadata; + } + + // js/store.js + var components = {}; + function initComponent(el) { + let component = new Component(el); + if (components[component.id]) + throw "Component already registered"; + let cleanup = (i) => component.addCleanup(i); + trigger("component.init", { component, cleanup }); + components[component.id] = component; + return component; + } + function destroyComponent(id) { + let component = components[id]; + if (!component) + return; + component.cleanup(); + delete components[id]; + } + function hasComponent(id) { + return !!components[id]; + } + function findComponent(id, strict = true) { + let component = components[id]; + if (!component) { + if (strict) + throw "Component not found: " + id; + return; + } + return component; + } + function findComponentByEl(el, strict = true) { + let componentId = walkUpwards(el, (node, { stop }) => { + if (node.__livewire) + return stop(node.__livewire.id); + let endMarkers = []; + let slotParentId = walkBackwards(node, (siblingNode, { stop: stop2 }) => { + if (isEndFragmentMarker(siblingNode)) { + let metadata = extractFragmentMetadataFromMarkerNode(siblingNode); + if (metadata.type !== "slot") + return; + endMarkers.push("a"); + return; + } + if (isStartFragmentMarker(siblingNode)) { + let metadata = extractFragmentMetadataFromMarkerNode(siblingNode); + if (metadata.type !== "slot") + return; + if (endMarkers.length > 0) { + endMarkers.pop(); + } else { + return stop2(metadata.parent); + } + } + }); + if (slotParentId) + return stop(slotParentId); + }); + let component = findComponent(componentId, strict); + if (!component) { + if (strict) + throw "Could not find Livewire component in DOM tree"; + return; + } + return component; + } + function componentsByName(name) { + return Object.values(components).filter((component) => { + return name == component.name; + }); + } + function getByName(name) { + return componentsByName(name).map((i) => i.$wire); + } + function find(id) { + let component = components[id]; + return component && component.$wire; + } + function first() { + return Object.values(components)[0].$wire; + } + function all() { + return Object.values(components); + } + + // js/events.js + function dispatch2(component, name, params) { + dispatchEvent(component.el, name, params); + } + function dispatchGlobal(name, params) { + dispatchEvent(window, name, params); + } + function dispatchSelf(component, name, params) { + dispatchEvent(component.el, name, params, false); + } + function dispatchEl(component, selector, name, params) { + let targets = component.el.querySelectorAll(selector); + targets.forEach((target) => { + dispatchEvent(target, name, params, false); + }); + } + function dispatchTo(componentName, name, params) { + let targets = componentsByName(componentName); + targets.forEach((target) => { + dispatchEvent(target.el, name, params, false); + }); + } + function dispatchRef(component, ref, name, params) { + let el = findRefEl(component, ref); + dispatchEvent(el, name, params, false); + } + function listen2(component, name, callback) { + component.el.addEventListener(name, (e) => { + callback(e.detail); + }); + } + function on2(eventName, callback) { + let handler = (e) => { + if (!e.__livewire) + return; + callback(e.detail); + }; + window.addEventListener(eventName, handler); + return () => { + window.removeEventListener(eventName, handler); + }; + } + function dispatchEvent(target, name, params, bubbles = true) { + if (typeof params === "string") { + params = [params]; + } + let e = new CustomEvent(name, { bubbles, detail: params }); + e.__livewire = { name, params, receivedBy: [] }; + target.dispatchEvent(e); + } + + // node_modules/@alpinejs/collapse/dist/module.esm.js + function src_default(Alpine25) { + Alpine25.directive("collapse", collapse); + collapse.inline = (el, { modifiers }) => { + if (!modifiers.includes("min")) + return; + el._x_doShow = () => { + }; + el._x_doHide = () => { + }; + }; + function collapse(el, { modifiers }) { + let duration = modifierValue(modifiers, "duration", 250) / 1e3; + let floor2 = modifierValue(modifiers, "min", 0); + let fullyHide = !modifiers.includes("min"); + if (!el._x_isShown) + el.style.height = `${floor2}px`; + if (!el._x_isShown && fullyHide) + el.hidden = true; + if (!el._x_isShown) + el.style.overflow = "hidden"; + let setFunction = (el2, styles) => { + let revertFunction = Alpine25.setStyles(el2, styles); + return styles.height ? () => { + } : revertFunction; + }; + let transitionStyles = { + transitionProperty: "height", + transitionDuration: `${duration}s`, + transitionTimingFunction: "cubic-bezier(0.4, 0.0, 0.2, 1)" + }; + el._x_transition = { + in(before = () => { + }, after = () => { + }) { + if (fullyHide) + el.hidden = false; + if (fullyHide) + el.style.display = null; + let current = el.getBoundingClientRect().height; + el.style.height = "auto"; + let full = el.getBoundingClientRect().height; + if (current === full) { + current = floor2; + } + Alpine25.transition(el, Alpine25.setStyles, { + during: transitionStyles, + start: { height: current + "px" }, + end: { height: full + "px" } + }, () => el._x_isShown = true, () => { + if (Math.abs(el.getBoundingClientRect().height - full) < 1) { + el.style.overflow = null; + } + }); + }, + out(before = () => { + }, after = () => { + }) { + let full = el.getBoundingClientRect().height; + Alpine25.transition(el, setFunction, { + during: transitionStyles, + start: { height: full + "px" }, + end: { height: floor2 + "px" } + }, () => el.style.overflow = "hidden", () => { + el._x_isShown = false; + if (el.style.height == `${floor2}px` && fullyHide) { + el.style.display = "none"; + el.hidden = true; + } + }); + } + }; + } + } + function modifierValue(modifiers, key, fallback2) { + if (modifiers.indexOf(key) === -1) + return fallback2; + const rawValue = modifiers[modifiers.indexOf(key) + 1]; + if (!rawValue) + return fallback2; + if (key === "duration") { + let match = rawValue.match(/([0-9]+)ms/); + if (match) + return match[1]; + } + if (key === "min") { + let match = rawValue.match(/([0-9]+)px/); + if (match) + return match[1]; + } + return rawValue; + } + var module_default = src_default; + + // node_modules/@alpinejs/focus/dist/module.esm.js + var candidateSelectors = ["input:not([inert]):not([inert] *)", "select:not([inert]):not([inert] *)", "textarea:not([inert]):not([inert] *)", "a[href]:not([inert]):not([inert] *)", "button:not([inert]):not([inert] *)", "[tabindex]:not(slot):not([inert]):not([inert] *)", "audio[controls]:not([inert]):not([inert] *)", "video[controls]:not([inert]):not([inert] *)", '[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)', "details>summary:first-of-type:not([inert]):not([inert] *)", "details:not([inert]):not([inert] *)"]; + var candidateSelector = /* @__PURE__ */ candidateSelectors.join(","); + var NoElement = typeof Element === "undefined"; + var matches = NoElement ? function() { + } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; + var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) { + var _element$getRootNode; + return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element); + } : function(element) { + return element === null || element === void 0 ? void 0 : element.ownerDocument; + }; + var _isInert = function isInert(node, lookUp) { + var _node$getAttribute; + if (lookUp === void 0) { + lookUp = true; + } + var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, "inert"); + var inert = inertAtt === "" || inertAtt === "true"; + var result = inert || lookUp && node && (typeof node.closest === "function" ? node.closest("[inert]") : _isInert(node.parentNode)); + return result; + }; + var isContentEditable = function isContentEditable2(node) { + var _node$getAttribute2; + var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, "contenteditable"); + return attValue === "" || attValue === "true"; + }; + var getCandidates = function getCandidates2(el, includeContainer, filter) { + if (_isInert(el)) { + return []; + } + var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector)); + if (includeContainer && matches.call(el, candidateSelector)) { + candidates.unshift(el); + } + candidates = candidates.filter(filter); + return candidates; + }; + var _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) { + var candidates = []; + var elementsToCheck = Array.from(elements); + while (elementsToCheck.length) { + var element = elementsToCheck.shift(); + if (_isInert(element, false)) { + continue; + } + if (element.tagName === "SLOT") { + var assigned = element.assignedElements(); + var content = assigned.length ? assigned : element.children; + var nestedCandidates = _getCandidatesIteratively(content, true, options); + if (options.flatten) { + candidates.push.apply(candidates, nestedCandidates); + } else { + candidates.push({ + scopeParent: element, + candidates: nestedCandidates + }); + } + } else { + var validCandidate = matches.call(element, candidateSelector); + if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) { + candidates.push(element); + } + var shadowRoot = element.shadowRoot || typeof options.getShadowRoot === "function" && options.getShadowRoot(element); + var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element)); + if (shadowRoot && validShadowRoot) { + var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options); + if (options.flatten) { + candidates.push.apply(candidates, _nestedCandidates); + } else { + candidates.push({ + scopeParent: element, + candidates: _nestedCandidates + }); + } + } else { + elementsToCheck.unshift.apply(elementsToCheck, element.children); + } + } + } + return candidates; + }; + var hasTabIndex = function hasTabIndex2(node) { + return !isNaN(parseInt(node.getAttribute("tabindex"), 10)); + }; + var getTabIndex = function getTabIndex2(node) { + if (!node) { + throw new Error("No node provided"); + } + if (node.tabIndex < 0) { + if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) { + return 0; + } + } + return node.tabIndex; + }; + var getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) { + var tabIndex = getTabIndex(node); + if (tabIndex < 0 && isScope && !hasTabIndex(node)) { + return 0; + } + return tabIndex; + }; + var sortOrderedTabbables = function sortOrderedTabbables2(a, b) { + return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex; + }; + var isInput = function isInput2(node) { + return node.tagName === "INPUT"; + }; + var isHiddenInput = function isHiddenInput2(node) { + return isInput(node) && node.type === "hidden"; + }; + var isDetailsWithSummary = function isDetailsWithSummary2(node) { + var r = node.tagName === "DETAILS" && Array.prototype.slice.apply(node.children).some(function(child) { + return child.tagName === "SUMMARY"; + }); + return r; + }; + var getCheckedRadio = function getCheckedRadio2(nodes, form) { + for (var i = 0; i < nodes.length; i++) { + if (nodes[i].checked && nodes[i].form === form) { + return nodes[i]; + } + } + }; + var isTabbableRadio = function isTabbableRadio2(node) { + if (!node.name) { + return true; + } + var radioScope = node.form || getRootNode(node); + var queryRadios = function queryRadios2(name) { + return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]'); + }; + var radioSet; + if (typeof window !== "undefined" && typeof window.CSS !== "undefined" && typeof window.CSS.escape === "function") { + radioSet = queryRadios(window.CSS.escape(node.name)); + } else { + try { + radioSet = queryRadios(node.name); + } catch (err) { + console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s", err.message); + return false; + } + } + var checked = getCheckedRadio(radioSet, node.form); + return !checked || checked === node; + }; + var isRadio = function isRadio2(node) { + return isInput(node) && node.type === "radio"; + }; + var isNonTabbableRadio = function isNonTabbableRadio2(node) { + return isRadio(node) && !isTabbableRadio(node); + }; + var isNodeAttached = function isNodeAttached2(node) { + var _nodeRoot; + var nodeRoot = node && getRootNode(node); + var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host; + var attached = false; + if (nodeRoot && nodeRoot !== node) { + var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument; + attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node)); + while (!attached && nodeRootHost) { + var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD; + nodeRoot = getRootNode(nodeRootHost); + nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host; + attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost)); + } + } + return attached; + }; + var isZeroArea = function isZeroArea2(node) { + var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height; + return width === 0 && height === 0; + }; + var isHidden = function isHidden2(node, _ref) { + var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot; + if (displayCheck === "full-native") { + if ("checkVisibility" in node) { + var visible = node.checkVisibility({ + checkOpacity: false, + opacityProperty: false, + contentVisibilityAuto: true, + visibilityProperty: true, + checkVisibilityCSS: true + }); + return !visible; + } + } + if (getComputedStyle(node).visibility === "hidden") { + return true; + } + var isDirectSummary = matches.call(node, "details>summary:first-of-type"); + var nodeUnderDetails = isDirectSummary ? node.parentElement : node; + if (matches.call(nodeUnderDetails, "details:not([open]) *")) { + return true; + } + if (!displayCheck || displayCheck === "full" || displayCheck === "full-native" || displayCheck === "legacy-full") { + if (typeof getShadowRoot === "function") { + var originalNode = node; + while (node) { + var parentElement = node.parentElement; + var rootNode = getRootNode(node); + if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) { + return isZeroArea(node); + } else if (node.assignedSlot) { + node = node.assignedSlot; + } else if (!parentElement && rootNode !== node.ownerDocument) { + node = rootNode.host; + } else { + node = parentElement; + } + } + node = originalNode; + } + if (isNodeAttached(node)) { + return !node.getClientRects().length; + } + if (displayCheck !== "legacy-full") { + return true; + } + } else if (displayCheck === "non-zero-area") { + return isZeroArea(node); + } + return false; + }; + var isDisabledFromFieldset = function isDisabledFromFieldset2(node) { + if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) { + var parentNode = node.parentElement; + while (parentNode) { + if (parentNode.tagName === "FIELDSET" && parentNode.disabled) { + for (var i = 0; i < parentNode.children.length; i++) { + var child = parentNode.children.item(i); + if (child.tagName === "LEGEND") { + return matches.call(parentNode, "fieldset[disabled] *") ? true : !child.contains(node); + } + } + return true; + } + parentNode = parentNode.parentElement; + } + } + return false; + }; + var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) { + if (node.disabled || isHiddenInput(node) || isHidden(node, options) || isDetailsWithSummary(node) || isDisabledFromFieldset(node)) { + return false; + } + return true; + }; + var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) { + if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) { + return false; + } + return true; + }; + var isShadowRootTabbable = function isShadowRootTabbable2(shadowHostNode) { + var tabIndex = parseInt(shadowHostNode.getAttribute("tabindex"), 10); + if (isNaN(tabIndex) || tabIndex >= 0) { + return true; + } + return false; + }; + var _sortByOrder = function sortByOrder(candidates) { + var regularTabbables = []; + var orderedTabbables = []; + candidates.forEach(function(item, i) { + var isScope = !!item.scopeParent; + var element = isScope ? item.scopeParent : item; + var candidateTabindex = getSortOrderTabIndex(element, isScope); + var elements = isScope ? _sortByOrder(item.candidates) : element; + if (candidateTabindex === 0) { + isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element); + } else { + orderedTabbables.push({ + documentOrder: i, + tabIndex: candidateTabindex, + item, + isScope, + content: elements + }); + } + }); + return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) { + sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content); + return acc; + }, []).concat(regularTabbables); + }; + var tabbable = function tabbable2(container, options) { + options = options || {}; + var candidates; + if (options.getShadowRoot) { + candidates = _getCandidatesIteratively([container], options.includeContainer, { + filter: isNodeMatchingSelectorTabbable.bind(null, options), + flatten: false, + getShadowRoot: options.getShadowRoot, + shadowRootFilter: isShadowRootTabbable + }); + } else { + candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options)); + } + return _sortByOrder(candidates); + }; + var focusable = function focusable2(container, options) { + options = options || {}; + var candidates; + if (options.getShadowRoot) { + candidates = _getCandidatesIteratively([container], options.includeContainer, { + filter: isNodeMatchingSelectorFocusable.bind(null, options), + flatten: true, + getShadowRoot: options.getShadowRoot + }); + } else { + candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options)); + } + return candidates; + }; + var isTabbable = function isTabbable2(node, options) { + options = options || {}; + if (!node) { + throw new Error("No node provided"); + } + if (matches.call(node, candidateSelector) === false) { + return false; + } + return isNodeMatchingSelectorTabbable(options, node); + }; + var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat("iframe:not([inert]):not([inert] *)").join(","); + var isFocusable = function isFocusable2(node, options) { + options = options || {}; + if (!node) { + throw new Error("No node provided"); + } + if (matches.call(node, focusableCandidateSelector) === false) { + return false; + } + return isNodeMatchingSelectorFocusable(options, node); + }; + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) + n[e] = r[e]; + return n; + } + function _arrayWithoutHoles(r) { + if (Array.isArray(r)) + return _arrayLikeToArray(r); + } + function asyncGeneratorStep(n, t, e, r, o, a, c) { + try { + var i = n[a](c), u = i.value; + } catch (n2) { + return void e(n2); + } + i.done ? t(u) : Promise.resolve(u).then(r, o); + } + function _asyncToGenerator(n) { + return function() { + var t = this, e = arguments; + return new Promise(function(r, o) { + var a = n.apply(t, e); + function _next(n2) { + asyncGeneratorStep(a, r, o, _next, _throw, "next", n2); + } + function _throw(n2) { + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2); + } + _next(void 0); + }); + }; + } + function _createForOfIteratorHelper(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (!t) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { + t && (r = t); + var n = 0, F = function() { + }; + return { + s: F, + n: function() { + return n >= r.length ? { + done: true + } : { + done: false, + value: r[n++] + }; + }, + e: function(r2) { + throw r2; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var o, a = true, u = false; + return { + s: function() { + t = t.call(r); + }, + n: function() { + var r2 = t.next(); + return a = r2.done, r2; + }, + e: function(r2) { + u = true, o = r2; + }, + f: function() { + try { + a || null == t.return || t.return(); + } finally { + if (u) + throw o; + } + } + }; + } + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: true, + configurable: true, + writable: true + }) : e[r] = t, e; + } + function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) + return Array.from(r); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function ownKeys(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + function _objectSpread2(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + function _regenerator() { + var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; + function i(r2, n2, o2, i2) { + var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype); + return _regeneratorDefine(u2, "_invoke", function(r3, n3, o3) { + var i3, c3, u3, f2 = 0, p = o3 || [], y = false, G = { + p: 0, + n: 0, + v: e, + a: d, + f: d.bind(e, 4), + d: function(t2, r4) { + return i3 = t2, c3 = 0, u3 = e, G.n = r4, a; + } + }; + function d(r4, n4) { + for (c3 = r4, u3 = n4, t = 0; !y && f2 && !o4 && t < p.length; t++) { + var o4, i4 = p[t], d2 = G.p, l = i4[2]; + r4 > 3 ? (o4 = l === n4) && (u3 = i4[(c3 = i4[4]) ? 5 : (c3 = 3, 3)], i4[4] = i4[5] = e) : i4[0] <= d2 && ((o4 = r4 < 2 && d2 < i4[1]) ? (c3 = 0, G.v = n4, G.n = i4[1]) : d2 < l && (o4 = r4 < 3 || i4[0] > n4 || n4 > l) && (i4[4] = r4, i4[5] = n4, G.n = l, c3 = 0)); + } + if (o4 || r4 > 1) + return a; + throw y = true, n4; + } + return function(o4, p2, l) { + if (f2 > 1) + throw TypeError("Generator is already running"); + for (y && 1 === p2 && d(p2, l), c3 = p2, u3 = l; (t = c3 < 2 ? e : u3) || !y; ) { + i3 || (c3 ? c3 < 3 ? (c3 > 1 && (G.n = -1), d(c3, u3)) : G.n = u3 : G.v = u3); + try { + if (f2 = 2, i3) { + if (c3 || (o4 = "next"), t = i3[o4]) { + if (!(t = t.call(i3, u3))) + throw TypeError("iterator result is not an object"); + if (!t.done) + return t; + u3 = t.value, c3 < 2 && (c3 = 0); + } else + 1 === c3 && (t = i3.return) && t.call(i3), c3 < 2 && (u3 = TypeError("The iterator does not provide a '" + o4 + "' method"), c3 = 1); + i3 = e; + } else if ((t = (y = G.n < 0) ? u3 : r3.call(n3, G)) !== a) + break; + } catch (t2) { + i3 = e, c3 = 1, u3 = t2; + } finally { + f2 = 1; + } + } + return { + value: t, + done: y + }; + }; + }(r2, o2, i2), true), u2; + } + var a = {}; + function Generator() { + } + function GeneratorFunction() { + } + function GeneratorFunctionPrototype() { + } + t = Object.getPrototypeOf; + var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function() { + return this; + }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); + function f(e2) { + return Object.setPrototypeOf ? Object.setPrototypeOf(e2, GeneratorFunctionPrototype) : (e2.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e2, o, "GeneratorFunction")), e2.prototype = Object.create(u), e2; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function() { + return this; + }), _regeneratorDefine(u, "toString", function() { + return "[object Generator]"; + }), (_regenerator = function() { + return { + w: i, + m: f + }; + })(); + } + function _regeneratorDefine(e, r, n, t) { + var i = Object.defineProperty; + try { + i({}, "", {}); + } catch (e2) { + i = 0; + } + _regeneratorDefine = function(e2, r2, n2, t2) { + function o(r3, n3) { + _regeneratorDefine(e2, r3, function(e3) { + return this._invoke(r3, n3, e3); + }); + } + r2 ? i ? i(e2, r2, { + value: n2, + enumerable: !t2, + configurable: !t2, + writable: !t2 + }) : e2[r2] = n2 : (o("next", 0), o("throw", 1), o("return", 2)); + }, _regeneratorDefine(e, r, n, t); + } + function _toConsumableArray(r) { + return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); + } + function _toPrimitive(t, r) { + if ("object" != typeof t || !t) + return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r); + if ("object" != typeof i) + return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == typeof i ? i : i + ""; + } + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) + return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + var activeFocusTraps = { + getActiveTrap: function getActiveTrap(trapStack) { + if ((trapStack === null || trapStack === void 0 ? void 0 : trapStack.length) > 0) { + return trapStack[trapStack.length - 1]; + } + return null; + }, + activateTrap: function activateTrap(trapStack, trap) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + if (trap !== activeTrap) { + activeFocusTraps.pauseTrap(trapStack); + } + var trapIndex = trapStack.indexOf(trap); + if (trapIndex === -1) { + trapStack.push(trap); + } else { + trapStack.splice(trapIndex, 1); + trapStack.push(trap); + } + }, + deactivateTrap: function deactivateTrap(trapStack, trap) { + var trapIndex = trapStack.indexOf(trap); + if (trapIndex !== -1) { + trapStack.splice(trapIndex, 1); + } + activeFocusTraps.unpauseTrap(trapStack); + }, + pauseTrap: function pauseTrap(trapStack) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + activeTrap === null || activeTrap === void 0 || activeTrap._setPausedState(true); + }, + unpauseTrap: function unpauseTrap(trapStack) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + if (activeTrap && !activeTrap._isManuallyPaused()) { + activeTrap._setPausedState(false); + } + } + }; + var isSelectableInput = function isSelectableInput2(node) { + return node.tagName && node.tagName.toLowerCase() === "input" && typeof node.select === "function"; + }; + var isEscapeEvent = function isEscapeEvent2(e) { + return (e === null || e === void 0 ? void 0 : e.key) === "Escape" || (e === null || e === void 0 ? void 0 : e.key) === "Esc" || (e === null || e === void 0 ? void 0 : e.keyCode) === 27; + }; + var isTabEvent = function isTabEvent2(e) { + return (e === null || e === void 0 ? void 0 : e.key) === "Tab" || (e === null || e === void 0 ? void 0 : e.keyCode) === 9; + }; + var isKeyForward = function isKeyForward2(e) { + return isTabEvent(e) && !e.shiftKey; + }; + var isKeyBackward = function isKeyBackward2(e) { + return isTabEvent(e) && e.shiftKey; + }; + var delay = function delay2(fn) { + return setTimeout(fn, 0); + }; + var valueOrHandler = function valueOrHandler2(value) { + for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + params[_key - 1] = arguments[_key]; + } + return typeof value === "function" ? value.apply(void 0, params) : value; + }; + var getActualTarget = function getActualTarget2(event) { + return event.target.shadowRoot && typeof event.composedPath === "function" ? event.composedPath()[0] : event.target; + }; + var internalTrapStack = []; + var createFocusTrap = function createFocusTrap2(elements, userOptions) { + var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document; + var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack; + var config = _objectSpread2({ + returnFocusOnDeactivate: true, + escapeDeactivates: true, + delayInitialFocus: true, + isolateSubtrees: false, + isKeyForward, + isKeyBackward + }, userOptions); + var state = { + containers: [], + containerGroups: [], + tabbableGroups: [], + adjacentElements: /* @__PURE__ */ new Set(), + alreadySilent: /* @__PURE__ */ new Set(), + nodeFocusedBeforeActivation: null, + mostRecentlyFocusedNode: null, + active: false, + paused: false, + manuallyPaused: false, + delayInitialFocusTimer: void 0, + recentNavEvent: void 0 + }; + var trap; + var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) { + return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName]; + }; + var findContainerIndex = function findContainerIndex2(element, event) { + var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === "function" ? event.composedPath() : void 0; + return state.containerGroups.findIndex(function(_ref) { + var container = _ref.container, tabbableNodes = _ref.tabbableNodes; + return container.contains(element) || (composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function(node) { + return node === element; + }); + }); + }; + var getNodeForOption = function getNodeForOption2(optionName) { + var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$hasFallback = _ref2.hasFallback, hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback, _ref2$params = _ref2.params, params = _ref2$params === void 0 ? [] : _ref2$params; + var optionValue = config[optionName]; + if (typeof optionValue === "function") { + optionValue = optionValue.apply(void 0, _toConsumableArray(params)); + } + if (optionValue === true) { + optionValue = void 0; + } + if (!optionValue) { + if (optionValue === void 0 || optionValue === false) { + return optionValue; + } + throw new Error("`".concat(optionName, "` was specified but was not a node, or did not return a node")); + } + var node = optionValue; + if (typeof optionValue === "string") { + try { + node = doc.querySelector(optionValue); + } catch (err) { + throw new Error("`".concat(optionName, '` appears to be an invalid selector; error="').concat(err.message, '"')); + } + if (!node) { + if (!hasFallback) { + throw new Error("`".concat(optionName, "` as selector refers to no known node")); + } + } + } + return node; + }; + var getInitialFocusNode = function getInitialFocusNode2() { + var node = getNodeForOption("initialFocus", { + hasFallback: true + }); + if (node === false) { + return false; + } + if (node === void 0 || node && !isFocusable(node, config.tabbableOptions)) { + if (findContainerIndex(doc.activeElement) >= 0) { + node = doc.activeElement; + } else { + var firstTabbableGroup = state.tabbableGroups[0]; + var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; + node = firstTabbableNode || getNodeForOption("fallbackFocus"); + } + } else if (node === null) { + node = getNodeForOption("fallbackFocus"); + } + if (!node) { + throw new Error("Your focus-trap needs to have at least one focusable element"); + } + return node; + }; + var updateTabbableNodes = function updateTabbableNodes2() { + state.containerGroups = state.containers.map(function(container) { + var tabbableNodes = tabbable(container, config.tabbableOptions); + var focusableNodes = focusable(container, config.tabbableOptions); + var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0; + var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0; + var firstDomTabbableNode = focusableNodes.find(function(node) { + return isTabbable(node); + }); + var lastDomTabbableNode = focusableNodes.slice().reverse().find(function(node) { + return isTabbable(node); + }); + var posTabIndexesFound = !!tabbableNodes.find(function(node) { + return getTabIndex(node) > 0; + }); + return { + container, + tabbableNodes, + focusableNodes, + posTabIndexesFound, + firstTabbableNode, + lastTabbableNode, + firstDomTabbableNode, + lastDomTabbableNode, + nextTabbableNode: function nextTabbableNode(node) { + var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + var nodeIdx = tabbableNodes.indexOf(node); + if (nodeIdx < 0) { + if (forward) { + return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function(el) { + return isTabbable(el); + }); + } + return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function(el) { + return isTabbable(el); + }); + } + return tabbableNodes[nodeIdx + (forward ? 1 : -1)]; + } + }; + }); + state.tabbableGroups = state.containerGroups.filter(function(group) { + return group.tabbableNodes.length > 0; + }); + if (state.tabbableGroups.length <= 0 && !getNodeForOption("fallbackFocus")) { + throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times"); + } + if (state.containerGroups.find(function(g) { + return g.posTabIndexesFound; + }) && state.containerGroups.length > 1) { + throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps."); + } + }; + var _getActiveElement = function getActiveElement(el) { + var activeElement = el.activeElement; + if (!activeElement) { + return; + } + if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) { + return _getActiveElement(activeElement.shadowRoot); + } + return activeElement; + }; + var _tryFocus = function tryFocus(node) { + if (node === false) { + return; + } + if (node === _getActiveElement(document)) { + return; + } + if (!node || !node.focus) { + _tryFocus(getInitialFocusNode()); + return; + } + node.focus({ + preventScroll: !!config.preventScroll + }); + state.mostRecentlyFocusedNode = node; + if (isSelectableInput(node)) { + node.select(); + } + }; + var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) { + var node = getNodeForOption("setReturnFocus", { + params: [previousActiveElement] + }); + return node ? node : node === false ? false : previousActiveElement; + }; + var findNextNavNode = function findNextNavNode2(_ref3) { + var target = _ref3.target, event = _ref3.event, _ref3$isBackward = _ref3.isBackward, isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward; + target = target || getActualTarget(event); + updateTabbableNodes(); + var destinationNode = null; + if (state.tabbableGroups.length > 0) { + var containerIndex = findContainerIndex(target, event); + var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0; + if (containerIndex < 0) { + if (isBackward) { + destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode; + } else { + destinationNode = state.tabbableGroups[0].firstTabbableNode; + } + } else if (isBackward) { + var startOfGroupIndex = state.tabbableGroups.findIndex(function(_ref4) { + var firstTabbableNode = _ref4.firstTabbableNode; + return target === firstTabbableNode; + }); + if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) { + startOfGroupIndex = containerIndex; + } + if (startOfGroupIndex >= 0) { + var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1; + var destinationGroup = state.tabbableGroups[destinationGroupIndex]; + destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode; + } else if (!isTabEvent(event)) { + destinationNode = containerGroup.nextTabbableNode(target, false); + } + } else { + var lastOfGroupIndex = state.tabbableGroups.findIndex(function(_ref5) { + var lastTabbableNode = _ref5.lastTabbableNode; + return target === lastTabbableNode; + }); + if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) { + lastOfGroupIndex = containerIndex; + } + if (lastOfGroupIndex >= 0) { + var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1; + var _destinationGroup = state.tabbableGroups[_destinationGroupIndex]; + destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode; + } else if (!isTabEvent(event)) { + destinationNode = containerGroup.nextTabbableNode(target); + } + } + } else { + destinationNode = getNodeForOption("fallbackFocus"); + } + return destinationNode; + }; + var checkPointerDown = function checkPointerDown2(e) { + var target = getActualTarget(e); + if (findContainerIndex(target, e) >= 0) { + return; + } + if (valueOrHandler(config.clickOutsideDeactivates, e)) { + trap.deactivate({ + returnFocus: config.returnFocusOnDeactivate + }); + return; + } + if (valueOrHandler(config.allowOutsideClick, e)) { + return; + } + e.preventDefault(); + }; + var checkFocusIn = function checkFocusIn2(event) { + var target = getActualTarget(event); + var targetContained = findContainerIndex(target, event) >= 0; + if (targetContained || target instanceof Document) { + if (targetContained) { + state.mostRecentlyFocusedNode = target; + } + } else { + event.stopImmediatePropagation(); + var nextNode; + var navAcrossContainers = true; + if (state.mostRecentlyFocusedNode) { + if (getTabIndex(state.mostRecentlyFocusedNode) > 0) { + var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode); + var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes; + if (tabbableNodes.length > 0) { + var mruTabIdx = tabbableNodes.findIndex(function(node) { + return node === state.mostRecentlyFocusedNode; + }); + if (mruTabIdx >= 0) { + if (config.isKeyForward(state.recentNavEvent)) { + if (mruTabIdx + 1 < tabbableNodes.length) { + nextNode = tabbableNodes[mruTabIdx + 1]; + navAcrossContainers = false; + } + } else { + if (mruTabIdx - 1 >= 0) { + nextNode = tabbableNodes[mruTabIdx - 1]; + navAcrossContainers = false; + } + } + } + } + } else { + if (!state.containerGroups.some(function(g) { + return g.tabbableNodes.some(function(n) { + return getTabIndex(n) > 0; + }); + })) { + navAcrossContainers = false; + } + } + } else { + navAcrossContainers = false; + } + if (navAcrossContainers) { + nextNode = findNextNavNode({ + target: state.mostRecentlyFocusedNode, + isBackward: config.isKeyBackward(state.recentNavEvent) + }); + } + if (nextNode) { + _tryFocus(nextNode); + } else { + _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); + } + } + state.recentNavEvent = void 0; + }; + var checkKeyNav = function checkKeyNav2(event) { + var isBackward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; + state.recentNavEvent = event; + var destinationNode = findNextNavNode({ + event, + isBackward + }); + if (destinationNode) { + if (isTabEvent(event)) { + event.preventDefault(); + } + _tryFocus(destinationNode); + } + }; + var checkTabKey = function checkTabKey2(event) { + if (config.isKeyForward(event) || config.isKeyBackward(event)) { + checkKeyNav(event, config.isKeyBackward(event)); + } + }; + var checkEscapeKey = function checkEscapeKey2(event) { + if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) { + event.preventDefault(); + trap.deactivate(); + } + }; + var checkClick = function checkClick2(e) { + var target = getActualTarget(e); + if (findContainerIndex(target, e) >= 0) { + return; + } + if (valueOrHandler(config.clickOutsideDeactivates, e)) { + return; + } + if (valueOrHandler(config.allowOutsideClick, e)) { + return; + } + e.preventDefault(); + e.stopImmediatePropagation(); + }; + var addListeners = function addListeners2() { + if (!state.active) { + return Promise.resolve(); + } + activeFocusTraps.activateTrap(trapStack, trap); + var promise; + if (config.delayInitialFocus) { + promise = new Promise(function(resolve) { + state.delayInitialFocusTimer = delay(function() { + _tryFocus(getInitialFocusNode()); + resolve(); + }); + }); + } else { + promise = Promise.resolve(); + _tryFocus(getInitialFocusNode()); + } + doc.addEventListener("focusin", checkFocusIn, true); + doc.addEventListener("mousedown", checkPointerDown, { + capture: true, + passive: false + }); + doc.addEventListener("touchstart", checkPointerDown, { + capture: true, + passive: false + }); + doc.addEventListener("click", checkClick, { + capture: true, + passive: false + }); + doc.addEventListener("keydown", checkTabKey, { + capture: true, + passive: false + }); + doc.addEventListener("keydown", checkEscapeKey); + return promise; + }; + var collectAdjacentElements = function collectAdjacentElements2(containers) { + if (state.active && !state.paused) { + trap._setSubtreeIsolation(false); + } + state.adjacentElements.clear(); + state.alreadySilent.clear(); + var containerAncestors = /* @__PURE__ */ new Set(); + var adjacentElements = /* @__PURE__ */ new Set(); + var _iterator = _createForOfIteratorHelper(containers), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var container = _step.value; + containerAncestors.add(container); + var insideShadowRoot = typeof ShadowRoot !== "undefined" && container.getRootNode() instanceof ShadowRoot; + var current = container; + while (current) { + containerAncestors.add(current); + var parent = current.parentElement; + var siblings = []; + if (parent) { + siblings = parent.children; + } else if (!parent && insideShadowRoot) { + siblings = current.getRootNode().children; + parent = current.getRootNode().host; + insideShadowRoot = typeof ShadowRoot !== "undefined" && parent.getRootNode() instanceof ShadowRoot; + } + var _iterator2 = _createForOfIteratorHelper(siblings), _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { + var child = _step2.value; + adjacentElements.add(child); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + current = parent; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + containerAncestors.forEach(function(el) { + adjacentElements["delete"](el); + }); + state.adjacentElements = adjacentElements; + }; + var removeListeners = function removeListeners2() { + if (!state.active) { + return; + } + doc.removeEventListener("focusin", checkFocusIn, true); + doc.removeEventListener("mousedown", checkPointerDown, true); + doc.removeEventListener("touchstart", checkPointerDown, true); + doc.removeEventListener("click", checkClick, true); + doc.removeEventListener("keydown", checkTabKey, true); + doc.removeEventListener("keydown", checkEscapeKey); + return trap; + }; + var checkDomRemoval = function checkDomRemoval2(mutations) { + var isFocusedNodeRemoved = mutations.some(function(mutation) { + var removedNodes = Array.from(mutation.removedNodes); + return removedNodes.some(function(node) { + return node === state.mostRecentlyFocusedNode; + }); + }); + if (isFocusedNodeRemoved) { + _tryFocus(getInitialFocusNode()); + } + }; + var mutationObserver = typeof window !== "undefined" && "MutationObserver" in window ? new MutationObserver(checkDomRemoval) : void 0; + var updateObservedNodes = function updateObservedNodes2() { + if (!mutationObserver) { + return; + } + mutationObserver.disconnect(); + if (state.active && !state.paused) { + state.containers.map(function(container) { + mutationObserver.observe(container, { + subtree: true, + childList: true + }); + }); + } + }; + trap = { + get active() { + return state.active; + }, + get paused() { + return state.paused; + }, + activate: function activate(activateOptions) { + if (state.active) { + return this; + } + var onActivate = getOption(activateOptions, "onActivate"); + var onPostActivate = getOption(activateOptions, "onPostActivate"); + var checkCanFocusTrap = getOption(activateOptions, "checkCanFocusTrap"); + var preexistingTrap = activeFocusTraps.getActiveTrap(trapStack); + var revertState = false; + if (preexistingTrap && !preexistingTrap.paused) { + var _preexistingTrap$_set; + (_preexistingTrap$_set = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set === void 0 || _preexistingTrap$_set.call(preexistingTrap, false); + revertState = true; + } + try { + if (!checkCanFocusTrap) { + updateTabbableNodes(); + } + state.active = true; + state.paused = false; + state.nodeFocusedBeforeActivation = _getActiveElement(doc); + onActivate === null || onActivate === void 0 || onActivate(); + var finishActivation = /* @__PURE__ */ function() { + var _ref6 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee() { + return _regenerator().w(function(_context) { + while (1) + switch (_context.n) { + case 0: + if (checkCanFocusTrap) { + updateTabbableNodes(); + } + _context.n = 1; + return addListeners(); + case 1: + trap._setSubtreeIsolation(true); + updateObservedNodes(); + onPostActivate === null || onPostActivate === void 0 || onPostActivate(); + case 2: + return _context.a(2); + } + }, _callee); + })); + return function finishActivation2() { + return _ref6.apply(this, arguments); + }; + }(); + if (checkCanFocusTrap) { + checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation); + return this; + } + finishActivation(); + } catch (error2) { + if (preexistingTrap === activeFocusTraps.getActiveTrap(trapStack) && revertState) { + var _preexistingTrap$_set2; + (_preexistingTrap$_set2 = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set2 === void 0 || _preexistingTrap$_set2.call(preexistingTrap, true); + } + throw error2; + } + return this; + }, + deactivate: function deactivate(deactivateOptions) { + if (!state.active) { + return this; + } + var options = _objectSpread2({ + onDeactivate: config.onDeactivate, + onPostDeactivate: config.onPostDeactivate, + checkCanReturnFocus: config.checkCanReturnFocus + }, deactivateOptions); + clearTimeout(state.delayInitialFocusTimer); + state.delayInitialFocusTimer = void 0; + if (!state.paused) { + trap._setSubtreeIsolation(false); + } + state.alreadySilent.clear(); + removeListeners(); + state.active = false; + state.paused = false; + updateObservedNodes(); + activeFocusTraps.deactivateTrap(trapStack, trap); + var onDeactivate = getOption(options, "onDeactivate"); + var onPostDeactivate = getOption(options, "onPostDeactivate"); + var checkCanReturnFocus = getOption(options, "checkCanReturnFocus"); + var returnFocus = getOption(options, "returnFocus", "returnFocusOnDeactivate"); + onDeactivate === null || onDeactivate === void 0 || onDeactivate(); + var finishDeactivation = function finishDeactivation2() { + delay(function() { + if (returnFocus) { + _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)); + } + onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate(); + }); + }; + if (returnFocus && checkCanReturnFocus) { + checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation); + return this; + } + finishDeactivation(); + return this; + }, + pause: function pause(pauseOptions) { + if (!state.active) { + return this; + } + state.manuallyPaused = true; + return this._setPausedState(true, pauseOptions); + }, + unpause: function unpause(unpauseOptions) { + if (!state.active) { + return this; + } + state.manuallyPaused = false; + if (trapStack[trapStack.length - 1] !== this) { + return this; + } + return this._setPausedState(false, unpauseOptions); + }, + updateContainerElements: function updateContainerElements(containerElements) { + var elementsAsArray = [].concat(containerElements).filter(Boolean); + state.containers = elementsAsArray.map(function(element) { + return typeof element === "string" ? doc.querySelector(element) : element; + }); + if (config.isolateSubtrees) { + collectAdjacentElements(state.containers); + } + if (state.active) { + updateTabbableNodes(); + if (!state.paused) { + trap._setSubtreeIsolation(true); + } + } + updateObservedNodes(); + return this; + } + }; + Object.defineProperties(trap, { + _isManuallyPaused: { + value: function value() { + return state.manuallyPaused; + } + }, + _setPausedState: { + value: function value(paused, options) { + if (state.paused === paused) { + return this; + } + state.paused = paused; + if (paused) { + var onPause = getOption(options, "onPause"); + var onPostPause = getOption(options, "onPostPause"); + onPause === null || onPause === void 0 || onPause(); + removeListeners(); + trap._setSubtreeIsolation(false); + updateObservedNodes(); + onPostPause === null || onPostPause === void 0 || onPostPause(); + } else { + var onUnpause = getOption(options, "onUnpause"); + var onPostUnpause = getOption(options, "onPostUnpause"); + onUnpause === null || onUnpause === void 0 || onUnpause(); + var finishUnpause = /* @__PURE__ */ function() { + var _ref7 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee2() { + return _regenerator().w(function(_context2) { + while (1) + switch (_context2.n) { + case 0: + updateTabbableNodes(); + _context2.n = 1; + return addListeners(); + case 1: + trap._setSubtreeIsolation(true); + updateObservedNodes(); + onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause(); + case 2: + return _context2.a(2); + } + }, _callee2); + })); + return function finishUnpause2() { + return _ref7.apply(this, arguments); + }; + }(); + finishUnpause(); + } + return this; + } + }, + _setSubtreeIsolation: { + value: function value(isEnabled) { + if (config.isolateSubtrees) { + state.adjacentElements.forEach(function(el) { + var _el$getAttribute; + if (isEnabled) { + switch (config.isolateSubtrees) { + case "aria-hidden": + if (el.ariaHidden === "true" || ((_el$getAttribute = el.getAttribute("aria-hidden")) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.toLowerCase()) === "true") { + state.alreadySilent.add(el); + } + el.setAttribute("aria-hidden", "true"); + break; + default: + if (el.inert || el.hasAttribute("inert")) { + state.alreadySilent.add(el); + } + el.setAttribute("inert", true); + break; + } + } else { + if (state.alreadySilent.has(el)) + ; + else { + switch (config.isolateSubtrees) { + case "aria-hidden": + el.removeAttribute("aria-hidden"); + break; + default: + el.removeAttribute("inert"); + break; + } + } + } + }); + } + } + } + }); + trap.updateContainerElements(elements); + return trap; + }; + function src_default2(Alpine25) { + let lastFocused; + let currentFocused; + window.addEventListener("focusin", () => { + lastFocused = currentFocused; + currentFocused = document.activeElement; + }); + Alpine25.magic("focus", (el) => { + let within = el; + return { + __noscroll: false, + __wrapAround: false, + within(el2) { + within = el2; + return this; + }, + withoutScrolling() { + this.__noscroll = true; + return this; + }, + noscroll() { + this.__noscroll = true; + return this; + }, + withWrapAround() { + this.__wrapAround = true; + return this; + }, + wrap() { + return this.withWrapAround(); + }, + focusable(el2) { + return isFocusable(el2); + }, + previouslyFocused() { + return lastFocused; + }, + lastFocused() { + return lastFocused; + }, + focused() { + return currentFocused; + }, + focusables() { + if (Array.isArray(within)) + return within; + return focusable(within, { displayCheck: "none" }); + }, + all() { + return this.focusables(); + }, + isFirst(el2) { + let els2 = this.all(); + return els2[0] && els2[0].isSameNode(el2); + }, + isLast(el2) { + let els2 = this.all(); + return els2.length && els2.slice(-1)[0].isSameNode(el2); + }, + getFirst() { + return this.all()[0]; + }, + getLast() { + return this.all().slice(-1)[0]; + }, + getNext() { + let list = this.all(); + let current = document.activeElement; + if (list.indexOf(current) === -1) + return; + if (this.__wrapAround && list.indexOf(current) === list.length - 1) { + return list[0]; + } + return list[list.indexOf(current) + 1]; + }, + getPrevious() { + let list = this.all(); + let current = document.activeElement; + if (list.indexOf(current) === -1) + return; + if (this.__wrapAround && list.indexOf(current) === 0) { + return list.slice(-1)[0]; + } + return list[list.indexOf(current) - 1]; + }, + first() { + this.focus(this.getFirst()); + }, + last() { + this.focus(this.getLast()); + }, + next() { + this.focus(this.getNext()); + }, + previous() { + this.focus(this.getPrevious()); + }, + prev() { + return this.previous(); + }, + focus(el2) { + if (!el2) + return; + setTimeout(() => { + if (!el2.hasAttribute("tabindex")) + el2.setAttribute("tabindex", "0"); + el2.focus({ preventScroll: this.__noscroll }); + }); + } + }; + }); + Alpine25.directive("trap", Alpine25.skipDuringClone( + (el, { expression, modifiers }, { effect, evaluateLater, cleanup }) => { + let evaluator = evaluateLater(expression); + let oldValue = false; + let options = { + escapeDeactivates: false, + allowOutsideClick: true, + fallbackFocus: () => el + }; + let undoInert = () => { + }; + if (modifiers.includes("noautofocus")) { + options.initialFocus = false; + } else { + let autofocusEl = el.querySelector("[autofocus]"); + if (autofocusEl) + options.initialFocus = autofocusEl; + } + if (modifiers.includes("inert")) { + options.onPostActivate = () => { + Alpine25.nextTick(() => { + undoInert = setInert(el); + }); + }; + } + let trap = createFocusTrap(el, options); + let undoDisableScrolling = () => { + }; + const releaseFocus = () => { + undoInert(); + undoInert = () => { + }; + undoDisableScrolling(); + undoDisableScrolling = () => { + }; + trap.deactivate({ + returnFocus: !modifiers.includes("noreturn") + }); + }; + effect(() => evaluator((value) => { + if (oldValue === value) + return; + if (value && !oldValue) { + if (modifiers.includes("noscroll")) + undoDisableScrolling = disableScrolling(); + setTimeout(() => { + trap.activate(); + }, 15); + } + if (!value && oldValue) { + releaseFocus(); + } + oldValue = !!value; + })); + cleanup(releaseFocus); + }, + (el, { expression, modifiers }, { evaluate: evaluate2 }) => { + if (modifiers.includes("inert") && evaluate2(expression)) + setInert(el); + } + )); + } + function setInert(el) { + let undos = []; + crawlSiblingsUp(el, (sibling) => { + let cache = sibling.hasAttribute("aria-hidden"); + sibling.setAttribute("aria-hidden", "true"); + undos.push(() => cache || sibling.removeAttribute("aria-hidden")); + }); + return () => { + while (undos.length) + undos.pop()(); + }; + } + function crawlSiblingsUp(el, callback) { + if (el.isSameNode(document.body) || !el.parentNode) + return; + Array.from(el.parentNode.children).forEach((sibling) => { + if (sibling.isSameNode(el)) { + crawlSiblingsUp(el.parentNode, callback); + } else { + callback(sibling); + } + }); + } + function disableScrolling() { + let overflow = document.documentElement.style.overflow; + let paddingRight = document.documentElement.style.paddingRight; + let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; + let scrollbarGutter = window.getComputedStyle(document.documentElement).scrollbarGutter; + document.documentElement.style.overflow = "hidden"; + if (scrollbarGutter && scrollbarGutter !== "auto") { + return () => { + document.documentElement.style.overflow = overflow; + }; + } + document.documentElement.style.paddingRight = `${scrollbarWidth}px`; + return () => { + document.documentElement.style.overflow = overflow; + document.documentElement.style.paddingRight = paddingRight; + }; + } + var module_default2 = src_default2; + + // node_modules/@alpinejs/persist/dist/module.esm.js + function src_default3(Alpine25) { + let persist = () => { + let alias; + let storage; + try { + storage = localStorage; + } catch (e) { + console.error(e); + console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable."); + let dummy = /* @__PURE__ */ new Map(); + storage = { + getItem: dummy.get.bind(dummy), + setItem: dummy.set.bind(dummy) + }; + } + return Alpine25.interceptor((initialValue, getter, setter, path, key) => { + let lookup = alias || `_x_${path}`; + let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue; + setter(initial); + Alpine25.effect(() => { + let value = getter(); + storageSet(lookup, value, storage); + setter(value); + }); + return initial; + }, (func) => { + func.as = (key) => { + alias = key; + return func; + }, func.using = (target) => { + storage = target; + return func; + }; + }); + }; + Object.defineProperty(Alpine25, "$persist", { get: () => persist() }); + Alpine25.magic("persist", persist); + Alpine25.persist = (key, { get, set }, storage = localStorage) => { + let initial = storageHas(key, storage) ? storageGet(key, storage) : get(); + set(initial); + Alpine25.effect(() => { + let value = get(); + storageSet(key, value, storage); + set(value); + }); + }; + } + function storageHas(key, storage) { + return storage.getItem(key) !== null; + } + function storageGet(key, storage) { + let value = storage.getItem(key); + if (value === void 0) + return; + return JSON.parse(value); + } + function storageSet(key, value, storage) { + storage.setItem(key, JSON.stringify(value)); + } + var module_default3 = src_default3; + + // node_modules/@alpinejs/intersect/dist/module.esm.js + function src_default4(Alpine25) { + Alpine25.directive("intersect", Alpine25.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { + let evaluate2 = evaluateLater(expression); + let options = { + rootMargin: getRootMargin(modifiers), + threshold: getThreshold(modifiers) + }; + let observer = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting === (value === "leave")) + return; + evaluate2(); + modifiers.includes("once") && observer.disconnect(); + }); + }, options); + observer.observe(el); + cleanup(() => { + observer.disconnect(); + }); + })); + } + function getThreshold(modifiers) { + if (modifiers.includes("full")) + return 0.99; + if (modifiers.includes("half")) + return 0.5; + if (!modifiers.includes("threshold")) + return 0; + let threshold = modifiers[modifiers.indexOf("threshold") + 1]; + if (threshold === "100") + return 1; + if (threshold === "0") + return 0; + return Number(`.${threshold}`); + } + function getLengthValue(rawValue) { + let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/); + return match ? match[1] + (match[2] || "px") : void 0; + } + function getRootMargin(modifiers) { + const key = "margin"; + const fallback2 = "0px 0px 0px 0px"; + const index2 = modifiers.indexOf(key); + if (index2 === -1) + return fallback2; + let values = []; + for (let i = 1; i < 5; i++) { + values.push(getLengthValue(modifiers[index2 + i] || "")); + } + values = values.filter((v) => v !== void 0); + return values.length ? values.join(" ").trim() : fallback2; + } + var module_default4 = src_default4; + + // node_modules/@alpinejs/sort/dist/module.esm.js + function ownKeys2(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) { + symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread22(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + if (i % 2) { + ownKeys2(Object(source), true).forEach(function(key) { + _defineProperty2(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys2(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + return target; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function(obj2) { + return typeof obj2; + }; + } else { + _typeof = function(obj2) { + return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }; + } + return _typeof(obj); + } + function _defineProperty2(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _extends() { + _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + return _extends.apply(this, arguments); + } + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) + return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) + continue; + target[key] = source[key]; + } + return target; + } + function _objectWithoutProperties(source, excluded) { + if (source == null) + return {}; + var target = _objectWithoutPropertiesLoose(source, excluded); + var key, i; + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) + continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) + continue; + target[key] = source[key]; + } + } + return target; + } + var version = "1.15.2"; + function userAgent(pattern) { + if (typeof window !== "undefined" && window.navigator) { + return !!/* @__PURE__ */ navigator.userAgent.match(pattern); + } + } + var IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i); + var Edge = userAgent(/Edge/i); + var FireFox = userAgent(/firefox/i); + var Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i); + var IOS = userAgent(/iP(ad|od|hone)/i); + var ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i); + var captureMode = { + capture: false, + passive: false + }; + function on3(el, event, fn) { + el.addEventListener(event, fn, !IE11OrLess && captureMode); + } + function off(el, event, fn) { + el.removeEventListener(event, fn, !IE11OrLess && captureMode); + } + function matches2(el, selector) { + if (!selector) + return; + selector[0] === ">" && (selector = selector.substring(1)); + if (el) { + try { + if (el.matches) { + return el.matches(selector); + } else if (el.msMatchesSelector) { + return el.msMatchesSelector(selector); + } else if (el.webkitMatchesSelector) { + return el.webkitMatchesSelector(selector); + } + } catch (_) { + return false; + } + } + return false; + } + function getParentOrHost(el) { + return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode; + } + function closest(el, selector, ctx, includeCTX) { + if (el) { + ctx = ctx || document; + do { + if (selector != null && (selector[0] === ">" ? el.parentNode === ctx && matches2(el, selector) : matches2(el, selector)) || includeCTX && el === ctx) { + return el; + } + if (el === ctx) + break; + } while (el = getParentOrHost(el)); + } + return null; + } + var R_SPACE = /\s+/g; + function toggleClass(el, name, state) { + if (el && name) { + if (el.classList) { + el.classList[state ? "add" : "remove"](name); + } else { + var className = (" " + el.className + " ").replace(R_SPACE, " ").replace(" " + name + " ", " "); + el.className = (className + (state ? " " + name : "")).replace(R_SPACE, " "); + } + } + } + function css(el, prop, val) { + var style = el && el.style; + if (style) { + if (val === void 0) { + if (document.defaultView && document.defaultView.getComputedStyle) { + val = document.defaultView.getComputedStyle(el, ""); + } else if (el.currentStyle) { + val = el.currentStyle; + } + return prop === void 0 ? val : val[prop]; + } else { + if (!(prop in style) && prop.indexOf("webkit") === -1) { + prop = "-webkit-" + prop; + } + style[prop] = val + (typeof val === "string" ? "" : "px"); + } + } + } + function matrix(el, selfOnly) { + var appliedTransforms = ""; + if (typeof el === "string") { + appliedTransforms = el; + } else { + do { + var transform = css(el, "transform"); + if (transform && transform !== "none") { + appliedTransforms = transform + " " + appliedTransforms; + } + } while (!selfOnly && (el = el.parentNode)); + } + var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; + return matrixFn && new matrixFn(appliedTransforms); + } + function find2(ctx, tagName, iterator) { + if (ctx) { + var list = ctx.getElementsByTagName(tagName), i = 0, n = list.length; + if (iterator) { + for (; i < n; i++) { + iterator(list[i], i); + } + } + return list; + } + return []; + } + function getWindowScrollingElement() { + var scrollingElement = document.scrollingElement; + if (scrollingElement) { + return scrollingElement; + } else { + return document.documentElement; + } + } + function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) { + if (!el.getBoundingClientRect && el !== window) + return; + var elRect, top, left, bottom, right, height, width; + if (el !== window && el.parentNode && el !== getWindowScrollingElement()) { + elRect = el.getBoundingClientRect(); + top = elRect.top; + left = elRect.left; + bottom = elRect.bottom; + right = elRect.right; + height = elRect.height; + width = elRect.width; + } else { + top = 0; + left = 0; + bottom = window.innerHeight; + right = window.innerWidth; + height = window.innerHeight; + width = window.innerWidth; + } + if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) { + container = container || el.parentNode; + if (!IE11OrLess) { + do { + if (container && container.getBoundingClientRect && (css(container, "transform") !== "none" || relativeToNonStaticParent && css(container, "position") !== "static")) { + var containerRect = container.getBoundingClientRect(); + top -= containerRect.top + parseInt(css(container, "border-top-width")); + left -= containerRect.left + parseInt(css(container, "border-left-width")); + bottom = top + elRect.height; + right = left + elRect.width; + break; + } + } while (container = container.parentNode); + } + } + if (undoScale && el !== window) { + var elMatrix = matrix(container || el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d; + if (elMatrix) { + top /= scaleY; + left /= scaleX; + width /= scaleX; + height /= scaleY; + bottom = top + height; + right = left + width; + } + } + return { + top, + left, + bottom, + right, + width, + height + }; + } + function isScrolledPast(el, elSide, parentSide) { + var parent = getParentAutoScrollElement(el, true), elSideVal = getRect(el)[elSide]; + while (parent) { + var parentSideVal = getRect(parent)[parentSide], visible = void 0; + if (parentSide === "top" || parentSide === "left") { + visible = elSideVal >= parentSideVal; + } else { + visible = elSideVal <= parentSideVal; + } + if (!visible) + return parent; + if (parent === getWindowScrollingElement()) + break; + parent = getParentAutoScrollElement(parent, false); + } + return false; + } + function getChild(el, childNum, options, includeDragEl) { + var currentChild = 0, i = 0, children = el.children; + while (i < children.length) { + if (children[i].style.display !== "none" && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) { + if (currentChild === childNum) { + return children[i]; + } + currentChild++; + } + i++; + } + return null; + } + function lastChild(el, selector) { + var last = el.lastElementChild; + while (last && (last === Sortable.ghost || css(last, "display") === "none" || selector && !matches2(last, selector))) { + last = last.previousElementSibling; + } + return last || null; + } + function index(el, selector) { + var index2 = 0; + if (!el || !el.parentNode) { + return -1; + } + while (el = el.previousElementSibling) { + if (el.nodeName.toUpperCase() !== "TEMPLATE" && el !== Sortable.clone && (!selector || matches2(el, selector))) { + index2++; + } + } + return index2; + } + function getRelativeScrollOffset(el) { + var offsetLeft = 0, offsetTop = 0, winScroller = getWindowScrollingElement(); + if (el) { + do { + var elMatrix = matrix(el), scaleX = elMatrix.a, scaleY = elMatrix.d; + offsetLeft += el.scrollLeft * scaleX; + offsetTop += el.scrollTop * scaleY; + } while (el !== winScroller && (el = el.parentNode)); + } + return [offsetLeft, offsetTop]; + } + function indexOfObject(arr, obj) { + for (var i in arr) { + if (!arr.hasOwnProperty(i)) + continue; + for (var key in obj) { + if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) + return Number(i); + } + } + return -1; + } + function getParentAutoScrollElement(el, includeSelf) { + if (!el || !el.getBoundingClientRect) + return getWindowScrollingElement(); + var elem = el; + var gotSelf = false; + do { + if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) { + var elemCSS = css(elem); + if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == "auto" || elemCSS.overflowX == "scroll") || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == "auto" || elemCSS.overflowY == "scroll")) { + if (!elem.getBoundingClientRect || elem === document.body) + return getWindowScrollingElement(); + if (gotSelf || includeSelf) + return elem; + gotSelf = true; + } + } + } while (elem = elem.parentNode); + return getWindowScrollingElement(); + } + function extend(dst, src) { + if (dst && src) { + for (var key in src) { + if (src.hasOwnProperty(key)) { + dst[key] = src[key]; + } + } + } + return dst; + } + function isRectEqual(rect1, rect2) { + return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width); + } + var _throttleTimeout; + function throttle(callback, ms) { + return function() { + if (!_throttleTimeout) { + var args = arguments, _this = this; + if (args.length === 1) { + callback.call(_this, args[0]); + } else { + callback.apply(_this, args); + } + _throttleTimeout = setTimeout(function() { + _throttleTimeout = void 0; + }, ms); + } + }; + } + function cancelThrottle() { + clearTimeout(_throttleTimeout); + _throttleTimeout = void 0; + } + function scrollBy(el, x, y) { + el.scrollLeft += x; + el.scrollTop += y; + } + function clone(el) { + var Polymer = window.Polymer; + var $ = window.jQuery || window.Zepto; + if (Polymer && Polymer.dom) { + return Polymer.dom(el).cloneNode(true); + } else if ($) { + return $(el).clone(true)[0]; + } else { + return el.cloneNode(true); + } + } + function getChildContainingRectFromElement(container, options, ghostEl2) { + var rect = {}; + Array.from(container.children).forEach(function(child) { + var _rect$left, _rect$top, _rect$right, _rect$bottom; + if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl2) + return; + var childRect = getRect(child); + rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left); + rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top); + rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right); + rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom); + }); + rect.width = rect.right - rect.left; + rect.height = rect.bottom - rect.top; + rect.x = rect.left; + rect.y = rect.top; + return rect; + } + var expando = "Sortable" + new Date().getTime(); + function AnimationStateManager() { + var animationStates = [], animationCallbackId; + return { + captureAnimationState: function captureAnimationState() { + animationStates = []; + if (!this.options.animation) + return; + var children = [].slice.call(this.el.children); + children.forEach(function(child) { + if (css(child, "display") === "none" || child === Sortable.ghost) + return; + animationStates.push({ + target: child, + rect: getRect(child) + }); + var fromRect = _objectSpread22({}, animationStates[animationStates.length - 1].rect); + if (child.thisAnimationDuration) { + var childMatrix = matrix(child, true); + if (childMatrix) { + fromRect.top -= childMatrix.f; + fromRect.left -= childMatrix.e; + } + } + child.fromRect = fromRect; + }); + }, + addAnimationState: function addAnimationState(state) { + animationStates.push(state); + }, + removeAnimationState: function removeAnimationState(target) { + animationStates.splice(indexOfObject(animationStates, { + target + }), 1); + }, + animateAll: function animateAll(callback) { + var _this = this; + if (!this.options.animation) { + clearTimeout(animationCallbackId); + if (typeof callback === "function") + callback(); + return; + } + var animating = false, animationTime = 0; + animationStates.forEach(function(state) { + var time = 0, target = state.target, fromRect = target.fromRect, toRect = getRect(target), prevFromRect = target.prevFromRect, prevToRect = target.prevToRect, animatingRect = state.rect, targetMatrix = matrix(target, true); + if (targetMatrix) { + toRect.top -= targetMatrix.f; + toRect.left -= targetMatrix.e; + } + target.toRect = toRect; + if (target.thisAnimationDuration) { + if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) { + time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options); + } + } + if (!isRectEqual(toRect, fromRect)) { + target.prevFromRect = fromRect; + target.prevToRect = toRect; + if (!time) { + time = _this.options.animation; + } + _this.animate(target, animatingRect, toRect, time); + } + if (time) { + animating = true; + animationTime = Math.max(animationTime, time); + clearTimeout(target.animationResetTimer); + target.animationResetTimer = setTimeout(function() { + target.animationTime = 0; + target.prevFromRect = null; + target.fromRect = null; + target.prevToRect = null; + target.thisAnimationDuration = null; + }, time); + target.thisAnimationDuration = time; + } + }); + clearTimeout(animationCallbackId); + if (!animating) { + if (typeof callback === "function") + callback(); + } else { + animationCallbackId = setTimeout(function() { + if (typeof callback === "function") + callback(); + }, animationTime); + } + animationStates = []; + }, + animate: function animate(target, currentRect, toRect, duration) { + if (duration) { + css(target, "transition", ""); + css(target, "transform", ""); + var elMatrix = matrix(this.el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d, translateX = (currentRect.left - toRect.left) / (scaleX || 1), translateY = (currentRect.top - toRect.top) / (scaleY || 1); + target.animatingX = !!translateX; + target.animatingY = !!translateY; + css(target, "transform", "translate3d(" + translateX + "px," + translateY + "px,0)"); + this.forRepaintDummy = repaint(target); + css(target, "transition", "transform " + duration + "ms" + (this.options.easing ? " " + this.options.easing : "")); + css(target, "transform", "translate3d(0,0,0)"); + typeof target.animated === "number" && clearTimeout(target.animated); + target.animated = setTimeout(function() { + css(target, "transition", ""); + css(target, "transform", ""); + target.animated = false; + target.animatingX = false; + target.animatingY = false; + }, duration); + } + } + }; + } + function repaint(target) { + return target.offsetWidth; + } + function calculateRealTime(animatingRect, fromRect, toRect, options) { + return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation; + } + var plugins = []; + var defaults = { + initializeByDefault: true + }; + var PluginManager = { + mount: function mount(plugin) { + for (var option2 in defaults) { + if (defaults.hasOwnProperty(option2) && !(option2 in plugin)) { + plugin[option2] = defaults[option2]; + } + } + plugins.forEach(function(p) { + if (p.pluginName === plugin.pluginName) { + throw "Sortable: Cannot mount plugin ".concat(plugin.pluginName, " more than once"); + } + }); + plugins.push(plugin); + }, + pluginEvent: function pluginEvent(eventName, sortable, evt) { + var _this = this; + this.eventCanceled = false; + evt.cancel = function() { + _this.eventCanceled = true; + }; + var eventNameGlobal = eventName + "Global"; + plugins.forEach(function(plugin) { + if (!sortable[plugin.pluginName]) + return; + if (sortable[plugin.pluginName][eventNameGlobal]) { + sortable[plugin.pluginName][eventNameGlobal](_objectSpread22({ + sortable + }, evt)); + } + if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) { + sortable[plugin.pluginName][eventName](_objectSpread22({ + sortable + }, evt)); + } + }); + }, + initializePlugins: function initializePlugins(sortable, el, defaults2, options) { + plugins.forEach(function(plugin) { + var pluginName = plugin.pluginName; + if (!sortable.options[pluginName] && !plugin.initializeByDefault) + return; + var initialized = new plugin(sortable, el, sortable.options); + initialized.sortable = sortable; + initialized.options = sortable.options; + sortable[pluginName] = initialized; + _extends(defaults2, initialized.defaults); + }); + for (var option2 in sortable.options) { + if (!sortable.options.hasOwnProperty(option2)) + continue; + var modified = this.modifyOption(sortable, option2, sortable.options[option2]); + if (typeof modified !== "undefined") { + sortable.options[option2] = modified; + } + } + }, + getEventProperties: function getEventProperties(name, sortable) { + var eventProperties = {}; + plugins.forEach(function(plugin) { + if (typeof plugin.eventProperties !== "function") + return; + _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name)); + }); + return eventProperties; + }, + modifyOption: function modifyOption(sortable, name, value) { + var modifiedValue; + plugins.forEach(function(plugin) { + if (!sortable[plugin.pluginName]) + return; + if (plugin.optionListeners && typeof plugin.optionListeners[name] === "function") { + modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value); + } + }); + return modifiedValue; + } + }; + function dispatchEvent2(_ref) { + var sortable = _ref.sortable, rootEl2 = _ref.rootEl, name = _ref.name, targetEl = _ref.targetEl, cloneEl2 = _ref.cloneEl, toEl = _ref.toEl, fromEl = _ref.fromEl, oldIndex2 = _ref.oldIndex, newIndex2 = _ref.newIndex, oldDraggableIndex2 = _ref.oldDraggableIndex, newDraggableIndex2 = _ref.newDraggableIndex, originalEvent = _ref.originalEvent, putSortable2 = _ref.putSortable, extraEventProperties = _ref.extraEventProperties; + sortable = sortable || rootEl2 && rootEl2[expando]; + if (!sortable) + return; + var evt, options = sortable.options, onName = "on" + name.charAt(0).toUpperCase() + name.substr(1); + if (window.CustomEvent && !IE11OrLess && !Edge) { + evt = new CustomEvent(name, { + bubbles: true, + cancelable: true + }); + } else { + evt = document.createEvent("Event"); + evt.initEvent(name, true, true); + } + evt.to = toEl || rootEl2; + evt.from = fromEl || rootEl2; + evt.item = targetEl || rootEl2; + evt.clone = cloneEl2; + evt.oldIndex = oldIndex2; + evt.newIndex = newIndex2; + evt.oldDraggableIndex = oldDraggableIndex2; + evt.newDraggableIndex = newDraggableIndex2; + evt.originalEvent = originalEvent; + evt.pullMode = putSortable2 ? putSortable2.lastPutMode : void 0; + var allEventProperties = _objectSpread22(_objectSpread22({}, extraEventProperties), PluginManager.getEventProperties(name, sortable)); + for (var option2 in allEventProperties) { + evt[option2] = allEventProperties[option2]; + } + if (rootEl2) { + rootEl2.dispatchEvent(evt); + } + if (options[onName]) { + options[onName].call(sortable, evt); + } + } + var _excluded = ["evt"]; + var pluginEvent2 = function pluginEvent3(eventName, sortable) { + var _ref = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, originalEvent = _ref.evt, data = _objectWithoutProperties(_ref, _excluded); + PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread22({ + dragEl, + parentEl, + ghostEl, + rootEl, + nextEl, + lastDownEl, + cloneEl, + cloneHidden, + dragStarted: moved, + putSortable, + activeSortable: Sortable.active, + originalEvent, + oldIndex, + oldDraggableIndex, + newIndex, + newDraggableIndex, + hideGhostForTarget: _hideGhostForTarget, + unhideGhostForTarget: _unhideGhostForTarget, + cloneNowHidden: function cloneNowHidden() { + cloneHidden = true; + }, + cloneNowShown: function cloneNowShown() { + cloneHidden = false; + }, + dispatchSortableEvent: function dispatchSortableEvent(name) { + _dispatchEvent({ + sortable, + name, + originalEvent + }); + } + }, data)); + }; + function _dispatchEvent(info) { + dispatchEvent2(_objectSpread22({ + putSortable, + cloneEl, + targetEl: dragEl, + rootEl, + oldIndex, + oldDraggableIndex, + newIndex, + newDraggableIndex + }, info)); + } + var dragEl; + var parentEl; + var ghostEl; + var rootEl; + var nextEl; + var lastDownEl; + var cloneEl; + var cloneHidden; + var oldIndex; + var newIndex; + var oldDraggableIndex; + var newDraggableIndex; + var activeGroup; + var putSortable; + var awaitingDragStarted = false; + var ignoreNextClick = false; + var sortables = []; + var tapEvt; + var touchEvt; + var lastDx; + var lastDy; + var tapDistanceLeft; + var tapDistanceTop; + var moved; + var lastTarget; + var lastDirection; + var pastFirstInvertThresh = false; + var isCircumstantialInvert = false; + var targetMoveDistance; + var ghostRelativeParent; + var ghostRelativeParentInitialScroll = []; + var _silent = false; + var savedInputChecked = []; + var documentExists = typeof document !== "undefined"; + var PositionGhostAbsolutely = IOS; + var CSSFloatProperty = Edge || IE11OrLess ? "cssFloat" : "float"; + var supportDraggable = documentExists && !ChromeForAndroid && !IOS && "draggable" in document.createElement("div"); + var supportCssPointerEvents = function() { + if (!documentExists) + return; + if (IE11OrLess) { + return false; + } + var el = document.createElement("x"); + el.style.cssText = "pointer-events:auto"; + return el.style.pointerEvents === "auto"; + }(); + var _detectDirection = function _detectDirection2(el, options) { + var elCSS = css(el), elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth), child1 = getChild(el, 0, options), child2 = getChild(el, 1, options), firstChildCSS = child1 && css(child1), secondChildCSS = child2 && css(child2), firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width, secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width; + if (elCSS.display === "flex") { + return elCSS.flexDirection === "column" || elCSS.flexDirection === "column-reverse" ? "vertical" : "horizontal"; + } + if (elCSS.display === "grid") { + return elCSS.gridTemplateColumns.split(" ").length <= 1 ? "vertical" : "horizontal"; + } + if (child1 && firstChildCSS["float"] && firstChildCSS["float"] !== "none") { + var touchingSideChild2 = firstChildCSS["float"] === "left" ? "left" : "right"; + return child2 && (secondChildCSS.clear === "both" || secondChildCSS.clear === touchingSideChild2) ? "vertical" : "horizontal"; + } + return child1 && (firstChildCSS.display === "block" || firstChildCSS.display === "flex" || firstChildCSS.display === "table" || firstChildCSS.display === "grid" || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === "none" || child2 && elCSS[CSSFloatProperty] === "none" && firstChildWidth + secondChildWidth > elWidth) ? "vertical" : "horizontal"; + }; + var _dragElInRowColumn = function _dragElInRowColumn2(dragRect, targetRect, vertical) { + var dragElS1Opp = vertical ? dragRect.left : dragRect.top, dragElS2Opp = vertical ? dragRect.right : dragRect.bottom, dragElOppLength = vertical ? dragRect.width : dragRect.height, targetS1Opp = vertical ? targetRect.left : targetRect.top, targetS2Opp = vertical ? targetRect.right : targetRect.bottom, targetOppLength = vertical ? targetRect.width : targetRect.height; + return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2; + }; + var _detectNearestEmptySortable = function _detectNearestEmptySortable2(x, y) { + var ret; + sortables.some(function(sortable) { + var threshold = sortable[expando].options.emptyInsertThreshold; + if (!threshold || lastChild(sortable)) + return; + var rect = getRect(sortable), insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold, insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold; + if (insideHorizontally && insideVertically) { + return ret = sortable; + } + }); + return ret; + }; + var _prepareGroup = function _prepareGroup2(options) { + function toFn(value, pull) { + return function(to, from, dragEl2, evt) { + var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name; + if (value == null && (pull || sameGroup)) { + return true; + } else if (value == null || value === false) { + return false; + } else if (pull && value === "clone") { + return value; + } else if (typeof value === "function") { + return toFn(value(to, from, dragEl2, evt), pull)(to, from, dragEl2, evt); + } else { + var otherGroup = (pull ? to : from).options.group.name; + return value === true || typeof value === "string" && value === otherGroup || value.join && value.indexOf(otherGroup) > -1; + } + }; + } + var group = {}; + var originalGroup = options.group; + if (!originalGroup || _typeof(originalGroup) != "object") { + originalGroup = { + name: originalGroup + }; + } + group.name = originalGroup.name; + group.checkPull = toFn(originalGroup.pull, true); + group.checkPut = toFn(originalGroup.put); + group.revertClone = originalGroup.revertClone; + options.group = group; + }; + var _hideGhostForTarget = function _hideGhostForTarget2() { + if (!supportCssPointerEvents && ghostEl) { + css(ghostEl, "display", "none"); + } + }; + var _unhideGhostForTarget = function _unhideGhostForTarget2() { + if (!supportCssPointerEvents && ghostEl) { + css(ghostEl, "display", ""); + } + }; + if (documentExists && !ChromeForAndroid) { + document.addEventListener("click", function(evt) { + if (ignoreNextClick) { + evt.preventDefault(); + evt.stopPropagation && evt.stopPropagation(); + evt.stopImmediatePropagation && evt.stopImmediatePropagation(); + ignoreNextClick = false; + return false; + } + }, true); + } + var nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent2(evt) { + if (dragEl) { + evt = evt.touches ? evt.touches[0] : evt; + var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY); + if (nearest) { + var event = {}; + for (var i in evt) { + if (evt.hasOwnProperty(i)) { + event[i] = evt[i]; + } + } + event.target = event.rootEl = nearest; + event.preventDefault = void 0; + event.stopPropagation = void 0; + nearest[expando]._onDragOver(event); + } + } + }; + var _checkOutsideTargetEl = function _checkOutsideTargetEl2(evt) { + if (dragEl) { + dragEl.parentNode[expando]._isOutsideThisEl(evt.target); + } + }; + function Sortable(el, options) { + if (!(el && el.nodeType && el.nodeType === 1)) { + throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(el)); + } + this.el = el; + this.options = options = _extends({}, options); + el[expando] = this; + var defaults2 = { + group: null, + sort: true, + disabled: false, + store: null, + handle: null, + draggable: /^[uo]l$/i.test(el.nodeName) ? ">li" : ">*", + swapThreshold: 1, + invertSwap: false, + invertedSwapThreshold: null, + removeCloneOnHide: true, + direction: function direction() { + return _detectDirection(el, this.options); + }, + ghostClass: "sortable-ghost", + chosenClass: "sortable-chosen", + dragClass: "sortable-drag", + ignore: "a, img", + filter: null, + preventOnFilter: true, + animation: 0, + easing: null, + setData: function setData(dataTransfer, dragEl2) { + dataTransfer.setData("Text", dragEl2.textContent); + }, + dropBubble: false, + dragoverBubble: false, + dataIdAttr: "data-id", + delay: 0, + delayOnTouchOnly: false, + touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, + forceFallback: false, + fallbackClass: "sortable-fallback", + fallbackOnBody: false, + fallbackTolerance: 0, + fallbackOffset: { + x: 0, + y: 0 + }, + supportPointer: Sortable.supportPointer !== false && "PointerEvent" in window && !Safari, + emptyInsertThreshold: 5 + }; + PluginManager.initializePlugins(this, el, defaults2); + for (var name in defaults2) { + !(name in options) && (options[name] = defaults2[name]); + } + _prepareGroup(options); + for (var fn in this) { + if (fn.charAt(0) === "_" && typeof this[fn] === "function") { + this[fn] = this[fn].bind(this); + } + } + this.nativeDraggable = options.forceFallback ? false : supportDraggable; + if (this.nativeDraggable) { + this.options.touchStartThreshold = 1; + } + if (options.supportPointer) { + on3(el, "pointerdown", this._onTapStart); + } else { + on3(el, "mousedown", this._onTapStart); + on3(el, "touchstart", this._onTapStart); + } + if (this.nativeDraggable) { + on3(el, "dragover", this); + on3(el, "dragenter", this); + } + sortables.push(this.el); + options.store && options.store.get && this.sort(options.store.get(this) || []); + _extends(this, AnimationStateManager()); + } + Sortable.prototype = { + constructor: Sortable, + _isOutsideThisEl: function _isOutsideThisEl(target) { + if (!this.el.contains(target) && target !== this.el) { + lastTarget = null; + } + }, + _getDirection: function _getDirection(evt, target) { + return typeof this.options.direction === "function" ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction; + }, + _onTapStart: function _onTapStart(evt) { + if (!evt.cancelable) + return; + var _this = this, el = this.el, options = this.options, preventOnFilter = options.preventOnFilter, type = evt.type, touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === "touch" && evt, target = (touch || evt).target, originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target, filter = options.filter; + _saveInputCheckedState(el); + if (dragEl) { + return; + } + if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) { + return; + } + if (originalTarget.isContentEditable) { + return; + } + if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === "SELECT") { + return; + } + target = closest(target, options.draggable, el, false); + if (target && target.animated) { + return; + } + if (lastDownEl === target) { + return; + } + oldIndex = index(target); + oldDraggableIndex = index(target, options.draggable); + if (typeof filter === "function") { + if (filter.call(this, evt, target, this)) { + _dispatchEvent({ + sortable: _this, + rootEl: originalTarget, + name: "filter", + targetEl: target, + toEl: el, + fromEl: el + }); + pluginEvent2("filter", _this, { + evt + }); + preventOnFilter && evt.cancelable && evt.preventDefault(); + return; + } + } else if (filter) { + filter = filter.split(",").some(function(criteria) { + criteria = closest(originalTarget, criteria.trim(), el, false); + if (criteria) { + _dispatchEvent({ + sortable: _this, + rootEl: criteria, + name: "filter", + targetEl: target, + fromEl: el, + toEl: el + }); + pluginEvent2("filter", _this, { + evt + }); + return true; + } + }); + if (filter) { + preventOnFilter && evt.cancelable && evt.preventDefault(); + return; + } + } + if (options.handle && !closest(originalTarget, options.handle, el, false)) { + return; + } + this._prepareDragStart(evt, touch, target); + }, + _prepareDragStart: function _prepareDragStart(evt, touch, target) { + var _this = this, el = _this.el, options = _this.options, ownerDocument = el.ownerDocument, dragStartFn; + if (target && !dragEl && target.parentNode === el) { + var dragRect = getRect(target); + rootEl = el; + dragEl = target; + parentEl = dragEl.parentNode; + nextEl = dragEl.nextSibling; + lastDownEl = target; + activeGroup = options.group; + Sortable.dragged = dragEl; + tapEvt = { + target: dragEl, + clientX: (touch || evt).clientX, + clientY: (touch || evt).clientY + }; + tapDistanceLeft = tapEvt.clientX - dragRect.left; + tapDistanceTop = tapEvt.clientY - dragRect.top; + this._lastX = (touch || evt).clientX; + this._lastY = (touch || evt).clientY; + dragEl.style["will-change"] = "all"; + dragStartFn = function dragStartFn2() { + pluginEvent2("delayEnded", _this, { + evt + }); + if (Sortable.eventCanceled) { + _this._onDrop(); + return; + } + _this._disableDelayedDragEvents(); + if (!FireFox && _this.nativeDraggable) { + dragEl.draggable = true; + } + _this._triggerDragStart(evt, touch); + _dispatchEvent({ + sortable: _this, + name: "choose", + originalEvent: evt + }); + toggleClass(dragEl, options.chosenClass, true); + }; + options.ignore.split(",").forEach(function(criteria) { + find2(dragEl, criteria.trim(), _disableDraggable); + }); + on3(ownerDocument, "dragover", nearestEmptyInsertDetectEvent); + on3(ownerDocument, "mousemove", nearestEmptyInsertDetectEvent); + on3(ownerDocument, "touchmove", nearestEmptyInsertDetectEvent); + on3(ownerDocument, "mouseup", _this._onDrop); + on3(ownerDocument, "touchend", _this._onDrop); + on3(ownerDocument, "touchcancel", _this._onDrop); + if (FireFox && this.nativeDraggable) { + this.options.touchStartThreshold = 4; + dragEl.draggable = true; + } + pluginEvent2("delayStart", this, { + evt + }); + if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) { + if (Sortable.eventCanceled) { + this._onDrop(); + return; + } + on3(ownerDocument, "mouseup", _this._disableDelayedDrag); + on3(ownerDocument, "touchend", _this._disableDelayedDrag); + on3(ownerDocument, "touchcancel", _this._disableDelayedDrag); + on3(ownerDocument, "mousemove", _this._delayedDragTouchMoveHandler); + on3(ownerDocument, "touchmove", _this._delayedDragTouchMoveHandler); + options.supportPointer && on3(ownerDocument, "pointermove", _this._delayedDragTouchMoveHandler); + _this._dragStartTimer = setTimeout(dragStartFn, options.delay); + } else { + dragStartFn(); + } + } + }, + _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(e) { + var touch = e.touches ? e.touches[0] : e; + if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) { + this._disableDelayedDrag(); + } + }, + _disableDelayedDrag: function _disableDelayedDrag() { + dragEl && _disableDraggable(dragEl); + clearTimeout(this._dragStartTimer); + this._disableDelayedDragEvents(); + }, + _disableDelayedDragEvents: function _disableDelayedDragEvents() { + var ownerDocument = this.el.ownerDocument; + off(ownerDocument, "mouseup", this._disableDelayedDrag); + off(ownerDocument, "touchend", this._disableDelayedDrag); + off(ownerDocument, "touchcancel", this._disableDelayedDrag); + off(ownerDocument, "mousemove", this._delayedDragTouchMoveHandler); + off(ownerDocument, "touchmove", this._delayedDragTouchMoveHandler); + off(ownerDocument, "pointermove", this._delayedDragTouchMoveHandler); + }, + _triggerDragStart: function _triggerDragStart(evt, touch) { + touch = touch || evt.pointerType == "touch" && evt; + if (!this.nativeDraggable || touch) { + if (this.options.supportPointer) { + on3(document, "pointermove", this._onTouchMove); + } else if (touch) { + on3(document, "touchmove", this._onTouchMove); + } else { + on3(document, "mousemove", this._onTouchMove); + } + } else { + on3(dragEl, "dragend", this); + on3(rootEl, "dragstart", this._onDragStart); + } + try { + if (document.selection) { + _nextTick(function() { + document.selection.empty(); + }); + } else { + window.getSelection().removeAllRanges(); + } + } catch (err) { + } + }, + _dragStarted: function _dragStarted(fallback2, evt) { + awaitingDragStarted = false; + if (rootEl && dragEl) { + pluginEvent2("dragStarted", this, { + evt + }); + if (this.nativeDraggable) { + on3(document, "dragover", _checkOutsideTargetEl); + } + var options = this.options; + !fallback2 && toggleClass(dragEl, options.dragClass, false); + toggleClass(dragEl, options.ghostClass, true); + Sortable.active = this; + fallback2 && this._appendGhost(); + _dispatchEvent({ + sortable: this, + name: "start", + originalEvent: evt + }); + } else { + this._nulling(); + } + }, + _emulateDragOver: function _emulateDragOver() { + if (touchEvt) { + this._lastX = touchEvt.clientX; + this._lastY = touchEvt.clientY; + _hideGhostForTarget(); + var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY); + var parent = target; + while (target && target.shadowRoot) { + target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY); + if (target === parent) + break; + parent = target; + } + dragEl.parentNode[expando]._isOutsideThisEl(target); + if (parent) { + do { + if (parent[expando]) { + var inserted = void 0; + inserted = parent[expando]._onDragOver({ + clientX: touchEvt.clientX, + clientY: touchEvt.clientY, + target, + rootEl: parent + }); + if (inserted && !this.options.dragoverBubble) { + break; + } + } + target = parent; + } while (parent = parent.parentNode); + } + _unhideGhostForTarget(); + } + }, + _onTouchMove: function _onTouchMove(evt) { + if (tapEvt) { + var options = this.options, fallbackTolerance = options.fallbackTolerance, fallbackOffset = options.fallbackOffset, touch = evt.touches ? evt.touches[0] : evt, ghostMatrix = ghostEl && matrix(ghostEl, true), scaleX = ghostEl && ghostMatrix && ghostMatrix.a, scaleY = ghostEl && ghostMatrix && ghostMatrix.d, relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent), dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1), dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); + if (!Sortable.active && !awaitingDragStarted) { + if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) { + return; + } + this._onDragStart(evt, true); + } + if (ghostEl) { + if (ghostMatrix) { + ghostMatrix.e += dx - (lastDx || 0); + ghostMatrix.f += dy - (lastDy || 0); + } else { + ghostMatrix = { + a: 1, + b: 0, + c: 0, + d: 1, + e: dx, + f: dy + }; + } + var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")"); + css(ghostEl, "webkitTransform", cssMatrix); + css(ghostEl, "mozTransform", cssMatrix); + css(ghostEl, "msTransform", cssMatrix); + css(ghostEl, "transform", cssMatrix); + lastDx = dx; + lastDy = dy; + touchEvt = touch; + } + evt.cancelable && evt.preventDefault(); + } + }, + _appendGhost: function _appendGhost() { + if (!ghostEl) { + var container = this.options.fallbackOnBody ? document.body : rootEl, rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container), options = this.options; + if (PositionGhostAbsolutely) { + ghostRelativeParent = container; + while (css(ghostRelativeParent, "position") === "static" && css(ghostRelativeParent, "transform") === "none" && ghostRelativeParent !== document) { + ghostRelativeParent = ghostRelativeParent.parentNode; + } + if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) { + if (ghostRelativeParent === document) + ghostRelativeParent = getWindowScrollingElement(); + rect.top += ghostRelativeParent.scrollTop; + rect.left += ghostRelativeParent.scrollLeft; + } else { + ghostRelativeParent = getWindowScrollingElement(); + } + ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent); + } + ghostEl = dragEl.cloneNode(true); + toggleClass(ghostEl, options.ghostClass, false); + toggleClass(ghostEl, options.fallbackClass, true); + toggleClass(ghostEl, options.dragClass, true); + css(ghostEl, "transition", ""); + css(ghostEl, "transform", ""); + css(ghostEl, "box-sizing", "border-box"); + css(ghostEl, "margin", 0); + css(ghostEl, "top", rect.top); + css(ghostEl, "left", rect.left); + css(ghostEl, "width", rect.width); + css(ghostEl, "height", rect.height); + css(ghostEl, "opacity", "0.8"); + css(ghostEl, "position", PositionGhostAbsolutely ? "absolute" : "fixed"); + css(ghostEl, "zIndex", "100000"); + css(ghostEl, "pointerEvents", "none"); + Sortable.ghost = ghostEl; + container.appendChild(ghostEl); + css(ghostEl, "transform-origin", tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + "% " + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + "%"); + } + }, + _onDragStart: function _onDragStart(evt, fallback2) { + var _this = this; + var dataTransfer = evt.dataTransfer; + var options = _this.options; + pluginEvent2("dragStart", this, { + evt + }); + if (Sortable.eventCanceled) { + this._onDrop(); + return; + } + pluginEvent2("setupClone", this); + if (!Sortable.eventCanceled) { + cloneEl = clone(dragEl); + cloneEl.removeAttribute("id"); + cloneEl.draggable = false; + cloneEl.style["will-change"] = ""; + this._hideClone(); + toggleClass(cloneEl, this.options.chosenClass, false); + Sortable.clone = cloneEl; + } + _this.cloneId = _nextTick(function() { + pluginEvent2("clone", _this); + if (Sortable.eventCanceled) + return; + if (!_this.options.removeCloneOnHide) { + rootEl.insertBefore(cloneEl, dragEl); + } + _this._hideClone(); + _dispatchEvent({ + sortable: _this, + name: "clone" + }); + }); + !fallback2 && toggleClass(dragEl, options.dragClass, true); + if (fallback2) { + ignoreNextClick = true; + _this._loopId = setInterval(_this._emulateDragOver, 50); + } else { + off(document, "mouseup", _this._onDrop); + off(document, "touchend", _this._onDrop); + off(document, "touchcancel", _this._onDrop); + if (dataTransfer) { + dataTransfer.effectAllowed = "move"; + options.setData && options.setData.call(_this, dataTransfer, dragEl); + } + on3(document, "drop", _this); + css(dragEl, "transform", "translateZ(0)"); + } + awaitingDragStarted = true; + _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback2, evt)); + on3(document, "selectstart", _this); + moved = true; + if (Safari) { + css(document.body, "user-select", "none"); + } + }, + _onDragOver: function _onDragOver(evt) { + var el = this.el, target = evt.target, dragRect, targetRect, revert, options = this.options, group = options.group, activeSortable = Sortable.active, isOwner = activeGroup === group, canSort = options.sort, fromSortable = putSortable || activeSortable, vertical, _this = this, completedFired = false; + if (_silent) + return; + function dragOverEvent(name, extra) { + pluginEvent2(name, _this, _objectSpread22({ + evt, + isOwner, + axis: vertical ? "vertical" : "horizontal", + revert, + dragRect, + targetRect, + canSort, + fromSortable, + target, + completed, + onMove: function onMove(target2, after2) { + return _onMove(rootEl, el, dragEl, dragRect, target2, getRect(target2), evt, after2); + }, + changed + }, extra)); + } + function capture() { + dragOverEvent("dragOverAnimationCapture"); + _this.captureAnimationState(); + if (_this !== fromSortable) { + fromSortable.captureAnimationState(); + } + } + function completed(insertion) { + dragOverEvent("dragOverCompleted", { + insertion + }); + if (insertion) { + if (isOwner) { + activeSortable._hideClone(); + } else { + activeSortable._showClone(_this); + } + if (_this !== fromSortable) { + toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false); + toggleClass(dragEl, options.ghostClass, true); + } + if (putSortable !== _this && _this !== Sortable.active) { + putSortable = _this; + } else if (_this === Sortable.active && putSortable) { + putSortable = null; + } + if (fromSortable === _this) { + _this._ignoreWhileAnimating = target; + } + _this.animateAll(function() { + dragOverEvent("dragOverAnimationComplete"); + _this._ignoreWhileAnimating = null; + }); + if (_this !== fromSortable) { + fromSortable.animateAll(); + fromSortable._ignoreWhileAnimating = null; + } + } + if (target === dragEl && !dragEl.animated || target === el && !target.animated) { + lastTarget = null; + } + if (!options.dragoverBubble && !evt.rootEl && target !== document) { + dragEl.parentNode[expando]._isOutsideThisEl(evt.target); + !insertion && nearestEmptyInsertDetectEvent(evt); + } + !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation(); + return completedFired = true; + } + function changed() { + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + _dispatchEvent({ + sortable: _this, + name: "change", + toEl: el, + newIndex, + newDraggableIndex, + originalEvent: evt + }); + } + if (evt.preventDefault !== void 0) { + evt.cancelable && evt.preventDefault(); + } + target = closest(target, options.draggable, el, true); + dragOverEvent("dragOver"); + if (Sortable.eventCanceled) + return completedFired; + if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) { + return completed(false); + } + ignoreNextClick = false; + if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) { + vertical = this._getDirection(evt, target) === "vertical"; + dragRect = getRect(dragEl); + dragOverEvent("dragOverValid"); + if (Sortable.eventCanceled) + return completedFired; + if (revert) { + parentEl = rootEl; + capture(); + this._hideClone(); + dragOverEvent("revert"); + if (!Sortable.eventCanceled) { + if (nextEl) { + rootEl.insertBefore(dragEl, nextEl); + } else { + rootEl.appendChild(dragEl); + } + } + return completed(true); + } + var elLastChild = lastChild(el, options.draggable); + if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) { + if (elLastChild === dragEl) { + return completed(false); + } + if (elLastChild && el === evt.target) { + target = elLastChild; + } + if (target) { + targetRect = getRect(target); + } + if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) { + capture(); + if (elLastChild && elLastChild.nextSibling) { + el.insertBefore(dragEl, elLastChild.nextSibling); + } else { + el.appendChild(dragEl); + } + parentEl = el; + changed(); + return completed(true); + } + } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) { + var firstChild = getChild(el, 0, options, true); + if (firstChild === dragEl) { + return completed(false); + } + target = firstChild; + targetRect = getRect(target); + if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) { + capture(); + el.insertBefore(dragEl, firstChild); + parentEl = el; + changed(); + return completed(true); + } + } else if (target.parentNode === el) { + targetRect = getRect(target); + var direction = 0, targetBeforeFirstSwap, differentLevel = dragEl.parentNode !== el, differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical), side1 = vertical ? "top" : "left", scrolledPastTop = isScrolledPast(target, "top", "top") || isScrolledPast(dragEl, "top", "top"), scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0; + if (lastTarget !== target) { + targetBeforeFirstSwap = targetRect[side1]; + pastFirstInvertThresh = false; + isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel; + } + direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target); + var sibling; + if (direction !== 0) { + var dragIndex = index(dragEl); + do { + dragIndex -= direction; + sibling = parentEl.children[dragIndex]; + } while (sibling && (css(sibling, "display") === "none" || sibling === ghostEl)); + } + if (direction === 0 || sibling === target) { + return completed(false); + } + lastTarget = target; + lastDirection = direction; + var nextSibling = target.nextElementSibling, after = false; + after = direction === 1; + var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after); + if (moveVector !== false) { + if (moveVector === 1 || moveVector === -1) { + after = moveVector === 1; + } + _silent = true; + setTimeout(_unsilent, 30); + capture(); + if (after && !nextSibling) { + el.appendChild(dragEl); + } else { + target.parentNode.insertBefore(dragEl, after ? nextSibling : target); + } + if (scrolledPastTop) { + scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop); + } + parentEl = dragEl.parentNode; + if (targetBeforeFirstSwap !== void 0 && !isCircumstantialInvert) { + targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]); + } + changed(); + return completed(true); + } + } + if (el.contains(dragEl)) { + return completed(false); + } + } + return false; + }, + _ignoreWhileAnimating: null, + _offMoveEvents: function _offMoveEvents() { + off(document, "mousemove", this._onTouchMove); + off(document, "touchmove", this._onTouchMove); + off(document, "pointermove", this._onTouchMove); + off(document, "dragover", nearestEmptyInsertDetectEvent); + off(document, "mousemove", nearestEmptyInsertDetectEvent); + off(document, "touchmove", nearestEmptyInsertDetectEvent); + }, + _offUpEvents: function _offUpEvents() { + var ownerDocument = this.el.ownerDocument; + off(ownerDocument, "mouseup", this._onDrop); + off(ownerDocument, "touchend", this._onDrop); + off(ownerDocument, "pointerup", this._onDrop); + off(ownerDocument, "touchcancel", this._onDrop); + off(document, "selectstart", this); + }, + _onDrop: function _onDrop(evt) { + var el = this.el, options = this.options; + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + pluginEvent2("drop", this, { + evt + }); + parentEl = dragEl && dragEl.parentNode; + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + if (Sortable.eventCanceled) { + this._nulling(); + return; + } + awaitingDragStarted = false; + isCircumstantialInvert = false; + pastFirstInvertThresh = false; + clearInterval(this._loopId); + clearTimeout(this._dragStartTimer); + _cancelNextTick(this.cloneId); + _cancelNextTick(this._dragStartId); + if (this.nativeDraggable) { + off(document, "drop", this); + off(el, "dragstart", this._onDragStart); + } + this._offMoveEvents(); + this._offUpEvents(); + if (Safari) { + css(document.body, "user-select", ""); + } + css(dragEl, "transform", ""); + if (evt) { + if (moved) { + evt.cancelable && evt.preventDefault(); + !options.dropBubble && evt.stopPropagation(); + } + ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl); + if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== "clone") { + cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl); + } + if (dragEl) { + if (this.nativeDraggable) { + off(dragEl, "dragend", this); + } + _disableDraggable(dragEl); + dragEl.style["will-change"] = ""; + if (moved && !awaitingDragStarted) { + toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false); + } + toggleClass(dragEl, this.options.chosenClass, false); + _dispatchEvent({ + sortable: this, + name: "unchoose", + toEl: parentEl, + newIndex: null, + newDraggableIndex: null, + originalEvent: evt + }); + if (rootEl !== parentEl) { + if (newIndex >= 0) { + _dispatchEvent({ + rootEl: parentEl, + name: "add", + toEl: parentEl, + fromEl: rootEl, + originalEvent: evt + }); + _dispatchEvent({ + sortable: this, + name: "remove", + toEl: parentEl, + originalEvent: evt + }); + _dispatchEvent({ + rootEl: parentEl, + name: "sort", + toEl: parentEl, + fromEl: rootEl, + originalEvent: evt + }); + _dispatchEvent({ + sortable: this, + name: "sort", + toEl: parentEl, + originalEvent: evt + }); + } + putSortable && putSortable.save(); + } else { + if (newIndex !== oldIndex) { + if (newIndex >= 0) { + _dispatchEvent({ + sortable: this, + name: "update", + toEl: parentEl, + originalEvent: evt + }); + _dispatchEvent({ + sortable: this, + name: "sort", + toEl: parentEl, + originalEvent: evt + }); + } + } + } + if (Sortable.active) { + if (newIndex == null || newIndex === -1) { + newIndex = oldIndex; + newDraggableIndex = oldDraggableIndex; + } + _dispatchEvent({ + sortable: this, + name: "end", + toEl: parentEl, + originalEvent: evt + }); + this.save(); + } + } + } + this._nulling(); + }, + _nulling: function _nulling() { + pluginEvent2("nulling", this); + rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null; + savedInputChecked.forEach(function(el) { + el.checked = true; + }); + savedInputChecked.length = lastDx = lastDy = 0; + }, + handleEvent: function handleEvent(evt) { + switch (evt.type) { + case "drop": + case "dragend": + this._onDrop(evt); + break; + case "dragenter": + case "dragover": + if (dragEl) { + this._onDragOver(evt); + _globalDragOver(evt); + } + break; + case "selectstart": + evt.preventDefault(); + break; + } + }, + toArray: function toArray() { + var order = [], el, children = this.el.children, i = 0, n = children.length, options = this.options; + for (; i < n; i++) { + el = children[i]; + if (closest(el, options.draggable, this.el, false)) { + order.push(el.getAttribute(options.dataIdAttr) || _generateId(el)); + } + } + return order; + }, + sort: function sort(order, useAnimation) { + var items = {}, rootEl2 = this.el; + this.toArray().forEach(function(id, i) { + var el = rootEl2.children[i]; + if (closest(el, this.options.draggable, rootEl2, false)) { + items[id] = el; + } + }, this); + useAnimation && this.captureAnimationState(); + order.forEach(function(id) { + if (items[id]) { + rootEl2.removeChild(items[id]); + rootEl2.appendChild(items[id]); + } + }); + useAnimation && this.animateAll(); + }, + save: function save() { + var store = this.options.store; + store && store.set && store.set(this); + }, + closest: function closest$1(el, selector) { + return closest(el, selector || this.options.draggable, this.el, false); + }, + option: function option(name, value) { + var options = this.options; + if (value === void 0) { + return options[name]; + } else { + var modifiedValue = PluginManager.modifyOption(this, name, value); + if (typeof modifiedValue !== "undefined") { + options[name] = modifiedValue; + } else { + options[name] = value; + } + if (name === "group") { + _prepareGroup(options); + } + } + }, + destroy: function destroy() { + pluginEvent2("destroy", this); + var el = this.el; + el[expando] = null; + off(el, "mousedown", this._onTapStart); + off(el, "touchstart", this._onTapStart); + off(el, "pointerdown", this._onTapStart); + if (this.nativeDraggable) { + off(el, "dragover", this); + off(el, "dragenter", this); + } + Array.prototype.forEach.call(el.querySelectorAll("[draggable]"), function(el2) { + el2.removeAttribute("draggable"); + }); + this._onDrop(); + this._disableDelayedDragEvents(); + sortables.splice(sortables.indexOf(this.el), 1); + this.el = el = null; + }, + _hideClone: function _hideClone() { + if (!cloneHidden) { + pluginEvent2("hideClone", this); + if (Sortable.eventCanceled) + return; + css(cloneEl, "display", "none"); + if (this.options.removeCloneOnHide && cloneEl.parentNode) { + cloneEl.parentNode.removeChild(cloneEl); + } + cloneHidden = true; + } + }, + _showClone: function _showClone(putSortable2) { + if (putSortable2.lastPutMode !== "clone") { + this._hideClone(); + return; + } + if (cloneHidden) { + pluginEvent2("showClone", this); + if (Sortable.eventCanceled) + return; + if (dragEl.parentNode == rootEl && !this.options.group.revertClone) { + rootEl.insertBefore(cloneEl, dragEl); + } else if (nextEl) { + rootEl.insertBefore(cloneEl, nextEl); + } else { + rootEl.appendChild(cloneEl); + } + if (this.options.group.revertClone) { + this.animate(dragEl, cloneEl); + } + css(cloneEl, "display", ""); + cloneHidden = false; + } + } + }; + function _globalDragOver(evt) { + if (evt.dataTransfer) { + evt.dataTransfer.dropEffect = "move"; + } + evt.cancelable && evt.preventDefault(); + } + function _onMove(fromEl, toEl, dragEl2, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) { + var evt, sortable = fromEl[expando], onMoveFn = sortable.options.onMove, retVal; + if (window.CustomEvent && !IE11OrLess && !Edge) { + evt = new CustomEvent("move", { + bubbles: true, + cancelable: true + }); + } else { + evt = document.createEvent("Event"); + evt.initEvent("move", true, true); + } + evt.to = toEl; + evt.from = fromEl; + evt.dragged = dragEl2; + evt.draggedRect = dragRect; + evt.related = targetEl || toEl; + evt.relatedRect = targetRect || getRect(toEl); + evt.willInsertAfter = willInsertAfter; + evt.originalEvent = originalEvent; + fromEl.dispatchEvent(evt); + if (onMoveFn) { + retVal = onMoveFn.call(sortable, evt, originalEvent); + } + return retVal; + } + function _disableDraggable(el) { + el.draggable = false; + } + function _unsilent() { + _silent = false; + } + function _ghostIsFirst(evt, vertical, sortable) { + var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true)); + var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl); + var spacer = 10; + return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left; + } + function _ghostIsLast(evt, vertical, sortable) { + var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable)); + var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl); + var spacer = 10; + return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top; + } + function _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) { + var mouseOnAxis = vertical ? evt.clientY : evt.clientX, targetLength = vertical ? targetRect.height : targetRect.width, targetS1 = vertical ? targetRect.top : targetRect.left, targetS2 = vertical ? targetRect.bottom : targetRect.right, invert = false; + if (!invertSwap) { + if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) { + if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) { + pastFirstInvertThresh = true; + } + if (!pastFirstInvertThresh) { + if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance : mouseOnAxis > targetS2 - targetMoveDistance) { + return -lastDirection; + } + } else { + invert = true; + } + } else { + if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) { + return _getInsertDirection(target); + } + } + } + invert = invert || invertSwap; + if (invert) { + if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) { + return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1; + } + } + return 0; + } + function _getInsertDirection(target) { + if (index(dragEl) < index(target)) { + return 1; + } else { + return -1; + } + } + function _generateId(el) { + var str = el.tagName + el.className + el.src + el.href + el.textContent, i = str.length, sum = 0; + while (i--) { + sum += str.charCodeAt(i); + } + return sum.toString(36); + } + function _saveInputCheckedState(root) { + savedInputChecked.length = 0; + var inputs = root.getElementsByTagName("input"); + var idx = inputs.length; + while (idx--) { + var el = inputs[idx]; + el.checked && savedInputChecked.push(el); + } + } + function _nextTick(fn) { + return setTimeout(fn, 0); + } + function _cancelNextTick(id) { + return clearTimeout(id); + } + if (documentExists) { + on3(document, "touchmove", function(evt) { + if ((Sortable.active || awaitingDragStarted) && evt.cancelable) { + evt.preventDefault(); + } + }); + } + Sortable.utils = { + on: on3, + off, + css, + find: find2, + is: function is(el, selector) { + return !!closest(el, selector, el, false); + }, + extend, + throttle, + closest, + toggleClass, + clone, + index, + nextTick: _nextTick, + cancelNextTick: _cancelNextTick, + detectDirection: _detectDirection, + getChild + }; + Sortable.get = function(element) { + return element[expando]; + }; + Sortable.mount = function() { + for (var _len = arguments.length, plugins2 = new Array(_len), _key = 0; _key < _len; _key++) { + plugins2[_key] = arguments[_key]; + } + if (plugins2[0].constructor === Array) + plugins2 = plugins2[0]; + plugins2.forEach(function(plugin) { + if (!plugin.prototype || !plugin.prototype.constructor) { + throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(plugin)); + } + if (plugin.utils) + Sortable.utils = _objectSpread22(_objectSpread22({}, Sortable.utils), plugin.utils); + PluginManager.mount(plugin); + }); + }; + Sortable.create = function(el, options) { + return new Sortable(el, options); + }; + Sortable.version = version; + var autoScrolls = []; + var scrollEl; + var scrollRootEl; + var scrolling = false; + var lastAutoScrollX; + var lastAutoScrollY; + var touchEvt$1; + var pointerElemChangedInterval; + function AutoScrollPlugin() { + function AutoScroll() { + this.defaults = { + scroll: true, + forceAutoScrollFallback: false, + scrollSensitivity: 30, + scrollSpeed: 10, + bubbleScroll: true + }; + for (var fn in this) { + if (fn.charAt(0) === "_" && typeof this[fn] === "function") { + this[fn] = this[fn].bind(this); + } + } + } + AutoScroll.prototype = { + dragStarted: function dragStarted(_ref) { + var originalEvent = _ref.originalEvent; + if (this.sortable.nativeDraggable) { + on3(document, "dragover", this._handleAutoScroll); + } else { + if (this.options.supportPointer) { + on3(document, "pointermove", this._handleFallbackAutoScroll); + } else if (originalEvent.touches) { + on3(document, "touchmove", this._handleFallbackAutoScroll); + } else { + on3(document, "mousemove", this._handleFallbackAutoScroll); + } + } + }, + dragOverCompleted: function dragOverCompleted(_ref2) { + var originalEvent = _ref2.originalEvent; + if (!this.options.dragOverBubble && !originalEvent.rootEl) { + this._handleAutoScroll(originalEvent); + } + }, + drop: function drop3() { + if (this.sortable.nativeDraggable) { + off(document, "dragover", this._handleAutoScroll); + } else { + off(document, "pointermove", this._handleFallbackAutoScroll); + off(document, "touchmove", this._handleFallbackAutoScroll); + off(document, "mousemove", this._handleFallbackAutoScroll); + } + clearPointerElemChangedInterval(); + clearAutoScrolls(); + cancelThrottle(); + }, + nulling: function nulling() { + touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null; + autoScrolls.length = 0; + }, + _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) { + this._handleAutoScroll(evt, true); + }, + _handleAutoScroll: function _handleAutoScroll(evt, fallback2) { + var _this = this; + var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, elem = document.elementFromPoint(x, y); + touchEvt$1 = evt; + if (fallback2 || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) { + autoScroll(evt, this.options, elem, fallback2); + var ogElemScroller = getParentAutoScrollElement(elem, true); + if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) { + pointerElemChangedInterval && clearPointerElemChangedInterval(); + pointerElemChangedInterval = setInterval(function() { + var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true); + if (newElem !== ogElemScroller) { + ogElemScroller = newElem; + clearAutoScrolls(); + } + autoScroll(evt, _this.options, newElem, fallback2); + }, 10); + lastAutoScrollX = x; + lastAutoScrollY = y; + } + } else { + if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) { + clearAutoScrolls(); + return; + } + autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false); + } + } + }; + return _extends(AutoScroll, { + pluginName: "scroll", + initializeByDefault: true + }); + } + function clearAutoScrolls() { + autoScrolls.forEach(function(autoScroll2) { + clearInterval(autoScroll2.pid); + }); + autoScrolls = []; + } + function clearPointerElemChangedInterval() { + clearInterval(pointerElemChangedInterval); + } + var autoScroll = throttle(function(evt, options, rootEl2, isFallback) { + if (!options.scroll) + return; + var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, sens = options.scrollSensitivity, speed = options.scrollSpeed, winScroller = getWindowScrollingElement(); + var scrollThisInstance = false, scrollCustomFn; + if (scrollRootEl !== rootEl2) { + scrollRootEl = rootEl2; + clearAutoScrolls(); + scrollEl = options.scroll; + scrollCustomFn = options.scrollFn; + if (scrollEl === true) { + scrollEl = getParentAutoScrollElement(rootEl2, true); + } + } + var layersOut = 0; + var currentParent = scrollEl; + do { + var el = currentParent, rect = getRect(el), top = rect.top, bottom = rect.bottom, left = rect.left, right = rect.right, width = rect.width, height = rect.height, canScrollX = void 0, canScrollY = void 0, scrollWidth = el.scrollWidth, scrollHeight = el.scrollHeight, elCSS = css(el), scrollPosX = el.scrollLeft, scrollPosY = el.scrollTop; + if (el === winScroller) { + canScrollX = width < scrollWidth && (elCSS.overflowX === "auto" || elCSS.overflowX === "scroll" || elCSS.overflowX === "visible"); + canScrollY = height < scrollHeight && (elCSS.overflowY === "auto" || elCSS.overflowY === "scroll" || elCSS.overflowY === "visible"); + } else { + canScrollX = width < scrollWidth && (elCSS.overflowX === "auto" || elCSS.overflowX === "scroll"); + canScrollY = height < scrollHeight && (elCSS.overflowY === "auto" || elCSS.overflowY === "scroll"); + } + var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX); + var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY); + if (!autoScrolls[layersOut]) { + for (var i = 0; i <= layersOut; i++) { + if (!autoScrolls[i]) { + autoScrolls[i] = {}; + } + } + } + if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) { + autoScrolls[layersOut].el = el; + autoScrolls[layersOut].vx = vx; + autoScrolls[layersOut].vy = vy; + clearInterval(autoScrolls[layersOut].pid); + if (vx != 0 || vy != 0) { + scrollThisInstance = true; + autoScrolls[layersOut].pid = setInterval(function() { + if (isFallback && this.layer === 0) { + Sortable.active._onTouchMove(touchEvt$1); + } + var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0; + var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0; + if (typeof scrollCustomFn === "function") { + if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== "continue") { + return; + } + } + scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY); + }.bind({ + layer: layersOut + }), 24); + } + } + layersOut++; + } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false))); + scrolling = scrollThisInstance; + }, 30); + var drop = function drop2(_ref) { + var originalEvent = _ref.originalEvent, putSortable2 = _ref.putSortable, dragEl2 = _ref.dragEl, activeSortable = _ref.activeSortable, dispatchSortableEvent = _ref.dispatchSortableEvent, hideGhostForTarget = _ref.hideGhostForTarget, unhideGhostForTarget = _ref.unhideGhostForTarget; + if (!originalEvent) + return; + var toSortable = putSortable2 || activeSortable; + hideGhostForTarget(); + var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent; + var target = document.elementFromPoint(touch.clientX, touch.clientY); + unhideGhostForTarget(); + if (toSortable && !toSortable.el.contains(target)) { + dispatchSortableEvent("spill"); + this.onSpill({ + dragEl: dragEl2, + putSortable: putSortable2 + }); + } + }; + function Revert() { + } + Revert.prototype = { + startIndex: null, + dragStart: function dragStart(_ref2) { + var oldDraggableIndex2 = _ref2.oldDraggableIndex; + this.startIndex = oldDraggableIndex2; + }, + onSpill: function onSpill(_ref3) { + var dragEl2 = _ref3.dragEl, putSortable2 = _ref3.putSortable; + this.sortable.captureAnimationState(); + if (putSortable2) { + putSortable2.captureAnimationState(); + } + var nextSibling = getChild(this.sortable.el, this.startIndex, this.options); + if (nextSibling) { + this.sortable.el.insertBefore(dragEl2, nextSibling); + } else { + this.sortable.el.appendChild(dragEl2); + } + this.sortable.animateAll(); + if (putSortable2) { + putSortable2.animateAll(); + } + }, + drop + }; + _extends(Revert, { + pluginName: "revertOnSpill" + }); + function Remove() { + } + Remove.prototype = { + onSpill: function onSpill2(_ref4) { + var dragEl2 = _ref4.dragEl, putSortable2 = _ref4.putSortable; + var parentSortable = putSortable2 || this.sortable; + parentSortable.captureAnimationState(); + dragEl2.parentNode && dragEl2.parentNode.removeChild(dragEl2); + parentSortable.animateAll(); + }, + drop + }; + _extends(Remove, { + pluginName: "removeOnSpill" + }); + Sortable.mount(new AutoScrollPlugin()); + Sortable.mount(Remove, Revert); + var sortable_esm_default = Sortable; + function walk(el, callback) { + if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) { + Array.from(el.children).forEach((el2) => walk(el2, callback)); + return; + } + let skip = false; + callback(el, () => skip = true); + if (skip) + return; + let node = el.firstElementChild; + while (node) { + walk(node, callback, false); + node = node.nextElementSibling; + } + } + function src_default5(Alpine25) { + Alpine25.directive("sort", (el, { value, modifiers, expression }, { effect, evaluate: evaluate2, cleanup }) => { + if (value === "config") { + return; + } + if (value === "handle") { + return; + } + if (value === "group") { + return; + } + if (value === "key" || value === "item") { + if ([void 0, null, ""].includes(expression)) + return; + el._x_sort_key = evaluate2(expression); + return; + } + let handleSelector = "[x-sort\\:handle],[wire\\:sort\\:handle]"; + let preferences = { + hideGhost: !modifiers.includes("ghost"), + useHandles: !!el.querySelector(handleSelector) || Array.from(el.querySelectorAll("template:not(svg template)")).some((tmpl) => tmpl.content?.querySelector(handleSelector)), + group: getGroupName(el, modifiers) + }; + let handleSort = generateSortHandler(expression, evaluate2); + let config = getConfigurationOverrides(el, modifiers, evaluate2); + let sortable = initSortable(el, config, preferences, (key, position) => { + handleSort(key, position); + }); + cleanup(() => sortable.destroy()); + }); + } + function generateSortHandler(expression, evaluate2) { + if ([void 0, null, ""].includes(expression)) + return () => { + }; + return (key, position) => { + evaluate2(expression, { scope: { + $key: key, + $item: key, + $position: position + }, params: [ + key, + position + ] }); + }; + } + function getConfigurationOverrides(el, modifiers, evaluate2) { + if (el.hasAttribute("x-sort:config")) { + return evaluate2(el.getAttribute("x-sort:config")); + } + if (el.hasAttribute("wire:sort:config")) { + return evaluate2(el.getAttribute("wire:sort:config")); + } + return {}; + } + function initSortable(el, config, preferences, handle) { + let ghostRef; + let options = { + animation: 150, + handle: preferences.useHandles ? "[x-sort\\:handle],[wire\\:sort\\:handle]" : null, + group: preferences.group, + scroll: true, + forceAutoScrollFallback: true, + scrollSensitivity: 50, + preventOnFilter: false, + filter(e) { + if (e.target.hasAttribute("x-sort:ignore") || e.target.hasAttribute("wire:sort:ignore")) + return true; + if (e.target.closest("[x-sort\\:ignore]") || e.target.closest("[wire\\:sort\\:ignore]")) + return true; + if (!el.querySelector("[x-sort\\:item],[wire\\:sort\\:item]")) + return false; + let itemHasAttribute = e.target.closest("[x-sort\\:item],[wire\\:sort\\:item]"); + return itemHasAttribute ? false : true; + }, + onSort(e) { + if (e.from !== e.to) { + if (e.to !== e.target) { + return; + } + } + let key = void 0; + walk(e.item, (el2, skip) => { + if (key !== void 0) + return; + if (el2._x_sort_key) { + key = el2._x_sort_key; + skip(); + } + }); + let position = e.newIndex; + if (key !== void 0 || key !== null) { + handle(key, position); + } + }, + onStart() { + document.body.classList.add("sorting"); + ghostRef = document.querySelector(".sortable-ghost"); + if (preferences.hideGhost && ghostRef) + ghostRef.style.opacity = "0"; + }, + onEnd() { + document.body.classList.remove("sorting"); + if (preferences.hideGhost && ghostRef) + ghostRef.style.opacity = "1"; + ghostRef = void 0; + keepElementsWithinMorphMarkers(el); + } + }; + return new sortable_esm_default(el, { ...options, ...config }); + } + function keepElementsWithinMorphMarkers(el) { + let cursor = el.firstChild; + while (cursor.nextSibling) { + if (cursor.textContent.trim() === "[if ENDBLOCK]><![endif]") { + el.append(cursor); + break; + } + cursor = cursor.nextSibling; + } + } + function getGroupName(el, modifiers) { + if (el.hasAttribute("x-sort:group")) { + return el.getAttribute("x-sort:group"); + } + if (el.hasAttribute("wire:sort:group")) { + return el.getAttribute("wire:sort:group"); + } + return modifiers.indexOf("group") !== -1 ? modifiers[modifiers.indexOf("group") + 1] : null; + } + var module_default5 = src_default5; + + // node_modules/@alpinejs/resize/dist/module.esm.js + function src_default6(Alpine25) { + Alpine25.directive("resize", Alpine25.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { + let evaluator = evaluateLater(expression); + let evaluate2 = (width, height) => { + evaluator(() => { + }, { scope: { "$width": width, "$height": height } }); + }; + let off2 = modifiers.includes("document") ? onDocumentResize(evaluate2) : onElResize(el, evaluate2); + cleanup(() => off2()); + })); + } + function onElResize(el, callback) { + let observer = new ResizeObserver((entries) => { + let [width, height] = dimensions(entries); + callback(width, height); + }); + observer.observe(el); + return () => observer.disconnect(); + } + var documentResizeObserver; + var documentResizeObserverCallbacks = /* @__PURE__ */ new Set(); + function onDocumentResize(callback) { + documentResizeObserverCallbacks.add(callback); + if (!documentResizeObserver) { + documentResizeObserver = new ResizeObserver((entries) => { + let [width, height] = dimensions(entries); + documentResizeObserverCallbacks.forEach((i) => i(width, height)); + }); + documentResizeObserver.observe(document.documentElement); + } + return () => { + documentResizeObserverCallbacks.delete(callback); + }; + } + function dimensions(entries) { + let width, height; + for (let entry of entries) { + width = entry.borderBoxSize[0].inlineSize; + height = entry.borderBoxSize[0].blockSize; + } + return [width, height]; + } + var module_default6 = src_default6; + + // node_modules/@alpinejs/anchor/dist/module.esm.js + var min = Math.min; + var max = Math.max; + var round = Math.round; + var floor = Math.floor; + var createCoords = (v) => ({ + x: v, + y: v + }); + var oppositeSideMap = { + left: "right", + right: "left", + bottom: "top", + top: "bottom" + }; + var oppositeAlignmentMap = { + start: "end", + end: "start" + }; + function clamp(start2, value, end) { + return max(start2, min(value, end)); + } + function evaluate(value, param) { + return typeof value === "function" ? value(param) : value; + } + function getSide(placement) { + return placement.split("-")[0]; + } + function getAlignment(placement) { + return placement.split("-")[1]; + } + function getOppositeAxis(axis) { + return axis === "x" ? "y" : "x"; + } + function getAxisLength(axis) { + return axis === "y" ? "height" : "width"; + } + function getSideAxis(placement) { + return ["top", "bottom"].includes(getSide(placement)) ? "y" : "x"; + } + function getAlignmentAxis(placement) { + return getOppositeAxis(getSideAxis(placement)); + } + function getAlignmentSides(placement, rects, rtl) { + if (rtl === void 0) { + rtl = false; + } + const alignment = getAlignment(placement); + const alignmentAxis = getAlignmentAxis(placement); + const length = getAxisLength(alignmentAxis); + let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top"; + if (rects.reference[length] > rects.floating[length]) { + mainAlignmentSide = getOppositePlacement(mainAlignmentSide); + } + return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)]; + } + function getExpandedPlacements(placement) { + const oppositePlacement = getOppositePlacement(placement); + return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)]; + } + function getOppositeAlignmentPlacement(placement) { + return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]); + } + function getSideList(side, isStart, rtl) { + const lr = ["left", "right"]; + const rl = ["right", "left"]; + const tb = ["top", "bottom"]; + const bt = ["bottom", "top"]; + switch (side) { + case "top": + case "bottom": + if (rtl) + return isStart ? rl : lr; + return isStart ? lr : rl; + case "left": + case "right": + return isStart ? tb : bt; + default: + return []; + } + } + function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) { + const alignment = getAlignment(placement); + let list = getSideList(getSide(placement), direction === "start", rtl); + if (alignment) { + list = list.map((side) => side + "-" + alignment); + if (flipAlignment) { + list = list.concat(list.map(getOppositeAlignmentPlacement)); + } + } + return list; + } + function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]); + } + function expandPaddingObject(padding) { + return { + top: 0, + right: 0, + bottom: 0, + left: 0, + ...padding + }; + } + function getPaddingObject(padding) { + return typeof padding !== "number" ? expandPaddingObject(padding) : { + top: padding, + right: padding, + bottom: padding, + left: padding + }; + } + function rectToClientRect(rect) { + return { + ...rect, + top: rect.y, + left: rect.x, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }; + } + function computeCoordsFromPlacement(_ref, placement, rtl) { + let { + reference, + floating + } = _ref; + const sideAxis = getSideAxis(placement); + const alignmentAxis = getAlignmentAxis(placement); + const alignLength = getAxisLength(alignmentAxis); + const side = getSide(placement); + const isVertical = sideAxis === "y"; + const commonX = reference.x + reference.width / 2 - floating.width / 2; + const commonY = reference.y + reference.height / 2 - floating.height / 2; + const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2; + let coords; + switch (side) { + case "top": + coords = { + x: commonX, + y: reference.y - floating.height + }; + break; + case "bottom": + coords = { + x: commonX, + y: reference.y + reference.height + }; + break; + case "right": + coords = { + x: reference.x + reference.width, + y: commonY + }; + break; + case "left": + coords = { + x: reference.x - floating.width, + y: commonY + }; + break; + default: + coords = { + x: reference.x, + y: reference.y + }; + } + switch (getAlignment(placement)) { + case "start": + coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1); + break; + case "end": + coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1); + break; + } + return coords; + } + var computePosition = async (reference, floating, config) => { + const { + placement = "bottom", + strategy = "absolute", + middleware = [], + platform: platform2 + } = config; + const validMiddleware = middleware.filter(Boolean); + const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating)); + let rects = await platform2.getElementRects({ + reference, + floating, + strategy + }); + let { + x, + y + } = computeCoordsFromPlacement(rects, placement, rtl); + let statefulPlacement = placement; + let middlewareData = {}; + let resetCount = 0; + for (let i = 0; i < validMiddleware.length; i++) { + const { + name, + fn + } = validMiddleware[i]; + const { + x: nextX, + y: nextY, + data, + reset + } = await fn({ + x, + y, + initialPlacement: placement, + placement: statefulPlacement, + strategy, + middlewareData, + rects, + platform: platform2, + elements: { + reference, + floating + } + }); + x = nextX != null ? nextX : x; + y = nextY != null ? nextY : y; + middlewareData = { + ...middlewareData, + [name]: { + ...middlewareData[name], + ...data + } + }; + if (reset && resetCount <= 50) { + resetCount++; + if (typeof reset === "object") { + if (reset.placement) { + statefulPlacement = reset.placement; + } + if (reset.rects) { + rects = reset.rects === true ? await platform2.getElementRects({ + reference, + floating, + strategy + }) : reset.rects; + } + ({ + x, + y + } = computeCoordsFromPlacement(rects, statefulPlacement, rtl)); + } + i = -1; + continue; + } + } + return { + x, + y, + placement: statefulPlacement, + strategy, + middlewareData + }; + }; + async function detectOverflow(state, options) { + var _await$platform$isEle; + if (options === void 0) { + options = {}; + } + const { + x, + y, + platform: platform2, + rects, + elements, + strategy + } = state; + const { + boundary = "clippingAncestors", + rootBoundary = "viewport", + elementContext = "floating", + altBoundary = false, + padding = 0 + } = evaluate(options, state); + const paddingObject = getPaddingObject(padding); + const altContext = elementContext === "floating" ? "reference" : "floating"; + const element = elements[altBoundary ? altContext : elementContext]; + const clippingClientRect = rectToClientRect(await platform2.getClippingRect({ + element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)), + boundary, + rootBoundary, + strategy + })); + const rect = elementContext === "floating" ? { + ...rects.floating, + x, + y + } : rects.reference; + const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating)); + const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || { + x: 1, + y: 1 + } : { + x: 1, + y: 1 + }; + const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({ + rect, + offsetParent, + strategy + }) : rect); + return { + top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y, + bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y, + left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x, + right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x + }; + } + var flip = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: "flip", + options, + async fn(state) { + var _middlewareData$arrow, _middlewareData$flip; + const { + placement, + middlewareData, + rects, + initialPlacement, + platform: platform2, + elements + } = state; + const { + mainAxis: checkMainAxis = true, + crossAxis: checkCrossAxis = true, + fallbackPlacements: specifiedFallbackPlacements, + fallbackStrategy = "bestFit", + fallbackAxisSideDirection = "none", + flipAlignment = true, + ...detectOverflowOptions + } = evaluate(options, state); + if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) { + return {}; + } + const side = getSide(placement); + const isBasePlacement = getSide(initialPlacement) === initialPlacement; + const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)); + const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement)); + if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== "none") { + fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl)); + } + const placements2 = [initialPlacement, ...fallbackPlacements]; + const overflow = await detectOverflow(state, detectOverflowOptions); + const overflows = []; + let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || []; + if (checkMainAxis) { + overflows.push(overflow[side]); + } + if (checkCrossAxis) { + const sides2 = getAlignmentSides(placement, rects, rtl); + overflows.push(overflow[sides2[0]], overflow[sides2[1]]); + } + overflowsData = [...overflowsData, { + placement, + overflows + }]; + if (!overflows.every((side2) => side2 <= 0)) { + var _middlewareData$flip2, _overflowsData$filter; + const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1; + const nextPlacement = placements2[nextIndex]; + if (nextPlacement) { + return { + data: { + index: nextIndex, + overflows: overflowsData + }, + reset: { + placement: nextPlacement + } + }; + } + let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement; + if (!resetPlacement) { + switch (fallbackStrategy) { + case "bestFit": { + var _overflowsData$map$so; + const placement2 = (_overflowsData$map$so = overflowsData.map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0]; + if (placement2) { + resetPlacement = placement2; + } + break; + } + case "initialPlacement": + resetPlacement = initialPlacement; + break; + } + } + if (placement !== resetPlacement) { + return { + reset: { + placement: resetPlacement + } + }; + } + } + return {}; + } + }; + }; + async function convertValueToCoords(state, options) { + const { + placement, + platform: platform2, + elements + } = state; + const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)); + const side = getSide(placement); + const alignment = getAlignment(placement); + const isVertical = getSideAxis(placement) === "y"; + const mainAxisMulti = ["left", "top"].includes(side) ? -1 : 1; + const crossAxisMulti = rtl && isVertical ? -1 : 1; + const rawValue = evaluate(options, state); + let { + mainAxis, + crossAxis, + alignmentAxis + } = typeof rawValue === "number" ? { + mainAxis: rawValue, + crossAxis: 0, + alignmentAxis: null + } : { + mainAxis: 0, + crossAxis: 0, + alignmentAxis: null, + ...rawValue + }; + if (alignment && typeof alignmentAxis === "number") { + crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis; + } + return isVertical ? { + x: crossAxis * crossAxisMulti, + y: mainAxis * mainAxisMulti + } : { + x: mainAxis * mainAxisMulti, + y: crossAxis * crossAxisMulti + }; + } + var offset = function(options) { + if (options === void 0) { + options = 0; + } + return { + name: "offset", + options, + async fn(state) { + const { + x, + y + } = state; + const diffCoords = await convertValueToCoords(state, options); + return { + x: x + diffCoords.x, + y: y + diffCoords.y, + data: diffCoords + }; + } + }; + }; + var shift = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: "shift", + options, + async fn(state) { + const { + x, + y, + placement + } = state; + const { + mainAxis: checkMainAxis = true, + crossAxis: checkCrossAxis = false, + limiter = { + fn: (_ref) => { + let { + x: x2, + y: y2 + } = _ref; + return { + x: x2, + y: y2 + }; + } + }, + ...detectOverflowOptions + } = evaluate(options, state); + const coords = { + x, + y + }; + const overflow = await detectOverflow(state, detectOverflowOptions); + const crossAxis = getSideAxis(getSide(placement)); + const mainAxis = getOppositeAxis(crossAxis); + let mainAxisCoord = coords[mainAxis]; + let crossAxisCoord = coords[crossAxis]; + if (checkMainAxis) { + const minSide = mainAxis === "y" ? "top" : "left"; + const maxSide = mainAxis === "y" ? "bottom" : "right"; + const min2 = mainAxisCoord + overflow[minSide]; + const max2 = mainAxisCoord - overflow[maxSide]; + mainAxisCoord = clamp(min2, mainAxisCoord, max2); + } + if (checkCrossAxis) { + const minSide = crossAxis === "y" ? "top" : "left"; + const maxSide = crossAxis === "y" ? "bottom" : "right"; + const min2 = crossAxisCoord + overflow[minSide]; + const max2 = crossAxisCoord - overflow[maxSide]; + crossAxisCoord = clamp(min2, crossAxisCoord, max2); + } + const limitedCoords = limiter.fn({ + ...state, + [mainAxis]: mainAxisCoord, + [crossAxis]: crossAxisCoord + }); + return { + ...limitedCoords, + data: { + x: limitedCoords.x - x, + y: limitedCoords.y - y + } + }; + } + }; + }; + function getNodeName(node) { + if (isNode(node)) { + return (node.nodeName || "").toLowerCase(); + } + return "#document"; + } + function getWindow(node) { + var _node$ownerDocument; + return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window; + } + function getDocumentElement(node) { + var _ref; + return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement; + } + function isNode(value) { + return value instanceof Node || value instanceof getWindow(value).Node; + } + function isElement(value) { + return value instanceof Element || value instanceof getWindow(value).Element; + } + function isHTMLElement(value) { + return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement; + } + function isShadowRoot(value) { + if (typeof ShadowRoot === "undefined") { + return false; + } + return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot; + } + function isOverflowElement(element) { + const { + overflow, + overflowX, + overflowY, + display + } = getComputedStyle2(element); + return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !["inline", "contents"].includes(display); + } + function isTableElement(element) { + return ["table", "td", "th"].includes(getNodeName(element)); + } + function isContainingBlock(element) { + const webkit = isWebKit(); + const css2 = getComputedStyle2(element); + return css2.transform !== "none" || css2.perspective !== "none" || (css2.containerType ? css2.containerType !== "normal" : false) || !webkit && (css2.backdropFilter ? css2.backdropFilter !== "none" : false) || !webkit && (css2.filter ? css2.filter !== "none" : false) || ["transform", "perspective", "filter"].some((value) => (css2.willChange || "").includes(value)) || ["paint", "layout", "strict", "content"].some((value) => (css2.contain || "").includes(value)); + } + function getContainingBlock(element) { + let currentNode = getParentNode(element); + while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) { + if (isContainingBlock(currentNode)) { + return currentNode; + } else { + currentNode = getParentNode(currentNode); + } + } + return null; + } + function isWebKit() { + if (typeof CSS === "undefined" || !CSS.supports) + return false; + return CSS.supports("-webkit-backdrop-filter", "none"); + } + function isLastTraversableNode(node) { + return ["html", "body", "#document"].includes(getNodeName(node)); + } + function getComputedStyle2(element) { + return getWindow(element).getComputedStyle(element); + } + function getNodeScroll(element) { + if (isElement(element)) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + return { + scrollLeft: element.pageXOffset, + scrollTop: element.pageYOffset + }; + } + function getParentNode(node) { + if (getNodeName(node) === "html") { + return node; + } + const result = node.assignedSlot || node.parentNode || isShadowRoot(node) && node.host || getDocumentElement(node); + return isShadowRoot(result) ? result.host : result; + } + function getNearestOverflowAncestor(node) { + const parentNode = getParentNode(node); + if (isLastTraversableNode(parentNode)) { + return node.ownerDocument ? node.ownerDocument.body : node.body; + } + if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) { + return parentNode; + } + return getNearestOverflowAncestor(parentNode); + } + function getOverflowAncestors(node, list, traverseIframes) { + var _node$ownerDocument2; + if (list === void 0) { + list = []; + } + if (traverseIframes === void 0) { + traverseIframes = true; + } + const scrollableAncestor = getNearestOverflowAncestor(node); + const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body); + const win = getWindow(scrollableAncestor); + if (isBody) { + return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []); + } + return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes)); + } + function getCssDimensions(element) { + const css2 = getComputedStyle2(element); + let width = parseFloat(css2.width) || 0; + let height = parseFloat(css2.height) || 0; + const hasOffset = isHTMLElement(element); + const offsetWidth = hasOffset ? element.offsetWidth : width; + const offsetHeight = hasOffset ? element.offsetHeight : height; + const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight; + if (shouldFallback) { + width = offsetWidth; + height = offsetHeight; + } + return { + width, + height, + $: shouldFallback + }; + } + function unwrapElement(element) { + return !isElement(element) ? element.contextElement : element; + } + function getScale(element) { + const domElement = unwrapElement(element); + if (!isHTMLElement(domElement)) { + return createCoords(1); + } + const rect = domElement.getBoundingClientRect(); + const { + width, + height, + $ + } = getCssDimensions(domElement); + let x = ($ ? round(rect.width) : rect.width) / width; + let y = ($ ? round(rect.height) : rect.height) / height; + if (!x || !Number.isFinite(x)) { + x = 1; + } + if (!y || !Number.isFinite(y)) { + y = 1; + } + return { + x, + y + }; + } + var noOffsets = /* @__PURE__ */ createCoords(0); + function getVisualOffsets(element) { + const win = getWindow(element); + if (!isWebKit() || !win.visualViewport) { + return noOffsets; + } + return { + x: win.visualViewport.offsetLeft, + y: win.visualViewport.offsetTop + }; + } + function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) { + if (isFixed === void 0) { + isFixed = false; + } + if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) { + return false; + } + return isFixed; + } + function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) { + if (includeScale === void 0) { + includeScale = false; + } + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + const clientRect = element.getBoundingClientRect(); + const domElement = unwrapElement(element); + let scale = createCoords(1); + if (includeScale) { + if (offsetParent) { + if (isElement(offsetParent)) { + scale = getScale(offsetParent); + } + } else { + scale = getScale(element); + } + } + const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0); + let x = (clientRect.left + visualOffsets.x) / scale.x; + let y = (clientRect.top + visualOffsets.y) / scale.y; + let width = clientRect.width / scale.x; + let height = clientRect.height / scale.y; + if (domElement) { + const win = getWindow(domElement); + const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent; + let currentIFrame = win.frameElement; + while (currentIFrame && offsetParent && offsetWin !== win) { + const iframeScale = getScale(currentIFrame); + const iframeRect = currentIFrame.getBoundingClientRect(); + const css2 = getComputedStyle2(currentIFrame); + const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css2.paddingLeft)) * iframeScale.x; + const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css2.paddingTop)) * iframeScale.y; + x *= iframeScale.x; + y *= iframeScale.y; + width *= iframeScale.x; + height *= iframeScale.y; + x += left; + y += top; + currentIFrame = getWindow(currentIFrame).frameElement; + } + } + return rectToClientRect({ + width, + height, + x, + y + }); + } + function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) { + let { + rect, + offsetParent, + strategy + } = _ref; + const isOffsetParentAnElement = isHTMLElement(offsetParent); + const documentElement = getDocumentElement(offsetParent); + if (offsetParent === documentElement) { + return rect; + } + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + let scale = createCoords(1); + const offsets = createCoords(0); + if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== "fixed") { + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + if (isHTMLElement(offsetParent)) { + const offsetRect = getBoundingClientRect(offsetParent); + scale = getScale(offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } + } + return { + width: rect.width * scale.x, + height: rect.height * scale.y, + x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x, + y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + }; + } + function getClientRects(element) { + return Array.from(element.getClientRects()); + } + function getWindowScrollBarX(element) { + return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft; + } + function getDocumentRect(element) { + const html = getDocumentElement(element); + const scroll = getNodeScroll(element); + const body = element.ownerDocument.body; + const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth); + const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight); + let x = -scroll.scrollLeft + getWindowScrollBarX(element); + const y = -scroll.scrollTop; + if (getComputedStyle2(body).direction === "rtl") { + x += max(html.clientWidth, body.clientWidth) - width; + } + return { + width, + height, + x, + y + }; + } + function getViewportRect(element, strategy) { + const win = getWindow(element); + const html = getDocumentElement(element); + const visualViewport = win.visualViewport; + let width = html.clientWidth; + let height = html.clientHeight; + let x = 0; + let y = 0; + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + const visualViewportBased = isWebKit(); + if (!visualViewportBased || visualViewportBased && strategy === "fixed") { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + return { + width, + height, + x, + y + }; + } + function getInnerBoundingClientRect(element, strategy) { + const clientRect = getBoundingClientRect(element, true, strategy === "fixed"); + const top = clientRect.top + element.clientTop; + const left = clientRect.left + element.clientLeft; + const scale = isHTMLElement(element) ? getScale(element) : createCoords(1); + const width = element.clientWidth * scale.x; + const height = element.clientHeight * scale.y; + const x = left * scale.x; + const y = top * scale.y; + return { + width, + height, + x, + y + }; + } + function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) { + let rect; + if (clippingAncestor === "viewport") { + rect = getViewportRect(element, strategy); + } else if (clippingAncestor === "document") { + rect = getDocumentRect(getDocumentElement(element)); + } else if (isElement(clippingAncestor)) { + rect = getInnerBoundingClientRect(clippingAncestor, strategy); + } else { + const visualOffsets = getVisualOffsets(element); + rect = { + ...clippingAncestor, + x: clippingAncestor.x - visualOffsets.x, + y: clippingAncestor.y - visualOffsets.y + }; + } + return rectToClientRect(rect); + } + function hasFixedPositionAncestor(element, stopNode) { + const parentNode = getParentNode(element); + if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) { + return false; + } + return getComputedStyle2(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode); + } + function getClippingElementAncestors(element, cache) { + const cachedResult = cache.get(element); + if (cachedResult) { + return cachedResult; + } + let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body"); + let currentContainingBlockComputedStyle = null; + const elementIsFixed = getComputedStyle2(element).position === "fixed"; + let currentNode = elementIsFixed ? getParentNode(element) : element; + while (isElement(currentNode) && !isLastTraversableNode(currentNode)) { + const computedStyle = getComputedStyle2(currentNode); + const currentNodeIsContaining = isContainingBlock(currentNode); + if (!currentNodeIsContaining && computedStyle.position === "fixed") { + currentContainingBlockComputedStyle = null; + } + const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && ["absolute", "fixed"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode); + if (shouldDropCurrentNode) { + result = result.filter((ancestor) => ancestor !== currentNode); + } else { + currentContainingBlockComputedStyle = computedStyle; + } + currentNode = getParentNode(currentNode); + } + cache.set(element, result); + return result; + } + function getClippingRect(_ref) { + let { + element, + boundary, + rootBoundary, + strategy + } = _ref; + const elementClippingAncestors = boundary === "clippingAncestors" ? getClippingElementAncestors(element, this._c) : [].concat(boundary); + const clippingAncestors = [...elementClippingAncestors, rootBoundary]; + const firstClippingAncestor = clippingAncestors[0]; + const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => { + const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy)); + return { + width: clippingRect.right - clippingRect.left, + height: clippingRect.bottom - clippingRect.top, + x: clippingRect.left, + y: clippingRect.top + }; + } + function getDimensions(element) { + return getCssDimensions(element); + } + function getRectRelativeToOffsetParent(element, offsetParent, strategy) { + const isOffsetParentAnElement = isHTMLElement(offsetParent); + const documentElement = getDocumentElement(offsetParent); + const isFixed = strategy === "fixed"; + const rect = getBoundingClientRect(element, true, isFixed, offsetParent); + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + const offsets = createCoords(0); + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + if (isOffsetParentAnElement) { + const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; + } + function getTrueOffsetParent(element, polyfill) { + if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") { + return null; + } + if (polyfill) { + return polyfill(element); + } + return element.offsetParent; + } + function getOffsetParent(element, polyfill) { + const window2 = getWindow(element); + if (!isHTMLElement(element)) { + return window2; + } + let offsetParent = getTrueOffsetParent(element, polyfill); + while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") { + offsetParent = getTrueOffsetParent(offsetParent, polyfill); + } + if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static" && !isContainingBlock(offsetParent))) { + return window2; + } + return offsetParent || getContainingBlock(element) || window2; + } + var getElementRects = async function(_ref) { + let { + reference, + floating, + strategy + } = _ref; + const getOffsetParentFn = this.getOffsetParent || getOffsetParent; + const getDimensionsFn = this.getDimensions; + return { + reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy), + floating: { + x: 0, + y: 0, + ...await getDimensionsFn(floating) + } + }; + }; + function isRTL(element) { + return getComputedStyle2(element).direction === "rtl"; + } + var platform = { + convertOffsetParentRelativeRectToViewportRelativeRect, + getDocumentElement, + getClippingRect, + getOffsetParent, + getElementRects, + getClientRects, + getDimensions, + getScale, + isElement, + isRTL + }; + function observeMove(element, onMove) { + let io = null; + let timeoutId; + const root = getDocumentElement(element); + function cleanup() { + clearTimeout(timeoutId); + io && io.disconnect(); + io = null; + } + function refresh(skip, threshold) { + if (skip === void 0) { + skip = false; + } + if (threshold === void 0) { + threshold = 1; + } + cleanup(); + const { + left, + top, + width, + height + } = element.getBoundingClientRect(); + if (!skip) { + onMove(); + } + if (!width || !height) { + return; + } + const insetTop = floor(top); + const insetRight = floor(root.clientWidth - (left + width)); + const insetBottom = floor(root.clientHeight - (top + height)); + const insetLeft = floor(left); + const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px"; + const options = { + rootMargin, + threshold: max(0, min(1, threshold)) || 1 + }; + let isFirstUpdate = true; + function handleObserve(entries) { + const ratio = entries[0].intersectionRatio; + if (ratio !== threshold) { + if (!isFirstUpdate) { + return refresh(); + } + if (!ratio) { + timeoutId = setTimeout(() => { + refresh(false, 1e-7); + }, 100); + } else { + refresh(false, ratio); + } + } + isFirstUpdate = false; + } + try { + io = new IntersectionObserver(handleObserve, { + ...options, + root: root.ownerDocument + }); + } catch (e) { + io = new IntersectionObserver(handleObserve, options); + } + io.observe(element); + } + refresh(true); + return cleanup; + } + function autoUpdate(reference, floating, update, options) { + if (options === void 0) { + options = {}; + } + const { + ancestorScroll = true, + ancestorResize = true, + elementResize = typeof ResizeObserver === "function", + layoutShift = typeof IntersectionObserver === "function", + animationFrame = false + } = options; + const referenceEl = unwrapElement(reference); + const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : []; + ancestors.forEach((ancestor) => { + ancestorScroll && ancestor.addEventListener("scroll", update, { + passive: true + }); + ancestorResize && ancestor.addEventListener("resize", update); + }); + const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null; + let reobserveFrame = -1; + let resizeObserver = null; + if (elementResize) { + resizeObserver = new ResizeObserver((_ref) => { + let [firstEntry] = _ref; + if (firstEntry && firstEntry.target === referenceEl && resizeObserver) { + resizeObserver.unobserve(floating); + cancelAnimationFrame(reobserveFrame); + reobserveFrame = requestAnimationFrame(() => { + resizeObserver && resizeObserver.observe(floating); + }); + } + update(); + }); + if (referenceEl && !animationFrame) { + resizeObserver.observe(referenceEl); + } + resizeObserver.observe(floating); + } + let frameId; + let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null; + if (animationFrame) { + frameLoop(); + } + function frameLoop() { + const nextRefRect = getBoundingClientRect(reference); + if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) { + update(); + } + prevRefRect = nextRefRect; + frameId = requestAnimationFrame(frameLoop); + } + update(); + return () => { + ancestors.forEach((ancestor) => { + ancestorScroll && ancestor.removeEventListener("scroll", update); + ancestorResize && ancestor.removeEventListener("resize", update); + }); + cleanupIo && cleanupIo(); + resizeObserver && resizeObserver.disconnect(); + resizeObserver = null; + if (animationFrame) { + cancelAnimationFrame(frameId); + } + }; + } + var computePosition2 = (reference, floating, options) => { + const cache = /* @__PURE__ */ new Map(); + const mergedOptions = { + platform, + ...options + }; + const platformWithCache = { + ...mergedOptions.platform, + _c: cache + }; + return computePosition(reference, floating, { + ...mergedOptions, + platform: platformWithCache + }); + }; + function src_default7(Alpine25) { + Alpine25.magic("anchor", (el) => { + if (!el._x_anchor) + throw "Alpine: No x-anchor directive found on element using $anchor..."; + return el._x_anchor; + }); + Alpine25.interceptClone((from, to) => { + if (from && from._x_anchor && !to._x_anchor) { + to._x_anchor = from._x_anchor; + } + }); + Alpine25.directive("anchor", Alpine25.skipDuringClone( + (el, { expression, modifiers, value }, { evaluate: evaluate2, effect, cleanup }) => { + let { placement, offsetValue, unstyled, strategy, allowFlip } = getOptions(modifiers); + el._x_anchor = Alpine25.reactive({ x: 0, y: 0 }); + let previousReference = null; + let release = null; + effect(() => { + let reference = evaluate2(expression); + if (!reference) + return; + if (previousReference !== reference) { + if (release) + release(); + previousReference = reference; + let compute = () => { + let previousValue; + computePosition2(reference, el, { + placement, + strategy, + middleware: [allowFlip && flip(), shift({ padding: 5 }), offset(offsetValue)] + }).then(({ x, y }) => { + unstyled || setStyles(el, x, y, strategy); + if (JSON.stringify({ x, y }) !== previousValue) { + el._x_anchor.x = x; + el._x_anchor.y = y; + } + previousValue = JSON.stringify({ x, y }); + }); + }; + release = autoUpdate(reference, el, () => compute()); + } + }); + cleanup(() => { + if (release) + release(); + }); + }, + (el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => { + let { placement, offsetValue, unstyled, strategy } = getOptions(modifiers); + if (el._x_anchor) { + unstyled || setStyles(el, el._x_anchor.x, el._x_anchor.y, strategy); + } + } + )); + } + function setStyles(el, x, y, strategy = "absolute") { + Object.assign(el.style, { + left: x + "px", + top: y + "px", + position: strategy + }); + } + function getOptions(modifiers) { + let positions = ["top", "top-start", "top-end", "right", "right-start", "right-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end"]; + let placement = positions.find((i) => modifiers.includes(i)); + let offsetValue = 0; + if (modifiers.includes("offset")) { + let idx = modifiers.findIndex((i) => i === "offset"); + offsetValue = modifiers[idx + 1] !== void 0 ? Number(modifiers[idx + 1]) : offsetValue; + } + let unstyled = modifiers.includes("no-style"); + let allowFlip = !modifiers.includes("noflip"); + let strategy = modifiers.includes("fixed") ? "fixed" : "absolute"; + return { placement, offsetValue, unstyled, strategy, allowFlip }; + } + var module_default7 = src_default7; + + // js/plugins/history/utils.js + function unwrap(object) { + if (object === void 0) + return void 0; + return JSON.parse(JSON.stringify(object)); + } + function batch(callback) { + let batch2 = { + queued: false, + updates: {}, + add(updates) { + Object.assign(batch2.updates, updates); + if (batch2.queued) + return; + batch2.queued = true; + queueMicrotask(batch2.flush); + }, + flush() { + if (Object.keys(batch2.updates).length) { + callback(batch2.updates); + } + batch2.queued = false; + batch2.updates = {}; + } + }; + return batch2; + } + + // js/plugins/history/coordinator.js + var HistoryCoordinator = class { + constructor() { + this.url = null; + this.errorHandlers = {}; + this.batch = batch((updates) => { + let url = this.getUrl(); + this.writeToHistory("replaceState", url, (state) => { + state.alpine = { ...state.alpine, ...unwrap(updates) }; + return state; + }); + this.url = null; + }); + } + addErrorHandler(key, callback) { + this.errorHandlers[key] = callback; + } + getUrl() { + if (this.url) { + if (this.url instanceof URL) + this.url.hash = window.location.hash; + return this.url; + } + return new URL(window.location.href); + } + replaceState(url, updates) { + this.url = url; + this.batch.add(updates); + } + pushState(url, updates) { + this.batch.flush(); + this.writeToHistory("pushState", url, (state) => { + state = { alpine: { ...state.alpine, ...unwrap(updates) } }; + return state; + }); + } + writeToHistory(method, url, callback) { + let state = window.history.state || {}; + if (!state.alpine) + state.alpine = {}; + state = callback(state); + try { + window.history[method](state, "", url.toString()); + } catch (error2) { + Object.values(this.errorHandlers).forEach( + (handler) => typeof handler === "function" && handler(error2, url) + ); + this.errorHandlers = {}; + console.error(error2); + } + } + }; + var historyCoordinator = new HistoryCoordinator(); + var coordinator_default = historyCoordinator; + + // js/plugins/navigate/history.js + var Snapshot = class { + constructor(url, html) { + this.url = url; + this.html = html; + } + }; + var snapshotCache = { + currentKey: null, + currentUrl: null, + keys: [], + lookup: {}, + limit: 10, + has(location) { + return this.lookup[location] !== void 0; + }, + retrieve(location) { + let snapshot = this.lookup[location]; + if (snapshot === void 0) + throw "No back button cache found for current location: " + location; + return snapshot; + }, + replace(key, snapshot) { + if (this.has(key)) { + this.lookup[key] = snapshot; + } else { + this.push(key, snapshot); + } + }, + push(key, snapshot) { + this.lookup[key] = snapshot; + let index2 = this.keys.indexOf(key); + if (index2 > -1) + this.keys.splice(index2, 1); + this.keys.unshift(key); + this.trim(); + }, + trim() { + for (let key of this.keys.splice(this.limit)) { + delete this.lookup[key]; + } + } + }; + var currentPageStatus = null; + function storeCurrentPageStatus(status) { + currentPageStatus = status; + } + function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() { + let url = coordinator_default.getUrl(); + replaceUrl(url, document.documentElement.outerHTML); + } + function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(key, url) { + let html = document.documentElement.outerHTML; + snapshotCache.replace(key, new Snapshot(url, html)); + } + function whenTheBackOrForwardButtonIsClicked(registerFallback, handleHtml) { + let fallback2; + registerFallback((i) => fallback2 = i); + window.addEventListener("popstate", (e) => { + let state = e.state || {}; + let alpine = state.alpine || {}; + if (currentPageStatus && (currentPageStatus < 200 || currentPageStatus >= 300)) { + return window.location.href = alpine.url; + } + if (Object.keys(state).length === 0) + return; + if (!alpine.snapshotIdx) + return; + if (snapshotCache.has(alpine.snapshotIdx)) { + let snapshot = snapshotCache.retrieve(alpine.snapshotIdx); + handleHtml(snapshot.html, snapshot.url, snapshotCache.currentUrl, snapshotCache.currentKey); + snapshotCache.currentKey = alpine.snapshotIdx; + snapshotCache.currentUrl = snapshot.url; + } else { + snapshotCache.currentKey = null; + snapshotCache.currentUrl = null; + fallback2(alpine.url); + } + }); + } + function updateUrlAndStoreLatestHtmlForFutureBackButtons(html, destination) { + pushUrl(destination, html); + } + function pushUrl(url, html) { + updateUrl("pushState", url, html); + } + function replaceUrl(url, html) { + updateUrl("replaceState", url, html); + } + function updateUrl(method, url, html) { + let key = url.toString() + "-" + Math.random(); + method === "pushState" ? snapshotCache.push(key, new Snapshot(url, html)) : snapshotCache.replace(key = snapshotCache.currentKey ?? key, new Snapshot(url, html)); + coordinator_default.addErrorHandler("navigate", (error2) => { + if (error2 instanceof DOMException && error2.name === "SecurityError") { + console.error( + "Livewire: You can't use wire:navigate with a link to a different root domain: " + url + ); + } + }); + coordinator_default[method](url, { snapshotIdx: key, url: url.toString() }); + snapshotCache.currentKey = key; + snapshotCache.currentUrl = url; + } + + // js/plugins/navigate/links.js + function whenThisLinkIsPressed(el, callback) { + let isProgrammaticClick = (e) => !e.isTrusted; + let isNotPlainLeftClick = (e) => e.which > 1 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey; + let isNotPlainEnterKey = (e) => e.which !== 13 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey; + el.addEventListener("click", (e) => { + if (isProgrammaticClick(e)) { + e.preventDefault(); + callback((whenReleased) => whenReleased()); + return; + } + if (isNotPlainLeftClick(e)) + return; + e.preventDefault(); + }); + el.addEventListener("mousedown", (e) => { + if (isNotPlainLeftClick(e)) + return; + e.preventDefault(); + callback((whenReleased) => { + let handler = (e2) => { + e2.preventDefault(); + requestAnimationFrame(() => { + whenReleased(); + }); + el.removeEventListener("mouseup", handler); + }; + el.addEventListener("mouseup", handler); + }); + }); + el.addEventListener("keydown", (e) => { + if (isNotPlainEnterKey(e)) + return; + e.preventDefault(); + callback((whenReleased) => whenReleased()); + }); + } + function whenThisLinkIsHoveredFor(el, ms = 60, callback) { + el.addEventListener("mouseenter", (e) => { + let timeout = setTimeout(() => { + callback(e); + }, ms); + let handler = () => { + clearTimeout(timeout); + el.removeEventListener("mouseleave", handler); + }; + el.addEventListener("mouseleave", handler); + }); + } + function extractDestinationFromLink(linkEl) { + return createUrlObjectFromString2(linkEl.getAttribute("href")); + } + function createUrlObjectFromString2(urlString) { + return urlString !== null && new URL(urlString, document.baseURI); + } + function getUriStringFromUrlObject(urlObject) { + return urlObject.pathname + urlObject.search + urlObject.hash; + } + + // js/plugins/navigate/fetch.js + function fetchHtml(destination, callback, errorCallback) { + let uri = getUriStringFromUrlObject(destination); + performFetch(uri, (html, finalDestination, status) => { + storeCurrentPageStatus(status); + callback(html, finalDestination); + }, errorCallback); + } + function performFetch(uri, callback, errorCallback) { + sendNavigateRequest(uri, callback, errorCallback); + } + + // js/plugins/navigate/prefetch.js + var prefetches = {}; + var cacheDuration = 3e4; + function prefetchHtml(destination, callback, errorCallback) { + let uri = getUriStringFromUrlObject(destination); + if (prefetches[uri]) + return; + prefetches[uri] = { finished: false, html: null, whenFinished: () => setTimeout(() => delete prefetches[uri], cacheDuration) }; + performFetch(uri, (html, routedUri, status) => { + storeCurrentPageStatus(status); + callback(html, routedUri); + }, () => { + delete prefetches[uri]; + errorCallback(); + }); + } + function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination) { + let state = prefetches[getUriStringFromUrlObject(destination)]; + state.html = html; + state.finished = true; + state.finalDestination = finalDestination; + state.whenFinished(); + } + function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) { + let uri = getUriStringFromUrlObject(destination); + if (!prefetches[uri]) + return ifNoPrefetchExists(); + if (prefetches[uri].finished) { + let html = prefetches[uri].html; + let finalDestination = prefetches[uri].finalDestination; + delete prefetches[uri]; + return receive(html, finalDestination); + } else { + prefetches[uri].whenFinished = () => { + let html = prefetches[uri].html; + let finalDestination = prefetches[uri].finalDestination; + delete prefetches[uri]; + receive(html, finalDestination); + }; + } + } + + // js/plugins/navigate/teleport.js + var import_alpinejs4 = __toESM(require_module_cjs()); + function packUpPersistedTeleports(persistedEl) { + import_alpinejs4.default.mutateDom(() => { + persistedEl.querySelectorAll("[data-teleport-template]").forEach((i) => i._x_teleport.remove()); + }); + } + function removeAnyLeftOverStaleTeleportTargets(body) { + import_alpinejs4.default.mutateDom(() => { + body.querySelectorAll("[data-teleport-target]").forEach((i) => i.remove()); + }); + } + function unPackPersistedTeleports(persistedEl) { + import_alpinejs4.default.walk(persistedEl, (el, skip) => { + if (!el._x_teleport) + return; + el._x_teleportPutBack(); + skip(); + }); + } + function isTeleportTarget(el) { + return el.hasAttribute("data-teleport-target"); + } + + // js/plugins/navigate/scroll.js + function storeScrollInformationInHtmlBeforeNavigatingAway() { + document.body.setAttribute("data-scroll-x", document.body.scrollLeft); + document.body.setAttribute("data-scroll-y", document.body.scrollTop); + document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:navigate\\:scroll]"]).forEach((el) => { + el.setAttribute("data-scroll-x", el.scrollLeft); + el.setAttribute("data-scroll-y", el.scrollTop); + }); + } + function restoreScrollPositionOrScrollToTop() { + let scroll = (el) => { + if (!el.hasAttribute("data-scroll-x")) { + window.scrollTo({ top: 0, left: 0, behavior: "instant" }); + } else { + el.scrollTo({ + top: Number(el.getAttribute("data-scroll-y")), + left: Number(el.getAttribute("data-scroll-x")), + behavior: "instant" + }); + el.removeAttribute("data-scroll-x"); + el.removeAttribute("data-scroll-y"); + } + }; + queueMicrotask(() => { + queueMicrotask(() => { + scroll(document.body); + document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:navigate\\:scroll]"]).forEach(scroll); + }); + }); + } + + // js/plugins/navigate/persist.js + var import_alpinejs5 = __toESM(require_module_cjs()); + var els = {}; + function storePersistantElementsForLater(callback) { + els = {}; + document.querySelectorAll("[x-persist]").forEach((i) => { + els[i.getAttribute("x-persist")] = i; + callback(i); + import_alpinejs5.default.mutateDom(() => { + i.remove(); + }); + }); + } + function putPersistantElementsBack(callback) { + let usedPersists = []; + document.querySelectorAll("[x-persist]").forEach((i) => { + let old = els[i.getAttribute("x-persist")]; + if (!old) + return; + usedPersists.push(i.getAttribute("x-persist")); + old._x_wasPersisted = true; + callback(old, i); + import_alpinejs5.default.mutateDom(() => { + i.replaceWith(old); + }); + }); + Object.entries(els).forEach(([key, el]) => { + if (usedPersists.includes(key)) + return; + import_alpinejs5.default.destroyTree(el); + }); + els = {}; + } + function isPersistedElement(el) { + return el.hasAttribute("x-persist"); + } + + // js/plugins/navigate/bar.js + var import_nprogress = __toESM(require_nprogress()); + import_nprogress.default.configure({ + minimum: 0.1, + trickleSpeed: 200, + showSpinner: false, + parent: "body" + }); + injectStyles(); + var inProgress = false; + function showAndStartProgressBar() { + inProgress = true; + setTimeout(() => { + if (!inProgress) + return; + import_nprogress.default.start(); + }, 150); + } + function finishAndHideProgressBar() { + inProgress = false; + import_nprogress.default.done(); + } + function removeAnyLeftOverStaleProgressBars() { + import_nprogress.default.remove(); + } + function injectStyles() { + let style = document.createElement("style"); + style.innerHTML = `/* Make clicks pass-through */ + + #nprogress { + pointer-events: none; + } + + #nprogress .bar { + background: var(--livewire-progress-bar-color, #29d); + + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; + } + + /* Fancy blur effect */ + #nprogress .peg { + display: block; + position: absolute; + right: 0px; + width: 100px; + height: 100%; + box-shadow: 0 0 10px var(--livewire-progress-bar-color, #29d), 0 0 5px var(--livewire-progress-bar-color, #29d); + opacity: 1.0; + + -webkit-transform: rotate(3deg) translate(0px, -4px); + -ms-transform: rotate(3deg) translate(0px, -4px); + transform: rotate(3deg) translate(0px, -4px); + } + + /* Remove these to get rid of the spinner */ + #nprogress .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 15px; + right: 15px; + } + + #nprogress .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + + border: solid 2px transparent; + border-top-color: var(--livewire-progress-bar-color, #29d); + border-left-color: var(--livewire-progress-bar-color, #29d); + border-radius: 50%; + + -webkit-animation: nprogress-spinner 400ms linear infinite; + animation: nprogress-spinner 400ms linear infinite; + } + + .nprogress-custom-parent { + overflow: hidden; + position: relative; + } + + .nprogress-custom-parent #nprogress .spinner, + .nprogress-custom-parent #nprogress .bar { + position: absolute; + } + + @-webkit-keyframes nprogress-spinner { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); } + } + @keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + `; + let nonce2 = getNonce(); + if (nonce2) + style.nonce = nonce2; + document.head.appendChild(style); + } + + // js/plugins/navigate/popover.js + function packUpPersistedPopovers(persistedEl) { + if (!isPopoverSupported()) + return; + persistedEl.querySelectorAll(":popover-open").forEach((el) => { + el.setAttribute("data-navigate-popover-open", ""); + let animations = el.getAnimations(); + el._pausedAnimations = animations.map((animation) => ({ + keyframes: animation.effect.getKeyframes(), + options: { + duration: animation.effect.getTiming().duration, + easing: animation.effect.getTiming().easing, + fill: animation.effect.getTiming().fill, + iterations: animation.effect.getTiming().iterations + }, + currentTime: animation.currentTime, + playState: animation.playState + })); + animations.forEach((i) => i.pause()); + }); + } + function unPackPersistedPopovers(persistedEl) { + if (!isPopoverSupported()) + return; + persistedEl.querySelectorAll("[data-navigate-popover-open]").forEach((el) => { + el.removeAttribute("data-navigate-popover-open"); + queueMicrotask(() => { + if (!el.isConnected) + return; + el.showPopover(); + el.getAnimations().forEach((i) => i.finish()); + if (el._pausedAnimations) { + el._pausedAnimations.forEach(({ keyframes, options, currentTime, now, playState }) => { + let animation = el.animate(keyframes, options); + animation.currentTime = currentTime; + }); + delete el._pausedAnimations; + } + }); + }); + } + function isPopoverSupported() { + return typeof document.createElement("div").showPopover === "function"; + } + + // js/plugins/navigate/page.js + var oldBodyScriptTagHashes = []; + var attributesExemptFromScriptTagHashing = [ + "data-csrf", + "nonce", + "aria-hidden" + ]; + function swapCurrentPageWithNewHtml(html, andThen) { + html = replaceNoncesInHtml(html); + let newDocument = new DOMParser().parseFromString(html, "text/html"); + let newHtml = newDocument.documentElement; + let newBody = document.adoptNode(newDocument.body); + let newHead = document.adoptNode(newDocument.head); + oldBodyScriptTagHashes = oldBodyScriptTagHashes.concat(Array.from(document.body.querySelectorAll("script")).map((i) => { + return simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)); + })); + let afterRemoteScriptsHaveLoaded = () => { + }; + replaceHtmlAttributes(newHtml); + mergeNewHead(newHead).finally(() => { + afterRemoteScriptsHaveLoaded(); + }); + prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes); + let oldBody = document.body; + document.body.replaceWith(newBody); + Alpine.destroyTree(oldBody); + andThen((i) => afterRemoteScriptsHaveLoaded = i); + } + function prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes2) { + newBody.querySelectorAll("script").forEach((i) => { + if (i.hasAttribute("data-navigate-once")) { + let hash = simpleHash( + ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing) + ); + if (oldBodyScriptTagHashes2.includes(hash)) + return; + } + i.replaceWith(cloneScriptTag(i)); + }); + } + function replaceHtmlAttributes(newHtmlElement) { + let currentHtmlElement = document.documentElement; + Array.from(newHtmlElement.attributes).forEach((attr) => { + const name = attr.name; + const value = attr.value; + if (currentHtmlElement.getAttribute(name) !== value) { + currentHtmlElement.setAttribute(name, value); + } + }); + Array.from(currentHtmlElement.attributes).forEach((attr) => { + if (!newHtmlElement.hasAttribute(attr.name)) { + currentHtmlElement.removeAttribute(attr.name); + } + }); + } + function mergeNewHead(newHead) { + let children = Array.from(document.head.children); + let headChildrenHtmlLookup = children.map( + (i) => ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing) + ); + let garbageCollector = document.createDocumentFragment(); + let touchedHeadElements = []; + let remoteScriptsPromises = []; + for (let child of Array.from(newHead.children)) { + if (isAsset(child)) { + let childHtml = ignoreAttributes(child.outerHTML, attributesExemptFromScriptTagHashing); + if (!headChildrenHtmlLookup.includes(childHtml)) { + if (isTracked(child)) { + if (ifTheQueryStringChangedSinceLastRequest(child, children)) { + setTimeout(() => window.location.reload()); + } + } + if (isScript(child)) { + try { + remoteScriptsPromises.push( + injectScriptTagAndWaitForItToFullyLoad( + cloneScriptTag(child) + ) + ); + } catch (error2) { + } + } else { + document.head.appendChild(child); + } + } else { + garbageCollector.appendChild(child); + } + touchedHeadElements.push(child); + } + } + for (let child of Array.from(document.head.children)) { + if (!isAsset(child)) + child.remove(); + } + for (let child of Array.from(newHead.children)) { + if (child.tagName.toLowerCase() === "noscript") + continue; + document.head.appendChild(child); + } + return Promise.all(remoteScriptsPromises); + } + async function injectScriptTagAndWaitForItToFullyLoad(script) { + return new Promise((resolve, reject) => { + if (script.src) { + script.onload = () => resolve(); + script.onerror = () => reject(); + } else { + resolve(); + } + document.head.appendChild(script); + }); + } + function isTracked(el) { + return el.hasAttribute("data-navigate-track"); + } + function ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) { + let [uri, queryString] = extractUriAndQueryString(el); + return currentHeadChildren.some((child) => { + if (!isTracked(child)) + return false; + let [currentUri, currentQueryString] = extractUriAndQueryString(child); + if (currentUri === uri && queryString !== currentQueryString) + return true; + }); + } + function extractUriAndQueryString(el) { + let url = isScript(el) ? el.src : el.href; + return url.split("?"); + } + function isAsset(el) { + return el.tagName.toLowerCase() === "link" && el.getAttribute("rel").toLowerCase() === "stylesheet" || el.tagName.toLowerCase() === "style" || el.tagName.toLowerCase() === "script"; + } + function isScript(el) { + return el.tagName.toLowerCase() === "script"; + } + function simpleHash(str) { + return str.split("").reduce((a, b) => { + a = (a << 5) - a + b.charCodeAt(0); + return a & a; + }, 0); + } + function ignoreAttributes(subject, attributesToRemove) { + let result = subject; + attributesToRemove.forEach((attr) => { + const regex = new RegExp(`${attr}="[^"]*"|${attr}='[^']*'`, "g"); + result = result.replace(regex, ""); + }); + result = result.replaceAll(" ", ""); + return result.trim(); + } + + // js/plugins/navigate/index.js + var enablePersist = true; + var showProgressBar = true; + var restoreScroll = true; + var autofocus = false; + function navigate_default(Alpine25) { + Alpine25.navigate = (url, options = {}) => { + let { preserveScroll = false } = options; + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { + url: destination, + history: false, + cached: false + }); + if (prevented) + return; + navigateTo(destination, { preserveScroll }); + }; + Alpine25.navigate.disableProgressBar = () => { + showProgressBar = false; + }; + Alpine25.addInitSelector(() => `[${Alpine25.prefixed("navigate")}]`); + Alpine25.directive("navigate", (el, { modifiers }) => { + let shouldPrefetchOnHover = modifiers.includes("hover"); + let preserveScroll = modifiers.includes("preserve-scroll"); + shouldPrefetchOnHover && whenThisLinkIsHoveredFor(el, 60, () => { + let destination = extractDestinationFromLink(el); + if (!destination) + return; + prefetchHtml(destination, (html, finalDestination) => { + storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination); + }, () => { + showProgressBar && finishAndHideProgressBar(); + }); + }); + whenThisLinkIsPressed(el, (whenItIsReleased) => { + let destination = extractDestinationFromLink(el); + if (!destination) + return; + prefetchHtml(destination, (html, finalDestination) => { + storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination); + }, () => { + showProgressBar && finishAndHideProgressBar(); + }); + whenItIsReleased(() => { + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { + url: destination, + history: false, + cached: false + }); + if (prevented) + return; + navigateTo(destination, { preserveScroll }); + }); + }); + }); + function navigateTo(destination, { preserveScroll = false, shouldPushToHistoryState = true }) { + showProgressBar && showAndStartProgressBar(); + fetchHtmlOrUsePrefetchedHtml(destination, (html, finalDestination) => { + let swapCallbacks = []; + fireEventForOtherLibrariesToHookInto("alpine:navigating", { + onSwap: (callback) => swapCallbacks.push(callback) + }); + restoreScroll && storeScrollInformationInHtmlBeforeNavigatingAway(); + cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement(); + shouldPushToHistoryState && updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks(); + preventAlpineFromPickingUpDomChanges(Alpine25, (andAfterAllThis) => { + enablePersist && storePersistantElementsForLater((persistedEl) => { + packUpPersistedTeleports(persistedEl); + packUpPersistedPopovers(persistedEl); + }); + if (shouldPushToHistoryState) { + updateUrlAndStoreLatestHtmlForFutureBackButtons(html, finalDestination); + } else { + replaceUrl(finalDestination, html); + } + swapCurrentPageWithNewHtml(html, (afterNewScriptsAreDoneLoading) => { + removeAnyLeftOverStaleTeleportTargets(document.body); + enablePersist && putPersistantElementsBack((persistedEl, newStub) => { + unPackPersistedTeleports(persistedEl); + unPackPersistedPopovers(persistedEl); + }); + !preserveScroll && restoreScrollPositionOrScrollToTop(); + swapCallbacks.forEach((callback) => callback()); + afterNewScriptsAreDoneLoading(() => { + andAfterAllThis(() => { + setTimeout(() => { + autofocus && autofocusElementsWithTheAutofocusAttribute(); + }); + nowInitializeAlpineOnTheNewPage(Alpine25); + fireEventForOtherLibrariesToHookInto("alpine:navigated"); + showProgressBar && finishAndHideProgressBar(); + }); + }); + }); + }); + }, () => { + showProgressBar && finishAndHideProgressBar(); + }); + } + whenTheBackOrForwardButtonIsClicked( + (ifThePageBeingVisitedHasntBeenCached) => { + ifThePageBeingVisitedHasntBeenCached((url) => { + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { + url: destination, + history: true, + cached: false + }); + if (prevented) + return; + navigateTo(destination, { shouldPushToHistoryState: false }); + }); + }, + (html, url, currentPageUrl, currentPageKey) => { + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { + url: destination, + history: true, + cached: true + }); + if (prevented) + return; + storeScrollInformationInHtmlBeforeNavigatingAway(); + let swapCallbacks = []; + fireEventForOtherLibrariesToHookInto("alpine:navigating", { + onSwap: (callback) => swapCallbacks.push(callback) + }); + updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageKey, currentPageUrl); + preventAlpineFromPickingUpDomChanges(Alpine25, (andAfterAllThis) => { + enablePersist && storePersistantElementsForLater((persistedEl) => { + packUpPersistedTeleports(persistedEl); + packUpPersistedPopovers(persistedEl); + }); + swapCurrentPageWithNewHtml(html, () => { + removeAnyLeftOverStaleProgressBars(); + removeAnyLeftOverStaleTeleportTargets(document.body); + enablePersist && putPersistantElementsBack((persistedEl, newStub) => { + unPackPersistedTeleports(persistedEl); + unPackPersistedPopovers(persistedEl); + }); + restoreScrollPositionOrScrollToTop(); + swapCallbacks.forEach((callback) => callback()); + andAfterAllThis(() => { + autofocus && autofocusElementsWithTheAutofocusAttribute(); + nowInitializeAlpineOnTheNewPage(Alpine25); + fireEventForOtherLibrariesToHookInto("alpine:navigated"); + }); + }); + }); + } + ); + setTimeout(() => { + fireEventForOtherLibrariesToHookInto("alpine:navigated"); + }); + } + function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCallback) { + getPretchedHtmlOr(fromDestination, callback, () => { + fetchHtml(fromDestination, callback, errorCallback); + }); + } + function preventAlpineFromPickingUpDomChanges(Alpine25, callback) { + Alpine25.stopObservingMutations(); + callback((afterAllThis) => { + Alpine25.startObservingMutations(); + queueMicrotask(() => { + afterAllThis(); + }); + }); + } + function fireEventForOtherLibrariesToHookInto(name, detail) { + let event = new CustomEvent(name, { + cancelable: true, + bubbles: true, + detail + }); + document.dispatchEvent(event); + return event.defaultPrevented; + } + function nowInitializeAlpineOnTheNewPage(Alpine25) { + Alpine25.initTree(document.body, void 0, (el, skip) => { + if (el._x_wasPersisted) + skip(); + }); + } + function autofocusElementsWithTheAutofocusAttribute() { + document.querySelector("[autofocus]") && document.querySelector("[autofocus]").focus(); + } + function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() { + let walker = function(root, callback) { + Alpine.walk(root, (el, skip) => { + if (isPersistedElement(el)) + skip(); + if (isTeleportTarget(el)) + skip(); + else + callback(el, skip); + }); + }; + Alpine.destroyTree(document.body, walker); + } + + // js/plugins/history/index.js + function history(Alpine25) { + Alpine25.magic("queryString", (el, { interceptor }) => { + let alias; + let alwaysShow = false; + let usePush = false; + return interceptor((initialSeedValue, getter, setter, path, key) => { + let queryKey = alias || path; + let { initial, replace: replace2, push: push2, pop } = track(queryKey, initialSeedValue, alwaysShow); + setter(initial); + if (!usePush) { + Alpine25.effect(() => replace2(getter())); + } else { + Alpine25.effect(() => push2(getter())); + pop(async (newValue) => { + setter(newValue); + let tillTheEndOfTheMicrotaskQueue = () => Promise.resolve(); + await tillTheEndOfTheMicrotaskQueue(); + }); + } + return initial; + }, (func) => { + func.alwaysShow = () => { + alwaysShow = true; + return func; + }; + func.usePush = () => { + usePush = true; + return func; + }; + func.as = (key) => { + alias = key; + return func; + }; + }); + }); + Alpine25.history = { track }; + } + function track(name, initialSeedValue, alwaysShow = false, except = null) { + let { has, get, set, remove } = queryStringUtils(); + let url = coordinator_default.getUrl(); + let isInitiallyPresentInUrl = has(url, name); + let initialValue = isInitiallyPresentInUrl ? get(url, name) : initialSeedValue; + let initialValueMemo = JSON.stringify(initialValue); + let exceptValueMemo = JSON.stringify(except); + let hasReturnedToInitialValue = (newValue) => JSON.stringify(newValue) === initialValueMemo; + let hasReturnedToExceptValue = (newValue) => JSON.stringify(newValue) === exceptValueMemo; + if (alwaysShow) + url = set(url, name, initialValue); + replace(url, name, { value: initialValue }); + let lock = false; + let update = (strategy, newValue) => { + if (lock) + return; + let url2 = coordinator_default.getUrl(); + if (!alwaysShow && !isInitiallyPresentInUrl && hasReturnedToInitialValue(newValue)) { + url2 = remove(url2, name); + } else if (newValue === void 0) { + url2 = remove(url2, name); + } else if (!alwaysShow && hasReturnedToExceptValue(newValue)) { + url2 = remove(url2, name); + } else { + url2 = set(url2, name, newValue); + } + strategy(url2, name, { value: newValue }); + }; + return { + initial: initialValue, + replace(newValue) { + update(replace, newValue); + }, + push(newValue) { + update(push, newValue); + }, + pop(receiver) { + let handler = (e) => { + if (!e.state || !e.state.alpine) + return; + Object.entries(e.state.alpine).forEach(([iName, { value: newValue }]) => { + if (iName !== name) + return; + lock = true; + let result = receiver(newValue); + if (result instanceof Promise) { + result.finally(() => lock = false); + } else { + lock = false; + } + }); + }; + window.addEventListener("popstate", handler); + return () => window.removeEventListener("popstate", handler); + } + }; + } + function replace(url, key, object) { + coordinator_default.replaceState(url, { [key]: object }); + } + function push(url, key, object) { + coordinator_default.pushState(url, { [key]: object }); + } + function queryStringUtils() { + return { + has(url, key) { + let search = url.search; + if (!search) + return false; + let data = fromQueryString(search, key); + return Object.keys(data).includes(key); + }, + get(url, key) { + let search = url.search; + if (!search) + return false; + let data = fromQueryString(search, key); + return data[key]; + }, + set(url, key, value) { + let data = fromQueryString(url.search, key); + data[key] = stripNulls(unwrap(value)); + url.search = toQueryString(data); + return url; + }, + remove(url, key) { + let data = fromQueryString(url.search, key); + delete data[key]; + url.search = toQueryString(data); + return url; + } + }; + } + function stripNulls(value) { + if (!isObjecty(value)) + return value; + for (let key in value) { + if (value[key] === null) + delete value[key]; + else + value[key] = stripNulls(value[key]); + } + return value; + } + function toQueryString(data) { + let isObjecty2 = (subject) => typeof subject === "object" && subject !== null; + let buildQueryStringEntries = (data2, entries2 = {}, baseKey = "") => { + Object.entries(data2).forEach(([iKey, iValue]) => { + let key = baseKey === "" ? iKey : `${baseKey}[${iKey}]`; + if (iValue === null) { + entries2[key] = ""; + } else if (!isObjecty2(iValue)) { + entries2[key] = encodeURIComponent(iValue).replaceAll("%20", "+").replaceAll("%2C", ","); + } else { + entries2 = { ...entries2, ...buildQueryStringEntries(iValue, entries2, key) }; + } + }); + return entries2; + }; + let entries = buildQueryStringEntries(data); + return Object.entries(entries).map(([key, value]) => `${key}=${value}`).join("&"); + } + function fromQueryString(search, queryKey) { + search = search.replace("?", ""); + if (search === "") + return {}; + let insertDotNotatedValueIntoData = (key, value, data2) => { + let [first2, second, ...rest] = key.split("."); + if (!second) + return data2[key] = value; + if (data2[first2] === void 0) { + data2[first2] = isNaN(second) ? {} : []; + } + insertDotNotatedValueIntoData([second, ...rest].join("."), value, data2[first2]); + }; + let entries = search.split("&").map((i) => i.split("=")); + let data = /* @__PURE__ */ Object.create(null); + entries.forEach(([key, value]) => { + if (typeof value == "undefined") + return; + value = decodeURIComponent(value.replaceAll("+", "%20")); + let decodedKey = decodeURIComponent(key); + let shouldBeHandledAsArray = decodedKey.includes("[") && decodedKey.startsWith(queryKey); + if (!shouldBeHandledAsArray) { + data[key] = value; + } else { + let dotNotatedKey = decodedKey.replaceAll("[", ".").replaceAll("]", ""); + insertDotNotatedValueIntoData(dotNotatedKey, value, data); + } + }); + return data; + } + + // node_modules/@alpinejs/morph/dist/module.esm.js + function morph(from, toHtml, options) { + monkeyPatchDomSetAttributeToAllowAtSymbols(); + let context = createMorphContext(options); + let toEl = typeof toHtml === "string" ? createElement(toHtml) : toHtml; + if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) { + toEl._x_dataStack = window.Alpine.closestDataStack(from); + toEl._x_dataStack && window.Alpine.cloneNode(from, toEl); + } + context.patch(from, toEl); + return from; + } + function morphBetween(startMarker, endMarker, toHtml, options = {}) { + monkeyPatchDomSetAttributeToAllowAtSymbols(); + let context = createMorphContext(options); + let fromContainer = startMarker.parentNode; + let fromBlock = new Block(startMarker, endMarker); + let toContainer = typeof toHtml === "string" ? (() => { + let container = document.createElement("div"); + container.insertAdjacentHTML("beforeend", toHtml); + return container; + })() : toHtml; + let toStartMarker = document.createComment("[morph-start]"); + let toEndMarker = document.createComment("[morph-end]"); + toContainer.insertBefore(toStartMarker, toContainer.firstChild); + toContainer.appendChild(toEndMarker); + let toBlock = new Block(toStartMarker, toEndMarker); + if (window.Alpine && window.Alpine.closestDataStack) { + toContainer._x_dataStack = window.Alpine.closestDataStack(fromContainer); + toContainer._x_dataStack && window.Alpine.cloneNode(fromContainer, toContainer); + } + context.patchChildren(fromBlock, toBlock); + } + function createMorphContext(options = {}) { + let defaultGetKey = (el) => el.getAttribute("key"); + let noop = () => { + }; + let context = { + key: options.key || defaultGetKey, + lookahead: options.lookahead || false, + updating: options.updating || noop, + updated: options.updated || noop, + removing: options.removing || noop, + removed: options.removed || noop, + adding: options.adding || noop, + added: options.added || noop + }; + context.patch = function(from, to) { + if (context.differentElementNamesTypesOrKeys(from, to)) { + return context.swapElements(from, to); + } + let updateChildrenOnly = false; + let skipChildren = false; + let skipUntil = (predicate) => context.skipUntilCondition = predicate; + if (shouldSkipChildren(context.updating, () => skipChildren = true, skipUntil, from, to, () => updateChildrenOnly = true)) + return; + if (from.nodeType === 1 && window.Alpine) { + window.Alpine.cloneNode(from, to); + if (from._x_teleport && to._x_teleport) { + context.patch(from._x_teleport, to._x_teleport); + } + } + if (textOrComment(to)) { + context.patchNodeValue(from, to); + context.updated(from, to); + return; + } + if (!updateChildrenOnly) { + context.patchAttributes(from, to); + } + context.updated(from, to); + if (!skipChildren) { + context.patchChildren(from, to); + } + }; + context.differentElementNamesTypesOrKeys = function(from, to) { + return from.nodeType != to.nodeType || from.nodeName != to.nodeName || context.getKey(from) != context.getKey(to); + }; + context.swapElements = function(from, to) { + if (shouldSkip(context.removing, from)) + return; + let toCloned = to.cloneNode(true); + if (shouldSkip(context.adding, toCloned)) + return; + from.replaceWith(toCloned); + context.removed(from); + context.added(toCloned); + }; + context.patchNodeValue = function(from, to) { + let value = to.nodeValue; + if (from.nodeValue !== value) { + from.nodeValue = value; + } + }; + context.patchAttributes = function(from, to) { + if (from._x_transitioning) + return; + if (from._x_isShown && !to._x_isShown) { + return; + } + if (!from._x_isShown && to._x_isShown) { + return; + } + let domAttributes = Array.from(from.attributes); + let toAttributes = Array.from(to.attributes); + for (let i = domAttributes.length - 1; i >= 0; i--) { + let name = domAttributes[i].name; + if (!to.hasAttribute(name)) { + if (name === "open" && from.nodeName === "DIALOG" && from.open) { + from.close(); + } else { + from.removeAttribute(name); + } + } + } + for (let i = toAttributes.length - 1; i >= 0; i--) { + let name = toAttributes[i].name; + let value = toAttributes[i].value; + if (from.getAttribute(name) !== value) { + from.setAttribute(name, value); + } + } + }; + context.patchChildren = function(from, to) { + let fromKeys = context.keyToMap(from.children); + let fromKeyHoldovers = {}; + let currentTo = getFirstNode(to); + let currentFrom = getFirstNode(from); + while (currentTo) { + seedingMatchingId(currentTo, currentFrom); + let toKey = context.getKey(currentTo); + let fromKey = context.getKey(currentFrom); + if (context.skipUntilCondition) { + let fromDone = !currentFrom || context.skipUntilCondition(currentFrom); + let toDone = !currentTo || context.skipUntilCondition(currentTo); + if (fromDone && toDone) { + context.skipUntilCondition = null; + } else { + if (!fromDone) + currentFrom = currentFrom && getNextSibling(from, currentFrom); + if (!toDone) + currentTo = currentTo && getNextSibling(to, currentTo); + continue; + } + } + if (!currentFrom) { + if (toKey && fromKeyHoldovers[toKey]) { + let holdover = fromKeyHoldovers[toKey]; + from.appendChild(holdover); + currentFrom = holdover; + fromKey = context.getKey(currentFrom); + } else { + if (!shouldSkip(context.adding, currentTo)) { + let clone2 = currentTo.cloneNode(true); + from.appendChild(clone2); + context.added(clone2); + } + currentTo = getNextSibling(to, currentTo); + continue; + } + } + let isIf = (node) => node && node.nodeType === 8 && node.textContent === "[if BLOCK]><![endif]"; + let isEnd = (node) => node && node.nodeType === 8 && node.textContent === "[if ENDBLOCK]><![endif]"; + if (isIf(currentTo) && isIf(currentFrom)) { + let nestedIfCount = 0; + let fromBlockStart = currentFrom; + while (currentFrom) { + let next = getNextSibling(from, currentFrom); + if (isIf(next)) { + nestedIfCount++; + } else if (isEnd(next) && nestedIfCount > 0) { + nestedIfCount--; + } else if (isEnd(next) && nestedIfCount === 0) { + currentFrom = next; + break; + } + currentFrom = next; + } + let fromBlockEnd = currentFrom; + nestedIfCount = 0; + let toBlockStart = currentTo; + while (currentTo) { + let next = getNextSibling(to, currentTo); + if (isIf(next)) { + nestedIfCount++; + } else if (isEnd(next) && nestedIfCount > 0) { + nestedIfCount--; + } else if (isEnd(next) && nestedIfCount === 0) { + currentTo = next; + break; + } + currentTo = next; + } + let toBlockEnd = currentTo; + let fromBlock = new Block(fromBlockStart, fromBlockEnd); + let toBlock = new Block(toBlockStart, toBlockEnd); + context.patchChildren(fromBlock, toBlock); + continue; + } + if (currentFrom.nodeType === 1 && context.lookahead && !currentFrom.isEqualNode(currentTo)) { + let nextToElementSibling = getNextSibling(to, currentTo); + let found = false; + while (!found && nextToElementSibling) { + if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) { + found = true; + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); + fromKey = context.getKey(currentFrom); + } + nextToElementSibling = getNextSibling(to, nextToElementSibling); + } + } + if (toKey !== fromKey) { + if (!toKey && fromKey) { + fromKeyHoldovers[fromKey] = currentFrom; + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); + fromKeyHoldovers[fromKey].remove(); + currentFrom = getNextSibling(from, currentFrom); + currentTo = getNextSibling(to, currentTo); + continue; + } + if (toKey && !fromKey) { + if (fromKeys[toKey]) { + currentFrom.replaceWith(fromKeys[toKey]); + currentFrom = fromKeys[toKey]; + fromKey = context.getKey(currentFrom); + } + } + if (toKey && fromKey) { + let fromKeyNode = fromKeys[toKey]; + if (fromKeyNode) { + fromKeyHoldovers[fromKey] = currentFrom; + currentFrom.replaceWith(fromKeyNode); + currentFrom = fromKeyNode; + fromKey = context.getKey(currentFrom); + } else { + fromKeyHoldovers[fromKey] = currentFrom; + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); + fromKeyHoldovers[fromKey].remove(); + currentFrom = getNextSibling(from, currentFrom); + currentTo = getNextSibling(to, currentTo); + continue; + } + } + } + let currentFromNext = currentFrom && getNextSibling(from, currentFrom); + context.patch(currentFrom, currentTo); + currentTo = currentTo && getNextSibling(to, currentTo); + currentFrom = currentFromNext; + } + let removals = []; + while (currentFrom) { + if (!shouldSkip(context.removing, currentFrom)) + removals.push(currentFrom); + currentFrom = getNextSibling(from, currentFrom); + } + while (removals.length) { + let domForRemoval = removals.shift(); + domForRemoval.remove(); + context.removed(domForRemoval); + } + }; + context.getKey = function(el) { + return el && el.nodeType === 1 && context.key(el); + }; + context.keyToMap = function(els2) { + let map = {}; + for (let el of els2) { + let theKey = context.getKey(el); + if (theKey) { + map[theKey] = el; + } + } + return map; + }; + context.addNodeBefore = function(parent, node, beforeMe) { + if (!shouldSkip(context.adding, node)) { + let clone2 = node.cloneNode(true); + parent.insertBefore(clone2, beforeMe); + context.added(clone2); + return clone2; + } + return node; + }; + return context; + } + morph.step = () => { + }; + morph.log = () => { + }; + function shouldSkip(hook, ...args) { + let skip = false; + hook(...args, () => skip = true); + return skip; + } + function shouldSkipChildren(hook, skipChildren, skipUntil, ...args) { + let skip = false; + hook(...args, () => skip = true, skipChildren, skipUntil); + return skip; + } + var patched = false; + function createElement(html) { + const template = document.createElement("template"); + template.innerHTML = html; + return template.content.firstElementChild; + } + function textOrComment(el) { + return el.nodeType === 3 || el.nodeType === 8; + } + var Block = class { + constructor(start2, end) { + this.startComment = start2; + this.endComment = end; + } + get children() { + let children = []; + let currentNode = this.startComment.nextSibling; + while (currentNode && currentNode !== this.endComment) { + children.push(currentNode); + currentNode = currentNode.nextSibling; + } + return children; + } + appendChild(child) { + this.endComment.before(child); + } + get firstChild() { + let first2 = this.startComment.nextSibling; + if (first2 === this.endComment) + return; + return first2; + } + nextNode(reference) { + let next = reference.nextSibling; + if (next === this.endComment) + return; + return next; + } + insertBefore(newNode, reference) { + reference.before(newNode); + return newNode; + } + }; + function getFirstNode(parent) { + return parent.firstChild; + } + function getNextSibling(parent, reference) { + let next; + if (parent instanceof Block) { + next = parent.nextNode(reference); + } else { + next = reference.nextSibling; + } + return next; + } + function monkeyPatchDomSetAttributeToAllowAtSymbols() { + if (patched) + return; + patched = true; + let original = Element.prototype.setAttribute; + let hostDiv = document.createElement("div"); + Element.prototype.setAttribute = function newSetAttribute(name, value) { + if (!name.includes("@")) { + return original.call(this, name, value); + } + let escapedValue = value.replace(/&/g, "&").replace(/"/g, """); + hostDiv.innerHTML = `<span ${name}="${escapedValue}"></span>`; + let attr = hostDiv.firstElementChild.getAttributeNode(name); + hostDiv.firstElementChild.removeAttributeNode(attr); + this.setAttributeNode(attr); + }; + } + function seedingMatchingId(to, from) { + let fromId = from && from._x_bindings && from._x_bindings.id; + if (!fromId) + return; + if (!to.setAttribute) + return; + to.setAttribute("id", fromId); + to.id = fromId; + } + function src_default8(Alpine25) { + Alpine25.morph = morph; + Alpine25.morphBetween = morphBetween; + } + var module_default8 = src_default8; + + // node_modules/@alpinejs/mask/dist/module.esm.js + function src_default9(Alpine25) { + Alpine25.directive("mask", (el, { value, expression }, { effect, evaluateLater, cleanup }) => { + let templateFn = () => expression; + let lastInputValue = ""; + queueMicrotask(() => { + if (["function", "dynamic"].includes(value)) { + let evaluator = evaluateLater(expression); + effect(() => { + templateFn = (input) => { + let result; + Alpine25.dontAutoEvaluateFunctions(() => { + evaluator((value2) => { + result = typeof value2 === "function" ? value2(input) : value2; + }, { scope: { + "$input": input, + "$money": formatMoney.bind({ el }) + } }); + }); + return result; + }; + processInputValue(el, false); + }); + } else { + processInputValue(el, false); + } + if (el._x_model) { + if (el._x_model.get() !== el.value) { + if (!(el._x_model.get() === null && el.value === "")) { + el._x_model.set(el.value); + } + } + let updater = el._x_forceModelUpdate; + el._x_forceModelUpdate = (value2) => { + value2 = String(value2); + let template = templateFn(value2); + if (template && template !== "false") { + value2 = formatInput(template, value2); + } + lastInputValue = value2; + updater(value2); + el._x_model.set(value2); + }; + } + }); + const controller = new AbortController(); + cleanup(() => { + controller.abort(); + }); + el.addEventListener("input", () => processInputValue(el), { + signal: controller.signal, + capture: true + }); + el.addEventListener("blur", () => processInputValue(el, false), { signal: controller.signal }); + function processInputValue(el2, shouldRestoreCursor = true) { + let input = el2.value; + let template = templateFn(input); + if (!template || template === "false") + return false; + if (lastInputValue.length - el2.value.length === 1) { + return lastInputValue = el2.value; + } + let setInput = () => { + lastInputValue = el2.value = formatInput(template, input); + }; + if (shouldRestoreCursor) { + restoreCursorPosition(el2, template, () => { + setInput(); + }); + } else { + setInput(); + } + } + }).before("model"); + } + function restoreCursorPosition(el, template, callback) { + let cursorPosition = el.selectionStart; + let unformattedValue = el.value; + callback(); + let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition); + let newPosition = formatInput( + template, + beforeLeftOfCursorBeforeFormatting + ).length; + el.setSelectionRange(newPosition, newPosition); + } + var regexes = { + "9": /[0-9]/, + "a": /[a-zA-Z]/, + "*": /[a-zA-Z0-9]/ + }; + function formatInput(template, input) { + let templateMark = 0; + let inputMark = 0; + let output = ""; + while (templateMark < template.length && inputMark < input.length) { + let templateChar = template[templateMark]; + let inputChar = input[inputMark]; + if (templateChar in regexes) { + if (regexes[templateChar].test(inputChar)) { + output += inputChar; + templateMark++; + } + inputMark++; + } else { + output += templateChar; + templateMark++; + if (templateChar === input[inputMark]) + inputMark++; + } + } + return output; + } + function formatMoney(input, delimiter = ".", thousands, precision = 2) { + if (input === "-") + return "-"; + if (/^\D+$/.test(input)) + return "9"; + if (thousands === null || thousands === void 0) { + thousands = delimiter === "," ? "." : ","; + } + let addThousands = (input2, thousands2) => { + let output = ""; + let counter = 0; + for (let i = input2.length - 1; i >= 0; i--) { + if (input2[i] === thousands2) + continue; + if (counter === 3) { + output = input2[i] + thousands2 + output; + counter = 0; + } else { + output = input2[i] + output; + } + counter++; + } + return output; + }; + let minus = input.startsWith("-") ? "-" : ""; + let strippedInput = input.replaceAll(new RegExp(`[^0-9\\${delimiter}]`, "g"), ""); + let template = Array.from({ length: strippedInput.split(delimiter)[0].length }).fill("9").join(""); + template = `${minus}${addThousands(template, thousands)}`; + if (precision > 0 && input.includes(delimiter)) + template += `${delimiter}` + "9".repeat(precision); + queueMicrotask(() => { + if (this.el.value.endsWith(delimiter)) + return; + if (this.el.value[this.el.selectionStart - 1] === delimiter) { + this.el.setSelectionRange(this.el.selectionStart - 1, this.el.selectionStart - 1); + } + }); + return template; + } + var module_default9 = src_default9; + + // js/lifecycle.js + var import_alpinejs6 = __toESM(require_module_cjs()); + function start() { + setTimeout(() => ensureLivewireScriptIsntMisplaced()); + dispatch(document, "livewire:init"); + dispatch(document, "livewire:initializing"); + import_alpinejs6.default.plugin(module_default8); + import_alpinejs6.default.plugin(history); + import_alpinejs6.default.plugin(module_default4); + import_alpinejs6.default.plugin(module_default5); + import_alpinejs6.default.plugin(module_default6); + import_alpinejs6.default.plugin(module_default); + import_alpinejs6.default.plugin(module_default7); + import_alpinejs6.default.plugin(module_default2); + import_alpinejs6.default.plugin(module_default3); + import_alpinejs6.default.plugin(navigate_default); + import_alpinejs6.default.plugin(module_default9); + import_alpinejs6.default.addRootSelector(() => "[wire\\:id]"); + import_alpinejs6.default.onAttributesAdded((el, attributes) => { + if (!Array.from(attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) + return; + let component = findComponentByEl(el, false); + if (!component) + return; + attributes.forEach((attribute) => { + if (!matchesForLivewireDirective(attribute.name)) + return; + let directive2 = extractDirective(el, attribute.name); + trigger("directive.init", { el, component, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + }); + import_alpinejs6.default.interceptInit( + import_alpinejs6.default.skipDuringClone( + (el) => { + if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) + return; + if (el.hasAttribute("wire:id") && !el.__livewire && !hasComponent(el.getAttribute("wire:id"))) { + let component2 = initComponent(el); + import_alpinejs6.default.onAttributeRemoved(el, "wire:id", () => { + destroyComponent(component2.id); + }); + } + let directives = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name)); + directives.forEach((directive2) => { + trigger("directive.global.init", { el, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + let component = findComponentByEl(el, false); + if (component) { + trigger("element.init", { el, component }); + directives.forEach((directive2) => { + trigger("directive.init", { el, component, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + } + }, + (el) => { + if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) + return; + let directives = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name)); + directives.forEach((directive2) => { + trigger("directive.global.init", { el, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + } + ) + ); + import_alpinejs6.default.start(); + setTimeout(() => window.Livewire.initialRenderIsFinished = true); + dispatch(document, "livewire:initialized"); + } + function ensureLivewireScriptIsntMisplaced() { + let el = document.querySelector("script[data-update-uri][data-csrf]"); + if (!el) + return; + let livewireEl = el.closest("[wire\\:id]"); + if (livewireEl) { + console.warn("Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.", livewireEl); + } + } + + // js/index.js + var import_alpinejs23 = __toESM(require_module_cjs()); + + // js/features/supportListeners.js + on("effect", ({ component, effects }) => { + registerListeners(component, effects.listeners || []); + }); + function registerListeners(component, listeners2) { + listeners2.forEach((name) => { + let handler = (e) => { + if (component.isLazy && !component.hasBeenLazyLoaded) + return; + if (e.__livewire) + e.__livewire.receivedBy.push(component); + component.$wire.call("__dispatch", name, e.detail || {}); + }; + window.addEventListener(name, handler); + component.addCleanup(() => window.removeEventListener(name, handler)); + component.el.addEventListener(name, (e) => { + if (component.isLazy && !component.hasBeenLazyLoaded) + return; + if (!e.__livewire) + return; + if (e.bubbles) + return; + if (e.__livewire) + e.__livewire.receivedBy.push(component.id); + component.$wire.call("__dispatch", name, e.detail || {}); + }); + }); + } + + // js/features/supportScriptsAndAssets.js + var import_alpinejs8 = __toESM(require_module_cjs()); + + // js/evaluator.js + var import_alpinejs7 = __toESM(require_module_cjs()); + function getAlpineScopeKeys(el) { + let keys = []; + let currentEl = el; + while (currentEl) { + if (currentEl._x_dataStack && currentEl._x_dataStack.length > 0) { + let ownScope = currentEl._x_dataStack[0]; + for (let key of Object.keys(ownScope)) { + if (!keys.includes(key) && !key.startsWith("$")) + keys.push(key); + } + } + if (currentEl.hasAttribute && currentEl.hasAttribute("wire:id")) + break; + currentEl = currentEl.parentElement; + } + return keys; + } + function evaluateExpression(el, expression, options = {}) { + if (!expression || expression.trim() === "") + return; + let result = import_alpinejs7.default.evaluateRaw(el, expression, options); + if (result instanceof Promise) { + result.catch(() => { + }); + } + return result; + } + function evaluateActionExpression(el, expression, options = {}) { + if (!expression || expression.trim() === "") + return; + let contextualExpression = contextualizeExpression(expression, el); + try { + let result = import_alpinejs7.default.evaluateRaw(el, contextualExpression, options); + if (result instanceof Promise && result._livewireAction) { + result.catch(() => { + }); + } + return result; + } catch (error2) { + console.warn(`Livewire Expression Error: ${error2.message} + +${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); + console.error(error2); + } + } + function contextualizeExpression(expression, el) { + let SKIP = ["JSON", "true", "false", "null", "undefined", "this", "$wire", "$event"]; + if (el) { + SKIP.push(...getAlpineScopeKeys(el)); + } + let strings = []; + let result = expression.replace(/(["'`])(?:(?!\1)[^\\]|\\.)*\1/g, (m) => { + strings.push(m); + return `___${strings.length - 1}___`; + }); + result = result.replace(/(^|[^.\w$])(\$?[a-zA-Z_]\w*)/g, (m, pre, ident, offset2) => { + if (SKIP.includes(ident) || /^___\d+___$/.test(ident)) + return pre + ident; + if (result[offset2 + m.length] === ":") + return pre + ident; + return pre + "$wire." + ident; + }); + return result.replace(/___(\d+)___/g, (m, i) => strings[i]); + } + + // js/features/supportScriptsAndAssets.js + var executedScripts = /* @__PURE__ */ new WeakMap(); + var executedAssets = /* @__PURE__ */ new Set(); + on("payload.intercept", async ({ assets }) => { + if (!assets) + return; + for (let [key, asset] of Object.entries(assets)) { + await onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, async () => { + await addAssetsToHeadTagOfPage(asset); + }); + } + }); + on("component.init", ({ component }) => { + let assets = component.snapshot.memo.assets; + if (assets) { + assets.forEach((key) => { + if (executedAssets.has(key)) + return; + executedAssets.add(key); + }); + } + }); + on("effect", ({ component, effects }) => { + let scripts = effects.scripts; + if (scripts) { + Object.entries(scripts).forEach(([key, content]) => { + onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, () => { + let scriptContent = extractScriptTagContent(content); + scriptContent = scriptContent.includes("await") ? `(async()=>{ ${scriptContent} })()` : `(()=>{ ${scriptContent} })()`; + import_alpinejs8.default.dontAutoEvaluateFunctions(() => { + evaluateExpression(component.el, scriptContent, { + context: component.$wire, + scope: { + "$wire": component.$wire, + "$js": component.$wire.js + } + }); + }); + }); + }); + } + }); + function onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, callback) { + if (executedScripts.has(component)) { + let alreadyRunKeys2 = executedScripts.get(component); + if (alreadyRunKeys2.includes(key)) + return; + } + callback(); + if (!executedScripts.has(component)) + executedScripts.set(component, []); + let alreadyRunKeys = executedScripts.get(component); + alreadyRunKeys.push(key); + executedScripts.set(component, alreadyRunKeys); + } + function extractScriptTagContent(rawHtml) { + let scriptRegex = /<script\b[^>]*>([\s\S]*?)<\/script>/gm; + let matches3 = scriptRegex.exec(rawHtml); + let innards = matches3 && matches3[1] ? matches3[1].trim() : ""; + return innards; + } + async function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callback) { + if (executedAssets.has(key)) + return; + executedAssets.add(key); + await callback(); + } + async function addAssetsToHeadTagOfPage(rawHtml) { + rawHtml = replaceNoncesInHtml(rawHtml); + let newDocument = new DOMParser().parseFromString(rawHtml, "text/html"); + let newHead = document.adoptNode(newDocument.head); + for (let child of newHead.children) { + try { + await runAssetSynchronously(child); + } catch (error2) { + } + } + } + async function runAssetSynchronously(child) { + return new Promise((resolve, reject) => { + if (isScript2(child)) { + let script = cloneScriptTag(child); + if (script.src) { + script.onload = () => resolve(); + script.onerror = () => reject(); + } else { + resolve(); + } + document.head.appendChild(script); + } else { + document.head.appendChild(child); + resolve(); + } + }); + } + function isScript2(el) { + return el.tagName.toLowerCase() === "script"; + } + + // js/features/supportJsEvaluation.js + var import_alpinejs9 = __toESM(require_module_cjs()); + import_alpinejs9.default.magic("js", (el) => { + let component = findComponentByEl(el); + return component.$wire.js; + }); + on("effect", ({ component, effects }) => { + let js = effects.js; + let xjs = effects.xjs; + if (js) { + Object.entries(js).forEach(([method, body]) => { + overrideMethod(component, method, () => { + evaluateExpression(component.el, body); + }); + }); + } + if (xjs) { + xjs.forEach(({ expression, params }) => { + params = Object.values(params); + evaluateExpression(component.el, expression, { scope: component.getJsActions(), params }); + }); + } + }); + + // js/morph.js + var import_alpinejs10 = __toESM(require_module_cjs()); + + // js/directives/wire-transition.js + var defaultName = "match-element"; + globalDirective("transition", ({ el, directive: directive2, cleanup }) => { + }); + function setTransitionNames(root, options = {}) { + root.querySelectorAll("[wire\\:transition]").forEach((el) => { + if (el.style.viewTransitionName) + return; + let name = el.getAttribute("wire:transition"); + if (!name && options.type) + return; + el.style.viewTransitionName = name || defaultName; + }); + } + function clearTransitionNames(root) { + root.querySelectorAll("[wire\\:transition]").forEach((el) => { + el.style.viewTransitionName = ""; + }); + } + async function transitionDomMutation(fromEl, toEl, callback, options = {}) { + if (options.skip) + return callback(); + if (!fromEl.querySelector("[wire\\:transition]") && !toEl.querySelector("[wire\\:transition]")) + return callback(); + if (typeof document.startViewTransition !== "function") { + return callback(); + } + if (document.querySelector("dialog:modal")) + return callback(); + setTransitionNames(fromEl, options); + let style = document.createElement("style"); + style.textContent = ` + @media (prefers-reduced-motion: reduce) { + ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { + animation: none !important; + } + } + + ::view-transition-old(root) { + animation: none !important; + opacity: 0 !important; + } + + ::view-transition-new(root) { + animation: none !important; + opacity: 1 !important; + } + `; + document.head.appendChild(style); + let update = () => { + callback(); + setTransitionNames(fromEl, options); + }; + let transitionConfig = { update }; + if (options.type) { + transitionConfig.types = [options.type]; + } + let cleanup = () => { + style.remove(); + clearTransitionNames(fromEl); + }; + let skipOnDialog = (transition) => { + let observer = new MutationObserver(() => { + if (document.querySelector("dialog:modal")) { + transition.skipTransition(); + observer.disconnect(); + } + }); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ["open"], + subtree: true + }); + transition.finished.finally(() => observer.disconnect()); + }; + try { + let transition = document.startViewTransition(transitionConfig); + skipOnDialog(transition); + transition.finished.finally(cleanup); + await transition.updateCallbackDone; + } catch (e) { + let transition = document.startViewTransition(update); + skipOnDialog(transition); + transition.finished.finally(cleanup); + await transition.updateCallbackDone; + } + } + + // js/morph.js + async function morph2(component, el, html) { + let wrapperTag = getTagName(el.parentElement); + let wrapper = document.createElement(wrapperTag); + wrapper.innerHTML = html; + let parentComponent; + try { + parentComponent = findComponentByEl(el.parentElement); + } catch (e) { + } + parentComponent && (wrapper.__livewire = parentComponent); + let to = wrapper.firstElementChild; + to.setAttribute("wire:snapshot", component.snapshotEncoded); + let effects = { ...component.effects }; + delete effects.html; + to.setAttribute("wire:effects", JSON.stringify(effects)); + to.__livewire = component; + trigger("morph", { el, toEl: to, component }); + let existingComponentsMap = {}; + el.querySelectorAll("[wire\\:id]").forEach((component2) => { + existingComponentsMap[component2.getAttribute("wire:id")] = component2; + }); + to.querySelectorAll("[wire\\:id]").forEach((child) => { + if (child.hasAttribute("wire:snapshot")) + return; + let wireId = child.getAttribute("wire:id"); + let existingComponent = existingComponentsMap[wireId]; + if (existingComponent) { + child.replaceWith(existingComponent.cloneNode(true)); + } + }); + let transitionOptions = component.effects.transition || {}; + await transitionDomMutation(el, to, () => { + import_alpinejs10.default.morph(el, to, getMorphConfig(component)); + }, transitionOptions); + trigger("morphed", { el, component }); + } + async function morphFragment(component, startNode, endNode, toHTML) { + let fromContainer = startNode.parentElement; + let fromContainerTag = getTagName(fromContainer); + let toContainer = document.createElement(fromContainerTag); + toContainer.innerHTML = toHTML; + toContainer.__livewire = component; + let parentElement = component.el.parentElement; + let parentElementTag = getTagName(parentElement); + let parentComponent; + try { + parentComponent = parentElement ? findComponentByEl(parentElement) : null; + } catch (e) { + } + if (parentComponent) { + let parentProviderWrapper = document.createElement(parentElementTag); + parentProviderWrapper.appendChild(toContainer); + parentProviderWrapper.__livewire = parentComponent; + } + trigger("island.morph", { startNode, endNode, component }); + let transitionOptions = component.effects.transition || {}; + let islandHasTransition = false; + let node = startNode.nextSibling; + while (node && node !== endNode) { + if (node.nodeType === 1 && (node.hasAttribute?.("wire:transition") || node.querySelector?.("[wire\\:transition]"))) { + islandHasTransition = true; + break; + } + node = node.nextSibling; + } + let fromEl = islandHasTransition ? fromContainer : document.createElement("div"); + await transitionDomMutation(fromEl, toContainer, () => { + import_alpinejs10.default.morphBetween(startNode, endNode, toContainer, getMorphConfig(component)); + }, transitionOptions); + trigger("island.morphed", { startNode, endNode, component }); + } + function getMorphConfig(component) { + return { + updating: (el, toEl, childrenOnly, skip, skipChildren, skipUntil) => { + if (isStartFragmentMarker(el) && isStartFragmentMarker(toEl)) { + let metadata = extractFragmentMetadataFromMarkerNode(toEl); + if (metadata.mode !== "morph") { + skipUntil((node) => { + if (isEndFragmentMarker(node)) { + let endMarkerMetadata = extractFragmentMetadataFromMarkerNode(node); + return endMarkerMetadata.token === metadata.token; + } + return false; + }); + } + } + if (isntElement(el)) + return; + trigger("morph.updating", { el, toEl, component, skip, childrenOnly, skipChildren, skipUntil }); + if (el.__livewire_replace === true) + el.innerHTML = toEl.innerHTML; + if (el.__livewire_replace_self === true) { + el.outerHTML = toEl.outerHTML; + return skip(); + } + if (el.__livewire_ignore === true) + return skip(); + if (el.__livewire_ignore_self === true) + childrenOnly(); + if (el.__livewire_ignore_children === true) + return skipChildren(); + if (isComponentRootEl(el) && el.getAttribute("wire:id") !== component.id) + return skip(); + if (isComponentRootEl(el)) + toEl.__livewire = component; + }, + updated: (el) => { + if (isntElement(el)) + return; + trigger("morph.updated", { el, component }); + }, + removing: (el, skip) => { + if (isntElement(el)) + return; + trigger("morph.removing", { el, component, skip }); + }, + removed: (el) => { + if (isntElement(el)) + return; + trigger("morph.removed", { el, component }); + }, + adding: (el) => { + trigger("morph.adding", { el, component }); + }, + added: (el) => { + if (isntElement(el)) + return; + trigger("morph.added", { el }); + }, + key: (el) => { + if (isntElement(el)) + return; + return el.hasAttribute(`wire:id`) ? el.getAttribute(`wire:id`) : el.hasAttribute(`wire:key`) ? el.getAttribute(`wire:key`) : el.id; + }, + lookahead: false + }; + } + function isntElement(el) { + return typeof el.hasAttribute !== "function"; + } + function isComponentRootEl(el) { + return el.hasAttribute("wire:id"); + } + function getTagName(el) { + let tag = el ? el.tagName.toLowerCase() : "div"; + let customElement = customElements.get(tag); + return customElement ? customElement.name : tag; + } + + // js/features/supportMorphDom.js + interceptMessage(({ message, onSuccess }) => { + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let html = payload.effects.html; + if (!html) + return; + await morph2(message.component, message.component.el, html); + }); + }); + }); + + // js/features/supportDispatches.js + on("effect", ({ component, effects }) => { + queueMicrotask(() => { + queueMicrotask(() => { + queueMicrotask(() => { + dispatchEvents(component, effects.dispatches || []); + }); + }); + }); + }); + function dispatchEvents(component, dispatches) { + dispatches.forEach(({ name, params = {}, self: self2 = false, component: componentName, ref, el }) => { + if (self2) + dispatchSelf(component, name, params); + else if (componentName) + dispatchTo(componentName, name, params); + else if (ref) + dispatchRef(component, ref, name, params); + else if (el) + dispatchEl(component, el, name, params); + else + dispatch2(component, name, params); + }); + } + + // js/features/supportDisablingFormsDuringRequest.js + var import_alpinejs11 = __toESM(require_module_cjs()); + var cleanups = new Bag(); + on("directive.init", ({ el, directive: directive2, cleanup, component }) => setTimeout(() => { + if (directive2.value !== "submit") + return; + el.addEventListener("submit", () => { + let componentId = directive2.expression.startsWith("$parent") ? component.parent.id : component.id; + let cleanup2 = disableForm(el); + cleanups.add(componentId, cleanup2); + }); + })); + on("commit", ({ component, respond }) => { + respond(() => { + cleanups.each(component.id, (i) => i()); + cleanups.remove(component.id); + }); + }); + function disableForm(formEl) { + let undos = []; + import_alpinejs11.default.walk(formEl, (el, skip) => { + if (!formEl.contains(el)) + return; + if (el.hasAttribute("wire:ignore")) + return skip(); + if (shouldMarkDisabled(el)) { + undos.push(markDisabled(el)); + } else if (shouldMarkReadOnly(el)) { + undos.push(markReadOnly(el)); + } + }); + return () => { + while (undos.length > 0) + undos.shift()(); + }; + } + function shouldMarkDisabled(el) { + let tag = el.tagName.toLowerCase(); + let inputTypesThatDontSupportReadonly = [ + "hidden", + "range", + "color", + "checkbox", + "radio", + "file", + "submit", + "image", + "reset", + "button" + ]; + if (tag === "select") + return true; + if (tag === "button" && el.type === "submit") + return true; + if (tag === "input" && inputTypesThatDontSupportReadonly.includes(el.type)) + return true; + return false; + } + function shouldMarkReadOnly(el) { + return ["input", "textarea"].includes(el.tagName.toLowerCase()); + } + function markDisabled(el) { + let undo = el.disabled ? () => { + } : () => el.disabled = false; + el.disabled = true; + return undo; + } + function markReadOnly(el) { + let undo = el.readOnly ? () => { + } : () => el.readOnly = false; + el.readOnly = true; + return undo; + } + + // js/features/supportFileDownloads.js + on("commit", ({ succeed }) => { + succeed(({ effects }) => { + let download = effects.download; + if (!download) + return; + let urlObject = window.webkitURL || window.URL; + let url = urlObject.createObjectURL( + base64toBlob(download.content, download.contentType) + ); + let invisibleLink = document.createElement("a"); + invisibleLink.style.display = "none"; + invisibleLink.href = url; + invisibleLink.download = download.name; + document.body.appendChild(invisibleLink); + invisibleLink.click(); + setTimeout(function() { + urlObject.revokeObjectURL(url); + }, 0); + }); + }); + function base64toBlob(b64Data, contentType = "", sliceSize = 512) { + const byteCharacters = atob(b64Data); + const byteArrays = []; + if (contentType === null) + contentType = ""; + for (let offset2 = 0; offset2 < byteCharacters.length; offset2 += sliceSize) { + let slice = byteCharacters.slice(offset2, offset2 + sliceSize); + let byteNumbers = new Array(slice.length); + for (let i = 0; i < slice.length; i++) { + byteNumbers[i] = slice.charCodeAt(i); + } + let byteArray = new Uint8Array(byteNumbers); + byteArrays.push(byteArray); + } + return new Blob(byteArrays, { type: contentType }); + } + + // js/features/supportQueryString.js + var import_alpinejs12 = __toESM(require_module_cjs()); + on("effect", ({ component, effects, cleanup }) => { + let queryString = effects["url"]; + if (!queryString) + return; + Object.entries(queryString).forEach(([key, value]) => { + let { name, as, use, alwaysShow, except } = normalizeQueryStringEntry(key, value); + if (!as) + as = name; + let initialValue = [false, null, void 0].includes(except) ? dataGet(component.ephemeral, name) : except; + let { replace: replace2, push: push2, pop } = track(as, initialValue, alwaysShow, except); + if (use === "replace") { + let effectReference = import_alpinejs12.default.effect(() => { + replace2(dataGet(component.reactive, name)); + }); + cleanup(() => import_alpinejs12.default.release(effectReference)); + } else if (use === "push") { + let popNavigating = false; + let forgetCommitHandler = on("commit", ({ component: commitComponent, succeed }) => { + if (component !== commitComponent) + return; + let beforeValue = dataGet(component.canonical, name); + succeed(() => { + let afterValue = dataGet(component.canonical, name); + if (JSON.stringify(beforeValue) === JSON.stringify(afterValue)) + return; + if (popNavigating) { + replace2(afterValue); + } else { + push2(afterValue); + } + }); + }); + let forgetPopHandler = pop(async (newValue) => { + popNavigating = true; + await component.$wire.set(name, newValue); + document.querySelectorAll("input").forEach((el) => { + el._x_forceModelUpdate && el._x_forceModelUpdate(el._x_model.get()); + }); + requestAnimationFrame(() => popNavigating = false); + }); + let currentValue = dataGet(component.ephemeral, name); + if (JSON.stringify(currentValue) !== JSON.stringify(initialValue)) { + replace2(currentValue); + } + cleanup(() => { + forgetCommitHandler(); + forgetPopHandler(); + }); + } + }); + }); + function normalizeQueryStringEntry(key, value) { + let defaults2 = { use: "replace", alwaysShow: false }; + if (typeof value === "string") { + return { ...defaults2, name: value, as: value }; + } else { + let fullerDefaults = { ...defaults2, name: key, as: key }; + return { ...fullerDefaults, ...value }; + } + } + + // js/features/supportLaravelEcho.js + on("request", ({ options }) => { + if (window.Echo) { + options.headers["X-Socket-ID"] = window.Echo.socketId(); + } + }); + on("effect", ({ component, effects }) => { + let listeners2 = effects.listeners || []; + listeners2.forEach((event) => { + if (event.startsWith("echo")) { + if (typeof window.Echo === "undefined") { + console.warn("Laravel Echo cannot be found"); + return; + } + let event_parts = event.split(/(echo:|echo-)|:|,/); + if (event_parts[1] == "echo:") { + event_parts.splice(2, 0, "channel", void 0); + } + if (event_parts[2] == "notification") { + event_parts.push(void 0, void 0); + } + let [ + s1, + signature, + channel_type, + s2, + channel, + s3, + event_name + ] = event_parts; + if (["channel", "private", "encryptedPrivate"].includes(channel_type)) { + let handler = (e) => dispatchSelf(component, event, [e]); + window.Echo[channel_type](channel).listen(event_name, handler); + component.addCleanup(() => { + window.Echo[channel_type](channel).stopListening(event_name, handler); + }); + } else if (channel_type == "presence") { + if (["here", "joining", "leaving"].includes(event_name)) { + window.Echo.join(channel)[event_name]((e) => { + dispatchSelf(component, event, [e]); + }); + component.addCleanup(() => { + window.Echo.leave(channel); + }); + } else { + let handler = (e) => dispatchSelf(component, event, [e]); + window.Echo.join(channel).listen(event_name, handler); + component.addCleanup(() => { + window.Echo.leave(channel); + }); + } + } else if (channel_type == "notification") { + window.Echo.private(channel).notification((notification) => { + dispatchSelf(component, event, [notification]); + }); + component.addCleanup(() => { + window.Echo.private(channel).stopListening(".Illuminate\\Notifications\\Events\\BroadcastNotificationCreated"); + }); + } else { + console.warn("Echo channel type not yet supported"); + } + } + }); + }); + + // js/features/supportStreaming.js + interceptMessage(({ message, onStream }) => { + onStream(({ json }) => { + let { id, type, name, el, ref, content, mode } = json; + if (type === "island") + return; + let component = findComponent(id); + let targetEl = null; + if (type === "directive") { + const replaceEl = component.el.querySelector(`[wire\\:stream\\.replace="${name}"]`); + if (replaceEl) { + targetEl = replaceEl; + mode = "replace"; + } else { + targetEl = component.el.querySelector(`[wire\\:stream="${name}"]`); + } + } else if (type === "ref") { + targetEl = findRefEl(component, ref); + } else if (type === "element") { + targetEl = component.el.querySelector(el); + } + if (!targetEl) + return; + if (mode === "replace") { + targetEl.innerHTML = content; + } else { + targetEl.insertAdjacentHTML("beforeend", content); + } + }); + }); + + // js/features/supportNavigate.js + document.addEventListener("livewire:initialized", () => { + shouldHideProgressBar() && Alpine.navigate.disableProgressBar(); + }); + document.addEventListener("alpine:navigate", (e) => forwardEvent("livewire:navigate", e)); + document.addEventListener("alpine:navigating", (e) => forwardEvent("livewire:navigating", e)); + document.addEventListener("alpine:navigated", (e) => forwardEvent("livewire:navigated", e)); + function forwardEvent(name, original) { + let event = new CustomEvent(name, { cancelable: true, bubbles: true, detail: original.detail }); + document.dispatchEvent(event); + if (event.defaultPrevented) { + original.preventDefault(); + } + } + function shouldRedirectUsingNavigateOr(effects, url, or) { + let forceNavigate = effects.redirectUsingNavigate; + if (forceNavigate) { + Alpine.navigate(url); + } else { + or(); + } + } + function shouldHideProgressBar() { + if (!!document.querySelector("[data-no-progress-bar]")) + return true; + if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === "data-no-progress-bar") + return true; + return false; + } + + // js/features/supportRedirects.js + on("effect", ({ effects, request }) => { + if (!effects["redirect"]) + return; + let preventDefault = false; + request.invokeOnRedirect({ url: effects["redirect"], preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + let url = effects["redirect"]; + shouldRedirectUsingNavigateOr(effects, url, () => { + window.location.href = url; + }); + }); + + // js/features/supportIslands.js + interceptAction(({ action }) => { + let origin = action.origin; + if (!origin) + return; + let { el, directive: directive2 } = origin; + let islandAttr = Array.from(el.attributes).find((attr) => attr.name.startsWith("wire:island")); + if (islandAttr) { + let islandName = islandAttr.value; + let attrParts = islandAttr.name.split("."); + let isPrepend = attrParts.includes("prepend"); + let isAppend = attrParts.includes("append"); + let mode = isPrepend ? "prepend" : isAppend ? "append" : "morph"; + action.mergeMetadata({ + island: { + name: islandName, + mode + } + }); + return; + } + let fragment = closestIsland(origin.el); + if (!fragment) + return; + action.mergeMetadata({ + island: { + name: fragment.metadata.name, + mode: "morph" + } + }); + }); + interceptMessage(({ message, onSuccess, onStream }) => { + onStream(({ json }) => { + let { type, islandFragment } = json; + if (type !== "island") + return; + renderIsland(message.component, islandFragment); + }); + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let fragments = payload.effects.islandFragments || []; + fragments.forEach(async (fragmentHtml) => { + await renderIsland(message.component, fragmentHtml); + }); + }); + }); + }); + function closestIsland(el) { + return closestFragment(el, { + isMatch: ({ type }) => { + return type === "island"; + } + }); + } + async function renderIsland(component, islandHtml) { + let metadata = extractFragmentMetadataFromHtml(islandHtml); + let fragment = findFragment(component.el, { + isMatch: ({ type, token }) => { + return type === metadata.type && token === metadata.token; + } + }); + if (!fragment) + return; + let incomingMetadata = extractFragmentMetadataFromHtml(islandHtml); + let strippedContent = extractInnerHtmlFromFragmentHtml(islandHtml); + let parentElementTag = getTagName(fragment.startMarkerNode.parentElement); + let mode = incomingMetadata.mode || "morph"; + if (mode === "morph") { + await morphFragment(component, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent); + } else if (mode === "append") { + fragment.append(parentElementTag, strippedContent); + } else if (mode === "prepend") { + fragment.prepend(parentElementTag, strippedContent); + } + } + + // js/features/supportSlots.js + interceptMessage(({ message, onSuccess, onStream }) => { + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let fragments = payload.effects.slotFragments || []; + fragments.forEach(async (fragmentHtml) => { + await renderSlot(message.component, fragmentHtml); + }); + }); + }); + }); + async function renderSlot(component, fragmentHtml) { + let metadata = extractFragmentMetadataFromHtml(fragmentHtml); + let targetComponent = findComponent(metadata.id); + let fragment = findFragment(targetComponent.el, { + isMatch: ({ name, token }) => { + return name === metadata.name && token === metadata.token; + } + }); + if (!fragment) + return; + let strippedContent = extractInnerHtmlFromFragmentHtml(fragmentHtml); + await morphFragment(targetComponent, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent); + } + + // js/features/supportDataLoading.js + interceptMessage(({ message, onSend, onFinish }) => { + let undos = []; + onSend(() => { + message.actions.forEach((action) => { + let origin = action.origin; + if (!origin) + return; + let el = origin.hasOwnProperty("targetEl") ? origin.targetEl : origin.el; + if (!el) + return; + el.setAttribute("data-loading", "true"); + undos.push(() => { + el.removeAttribute("data-loading"); + }); + }); + }); + onFinish(() => undos.forEach((undo) => undo())); + }); + + // js/directives/wire-current.js + var import_alpinejs13 = __toESM(require_module_cjs()); + import_alpinejs13.default.addInitSelector(() => `[wire\\:current]`); + var onPageChanges = /* @__PURE__ */ new Map(); + document.addEventListener("livewire:navigated", () => { + onPageChanges.forEach((i) => i(new URL(window.location.href))); + }); + globalDirective("current", ({ el, directive: directive2, cleanup }) => { + let expression = directive2.expression; + let options = { + exact: directive2.modifiers.includes("exact"), + strict: directive2.modifiers.includes("strict"), + ignore: directive2.modifiers.includes("ignore") + }; + if (options.ignore) + return; + if (expression.startsWith("#")) + return; + if (!el.hasAttribute("href")) + return; + let href = el.getAttribute("href"); + let hrefUrl = new URL(href, window.location.href); + let classes = expression.split(" ").filter(String); + let refreshCurrent = (url) => { + if (pathMatches(hrefUrl, url, options)) { + el.classList.add(...classes); + el.setAttribute("data-current", ""); + } else { + el.classList.remove(...classes); + el.removeAttribute("data-current"); + } + }; + refreshCurrent(new URL(window.location.href)); + onPageChanges.set(el, refreshCurrent); + cleanup(() => onPageChanges.delete(el)); + }); + function pathMatches(hrefUrl, actualUrl, options = {}) { + if (hrefUrl.hostname !== actualUrl.hostname) + return false; + let hrefPath = options.strict ? hrefUrl.pathname : hrefUrl.pathname.replace(/\/+$/, ""); + let actualPath = options.strict ? actualUrl.pathname : actualUrl.pathname.replace(/\/+$/, ""); + if (options.exact) { + return hrefPath === actualPath; + } + let hrefPathSegments = hrefPath.split("/"); + let actualPathSegments = actualPath.split("/"); + for (let i = 0; i < hrefPathSegments.length; i++) { + if (hrefPathSegments[i] !== actualPathSegments[i]) + return false; + } + return true; + } + + // js/directives/wire-navigate.js + var import_alpinejs14 = __toESM(require_module_cjs()); + var wireNavigateSelectors = [ + "[wire\\:navigate]", + "[wire\\:navigate\\.hover]", + "[wire\\:navigate\\.preserve-scroll]", + "[wire\\:navigate\\.preserve-scroll\\.hover]", + "[wire\\:navigate\\.hover\\.preserve-scroll]" + ]; + var wireNavigateSelector = wireNavigateSelectors.join(", "); + var attributeMap = { + "wire:navigate": "x-navigate", + "wire:navigate.hover": "x-navigate.hover", + "wire:navigate.preserve-scroll": "x-navigate.preserve-scroll", + "wire:navigate.preserve-scroll.hover": "x-navigate.preserve-scroll.hover", + "wire:navigate.hover.preserve-scroll": "x-navigate.hover.preserve-scroll" + }; + wireNavigateSelectors.forEach((selector) => { + import_alpinejs14.default.addInitSelector(() => selector); + }); + import_alpinejs14.default.interceptInit( + import_alpinejs14.default.skipDuringClone((el) => { + for (let [wireAttr, alpineDirective] of Object.entries(attributeMap)) { + if (el.hasAttribute(wireAttr)) { + import_alpinejs14.default.bind(el, { [alpineDirective]: true }); + break; + } + } + }) + ); + document.addEventListener("alpine:navigating", () => { + Livewire.all().forEach((component) => { + component.inscribeSnapshotAndEffectsOnElement(); + }); + }); + + // js/features/supportDataCurrent.js + document.addEventListener("livewire:navigated", () => { + updateNavigateLinks(); + }); + document.addEventListener("DOMContentLoaded", () => { + updateNavigateLinks(); + }); + function updateNavigateLinks() { + let currentUrl = new URL(window.location.href); + let options = { + exact: true + }; + document.querySelectorAll(wireNavigateSelector).forEach((el) => { + if (Array.from(el.attributes).some((attr) => attr.name.startsWith("wire:current"))) + return; + let href = el.getAttribute("href"); + if (!href || href.startsWith("#")) + return; + try { + let hrefUrl = new URL(href, window.location.href); + if (pathMatches(hrefUrl, currentUrl, options)) { + el.setAttribute("data-current", ""); + } else { + el.removeAttribute("data-current"); + } + } catch (e) { + } + }); + } + + // js/features/supportPreserveScroll.js + interceptMessage(({ message, onSuccess }) => { + onSuccess(({ onSync, onMorph, onRender }) => { + message.actions.forEach((action) => { + let origin = action.origin; + if (!origin || !origin.directive) + return; + let directive2 = origin.directive; + if (!directive2.modifiers.includes("preserve-scroll")) + return; + let oldHeight; + let oldScroll; + onSync(() => { + oldHeight = document.body.scrollHeight; + oldScroll = window.scrollY; + }); + onMorph(async () => { + let heightDiff = document.body.scrollHeight - oldHeight; + window.scrollTo(0, oldScroll + heightDiff); + oldHeight = null; + oldScroll = null; + }); + }); + }); + }); + + // js/features/supportWireIntersect.js + var import_alpinejs15 = __toESM(require_module_cjs()); + import_alpinejs15.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:intersect")) { + let { name, value } = el.attributes[i]; + let directive2 = extractDirective(el, name); + let modifierString = name.split("wire:intersect")[1]; + let expression = value.trim(); + import_alpinejs15.default.bind(el, { + ["x-intersect" + modifierString](e) { + directive2.eventContext = e; + let component = findComponentByEl(el, false); + if (!component) + return; + component.addActionContext({ + el, + directive: directive2 + }); + evaluateActionExpression(el, expression); + } + }); + } + } + }); + + // js/features/supportWireSort.js + var import_alpinejs16 = __toESM(require_module_cjs()); + import_alpinejs16.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:sort:item")) { + let directive2 = extractDirective(el, el.attributes[i].name); + let modifierString = directive2.modifiers.join("."); + let expression = directive2.expression; + import_alpinejs16.default.bind(el, { + ["x-sort:item" + modifierString]() { + return expression; + } + }); + } else if (el.attributes[i].name.startsWith("wire:sort:group-id")) { + continue; + } else if (el.attributes[i].name.startsWith("wire:sort:group")) { + return; + } else if (el.attributes[i].name.startsWith("wire:sort")) { + let directive2 = extractDirective(el, el.attributes[i].name); + let attribute = directive2.rawName.replace("wire:", "x-"); + if (directive2.modifiers.includes("async")) { + attribute = attribute.replace(".async", ""); + } + if (directive2.modifiers.includes("renderless")) { + attribute = attribute.replace(".renderless", ""); + } + if (directive2.modifiers.includes("prepend")) { + attribute = attribute.replace(".prepend", ""); + } + if (directive2.modifiers.includes("append")) { + attribute = attribute.replace(".append", ""); + } + let expression = directive2.expression; + import_alpinejs16.default.bind(el, { + [attribute]() { + setNextActionOrigin({ el, directive: directive2 }); + let sortableChildren = Array.from(el.children).filter( + (child) => child.hasAttribute("x-sort:item") || child.hasAttribute("wire:sort:item") + ); + let itemPosition = sortableChildren.findIndex((child) => child._x_sort_key === this.$item); + let position = itemPosition !== -1 ? itemPosition : this.$position; + let params = [this.$item, position]; + let scope = { $item: this.$item, $position: position }; + let sortId = el.getAttribute("wire:sort:group-id"); + if (sortId !== null) { + params.push(sortId); + scope.$id = sortId; + } + evaluateActionExpression(el, expression, { scope, params }); + } + }); + } + } + }); + + // js/features/supportCssModules.js + var loadedStyles = /* @__PURE__ */ new Set(); + on("effect", ({ component, effects }) => { + if (effects.styleModule) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/css/${encodedName}.css?v=${effects.styleModule}`; + if (!loadedStyles.has(path)) { + loadedStyles.add(path); + injectStylesheet(path); + } + } + if (effects.globalStyleModule) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/css/${encodedName}.global.css?v=${effects.globalStyleModule}`; + if (!loadedStyles.has(path)) { + loadedStyles.add(path); + injectStylesheet(path); + } + } + }); + function injectStylesheet(href) { + let link = document.createElement("link"); + link.rel = "stylesheet"; + link.href = href; + let nonce2 = getNonce(); + if (nonce2) + link.nonce = nonce2; + document.head.appendChild(link); + } + + // js/debounce.js + var callbacksByComponent = new WeakBag(); + function callAndClearComponentDebounces(component, callback) { + callbacksByComponent.each(component, (callbackRegister) => { + callbackRegister.callback(); + callbackRegister.callback = () => { + }; + }); + callback(); + } + + // js/directives/wire-wildcard.js + var import_alpinejs17 = __toESM(require_module_cjs()); + on("directive.init", ({ el, directive: directive2, cleanup, component }) => { + if (["snapshot", "effects", "model", "init", "loading", "poll", "ignore", "id", "data", "key", "target", "dirty", "sort"].includes(directive2.value)) + return; + if (customDirectiveHasBeenRegistered(directive2.value)) + return; + let attribute = directive2.rawName.replace("wire:", "x-on:"); + if (directive2.value === "submit" && !directive2.modifiers.includes("prevent")) { + attribute = attribute + ".prevent"; + } + if (directive2.modifiers.includes("async")) { + attribute = attribute.replace(".async", ""); + } + if (directive2.modifiers.includes("renderless")) { + attribute = attribute.replace(".renderless", ""); + } + if (directive2.modifiers.includes("prepend")) { + attribute = attribute.replace(".prepend", ""); + } + if (directive2.modifiers.includes("append")) { + attribute = attribute.replace(".append", ""); + } + let cleanupBinding = import_alpinejs17.default.bind(el, { + [attribute](e) { + directive2.eventContext = e; + directive2.wire = component.$wire; + let execute = () => { + callAndClearComponentDebounces(component, () => { + if (directive2.value === "submit") { + let submitButton = e.submitter || el.querySelector('button[type="submit"], input[type="submit"]'); + setNextActionOrigin({ el, directive: directive2, targetEl: submitButton }); + } else { + setNextActionOrigin({ el, directive: directive2 }); + } + let livewireOptions = e.detail?.livewire; + if (livewireOptions?.interceptAction) { + setNextActionInterceptor(livewireOptions.interceptAction); + } + let expression = directive2.expression; + if (livewireOptions?.defaultParams !== void 0 && !expression.includes("(")) { + let params = Array.isArray(livewireOptions.defaultParams) ? livewireOptions.defaultParams : [livewireOptions.defaultParams]; + expression = expression + "(" + params.map((p) => JSON.stringify(p)).join(", ") + ")"; + } + evaluateActionExpression(el, expression, { scope: { $event: e } }); + }); + }; + if (el.__livewire_confirm) { + el.__livewire_confirm(() => { + execute(); + }, () => { + e.stopImmediatePropagation(); + }); + } else { + execute(); + } + } + }); + cleanup(cleanupBinding); + }); + + // js/directives/wire-confirm.js + directive("confirm", ({ el, directive: directive2 }) => { + let message = directive2.expression; + let shouldPrompt = directive2.modifiers.includes("prompt"); + message = message.replaceAll("\\n", "\n"); + if (message === "") + message = "Are you sure?"; + el.__livewire_confirm = (action, instead) => { + if (shouldPrompt) { + let [question, expected] = message.split("|"); + if (!expected) { + console.warn("Livewire: Must provide expectation with wire:confirm.prompt"); + } else { + let input = prompt(question); + if (input === expected) { + action(); + } else { + instead(); + } + } + } else { + if (confirm(message)) + action(); + else + instead(); + } + }; + }); + + // js/directives/wire-offline.js + var offlineHandlers = /* @__PURE__ */ new Set(); + var onlineHandlers = /* @__PURE__ */ new Set(); + window.addEventListener("offline", () => offlineHandlers.forEach((i) => i())); + window.addEventListener("online", () => onlineHandlers.forEach((i) => i())); + directive("offline", ({ el, directive: directive2, cleanup }) => { + let setOffline = () => toggleBooleanStateDirective(el, directive2, true); + let setOnline = () => toggleBooleanStateDirective(el, directive2, false); + offlineHandlers.add(setOffline); + onlineHandlers.add(setOnline); + cleanup(() => { + offlineHandlers.delete(setOffline); + onlineHandlers.delete(setOnline); + }); + }); + + // js/directives/wire-loading.js + directive("loading", ({ el, directive: directive2, component, cleanup }) => { + let { targets, inverted } = getTargets(el); + let [delay3, abortDelay] = applyDelay(directive2); + let cleanupA = whenTargetsArePartOfRequest(component, el, targets, inverted, [ + () => delay3(() => toggleBooleanStateDirective(el, directive2, true)), + () => abortDelay(() => toggleBooleanStateDirective(el, directive2, false)) + ]); + let cleanupB = whenTargetsArePartOfFileUpload(component, targets, [ + () => delay3(() => toggleBooleanStateDirective(el, directive2, true)), + () => abortDelay(() => toggleBooleanStateDirective(el, directive2, false)) + ]); + cleanup(() => { + cleanupA(); + cleanupB(); + }); + }); + function applyDelay(directive2) { + if (!directive2.modifiers.includes("delay") || directive2.modifiers.includes("none")) + return [(i) => i(), (i) => i()]; + let duration = 200; + let delayModifiers = { + "shortest": 50, + "shorter": 100, + "short": 150, + "default": 200, + "long": 300, + "longer": 500, + "longest": 1e3 + }; + Object.keys(delayModifiers).some((key) => { + if (directive2.modifiers.includes(key)) { + duration = delayModifiers[key]; + return true; + } + }); + let timeout; + let started = false; + return [ + (callback) => { + timeout = setTimeout(() => { + callback(); + started = true; + }, duration); + }, + async (callback) => { + if (started) { + await callback(); + started = false; + } else { + clearTimeout(timeout); + } + } + ]; + } + function whenTargetsArePartOfRequest(component, el, targets, inverted, [startLoading, endLoading]) { + return interceptMessage(({ message, onSend, onSuccess, onFinish }) => { + if (component !== message.component) + return; + if (targets.length === 0) { + let island = closestIsland(el); + if (island && !message.hasActionForIsland(island)) { + return; + } + if (!island && !message.hasActionForComponent()) { + return; + } + } + let matches3 = true; + let cleared = false; + onSend(({ payload }) => { + if (targets.length > 0 && containsTargets(payload, targets) === inverted) { + matches3 = false; + } + matches3 && startLoading(); + }); + onSuccess(({ onEffect }) => { + onEffect(() => { + if (matches3 && !cleared) { + endLoading(); + cleared = true; + } + }); + }); + onFinish(() => { + if (matches3 && !cleared) { + endLoading(); + cleared = true; + } + }); + }); + } + function whenTargetsArePartOfFileUpload(component, targets, [startLoading, endLoading]) { + let eventMismatch = (e) => { + let { id, property } = e.detail; + if (id !== component.id) + return true; + if (targets.length > 0 && !targets.map((i) => i.target).includes(property)) + return true; + return false; + }; + let cleanupA = listen(window, "livewire-upload-start", (e) => { + if (eventMismatch(e)) + return; + startLoading(); + }); + let cleanupB = listen(window, "livewire-upload-finish", (e) => { + if (eventMismatch(e)) + return; + endLoading(); + }); + let cleanupC = listen(window, "livewire-upload-error", (e) => { + if (eventMismatch(e)) + return; + endLoading(); + }); + return () => { + cleanupA(); + cleanupB(); + cleanupC(); + }; + } + function containsTargets(payload, targets) { + let { updates, calls } = payload; + return targets.some(({ target, params }) => { + if (params) { + return calls.some(({ method, params: methodParams }) => { + return target === method && params === quickHash(JSON.stringify(methodParams)); + }); + } + let hasMatchingUpdate = Object.keys(updates).some((property) => { + if (property.includes(".")) { + let propertyRoot = property.split(".")[0]; + if (propertyRoot === target) + return true; + } + return property === target; + }); + if (hasMatchingUpdate) + return true; + if (calls.map((i) => i.method).includes(target)) + return true; + }); + } + function getTargets(el) { + let directives = getDirectives(el); + let targets = []; + let inverted = false; + if (directives.has("target")) { + let directive2 = directives.get("target"); + if (directive2.modifiers.includes("except")) + inverted = true; + directive2.methods.forEach(({ method, params }) => { + targets.push({ + target: method, + params: params && params.length > 0 ? quickHash(JSON.stringify(params)) : void 0 + }); + }); + } else { + let nonActionOrModelLivewireDirectives = ["init", "dirty", "offline", "navigate", "target", "loading", "poll", "ignore", "key", "id"]; + directives.all().filter((i) => !nonActionOrModelLivewireDirectives.includes(i.value)).map((i) => i.expression.split("(")[0]).forEach((target) => targets.push({ target })); + } + return { targets, inverted }; + } + function quickHash(subject) { + return btoa(encodeURIComponent(subject)); + } + + // js/directives/wire-replace.js + directive("replace", ({ el, directive: directive2 }) => { + if (directive2.modifiers.includes("self")) { + el.__livewire_replace_self = true; + } else { + el.__livewire_replace = true; + } + }); + + // js/directives/wire-ignore.js + directive("ignore", ({ el, directive: directive2 }) => { + if (directive2.modifiers.includes("self")) { + el.__livewire_ignore_self = true; + } else if (directive2.modifiers.includes("children")) { + el.__livewire_ignore_children = true; + } else { + el.__livewire_ignore = true; + } + }); + + // js/directives/wire-cloak.js + var import_alpinejs18 = __toESM(require_module_cjs()); + import_alpinejs18.default.interceptInit((el) => { + if (el.hasAttribute("wire:cloak")) { + import_alpinejs18.default.mutateDom(() => el.removeAttribute("wire:cloak")); + } + }); + + // js/directives/wire-model.js + var import_alpinejs19 = __toESM(require_module_cjs()); + directive("model", ({ el, directive: directive2, component, cleanup }) => { + component = findComponentByEl(el); + let { expression, modifiers } = directive2; + if (!expression) { + return console.warn("Livewire: [wire:model] is missing a value.", el); + } + if (componentIsMissingProperty(component, expression)) { + return console.warn('Livewire: [wire:model="' + expression + '"] property does not exist on component: [' + component.name + "]", el); + } + if (el.type && el.type.toLowerCase() === "file") { + return handleFileUpload(el, expression, component, cleanup); + } + let liveIndex = modifiers.indexOf("live"); + let isLive = liveIndex !== -1; + let hasLazyWithoutLive = modifiers.includes("lazy") && !isLive; + let shouldSendNetwork = isLive || hasLazyWithoutLive; + let ephemeralModifiers = isLive && !hasLazyWithoutLive ? modifiers.slice(0, liveIndex) : modifiers.slice(); + let networkModifiers = isLive && !hasLazyWithoutLive ? modifiers.slice(liveIndex + 1) : []; + if (hasLazyWithoutLive) { + ephemeralModifiers = ephemeralModifiers.filter((m) => m !== "lazy"); + networkModifiers.push("change"); + } + if (!(ephemeralModifiers.includes("deep") || networkModifiers.includes("deep"))) { + if (!ephemeralModifiers.includes("self")) { + ephemeralModifiers.push("self"); + } + } + let ephemeralOnBlur = ephemeralModifiers.includes("blur"); + let ephemeralOnChange = ephemeralModifiers.includes("change") || ephemeralModifiers.includes("lazy"); + let ephemeralOnEnter = ephemeralModifiers.includes("enter"); + let hasEphemeralTriggers = ephemeralOnBlur || ephemeralOnChange || ephemeralOnEnter; + let networkOnBlur = networkModifiers.includes("blur"); + let networkOnChange = networkModifiers.includes("change") || networkModifiers.includes("lazy"); + let networkOnEnter = networkModifiers.includes("enter"); + let hasNetworkTriggers = networkOnBlur || networkOnChange || networkOnEnter; + let isDebounced = networkModifiers.includes("debounce"); + let isThrottled = networkModifiers.includes("throttle"); + let update = () => { + setNextActionOrigin({ el, directive: directive2 }); + if (isLive || isDebounced) { + setNextActionMetadata({ type: "model.live" }); + } + expression.startsWith("$parent") ? component.$wire.$parent.$commit() : component.$wire.$commit(); + }; + let debouncedUpdate = update; + if (shouldSendNetwork && !hasNetworkTriggers && isRealtimeInput(el) || isDebounced) { + debouncedUpdate = debounce(debouncedUpdate, parseModifierDuration(networkModifiers, "debounce") || 150); + } + if (isThrottled) { + debouncedUpdate = throttle2(debouncedUpdate, parseModifierDuration(networkModifiers, "throttle") || 150); + } + let bindings = {}; + if (shouldSendNetwork && networkOnBlur) { + bindings["@blur"] = () => update(); + } + if (shouldSendNetwork && networkOnChange) { + bindings["@change"] = () => update(); + } + if (shouldSendNetwork && networkOnEnter) { + bindings["@keydown.enter"] = () => update(); + } + let xModelTail = getModifierTail(ephemeralModifiers); + bindings["x-model" + xModelTail] = () => { + return { + get() { + return dataGet(component.$wire, expression); + }, + set(value) { + dataSet(component.$wire, expression, value); + if (shouldSendNetwork && !hasNetworkTriggers) { + debouncedUpdate(); + } + } + }; + }; + import_alpinejs19.default.bind(el, bindings); + }); + function getModifierTail(modifiers) { + modifiers = modifiers.filter((i) => ![ + "defer", + "live" + ].includes(i)); + if (modifiers.includes("debounce")) { + let index2 = modifiers.indexOf("debounce"); + let hasDuration = parseModifierDuration(modifiers, "debounce") !== void 0; + modifiers.splice(index2, hasDuration ? 2 : 1); + } + if (modifiers.includes("throttle")) { + let index2 = modifiers.indexOf("throttle"); + let hasDuration = parseModifierDuration(modifiers, "throttle") !== void 0; + modifiers.splice(index2, hasDuration ? 2 : 1); + } + if (modifiers.length === 0) + return ""; + return "." + modifiers.join("."); + } + function isRealtimeInput(el) { + return ["INPUT", "TEXTAREA"].includes(el.tagName.toUpperCase()) && !["checkbox", "radio"].includes(el.type) || el.tagName.toUpperCase() === "UI-SLIDER" || el.tagName.toUpperCase() === "UI-COMPOSER"; + } + function componentIsMissingProperty(component, property) { + if (property.startsWith("$parent")) { + let parent = findComponentByEl(component.el.parentElement, false); + if (!parent) + return true; + return componentIsMissingProperty(parent, property.slice(7).replace(/^\./, "")); + } + let match = property.match(/^\[['"]?([^\]'"]+)['"]?\]/) || property.match(/^([^.\[]+)/); + let baseProperty = match[1]; + return !Object.keys(component.canonical).includes(baseProperty); + } + function debounce(func, wait) { + var timeout; + return function() { + var context = this, args = arguments; + var later = function() { + timeout = null; + func.apply(context, args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; + } + function throttle2(func, limit) { + let inThrottle; + return function() { + let context = this, args = arguments; + if (!inThrottle) { + func.apply(context, args); + inThrottle = true; + setTimeout(() => inThrottle = false, limit); + } + }; + } + function parseModifierDuration(modifiers, key) { + let index2 = modifiers.indexOf(key); + if (index2 === -1) + return void 0; + let nextModifier = modifiers[modifiers.indexOf(key) + 1] || "invalid-wait"; + let duration = nextModifier.split("ms")[0]; + return !isNaN(duration) ? duration : void 0; + } + + // js/directives/wire-init.js + directive("init", ({ component, el, directive: directive2 }) => { + let fullMethod = directive2.expression ? directive2.expression : "$refresh"; + setNextActionOrigin({ el, directive: directive2 }); + evaluateActionExpression(el, fullMethod); + }); + + // js/directives/wire-poll.js + directive("poll", ({ el, directive: directive2, component }) => { + let interval = extractDurationFrom(directive2.modifiers, 2e3); + let { start: start2, pauseWhile, throttleWhile, stopWhen } = poll(() => { + triggerComponentRequest(el, directive2, component); + }, interval); + start2(); + throttleWhile(() => theTabIsInTheBackground() && theDirectiveIsMissingKeepAlive(directive2)); + pauseWhile(() => theDirectiveHasVisible(directive2) && theElementIsNotInTheViewport(el)); + pauseWhile(() => theDirectiveIsOffTheElement(el)); + pauseWhile(() => livewireIsOffline()); + pauseWhile(() => sessionIsExpired()); + stopWhen(() => theElementIsDisconnected(el)); + }); + function triggerComponentRequest(el, directive2, component) { + setNextActionOrigin({ el, directive: directive2, targetEl: null }); + setNextActionMetadata({ type: "poll" }); + let fullMethod = directive2.expression ? directive2.expression : "$refresh"; + evaluateActionExpression(el, fullMethod); + } + function poll(callback, interval = 2e3) { + let pauseConditions = []; + let throttleConditions = []; + let stopConditions = []; + return { + start() { + let clear = syncronizedInterval(interval, () => { + if (stopConditions.some((i) => i())) + return clear(); + if (pauseConditions.some((i) => i())) + return; + if (throttleConditions.some((i) => i()) && Math.random() < 0.95) + return; + callback(); + }); + }, + pauseWhile(condition) { + pauseConditions.push(condition); + }, + throttleWhile(condition) { + throttleConditions.push(condition); + }, + stopWhen(condition) { + stopConditions.push(condition); + } + }; + } + var clocks = []; + function syncronizedInterval(ms, callback) { + if (!clocks[ms]) { + let clock = { + timer: setInterval(() => clock.callbacks.forEach((i) => i()), ms), + callbacks: /* @__PURE__ */ new Set() + }; + clocks[ms] = clock; + } + clocks[ms].callbacks.add(callback); + return () => { + clocks[ms].callbacks.delete(callback); + if (clocks[ms].callbacks.size === 0) { + clearInterval(clocks[ms].timer); + delete clocks[ms]; + } + }; + } + var isOffline = false; + window.addEventListener("offline", () => isOffline = true); + window.addEventListener("online", () => isOffline = false); + function livewireIsOffline() { + return isOffline; + } + var inBackground = false; + document.addEventListener("visibilitychange", () => { + inBackground = document.hidden; + }, false); + function theTabIsInTheBackground() { + return inBackground; + } + function theDirectiveIsOffTheElement(el) { + return !getDirectives(el).has("poll"); + } + function theDirectiveIsMissingKeepAlive(directive2) { + return !directive2.modifiers.includes("keep-alive"); + } + function theDirectiveHasVisible(directive2) { + return directive2.modifiers.includes("visible"); + } + function theElementIsNotInTheViewport(el) { + let bounding = el.getBoundingClientRect(); + return !(bounding.top < (window.innerHeight || document.documentElement.clientHeight) && bounding.left < (window.innerWidth || document.documentElement.clientWidth) && bounding.bottom > 0 && bounding.right > 0); + } + function theElementIsDisconnected(el) { + return el.isConnected === false; + } + function extractDurationFrom(modifiers, defaultDuration) { + let durationInMilliSeconds; + let durationInMilliSecondsString = modifiers.find((mod) => mod.match(/([0-9]+)ms/)); + let durationInSecondsString = modifiers.find((mod) => mod.match(/([0-9]+)s/)); + if (durationInMilliSecondsString) { + durationInMilliSeconds = Number(durationInMilliSecondsString.replace("ms", "")); + } else if (durationInSecondsString) { + durationInMilliSeconds = Number(durationInSecondsString.replace("s", "")) * 1e3; + } + return durationInMilliSeconds || defaultDuration; + } + + // js/directives/wire-show.js + var import_alpinejs20 = __toESM(require_module_cjs()); + import_alpinejs20.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:show")) { + let { name, value } = el.attributes[i]; + let modifierString = name.split("wire:show")[1]; + let expression = value.trim(); + import_alpinejs20.default.bind(el, { + ["x-show" + modifierString]() { + return evaluateActionExpression(el, expression); + } + }); + } + } + }); + + // js/directives/wire-text.js + var import_alpinejs21 = __toESM(require_module_cjs()); + import_alpinejs21.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:text")) { + let { name, value } = el.attributes[i]; + let modifierString = name.split("wire:text")[1]; + let expression = value.trim(); + import_alpinejs21.default.bind(el, { + ["x-text" + modifierString]() { + return evaluateActionExpression(el, expression); + } + }); + } + } + }); + + // js/directives/wire-bind.js + var import_alpinejs22 = __toESM(require_module_cjs()); + import_alpinejs22.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:bind:")) { + let { name, value } = el.attributes[i]; + let remainder = name.split("wire:bind")[1]; + let expression = value.trim(); + import_alpinejs22.default.bind(el, { + ["x-bind" + remainder]() { + return evaluateActionExpression(el, expression); + } + }); + } + } + }); + + // js/index.js + var Livewire2 = { + directive, + dispatchTo, + interceptAction: (callback) => interceptAction(callback), + interceptMessage: (callback) => interceptMessage(callback), + interceptRequest: (callback) => interceptRequest(callback), + fireAction: (component, method, params = [], metadata = {}) => fireAction(component, method, params, metadata), + start, + first, + find, + getByName, + all, + hook: on, + trigger, + triggerAsync, + dispatch: dispatchGlobal, + on: on2, + get navigate() { + return import_alpinejs23.default.navigate; + } + }; + var warnAboutMultipleInstancesOf = (entity) => console.warn(`Detected multiple instances of ${entity} running`); + if (window.Livewire) + warnAboutMultipleInstancesOf("Livewire"); + if (window.Alpine) + warnAboutMultipleInstancesOf("Alpine"); + window.Livewire = Livewire2; + window.Alpine = import_alpinejs23.default; + if (window.livewireScriptConfig === void 0) { + window.Alpine.__fromLivewire = true; + document.addEventListener("DOMContentLoaded", () => { + if (window.Alpine.__fromLivewire === void 0) { + warnAboutMultipleInstancesOf("Alpine"); + } + Livewire2.start(); + }); + } +})(); +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ +/*! Bundled license information: + +sortablejs/modular/sortable.esm.js: + (**! + * Sortable 1.15.2 + * @author RubaXa <trash@rubaxa.org> + * @author owenm <owen23355@gmail.com> + * @license MIT + *) +*/ +/*! Bundled license information: + +tabbable/dist/index.esm.js: + (*! + * tabbable 6.4.0 + * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE + *) + +focus-trap/dist/focus-trap.esm.js: + (*! + * focus-trap 8.0.0 + * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE + *) + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *) +*/ diff --git a/admin/public/vendor/livewire/livewire.csp.min.js b/admin/public/vendor/livewire/livewire.csp.min.js new file mode 100644 index 00000000..2d06867d --- /dev/null +++ b/admin/public/vendor/livewire/livewire.csp.min.js @@ -0,0 +1,134 @@ +(()=>{var qd=Object.create;var ol=Object.defineProperty;var Wd=Object.getOwnPropertyDescriptor;var zd=Object.getOwnPropertyNames;var Kd=Object.getPrototypeOf,Vd=Object.prototype.hasOwnProperty;var al=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Gd=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of zd(t))!Vd.call(e,i)&&i!==r&&ol(e,i,{get:()=>t[i],enumerable:!(n=Wd(t,i))||n.enumerable});return e};var le=(e,t,r)=>(r=e!=null?qd(Kd(e)):{},Gd(t||!e||!e.__esModule?ol(r,"default",{value:e,enumerable:!0}):r,e));var ue=al((Ey,Lu)=>{var Yd=Object.create,vi=Object.defineProperty,Xd=Object.getOwnPropertyDescriptor,Nl=Object.getOwnPropertyNames,Zd=Object.getPrototypeOf,Qd=Object.prototype.hasOwnProperty,yi=(e,t)=>function(){return t||(0,e[Nl(e)[0]])((t={exports:{}}).exports,t),t.exports},ep=(e,t)=>{for(var r in t)vi(e,r,{get:t[r],enumerable:!0})},Ml=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Nl(t))!Qd.call(e,i)&&i!==r&&vi(e,i,{get:()=>t[i],enumerable:!(n=Xd(t,i))||n.enumerable});return e},tp=(e,t,r)=>(r=e!=null?Yd(Zd(e)):{},Ml(t||!e||!e.__esModule?vi(r,"default",{value:e,enumerable:!0}):r,e)),rp=e=>Ml(vi({},"__esModule",{value:!0}),e),np=yi({"node_modules/@vue/shared/dist/shared.cjs.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(y,k){let N=Object.create(null),D=y.split(",");for(let ee=0;ee<D.length;ee++)N[D[ee]]=!0;return k?ee=>!!N[ee.toLowerCase()]:ee=>!!N[ee]}var r={[1]:"TEXT",[2]:"CLASS",[4]:"STYLE",[8]:"PROPS",[16]:"FULL_PROPS",[32]:"HYDRATE_EVENTS",[64]:"STABLE_FRAGMENT",[128]:"KEYED_FRAGMENT",[256]:"UNKEYED_FRAGMENT",[512]:"NEED_PATCH",[1024]:"DYNAMIC_SLOTS",[2048]:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},n={[1]:"STABLE",[2]:"DYNAMIC",[3]:"FORWARDED"},i="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",o=t(i),a=2;function s(y,k=0,N=y.length){let D=y.split(/(\r?\n)/),ee=D.filter((Te,ye)=>ye%2===1);D=D.filter((Te,ye)=>ye%2===0);let ae=0,ke=[];for(let Te=0;Te<D.length;Te++)if(ae+=D[Te].length+(ee[Te]&&ee[Te].length||0),ae>=k){for(let ye=Te-a;ye<=Te+a||N>ae;ye++){if(ye<0||ye>=D.length)continue;let Qr=ye+1;ke.push(`${Qr}${" ".repeat(Math.max(3-String(Qr).length,0))}| ${D[ye]}`);let vr=D[ye].length,ri=ee[ye]&&ee[ye].length||0;if(ye===Te){let yr=k-(ae-(vr+ri)),Uo=Math.max(1,N>ae?vr-yr:N-k);ke.push(" | "+" ".repeat(yr)+"^".repeat(Uo))}else if(ye>Te){if(N>ae){let yr=Math.max(Math.min(N-ae,vr),1);ke.push(" | "+"^".repeat(yr))}ae+=vr+ri}}break}return ke.join(` +`)}var l="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",u=t(l),c=t(l+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected"),f=/[>/="'\u0009\u000a\u000c\u0020]/,d={};function h(y){if(d.hasOwnProperty(y))return d[y];let k=f.test(y);return k&&console.error(`unsafe attribute name: ${y}`),d[y]=!k}var g={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},m=t("animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width"),v=t("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");function b(y){if(Xe(y)){let k={};for(let N=0;N<y.length;N++){let D=y[N],ee=b($t(D)?I(D):D);if(ee)for(let ae in ee)k[ae]=ee[ae]}return k}else if(ot(y))return y}var E=/;(?![^(]*\))/g,A=/:(.+)/;function I(y){let k={};return y.split(E).forEach(N=>{if(N){let D=N.split(A);D.length>1&&(k[D[0].trim()]=D[1].trim())}}),k}function j(y){let k="";if(!y)return k;for(let N in y){let D=y[N],ee=N.startsWith("--")?N:ei(N);($t(D)||typeof D=="number"&&m(ee))&&(k+=`${ee}:${D};`)}return k}function R(y){let k="";if($t(y))k=y;else if(Xe(y))for(let N=0;N<y.length;N++){let D=R(y[N]);D&&(k+=D+" ")}else if(ot(y))for(let N in y)y[N]&&(k+=N+" ");return k.trim()}var F="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",Y="svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view",re="area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr",de=t(F),ie=t(Y),X=t(re),U=/["'&<>]/;function w(y){let k=""+y,N=U.exec(k);if(!N)return k;let D="",ee,ae,ke=0;for(ae=N.index;ae<k.length;ae++){switch(k.charCodeAt(ae)){case 34:ee=""";break;case 38:ee="&";break;case 39:ee="'";break;case 60:ee="<";break;case 62:ee=">";break;default:continue}ke!==ae&&(D+=k.substring(ke,ae)),ke=ae+1,D+=ee}return ke!==ae?D+k.substring(ke,ae):D}var _=/^-?>|<!--|-->|--!>|<!-$/g;function O(y){return y.replace(_,"")}function M(y,k){if(y.length!==k.length)return!1;let N=!0;for(let D=0;N&&D<y.length;D++)N=L(y[D],k[D]);return N}function L(y,k){if(y===k)return!0;let N=Yr(y),D=Yr(k);if(N||D)return N&&D?y.getTime()===k.getTime():!1;if(N=Xe(y),D=Xe(k),N||D)return N&&D?M(y,k):!1;if(N=ot(y),D=ot(k),N||D){if(!N||!D)return!1;let ee=Object.keys(y).length,ae=Object.keys(k).length;if(ee!==ae)return!1;for(let ke in y){let Te=y.hasOwnProperty(ke),ye=k.hasOwnProperty(ke);if(Te&&!ye||!Te&&ye||!L(y[ke],k[ke]))return!1}}return String(y)===String(k)}function z(y,k){return y.findIndex(N=>L(N,k))}var q=y=>y==null?"":ot(y)?JSON.stringify(y,K,2):String(y),K=(y,k)=>Lt(k)?{[`Map(${k.size})`]:[...k.entries()].reduce((N,[D,ee])=>(N[`${D} =>`]=ee,N),{})}:Ze(k)?{[`Set(${k.size})`]:[...k.values()]}:ot(k)&&!Xe(k)&&!Jn(k)?String(k):k,G=["bigInt","optionalChaining","nullishCoalescingOperator"],oe=Object.freeze({}),xe=Object.freeze([]),me=()=>{},Le=()=>!1,Re=/^on[^a-z]/,nt=y=>Re.test(y),it=y=>y.startsWith("onUpdate:"),Wn=Object.assign,zn=(y,k)=>{let N=y.indexOf(k);N>-1&&y.splice(N,1)},Kn=Object.prototype.hasOwnProperty,Vn=(y,k)=>Kn.call(y,k),Xe=Array.isArray,Lt=y=>jt(y)==="[object Map]",Ze=y=>jt(y)==="[object Set]",Yr=y=>y instanceof Date,Xr=y=>typeof y=="function",$t=y=>typeof y=="string",Do=y=>typeof y=="symbol",ot=y=>y!==null&&typeof y=="object",pr=y=>ot(y)&&Xr(y.then)&&Xr(y.catch),Gn=Object.prototype.toString,jt=y=>Gn.call(y),Fo=y=>jt(y).slice(8,-1),Jn=y=>jt(y)==="[object Object]",Yn=y=>$t(y)&&y!=="NaN"&&y[0]!=="-"&&""+parseInt(y,10)===y,Xn=t(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ut=y=>{let k=Object.create(null);return N=>k[N]||(k[N]=y(N))},Zn=/-(\w)/g,Qn=Ut(y=>y.replace(Zn,(k,N)=>N?N.toUpperCase():"")),Lo=/\B([A-Z])/g,ei=Ut(y=>y.replace(Lo,"-$1").toLowerCase()),Bt=Ut(y=>y.charAt(0).toUpperCase()+y.slice(1)),$o=Ut(y=>y?`on${Bt(y)}`:""),Zr=(y,k)=>y!==k&&(y===y||k===k),jo=(y,k)=>{for(let N=0;N<y.length;N++)y[N](k)},hr=(y,k,N)=>{Object.defineProperty(y,k,{configurable:!0,enumerable:!1,value:N})},mr=y=>{let k=parseFloat(y);return isNaN(k)?y:k},gr,ti=()=>gr||(gr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});e.EMPTY_ARR=xe,e.EMPTY_OBJ=oe,e.NO=Le,e.NOOP=me,e.PatchFlagNames=r,e.babelParserDefaultPlugins=G,e.camelize=Qn,e.capitalize=Bt,e.def=hr,e.escapeHtml=w,e.escapeHtmlComment=O,e.extend=Wn,e.generateCodeFrame=s,e.getGlobalThis=ti,e.hasChanged=Zr,e.hasOwn=Vn,e.hyphenate=ei,e.invokeArrayFns=jo,e.isArray=Xe,e.isBooleanAttr=c,e.isDate=Yr,e.isFunction=Xr,e.isGloballyWhitelisted=o,e.isHTMLTag=de,e.isIntegerKey=Yn,e.isKnownAttr=v,e.isMap=Lt,e.isModelListener=it,e.isNoUnitNumericStyleProp=m,e.isObject=ot,e.isOn=nt,e.isPlainObject=Jn,e.isPromise=pr,e.isReservedProp=Xn,e.isSSRSafeAttrName=h,e.isSVGTag=ie,e.isSet=Ze,e.isSpecialBooleanAttr=u,e.isString=$t,e.isSymbol=Do,e.isVoidTag=X,e.looseEqual=L,e.looseIndexOf=z,e.makeMap=t,e.normalizeClass=R,e.normalizeStyle=b,e.objectToString=Gn,e.parseStringStyle=I,e.propsToAttrMap=g,e.remove=zn,e.slotFlagsText=n,e.stringifyStyle=j,e.toDisplayString=q,e.toHandlerKey=$o,e.toNumber=mr,e.toRawType=Fo,e.toTypeString=jt}}),ip=yi({"node_modules/@vue/shared/index.js"(e,t){"use strict";t.exports=np()}}),op=yi({"node_modules/@vue/reactivity/dist/reactivity.cjs.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=ip(),r=new WeakMap,n=[],i,o=Symbol("iterate"),a=Symbol("Map key iterate");function s(p){return p&&p._isEffect===!0}function l(p,x=t.EMPTY_OBJ){s(p)&&(p=p.raw);let S=f(p,x);return x.lazy||S(),S}function u(p){p.active&&(d(p),p.options.onStop&&p.options.onStop(),p.active=!1)}var c=0;function f(p,x){let S=function(){if(!S.active)return p();if(!n.includes(S)){d(S);try{return v(),n.push(S),i=S,p()}finally{n.pop(),b(),i=n[n.length-1]}}};return S.id=c++,S.allowRecurse=!!x.allowRecurse,S._isEffect=!0,S.active=!0,S.raw=p,S.deps=[],S.options=x,S}function d(p){let{deps:x}=p;if(x.length){for(let S=0;S<x.length;S++)x[S].delete(p);x.length=0}}var h=!0,g=[];function m(){g.push(h),h=!1}function v(){g.push(h),h=!0}function b(){let p=g.pop();h=p===void 0?!0:p}function E(p,x,S){if(!h||i===void 0)return;let P=r.get(p);P||r.set(p,P=new Map);let T=P.get(S);T||P.set(S,T=new Set),T.has(i)||(T.add(i),i.deps.push(T),i.options.onTrack&&i.options.onTrack({effect:i,target:p,type:x,key:S}))}function A(p,x,S,P,T,$){let V=r.get(p);if(!V)return;let se=new Set,Ne=Oe=>{Oe&&Oe.forEach(Qe=>{(Qe!==i||Qe.allowRecurse)&&se.add(Qe)})};if(x==="clear")V.forEach(Ne);else if(S==="length"&&t.isArray(p))V.forEach((Oe,Qe)=>{(Qe==="length"||Qe>=P)&&Ne(Oe)});else switch(S!==void 0&&Ne(V.get(S)),x){case"add":t.isArray(p)?t.isIntegerKey(S)&&Ne(V.get("length")):(Ne(V.get(o)),t.isMap(p)&&Ne(V.get(a)));break;case"delete":t.isArray(p)||(Ne(V.get(o)),t.isMap(p)&&Ne(V.get(a)));break;case"set":t.isMap(p)&&Ne(V.get(o));break}let en=Oe=>{Oe.options.onTrigger&&Oe.options.onTrigger({effect:Oe,target:p,key:S,type:x,newValue:P,oldValue:T,oldTarget:$}),Oe.options.scheduler?Oe.options.scheduler(Oe):Oe()};se.forEach(en)}var I=t.makeMap("__proto__,__v_isRef,__isVue"),j=new Set(Object.getOwnPropertyNames(Symbol).map(p=>Symbol[p]).filter(t.isSymbol)),R=X(),F=X(!1,!0),Y=X(!0),re=X(!0,!0),de=ie();function ie(){let p={};return["includes","indexOf","lastIndexOf"].forEach(x=>{p[x]=function(...S){let P=y(this);for(let $=0,V=this.length;$<V;$++)E(P,"get",$+"");let T=P[x](...S);return T===-1||T===!1?P[x](...S.map(y)):T}}),["push","pop","shift","unshift","splice"].forEach(x=>{p[x]=function(...S){m();let P=y(this)[x].apply(this,S);return b(),P}}),p}function X(p=!1,x=!1){return function(P,T,$){if(T==="__v_isReactive")return!p;if(T==="__v_isReadonly")return p;if(T==="__v_raw"&&$===(p?x?Qn:Zn:x?Ut:Xn).get(P))return P;let V=t.isArray(P);if(!p&&V&&t.hasOwn(de,T))return Reflect.get(de,T,$);let se=Reflect.get(P,T,$);return(t.isSymbol(T)?j.has(T):I(T))||(p||E(P,"get",T),x)?se:D(se)?!V||!t.isIntegerKey(T)?se.value:se:t.isObject(se)?p?Zr(se):Bt(se):se}}var U=_(),w=_(!0);function _(p=!1){return function(S,P,T,$){let V=S[P];if(!p&&(T=y(T),V=y(V),!t.isArray(S)&&D(V)&&!D(T)))return V.value=T,!0;let se=t.isArray(S)&&t.isIntegerKey(P)?Number(P)<S.length:t.hasOwn(S,P),Ne=Reflect.set(S,P,T,$);return S===y($)&&(se?t.hasChanged(T,V)&&A(S,"set",P,T,V):A(S,"add",P,T)),Ne}}function O(p,x){let S=t.hasOwn(p,x),P=p[x],T=Reflect.deleteProperty(p,x);return T&&S&&A(p,"delete",x,void 0,P),T}function M(p,x){let S=Reflect.has(p,x);return(!t.isSymbol(x)||!j.has(x))&&E(p,"has",x),S}function L(p){return E(p,"iterate",t.isArray(p)?"length":o),Reflect.ownKeys(p)}var z={get:R,set:U,deleteProperty:O,has:M,ownKeys:L},q={get:Y,set(p,x){return console.warn(`Set operation on key "${String(x)}" failed: target is readonly.`,p),!0},deleteProperty(p,x){return console.warn(`Delete operation on key "${String(x)}" failed: target is readonly.`,p),!0}},K=t.extend({},z,{get:F,set:w}),G=t.extend({},q,{get:re}),oe=p=>t.isObject(p)?Bt(p):p,xe=p=>t.isObject(p)?Zr(p):p,me=p=>p,Le=p=>Reflect.getPrototypeOf(p);function Re(p,x,S=!1,P=!1){p=p.__v_raw;let T=y(p),$=y(x);x!==$&&!S&&E(T,"get",x),!S&&E(T,"get",$);let{has:V}=Le(T),se=P?me:S?xe:oe;if(V.call(T,x))return se(p.get(x));if(V.call(T,$))return se(p.get($));p!==T&&p.get(x)}function nt(p,x=!1){let S=this.__v_raw,P=y(S),T=y(p);return p!==T&&!x&&E(P,"has",p),!x&&E(P,"has",T),p===T?S.has(p):S.has(p)||S.has(T)}function it(p,x=!1){return p=p.__v_raw,!x&&E(y(p),"iterate",o),Reflect.get(p,"size",p)}function Wn(p){p=y(p);let x=y(this);return Le(x).has.call(x,p)||(x.add(p),A(x,"add",p,p)),this}function zn(p,x){x=y(x);let S=y(this),{has:P,get:T}=Le(S),$=P.call(S,p);$?Yn(S,P,p):(p=y(p),$=P.call(S,p));let V=T.call(S,p);return S.set(p,x),$?t.hasChanged(x,V)&&A(S,"set",p,x,V):A(S,"add",p,x),this}function Kn(p){let x=y(this),{has:S,get:P}=Le(x),T=S.call(x,p);T?Yn(x,S,p):(p=y(p),T=S.call(x,p));let $=P?P.call(x,p):void 0,V=x.delete(p);return T&&A(x,"delete",p,void 0,$),V}function Vn(){let p=y(this),x=p.size!==0,S=t.isMap(p)?new Map(p):new Set(p),P=p.clear();return x&&A(p,"clear",void 0,void 0,S),P}function Xe(p,x){return function(P,T){let $=this,V=$.__v_raw,se=y(V),Ne=x?me:p?xe:oe;return!p&&E(se,"iterate",o),V.forEach((en,Oe)=>P.call(T,Ne(en),Ne(Oe),$))}}function Lt(p,x,S){return function(...P){let T=this.__v_raw,$=y(T),V=t.isMap($),se=p==="entries"||p===Symbol.iterator&&V,Ne=p==="keys"&&V,en=T[p](...P),Oe=S?me:x?xe:oe;return!x&&E($,"iterate",Ne?a:o),{next(){let{value:Qe,done:Bo}=en.next();return Bo?{value:Qe,done:Bo}:{value:se?[Oe(Qe[0]),Oe(Qe[1])]:Oe(Qe),done:Bo}},[Symbol.iterator](){return this}}}}function Ze(p){return function(...x){{let S=x[0]?`on key "${x[0]}" `:"";console.warn(`${t.capitalize(p)} operation ${S}failed: target is readonly.`,y(this))}return p==="delete"?!1:this}}function Yr(){let p={get($){return Re(this,$)},get size(){return it(this)},has:nt,add:Wn,set:zn,delete:Kn,clear:Vn,forEach:Xe(!1,!1)},x={get($){return Re(this,$,!1,!0)},get size(){return it(this)},has:nt,add:Wn,set:zn,delete:Kn,clear:Vn,forEach:Xe(!1,!0)},S={get($){return Re(this,$,!0)},get size(){return it(this,!0)},has($){return nt.call(this,$,!0)},add:Ze("add"),set:Ze("set"),delete:Ze("delete"),clear:Ze("clear"),forEach:Xe(!0,!1)},P={get($){return Re(this,$,!0,!0)},get size(){return it(this,!0)},has($){return nt.call(this,$,!0)},add:Ze("add"),set:Ze("set"),delete:Ze("delete"),clear:Ze("clear"),forEach:Xe(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach($=>{p[$]=Lt($,!1,!1),S[$]=Lt($,!0,!1),x[$]=Lt($,!1,!0),P[$]=Lt($,!0,!0)}),[p,S,x,P]}var[Xr,$t,Do,ot]=Yr();function pr(p,x){let S=x?p?ot:Do:p?$t:Xr;return(P,T,$)=>T==="__v_isReactive"?!p:T==="__v_isReadonly"?p:T==="__v_raw"?P:Reflect.get(t.hasOwn(S,T)&&T in P?S:P,T,$)}var Gn={get:pr(!1,!1)},jt={get:pr(!1,!0)},Fo={get:pr(!0,!1)},Jn={get:pr(!0,!0)};function Yn(p,x,S){let P=y(S);if(P!==S&&x.call(p,P)){let T=t.toRawType(p);console.warn(`Reactive ${T} contains both the raw and reactive versions of the same object${T==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}var Xn=new WeakMap,Ut=new WeakMap,Zn=new WeakMap,Qn=new WeakMap;function Lo(p){switch(p){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ei(p){return p.__v_skip||!Object.isExtensible(p)?0:Lo(t.toRawType(p))}function Bt(p){return p&&p.__v_isReadonly?p:hr(p,!1,z,Gn,Xn)}function $o(p){return hr(p,!1,K,jt,Ut)}function Zr(p){return hr(p,!0,q,Fo,Zn)}function jo(p){return hr(p,!0,G,Jn,Qn)}function hr(p,x,S,P,T){if(!t.isObject(p))return console.warn(`value cannot be made reactive: ${String(p)}`),p;if(p.__v_raw&&!(x&&p.__v_isReactive))return p;let $=T.get(p);if($)return $;let V=ei(p);if(V===0)return p;let se=new Proxy(p,V===2?P:S);return T.set(p,se),se}function mr(p){return gr(p)?mr(p.__v_raw):!!(p&&p.__v_isReactive)}function gr(p){return!!(p&&p.__v_isReadonly)}function ti(p){return mr(p)||gr(p)}function y(p){return p&&y(p.__v_raw)||p}function k(p){return t.def(p,"__v_skip",!0),p}var N=p=>t.isObject(p)?Bt(p):p;function D(p){return Boolean(p&&p.__v_isRef===!0)}function ee(p){return Te(p)}function ae(p){return Te(p,!0)}var ke=class{constructor(p,x=!1){this._shallow=x,this.__v_isRef=!0,this._rawValue=x?p:y(p),this._value=x?p:N(p)}get value(){return E(y(this),"get","value"),this._value}set value(p){p=this._shallow?p:y(p),t.hasChanged(p,this._rawValue)&&(this._rawValue=p,this._value=this._shallow?p:N(p),A(y(this),"set","value",p))}};function Te(p,x=!1){return D(p)?p:new ke(p,x)}function ye(p){A(y(p),"set","value",p.value)}function Qr(p){return D(p)?p.value:p}var vr={get:(p,x,S)=>Qr(Reflect.get(p,x,S)),set:(p,x,S,P)=>{let T=p[x];return D(T)&&!D(S)?(T.value=S,!0):Reflect.set(p,x,S,P)}};function ri(p){return mr(p)?p:new Proxy(p,vr)}var yr=class{constructor(p){this.__v_isRef=!0;let{get:x,set:S}=p(()=>E(this,"get","value"),()=>A(this,"set","value"));this._get=x,this._set=S}get value(){return this._get()}set value(p){this._set(p)}};function Uo(p){return new yr(p)}function jd(p){ti(p)||console.warn("toRefs() expects a reactive object but received a plain one.");let x=t.isArray(p)?new Array(p.length):{};for(let S in p)x[S]=il(p,S);return x}var Ud=class{constructor(p,x){this._object=p,this._key=x,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(p){this._object[this._key]=p}};function il(p,x){return D(p[x])?p[x]:new Ud(p,x)}var Bd=class{constructor(p,x,S){this._setter=x,this._dirty=!0,this.__v_isRef=!0,this.effect=l(p,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,A(y(this),"set","value"))}}),this.__v_isReadonly=S}get value(){let p=y(this);return p._dirty&&(p._value=this.effect(),p._dirty=!1),E(p,"get","value"),p._value}set value(p){this._setter(p)}};function Hd(p){let x,S;return t.isFunction(p)?(x=p,S=()=>{console.warn("Write operation failed: computed value is readonly")}):(x=p.get,S=p.set),new Bd(x,S,t.isFunction(p)||!p.set)}e.ITERATE_KEY=o,e.computed=Hd,e.customRef=Uo,e.effect=l,e.enableTracking=v,e.isProxy=ti,e.isReactive=mr,e.isReadonly=gr,e.isRef=D,e.markRaw=k,e.pauseTracking=m,e.proxyRefs=ri,e.reactive=Bt,e.readonly=Zr,e.ref=ee,e.resetTracking=b,e.shallowReactive=$o,e.shallowReadonly=jo,e.shallowRef=ae,e.stop=u,e.toRaw=y,e.toRef=il,e.toRefs=jd,e.track=E,e.trigger=A,e.triggerRef=ye,e.unref=Qr}}),ap=yi({"node_modules/@vue/reactivity/index.js"(e,t){"use strict";t.exports=op()}}),Pl={};ep(Pl,{Alpine:()=>Fu,default:()=>Jh});Lu.exports=rp(Pl);var Yo=!1,Xo=!1,Vt=[],Zo=-1,ca=!1;function sp(e){cp(e)}function lp(){ca=!0}function up(){ca=!1,Il()}function cp(e){Vt.includes(e)||Vt.push(e),Il()}function fp(e){let t=Vt.indexOf(e);t!==-1&&t>Zo&&Vt.splice(t,1)}function Il(){if(!Xo&&!Yo){if(ca)return;Yo=!0,queueMicrotask(dp)}}function dp(){Yo=!1,Xo=!0;for(let e=0;e<Vt.length;e++)Vt[e](),Zo=e;Vt.length=0,Zo=-1,Xo=!1}var xr,Zt,Sr,Rl,Qo=!0;function pp(e){Qo=!1,e(),Qo=!0}function hp(e){xr=e.reactive,Sr=e.release,Zt=t=>e.effect(t,{scheduler:r=>{Qo?sp(r):r()}}),Rl=e.raw}function El(e){Zt=e}function mp(e){let t=()=>{};return[n=>{let i=Zt(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),Sr(i))},i},()=>{t()}]}function Dl(e,t){let r=!0,n,i,o=Zt(()=>{let a=e(),s=JSON.stringify(a);if(!r&&(typeof a=="object"||a!==n)){let l=typeof n=="object"?JSON.parse(i):n;queueMicrotask(()=>{t(a,l)})}n=a,i=s,r=!1});return()=>Sr(o)}async function gp(e){lp();try{await e(),await Promise.resolve()}finally{up()}}var Fl=[],Ll=[],$l=[];function vp(e){$l.push(e)}function fa(e,t){typeof t=="function"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,Ll.push(t))}function jl(e){Fl.push(e)}function Ul(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function Bl(e,t){!e._x_attributeCleanups||Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}function yp(e){var t,r;for((t=e._x_effects)==null||t.forEach(fp);(r=e._x_cleanups)!=null&&r.length;)e._x_cleanups.pop()()}var da=new MutationObserver(ga),pa=!1;function ha(){da.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),pa=!0}function Hl(){bp(),da.disconnect(),pa=!1}var an=[];function bp(){let e=da.takeRecords();an.push(()=>e.length>0&&ga(e));let t=an.length;queueMicrotask(()=>{if(an.length===t)for(;an.length>0;)an.shift()()})}function ge(e){if(!pa)return e();Hl();let t=e();return ha(),t}var ma=!1,di=[];function wp(){ma=!0}function _p(){ma=!1,ga(di),di=[]}function ga(e){if(ma){di=di.concat(e);return}let t=[],r=new Set,n=new Map,i=new Map;for(let o=0;o<e.length;o++)if(!e[o].target._x_ignoreMutationObserver&&(e[o].type==="childList"&&(e[o].removedNodes.forEach(a=>{a.nodeType===1&&(!a._x_marker||r.add(a))}),e[o].addedNodes.forEach(a=>{if(a.nodeType===1){if(r.has(a)){r.delete(a);return}a._x_marker||t.push(a)}})),e[o].type==="attributes")){let a=e[o].target,s=e[o].attributeName,l=e[o].oldValue,u=()=>{n.has(a)||n.set(a,[]),n.get(a).push({name:s,value:a.getAttribute(s)})},c=()=>{i.has(a)||i.set(a,[]),i.get(a).push(s)};a.hasAttribute(s)&&l===null?u():a.hasAttribute(s)?(c(),u()):c()}i.forEach((o,a)=>{Bl(a,o)}),n.forEach((o,a)=>{Fl.forEach(s=>s(a,o))});for(let o of r)t.some(a=>a.contains(o))||Ll.forEach(a=>a(o));for(let o of t)!o.isConnected||$l.forEach(a=>a(o));t=null,r=null,n=null,i=null}function ql(e){return Yt(Er(e))}function cn(e,t,r){return e._x_dataStack=[t,...Er(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function Er(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?Er(e.host):e.parentNode?Er(e.parentNode):[]}function Yt(e){return new Proxy({objects:e},Ep)}function Wl(e,t){return e===null||e===Object.prototype?null:Object.prototype.hasOwnProperty.call(e,t)?e:Wl(Object.getPrototypeOf(e),t)}var Ep={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(t=>Object.keys(t))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(r=>Object.prototype.hasOwnProperty.call(r,t)||Reflect.has(r,t))},get({objects:e},t,r){return t=="toJSON"?xp:Reflect.get(e.find(n=>Reflect.has(n,t))||{},t,r)},set({objects:e},t,r,n){let i;for(let a of e)if(i=Wl(a,t),i)break;i||(i=e[e.length-1]);let o=Object.getOwnPropertyDescriptor(i,t);return o?.set&&o?.get?o.set.call(n,r)||!0:Reflect.set(i,t,r)}};function xp(){return Reflect.ownKeys(this).reduce((t,r)=>(t[r]=Reflect.get(this,r),t),{})}function va(e){let t=n=>typeof n=="object"&&!Array.isArray(n)&&n!==null,r=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([o,{value:a,enumerable:s}])=>{if(s===!1||a===void 0||typeof a=="object"&&a!==null&&a.__v_skip)return;let l=i===""?o:`${i}.${o}`;typeof a=="object"&&a!==null&&a._x_interceptor?n[o]=a.initialize(e,l,o):t(a)&&a!==n&&!(a instanceof Element)&&r(a,l)})};return r(e)}function zl(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,o){return e(this.initialValue,()=>Sp(n,i),a=>ea(n,i,a),i,o)}};return t(r),n=>{if(typeof n=="object"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(o,a,s)=>{let l=n.initialize(o,a,s);return r.initialValue=l,i(o,a,s)}}else r.initialValue=n;return r}}function Sp(e,t){return t.split(".").reduce((r,n)=>r[n],e)}function ea(e,t,r){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),ea(e[t[0]],t.slice(1),r)}}var Kl={};function et(e,t){Kl[e]=t}function pi(e,t){let r=Ap(t);return Object.entries(Kl).forEach(([n,i])=>{Object.defineProperty(e,`$${n}`,{get(){return i(t,r)},enumerable:!1})}),e}function Ap(e){let[t,r]=Ql(e),n={interceptor:zl,...t};return fa(e,r),n}function Op(e,t,r,...n){try{return r(...n)}catch(i){ya(i,e,t)}}function ya(...e){return Vl(...e)}var Vl=kp;function Cp(e){Vl=e}function kp(e,t,r=void 0){e=Object.assign(e??{message:"No error message given."},{el:t,expression:r}),console.warn(`Alpine Expression Error: ${e.message} + +${r?'Expression: "'+r+`" + +`:""}`,t),setTimeout(()=>{throw e},0)}var Gt=!0;function Gl(e){let t=Gt;Gt=!1;let r=e();return Gt=t,r}function Jt(e,t,r={}){let n;return De(e,t)(i=>n=i,r),n}function De(...e){return Jl(...e)}var Jl=()=>{};function Tp(e){Jl=e}var Yl;function Np(e){Yl=e}function Mp(e,t){return(r=()=>{},{scope:n={},params:i=[],context:o}={})=>{if(!Gt){ta(r,t,Yt([n,...e]),i);return}let a=t.apply(Yt([n,...e]),i);ta(r,a)}}function ta(e,t,r,n,i){if(Gt&&typeof t=="function"){let o=t.apply(r,n);o instanceof Promise?o.then(a=>ta(e,a,r,n)).catch(a=>ya(a,i,t)):e(o)}else typeof t=="object"&&t instanceof Promise?t.then(o=>e(o)):e(t)}function Pp(...e){return Yl(...e)}var ba="x-";function Ar(e=""){return ba+e}function Ip(e){ba=e}var hi={};function ve(e,t){return hi[e]=t,{before(r){if(!hi[r]){console.warn(String.raw`Cannot find directive \`${r}\`. \`${e}\` will use the default order of execution`);return}let n=Kt.indexOf(r);Kt.splice(n>=0?n:Kt.indexOf("DEFAULT"),0,e)}}}function Rp(e){return Object.keys(hi).includes(e)}function wa(e,t,r){if(t=Array.from(t),e._x_virtualDirectives){let o=Object.entries(e._x_virtualDirectives).map(([s,l])=>({name:s,value:l})),a=Xl(o);o=o.map(s=>a.find(l=>l.name===s.name)?{name:`x-bind:${s.name}`,value:`"${s.value}"`}:s),t=t.concat(o)}let n={};return t.map(ru((o,a)=>n[o]=a)).filter(iu).map(Lp(n,r)).sort($p).map(o=>Fp(e,o))}function Xl(e){return Array.from(e).map(ru()).filter(t=>!iu(t))}var ra=!1,ln=new Map,Zl=Symbol();function Dp(e){ra=!0;let t=Symbol();Zl=t,ln.set(t,[]);let r=()=>{for(;ln.get(t).length;)ln.get(t).shift()();ln.delete(t)},n=()=>{ra=!1,r()};e(r),n()}function Ql(e){let t=[],r=s=>t.push(s),[n,i]=mp(e);return t.push(i),[{Alpine:Cr,effect:n,cleanup:r,evaluateLater:De.bind(De,e),evaluate:Jt.bind(Jt,e)},()=>t.forEach(s=>s())]}function Fp(e,t){let r=()=>{},n=hi[t.type]||r,[i,o]=Ql(e);Ul(e,t.original,o);let a=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,i),n=n.bind(n,e,t,i),ra?ln.get(Zl).push(n):n())};return a.runCleanups=o,a}var eu=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),tu=e=>e;function ru(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=nu.reduce((o,a)=>a(o),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var nu=[];function _a(e){nu.push(e)}function iu({name:e}){return ou().test(e)}var ou=()=>new RegExp(`^${ba}([^:^.]+)\\b`);function Lp(e,t){return({name:r,value:n})=>{r===n&&(n="");let i=r.match(ou()),o=r.match(/:([a-zA-Z0-9\-_:]+)/),a=r.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],s=t||e[r]||r;return{type:i?i[1]:null,value:o?o[1]:null,modifiers:a.map(l=>l.replace(".","")),expression:n,original:s}}}var na="DEFAULT",Kt=["ignore","ref","id","data","anchor","bind","init","for","model","modelable","transition","show","if",na,"teleport"];function $p(e,t){let r=Kt.indexOf(e.type)===-1?na:e.type,n=Kt.indexOf(t.type)===-1?na:t.type;return Kt.indexOf(r)-Kt.indexOf(n)}function un(e,t,r={},n={}){return e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0,...n}))}function Xt(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>Xt(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)Xt(n,t,!1),n=n.nextElementSibling}function at(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var xl=!1;function jp(){xl&&at("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),xl=!0,document.body||at("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?"),un(document,"alpine:init"),un(document,"alpine:initializing"),ha(),vp(t=>mt(t,Xt)),fa(t=>Or(t)),jl((t,r)=>{wa(t,r).forEach(n=>n())});let e=t=>!bi(t.parentElement,!0);Array.from(document.querySelectorAll(lu().join(","))).filter(e).forEach(t=>{mt(t)}),un(document,"alpine:initialized"),setTimeout(()=>{qp()})}var Ea=[],au=[];function su(){return Ea.map(e=>e())}function lu(){return Ea.concat(au).map(e=>e())}function uu(e){Ea.push(e)}function cu(e){au.push(e)}function bi(e,t=!1){return ht(e,r=>{if((t?lu():su()).some(i=>r.matches(i)))return!0})}function ht(e,t){if(!!e){if(t(e))return e;if(e._x_teleportBack)return ht(e._x_teleportBack,t);if(e.parentNode instanceof ShadowRoot)return ht(e.parentNode.host,t);if(!!e.parentElement)return ht(e.parentElement,t)}}function Up(e){return su().some(t=>e.matches(t))}var fu=[];function Bp(e){fu.push(e)}var Hp=1;function mt(e,t=Xt,r=()=>{}){ht(e,n=>n._x_ignore)||Dp(()=>{t(e,(n,i)=>{n._x_marker||(r(n,i),fu.forEach(o=>o(n,i)),wa(n,n.attributes).forEach(o=>o()),n._x_ignore||(n._x_marker=Hp++),n._x_ignore&&i())})})}function Or(e,t=Xt){t(e,r=>{yp(r),Bl(r),delete r._x_marker})}function qp(){[["ui","dialog",["[x-dialog], [x-popover]"]],["anchor","anchor",["[x-anchor]"]],["sort","sort",["[x-sort]"]]].forEach(([t,r,n])=>{Rp(r)||n.some(i=>{if(document.querySelector(i))return at(`found "${i}", but missing ${t} plugin`),!0})})}var ia=[],xa=!1;function Sa(e=()=>{}){return queueMicrotask(()=>{xa||setTimeout(()=>{oa()})}),new Promise(t=>{ia.push(()=>{e(),t()})})}function oa(){for(xa=!1;ia.length;)ia.shift()()}function Wp(){xa=!0}function Aa(e,t){return Array.isArray(t)?Sl(e,t.join(" ")):typeof t=="object"&&t!==null?zp(e,t):typeof t=="function"?Aa(e,t()):Sl(e,t)}function aa(e){return e.split(/\s/).filter(Boolean)}function Sl(e,t){let r=i=>aa(i).filter(o=>!e.classList.contains(o)).filter(Boolean),n=i=>(e.classList.add(...i),()=>{e.classList.remove(...i)});return t=t===!0?t="":t||"",n(r(t))}function zp(e,t){let r=Object.entries(t).flatMap(([a,s])=>s?aa(a):!1).filter(Boolean),n=Object.entries(t).flatMap(([a,s])=>s?!1:aa(a)).filter(Boolean),i=[],o=[];return n.forEach(a=>{e.classList.contains(a)&&(e.classList.remove(a),o.push(a))}),r.forEach(a=>{e.classList.contains(a)||(e.classList.add(a),i.push(a))}),()=>{o.forEach(a=>e.classList.add(a)),i.forEach(a=>e.classList.remove(a))}}function wi(e,t){return typeof t=="object"&&t!==null?Kp(e,t):Vp(e,t)}function Kp(e,t){let r={};return Object.entries(t).forEach(([n,i])=>{r[n]=e.style[n],n.startsWith("--")||(n=Gp(n)),e.style.setProperty(n,i)}),setTimeout(()=>{e.style.length===0&&e.removeAttribute("style")}),()=>{wi(e,r)}}function Vp(e,t){let r=e.getAttribute("style",t);return e.setAttribute("style",t),()=>{e.setAttribute("style",r||"")}}function Gp(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function sa(e,t=()=>{}){let r=!1;return function(){r?t.apply(this,arguments):(r=!0,e.apply(this,arguments))}}ve("transition",(e,{value:t,modifiers:r,expression:n},{evaluate:i})=>{typeof n=="function"&&(n=i(n)),n!==!1&&(!n||typeof n=="boolean"?Yp(e,r,t):Jp(e,n,t))});function Jp(e,t,r){du(e,Aa,""),{enter:i=>{e._x_transition.enter.during=i},"enter-start":i=>{e._x_transition.enter.start=i},"enter-end":i=>{e._x_transition.enter.end=i},leave:i=>{e._x_transition.leave.during=i},"leave-start":i=>{e._x_transition.leave.start=i},"leave-end":i=>{e._x_transition.leave.end=i}}[r](t)}function Yp(e,t,r){du(e,wi);let n=!t.includes("in")&&!t.includes("out")&&!r,i=n||t.includes("in")||["enter"].includes(r),o=n||t.includes("out")||["leave"].includes(r);t.includes("in")&&!n&&(t=t.filter((b,E)=>E<t.indexOf("out"))),t.includes("out")&&!n&&(t=t.filter((b,E)=>E>t.indexOf("out")));let a=!t.includes("opacity")&&!t.includes("scale"),s=a||t.includes("opacity"),l=a||t.includes("scale"),u=s?0:1,c=l?sn(t,"scale",95)/100:1,f=sn(t,"delay",0)/1e3,d=sn(t,"origin","center"),h="opacity, transform",g=sn(t,"duration",150)/1e3,m=sn(t,"duration",75)/1e3,v="cubic-bezier(0.4, 0.0, 0.2, 1)";i&&(e._x_transition.enter.during={transformOrigin:d,transitionDelay:`${f}s`,transitionProperty:h,transitionDuration:`${g}s`,transitionTimingFunction:v},e._x_transition.enter.start={opacity:u,transform:`scale(${c})`},e._x_transition.enter.end={opacity:1,transform:"scale(1)"}),o&&(e._x_transition.leave.during={transformOrigin:d,transitionDelay:`${f}s`,transitionProperty:h,transitionDuration:`${m}s`,transitionTimingFunction:v},e._x_transition.leave.start={opacity:1,transform:"scale(1)"},e._x_transition.leave.end={opacity:u,transform:`scale(${c})`})}function du(e,t,r={}){e._x_transition||(e._x_transition={enter:{during:r,start:r,end:r},leave:{during:r,start:r,end:r},in(n=()=>{},i=()=>{}){la(e,t,{during:this.enter.during,start:this.enter.start,end:this.enter.end},n,i)},out(n=()=>{},i=()=>{}){la(e,t,{during:this.leave.during,start:this.leave.start,end:this.leave.end},n,i)}})}window.Element.prototype._x_toggleAndCascadeWithTransitions=function(e,t,r,n){let i=document.visibilityState==="visible"?requestAnimationFrame:setTimeout,o=()=>i(r);if(t){e._x_transition&&(e._x_transition.enter||e._x_transition.leave)?e._x_transition.enter&&(Object.entries(e._x_transition.enter.during).length||Object.entries(e._x_transition.enter.start).length||Object.entries(e._x_transition.enter.end).length)?e._x_transition.in(r):o():e._x_transition?e._x_transition.in(r):o();return}e._x_hidePromise=e._x_transition?new Promise((a,s)=>{e._x_transition.out(()=>{},()=>a(n)),e._x_transitioning&&e._x_transitioning.beforeCancel(()=>s({isFromCancelledTransition:!0}))}):Promise.resolve(n),queueMicrotask(()=>{let a=pu(e);a?(a._x_hideChildren||(a._x_hideChildren=[]),a._x_hideChildren.push(e)):i(()=>{let s=l=>{let u=Promise.all([l._x_hidePromise,...(l._x_hideChildren||[]).map(s)]).then(([c])=>c?.());return delete l._x_hidePromise,delete l._x_hideChildren,u};s(e).catch(l=>{if(!l.isFromCancelledTransition)throw l})})})};function pu(e){let t=e.parentNode;if(!!t)return t._x_hidePromise?t:pu(t)}function la(e,t,{during:r,start:n,end:i}={},o=()=>{},a=()=>{}){if(e._x_transitioning&&e._x_transitioning.cancel(),Object.keys(r).length===0&&Object.keys(n).length===0&&Object.keys(i).length===0){o(),a();return}let s,l,u;Xp(e,{start(){s=t(e,n)},during(){l=t(e,r)},before:o,end(){s(),u=t(e,i)},after:a,cleanup(){l(),u()}})}function Xp(e,t){let r,n,i,o=sa(()=>{ge(()=>{r=!0,n||t.before(),i||(t.end(),oa()),t.after(),e.isConnected&&t.cleanup(),delete e._x_transitioning})});e._x_transitioning={beforeCancels:[],beforeCancel(a){this.beforeCancels.push(a)},cancel:sa(function(){for(;this.beforeCancels.length;)this.beforeCancels.shift()();o()}),finish:o},ge(()=>{t.start(),t.during()}),Wp(),requestAnimationFrame(()=>{if(r)return;let a=Number(getComputedStyle(e).transitionDuration.replace(/,.*/,"").replace("s",""))*1e3,s=Number(getComputedStyle(e).transitionDelay.replace(/,.*/,"").replace("s",""))*1e3;a===0&&(a=Number(getComputedStyle(e).animationDuration.replace("s",""))*1e3),ge(()=>{t.before()}),n=!0,requestAnimationFrame(()=>{r||(ge(()=>{t.end()}),oa(),setTimeout(e._x_transitioning.finish,a+s),i=!0)})})}function sn(e,t,r){if(e.indexOf(t)===-1)return r;let n=e[e.indexOf(t)+1];if(!n||t==="scale"&&isNaN(n))return r;if(t==="duration"||t==="delay"){let i=n.match(/([0-9]+)ms/);if(i)return i[1]}return t==="origin"&&["top","right","left","center","bottom"].includes(e[e.indexOf(t)+2])?[n,e[e.indexOf(t)+2]].join(" "):n}var Tt=!1;function Nt(e,t=()=>{}){return(...r)=>Tt?t(...r):e(...r)}function Zp(e){return(...t)=>Tt&&e(...t)}var hu=[];function _i(e){hu.push(e)}function Qp(e,t){hu.forEach(r=>r(e,t)),Tt=!0,mu(()=>{mt(t,(r,n)=>{n(r,()=>{})})}),Tt=!1}var ua=!1;function eh(e,t){t._x_dataStack||(t._x_dataStack=e._x_dataStack),Tt=!0,ua=!0,mu(()=>{th(t)}),Tt=!1,ua=!1}function th(e){let t=!1;mt(e,(n,i)=>{Xt(n,(o,a)=>{if(t&&Up(o))return a();t=!0,i(o,a)})})}function mu(e){let t=Zt;El((r,n)=>{let i=t(r);return Sr(i),()=>{}}),e(),El(t)}function gu(e,t,r,n=[]){switch(e._x_bindings||(e._x_bindings=xr({})),e._x_bindings[t]=r,t=n.includes("camel")?uh(t):t,t){case"value":rh(e,r);break;case"style":ih(e,r);break;case"class":nh(e,r);break;case"selected":case"checked":oh(e,t,r);break;default:vu(e,t,r);break}}function rh(e,t){if(Oa(e))e.attributes.value===void 0&&(e.value=t);else if(mi(e))Number.isInteger(t)?e.value=t:!Array.isArray(t)&&typeof t!="boolean"&&![null,void 0].includes(t)?e.value=String(t):Array.isArray(t)?e.checked=t.some(r=>ch(r,e.value)):e.checked=!!t;else if(e.tagName==="SELECT")lh(e,t);else{if(e.value===t)return;e.value=t===void 0?"":t}}function nh(e,t){e._x_undoAddedClasses&&e._x_undoAddedClasses(),e._x_undoAddedClasses=Aa(e,t)}function ih(e,t){e._x_undoAddedStyles&&e._x_undoAddedStyles(),e._x_undoAddedStyles=wi(e,t)}function oh(e,t,r){vu(e,t,r),sh(e,t,r)}function vu(e,t,r){[null,void 0,!1].includes(r)&&dh(t)?e.removeAttribute(t):(yu(t)&&(r=t),ah(e,t,r))}function ah(e,t,r){e.getAttribute(t)!=r&&e.setAttribute(t,r)}function sh(e,t,r){e[t]!==r&&(e[t]=r)}function lh(e,t){let r=[].concat(t).map(n=>n+"");Array.from(e.options).forEach(n=>{n.selected=r.includes(n.value)})}function uh(e){return e.toLowerCase().replace(/-(\w)/g,(t,r)=>r.toUpperCase())}function ch(e,t){return e==t}function fi(e){return[1,"1","true","on","yes",!0].includes(e)?!0:[0,"0","false","off","no",!1].includes(e)?!1:e?Boolean(e):null}var fh=new Set(["allowfullscreen","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","inert","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected","shadowrootclonable","shadowrootdelegatesfocus","shadowrootserializable"]);function yu(e){return fh.has(e)}function dh(e){return!["aria-pressed","aria-checked","aria-expanded","aria-selected"].includes(e)}function ph(e,t,r){return e._x_bindings&&e._x_bindings[t]!==void 0?e._x_bindings[t]:bu(e,t,r)}function hh(e,t,r,n=!0){if(e._x_bindings&&e._x_bindings[t]!==void 0)return e._x_bindings[t];if(e._x_inlineBindings&&e._x_inlineBindings[t]!==void 0){let i=e._x_inlineBindings[t];return i.extract=n,Gl(()=>Jt(e,i.expression))}return bu(e,t,r)}function bu(e,t,r){let n=e.getAttribute(t);return n===null?typeof r=="function"?r():r:n===""?!0:yu(t)?!![t,"true"].includes(n):n}function mi(e){return e.type==="checkbox"||e.localName==="ui-checkbox"||e.localName==="ui-switch"}function Oa(e){return e.type==="radio"||e.localName==="ui-radio"}function wu(e,t){let r;return function(){let n=this,i=arguments,o=function(){r=null,e.apply(n,i)};clearTimeout(r),r=setTimeout(o,t)}}function _u(e,t){let r;return function(){let n=this,i=arguments;r||(e.apply(n,i),r=!0,setTimeout(()=>r=!1,t))}}function Eu({get:e,set:t},{get:r,set:n}){let i=!0,o,a,s=Zt(()=>{let l=e(),u=r();if(i)n(Vo(l)),i=!1;else{let c=JSON.stringify(l),f=JSON.stringify(u);c!==o?n(Vo(l)):c!==f&&t(Vo(u))}o=JSON.stringify(e()),a=JSON.stringify(r())});return()=>{Sr(s)}}function Vo(e){return typeof e=="object"?JSON.parse(JSON.stringify(e)):e}function mh(e){(Array.isArray(e)?e:[e]).forEach(r=>r(Cr))}var zt={},Al=!1;function gh(e,t){if(Al||(zt=xr(zt),Al=!0),t===void 0)return zt[e];zt[e]=t,va(zt[e]),typeof t=="object"&&t!==null&&t.hasOwnProperty("init")&&typeof t.init=="function"&&zt[e].init()}function vh(){return zt}var xu={};function yh(e,t){let r=typeof t!="function"?()=>t:t;return e instanceof Element?Su(e,r()):(xu[e]=r,()=>{})}function bh(e){return Object.entries(xu).forEach(([t,r])=>{Object.defineProperty(e,t,{get(){return(...n)=>r(...n)}})}),e}function Su(e,t,r){let n=[];for(;n.length;)n.pop()();let i=Object.entries(t).map(([a,s])=>({name:a,value:s})),o=Xl(i);return i=i.map(a=>o.find(s=>s.name===a.name)?{name:`x-bind:${a.name}`,value:`"${a.value}"`}:a),wa(e,i,r).map(a=>{n.push(a.runCleanups),a()}),()=>{for(;n.length;)n.pop()()}}var Au={};function wh(e,t){Au[e]=t}function _h(e,t){return Object.entries(Au).forEach(([r,n])=>{Object.defineProperty(e,r,{get(){return(...i)=>n.bind(t)(...i)},enumerable:!1})}),e}var Eh={get reactive(){return xr},get release(){return Sr},get effect(){return Zt},get raw(){return Rl},get transaction(){return gp},version:"3.15.12",flushAndStopDeferringMutations:_p,dontAutoEvaluateFunctions:Gl,disableEffectScheduling:pp,startObservingMutations:ha,stopObservingMutations:Hl,setReactivityEngine:hp,onAttributeRemoved:Ul,onAttributesAdded:jl,closestDataStack:Er,skipDuringClone:Nt,onlyDuringClone:Zp,addRootSelector:uu,addInitSelector:cu,setErrorHandler:Cp,interceptClone:_i,addScopeToNode:cn,deferMutations:wp,mapAttributes:_a,evaluateLater:De,interceptInit:Bp,initInterceptors:va,injectMagics:pi,setEvaluator:Tp,setRawEvaluator:Np,mergeProxies:Yt,extractProp:hh,findClosest:ht,onElRemoved:fa,closestRoot:bi,destroyTree:Or,interceptor:zl,transition:la,setStyles:wi,mutateDom:ge,directive:ve,entangle:Eu,throttle:_u,debounce:wu,evaluate:Jt,evaluateRaw:Pp,initTree:mt,nextTick:Sa,prefixed:Ar,prefix:Ip,plugin:mh,magic:et,store:gh,start:jp,clone:eh,cloneNode:Qp,bound:ph,$data:ql,watch:Dl,walk:Xt,data:wh,bind:yh},Cr=Eh,Ol=new WeakMap,Ou=new Set;Object.getOwnPropertyNames(globalThis).forEach(e=>{e==="styleMedia"||e==="sharedStorage"||Ou.add(globalThis[e])});var Se=class{constructor(e,t,r,n){this.type=e,this.value=t,this.start=r,this.end=n}},xh=class{constructor(e){this.input=e,this.position=0,this.tokens=[]}tokenize(){for(;this.position<this.input.length&&(this.skipWhitespace(),!(this.position>=this.input.length));){let e=this.input[this.position];this.isDigit(e)?this.readNumber():this.isAlpha(e)||e==="_"||e==="$"?this.readIdentifierOrKeyword():e==='"'||e==="'"?this.readString():e==="/"&&this.peek()==="/"?this.skipLineComment():this.readOperatorOrPunctuation()}return this.tokens.push(new Se("EOF",null,this.position,this.position)),this.tokens}skipWhitespace(){for(;this.position<this.input.length&&/\s/.test(this.input[this.position]);)this.position++}skipLineComment(){for(;this.position<this.input.length&&this.input[this.position]!==` +`;)this.position++}isDigit(e){return/[0-9]/.test(e)}isAlpha(e){return/[a-zA-Z]/.test(e)}isAlphaNumeric(e){return/[a-zA-Z0-9_$]/.test(e)}peek(e=1){return this.input[this.position+e]||""}readNumber(){let e=this.position,t=!1;for(;this.position<this.input.length;){let n=this.input[this.position];if(this.isDigit(n))this.position++;else if(n==="."&&!t)t=!0,this.position++;else break}let r=this.input.slice(e,this.position);this.tokens.push(new Se("NUMBER",parseFloat(r),e,this.position))}readIdentifierOrKeyword(){let e=this.position;for(;this.position<this.input.length&&this.isAlphaNumeric(this.input[this.position]);)this.position++;let t=this.input.slice(e,this.position);["true","false","null","undefined","new","typeof","void","delete","in","instanceof"].includes(t)?t==="true"||t==="false"?this.tokens.push(new Se("BOOLEAN",t==="true",e,this.position)):t==="null"?this.tokens.push(new Se("NULL",null,e,this.position)):t==="undefined"?this.tokens.push(new Se("UNDEFINED",void 0,e,this.position)):this.tokens.push(new Se("KEYWORD",t,e,this.position)):this.tokens.push(new Se("IDENTIFIER",t,e,this.position))}readString(){let e=this.position,t=this.input[this.position];this.position++;let r="",n=!1;for(;this.position<this.input.length;){let i=this.input[this.position];if(n){switch(i){case"n":r+=` +`;break;case"t":r+=" ";break;case"r":r+="\r";break;case"\\":r+="\\";break;case t:r+=t;break;default:r+=i}n=!1}else if(i==="\\")n=!0;else if(i===t){this.position++,this.tokens.push(new Se("STRING",r,e,this.position));return}else r+=i;this.position++}throw new Error(`Unterminated string starting at position ${e}`)}readOperatorOrPunctuation(){let e=this.position,t=this.input[this.position],r=this.peek(),n=this.peek(2);if(t==="="&&r==="="&&n==="=")this.position+=3,this.tokens.push(new Se("OPERATOR","===",e,this.position));else if(t==="!"&&r==="="&&n==="=")this.position+=3,this.tokens.push(new Se("OPERATOR","!==",e,this.position));else if(t==="="&&r==="=")this.position+=2,this.tokens.push(new Se("OPERATOR","==",e,this.position));else if(t==="!"&&r==="=")this.position+=2,this.tokens.push(new Se("OPERATOR","!=",e,this.position));else if(t==="<"&&r==="=")this.position+=2,this.tokens.push(new Se("OPERATOR","<=",e,this.position));else if(t===">"&&r==="=")this.position+=2,this.tokens.push(new Se("OPERATOR",">=",e,this.position));else if(t==="&"&&r==="&")this.position+=2,this.tokens.push(new Se("OPERATOR","&&",e,this.position));else if(t==="|"&&r==="|")this.position+=2,this.tokens.push(new Se("OPERATOR","||",e,this.position));else if(t==="+"&&r==="+")this.position+=2,this.tokens.push(new Se("OPERATOR","++",e,this.position));else if(t==="-"&&r==="-")this.position+=2,this.tokens.push(new Se("OPERATOR","--",e,this.position));else{this.position++;let i="()[]{},.;:?".includes(t)?"PUNCTUATION":"OPERATOR";this.tokens.push(new Se(i,t,e,this.position))}}},Sh=class{constructor(e){this.tokens=e,this.position=0}parse(){if(this.isAtEnd())throw new Error("Empty expression");let e=this.parseExpression();if(this.match("PUNCTUATION",";"),!this.isAtEnd())throw new Error(`Unexpected token: ${this.current().value}`);return e}parseExpression(){return this.parseAssignment()}parseAssignment(){let e=this.parseTernary();if(this.match("OPERATOR","=")){let t=this.parseAssignment();if(e.type==="Identifier"||e.type==="MemberExpression")return{type:"AssignmentExpression",left:e,operator:"=",right:t};throw new Error("Invalid assignment target")}return e}parseTernary(){let e=this.parseLogicalOr();if(this.match("PUNCTUATION","?")){let t=this.parseExpression();this.consume("PUNCTUATION",":");let r=this.parseExpression();return{type:"ConditionalExpression",test:e,consequent:t,alternate:r}}return e}parseLogicalOr(){let e=this.parseLogicalAnd();for(;this.match("OPERATOR","||");){let t=this.previous().value,r=this.parseLogicalAnd();e={type:"BinaryExpression",operator:t,left:e,right:r}}return e}parseLogicalAnd(){let e=this.parseEquality();for(;this.match("OPERATOR","&&");){let t=this.previous().value,r=this.parseEquality();e={type:"BinaryExpression",operator:t,left:e,right:r}}return e}parseEquality(){let e=this.parseRelational();for(;this.match("OPERATOR","==","!=","===","!==");){let t=this.previous().value,r=this.parseRelational();e={type:"BinaryExpression",operator:t,left:e,right:r}}return e}parseRelational(){let e=this.parseAdditive();for(;this.match("OPERATOR","<",">","<=",">=");){let t=this.previous().value,r=this.parseAdditive();e={type:"BinaryExpression",operator:t,left:e,right:r}}return e}parseAdditive(){let e=this.parseMultiplicative();for(;this.match("OPERATOR","+","-");){let t=this.previous().value,r=this.parseMultiplicative();e={type:"BinaryExpression",operator:t,left:e,right:r}}return e}parseMultiplicative(){let e=this.parseUnary();for(;this.match("OPERATOR","*","/","%");){let t=this.previous().value,r=this.parseUnary();e={type:"BinaryExpression",operator:t,left:e,right:r}}return e}parseUnary(){if(this.match("OPERATOR","++","--")){let e=this.previous().value,t=this.parseUnary();return{type:"UpdateExpression",operator:e,argument:t,prefix:!0}}if(this.match("OPERATOR","!","-","+")){let e=this.previous().value,t=this.parseUnary();return{type:"UnaryExpression",operator:e,argument:t,prefix:!0}}return this.parsePostfix()}parsePostfix(){let e=this.parseMember();if(this.match("OPERATOR","++","--")){let t=this.previous().value;return{type:"UpdateExpression",operator:t,argument:e,prefix:!1}}return e}parseMember(){let e=this.parsePrimary();for(;;)if(this.match("PUNCTUATION",".")){let t=this.consume("IDENTIFIER");e={type:"MemberExpression",object:e,property:{type:"Identifier",name:t.value},computed:!1}}else if(this.match("PUNCTUATION","[")){let t=this.parseExpression();this.consume("PUNCTUATION","]"),e={type:"MemberExpression",object:e,property:t,computed:!0}}else if(this.match("PUNCTUATION","(")){let t=this.parseArguments();e={type:"CallExpression",callee:e,arguments:t}}else break;return e}parseArguments(){let e=[];if(!this.check("PUNCTUATION",")"))do e.push(this.parseExpression());while(this.match("PUNCTUATION",","));return this.consume("PUNCTUATION",")"),e}parsePrimary(){if(this.match("NUMBER"))return{type:"Literal",value:this.previous().value};if(this.match("STRING"))return{type:"Literal",value:this.previous().value};if(this.match("BOOLEAN"))return{type:"Literal",value:this.previous().value};if(this.match("NULL"))return{type:"Literal",value:null};if(this.match("UNDEFINED"))return{type:"Literal",value:void 0};if(this.match("IDENTIFIER"))return{type:"Identifier",name:this.previous().value};if(this.match("PUNCTUATION","(")){let e=this.parseExpression();return this.consume("PUNCTUATION",")"),e}if(this.match("PUNCTUATION","["))return this.parseArrayLiteral();if(this.match("PUNCTUATION","{"))return this.parseObjectLiteral();throw new Error(`Unexpected token: ${this.current().type} "${this.current().value}"`)}parseArrayLiteral(){let e=[];for(;!this.check("PUNCTUATION","]")&&!this.isAtEnd()&&(e.push(this.parseExpression()),this.match("PUNCTUATION",","));)if(this.check("PUNCTUATION","]"))break;return this.consume("PUNCTUATION","]"),{type:"ArrayExpression",elements:e}}parseObjectLiteral(){let e=[];for(;!this.check("PUNCTUATION","}")&&!this.isAtEnd();){let t,r=!1;if(this.match("STRING"))t={type:"Literal",value:this.previous().value};else if(this.match("IDENTIFIER")){let i=this.previous().value;t={type:"Identifier",name:i}}else if(this.match("PUNCTUATION","["))t=this.parseExpression(),r=!0,this.consume("PUNCTUATION","]");else throw new Error("Expected property key");this.consume("PUNCTUATION",":");let n=this.parseExpression();if(e.push({type:"Property",key:t,value:n,computed:r,shorthand:!1}),this.match("PUNCTUATION",",")){if(this.check("PUNCTUATION","}"))break}else break}return this.consume("PUNCTUATION","}"),{type:"ObjectExpression",properties:e}}match(...e){for(let t=0;t<e.length;t++){let r=e[t];if(t===0&&e.length>1){let n=r;for(let i=1;i<e.length;i++)if(this.check(n,e[i]))return this.advance(),!0;return!1}else if(e.length===1)return this.checkType(r)?(this.advance(),!0):!1}return!1}check(e,t){return this.isAtEnd()?!1:t!==void 0?this.current().type===e&&this.current().value===t:this.current().type===e}checkType(e){return this.isAtEnd()?!1:this.current().type===e}advance(){return this.isAtEnd()||this.position++,this.previous()}isAtEnd(){return this.current().type==="EOF"}current(){return this.tokens[this.position]}previous(){return this.tokens[this.position-1]}consume(e,t){if(t!==void 0){if(this.check(e,t))return this.advance();throw new Error(`Expected ${e} "${t}" but got ${this.current().type} "${this.current().value}"`)}if(this.check(e))return this.advance();throw new Error(`Expected ${e} but got ${this.current().type} "${this.current().value}"`)}},Ah=class{evaluate({node:e,scope:t={},context:r=null,forceBindingRootScopeToFunctions:n=!0}){switch(e.type){case"Literal":return e.value;case"Identifier":if(e.name in t){let v=t[e.name];return this.checkForDangerousValues(v),typeof v=="function"?v.bind(t):v}throw new Error(`Undefined variable: ${e.name}`);case"MemberExpression":let i=this.evaluate({node:e.object,scope:t,context:r,forceBindingRootScopeToFunctions:n});if(i==null)throw new Error("Cannot read property of null or undefined");let o;e.computed?o=this.evaluate({node:e.property,scope:t,context:r,forceBindingRootScopeToFunctions:n}):o=e.property.name,this.checkForDangerousKeywords(o);let a=i[o];return this.checkForDangerousValues(a),typeof a=="function"?n?a.bind(t):a.bind(i):a;case"CallExpression":let s=e.arguments.map(v=>this.evaluate({node:v,scope:t,context:r,forceBindingRootScopeToFunctions:n})),l;if(e.callee.type==="MemberExpression"){let v=this.evaluate({node:e.callee.object,scope:t,context:r,forceBindingRootScopeToFunctions:n}),b;e.callee.computed?b=this.evaluate({node:e.callee.property,scope:t,context:r,forceBindingRootScopeToFunctions:n}):b=e.callee.property.name,this.checkForDangerousKeywords(b);let E=v[b];if(typeof E!="function")throw new Error("Value is not a function");l=E.apply(v,s)}else if(e.callee.type==="Identifier"){let v=e.callee.name,b;if(v in t)b=t[v];else throw new Error(`Undefined variable: ${v}`);if(typeof b!="function")throw new Error("Value is not a function");let E=r!==null?r:t;l=b.apply(E,s)}else{let v=this.evaluate({node:e.callee,scope:t,context:r,forceBindingRootScopeToFunctions:n});if(typeof v!="function")throw new Error("Value is not a function");l=v.apply(r,s)}return this.checkForDangerousValues(l),l;case"UnaryExpression":let u=this.evaluate({node:e.argument,scope:t,context:r,forceBindingRootScopeToFunctions:n});switch(e.operator){case"!":return!u;case"-":return-u;case"+":return+u;default:throw new Error(`Unknown unary operator: ${e.operator}`)}case"UpdateExpression":if(e.argument.type==="Identifier"){let v=e.argument.name;if(!(v in t))throw new Error(`Undefined variable: ${v}`);let b=t[v];return e.operator==="++"?t[v]=b+1:e.operator==="--"&&(t[v]=b-1),e.prefix?t[v]:b}else if(e.argument.type==="MemberExpression"){let v=this.evaluate({node:e.argument.object,scope:t,context:r,forceBindingRootScopeToFunctions:n}),b=e.argument.computed?this.evaluate({node:e.argument.property,scope:t,context:r,forceBindingRootScopeToFunctions:n}):e.argument.property.name;if(this.isDOMObject(v))throw new Error("Property assignments on DOM objects are prohibited in the CSP build");this.checkForDangerousKeywords(b);let E=v[b];return e.operator==="++"?v[b]=E+1:e.operator==="--"&&(v[b]=E-1),e.prefix?v[b]:E}throw new Error("Invalid update expression target");case"BinaryExpression":let c=this.evaluate({node:e.left,scope:t,context:r,forceBindingRootScopeToFunctions:n}),f=()=>this.evaluate({node:e.right,scope:t,context:r,forceBindingRootScopeToFunctions:n});if(e.operator==="&&")return c&&f();if(e.operator==="||")return c||f();let d=f();switch(e.operator){case"+":return c+d;case"-":return c-d;case"*":return c*d;case"/":return c/d;case"%":return c%d;case"==":return c==d;case"!=":return c!=d;case"===":return c===d;case"!==":return c!==d;case"<":return c<d;case">":return c>d;case"<=":return c<=d;case">=":return c>=d;default:throw new Error(`Unknown binary operator: ${e.operator}`)}case"ConditionalExpression":return this.evaluate({node:e.test,scope:t,context:r,forceBindingRootScopeToFunctions:n})?this.evaluate({node:e.consequent,scope:t,context:r,forceBindingRootScopeToFunctions:n}):this.evaluate({node:e.alternate,scope:t,context:r,forceBindingRootScopeToFunctions:n});case"AssignmentExpression":let g=this.evaluate({node:e.right,scope:t,context:r,forceBindingRootScopeToFunctions:n});if(e.left.type==="Identifier")return t[e.left.name]=g,g;if(e.left.type==="MemberExpression"){let v=this.evaluate({node:e.left.object,scope:t,context:r,forceBindingRootScopeToFunctions:n}),b=e.left.computed?this.evaluate({node:e.left.property,scope:t,context:r,forceBindingRootScopeToFunctions:n}):e.left.property.name;if(this.isDOMObject(v))throw new Error("Property assignments on DOM objects are prohibited in the CSP build");return this.checkForDangerousKeywords(b),v[b]=g,g}throw new Error("Invalid assignment target");case"ArrayExpression":return e.elements.map(v=>this.evaluate({node:v,scope:t,context:r,forceBindingRootScopeToFunctions:n}));case"ObjectExpression":let m={};for(let v of e.properties){let b=v.computed?this.evaluate({node:v.key,scope:t,context:r,forceBindingRootScopeToFunctions:n}):v.key.type==="Identifier"?v.key.name:this.evaluate({node:v.key,scope:t,context:r,forceBindingRootScopeToFunctions:n}),E=this.evaluate({node:v.value,scope:t,context:r,forceBindingRootScopeToFunctions:n});m[b]=E}return m;default:throw new Error(`Unknown node type: ${e.type}`)}}isDOMObject(e){return e instanceof Node||typeof CSSStyleDeclaration<"u"&&e instanceof CSSStyleDeclaration||typeof DOMStringMap<"u"&&e instanceof DOMStringMap||typeof DOMTokenList<"u"&&e instanceof DOMTokenList||typeof NamedNodeMap<"u"&&e instanceof NamedNodeMap}checkForDangerousKeywords(e){if(["constructor","prototype","__proto__","__defineGetter__","__defineSetter__","insertAdjacentHTML","setAttribute","setAttributeNS","setAttributeNode","setAttributeNodeNS"].includes(e))throw new Error(`Accessing "${e}" is prohibited in the CSP build`)}checkForDangerousValues(e){if(e!==null&&!(typeof e!="object"&&typeof e!="function")&&!Ol.has(e)){if(e instanceof HTMLIFrameElement||e instanceof HTMLScriptElement)throw new Error("Accessing iframes and scripts is prohibited in the CSP build");if(Ou.has(e))throw new Error("Accessing global variables is prohibited in the CSP build");return Ol.set(e,!0),!0}}};function Cu(e){try{let r=new xh(e).tokenize(),i=new Sh(r).parse(),o=new Ah;return function(a={}){let{scope:s={},context:l=null,forceBindingRootScopeToFunctions:u=!1}=a;return o.evaluate({node:i,scope:s,context:l,forceBindingRootScopeToFunctions:u})}}catch(t){throw new Error(`CSP Parser Error: ${t.message}`)}}function Oh(e,t,r={}){var n,i;let o=ku(e),a=Yt([(n=r.scope)!=null?n:{},...o]),s=(i=r.params)!=null?i:[],u=Cu(t)({scope:a,forceBindingRootScopeToFunctions:!0});return typeof u=="function"&&Gt?u.apply(a,s):u}function Ch(e,t){let r=ku(e);if(typeof t=="function")return Mp(r,t);let n=kh(e,t,r);return Op.bind(null,e,t,n)}function ku(e){let t={};return pi(t,e),[t,...Er(e)]}function kh(e,t,r){if(e instanceof HTMLIFrameElement)throw new Error("Evaluating expressions on an iframe is prohibited in the CSP build");if(e instanceof HTMLScriptElement)throw new Error("Evaluating expressions on a script is prohibited in the CSP build");return(n=()=>{},{scope:i={},params:o=[]}={})=>{let a=Yt([i,...r]),l=Cu(t)({scope:a,forceBindingRootScopeToFunctions:!0});if(Gt&&typeof l=="function"){let u=l.apply(l,o);u instanceof Promise?u.then(c=>n(c)):n(u)}else typeof l=="object"&&l instanceof Promise?l.then(u=>n(u)):n(l)}}var ui=tp(ap());et("nextTick",()=>Sa);et("dispatch",e=>un.bind(un,e));et("watch",(e,{evaluateLater:t,cleanup:r})=>(n,i)=>{let o=t(n),s=Dl(()=>{let l;return o(u=>l=u),l},i);r(s)});et("store",vh);et("data",e=>ql(e));et("root",e=>bi(e));et("refs",e=>(e._x_refs_proxy||(e._x_refs_proxy=Yt(Th(e))),e._x_refs_proxy));function Th(e){let t=[];return ht(e,r=>{r._x_refs&&t.push(r._x_refs)}),t}var Go={};function Tu(e){return Go[e]||(Go[e]=0),++Go[e]}function Nh(e,t){return ht(e,r=>{if(r._x_ids&&r._x_ids[t])return!0})}function Mh(e,t){e._x_ids||(e._x_ids={}),e._x_ids[t]||(e._x_ids[t]=Tu(t))}et("id",(e,{cleanup:t})=>(r,n=null)=>{let i=`${r}${n?`-${n}`:""}`;return Ph(e,i,t,()=>{let o=Nh(e,r),a=o?o._x_ids[r]:Tu(r);return n?`${r}-${a}-${n}`:`${r}-${a}`})});_i((e,t)=>{e._x_id&&(t._x_id=e._x_id)});function Ph(e,t,r,n){if(e._x_id||(e._x_id={}),e._x_id[t])return e._x_id[t];let i=n();return e._x_id[t]=i,r(()=>{delete e._x_id[t]}),i}et("el",e=>e);Nu("Focus","focus","focus");Nu("Persist","persist","persist");function Nu(e,t,r){et(t,n=>at(`You can't use [$${t}] without first installing the "${e}" plugin here: https://alpinejs.dev/plugins/${r}`,n))}ve("modelable",(e,{expression:t},{effect:r,evaluateLater:n,cleanup:i})=>{let o=n(t),a=()=>{let c;return o(f=>c=f),c},s=n(`${t} = __placeholder`),l=c=>s(()=>{},{scope:{__placeholder:c}}),u=a();l(u),queueMicrotask(()=>{if(!e._x_model)return;e._x_removeModelListeners.default();let c=e._x_model.get,f=e._x_model.setWithModifiers,d=Eu({get(){return c()},set(h){f(h)}},{get(){return a()},set(h){l(h)}});i(d)})});ve("teleport",(e,{modifiers:t,expression:r},{cleanup:n})=>{e.tagName.toLowerCase()!=="template"&&at("x-teleport can only be used on a <template> tag",e);let i=Cl(r),o=e.content.cloneNode(!0).firstElementChild;e._x_teleport=o,o._x_teleportBack=e,e.setAttribute("data-teleport-template",!0),o.setAttribute("data-teleport-target",!0),e._x_forwardEvents&&e._x_forwardEvents.forEach(s=>{o.addEventListener(s,l=>{l.stopPropagation(),e.dispatchEvent(new l.constructor(l.type,l))})}),cn(o,{},e);let a=(s,l,u)=>{u.includes("prepend")?l.parentNode.insertBefore(s,l):u.includes("append")?l.parentNode.insertBefore(s,l.nextSibling):l.appendChild(s)};ge(()=>{Nt(()=>{a(o,i,t),mt(o)})()}),e._x_teleportPutBack=()=>{let s=Cl(r);ge(()=>{a(e._x_teleport,s,t)})},n(()=>ge(()=>{o.remove(),Or(o)}))});var Ih=document.createElement("div");function Cl(e){let t=Nt(()=>document.querySelector(e),()=>Ih)();return t||at(`Cannot find x-teleport element for selector: "${e}"`),t}var Mu=()=>{};Mu.inline=(e,{modifiers:t},{cleanup:r})=>{t.includes("self")?e._x_ignoreSelf=!0:e._x_ignore=!0,r(()=>{t.includes("self")?delete e._x_ignoreSelf:delete e._x_ignore})};ve("ignore",Mu);ve("effect",Nt((e,{expression:t},{effect:r})=>{r(De(e,t))}));function _r(e,t,r,n){let i=e,o=l=>n(l),a={},s=(l,u)=>c=>u(l,c);return r.includes("dot")&&(t=Rh(t)),r.includes("camel")&&(t=Dh(t)),r.includes("capture")&&(a.capture=!0),r.includes("window")&&(i=window),r.includes("document")&&(i=document),r.includes("passive")&&(a.passive=r[r.indexOf("passive")+1]!=="false"),o=Pu(r,o),r.includes("prevent")&&(o=s(o,(l,u)=>{u.preventDefault(),l(u)})),r.includes("stop")&&(o=s(o,(l,u)=>{u.stopPropagation(),l(u)})),r.includes("once")&&(o=s(o,(l,u)=>{l(u),i.removeEventListener(t,o,a)})),(r.includes("away")||r.includes("outside"))&&(i=document,o=s(o,(l,u)=>{e.contains(u.target)||u.target.isConnected!==!1&&(e.offsetWidth<1&&e.offsetHeight<1||e._x_isShown!==!1&&l(u))})),r.includes("self")&&(o=s(o,(l,u)=>{u.target===e&&l(u)})),t==="submit"&&(o=s(o,(l,u)=>{u.target._x_pendingModelUpdates&&u.target._x_pendingModelUpdates.forEach(c=>c()),l(u)})),(Lh(t)||Iu(t))&&(o=s(o,(l,u)=>{$h(u,r)||l(u)})),i.addEventListener(t,o,a),()=>{i.removeEventListener(t,o,a)}}function Pu(e,t){if(e.includes("debounce")){let r=e[e.indexOf("debounce")+1]||"invalid-wait",n=gi(r.split("ms")[0])?Number(r.split("ms")[0]):250;t=wu(t,n)}if(e.includes("throttle")){let r=e[e.indexOf("throttle")+1]||"invalid-wait",n=gi(r.split("ms")[0])?Number(r.split("ms")[0]):250;t=_u(t,n)}return t}function Rh(e){return e.replace(/-/g,".")}function Dh(e){return e.toLowerCase().replace(/-(\w)/g,(t,r)=>r.toUpperCase())}function gi(e){return!Array.isArray(e)&&!isNaN(e)}function Fh(e){return[" ","_"].includes(e)?e:e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]/,"-").toLowerCase()}function Lh(e){return["keydown","keyup"].includes(e)}function Iu(e){return["contextmenu","click","mouse"].some(t=>e.includes(t))}function $h(e,t){let r=t.filter(o=>!["window","document","prevent","stop","once","capture","self","away","outside","passive","preserve-scroll","blur","change","lazy"].includes(o));if(r.includes("debounce")){let o=r.indexOf("debounce");r.splice(o,gi((r[o+1]||"invalid-wait").split("ms")[0])?2:1)}if(r.includes("throttle")){let o=r.indexOf("throttle");r.splice(o,gi((r[o+1]||"invalid-wait").split("ms")[0])?2:1)}if(r.length===0||r.length===1&&kl(e.key).includes(r[0]))return!1;let i=["ctrl","shift","alt","meta","cmd","super"].filter(o=>r.includes(o));return r=r.filter(o=>!i.includes(o)),!(i.length>0&&i.filter(a=>((a==="cmd"||a==="super")&&(a="meta"),e[`${a}Key`])).length===i.length&&(Iu(e.type)||kl(e.key).includes(r[0])))}function kl(e){if(!e)return[];e=Fh(e);let t={ctrl:"control",slash:"/",space:" ",spacebar:" ",cmd:"meta",esc:"escape",up:"arrow-up",down:"arrow-down",left:"arrow-left",right:"arrow-right",period:".",comma:",",equal:"=",minus:"-",underscore:"_"};return t[e]=e,Object.keys(t).map(r=>{if(t[r]===e)return r}).filter(r=>r)}ve("model",(e,{modifiers:t,expression:r},{effect:n,cleanup:i})=>{let o=e;t.includes("parent")&&(o=ht(e,m=>m!==e));let a=De(o,r),s;typeof r=="string"?s=De(o,`${r} = __placeholder`):typeof r=="function"&&typeof r()=="string"?s=De(o,`${r()} = __placeholder`):s=()=>{};let l=()=>{let m;return a(v=>m=v),Tl(m)?m.get():m},u=m=>{let v;a(b=>v=b),Tl(v)?v.set(m):s(()=>{},{scope:{__placeholder:m}})};typeof r=="string"&&e.type==="radio"&&ge(()=>{e.hasAttribute("name")||e.setAttribute("name",r)});let c=t.includes("change")||t.includes("lazy"),f=t.includes("blur"),d=t.includes("enter"),h=c||f||d,g;if(Tt)g=()=>{};else if(h){let m=[],v=b=>u(ci(e,t,b,l()));if(c&&m.push(_r(e,"change",t,v)),f&&(m.push(_r(e,"blur",t,v)),e.form)){let b=e.form,E=()=>v({target:e});b._x_pendingModelUpdates||(b._x_pendingModelUpdates=[]),b._x_pendingModelUpdates.push(E),i(()=>{b._x_pendingModelUpdates&&b._x_pendingModelUpdates.splice(b._x_pendingModelUpdates.indexOf(E),1)})}d&&m.push(_r(e,"keydown",t,b=>{b.key==="Enter"&&v(b)})),g=()=>m.forEach(b=>b())}else{let m=e.tagName.toLowerCase()==="select"||["checkbox","radio"].includes(e.type)?"change":"input";g=_r(e,m,t,v=>{u(ci(e,t,v,l()))})}if(t.includes("fill")&&([void 0,null,""].includes(l())||mi(e)&&Array.isArray(l())||e.tagName.toLowerCase()==="select"&&e.multiple)&&u(ci(e,t,{target:e},l())),e._x_removeModelListeners||(e._x_removeModelListeners={}),e._x_removeModelListeners.default=g,i(()=>e._x_removeModelListeners.default()),e.form){let m=_r(e.form,"reset",[],v=>{Sa(()=>e._x_model&&e._x_model.set(ci(e,t,{target:e},l())))});i(()=>m())}e._x_model={get(){return l()},set(m){u(m)},setWithModifiers:Pu(t,u)},e._x_forceModelUpdate=m=>{m===void 0&&typeof r=="string"&&r.match(/\./)&&(m=""),ge(()=>{mi(e)?Array.isArray(m)?e.checked=m.some(v=>v==e.value):e.checked=!!m:Oa(e)?typeof m=="boolean"?e.checked=fi(e.value)===m:e.checked=e.value==m:gu(e,"value",m)})},n(()=>{let m=l();t.includes("unintrusive")&&document.activeElement.isSameNode(e)||e._x_forceModelUpdate(m)})});function ci(e,t,r,n){return ge(()=>{if(r instanceof CustomEvent&&r.detail!==void 0)return r.detail!==null&&r.detail!==void 0?r.detail:r.target.value;if(mi(e))if(Array.isArray(n)){let i=null;return t.includes("number")?i=Jo(r.target.value):t.includes("boolean")?i=fi(r.target.value):i=r.target.value,r.target.checked?n.includes(i)?n:n.concat([i]):n.filter(o=>!jh(o,i))}else return r.target.checked;else{if(e.tagName.toLowerCase()==="select"&&e.multiple)return t.includes("number")?Array.from(r.target.selectedOptions).map(i=>{let o=i.value||i.text;return Jo(o)}):t.includes("boolean")?Array.from(r.target.selectedOptions).map(i=>{let o=i.value||i.text;return fi(o)}):Array.from(r.target.selectedOptions).map(i=>i.value||i.text);{let i;return Oa(e)?r.target.checked?i=r.target.value:i=n:i=r.target.value,t.includes("number")?Jo(i):t.includes("boolean")?fi(i):t.includes("trim")?i.trim():i}}})}function Jo(e){let t=e?parseFloat(e):null;return Uh(t)?t:e}function jh(e,t){return e==t}function Uh(e){return!Array.isArray(e)&&!isNaN(e)}function Tl(e){return e!==null&&typeof e=="object"&&typeof e.get=="function"&&typeof e.set=="function"}ve("cloak",e=>queueMicrotask(()=>ge(()=>e.removeAttribute(Ar("cloak")))));cu(()=>`[${Ar("init")}]`);ve("init",Nt((e,{expression:t},{evaluate:r})=>typeof t=="string"?!!t.trim()&&r(t,{},!1):r(t,{},!1)));ve("text",(e,{expression:t},{effect:r,evaluateLater:n})=>{let i=n(t);r(()=>{i(o=>{ge(()=>{e.textContent=o})})})});ve("html",(e,{expression:t},{effect:r,evaluateLater:n})=>{let i=n(t);r(()=>{i(o=>{ge(()=>{e.innerHTML=o??"",e._x_ignoreSelf=!0,mt(e),delete e._x_ignoreSelf})})})});_a(eu(":",tu(Ar("bind:"))));var Ru=(e,{value:t,modifiers:r,expression:n,original:i},{effect:o,cleanup:a})=>{if(!t){let l={};bh(l),De(e,n)(c=>{Su(e,c,i)},{scope:l});return}if(t==="key")return Bh(e,n);if(e._x_inlineBindings&&e._x_inlineBindings[t]&&e._x_inlineBindings[t].extract)return;let s=De(e,n);o(()=>s(l=>{l===void 0&&typeof n=="string"&&n.match(/\./)&&(l=""),ge(()=>gu(e,t,l,r))})),a(()=>{e._x_undoAddedClasses&&e._x_undoAddedClasses(),e._x_undoAddedStyles&&e._x_undoAddedStyles()})};Ru.inline=(e,{value:t,modifiers:r,expression:n})=>{!t||(e._x_inlineBindings||(e._x_inlineBindings={}),e._x_inlineBindings[t]={expression:n,extract:!1})};ve("bind",Ru);function Bh(e,t){e._x_keyExpression=t}uu(()=>`[${Ar("data")}]`);ve("data",(e,{expression:t},{cleanup:r})=>{if(Hh(e))return;t=t===""?"{}":t;let n={};pi(n,e);let i={};_h(i,n);let o=Jt(e,t,{scope:i});(o===void 0||o===!0)&&(o={}),pi(o,e);let a=xr(o);va(a);let s=cn(e,a);a.init&&Jt(e,a.init),r(()=>{a.destroy&&Jt(e,a.destroy),s()})});_i((e,t)=>{e._x_dataStack&&(t._x_dataStack=e._x_dataStack,t.setAttribute("data-has-alpine-state",!0))});function Hh(e){return Tt?ua?!0:e.hasAttribute("data-has-alpine-state"):!1}ve("show",(e,{modifiers:t,expression:r},{effect:n})=>{let i=De(e,r);e._x_doHide||(e._x_doHide=()=>{ge(()=>{e.style.setProperty("display","none",t.includes("important")?"important":void 0)})}),e._x_doShow||(e._x_doShow=()=>{ge(()=>{e.style.length===1&&e.style.display==="none"?e.removeAttribute("style"):e.style.removeProperty("display")})});let o=()=>{e._x_doHide(),e._x_isShown=!1},a=()=>{e._x_doShow(),e._x_isShown=!0},s=()=>setTimeout(a),l=sa(f=>f?a():o(),f=>{typeof e._x_toggleAndCascadeWithTransitions=="function"?e._x_toggleAndCascadeWithTransitions(e,f,a,o):f?s():o()}),u,c=!0;n(()=>i(f=>{!c&&f===u||(t.includes("immediate")&&(f?s():o()),l(f),u=f,c=!1)}))});ve("for",(e,{expression:t},{effect:r,cleanup:n})=>{let i=zh(t),o=De(e,i.items),a=De(e,e._x_keyExpression||"index");e._x_lookup=new Map,r(()=>Wh(e,i,o,a)),n(()=>{e._x_lookup.forEach(s=>ge(()=>{Or(s),s.remove()})),delete e._x_lookup})});function qh(e){return t=>{Object.entries(t).forEach(([r,n])=>{e[r]=n})}}function Wh(e,t,r,n){r(i=>{Vh(i)&&(i=Array.from({length:i},(u,c)=>c+1)),i==null&&(i=[]),i instanceof Set&&(i=Array.from(i)),i instanceof Map&&(i=Array.from(i));let o=e._x_lookup,a=new Map;e._x_lookup=a;let s=Gh(i),l=Object.entries(i).map(([u,c])=>{s||(u=parseInt(u));let f=Kh(t,c,u,i),d;return n(h=>{typeof h=="object"&&at("x-for key cannot be an object, it must be a string or an integer",e),o.has(h)&&(a.set(h,o.get(h)),o.delete(h)),d=h},{scope:{index:u,...f}}),[d,f]});ge(()=>{o.forEach(f=>{Or(f),f.remove()});let u=new Set,c=e;l.forEach(([f,d])=>{if(a.has(f)){let m=a.get(f);m._x_refreshXForScope(d),c.nextElementSibling!==m&&(c.nextElementSibling&&m.replaceWith(c.nextElementSibling),c.after(m)),c=m,m._x_currentIfEl&&(m.nextElementSibling!==m._x_currentIfEl&&c.after(m._x_currentIfEl),c=m._x_currentIfEl);return}e.content.children.length>1&&at("x-for templates require a single root element, additional elements will be ignored.",e);let h=document.importNode(e.content,!0).firstElementChild,g=xr(d);cn(h,g,e),h._x_refreshXForScope=qh(g),a.set(f,h),u.add(h),c.after(h),c=h}),Nt(()=>u.forEach(f=>mt(f)))()})})}function zh(e){let t=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,r=/^\s*\(|\)\s*$/g,n=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,i=e.match(n);if(!i)return;let o={};o.items=i[2].trim();let a=i[1].replace(r,"").trim(),s=a.match(t);return s?(o.item=a.replace(t,"").trim(),o.index=s[1].trim(),s[2]&&(o.collection=s[2].trim())):o.item=a,o}function Kh(e,t,r,n){let i={};return/^\[.*\]$/.test(e.item)&&Array.isArray(t)?e.item.replace("[","").replace("]","").split(",").map(a=>a.trim()).forEach((a,s)=>{i[a]=t[s]}):/^\{.*\}$/.test(e.item)&&!Array.isArray(t)&&typeof t=="object"?e.item.replace("{","").replace("}","").split(",").map(a=>a.trim()).forEach(a=>{i[a]=t[a]}):i[e.item]=t,e.index&&(i[e.index]=r),e.collection&&(i[e.collection]=n),i}function Vh(e){return typeof e!="object"&&!isNaN(e)}function Gh(e){return typeof e=="object"&&!Array.isArray(e)}function Du(){}Du.inline=(e,{expression:t},{cleanup:r})=>{let n=bi(e);!n||(n._x_refs||(n._x_refs={}),n._x_refs[t]=e,r(()=>delete n._x_refs[t]))};ve("ref",Du);ve("if",(e,{expression:t},{effect:r,cleanup:n})=>{e.tagName.toLowerCase()!=="template"&&at("x-if can only be used on a <template> tag",e);let i=De(e,t),o=()=>{if(e._x_currentIfEl)return e._x_currentIfEl;let s=e.content.cloneNode(!0).firstElementChild;return cn(s,{},e),ge(()=>{e.after(s),Nt(()=>mt(s))()}),e._x_currentIfEl=s,e._x_undoIf=()=>{ge(()=>{Or(s),s.remove()}),delete e._x_currentIfEl},s},a=()=>{!e._x_undoIf||(e._x_undoIf(),delete e._x_undoIf)};r(()=>i(s=>{s?o():a()})),n(()=>e._x_undoIf&&e._x_undoIf())});ve("id",(e,{expression:t},{evaluate:r})=>{r(t).forEach(i=>Mh(e,i))});_i((e,t)=>{e._x_ids&&(t._x_ids=e._x_ids)});_a(eu("@",tu(Ar("on:"))));ve("on",Nt((e,{value:t,modifiers:r,expression:n},{cleanup:i})=>{let o=n?De(e,n):()=>{};e.tagName.toLowerCase()==="template"&&(e._x_forwardEvents||(e._x_forwardEvents=[]),e._x_forwardEvents.includes(t)||e._x_forwardEvents.push(t));let a=_r(e,t,r,s=>{o(()=>{},{scope:{$event:s},params:[s]})});i(()=>a())}));Ei("Collapse","collapse","collapse");Ei("Intersect","intersect","intersect");Ei("Focus","trap","focus");Ei("Mask","mask","mask");function Ei(e,t,r){ve(t,n=>at(`You can't use [x-${t}] without first installing the "${e}" plugin here: https://alpinejs.dev/plugins/${r}`,n))}ve("html",(e,{expression:t})=>{ya(new Error("Using the x-html directive is prohibited in the CSP build"),e)});Cr.setEvaluator(Ch);Cr.setRawEvaluator(Oh);Cr.setReactivityEngine({reactive:ui.reactive,effect:ui.effect,release:ui.stop,raw:ui.toRaw});var Fu=Cr,Jh=Fu});var Vf=al((Ns,Kf)=>{(function(e,t){typeof define=="function"&&define.amd?define(t):typeof Ns=="object"?Kf.exports=t():e.NProgress=t()})(Ns,function(){var e={};e.version="0.2.0";var t=e.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};e.configure=function(d){var h,g;for(h in d)g=d[h],g!==void 0&&d.hasOwnProperty(h)&&(t[h]=g);return this},e.status=null,e.set=function(d){var h=e.isStarted();d=r(d,t.minimum,1),e.status=d===1?null:d;var g=e.render(!h),m=g.querySelector(t.barSelector),v=t.speed,b=t.easing;return g.offsetWidth,o(function(E){t.positionUsing===""&&(t.positionUsing=e.getPositioningCSS()),a(m,i(d,v,b)),d===1?(a(g,{transition:"none",opacity:1}),g.offsetWidth,setTimeout(function(){a(g,{transition:"all "+v+"ms linear",opacity:0}),setTimeout(function(){e.remove(),E()},v)},v)):setTimeout(E,v)}),this},e.isStarted=function(){return typeof e.status=="number"},e.start=function(){e.status||e.set(0);var d=function(){setTimeout(function(){!e.status||(e.trickle(),d())},t.trickleSpeed)};return t.trickle&&d(),this},e.done=function(d){return!d&&!e.status?this:e.inc(.3+.5*Math.random()).set(1)},e.inc=function(d){var h=e.status;return h?(typeof d!="number"&&(d=(1-h)*r(Math.random()*h,.1,.95)),h=r(h+d,0,.994),e.set(h)):e.start()},e.trickle=function(){return e.inc(Math.random()*t.trickleRate)},function(){var d=0,h=0;e.promise=function(g){return!g||g.state()==="resolved"?this:(h===0&&e.start(),d++,h++,g.always(function(){h--,h===0?(d=0,e.done()):e.set((d-h)/d)}),this)}}(),e.render=function(d){if(e.isRendered())return document.getElementById("nprogress");l(document.documentElement,"nprogress-busy");var h=document.createElement("div");h.id="nprogress",h.innerHTML=t.template;var g=h.querySelector(t.barSelector),m=d?"-100":n(e.status||0),v=document.querySelector(t.parent),b;return a(g,{transition:"all 0 linear",transform:"translate3d("+m+"%,0,0)"}),t.showSpinner||(b=h.querySelector(t.spinnerSelector),b&&f(b)),v!=document.body&&l(v,"nprogress-custom-parent"),v.appendChild(h),h},e.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(t.parent),"nprogress-custom-parent");var d=document.getElementById("nprogress");d&&f(d)},e.isRendered=function(){return!!document.getElementById("nprogress")},e.getPositioningCSS=function(){var d=document.body.style,h="WebkitTransform"in d?"Webkit":"MozTransform"in d?"Moz":"msTransform"in d?"ms":"OTransform"in d?"O":"";return h+"Perspective"in d?"translate3d":h+"Transform"in d?"translate":"margin"};function r(d,h,g){return d<h?h:d>g?g:d}function n(d){return(-1+d)*100}function i(d,h,g){var m;return t.positionUsing==="translate3d"?m={transform:"translate3d("+n(d)+"%,0,0)"}:t.positionUsing==="translate"?m={transform:"translate("+n(d)+"%,0)"}:m={"margin-left":n(d)+"%"},m.transition="all "+h+"ms "+g,m}var o=function(){var d=[];function h(){var g=d.shift();g&&g(h)}return function(g){d.push(g),d.length==1&&h()}}(),a=function(){var d=["Webkit","O","Moz","ms"],h={};function g(E){return E.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(A,I){return I.toUpperCase()})}function m(E){var A=document.body.style;if(E in A)return E;for(var I=d.length,j=E.charAt(0).toUpperCase()+E.slice(1),R;I--;)if(R=d[I]+j,R in A)return R;return E}function v(E){return E=g(E),h[E]||(h[E]=m(E))}function b(E,A,I){A=v(A),E.style[A]=I}return function(E,A){var I=arguments,j,R;if(I.length==2)for(j in A)R=A[j],R!==void 0&&A.hasOwnProperty(j)&&b(E,j,R);else b(E,I[1],I[2])}}();function s(d,h){var g=typeof d=="string"?d:c(d);return g.indexOf(" "+h+" ")>=0}function l(d,h){var g=c(d),m=g+h;s(g,h)||(d.className=m.substring(1))}function u(d,h){var g=c(d),m;!s(d,h)||(m=g.replace(" "+h+" "," "),d.className=m.substring(1,m.length-1))}function c(d){return(" "+(d.className||"")+" ").replace(/\s+/gi," ")}function f(d){d&&d.parentNode&&d.parentNode.removeChild(d)}return e})});var ni=class{constructor(){this.arrays={}}add(t,r){this.arrays[t]||(this.arrays[t]=[]),this.arrays[t].push(r)}remove(t){this.arrays[t]&&delete this.arrays[t]}get(t){return this.arrays[t]||[]}each(t,r){return this.get(t).forEach(r)}},Ct=class{constructor(){this.arrays=new WeakMap}add(t,r){this.arrays.has(t)||this.arrays.set(t,[]),this.arrays.get(t).push(r)}remove(t){this.arrays.has(t)&&this.arrays.delete(t,[])}get(t){return this.arrays.has(t)?this.arrays.get(t):[]}each(t,r){return this.get(t).forEach(r)}};function oi(e,t,r={},n=!0){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:n,composed:!0,cancelable:!0}))}function ai(e,t,r){return e.addEventListener(t,r),()=>e.removeEventListener(t,r)}function Ht(e){return typeof e=="object"&&e!==null}function Ot(e){return Ht(e)&&!$e(e)}function $e(e){return Array.isArray(e)}function Ho(e){return typeof e=="function"}function ii(e){return typeof e!="object"||e===null}function kt(e){return JSON.parse(JSON.stringify(e))}function ll(e,t){return JSON.stringify(e)===JSON.stringify(t)}function ul(e){return e===""?[]:e.replace(/\[(['"]?)(.+?)\1\]/g,".$2").replace(/^\./,"").split(".")}function be(e,t){return t===""?e:ul(t).reduce((r,n)=>r?.[n],e)}function qt(e,t,r){let n=ul(t);if(n.length===1)return e[n[0]]=r;let i=n.shift(),o=n.join("."),a=n[0];e[i]===void 0&&(e[i]={}),$e(e[i])&&Jd(a)&&parseInt(a)>e[i].length&&(e[i]={...e[i]}),qt(e[i],o,r)}function Jd(e){return!isNaN(parseInt(e))}function qo(e,t,r={},n=""){if(e===t)return r;if(typeof e!=typeof t||Ot(e)&&$e(t)||$e(e)&&Ot(t)||ii(e)||ii(t))return r[n]=t,r;let i=Object.keys(e),o=Object.keys(t);return Ot(e)&&i.some((a,s)=>a!==o[s])?(r[n]=t,r):(Object.entries(t).forEach(([a,s])=>{r={...r,...qo(e[a],t[a],r,n===""?a:`${n}.${a}`)},i=i.filter(l=>l!==a)}),i.forEach(a=>{r[`${n}.${a}`]="__rm__"}),r)}function cl(e,t){let r={};return fl(e,t,"",r,e,t),r}function fl(e,t,r,n,i,o){if(e===t)return{changed:!1,consolidated:!1};let a=!1,s=m=>$e(m)&&Object.keys(m).some(v=>isNaN(parseInt(v)));if(typeof e!=typeof t||Ot(e)&&$e(t)||$e(e)&&Ot(t))if($e(e)&&e.length===0&&Ot(t))e={},a=!0;else if(e==null&&Ot(t))e={},a=!0;else return n[r]=t,{changed:!0,consolidated:!1};if($e(e)&&$e(t)&&s(t)&&Object.keys(e).length===0&&(a=!0),ii(e)||ii(t))return n[r]=t,{changed:!0,consolidated:!1};let l=Object.keys(e),u=Object.keys(t);if(l.length!==u.length&&!a)return r===""?(Object.keys(t).forEach(m=>{ll(e[m],t[m])||(n[m]=t[m])}),{changed:!0,consolidated:!0}):(n[r]=be(o,r),{changed:!0,consolidated:!0});if(Ot(e)&&l.length===u.length&&l.some((m,v)=>m!==u[v])&&r!=="")return n[r]=be(o,r),{changed:!0,consolidated:!0};if(!l.every(m=>u.includes(m))&&!a&&r!=="")return n[r]=be(o,r),{changed:!0,consolidated:!0};let f={},d=0,h=0,g=u.length;return u.forEach(m=>{let v=r===""?m:`${r}.${m}`,b=fl(e[m],t[m],v,f,i,o);b.changed&&d++,b.consolidated&&h++}),r!==""&&g>1&&d===g&&h===0&&!a?(n[r]=be(o,r),{changed:!0,consolidated:!0}):(Object.assign(n,f),{changed:d>0,consolidated:h>0||a})}function Wo(e,t,r){let n=new Set(Object.keys(e||{})),i=Object.keys(t);if(!$e(r)&&[...n].some((a,s)=>a!==i[s])){for(let a of Object.keys(r))delete r[a];for(let a of i)r[a]=t[a];return}i.forEach(a=>{n.delete(a),!ll(e?.[a],t[a])&&(Ht(e?.[a])&&Ht(t[a])&&Ht(r[a])&&$e(t[a])===$e(r[a])?Wo(e[a],t[a],r[a]):r[a]=t[a])}),[...n].sort((a,s)=>{let l=parseInt(a)||0;return(parseInt(s)||0)-l}).forEach(a=>{$e(r)?r.splice(parseInt(a),1):delete r[a]})}function Wt(e){let t=sl(e)?e[0]:e,r=sl(e)?e[1]:void 0;return Ht(t)&&Object.entries(t).forEach(([n,i])=>{t[n]=Wt(i)}),t}function sl(e){return Array.isArray(e)&&e.length===2&&typeof e[1]=="object"&&Object.keys(e[1]).includes("s")}function si(){if(document.querySelector('meta[name="csrf-token"]'))return document.querySelector('meta[name="csrf-token"]').getAttribute("content");if(document.querySelector("[data-csrf]"))return document.querySelector("[data-csrf]").getAttribute("data-csrf");if(window.livewireScriptConfig.csrf??!1)return window.livewireScriptConfig.csrf;throw"Livewire: No CSRF token detected"}var br;function wr(){if(br)return br;if(window.livewireScriptConfig&&(window.livewireScriptConfig.nonce??!1))return br=window.livewireScriptConfig.nonce,br;let e=document.querySelector("style[data-livewire-style][nonce]");return e?(br=e.nonce,br):null}function li(e){let t=wr();if(!t)return e;let r=e.match(/nonce="([^"]+)"/);if(!r)return e;let n=r[1];return n===t?e:e.replaceAll(`nonce="${n}"`,`nonce="${t}"`)}function tn(e){let t=document.createElement("script");t.textContent=e.textContent,t.async=e.async;for(let r of e.attributes)r.name==="nonce"?t.nonce=wr()||e.nonce:t.setAttribute(r.name,r.value);return t}function rn(){return document.querySelector("[data-module-url]")?.getAttribute("data-module-url")??window.livewireScriptConfig.moduleUrl??null}function dl(){return document.querySelector("[data-update-uri]")?.getAttribute("data-update-uri")??window.livewireScriptConfig.uri??null}function pl(e){return!!e.match(/<script>Sfdump\(".+"\)<\/script>/)}function hl(e){let t=e.match(/.*<script>Sfdump\(".+"\)<\/script>/s);return[t,e.replace(t,"")]}function ml(e,t){let r=e;for(;r;){let n;if(t(r,{stop:i=>i===void 0?n=r:n=i}),n!==void 0)return n;r._x_teleportBack&&(r=r._x_teleportBack),r=r.parentElement}}function gl(e,t){let r=e;for(;r;){let n;if(t(r,{stop:i=>i===void 0?n=r:n=i}),n!==void 0)return n;r=r.previousSibling}}var zo=new WeakMap;function on(e){if(!zo.has(e)){let t=new Ko(e);zo.set(e,t),t.registerListeners()}return zo.get(e)}function vl(e,t,r,n){let i=on(r),o=()=>e.dispatchEvent(new CustomEvent("livewire-upload-start",{bubbles:!0,detail:{id:r.id,property:t}})),a=()=>e.dispatchEvent(new CustomEvent("livewire-upload-finish",{bubbles:!0,detail:{id:r.id,property:t}})),s=()=>e.dispatchEvent(new CustomEvent("livewire-upload-error",{bubbles:!0,detail:{id:r.id,property:t}})),l=()=>e.dispatchEvent(new CustomEvent("livewire-upload-cancel",{bubbles:!0,detail:{id:r.id,property:t}})),u=d=>{var h=Math.round(d.loaded*100/d.total);e.dispatchEvent(new CustomEvent("livewire-upload-progress",{bubbles:!0,detail:{progress:h}}))},c=d=>{d.target.files.length!==0&&(o(),d.target.multiple?i.uploadMultiple(t,d.target.files,a,s,u,l):i.upload(t,d.target.files[0],a,s,u,l))};e.addEventListener("change",c),r.$wire.$watch(t,d=>{!e.isConnected||((d===null||d==="")&&(e.value=""),e.multiple&&Array.isArray(d)&&d.length===0&&(e.value=""))});let f=()=>{e.value=null};e.addEventListener("click",f),e.addEventListener("livewire-upload-cancel",f),n(()=>{e.removeEventListener("change",c),e.removeEventListener("click",f)})}var Ko=class{constructor(t){this.component=t,this.uploadBag=new nn,this.removeBag=new nn}registerListeners(){this.component.$wire.$on("upload:generatedSignedUrl",({name:t,url:r})=>{this.component,this.handleSignedUrl(t,r)}),this.component.$wire.$on("upload:generatedSignedUrlForS3",({name:t,payload:r})=>{this.component,this.handleS3PreSignedUrl(t,r)}),this.component.$wire.$on("upload:finished",({name:t,tmpFilenames:r})=>this.markUploadFinished(t,r)),this.component.$wire.$on("upload:errored",({name:t})=>this.markUploadErrored(t)),this.component.$wire.$on("upload:removed",({name:t,tmpFilename:r})=>this.removeBag.shift(t).finishCallback(r))}upload(t,r,n,i,o,a){this.setUpload(t,{files:[r],multiple:!1,finishCallback:n,errorCallback:i,progressCallback:o,cancelledCallback:a,append:!1})}uploadMultiple(t,r,n,i,o,a,s=!0){this.setUpload(t,{files:Array.from(r),multiple:!0,finishCallback:n,errorCallback:i,progressCallback:o,cancelledCallback:a,append:s})}removeUpload(t,r,n){this.removeBag.push(t,{tmpFilename:r,finishCallback:n}),this.component.$wire.call("_removeUpload",t,r)}setUpload(t,r){this.uploadBag.add(t,r),this.uploadBag.get(t).length===1&&this.startUpload(t,r)}handleSignedUrl(t,r){let n=new FormData;Array.from(this.uploadBag.first(t).files).forEach(a=>n.append("files[]",a,a.name));let i={Accept:"application/json"},o=si();o&&(i["X-CSRF-TOKEN"]=o),this.makeRequest(t,n,"post",r,i,a=>a.paths)}handleS3PreSignedUrl(t,r){let n=this.uploadBag.first(t).files[0],i=r.headers;"Host"in i&&delete i.Host;let o=r.url;this.makeRequest(t,n,"put",o,i,a=>[r.path])}makeRequest(t,r,n,i,o,a){let s=new XMLHttpRequest;s.open(n,i),Object.entries(o).forEach(([l,u])=>{s.setRequestHeader(l,u)}),s.upload.addEventListener("progress",l=>{l.detail={},l.detail.progress=Math.floor(l.loaded*100/l.total),this.uploadBag.first(t).progressCallback(l)}),s.addEventListener("load",()=>{if((s.status+"")[0]==="2"){let u=a(s.response&&JSON.parse(s.response));this.component.$wire.call("_finishUpload",t,u,this.uploadBag.first(t).multiple,this.uploadBag.first(t).append);return}let l=null;s.status===422&&(l=s.response),this.component.$wire.call("_uploadErrored",t,l,this.uploadBag.first(t).multiple)}),s.addEventListener("error",()=>{this.component.$wire.call("_uploadErrored",t,null,this.uploadBag.first(t).multiple)}),this.uploadBag.first(t).request=s,s.send(r)}startUpload(t,r){let n=r.files.map(i=>({name:i.name,size:i.size,type:i.type}));this.component.$wire.call("_startUpload",t,n,r.multiple),this.component}markUploadFinished(t,r){this.component;let n=this.uploadBag.shift(t);n.finishCallback(n.multiple?r:r[0]),this.uploadBag.get(t).length>0&&this.startUpload(t,this.uploadBag.last(t))}markUploadErrored(t){this.component,this.uploadBag.shift(t).errorCallback(),this.uploadBag.get(t).length>0&&this.startUpload(t,this.uploadBag.last(t))}cancelUpload(t,r=null){this.component;let n=this.uploadBag.first(t);n&&(n.request&&n.request.abort(),this.uploadBag.shift(t).cancelledCallback(),r&&r())}},nn=class{constructor(){this.bag={}}add(t,r){this.bag[t]||(this.bag[t]=[]),this.bag[t].push(r)}push(t,r){this.add(t,r)}first(t){return this.bag[t]?this.bag[t][0]:null}last(t){return this.bag[t].slice(-1)[0]}get(t){return this.bag[t]}shift(t){return this.bag[t].shift()}call(t,...r){(this.listeners[t]||[]).forEach(n=>{n(...r)})}has(t){return Object.keys(this.listeners).includes(t)}};function yl(e,t,r,n=()=>{},i=()=>{},o=()=>{},a=()=>{}){on(e).upload(t,r,n,i,o,a)}function bl(e,t,r,n=()=>{},i=()=>{},o=()=>{},a=()=>{},s=!0){on(e).uploadMultiple(t,r,n,i,o,a,s)}function wl(e,t,r,n=()=>{},i=()=>{}){on(e).removeUpload(t,r,n,i)}function _l(e,t,r=()=>{}){on(e).cancelUpload(t,r)}var Ca=le(ue());function ka(e,t){return t||(t=()=>{}),(r,n=!1)=>{let i=n,o=r,a=e.$wire,s=a.get(o);return Ca.default.interceptor((u,c,f,d,h)=>{if(typeof s>"u"){console.error(`Livewire Entangle Error: Livewire property ['${o}'] cannot be found on component: ['${e.name}']`);return}let g=Ca.default.entangle({get(){return a.get(r)},set(m){a.set(r,m,i)}},{get(){return c()},set(m){f(m)}});return t(()=>g()),Yh(a.get(r))},u=>{Object.defineProperty(u,"live",{get(){return i=!0,u}})})(s)}}function Yh(e){return typeof e=="object"?JSON.parse(JSON.stringify(e)):e}var Ir=le(ue());var Qt=[];function J(e,t){return Qt[e]||(Qt[e]=[]),Qt[e].push(t),()=>{Qt[e]=Qt[e].filter(r=>r!==t)}}function ne(e,...t){let r=Qt[e]||[],n=[];for(let i=0;i<r.length;i++){let o=r[i](...t);Ho(o)&&n.push(o)}return i=>$u(n,i)}async function xi(e,...t){let r=Qt[e]||[],n=[];for(let i=0;i<r.length;i++){let o=await r[i](...t);Ho(o)&&n.push(o)}return i=>$u(n,i)}function $u(e,t){let r=t;for(let n=0;n<e.length;n++){let i=e[n](r);i!==void 0&&(r=i)}return r}function ju(e){Si(({message:t,compileRequest:r})=>{!t.component.isIsolated||r([t])}),Si(({message:t,compileRequest:r})=>{t.component.isLazy&&!t.component.hasBeenLazyLoaded&&t.component.isLazyIsolated&&r([t])}),Si(({message:t,compileRequest:r})=>{let n=t.component,i=[];n.getDeepChildrenWithBindings(o=>{let a=Ta(o,"$commit"),s=Na(a);i.push(s)}),i.length>0&&r([t,...i])}),er(({action:t})=>{t?.origin?.directive?.modifiers.includes("renderless")&&(t.metadata.renderless=!0);let n=e.activeMessageMatchingScope(t);if(n){if(n.isAsync()||t.isAsync())return;if(t.metadata.type==="poll")return t.cancel();if(Array.from(n.actions).every(i=>i.metadata.type==="poll"))return n.cancel();if(Array.from(n.actions).every(i=>i.metadata.type==="model.live")&&t.metadata.type==="model.live")return;t.defer(),n.addInterceptor(({onFinish:i})=>{i(()=>t.fire())})}})}var fn=class{messages=new Set;controller=new AbortController;interceptors=[];cancelled=!1;uri=null;payload=null;options=null;addMessage(t){t.setRequest(this),this.messages.add(t)}getActiveMessages(){return new Set([...this.messages].filter(t=>!t.isCancelled()))}initInterceptors(t){this.interceptors=t.getRequestInterceptors(this),this.messages.forEach(r=>{let n=t.getMessageInterceptors(r);r.setInterceptors(n)}),this.interceptors.forEach(r=>r.init()),this.messages.forEach(r=>{r.getInterceptors().forEach(n=>n.init())})}cancel(){this.cancelled||(this.cancelled=!0,this.controller.abort(),this.messages.forEach(t=>{t.isCancelled()||t.cancel()}))}hasAllCancelledMessages(){return this.getActiveMessages().size===0}isCancelled(){return this.cancelled}invokeOnSend({responsePromise:t}){this.interceptors.forEach(r=>r.onSend({responsePromise:t})),this.messages.forEach(r=>r.invokeOnSend())}invokeOnCancel(){this.interceptors.forEach(t=>t.onCancel())}invokeOnFailure({error:t}){this.interceptors.forEach(r=>r.onFailure({error:t})),this.messages.forEach(r=>r.invokeOnFailure(t))}invokeOnResponse({response:t}){this.interceptors.forEach(r=>r.onResponse({response:t}))}invokeOnStream({response:t}){this.interceptors.forEach(r=>r.onStream({response:t}))}invokeOnParsed({response:t,body:r}){this.interceptors.forEach(n=>n.onParsed({response:t,body:r}))}invokeOnRedirect({url:t,preventDefault:r}){this.interceptors.forEach(n=>n.onRedirect({url:t,preventDefault:r}))}invokeOnDump({html:t,preventDefault:r}){this.interceptors.forEach(n=>n.onDump({html:t,preventDefault:r}))}invokeOnError({response:t,body:r,preventDefault:n}){this.interceptors.forEach(i=>i.onError({response:t,body:r,preventDefault:n})),this.messages.forEach(i=>i.invokeOnError({response:t,body:r,preventDefault:n}))}invokeOnSuccess({response:t,body:r,json:n}){this.interceptors.forEach(i=>i.onSuccess({response:t,body:r,json:n}))}invokeOnFinish(){this.interceptors.forEach(t=>t.onFinish())}},Ai=class{controller=new AbortController;constructor(t){this.uri=t}cancel(){this.controller.abort()}isCancelled(){return this.controller.signal.aborted}};var dn=class{onSend=()=>{};onCancel=()=>{};onFailure=()=>{};onError=()=>{};onStream=()=>{};onSuccess=()=>{};onSkipped=()=>{};onFinish=()=>{};onSync=()=>{};onEffect=()=>{};onMorph=async()=>{};onRender=()=>{};constructor(t,r){this.message=t,this.callback=r,this.callback({message:this.message,cancel:()=>{this.message.getInterceptors().includes(this)||this.onCancel(),this.message.cancel()},onSend:n=>this.onSend=n,onCancel:n=>this.onCancel=n,onFailure:n=>this.onFailure=n,onError:n=>this.onError=n,onStream:n=>this.onStream=n,onSuccess:n=>this.onSuccess=n,onSkipped:n=>this.onSkipped=n,onFinish:n=>this.onFinish=n})}init(){}},Ma=class{onSend=()=>{};onCancel=()=>{};onFailure=()=>{};onResponse=()=>{};onParsed=()=>{};onError=()=>{};onStream=()=>{};onRedirect=()=>{};onDump=()=>{};onSuccess=()=>{};onFinish=()=>{};constructor(t,r){this.request=t,this.callback=r,this.callback({request:this.request,onSend:n=>this.onSend=n,onCancel:n=>this.onCancel=n,onFailure:n=>this.onFailure=n,onResponse:n=>this.onResponse=n,onParsed:n=>this.onParsed=n,onError:n=>this.onError=n,onStream:n=>this.onStream=n,onRedirect:n=>this.onRedirect=n,onDump:n=>this.onDump=n,onSuccess:n=>this.onSuccess=n,onFinish:n=>this.onFinish=n})}init(){}},Oi=class{messageInterceptorCallbacks=[];messageInterceptorCallbacksByComponent=new Ct;requestInterceptorCallbacks=[];addInterceptor(t,r){return this.messageInterceptorCallbacksByComponent.add(t,r),()=>{this.messageInterceptorCallbacksByComponent.delete(t,r)}}addMessageInterceptor(t){return this.messageInterceptorCallbacks.push(t),()=>{this.messageInterceptorCallbacks.splice(this.messageInterceptorCallbacks.indexOf(t),1)}}addRequestInterceptor(t){return this.requestInterceptorCallbacks.push(t),()=>{this.requestInterceptorCallbacks.splice(this.requestInterceptorCallbacks.indexOf(t),1)}}getMessageInterceptors(t){return[...this.messageInterceptorCallbacksByComponent.get(t.component),...this.messageInterceptorCallbacks].map(n=>new dn(t,n))}getRequestInterceptors(t){return this.requestInterceptorCallbacks.map(r=>new Ma(t,r))}};function Pa(e){let t=document.createElement("html");t.innerHTML=e,t.querySelectorAll("a").forEach(i=>i.setAttribute("target","_top"));let r=document.getElementById("livewire-error");typeof r<"u"&&r!=null?r.innerHTML="":(r=document.createElement("dialog"),r.id="livewire-error",r.style.margin="50px",r.style.width="calc(100% - 100px)",r.style.height="calc(100% - 100px)",r.style.borderRadius="5px",r.style.padding="0px");let n=document.createElement("iframe");n.style.backgroundColor="#17161A",n.style.borderRadius="5px",n.style.width="100%",n.style.height="100%",r.appendChild(n),document.body.prepend(r),document.body.style.overflow="hidden",n.contentWindow.document.open(),n.contentWindow.document.write(t.outerHTML),n.contentWindow.document.close(),r.addEventListener("click",()=>Xh(r)),r.addEventListener("close",()=>Zh(r)),r.showModal(),r.focus(),r.blur()}function Xh(e){e.close()}function Zh(e){e.outerHTML="",document.body.style.overflow="visible"}var kr=new WeakMap,Ci=new WeakMap;function Uu(e){let t=e.component;if(Array.from(e.actions).every(n=>n.metadata.island)){let n=Array.from(e.actions).map(o=>o.metadata.island.name).sort().join("|"),i=Ci.get(t);return i||(i={[n]:Symbol()},Ci.set(t,i)),i[n]||(i[n]=Symbol()),i[n]}return kr.has(t)||kr.set(t,Symbol()),kr.get(t)}function Ia(e){let t=e.component;if(!!e.metadata.island){let n=e.metadata.island.name,i=Ci.get(t);return i||(i={[n]:Symbol()},Ci.set(t,i)),i[n]||(i[n]=Symbol()),i[n]}return kr.has(t)||kr.set(t,Symbol()),kr.get(t)}var ki=class{pendingMessages=new Set;activeMessages=new Set;bufferingMessages=new Set;constructor(){}messageBuffer(t,r){this.bufferingMessages.has(t)||(this.bufferingMessages.add(t),setTimeout(()=>{r(),this.bufferingMessages.delete(t)},5))}addPendingMessage(t){this.pendingMessages.add(t)}clearPendingMessages(){this.pendingMessages.clear()}getPendingMessages(){return Array.from(this.pendingMessages)}addActiveMessage(t){this.activeMessages.add(t)}removeActiveMessage(t){this.activeMessages.delete(t)}findScopedPendingMessage(t){if(t.isAsync())return null;let r=Ia(t);return Array.from(this.pendingMessages).find(n=>n.component!==t.component?!1:Array.from(n.actions).some(i=>Ia(i)===r))}activeMessageMatchingScope(t){return Array.from(this.activeMessages).find(r=>this.matchesScope(r,t))}matchesScope(t,r){return t.scope===Ia(r)}allScopedMessages(t){return[...Array.from(this.activeMessages),...Array.from(this.pendingMessages)].filter(r=>this.matchesScope(r,t))}eachPendingMessage(t){Array.from(this.pendingMessages).forEach(t)}};var pn=class{actions=new Set;snapshot=null;updates=null;calls=null;payload=null;responsePayload=null;pendingReturns=[];pendingReturnsMeta={};interceptors=[];cancelled=!1;skipped=!1;request=null;_scope=null;get scope(){if(!this._scope)throw new Error("Message scope has not been set yet");return this._scope}set scope(t){this._scope=t}constructor(t){this.component=t}addAction(t){let r=new Map;if(Array.from(this.actions).forEach(n=>{r.set(n.fingerprint,n)}),r.has(t.fingerprint)){r.get(t.fingerprint).addSquashedAction(t);return}t.message=this,this.actions.add(t)}removeAction(t){this.actions.delete(t),t.message=null,this.actions.size===0&&this.cancel()}getActions(){return Array.from(this.actions)}hasActionForIsland(t){return this.getActions().some(r=>r.metadata.island?.name===t.metadata.name)}hasActionForComponent(){return this.getActions().some(t=>t.metadata.island===void 0)}setInterceptors(t){this.interceptors=t}addInterceptor(t){let r=new dn(this,t);this.interceptors.push(r),r.init()}setRequest(t){this.request=t}getInterceptors(){return this.interceptors}cancel(){this.cancelled||(this.cancelled=!0,this.invokeOnCancel(),this.request?.hasAllCancelledMessages()&&this.request.cancel())}isCancelled(){return this.cancelled}markSkipped(){this.skipped=!0}isSkipped(){return this.skipped}isAsync(){return Array.from(this.actions).every(t=>t.isAsync())}invokeOnSend(){this.interceptors.forEach(t=>t.onSend({payload:this.payload})),Array.from(this.actions).forEach((t,r)=>{let n=this.calls[r];t.invokeOnSend({call:n})})}invokeOnCancel(){this.interceptors.forEach(t=>t.onCancel()),this.rejectActionPromises({status:null,body:null,json:null,errors:null}),Array.from(this.actions).forEach(t=>t.invokeOnFinish()),this.invokeOnFinish()}invokeOnFailure(t){this.interceptors.forEach(r=>r.onFailure({error:t})),Array.from(this.actions).forEach(r=>r.invokeOnFailure({error:t})),this.rejectActionPromises({status:null,body:null,json:null,errors:null}),Array.from(this.actions).forEach(r=>r.invokeOnFinish()),this.invokeOnFinish()}invokeOnError({response:t,body:r,preventDefault:n}){this.interceptors.forEach(o=>o.onError({response:t,body:r,preventDefault:n})),Array.from(this.actions).forEach(o=>o.invokeOnError({response:t,body:r,preventDefault:n}));let i=null;try{i=JSON.parse(r)}catch{}this.rejectActionPromises({status:t.status,body:r,json:i,errors:null}),Array.from(this.actions).forEach(o=>o.invokeOnFinish()),this.invokeOnFinish()}invokeOnStream({json:t}){this.interceptors.forEach(r=>r.onStream({json:t}))}invokeOnSuccess(){this.interceptors.forEach(t=>{t.onSuccess({payload:this.responsePayload,onSync:r=>t.onSync=r,onEffect:r=>t.onEffect=r,onMorph:r=>t.onMorph=r,onRender:r=>t.onRender=r})}),this.pendingReturns=this.responsePayload.effects.returns||[],this.pendingReturnsMeta=this.responsePayload.effects.returnsMeta||{}}invokeOnSync(){this.interceptors.forEach(t=>t.onSync())}invokeOnEffect(){this.interceptors.forEach(t=>t.onEffect())}async invokeOnMorph(){await Promise.all(this.interceptors.map(t=>t.onMorph()))}invokeOnRender(){this.interceptors.forEach(t=>t.onRender())}invokeOnFinish(){this.interceptors.forEach(t=>t.onFinish())}invokeOnSkipped(){this.interceptors.forEach(t=>t.onSkipped()),Array.from(this.actions).forEach(t=>t.invokeOnFinish())}rejectActionPromises({status:t,body:r,json:n,errors:i}){Array.from(this.actions).forEach(o=>{o.rejectPromise({status:t,body:r,json:n,errors:i})})}resolveActionPromises(t,r){let n=new Set;t.forEach((i,o)=>{let a=Array.from(this.actions)[o];if(!a)return;let s=r[o];if(s?.errors){a.rejectPromise({status:422,body:null,json:null,errors:s.errors}),a.invokeOnFinish(),n.add(a);return}if(s?.status){a.rejectPromise({status:s.status,body:null,json:null,errors:null}),a.invokeOnFinish(),n.add(a);return}a.invokeOnSuccess(i),a.resolvePromise(i),a.invokeOnFinish(),n.add(a)}),Array.from(this.actions).forEach(i=>{n.has(i)||(i.invokeOnSuccess(void 0),i.resolvePromise(),i.invokeOnFinish())})}};var hn=class{squashedActions=new Set;onSendCallbacks=[];onCancelCallbacks=[];onSuccessCallbacks=[];onErrorCallbacks=[];onFailureCallbacks=[];onFinishCallbacks=[];message=null;cancelled=!1;deferred=!1;_fire=null;constructor(t,r,n=[],i={},o=null){this.component=t,this.name=r,this.params=n,this.metadata=i,this.origin=o,this.promise=new Promise((a,s)=>{this.promiseResolution={resolve:a,reject:s}}),this.promise._livewireAction=this}cancel(){this.cancelled||(this.cancelled=!0,this.invokeOnCancel(),this.invokeOnFinish(),this.rejectPromise({status:null,body:null,json:null,errors:null}),this.squashedActions.forEach(t=>t.cancel()),this.message&&this.message.removeAction(this))}isCancelled(){return this.cancelled}defer(){this.deferred=!0}isDeferred(){return this.deferred}fire(){this._fire&&this._fire(this)}get fingerprint(){let t=this.component.id,r=this.name,n=JSON.stringify(this.params),i=JSON.stringify(this.metadata),o=new TextEncoder().encode(t+r+n+i),a="",s=8192;for(let l=0;l<o.length;l+=s)a+=String.fromCharCode(...o.subarray(l,l+s));return window.btoa(a)}isAsync(){let r=(this.component.snapshot.memo?.async||[]).includes(this.name),n=this.origin?.directive?.modifiers.includes("async")||!!this.metadata.async;return r||n}isJson(){return(this.component.snapshot.memo?.json||[]).includes(this.name)}addInterceptor(t){t({action:this,onSend:r=>this.onSendCallbacks.push(r),onCancel:r=>this.onCancelCallbacks.push(r),onSuccess:r=>this.onSuccessCallbacks.push(r),onError:r=>this.onErrorCallbacks.push(r),onFailure:r=>this.onFailureCallbacks.push(r),onFinish:r=>this.onFinishCallbacks.push(r)})}invokeOnSend({call:t}){this.onSendCallbacks.forEach(r=>r({call:t})),this.squashedActions.forEach(r=>r.invokeOnSend({call:t}))}invokeOnCancel(){this.onCancelCallbacks.forEach(t=>t()),this.squashedActions.forEach(t=>t.invokeOnCancel())}invokeOnSuccess(t){this.onSuccessCallbacks.forEach(r=>r(t)),this.squashedActions.forEach(r=>r.invokeOnSuccess(t))}invokeOnError({response:t,body:r,preventDefault:n}){this.onErrorCallbacks.forEach(i=>i({response:t,body:r,preventDefault:n})),this.squashedActions.forEach(i=>i.invokeOnError({response:t,body:r,preventDefault:n}))}invokeOnFailure({error:t}){this.onFailureCallbacks.forEach(r=>r({error:t})),this.squashedActions.forEach(r=>r.invokeOnFailure({error:t}))}invokeOnFinish(){this.onFinishCallbacks.forEach(t=>t()),this.squashedActions.forEach(t=>t.invokeOnFinish())}mergeMetadata(t){this.metadata={...this.metadata,...t}}rejectPromise(t){this.squashedActions.forEach(r=>r.rejectPromise(t)),this.promiseResolution.reject(t)}addSquashedAction(t){this.squashedActions.add(t)}resolvePromise(t){this.squashedActions.forEach(r=>r.resolvePromise(t)),this.promiseResolution.resolve(t)}};function Bu(e,t){e(({request:r,onFailure:n,onResponse:i,onError:o,onSuccess:a})=>{let s=[],l=[],u=[];ne("request",{url:r.uri,options:r.options,payload:r.options.body,respond:c=>s.push(c),succeed:c=>l.push(c),fail:c=>u.push(c)}),i(({response:c})=>{s.forEach(f=>f({status:c.status,response:c}))}),a(({response:c,json:f})=>{l.forEach(d=>d({status:c.status,json:f}))}),n(({error:c})=>{u.forEach(f=>f({status:503,content:null,preventDefault:()=>{}}))}),o(({response:c,body:f,preventDefault:d})=>{u.forEach(h=>h({status:c.status,content:f,preventDefault:d}))})}),t(({message:r,onCancel:n,onError:i,onSuccess:o,onFinish:a})=>{let s=[],l=[],u=[];ne("commit",{component:r.component,commit:r.payload,respond:c=>{s.push(c)},succeed:c=>{l.push(c)},fail:c=>{u.push(c)}}),a(()=>{s.forEach(c=>c())}),o(({payload:c,onSync:f,onMorph:d,onRender:h})=>{h(()=>{l.forEach(g=>g({snapshot:c.snapshot,effects:c.effects}))})}),i(()=>{u.forEach(c=>c())}),n(()=>{u.forEach(c=>c())})})}var Ra=null,Da={},Fa=[],Mi=new Oi,gt=new ki,Ti=[],Ni=[],La=!1;function qu(){return La}function qe(e){Ra=e}function Tr(e){Da=e}function Wu(e){Fa.push(e)}function er(e){return Ti.push(e),()=>{Ti.splice(Ti.indexOf(e),1)}}function Ce(e){return Mi.addMessageInterceptor(e)}function Pi(e){return Mi.addRequestInterceptor(e)}function Si(e){return Ni.push(e),()=>{Ni.splice(Ni.indexOf(e),1)}}function $a(e,t,r){let n=typeof t=="string"?t:null,i=n?r:t;return er(({action:o,...a})=>{o.component===e&&(n&&o.name!==n||i({action:o,...a}))})}function ja(e,t,r){let n=typeof t=="string"?t:null,i=n?r:t;return Mi.addInterceptor(e,({message:o,...a})=>{n&&!Array.from(o.actions).some(l=>l.name===n)||i({message:o,...a})})}function zu(e,t,r){let n=typeof t=="string"?t:null,i=n?r:t;return Pi(({request:o,...a})=>{Array.from(o.messages).filter(l=>l.component!==e?!1:n?Array.from(l.actions).some(u=>u.name===n):!0).length!==0&&i({request:o,...a})})}Ce(({message:e,onFinish:t})=>{gt.addActiveMessage(e),t(()=>gt.removeActiveMessage(e))});queueMicrotask(()=>{ju(gt)});function tr(e,t,r=[],n={}){e.__isWireProxy&&(e=e.__instance);let i=Ta(e,t,r,n);return Ti.forEach(o=>{o({action:i,onSend:a=>i.onSendCallbacks.push(a),onCancel:a=>i.onCancelCallbacks.push(a),onSuccess:a=>i.onSuccessCallbacks.push(a),onError:a=>i.onErrorCallbacks.push(a),onFailure:a=>i.onFailureCallbacks.push(a),onFinish:a=>i.onFinishCallbacks.push(a)})}),i.isCancelled()||i.isDeferred()?i.promise:Ku(i)}function Ta(e,t,r,n){let i=Ra,o=Fa;Ra=null,Fa=[],n={...n,...Da},Da={};let a=new hn(e,t,r,n,i);return a._fire=Ku,o.forEach(s=>a.addInterceptor(s)),a}function Ku(e){let t=Na(e);return gt.messageBuffer(t,()=>{Qh()}),e.promise}function Na(e){let t=gt.findScopedPendingMessage(e);return t||(t=new pn(e.component)),t.addAction(e),gt.addPendingMessage(t),t}function Qh(){let e=new Set;gt.eachPendingMessage(r=>{Ni.forEach(n=>{n({message:r,compileRequest:i=>{let o=Array.from(e).find(s=>i.some(l=>s.messages.has(l)));if(o)return i.forEach(s=>{o.messages.has(s)||o.addMessage(s)}),o;let a=new fn;return i.forEach(s=>a.addMessage(s)),e.add(a),a}})})});let t=gt.getPendingMessages();gt.clearPendingMessages();for(let r of t){if(Array.from(e).some(i=>i.messages.has(r)))continue;let n=!1;if(e.forEach(i=>{if(!n){if(Array.from(i.messages).some(a=>a.component===r.component))return;i.addMessage(r),n=!0}}),!n){let i=new fn;i.addMessage(r),e.add(i)}}e.forEach(r=>{r.messages.forEach(n=>{n.snapshot=n.component.getEncodedSnapshotWithLatestChildrenMergedIn(),n.updates=n.component.getUpdates(),n.calls=Array.from(n.actions).map(i=>({method:i.name,params:i.params,metadata:i.metadata})),n.payload={snapshot:n.snapshot,updates:n.updates,calls:n.calls}})}),e.forEach(r=>{r.messages.forEach(n=>{n.scope=Uu(n)})}),e.forEach(r=>{r.uri=dl(),Object.defineProperty(r,"payload",{get(){return{_token:si(),components:Array.from(r.messages,i=>i.payload)}}});let n=null;Object.defineProperty(r,"options",{get(){return n||(n={method:"POST",body:JSON.stringify(r.payload),headers:{"Content-type":"application/json","X-Livewire":"1"},signal:r.controller.signal},n)}})}),e.forEach(r=>{r.initInterceptors(Mi),r.hasAllCancelledMessages()&&r.cancel(),em(r,{send:({responsePromise:n})=>{r.invokeOnSend({responsePromise:n})},failure:({error:n})=>{r.invokeOnFailure({error:n})},finish:()=>{r.invokeOnFinish()},response:({response:n})=>{r.invokeOnResponse({response:n})},stream:async({response:n})=>{r.invokeOnStream({response:n});let i="";try{i=await tm(n,o=>{let a=o.id;r.messages.forEach(s=>{s.component.id===a&&s.invokeOnStream({json:o})}),ne("stream",o)})}catch(o){throw r.cancel(),o}return i},parsed:({response:n,responseBody:i})=>{r.invokeOnParsed({response:n,body:i})},error:({response:n,responseBody:i})=>{let o=!1;if(r.invokeOnError({response:n,body:i,preventDefault:()=>o=!0}),!o){if(n.status===419){if(La)return;La=!0,confirm(`This page has expired. +Would you like to refresh the page?`)&&window.location.reload();return}n.aborted||Pa(i)}},redirect:n=>{let i=!1;r.invokeOnRedirect({url:n,preventDefault:()=>i=!0}),!i&&(window.location.href=n)},dump:n=>{let i=!1;r.invokeOnDump({html:n,preventDefault:()=>i=!0}),!i&&Pa(n)},success:async({response:n,responseBody:i,responseJson:o})=>{r.invokeOnSuccess({response:n,body:i,json:o}),await xi("payload.intercept",o);let a=o.components;r.messages.forEach(s=>{a.forEach(l=>{if(s.isCancelled())return;if(l.skip){l.id===s.component.id&&(s.responsePayload=l,s.markSkipped(),s.invokeOnSkipped(),s.resolveActionPromises([],[]),s.invokeOnFinish());return}let{snapshot:u,effects:c}=l,f=JSON.parse(u);if(f.memo.id===s.component.id){if(s.responsePayload={snapshot:f,effects:c},s.invokeOnSuccess(),s.isCancelled())return;Alpine.transaction(async()=>{s.component.mergeNewSnapshot(u,c,s.updates),s.invokeOnSync(),!s.isCancelled()&&(s.component.processEffects(c,r),s.invokeOnEffect(),!s.isCancelled()&&await s.invokeOnMorph())}).then(()=>{s.isCancelled()||(s.resolveActionPromises(s.pendingReturns,s.pendingReturnsMeta),s.invokeOnFinish()),requestAnimationFrame(()=>{s.isCancelled()||s.invokeOnRender()})})}})})}})})}async function em(e,t){let r;try{if(e.isCancelled())return;let o=fetch(e.uri,e.options);if(e.isCancelled())return;t.send({responsePromise:o}),r=await o}catch(o){if(e.isCancelled())return;t.failure({error:o}),t.finish();return}t.response({response:r});let n=null;if(r.headers.has("X-Livewire-Stream")?n=await t.stream({response:r}):n=await r.text(),e.isCancelled())return;if(t.parsed({response:r,responseBody:n}),!r.ok){t.error({response:r,responseBody:n}),t.finish();return}if(r.redirected&&t.redirect(r.url),pl(n)){let o;[o,n]=hl(n),t.dump(o)}let i=null;try{i=JSON.parse(n)}catch(o){console.error(o),t.error({response:r,responseBody:n}),t.finish();return}t.success({response:r,responseBody:n,responseJson:i}),t.finish()}async function tm(e,t){let r=e.body.getReader(),n="";for(;;){let{done:i,value:o}=await r.read(),s=new TextDecoder().decode(o),[l,u]=rm(n+s);if(l.forEach(c=>{t(c)}),n=u,i)return n}}function rm(e){let t=/({"stream":true.*?"endStream":true})/g,r=e.match(t),n=[];if(r)for(let o=0;o<r.length;o++)n.push(JSON.parse(r[o]).body);let i=e.replace(t,"");return[n,i]}async function Vu(e,t,r){let n=new Ai(e),i={headers:{"X-Livewire-Navigate":"1"},signal:n.controller.signal};ne("navigate.request",{uri:e,options:i});let o;try{o=await fetch(e,i);let a=nm(e,o),s=await o.text(),l=o.status;t(s,a,l)}catch(a){throw r(a),a}}function nm(e,t){let r=Hu(e),n=Hu(t.url);return r.pathname+r.search===n.pathname+n.search&&(n.hash=r.hash),n}function Hu(e){return e!==null&&new URL(e,document.baseURI)}Bu(Pi,Ce);var Gu=le(ue());function Ju(e){let t=e.__errorsState??=Gu.default.reactive({clientErrors:null});return e.__lastErrorsSnapshot??=e.snapshot,{messages(){return e.__lastErrorsSnapshot!==e.snapshot&&(t.clientErrors=null,e.__lastErrorsSnapshot=e.snapshot),t.clientErrors??=e.snapshot.memo.errors},keys(){return Object.keys(this.messages())},has(...r){if(this.isEmpty())return!1;if(r.length===0||r.length===1&&r[0]==null)return this.any();r.length===1&&Array.isArray(r[0])&&(r=r[0]);for(let n of r)if(this.first(n)==="")return!1;return!0},hasAny(r){if(this.isEmpty())return!1;r.length===1&&Array.isArray(r[0])&&(r=r[0]);for(let n of r)if(this.has(n))return!0;return!1},missing(...r){return r.length===1&&Array.isArray(r[0])&&(r=r[0]),!this.hasAny(r)},first(r=null){let n=r===null?this.all():this.get(r),i=n.length>0?n[0]:"";return Array.isArray(i)?i[0]:i},get(r){return this.messages()[r]||[]},all(){return Object.values(this.messages()).flat()},isEmpty(){return!this.any()},isNotEmpty(){return this.any()},any(){return Object.keys(this.messages()).length>0},count(){return Object.values(this.messages()).reduce((r,n)=>r+n.length,0)},clear(r=null){if(r===null)t.clientErrors={};else{let n={...t.clientErrors??e.snapshot.memo.errors};delete n[r],t.clientErrors=n}}}}function Nr(e,t){let r=e.el.querySelector(`[wire\\:ref="${t}"]`);return r||console.error(`Ref "${t}" not found in component "${e.id}"`)}var mn=new Set;function Mt(e){return e.match(new RegExp("wire:"))}function st(e,t){let[r,...n]=t.replace(new RegExp("wire:"),"").split(".");return new Ba(r,n,t,e)}function we(e,t){mn.has(e)||(mn.add(e),J("directive.init",({el:r,component:n,directive:i,cleanup:o})=>{i.value===e&&t({el:r,directive:i,component:n,$wire:n.$wire,cleanup:o})}))}function Ii(e,t){mn.has(e)||(mn.add(e),J("directive.global.init",({el:r,directive:n,cleanup:i})=>{n.value===e&&t({el:r,directive:n,cleanup:i})}))}function Mr(e){return new Ua(e)}function Yu(e){return mn.has(e)}var Ua=class{constructor(t){this.el=t,this.directives=this.extractTypeModifiersAndValue()}all(){return this.directives}has(t){return this.directives.map(r=>r.value).includes(t)}missing(t){return!this.has(t)}get(t){return this.directives.find(r=>r.value===t)}extractTypeModifiersAndValue(){return Array.from(this.el.getAttributeNames().filter(t=>Mt(t)).map(t=>st(this.el,t)))}},Ba=class{constructor(t,r,n,i){this.rawName=this.raw=n,this.el=i,this.eventContext,this.wire,this.value=t,this.modifiers=r,this.expression=this.el.getAttribute(this.rawName)}get method(){return this.parseOutMethodsAndParams(this.expression)[0].method}get methods(){return this.parseOutMethodsAndParams(this.expression)}get params(){return this.parseOutMethodsAndParams(this.expression)[0].params}parseOutMethodsAndParams(t){let r=[],n=this.splitAndParseMethods(t);for(let{method:i,paramString:o}of n){let a=[];if(o.length>0){let s=function(){for(var l=arguments.length,u=new Array(l),c=0;c<l;c++)u[c]=arguments[c];return[].concat(u)};try{a=Alpine.evaluate(document,"argumentsToArray("+o+")",{scope:{argumentsToArray:s}})}catch(l){console.warn("Failed to parse parameters:",o,l),a=[]}}r.push({method:i,params:a})}return r}splitAndParseMethods(t){let r=[],n="",i=0,o=!1,a=null,s=t.trim();for(let l=0;l<s.length;l++){let u=s[l];o?(u===a&&s[l-1]!=="\\"&&(o=!1,a=null),n+=u):u==='"'||u==="'"?(o=!0,a=u,n+=u):u==="("?(i++,n+=u):u===")"?(i--,n+=u):u===","&&i===0?(r.push(this.parseMethodCall(n.trim())),n=""):n+=u}return n.trim().length>0&&r.push(this.parseMethodCall(n.trim())),r}parseMethodCall(t){let r=t.match(/^([^(]+)\(/);if(!r)return{method:t.trim(),paramString:""};let n=r[1].trim(),i=r[0].length-1,o=t.lastIndexOf(")");if(o===-1)throw new Error(`Missing closing parenthesis for method "${n}"`);let a=t.slice(i+1,o).trim();return{method:n,paramString:a}}};function lt(e,t,r,n=null){if(r=t.modifiers.includes("remove")?!r:r,t.modifiers.includes("class")){let i=t.expression.split(" ").filter(String);r?e.classList.add(...i):e.classList.remove(...i)}else if(t.modifiers.includes("attr"))r?e.setAttribute(t.expression,!0):e.removeAttribute(t.expression);else{let i=n??window.getComputedStyle(e,null).getPropertyValue("display"),o=["inline","list-item","block","table","flex","grid","inline-flex"].filter(a=>t.modifiers.includes(a))[0]||"inline-block";o=t.modifiers.includes("remove")&&!r?i:o,e.style.display=r?o:"none"}}var Xu=new Ct;J("commit",({component:e,succeed:t})=>{t(()=>{setTimeout(()=>{Xu.each(e,r=>r(!1))})})});we("dirty",({el:e,directive:t,component:r})=>{let n=im(e),i=!1,o=e.style.display,a=s=>{lt(e,t,s,o),i=s};Xu.add(r,a),Alpine.effect(()=>{let s=!1;s=Ri(r,n.length===0?void 0:n),i!==s&&a(s),i=s})});function Ri(e,t){let r=!1;if(t===void 0)r=JSON.stringify(e.canonical)!==JSON.stringify(e.reactive);else if(Array.isArray(t))for(let n=0;n<t.length&&!r;n++){let i=t[n];r=JSON.stringify(be(e.canonical,i))!==JSON.stringify(be(e.reactive,i))}else r=JSON.stringify(be(e.canonical,t))!==JSON.stringify(be(e.reactive,t));return r}function im(e){let t=Mr(e),r=[];return t.has("model")&&r.push(t.get("model").expression),t.has("target")&&(r=r.concat(t.get("target").expression.split(",").map(n=>n.trim()))),r}var rr=new WeakMap;J("effect",({component:e,effects:t})=>{let r=t.scriptModule;if(r){let n=e.name.replace(/\./g,"--").replace(/::/g,"---").replace(/:/g,"----"),i=`${rn()}/js/${n}.js?v=${r}`;rr.set(e,Alpine.reactive({loading:!0,afterLoaded:[]})),import(i).then(o=>{o.run.call(e.$wire,e.$wire,e.$wire.js),rr.get(e).loading=!1,rr.get(e).afterLoaded.forEach(a=>a()),rr.delete(e)})}});function Ha(e){return rr.has(e)&&rr.get(e).loading}function Zu(e,t){Ha(e)?rr.get(e).afterLoaded.push(()=>t()):t()}var Wa={},tc;function Z(e,t,r=null){Wa[e]=t}function om(e){tc=e}var Qu={on:"$on",el:"$el",id:"$id",js:"$js",get:"$get",set:"$set",refs:"$refs",call:"$call",hook:"$hook",watch:"$watch",dirty:"$dirty",effect:"$effect",commit:"$commit",errors:"$errors",island:"$island",upload:"$upload",entangle:"$entangle",dispatch:"$dispatch",intercept:"$intercept",interceptAction:"$interceptAction",interceptMessage:"$interceptMessage",interceptRequest:"$interceptRequest",dispatchTo:"$dispatchTo",dispatchSelf:"$dispatchSelf",dispatchEl:"$dispatchEl",dispatchRef:"$dispatchRef",removeUpload:"$removeUpload",cancelUpload:"$cancelUpload",uploadMultiple:"$uploadMultiple"};function rc(e,t){let r=!1;return new Proxy({},{get(n,i){if(i==="__instance")return e;if(i in Qu)return ec(e,Qu[i]);if(i in Wa)return ec(e,i);if(i in t)return t[i];if(i==="toJSON")return()=>e.toJSON();if(!["then"].includes(i))return am(e)(i)},set(n,i,o){return i in t&&(t[i]=o),!0}})}function ec(e,t){return Wa[t](e)}function am(e){return tc(e)}Ir.default.magic("wire",(e,{cleanup:t})=>{let r;return new Proxy({},{get(n,i){if(!r)try{r=Ae(e)}catch{return()=>{}}return["$entangle","entangle"].includes(i)?ka(r,t):r.$wire[i]},set(n,i,o){if(!r)try{r=Ae(e)}catch{return!0}return r.$wire[i]=o,!0}})});Z("__instance",e=>e);Z("$get",e=>(t,r=!0)=>be(r?e.reactive:e.ephemeral,t));Z("$el",e=>e.el);Z("$id",e=>e.id);Z("$js",e=>{let t=e.addJsAction.bind(e),r=e.getJsActions();return Object.keys(r).forEach(n=>{t[n]=r[n]}),new Proxy(t,{set(n,i,o){return e.addJsAction(i,o),!0},get(n,i){if(Ha(e)){let o=null,a=new Promise(s=>{o=s});return(...s)=>(Zu(e,()=>{o(e.getJsAction(i)(...s))}),a)}return n[i]}})});Z("$set",e=>async(t,r,n=!0)=>(qt(e.reactive,t,r),n?(e.queueUpdate(t,r),tr(e,"$set")):Promise.resolve()));Z("$refs",e=>{let t=r=>Nr(e,r);return new Proxy(t,{get(r,n){return n in r?r[n]:t(n)}})});Z("$dirty",e=>t=>{let r=Ir.default.reactive({dirty:!1});return ja(e,({onFinish:n})=>{n(()=>{queueMicrotask(()=>{r.dirty=Ri(e,t)})})}),Ir.default.effect(()=>{r.dirty=Ri(e,t)}),r.dirty});Z("$intercept",e=>(t,r)=>$a(e,t,r));Z("$interceptAction",e=>(t,r)=>$a(e,t,r));Z("$interceptMessage",e=>(t,r)=>ja(e,t,r));Z("$interceptRequest",e=>(t,r)=>zu(e,t,r));Z("$errors",e=>Ju(e));Z("$call",e=>async(t,...r)=>await e.$wire[t](...r));Z("$island",e=>(t,r={})=>(Tr({island:{name:t,mode:"morph",...r}}),e.$wire));Z("$entangle",e=>(t,r=!1)=>ka(e)(t,r));Z("$toggle",e=>(t,r=!0)=>e.$wire.set(t,!e.$wire.get(t),r));Z("$watch",e=>(t,r)=>{let n=()=>be(e.reactive,t),i=Ir.default.watch(n,r);return e.addCleanup(i),i});Z("$effect",e=>t=>{let r=Ir.default.effect(t);return e.addCleanup(r),r});Z("$refresh",e=>async()=>tr(e,"$refresh"));Z("$commit",e=>async()=>tr(e,"$commit"));Z("$on",e=>(...t)=>ic(e,...t));Z("$hook",e=>(t,r)=>{let n=J(t,({component:i,...o})=>{if(i===void 0)return r(o);if(i.id===e.id)return r({component:i,...o})});return e.addCleanup(n),n});Z("$dispatch",e=>(...t)=>Di(e,...t));Z("$dispatchSelf",e=>(...t)=>vt(e,...t));Z("$dispatchTo",()=>(...e)=>Rr(...e));Z("$dispatchEl",e=>(...t)=>Fi(e,...t));Z("$dispatchRef",e=>(...t)=>Li(e,...t));Z("$upload",e=>(...t)=>yl(e,...t));Z("$uploadMultiple",e=>(...t)=>bl(e,...t));Z("$removeUpload",e=>(...t)=>wl(e,...t));Z("$cancelUpload",e=>(...t)=>_l(e,...t));var qa=new WeakMap;Z("$parent",e=>{if(qa.has(e))return qa.get(e).$wire;let t=Ae(e.el.parentElement,!1);if(!!t)return qa.set(e,t),t.$wire});var Pr=new WeakMap;function nc(e,t,r){Pr.has(e)||Pr.set(e,{});let n=Pr.get(e);n[t]=r,Pr.set(e,n)}om(e=>t=>(...r)=>{if(r.length===1&&r[0]instanceof Event&&(r=[]),Pr.has(e)){let n=Pr.get(e);if(typeof n[t]=="function")return n[t](r)}return tr(e,t,r)});var $i=class{constructor(t){if(t.__livewire)throw"Component already initialized";if(t.__livewire=this,this.el=t,this.id=t.getAttribute("wire:id"),this.key=t.getAttribute("wire:key"),this.__livewireId=this.id,this.snapshotEncoded=t.getAttribute("wire:snapshot"),this.snapshot=JSON.parse(this.snapshotEncoded),!this.snapshot)throw"Snapshot missing on Livewire component with id: "+this.id;this.name=this.snapshot.memo.name,this.effects=JSON.parse(t.getAttribute("wire:effects")),this.originalEffects=kt(this.effects),this.canonical=Wt(kt(this.snapshot.data)),this.ephemeral=Wt(kt(this.snapshot.data)),this.reactive=Alpine.reactive(this.ephemeral),this.queuedUpdates={},this.jsActions={},this.$wire=rc(this,this.reactive),t.$wire=this.$wire,this.cleanups=[],this.processEffects(this.effects)}addActionContext(t){(t.el||t.directive)&&qe({el:t.el,directive:t.directive})}intercept(t,r=null){return this.$wire.$intercept(t,r)}mergeNewSnapshot(t,r,n={}){let i=JSON.parse(t),o=kt(this.canonical),a=this.applyUpdates(o,n),s=Wt(kt(i.data)),l=qo(a,s);this.snapshotEncoded=t,this.snapshot=i,this.effects=r,this.canonical=Wt(kt(i.data));let u=Wt(kt(i.data));return Wo(a,u,this.reactive),l}queueUpdate(t,r){this.queuedUpdates[t]=r}mergeQueuedUpdates(t){return Object.entries(this.queuedUpdates).forEach(([r,n])=>{Object.entries(t).forEach(([i,o])=>{i.startsWith(r)&&delete t[i]}),t[r]=n}),this.queuedUpdates=[],t}getUpdates(){let t=cl(this.canonical,this.ephemeral);return this.mergeQueuedUpdates(t)}applyUpdates(t,r){for(let n in r)qt(t,n,r[n]);return t}replayUpdate(t,r){let n={...this.effects,html:r};this.mergeNewSnapshot(JSON.stringify(t),n),this.processEffects({html:r})}processEffects(t,r){ne("effects",this,t),ne("effect",{component:this,effects:t,cleanup:n=>this.addCleanup(n),request:r})}get children(){let t=this.el,r=[];return t.querySelectorAll("[wire\\:id]").forEach(n=>{if(n.parentElement.closest("[wire\\:id]")!==t)return;let o=n.__livewire;!o||r.push(o)}),r}get islands(){return this.snapshot.memo.islands}get parent(){return Ae(this.el.parentElement)}get isIsolated(){return this.snapshot.memo.isolate}get isLazy(){return this.snapshot.memo.lazyLoaded!==void 0}get hasBeenLazyLoaded(){return this.snapshot.memo.lazyLoaded===!0}get isLazyIsolated(){return!!this.snapshot.memo.lazyIsolated}getDeepChildrenWithBindings(t){this.getDeepChildren(r=>{r.isLazy&&!r.hasBeenLazyLoaded||(r.hasReactiveProps()||r.hasWireModelableBindings())&&t(r)})}hasReactiveProps(){return!!this.snapshot.memo.props}hasWireModelableBindings(){return!!this.snapshot.memo.bindings}getDeepChildren(t){this.children.forEach(r=>{t(r),r.getDeepChildren(t)})}getEncodedSnapshotWithLatestChildrenMergedIn(){let{snapshotEncoded:t,children:r,snapshot:n}=this,i={};return r.forEach(o=>{i[o.key]=[o.el.tagName.toLowerCase(),o.id]}),t.replace(/"children":\{[^}]*\}/,`"children":${JSON.stringify(i)}`)}inscribeSnapshotAndEffectsOnElement(){let t=this.el;t.setAttribute("wire:snapshot",this.snapshotEncoded);let r=this.originalEffects.listeners?{listeners:this.originalEffects.listeners}:{};this.originalEffects.url&&(r.url=this.originalEffects.url),this.originalEffects.scripts&&(r.scripts=this.originalEffects.scripts),t.setAttribute("wire:effects",JSON.stringify(r)),t.setAttribute("wire:key",this.key)}addJsAction(t,r){this.jsActions[t]=r}hasJsAction(t){return this.jsActions[t]!==void 0}getJsAction(t){return this.jsActions[t].bind(this.$wire)}getJsActions(){let t={};for(let r of Object.keys(this.jsActions))t[r]=this.getJsAction(r);return t}toJSON(){return{id:this.id,name:this.name,key:this.key,data:Object.fromEntries(Object.entries(this.ephemeral))}}addCleanup(t){this.cleanups.push(t)}cleanup(){for(delete this.el.__livewire;this.cleanups.length>0;)this.cleanups.pop()()}};function oc(e,{isMatch:t,hasReachedBoundary:r}){r||(r=()=>!1);let n=e;for(;n;){let i=n.previousSibling,o=[];for(;i;){if(Dr(i)&&o.push("a"),nr(i))if(o.length>0)o.pop();else{let a=ut(i);if(t(a))return new ji(i)}i=i.previousSibling}if(n=n.parentElement,n&&r({el:n}))break}return null}function Ui(e,{isMatch:t,hasReachedBoundary:r}){r||(r=()=>!1);let n=null,i=e;return ac(i,(o,{skip:a,stop:s})=>{if(o.hasAttribute&&o!==i&&r({el:o}))return a();Array.from(o.childNodes).forEach(l=>{if(nr(l)){let u=ut(l);t(u)&&(n=l,s())}})}),n&&new ji(n)}function nr(e){return e.nodeType===8&&e.textContent.startsWith("[if FRAGMENT")}function Dr(e){return e.nodeType===8&&e.textContent.startsWith("[if ENDFRAGMENT")}function ac(e,t){let r=!1,n=!1;t(e,{skip:()=>r=!0,stop:()=>n=!0}),!(r||n)&&Array.from(e.children).forEach(i=>{ac(i,t)})}var ji=class{constructor(t){this.startMarkerNode=t,this.metadata=ut(t)}get endMarkerNode(){return sm(this.startMarkerNode,this.metadata)}append(t,r){let n=document.createElement(t);n.innerHTML=r,Array.from(n.childNodes).forEach(i=>{this.endMarkerNode.before(i)})}prepend(t,r){let n=document.createElement(t);n.innerHTML=r,Array.from(n.childNodes).reverse().forEach(i=>{this.startMarkerNode.after(i)})}};function sm(e,t){let r=e;for(;r;){if(Dr(r)){let n=ut(r);if(Object.keys(t).every(i=>t[i]===n[i]))return r}r=r.nextSibling}return null}function Bi(e){let t=/<!--\[if FRAGMENT\b.*?\]><!\[endif\]-->([\s\S]*)<!--\[if ENDFRAGMENT\b.*?\]><!\[endif\]-->/i,r=e.match(t);if(!r)throw new Error("Invalid fragment marker");let[n,i]=r;return i}function gn(e){let t=/\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/,r=e.match(t);if(!r)throw new Error("Invalid fragment marker");let[n,i,o]=r;return sc(o)}function ut(e){let t=/\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/,r=e.textContent.match(t);if(!r)throw new Error("Invalid fragment marker");let[n,i,o]=r;return sc(o)}function sc(e){let t={};return e.split("|").forEach(n=>{let[i,o]=n.split("=");t[i]=o}),t}var ct={};function lc(e){let t=new $i(e);if(ct[t.id])throw"Component already registered";return ne("component.init",{component:t,cleanup:n=>t.addCleanup(n)}),ct[t.id]=t,t}function uc(e){let t=ct[e];!t||(t.cleanup(),delete ct[e])}function cc(e){return!!ct[e]}function vn(e,t=!0){let r=ct[e];if(!r){if(t)throw"Component not found: "+e;return}return r}function Ae(e,t=!0){let r=ml(e,(i,{stop:o})=>{if(i.__livewire)return o(i.__livewire.id);let a=[],s=gl(i,(l,{stop:u})=>{if(Dr(l)){if(ut(l).type!=="slot")return;a.push("a");return}if(nr(l)){let c=ut(l);if(c.type!=="slot")return;if(a.length>0)a.pop();else return u(c.parent)}});if(s)return o(s)}),n=vn(r,t);if(!n){if(t)throw"Could not find Livewire component in DOM tree";return}return n}function za(e){return Object.values(ct).filter(t=>e==t.name)}function fc(e){return za(e).map(t=>t.$wire)}function dc(e){let t=ct[e];return t&&t.$wire}function pc(){return Object.values(ct)[0].$wire}function hc(){return Object.values(ct)}function Di(e,t,r){Fr(e.el,t,r)}function mc(e,t){Fr(window,e,t)}function vt(e,t,r){Fr(e.el,t,r,!1)}function Fi(e,t,r,n){e.el.querySelectorAll(t).forEach(o=>{Fr(o,r,n,!1)})}function Rr(e,t,r){za(e).forEach(i=>{Fr(i.el,t,r,!1)})}function Li(e,t,r,n){let i=Nr(e,t);Fr(i,r,n,!1)}function ic(e,t,r){e.el.addEventListener(t,n=>{r(n.detail)})}function gc(e,t){let r=n=>{!n.__livewire||t(n.detail)};return window.addEventListener(e,r),()=>{window.removeEventListener(e,r)}}function Fr(e,t,r,n=!0){typeof r=="string"&&(r=[r]);let i=new CustomEvent(t,{bubbles:n,detail:r});i.__livewire={name:t,params:r,receivedBy:[]},e.dispatchEvent(i)}function lm(e){e.directive("collapse",t),t.inline=(r,{modifiers:n})=>{!n.includes("min")||(r._x_doShow=()=>{},r._x_doHide=()=>{})};function t(r,{modifiers:n}){let i=vc(n,"duration",250)/1e3,o=vc(n,"min",0),a=!n.includes("min");r._x_isShown||(r.style.height=`${o}px`),!r._x_isShown&&a&&(r.hidden=!0),r._x_isShown||(r.style.overflow="hidden");let s=(u,c)=>{let f=e.setStyles(u,c);return c.height?()=>{}:f},l={transitionProperty:"height",transitionDuration:`${i}s`,transitionTimingFunction:"cubic-bezier(0.4, 0.0, 0.2, 1)"};r._x_transition={in(u=()=>{},c=()=>{}){a&&(r.hidden=!1),a&&(r.style.display=null);let f=r.getBoundingClientRect().height;r.style.height="auto";let d=r.getBoundingClientRect().height;f===d&&(f=o),e.transition(r,e.setStyles,{during:l,start:{height:f+"px"},end:{height:d+"px"}},()=>r._x_isShown=!0,()=>{Math.abs(r.getBoundingClientRect().height-d)<1&&(r.style.overflow=null)})},out(u=()=>{},c=()=>{}){let f=r.getBoundingClientRect().height;e.transition(r,s,{during:l,start:{height:f+"px"},end:{height:o+"px"}},()=>r.style.overflow="hidden",()=>{r._x_isShown=!1,r.style.height==`${o}px`&&a&&(r.style.display="none",r.hidden=!0)})}}}}function vc(e,t,r){if(e.indexOf(t)===-1)return r;let n=e[e.indexOf(t)+1];if(!n)return r;if(t==="duration"){let i=n.match(/([0-9]+)ms/);if(i)return i[1]}if(t==="min"){let i=n.match(/([0-9]+)px/);if(i)return i[1]}return n}var yc=lm;var Cc=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],Wi=Cc.join(","),kc=typeof Element>"u",or=kc?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,zi=!kc&&Element.prototype.getRootNode?function(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}:function(e){return e?.ownerDocument},Ki=function(t,r){var n;r===void 0&&(r=!0);var i=t==null||(n=t.getAttribute)===null||n===void 0?void 0:n.call(t,"inert"),o=i===""||i==="true",a=o||r&&t&&(typeof t.closest=="function"?t.closest("[inert]"):Ki(t.parentNode));return a},um=function(t){var r,n=t==null||(r=t.getAttribute)===null||r===void 0?void 0:r.call(t,"contenteditable");return n===""||n==="true"},Tc=function(t,r,n){if(Ki(t))return[];var i=Array.prototype.slice.apply(t.querySelectorAll(Wi));return r&&or.call(t,Wi)&&i.unshift(t),i=i.filter(n),i},Vi=function(t,r,n){for(var i=[],o=Array.from(t);o.length;){var a=o.shift();if(!Ki(a,!1))if(a.tagName==="SLOT"){var s=a.assignedElements(),l=s.length?s:a.children,u=Vi(l,!0,n);n.flatten?i.push.apply(i,u):i.push({scopeParent:a,candidates:u})}else{var c=or.call(a,Wi);c&&n.filter(a)&&(r||!t.includes(a))&&i.push(a);var f=a.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(a),d=!Ki(f,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(a));if(f&&d){var h=Vi(f===!0?a.children:f.children,!0,n);n.flatten?i.push.apply(i,h):i.push({scopeParent:a,candidates:h})}else o.unshift.apply(o,a.children)}}return i},Nc=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},ir=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||um(t))&&!Nc(t)?0:t.tabIndex},cm=function(t,r){var n=ir(t);return n<0&&r&&!Nc(t)?0:n},fm=function(t,r){return t.tabIndex===r.tabIndex?t.documentOrder-r.documentOrder:t.tabIndex-r.tabIndex},Mc=function(t){return t.tagName==="INPUT"},dm=function(t){return Mc(t)&&t.type==="hidden"},pm=function(t){var r=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(n){return n.tagName==="SUMMARY"});return r},hm=function(t,r){for(var n=0;n<t.length;n++)if(t[n].checked&&t[n].form===r)return t[n]},mm=function(t){if(!t.name)return!0;var r=t.form||zi(t),n=function(s){return r.querySelectorAll('input[type="radio"][name="'+s+'"]')},i;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")i=n(window.CSS.escape(t.name));else try{i=n(t.name)}catch(a){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",a.message),!1}var o=hm(i,t.form);return!o||o===t},gm=function(t){return Mc(t)&&t.type==="radio"},vm=function(t){return gm(t)&&!mm(t)},ym=function(t){var r,n=t&&zi(t),i=(r=n)===null||r===void 0?void 0:r.host,o=!1;if(n&&n!==t){var a,s,l;for(o=!!((a=i)!==null&&a!==void 0&&(s=a.ownerDocument)!==null&&s!==void 0&&s.contains(i)||t!=null&&(l=t.ownerDocument)!==null&&l!==void 0&&l.contains(t));!o&&i;){var u,c,f;n=zi(i),i=(u=n)===null||u===void 0?void 0:u.host,o=!!((c=i)!==null&&c!==void 0&&(f=c.ownerDocument)!==null&&f!==void 0&&f.contains(i))}}return o},bc=function(t){var r=t.getBoundingClientRect(),n=r.width,i=r.height;return n===0&&i===0},bm=function(t,r){var n=r.displayCheck,i=r.getShadowRoot;if(n==="full-native"&&"checkVisibility"in t){var o=t.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});return!o}if(getComputedStyle(t).visibility==="hidden")return!0;var a=or.call(t,"details>summary:first-of-type"),s=a?t.parentElement:t;if(or.call(s,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof i=="function"){for(var l=t;t;){var u=t.parentElement,c=zi(t);if(u&&!u.shadowRoot&&i(u)===!0)return bc(t);t.assignedSlot?t=t.assignedSlot:!u&&c!==t.ownerDocument?t=c.host:t=u}t=l}if(ym(t))return!t.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return bc(t);return!1},wm=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var r=t.parentElement;r;){if(r.tagName==="FIELDSET"&&r.disabled){for(var n=0;n<r.children.length;n++){var i=r.children.item(n);if(i.tagName==="LEGEND")return or.call(r,"fieldset[disabled] *")?!0:!i.contains(t)}return!0}r=r.parentElement}return!1},Gi=function(t,r){return!(r.disabled||dm(r)||bm(r,t)||pm(r)||wm(r))},Ka=function(t,r){return!(vm(r)||ir(r)<0||!Gi(t,r))},_m=function(t){var r=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(r)||r>=0)},Pc=function(t){var r=[],n=[];return t.forEach(function(i,o){var a=!!i.scopeParent,s=a?i.scopeParent:i,l=cm(s,a),u=a?Pc(i.candidates):s;l===0?a?r.push.apply(r,u):r.push(s):n.push({documentOrder:o,tabIndex:l,item:i,isScope:a,content:u})}),n.sort(fm).reduce(function(i,o){return o.isScope?i.push.apply(i,o.content):i.push(o.content),i},[]).concat(r)},Em=function(t,r){r=r||{};var n;return r.getShadowRoot?n=Vi([t],r.includeContainer,{filter:Ka.bind(null,r),flatten:!1,getShadowRoot:r.getShadowRoot,shadowRootFilter:_m}):n=Tc(t,r.includeContainer,Ka.bind(null,r)),Pc(n)},Ic=function(t,r){r=r||{};var n;return r.getShadowRoot?n=Vi([t],r.includeContainer,{filter:Gi.bind(null,r),flatten:!0,getShadowRoot:r.getShadowRoot}):n=Tc(t,r.includeContainer,Gi.bind(null,r)),n},Lr=function(t,r){if(r=r||{},!t)throw new Error("No node provided");return or.call(t,Wi)===!1?!1:Ka(r,t)},xm=Cc.concat("iframe:not([inert]):not([inert] *)").join(","),qi=function(t,r){if(r=r||{},!t)throw new Error("No node provided");return or.call(t,xm)===!1?!1:Gi(r,t)};function Va(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Sm(e){if(Array.isArray(e))return Va(e)}function wc(e,t,r,n,i,o,a){try{var s=e[o](a),l=s.value}catch(u){return void r(u)}s.done?t(l):Promise.resolve(l).then(n,i)}function _c(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var o=e.apply(t,r);function a(l){wc(o,n,i,a,s,"next",l)}function s(l){wc(o,n,i,a,s,"throw",l)}a(void 0)})}}function Ec(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Rc(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return a=l.done,l},e:function(l){s=!0,o=l},f:function(){try{a||r.return==null||r.return()}finally{if(s)throw o}}}}function Am(e,t,r){return(t=Nm(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Om(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Cm(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Sc(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?xc(Object(r),!0).forEach(function(n){Am(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):xc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function bn(){var e,t,r=typeof Symbol=="function"?Symbol:{},n=r.iterator||"@@iterator",i=r.toStringTag||"@@toStringTag";function o(h,g,m,v){var b=g&&g.prototype instanceof s?g:s,E=Object.create(b.prototype);return We(E,"_invoke",function(A,I,j){var R,F,Y,re=0,de=j||[],ie=!1,X={p:0,n:0,v:e,a:U,f:U.bind(e,4),d:function(w,_){return R=w,F=0,Y=e,X.n=_,a}};function U(w,_){for(F=w,Y=_,t=0;!ie&&re&&!O&&t<de.length;t++){var O,M=de[t],L=X.p,z=M[2];w>3?(O=z===_)&&(Y=M[(F=M[4])?5:(F=3,3)],M[4]=M[5]=e):M[0]<=L&&((O=w<2&&L<M[1])?(F=0,X.v=_,X.n=M[1]):L<z&&(O=w<3||M[0]>_||_>z)&&(M[4]=w,M[5]=_,X.n=z,F=0))}if(O||w>1)return a;throw ie=!0,_}return function(w,_,O){if(re>1)throw TypeError("Generator is already running");for(ie&&_===1&&U(_,O),F=_,Y=O;(t=F<2?e:Y)||!ie;){R||(F?F<3?(F>1&&(X.n=-1),U(F,Y)):X.n=Y:X.v=Y);try{if(re=2,R){if(F||(w="next"),t=R[w]){if(!(t=t.call(R,Y)))throw TypeError("iterator result is not an object");if(!t.done)return t;Y=t.value,F<2&&(F=0)}else F===1&&(t=R.return)&&t.call(R),F<2&&(Y=TypeError("The iterator does not provide a '"+w+"' method"),F=1);R=e}else if((t=(ie=X.n<0)?Y:A.call(I,X))!==a)break}catch(M){R=e,F=1,Y=M}finally{re=1}}return{value:t,done:ie}}}(h,m,v),!0),E}var a={};function s(){}function l(){}function u(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(We(t={},n,function(){return this}),t),f=u.prototype=s.prototype=Object.create(c);function d(h){return Object.setPrototypeOf?Object.setPrototypeOf(h,u):(h.__proto__=u,We(h,i,"GeneratorFunction")),h.prototype=Object.create(f),h}return l.prototype=u,We(f,"constructor",u),We(u,"constructor",l),l.displayName="GeneratorFunction",We(u,i,"GeneratorFunction"),We(f),We(f,i,"Generator"),We(f,n,function(){return this}),We(f,"toString",function(){return"[object Generator]"}),(bn=function(){return{w:o,m:d}})()}function We(e,t,r,n){var i=Object.defineProperty;try{i({},"",{})}catch{i=0}We=function(o,a,s,l){function u(c,f){We(o,c,function(d){return this._invoke(c,f,d)})}a?i?i(o,a,{value:s,enumerable:!l,configurable:!l,writable:!l}):o[a]=s:(u("next",0),u("throw",1),u("return",2))},We(e,t,r,n)}function km(e){return Sm(e)||Om(e)||Rc(e)||Cm()}function Tm(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Nm(e){var t=Tm(e,"string");return typeof t=="symbol"?t:t+""}function Rc(e,t){if(e){if(typeof e=="string")return Va(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Va(e,t):void 0}}var yt={getActiveTrap:function(t){return t?.length>0?t[t.length-1]:null},activateTrap:function(t,r){var n=yt.getActiveTrap(t);r!==n&&yt.pauseTrap(t);var i=t.indexOf(r);i===-1||t.splice(i,1),t.push(r)},deactivateTrap:function(t,r){var n=t.indexOf(r);n!==-1&&t.splice(n,1),yt.unpauseTrap(t)},pauseTrap:function(t){var r=yt.getActiveTrap(t);r?._setPausedState(!0)},unpauseTrap:function(t){var r=yt.getActiveTrap(t);r&&!r._isManuallyPaused()&&r._setPausedState(!1)}},Mm=function(t){return t.tagName&&t.tagName.toLowerCase()==="input"&&typeof t.select=="function"},Pm=function(t){return t?.key==="Escape"||t?.key==="Esc"||t?.keyCode===27},wn=function(t){return t?.key==="Tab"||t?.keyCode===9},Im=function(t){return wn(t)&&!t.shiftKey},Rm=function(t){return wn(t)&&t.shiftKey},Ac=function(t){return setTimeout(t,0)},yn=function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return typeof t=="function"?t.apply(void 0,n):t},Hi=function(t){return t.target.shadowRoot&&typeof t.composedPath=="function"?t.composedPath()[0]:t.target},Dm=[],Fm=function(t,r){var n=r?.document||document,i=r?.trapStack||Dm,o=Sc({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isolateSubtrees:!1,isKeyForward:Im,isKeyBackward:Rm},r),a={containers:[],containerGroups:[],tabbableGroups:[],adjacentElements:new Set,alreadySilent:new Set,nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,manuallyPaused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},s,l=function(w,_,O){return w&&w[_]!==void 0?w[_]:o[O||_]},u=function(w,_){var O=typeof _?.composedPath=="function"?_.composedPath():void 0;return a.containerGroups.findIndex(function(M){var L=M.container,z=M.tabbableNodes;return L.contains(w)||O?.includes(L)||z.find(function(q){return q===w})})},c=function(w){var _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},O=_.hasFallback,M=O===void 0?!1:O,L=_.params,z=L===void 0?[]:L,q=o[w];if(typeof q=="function"&&(q=q.apply(void 0,km(z))),q===!0&&(q=void 0),!q){if(q===void 0||q===!1)return q;throw new Error("`".concat(w,"` was specified but was not a node, or did not return a node"))}var K=q;if(typeof q=="string"){try{K=n.querySelector(q)}catch(G){throw new Error("`".concat(w,'` appears to be an invalid selector; error="').concat(G.message,'"'))}if(!K&&!M)throw new Error("`".concat(w,"` as selector refers to no known node"))}return K},f=function(){var w=c("initialFocus",{hasFallback:!0});if(w===!1)return!1;if(w===void 0||w&&!qi(w,o.tabbableOptions))if(u(n.activeElement)>=0)w=n.activeElement;else{var _=a.tabbableGroups[0],O=_&&_.firstTabbableNode;w=O||c("fallbackFocus")}else w===null&&(w=c("fallbackFocus"));if(!w)throw new Error("Your focus-trap needs to have at least one focusable element");return w},d=function(){if(a.containerGroups=a.containers.map(function(w){var _=Em(w,o.tabbableOptions),O=Ic(w,o.tabbableOptions),M=_.length>0?_[0]:void 0,L=_.length>0?_[_.length-1]:void 0,z=O.find(function(G){return Lr(G)}),q=O.slice().reverse().find(function(G){return Lr(G)}),K=!!_.find(function(G){return ir(G)>0});return{container:w,tabbableNodes:_,focusableNodes:O,posTabIndexesFound:K,firstTabbableNode:M,lastTabbableNode:L,firstDomTabbableNode:z,lastDomTabbableNode:q,nextTabbableNode:function(oe){var xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,me=_.indexOf(oe);return me<0?xe?O.slice(O.indexOf(oe)+1).find(function(Le){return Lr(Le)}):O.slice(0,O.indexOf(oe)).reverse().find(function(Le){return Lr(Le)}):_[me+(xe?1:-1)]}}}),a.tabbableGroups=a.containerGroups.filter(function(w){return w.tabbableNodes.length>0}),a.tabbableGroups.length<=0&&!c("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(a.containerGroups.find(function(w){return w.posTabIndexesFound})&&a.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},h=function(w){var _=w.activeElement;if(!!_)return _.shadowRoot&&_.shadowRoot.activeElement!==null?h(_.shadowRoot):_},g=function(w){if(w!==!1&&w!==h(document)){if(!w||!w.focus){g(f());return}w.focus({preventScroll:!!o.preventScroll}),a.mostRecentlyFocusedNode=w,Mm(w)&&w.select()}},m=function(w){var _=c("setReturnFocus",{params:[w]});return _||(_===!1?!1:w)},v=function(w){var _=w.target,O=w.event,M=w.isBackward,L=M===void 0?!1:M;_=_||Hi(O),d();var z=null;if(a.tabbableGroups.length>0){var q=u(_,O),K=q>=0?a.containerGroups[q]:void 0;if(q<0)L?z=a.tabbableGroups[a.tabbableGroups.length-1].lastTabbableNode:z=a.tabbableGroups[0].firstTabbableNode;else if(L){var G=a.tabbableGroups.findIndex(function(nt){var it=nt.firstTabbableNode;return _===it});if(G<0&&(K.container===_||qi(_,o.tabbableOptions)&&!Lr(_,o.tabbableOptions)&&!K.nextTabbableNode(_,!1))&&(G=q),G>=0){var oe=G===0?a.tabbableGroups.length-1:G-1,xe=a.tabbableGroups[oe];z=ir(_)>=0?xe.lastTabbableNode:xe.lastDomTabbableNode}else wn(O)||(z=K.nextTabbableNode(_,!1))}else{var me=a.tabbableGroups.findIndex(function(nt){var it=nt.lastTabbableNode;return _===it});if(me<0&&(K.container===_||qi(_,o.tabbableOptions)&&!Lr(_,o.tabbableOptions)&&!K.nextTabbableNode(_))&&(me=q),me>=0){var Le=me===a.tabbableGroups.length-1?0:me+1,Re=a.tabbableGroups[Le];z=ir(_)>=0?Re.firstTabbableNode:Re.firstDomTabbableNode}else wn(O)||(z=K.nextTabbableNode(_))}}else z=c("fallbackFocus");return z},b=function(w){var _=Hi(w);if(!(u(_,w)>=0)){if(yn(o.clickOutsideDeactivates,w)){s.deactivate({returnFocus:o.returnFocusOnDeactivate});return}yn(o.allowOutsideClick,w)||w.preventDefault()}},E=function(w){var _=Hi(w),O=u(_,w)>=0;if(O||_ instanceof Document)O&&(a.mostRecentlyFocusedNode=_);else{w.stopImmediatePropagation();var M,L=!0;if(a.mostRecentlyFocusedNode)if(ir(a.mostRecentlyFocusedNode)>0){var z=u(a.mostRecentlyFocusedNode),q=a.containerGroups[z].tabbableNodes;if(q.length>0){var K=q.findIndex(function(G){return G===a.mostRecentlyFocusedNode});K>=0&&(o.isKeyForward(a.recentNavEvent)?K+1<q.length&&(M=q[K+1],L=!1):K-1>=0&&(M=q[K-1],L=!1))}}else a.containerGroups.some(function(G){return G.tabbableNodes.some(function(oe){return ir(oe)>0})})||(L=!1);else L=!1;L&&(M=v({target:a.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(a.recentNavEvent)})),g(M||a.mostRecentlyFocusedNode||f())}a.recentNavEvent=void 0},A=function(w){var _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;a.recentNavEvent=w;var O=v({event:w,isBackward:_});O&&(wn(w)&&w.preventDefault(),g(O))},I=function(w){(o.isKeyForward(w)||o.isKeyBackward(w))&&A(w,o.isKeyBackward(w))},j=function(w){Pm(w)&&yn(o.escapeDeactivates,w)!==!1&&(w.preventDefault(),s.deactivate())},R=function(w){var _=Hi(w);u(_,w)>=0||yn(o.clickOutsideDeactivates,w)||yn(o.allowOutsideClick,w)||(w.preventDefault(),w.stopImmediatePropagation())},F=function(){if(!a.active)return Promise.resolve();yt.activateTrap(i,s);var w;return o.delayInitialFocus?w=new Promise(function(_){a.delayInitialFocusTimer=Ac(function(){g(f()),_()})}):(w=Promise.resolve(),g(f())),n.addEventListener("focusin",E,!0),n.addEventListener("mousedown",b,{capture:!0,passive:!1}),n.addEventListener("touchstart",b,{capture:!0,passive:!1}),n.addEventListener("click",R,{capture:!0,passive:!1}),n.addEventListener("keydown",I,{capture:!0,passive:!1}),n.addEventListener("keydown",j),w},Y=function(w){a.active&&!a.paused&&s._setSubtreeIsolation(!1),a.adjacentElements.clear(),a.alreadySilent.clear();var _=new Set,O=new Set,M=Ec(w),L;try{for(M.s();!(L=M.n()).done;){var z=L.value;_.add(z);for(var q=typeof ShadowRoot<"u"&&z.getRootNode()instanceof ShadowRoot,K=z;K;){_.add(K);var G=K.parentElement,oe=[];G?oe=G.children:!G&&q&&(oe=K.getRootNode().children,G=K.getRootNode().host,q=typeof ShadowRoot<"u"&&G.getRootNode()instanceof ShadowRoot);var xe=Ec(oe),me;try{for(xe.s();!(me=xe.n()).done;){var Le=me.value;O.add(Le)}}catch(Re){xe.e(Re)}finally{xe.f()}K=G}}}catch(Re){M.e(Re)}finally{M.f()}_.forEach(function(Re){O.delete(Re)}),a.adjacentElements=O},re=function(){if(!!a.active)return n.removeEventListener("focusin",E,!0),n.removeEventListener("mousedown",b,!0),n.removeEventListener("touchstart",b,!0),n.removeEventListener("click",R,!0),n.removeEventListener("keydown",I,!0),n.removeEventListener("keydown",j),s},de=function(w){var _=w.some(function(O){var M=Array.from(O.removedNodes);return M.some(function(L){return L===a.mostRecentlyFocusedNode})});_&&g(f())},ie=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(de):void 0,X=function(){!ie||(ie.disconnect(),a.active&&!a.paused&&a.containers.map(function(w){ie.observe(w,{subtree:!0,childList:!0})}))};return s={get active(){return a.active},get paused(){return a.paused},activate:function(w){if(a.active)return this;var _=l(w,"onActivate"),O=l(w,"onPostActivate"),M=l(w,"checkCanFocusTrap"),L=yt.getActiveTrap(i),z=!1;if(L&&!L.paused){var q;(q=L._setSubtreeIsolation)===null||q===void 0||q.call(L,!1),z=!0}try{M||d(),a.active=!0,a.paused=!1,a.nodeFocusedBeforeActivation=h(n),_?.();var K=function(){var oe=_c(bn().m(function xe(){return bn().w(function(me){for(;;)switch(me.n){case 0:return M&&d(),me.n=1,F();case 1:s._setSubtreeIsolation(!0),X(),O?.();case 2:return me.a(2)}},xe)}));return function(){return oe.apply(this,arguments)}}();if(M)return M(a.containers.concat()).then(K,K),this;K()}catch(oe){if(L===yt.getActiveTrap(i)&&z){var G;(G=L._setSubtreeIsolation)===null||G===void 0||G.call(L,!0)}throw oe}return this},deactivate:function(w){if(!a.active)return this;var _=Sc({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},w);clearTimeout(a.delayInitialFocusTimer),a.delayInitialFocusTimer=void 0,a.paused||s._setSubtreeIsolation(!1),a.alreadySilent.clear(),re(),a.active=!1,a.paused=!1,X(),yt.deactivateTrap(i,s);var O=l(_,"onDeactivate"),M=l(_,"onPostDeactivate"),L=l(_,"checkCanReturnFocus"),z=l(_,"returnFocus","returnFocusOnDeactivate");O?.();var q=function(){Ac(function(){z&&g(m(a.nodeFocusedBeforeActivation)),M?.()})};return z&&L?(L(m(a.nodeFocusedBeforeActivation)).then(q,q),this):(q(),this)},pause:function(w){return a.active?(a.manuallyPaused=!0,this._setPausedState(!0,w)):this},unpause:function(w){return a.active?(a.manuallyPaused=!1,i[i.length-1]!==this?this:this._setPausedState(!1,w)):this},updateContainerElements:function(w){var _=[].concat(w).filter(Boolean);return a.containers=_.map(function(O){return typeof O=="string"?n.querySelector(O):O}),o.isolateSubtrees&&Y(a.containers),a.active&&(d(),a.paused||s._setSubtreeIsolation(!0)),X(),this}},Object.defineProperties(s,{_isManuallyPaused:{value:function(){return a.manuallyPaused}},_setPausedState:{value:function(w,_){if(a.paused===w)return this;if(a.paused=w,w){var O=l(_,"onPause"),M=l(_,"onPostPause");O?.(),re(),s._setSubtreeIsolation(!1),X(),M?.()}else{var L=l(_,"onUnpause"),z=l(_,"onPostUnpause");L?.();var q=function(){var K=_c(bn().m(function G(){return bn().w(function(oe){for(;;)switch(oe.n){case 0:return d(),oe.n=1,F();case 1:s._setSubtreeIsolation(!0),X(),z?.();case 2:return oe.a(2)}},G)}));return function(){return K.apply(this,arguments)}}();q()}return this}},_setSubtreeIsolation:{value:function(w){o.isolateSubtrees&&a.adjacentElements.forEach(function(_){var O;if(w)switch(o.isolateSubtrees){case"aria-hidden":(_.ariaHidden==="true"||((O=_.getAttribute("aria-hidden"))===null||O===void 0?void 0:O.toLowerCase())==="true")&&a.alreadySilent.add(_),_.setAttribute("aria-hidden","true");break;default:(_.inert||_.hasAttribute("inert"))&&a.alreadySilent.add(_),_.setAttribute("inert",!0);break}else if(!a.alreadySilent.has(_))switch(o.isolateSubtrees){case"aria-hidden":_.removeAttribute("aria-hidden");break;default:_.removeAttribute("inert");break}})}}}),s.updateContainerElements(t),s};function Lm(e){let t,r;window.addEventListener("focusin",()=>{t=r,r=document.activeElement}),e.magic("focus",n=>{let i=n;return{__noscroll:!1,__wrapAround:!1,within(o){return i=o,this},withoutScrolling(){return this.__noscroll=!0,this},noscroll(){return this.__noscroll=!0,this},withWrapAround(){return this.__wrapAround=!0,this},wrap(){return this.withWrapAround()},focusable(o){return qi(o)},previouslyFocused(){return t},lastFocused(){return t},focused(){return r},focusables(){return Array.isArray(i)?i:Ic(i,{displayCheck:"none"})},all(){return this.focusables()},isFirst(o){let a=this.all();return a[0]&&a[0].isSameNode(o)},isLast(o){let a=this.all();return a.length&&a.slice(-1)[0].isSameNode(o)},getFirst(){return this.all()[0]},getLast(){return this.all().slice(-1)[0]},getNext(){let o=this.all(),a=document.activeElement;if(o.indexOf(a)!==-1)return this.__wrapAround&&o.indexOf(a)===o.length-1?o[0]:o[o.indexOf(a)+1]},getPrevious(){let o=this.all(),a=document.activeElement;if(o.indexOf(a)!==-1)return this.__wrapAround&&o.indexOf(a)===0?o.slice(-1)[0]:o[o.indexOf(a)-1]},first(){this.focus(this.getFirst())},last(){this.focus(this.getLast())},next(){this.focus(this.getNext())},previous(){this.focus(this.getPrevious())},prev(){return this.previous()},focus(o){!o||setTimeout(()=>{o.hasAttribute("tabindex")||o.setAttribute("tabindex","0"),o.focus({preventScroll:this.__noscroll})})}}}),e.directive("trap",e.skipDuringClone((n,{expression:i,modifiers:o},{effect:a,evaluateLater:s,cleanup:l})=>{let u=s(i),c=!1,f={escapeDeactivates:!1,allowOutsideClick:!0,fallbackFocus:()=>n},d=()=>{};if(o.includes("noautofocus"))f.initialFocus=!1;else{let v=n.querySelector("[autofocus]");v&&(f.initialFocus=v)}o.includes("inert")&&(f.onPostActivate=()=>{e.nextTick(()=>{d=Oc(n)})});let h=Fm(n,f),g=()=>{},m=()=>{d(),d=()=>{},g(),g=()=>{},h.deactivate({returnFocus:!o.includes("noreturn")})};a(()=>u(v=>{c!==v&&(v&&!c&&(o.includes("noscroll")&&(g=$m()),setTimeout(()=>{h.activate()},15)),!v&&c&&m(),c=!!v)})),l(m)},(n,{expression:i,modifiers:o},{evaluate:a})=>{o.includes("inert")&&a(i)&&Oc(n)}))}function Oc(e){let t=[];return Dc(e,r=>{let n=r.hasAttribute("aria-hidden");r.setAttribute("aria-hidden","true"),t.push(()=>n||r.removeAttribute("aria-hidden"))}),()=>{for(;t.length;)t.pop()()}}function Dc(e,t){e.isSameNode(document.body)||!e.parentNode||Array.from(e.parentNode.children).forEach(r=>{r.isSameNode(e)?Dc(e.parentNode,t):t(r)})}function $m(){let e=document.documentElement.style.overflow,t=document.documentElement.style.paddingRight,r=window.innerWidth-document.documentElement.clientWidth,n=window.getComputedStyle(document.documentElement).scrollbarGutter;return document.documentElement.style.overflow="hidden",n&&n!=="auto"?()=>{document.documentElement.style.overflow=e}:(document.documentElement.style.paddingRight=`${r}px`,()=>{document.documentElement.style.overflow=e,document.documentElement.style.paddingRight=t})}var Fc=Lm;function jm(e){let t=()=>{let r,n;try{n=localStorage}catch(i){console.error(i),console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable.");let o=new Map;n={getItem:o.get.bind(o),setItem:o.set.bind(o)}}return e.interceptor((i,o,a,s,l)=>{let u=r||`_x_${s}`,c=Lc(u,n)?$c(u,n):i;return a(c),e.effect(()=>{let f=o();jc(u,f,n),a(f)}),c},i=>{i.as=o=>(r=o,i),i.using=o=>(n=o,i)})};Object.defineProperty(e,"$persist",{get:()=>t()}),e.magic("persist",t),e.persist=(r,{get:n,set:i},o=localStorage)=>{let a=Lc(r,o)?$c(r,o):n();i(a),e.effect(()=>{let s=n();jc(r,s,o),i(s)})}}function Lc(e,t){return t.getItem(e)!==null}function $c(e,t){let r=t.getItem(e);if(r!==void 0)return JSON.parse(r)}function jc(e,t,r){r.setItem(e,JSON.stringify(t))}var Uc=jm;function Um(e){e.directive("intersect",e.skipDuringClone((t,{value:r,expression:n,modifiers:i},{evaluateLater:o,cleanup:a})=>{let s=o(n),l={rootMargin:qm(i),threshold:Bm(i)},u=new IntersectionObserver(c=>{c.forEach(f=>{f.isIntersecting!==(r==="leave")&&(s(),i.includes("once")&&u.disconnect())})},l);u.observe(t),a(()=>{u.disconnect()})}))}function Bm(e){if(e.includes("full"))return .99;if(e.includes("half"))return .5;if(!e.includes("threshold"))return 0;let t=e[e.indexOf("threshold")+1];return t==="100"?1:t==="0"?0:Number(`.${t}`)}function Hm(e){let t=e.match(/^(-?[0-9]+)(px|%)?$/);return t?t[1]+(t[2]||"px"):void 0}function qm(e){let t="margin",r="0px 0px 0px 0px",n=e.indexOf(t);if(n===-1)return r;let i=[];for(let o=1;o<5;o++)i.push(Hm(e[n+o]||""));return i=i.filter(o=>o!==void 0),i.length?i.join(" ").trim():r}var Bc=Um;function Hc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function dt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Hc(Object(r),!0).forEach(function(n){Wm(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Hc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Qi(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Qi=function(t){return typeof t}:Qi=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qi(e)}function Wm(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function wt(){return wt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},wt.apply(this,arguments)}function zm(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,o;for(o=0;o<n.length;o++)i=n[o],!(t.indexOf(i)>=0)&&(r[i]=e[i]);return r}function Km(e,t){if(e==null)return{};var r=zm(e,t),n,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],!(t.indexOf(n)>=0)&&(!Object.prototype.propertyIsEnumerable.call(e,n)||(r[n]=e[n]))}return r}var Vm="1.15.2";function bt(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var _t=bt(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Tn=bt(/Edge/i),qc=bt(/firefox/i),Sn=bt(/safari/i)&&!bt(/chrome/i)&&!bt(/android/i),Xc=bt(/iP(ad|od|hone)/i),Zc=bt(/chrome/i)&&bt(/android/i),Qc={capture:!1,passive:!1};function te(e,t,r){e.addEventListener(t,r,!_t&&Qc)}function Q(e,t,r){e.removeEventListener(t,r,!_t&&Qc)}function io(e,t){if(!!t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function Gm(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function rt(e,t,r,n){if(e){r=r||document;do{if(t!=null&&(t[0]===">"?e.parentNode===r&&io(e,t):io(e,t))||n&&e===r)return e;if(e===r)break}while(e=Gm(e))}return null}var Wc=/\s+/g;function ze(e,t,r){if(e&&t)if(e.classList)e.classList[r?"add":"remove"](t);else{var n=(" "+e.className+" ").replace(Wc," ").replace(" "+t+" "," ");e.className=(n+(r?" "+t:"")).replace(Wc," ")}}function B(e,t,r){var n=e&&e.style;if(n){if(r===void 0)return document.defaultView&&document.defaultView.getComputedStyle?r=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(r=e.currentStyle),t===void 0?r:r[t];!(t in n)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),n[t]=r+(typeof r=="string"?"":"px")}}function Hr(e,t){var r="";if(typeof e=="string")r=e;else do{var n=B(e,"transform");n&&n!=="none"&&(r=n+" "+r)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(r)}function ef(e,t,r){if(e){var n=e.getElementsByTagName(t),i=0,o=n.length;if(r)for(;i<o;i++)r(n[i],i);return n}return[]}function ft(){var e=document.scrollingElement;return e||document.documentElement}function Ee(e,t,r,n,i){if(!(!e.getBoundingClientRect&&e!==window)){var o,a,s,l,u,c,f;if(e!==window&&e.parentNode&&e!==ft()?(o=e.getBoundingClientRect(),a=o.top,s=o.left,l=o.bottom,u=o.right,c=o.height,f=o.width):(a=0,s=0,l=window.innerHeight,u=window.innerWidth,c=window.innerHeight,f=window.innerWidth),(t||r)&&e!==window&&(i=i||e.parentNode,!_t))do if(i&&i.getBoundingClientRect&&(B(i,"transform")!=="none"||r&&B(i,"position")!=="static")){var d=i.getBoundingClientRect();a-=d.top+parseInt(B(i,"border-top-width")),s-=d.left+parseInt(B(i,"border-left-width")),l=a+o.height,u=s+o.width;break}while(i=i.parentNode);if(n&&e!==window){var h=Hr(i||e),g=h&&h.a,m=h&&h.d;h&&(a/=m,s/=g,f/=g,c/=m,l=a+c,u=s+f)}return{top:a,left:s,bottom:l,right:u,width:f,height:c}}}function zc(e,t,r){for(var n=Rt(e,!0),i=Ee(e)[t];n;){var o=Ee(n)[r],a=void 0;if(r==="top"||r==="left"?a=i>=o:a=i<=o,!a)return n;if(n===ft())break;n=Rt(n,!1)}return!1}function qr(e,t,r,n){for(var i=0,o=0,a=e.children;o<a.length;){if(a[o].style.display!=="none"&&a[o]!==H.ghost&&(n||a[o]!==H.dragged)&&rt(a[o],r.draggable,e,!1)){if(i===t)return a[o];i++}o++}return null}function ls(e,t){for(var r=e.lastElementChild;r&&(r===H.ghost||B(r,"display")==="none"||t&&!io(r,t));)r=r.previousElementSibling;return r||null}function Je(e,t){var r=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)e.nodeName.toUpperCase()!=="TEMPLATE"&&e!==H.clone&&(!t||io(e,t))&&r++;return r}function Kc(e){var t=0,r=0,n=ft();if(e)do{var i=Hr(e),o=i.a,a=i.d;t+=e.scrollLeft*o,r+=e.scrollTop*a}while(e!==n&&(e=e.parentNode));return[t,r]}function Jm(e,t){for(var r in e)if(!!e.hasOwnProperty(r)){for(var n in t)if(t.hasOwnProperty(n)&&t[n]===e[r][n])return Number(r)}return-1}function Rt(e,t){if(!e||!e.getBoundingClientRect)return ft();var r=e,n=!1;do if(r.clientWidth<r.scrollWidth||r.clientHeight<r.scrollHeight){var i=B(r);if(r.clientWidth<r.scrollWidth&&(i.overflowX=="auto"||i.overflowX=="scroll")||r.clientHeight<r.scrollHeight&&(i.overflowY=="auto"||i.overflowY=="scroll")){if(!r.getBoundingClientRect||r===document.body)return ft();if(n||t)return r;n=!0}}while(r=r.parentNode);return ft()}function Ym(e,t){if(e&&t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function Ga(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}var An;function tf(e,t){return function(){if(!An){var r=arguments,n=this;r.length===1?e.call(n,r[0]):e.apply(n,r),An=setTimeout(function(){An=void 0},t)}}}function Xm(){clearTimeout(An),An=void 0}function rf(e,t,r){e.scrollLeft+=t,e.scrollTop+=r}function nf(e){var t=window.Polymer,r=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):r?r(e).clone(!0)[0]:e.cloneNode(!0)}function of(e,t,r){var n={};return Array.from(e.children).forEach(function(i){var o,a,s,l;if(!(!rt(i,t.draggable,e,!1)||i.animated||i===r)){var u=Ee(i);n.left=Math.min((o=n.left)!==null&&o!==void 0?o:1/0,u.left),n.top=Math.min((a=n.top)!==null&&a!==void 0?a:1/0,u.top),n.right=Math.max((s=n.right)!==null&&s!==void 0?s:-1/0,u.right),n.bottom=Math.max((l=n.bottom)!==null&&l!==void 0?l:-1/0,u.bottom)}}),n.width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n}var Ve="Sortable"+new Date().getTime();function Zm(){var e=[],t;return{captureAnimationState:function(){if(e=[],!!this.options.animation){var n=[].slice.call(this.el.children);n.forEach(function(i){if(!(B(i,"display")==="none"||i===H.ghost)){e.push({target:i,rect:Ee(i)});var o=dt({},e[e.length-1].rect);if(i.thisAnimationDuration){var a=Hr(i,!0);a&&(o.top-=a.f,o.left-=a.e)}i.fromRect=o}})}},addAnimationState:function(n){e.push(n)},removeAnimationState:function(n){e.splice(Jm(e,{target:n}),1)},animateAll:function(n){var i=this;if(!this.options.animation){clearTimeout(t),typeof n=="function"&&n();return}var o=!1,a=0;e.forEach(function(s){var l=0,u=s.target,c=u.fromRect,f=Ee(u),d=u.prevFromRect,h=u.prevToRect,g=s.rect,m=Hr(u,!0);m&&(f.top-=m.f,f.left-=m.e),u.toRect=f,u.thisAnimationDuration&&Ga(d,f)&&!Ga(c,f)&&(g.top-f.top)/(g.left-f.left)===(c.top-f.top)/(c.left-f.left)&&(l=eg(g,d,h,i.options)),Ga(f,c)||(u.prevFromRect=c,u.prevToRect=f,l||(l=i.options.animation),i.animate(u,g,f,l)),l&&(o=!0,a=Math.max(a,l),clearTimeout(u.animationResetTimer),u.animationResetTimer=setTimeout(function(){u.animationTime=0,u.prevFromRect=null,u.fromRect=null,u.prevToRect=null,u.thisAnimationDuration=null},l),u.thisAnimationDuration=l)}),clearTimeout(t),o?t=setTimeout(function(){typeof n=="function"&&n()},a):typeof n=="function"&&n(),e=[]},animate:function(n,i,o,a){if(a){B(n,"transition",""),B(n,"transform","");var s=Hr(this.el),l=s&&s.a,u=s&&s.d,c=(i.left-o.left)/(l||1),f=(i.top-o.top)/(u||1);n.animatingX=!!c,n.animatingY=!!f,B(n,"transform","translate3d("+c+"px,"+f+"px,0)"),this.forRepaintDummy=Qm(n),B(n,"transition","transform "+a+"ms"+(this.options.easing?" "+this.options.easing:"")),B(n,"transform","translate3d(0,0,0)"),typeof n.animated=="number"&&clearTimeout(n.animated),n.animated=setTimeout(function(){B(n,"transition",""),B(n,"transform",""),n.animated=!1,n.animatingX=!1,n.animatingY=!1},a)}}}}function Qm(e){return e.offsetWidth}function eg(e,t,r,n){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-r.top,2)+Math.pow(t.left-r.left,2))*n.animation}var $r=[],Ja={initializeByDefault:!0},Nn={mount:function(t){for(var r in Ja)Ja.hasOwnProperty(r)&&!(r in t)&&(t[r]=Ja[r]);$r.forEach(function(n){if(n.pluginName===t.pluginName)throw"Sortable: Cannot mount plugin ".concat(t.pluginName," more than once")}),$r.push(t)},pluginEvent:function(t,r,n){var i=this;this.eventCanceled=!1,n.cancel=function(){i.eventCanceled=!0};var o=t+"Global";$r.forEach(function(a){!r[a.pluginName]||(r[a.pluginName][o]&&r[a.pluginName][o](dt({sortable:r},n)),r.options[a.pluginName]&&r[a.pluginName][t]&&r[a.pluginName][t](dt({sortable:r},n)))})},initializePlugins:function(t,r,n,i){$r.forEach(function(s){var l=s.pluginName;if(!(!t.options[l]&&!s.initializeByDefault)){var u=new s(t,r,t.options);u.sortable=t,u.options=t.options,t[l]=u,wt(n,u.defaults)}});for(var o in t.options)if(!!t.options.hasOwnProperty(o)){var a=this.modifyOption(t,o,t.options[o]);typeof a<"u"&&(t.options[o]=a)}},getEventProperties:function(t,r){var n={};return $r.forEach(function(i){typeof i.eventProperties=="function"&&wt(n,i.eventProperties.call(r[i.pluginName],t))}),n},modifyOption:function(t,r,n){var i;return $r.forEach(function(o){!t[o.pluginName]||o.optionListeners&&typeof o.optionListeners[r]=="function"&&(i=o.optionListeners[r].call(t[o.pluginName],n))}),i}};function tg(e){var t=e.sortable,r=e.rootEl,n=e.name,i=e.targetEl,o=e.cloneEl,a=e.toEl,s=e.fromEl,l=e.oldIndex,u=e.newIndex,c=e.oldDraggableIndex,f=e.newDraggableIndex,d=e.originalEvent,h=e.putSortable,g=e.extraEventProperties;if(t=t||r&&r[Ve],!!t){var m,v=t.options,b="on"+n.charAt(0).toUpperCase()+n.substr(1);window.CustomEvent&&!_t&&!Tn?m=new CustomEvent(n,{bubbles:!0,cancelable:!0}):(m=document.createEvent("Event"),m.initEvent(n,!0,!0)),m.to=a||r,m.from=s||r,m.item=i||r,m.clone=o,m.oldIndex=l,m.newIndex=u,m.oldDraggableIndex=c,m.newDraggableIndex=f,m.originalEvent=d,m.pullMode=h?h.lastPutMode:void 0;var E=dt(dt({},g),Nn.getEventProperties(n,t));for(var A in E)m[A]=E[A];r&&r.dispatchEvent(m),v[b]&&v[b].call(t,m)}}var rg=["evt"],je=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=n.evt,o=Km(n,rg);Nn.pluginEvent.bind(H)(t,r,dt({dragEl:C,parentEl:pe,ghostEl:W,rootEl:ce,nextEl:lr,lastDownEl:eo,cloneEl:fe,cloneHidden:It,dragStarted:_n,putSortable:Me,activeSortable:H.active,originalEvent:i,oldIndex:Br,oldDraggableIndex:On,newIndex:Ke,newDraggableIndex:Pt,hideGhostForTarget:uf,unhideGhostForTarget:cf,cloneNowHidden:function(){It=!0},cloneNowShown:function(){It=!1},dispatchSortableEvent:function(s){Fe({sortable:r,name:s,originalEvent:i})}},o))};function Fe(e){tg(dt({putSortable:Me,cloneEl:fe,targetEl:C,rootEl:ce,oldIndex:Br,oldDraggableIndex:On,newIndex:Ke,newDraggableIndex:Pt},e))}var C,pe,W,ce,lr,eo,fe,It,Br,Ke,On,Pt,Ji,Me,Ur=!1,oo=!1,ao=[],ar,tt,Ya,Xa,Vc,Gc,_n,jr,Cn,kn=!1,Yi=!1,to,Pe,Za=[],ns=!1,so=[],uo=typeof document<"u",Xi=Xc,Jc=Tn||_t?"cssFloat":"float",ng=uo&&!Zc&&!Xc&&"draggable"in document.createElement("div"),af=function(){if(!!uo){if(_t)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),sf=function(t,r){var n=B(t),i=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=qr(t,0,r),a=qr(t,1,r),s=o&&B(o),l=a&&B(a),u=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+Ee(o).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+Ee(a).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&s.float&&s.float!=="none"){var f=s.float==="left"?"left":"right";return a&&(l.clear==="both"||l.clear===f)?"vertical":"horizontal"}return o&&(s.display==="block"||s.display==="flex"||s.display==="table"||s.display==="grid"||u>=i&&n[Jc]==="none"||a&&n[Jc]==="none"&&u+c>i)?"vertical":"horizontal"},ig=function(t,r,n){var i=n?t.left:t.top,o=n?t.right:t.bottom,a=n?t.width:t.height,s=n?r.left:r.top,l=n?r.right:r.bottom,u=n?r.width:r.height;return i===s||o===l||i+a/2===s+u/2},og=function(t,r){var n;return ao.some(function(i){var o=i[Ve].options.emptyInsertThreshold;if(!(!o||ls(i))){var a=Ee(i),s=t>=a.left-o&&t<=a.right+o,l=r>=a.top-o&&r<=a.bottom+o;if(s&&l)return n=i}}),n},lf=function(t){function r(o,a){return function(s,l,u,c){var f=s.options.group.name&&l.options.group.name&&s.options.group.name===l.options.group.name;if(o==null&&(a||f))return!0;if(o==null||o===!1)return!1;if(a&&o==="clone")return o;if(typeof o=="function")return r(o(s,l,u,c),a)(s,l,u,c);var d=(a?s:l).options.group.name;return o===!0||typeof o=="string"&&o===d||o.join&&o.indexOf(d)>-1}}var n={},i=t.group;(!i||Qi(i)!="object")&&(i={name:i}),n.name=i.name,n.checkPull=r(i.pull,!0),n.checkPut=r(i.put),n.revertClone=i.revertClone,t.group=n},uf=function(){!af&&W&&B(W,"display","none")},cf=function(){!af&&W&&B(W,"display","")};uo&&!Zc&&document.addEventListener("click",function(e){if(oo)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),oo=!1,!1},!0);var sr=function(t){if(C){t=t.touches?t.touches[0]:t;var r=og(t.clientX,t.clientY);if(r){var n={};for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);n.target=n.rootEl=r,n.preventDefault=void 0,n.stopPropagation=void 0,r[Ve]._onDragOver(n)}}},ag=function(t){C&&C.parentNode[Ve]._isOutsideThisEl(t.target)};function H(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=wt({},t),e[Ve]=this;var r={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return sf(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(a,s){a.setData("Text",s.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:H.supportPointer!==!1&&"PointerEvent"in window&&!Sn,emptyInsertThreshold:5};Nn.initializePlugins(this,e,r);for(var n in r)!(n in t)&&(t[n]=r[n]);lf(t);for(var i in this)i.charAt(0)==="_"&&typeof this[i]=="function"&&(this[i]=this[i].bind(this));this.nativeDraggable=t.forceFallback?!1:ng,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?te(e,"pointerdown",this._onTapStart):(te(e,"mousedown",this._onTapStart),te(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(te(e,"dragover",this),te(e,"dragenter",this)),ao.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),wt(this,Zm())}H.prototype={constructor:H,_isOutsideThisEl:function(t){!this.el.contains(t)&&t!==this.el&&(jr=null)},_getDirection:function(t,r){return typeof this.options.direction=="function"?this.options.direction.call(this,t,r,C):this.options.direction},_onTapStart:function(t){if(!!t.cancelable){var r=this,n=this.el,i=this.options,o=i.preventOnFilter,a=t.type,s=t.touches&&t.touches[0]||t.pointerType&&t.pointerType==="touch"&&t,l=(s||t).target,u=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||l,c=i.filter;if(hg(n),!C&&!(/mousedown|pointerdown/.test(a)&&t.button!==0||i.disabled)&&!u.isContentEditable&&!(!this.nativeDraggable&&Sn&&l&&l.tagName.toUpperCase()==="SELECT")&&(l=rt(l,i.draggable,n,!1),!(l&&l.animated)&&eo!==l)){if(Br=Je(l),On=Je(l,i.draggable),typeof c=="function"){if(c.call(this,t,l,this)){Fe({sortable:r,rootEl:u,name:"filter",targetEl:l,toEl:n,fromEl:n}),je("filter",r,{evt:t}),o&&t.cancelable&&t.preventDefault();return}}else if(c&&(c=c.split(",").some(function(f){if(f=rt(u,f.trim(),n,!1),f)return Fe({sortable:r,rootEl:f,name:"filter",targetEl:l,fromEl:n,toEl:n}),je("filter",r,{evt:t}),!0}),c)){o&&t.cancelable&&t.preventDefault();return}i.handle&&!rt(u,i.handle,n,!1)||this._prepareDragStart(t,s,l)}}},_prepareDragStart:function(t,r,n){var i=this,o=i.el,a=i.options,s=o.ownerDocument,l;if(n&&!C&&n.parentNode===o){var u=Ee(n);if(ce=o,C=n,pe=C.parentNode,lr=C.nextSibling,eo=n,Ji=a.group,H.dragged=C,ar={target:C,clientX:(r||t).clientX,clientY:(r||t).clientY},Vc=ar.clientX-u.left,Gc=ar.clientY-u.top,this._lastX=(r||t).clientX,this._lastY=(r||t).clientY,C.style["will-change"]="all",l=function(){if(je("delayEnded",i,{evt:t}),H.eventCanceled){i._onDrop();return}i._disableDelayedDragEvents(),!qc&&i.nativeDraggable&&(C.draggable=!0),i._triggerDragStart(t,r),Fe({sortable:i,name:"choose",originalEvent:t}),ze(C,a.chosenClass,!0)},a.ignore.split(",").forEach(function(c){ef(C,c.trim(),Qa)}),te(s,"dragover",sr),te(s,"mousemove",sr),te(s,"touchmove",sr),te(s,"mouseup",i._onDrop),te(s,"touchend",i._onDrop),te(s,"touchcancel",i._onDrop),qc&&this.nativeDraggable&&(this.options.touchStartThreshold=4,C.draggable=!0),je("delayStart",this,{evt:t}),a.delay&&(!a.delayOnTouchOnly||r)&&(!this.nativeDraggable||!(Tn||_t))){if(H.eventCanceled){this._onDrop();return}te(s,"mouseup",i._disableDelayedDrag),te(s,"touchend",i._disableDelayedDrag),te(s,"touchcancel",i._disableDelayedDrag),te(s,"mousemove",i._delayedDragTouchMoveHandler),te(s,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&te(s,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(l,a.delay)}else l()}},_delayedDragTouchMoveHandler:function(t){var r=t.touches?t.touches[0]:t;Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){C&&Qa(C),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;Q(t,"mouseup",this._disableDelayedDrag),Q(t,"touchend",this._disableDelayedDrag),Q(t,"touchcancel",this._disableDelayedDrag),Q(t,"mousemove",this._delayedDragTouchMoveHandler),Q(t,"touchmove",this._delayedDragTouchMoveHandler),Q(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,r){r=r||t.pointerType=="touch"&&t,!this.nativeDraggable||r?this.options.supportPointer?te(document,"pointermove",this._onTouchMove):r?te(document,"touchmove",this._onTouchMove):te(document,"mousemove",this._onTouchMove):(te(C,"dragend",this),te(ce,"dragstart",this._onDragStart));try{document.selection?ro(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(t,r){if(Ur=!1,ce&&C){je("dragStarted",this,{evt:r}),this.nativeDraggable&&te(document,"dragover",ag);var n=this.options;!t&&ze(C,n.dragClass,!1),ze(C,n.ghostClass,!0),H.active=this,t&&this._appendGhost(),Fe({sortable:this,name:"start",originalEvent:r})}else this._nulling()},_emulateDragOver:function(){if(tt){this._lastX=tt.clientX,this._lastY=tt.clientY,uf();for(var t=document.elementFromPoint(tt.clientX,tt.clientY),r=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(tt.clientX,tt.clientY),t!==r);)r=t;if(C.parentNode[Ve]._isOutsideThisEl(t),r)do{if(r[Ve]){var n=void 0;if(n=r[Ve]._onDragOver({clientX:tt.clientX,clientY:tt.clientY,target:t,rootEl:r}),n&&!this.options.dragoverBubble)break}t=r}while(r=r.parentNode);cf()}},_onTouchMove:function(t){if(ar){var r=this.options,n=r.fallbackTolerance,i=r.fallbackOffset,o=t.touches?t.touches[0]:t,a=W&&Hr(W,!0),s=W&&a&&a.a,l=W&&a&&a.d,u=Xi&&Pe&&Kc(Pe),c=(o.clientX-ar.clientX+i.x)/(s||1)+(u?u[0]-Za[0]:0)/(s||1),f=(o.clientY-ar.clientY+i.y)/(l||1)+(u?u[1]-Za[1]:0)/(l||1);if(!H.active&&!Ur){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))<n)return;this._onDragStart(t,!0)}if(W){a?(a.e+=c-(Ya||0),a.f+=f-(Xa||0)):a={a:1,b:0,c:0,d:1,e:c,f};var d="matrix(".concat(a.a,",").concat(a.b,",").concat(a.c,",").concat(a.d,",").concat(a.e,",").concat(a.f,")");B(W,"webkitTransform",d),B(W,"mozTransform",d),B(W,"msTransform",d),B(W,"transform",d),Ya=c,Xa=f,tt=o}t.cancelable&&t.preventDefault()}},_appendGhost:function(){if(!W){var t=this.options.fallbackOnBody?document.body:ce,r=Ee(C,!0,Xi,!0,t),n=this.options;if(Xi){for(Pe=t;B(Pe,"position")==="static"&&B(Pe,"transform")==="none"&&Pe!==document;)Pe=Pe.parentNode;Pe!==document.body&&Pe!==document.documentElement?(Pe===document&&(Pe=ft()),r.top+=Pe.scrollTop,r.left+=Pe.scrollLeft):Pe=ft(),Za=Kc(Pe)}W=C.cloneNode(!0),ze(W,n.ghostClass,!1),ze(W,n.fallbackClass,!0),ze(W,n.dragClass,!0),B(W,"transition",""),B(W,"transform",""),B(W,"box-sizing","border-box"),B(W,"margin",0),B(W,"top",r.top),B(W,"left",r.left),B(W,"width",r.width),B(W,"height",r.height),B(W,"opacity","0.8"),B(W,"position",Xi?"absolute":"fixed"),B(W,"zIndex","100000"),B(W,"pointerEvents","none"),H.ghost=W,t.appendChild(W),B(W,"transform-origin",Vc/parseInt(W.style.width)*100+"% "+Gc/parseInt(W.style.height)*100+"%")}},_onDragStart:function(t,r){var n=this,i=t.dataTransfer,o=n.options;if(je("dragStart",this,{evt:t}),H.eventCanceled){this._onDrop();return}je("setupClone",this),H.eventCanceled||(fe=nf(C),fe.removeAttribute("id"),fe.draggable=!1,fe.style["will-change"]="",this._hideClone(),ze(fe,this.options.chosenClass,!1),H.clone=fe),n.cloneId=ro(function(){je("clone",n),!H.eventCanceled&&(n.options.removeCloneOnHide||ce.insertBefore(fe,C),n._hideClone(),Fe({sortable:n,name:"clone"}))}),!r&&ze(C,o.dragClass,!0),r?(oo=!0,n._loopId=setInterval(n._emulateDragOver,50)):(Q(document,"mouseup",n._onDrop),Q(document,"touchend",n._onDrop),Q(document,"touchcancel",n._onDrop),i&&(i.effectAllowed="move",o.setData&&o.setData.call(n,i,C)),te(document,"drop",n),B(C,"transform","translateZ(0)")),Ur=!0,n._dragStartId=ro(n._dragStarted.bind(n,r,t)),te(document,"selectstart",n),_n=!0,Sn&&B(document.body,"user-select","none")},_onDragOver:function(t){var r=this.el,n=t.target,i,o,a,s=this.options,l=s.group,u=H.active,c=Ji===l,f=s.sort,d=Me||u,h,g=this,m=!1;if(ns)return;function v(L,z){je(L,g,dt({evt:t,isOwner:c,axis:h?"vertical":"horizontal",revert:a,dragRect:i,targetRect:o,canSort:f,fromSortable:d,target:n,completed:E,onMove:function(K,G){return Zi(ce,r,C,i,K,Ee(K),t,G)},changed:A},z))}function b(){v("dragOverAnimationCapture"),g.captureAnimationState(),g!==d&&d.captureAnimationState()}function E(L){return v("dragOverCompleted",{insertion:L}),L&&(c?u._hideClone():u._showClone(g),g!==d&&(ze(C,Me?Me.options.ghostClass:u.options.ghostClass,!1),ze(C,s.ghostClass,!0)),Me!==g&&g!==H.active?Me=g:g===H.active&&Me&&(Me=null),d===g&&(g._ignoreWhileAnimating=n),g.animateAll(function(){v("dragOverAnimationComplete"),g._ignoreWhileAnimating=null}),g!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===C&&!C.animated||n===r&&!n.animated)&&(jr=null),!s.dragoverBubble&&!t.rootEl&&n!==document&&(C.parentNode[Ve]._isOutsideThisEl(t.target),!L&&sr(t)),!s.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),m=!0}function A(){Ke=Je(C),Pt=Je(C,s.draggable),Fe({sortable:g,name:"change",toEl:r,newIndex:Ke,newDraggableIndex:Pt,originalEvent:t})}if(t.preventDefault!==void 0&&t.cancelable&&t.preventDefault(),n=rt(n,s.draggable,r,!0),v("dragOver"),H.eventCanceled)return m;if(C.contains(t.target)||n.animated&&n.animatingX&&n.animatingY||g._ignoreWhileAnimating===n)return E(!1);if(oo=!1,u&&!s.disabled&&(c?f||(a=pe!==ce):Me===this||(this.lastPutMode=Ji.checkPull(this,u,C,t))&&l.checkPut(this,u,C,t))){if(h=this._getDirection(t,n)==="vertical",i=Ee(C),v("dragOverValid"),H.eventCanceled)return m;if(a)return pe=ce,b(),this._hideClone(),v("revert"),H.eventCanceled||(lr?ce.insertBefore(C,lr):ce.appendChild(C)),E(!0);var I=ls(r,s.draggable);if(!I||cg(t,h,this)&&!I.animated){if(I===C)return E(!1);if(I&&r===t.target&&(n=I),n&&(o=Ee(n)),Zi(ce,r,C,i,n,o,t,!!n)!==!1)return b(),I&&I.nextSibling?r.insertBefore(C,I.nextSibling):r.appendChild(C),pe=r,A(),E(!0)}else if(I&&ug(t,h,this)){var j=qr(r,0,s,!0);if(j===C)return E(!1);if(n=j,o=Ee(n),Zi(ce,r,C,i,n,o,t,!1)!==!1)return b(),r.insertBefore(C,j),pe=r,A(),E(!0)}else if(n.parentNode===r){o=Ee(n);var R=0,F,Y=C.parentNode!==r,re=!ig(C.animated&&C.toRect||i,n.animated&&n.toRect||o,h),de=h?"top":"left",ie=zc(n,"top","top")||zc(C,"top","top"),X=ie?ie.scrollTop:void 0;jr!==n&&(F=o[de],kn=!1,Yi=!re&&s.invertSwap||Y),R=fg(t,n,o,h,re?1:s.swapThreshold,s.invertedSwapThreshold==null?s.swapThreshold:s.invertedSwapThreshold,Yi,jr===n);var U;if(R!==0){var w=Je(C);do w-=R,U=pe.children[w];while(U&&(B(U,"display")==="none"||U===W))}if(R===0||U===n)return E(!1);jr=n,Cn=R;var _=n.nextElementSibling,O=!1;O=R===1;var M=Zi(ce,r,C,i,n,o,t,O);if(M!==!1)return(M===1||M===-1)&&(O=M===1),ns=!0,setTimeout(lg,30),b(),O&&!_?r.appendChild(C):n.parentNode.insertBefore(C,O?_:n),ie&&rf(ie,0,X-ie.scrollTop),pe=C.parentNode,F!==void 0&&!Yi&&(to=Math.abs(F-Ee(n)[de])),A(),E(!0)}if(r.contains(C))return E(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){Q(document,"mousemove",this._onTouchMove),Q(document,"touchmove",this._onTouchMove),Q(document,"pointermove",this._onTouchMove),Q(document,"dragover",sr),Q(document,"mousemove",sr),Q(document,"touchmove",sr)},_offUpEvents:function(){var t=this.el.ownerDocument;Q(t,"mouseup",this._onDrop),Q(t,"touchend",this._onDrop),Q(t,"pointerup",this._onDrop),Q(t,"touchcancel",this._onDrop),Q(document,"selectstart",this)},_onDrop:function(t){var r=this.el,n=this.options;if(Ke=Je(C),Pt=Je(C,n.draggable),je("drop",this,{evt:t}),pe=C&&C.parentNode,Ke=Je(C),Pt=Je(C,n.draggable),H.eventCanceled){this._nulling();return}Ur=!1,Yi=!1,kn=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),is(this.cloneId),is(this._dragStartId),this.nativeDraggable&&(Q(document,"drop",this),Q(r,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Sn&&B(document.body,"user-select",""),B(C,"transform",""),t&&(_n&&(t.cancelable&&t.preventDefault(),!n.dropBubble&&t.stopPropagation()),W&&W.parentNode&&W.parentNode.removeChild(W),(ce===pe||Me&&Me.lastPutMode!=="clone")&&fe&&fe.parentNode&&fe.parentNode.removeChild(fe),C&&(this.nativeDraggable&&Q(C,"dragend",this),Qa(C),C.style["will-change"]="",_n&&!Ur&&ze(C,Me?Me.options.ghostClass:this.options.ghostClass,!1),ze(C,this.options.chosenClass,!1),Fe({sortable:this,name:"unchoose",toEl:pe,newIndex:null,newDraggableIndex:null,originalEvent:t}),ce!==pe?(Ke>=0&&(Fe({rootEl:pe,name:"add",toEl:pe,fromEl:ce,originalEvent:t}),Fe({sortable:this,name:"remove",toEl:pe,originalEvent:t}),Fe({rootEl:pe,name:"sort",toEl:pe,fromEl:ce,originalEvent:t}),Fe({sortable:this,name:"sort",toEl:pe,originalEvent:t})),Me&&Me.save()):Ke!==Br&&Ke>=0&&(Fe({sortable:this,name:"update",toEl:pe,originalEvent:t}),Fe({sortable:this,name:"sort",toEl:pe,originalEvent:t})),H.active&&((Ke==null||Ke===-1)&&(Ke=Br,Pt=On),Fe({sortable:this,name:"end",toEl:pe,originalEvent:t}),this.save()))),this._nulling()},_nulling:function(){je("nulling",this),ce=C=pe=W=lr=fe=eo=It=ar=tt=_n=Ke=Pt=Br=On=jr=Cn=Me=Ji=H.dragged=H.ghost=H.clone=H.active=null,so.forEach(function(t){t.checked=!0}),so.length=Ya=Xa=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":C&&(this._onDragOver(t),sg(t));break;case"selectstart":t.preventDefault();break}},toArray:function(){for(var t=[],r,n=this.el.children,i=0,o=n.length,a=this.options;i<o;i++)r=n[i],rt(r,a.draggable,this.el,!1)&&t.push(r.getAttribute(a.dataIdAttr)||pg(r));return t},sort:function(t,r){var n={},i=this.el;this.toArray().forEach(function(o,a){var s=i.children[a];rt(s,this.options.draggable,i,!1)&&(n[o]=s)},this),r&&this.captureAnimationState(),t.forEach(function(o){n[o]&&(i.removeChild(n[o]),i.appendChild(n[o]))}),r&&this.animateAll()},save:function(){var t=this.options.store;t&&t.set&&t.set(this)},closest:function(t,r){return rt(t,r||this.options.draggable,this.el,!1)},option:function(t,r){var n=this.options;if(r===void 0)return n[t];var i=Nn.modifyOption(this,t,r);typeof i<"u"?n[t]=i:n[t]=r,t==="group"&&lf(n)},destroy:function(){je("destroy",this);var t=this.el;t[Ve]=null,Q(t,"mousedown",this._onTapStart),Q(t,"touchstart",this._onTapStart),Q(t,"pointerdown",this._onTapStart),this.nativeDraggable&&(Q(t,"dragover",this),Q(t,"dragenter",this)),Array.prototype.forEach.call(t.querySelectorAll("[draggable]"),function(r){r.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),ao.splice(ao.indexOf(this.el),1),this.el=t=null},_hideClone:function(){if(!It){if(je("hideClone",this),H.eventCanceled)return;B(fe,"display","none"),this.options.removeCloneOnHide&&fe.parentNode&&fe.parentNode.removeChild(fe),It=!0}},_showClone:function(t){if(t.lastPutMode!=="clone"){this._hideClone();return}if(It){if(je("showClone",this),H.eventCanceled)return;C.parentNode==ce&&!this.options.group.revertClone?ce.insertBefore(fe,C):lr?ce.insertBefore(fe,lr):ce.appendChild(fe),this.options.group.revertClone&&this.animate(C,fe),B(fe,"display",""),It=!1}}};function sg(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}function Zi(e,t,r,n,i,o,a,s){var l,u=e[Ve],c=u.options.onMove,f;return window.CustomEvent&&!_t&&!Tn?l=new CustomEvent("move",{bubbles:!0,cancelable:!0}):(l=document.createEvent("Event"),l.initEvent("move",!0,!0)),l.to=t,l.from=e,l.dragged=r,l.draggedRect=n,l.related=i||t,l.relatedRect=o||Ee(t),l.willInsertAfter=s,l.originalEvent=a,e.dispatchEvent(l),c&&(f=c.call(u,l,a)),f}function Qa(e){e.draggable=!1}function lg(){ns=!1}function ug(e,t,r){var n=Ee(qr(r.el,0,r.options,!0)),i=of(r.el,r.options,W),o=10;return t?e.clientX<i.left-o||e.clientY<n.top&&e.clientX<n.right:e.clientY<i.top-o||e.clientY<n.bottom&&e.clientX<n.left}function cg(e,t,r){var n=Ee(ls(r.el,r.options.draggable)),i=of(r.el,r.options,W),o=10;return t?e.clientX>i.right+o||e.clientY>n.bottom&&e.clientX>n.left:e.clientY>i.bottom+o||e.clientX>n.right&&e.clientY>n.top}function fg(e,t,r,n,i,o,a,s){var l=n?e.clientY:e.clientX,u=n?r.height:r.width,c=n?r.top:r.left,f=n?r.bottom:r.right,d=!1;if(!a){if(s&&to<u*i){if(!kn&&(Cn===1?l>c+u*o/2:l<f-u*o/2)&&(kn=!0),kn)d=!0;else if(Cn===1?l<c+to:l>f-to)return-Cn}else if(l>c+u*(1-i)/2&&l<f-u*(1-i)/2)return dg(t)}return d=d||a,d&&(l<c+u*o/2||l>f-u*o/2)?l>c+u/2?1:-1:0}function dg(e){return Je(C)<Je(e)?1:-1}function pg(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,r=t.length,n=0;r--;)n+=t.charCodeAt(r);return n.toString(36)}function hg(e){so.length=0;for(var t=e.getElementsByTagName("input"),r=t.length;r--;){var n=t[r];n.checked&&so.push(n)}}function ro(e){return setTimeout(e,0)}function is(e){return clearTimeout(e)}uo&&te(document,"touchmove",function(e){(H.active||Ur)&&e.cancelable&&e.preventDefault()});H.utils={on:te,off:Q,css:B,find:ef,is:function(t,r){return!!rt(t,r,t,!1)},extend:Ym,throttle:tf,closest:rt,toggleClass:ze,clone:nf,index:Je,nextTick:ro,cancelNextTick:is,detectDirection:sf,getChild:qr};H.get=function(e){return e[Ve]};H.mount=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t[0].constructor===Array&&(t=t[0]),t.forEach(function(n){if(!n.prototype||!n.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(n));n.utils&&(H.utils=dt(dt({},H.utils),n.utils)),Nn.mount(n)})};H.create=function(e,t){return new H(e,t)};H.version=Vm;var _e=[],En,os,as=!1,es,ts,lo,xn;function mg(){function e(){this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0};for(var t in this)t.charAt(0)==="_"&&typeof this[t]=="function"&&(this[t]=this[t].bind(this))}return e.prototype={dragStarted:function(r){var n=r.originalEvent;this.sortable.nativeDraggable?te(document,"dragover",this._handleAutoScroll):this.options.supportPointer?te(document,"pointermove",this._handleFallbackAutoScroll):n.touches?te(document,"touchmove",this._handleFallbackAutoScroll):te(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(r){var n=r.originalEvent;!this.options.dragOverBubble&&!n.rootEl&&this._handleAutoScroll(n)},drop:function(){this.sortable.nativeDraggable?Q(document,"dragover",this._handleAutoScroll):(Q(document,"pointermove",this._handleFallbackAutoScroll),Q(document,"touchmove",this._handleFallbackAutoScroll),Q(document,"mousemove",this._handleFallbackAutoScroll)),Yc(),no(),Xm()},nulling:function(){lo=os=En=as=xn=es=ts=null,_e.length=0},_handleFallbackAutoScroll:function(r){this._handleAutoScroll(r,!0)},_handleAutoScroll:function(r,n){var i=this,o=(r.touches?r.touches[0]:r).clientX,a=(r.touches?r.touches[0]:r).clientY,s=document.elementFromPoint(o,a);if(lo=r,n||this.options.forceAutoScrollFallback||Tn||_t||Sn){rs(r,this.options,s,n);var l=Rt(s,!0);as&&(!xn||o!==es||a!==ts)&&(xn&&Yc(),xn=setInterval(function(){var u=Rt(document.elementFromPoint(o,a),!0);u!==l&&(l=u,no()),rs(r,i.options,u,n)},10),es=o,ts=a)}else{if(!this.options.bubbleScroll||Rt(s,!0)===ft()){no();return}rs(r,this.options,Rt(s,!1),!1)}}},wt(e,{pluginName:"scroll",initializeByDefault:!0})}function no(){_e.forEach(function(e){clearInterval(e.pid)}),_e=[]}function Yc(){clearInterval(xn)}var rs=tf(function(e,t,r,n){if(!!t.scroll){var i=(e.touches?e.touches[0]:e).clientX,o=(e.touches?e.touches[0]:e).clientY,a=t.scrollSensitivity,s=t.scrollSpeed,l=ft(),u=!1,c;os!==r&&(os=r,no(),En=t.scroll,c=t.scrollFn,En===!0&&(En=Rt(r,!0)));var f=0,d=En;do{var h=d,g=Ee(h),m=g.top,v=g.bottom,b=g.left,E=g.right,A=g.width,I=g.height,j=void 0,R=void 0,F=h.scrollWidth,Y=h.scrollHeight,re=B(h),de=h.scrollLeft,ie=h.scrollTop;h===l?(j=A<F&&(re.overflowX==="auto"||re.overflowX==="scroll"||re.overflowX==="visible"),R=I<Y&&(re.overflowY==="auto"||re.overflowY==="scroll"||re.overflowY==="visible")):(j=A<F&&(re.overflowX==="auto"||re.overflowX==="scroll"),R=I<Y&&(re.overflowY==="auto"||re.overflowY==="scroll"));var X=j&&(Math.abs(E-i)<=a&&de+A<F)-(Math.abs(b-i)<=a&&!!de),U=R&&(Math.abs(v-o)<=a&&ie+I<Y)-(Math.abs(m-o)<=a&&!!ie);if(!_e[f])for(var w=0;w<=f;w++)_e[w]||(_e[w]={});(_e[f].vx!=X||_e[f].vy!=U||_e[f].el!==h)&&(_e[f].el=h,_e[f].vx=X,_e[f].vy=U,clearInterval(_e[f].pid),(X!=0||U!=0)&&(u=!0,_e[f].pid=setInterval(function(){n&&this.layer===0&&H.active._onTouchMove(lo);var _=_e[this.layer].vy?_e[this.layer].vy*s:0,O=_e[this.layer].vx?_e[this.layer].vx*s:0;typeof c=="function"&&c.call(H.dragged.parentNode[Ve],O,_,e,lo,_e[this.layer].el)!=="continue"||rf(_e[this.layer].el,O,_)}.bind({layer:f}),24))),f++}while(t.bubbleScroll&&d!==l&&(d=Rt(d,!1)));as=u}},30),ff=function(t){var r=t.originalEvent,n=t.putSortable,i=t.dragEl,o=t.activeSortable,a=t.dispatchSortableEvent,s=t.hideGhostForTarget,l=t.unhideGhostForTarget;if(!!r){var u=n||o;s();var c=r.changedTouches&&r.changedTouches.length?r.changedTouches[0]:r,f=document.elementFromPoint(c.clientX,c.clientY);l(),u&&!u.el.contains(f)&&(a("spill"),this.onSpill({dragEl:i,putSortable:n}))}};function us(){}us.prototype={startIndex:null,dragStart:function(t){var r=t.oldDraggableIndex;this.startIndex=r},onSpill:function(t){var r=t.dragEl,n=t.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var i=qr(this.sortable.el,this.startIndex,this.options);i?this.sortable.el.insertBefore(r,i):this.sortable.el.appendChild(r),this.sortable.animateAll(),n&&n.animateAll()},drop:ff};wt(us,{pluginName:"revertOnSpill"});function cs(){}cs.prototype={onSpill:function(t){var r=t.dragEl,n=t.putSortable,i=n||this.sortable;i.captureAnimationState(),r.parentNode&&r.parentNode.removeChild(r),i.animateAll()},drop:ff};wt(cs,{pluginName:"removeOnSpill"});H.mount(new mg);H.mount(cs,us);var gg=H;function ss(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>ss(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)ss(n,t,!1),n=n.nextElementSibling}function vg(e){e.directive("sort",(t,{value:r,modifiers:n,expression:i},{effect:o,evaluate:a,cleanup:s})=>{if(r==="config"||r==="handle"||r==="group")return;if(r==="key"||r==="item"){if([void 0,null,""].includes(i))return;t._x_sort_key=a(i);return}let l="[x-sort\\:handle],[wire\\:sort\\:handle]",u={hideGhost:!n.includes("ghost"),useHandles:!!t.querySelector(l)||Array.from(t.querySelectorAll("template:not(svg template)")).some(h=>h.content?.querySelector(l)),group:Eg(t,n)},c=yg(i,a),f=bg(t,n,a),d=wg(t,f,u,(h,g)=>{c(h,g)});s(()=>d.destroy())})}function yg(e,t){return[void 0,null,""].includes(e)?()=>{}:(r,n)=>{t(e,{scope:{$key:r,$item:r,$position:n},params:[r,n]})}}function bg(e,t,r){return e.hasAttribute("x-sort:config")?r(e.getAttribute("x-sort:config")):e.hasAttribute("wire:sort:config")?r(e.getAttribute("wire:sort:config")):{}}function wg(e,t,r,n){let i,o={animation:150,handle:r.useHandles?"[x-sort\\:handle],[wire\\:sort\\:handle]":null,group:r.group,scroll:!0,forceAutoScrollFallback:!0,scrollSensitivity:50,preventOnFilter:!1,filter(a){return a.target.hasAttribute("x-sort:ignore")||a.target.hasAttribute("wire:sort:ignore")||a.target.closest("[x-sort\\:ignore]")||a.target.closest("[wire\\:sort\\:ignore]")?!0:e.querySelector("[x-sort\\:item],[wire\\:sort\\:item]")?!a.target.closest("[x-sort\\:item],[wire\\:sort\\:item]"):!1},onSort(a){if(a.from!==a.to&&a.to!==a.target)return;let s;ss(a.item,(u,c)=>{s===void 0&&u._x_sort_key&&(s=u._x_sort_key,c())});let l=a.newIndex;(s!==void 0||s!==null)&&n(s,l)},onStart(){document.body.classList.add("sorting"),i=document.querySelector(".sortable-ghost"),r.hideGhost&&i&&(i.style.opacity="0")},onEnd(){document.body.classList.remove("sorting"),r.hideGhost&&i&&(i.style.opacity="1"),i=void 0,_g(e)}};return new gg(e,{...o,...t})}function _g(e){let t=e.firstChild;for(;t.nextSibling;){if(t.textContent.trim()==="[if ENDBLOCK]><![endif]"){e.append(t);break}t=t.nextSibling}}function Eg(e,t){return e.hasAttribute("x-sort:group")?e.getAttribute("x-sort:group"):e.hasAttribute("wire:sort:group")?e.getAttribute("wire:sort:group"):t.indexOf("group")!==-1?t[t.indexOf("group")+1]:null}var df=vg;function xg(e){e.directive("resize",e.skipDuringClone((t,{value:r,expression:n,modifiers:i},{evaluateLater:o,cleanup:a})=>{let s=o(n),l=(c,f)=>{s(()=>{},{scope:{$width:c,$height:f}})},u=i.includes("document")?Ag(l):Sg(t,l);a(()=>u())}))}function Sg(e,t){let r=new ResizeObserver(n=>{let[i,o]=pf(n);t(i,o)});return r.observe(e),()=>r.disconnect()}var fs,ds=new Set;function Ag(e){return ds.add(e),fs||(fs=new ResizeObserver(t=>{let[r,n]=pf(t);ds.forEach(i=>i(r,n))}),fs.observe(document.documentElement)),()=>{ds.delete(e)}}function pf(e){let t,r;for(let n of e)t=n.borderBoxSize[0].inlineSize,r=n.borderBoxSize[0].blockSize;return[t,r]}var hf=xg;var fo=Math.min,ur=Math.max,po=Math.round,co=Math.floor,Dt=e=>({x:e,y:e}),Og={left:"right",right:"left",bottom:"top",top:"bottom"},Cg={start:"end",end:"start"};function mf(e,t,r){return ur(e,fo(t,r))}function go(e,t){return typeof e=="function"?e(t):e}function cr(e){return e.split("-")[0]}function vo(e){return e.split("-")[1]}function Ef(e){return e==="x"?"y":"x"}function xf(e){return e==="y"?"height":"width"}function yo(e){return["top","bottom"].includes(cr(e))?"y":"x"}function Sf(e){return Ef(yo(e))}function kg(e,t,r){r===void 0&&(r=!1);let n=vo(e),i=Sf(e),o=xf(i),a=i==="x"?n===(r?"end":"start")?"right":"left":n==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=ho(a)),[a,ho(a)]}function Tg(e){let t=ho(e);return[ps(e),t,ps(t)]}function ps(e){return e.replace(/start|end/g,t=>Cg[t])}function Ng(e,t,r){let n=["left","right"],i=["right","left"],o=["top","bottom"],a=["bottom","top"];switch(e){case"top":case"bottom":return r?t?i:n:t?n:i;case"left":case"right":return t?o:a;default:return[]}}function Mg(e,t,r,n){let i=vo(e),o=Ng(cr(e),r==="start",n);return i&&(o=o.map(a=>a+"-"+i),t&&(o=o.concat(o.map(ps)))),o}function ho(e){return e.replace(/left|right|bottom|top/g,t=>Og[t])}function Pg(e){return{top:0,right:0,bottom:0,left:0,...e}}function Ig(e){return typeof e!="number"?Pg(e):{top:e,right:e,bottom:e,left:e}}function mo(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function gf(e,t,r){let{reference:n,floating:i}=e,o=yo(t),a=Sf(t),s=xf(a),l=cr(t),u=o==="y",c=n.x+n.width/2-i.width/2,f=n.y+n.height/2-i.height/2,d=n[s]/2-i[s]/2,h;switch(l){case"top":h={x:c,y:n.y-i.height};break;case"bottom":h={x:c,y:n.y+n.height};break;case"right":h={x:n.x+n.width,y:f};break;case"left":h={x:n.x-i.width,y:f};break;default:h={x:n.x,y:n.y}}switch(vo(t)){case"start":h[a]-=d*(r&&u?-1:1);break;case"end":h[a]+=d*(r&&u?-1:1);break}return h}var Rg=async(e,t,r)=>{let{placement:n="bottom",strategy:i="absolute",middleware:o=[],platform:a}=r,s=o.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t)),u=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:c,y:f}=gf(u,n,l),d=n,h={},g=0;for(let m=0;m<s.length;m++){let{name:v,fn:b}=s[m],{x:E,y:A,data:I,reset:j}=await b({x:c,y:f,initialPlacement:n,placement:d,strategy:i,middlewareData:h,rects:u,platform:a,elements:{reference:e,floating:t}});if(c=E??c,f=A??f,h={...h,[v]:{...h[v],...I}},j&&g<=50){g++,typeof j=="object"&&(j.placement&&(d=j.placement),j.rects&&(u=j.rects===!0?await a.getElementRects({reference:e,floating:t,strategy:i}):j.rects),{x:c,y:f}=gf(u,d,l)),m=-1;continue}}return{x:c,y:f,placement:d,strategy:i,middlewareData:h}};async function Af(e,t){var r;t===void 0&&(t={});let{x:n,y:i,platform:o,rects:a,elements:s,strategy:l}=e,{boundary:u="clippingAncestors",rootBoundary:c="viewport",elementContext:f="floating",altBoundary:d=!1,padding:h=0}=go(t,e),g=Ig(h),v=s[d?f==="floating"?"reference":"floating":f],b=mo(await o.getClippingRect({element:(r=await(o.isElement==null?void 0:o.isElement(v)))==null||r?v:v.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(s.floating)),boundary:u,rootBoundary:c,strategy:l})),E=f==="floating"?{...a.floating,x:n,y:i}:a.reference,A=await(o.getOffsetParent==null?void 0:o.getOffsetParent(s.floating)),I=await(o.isElement==null?void 0:o.isElement(A))?await(o.getScale==null?void 0:o.getScale(A))||{x:1,y:1}:{x:1,y:1},j=mo(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({rect:E,offsetParent:A,strategy:l}):E);return{top:(b.top-j.top+g.top)/I.y,bottom:(j.bottom-b.bottom+g.bottom)/I.y,left:(b.left-j.left+g.left)/I.x,right:(j.right-b.right+g.right)/I.x}}var Dg=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var r,n;let{placement:i,middlewareData:o,rects:a,initialPlacement:s,platform:l,elements:u}=t,{mainAxis:c=!0,crossAxis:f=!0,fallbackPlacements:d,fallbackStrategy:h="bestFit",fallbackAxisSideDirection:g="none",flipAlignment:m=!0,...v}=go(e,t);if((r=o.arrow)!=null&&r.alignmentOffset)return{};let b=cr(i),E=cr(s)===s,A=await(l.isRTL==null?void 0:l.isRTL(u.floating)),I=d||(E||!m?[ho(s)]:Tg(s));!d&&g!=="none"&&I.push(...Mg(s,m,g,A));let j=[s,...I],R=await Af(t,v),F=[],Y=((n=o.flip)==null?void 0:n.overflows)||[];if(c&&F.push(R[b]),f){let X=kg(i,a,A);F.push(R[X[0]],R[X[1]])}if(Y=[...Y,{placement:i,overflows:F}],!F.every(X=>X<=0)){var re,de;let X=(((re=o.flip)==null?void 0:re.index)||0)+1,U=j[X];if(U)return{data:{index:X,overflows:Y},reset:{placement:U}};let w=(de=Y.filter(_=>_.overflows[0]<=0).sort((_,O)=>_.overflows[1]-O.overflows[1])[0])==null?void 0:de.placement;if(!w)switch(h){case"bestFit":{var ie;let _=(ie=Y.map(O=>[O.placement,O.overflows.filter(M=>M>0).reduce((M,L)=>M+L,0)]).sort((O,M)=>O[1]-M[1])[0])==null?void 0:ie[0];_&&(w=_);break}case"initialPlacement":w=s;break}if(i!==w)return{reset:{placement:w}}}return{}}}};async function Fg(e,t){let{placement:r,platform:n,elements:i}=e,o=await(n.isRTL==null?void 0:n.isRTL(i.floating)),a=cr(r),s=vo(r),l=yo(r)==="y",u=["left","top"].includes(a)?-1:1,c=o&&l?-1:1,f=go(t,e),{mainAxis:d,crossAxis:h,alignmentAxis:g}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...f};return s&&typeof g=="number"&&(h=s==="end"?g*-1:g),l?{x:h*c,y:d*u}:{x:d*u,y:h*c}}var Lg=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){let{x:r,y:n}=t,i=await Fg(t,e);return{x:r+i.x,y:n+i.y,data:i}}}},$g=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:r,y:n,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:v=>{let{x:b,y:E}=v;return{x:b,y:E}}},...l}=go(e,t),u={x:r,y:n},c=await Af(t,l),f=yo(cr(i)),d=Ef(f),h=u[d],g=u[f];if(o){let v=d==="y"?"top":"left",b=d==="y"?"bottom":"right",E=h+c[v],A=h-c[b];h=mf(E,h,A)}if(a){let v=f==="y"?"top":"left",b=f==="y"?"bottom":"right",E=g+c[v],A=g-c[b];g=mf(E,g,A)}let m=s.fn({...t,[d]:h,[f]:g});return{...m,data:{x:m.x-r,y:m.y-n}}}}};function Ft(e){return Of(e)?(e.nodeName||"").toLowerCase():"#document"}function Ge(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function xt(e){var t;return(t=(Of(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Of(e){return e instanceof Node||e instanceof Ge(e).Node}function Et(e){return e instanceof Element||e instanceof Ge(e).Element}function pt(e){return e instanceof HTMLElement||e instanceof Ge(e).HTMLElement}function vf(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Ge(e).ShadowRoot}function Pn(e){let{overflow:t,overflowX:r,overflowY:n,display:i}=Ye(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!["inline","contents"].includes(i)}function jg(e){return["table","td","th"].includes(Ft(e))}function hs(e){let t=ms(),r=Ye(e);return r.transform!=="none"||r.perspective!=="none"||(r.containerType?r.containerType!=="normal":!1)||!t&&(r.backdropFilter?r.backdropFilter!=="none":!1)||!t&&(r.filter?r.filter!=="none":!1)||["transform","perspective","filter"].some(n=>(r.willChange||"").includes(n))||["paint","layout","strict","content"].some(n=>(r.contain||"").includes(n))}function Ug(e){let t=zr(e);for(;pt(t)&&!bo(t);){if(hs(t))return t;t=zr(t)}return null}function ms(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function bo(e){return["html","body","#document"].includes(Ft(e))}function Ye(e){return Ge(e).getComputedStyle(e)}function wo(e){return Et(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function zr(e){if(Ft(e)==="html")return e;let t=e.assignedSlot||e.parentNode||vf(e)&&e.host||xt(e);return vf(t)?t.host:t}function Cf(e){let t=zr(e);return bo(t)?e.ownerDocument?e.ownerDocument.body:e.body:pt(t)&&Pn(t)?t:Cf(t)}function Mn(e,t,r){var n;t===void 0&&(t=[]),r===void 0&&(r=!0);let i=Cf(e),o=i===((n=e.ownerDocument)==null?void 0:n.body),a=Ge(i);return o?t.concat(a,a.visualViewport||[],Pn(i)?i:[],a.frameElement&&r?Mn(a.frameElement):[]):t.concat(i,Mn(i,[],r))}function kf(e){let t=Ye(e),r=parseFloat(t.width)||0,n=parseFloat(t.height)||0,i=pt(e),o=i?e.offsetWidth:r,a=i?e.offsetHeight:n,s=po(r)!==o||po(n)!==a;return s&&(r=o,n=a),{width:r,height:n,$:s}}function gs(e){return Et(e)?e:e.contextElement}function Wr(e){let t=gs(e);if(!pt(t))return Dt(1);let r=t.getBoundingClientRect(),{width:n,height:i,$:o}=kf(t),a=(o?po(r.width):r.width)/n,s=(o?po(r.height):r.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}var Bg=Dt(0);function Tf(e){let t=Ge(e);return!ms()||!t.visualViewport?Bg:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Hg(e,t,r){return t===void 0&&(t=!1),!r||t&&r!==Ge(e)?!1:t}function fr(e,t,r,n){t===void 0&&(t=!1),r===void 0&&(r=!1);let i=e.getBoundingClientRect(),o=gs(e),a=Dt(1);t&&(n?Et(n)&&(a=Wr(n)):a=Wr(e));let s=Hg(o,r,n)?Tf(o):Dt(0),l=(i.left+s.x)/a.x,u=(i.top+s.y)/a.y,c=i.width/a.x,f=i.height/a.y;if(o){let d=Ge(o),h=n&&Et(n)?Ge(n):n,g=d.frameElement;for(;g&&n&&h!==d;){let m=Wr(g),v=g.getBoundingClientRect(),b=Ye(g),E=v.left+(g.clientLeft+parseFloat(b.paddingLeft))*m.x,A=v.top+(g.clientTop+parseFloat(b.paddingTop))*m.y;l*=m.x,u*=m.y,c*=m.x,f*=m.y,l+=E,u+=A,g=Ge(g).frameElement}}return mo({width:c,height:f,x:l,y:u})}function qg(e){let{rect:t,offsetParent:r,strategy:n}=e,i=pt(r),o=xt(r);if(r===o)return t;let a={scrollLeft:0,scrollTop:0},s=Dt(1),l=Dt(0);if((i||!i&&n!=="fixed")&&((Ft(r)!=="body"||Pn(o))&&(a=wo(r)),pt(r))){let u=fr(r);s=Wr(r),l.x=u.x+r.clientLeft,l.y=u.y+r.clientTop}return{width:t.width*s.x,height:t.height*s.y,x:t.x*s.x-a.scrollLeft*s.x+l.x,y:t.y*s.y-a.scrollTop*s.y+l.y}}function Wg(e){return Array.from(e.getClientRects())}function Nf(e){return fr(xt(e)).left+wo(e).scrollLeft}function zg(e){let t=xt(e),r=wo(e),n=e.ownerDocument.body,i=ur(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),o=ur(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight),a=-r.scrollLeft+Nf(e),s=-r.scrollTop;return Ye(n).direction==="rtl"&&(a+=ur(t.clientWidth,n.clientWidth)-i),{width:i,height:o,x:a,y:s}}function Kg(e,t){let r=Ge(e),n=xt(e),i=r.visualViewport,o=n.clientWidth,a=n.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;let u=ms();(!u||u&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}return{width:o,height:a,x:s,y:l}}function Vg(e,t){let r=fr(e,!0,t==="fixed"),n=r.top+e.clientTop,i=r.left+e.clientLeft,o=pt(e)?Wr(e):Dt(1),a=e.clientWidth*o.x,s=e.clientHeight*o.y,l=i*o.x,u=n*o.y;return{width:a,height:s,x:l,y:u}}function yf(e,t,r){let n;if(t==="viewport")n=Kg(e,r);else if(t==="document")n=zg(xt(e));else if(Et(t))n=Vg(t,r);else{let i=Tf(e);n={...t,x:t.x-i.x,y:t.y-i.y}}return mo(n)}function Mf(e,t){let r=zr(e);return r===t||!Et(r)||bo(r)?!1:Ye(r).position==="fixed"||Mf(r,t)}function Gg(e,t){let r=t.get(e);if(r)return r;let n=Mn(e,[],!1).filter(s=>Et(s)&&Ft(s)!=="body"),i=null,o=Ye(e).position==="fixed",a=o?zr(e):e;for(;Et(a)&&!bo(a);){let s=Ye(a),l=hs(a);!l&&s.position==="fixed"&&(i=null),(o?!l&&!i:!l&&s.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||Pn(a)&&!l&&Mf(e,a))?n=n.filter(c=>c!==a):i=s,a=zr(a)}return t.set(e,n),n}function Jg(e){let{element:t,boundary:r,rootBoundary:n,strategy:i}=e,a=[...r==="clippingAncestors"?Gg(t,this._c):[].concat(r),n],s=a[0],l=a.reduce((u,c)=>{let f=yf(t,c,i);return u.top=ur(f.top,u.top),u.right=fo(f.right,u.right),u.bottom=fo(f.bottom,u.bottom),u.left=ur(f.left,u.left),u},yf(t,s,i));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function Yg(e){return kf(e)}function Xg(e,t,r){let n=pt(t),i=xt(t),o=r==="fixed",a=fr(e,!0,o,t),s={scrollLeft:0,scrollTop:0},l=Dt(0);if(n||!n&&!o)if((Ft(t)!=="body"||Pn(i))&&(s=wo(t)),n){let u=fr(t,!0,o,t);l.x=u.x+t.clientLeft,l.y=u.y+t.clientTop}else i&&(l.x=Nf(i));return{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function bf(e,t){return!pt(e)||Ye(e).position==="fixed"?null:t?t(e):e.offsetParent}function Pf(e,t){let r=Ge(e);if(!pt(e))return r;let n=bf(e,t);for(;n&&jg(n)&&Ye(n).position==="static";)n=bf(n,t);return n&&(Ft(n)==="html"||Ft(n)==="body"&&Ye(n).position==="static"&&!hs(n))?r:n||Ug(e)||r}var Zg=async function(e){let{reference:t,floating:r,strategy:n}=e,i=this.getOffsetParent||Pf,o=this.getDimensions;return{reference:Xg(t,await i(r),n),floating:{x:0,y:0,...await o(r)}}};function Qg(e){return Ye(e).direction==="rtl"}var ev={convertOffsetParentRelativeRectToViewportRelativeRect:qg,getDocumentElement:xt,getClippingRect:Jg,getOffsetParent:Pf,getElementRects:Zg,getClientRects:Wg,getDimensions:Yg,getScale:Wr,isElement:Et,isRTL:Qg};function tv(e,t){let r=null,n,i=xt(e);function o(){clearTimeout(n),r&&r.disconnect(),r=null}function a(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),o();let{left:u,top:c,width:f,height:d}=e.getBoundingClientRect();if(s||t(),!f||!d)return;let h=co(c),g=co(i.clientWidth-(u+f)),m=co(i.clientHeight-(c+d)),v=co(u),E={rootMargin:-h+"px "+-g+"px "+-m+"px "+-v+"px",threshold:ur(0,fo(1,l))||1},A=!0;function I(j){let R=j[0].intersectionRatio;if(R!==l){if(!A)return a();R?a(!1,R):n=setTimeout(()=>{a(!1,1e-7)},100)}A=!1}try{r=new IntersectionObserver(I,{...E,root:i.ownerDocument})}catch{r=new IntersectionObserver(I,E)}r.observe(e)}return a(!0),o}function rv(e,t,r,n){n===void 0&&(n={});let{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=n,u=gs(e),c=i||o?[...u?Mn(u):[],...Mn(t)]:[];c.forEach(b=>{i&&b.addEventListener("scroll",r,{passive:!0}),o&&b.addEventListener("resize",r)});let f=u&&s?tv(u,r):null,d=-1,h=null;a&&(h=new ResizeObserver(b=>{let[E]=b;E&&E.target===u&&h&&(h.unobserve(t),cancelAnimationFrame(d),d=requestAnimationFrame(()=>{h&&h.observe(t)})),r()}),u&&!l&&h.observe(u),h.observe(t));let g,m=l?fr(e):null;l&&v();function v(){let b=fr(e);m&&(b.x!==m.x||b.y!==m.y||b.width!==m.width||b.height!==m.height)&&r(),m=b,g=requestAnimationFrame(v)}return r(),()=>{c.forEach(b=>{i&&b.removeEventListener("scroll",r),o&&b.removeEventListener("resize",r)}),f&&f(),h&&h.disconnect(),h=null,l&&cancelAnimationFrame(g)}}var nv=(e,t,r)=>{let n=new Map,i={platform:ev,...r},o={...i.platform,_c:n};return Rg(e,t,{...i,platform:o})};function iv(e){e.magic("anchor",t=>{if(!t._x_anchor)throw"Alpine: No x-anchor directive found on element using $anchor...";return t._x_anchor}),e.interceptClone((t,r)=>{t&&t._x_anchor&&!r._x_anchor&&(r._x_anchor=t._x_anchor)}),e.directive("anchor",e.skipDuringClone((t,{expression:r,modifiers:n,value:i},{evaluate:o,effect:a,cleanup:s})=>{let{placement:l,offsetValue:u,unstyled:c,strategy:f,allowFlip:d}=_f(n);t._x_anchor=e.reactive({x:0,y:0});let h=null,g=null;a(()=>{let m=o(r);if(!!m&&h!==m){g&&g(),h=m;let v=()=>{let b;nv(m,t,{placement:l,strategy:f,middleware:[d&&Dg(),$g({padding:5}),Lg(u)]}).then(({x:E,y:A})=>{c||wf(t,E,A,f),JSON.stringify({x:E,y:A})!==b&&(t._x_anchor.x=E,t._x_anchor.y=A),b=JSON.stringify({x:E,y:A})})};g=rv(m,t,()=>v())}}),s(()=>{g&&g()})},(t,{expression:r,modifiers:n,value:i},{cleanup:o,evaluate:a})=>{let{placement:s,offsetValue:l,unstyled:u,strategy:c}=_f(n);t._x_anchor&&(u||wf(t,t._x_anchor.x,t._x_anchor.y,c))}))}function wf(e,t,r,n="absolute"){Object.assign(e.style,{left:t+"px",top:r+"px",position:n})}function _f(e){let r=["top","top-start","top-end","right","right-start","right-end","bottom","bottom-start","bottom-end","left","left-start","left-end"].find(s=>e.includes(s)),n=0;if(e.includes("offset")){let s=e.findIndex(l=>l==="offset");n=e[s+1]!==void 0?Number(e[s+1]):n}let i=e.includes("no-style"),o=!e.includes("noflip"),a=e.includes("fixed")?"fixed":"absolute";return{placement:r,offsetValue:n,unstyled:i,strategy:a,allowFlip:o}}var If=iv;function In(e){if(e!==void 0)return JSON.parse(JSON.stringify(e))}function Rf(e){let t={queued:!1,updates:{},add(r){Object.assign(t.updates,r),!t.queued&&(t.queued=!0,queueMicrotask(t.flush))},flush(){Object.keys(t.updates).length&&e(t.updates),t.queued=!1,t.updates={}}};return t}var vs=class{constructor(){this.url=null,this.errorHandlers={},this.batch=Rf(t=>{let r=this.getUrl();this.writeToHistory("replaceState",r,n=>(n.alpine={...n.alpine,...In(t)},n)),this.url=null})}addErrorHandler(t,r){this.errorHandlers[t]=r}getUrl(){return this.url?(this.url instanceof URL&&(this.url.hash=window.location.hash),this.url):new URL(window.location.href)}replaceState(t,r){this.url=t,this.batch.add(r)}pushState(t,r){this.batch.flush(),this.writeToHistory("pushState",t,n=>(n={alpine:{...n.alpine,...In(r)}},n))}writeToHistory(t,r,n){let i=window.history.state||{};i.alpine||(i.alpine={}),i=n(i);try{window.history[t](i,"",r.toString())}catch(o){Object.values(this.errorHandlers).forEach(a=>typeof a=="function"&&a(o,r)),this.errorHandlers={},console.error(o)}}},ov=new vs,St=ov;var Rn=class{constructor(t,r){this.url=t,this.html=r}},Ue={currentKey:null,currentUrl:null,keys:[],lookup:{},limit:10,has(e){return this.lookup[e]!==void 0},retrieve(e){let t=this.lookup[e];if(t===void 0)throw"No back button cache found for current location: "+e;return t},replace(e,t){this.has(e)?this.lookup[e]=t:this.push(e,t)},push(e,t){this.lookup[e]=t;let r=this.keys.indexOf(e);r>-1&&this.keys.splice(r,1),this.keys.unshift(e),this.trim()},trim(){for(let e of this.keys.splice(this.limit))delete this.lookup[e]}},_o=null;function Eo(e){_o=e}function Df(){let e=St.getUrl();ys(e,document.documentElement.outerHTML)}function Ff(e,t){let r=document.documentElement.outerHTML;Ue.replace(e,new Rn(t,r))}function Lf(e,t){let r;e(n=>r=n),window.addEventListener("popstate",n=>{let i=n.state||{},o=i.alpine||{};if(_o&&(_o<200||_o>=300))return window.location.href=o.url;if(Object.keys(i).length!==0&&!!o.snapshotIdx)if(Ue.has(o.snapshotIdx)){let a=Ue.retrieve(o.snapshotIdx);t(a.html,a.url,Ue.currentUrl,Ue.currentKey),Ue.currentKey=o.snapshotIdx,Ue.currentUrl=a.url}else Ue.currentKey=null,Ue.currentUrl=null,r(o.url)})}function $f(e,t){av(t,e)}function av(e,t){jf("pushState",e,t)}function ys(e,t){jf("replaceState",e,t)}function jf(e,t,r){let n=t.toString()+"-"+Math.random();e==="pushState"?Ue.push(n,new Rn(t,r)):Ue.replace(n=Ue.currentKey??n,new Rn(t,r)),St.addErrorHandler("navigate",i=>{i instanceof DOMException&&i.name==="SecurityError"&&console.error("Livewire: You can't use wire:navigate with a link to a different root domain: "+t)}),St[e](t,{snapshotIdx:n,url:t.toString()}),Ue.currentKey=n,Ue.currentUrl=t}function Uf(e,t){let r=o=>!o.isTrusted,n=o=>o.which>1||o.altKey||o.ctrlKey||o.metaKey||o.shiftKey,i=o=>o.which!==13||o.altKey||o.ctrlKey||o.metaKey||o.shiftKey;e.addEventListener("click",o=>{if(r(o)){o.preventDefault(),t(a=>a());return}n(o)||o.preventDefault()}),e.addEventListener("mousedown",o=>{n(o)||(o.preventDefault(),t(a=>{let s=l=>{l.preventDefault(),requestAnimationFrame(()=>{a()}),e.removeEventListener("mouseup",s)};e.addEventListener("mouseup",s)}))}),e.addEventListener("keydown",o=>{i(o)||(o.preventDefault(),t(a=>a()))})}function Bf(e,t=60,r){e.addEventListener("mouseenter",n=>{let i=setTimeout(()=>{r(n)},t),o=()=>{clearTimeout(i),e.removeEventListener("mouseleave",o)};e.addEventListener("mouseleave",o)})}function bs(e){return Dn(e.getAttribute("href"))}function Dn(e){return e!==null&&new URL(e,document.baseURI)}function Kr(e){return e.pathname+e.search+e.hash}function Hf(e,t,r){let n=Kr(e);ws(n,(i,o,a)=>{Eo(a),t(i,o)},r)}function ws(e,t,r){Vu(e,t,r)}var Be={},sv=3e4;function _s(e,t,r){let n=Kr(e);Be[n]||(Be[n]={finished:!1,html:null,whenFinished:()=>setTimeout(()=>delete Be[n],sv)},ws(n,(i,o,a)=>{Eo(a),t(i,o)},()=>{delete Be[n],r()}))}function Es(e,t,r){let n=Be[Kr(t)];n.html=e,n.finished=!0,n.finalDestination=r,n.whenFinished()}function qf(e,t,r){let n=Kr(e);if(!Be[n])return r();if(Be[n].finished){let i=Be[n].html,o=Be[n].finalDestination;return delete Be[n],t(i,o)}else Be[n].whenFinished=()=>{let i=Be[n].html,o=Be[n].finalDestination;delete Be[n],t(i,o)}}var xo=le(ue());function xs(e){xo.default.mutateDom(()=>{e.querySelectorAll("[data-teleport-template]").forEach(t=>t._x_teleport.remove())})}function Ss(e){xo.default.mutateDom(()=>{e.querySelectorAll("[data-teleport-target]").forEach(t=>t.remove())})}function As(e){xo.default.walk(e,(t,r)=>{!t._x_teleport||(t._x_teleportPutBack(),r())})}function Wf(e){return e.hasAttribute("data-teleport-target")}function Os(){document.body.setAttribute("data-scroll-x",document.body.scrollLeft),document.body.setAttribute("data-scroll-y",document.body.scrollTop),document.querySelectorAll(["[x-navigate\\:scroll]","[wire\\:navigate\\:scroll]"]).forEach(e=>{e.setAttribute("data-scroll-x",e.scrollLeft),e.setAttribute("data-scroll-y",e.scrollTop)})}function Cs(){let e=t=>{t.hasAttribute("data-scroll-x")?(t.scrollTo({top:Number(t.getAttribute("data-scroll-y")),left:Number(t.getAttribute("data-scroll-x")),behavior:"instant"}),t.removeAttribute("data-scroll-x"),t.removeAttribute("data-scroll-y")):window.scrollTo({top:0,left:0,behavior:"instant"})};queueMicrotask(()=>{queueMicrotask(()=>{e(document.body),document.querySelectorAll(["[x-navigate\\:scroll]","[wire\\:navigate\\:scroll]"]).forEach(e)})})}var So=le(ue()),Fn={};function ks(e){Fn={},document.querySelectorAll("[x-persist]").forEach(t=>{Fn[t.getAttribute("x-persist")]=t,e(t),So.default.mutateDom(()=>{t.remove()})})}function Ts(e){let t=[];document.querySelectorAll("[x-persist]").forEach(r=>{let n=Fn[r.getAttribute("x-persist")];!n||(t.push(r.getAttribute("x-persist")),n._x_wasPersisted=!0,e(n,r),So.default.mutateDom(()=>{r.replaceWith(n)}))}),Object.entries(Fn).forEach(([r,n])=>{t.includes(r)||So.default.destroyTree(n)}),Fn={}}function zf(e){return e.hasAttribute("x-persist")}var Ln=le(Vf());Ln.default.configure({minimum:.1,trickleSpeed:200,showSpinner:!1,parent:"body"});lv();var Ms=!1;function Gf(){Ms=!0,setTimeout(()=>{!Ms||Ln.default.start()},150)}function $n(){Ms=!1,Ln.default.done()}function Jf(){Ln.default.remove()}function lv(){let e=document.createElement("style");e.innerHTML=`/* Make clicks pass-through */ + + #nprogress { + pointer-events: none; + } + + #nprogress .bar { + background: var(--livewire-progress-bar-color, #29d); + + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; + } + + /* Fancy blur effect */ + #nprogress .peg { + display: block; + position: absolute; + right: 0px; + width: 100px; + height: 100%; + box-shadow: 0 0 10px var(--livewire-progress-bar-color, #29d), 0 0 5px var(--livewire-progress-bar-color, #29d); + opacity: 1.0; + + -webkit-transform: rotate(3deg) translate(0px, -4px); + -ms-transform: rotate(3deg) translate(0px, -4px); + transform: rotate(3deg) translate(0px, -4px); + } + + /* Remove these to get rid of the spinner */ + #nprogress .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 15px; + right: 15px; + } + + #nprogress .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + + border: solid 2px transparent; + border-top-color: var(--livewire-progress-bar-color, #29d); + border-left-color: var(--livewire-progress-bar-color, #29d); + border-radius: 50%; + + -webkit-animation: nprogress-spinner 400ms linear infinite; + animation: nprogress-spinner 400ms linear infinite; + } + + .nprogress-custom-parent { + overflow: hidden; + position: relative; + } + + .nprogress-custom-parent #nprogress .spinner, + .nprogress-custom-parent #nprogress .bar { + position: absolute; + } + + @-webkit-keyframes nprogress-spinner { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); } + } + @keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + `;let t=wr();t&&(e.nonce=t),document.head.appendChild(e)}function Ps(e){!Yf()||e.querySelectorAll(":popover-open").forEach(t=>{t.setAttribute("data-navigate-popover-open","");let r=t.getAnimations();t._pausedAnimations=r.map(n=>({keyframes:n.effect.getKeyframes(),options:{duration:n.effect.getTiming().duration,easing:n.effect.getTiming().easing,fill:n.effect.getTiming().fill,iterations:n.effect.getTiming().iterations},currentTime:n.currentTime,playState:n.playState})),r.forEach(n=>n.pause())})}function Is(e){!Yf()||e.querySelectorAll("[data-navigate-popover-open]").forEach(t=>{t.removeAttribute("data-navigate-popover-open"),queueMicrotask(()=>{!t.isConnected||(t.showPopover(),t.getAnimations().forEach(r=>r.finish()),t._pausedAnimations&&(t._pausedAnimations.forEach(({keyframes:r,options:n,currentTime:i,now:o,playState:a})=>{let s=t.animate(r,n);s.currentTime=i}),delete t._pausedAnimations))})})}function Yf(){return typeof document.createElement("div").showPopover=="function"}var Rs=[],Ao=["data-csrf","nonce","aria-hidden"];function Ds(e,t){e=li(e);let r=new DOMParser().parseFromString(e,"text/html"),n=r.documentElement,i=document.adoptNode(r.body),o=document.adoptNode(r.head);Rs=Rs.concat(Array.from(document.body.querySelectorAll("script")).map(l=>td(Oo(l.outerHTML,Ao))));let a=()=>{};cv(n),fv(o).finally(()=>{a()}),uv(i,Rs);let s=document.body;document.body.replaceWith(i),Alpine.destroyTree(s),t(l=>a=l)}function uv(e,t){e.querySelectorAll("script").forEach(r=>{if(r.hasAttribute("data-navigate-once")){let n=td(Oo(r.outerHTML,Ao));if(t.includes(n))return}r.replaceWith(tn(r))})}function cv(e){let t=document.documentElement;Array.from(e.attributes).forEach(r=>{let n=r.name,i=r.value;t.getAttribute(n)!==i&&t.setAttribute(n,i)}),Array.from(t.attributes).forEach(r=>{e.hasAttribute(r.name)||t.removeAttribute(r.name)})}function fv(e){let t=Array.from(document.head.children),r=t.map(a=>Oo(a.outerHTML,Ao)),n=document.createDocumentFragment(),i=[],o=[];for(let a of Array.from(e.children))if(Zf(a)){let s=Oo(a.outerHTML,Ao);if(r.includes(s))n.appendChild(a);else if(Qf(a)&&pv(a,t)&&setTimeout(()=>window.location.reload()),ed(a))try{o.push(dv(tn(a)))}catch{}else document.head.appendChild(a);i.push(a)}for(let a of Array.from(document.head.children))Zf(a)||a.remove();for(let a of Array.from(e.children))a.tagName.toLowerCase()!=="noscript"&&document.head.appendChild(a);return Promise.all(o)}async function dv(e){return new Promise((t,r)=>{e.src?(e.onload=()=>t(),e.onerror=()=>r()):t(),document.head.appendChild(e)})}function Qf(e){return e.hasAttribute("data-navigate-track")}function pv(e,t){let[r,n]=Xf(e);return t.some(i=>{if(!Qf(i))return!1;let[o,a]=Xf(i);if(o===r&&n!==a)return!0})}function Xf(e){return(ed(e)?e.src:e.href).split("?")}function Zf(e){return e.tagName.toLowerCase()==="link"&&e.getAttribute("rel").toLowerCase()==="stylesheet"||e.tagName.toLowerCase()==="style"||e.tagName.toLowerCase()==="script"}function ed(e){return e.tagName.toLowerCase()==="script"}function td(e){return e.split("").reduce((t,r)=>(t=(t<<5)-t+r.charCodeAt(0),t&t),0)}function Oo(e,t){let r=e;return t.forEach(n=>{let i=new RegExp(`${n}="[^"]*"|${n}='[^']*'`,"g");r=r.replace(i,"")}),r=r.replaceAll(" ",""),r.trim()}var Co=!0,Vr=!0,hv=!0,rd=!1;function ad(e){e.navigate=(r,n={})=>{let{preserveScroll:i=!1}=n,o=Dn(r);At("alpine:navigate",{url:o,history:!1,cached:!1})||t(o,{preserveScroll:i})},e.navigate.disableProgressBar=()=>{Vr=!1},e.addInitSelector(()=>`[${e.prefixed("navigate")}]`),e.directive("navigate",(r,{modifiers:n})=>{let i=n.includes("hover"),o=n.includes("preserve-scroll");i&&Bf(r,60,()=>{let a=bs(r);!a||_s(a,(s,l)=>{Es(s,a,l)},()=>{Vr&&$n()})}),Uf(r,a=>{let s=bs(r);!s||(_s(s,(l,u)=>{Es(l,s,u)},()=>{Vr&&$n()}),a(()=>{At("alpine:navigate",{url:s,history:!1,cached:!1})||t(s,{preserveScroll:o})}))})});function t(r,{preserveScroll:n=!1,shouldPushToHistoryState:i=!0}){Vr&&Gf(),mv(r,(o,a)=>{let s=[];At("alpine:navigating",{onSwap:l=>s.push(l)}),hv&&Os(),gv(),i&&Df(),nd(e,l=>{Co&&ks(u=>{xs(u),Ps(u)}),i?$f(o,a):ys(a,o),Ds(o,u=>{Ss(document.body),Co&&Ts((c,f)=>{As(c),Is(c)}),!n&&Cs(),s.forEach(c=>c()),u(()=>{l(()=>{setTimeout(()=>{rd&&od()}),id(e),At("alpine:navigated"),Vr&&$n()})})})})},()=>{Vr&&$n()})}Lf(r=>{r(n=>{let i=Dn(n);At("alpine:navigate",{url:i,history:!0,cached:!1})||t(i,{shouldPushToHistoryState:!1})})},(r,n,i,o)=>{let a=Dn(n);if(At("alpine:navigate",{url:a,history:!0,cached:!0}))return;Os();let l=[];At("alpine:navigating",{onSwap:u=>l.push(u)}),Ff(o,i),nd(e,u=>{Co&&ks(c=>{xs(c),Ps(c)}),Ds(r,()=>{Jf(),Ss(document.body),Co&&Ts((c,f)=>{As(c),Is(c)}),Cs(),l.forEach(c=>c()),u(()=>{rd&&od(),id(e),At("alpine:navigated")})})})}),setTimeout(()=>{At("alpine:navigated")})}function mv(e,t,r){qf(e,t,()=>{Hf(e,t,r)})}function nd(e,t){e.stopObservingMutations(),t(r=>{e.startObservingMutations(),queueMicrotask(()=>{r()})})}function At(e,t){let r=new CustomEvent(e,{cancelable:!0,bubbles:!0,detail:t});return document.dispatchEvent(r),r.defaultPrevented}function id(e){e.initTree(document.body,void 0,(t,r)=>{t._x_wasPersisted&&r()})}function od(){document.querySelector("[autofocus]")&&document.querySelector("[autofocus]").focus()}function gv(){let e=function(t,r){Alpine.walk(t,(n,i)=>{zf(n)&&i(),Wf(n)?i():r(n,i)})};Alpine.destroyTree(document.body,e)}function Fs(e){e.magic("queryString",(t,{interceptor:r})=>{let n,i=!1,o=!1;return r((a,s,l,u,c)=>{let f=n||u,{initial:d,replace:h,push:g,pop:m}=To(f,a,i);return l(d),o?(e.effect(()=>g(s())),m(async v=>{l(v),await(()=>Promise.resolve())()})):e.effect(()=>h(s())),d},a=>{a.alwaysShow=()=>(i=!0,a),a.usePush=()=>(o=!0,a),a.as=s=>(n=s,a)})}),e.history={track:To}}function To(e,t,r=!1,n=null){let{has:i,get:o,set:a,remove:s}=yv(),l=St.getUrl(),u=i(l,e),c=u?o(l,e):t,f=JSON.stringify(c),d=JSON.stringify(n),h=b=>JSON.stringify(b)===f,g=b=>JSON.stringify(b)===d;r&&(l=a(l,e,c)),sd(l,e,{value:c});let m=!1,v=(b,E)=>{if(m)return;let A=St.getUrl();!r&&!u&&h(E)||E===void 0||!r&&g(E)?A=s(A,e):A=a(A,e,E),b(A,e,{value:E})};return{initial:c,replace(b){v(sd,b)},push(b){v(vv,b)},pop(b){let E=A=>{!A.state||!A.state.alpine||Object.entries(A.state.alpine).forEach(([I,{value:j}])=>{if(I!==e)return;m=!0;let R=b(j);R instanceof Promise?R.finally(()=>m=!1):m=!1})};return window.addEventListener("popstate",E),()=>window.removeEventListener("popstate",E)}}}function sd(e,t,r){St.replaceState(e,{[t]:r})}function vv(e,t,r){St.pushState(e,{[t]:r})}function yv(){return{has(e,t){let r=e.search;if(!r)return!1;let n=ko(r,t);return Object.keys(n).includes(t)},get(e,t){let r=e.search;return r?ko(r,t)[t]:!1},set(e,t,r){let n=ko(e.search,t);return n[t]=ud(In(r)),e.search=ld(n),e},remove(e,t){let r=ko(e.search,t);return delete r[t],e.search=ld(r),e}}}function ud(e){if(!Ht(e))return e;for(let t in e)e[t]===null?delete e[t]:e[t]=ud(e[t]);return e}function ld(e){let t=i=>typeof i=="object"&&i!==null,r=(i,o={},a="")=>(Object.entries(i).forEach(([s,l])=>{let u=a===""?s:`${a}[${s}]`;l===null?o[u]="":t(l)?o={...o,...r(l,o,u)}:o[u]=encodeURIComponent(l).replaceAll("%20","+").replaceAll("%2C",",")}),o),n=r(e);return Object.entries(n).map(([i,o])=>`${i}=${o}`).join("&")}function ko(e,t){if(e=e.replace("?",""),e==="")return{};let r=(o,a,s)=>{let[l,u,...c]=o.split(".");if(!u)return s[o]=a;s[l]===void 0&&(s[l]=isNaN(u)?{}:[]),r([u,...c].join("."),a,s[l])},n=e.split("&").map(o=>o.split("=")),i=Object.create(null);return n.forEach(([o,a])=>{if(typeof a>"u")return;a=decodeURIComponent(a.replaceAll("+","%20"));let s=decodeURIComponent(o);if(!(s.includes("[")&&s.startsWith(t)))i[o]=a;else{let u=s.replaceAll("[",".").replaceAll("]","");r(u,a,i)}}),i}function Ls(e,t,r){pd();let n=dd(r),i=typeof t=="string"?_v(t):t;return window.Alpine&&window.Alpine.closestDataStack&&!e._x_dataStack&&(i._x_dataStack=window.Alpine.closestDataStack(e),i._x_dataStack&&window.Alpine.cloneNode(e,i)),n.patch(e,i),e}function bv(e,t,r,n={}){pd();let i=dd(n),o=e.parentNode,a=new Un(e,t),s=typeof r=="string"?(()=>{let f=document.createElement("div");return f.insertAdjacentHTML("beforeend",r),f})():r,l=document.createComment("[morph-start]"),u=document.createComment("[morph-end]");s.insertBefore(l,s.firstChild),s.appendChild(u);let c=new Un(l,u);window.Alpine&&window.Alpine.closestDataStack&&(s._x_dataStack=window.Alpine.closestDataStack(o),s._x_dataStack&&window.Alpine.cloneNode(o,s)),i.patchChildren(a,c)}function dd(e={}){let t=i=>i.getAttribute("key"),r=()=>{},n={key:e.key||t,lookahead:e.lookahead||!1,updating:e.updating||r,updated:e.updated||r,removing:e.removing||r,removed:e.removed||r,adding:e.adding||r,added:e.added||r};return n.patch=function(i,o){if(n.differentElementNamesTypesOrKeys(i,o))return n.swapElements(i,o);let a=!1,s=!1,l=u=>n.skipUntilCondition=u;if(!wv(n.updating,()=>s=!0,l,i,o,()=>a=!0)){if(i.nodeType===1&&window.Alpine&&(window.Alpine.cloneNode(i,o),i._x_teleport&&o._x_teleport&&n.patch(i._x_teleport,o._x_teleport)),Ev(o)){n.patchNodeValue(i,o),n.updated(i,o);return}a||n.patchAttributes(i,o),n.updated(i,o),s||n.patchChildren(i,o)}},n.differentElementNamesTypesOrKeys=function(i,o){return i.nodeType!=o.nodeType||i.nodeName!=o.nodeName||n.getKey(i)!=n.getKey(o)},n.swapElements=function(i,o){if(jn(n.removing,i))return;let a=o.cloneNode(!0);jn(n.adding,a)||(i.replaceWith(a),n.removed(i),n.added(a))},n.patchNodeValue=function(i,o){let a=o.nodeValue;i.nodeValue!==a&&(i.nodeValue=a)},n.patchAttributes=function(i,o){if(i._x_transitioning||i._x_isShown&&!o._x_isShown||!i._x_isShown&&o._x_isShown)return;let a=Array.from(i.attributes),s=Array.from(o.attributes);for(let l=a.length-1;l>=0;l--){let u=a[l].name;o.hasAttribute(u)||(u==="open"&&i.nodeName==="DIALOG"&&i.open?i.close():i.removeAttribute(u))}for(let l=s.length-1;l>=0;l--){let u=s[l].name,c=s[l].value;i.getAttribute(u)!==c&&i.setAttribute(u,c)}},n.patchChildren=function(i,o){let a=n.keyToMap(i.children),s={},l=fd(o),u=fd(i);for(;l;){xv(l,u);let f=n.getKey(l),d=n.getKey(u);if(n.skipUntilCondition){let v=!u||n.skipUntilCondition(u),b=!l||n.skipUntilCondition(l);if(v&&b)n.skipUntilCondition=null;else{v||(u=u&&He(i,u)),b||(l=l&&He(o,l));continue}}if(!u)if(f&&s[f]){let v=s[f];i.appendChild(v),u=v,d=n.getKey(u)}else{if(!jn(n.adding,l)){let v=l.cloneNode(!0);i.appendChild(v),n.added(v)}l=He(o,l);continue}let h=v=>v&&v.nodeType===8&&v.textContent==="[if BLOCK]><![endif]",g=v=>v&&v.nodeType===8&&v.textContent==="[if ENDBLOCK]><![endif]";if(h(l)&&h(u)){let v=0,b=u;for(;u;){let F=He(i,u);if(h(F))v++;else if(g(F)&&v>0)v--;else if(g(F)&&v===0){u=F;break}u=F}let E=u;v=0;let A=l;for(;l;){let F=He(o,l);if(h(F))v++;else if(g(F)&&v>0)v--;else if(g(F)&&v===0){l=F;break}l=F}let I=l,j=new Un(b,E),R=new Un(A,I);n.patchChildren(j,R);continue}if(u.nodeType===1&&n.lookahead&&!u.isEqualNode(l)){let v=He(o,l),b=!1;for(;!b&&v;)v.nodeType===1&&u.isEqualNode(v)&&(b=!0,u=n.addNodeBefore(i,l,u),d=n.getKey(u)),v=He(o,v)}if(f!==d){if(!f&&d){s[d]=u,u=n.addNodeBefore(i,l,u),s[d].remove(),u=He(i,u),l=He(o,l);continue}if(f&&!d&&a[f]&&(u.replaceWith(a[f]),u=a[f],d=n.getKey(u)),f&&d){let v=a[f];if(v)s[d]=u,u.replaceWith(v),u=v,d=n.getKey(u);else{s[d]=u,u=n.addNodeBefore(i,l,u),s[d].remove(),u=He(i,u),l=He(o,l);continue}}}let m=u&&He(i,u);n.patch(u,l),l=l&&He(o,l),u=m}let c=[];for(;u;)jn(n.removing,u)||c.push(u),u=He(i,u);for(;c.length;){let f=c.shift();f.remove(),n.removed(f)}},n.getKey=function(i){return i&&i.nodeType===1&&n.key(i)},n.keyToMap=function(i){let o={};for(let a of i){let s=n.getKey(a);s&&(o[s]=a)}return o},n.addNodeBefore=function(i,o,a){if(!jn(n.adding,o)){let s=o.cloneNode(!0);return i.insertBefore(s,a),n.added(s),s}return o},n}Ls.step=()=>{};Ls.log=()=>{};function jn(e,...t){let r=!1;return e(...t,()=>r=!0),r}function wv(e,t,r,...n){let i=!1;return e(...n,()=>i=!0,t,r),i}var cd=!1;function _v(e){let t=document.createElement("template");return t.innerHTML=e,t.content.firstElementChild}function Ev(e){return e.nodeType===3||e.nodeType===8}var Un=class{constructor(e,t){this.startComment=e,this.endComment=t}get children(){let e=[],t=this.startComment.nextSibling;for(;t&&t!==this.endComment;)e.push(t),t=t.nextSibling;return e}appendChild(e){this.endComment.before(e)}get firstChild(){let e=this.startComment.nextSibling;if(e!==this.endComment)return e}nextNode(e){let t=e.nextSibling;if(t!==this.endComment)return t}insertBefore(e,t){return t.before(e),e}};function fd(e){return e.firstChild}function He(e,t){let r;return e instanceof Un?r=e.nextNode(t):r=t.nextSibling,r}function pd(){if(cd)return;cd=!0;let e=Element.prototype.setAttribute,t=document.createElement("div");Element.prototype.setAttribute=function(n,i){if(!n.includes("@"))return e.call(this,n,i);let o=i.replace(/&/g,"&").replace(/"/g,""");t.innerHTML=`<span ${n}="${o}"></span>`;let a=t.firstElementChild.getAttributeNode(n);t.firstElementChild.removeAttributeNode(a),this.setAttributeNode(a)}}function xv(e,t){let r=t&&t._x_bindings&&t._x_bindings.id;!r||!e.setAttribute||(e.setAttribute("id",r),e.id=r)}function Sv(e){e.morph=Ls,e.morphBetween=bv}var hd=Sv;function Av(e){e.directive("mask",(t,{value:r,expression:n},{effect:i,evaluateLater:o,cleanup:a})=>{let s=()=>n,l="";queueMicrotask(()=>{if(["function","dynamic"].includes(r)){let f=o(n);i(()=>{s=d=>{let h;return e.dontAutoEvaluateFunctions(()=>{f(g=>{h=typeof g=="function"?g(d):g},{scope:{$input:d,$money:Cv.bind({el:t})}})}),h},c(t,!1)})}else c(t,!1);if(t._x_model){t._x_model.get()!==t.value&&(t._x_model.get()===null&&t.value===""||t._x_model.set(t.value));let f=t._x_forceModelUpdate;t._x_forceModelUpdate=d=>{d=String(d);let h=s(d);h&&h!=="false"&&(d=$s(h,d)),l=d,f(d),t._x_model.set(d)}}});let u=new AbortController;a(()=>{u.abort()}),t.addEventListener("input",()=>c(t),{signal:u.signal,capture:!0}),t.addEventListener("blur",()=>c(t,!1),{signal:u.signal});function c(f,d=!0){let h=f.value,g=s(h);if(!g||g==="false")return!1;if(l.length-f.value.length===1)return l=f.value;let m=()=>{l=f.value=$s(g,h)};d?Ov(f,g,()=>{m()}):m()}}).before("model")}function Ov(e,t,r){let n=e.selectionStart,i=e.value;r();let o=i.slice(0,n),a=$s(t,o).length;e.setSelectionRange(a,a)}var md={9:/[0-9]/,a:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/};function $s(e,t){let r=0,n=0,i="";for(;r<e.length&&n<t.length;){let o=e[r],a=t[n];o in md?(md[o].test(a)&&(i+=a,r++),n++):(i+=o,r++,o===t[n]&&n++)}return i}function Cv(e,t=".",r,n=2){if(e==="-")return"-";if(/^\D+$/.test(e))return"9";r==null&&(r=t===","?".":",");let i=(l,u)=>{let c="",f=0;for(let d=l.length-1;d>=0;d--)l[d]!==u&&(f===3?(c=l[d]+u+c,f=0):c=l[d]+c,f++);return c},o=e.startsWith("-")?"-":"",a=e.replaceAll(new RegExp(`[^0-9\\${t}]`,"g"),""),s=Array.from({length:a.split(t)[0].length}).fill("9").join("");return s=`${o}${i(s,r)}`,n>0&&e.includes(t)&&(s+=`${t}`+"9".repeat(n)),queueMicrotask(()=>{this.el.value.endsWith(t)||this.el.value[this.el.selectionStart-1]===t&&this.el.setSelectionRange(this.el.selectionStart-1,this.el.selectionStart-1)}),s}var gd=Av;var he=le(ue());function vd(){setTimeout(()=>kv()),oi(document,"livewire:init"),oi(document,"livewire:initializing"),he.default.plugin(hd),he.default.plugin(Fs),he.default.plugin(Bc),he.default.plugin(df),he.default.plugin(hf),he.default.plugin(yc),he.default.plugin(If),he.default.plugin(Fc),he.default.plugin(Uc),he.default.plugin(ad),he.default.plugin(gd),he.default.addRootSelector(()=>"[wire\\:id]"),he.default.onAttributesAdded((e,t)=>{if(!Array.from(t).some(n=>Mt(n.name)))return;let r=Ae(e,!1);!r||t.forEach(n=>{if(!Mt(n.name))return;let i=st(e,n.name);ne("directive.init",{el:e,component:r,directive:i,cleanup:o=>{he.default.onAttributeRemoved(e,i.raw,o)}})})}),he.default.interceptInit(he.default.skipDuringClone(e=>{if(!Array.from(e.attributes).some(n=>Mt(n.name)))return;if(e.hasAttribute("wire:id")&&!e.__livewire&&!cc(e.getAttribute("wire:id"))){let n=lc(e);he.default.onAttributeRemoved(e,"wire:id",()=>{uc(n.id)})}let t=Array.from(e.getAttributeNames()).filter(n=>Mt(n)).map(n=>st(e,n));t.forEach(n=>{ne("directive.global.init",{el:e,directive:n,cleanup:i=>{he.default.onAttributeRemoved(e,n.raw,i)}})});let r=Ae(e,!1);r&&(ne("element.init",{el:e,component:r}),t.forEach(n=>{ne("directive.init",{el:e,component:r,directive:n,cleanup:i=>{he.default.onAttributeRemoved(e,n.raw,i)}})}))},e=>{if(!Array.from(e.attributes).some(r=>Mt(r.name)))return;Array.from(e.getAttributeNames()).filter(r=>Mt(r)).map(r=>st(e,r)).forEach(r=>{ne("directive.global.init",{el:e,directive:r,cleanup:n=>{he.default.onAttributeRemoved(e,r.raw,n)}})})})),he.default.start(),setTimeout(()=>window.Livewire.initialRenderIsFinished=!0),oi(document,"livewire:initialized")}function kv(){let e=document.querySelector("script[data-update-uri][data-csrf]");if(!e)return;let t=e.closest("[wire\\:id]");t&&console.warn("Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.",t)}var rl=le(ue());J("effect",({component:e,effects:t})=>{Tv(e,t.listeners||[])});function Tv(e,t){t.forEach(r=>{let n=i=>{e.isLazy&&!e.hasBeenLazyLoaded||(i.__livewire&&i.__livewire.receivedBy.push(e),e.$wire.call("__dispatch",r,i.detail||{}))};window.addEventListener(r,n),e.addCleanup(()=>window.removeEventListener(r,n)),e.el.addEventListener(r,i=>{e.isLazy&&!e.hasBeenLazyLoaded||!i.__livewire||i.bubbles||(i.__livewire&&i.__livewire.receivedBy.push(e.id),e.$wire.call("__dispatch",r,i.detail||{}))})})}var yd=le(ue());var js=le(ue());function Nv(e){let t=[],r=e;for(;r;){if(r._x_dataStack&&r._x_dataStack.length>0){let n=r._x_dataStack[0];for(let i of Object.keys(n))!t.includes(i)&&!i.startsWith("$")&&t.push(i)}if(r.hasAttribute&&r.hasAttribute("wire:id"))break;r=r.parentElement}return t}function Bn(e,t,r={}){if(!t||t.trim()==="")return;let n=js.default.evaluateRaw(e,t,r);return n instanceof Promise&&n.catch(()=>{}),n}function Ie(e,t,r={}){if(!t||t.trim()==="")return;let n=Mv(t,e);try{let i=js.default.evaluateRaw(e,n,r);return i instanceof Promise&&i._livewireAction&&i.catch(()=>{}),i}catch(i){console.warn(`Livewire Expression Error: ${i.message} + +${t?'Expression: "'+t+`" + +`:""}`,e),console.error(i)}}function Mv(e,t){let r=["JSON","true","false","null","undefined","this","$wire","$event"];t&&r.push(...Nv(t));let n=[],i=e.replace(/(["'`])(?:(?!\1)[^\\]|\\.)*\1/g,o=>(n.push(o),`___${n.length-1}___`));return i=i.replace(/(^|[^.\w$])(\$?[a-zA-Z_]\w*)/g,(o,a,s,l)=>r.includes(s)||/^___\d+___$/.test(s)||i[l+o.length]===":"?a+s:a+"$wire."+s),i.replace(/___(\d+)___/g,(o,a)=>n[a])}var Gr=new WeakMap,No=new Set;J("payload.intercept",async({assets:e})=>{if(!!e)for(let[t,r]of Object.entries(e))await Rv(t,async()=>{await Dv(r)})});J("component.init",({component:e})=>{let t=e.snapshot.memo.assets;t&&t.forEach(r=>{No.has(r)||No.add(r)})});J("effect",({component:e,effects:t})=>{let r=t.scripts;r&&Object.entries(r).forEach(([n,i])=>{Pv(e,n,()=>{let o=Iv(i);o=o.includes("await")?`(async()=>{ ${o} })()`:`(()=>{ ${o} })()`,yd.default.dontAutoEvaluateFunctions(()=>{Bn(e.el,o,{context:e.$wire,scope:{$wire:e.$wire,$js:e.$wire.js}})})})})});function Pv(e,t,r){if(Gr.has(e)&&Gr.get(e).includes(t))return;r(),Gr.has(e)||Gr.set(e,[]);let n=Gr.get(e);n.push(t),Gr.set(e,n)}function Iv(e){let r=/<script\b[^>]*>([\s\S]*?)<\/script>/gm.exec(e);return r&&r[1]?r[1].trim():""}async function Rv(e,t){No.has(e)||(No.add(e),await t())}async function Dv(e){e=li(e);let t=new DOMParser().parseFromString(e,"text/html"),r=document.adoptNode(t.head);for(let n of r.children)try{await Fv(n)}catch{}}async function Fv(e){return new Promise((t,r)=>{if(Lv(e)){let n=tn(e);n.src?(n.onload=()=>t(),n.onerror=()=>r()):t(),document.head.appendChild(n)}else document.head.appendChild(e),t()})}function Lv(e){return e.tagName.toLowerCase()==="script"}var bd=le(ue());bd.default.magic("js",e=>Ae(e).$wire.js);J("effect",({component:e,effects:t})=>{let r=t.js,n=t.xjs;r&&Object.entries(r).forEach(([i,o])=>{nc(e,i,()=>{Bn(e.el,o)})}),n&&n.forEach(({expression:i,params:o})=>{o=Object.values(o),Bn(e.el,i,{scope:e.getJsActions(),params:o})})});var Bs=le(ue());var $v="match-element";Ii("transition",({el:e,directive:t,cleanup:r})=>{});function wd(e,t={}){e.querySelectorAll("[wire\\:transition]").forEach(r=>{if(r.style.viewTransitionName)return;let n=r.getAttribute("wire:transition");!n&&t.type||(r.style.viewTransitionName=n||$v)})}function jv(e){e.querySelectorAll("[wire\\:transition]").forEach(t=>{t.style.viewTransitionName=""})}async function Us(e,t,r,n={}){if(n.skip||!e.querySelector("[wire\\:transition]")&&!t.querySelector("[wire\\:transition]")||typeof document.startViewTransition!="function"||document.querySelector("dialog:modal"))return r();wd(e,n);let i=document.createElement("style");i.textContent=` + @media (prefers-reduced-motion: reduce) { + ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { + animation: none !important; + } + } + + ::view-transition-old(root) { + animation: none !important; + opacity: 0 !important; + } + + ::view-transition-new(root) { + animation: none !important; + opacity: 1 !important; + } + `,document.head.appendChild(i);let o=()=>{r(),wd(e,n)},a={update:o};n.type&&(a.types=[n.type]);let s=()=>{i.remove(),jv(e)},l=u=>{let c=new MutationObserver(()=>{document.querySelector("dialog:modal")&&(u.skipTransition(),c.disconnect())});c.observe(document.documentElement,{attributes:!0,attributeFilter:["open"],subtree:!0}),u.finished.finally(()=>c.disconnect())};try{let u=document.startViewTransition(a);l(u),u.finished.finally(s),await u.updateCallbackDone}catch{let c=document.startViewTransition(o);l(c),c.finished.finally(s),await c.updateCallbackDone}}async function Ed(e,t,r){let n=Hn(t.parentElement),i=document.createElement(n);i.innerHTML=r;let o;try{o=Ae(t.parentElement)}catch{}o&&(i.__livewire=o);let a=i.firstElementChild;a.setAttribute("wire:snapshot",e.snapshotEncoded);let s={...e.effects};delete s.html,a.setAttribute("wire:effects",JSON.stringify(s)),a.__livewire=e,ne("morph",{el:t,toEl:a,component:e});let l={};t.querySelectorAll("[wire\\:id]").forEach(c=>{l[c.getAttribute("wire:id")]=c}),a.querySelectorAll("[wire\\:id]").forEach(c=>{if(c.hasAttribute("wire:snapshot"))return;let f=c.getAttribute("wire:id"),d=l[f];d&&c.replaceWith(d.cloneNode(!0))});let u=e.effects.transition||{};await Us(t,a,()=>{Bs.default.morph(t,a,xd(e))},u),ne("morphed",{el:t,component:e})}async function Mo(e,t,r,n){let i=t.parentElement,o=Hn(i),a=document.createElement(o);a.innerHTML=n,a.__livewire=e;let s=e.el.parentElement,l=Hn(s),u;try{u=s?Ae(s):null}catch{}if(u){let g=document.createElement(l);g.appendChild(a),g.__livewire=u}ne("island.morph",{startNode:t,endNode:r,component:e});let c=e.effects.transition||{},f=!1,d=t.nextSibling;for(;d&&d!==r;){if(d.nodeType===1&&(d.hasAttribute?.("wire:transition")||d.querySelector?.("[wire\\:transition]"))){f=!0;break}d=d.nextSibling}let h=f?i:document.createElement("div");await Us(h,a,()=>{Bs.default.morphBetween(t,r,a,xd(e))},c),ne("island.morphed",{startNode:t,endNode:r,component:e})}function xd(e){return{updating:(t,r,n,i,o,a)=>{if(nr(t)&&nr(r)){let s=ut(r);s.mode!=="morph"&&a(l=>Dr(l)?ut(l).token===s.token:!1)}if(!Jr(t)){if(ne("morph.updating",{el:t,toEl:r,component:e,skip:i,childrenOnly:n,skipChildren:o,skipUntil:a}),t.__livewire_replace===!0&&(t.innerHTML=r.innerHTML),t.__livewire_replace_self===!0)return t.outerHTML=r.outerHTML,i();if(t.__livewire_ignore===!0)return i();if(t.__livewire_ignore_self===!0&&n(),t.__livewire_ignore_children===!0)return o();if(_d(t)&&t.getAttribute("wire:id")!==e.id)return i();_d(t)&&(r.__livewire=e)}},updated:t=>{Jr(t)||ne("morph.updated",{el:t,component:e})},removing:(t,r)=>{Jr(t)||ne("morph.removing",{el:t,component:e,skip:r})},removed:t=>{Jr(t)||ne("morph.removed",{el:t,component:e})},adding:t=>{ne("morph.adding",{el:t,component:e})},added:t=>{Jr(t)||ne("morph.added",{el:t})},key:t=>{if(!Jr(t))return t.hasAttribute("wire:id")?t.getAttribute("wire:id"):t.hasAttribute("wire:key")?t.getAttribute("wire:key"):t.id},lookahead:!1}}function Jr(e){return typeof e.hasAttribute!="function"}function _d(e){return e.hasAttribute("wire:id")}function Hn(e){let t=e?e.tagName.toLowerCase():"div",r=customElements.get(t);return r?r.name:t}Ce(({message:e,onSuccess:t})=>{t(({payload:r,onMorph:n})=>{n(async()=>{let i=r.effects.html;!i||await Ed(e.component,e.component.el,i)})})});J("effect",({component:e,effects:t})=>{queueMicrotask(()=>{queueMicrotask(()=>{queueMicrotask(()=>{Uv(e,t.dispatches||[])})})})});function Uv(e,t){t.forEach(({name:r,params:n={},self:i=!1,component:o,ref:a,el:s})=>{i?vt(e,r,n):o?Rr(o,r,n):a?Li(e,a,r,n):s?Fi(e,s,r,n):Di(e,r,n)})}var Sd=le(ue()),Hs=new ni;J("directive.init",({el:e,directive:t,cleanup:r,component:n})=>setTimeout(()=>{t.value==="submit"&&e.addEventListener("submit",()=>{let i=t.expression.startsWith("$parent")?n.parent.id:n.id,o=Bv(e);Hs.add(i,o)})}));J("commit",({component:e,respond:t})=>{t(()=>{Hs.each(e.id,r=>r()),Hs.remove(e.id)})});function Bv(e){let t=[];return Sd.default.walk(e,(r,n)=>{if(!!e.contains(r)){if(r.hasAttribute("wire:ignore"))return n();Hv(r)?t.push(Wv(r)):qv(r)&&t.push(zv(r))}}),()=>{for(;t.length>0;)t.shift()()}}function Hv(e){let t=e.tagName.toLowerCase(),r=["hidden","range","color","checkbox","radio","file","submit","image","reset","button"];return!!(t==="select"||t==="button"&&e.type==="submit"||t==="input"&&r.includes(e.type))}function qv(e){return["input","textarea"].includes(e.tagName.toLowerCase())}function Wv(e){let t=e.disabled?()=>{}:()=>e.disabled=!1;return e.disabled=!0,t}function zv(e){let t=e.readOnly?()=>{}:()=>e.readOnly=!1;return e.readOnly=!0,t}J("commit",({succeed:e})=>{e(({effects:t})=>{let r=t.download;if(!r)return;let n=window.webkitURL||window.URL,i=n.createObjectURL(Kv(r.content,r.contentType)),o=document.createElement("a");o.style.display="none",o.href=i,o.download=r.name,document.body.appendChild(o),o.click(),setTimeout(function(){n.revokeObjectURL(i)},0)})});function Kv(e,t="",r=512){let n=atob(e),i=[];t===null&&(t="");for(let o=0;o<n.length;o+=r){let a=n.slice(o,o+r),s=new Array(a.length);for(let u=0;u<a.length;u++)s[u]=a.charCodeAt(u);let l=new Uint8Array(s);i.push(l)}return new Blob(i,{type:t})}var qs=le(ue());J("effect",({component:e,effects:t,cleanup:r})=>{let n=t.url;!n||Object.entries(n).forEach(([i,o])=>{let{name:a,as:s,use:l,alwaysShow:u,except:c}=Vv(i,o);s||(s=a);let f=[!1,null,void 0].includes(c)?be(e.ephemeral,a):c,{replace:d,push:h,pop:g}=To(s,f,u,c);if(l==="replace"){let m=qs.default.effect(()=>{d(be(e.reactive,a))});r(()=>qs.default.release(m))}else if(l==="push"){let m=!1,v=J("commit",({component:A,succeed:I})=>{if(e!==A)return;let j=be(e.canonical,a);I(()=>{let R=be(e.canonical,a);JSON.stringify(j)!==JSON.stringify(R)&&(m?d(R):h(R))})}),b=g(async A=>{m=!0,await e.$wire.set(a,A),document.querySelectorAll("input").forEach(I=>{I._x_forceModelUpdate&&I._x_forceModelUpdate(I._x_model.get())}),requestAnimationFrame(()=>m=!1)}),E=be(e.ephemeral,a);JSON.stringify(E)!==JSON.stringify(f)&&d(E),r(()=>{v(),b()})}})});function Vv(e,t){let r={use:"replace",alwaysShow:!1};return typeof t=="string"?{...r,name:t,as:t}:{...{...r,name:e,as:e},...t}}J("request",({options:e})=>{window.Echo&&(e.headers["X-Socket-ID"]=window.Echo.socketId())});J("effect",({component:e,effects:t})=>{(t.listeners||[]).forEach(n=>{if(n.startsWith("echo")){if(typeof window.Echo>"u"){console.warn("Laravel Echo cannot be found");return}let i=n.split(/(echo:|echo-)|:|,/);i[1]=="echo:"&&i.splice(2,0,"channel",void 0),i[2]=="notification"&&i.push(void 0,void 0);let[o,a,s,l,u,c,f]=i;if(["channel","private","encryptedPrivate"].includes(s)){let d=h=>vt(e,n,[h]);window.Echo[s](u).listen(f,d),e.addCleanup(()=>{window.Echo[s](u).stopListening(f,d)})}else if(s=="presence")if(["here","joining","leaving"].includes(f))window.Echo.join(u)[f](d=>{vt(e,n,[d])}),e.addCleanup(()=>{window.Echo.leave(u)});else{let d=h=>vt(e,n,[h]);window.Echo.join(u).listen(f,d),e.addCleanup(()=>{window.Echo.leave(u)})}else s=="notification"?(window.Echo.private(u).notification(d=>{vt(e,n,[d])}),e.addCleanup(()=>{window.Echo.private(u).stopListening(".Illuminate\\Notifications\\Events\\BroadcastNotificationCreated")})):console.warn("Echo channel type not yet supported")}})});Ce(({message:e,onStream:t})=>{t(({json:r})=>{let{id:n,type:i,name:o,el:a,ref:s,content:l,mode:u}=r;if(i==="island")return;let c=vn(n),f=null;if(i==="directive"){let d=c.el.querySelector(`[wire\\:stream\\.replace="${o}"]`);d?(f=d,u="replace"):f=c.el.querySelector(`[wire\\:stream="${o}"]`)}else i==="ref"?f=Nr(c,s):i==="element"&&(f=c.el.querySelector(a));!f||(u==="replace"?f.innerHTML=l:f.insertAdjacentHTML("beforeend",l))})});document.addEventListener("livewire:initialized",()=>{Gv()&&Alpine.navigate.disableProgressBar()});document.addEventListener("alpine:navigate",e=>Ws("livewire:navigate",e));document.addEventListener("alpine:navigating",e=>Ws("livewire:navigating",e));document.addEventListener("alpine:navigated",e=>Ws("livewire:navigated",e));function Ws(e,t){let r=new CustomEvent(e,{cancelable:!0,bubbles:!0,detail:t.detail});document.dispatchEvent(r),r.defaultPrevented&&t.preventDefault()}function Ad(e,t,r){e.redirectUsingNavigate?Alpine.navigate(t):r()}function Gv(){return!!(document.querySelector("[data-no-progress-bar]")||window.livewireScriptConfig&&window.livewireScriptConfig.progressBar==="data-no-progress-bar")}J("effect",({effects:e,request:t})=>{if(!e.redirect)return;let r=!1;if(t.invokeOnRedirect({url:e.redirect,preventDefault:()=>r=!0}),r)return;let n=e.redirect;Ad(e,n,()=>{window.location.href=n})});er(({action:e})=>{let t=e.origin;if(!t)return;let{el:r,directive:n}=t,i=Array.from(r.attributes).find(a=>a.name.startsWith("wire:island"));if(i){let a=i.value,s=i.name.split("."),l=s.includes("prepend"),u=s.includes("append"),c=l?"prepend":u?"append":"morph";e.mergeMetadata({island:{name:a,mode:c}});return}let o=zs(t.el);!o||e.mergeMetadata({island:{name:o.metadata.name,mode:"morph"}})});Ce(({message:e,onSuccess:t,onStream:r})=>{r(({json:n})=>{let{type:i,islandFragment:o}=n;i==="island"&&Od(e.component,o)}),t(({payload:n,onMorph:i})=>{i(async()=>{(n.effects.islandFragments||[]).forEach(async a=>{await Od(e.component,a)})})})});function zs(e){return oc(e,{isMatch:({type:t})=>t==="island"})}async function Od(e,t){let r=gn(t),n=Ui(e.el,{isMatch:({type:l,token:u})=>l===r.type&&u===r.token});if(!n)return;let i=gn(t),o=Bi(t),a=Hn(n.startMarkerNode.parentElement),s=i.mode||"morph";s==="morph"?await Mo(e,n.startMarkerNode,n.endMarkerNode,o):s==="append"?n.append(a,o):s==="prepend"&&n.prepend(a,o)}Ce(({message:e,onSuccess:t,onStream:r})=>{t(({payload:n,onMorph:i})=>{i(async()=>{(n.effects.slotFragments||[]).forEach(async a=>{await Jv(e.component,a)})})})});async function Jv(e,t){let r=gn(t),n=vn(r.id),i=Ui(n.el,{isMatch:({name:a,token:s})=>a===r.name&&s===r.token});if(!i)return;let o=Bi(t);await Mo(n,i.startMarkerNode,i.endMarkerNode,o)}Ce(({message:e,onSend:t,onFinish:r})=>{let n=[];t(()=>{e.actions.forEach(i=>{let o=i.origin;if(!o)return;let a=o.hasOwnProperty("targetEl")?o.targetEl:o.el;!a||(a.setAttribute("data-loading","true"),n.push(()=>{a.removeAttribute("data-loading")}))})}),r(()=>n.forEach(i=>i()))});var Cd=le(ue());Cd.default.addInitSelector(()=>"[wire\\:current]");var Ks=new Map;document.addEventListener("livewire:navigated",()=>{Ks.forEach(e=>e(new URL(window.location.href)))});Ii("current",({el:e,directive:t,cleanup:r})=>{let n=t.expression,i={exact:t.modifiers.includes("exact"),strict:t.modifiers.includes("strict"),ignore:t.modifiers.includes("ignore")};if(i.ignore||n.startsWith("#")||!e.hasAttribute("href"))return;let o=e.getAttribute("href"),a=new URL(o,window.location.href),s=n.split(" ").filter(String),l=u=>{Vs(a,u,i)?(e.classList.add(...s),e.setAttribute("data-current","")):(e.classList.remove(...s),e.removeAttribute("data-current"))};l(new URL(window.location.href)),Ks.set(e,l),r(()=>Ks.delete(e))});function Vs(e,t,r={}){if(e.hostname!==t.hostname)return!1;let n=r.strict?e.pathname:e.pathname.replace(/\/+$/,""),i=r.strict?t.pathname:t.pathname.replace(/\/+$/,"");if(r.exact)return n===i;let o=n.split("/"),a=i.split("/");for(let s=0;s<o.length;s++)if(o[s]!==a[s])return!1;return!0}var qn=le(ue()),kd=["[wire\\:navigate]","[wire\\:navigate\\.hover]","[wire\\:navigate\\.preserve-scroll]","[wire\\:navigate\\.preserve-scroll\\.hover]","[wire\\:navigate\\.hover\\.preserve-scroll]"],Td=kd.join(", "),Yv={"wire:navigate":"x-navigate","wire:navigate.hover":"x-navigate.hover","wire:navigate.preserve-scroll":"x-navigate.preserve-scroll","wire:navigate.preserve-scroll.hover":"x-navigate.preserve-scroll.hover","wire:navigate.hover.preserve-scroll":"x-navigate.hover.preserve-scroll"};kd.forEach(e=>{qn.default.addInitSelector(()=>e)});qn.default.interceptInit(qn.default.skipDuringClone(e=>{for(let[t,r]of Object.entries(Yv))if(e.hasAttribute(t)){qn.default.bind(e,{[r]:!0});break}}));document.addEventListener("alpine:navigating",()=>{Livewire.all().forEach(e=>{e.inscribeSnapshotAndEffectsOnElement()})});document.addEventListener("livewire:navigated",()=>{Nd()});document.addEventListener("DOMContentLoaded",()=>{Nd()});function Nd(){let e=new URL(window.location.href),t={exact:!0};document.querySelectorAll(Td).forEach(r=>{if(Array.from(r.attributes).some(i=>i.name.startsWith("wire:current")))return;let n=r.getAttribute("href");if(!(!n||n.startsWith("#")))try{let i=new URL(n,window.location.href);Vs(i,e,t)?r.setAttribute("data-current",""):r.removeAttribute("data-current")}catch{}})}Ce(({message:e,onSuccess:t})=>{t(({onSync:r,onMorph:n,onRender:i})=>{e.actions.forEach(o=>{let a=o.origin;if(!a||!a.directive||!a.directive.modifiers.includes("preserve-scroll"))return;let l,u;r(()=>{l=document.body.scrollHeight,u=window.scrollY}),n(async()=>{let c=document.body.scrollHeight-l;window.scrollTo(0,u+c),l=null,u=null})})})});var Gs=le(ue());Gs.default.interceptInit(e=>{for(let t=0;t<e.attributes.length;t++)if(e.attributes[t].name.startsWith("wire:intersect")){let{name:r,value:n}=e.attributes[t],i=st(e,r),o=r.split("wire:intersect")[1],a=n.trim();Gs.default.bind(e,{["x-intersect"+o](s){i.eventContext=s;let l=Ae(e,!1);!l||(l.addActionContext({el:e,directive:i}),Ie(e,a))}})}});var Po=le(ue());Po.default.interceptInit(e=>{for(let t=0;t<e.attributes.length;t++)if(e.attributes[t].name.startsWith("wire:sort:item")){let r=st(e,e.attributes[t].name),n=r.modifiers.join("."),i=r.expression;Po.default.bind(e,{["x-sort:item"+n](){return i}})}else{if(e.attributes[t].name.startsWith("wire:sort:group-id"))continue;if(e.attributes[t].name.startsWith("wire:sort:group"))return;if(e.attributes[t].name.startsWith("wire:sort")){let r=st(e,e.attributes[t].name),n=r.rawName.replace("wire:","x-");r.modifiers.includes("async")&&(n=n.replace(".async","")),r.modifiers.includes("renderless")&&(n=n.replace(".renderless","")),r.modifiers.includes("prepend")&&(n=n.replace(".prepend","")),r.modifiers.includes("append")&&(n=n.replace(".append",""));let i=r.expression;Po.default.bind(e,{[n](){qe({el:e,directive:r});let a=Array.from(e.children).filter(f=>f.hasAttribute("x-sort:item")||f.hasAttribute("wire:sort:item")).findIndex(f=>f._x_sort_key===this.$item),s=a!==-1?a:this.$position,l=[this.$item,s],u={$item:this.$item,$position:s},c=e.getAttribute("wire:sort:group-id");c!==null&&(l.push(c),u.$id=c),Ie(e,i,{scope:u,params:l})}})}}});var Io=new Set;J("effect",({component:e,effects:t})=>{if(t.styleModule){let r=e.name.replace(/\./g,"--").replace(/::/g,"---").replace(/:/g,"----"),n=`${rn()}/css/${r}.css?v=${t.styleModule}`;Io.has(n)||(Io.add(n),Md(n))}if(t.globalStyleModule){let r=e.name.replace(/\./g,"--").replace(/::/g,"---").replace(/:/g,"----"),n=`${rn()}/css/${r}.global.css?v=${t.globalStyleModule}`;Io.has(n)||(Io.add(n),Md(n))}});function Md(e){let t=document.createElement("link");t.rel="stylesheet",t.href=e;let r=wr();r&&(t.nonce=r),document.head.appendChild(t)}var Xv=new Ct;function Pd(e,t){Xv.each(e,r=>{r.callback(),r.callback=()=>{}}),t()}var Id=le(ue());J("directive.init",({el:e,directive:t,cleanup:r,component:n})=>{if(["snapshot","effects","model","init","loading","poll","ignore","id","data","key","target","dirty","sort"].includes(t.value)||Yu(t.value))return;let i=t.rawName.replace("wire:","x-on:");t.value==="submit"&&!t.modifiers.includes("prevent")&&(i=i+".prevent"),t.modifiers.includes("async")&&(i=i.replace(".async","")),t.modifiers.includes("renderless")&&(i=i.replace(".renderless","")),t.modifiers.includes("prepend")&&(i=i.replace(".prepend","")),t.modifiers.includes("append")&&(i=i.replace(".append",""));let o=Id.default.bind(e,{[i](a){t.eventContext=a,t.wire=n.$wire;let s=()=>{Pd(n,()=>{if(t.value==="submit"){let c=a.submitter||e.querySelector('button[type="submit"], input[type="submit"]');qe({el:e,directive:t,targetEl:c})}else qe({el:e,directive:t});let l=a.detail?.livewire;l?.interceptAction&&Wu(l.interceptAction);let u=t.expression;if(l?.defaultParams!==void 0&&!u.includes("(")){let c=Array.isArray(l.defaultParams)?l.defaultParams:[l.defaultParams];u=u+"("+c.map(f=>JSON.stringify(f)).join(", ")+")"}Ie(e,u,{scope:{$event:a}})})};e.__livewire_confirm?e.__livewire_confirm(()=>{s()},()=>{a.stopImmediatePropagation()}):s()}});r(o)});we("confirm",({el:e,directive:t})=>{let r=t.expression,n=t.modifiers.includes("prompt");r=r.replaceAll("\\n",` +`),r===""&&(r="Are you sure?"),e.__livewire_confirm=(i,o)=>{if(n){let[a,s]=r.split("|");s?prompt(a)===s?i():o():console.warn("Livewire: Must provide expectation with wire:confirm.prompt")}else confirm(r)?i():o()}});var Js=new Set,Ys=new Set;window.addEventListener("offline",()=>Js.forEach(e=>e()));window.addEventListener("online",()=>Ys.forEach(e=>e()));we("offline",({el:e,directive:t,cleanup:r})=>{let n=()=>lt(e,t,!0),i=()=>lt(e,t,!1);Js.add(n),Ys.add(i),r(()=>{Js.delete(n),Ys.delete(i)})});we("loading",({el:e,directive:t,component:r,cleanup:n})=>{let{targets:i,inverted:o}=ry(e),[a,s]=Zv(t),l=Qv(r,e,i,o,[()=>a(()=>lt(e,t,!0)),()=>s(()=>lt(e,t,!1))]),u=ey(r,i,[()=>a(()=>lt(e,t,!0)),()=>s(()=>lt(e,t,!1))]);n(()=>{l(),u()})});function Zv(e){if(!e.modifiers.includes("delay")||e.modifiers.includes("none"))return[o=>o(),o=>o()];let t=200,r={shortest:50,shorter:100,short:150,default:200,long:300,longer:500,longest:1e3};Object.keys(r).some(o=>{if(e.modifiers.includes(o))return t=r[o],!0});let n,i=!1;return[o=>{n=setTimeout(()=>{o(),i=!0},t)},async o=>{i?(await o(),i=!1):clearTimeout(n)}]}function Qv(e,t,r,n,[i,o]){return Ce(({message:a,onSend:s,onSuccess:l,onFinish:u})=>{if(e!==a.component)return;if(r.length===0){let d=zs(t);if(d&&!a.hasActionForIsland(d)||!d&&!a.hasActionForComponent())return}let c=!0,f=!1;s(({payload:d})=>{r.length>0&&ty(d,r)===n&&(c=!1),c&&i()}),l(({onEffect:d})=>{d(()=>{c&&!f&&(o(),f=!0)})}),u(()=>{c&&!f&&(o(),f=!0)})})}function ey(e,t,[r,n]){let i=l=>{let{id:u,property:c}=l.detail;return u!==e.id||t.length>0&&!t.map(f=>f.target).includes(c)},o=ai(window,"livewire-upload-start",l=>{i(l)||r()}),a=ai(window,"livewire-upload-finish",l=>{i(l)||n()}),s=ai(window,"livewire-upload-error",l=>{i(l)||n()});return()=>{o(),a(),s()}}function ty(e,t){let{updates:r,calls:n}=e;return t.some(({target:i,params:o})=>{if(o)return n.some(({method:s,params:l})=>i===s&&o===Rd(JSON.stringify(l)));if(Object.keys(r).some(s=>s.includes(".")&&s.split(".")[0]===i?!0:s===i)||n.map(s=>s.method).includes(i))return!0})}function ry(e){let t=Mr(e),r=[],n=!1;if(t.has("target")){let i=t.get("target");i.modifiers.includes("except")&&(n=!0),i.methods.forEach(({method:o,params:a})=>{r.push({target:o,params:a&&a.length>0?Rd(JSON.stringify(a)):void 0})})}else{let i=["init","dirty","offline","navigate","target","loading","poll","ignore","key","id"];t.all().filter(o=>!i.includes(o.value)).map(o=>o.expression.split("(")[0]).forEach(o=>r.push({target:o}))}return{targets:r,inverted:n}}function Rd(e){return btoa(encodeURIComponent(e))}we("replace",({el:e,directive:t})=>{t.modifiers.includes("self")?e.__livewire_replace_self=!0:e.__livewire_replace=!0});we("ignore",({el:e,directive:t})=>{t.modifiers.includes("self")?e.__livewire_ignore_self=!0:t.modifiers.includes("children")?e.__livewire_ignore_children=!0:e.__livewire_ignore=!0});var Xs=le(ue());Xs.default.interceptInit(e=>{e.hasAttribute("wire:cloak")&&Xs.default.mutateDom(()=>e.removeAttribute("wire:cloak"))});var Dd=le(ue());we("model",({el:e,directive:t,component:r,cleanup:n})=>{r=Ae(e);let{expression:i,modifiers:o}=t;if(!i)return console.warn("Livewire: [wire:model] is missing a value.",e);if(Fd(r,i))return console.warn('Livewire: [wire:model="'+i+'"] property does not exist on component: ['+r.name+"]",e);if(e.type&&e.type.toLowerCase()==="file")return vl(e,i,r,n);let a=o.indexOf("live"),s=a!==-1,l=o.includes("lazy")&&!s,u=s||l,c=s&&!l?o.slice(0,a):o.slice(),f=s&&!l?o.slice(a+1):[];l&&(c=c.filter(de=>de!=="lazy"),f.push("change")),c.includes("deep")||f.includes("deep")||c.includes("self")||c.push("self");let d=c.includes("blur"),h=c.includes("change")||c.includes("lazy"),g=c.includes("enter"),m=d||h||g,v=f.includes("blur"),b=f.includes("change")||f.includes("lazy"),E=f.includes("enter"),A=v||b||E,I=f.includes("debounce"),j=f.includes("throttle"),R=()=>{qe({el:e,directive:t}),(s||I)&&Tr({type:"model.live"}),i.startsWith("$parent")?r.$wire.$parent.$commit():r.$wire.$commit()},F=R;(u&&!A&&iy(e)||I)&&(F=oy(F,Ro(f,"debounce")||150)),j&&(F=ay(F,Ro(f,"throttle")||150));let Y={};u&&v&&(Y["@blur"]=()=>R()),u&&b&&(Y["@change"]=()=>R()),u&&E&&(Y["@keydown.enter"]=()=>R());let re=ny(c);Y["x-model"+re]=()=>({get(){return be(r.$wire,i)},set(de){qt(r.$wire,i,de),u&&!A&&F()}}),Dd.default.bind(e,Y)});function ny(e){if(e=e.filter(t=>!["defer","live"].includes(t)),e.includes("debounce")){let t=e.indexOf("debounce"),r=Ro(e,"debounce")!==void 0;e.splice(t,r?2:1)}if(e.includes("throttle")){let t=e.indexOf("throttle"),r=Ro(e,"throttle")!==void 0;e.splice(t,r?2:1)}return e.length===0?"":"."+e.join(".")}function iy(e){return["INPUT","TEXTAREA"].includes(e.tagName.toUpperCase())&&!["checkbox","radio"].includes(e.type)||e.tagName.toUpperCase()==="UI-SLIDER"||e.tagName.toUpperCase()==="UI-COMPOSER"}function Fd(e,t){if(t.startsWith("$parent")){let i=Ae(e.el.parentElement,!1);return i?Fd(i,t.slice(7).replace(/^\./,"")):!0}let n=(t.match(/^\[['"]?([^\]'"]+)['"]?\]/)||t.match(/^([^.\[]+)/))[1];return!Object.keys(e.canonical).includes(n)}function oy(e,t){var r;return function(){var n=this,i=arguments,o=function(){r=null,e.apply(n,i)};clearTimeout(r),r=setTimeout(o,t)}}function ay(e,t){let r;return function(){let n=this,i=arguments;r||(e.apply(n,i),r=!0,setTimeout(()=>r=!1,t))}}function Ro(e,t){if(e.indexOf(t)===-1)return;let i=(e[e.indexOf(t)+1]||"invalid-wait").split("ms")[0];return isNaN(i)?void 0:i}we("init",({component:e,el:t,directive:r})=>{let n=r.expression?r.expression:"$refresh";qe({el:t,directive:r}),Ie(t,n)});we("poll",({el:e,directive:t,component:r})=>{let n=vy(t.modifiers,2e3),{start:i,pauseWhile:o,throttleWhile:a,stopWhen:s}=ly(()=>{sy(e,t,r)},n);i(),a(()=>fy()&&py(t)),o(()=>hy(t)&&my(e)),o(()=>dy(e)),o(()=>cy()),o(()=>qu()),s(()=>gy(e))});function sy(e,t,r){qe({el:e,directive:t,targetEl:null}),Tr({type:"poll"});let n=t.expression?t.expression:"$refresh";Ie(e,n)}function ly(e,t=2e3){let r=[],n=[],i=[];return{start(){let o=uy(t,()=>{if(i.some(a=>a()))return o();r.some(a=>a())||n.some(a=>a())&&Math.random()<.95||e()})},pauseWhile(o){r.push(o)},throttleWhile(o){n.push(o)},stopWhen(o){i.push(o)}}}var dr=[];function uy(e,t){if(!dr[e]){let r={timer:setInterval(()=>r.callbacks.forEach(n=>n()),e),callbacks:new Set};dr[e]=r}return dr[e].callbacks.add(t),()=>{dr[e].callbacks.delete(t),dr[e].callbacks.size===0&&(clearInterval(dr[e].timer),delete dr[e])}}var Zs=!1;window.addEventListener("offline",()=>Zs=!0);window.addEventListener("online",()=>Zs=!1);function cy(){return Zs}var Ld=!1;document.addEventListener("visibilitychange",()=>{Ld=document.hidden},!1);function fy(){return Ld}function dy(e){return!Mr(e).has("poll")}function py(e){return!e.modifiers.includes("keep-alive")}function hy(e){return e.modifiers.includes("visible")}function my(e){let t=e.getBoundingClientRect();return!(t.top<(window.innerHeight||document.documentElement.clientHeight)&&t.left<(window.innerWidth||document.documentElement.clientWidth)&&t.bottom>0&&t.right>0)}function gy(e){return e.isConnected===!1}function vy(e,t){let r,n=e.find(o=>o.match(/([0-9]+)ms/)),i=e.find(o=>o.match(/([0-9]+)s/));return n?r=Number(n.replace("ms","")):i&&(r=Number(i.replace("s",""))*1e3),r||t}var Qs=le(ue());Qs.default.interceptInit(e=>{for(let t=0;t<e.attributes.length;t++)if(e.attributes[t].name.startsWith("wire:show")){let{name:r,value:n}=e.attributes[t],i=r.split("wire:show")[1],o=n.trim();Qs.default.bind(e,{["x-show"+i](){return Ie(e,o)}})}});var el=le(ue());el.default.interceptInit(e=>{for(let t=0;t<e.attributes.length;t++)if(e.attributes[t].name.startsWith("wire:text")){let{name:r,value:n}=e.attributes[t],i=r.split("wire:text")[1],o=n.trim();el.default.bind(e,{["x-text"+i](){return Ie(e,o)}})}});var tl=le(ue());tl.default.interceptInit(e=>{for(let t=0;t<e.attributes.length;t++)if(e.attributes[t].name.startsWith("wire:bind:")){let{name:r,value:n}=e.attributes[t],i=r.split("wire:bind")[1],o=n.trim();tl.default.bind(e,{["x-bind"+i](){return Ie(e,o)}})}});var $d={directive:we,dispatchTo:Rr,interceptAction:e=>er(e),interceptMessage:e=>Ce(e),interceptRequest:e=>Pi(e),fireAction:(e,t,r=[],n={})=>tr(e,t,r,n),start:vd,first:pc,find:dc,getByName:fc,all:hc,hook:J,trigger:ne,triggerAsync:xi,dispatch:mc,on:gc,get navigate(){return rl.default.navigate}},nl=e=>console.warn(`Detected multiple instances of ${e} running`);window.Livewire&&nl("Livewire");window.Alpine&&nl("Alpine");window.Livewire=$d;window.Alpine=rl.default;window.livewireScriptConfig===void 0&&(window.Alpine.__fromLivewire=!0,document.addEventListener("DOMContentLoaded",()=>{window.Alpine.__fromLivewire===void 0&&nl("Alpine"),$d.start()}));})(); +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ +/*! Bundled license information: + +sortablejs/modular/sortable.esm.js: + (**! + * Sortable 1.15.2 + * @author RubaXa <trash@rubaxa.org> + * @author owenm <owen23355@gmail.com> + * @license MIT + *) +*/ +/*! Bundled license information: + +tabbable/dist/index.esm.js: + (*! + * tabbable 6.4.0 + * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE + *) + +focus-trap/dist/focus-trap.esm.js: + (*! + * focus-trap 8.0.0 + * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE + *) + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *) +*/ +//# sourceMappingURL=livewire.csp.min.js.map diff --git a/admin/public/vendor/livewire/livewire.csp.min.js.map b/admin/public/vendor/livewire/livewire.csp.min.js.map new file mode 100644 index 00000000..2a3e3294 --- /dev/null +++ b/admin/public/vendor/livewire/livewire.csp.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../node_modules/@alpinejs/csp/dist/module.cjs.js", "../node_modules/nprogress/nprogress.js", "../js/utils.js", "../js/features/supportFileUploads.js", "../js/features/supportEntangle.js", "../js/$wire.js", "../js/hooks.js", "../js/request/interactions.js", "../js/request/request.js", "../js/request/interceptor.js", "../js/utils/modal.js", "../js/request/messageBus.js", "../js/request/message.js", "../js/request/action.js", "../js/request/legacy.js", "../js/request/index.js", "../js/features/supportErrors.js", "../js/features/supportRefs.js", "../js/directives.js", "../js/directives/shared.js", "../js/directives/wire-dirty.js", "../js/features/supportJsModules.js", "../js/component.js", "../js/fragment.js", "../js/store.js", "../js/events.js", "../node_modules/@alpinejs/collapse/dist/module.esm.js", "../node_modules/@alpinejs/focus/dist/module.esm.js", "../node_modules/@alpinejs/persist/dist/module.esm.js", "../node_modules/@alpinejs/intersect/dist/module.esm.js", "../node_modules/@alpinejs/sort/dist/module.esm.js", "../node_modules/@alpinejs/resize/dist/module.esm.js", "../node_modules/@alpinejs/anchor/dist/module.esm.js", "../js/plugins/history/utils.js", "../js/plugins/history/coordinator.js", "../js/plugins/navigate/history.js", "../js/plugins/navigate/links.js", "../js/plugins/navigate/fetch.js", "../js/plugins/navigate/prefetch.js", "../js/plugins/navigate/teleport.js", "../js/plugins/navigate/scroll.js", "../js/plugins/navigate/persist.js", "../js/plugins/navigate/bar.js", "../js/plugins/navigate/popover.js", "../js/plugins/navigate/page.js", "../js/plugins/navigate/index.js", "../js/plugins/history/index.js", "../node_modules/@alpinejs/morph/dist/module.esm.js", "../node_modules/@alpinejs/mask/dist/module.esm.js", "../js/lifecycle.js", "../js/index.js", "../js/features/supportListeners.js", "../js/features/supportScriptsAndAssets.js", "../js/evaluator.js", "../js/features/supportJsEvaluation.js", "../js/morph.js", "../js/directives/wire-transition.js", "../js/features/supportMorphDom.js", "../js/features/supportDispatches.js", "../js/features/supportDisablingFormsDuringRequest.js", "../js/features/supportFileDownloads.js", "../js/features/supportQueryString.js", "../js/features/supportLaravelEcho.js", "../js/features/supportStreaming.js", "../js/features/supportNavigate.js", "../js/features/supportRedirects.js", "../js/features/supportIslands.js", "../js/features/supportSlots.js", "../js/features/supportDataLoading.js", "../js/directives/wire-current.js", "../js/directives/wire-navigate.js", "../js/features/supportDataCurrent.js", "../js/features/supportPreserveScroll.js", "../js/features/supportWireIntersect.js", "../js/features/supportWireSort.js", "../js/features/supportCssModules.js", "../js/debounce.js", "../js/directives/wire-wildcard.js", "../js/directives/wire-confirm.js", "../js/directives/wire-offline.js", "../js/directives/wire-loading.js", "../js/directives/wire-replace.js", "../js/directives/wire-ignore.js", "../js/directives/wire-cloak.js", "../js/directives/wire-model.js", "../js/directives/wire-init.js", "../js/directives/wire-poll.js", "../js/directives/wire-show.js", "../js/directives/wire-text.js", "../js/directives/wire-bind.js"], + "sourcesContent": ["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// node_modules/@vue/shared/dist/shared.cjs.js\nvar require_shared_cjs = __commonJS({\n \"node_modules/@vue/shared/dist/shared.cjs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n function makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n }\n var PatchFlagNames = {\n [\n 1\n /* TEXT */\n ]: `TEXT`,\n [\n 2\n /* CLASS */\n ]: `CLASS`,\n [\n 4\n /* STYLE */\n ]: `STYLE`,\n [\n 8\n /* PROPS */\n ]: `PROPS`,\n [\n 16\n /* FULL_PROPS */\n ]: `FULL_PROPS`,\n [\n 32\n /* HYDRATE_EVENTS */\n ]: `HYDRATE_EVENTS`,\n [\n 64\n /* STABLE_FRAGMENT */\n ]: `STABLE_FRAGMENT`,\n [\n 128\n /* KEYED_FRAGMENT */\n ]: `KEYED_FRAGMENT`,\n [\n 256\n /* UNKEYED_FRAGMENT */\n ]: `UNKEYED_FRAGMENT`,\n [\n 512\n /* NEED_PATCH */\n ]: `NEED_PATCH`,\n [\n 1024\n /* DYNAMIC_SLOTS */\n ]: `DYNAMIC_SLOTS`,\n [\n 2048\n /* DEV_ROOT_FRAGMENT */\n ]: `DEV_ROOT_FRAGMENT`,\n [\n -1\n /* HOISTED */\n ]: `HOISTED`,\n [\n -2\n /* BAIL */\n ]: `BAIL`\n };\n var slotFlagsText = {\n [\n 1\n /* STABLE */\n ]: \"STABLE\",\n [\n 2\n /* DYNAMIC */\n ]: \"DYNAMIC\",\n [\n 3\n /* FORWARDED */\n ]: \"FORWARDED\"\n };\n var GLOBALS_WHITE_LISTED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt\";\n var isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);\n var range = 2;\n function generateCodeFrame(source, start2 = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start2) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start2 - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start2);\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n }\n var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\n var isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\n var isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`);\n var unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\n var attrValidationCache = {};\n function isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n }\n var propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n };\n var isNoUnitNumericStyleProp = /* @__PURE__ */ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width`);\n var isKnownAttr = /* @__PURE__ */ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`);\n function normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = normalizeStyle(isString(item) ? parseStringStyle(item) : item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isObject2(value)) {\n return value;\n }\n }\n var listDelimiterRE = /;(?![^(]*\\))/g;\n var propertyDelimiterRE = /:(.+)/;\n function parseStringStyle(cssText) {\n const ret = {};\n cssText.split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n }\n function stringifyStyle(styles) {\n let ret = \"\";\n if (!styles) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\" && isNoUnitNumericStyleProp(normalizedKey)) {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n }\n function normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject2(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n }\n var HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\n var SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\n var VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\n var isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\n var isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\n var isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n var escapeRE = /[\"'&<>]/;\n function escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n }\n var commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\n function escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n }\n function looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n }\n function looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject2(a);\n bValidType = isObject2(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n }\n function looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n }\n var toDisplayString = (val) => {\n return val == null ? \"\" : isObject2(val) ? JSON.stringify(val, replacer, 2) : String(val);\n };\n var replacer = (_key, val) => {\n if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n entries[`${key} =>`] = val2;\n return entries;\n }, {})\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n } else if (isObject2(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n };\n var babelParserDefaultPlugins = [\n \"bigInt\",\n \"optionalChaining\",\n \"nullishCoalescingOperator\"\n ];\n var EMPTY_OBJ = Object.freeze({});\n var EMPTY_ARR = Object.freeze([]);\n var NOOP = () => {\n };\n var NO = () => false;\n var onRE = /^on[^a-z]/;\n var isOn = (key) => onRE.test(key);\n var isModelListener = (key) => key.startsWith(\"onUpdate:\");\n var extend = Object.assign;\n var remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n };\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasOwn = (val, key) => hasOwnProperty.call(val, key);\n var isArray = Array.isArray;\n var isMap = (val) => toTypeString(val) === \"[object Map]\";\n var isSet = (val) => toTypeString(val) === \"[object Set]\";\n var isDate = (val) => val instanceof Date;\n var isFunction = (val) => typeof val === \"function\";\n var isString = (val) => typeof val === \"string\";\n var isSymbol = (val) => typeof val === \"symbol\";\n var isObject2 = (val) => val !== null && typeof val === \"object\";\n var isPromise = (val) => {\n return isObject2(val) && isFunction(val.then) && isFunction(val.catch);\n };\n var objectToString = Object.prototype.toString;\n var toTypeString = (value) => objectToString.call(value);\n var toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n };\n var isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\n var isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\n var isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n );\n var cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n };\n var camelizeRE = /-(\\w)/g;\n var camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n });\n var hyphenateRE = /\\B([A-Z])/g;\n var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\n var capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\n var toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\n var hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue);\n var invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n };\n var def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n };\n var toNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n };\n var _globalThis;\n var getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n };\n exports.EMPTY_ARR = EMPTY_ARR;\n exports.EMPTY_OBJ = EMPTY_OBJ;\n exports.NO = NO;\n exports.NOOP = NOOP;\n exports.PatchFlagNames = PatchFlagNames;\n exports.babelParserDefaultPlugins = babelParserDefaultPlugins;\n exports.camelize = camelize;\n exports.capitalize = capitalize;\n exports.def = def;\n exports.escapeHtml = escapeHtml;\n exports.escapeHtmlComment = escapeHtmlComment;\n exports.extend = extend;\n exports.generateCodeFrame = generateCodeFrame;\n exports.getGlobalThis = getGlobalThis;\n exports.hasChanged = hasChanged;\n exports.hasOwn = hasOwn;\n exports.hyphenate = hyphenate;\n exports.invokeArrayFns = invokeArrayFns;\n exports.isArray = isArray;\n exports.isBooleanAttr = isBooleanAttr2;\n exports.isDate = isDate;\n exports.isFunction = isFunction;\n exports.isGloballyWhitelisted = isGloballyWhitelisted;\n exports.isHTMLTag = isHTMLTag;\n exports.isIntegerKey = isIntegerKey;\n exports.isKnownAttr = isKnownAttr;\n exports.isMap = isMap;\n exports.isModelListener = isModelListener;\n exports.isNoUnitNumericStyleProp = isNoUnitNumericStyleProp;\n exports.isObject = isObject2;\n exports.isOn = isOn;\n exports.isPlainObject = isPlainObject;\n exports.isPromise = isPromise;\n exports.isReservedProp = isReservedProp;\n exports.isSSRSafeAttrName = isSSRSafeAttrName;\n exports.isSVGTag = isSVGTag;\n exports.isSet = isSet;\n exports.isSpecialBooleanAttr = isSpecialBooleanAttr;\n exports.isString = isString;\n exports.isSymbol = isSymbol;\n exports.isVoidTag = isVoidTag;\n exports.looseEqual = looseEqual;\n exports.looseIndexOf = looseIndexOf;\n exports.makeMap = makeMap;\n exports.normalizeClass = normalizeClass;\n exports.normalizeStyle = normalizeStyle;\n exports.objectToString = objectToString;\n exports.parseStringStyle = parseStringStyle;\n exports.propsToAttrMap = propsToAttrMap;\n exports.remove = remove;\n exports.slotFlagsText = slotFlagsText;\n exports.stringifyStyle = stringifyStyle;\n exports.toDisplayString = toDisplayString;\n exports.toHandlerKey = toHandlerKey;\n exports.toNumber = toNumber;\n exports.toRawType = toRawType;\n exports.toTypeString = toTypeString;\n }\n});\n\n// node_modules/@vue/shared/index.js\nvar require_shared = __commonJS({\n \"node_modules/@vue/shared/index.js\"(exports, module2) {\n \"use strict\";\n if (false) {\n module2.exports = null;\n } else {\n module2.exports = require_shared_cjs();\n }\n }\n});\n\n// node_modules/@vue/reactivity/dist/reactivity.cjs.js\nvar require_reactivity_cjs = __commonJS({\n \"node_modules/@vue/reactivity/dist/reactivity.cjs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var shared = require_shared();\n var targetMap = /* @__PURE__ */ new WeakMap();\n var effectStack = [];\n var activeEffect;\n var ITERATE_KEY = Symbol(\"iterate\");\n var MAP_KEY_ITERATE_KEY = Symbol(\"Map key iterate\");\n function isEffect(fn) {\n return fn && fn._isEffect === true;\n }\n function effect3(fn, options = shared.EMPTY_OBJ) {\n if (isEffect(fn)) {\n fn = fn.raw;\n }\n const effect4 = createReactiveEffect(fn, options);\n if (!options.lazy) {\n effect4();\n }\n return effect4;\n }\n function stop2(effect4) {\n if (effect4.active) {\n cleanup(effect4);\n if (effect4.options.onStop) {\n effect4.options.onStop();\n }\n effect4.active = false;\n }\n }\n var uid = 0;\n function createReactiveEffect(fn, options) {\n const effect4 = function reactiveEffect() {\n if (!effect4.active) {\n return fn();\n }\n if (!effectStack.includes(effect4)) {\n cleanup(effect4);\n try {\n enableTracking();\n effectStack.push(effect4);\n activeEffect = effect4;\n return fn();\n } finally {\n effectStack.pop();\n resetTracking();\n activeEffect = effectStack[effectStack.length - 1];\n }\n }\n };\n effect4.id = uid++;\n effect4.allowRecurse = !!options.allowRecurse;\n effect4._isEffect = true;\n effect4.active = true;\n effect4.raw = fn;\n effect4.deps = [];\n effect4.options = options;\n return effect4;\n }\n function cleanup(effect4) {\n const { deps } = effect4;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect4);\n }\n deps.length = 0;\n }\n }\n var shouldTrack = true;\n var trackStack = [];\n function pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n }\n function enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n }\n function resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n }\n function track(target, type, key) {\n if (!shouldTrack || activeEffect === void 0) {\n return;\n }\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = /* @__PURE__ */ new Set());\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (activeEffect.options.onTrack) {\n activeEffect.options.onTrack({\n effect: activeEffect,\n target,\n type,\n key\n });\n }\n }\n }\n function trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n const effects = /* @__PURE__ */ new Set();\n const add2 = (effectsToAdd) => {\n if (effectsToAdd) {\n effectsToAdd.forEach((effect4) => {\n if (effect4 !== activeEffect || effect4.allowRecurse) {\n effects.add(effect4);\n }\n });\n }\n };\n if (type === \"clear\") {\n depsMap.forEach(add2);\n } else if (key === \"length\" && shared.isArray(target)) {\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newValue) {\n add2(dep);\n }\n });\n } else {\n if (key !== void 0) {\n add2(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!shared.isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (shared.isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (shared.isIntegerKey(key)) {\n add2(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!shared.isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (shared.isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (shared.isMap(target)) {\n add2(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const run = (effect4) => {\n if (effect4.options.onTrigger) {\n effect4.options.onTrigger({\n effect: effect4,\n target,\n key,\n type,\n newValue,\n oldValue,\n oldTarget\n });\n }\n if (effect4.options.scheduler) {\n effect4.options.scheduler(effect4);\n } else {\n effect4();\n }\n };\n effects.forEach(run);\n }\n var isNonTrackableKeys = /* @__PURE__ */ shared.makeMap(`__proto__,__v_isRef,__isVue`);\n var builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(shared.isSymbol));\n var get2 = /* @__PURE__ */ createGetter();\n var shallowGet = /* @__PURE__ */ createGetter(false, true);\n var readonlyGet = /* @__PURE__ */ createGetter(true);\n var shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);\n var arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\n function createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw2(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw2));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw2(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n }\n function createGetter(isReadonly2 = false, shallow = false) {\n return function get3(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = shared.isArray(target);\n if (!isReadonly2 && targetIsArray && shared.hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (shared.isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n const shouldUnwrap = !targetIsArray || !shared.isIntegerKey(key);\n return shouldUnwrap ? res.value : res;\n }\n if (shared.isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive3(res);\n }\n return res;\n };\n }\n var set2 = /* @__PURE__ */ createSetter();\n var shallowSet = /* @__PURE__ */ createSetter(true);\n function createSetter(shallow = false) {\n return function set3(target, key, value, receiver) {\n let oldValue = target[key];\n if (!shallow) {\n value = toRaw2(value);\n oldValue = toRaw2(oldValue);\n if (!shared.isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = shared.isArray(target) && shared.isIntegerKey(key) ? Number(key) < target.length : shared.hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw2(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (shared.hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n };\n }\n function deleteProperty(target, key) {\n const hadKey = shared.hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n function has(target, key) {\n const result = Reflect.has(target, key);\n if (!shared.isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n function ownKeys(target) {\n track(target, \"iterate\", shared.isArray(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n }\n var mutableHandlers = {\n get: get2,\n set: set2,\n deleteProperty,\n has,\n ownKeys\n };\n var readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n {\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n {\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n };\n var shallowReactiveHandlers = /* @__PURE__ */ shared.extend({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n });\n var shallowReadonlyHandlers = /* @__PURE__ */ shared.extend({}, readonlyHandlers, {\n get: shallowReadonlyGet\n });\n var toReactive = (value) => shared.isObject(value) ? reactive3(value) : value;\n var toReadonly = (value) => shared.isObject(value) ? readonly(value) : value;\n var toShallow = (value) => value;\n var getProto = (v) => Reflect.getPrototypeOf(v);\n function get$1(target, key, isReadonly2 = false, isShallow = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const rawKey = toRaw2(key);\n if (key !== rawKey) {\n !isReadonly2 && track(rawTarget, \"get\", key);\n }\n !isReadonly2 && track(rawTarget, \"get\", rawKey);\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n }\n function has$1(key, isReadonly2 = false) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const rawKey = toRaw2(key);\n if (key !== rawKey) {\n !isReadonly2 && track(rawTarget, \"has\", key);\n }\n !isReadonly2 && track(rawTarget, \"has\", rawKey);\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n }\n function size(target, isReadonly2 = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n !isReadonly2 && track(toRaw2(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n }\n function add(value) {\n value = toRaw2(value);\n const target = toRaw2(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n }\n function set$1(key, value) {\n value = toRaw2(value);\n const target = toRaw2(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw2(key);\n hadKey = has2.call(target, key);\n } else {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (shared.hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n }\n function deleteEntry(key) {\n const target = toRaw2(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw2(key);\n hadKey = has2.call(target, key);\n } else {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3 ? get3.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n function clear() {\n const target = toRaw2(this);\n const hadItems = target.size !== 0;\n const oldTarget = shared.isMap(target) ? new Map(target) : new Set(target);\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n }\n function createForEach(isReadonly2, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n }\n function createIterableMethod(method, isReadonly2, isShallow) {\n return function(...args) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const targetIsMap = shared.isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n }\n function createReadonlyMethod(type) {\n return function(...args) {\n {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${shared.capitalize(type)} operation ${key}failed: target is readonly.`, toRaw2(this));\n }\n return type === \"delete\" ? false : this;\n };\n }\n function createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n }\n var [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\n function createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(shared.hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n };\n }\n var mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n };\n var shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n };\n var readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n };\n var shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n };\n function checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw2(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = shared.toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`);\n }\n }\n var reactiveMap = /* @__PURE__ */ new WeakMap();\n var shallowReactiveMap = /* @__PURE__ */ new WeakMap();\n var readonlyMap = /* @__PURE__ */ new WeakMap();\n var shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\n function targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n }\n function getTargetType(value) {\n return value[\n \"__v_skip\"\n /* SKIP */\n ] || !Object.isExtensible(value) ? 0 : targetTypeMap(shared.toRawType(value));\n }\n function reactive3(target) {\n if (target && target[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ]) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n }\n function shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n }\n function readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n }\n function shallowReadonly(target) {\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\n }\n function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!shared.isObject(target)) {\n {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\n \"__v_raw\"\n /* RAW */\n ] && !(isReadonly2 && target[\n \"__v_isReactive\"\n /* IS_REACTIVE */\n ])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n }\n function isReactive2(value) {\n if (isReadonly(value)) {\n return isReactive2(value[\n \"__v_raw\"\n /* RAW */\n ]);\n }\n return !!(value && value[\n \"__v_isReactive\"\n /* IS_REACTIVE */\n ]);\n }\n function isReadonly(value) {\n return !!(value && value[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ]);\n }\n function isProxy(value) {\n return isReactive2(value) || isReadonly(value);\n }\n function toRaw2(observed) {\n return observed && toRaw2(observed[\n \"__v_raw\"\n /* RAW */\n ]) || observed;\n }\n function markRaw(value) {\n shared.def(value, \"__v_skip\", true);\n return value;\n }\n var convert = (val) => shared.isObject(val) ? reactive3(val) : val;\n function isRef(r) {\n return Boolean(r && r.__v_isRef === true);\n }\n function ref(value) {\n return createRef(value);\n }\n function shallowRef(value) {\n return createRef(value, true);\n }\n var RefImpl = class {\n constructor(value, _shallow = false) {\n this._shallow = _shallow;\n this.__v_isRef = true;\n this._rawValue = _shallow ? value : toRaw2(value);\n this._value = _shallow ? value : convert(value);\n }\n get value() {\n track(toRaw2(this), \"get\", \"value\");\n return this._value;\n }\n set value(newVal) {\n newVal = this._shallow ? newVal : toRaw2(newVal);\n if (shared.hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = this._shallow ? newVal : convert(newVal);\n trigger(toRaw2(this), \"set\", \"value\", newVal);\n }\n }\n };\n function createRef(rawValue, shallow = false) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n }\n function triggerRef(ref2) {\n trigger(toRaw2(ref2), \"set\", \"value\", ref2.value);\n }\n function unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n }\n var shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n };\n function proxyRefs(objectWithRefs) {\n return isReactive2(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n }\n var CustomRefImpl = class {\n constructor(factory) {\n this.__v_isRef = true;\n const { get: get3, set: set3 } = factory(() => track(this, \"get\", \"value\"), () => trigger(this, \"set\", \"value\"));\n this._get = get3;\n this._set = set3;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n };\n function customRef(factory) {\n return new CustomRefImpl(factory);\n }\n function toRefs(object) {\n if (!isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = shared.isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n }\n var ObjectRefImpl = class {\n constructor(_object, _key) {\n this._object = _object;\n this._key = _key;\n this.__v_isRef = true;\n }\n get value() {\n return this._object[this._key];\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n };\n function toRef(object, key) {\n return isRef(object[key]) ? object[key] : new ObjectRefImpl(object, key);\n }\n var ComputedRefImpl = class {\n constructor(getter, _setter, isReadonly2) {\n this._setter = _setter;\n this._dirty = true;\n this.__v_isRef = true;\n this.effect = effect3(getter, {\n lazy: true,\n scheduler: () => {\n if (!this._dirty) {\n this._dirty = true;\n trigger(toRaw2(this), \"set\", \"value\");\n }\n }\n });\n this[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ] = isReadonly2;\n }\n get value() {\n const self2 = toRaw2(this);\n if (self2._dirty) {\n self2._value = this.effect();\n self2._dirty = false;\n }\n track(self2, \"get\", \"value\");\n return self2._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n };\n function computed(getterOrOptions) {\n let getter;\n let setter;\n if (shared.isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n setter = () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n };\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n return new ComputedRefImpl(getter, setter, shared.isFunction(getterOrOptions) || !getterOrOptions.set);\n }\n exports.ITERATE_KEY = ITERATE_KEY;\n exports.computed = computed;\n exports.customRef = customRef;\n exports.effect = effect3;\n exports.enableTracking = enableTracking;\n exports.isProxy = isProxy;\n exports.isReactive = isReactive2;\n exports.isReadonly = isReadonly;\n exports.isRef = isRef;\n exports.markRaw = markRaw;\n exports.pauseTracking = pauseTracking;\n exports.proxyRefs = proxyRefs;\n exports.reactive = reactive3;\n exports.readonly = readonly;\n exports.ref = ref;\n exports.resetTracking = resetTracking;\n exports.shallowReactive = shallowReactive;\n exports.shallowReadonly = shallowReadonly;\n exports.shallowRef = shallowRef;\n exports.stop = stop2;\n exports.toRaw = toRaw2;\n exports.toRef = toRef;\n exports.toRefs = toRefs;\n exports.track = track;\n exports.trigger = trigger;\n exports.triggerRef = triggerRef;\n exports.unref = unref;\n }\n});\n\n// node_modules/@vue/reactivity/index.js\nvar require_reactivity = __commonJS({\n \"node_modules/@vue/reactivity/index.js\"(exports, module2) {\n \"use strict\";\n if (false) {\n module2.exports = null;\n } else {\n module2.exports = require_reactivity_cjs();\n }\n }\n});\n\n// packages/csp/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n Alpine: () => src_default,\n default: () => module_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/alpinejs/src/scheduler.js\nvar flushPending = false;\nvar flushing = false;\nvar queue = [];\nvar lastFlushedIndex = -1;\nvar transactionActive = false;\nfunction scheduler(callback) {\n queueJob(callback);\n}\nfunction startTransaction() {\n transactionActive = true;\n}\nfunction commitTransaction() {\n transactionActive = false;\n queueFlush();\n}\nfunction queueJob(job) {\n if (!queue.includes(job))\n queue.push(job);\n queueFlush();\n}\nfunction dequeueJob(job) {\n let index = queue.indexOf(job);\n if (index !== -1 && index > lastFlushedIndex)\n queue.splice(index, 1);\n}\nfunction queueFlush() {\n if (!flushing && !flushPending) {\n if (transactionActive)\n return;\n flushPending = true;\n queueMicrotask(flushJobs);\n }\n}\nfunction flushJobs() {\n flushPending = false;\n flushing = true;\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n lastFlushedIndex = i;\n }\n queue.length = 0;\n lastFlushedIndex = -1;\n flushing = false;\n}\n\n// packages/alpinejs/src/reactivity.js\nvar reactive;\nvar effect;\nvar release;\nvar raw;\nvar shouldSchedule = true;\nfunction disableEffectScheduling(callback) {\n shouldSchedule = false;\n callback();\n shouldSchedule = true;\n}\nfunction setReactivityEngine(engine) {\n reactive = engine.reactive;\n release = engine.release;\n effect = (callback) => engine.effect(callback, { scheduler: (task) => {\n if (shouldSchedule) {\n scheduler(task);\n } else {\n task();\n }\n } });\n raw = engine.raw;\n}\nfunction overrideEffect(override) {\n effect = override;\n}\nfunction elementBoundEffect(el) {\n let cleanup = () => {\n };\n let wrappedEffect = (callback) => {\n let effectReference = effect(callback);\n if (!el._x_effects) {\n el._x_effects = /* @__PURE__ */ new Set();\n el._x_runEffects = () => {\n el._x_effects.forEach((i) => i());\n };\n }\n el._x_effects.add(effectReference);\n cleanup = () => {\n if (effectReference === void 0)\n return;\n el._x_effects.delete(effectReference);\n release(effectReference);\n };\n return effectReference;\n };\n return [wrappedEffect, () => {\n cleanup();\n }];\n}\nfunction watch(getter, callback) {\n let firstTime = true;\n let oldValue;\n let oldValueJSON;\n let effectReference = effect(() => {\n let value = getter();\n let newJSON = JSON.stringify(value);\n if (!firstTime) {\n if (typeof value === \"object\" || value !== oldValue) {\n let previousValue = typeof oldValue === \"object\" ? JSON.parse(oldValueJSON) : oldValue;\n queueMicrotask(() => {\n callback(value, previousValue);\n });\n }\n }\n oldValue = value;\n oldValueJSON = newJSON;\n firstTime = false;\n });\n return () => release(effectReference);\n}\nasync function transaction(callback) {\n startTransaction();\n try {\n await callback();\n await Promise.resolve();\n } finally {\n commitTransaction();\n }\n}\n\n// packages/alpinejs/src/mutation.js\nvar onAttributeAddeds = [];\nvar onElRemoveds = [];\nvar onElAddeds = [];\nfunction onElAdded(callback) {\n onElAddeds.push(callback);\n}\nfunction onElRemoved(el, callback) {\n if (typeof callback === \"function\") {\n if (!el._x_cleanups)\n el._x_cleanups = [];\n el._x_cleanups.push(callback);\n } else {\n callback = el;\n onElRemoveds.push(callback);\n }\n}\nfunction onAttributesAdded(callback) {\n onAttributeAddeds.push(callback);\n}\nfunction onAttributeRemoved(el, name, callback) {\n if (!el._x_attributeCleanups)\n el._x_attributeCleanups = {};\n if (!el._x_attributeCleanups[name])\n el._x_attributeCleanups[name] = [];\n el._x_attributeCleanups[name].push(callback);\n}\nfunction cleanupAttributes(el, names) {\n if (!el._x_attributeCleanups)\n return;\n Object.entries(el._x_attributeCleanups).forEach(([name, value]) => {\n if (names === void 0 || names.includes(name)) {\n value.forEach((i) => i());\n delete el._x_attributeCleanups[name];\n }\n });\n}\nfunction cleanupElement(el) {\n var _a, _b;\n (_a = el._x_effects) == null ? void 0 : _a.forEach(dequeueJob);\n while ((_b = el._x_cleanups) == null ? void 0 : _b.length)\n el._x_cleanups.pop()();\n}\nvar observer = new MutationObserver(onMutate);\nvar currentlyObserving = false;\nfunction startObservingMutations() {\n observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });\n currentlyObserving = true;\n}\nfunction stopObservingMutations() {\n flushObserver();\n observer.disconnect();\n currentlyObserving = false;\n}\nvar queuedMutations = [];\nfunction flushObserver() {\n let records = observer.takeRecords();\n queuedMutations.push(() => records.length > 0 && onMutate(records));\n let queueLengthWhenTriggered = queuedMutations.length;\n queueMicrotask(() => {\n if (queuedMutations.length === queueLengthWhenTriggered) {\n while (queuedMutations.length > 0)\n queuedMutations.shift()();\n }\n });\n}\nfunction mutateDom(callback) {\n if (!currentlyObserving)\n return callback();\n stopObservingMutations();\n let result = callback();\n startObservingMutations();\n return result;\n}\nvar isCollecting = false;\nvar deferredMutations = [];\nfunction deferMutations() {\n isCollecting = true;\n}\nfunction flushAndStopDeferringMutations() {\n isCollecting = false;\n onMutate(deferredMutations);\n deferredMutations = [];\n}\nfunction onMutate(mutations) {\n if (isCollecting) {\n deferredMutations = deferredMutations.concat(mutations);\n return;\n }\n let addedNodes = [];\n let removedNodes = /* @__PURE__ */ new Set();\n let addedAttributes = /* @__PURE__ */ new Map();\n let removedAttributes = /* @__PURE__ */ new Map();\n for (let i = 0; i < mutations.length; i++) {\n if (mutations[i].target._x_ignoreMutationObserver)\n continue;\n if (mutations[i].type === \"childList\") {\n mutations[i].removedNodes.forEach((node) => {\n if (node.nodeType !== 1)\n return;\n if (!node._x_marker)\n return;\n removedNodes.add(node);\n });\n mutations[i].addedNodes.forEach((node) => {\n if (node.nodeType !== 1)\n return;\n if (removedNodes.has(node)) {\n removedNodes.delete(node);\n return;\n }\n if (node._x_marker)\n return;\n addedNodes.push(node);\n });\n }\n if (mutations[i].type === \"attributes\") {\n let el = mutations[i].target;\n let name = mutations[i].attributeName;\n let oldValue = mutations[i].oldValue;\n let add = () => {\n if (!addedAttributes.has(el))\n addedAttributes.set(el, []);\n addedAttributes.get(el).push({ name, value: el.getAttribute(name) });\n };\n let remove = () => {\n if (!removedAttributes.has(el))\n removedAttributes.set(el, []);\n removedAttributes.get(el).push(name);\n };\n if (el.hasAttribute(name) && oldValue === null) {\n add();\n } else if (el.hasAttribute(name)) {\n remove();\n add();\n } else {\n remove();\n }\n }\n }\n removedAttributes.forEach((attrs, el) => {\n cleanupAttributes(el, attrs);\n });\n addedAttributes.forEach((attrs, el) => {\n onAttributeAddeds.forEach((i) => i(el, attrs));\n });\n for (let node of removedNodes) {\n if (addedNodes.some((i) => i.contains(node)))\n continue;\n onElRemoveds.forEach((i) => i(node));\n }\n for (let node of addedNodes) {\n if (!node.isConnected)\n continue;\n onElAddeds.forEach((i) => i(node));\n }\n addedNodes = null;\n removedNodes = null;\n addedAttributes = null;\n removedAttributes = null;\n}\n\n// packages/alpinejs/src/scope.js\nfunction scope(node) {\n return mergeProxies(closestDataStack(node));\n}\nfunction addScopeToNode(node, data2, referenceNode) {\n node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)];\n return () => {\n node._x_dataStack = node._x_dataStack.filter((i) => i !== data2);\n };\n}\nfunction closestDataStack(node) {\n if (node._x_dataStack)\n return node._x_dataStack;\n if (typeof ShadowRoot === \"function\" && node instanceof ShadowRoot) {\n return closestDataStack(node.host);\n }\n if (!node.parentNode) {\n return [];\n }\n return closestDataStack(node.parentNode);\n}\nfunction mergeProxies(objects) {\n return new Proxy({ objects }, mergeProxyTrap);\n}\nfunction keyInPrototypeChain(obj, key) {\n if (obj === null || obj === Object.prototype)\n return null;\n if (Object.prototype.hasOwnProperty.call(obj, key))\n return obj;\n return keyInPrototypeChain(Object.getPrototypeOf(obj), key);\n}\nvar mergeProxyTrap = {\n ownKeys({ objects }) {\n return Array.from(\n new Set(objects.flatMap((i) => Object.keys(i)))\n );\n },\n has({ objects }, name) {\n if (name == Symbol.unscopables)\n return false;\n return objects.some(\n (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name)\n );\n },\n get({ objects }, name, thisProxy) {\n if (name == \"toJSON\")\n return collapseProxies;\n return Reflect.get(\n objects.find(\n (obj) => Reflect.has(obj, name)\n ) || {},\n name,\n thisProxy\n );\n },\n set({ objects }, name, value, thisProxy) {\n let target;\n for (const obj of objects) {\n target = keyInPrototypeChain(obj, name);\n if (target)\n break;\n }\n if (!target)\n target = objects[objects.length - 1];\n const descriptor = Object.getOwnPropertyDescriptor(target, name);\n if ((descriptor == null ? void 0 : descriptor.set) && (descriptor == null ? void 0 : descriptor.get))\n return descriptor.set.call(thisProxy, value) || true;\n return Reflect.set(target, name, value);\n }\n};\nfunction collapseProxies() {\n let keys = Reflect.ownKeys(this);\n return keys.reduce((acc, key) => {\n acc[key] = Reflect.get(this, key);\n return acc;\n }, {});\n}\n\n// packages/alpinejs/src/interceptor.js\nfunction initInterceptors(data2) {\n let isObject2 = (val) => typeof val === \"object\" && !Array.isArray(val) && val !== null;\n let recurse = (obj, basePath = \"\") => {\n Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {\n if (enumerable === false || value === void 0)\n return;\n if (typeof value === \"object\" && value !== null && value.__v_skip)\n return;\n let path = basePath === \"\" ? key : `${basePath}.${key}`;\n if (typeof value === \"object\" && value !== null && value._x_interceptor) {\n obj[key] = value.initialize(data2, path, key);\n } else {\n if (isObject2(value) && value !== obj && !(value instanceof Element)) {\n recurse(value, path);\n }\n }\n });\n };\n return recurse(data2);\n}\nfunction interceptor(callback, mutateObj = () => {\n}) {\n let obj = {\n initialValue: void 0,\n _x_interceptor: true,\n initialize(data2, path, key) {\n return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key);\n }\n };\n mutateObj(obj);\n return (initialValue) => {\n if (typeof initialValue === \"object\" && initialValue !== null && initialValue._x_interceptor) {\n let initialize = obj.initialize.bind(obj);\n obj.initialize = (data2, path, key) => {\n let innerValue = initialValue.initialize(data2, path, key);\n obj.initialValue = innerValue;\n return initialize(data2, path, key);\n };\n } else {\n obj.initialValue = initialValue;\n }\n return obj;\n };\n}\nfunction get(obj, path) {\n return path.split(\".\").reduce((carry, segment) => carry[segment], obj);\n}\nfunction set(obj, path, value) {\n if (typeof path === \"string\")\n path = path.split(\".\");\n if (path.length === 1)\n obj[path[0]] = value;\n else if (path.length === 0)\n throw error;\n else {\n if (obj[path[0]])\n return set(obj[path[0]], path.slice(1), value);\n else {\n obj[path[0]] = {};\n return set(obj[path[0]], path.slice(1), value);\n }\n }\n}\n\n// packages/alpinejs/src/magics.js\nvar magics = {};\nfunction magic(name, callback) {\n magics[name] = callback;\n}\nfunction injectMagics(obj, el) {\n let memoizedUtilities = getUtilities(el);\n Object.entries(magics).forEach(([name, callback]) => {\n Object.defineProperty(obj, `$${name}`, {\n get() {\n return callback(el, memoizedUtilities);\n },\n enumerable: false\n });\n });\n return obj;\n}\nfunction getUtilities(el) {\n let [utilities, cleanup] = getElementBoundUtilities(el);\n let utils = { interceptor, ...utilities };\n onElRemoved(el, cleanup);\n return utils;\n}\n\n// packages/alpinejs/src/utils/error.js\nfunction tryCatch(el, expression, callback, ...args) {\n try {\n return callback(...args);\n } catch (e) {\n handleError(e, el, expression);\n }\n}\nfunction handleError(...args) {\n return errorHandler(...args);\n}\nvar errorHandler = normalErrorHandler;\nfunction setErrorHandler(handler4) {\n errorHandler = handler4;\n}\nfunction normalErrorHandler(error2, el, expression = void 0) {\n error2 = Object.assign(\n error2 != null ? error2 : { message: \"No error message given.\" },\n { el, expression }\n );\n console.warn(`Alpine Expression Error: ${error2.message}\n\n${expression ? 'Expression: \"' + expression + '\"\\n\\n' : \"\"}`, el);\n setTimeout(() => {\n throw error2;\n }, 0);\n}\n\n// packages/alpinejs/src/evaluator.js\nvar shouldAutoEvaluateFunctions = true;\nfunction dontAutoEvaluateFunctions(callback) {\n let cache = shouldAutoEvaluateFunctions;\n shouldAutoEvaluateFunctions = false;\n let result = callback();\n shouldAutoEvaluateFunctions = cache;\n return result;\n}\nfunction evaluate(el, expression, extras = {}) {\n let result;\n evaluateLater(el, expression)((value) => result = value, extras);\n return result;\n}\nfunction evaluateLater(...args) {\n return theEvaluatorFunction(...args);\n}\nvar theEvaluatorFunction = () => {\n};\nfunction setEvaluator(newEvaluator) {\n theEvaluatorFunction = newEvaluator;\n}\nvar theRawEvaluatorFunction;\nfunction setRawEvaluator(newEvaluator) {\n theRawEvaluatorFunction = newEvaluator;\n}\nfunction generateEvaluatorFromFunction(dataStack, func) {\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [], context } = {}) => {\n if (!shouldAutoEvaluateFunctions) {\n runIfTypeOfFunction(receiver, func, mergeProxies([scope2, ...dataStack]), params);\n return;\n }\n let result = func.apply(mergeProxies([scope2, ...dataStack]), params);\n runIfTypeOfFunction(receiver, result);\n };\n}\nfunction runIfTypeOfFunction(receiver, value, scope2, params, el) {\n if (shouldAutoEvaluateFunctions && typeof value === \"function\") {\n let result = value.apply(scope2, params);\n if (result instanceof Promise) {\n result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value));\n } else {\n receiver(result);\n }\n } else if (typeof value === \"object\" && value instanceof Promise) {\n value.then((i) => receiver(i));\n } else {\n receiver(value);\n }\n}\nfunction evaluateRaw(...args) {\n return theRawEvaluatorFunction(...args);\n}\n\n// packages/alpinejs/src/directives.js\nvar prefixAsString = \"x-\";\nfunction prefix(subject = \"\") {\n return prefixAsString + subject;\n}\nfunction setPrefix(newPrefix) {\n prefixAsString = newPrefix;\n}\nvar directiveHandlers = {};\nfunction directive(name, callback) {\n directiveHandlers[name] = callback;\n return {\n before(directive2) {\n if (!directiveHandlers[directive2]) {\n console.warn(String.raw`Cannot find directive \\`${directive2}\\`. \\`${name}\\` will use the default order of execution`);\n return;\n }\n const pos = directiveOrder.indexOf(directive2);\n directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf(\"DEFAULT\"), 0, name);\n }\n };\n}\nfunction directiveExists(name) {\n return Object.keys(directiveHandlers).includes(name);\n}\nfunction directives(el, attributes, originalAttributeOverride) {\n attributes = Array.from(attributes);\n if (el._x_virtualDirectives) {\n let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(vAttributes);\n vAttributes = vAttributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n attributes = attributes.concat(vAttributes);\n }\n let transformedAttributeMap = {};\n let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority);\n return directives2.map((directive2) => {\n return getDirectiveHandler(el, directive2);\n });\n}\nfunction attributesOnly(attributes) {\n return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr));\n}\nvar isDeferringHandlers = false;\nvar directiveHandlerStacks = /* @__PURE__ */ new Map();\nvar currentHandlerStackKey = Symbol();\nfunction deferHandlingDirectives(callback) {\n isDeferringHandlers = true;\n let key = Symbol();\n currentHandlerStackKey = key;\n directiveHandlerStacks.set(key, []);\n let flushHandlers = () => {\n while (directiveHandlerStacks.get(key).length)\n directiveHandlerStacks.get(key).shift()();\n directiveHandlerStacks.delete(key);\n };\n let stopDeferring = () => {\n isDeferringHandlers = false;\n flushHandlers();\n };\n callback(flushHandlers);\n stopDeferring();\n}\nfunction getElementBoundUtilities(el) {\n let cleanups = [];\n let cleanup = (callback) => cleanups.push(callback);\n let [effect3, cleanupEffect] = elementBoundEffect(el);\n cleanups.push(cleanupEffect);\n let utilities = {\n Alpine: alpine_default,\n effect: effect3,\n cleanup,\n evaluateLater: evaluateLater.bind(evaluateLater, el),\n evaluate: evaluate.bind(evaluate, el)\n };\n let doCleanup = () => cleanups.forEach((i) => i());\n return [utilities, doCleanup];\n}\nfunction getDirectiveHandler(el, directive2) {\n let noop = () => {\n };\n let handler4 = directiveHandlers[directive2.type] || noop;\n let [utilities, cleanup] = getElementBoundUtilities(el);\n onAttributeRemoved(el, directive2.original, cleanup);\n let fullHandler = () => {\n if (el._x_ignore || el._x_ignoreSelf)\n return;\n handler4.inline && handler4.inline(el, directive2, utilities);\n handler4 = handler4.bind(handler4, el, directive2, utilities);\n isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4();\n };\n fullHandler.runCleanups = cleanup;\n return fullHandler;\n}\nvar startingWith = (subject, replacement) => ({ name, value }) => {\n if (name.startsWith(subject))\n name = name.replace(subject, replacement);\n return { name, value };\n};\nvar into = (i) => i;\nfunction toTransformedAttributes(callback = () => {\n}) {\n return ({ name, value }) => {\n let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => {\n return transform(carry);\n }, { name, value });\n if (newName !== name)\n callback(newName, name);\n return { name: newName, value: newValue };\n };\n}\nvar attributeTransformers = [];\nfunction mapAttributes(callback) {\n attributeTransformers.push(callback);\n}\nfunction outNonAlpineAttributes({ name }) {\n return alpineAttributeRegex().test(name);\n}\nvar alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\\\b`);\nfunction toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {\n return ({ name, value }) => {\n if (name === value)\n value = \"\";\n let typeMatch = name.match(alpineAttributeRegex());\n let valueMatch = name.match(/:([a-zA-Z0-9\\-_:]+)/);\n let modifiers = name.match(/\\.[^.\\]]+(?=[^\\]]*$)/g) || [];\n let original = originalAttributeOverride || transformedAttributeMap[name] || name;\n return {\n type: typeMatch ? typeMatch[1] : null,\n value: valueMatch ? valueMatch[1] : null,\n modifiers: modifiers.map((i) => i.replace(\".\", \"\")),\n expression: value,\n original\n };\n };\n}\nvar DEFAULT = \"DEFAULT\";\nvar directiveOrder = [\n \"ignore\",\n \"ref\",\n \"id\",\n \"data\",\n \"anchor\",\n \"bind\",\n \"init\",\n \"for\",\n \"model\",\n \"modelable\",\n \"transition\",\n \"show\",\n \"if\",\n DEFAULT,\n \"teleport\"\n];\nfunction byPriority(a, b) {\n let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type;\n let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type;\n return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);\n}\n\n// packages/alpinejs/src/utils/dispatch.js\nfunction dispatch(el, name, detail = {}, options = {}) {\n return el.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles: true,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true,\n // Allows overriding the default event options.\n ...options\n })\n );\n}\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/alpinejs/src/utils/warn.js\nfunction warn(message, ...args) {\n console.warn(`Alpine Warning: ${message}`, ...args);\n}\n\n// packages/alpinejs/src/lifecycle.js\nvar started = false;\nfunction start() {\n if (started)\n warn(\"Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.\");\n started = true;\n if (!document.body)\n warn(\"Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?\");\n dispatch(document, \"alpine:init\");\n dispatch(document, \"alpine:initializing\");\n startObservingMutations();\n onElAdded((el) => initTree(el, walk));\n onElRemoved((el) => destroyTree(el));\n onAttributesAdded((el, attrs) => {\n directives(el, attrs).forEach((handle) => handle());\n });\n let outNestedComponents = (el) => !closestRoot(el.parentElement, true);\n Array.from(document.querySelectorAll(allSelectors().join(\",\"))).filter(outNestedComponents).forEach((el) => {\n initTree(el);\n });\n dispatch(document, \"alpine:initialized\");\n setTimeout(() => {\n warnAboutMissingPlugins();\n });\n}\nvar rootSelectorCallbacks = [];\nvar initSelectorCallbacks = [];\nfunction rootSelectors() {\n return rootSelectorCallbacks.map((fn) => fn());\n}\nfunction allSelectors() {\n return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn());\n}\nfunction addRootSelector(selectorCallback) {\n rootSelectorCallbacks.push(selectorCallback);\n}\nfunction addInitSelector(selectorCallback) {\n initSelectorCallbacks.push(selectorCallback);\n}\nfunction closestRoot(el, includeInitSelectors = false) {\n return findClosest(el, (element) => {\n const selectors = includeInitSelectors ? allSelectors() : rootSelectors();\n if (selectors.some((selector) => element.matches(selector)))\n return true;\n });\n}\nfunction findClosest(el, callback) {\n if (!el)\n return;\n if (callback(el))\n return el;\n if (el._x_teleportBack)\n return findClosest(el._x_teleportBack, callback);\n if (el.parentNode instanceof ShadowRoot) {\n return findClosest(el.parentNode.host, callback);\n }\n if (!el.parentElement)\n return;\n return findClosest(el.parentElement, callback);\n}\nfunction isRoot(el) {\n return rootSelectors().some((selector) => el.matches(selector));\n}\nvar initInterceptors2 = [];\nfunction interceptInit(callback) {\n initInterceptors2.push(callback);\n}\nvar markerDispenser = 1;\nfunction initTree(el, walker = walk, intercept = () => {\n}) {\n if (findClosest(el, (i) => i._x_ignore))\n return;\n deferHandlingDirectives(() => {\n walker(el, (el2, skip) => {\n if (el2._x_marker)\n return;\n intercept(el2, skip);\n initInterceptors2.forEach((i) => i(el2, skip));\n directives(el2, el2.attributes).forEach((handle) => handle());\n if (!el2._x_ignore)\n el2._x_marker = markerDispenser++;\n el2._x_ignore && skip();\n });\n });\n}\nfunction destroyTree(root, walker = walk) {\n walker(root, (el) => {\n cleanupElement(el);\n cleanupAttributes(el);\n delete el._x_marker;\n });\n}\nfunction warnAboutMissingPlugins() {\n let pluginDirectives = [\n [\"ui\", \"dialog\", [\"[x-dialog], [x-popover]\"]],\n [\"anchor\", \"anchor\", [\"[x-anchor]\"]],\n [\"sort\", \"sort\", [\"[x-sort]\"]]\n ];\n pluginDirectives.forEach(([plugin2, directive2, selectors]) => {\n if (directiveExists(directive2))\n return;\n selectors.some((selector) => {\n if (document.querySelector(selector)) {\n warn(`found \"${selector}\", but missing ${plugin2} plugin`);\n return true;\n }\n });\n });\n}\n\n// packages/alpinejs/src/nextTick.js\nvar tickStack = [];\nvar isHolding = false;\nfunction nextTick(callback = () => {\n}) {\n queueMicrotask(() => {\n isHolding || setTimeout(() => {\n releaseNextTicks();\n });\n });\n return new Promise((res) => {\n tickStack.push(() => {\n callback();\n res();\n });\n });\n}\nfunction releaseNextTicks() {\n isHolding = false;\n while (tickStack.length)\n tickStack.shift()();\n}\nfunction holdNextTicks() {\n isHolding = true;\n}\n\n// packages/alpinejs/src/utils/classes.js\nfunction setClasses(el, value) {\n if (Array.isArray(value)) {\n return setClassesFromString(el, value.join(\" \"));\n } else if (typeof value === \"object\" && value !== null) {\n return setClassesFromObject(el, value);\n } else if (typeof value === \"function\") {\n return setClasses(el, value());\n }\n return setClassesFromString(el, value);\n}\nfunction splitClasses(classString) {\n return classString.split(/\\s/).filter(Boolean);\n}\nfunction setClassesFromString(el, classString) {\n let missingClasses = (classString2) => splitClasses(classString2).filter((i) => !el.classList.contains(i)).filter(Boolean);\n let addClassesAndReturnUndo = (classes) => {\n el.classList.add(...classes);\n return () => {\n el.classList.remove(...classes);\n };\n };\n classString = classString === true ? classString = \"\" : classString || \"\";\n return addClassesAndReturnUndo(missingClasses(classString));\n}\nfunction setClassesFromObject(el, classObject) {\n let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? splitClasses(classString) : false).filter(Boolean);\n let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? splitClasses(classString) : false).filter(Boolean);\n let added = [];\n let removed = [];\n forRemove.forEach((i) => {\n if (el.classList.contains(i)) {\n el.classList.remove(i);\n removed.push(i);\n }\n });\n forAdd.forEach((i) => {\n if (!el.classList.contains(i)) {\n el.classList.add(i);\n added.push(i);\n }\n });\n return () => {\n removed.forEach((i) => el.classList.add(i));\n added.forEach((i) => el.classList.remove(i));\n };\n}\n\n// packages/alpinejs/src/utils/styles.js\nfunction setStyles(el, value) {\n if (typeof value === \"object\" && value !== null) {\n return setStylesFromObject(el, value);\n }\n return setStylesFromString(el, value);\n}\nfunction setStylesFromObject(el, value) {\n let previousStyles = {};\n Object.entries(value).forEach(([key, value2]) => {\n previousStyles[key] = el.style[key];\n if (!key.startsWith(\"--\")) {\n key = kebabCase(key);\n }\n el.style.setProperty(key, value2);\n });\n setTimeout(() => {\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n });\n return () => {\n setStyles(el, previousStyles);\n };\n}\nfunction setStylesFromString(el, value) {\n let cache = el.getAttribute(\"style\", value);\n el.setAttribute(\"style\", value);\n return () => {\n el.setAttribute(\"style\", cache || \"\");\n };\n}\nfunction kebabCase(subject) {\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\n// packages/alpinejs/src/utils/once.js\nfunction once(callback, fallback = () => {\n}) {\n let called = false;\n return function() {\n if (!called) {\n called = true;\n callback.apply(this, arguments);\n } else {\n fallback.apply(this, arguments);\n }\n };\n}\n\n// packages/alpinejs/src/directives/x-transition.js\ndirective(\"transition\", (el, { value, modifiers, expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"function\")\n expression = evaluate2(expression);\n if (expression === false)\n return;\n if (!expression || typeof expression === \"boolean\") {\n registerTransitionsFromHelper(el, modifiers, value);\n } else {\n registerTransitionsFromClassString(el, expression, value);\n }\n});\nfunction registerTransitionsFromClassString(el, classString, stage) {\n registerTransitionObject(el, setClasses, \"\");\n let directiveStorageMap = {\n \"enter\": (classes) => {\n el._x_transition.enter.during = classes;\n },\n \"enter-start\": (classes) => {\n el._x_transition.enter.start = classes;\n },\n \"enter-end\": (classes) => {\n el._x_transition.enter.end = classes;\n },\n \"leave\": (classes) => {\n el._x_transition.leave.during = classes;\n },\n \"leave-start\": (classes) => {\n el._x_transition.leave.start = classes;\n },\n \"leave-end\": (classes) => {\n el._x_transition.leave.end = classes;\n }\n };\n directiveStorageMap[stage](classString);\n}\nfunction registerTransitionsFromHelper(el, modifiers, stage) {\n registerTransitionObject(el, setStyles);\n let doesntSpecify = !modifiers.includes(\"in\") && !modifiers.includes(\"out\") && !stage;\n let transitioningIn = doesntSpecify || modifiers.includes(\"in\") || [\"enter\"].includes(stage);\n let transitioningOut = doesntSpecify || modifiers.includes(\"out\") || [\"leave\"].includes(stage);\n if (modifiers.includes(\"in\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index < modifiers.indexOf(\"out\"));\n }\n if (modifiers.includes(\"out\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index > modifiers.indexOf(\"out\"));\n }\n let wantsAll = !modifiers.includes(\"opacity\") && !modifiers.includes(\"scale\");\n let wantsOpacity = wantsAll || modifiers.includes(\"opacity\");\n let wantsScale = wantsAll || modifiers.includes(\"scale\");\n let opacityValue = wantsOpacity ? 0 : 1;\n let scaleValue = wantsScale ? modifierValue(modifiers, \"scale\", 95) / 100 : 1;\n let delay = modifierValue(modifiers, \"delay\", 0) / 1e3;\n let origin = modifierValue(modifiers, \"origin\", \"center\");\n let property = \"opacity, transform\";\n let durationIn = modifierValue(modifiers, \"duration\", 150) / 1e3;\n let durationOut = modifierValue(modifiers, \"duration\", 75) / 1e3;\n let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`;\n if (transitioningIn) {\n el._x_transition.enter.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationIn}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.enter.start = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n el._x_transition.enter.end = {\n opacity: 1,\n transform: `scale(1)`\n };\n }\n if (transitioningOut) {\n el._x_transition.leave.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationOut}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.leave.start = {\n opacity: 1,\n transform: `scale(1)`\n };\n el._x_transition.leave.end = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n }\n}\nfunction registerTransitionObject(el, setFunction, defaultValue = {}) {\n if (!el._x_transition)\n el._x_transition = {\n enter: { during: defaultValue, start: defaultValue, end: defaultValue },\n leave: { during: defaultValue, start: defaultValue, end: defaultValue },\n in(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.enter.during,\n start: this.enter.start,\n end: this.enter.end\n }, before, after);\n },\n out(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.leave.during,\n start: this.leave.start,\n end: this.leave.end\n }, before, after);\n }\n };\n}\nwindow.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) {\n const nextTick2 = document.visibilityState === \"visible\" ? requestAnimationFrame : setTimeout;\n let clickAwayCompatibleShow = () => nextTick2(show);\n if (value) {\n if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) {\n el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow();\n } else {\n el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();\n }\n return;\n }\n el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => {\n el._x_transition.out(() => {\n }, () => resolve(hide));\n el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true }));\n }) : Promise.resolve(hide);\n queueMicrotask(() => {\n let closest = closestHide(el);\n if (closest) {\n if (!closest._x_hideChildren)\n closest._x_hideChildren = [];\n closest._x_hideChildren.push(el);\n } else {\n nextTick2(() => {\n let hideAfterChildren = (el2) => {\n let carry = Promise.all([\n el2._x_hidePromise,\n ...(el2._x_hideChildren || []).map(hideAfterChildren)\n ]).then(([i]) => i == null ? void 0 : i());\n delete el2._x_hidePromise;\n delete el2._x_hideChildren;\n return carry;\n };\n hideAfterChildren(el).catch((e) => {\n if (!e.isFromCancelledTransition)\n throw e;\n });\n });\n }\n });\n};\nfunction closestHide(el) {\n let parent = el.parentNode;\n if (!parent)\n return;\n return parent._x_hidePromise ? parent : closestHide(parent);\n}\nfunction transition(el, setFunction, { during, start: start2, end } = {}, before = () => {\n}, after = () => {\n}) {\n if (el._x_transitioning)\n el._x_transitioning.cancel();\n if (Object.keys(during).length === 0 && Object.keys(start2).length === 0 && Object.keys(end).length === 0) {\n before();\n after();\n return;\n }\n let undoStart, undoDuring, undoEnd;\n performTransition(el, {\n start() {\n undoStart = setFunction(el, start2);\n },\n during() {\n undoDuring = setFunction(el, during);\n },\n before,\n end() {\n undoStart();\n undoEnd = setFunction(el, end);\n },\n after,\n cleanup() {\n undoDuring();\n undoEnd();\n }\n });\n}\nfunction performTransition(el, stages) {\n let interrupted, reachedBefore, reachedEnd;\n let finish = once(() => {\n mutateDom(() => {\n interrupted = true;\n if (!reachedBefore)\n stages.before();\n if (!reachedEnd) {\n stages.end();\n releaseNextTicks();\n }\n stages.after();\n if (el.isConnected)\n stages.cleanup();\n delete el._x_transitioning;\n });\n });\n el._x_transitioning = {\n beforeCancels: [],\n beforeCancel(callback) {\n this.beforeCancels.push(callback);\n },\n cancel: once(function() {\n while (this.beforeCancels.length) {\n this.beforeCancels.shift()();\n }\n ;\n finish();\n }),\n finish\n };\n mutateDom(() => {\n stages.start();\n stages.during();\n });\n holdNextTicks();\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n let delay = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n if (duration === 0)\n duration = Number(getComputedStyle(el).animationDuration.replace(\"s\", \"\")) * 1e3;\n mutateDom(() => {\n stages.before();\n });\n reachedBefore = true;\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n mutateDom(() => {\n stages.end();\n });\n releaseNextTicks();\n setTimeout(el._x_transitioning.finish, duration + delay);\n reachedEnd = true;\n });\n });\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"scale\") {\n if (isNaN(rawValue))\n return fallback;\n }\n if (key === \"duration\" || key === \"delay\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"origin\") {\n if ([\"top\", \"right\", \"left\", \"center\", \"bottom\"].includes(modifiers[modifiers.indexOf(key) + 2])) {\n return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(\" \");\n }\n }\n return rawValue;\n}\n\n// packages/alpinejs/src/clone.js\nvar isCloning = false;\nfunction skipDuringClone(callback, fallback = () => {\n}) {\n return (...args) => isCloning ? fallback(...args) : callback(...args);\n}\nfunction onlyDuringClone(callback) {\n return (...args) => isCloning && callback(...args);\n}\nvar interceptors = [];\nfunction interceptClone(callback) {\n interceptors.push(callback);\n}\nfunction cloneNode(from, to) {\n interceptors.forEach((i) => i(from, to));\n isCloning = true;\n dontRegisterReactiveSideEffects(() => {\n initTree(to, (el, callback) => {\n callback(el, () => {\n });\n });\n });\n isCloning = false;\n}\nvar isCloningLegacy = false;\nfunction clone(oldEl, newEl) {\n if (!newEl._x_dataStack)\n newEl._x_dataStack = oldEl._x_dataStack;\n isCloning = true;\n isCloningLegacy = true;\n dontRegisterReactiveSideEffects(() => {\n cloneTree(newEl);\n });\n isCloning = false;\n isCloningLegacy = false;\n}\nfunction cloneTree(el) {\n let hasRunThroughFirstEl = false;\n let shallowWalker = (el2, callback) => {\n walk(el2, (el3, skip) => {\n if (hasRunThroughFirstEl && isRoot(el3))\n return skip();\n hasRunThroughFirstEl = true;\n callback(el3, skip);\n });\n };\n initTree(el, shallowWalker);\n}\nfunction dontRegisterReactiveSideEffects(callback) {\n let cache = effect;\n overrideEffect((callback2, el) => {\n let storedEffect = cache(callback2);\n release(storedEffect);\n return () => {\n };\n });\n callback();\n overrideEffect(cache);\n}\n\n// packages/alpinejs/src/utils/bind.js\nfunction bind(el, name, value, modifiers = []) {\n if (!el._x_bindings)\n el._x_bindings = reactive({});\n el._x_bindings[name] = value;\n name = modifiers.includes(\"camel\") ? camelCase(name) : name;\n switch (name) {\n case \"value\":\n bindInputValue(el, value);\n break;\n case \"style\":\n bindStyles(el, value);\n break;\n case \"class\":\n bindClasses(el, value);\n break;\n case \"selected\":\n case \"checked\":\n bindAttributeAndProperty(el, name, value);\n break;\n default:\n bindAttribute(el, name, value);\n break;\n }\n}\nfunction bindInputValue(el, value) {\n if (isRadio(el)) {\n if (el.attributes.value === void 0) {\n el.value = value;\n }\n } else if (isCheckbox(el)) {\n if (Number.isInteger(value)) {\n el.value = value;\n } else if (!Array.isArray(value) && typeof value !== \"boolean\" && ![null, void 0].includes(value)) {\n el.value = String(value);\n } else {\n if (Array.isArray(value)) {\n el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value));\n } else {\n el.checked = !!value;\n }\n }\n } else if (el.tagName === \"SELECT\") {\n updateSelect(el, value);\n } else {\n if (el.value === value)\n return;\n el.value = value === void 0 ? \"\" : value;\n }\n}\nfunction bindClasses(el, value) {\n if (el._x_undoAddedClasses)\n el._x_undoAddedClasses();\n el._x_undoAddedClasses = setClasses(el, value);\n}\nfunction bindStyles(el, value) {\n if (el._x_undoAddedStyles)\n el._x_undoAddedStyles();\n el._x_undoAddedStyles = setStyles(el, value);\n}\nfunction bindAttributeAndProperty(el, name, value) {\n bindAttribute(el, name, value);\n setPropertyIfChanged(el, name, value);\n}\nfunction bindAttribute(el, name, value) {\n if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) {\n el.removeAttribute(name);\n } else {\n if (isBooleanAttr(name))\n value = name;\n setIfChanged(el, name, value);\n }\n}\nfunction setIfChanged(el, attrName, value) {\n if (el.getAttribute(attrName) != value) {\n el.setAttribute(attrName, value);\n }\n}\nfunction setPropertyIfChanged(el, propName, value) {\n if (el[propName] !== value) {\n el[propName] = value;\n }\n}\nfunction updateSelect(el, value) {\n const arrayWrappedValue = [].concat(value).map((value2) => {\n return value2 + \"\";\n });\n Array.from(el.options).forEach((option) => {\n option.selected = arrayWrappedValue.includes(option.value);\n });\n}\nfunction camelCase(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction checkedAttrLooseCompare(valueA, valueB) {\n return valueA == valueB;\n}\nfunction safeParseBoolean(rawValue) {\n if ([1, \"1\", \"true\", \"on\", \"yes\", true].includes(rawValue)) {\n return true;\n }\n if ([0, \"0\", \"false\", \"off\", \"no\", false].includes(rawValue)) {\n return false;\n }\n return rawValue ? Boolean(rawValue) : null;\n}\nvar booleanAttributes = /* @__PURE__ */ new Set([\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"defer\",\n \"disabled\",\n \"formnovalidate\",\n \"inert\",\n \"ismap\",\n \"itemscope\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"selected\",\n \"shadowrootclonable\",\n \"shadowrootdelegatesfocus\",\n \"shadowrootserializable\"\n]);\nfunction isBooleanAttr(attrName) {\n return booleanAttributes.has(attrName);\n}\nfunction attributeShouldntBePreservedIfFalsy(name) {\n return ![\"aria-pressed\", \"aria-checked\", \"aria-expanded\", \"aria-selected\"].includes(name);\n}\nfunction getBinding(el, name, fallback) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n return getAttributeBinding(el, name, fallback);\n}\nfunction extractProp(el, name, fallback, extract = true) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) {\n let binding = el._x_inlineBindings[name];\n binding.extract = extract;\n return dontAutoEvaluateFunctions(() => {\n return evaluate(el, binding.expression);\n });\n }\n return getAttributeBinding(el, name, fallback);\n}\nfunction getAttributeBinding(el, name, fallback) {\n let attr = el.getAttribute(name);\n if (attr === null)\n return typeof fallback === \"function\" ? fallback() : fallback;\n if (attr === \"\")\n return true;\n if (isBooleanAttr(name)) {\n return !![name, \"true\"].includes(attr);\n }\n return attr;\n}\nfunction isCheckbox(el) {\n return el.type === \"checkbox\" || el.localName === \"ui-checkbox\" || el.localName === \"ui-switch\";\n}\nfunction isRadio(el) {\n return el.type === \"radio\" || el.localName === \"ui-radio\";\n}\n\n// packages/alpinejs/src/utils/debounce.js\nfunction debounce(func, wait) {\n let timeout;\n return function() {\n const context = this, args = arguments;\n const later = function() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n// packages/alpinejs/src/utils/throttle.js\nfunction throttle(func, limit) {\n let inThrottle;\n return function() {\n let context = this, args = arguments;\n if (!inThrottle) {\n func.apply(context, args);\n inThrottle = true;\n setTimeout(() => inThrottle = false, limit);\n }\n };\n}\n\n// packages/alpinejs/src/entangle.js\nfunction entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {\n let firstRun = true;\n let outerHash;\n let innerHash;\n let reference = effect(() => {\n let outer = outerGet();\n let inner = innerGet();\n if (firstRun) {\n innerSet(cloneIfObject(outer));\n firstRun = false;\n } else {\n let outerHashLatest = JSON.stringify(outer);\n let innerHashLatest = JSON.stringify(inner);\n if (outerHashLatest !== outerHash) {\n innerSet(cloneIfObject(outer));\n } else if (outerHashLatest !== innerHashLatest) {\n outerSet(cloneIfObject(inner));\n } else {\n }\n }\n outerHash = JSON.stringify(outerGet());\n innerHash = JSON.stringify(innerGet());\n });\n return () => {\n release(reference);\n };\n}\nfunction cloneIfObject(value) {\n return typeof value === \"object\" ? JSON.parse(JSON.stringify(value)) : value;\n}\n\n// packages/alpinejs/src/plugin.js\nfunction plugin(callback) {\n let callbacks = Array.isArray(callback) ? callback : [callback];\n callbacks.forEach((i) => i(alpine_default));\n}\n\n// packages/alpinejs/src/store.js\nvar stores = {};\nvar isReactive = false;\nfunction store(name, value) {\n if (!isReactive) {\n stores = reactive(stores);\n isReactive = true;\n }\n if (value === void 0) {\n return stores[name];\n }\n stores[name] = value;\n initInterceptors(stores[name]);\n if (typeof value === \"object\" && value !== null && value.hasOwnProperty(\"init\") && typeof value.init === \"function\") {\n stores[name].init();\n }\n}\nfunction getStores() {\n return stores;\n}\n\n// packages/alpinejs/src/binds.js\nvar binds = {};\nfunction bind2(name, bindings) {\n let getBindings = typeof bindings !== \"function\" ? () => bindings : bindings;\n if (name instanceof Element) {\n return applyBindingsObject(name, getBindings());\n } else {\n binds[name] = getBindings;\n }\n return () => {\n };\n}\nfunction injectBindingProviders(obj) {\n Object.entries(binds).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback(...args);\n };\n }\n });\n });\n return obj;\n}\nfunction applyBindingsObject(el, obj, original) {\n let cleanupRunners = [];\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n let attributes = Object.entries(obj).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(attributes);\n attributes = attributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n directives(el, attributes, original).map((handle) => {\n cleanupRunners.push(handle.runCleanups);\n handle();\n });\n return () => {\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n };\n}\n\n// packages/alpinejs/src/datas.js\nvar datas = {};\nfunction data(name, callback) {\n datas[name] = callback;\n}\nfunction injectDataProviders(obj, context) {\n Object.entries(datas).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback.bind(context)(...args);\n };\n },\n enumerable: false\n });\n });\n return obj;\n}\n\n// packages/alpinejs/src/alpine.js\nvar Alpine = {\n get reactive() {\n return reactive;\n },\n get release() {\n return release;\n },\n get effect() {\n return effect;\n },\n get raw() {\n return raw;\n },\n get transaction() {\n return transaction;\n },\n version: \"3.15.12\",\n flushAndStopDeferringMutations,\n dontAutoEvaluateFunctions,\n disableEffectScheduling,\n startObservingMutations,\n stopObservingMutations,\n setReactivityEngine,\n onAttributeRemoved,\n onAttributesAdded,\n closestDataStack,\n skipDuringClone,\n onlyDuringClone,\n addRootSelector,\n addInitSelector,\n setErrorHandler,\n interceptClone,\n addScopeToNode,\n deferMutations,\n mapAttributes,\n evaluateLater,\n interceptInit,\n initInterceptors,\n injectMagics,\n setEvaluator,\n setRawEvaluator,\n mergeProxies,\n extractProp,\n findClosest,\n onElRemoved,\n closestRoot,\n destroyTree,\n interceptor,\n // INTERNAL: not public API and is subject to change without major release.\n transition,\n // INTERNAL\n setStyles,\n // INTERNAL\n mutateDom,\n directive,\n entangle,\n throttle,\n debounce,\n evaluate,\n evaluateRaw,\n initTree,\n nextTick,\n prefixed: prefix,\n prefix: setPrefix,\n plugin,\n magic,\n store,\n start,\n clone,\n // INTERNAL\n cloneNode,\n // INTERNAL\n bound: getBinding,\n $data: scope,\n watch,\n walk,\n data,\n bind: bind2\n};\nvar alpine_default = Alpine;\n\n// packages/csp/src/parser.js\nvar safemap = /* @__PURE__ */ new WeakMap();\nvar globals = /* @__PURE__ */ new Set();\nObject.getOwnPropertyNames(globalThis).forEach((key) => {\n if (key === \"styleMedia\" || key === \"sharedStorage\")\n return;\n globals.add(globalThis[key]);\n});\nvar Token = class {\n constructor(type, value, start2, end) {\n this.type = type;\n this.value = value;\n this.start = start2;\n this.end = end;\n }\n};\nvar Tokenizer = class {\n constructor(input) {\n this.input = input;\n this.position = 0;\n this.tokens = [];\n }\n tokenize() {\n while (this.position < this.input.length) {\n this.skipWhitespace();\n if (this.position >= this.input.length)\n break;\n const char = this.input[this.position];\n if (this.isDigit(char)) {\n this.readNumber();\n } else if (this.isAlpha(char) || char === \"_\" || char === \"$\") {\n this.readIdentifierOrKeyword();\n } else if (char === '\"' || char === \"'\") {\n this.readString();\n } else if (char === \"/\" && this.peek() === \"/\") {\n this.skipLineComment();\n } else {\n this.readOperatorOrPunctuation();\n }\n }\n this.tokens.push(new Token(\"EOF\", null, this.position, this.position));\n return this.tokens;\n }\n skipWhitespace() {\n while (this.position < this.input.length && /\\s/.test(this.input[this.position])) {\n this.position++;\n }\n }\n skipLineComment() {\n while (this.position < this.input.length && this.input[this.position] !== \"\\n\") {\n this.position++;\n }\n }\n isDigit(char) {\n return /[0-9]/.test(char);\n }\n isAlpha(char) {\n return /[a-zA-Z]/.test(char);\n }\n isAlphaNumeric(char) {\n return /[a-zA-Z0-9_$]/.test(char);\n }\n peek(offset = 1) {\n return this.input[this.position + offset] || \"\";\n }\n readNumber() {\n const start2 = this.position;\n let hasDecimal = false;\n while (this.position < this.input.length) {\n const char = this.input[this.position];\n if (this.isDigit(char)) {\n this.position++;\n } else if (char === \".\" && !hasDecimal) {\n hasDecimal = true;\n this.position++;\n } else {\n break;\n }\n }\n const value = this.input.slice(start2, this.position);\n this.tokens.push(new Token(\"NUMBER\", parseFloat(value), start2, this.position));\n }\n readIdentifierOrKeyword() {\n const start2 = this.position;\n while (this.position < this.input.length && this.isAlphaNumeric(this.input[this.position])) {\n this.position++;\n }\n const value = this.input.slice(start2, this.position);\n const keywords = [\"true\", \"false\", \"null\", \"undefined\", \"new\", \"typeof\", \"void\", \"delete\", \"in\", \"instanceof\"];\n if (keywords.includes(value)) {\n if (value === \"true\" || value === \"false\") {\n this.tokens.push(new Token(\"BOOLEAN\", value === \"true\", start2, this.position));\n } else if (value === \"null\") {\n this.tokens.push(new Token(\"NULL\", null, start2, this.position));\n } else if (value === \"undefined\") {\n this.tokens.push(new Token(\"UNDEFINED\", void 0, start2, this.position));\n } else {\n this.tokens.push(new Token(\"KEYWORD\", value, start2, this.position));\n }\n } else {\n this.tokens.push(new Token(\"IDENTIFIER\", value, start2, this.position));\n }\n }\n readString() {\n const start2 = this.position;\n const quote = this.input[this.position];\n this.position++;\n let value = \"\";\n let escaped = false;\n while (this.position < this.input.length) {\n const char = this.input[this.position];\n if (escaped) {\n switch (char) {\n case \"n\":\n value += \"\\n\";\n break;\n case \"t\":\n value += \"\t\";\n break;\n case \"r\":\n value += \"\\r\";\n break;\n case \"\\\\\":\n value += \"\\\\\";\n break;\n case quote:\n value += quote;\n break;\n default:\n value += char;\n }\n escaped = false;\n } else if (char === \"\\\\\") {\n escaped = true;\n } else if (char === quote) {\n this.position++;\n this.tokens.push(new Token(\"STRING\", value, start2, this.position));\n return;\n } else {\n value += char;\n }\n this.position++;\n }\n throw new Error(`Unterminated string starting at position ${start2}`);\n }\n readOperatorOrPunctuation() {\n const start2 = this.position;\n const char = this.input[this.position];\n const next = this.peek();\n const nextNext = this.peek(2);\n if (char === \"=\" && next === \"=\" && nextNext === \"=\") {\n this.position += 3;\n this.tokens.push(new Token(\"OPERATOR\", \"===\", start2, this.position));\n } else if (char === \"!\" && next === \"=\" && nextNext === \"=\") {\n this.position += 3;\n this.tokens.push(new Token(\"OPERATOR\", \"!==\", start2, this.position));\n } else if (char === \"=\" && next === \"=\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"==\", start2, this.position));\n } else if (char === \"!\" && next === \"=\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"!=\", start2, this.position));\n } else if (char === \"<\" && next === \"=\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"<=\", start2, this.position));\n } else if (char === \">\" && next === \"=\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \">=\", start2, this.position));\n } else if (char === \"&\" && next === \"&\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"&&\", start2, this.position));\n } else if (char === \"|\" && next === \"|\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"||\", start2, this.position));\n } else if (char === \"+\" && next === \"+\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"++\", start2, this.position));\n } else if (char === \"-\" && next === \"-\") {\n this.position += 2;\n this.tokens.push(new Token(\"OPERATOR\", \"--\", start2, this.position));\n } else {\n this.position++;\n const type = \"()[]{},.;:?\".includes(char) ? \"PUNCTUATION\" : \"OPERATOR\";\n this.tokens.push(new Token(type, char, start2, this.position));\n }\n }\n};\nvar Parser = class {\n constructor(tokens) {\n this.tokens = tokens;\n this.position = 0;\n }\n parse() {\n if (this.isAtEnd()) {\n throw new Error(\"Empty expression\");\n }\n const expr = this.parseExpression();\n this.match(\"PUNCTUATION\", \";\");\n if (!this.isAtEnd()) {\n throw new Error(`Unexpected token: ${this.current().value}`);\n }\n return expr;\n }\n parseExpression() {\n return this.parseAssignment();\n }\n parseAssignment() {\n const expr = this.parseTernary();\n if (this.match(\"OPERATOR\", \"=\")) {\n const value = this.parseAssignment();\n if (expr.type === \"Identifier\" || expr.type === \"MemberExpression\") {\n return {\n type: \"AssignmentExpression\",\n left: expr,\n operator: \"=\",\n right: value\n };\n }\n throw new Error(\"Invalid assignment target\");\n }\n return expr;\n }\n parseTernary() {\n const expr = this.parseLogicalOr();\n if (this.match(\"PUNCTUATION\", \"?\")) {\n const consequent = this.parseExpression();\n this.consume(\"PUNCTUATION\", \":\");\n const alternate = this.parseExpression();\n return {\n type: \"ConditionalExpression\",\n test: expr,\n consequent,\n alternate\n };\n }\n return expr;\n }\n parseLogicalOr() {\n let expr = this.parseLogicalAnd();\n while (this.match(\"OPERATOR\", \"||\")) {\n const operator = this.previous().value;\n const right = this.parseLogicalAnd();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseLogicalAnd() {\n let expr = this.parseEquality();\n while (this.match(\"OPERATOR\", \"&&\")) {\n const operator = this.previous().value;\n const right = this.parseEquality();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseEquality() {\n let expr = this.parseRelational();\n while (this.match(\"OPERATOR\", \"==\", \"!=\", \"===\", \"!==\")) {\n const operator = this.previous().value;\n const right = this.parseRelational();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseRelational() {\n let expr = this.parseAdditive();\n while (this.match(\"OPERATOR\", \"<\", \">\", \"<=\", \">=\")) {\n const operator = this.previous().value;\n const right = this.parseAdditive();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseAdditive() {\n let expr = this.parseMultiplicative();\n while (this.match(\"OPERATOR\", \"+\", \"-\")) {\n const operator = this.previous().value;\n const right = this.parseMultiplicative();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseMultiplicative() {\n let expr = this.parseUnary();\n while (this.match(\"OPERATOR\", \"*\", \"/\", \"%\")) {\n const operator = this.previous().value;\n const right = this.parseUnary();\n expr = {\n type: \"BinaryExpression\",\n operator,\n left: expr,\n right\n };\n }\n return expr;\n }\n parseUnary() {\n if (this.match(\"OPERATOR\", \"++\", \"--\")) {\n const operator = this.previous().value;\n const argument = this.parseUnary();\n return {\n type: \"UpdateExpression\",\n operator,\n argument,\n prefix: true\n };\n }\n if (this.match(\"OPERATOR\", \"!\", \"-\", \"+\")) {\n const operator = this.previous().value;\n const argument = this.parseUnary();\n return {\n type: \"UnaryExpression\",\n operator,\n argument,\n prefix: true\n };\n }\n return this.parsePostfix();\n }\n parsePostfix() {\n let expr = this.parseMember();\n if (this.match(\"OPERATOR\", \"++\", \"--\")) {\n const operator = this.previous().value;\n return {\n type: \"UpdateExpression\",\n operator,\n argument: expr,\n prefix: false\n };\n }\n return expr;\n }\n parseMember() {\n let expr = this.parsePrimary();\n while (true) {\n if (this.match(\"PUNCTUATION\", \".\")) {\n const property = this.consume(\"IDENTIFIER\");\n expr = {\n type: \"MemberExpression\",\n object: expr,\n property: { type: \"Identifier\", name: property.value },\n computed: false\n };\n } else if (this.match(\"PUNCTUATION\", \"[\")) {\n const property = this.parseExpression();\n this.consume(\"PUNCTUATION\", \"]\");\n expr = {\n type: \"MemberExpression\",\n object: expr,\n property,\n computed: true\n };\n } else if (this.match(\"PUNCTUATION\", \"(\")) {\n const args = this.parseArguments();\n expr = {\n type: \"CallExpression\",\n callee: expr,\n arguments: args\n };\n } else {\n break;\n }\n }\n return expr;\n }\n parseArguments() {\n const args = [];\n if (!this.check(\"PUNCTUATION\", \")\")) {\n do {\n args.push(this.parseExpression());\n } while (this.match(\"PUNCTUATION\", \",\"));\n }\n this.consume(\"PUNCTUATION\", \")\");\n return args;\n }\n parsePrimary() {\n if (this.match(\"NUMBER\")) {\n return { type: \"Literal\", value: this.previous().value };\n }\n if (this.match(\"STRING\")) {\n return { type: \"Literal\", value: this.previous().value };\n }\n if (this.match(\"BOOLEAN\")) {\n return { type: \"Literal\", value: this.previous().value };\n }\n if (this.match(\"NULL\")) {\n return { type: \"Literal\", value: null };\n }\n if (this.match(\"UNDEFINED\")) {\n return { type: \"Literal\", value: void 0 };\n }\n if (this.match(\"IDENTIFIER\")) {\n return { type: \"Identifier\", name: this.previous().value };\n }\n if (this.match(\"PUNCTUATION\", \"(\")) {\n const expr = this.parseExpression();\n this.consume(\"PUNCTUATION\", \")\");\n return expr;\n }\n if (this.match(\"PUNCTUATION\", \"[\")) {\n return this.parseArrayLiteral();\n }\n if (this.match(\"PUNCTUATION\", \"{\")) {\n return this.parseObjectLiteral();\n }\n throw new Error(`Unexpected token: ${this.current().type} \"${this.current().value}\"`);\n }\n parseArrayLiteral() {\n const elements = [];\n while (!this.check(\"PUNCTUATION\", \"]\") && !this.isAtEnd()) {\n elements.push(this.parseExpression());\n if (this.match(\"PUNCTUATION\", \",\")) {\n if (this.check(\"PUNCTUATION\", \"]\")) {\n break;\n }\n } else {\n break;\n }\n }\n this.consume(\"PUNCTUATION\", \"]\");\n return {\n type: \"ArrayExpression\",\n elements\n };\n }\n parseObjectLiteral() {\n const properties = [];\n while (!this.check(\"PUNCTUATION\", \"}\") && !this.isAtEnd()) {\n let key;\n let computed = false;\n if (this.match(\"STRING\")) {\n key = { type: \"Literal\", value: this.previous().value };\n } else if (this.match(\"IDENTIFIER\")) {\n const name = this.previous().value;\n key = { type: \"Identifier\", name };\n } else if (this.match(\"PUNCTUATION\", \"[\")) {\n key = this.parseExpression();\n computed = true;\n this.consume(\"PUNCTUATION\", \"]\");\n } else {\n throw new Error(\"Expected property key\");\n }\n this.consume(\"PUNCTUATION\", \":\");\n const value = this.parseExpression();\n properties.push({\n type: \"Property\",\n key,\n value,\n computed,\n shorthand: false\n });\n if (this.match(\"PUNCTUATION\", \",\")) {\n if (this.check(\"PUNCTUATION\", \"}\")) {\n break;\n }\n } else {\n break;\n }\n }\n this.consume(\"PUNCTUATION\", \"}\");\n return {\n type: \"ObjectExpression\",\n properties\n };\n }\n match(...args) {\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (i === 0 && args.length > 1) {\n const type = arg;\n for (let j = 1; j < args.length; j++) {\n if (this.check(type, args[j])) {\n this.advance();\n return true;\n }\n }\n return false;\n } else if (args.length === 1) {\n if (this.checkType(arg)) {\n this.advance();\n return true;\n }\n return false;\n }\n }\n return false;\n }\n check(type, value) {\n if (this.isAtEnd())\n return false;\n if (value !== void 0) {\n return this.current().type === type && this.current().value === value;\n }\n return this.current().type === type;\n }\n checkType(type) {\n if (this.isAtEnd())\n return false;\n return this.current().type === type;\n }\n advance() {\n if (!this.isAtEnd())\n this.position++;\n return this.previous();\n }\n isAtEnd() {\n return this.current().type === \"EOF\";\n }\n current() {\n return this.tokens[this.position];\n }\n previous() {\n return this.tokens[this.position - 1];\n }\n consume(type, value) {\n if (value !== void 0) {\n if (this.check(type, value))\n return this.advance();\n throw new Error(`Expected ${type} \"${value}\" but got ${this.current().type} \"${this.current().value}\"`);\n }\n if (this.check(type))\n return this.advance();\n throw new Error(`Expected ${type} but got ${this.current().type} \"${this.current().value}\"`);\n }\n};\nvar Evaluator = class {\n evaluate({ node, scope: scope2 = {}, context = null, forceBindingRootScopeToFunctions = true }) {\n switch (node.type) {\n case \"Literal\":\n return node.value;\n case \"Identifier\":\n if (node.name in scope2) {\n const value2 = scope2[node.name];\n this.checkForDangerousValues(value2);\n if (typeof value2 === \"function\") {\n return value2.bind(scope2);\n }\n return value2;\n }\n throw new Error(`Undefined variable: ${node.name}`);\n case \"MemberExpression\":\n const object = this.evaluate({ node: node.object, scope: scope2, context, forceBindingRootScopeToFunctions });\n if (object == null) {\n throw new Error(\"Cannot read property of null or undefined\");\n }\n let property;\n if (node.computed) {\n property = this.evaluate({ node: node.property, scope: scope2, context, forceBindingRootScopeToFunctions });\n } else {\n property = node.property.name;\n }\n this.checkForDangerousKeywords(property);\n let memberValue = object[property];\n this.checkForDangerousValues(memberValue);\n if (typeof memberValue === \"function\") {\n if (forceBindingRootScopeToFunctions) {\n return memberValue.bind(scope2);\n } else {\n return memberValue.bind(object);\n }\n }\n return memberValue;\n case \"CallExpression\":\n const args = node.arguments.map((arg) => this.evaluate({ node: arg, scope: scope2, context, forceBindingRootScopeToFunctions }));\n let returnValue;\n if (node.callee.type === \"MemberExpression\") {\n const obj = this.evaluate({ node: node.callee.object, scope: scope2, context, forceBindingRootScopeToFunctions });\n let prop;\n if (node.callee.computed) {\n prop = this.evaluate({ node: node.callee.property, scope: scope2, context, forceBindingRootScopeToFunctions });\n } else {\n prop = node.callee.property.name;\n }\n this.checkForDangerousKeywords(prop);\n let func = obj[prop];\n if (typeof func !== \"function\") {\n throw new Error(\"Value is not a function\");\n }\n returnValue = func.apply(obj, args);\n } else {\n if (node.callee.type === \"Identifier\") {\n const name = node.callee.name;\n let func;\n if (name in scope2) {\n func = scope2[name];\n } else {\n throw new Error(`Undefined variable: ${name}`);\n }\n if (typeof func !== \"function\") {\n throw new Error(\"Value is not a function\");\n }\n const thisContext = context !== null ? context : scope2;\n returnValue = func.apply(thisContext, args);\n } else {\n const callee = this.evaluate({ node: node.callee, scope: scope2, context, forceBindingRootScopeToFunctions });\n if (typeof callee !== \"function\") {\n throw new Error(\"Value is not a function\");\n }\n returnValue = callee.apply(context, args);\n }\n }\n this.checkForDangerousValues(returnValue);\n return returnValue;\n case \"UnaryExpression\":\n const argument = this.evaluate({ node: node.argument, scope: scope2, context, forceBindingRootScopeToFunctions });\n switch (node.operator) {\n case \"!\":\n return !argument;\n case \"-\":\n return -argument;\n case \"+\":\n return +argument;\n default:\n throw new Error(`Unknown unary operator: ${node.operator}`);\n }\n case \"UpdateExpression\":\n if (node.argument.type === \"Identifier\") {\n const name = node.argument.name;\n if (!(name in scope2)) {\n throw new Error(`Undefined variable: ${name}`);\n }\n const oldValue = scope2[name];\n if (node.operator === \"++\") {\n scope2[name] = oldValue + 1;\n } else if (node.operator === \"--\") {\n scope2[name] = oldValue - 1;\n }\n return node.prefix ? scope2[name] : oldValue;\n } else if (node.argument.type === \"MemberExpression\") {\n const obj = this.evaluate({ node: node.argument.object, scope: scope2, context, forceBindingRootScopeToFunctions });\n const prop = node.argument.computed ? this.evaluate({ node: node.argument.property, scope: scope2, context, forceBindingRootScopeToFunctions }) : node.argument.property.name;\n if (this.isDOMObject(obj)) {\n throw new Error(\"Property assignments on DOM objects are prohibited in the CSP build\");\n }\n this.checkForDangerousKeywords(prop);\n const oldValue = obj[prop];\n if (node.operator === \"++\") {\n obj[prop] = oldValue + 1;\n } else if (node.operator === \"--\") {\n obj[prop] = oldValue - 1;\n }\n return node.prefix ? obj[prop] : oldValue;\n }\n throw new Error(\"Invalid update expression target\");\n case \"BinaryExpression\":\n const left = this.evaluate({ node: node.left, scope: scope2, context, forceBindingRootScopeToFunctions });\n const evalRight = () => this.evaluate({ node: node.right, scope: scope2, context, forceBindingRootScopeToFunctions });\n if (node.operator === \"&&\")\n return left && evalRight();\n if (node.operator === \"||\")\n return left || evalRight();\n const right = evalRight();\n switch (node.operator) {\n case \"+\":\n return left + right;\n case \"-\":\n return left - right;\n case \"*\":\n return left * right;\n case \"/\":\n return left / right;\n case \"%\":\n return left % right;\n case \"==\":\n return left == right;\n case \"!=\":\n return left != right;\n case \"===\":\n return left === right;\n case \"!==\":\n return left !== right;\n case \"<\":\n return left < right;\n case \">\":\n return left > right;\n case \"<=\":\n return left <= right;\n case \">=\":\n return left >= right;\n default:\n throw new Error(`Unknown binary operator: ${node.operator}`);\n }\n case \"ConditionalExpression\":\n const test = this.evaluate({ node: node.test, scope: scope2, context, forceBindingRootScopeToFunctions });\n return test ? this.evaluate({ node: node.consequent, scope: scope2, context, forceBindingRootScopeToFunctions }) : this.evaluate({ node: node.alternate, scope: scope2, context, forceBindingRootScopeToFunctions });\n case \"AssignmentExpression\":\n const value = this.evaluate({ node: node.right, scope: scope2, context, forceBindingRootScopeToFunctions });\n if (node.left.type === \"Identifier\") {\n scope2[node.left.name] = value;\n return value;\n } else if (node.left.type === \"MemberExpression\") {\n const obj = this.evaluate({ node: node.left.object, scope: scope2, context, forceBindingRootScopeToFunctions });\n const prop = node.left.computed ? this.evaluate({ node: node.left.property, scope: scope2, context, forceBindingRootScopeToFunctions }) : node.left.property.name;\n if (this.isDOMObject(obj)) {\n throw new Error(\"Property assignments on DOM objects are prohibited in the CSP build\");\n }\n this.checkForDangerousKeywords(prop);\n obj[prop] = value;\n return value;\n }\n throw new Error(\"Invalid assignment target\");\n case \"ArrayExpression\":\n return node.elements.map((el) => this.evaluate({ node: el, scope: scope2, context, forceBindingRootScopeToFunctions }));\n case \"ObjectExpression\":\n const result = {};\n for (const prop of node.properties) {\n const key = prop.computed ? this.evaluate({ node: prop.key, scope: scope2, context, forceBindingRootScopeToFunctions }) : prop.key.type === \"Identifier\" ? prop.key.name : this.evaluate({ node: prop.key, scope: scope2, context, forceBindingRootScopeToFunctions });\n const value2 = this.evaluate({ node: prop.value, scope: scope2, context, forceBindingRootScopeToFunctions });\n result[key] = value2;\n }\n return result;\n default:\n throw new Error(`Unknown node type: ${node.type}`);\n }\n }\n isDOMObject(obj) {\n return obj instanceof Node || typeof CSSStyleDeclaration !== \"undefined\" && obj instanceof CSSStyleDeclaration || typeof DOMStringMap !== \"undefined\" && obj instanceof DOMStringMap || typeof DOMTokenList !== \"undefined\" && obj instanceof DOMTokenList || typeof NamedNodeMap !== \"undefined\" && obj instanceof NamedNodeMap;\n }\n checkForDangerousKeywords(keyword) {\n let blacklist = [\n \"constructor\",\n \"prototype\",\n \"__proto__\",\n \"__defineGetter__\",\n \"__defineSetter__\",\n \"insertAdjacentHTML\",\n \"setAttribute\",\n \"setAttributeNS\",\n \"setAttributeNode\",\n \"setAttributeNodeNS\"\n ];\n if (blacklist.includes(keyword)) {\n throw new Error(`Accessing \"${keyword}\" is prohibited in the CSP build`);\n }\n }\n checkForDangerousValues(prop) {\n if (prop === null) {\n return;\n }\n if (typeof prop !== \"object\" && typeof prop !== \"function\") {\n return;\n }\n if (safemap.has(prop)) {\n return;\n }\n if (prop instanceof HTMLIFrameElement || prop instanceof HTMLScriptElement) {\n throw new Error(\"Accessing iframes and scripts is prohibited in the CSP build\");\n }\n if (globals.has(prop)) {\n throw new Error(\"Accessing global variables is prohibited in the CSP build\");\n }\n safemap.set(prop, true);\n return true;\n }\n};\nfunction generateRuntimeFunction(expression) {\n try {\n const tokenizer = new Tokenizer(expression);\n const tokens = tokenizer.tokenize();\n const parser = new Parser(tokens);\n const ast = parser.parse();\n const evaluator = new Evaluator();\n return function(options = {}) {\n const { scope: scope2 = {}, context = null, forceBindingRootScopeToFunctions = false } = options;\n return evaluator.evaluate({ node: ast, scope: scope2, context, forceBindingRootScopeToFunctions });\n };\n } catch (error2) {\n throw new Error(`CSP Parser Error: ${error2.message}`);\n }\n}\n\n// packages/csp/src/evaluator.js\nfunction cspRawEvaluator(el, expression, extras = {}) {\n var _a, _b;\n let dataStack = generateDataStack(el);\n let scope2 = mergeProxies([(_a = extras.scope) != null ? _a : {}, ...dataStack]);\n let params = (_b = extras.params) != null ? _b : [];\n let evaluate2 = generateRuntimeFunction(expression);\n let result = evaluate2({\n scope: scope2,\n forceBindingRootScopeToFunctions: true\n });\n if (typeof result === \"function\" && shouldAutoEvaluateFunctions) {\n return result.apply(scope2, params);\n }\n return result;\n}\nfunction cspEvaluator(el, expression) {\n let dataStack = generateDataStack(el);\n if (typeof expression === \"function\") {\n return generateEvaluatorFromFunction(dataStack, expression);\n }\n let evaluator = generateEvaluator(el, expression, dataStack);\n return tryCatch.bind(null, el, expression, evaluator);\n}\nfunction generateDataStack(el) {\n let overriddenMagics = {};\n injectMagics(overriddenMagics, el);\n return [overriddenMagics, ...closestDataStack(el)];\n}\nfunction generateEvaluator(el, expression, dataStack) {\n if (el instanceof HTMLIFrameElement) {\n throw new Error(\"Evaluating expressions on an iframe is prohibited in the CSP build\");\n }\n if (el instanceof HTMLScriptElement) {\n throw new Error(\"Evaluating expressions on a script is prohibited in the CSP build\");\n }\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [] } = {}) => {\n let completeScope = mergeProxies([scope2, ...dataStack]);\n let evaluate2 = generateRuntimeFunction(expression);\n let returnValue = evaluate2({\n scope: completeScope,\n forceBindingRootScopeToFunctions: true\n });\n if (shouldAutoEvaluateFunctions && typeof returnValue === \"function\") {\n let nextReturnValue = returnValue.apply(returnValue, params);\n if (nextReturnValue instanceof Promise) {\n nextReturnValue.then((i) => receiver(i));\n } else {\n receiver(nextReturnValue);\n }\n } else if (typeof returnValue === \"object\" && returnValue instanceof Promise) {\n returnValue.then((i) => receiver(i));\n } else {\n receiver(returnValue);\n }\n };\n}\n\n// packages/csp/src/index.js\nvar import_reactivity10 = __toESM(require_reactivity());\n\n// packages/alpinejs/src/magics/$nextTick.js\nmagic(\"nextTick\", () => nextTick);\n\n// packages/alpinejs/src/magics/$dispatch.js\nmagic(\"dispatch\", (el) => dispatch.bind(dispatch, el));\n\n// packages/alpinejs/src/magics/$watch.js\nmagic(\"watch\", (el, { evaluateLater: evaluateLater2, cleanup }) => (key, callback) => {\n let evaluate2 = evaluateLater2(key);\n let getter = () => {\n let value;\n evaluate2((i) => value = i);\n return value;\n };\n let unwatch = watch(getter, callback);\n cleanup(unwatch);\n});\n\n// packages/alpinejs/src/magics/$store.js\nmagic(\"store\", getStores);\n\n// packages/alpinejs/src/magics/$data.js\nmagic(\"data\", (el) => scope(el));\n\n// packages/alpinejs/src/magics/$root.js\nmagic(\"root\", (el) => closestRoot(el));\n\n// packages/alpinejs/src/magics/$refs.js\nmagic(\"refs\", (el) => {\n if (el._x_refs_proxy)\n return el._x_refs_proxy;\n el._x_refs_proxy = mergeProxies(getArrayOfRefObject(el));\n return el._x_refs_proxy;\n});\nfunction getArrayOfRefObject(el) {\n let refObjects = [];\n findClosest(el, (i) => {\n if (i._x_refs)\n refObjects.push(i._x_refs);\n });\n return refObjects;\n}\n\n// packages/alpinejs/src/ids.js\nvar globalIdMemo = {};\nfunction findAndIncrementId(name) {\n if (!globalIdMemo[name])\n globalIdMemo[name] = 0;\n return ++globalIdMemo[name];\n}\nfunction closestIdRoot(el, name) {\n return findClosest(el, (element) => {\n if (element._x_ids && element._x_ids[name])\n return true;\n });\n}\nfunction setIdRoot(el, name) {\n if (!el._x_ids)\n el._x_ids = {};\n if (!el._x_ids[name])\n el._x_ids[name] = findAndIncrementId(name);\n}\n\n// packages/alpinejs/src/magics/$id.js\nmagic(\"id\", (el, { cleanup }) => (name, key = null) => {\n let cacheKey = `${name}${key ? `-${key}` : \"\"}`;\n return cacheIdByNameOnElement(el, cacheKey, cleanup, () => {\n let root = closestIdRoot(el, name);\n let id = root ? root._x_ids[name] : findAndIncrementId(name);\n return key ? `${name}-${id}-${key}` : `${name}-${id}`;\n });\n});\ninterceptClone((from, to) => {\n if (from._x_id) {\n to._x_id = from._x_id;\n }\n});\nfunction cacheIdByNameOnElement(el, cacheKey, cleanup, callback) {\n if (!el._x_id)\n el._x_id = {};\n if (el._x_id[cacheKey])\n return el._x_id[cacheKey];\n let output = callback();\n el._x_id[cacheKey] = output;\n cleanup(() => {\n delete el._x_id[cacheKey];\n });\n return output;\n}\n\n// packages/alpinejs/src/magics/$el.js\nmagic(\"el\", (el) => el);\n\n// packages/alpinejs/src/magics/index.js\nwarnMissingPluginMagic(\"Focus\", \"focus\", \"focus\");\nwarnMissingPluginMagic(\"Persist\", \"persist\", \"persist\");\nfunction warnMissingPluginMagic(name, magicName, slug) {\n magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/directives/x-modelable.js\ndirective(\"modelable\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup }) => {\n let func = evaluateLater2(expression);\n let innerGet = () => {\n let result;\n func((i) => result = i);\n return result;\n };\n let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`);\n let innerSet = (val) => evaluateInnerSet(() => {\n }, { scope: { \"__placeholder\": val } });\n let initialValue = innerGet();\n innerSet(initialValue);\n queueMicrotask(() => {\n if (!el._x_model)\n return;\n el._x_removeModelListeners[\"default\"]();\n let outerGet = el._x_model.get;\n let outerSet = el._x_model.setWithModifiers;\n let releaseEntanglement = entangle(\n {\n get() {\n return outerGet();\n },\n set(value) {\n outerSet(value);\n }\n },\n {\n get() {\n return innerGet();\n },\n set(value) {\n innerSet(value);\n }\n }\n );\n cleanup(releaseEntanglement);\n });\n});\n\n// packages/alpinejs/src/directives/x-teleport.js\ndirective(\"teleport\", (el, { modifiers, expression }, { cleanup }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-teleport can only be used on a <template> tag\", el);\n let target = getTarget(expression);\n let clone2 = el.content.cloneNode(true).firstElementChild;\n el._x_teleport = clone2;\n clone2._x_teleportBack = el;\n el.setAttribute(\"data-teleport-template\", true);\n clone2.setAttribute(\"data-teleport-target\", true);\n if (el._x_forwardEvents) {\n el._x_forwardEvents.forEach((eventName) => {\n clone2.addEventListener(eventName, (e) => {\n e.stopPropagation();\n el.dispatchEvent(new e.constructor(e.type, e));\n });\n });\n }\n addScopeToNode(clone2, {}, el);\n let placeInDom = (clone3, target2, modifiers2) => {\n if (modifiers2.includes(\"prepend\")) {\n target2.parentNode.insertBefore(clone3, target2);\n } else if (modifiers2.includes(\"append\")) {\n target2.parentNode.insertBefore(clone3, target2.nextSibling);\n } else {\n target2.appendChild(clone3);\n }\n };\n mutateDom(() => {\n skipDuringClone(() => {\n placeInDom(clone2, target, modifiers);\n initTree(clone2);\n })();\n });\n el._x_teleportPutBack = () => {\n let target2 = getTarget(expression);\n mutateDom(() => {\n placeInDom(el._x_teleport, target2, modifiers);\n });\n };\n cleanup(\n () => mutateDom(() => {\n clone2.remove();\n destroyTree(clone2);\n })\n );\n});\nvar teleportContainerDuringClone = document.createElement(\"div\");\nfunction getTarget(expression) {\n let target = skipDuringClone(() => {\n return document.querySelector(expression);\n }, () => {\n return teleportContainerDuringClone;\n })();\n if (!target)\n warn(`Cannot find x-teleport element for selector: \"${expression}\"`);\n return target;\n}\n\n// packages/alpinejs/src/directives/x-ignore.js\nvar handler = () => {\n};\nhandler.inline = (el, { modifiers }, { cleanup }) => {\n modifiers.includes(\"self\") ? el._x_ignoreSelf = true : el._x_ignore = true;\n cleanup(() => {\n modifiers.includes(\"self\") ? delete el._x_ignoreSelf : delete el._x_ignore;\n });\n};\ndirective(\"ignore\", handler);\n\n// packages/alpinejs/src/directives/x-effect.js\ndirective(\"effect\", skipDuringClone((el, { expression }, { effect: effect3 }) => {\n effect3(evaluateLater(el, expression));\n}));\n\n// packages/alpinejs/src/utils/on.js\nfunction on(el, event, modifiers, callback) {\n let listenerTarget = el;\n let handler4 = (e) => callback(e);\n let options = {};\n let wrapHandler = (callback2, wrapper) => (e) => wrapper(callback2, e);\n if (modifiers.includes(\"dot\"))\n event = dotSyntax(event);\n if (modifiers.includes(\"camel\"))\n event = camelCase2(event);\n if (modifiers.includes(\"capture\"))\n options.capture = true;\n if (modifiers.includes(\"window\"))\n listenerTarget = window;\n if (modifiers.includes(\"document\"))\n listenerTarget = document;\n if (modifiers.includes(\"passive\")) {\n options.passive = modifiers[modifiers.indexOf(\"passive\") + 1] !== \"false\";\n }\n handler4 = addDebounceOrThrottle(modifiers, handler4);\n if (modifiers.includes(\"prevent\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.preventDefault();\n next(e);\n });\n if (modifiers.includes(\"stop\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.stopPropagation();\n next(e);\n });\n if (modifiers.includes(\"once\")) {\n handler4 = wrapHandler(handler4, (next, e) => {\n next(e);\n listenerTarget.removeEventListener(event, handler4, options);\n });\n }\n if (modifiers.includes(\"away\") || modifiers.includes(\"outside\")) {\n listenerTarget = document;\n handler4 = wrapHandler(handler4, (next, e) => {\n if (el.contains(e.target))\n return;\n if (e.target.isConnected === false)\n return;\n if (el.offsetWidth < 1 && el.offsetHeight < 1)\n return;\n if (el._x_isShown === false)\n return;\n next(e);\n });\n }\n if (modifiers.includes(\"self\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.target === el && next(e);\n });\n if (event === \"submit\") {\n handler4 = wrapHandler(handler4, (next, e) => {\n if (e.target._x_pendingModelUpdates) {\n e.target._x_pendingModelUpdates.forEach((fn) => fn());\n }\n next(e);\n });\n }\n if (isKeyEvent(event) || isClickEvent(event)) {\n handler4 = wrapHandler(handler4, (next, e) => {\n if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) {\n return;\n }\n next(e);\n });\n }\n listenerTarget.addEventListener(event, handler4, options);\n return () => {\n listenerTarget.removeEventListener(event, handler4, options);\n };\n}\nfunction addDebounceOrThrottle(modifiers, handler4) {\n if (modifiers.includes(\"debounce\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"debounce\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = debounce(handler4, wait);\n }\n if (modifiers.includes(\"throttle\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"throttle\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = throttle(handler4, wait);\n }\n return handler4;\n}\nfunction dotSyntax(subject) {\n return subject.replace(/-/g, \".\");\n}\nfunction camelCase2(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction isNumeric(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction kebabCase2(subject) {\n if ([\" \", \"_\"].includes(\n subject\n ))\n return subject;\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[_\\s]/, \"-\").toLowerCase();\n}\nfunction isKeyEvent(event) {\n return [\"keydown\", \"keyup\"].includes(event);\n}\nfunction isClickEvent(event) {\n return [\"contextmenu\", \"click\", \"mouse\"].some((i) => event.includes(i));\n}\nfunction isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) {\n let keyModifiers = modifiers.filter((i) => {\n return ![\"window\", \"document\", \"prevent\", \"stop\", \"once\", \"capture\", \"self\", \"away\", \"outside\", \"passive\", \"preserve-scroll\", \"blur\", \"change\", \"lazy\"].includes(i);\n });\n if (keyModifiers.includes(\"debounce\")) {\n let debounceIndex = keyModifiers.indexOf(\"debounce\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.includes(\"throttle\")) {\n let debounceIndex = keyModifiers.indexOf(\"throttle\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.length === 0)\n return false;\n if (keyModifiers.length === 1 && keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n const systemKeyModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\", \"cmd\", \"super\"];\n const selectedSystemKeyModifiers = systemKeyModifiers.filter((modifier) => keyModifiers.includes(modifier));\n keyModifiers = keyModifiers.filter((i) => !selectedSystemKeyModifiers.includes(i));\n if (selectedSystemKeyModifiers.length > 0) {\n const activelyPressedKeyModifiers = selectedSystemKeyModifiers.filter((modifier) => {\n if (modifier === \"cmd\" || modifier === \"super\")\n modifier = \"meta\";\n return e[`${modifier}Key`];\n });\n if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) {\n if (isClickEvent(e.type))\n return false;\n if (keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n }\n }\n return true;\n}\nfunction keyToModifiers(key) {\n if (!key)\n return [];\n key = kebabCase2(key);\n let modifierToKeyMap = {\n \"ctrl\": \"control\",\n \"slash\": \"/\",\n \"space\": \" \",\n \"spacebar\": \" \",\n \"cmd\": \"meta\",\n \"esc\": \"escape\",\n \"up\": \"arrow-up\",\n \"down\": \"arrow-down\",\n \"left\": \"arrow-left\",\n \"right\": \"arrow-right\",\n \"period\": \".\",\n \"comma\": \",\",\n \"equal\": \"=\",\n \"minus\": \"-\",\n \"underscore\": \"_\"\n };\n modifierToKeyMap[key] = key;\n return Object.keys(modifierToKeyMap).map((modifier) => {\n if (modifierToKeyMap[modifier] === key)\n return modifier;\n }).filter((modifier) => modifier);\n}\n\n// packages/alpinejs/src/directives/x-model.js\ndirective(\"model\", (el, { modifiers, expression }, { effect: effect3, cleanup }) => {\n let scopeTarget = el;\n if (modifiers.includes(\"parent\")) {\n scopeTarget = findClosest(el, (element) => element !== el);\n }\n let evaluateGet = evaluateLater(scopeTarget, expression);\n let evaluateSet;\n if (typeof expression === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`);\n } else if (typeof expression === \"function\" && typeof expression() === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`);\n } else {\n evaluateSet = () => {\n };\n }\n let getValue = () => {\n let result;\n evaluateGet((value) => result = value);\n return isGetterSetter(result) ? result.get() : result;\n };\n let setValue = (value) => {\n let result;\n evaluateGet((value2) => result = value2);\n if (isGetterSetter(result)) {\n result.set(value);\n } else {\n evaluateSet(() => {\n }, {\n scope: { \"__placeholder\": value }\n });\n }\n };\n if (typeof expression === \"string\" && el.type === \"radio\") {\n mutateDom(() => {\n if (!el.hasAttribute(\"name\"))\n el.setAttribute(\"name\", expression);\n });\n }\n let hasChangeModifier = modifiers.includes(\"change\") || modifiers.includes(\"lazy\");\n let hasBlurModifier = modifiers.includes(\"blur\");\n let hasEnterModifier = modifiers.includes(\"enter\");\n let hasExplicitEventModifiers = hasChangeModifier || hasBlurModifier || hasEnterModifier;\n let removeListener;\n if (isCloning) {\n removeListener = () => {\n };\n } else if (hasExplicitEventModifiers) {\n let listeners = [];\n let syncValue = (e) => setValue(getInputValue(el, modifiers, e, getValue()));\n if (hasChangeModifier) {\n listeners.push(on(el, \"change\", modifiers, syncValue));\n }\n if (hasBlurModifier) {\n listeners.push(on(el, \"blur\", modifiers, syncValue));\n if (el.form) {\n let form = el.form;\n let syncCallback = () => syncValue({ target: el });\n if (!form._x_pendingModelUpdates)\n form._x_pendingModelUpdates = [];\n form._x_pendingModelUpdates.push(syncCallback);\n cleanup(() => {\n if (form._x_pendingModelUpdates) {\n form._x_pendingModelUpdates.splice(form._x_pendingModelUpdates.indexOf(syncCallback), 1);\n }\n });\n }\n }\n if (hasEnterModifier) {\n listeners.push(on(el, \"keydown\", modifiers, (e) => {\n if (e.key === \"Enter\")\n syncValue(e);\n }));\n }\n removeListener = () => listeners.forEach((remove) => remove());\n } else {\n let event = el.tagName.toLowerCase() === \"select\" || [\"checkbox\", \"radio\"].includes(el.type) ? \"change\" : \"input\";\n removeListener = on(el, event, modifiers, (e) => {\n setValue(getInputValue(el, modifiers, e, getValue()));\n });\n }\n if (modifiers.includes(\"fill\")) {\n if ([void 0, null, \"\"].includes(getValue()) || isCheckbox(el) && Array.isArray(getValue()) || el.tagName.toLowerCase() === \"select\" && el.multiple) {\n setValue(\n getInputValue(el, modifiers, { target: el }, getValue())\n );\n }\n }\n if (!el._x_removeModelListeners)\n el._x_removeModelListeners = {};\n el._x_removeModelListeners[\"default\"] = removeListener;\n cleanup(() => el._x_removeModelListeners[\"default\"]());\n if (el.form) {\n let removeResetListener = on(el.form, \"reset\", [], (e) => {\n nextTick(() => el._x_model && el._x_model.set(getInputValue(el, modifiers, { target: el }, getValue())));\n });\n cleanup(() => removeResetListener());\n }\n el._x_model = {\n get() {\n return getValue();\n },\n set(value) {\n setValue(value);\n },\n setWithModifiers: addDebounceOrThrottle(modifiers, setValue)\n };\n el._x_forceModelUpdate = (value) => {\n if (value === void 0 && typeof expression === \"string\" && expression.match(/\\./))\n value = \"\";\n mutateDom(() => {\n if (isCheckbox(el)) {\n if (Array.isArray(value)) {\n el.checked = value.some((val) => val == el.value);\n } else {\n el.checked = !!value;\n }\n } else if (isRadio(el)) {\n if (typeof value === \"boolean\") {\n el.checked = safeParseBoolean(el.value) === value;\n } else {\n el.checked = el.value == value;\n }\n } else {\n bind(el, \"value\", value);\n }\n });\n };\n effect3(() => {\n let value = getValue();\n if (modifiers.includes(\"unintrusive\") && document.activeElement.isSameNode(el))\n return;\n el._x_forceModelUpdate(value);\n });\n});\nfunction getInputValue(el, modifiers, event, currentValue) {\n return mutateDom(() => {\n if (event instanceof CustomEvent && event.detail !== void 0)\n return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value;\n else if (isCheckbox(el)) {\n if (Array.isArray(currentValue)) {\n let newValue = null;\n if (modifiers.includes(\"number\")) {\n newValue = safeParseNumber(event.target.value);\n } else if (modifiers.includes(\"boolean\")) {\n newValue = safeParseBoolean(event.target.value);\n } else {\n newValue = event.target.value;\n }\n return event.target.checked ? currentValue.includes(newValue) ? currentValue : currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));\n } else {\n return event.target.checked;\n }\n } else if (el.tagName.toLowerCase() === \"select\" && el.multiple) {\n if (modifiers.includes(\"number\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseNumber(rawValue);\n });\n } else if (modifiers.includes(\"boolean\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseBoolean(rawValue);\n });\n }\n return Array.from(event.target.selectedOptions).map((option) => {\n return option.value || option.text;\n });\n } else {\n let newValue;\n if (isRadio(el)) {\n if (event.target.checked) {\n newValue = event.target.value;\n } else {\n newValue = currentValue;\n }\n } else {\n newValue = event.target.value;\n }\n if (modifiers.includes(\"number\")) {\n return safeParseNumber(newValue);\n } else if (modifiers.includes(\"boolean\")) {\n return safeParseBoolean(newValue);\n } else if (modifiers.includes(\"trim\")) {\n return newValue.trim();\n } else {\n return newValue;\n }\n }\n });\n}\nfunction safeParseNumber(rawValue) {\n let number = rawValue ? parseFloat(rawValue) : null;\n return isNumeric2(number) ? number : rawValue;\n}\nfunction checkedAttrLooseCompare2(valueA, valueB) {\n return valueA == valueB;\n}\nfunction isNumeric2(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction isGetterSetter(value) {\n return value !== null && typeof value === \"object\" && typeof value.get === \"function\" && typeof value.set === \"function\";\n}\n\n// packages/alpinejs/src/directives/x-cloak.js\ndirective(\"cloak\", (el) => queueMicrotask(() => mutateDom(() => el.removeAttribute(prefix(\"cloak\")))));\n\n// packages/alpinejs/src/directives/x-init.js\naddInitSelector(() => `[${prefix(\"init\")}]`);\ndirective(\"init\", skipDuringClone((el, { expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"string\") {\n return !!expression.trim() && evaluate2(expression, {}, false);\n }\n return evaluate2(expression, {}, false);\n}));\n\n// packages/alpinejs/src/directives/x-text.js\ndirective(\"text\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.textContent = value;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-html.js\ndirective(\"html\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.innerHTML = value != null ? value : \"\";\n el._x_ignoreSelf = true;\n initTree(el);\n delete el._x_ignoreSelf;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-bind.js\nmapAttributes(startingWith(\":\", into(prefix(\"bind:\"))));\nvar handler2 = (el, { value, modifiers, expression, original }, { effect: effect3, cleanup }) => {\n if (!value) {\n let bindingProviders = {};\n injectBindingProviders(bindingProviders);\n let getBindings = evaluateLater(el, expression);\n getBindings((bindings) => {\n applyBindingsObject(el, bindings, original);\n }, { scope: bindingProviders });\n return;\n }\n if (value === \"key\")\n return storeKeyForXFor(el, expression);\n if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) {\n return;\n }\n let evaluate2 = evaluateLater(el, expression);\n effect3(() => evaluate2((result) => {\n if (result === void 0 && typeof expression === \"string\" && expression.match(/\\./)) {\n result = \"\";\n }\n mutateDom(() => bind(el, value, result, modifiers));\n }));\n cleanup(() => {\n el._x_undoAddedClasses && el._x_undoAddedClasses();\n el._x_undoAddedStyles && el._x_undoAddedStyles();\n });\n};\nhandler2.inline = (el, { value, modifiers, expression }) => {\n if (!value)\n return;\n if (!el._x_inlineBindings)\n el._x_inlineBindings = {};\n el._x_inlineBindings[value] = { expression, extract: false };\n};\ndirective(\"bind\", handler2);\nfunction storeKeyForXFor(el, expression) {\n el._x_keyExpression = expression;\n}\n\n// packages/alpinejs/src/directives/x-data.js\naddRootSelector(() => `[${prefix(\"data\")}]`);\ndirective(\"data\", (el, { expression }, { cleanup }) => {\n if (shouldSkipRegisteringDataDuringClone(el))\n return;\n expression = expression === \"\" ? \"{}\" : expression;\n let magicContext = {};\n injectMagics(magicContext, el);\n let dataProviderContext = {};\n injectDataProviders(dataProviderContext, magicContext);\n let data2 = evaluate(el, expression, { scope: dataProviderContext });\n if (data2 === void 0 || data2 === true)\n data2 = {};\n injectMagics(data2, el);\n let reactiveData = reactive(data2);\n initInterceptors(reactiveData);\n let undo = addScopeToNode(el, reactiveData);\n reactiveData[\"init\"] && evaluate(el, reactiveData[\"init\"]);\n cleanup(() => {\n reactiveData[\"destroy\"] && evaluate(el, reactiveData[\"destroy\"]);\n undo();\n });\n});\ninterceptClone((from, to) => {\n if (from._x_dataStack) {\n to._x_dataStack = from._x_dataStack;\n to.setAttribute(\"data-has-alpine-state\", true);\n }\n});\nfunction shouldSkipRegisteringDataDuringClone(el) {\n if (!isCloning)\n return false;\n if (isCloningLegacy)\n return true;\n return el.hasAttribute(\"data-has-alpine-state\");\n}\n\n// packages/alpinejs/src/directives/x-show.js\ndirective(\"show\", (el, { modifiers, expression }, { effect: effect3 }) => {\n let evaluate2 = evaluateLater(el, expression);\n if (!el._x_doHide)\n el._x_doHide = () => {\n mutateDom(() => {\n el.style.setProperty(\"display\", \"none\", modifiers.includes(\"important\") ? \"important\" : void 0);\n });\n };\n if (!el._x_doShow)\n el._x_doShow = () => {\n mutateDom(() => {\n if (el.style.length === 1 && el.style.display === \"none\") {\n el.removeAttribute(\"style\");\n } else {\n el.style.removeProperty(\"display\");\n }\n });\n };\n let hide = () => {\n el._x_doHide();\n el._x_isShown = false;\n };\n let show = () => {\n el._x_doShow();\n el._x_isShown = true;\n };\n let clickAwayCompatibleShow = () => setTimeout(show);\n let toggle = once(\n (value) => value ? show() : hide(),\n (value) => {\n if (typeof el._x_toggleAndCascadeWithTransitions === \"function\") {\n el._x_toggleAndCascadeWithTransitions(el, value, show, hide);\n } else {\n value ? clickAwayCompatibleShow() : hide();\n }\n }\n );\n let oldValue;\n let firstTime = true;\n effect3(() => evaluate2((value) => {\n if (!firstTime && value === oldValue)\n return;\n if (modifiers.includes(\"immediate\"))\n value ? clickAwayCompatibleShow() : hide();\n toggle(value);\n oldValue = value;\n firstTime = false;\n }));\n});\n\n// packages/alpinejs/src/directives/x-for.js\ndirective(\"for\", (el, { expression }, { effect: effect3, cleanup }) => {\n let iteratorNames = parseForExpression(expression);\n let evaluateItems = evaluateLater(el, iteratorNames.items);\n let evaluateKey = evaluateLater(\n el,\n // the x-bind:key expression is stored for our use instead of evaluated.\n el._x_keyExpression || \"index\"\n );\n el._x_lookup = /* @__PURE__ */ new Map();\n effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey));\n cleanup(() => {\n el._x_lookup.forEach(\n (el2) => mutateDom(() => {\n destroyTree(el2);\n el2.remove();\n })\n );\n delete el._x_lookup;\n });\n});\nfunction refreshScope(scope2) {\n return (newScope) => {\n Object.entries(newScope).forEach(([key, value]) => {\n scope2[key] = value;\n });\n };\n}\nfunction loop(templateEl, iteratorNames, evaluateItems, evaluateKey) {\n evaluateItems((items) => {\n if (isNumeric3(items))\n items = Array.from({ length: items }, (_, i) => i + 1);\n if (items === void 0 || items === null)\n items = [];\n if (items instanceof Set)\n items = Array.from(items);\n if (items instanceof Map)\n items = Array.from(items);\n let oldLookup = templateEl._x_lookup;\n let lookup = /* @__PURE__ */ new Map();\n templateEl._x_lookup = lookup;\n let hasStringKeys = isObject(items);\n let scopeEntries = Object.entries(items).map(([index, item]) => {\n if (!hasStringKeys)\n index = parseInt(index);\n let scope2 = getIterationScopeVariables(iteratorNames, item, index, items);\n let key;\n evaluateKey((innerKey) => {\n if (typeof innerKey === \"object\")\n warn(\"x-for key cannot be an object, it must be a string or an integer\", templateEl);\n if (oldLookup.has(innerKey)) {\n lookup.set(innerKey, oldLookup.get(innerKey));\n oldLookup.delete(innerKey);\n }\n key = innerKey;\n }, { scope: { index, ...scope2 } });\n return [key, scope2];\n });\n mutateDom(() => {\n oldLookup.forEach((el) => {\n destroyTree(el);\n el.remove();\n });\n let added = /* @__PURE__ */ new Set();\n let prev = templateEl;\n scopeEntries.forEach(([key, scope2]) => {\n if (lookup.has(key)) {\n let el = lookup.get(key);\n el._x_refreshXForScope(scope2);\n if (prev.nextElementSibling !== el) {\n if (prev.nextElementSibling)\n el.replaceWith(prev.nextElementSibling);\n prev.after(el);\n }\n prev = el;\n if (el._x_currentIfEl) {\n if (el.nextElementSibling !== el._x_currentIfEl)\n prev.after(el._x_currentIfEl);\n prev = el._x_currentIfEl;\n }\n return;\n }\n if (templateEl.content.children.length > 1)\n warn(\"x-for templates require a single root element, additional elements will be ignored.\", templateEl);\n let clone2 = document.importNode(templateEl.content, true).firstElementChild;\n let reactiveScope = reactive(scope2);\n addScopeToNode(clone2, reactiveScope, templateEl);\n clone2._x_refreshXForScope = refreshScope(reactiveScope);\n lookup.set(key, clone2);\n added.add(clone2);\n prev.after(clone2);\n prev = clone2;\n });\n skipDuringClone(() => added.forEach((clone2) => initTree(clone2)))();\n });\n });\n}\nfunction parseForExpression(expression) {\n let forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\n let stripParensRE = /^\\s*\\(|\\)\\s*$/g;\n let forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\n let inMatch = expression.match(forAliasRE);\n if (!inMatch)\n return;\n let res = {};\n res.items = inMatch[2].trim();\n let item = inMatch[1].replace(stripParensRE, \"\").trim();\n let iteratorMatch = item.match(forIteratorRE);\n if (iteratorMatch) {\n res.item = item.replace(forIteratorRE, \"\").trim();\n res.index = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.collection = iteratorMatch[2].trim();\n }\n } else {\n res.item = item;\n }\n return res;\n}\nfunction getIterationScopeVariables(iteratorNames, item, index, items) {\n let scopeVariables = {};\n if (/^\\[.*\\]$/.test(iteratorNames.item) && Array.isArray(item)) {\n let names = iteratorNames.item.replace(\"[\", \"\").replace(\"]\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name, i) => {\n scopeVariables[name] = item[i];\n });\n } else if (/^\\{.*\\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === \"object\") {\n let names = iteratorNames.item.replace(\"{\", \"\").replace(\"}\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name) => {\n scopeVariables[name] = item[name];\n });\n } else {\n scopeVariables[iteratorNames.item] = item;\n }\n if (iteratorNames.index)\n scopeVariables[iteratorNames.index] = index;\n if (iteratorNames.collection)\n scopeVariables[iteratorNames.collection] = items;\n return scopeVariables;\n}\nfunction isNumeric3(subject) {\n return typeof subject !== \"object\" && !isNaN(subject);\n}\nfunction isObject(subject) {\n return typeof subject === \"object\" && !Array.isArray(subject);\n}\n\n// packages/alpinejs/src/directives/x-ref.js\nfunction handler3() {\n}\nhandler3.inline = (el, { expression }, { cleanup }) => {\n let root = closestRoot(el);\n if (!root)\n return;\n if (!root._x_refs)\n root._x_refs = {};\n root._x_refs[expression] = el;\n cleanup(() => delete root._x_refs[expression]);\n};\ndirective(\"ref\", handler3);\n\n// packages/alpinejs/src/directives/x-if.js\ndirective(\"if\", (el, { expression }, { effect: effect3, cleanup }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-if can only be used on a <template> tag\", el);\n let evaluate2 = evaluateLater(el, expression);\n let show = () => {\n if (el._x_currentIfEl)\n return el._x_currentIfEl;\n let clone2 = el.content.cloneNode(true).firstElementChild;\n addScopeToNode(clone2, {}, el);\n mutateDom(() => {\n el.after(clone2);\n skipDuringClone(() => initTree(clone2))();\n });\n el._x_currentIfEl = clone2;\n el._x_undoIf = () => {\n mutateDom(() => {\n destroyTree(clone2);\n clone2.remove();\n });\n delete el._x_currentIfEl;\n };\n return clone2;\n };\n let hide = () => {\n if (!el._x_undoIf)\n return;\n el._x_undoIf();\n delete el._x_undoIf;\n };\n effect3(() => evaluate2((value) => {\n value ? show() : hide();\n }));\n cleanup(() => el._x_undoIf && el._x_undoIf());\n});\n\n// packages/alpinejs/src/directives/x-id.js\ndirective(\"id\", (el, { expression }, { evaluate: evaluate2 }) => {\n let names = evaluate2(expression);\n names.forEach((name) => setIdRoot(el, name));\n});\ninterceptClone((from, to) => {\n if (from._x_ids) {\n to._x_ids = from._x_ids;\n }\n});\n\n// packages/alpinejs/src/directives/x-on.js\nmapAttributes(startingWith(\"@\", into(prefix(\"on:\"))));\ndirective(\"on\", skipDuringClone((el, { value, modifiers, expression }, { cleanup }) => {\n let evaluate2 = expression ? evaluateLater(el, expression) : () => {\n };\n if (el.tagName.toLowerCase() === \"template\") {\n if (!el._x_forwardEvents)\n el._x_forwardEvents = [];\n if (!el._x_forwardEvents.includes(value))\n el._x_forwardEvents.push(value);\n }\n let removeListener = on(el, value, modifiers, (e) => {\n evaluate2(() => {\n }, { scope: { \"$event\": e }, params: [e] });\n });\n cleanup(() => removeListener());\n}));\n\n// packages/alpinejs/src/directives/index.js\nwarnMissingPluginDirective(\"Collapse\", \"collapse\", \"collapse\");\nwarnMissingPluginDirective(\"Intersect\", \"intersect\", \"intersect\");\nwarnMissingPluginDirective(\"Focus\", \"trap\", \"focus\");\nwarnMissingPluginDirective(\"Mask\", \"mask\", \"mask\");\nfunction warnMissingPluginDirective(name, directiveName, slug) {\n directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/csp/src/directives/x-html.js\ndirective(\"html\", (el, { expression }) => {\n handleError(new Error(\"Using the x-html directive is prohibited in the CSP build\"), el);\n});\n\n// packages/csp/src/index.js\nalpine_default.setEvaluator(cspEvaluator);\nalpine_default.setRawEvaluator(cspRawEvaluator);\nalpine_default.setReactivityEngine({ reactive: import_reactivity10.reactive, effect: import_reactivity10.effect, release: import_reactivity10.stop, raw: import_reactivity10.toRaw });\nvar src_default = alpine_default;\n\n// packages/csp/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n Alpine\n});\n", "/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n", "\nexport class Bag {\n constructor() { this.arrays = {} }\n\n add(key, value) {\n if (! this.arrays[key]) this.arrays[key] = []\n this.arrays[key].push(value)\n }\n\n remove(key) {\n if (this.arrays[key]) delete this.arrays[key]\n }\n\n get(key) { return this.arrays[key] || [] }\n\n each(key, callback) { return this.get(key).forEach(callback) }\n}\n\nexport class WeakBag {\n constructor() { this.arrays = new WeakMap }\n\n add(key, value) {\n if (! this.arrays.has(key)) this.arrays.set(key, [])\n this.arrays.get(key).push(value)\n }\n\n remove(key) {\n if (this.arrays.has(key)) this.arrays.delete(key, [])\n }\n\n get(key) { return this.arrays.has(key) ? this.arrays.get(key) : [] }\n\n each(key, callback) { return this.get(key).forEach(callback) }\n}\n\nexport function dispatch(target, name, detail = {}, bubbles = true) {\n target.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true,\n })\n )\n}\n\nexport function listen(target, name, handler) {\n target.addEventListener(name, handler)\n\n return () => target.removeEventListener(name, handler)\n}\n\n/**\n * Type-checking in JS is weird and annoying, these are better.\n */\nexport function isObjecty(subject) { return (typeof subject === 'object' && subject !== null) }\nexport function isObject(subject) { return (isObjecty(subject) && ! isArray(subject)) }\nexport function isArray(subject) { return Array.isArray(subject) }\nexport function isFunction(subject) { return typeof subject === 'function' }\nexport function isPrimitive(subject) { return typeof subject !== 'object' || subject === null }\n\n/**\n * Clone an object deeply to wipe out any shared references.\n */\nexport function deepClone(obj) { return JSON.parse(JSON.stringify(obj)) }\n\n/**\n * Determine if two objects take the exact same shape.\n */\nexport function deeplyEqual(a, b) { return JSON.stringify(a) === JSON.stringify(b) }\n\n/**\n * An easy way to loop through arrays and objects.\n */\nexport function each(subject, callback) {\n Object.entries(subject).forEach(([key, value]) => callback(key, value))\n}\n\n/**\n * Parse a path string into segments, supporting dot and bracket notation.\n * e.g. \"foo.bar\", \"foo[0].bar\", \"foo['hey'].baz\"\n */\nfunction parsePathSegments(path) {\n if (path === '') return []\n\n return path\n .replace(/\\[(['\"]?)(.+?)\\1\\]/g, '.$2') // Convert brackets to dots: foo['bar'] \u2192 foo.bar, foo[0] \u2192 foo.0\n .replace(/^\\./, '') // Remove leading dot if present\n .split('.')\n}\n\n/**\n * Get a property from an object with support for dot-notation and bracket-notation.\n */\nexport function dataGet(object, key) {\n if (key === '') return object\n\n return parsePathSegments(key).reduce((carry, i) => {\n return carry?.[i]\n }, object)\n}\n\n/**\n * Set a property on an object with support for dot-notation and bracket-notation.\n */\nexport function dataSet(object, key, value) {\n let segments = parsePathSegments(key)\n\n if (segments.length === 1) {\n return object[segments[0]] = value\n }\n\n let firstSegment = segments.shift()\n let restOfSegments = segments.join('.')\n let nextSegment = segments[0]\n\n if (object[firstSegment] === undefined) {\n object[firstSegment] = {}\n }\n\n // If we're about to set a numeric key that would create null gaps, convert to object.\n // This prevents JavaScript from filling intermediate indices with nulls\n // (e.g., arr[1000] = true creates 1000 null entries in a JS array).\n // We only convert when the key would create gaps (key > length), not when appending.\n if (isArray(object[firstSegment]) && isNumeric(nextSegment) && parseInt(nextSegment) > object[firstSegment].length) {\n object[firstSegment] = { ...object[firstSegment] }\n }\n\n dataSet(object[firstSegment], restOfSegments, value)\n}\n\nfunction isNumeric(subject) {\n return ! isNaN(parseInt(subject))\n}\n\n/**\n * Delete a property from an object with support for dot-notation and bracket-notation.\n */\nexport function dataDelete(object, key) {\n let segments = parsePathSegments(key)\n\n if (segments.length === 1) {\n if (Array.isArray(object)) {\n object.splice(segments[0], 1)\n } else {\n delete object[segments[0]]\n }\n return\n }\n\n let firstSegment = segments.shift()\n let restOfSegments = segments.join('.')\n\n if (object[firstSegment] !== undefined) {\n dataDelete(object[firstSegment], restOfSegments)\n }\n}\n\n/**\n * Create a flat, dot-notated diff of two objects.\n * @deprecated Use diffAndConsolidate instead for smarter update consolidation\n */\nexport function diff(left, right, diffs = {}, path = '') {\n // Are they the same?\n if (left === right) return diffs\n\n // Are they COMPLETELY different?\n if (typeof left !== typeof right || (isObject(left) && isArray(right)) || (isArray(left) && isObject(right))) {\n diffs[path] = right;\n return diffs\n }\n\n // Is the right or left side a primitive value (a leaf node)?\n if (isPrimitive(left) || isPrimitive(right)) {\n diffs[path] = right\n return diffs\n }\n\n // We now know both are objects...\n let leftKeys = Object.keys(left)\n let rightKeys = Object.keys(right)\n\n // Did the key order change? (includes insertions that shift existing keys)\n if (isObject(left) && leftKeys.some((key, i) => key !== rightKeys[i])) {\n diffs[path] = right\n return diffs\n }\n\n // Recursively diff the object's properties...\n Object.entries(right).forEach(([key, value]) => {\n diffs = {...diffs, ...diff(left[key], right[key], diffs, path === '' ? key : `${path}.${key}`)}\n leftKeys = leftKeys.filter(i => i !== key)\n })\n\n // Mark any items for removal...\n leftKeys.forEach(key => {\n diffs[`${path}.${key}`] = '__rm__'\n })\n\n return diffs\n}\n\n/**\n * Create a flat, dot-notated diff of two objects with automatic consolidation.\n * When multiple items in an array/object change or the size changes,\n * the diff is consolidated to the parent level instead of individual items.\n */\nexport function diffAndConsolidate(left, right) {\n let diffs = {}\n\n diffRecursive(left, right, '', diffs, left, right)\n\n return diffs\n}\n\nfunction diffRecursive(left, right, path, diffs, rootLeft, rootRight) {\n // Are they the same?\n if (left === right) return { changed: false, consolidated: false }\n\n // Track if we're doing a type conversion from empty array/null/undefined to object\n // In this case, we want granular diffs, not consolidation\n let convertedToObject = false\n\n // Helper to check if an array has non-numeric (string) keys\n // Arrays with string keys need granular diffs because JSON.stringify ignores them\n let hasNonNumericKeys = (arr) => {\n return isArray(arr) && Object.keys(arr).some(k => isNaN(parseInt(k)))\n }\n\n // Are they COMPLETELY different types?\n if (typeof left !== typeof right || (isObject(left) && isArray(right)) || (isArray(left) && isObject(right))) {\n // Special case: if left is an empty array and right is an object,\n // treat the empty array as an empty object so we get granular diffs.\n // This handles the case where wire:model.live=\"tableFilters.filter_1.value\"\n // updates tableFilters from [] to { filter_1: { value: 'foo' } }\n if (isArray(left) && left.length === 0 && isObject(right)) {\n left = {}\n convertedToObject = true\n // Fall through to continue with object comparison below\n }\n // Special case: if left is undefined/null and right is an object,\n // treat left as an empty object to get granular diffs for new properties\n else if ((left === undefined || left === null) && isObject(right)) {\n left = {}\n convertedToObject = true\n // Fall through to continue with object comparison below\n } else {\n diffs[path] = right\n return { changed: true, consolidated: false }\n }\n }\n\n // Special case: if both are arrays but right has non-numeric keys,\n // we need granular diffs because JSON.stringify ignores string keys on arrays.\n // Treat both as objects to properly diff the string keys.\n if (isArray(left) && isArray(right) && hasNonNumericKeys(right)) {\n // Treat the arrays as objects for comparison\n // If left was empty, mark as converted to object to prevent consolidation\n if (Object.keys(left).length === 0) {\n convertedToObject = true\n }\n }\n\n // Is either side a primitive value (a leaf node)?\n if (isPrimitive(left) || isPrimitive(right)) {\n diffs[path] = right\n return { changed: true, consolidated: false }\n }\n\n // Both are objects/arrays - check if we should consolidate at this level\n let leftKeys = Object.keys(left)\n let rightKeys = Object.keys(right)\n\n // If the size changed, consolidate at this level\n // BUT if we converted to object, don't consolidate - we're adding new items\n // and should produce granular diffs for query string handling\n if (leftKeys.length !== rightKeys.length && !convertedToObject) {\n // For root level, we can't consolidate to a single key, so diff each root property\n if (path === '') {\n Object.keys(right).forEach(key => {\n if (!deeplyEqual(left[key], right[key])) {\n diffs[key] = right[key]\n }\n })\n return { changed: true, consolidated: true }\n }\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n\n // Did the key order change?\n if (isObject(left) && leftKeys.length === rightKeys.length && leftKeys.some((key, i) => key !== rightKeys[i])) {\n if (path !== '') {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n }\n\n // Check if all keys are the same (no additions/removals)\n let keysMatch = leftKeys.every(k => rightKeys.includes(k))\n\n if (!keysMatch && !convertedToObject) {\n // Keys differ (some added, some removed) - consolidate\n if (path !== '') {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n }\n\n // Recursively diff children\n let childDiffs = {}\n let changedCount = 0\n let consolidatedCount = 0\n let totalChildren = rightKeys.length\n\n rightKeys.forEach(key => {\n let childPath = path === '' ? key : `${path}.${key}`\n let result = diffRecursive(left[key], right[key], childPath, childDiffs, rootLeft, rootRight)\n if (result.changed) changedCount++\n if (result.consolidated) consolidatedCount++\n })\n\n // If all children changed AND none of them were already consolidated, consolidate to this level\n // (unless we're at root). This prevents double-consolidation up the tree.\n // ALSO skip consolidation if we converted to object - we're adding new items, not replacing\n // Only consolidate if there are MULTIPLE children - single property changes should remain granular\n // for wire:target to work correctly (e.g., wire:target=\"form.text\" needs \"form.text\" not \"form\")\n if (path !== '' && totalChildren > 1 && changedCount === totalChildren && consolidatedCount === 0 && !convertedToObject) {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n\n // Otherwise, add individual child diffs\n Object.assign(diffs, childDiffs)\n\n // If any child was consolidated, bubble that up to prevent further consolidation\n // Also bubble up convertedToObject to prevent parent consolidation from\n // JSON-serializing arrays with non-numeric keys (which JSON.stringify ignores)\n return { changed: changedCount > 0, consolidated: consolidatedCount > 0 || convertedToObject }\n}\n\n/**\n * Diff two object trees (left = old, right = new) and patch the differences\n * onto a target object. Walks the trees directly via object key access,\n * avoiding dot-notated path strings which break when object keys contain dots.\n */\nexport function diffAndPatchRecursive(left, right, target) {\n let leftKeys = new Set(Object.keys(left || {}))\n let rightKeys = Object.keys(right)\n\n // If existing keys shifted position in an object (e.g. a key was inserted\n // in the middle), we can't patch key-by-key because new keys would be\n // appended at the end. Replace all keys on the target to preserve order.\n if (!isArray(target) && [...leftKeys].some((key, i) => key !== rightKeys[i])) {\n for (let key of Object.keys(target)) delete target[key]\n for (let key of rightKeys) target[key] = right[key]\n return\n }\n\n rightKeys.forEach(key => {\n leftKeys.delete(key)\n\n if (deeplyEqual(left?.[key], right[key])) return\n\n if (isObjecty(left?.[key]) && isObjecty(right[key]) && isObjecty(target[key])\n && isArray(right[key]) === isArray(target[key])) {\n diffAndPatchRecursive(left[key], right[key], target[key])\n } else {\n target[key] = right[key]\n }\n })\n\n // Handle removals \u2014 keys present in left but not in right.\n // Sort in reverse numeric order so array splice indices stay valid.\n let removedKeys = [...leftKeys]\n\n removedKeys.sort((a, b) => {\n let aNum = parseInt(a) || 0\n let bNum = parseInt(b) || 0\n return bNum - aNum\n }).forEach(key => {\n if (isArray(target)) {\n target.splice(parseInt(key), 1)\n } else {\n delete target[key]\n }\n })\n}\n\n/**\n * The data that's passed between the browser and server is in the form of\n * nested tuples consisting of the schema: [rawValue, metadata]. In this\n * method we're extracting the plain JS object of only the raw values.\n */\nexport function extractData(payload) {\n let value = isSynthetic(payload) ? payload[0] : payload\n let meta = isSynthetic(payload) ? payload[1] : undefined\n\n if (isObjecty(value)) {\n Object.entries(value).forEach(([key, iValue]) => {\n value[key] = extractData(iValue)\n })\n }\n\n return value\n}\n\n/**\n * Determine if the variable passed in is a node in a nested metadata\n * tuple tree. (Meaning it takes the form of: [rawData, metadata])\n */\nexport function isSynthetic(subject) {\n return Array.isArray(subject)\n && subject.length === 2\n && typeof subject[1] === 'object'\n && Object.keys(subject[1]).includes('s')\n}\n\n/**\n * Post requests in Laravel require a csrf token to be passed\n * along with the payload. Here, we'll try and locate one.\n */\nexport function getCsrfToken() {\n // Purposely not caching. Fetching it fresh every time ensures we're\n // not depending on a stale session's CSRF token...\n\n if (document.querySelector('meta[name=\"csrf-token\"]')) {\n return document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content')\n }\n\n if (document.querySelector('[data-csrf]')) {\n return document.querySelector('[data-csrf]').getAttribute('data-csrf')\n }\n\n if (window.livewireScriptConfig['csrf'] ?? false) {\n return window.livewireScriptConfig['csrf']\n }\n\n throw 'Livewire: No CSRF token detected'\n}\n\nlet nonce;\n\nexport function getNonce() {\n if (nonce) return nonce\n\n\n if (window.livewireScriptConfig && (window.livewireScriptConfig['nonce'] ?? false)) {\n nonce = window.livewireScriptConfig['nonce']\n\n return nonce\n }\n\n let elWithNonce = document.querySelector('style[data-livewire-style][nonce]')\n\n if (elWithNonce) {\n nonce = elWithNonce.nonce\n\n return nonce\n }\n\n return null\n}\n\nexport function replaceNoncesInHtml(html) {\n let nonce = getNonce()\n if (! nonce) return html\n\n let nonceMatch = html.match(/nonce=\"([^\"]+)\"/)\n if (! nonceMatch) return html\n\n let newNonce = nonceMatch[1]\n if (newNonce === nonce) return html\n\n return html.replaceAll(`nonce=\"${newNonce}\"`, `nonce=\"${nonce}\"`)\n}\n\nexport function cloneScriptTag(el) {\n let script = document.createElement('script')\n\n script.textContent = el.textContent\n script.async = el.async\n\n for (let attr of el.attributes) {\n if (attr.name === 'nonce') {\n // Browsers clear .nonce from DOMParser-parsed elements,\n // so fall back to the page's original nonce...\n script.nonce = getNonce() || el.nonce\n } else {\n script.setAttribute(attr.name, attr.value)\n }\n }\n\n return script\n}\n\n/**\n * Livewire's base URL for loading JS/CSS modules.\n * Returns a full URL including origin, generated by PHP's url() helper.\n */\nexport function getModuleUrl() {\n return document.querySelector('[data-module-url]')?.getAttribute('data-module-url') ?? window.livewireScriptConfig['moduleUrl'] ?? null\n}\n\n/**\n * Livewire's update URI. This is configurable via Livewire::setUpdateRoute(...)\n */\nexport function getUpdateUri() {\n return document.querySelector('[data-update-uri]')?.getAttribute('data-update-uri') ?? window.livewireScriptConfig['uri'] ?? null\n}\n\nexport function contentIsFromDump(content) {\n return !! content.match(/<script>Sfdump\\(\".+\"\\)<\\/script>/)\n}\n\nexport function splitDumpFromContent(content) {\n let dump = content.match(/.*<script>Sfdump\\(\".+\"\\)<\\/script>/s)\n\n return [dump, content.replace(dump, '')]\n}\n\nexport function walkUpwards(el, callback) {\n let current = el\n\n while (current) {\n let stop = undefined\n\n callback(current, { stop: (value) => value === undefined ? stop = current : stop = value })\n\n if (stop !== undefined) return stop\n\n if (current._x_teleportBack) current = current._x_teleportBack\n\n current = current.parentElement\n }\n}\n\nexport function walkBackwards(el, callback) {\n let current = el\n\n while (current) {\n let stop = undefined\n\n callback(current, { stop: (value) => value === undefined ? stop = current : stop = value })\n\n if (stop !== undefined) return stop\n\n current = current.previousSibling\n }\n}\n", "import { getCsrfToken } from '@/utils';\n\nlet uploadManagers = new WeakMap\n\nfunction getUploadManager(component) {\n if (! uploadManagers.has(component)) {\n let manager = new UploadManager(component)\n\n uploadManagers.set(component, manager)\n\n manager.registerListeners()\n }\n\n return uploadManagers.get(component)\n}\n\nexport function handleFileUpload(el, property, component, cleanup) {\n let manager = getUploadManager(component)\n\n let start = () => el.dispatchEvent(new CustomEvent('livewire-upload-start', { bubbles: true, detail: { id: component.id, property} }))\n let finish = () => el.dispatchEvent(new CustomEvent('livewire-upload-finish', { bubbles: true, detail: { id: component.id, property} }))\n let error = () => el.dispatchEvent(new CustomEvent('livewire-upload-error', { bubbles: true, detail: { id: component.id, property} }))\n let cancel = () => el.dispatchEvent(new CustomEvent('livewire-upload-cancel', { bubbles: true, detail: { id: component.id, property} }))\n let progress = (progressEvent) => {\n var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total )\n\n el.dispatchEvent(\n new CustomEvent('livewire-upload-progress', {\n bubbles: true, detail: { progress: percentCompleted }\n })\n )\n }\n\n let eventHandler = e => {\n if (e.target.files.length === 0) return\n\n start()\n\n if (e.target.multiple) {\n manager.uploadMultiple(property, e.target.files, finish, error, progress, cancel)\n } else {\n manager.upload(property, e.target.files[0], finish, error, progress, cancel)\n }\n }\n\n el.addEventListener('change', eventHandler)\n\n // If the Livewire property has changed to null or an empty string, then reset the input...\n component.$wire.$watch(property, (value) => {\n // This watch will only be released when the component is removed. However, the\n // actual file-upload element may be removed from the DOM withou the entire\n // component being removed. In this case, let's just bail early on this.\n if (! el.isConnected) return\n\n if (value === null || value === '') {\n el.value = ''\n }\n \n // If the file input is a multiple file input and the value has been reset to an empty array, then reset the input...\n if (el.multiple && Array.isArray(value) && value.length === 0) {\n el.value = ''\n }\n })\n\n // There's a bug in browsers where selecting a file, removing it,\n // then re-adding it doesn't fire the change event. This fixes it.\n // Reference: https://stackoverflow.com/questions/12030686/html-input-file-selection-event-not-firing-upon-selecting-the-same-file\n let clearFileInputValue = () => { el.value = null }\n el.addEventListener('click', clearFileInputValue)\n\n // Clear the input if the uploaded is cancelled...\n el.addEventListener('livewire-upload-cancel', clearFileInputValue)\n\n cleanup(() => {\n el.removeEventListener('change', eventHandler)\n el.removeEventListener('click', clearFileInputValue)\n })\n}\n\nclass UploadManager {\n constructor(component) {\n this.component = component\n this.uploadBag = new MessageBag\n this.removeBag = new MessageBag\n }\n\n registerListeners() {\n this.component.$wire.$on('upload:generatedSignedUrl', ({ name, url }) => {\n // We have to add reduntant \"setLoading\" calls because the dom-patch\n // from the first response will clear the setUploadLoading call\n // from the first upload call.\n setUploadLoading(this.component, name)\n\n this.handleSignedUrl(name, url)\n })\n\n this.component.$wire.$on('upload:generatedSignedUrlForS3', ({ name, payload }) => {\n setUploadLoading(this.component, name)\n\n this.handleS3PreSignedUrl(name, payload)\n })\n\n this.component.$wire.$on('upload:finished', ({ name, tmpFilenames }) => this.markUploadFinished(name, tmpFilenames))\n this.component.$wire.$on('upload:errored', ({ name }) => this.markUploadErrored(name))\n this.component.$wire.$on('upload:removed', ({ name, tmpFilename }) => this.removeBag.shift(name).finishCallback(tmpFilename))\n }\n\n upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback) {\n this.setUpload(name, {\n files: [file],\n multiple: false,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append: false,\n })\n }\n\n uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback, append = true) {\n this.setUpload(name, {\n files: Array.from(files),\n multiple: true,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append,\n })\n }\n\n removeUpload(name, tmpFilename, finishCallback) {\n this.removeBag.push(name, {\n tmpFilename, finishCallback\n })\n\n this.component.$wire.call('_removeUpload', name, tmpFilename);\n }\n\n setUpload(name, uploadObject) {\n this.uploadBag.add(name, uploadObject)\n\n if (this.uploadBag.get(name).length === 1) {\n this.startUpload(name, uploadObject)\n }\n }\n\n handleSignedUrl(name, url) {\n let formData = new FormData()\n Array.from(this.uploadBag.first(name).files).forEach(file => formData.append('files[]', file, file.name))\n\n let headers = {\n 'Accept': 'application/json',\n }\n\n let csrfToken = getCsrfToken()\n\n if (csrfToken) headers['X-CSRF-TOKEN'] = csrfToken\n\n this.makeRequest(name, formData, 'post', url, headers, response => {\n return response.paths\n })\n }\n\n handleS3PreSignedUrl(name, payload) {\n let formData = this.uploadBag.first(name).files[0]\n\n let headers = payload.headers\n if ('Host' in headers) delete headers.Host\n let url = payload.url\n\n this.makeRequest(name, formData, 'put', url, headers, response => {\n return [payload.path]\n })\n }\n\n makeRequest(name, formData, method, url, headers, retrievePaths) {\n let request = new XMLHttpRequest()\n\n request.open(method, url)\n\n Object.entries(headers).forEach(([key, value]) => {\n request.setRequestHeader(key, value)\n })\n\n request.upload.addEventListener('progress', e => {\n e.detail = {}\n e.detail.progress = Math.floor((e.loaded * 100) / e.total)\n\n this.uploadBag.first(name).progressCallback(e)\n })\n\n request.addEventListener('load', () => {\n if ((request.status+'')[0] === '2') {\n let paths = retrievePaths(request.response && JSON.parse(request.response))\n\n this.component.$wire.call('_finishUpload', name, paths, this.uploadBag.first(name).multiple, this.uploadBag.first(name).append)\n\n return\n }\n\n let errors = null\n\n if (request.status === 422) {\n errors = request.response\n }\n\n this.component.$wire.call('_uploadErrored', name, errors, this.uploadBag.first(name).multiple)\n })\n\n request.addEventListener('error', () => {\n this.component.$wire.call('_uploadErrored', name, null, this.uploadBag.first(name).multiple)\n })\n\n this.uploadBag.first(name).request = request\n\n request.send(formData)\n }\n\n startUpload(name, uploadObject) {\n let fileInfos = uploadObject.files.map(file => {\n return { name: file.name, size: file.size, type: file.type }\n })\n\n this.component.$wire.call('_startUpload', name, fileInfos, uploadObject.multiple);\n\n setUploadLoading(this.component, name)\n }\n\n markUploadFinished(name, tmpFilenames) {\n unsetUploadLoading(this.component)\n\n let uploadObject = this.uploadBag.shift(name)\n uploadObject.finishCallback(uploadObject.multiple ? tmpFilenames : tmpFilenames[0])\n\n if (this.uploadBag.get(name).length > 0) this.startUpload(name, this.uploadBag.last(name))\n }\n\n markUploadErrored(name) {\n unsetUploadLoading(this.component)\n\n this.uploadBag.shift(name).errorCallback()\n\n if (this.uploadBag.get(name).length > 0) this.startUpload(name, this.uploadBag.last(name))\n }\n\n cancelUpload(name, cancelledCallback = null) {\n unsetUploadLoading(this.component)\n\n let uploadItem = this.uploadBag.first(name);\n\n if (uploadItem) {\n if (uploadItem.request) {\n uploadItem.request.abort();\n }\n\n this.uploadBag.shift(name).cancelledCallback();\n\n if (cancelledCallback) cancelledCallback()\n }\n }\n}\n\nexport default class MessageBag {\n constructor() {\n this.bag = {}\n }\n\n add(name, thing) {\n if (! this.bag[name]) {\n this.bag[name] = []\n }\n\n this.bag[name].push(thing)\n }\n\n push(name, thing) {\n this.add(name, thing)\n }\n\n first(name) {\n if (! this.bag[name]) return null\n\n return this.bag[name][0]\n }\n\n last(name) {\n return this.bag[name].slice(-1)[0]\n }\n\n get(name) {\n return this.bag[name]\n }\n\n shift(name) {\n return this.bag[name].shift()\n }\n\n call(name, ...params) {\n (this.listeners[name] || []).forEach(callback => {\n callback(...params)\n })\n }\n\n has(name) {\n return Object.keys(this.listeners).includes(name)\n }\n}\n\nfunction setUploadLoading() {\n // @todo\n}\n\nfunction unsetUploadLoading() {\n // @todo\n}\n\nexport function upload(\n component,\n name,\n file,\n finishCallback = () => { },\n errorCallback = () => { },\n progressCallback = () => { },\n cancelledCallback = () => { },\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.upload(\n name,\n file,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n )\n}\n\nexport function uploadMultiple(\n component,\n name,\n files,\n finishCallback = () => { },\n errorCallback = () => { },\n progressCallback = () => { },\n cancelledCallback = () => { },\n append = true,\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.uploadMultiple(\n name,\n files,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append,\n )\n}\n\nexport function removeUpload(\n component,\n name,\n tmpFilename,\n finishCallback = () => { },\n errorCallback = () => { }\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.removeUpload(\n name,\n tmpFilename,\n finishCallback,\n errorCallback\n )\n}\n\nexport function cancelUpload(\n component,\n name,\n cancelledCallback = () => { }\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.cancelUpload(\n name,\n cancelledCallback\n )\n}\n", "import Alpine from 'alpinejs'\n\nexport function generateEntangleFunction(component, cleanup) {\n if (! cleanup) cleanup = () => {}\n\n return (name, live = false) => {\n let isLive = live\n let livewireProperty = name\n let livewireComponent = component.$wire\n let livewirePropertyValue = livewireComponent.get(livewireProperty)\n\n let interceptor = Alpine.interceptor((initialValue, getter, setter, path, key) => {\n // Check to see if the Livewire property exists and if not log a console error\n // and return so everything else keeps running.\n if (typeof livewirePropertyValue === 'undefined') {\n console.error(`Livewire Entangle Error: Livewire property ['${livewireProperty}'] cannot be found on component: ['${component.name}']`)\n return\n }\n\n let release = Alpine.entangle({\n // Outer scope...\n get() {\n return livewireComponent.get(name)\n },\n set(value) {\n livewireComponent.set(name, value, isLive)\n }\n }, {\n // Inner scope...\n get() {\n return getter()\n },\n set(value) {\n setter(value)\n }\n })\n\n cleanup(() => release())\n\n return cloneIfObject(livewireComponent.get(name))\n }, obj => {\n Object.defineProperty(obj, 'live', {\n get() {\n isLive = true\n\n return obj\n }\n })\n })\n\n return interceptor(livewirePropertyValue)\n }\n}\n\nfunction cloneIfObject(value) {\n return typeof value === 'object'\n ? JSON.parse(JSON.stringify(value))\n : value\n}\n", "import { cancelUpload, removeUpload, upload, uploadMultiple } from './features/supportFileUploads'\nimport { dispatch, dispatchEl, dispatchRef, dispatchSelf, dispatchTo, listen } from '@/events'\nimport { generateEntangleFunction } from '@/features/supportEntangle'\nimport { findComponentByEl } from '@/store'\nimport { dataGet, dataSet } from '@/utils'\nimport Alpine from 'alpinejs'\nimport { on as hook } from './hooks'\nimport { fireAction, setNextActionMetadata, interceptComponentAction, interceptComponentMessage, interceptComponentRequest } from '@/request'\nimport { getErrorsObject } from '@/features/supportErrors'\nimport { findRefEl } from '@/features/supportRefs'\nimport { checkDirty } from './directives/wire-dirty'\nimport { assetIsPendingFor, runAfterAssetIsLoadedFor } from './features/supportJsModules'\n\nlet properties = {}\nlet fallback\n\nfunction wireProperty(name, callback, component = null) {\n properties[name] = callback\n}\n\nfunction wireFallback(callback) {\n fallback = callback\n}\n\n// For V2 backwards compatibility...\n// And I actually like both depending on the scenario...\nlet aliases = {\n 'on': '$on',\n 'el': '$el',\n 'id': '$id',\n 'js': '$js',\n 'get': '$get',\n 'set': '$set',\n 'refs': '$refs',\n 'call': '$call',\n 'hook': '$hook',\n 'watch': '$watch',\n 'dirty': '$dirty',\n 'effect': '$effect',\n 'commit': '$commit',\n 'errors': '$errors',\n 'island': '$island',\n 'upload': '$upload',\n 'entangle': '$entangle',\n 'dispatch': '$dispatch',\n 'intercept': '$intercept',\n 'interceptAction': '$interceptAction',\n 'interceptMessage': '$interceptMessage',\n 'interceptRequest': '$interceptRequest',\n 'dispatchTo': '$dispatchTo',\n 'dispatchSelf': '$dispatchSelf',\n 'dispatchEl': '$dispatchEl',\n 'dispatchRef': '$dispatchRef',\n 'removeUpload': '$removeUpload',\n 'cancelUpload': '$cancelUpload',\n 'uploadMultiple': '$uploadMultiple',\n}\n\nexport function generateWireObject(component, state) {\n let isScoped = false\n\n return new Proxy({}, {\n get(target, property) {\n if (property === '__instance') return component\n\n if (property in aliases) {\n return getProperty(component, aliases[property])\n } else if (property in properties) {\n return getProperty(component, property)\n } else if (property in state) {\n return state[property]\n } else if (property === 'toJSON') {\n // Tools like Laravel Boost call JSON.stringify() on objects\n // (e.g. for browser console logging). Without this, the Proxy\n // fallback would send \"toJSON\" as a server-side method call,\n // throwing a MethodNotFoundException.\n return () => component.toJSON()\n } else if (! ['then'].includes(property)) {\n return getFallback(component)(property)\n }\n },\n\n set(target, property, value) {\n if (property in state) {\n state[property] = value\n }\n\n return true\n },\n })\n}\n\nfunction getProperty(component, name) {\n return properties[name](component)\n}\n\nfunction getFallback(component) {\n return fallback(component)\n}\n\nAlpine.magic('wire', (el, { cleanup }) => {\n // Purposely initializing an empty variable here is a \"memo\"\n // so that a component is lazy-loaded when using $wire from Alpine...\n let component\n\n // Override $wire methods that need to be cleaned up when\n // and element is removed. For example, `x-data=\"{ foo: $wire.entangle(...) }\"`:\n // we would want the entangle effect freed if the element was removed from the DOM...\n return new Proxy({}, {\n get(target, property) {\n if (! component) {\n try {\n component = findComponentByEl(el)\n } catch (e) {\n return () => {}\n }\n }\n\n if (['$entangle', 'entangle'].includes(property)) {\n return generateEntangleFunction(component, cleanup)\n }\n\n return component.$wire[property]\n },\n\n set(target, property, value) {\n if (! component) {\n try {\n component = findComponentByEl(el)\n } catch (e) {\n return true\n }\n }\n\n component.$wire[property] = value\n\n return true\n },\n })\n})\n\nwireProperty('__instance', (component) => component)\n\nwireProperty('$get', (component) => (property, reactive = true) => dataGet(reactive ? component.reactive : component.ephemeral, property))\n\nwireProperty('$el', (component) => {\n return component.el\n})\n\nwireProperty('$id', (component) => {\n return component.id\n})\n\nwireProperty('$js', (component) => {\n let fn = component.addJsAction.bind(component)\n\n let jsActions = component.getJsActions()\n\n Object.keys(jsActions).forEach((name) => {\n fn[name] = jsActions[name]\n })\n\n return new Proxy(fn, {\n set(target, property, value) {\n component.addJsAction(property, value)\n\n return true\n },\n get(target, property) {\n // Scripts in view-based components are imported dynamically,\n // which means they run asynchronously. This causes issues with\n // things like wire:text=\"$js.foo()\" not being available on page load.\n // To patch this, we return a promise that resolves the $js action\n // after the script is fully imported and executed...\n if (assetIsPendingFor(component)) {\n let resolver = null\n\n let promise = new Promise((resolve) => {\n resolver = resolve\n })\n\n return (...params) => {\n runAfterAssetIsLoadedFor(component, () => {\n resolver(component.getJsAction(property)(...params))\n })\n\n return promise\n }\n }\n\n return target[property]\n }\n })\n})\n\nwireProperty('$set', (component) => async (property, value, live = true) => {\n dataSet(component.reactive, property, value)\n\n // If \"live\", send a request, queueing the property update to happen first\n // on the server, then trickle back down to the client and get merged...\n if (live) {\n component.queueUpdate(property, value)\n\n return fireAction(component, '$set')\n }\n\n return Promise.resolve()\n})\n\nwireProperty('$refs', (component) => {\n let fn = (name) => findRefEl(component, name)\n\n return new Proxy(fn, {\n get(target, property) {\n if (property in target) {\n return target[property]\n }\n\n return fn(property)\n }\n })\n})\n\nwireProperty('$dirty', (component) => (property) => {\n let reactive = Alpine.reactive({ dirty: false })\n\n interceptComponentMessage(component, ({ onFinish }) => {\n onFinish(() => {\n queueMicrotask(() => {\n reactive.dirty = checkDirty(component, property)\n })\n })\n })\n\n Alpine.effect(() => {\n reactive.dirty = checkDirty(component, property)\n })\n\n return reactive.dirty\n})\n\nwireProperty('$intercept', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentAction(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptAction', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentAction(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptMessage', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentMessage(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptRequest', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentRequest(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$errors', (component) => getErrorsObject(component))\n\nwireProperty('$call', (component) => async (method, ...params) => {\n return await component.$wire[method](...params)\n})\n\nwireProperty('$island', (component) => (name, options = {}) => {\n setNextActionMetadata({ island: { name, mode: 'morph', ...options } })\n\n return component.$wire\n})\n\nwireProperty('$entangle', (component) => (name, live = false) => {\n return generateEntangleFunction(component)(name, live)\n})\n\nwireProperty('$toggle', (component) => (name, live = true) => {\n return component.$wire.set(name, ! component.$wire.get(name), live)\n})\n\nwireProperty('$watch', (component) => (path, callback) => {\n let getter = () => {\n return dataGet(component.reactive, path)\n }\n\n let unwatch = Alpine.watch(getter, callback)\n\n component.addCleanup(unwatch)\n\n return unwatch\n})\n\nwireProperty('$effect', (component) => (callback) => {\n let effect = Alpine.effect(callback)\n\n component.addCleanup(effect)\n\n return effect\n})\n\nwireProperty('$refresh', (component) => async () => {\n return fireAction(component, '$refresh')\n})\n\nwireProperty('$commit', (component) => async () => {\n return fireAction(component, '$commit')\n})\n\nwireProperty('$on', (component) => (...params) => listen(component, ...params))\n\nwireProperty('$hook', (component) => (name, callback) => {\n let unhook = hook(name, ({component: hookComponent, ...params}) => {\n // Request level hooks don't have a component, so just run the callback\n if (hookComponent === undefined) return callback(params)\n\n // Run the callback if the component in the hook matches the $wire component\n if (hookComponent.id === component.id) return callback({component: hookComponent, ...params})\n })\n\n component.addCleanup(unhook)\n\n // Return the unhook function so it can be called manually if needed\n return unhook\n})\n\nwireProperty('$dispatch', (component) => (...params) => dispatch(component, ...params))\nwireProperty('$dispatchSelf', (component) => (...params) => dispatchSelf(component, ...params))\nwireProperty('$dispatchTo', () => (...params) => dispatchTo(...params))\nwireProperty('$dispatchEl', (component) => (...params) => dispatchEl(component, ...params))\nwireProperty('$dispatchRef', (component) => (...params) => dispatchRef(component, ...params))\nwireProperty('$upload', (component) => (...params) => upload(component, ...params))\nwireProperty('$uploadMultiple', (component) => (...params) => uploadMultiple(component, ...params))\nwireProperty('$removeUpload', (component) => (...params) => removeUpload(component, ...params))\nwireProperty('$cancelUpload', (component) => (...params) => cancelUpload(component, ...params))\n\nlet parentMemo = new WeakMap\n\nwireProperty('$parent', component => {\n if (parentMemo.has(component)) return parentMemo.get(component).$wire\n\n let parent = findComponentByEl(component.el.parentElement, false)\n\n if (! parent) return\n\n parentMemo.set(component, parent)\n\n return parent.$wire\n})\n\nlet overriddenMethods = new WeakMap\n\nexport function overrideMethod(component, method, callback) {\n if (! overriddenMethods.has(component)) {\n overriddenMethods.set(component, {})\n }\n\n let obj = overriddenMethods.get(component)\n\n obj[method] = callback\n\n overriddenMethods.set(component, obj)\n}\n\nwireFallback((component) => (property) => (...params) => {\n // If this method is passed directly to a Vue or Alpine\n // event listener (@click=\"someMethod\") without using\n // parens, strip out the automatically added event.\n if (params.length === 1 && params[0] instanceof Event) {\n params = []\n }\n\n if (overriddenMethods.has(component)) {\n let overrides = overriddenMethods.get(component)\n\n if (typeof overrides[property] === 'function') {\n return overrides[property](params)\n }\n }\n\n return fireAction(component, property, params)\n})\n", "import { isFunction } from '@/utils'\n\n/**\n * Our internal event listener bus...\n */\nlet listeners = []\n\n/**\n * Register a callback to run when an event is triggered...\n */\nexport function on(name, callback) {\n if (! listeners[name]) listeners[name] = []\n\n listeners[name].push(callback)\n\n // Return an \"off\" callback to remove the listener...\n return () => {\n listeners[name] = listeners[name].filter(i => i !== callback)\n }\n}\n\n/**\n * In addition to triggering an event, this method allows you to\n * defer running callbacks returned from listeners and pass a\n * value through each one so they can act like middleware.\n *\n * An example of using this combination to the fullest:\n *\n * // First let's look at the triggering phase:\n * let finish = trigger([event name], ...[event params])\n *\n * return finish([pass-through value])\n *\n * // Now, let's look at the \"listening\" phase:\n * on([event name], (...[event params]) => {\n * // The contents of this callback will be run immediately on trigger.\n *\n * return ([pass-through value]) => {\n * // This callback will be run when \"finish()\" is called.\n *\n * // The [pass-through value] can be mutated and must\n * // be returned for the next callback to process.\n * return [pass-through value]\n * }\n * })\n */\nexport function trigger(name, ...params) {\n let callbacks = listeners[name] || []\n\n let finishers = []\n\n for (let i = 0; i < callbacks.length; i++) {\n let finisher = callbacks[i](...params)\n\n if (isFunction(finisher)) finishers.push(finisher)\n }\n\n return (result) => {\n return runFinishers(finishers, result)\n }\n}\n\nexport async function triggerAsync(name, ...params) {\n let callbacks = listeners[name] || []\n\n let finishers = []\n\n for (let i = 0; i < callbacks.length; i++) {\n let finisher = await callbacks[i](...params)\n\n if (isFunction(finisher)) finishers.push(finisher)\n }\n\n return (result) => {\n return runFinishers(finishers, result)\n }\n}\n\nexport function runFinishers(finishers, result)\n{\n let latest = result\n\n for (let i = 0; i < finishers.length; i++) {\n let iResult = finishers[i](latest)\n\n if (iResult !== undefined) {\n latest = iResult\n }\n }\n\n return latest\n}\n", "import { constructAction, createOrAddToOutstandingMessage, interceptAction, interceptPartition } from '@/request'\n\nexport function coordinateNetworkInteractions(messageBus) {\n // Handle isolated components...\n interceptPartition(({ message, compileRequest }) => {\n if (! message.component.isIsolated) return\n\n compileRequest([message])\n })\n\n // Handle lazy components...\n interceptPartition(({ message, compileRequest }) => {\n if (\n message.component.isLazy &&\n ! message.component.hasBeenLazyLoaded &&\n message.component.isLazyIsolated\n ) {\n compileRequest([message])\n }\n })\n\n // Handle modelable/reactive components...\n interceptPartition(({ message, compileRequest }) => {\n let component = message.component\n\n let bundledMessages = []\n\n component.getDeepChildrenWithBindings(child => {\n let action = constructAction(child, '$commit')\n let message = createOrAddToOutstandingMessage(action)\n\n bundledMessages.push(message)\n })\n\n if (bundledMessages.length > 0) {\n compileRequest([message, ...bundledMessages])\n }\n })\n\n // If a request is in-flight, queue up the action to fire after the in-flight request has finished...\n interceptAction(({ action }) => {\n // Wire:click.renderless\n let isRenderless = action?.origin?.directive?.modifiers.includes('renderless')\n if (isRenderless) {\n action.metadata.renderless = true\n }\n\n let message = messageBus.activeMessageMatchingScope(action)\n\n if (message) {\n // Wire:click.async:\n // - allow async actions incoming to pass through...\n // - if active message actions are async, allow the incoming async action to pass through as well...\n if (message.isAsync() || action.isAsync()) return\n\n // Wire:poll:\n // - Throw away new polls if a request of any kind is in-flight...\n if (action.metadata.type === 'poll') {\n return action.cancel()\n }\n\n // Wire:poll:\n // - Cancel in-flight polls to prioritize the new poll...\n if (Array.from(message.actions).every(action => action.metadata.type === 'poll')) {\n return message.cancel()\n }\n\n // Wire:model.live:\n // - If both incoming and outgoing requests are model.live, let them run in parallel...\n if (Array.from(message.actions).every(action => action.metadata.type === 'model.live')) {\n if (action.metadata.type === 'model.live') {\n return\n }\n }\n\n action.defer()\n\n message.addInterceptor(({ onFinish }) => {\n onFinish(() => action.fire())\n })\n }\n })\n}\n", "\nexport class MessageRequest {\n messages = new Set()\n controller = new AbortController()\n interceptors = []\n cancelled = false\n uri = null\n payload = null\n options = null\n\n addMessage(message) {\n message.setRequest(this)\n\n this.messages.add(message)\n }\n\n getActiveMessages() {\n return new Set([...this.messages].filter(message => ! message.isCancelled()))\n }\n\n initInterceptors(interceptorRegistry) {\n this.interceptors = interceptorRegistry.getRequestInterceptors(this)\n\n this.messages.forEach(message => {\n let messageInterceptors = interceptorRegistry.getMessageInterceptors(message)\n\n message.setInterceptors(messageInterceptors)\n })\n\n this.interceptors.forEach(interceptor => interceptor.init())\n\n this.messages.forEach(message => {\n message.getInterceptors().forEach(interceptor => interceptor.init())\n })\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.controller.abort()\n\n this.messages.forEach(message => {\n if (message.isCancelled()) return\n\n message.cancel()\n })\n }\n\n hasAllCancelledMessages() {\n return this.getActiveMessages().size === 0\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n /**\n * Lifecycle methods\n */\n invokeOnSend({ responsePromise }) {\n this.interceptors.forEach(interceptor => interceptor.onSend({ responsePromise }))\n\n this.messages.forEach(message => message.invokeOnSend())\n }\n\n invokeOnCancel() {\n this.interceptors.forEach(interceptor => interceptor.onCancel())\n }\n\n invokeOnFailure({ error }) {\n this.interceptors.forEach(interceptor => interceptor.onFailure({ error }))\n\n this.messages.forEach(message => message.invokeOnFailure(error))\n }\n\n invokeOnResponse({ response }) {\n this.interceptors.forEach(interceptor => interceptor.onResponse({ response }))\n }\n\n invokeOnStream({ response }) {\n this.interceptors.forEach(interceptor => interceptor.onStream({ response }))\n }\n\n invokeOnParsed({ response, body }) {\n this.interceptors.forEach(interceptor => interceptor.onParsed({ response, body }))\n }\n\n\n invokeOnRedirect({ url, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onRedirect({ url, preventDefault }))\n }\n\n invokeOnDump({ html, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onDump({ html, preventDefault }))\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onError({ response, body, preventDefault }))\n\n this.messages.forEach(message => message.invokeOnError({ response, body, preventDefault }))\n }\n\n invokeOnSuccess({ response, body, json }) {\n this.interceptors.forEach(interceptor => interceptor.onSuccess({ response, body, json }))\n }\n\n invokeOnFinish() {\n this.interceptors.forEach(interceptor => interceptor.onFinish())\n }\n}\n\nexport class PageRequest {\n controller = new AbortController()\n\n constructor(uri) {\n this.uri = uri\n }\n\n cancel() {\n this.controller.abort()\n }\n\n isCancelled() {\n return this.controller.signal.aborted\n }\n}\n", "import { WeakBag } from \"@/utils\"\n\nexport class MessageInterceptor {\n onSend = () => {}\n onCancel = () => {}\n onFailure = () => {}\n onError = () => {}\n onStream = () => {}\n onSuccess = () => {}\n onSkipped = () => {}\n onFinish = () => {}\n onSync = () => {}\n onEffect = () => {}\n onMorph = async () => {}\n onRender = () => {}\n\n constructor(message, callback) {\n this.message = message\n this.callback = callback\n\n this.callback({\n message: this.message,\n cancel: () => {\n // If we're not yet attached to the message's interceptors,\n // call our own onCancel since message.invokeOnCancel() won't reach us\n let attachedToMessage = this.message.getInterceptors().includes(this)\n\n if (!attachedToMessage) {\n this.onCancel()\n }\n\n this.message.cancel()\n },\n onSend: (callback) => this.onSend = callback,\n onCancel: (callback) => this.onCancel = callback,\n onFailure: (callback) => this.onFailure = callback,\n onError: (callback) => this.onError = callback,\n onStream: (callback) => this.onStream = callback,\n onSuccess: (callback) => this.onSuccess = callback,\n onSkipped: (callback) => this.onSkipped = callback,\n onFinish: (callback) => this.onFinish = callback,\n })\n }\n\n init() {\n // Reserved for future use\n }\n}\n\nexport class RequestInterceptor {\n onSend = () => {}\n onCancel = () => {}\n onFailure = () => {}\n onResponse = () => {}\n onParsed = () => {}\n onError = () => {}\n onStream = () => {}\n onRedirect = () => {}\n onDump = () => {}\n onSuccess = () => {}\n onFinish = () => {}\n\n constructor(request, callback) {\n this.request = request\n this.callback = callback\n\n this.callback({\n request: this.request,\n onSend: (callback) => this.onSend = callback,\n onCancel: (callback) => this.onCancel = callback,\n onFailure: (callback) => this.onFailure = callback,\n onResponse: (callback) => this.onResponse = callback,\n onParsed: (callback) => this.onParsed = callback,\n onError: (callback) => this.onError = callback,\n onStream: (callback) => this.onStream = callback,\n onRedirect: (callback) => this.onRedirect = callback,\n onDump: (callback) => this.onDump = callback,\n onSuccess: (callback) => this.onSuccess = callback,\n onFinish: (callback) => this.onFinish = callback,\n })\n }\n\n init() {\n // Reserved for future use\n }\n}\n\nexport class InterceptorRegistry {\n messageInterceptorCallbacks = []\n messageInterceptorCallbacksByComponent = new WeakBag\n requestInterceptorCallbacks = []\n\n addInterceptor(component, callback) {\n this.messageInterceptorCallbacksByComponent.add(component, callback)\n\n return () => {\n this.messageInterceptorCallbacksByComponent.delete(component, callback)\n }\n }\n\n addMessageInterceptor(callback) {\n this.messageInterceptorCallbacks.push(callback)\n\n return () => {\n this.messageInterceptorCallbacks.splice(this.messageInterceptorCallbacks.indexOf(callback), 1)\n }\n }\n\n addRequestInterceptor(callback) {\n this.requestInterceptorCallbacks.push(callback)\n\n return () => {\n this.requestInterceptorCallbacks.splice(this.requestInterceptorCallbacks.indexOf(callback), 1)\n }\n }\n\n getMessageInterceptors(message) {\n let callbacks = [\n ...this.messageInterceptorCallbacksByComponent.get(message.component),\n ...this.messageInterceptorCallbacks,\n ]\n\n return callbacks.map(callback => {\n return new MessageInterceptor(message, callback)\n })\n }\n\n getRequestInterceptors(request) {\n return this.requestInterceptorCallbacks.map(callback => {\n return new RequestInterceptor(request, callback)\n })\n }\n}", "\n// This code and concept is all Jonathan Reinink - thanks man!\nexport function showHtmlModal(html) {\n let page = document.createElement('html')\n page.innerHTML = html\n page.querySelectorAll('a').forEach(a =>\n a.setAttribute('target', '_top')\n )\n\n let modal = document.getElementById('livewire-error')\n\n if (typeof modal != 'undefined' && modal != null) {\n // Modal already exists.\n modal.innerHTML = ''\n } else {\n modal = document.createElement('dialog')\n modal.id = 'livewire-error'\n modal.style.margin = '50px'\n modal.style.width = 'calc(100% - 100px)'\n modal.style.height = 'calc(100% - 100px)'\n modal.style.borderRadius = '5px'\n modal.style.padding = '0px'\n // Background color is set on the ::backdrop in Livewire's styles...\n }\n\n let iframe = document.createElement('iframe')\n iframe.style.backgroundColor = '#17161A'\n iframe.style.borderRadius = '5px'\n iframe.style.width = '100%'\n iframe.style.height = '100%'\n modal.appendChild(iframe)\n\n document.body.prepend(modal)\n document.body.style.overflow = 'hidden'\n iframe.contentWindow.document.open()\n iframe.contentWindow.document.write(page.outerHTML)\n iframe.contentWindow.document.close()\n\n // Close on click...\n modal.addEventListener('click', () => hideHtmlModal(modal))\n\n // Clean up on dialog close. This ensures that the modal dialog captures the escape\n // event first, so that dialog elements below it do not capture the event, before\n // we clean up and remove the modal from the DOM...\n modal.addEventListener('close', () => cleanupModal(modal))\n\n // Show the modal and focus it to ensure that the escape key works, otherwise it'll \n // be captured by the iframe, then blur so the modal focus ring isn't visible...\n modal.showModal()\n modal.focus()\n modal.blur()\n}\n\n// We don't want to clean up in here anymore because we're using the close \n// event to trigger the cleanup. This function is kept here to maintain \n// backwards compatibility as it is an exported function...\nexport function hideHtmlModal(modal) {\n modal.close()\n}\n\nfunction cleanupModal(modal) {\n modal.outerHTML = ''\n document.body.style.overflow = 'visible'\n}\n", "\nlet componentSymbols = new WeakMap\nlet componentIslandSymbols = new WeakMap\n\nexport function scopeSymbolFromMessage(message) {\n let component = message.component\n\n let hasAllIslands = Array.from(message.actions).every(action => action.metadata.island)\n\n if (hasAllIslands) {\n let islandName = Array.from(message.actions).map(action => action.metadata.island.name).sort().join('|')\n\n let islandSymbols = componentIslandSymbols.get(component)\n\n if (! islandSymbols) {\n islandSymbols = { [islandName]: Symbol() }\n\n componentIslandSymbols.set(component, islandSymbols)\n }\n\n if (! islandSymbols[islandName]) {\n islandSymbols[islandName] = Symbol()\n }\n\n return islandSymbols[islandName]\n }\n\n if (! componentSymbols.has(component)) {\n componentSymbols.set(component, Symbol())\n }\n\n return componentSymbols.get(component)\n}\n\nexport function scopeSymbolFromAction(action) {\n let component = action.component\n\n let isIsland = !! action.metadata.island\n\n if (isIsland) {\n let islandName = action.metadata.island.name\n\n let islandSymbols = componentIslandSymbols.get(component)\n\n if (! islandSymbols) {\n islandSymbols = { [islandName]: Symbol() }\n\n componentIslandSymbols.set(component, islandSymbols)\n }\n\n if (! islandSymbols[islandName]) {\n islandSymbols[islandName] = Symbol()\n }\n\n return islandSymbols[islandName]\n }\n\n if (! componentSymbols.has(component)) {\n componentSymbols.set(component, Symbol())\n }\n\n return componentSymbols.get(component)\n}\n\nexport class MessageBus {\n pendingMessages = new Set\n activeMessages = new Set\n bufferingMessages = new Set\n\n constructor() {\n //\n }\n\n messageBuffer(message, callback) {\n if (this.bufferingMessages.has(message)) {\n return\n }\n\n this.bufferingMessages.add(message)\n\n setTimeout(() => { // Buffer for 5ms to allow other areas of the codebase to hook into the lifecycle of an individual commit...\n callback()\n\n this.bufferingMessages.delete(message)\n }, 5)\n }\n\n addPendingMessage(message) {\n this.pendingMessages.add(message)\n }\n\n clearPendingMessages() {\n this.pendingMessages.clear()\n }\n\n getPendingMessages() {\n return Array.from(this.pendingMessages)\n }\n\n addActiveMessage(message) {\n this.activeMessages.add(message)\n }\n\n removeActiveMessage(message) {\n this.activeMessages.delete(message)\n }\n\n findScopedPendingMessage(action) {\n if (action.isAsync()) return null\n\n let actionScope = scopeSymbolFromAction(action)\n\n return Array.from(this.pendingMessages).find(message => {\n if (message.component !== action.component) return false\n\n // Check if any action in the message has the same scope\n return Array.from(message.actions).some(existingAction =>\n scopeSymbolFromAction(existingAction) === actionScope\n )\n })\n }\n\n activeMessageMatchingScope(action) {\n return Array.from(this.activeMessages).find(message => this.matchesScope(message, action))\n }\n\n matchesScope(message, action) {\n return message.scope === scopeSymbolFromAction(action)\n }\n\n allScopedMessages(action) {\n return [...Array.from(this.activeMessages), ...Array.from(this.pendingMessages)].filter(message => {\n return this.matchesScope(message, action)\n })\n }\n\n eachPendingMessage(callback) {\n Array.from(this.pendingMessages).forEach(callback)\n }\n}", "import { MessageInterceptor } from \"./interceptor\"\n\nexport default class Message {\n actions = new Set()\n snapshot = null\n updates = null\n calls = null\n payload = null\n responsePayload = null\n pendingReturns = []\n pendingReturnsMeta = {}\n interceptors = []\n cancelled = false\n skipped = false\n request = null\n _scope = null\n\n // Ensure scope isn't accessed until it's been set...\n get scope() {\n if (! this._scope) {\n throw new Error('Message scope has not been set yet')\n }\n\n return this._scope\n }\n\n set scope(scope) {\n this._scope = scope\n }\n\n constructor(component) {\n this.component = component\n }\n\n addAction(action) {\n let actionsByFingerprint = new Map()\n\n Array.from(this.actions).forEach(action => {\n actionsByFingerprint.set(action.fingerprint, action)\n })\n\n if (actionsByFingerprint.has(action.fingerprint)) {\n actionsByFingerprint.get(action.fingerprint).addSquashedAction(action)\n\n return\n }\n\n action.message = this\n this.actions.add(action)\n }\n\n removeAction(action) {\n this.actions.delete(action)\n action.message = null\n\n // If no actions remain, cancel the message\n if (this.actions.size === 0) {\n this.cancel()\n }\n }\n\n getActions() {\n return Array.from(this.actions)\n }\n\n hasActionForIsland(island) {\n return this.getActions().some(action => {\n return action.metadata.island?.name === island.metadata.name\n })\n }\n\n hasActionForComponent() {\n return this.getActions().some(action => {\n return action.metadata.island === undefined\n })\n }\n\n setInterceptors(interceptors) {\n this.interceptors = interceptors\n }\n\n addInterceptor(callback) {\n let interceptor = new MessageInterceptor(this, callback)\n\n this.interceptors.push(interceptor)\n\n interceptor.init()\n }\n\n setRequest(request) {\n this.request = request\n }\n\n getInterceptors() {\n return this.interceptors\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.invokeOnCancel()\n\n if (this.request?.hasAllCancelledMessages()) {\n this.request.cancel()\n }\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n markSkipped() {\n this.skipped = true\n }\n\n isSkipped() {\n return this.skipped\n }\n\n isAsync() {\n return Array.from(this.actions).every(action => action.isAsync())\n }\n\n /**\n * Lifecycle methods...\n */\n\n invokeOnSend() {\n this.interceptors.forEach(interceptor => interceptor.onSend({\n payload: this.payload\n }))\n\n // Invoke action-level onSend callbacks\n Array.from(this.actions).forEach((action, index) => {\n let call = this.calls[index]\n action.invokeOnSend({ call })\n })\n }\n\n invokeOnCancel() {\n this.interceptors.forEach(interceptor => interceptor.onCancel())\n\n this.rejectActionPromises({ status: null, body: null, json: null, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnFailure(error) {\n this.interceptors.forEach(interceptor => interceptor.onFailure({ error }))\n\n // Invoke action-level onFailure callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFailure({ error }))\n\n this.rejectActionPromises({ status: null, body: null, json: null, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onError({\n response,\n body,\n preventDefault\n }))\n\n // Invoke action-level onError callbacks\n Array.from(this.actions).forEach(action => action.invokeOnError({ response, body, preventDefault }))\n\n // Try to parse body as JSON for the rejection payload\n let json = null\n try { json = JSON.parse(body) } catch (e) {}\n\n this.rejectActionPromises({ status: response.status, body, json, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnStream({ json }) {\n this.interceptors.forEach(interceptor => interceptor.onStream({ json }))\n }\n\n invokeOnSuccess() {\n this.interceptors.forEach(interceptor => {\n interceptor.onSuccess({\n payload: this.responsePayload,\n onSync: callback => interceptor.onSync = callback,\n onEffect: callback => interceptor.onEffect = callback,\n onMorph: callback => interceptor.onMorph = callback,\n onRender: callback => interceptor.onRender = callback\n })\n })\n\n // Store returns for later resolution (after morph)\n this.pendingReturns = this.responsePayload.effects['returns'] || []\n this.pendingReturnsMeta = this.responsePayload.effects['returnsMeta'] || {}\n }\n\n invokeOnSync() {\n this.interceptors.forEach(interceptor => interceptor.onSync())\n }\n\n invokeOnEffect() {\n this.interceptors.forEach(interceptor => interceptor.onEffect())\n }\n\n async invokeOnMorph() {\n await Promise.all(\n this.interceptors.map(interceptor => interceptor.onMorph())\n )\n }\n\n invokeOnRender() {\n this.interceptors.forEach(interceptor => interceptor.onRender())\n }\n\n invokeOnFinish() {\n this.interceptors.forEach(interceptor => interceptor.onFinish())\n }\n\n invokeOnSkipped() {\n this.interceptors.forEach(interceptor => interceptor.onSkipped())\n\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n }\n\n rejectActionPromises({ status, body, json, errors }) {\n Array.from(this.actions).forEach(action => {\n action.rejectPromise({ status, body, json, errors })\n })\n }\n\n resolveActionPromises(returns, returnsMeta) {\n let resolvedActions = new Set()\n\n returns.forEach((value, index) => {\n let action = Array.from(this.actions)[index]\n\n if (! action) return;\n\n // Check for errors in returnsMeta\n let meta = returnsMeta[index]\n if (meta?.errors) {\n action.rejectPromise({ status: 422, body: null, json: null, errors: meta.errors })\n action.invokeOnFinish()\n resolvedActions.add(action)\n return\n }\n\n if (meta?.status) {\n action.rejectPromise({ status: meta.status, body: null, json: null, errors: null })\n action.invokeOnFinish()\n resolvedActions.add(action)\n return\n }\n\n // Invoke action-level onSuccess callback with the return value\n action.invokeOnSuccess(value)\n\n action.resolvePromise(value)\n\n // Invoke action-level onFinish callback\n action.invokeOnFinish()\n\n resolvedActions.add(action)\n })\n\n Array.from(this.actions).forEach(action => {\n if (resolvedActions.has(action)) return\n\n // Invoke action-level onSuccess callback (undefined return)\n action.invokeOnSuccess(undefined)\n\n action.resolvePromise()\n\n // Invoke action-level onFinish callback\n action.invokeOnFinish()\n })\n }\n}\n", "\nexport default class Action {\n squashedActions = new Set()\n\n // Interceptor callbacks\n onSendCallbacks = []\n onCancelCallbacks = []\n onSuccessCallbacks = []\n onErrorCallbacks = []\n onFailureCallbacks = []\n onFinishCallbacks = []\n\n // Reference to the message this action belongs to (set by message.addAction)\n message = null\n cancelled = false\n deferred = false\n\n // Set by constructAction() to avoid circular dependency\n _fire = null\n\n constructor(component, name, params = [], metadata = {}, origin = null) {\n this.component = component\n this.name = name\n this.params = params\n this.metadata = metadata\n this.origin = origin\n\n this.promise = new Promise((resolve, reject) => {\n this.promiseResolution = { resolve, reject }\n })\n\n this.promise._livewireAction = this\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.invokeOnCancel()\n this.invokeOnFinish()\n this.rejectPromise({ status: null, body: null, json: null, errors: null })\n\n // Also cancel squashed actions\n this.squashedActions.forEach(action => action.cancel())\n\n // Remove from message if attached\n if (this.message) {\n this.message.removeAction(this)\n }\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n defer() {\n this.deferred = true\n }\n\n isDeferred() {\n return this.deferred\n }\n\n fire() {\n if (this._fire) {\n this._fire(this)\n }\n }\n\n get fingerprint() {\n let componentId = this.component.id\n let name = this.name\n let params = JSON.stringify(this.params)\n let metadata = JSON.stringify(this.metadata)\n\n // btoa only supports Latin-1 characters, not UTF-8, so we need to encode the string first...\n let bytes = new TextEncoder().encode(componentId + name + params + metadata)\n\n // Process in chunks to avoid \"Maximum call stack size exceeded\" with large payloads\n // (e.g., 300KB+ base64 images). The spread operator in String.fromCharCode(...array)\n // fails when array length exceeds JS engine's argument limit (~125k elements).\n let binary = ''\n let chunkSize = 8192\n for (let i = 0; i < bytes.length; i += chunkSize) {\n binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize))\n }\n\n return window.btoa(binary)\n }\n\n isAsync() {\n let asyncMethods = this.component.snapshot.memo?.async || []\n\n let methodIsMarkedAsync = asyncMethods.includes(this.name)\n\n let actionIsAsync = this.origin?.directive?.modifiers.includes('async') || (!! this.metadata.async)\n\n return methodIsMarkedAsync || actionIsAsync\n }\n\n isJson() {\n let jsonMethods = this.component.snapshot.memo?.json || []\n\n return jsonMethods.includes(this.name)\n }\n\n addInterceptor(callback) {\n callback({\n action: this,\n onSend: (cb) => this.onSendCallbacks.push(cb),\n onCancel: (cb) => this.onCancelCallbacks.push(cb),\n onSuccess: (cb) => this.onSuccessCallbacks.push(cb),\n onError: (cb) => this.onErrorCallbacks.push(cb),\n onFailure: (cb) => this.onFailureCallbacks.push(cb),\n onFinish: (cb) => this.onFinishCallbacks.push(cb),\n })\n }\n\n // Lifecycle invocations\n invokeOnSend({ call }) {\n this.onSendCallbacks.forEach(cb => cb({ call }))\n this.squashedActions.forEach(action => action.invokeOnSend({ call }))\n }\n\n invokeOnCancel() {\n this.onCancelCallbacks.forEach(cb => cb())\n this.squashedActions.forEach(action => action.invokeOnCancel())\n }\n\n invokeOnSuccess(result) {\n this.onSuccessCallbacks.forEach(cb => cb(result))\n this.squashedActions.forEach(action => action.invokeOnSuccess(result))\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.onErrorCallbacks.forEach(cb => cb({ response, body, preventDefault }))\n this.squashedActions.forEach(action => action.invokeOnError({ response, body, preventDefault }))\n }\n\n invokeOnFailure({ error }) {\n this.onFailureCallbacks.forEach(cb => cb({ error }))\n this.squashedActions.forEach(action => action.invokeOnFailure({ error }))\n }\n\n invokeOnFinish() {\n this.onFinishCallbacks.forEach(cb => cb())\n this.squashedActions.forEach(action => action.invokeOnFinish())\n }\n\n mergeMetadata(metadata) {\n this.metadata = { ...this.metadata, ...metadata }\n }\n\n rejectPromise(error) {\n this.squashedActions.forEach(action => action.rejectPromise(error))\n\n this.promiseResolution.reject(error)\n }\n\n addSquashedAction(action) {\n this.squashedActions.add(action)\n }\n\n resolvePromise(value) {\n this.squashedActions.forEach(action => action.resolvePromise(value))\n this.promiseResolution.resolve(value)\n }\n}\n", "import { trigger } from '@/hooks.js'\n\nexport function registerLegacyEventSupport(interceptRequest, interceptMessage) {\n\n// Support legacy 'request' event...\ninterceptRequest(({\n request,\n onFailure,\n onResponse,\n onError,\n onSuccess,\n}) => {\n let respondCallbacks = []\n let succeedCallbacks = []\n let failCallbacks = []\n\n trigger('request', {\n url: request.uri,\n options: request.options,\n payload: request.options.body,\n respond: i => respondCallbacks.push(i),\n succeed: i => succeedCallbacks.push(i),\n fail: i => failCallbacks.push(i),\n })\n\n onResponse(({ response }) => {\n respondCallbacks.forEach(callback => callback({\n status: response.status,\n response,\n }))\n })\n\n onSuccess(({ response, json }) => {\n succeedCallbacks.forEach(callback => callback({\n status: response.status,\n json,\n }))\n })\n\n onFailure(({ error }) => {\n failCallbacks.forEach(callback => callback({\n status: 503,\n content: null,\n preventDefault: () => {},\n }))\n })\n\n onError(({ response, body, preventDefault }) => {\n failCallbacks.forEach(callback => callback({\n status: response.status,\n content: body,\n preventDefault,\n }))\n })\n})\n\n// Support legacy 'commit' event...\ninterceptMessage(({\n message,\n onCancel,\n onError,\n onSuccess,\n onFinish,\n}) => {\n // Allow other areas of the codebase to hook into the lifecycle\n // of an individual commit...\n let respondCallbacks = []\n let succeedCallbacks = []\n let failCallbacks = []\n\n trigger('commit', {\n component: message.component,\n commit: message.payload,\n respond: (callback) => {\n respondCallbacks.push(callback)\n },\n succeed: (callback) => {\n succeedCallbacks.push(callback)\n },\n fail: (callback) => {\n failCallbacks.push(callback)\n },\n })\n\n onFinish(() => {\n respondCallbacks.forEach(callback => callback())\n })\n\n onSuccess(({ payload, onSync, onMorph, onRender }) => {\n onRender(() => {\n succeedCallbacks.forEach(callback => callback({\n snapshot: payload.snapshot,\n effects: payload.effects,\n }))\n })\n })\n\n onError(() => {\n failCallbacks.forEach(callback => callback())\n })\n\n onCancel(() => {\n failCallbacks.forEach(callback => callback())\n })\n})\n\n}\n", "import { getCsrfToken, contentIsFromDump, splitDumpFromContent, getUpdateUri } from '@/utils'\nimport { coordinateNetworkInteractions } from './interactions.js'\nimport { MessageRequest, PageRequest } from './request.js'\nimport { InterceptorRegistry } from './interceptor.js'\nimport { trigger, triggerAsync } from '@/hooks.js'\nimport { showHtmlModal } from '@/utils/modal.js'\nimport { MessageBus, scopeSymbolFromMessage } from './messageBus.js'\nimport Message from './message.js'\nimport Action from './action.js'\n\nlet outstandingActionOrigin = null\nlet outstandingActionMetadata = {}\nlet outstandingActionInterceptors = []\nlet interceptors = new InterceptorRegistry\nlet messageBus = new MessageBus()\nlet actionInterceptors = []\nlet partitionInterceptors = []\nlet sessionExpired = false\n\nexport function sessionIsExpired() {\n return sessionExpired\n}\n\nexport function setNextActionOrigin(origin) {\n outstandingActionOrigin = origin\n}\n\nexport function setNextActionMetadata(metadata) {\n outstandingActionMetadata = metadata\n}\n\nexport function setNextActionInterceptor(callback) {\n outstandingActionInterceptors.push(callback)\n}\n\nexport function interceptAction(callback) {\n actionInterceptors.push(callback)\n\n return () => {\n actionInterceptors.splice(actionInterceptors.indexOf(callback), 1)\n }\n}\n\nexport function interceptMessage(callback) {\n return interceptors.addMessageInterceptor(callback)\n}\n\nexport function interceptRequest(callback) {\n return interceptors.addRequestInterceptor(callback)\n}\n\nexport function interceptPartition(callback) {\n partitionInterceptors.push(callback)\n\n return () => {\n partitionInterceptors.splice(partitionInterceptors.indexOf(callback), 1)\n }\n}\n\n// Component-scoped interceptors...\n\nexport function interceptComponentAction(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptAction(({ action, ...rest }) => {\n if (action.component !== component) return\n if (actionName && action.name !== actionName) return\n\n callback({ action, ...rest })\n })\n}\n\nexport function interceptComponentMessage(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptors.addInterceptor(component, ({ message, ...rest }) => {\n if (actionName) {\n let hasAction = Array.from(message.actions).some(a => a.name === actionName)\n\n if (! hasAction) return\n }\n\n callback({ message, ...rest })\n })\n}\n\nexport function interceptComponentRequest(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptRequest(({ request, ...rest }) => {\n let matchingMessages = Array.from(request.messages).filter(m => {\n if (m.component !== component) return false\n\n if (actionName) {\n return Array.from(m.actions).some(a => a.name === actionName)\n }\n\n return true\n })\n\n if (matchingMessages.length === 0) return\n\n callback({ request, ...rest })\n })\n}\n\ninterceptMessage(({ message, onFinish }) => {\n messageBus.addActiveMessage(message)\n\n onFinish(() => messageBus.removeActiveMessage(message))\n})\n\n// Ensure that other parts of the codebase are able to intercept actions before the default handling...\nqueueMicrotask(() => {\n coordinateNetworkInteractions(messageBus)\n})\n\nexport function fireAction(component, method, params = [], metadata = {}) {\n if (component.__isWireProxy) component = component.__instance\n\n let action = constructAction(component, method, params, metadata)\n\n actionInterceptors.forEach(callback => {\n callback({\n action,\n onSend: (cb) => action.onSendCallbacks.push(cb),\n onCancel: (cb) => action.onCancelCallbacks.push(cb),\n onSuccess: (cb) => action.onSuccessCallbacks.push(cb),\n onError: (cb) => action.onErrorCallbacks.push(cb),\n onFailure: (cb) => action.onFailureCallbacks.push(cb),\n onFinish: (cb) => action.onFinishCallbacks.push(cb),\n })\n })\n\n if (action.isCancelled() || action.isDeferred()) return action.promise\n\n return fireActionInstance(action)\n}\n\nexport function constructAction(component, method, params, metadata) {\n let origin = outstandingActionOrigin\n let pendingInterceptors = outstandingActionInterceptors\n\n outstandingActionOrigin = null\n outstandingActionInterceptors = []\n\n metadata = {\n ...metadata,\n ...outstandingActionMetadata,\n }\n\n outstandingActionMetadata = {}\n\n let action = new Action(component, method, params, metadata, origin)\n\n // Set fire function to avoid circular dependency\n action._fire = fireActionInstance\n\n // Attach any per-action interceptors (from event.detail.livewire.interceptAction)\n pendingInterceptors.forEach(callback => action.addInterceptor(callback))\n\n return action\n}\n\nexport function fireActionInstance(action) {\n let message = createOrAddToOutstandingMessage(action)\n\n messageBus.messageBuffer(message, () => {\n sendMessages()\n })\n\n return action.promise\n}\n\nexport function createOrAddToOutstandingMessage(action) {\n let message = messageBus.findScopedPendingMessage(action)\n\n if (! message) message = new Message(action.component)\n\n message.addAction(action)\n\n messageBus.addPendingMessage(message)\n\n return message\n}\n\nfunction sendMessages() {\n let requests = new Set()\n\n messageBus.eachPendingMessage(message => {\n partitionInterceptors.forEach(callback => {\n callback({\n message,\n compileRequest: (messages) => {\n // When multiple components in a hierarchy listen to the same event and one\n // has a modelable child, the partition interceptor may try to bundle the\n // same child message into multiple requests. For example: Parent and Child\n // both listen to 'foo', and Child has a modelable grandchild. Parent's\n // interceptor bundles [Parent, Grandchild] into Request 1. Then Child's\n // interceptor tries to bundle [Child, Grandchild], but Grandchild is already\n // in Request 1. Rather than throwing an error, we merge Child into Request 1\n // so all related components are sent together, maintaining data consistency.\n let existingRequest = Array.from(requests).find(request =>\n messages.some(message => request.messages.has(message))\n )\n\n if (existingRequest) {\n // Add any new messages to the existing request\n messages.forEach(message => {\n if (!existingRequest.messages.has(message)) {\n existingRequest.addMessage(message)\n }\n })\n return existingRequest\n }\n\n // No overlap, create a new request\n let request = new MessageRequest()\n\n messages.forEach(message => request.addMessage(message))\n\n requests.add(request)\n\n return request\n },\n })\n })\n })\n\n let messages = messageBus.getPendingMessages()\n\n messageBus.clearPendingMessages()\n\n for (let message of messages) {\n if (Array.from(requests).some(request => request.messages.has(message))) {\n continue\n }\n\n let hasFoundRequest = false\n\n requests.forEach(request => {\n if (! hasFoundRequest) {\n // Don't add to a request that already has a message for the same component\n let hasMessageForSameComponent = Array.from(request.messages).some(m => m.component === message.component)\n\n if (hasMessageForSameComponent) return\n\n request.addMessage(message)\n\n hasFoundRequest = true\n }\n })\n\n if (! hasFoundRequest) {\n let request = new MessageRequest()\n\n request.addMessage(message)\n\n requests.add(request)\n }\n }\n\n requests.forEach(request => {\n request.messages.forEach(message => {\n message.snapshot = message.component.getEncodedSnapshotWithLatestChildrenMergedIn()\n message.updates = message.component.getUpdates()\n message.calls = Array.from(message.actions).map(i => ({\n method: i.name,\n params: i.params,\n metadata: i.metadata,\n }))\n\n message.payload = {\n snapshot: message.snapshot,\n updates: message.updates,\n calls: message.calls,\n }\n })\n })\n\n // Assign scope symbols to messages...\n requests.forEach(request => {\n request.messages.forEach(message => {\n message.scope = scopeSymbolFromMessage(message)\n })\n })\n\n requests.forEach(request => {\n request.uri = getUpdateUri()\n\n Object.defineProperty(request, 'payload', {\n get() {\n return {\n _token: getCsrfToken(),\n components: Array.from(request.messages, i => i.payload)\n }\n }\n })\n\n let cachedOptions = null\n\n Object.defineProperty(request, 'options', {\n get() {\n if (cachedOptions) return cachedOptions\n\n cachedOptions = {\n method: 'POST',\n body: JSON.stringify(request.payload),\n headers: {\n 'Content-type': 'application/json',\n 'X-Livewire': '1', // This '1' value means nothing, but it stops Cloudflare from stripping the header...\n },\n signal: request.controller.signal,\n }\n\n return cachedOptions\n }\n })\n })\n\n requests.forEach(request => {\n request.initInterceptors(interceptors)\n\n if (request.hasAllCancelledMessages()) {\n request.cancel()\n }\n\n sendRequest(request, {\n send: ({ responsePromise }) => {\n request.invokeOnSend({ responsePromise })\n },\n failure: ({ error }) => {\n request.invokeOnFailure({ error })\n },\n finish: () => {\n request.invokeOnFinish()\n },\n response: ({ response }) => {\n request.invokeOnResponse({ response })\n },\n stream: async ({ response }) => {\n request.invokeOnStream({ response })\n\n let finalResponse = ''\n\n try {\n finalResponse = await interceptStreamAndReturnFinalResponse(response, json => {\n let componentId = json.id\n\n request.messages.forEach(message => {\n if (message.component.id === componentId) {\n message.invokeOnStream({ json })\n }\n })\n\n trigger('stream', json)\n })\n } catch (e) {\n request.cancel()\n\n throw e\n }\n\n return finalResponse\n },\n parsed: ({ response, responseBody }) => {\n request.invokeOnParsed({ response, body: responseBody })\n },\n error: ({ response, responseBody }) => {\n let preventDefault = false\n\n request.invokeOnError({ response, body: responseBody, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n if (response.status === 419) {\n if (sessionExpired) return\n\n sessionExpired = true\n\n confirm(\n 'This page has expired.\\nWould you like to refresh the page?'\n ) && window.location.reload()\n\n return\n }\n\n if (response.aborted) return\n\n showHtmlModal(responseBody)\n },\n redirect: (url) => {\n let preventDefault = false\n\n request.invokeOnRedirect({ url, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n window.location.href = url\n },\n dump: (html) => {\n let preventDefault = false\n\n request.invokeOnDump({ html, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n showHtmlModal(html)\n },\n success: async ({ response, responseBody, responseJson }) => {\n request.invokeOnSuccess({ response, body: responseBody, json: responseJson })\n\n await triggerAsync('payload.intercept', responseJson)\n\n let messageResponsePayloads = responseJson.components\n\n request.messages.forEach(message => {\n messageResponsePayloads.forEach(payload => {\n if (message.isCancelled()) return\n\n // Server skipped this child (unchanged reactive props)...\n if (payload.skip) {\n if (payload.id === message.component.id) {\n message.responsePayload = payload\n message.markSkipped()\n message.invokeOnSkipped()\n message.resolveActionPromises([], [])\n message.invokeOnFinish()\n }\n\n return\n }\n\n let { snapshot: snapshotEncoded, effects } = payload\n let snapshot = JSON.parse(snapshotEncoded)\n\n if (snapshot.memo.id === message.component.id) {\n message.responsePayload = { snapshot, effects }\n\n message.invokeOnSuccess()\n if (message.isCancelled()) return\n\n // Use Alpine.transaction to batch data updates and DOM morphing\n // This prevents effects from firing before the morph cleanup runs\n Alpine.transaction(async () => {\n message.component.mergeNewSnapshot(snapshotEncoded, effects, message.updates)\n\n message.invokeOnSync()\n if (message.isCancelled()) return\n\n // Trigger any side effects from the payload like \"morph\" and \"dispatch event\"...\n message.component.processEffects(effects, request)\n\n message.invokeOnEffect()\n if (message.isCancelled()) return\n\n await message.invokeOnMorph()\n }).then(() => {\n // Resolve promises & finish AFTER morph completes\n if (! message.isCancelled()) {\n message.resolveActionPromises(\n message.pendingReturns,\n message.pendingReturnsMeta\n )\n message.invokeOnFinish()\n }\n\n requestAnimationFrame(() => {\n if (message.isCancelled()) return\n\n message.invokeOnRender()\n })\n })\n }\n })\n })\n },\n })\n })\n}\n\nasync function sendRequest(request, handlers) {\n let response\n\n try {\n if (request.isCancelled()) return\n\n let responsePromise = fetch(request.uri, request.options)\n\n if (request.isCancelled()) return\n handlers.send({ responsePromise })\n\n response = await responsePromise\n } catch (e) {\n if (request.isCancelled()) return\n\n handlers.failure({ error: e })\n handlers.finish()\n\n return\n }\n\n handlers.response({ response })\n\n let responseBody = null\n\n if (response.headers.has('X-Livewire-Stream')) {\n responseBody = await handlers.stream({ response })\n } else {\n responseBody = await response.text()\n }\n\n if (request.isCancelled()) return\n\n handlers.parsed({ response, responseBody })\n\n // Handle error response...\n if (! response.ok) {\n handlers.error({ response, responseBody })\n handlers.finish()\n\n return\n }\n\n if (response.redirected) {\n handlers.redirect(response.url)\n }\n\n /**\n * Sometimes a response will be prepended with html to render a dump, so we\n * will separate the dump html from Livewire's JSON response content and\n * render the dump in a modal and allow Livewire to continue with the\n * request.\n */\n if (contentIsFromDump(responseBody)) {\n let dump\n\n [dump, responseBody] = splitDumpFromContent(responseBody)\n\n handlers.dump(dump)\n }\n\n let responseJson = null\n\n try {\n responseJson = JSON.parse(responseBody)\n } catch (e) {\n console.error(e)\n\n // When a stream is started, the headers are already sent,\n // so if an error occurs, the responseBody won't be JSON,\n // and we can treat it like an error response...\n handlers.error({ response, responseBody })\n handlers.finish()\n\n return\n }\n\n handlers.success({ response, responseBody, responseJson })\n handlers.finish()\n}\n\nasync function interceptStreamAndReturnFinalResponse(response, callback) {\n let reader = response.body.getReader()\n let remainingResponse = ''\n\n while (true) {\n let { done, value: chunk } = await reader.read()\n\n let decoder = new TextDecoder\n let output = decoder.decode(chunk)\n\n let [ streams, remaining ] = extractStreamObjects(remainingResponse + output)\n\n streams.forEach(stream => {\n callback(stream)\n })\n\n remainingResponse = remaining\n\n if (done) return remainingResponse\n }\n}\n\nfunction extractStreamObjects(raw) {\n let regex = /({\"stream\":true.*?\"endStream\":true})/g\n\n let matches = raw.match(regex)\n\n let parsed = []\n\n if (matches) {\n for (let i = 0; i < matches.length; i++) {\n parsed.push(JSON.parse(matches[i]).body)\n }\n }\n\n let remaining = raw.replace(regex, '');\n\n return [ parsed, remaining ];\n}\n\nexport async function sendNavigateRequest(uri, callback, errorCallback) {\n let request = new PageRequest(uri)\n\n let options = {\n // method: 'GET',\n headers: {\n 'X-Livewire-Navigate': '1', // This '1' value means nothing, but it stops Cloudflare from stripping the header...\n },\n signal: request.controller.signal,\n }\n\n trigger('navigate.request', {\n uri,\n options,\n })\n\n let response\n\n try {\n response = await fetch(uri, options)\n\n let destination = getDestination(uri, response)\n\n let html = await response.text()\n\n let status = response.status\n\n callback(html, destination, status)\n } catch (error) {\n errorCallback(error)\n\n throw error\n }\n}\n\nfunction getDestination(uri, response) {\n let destination = createUrlObjectFromString(uri)\n let finalDestination = createUrlObjectFromString(response.url)\n\n // If there was no redirect triggered by the URL that was fetched...\n if ((destination.pathname + destination.search) === (finalDestination.pathname + finalDestination.search)) {\n // Then let's carry over any \"hash\" entries on the URL.\n // We have to do this because hashes aren't sent to\n // the server by \"fetch\", so it needs to get added\n finalDestination.hash = destination.hash\n }\n\n return finalDestination\n}\n\nfunction createUrlObjectFromString(urlString) {\n return urlString !== null && new URL(urlString, document.baseURI)\n}\n\n// Load legacy event support ('request' and 'commit' events)\nimport { registerLegacyEventSupport } from './legacy.js'\nregisterLegacyEventSupport(interceptRequest, interceptMessage)\n", "// This errors object has the most common methods from \\Illuminate\\Support\\MessageBag class on the backend...\nimport Alpine from 'alpinejs'\n\nexport function getErrorsObject(component) {\n let state = component.__errorsState ??= Alpine.reactive({\n clientErrors: null,\n })\n\n // Store lastSnapshot outside reactive state to avoid Proxy wrapping breaking identity comparison...\n component.__lastErrorsSnapshot ??= component.snapshot\n\n return {\n messages() {\n // If the snapshot changed (server responded), reset client overrides...\n if (component.__lastErrorsSnapshot !== component.snapshot) {\n state.clientErrors = null\n component.__lastErrorsSnapshot = component.snapshot\n }\n\n // Assign into reactive state so Alpine can track changes...\n return state.clientErrors ??= component.snapshot.memo.errors\n },\n\n keys() {\n return Object.keys(this.messages())\n },\n\n has(...keys) {\n if (this.isEmpty()) return false\n\n if (keys.length === 0 || (keys.length === 1 && keys[0] == null)) return this.any()\n\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n for (let key of keys) {\n if (this.first(key) === '') return false\n }\n\n return true\n },\n\n hasAny(keys) {\n if (this.isEmpty()) return false\n\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n for (let key of keys) {\n if (this.has(key)) return true\n }\n\n return false\n },\n\n missing(...keys) {\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n return ! this.hasAny(keys)\n },\n\n first(key = null) {\n let messages = key === null ? this.all() : this.get(key)\n\n let firstMessage = messages.length > 0 ? messages[0] : ''\n\n return Array.isArray(firstMessage) ? firstMessage[0] : firstMessage\n },\n\n get(key) {\n return this.messages()[key] || []\n },\n\n all() {\n return Object.values(this.messages()).flat()\n },\n\n isEmpty() {\n return ! this.any()\n },\n\n isNotEmpty() {\n return this.any()\n },\n\n any() {\n return Object.keys(this.messages()).length > 0\n },\n\n count() {\n return Object.values(this.messages()).reduce((total, array) => {\n return total + array.length;\n }, 0);\n },\n\n clear(field = null) {\n if (field === null) {\n state.clientErrors = {}\n } else {\n let errors = { ...(state.clientErrors ?? component.snapshot.memo.errors) }\n delete errors[field]\n state.clientErrors = errors\n }\n },\n }\n}\n", "\nexport function findRefEl(component, name) {\n let refEl = component.el.querySelector(`[wire\\\\:ref=\"${name}\"]`)\n\n if (! refEl) return console.error(`Ref \"${name}\" not found in component \"${component.id}\"`)\n\n return refEl\n}\n", "import { on } from './hooks'\n\nlet customDirectiveNames = new Set\n\nexport function matchesForLivewireDirective(attributeName) {\n return attributeName.match(new RegExp('wire:'))\n}\n\nexport function extractDirective(el, name) {\n let [value, ...modifiers] = name.replace(new RegExp('wire:'), '').split('.')\n\n return new Directive(value, modifiers, name, el)\n}\n\nexport function directive(name, callback) {\n // Prevent the same directive from registering multiple initialization listeners...\n if (customDirectiveNames.has(name)) return\n\n customDirectiveNames.add(name)\n\n on('directive.init', ({ el, component, directive, cleanup }) => {\n if (directive.value === name) {\n callback({\n el, directive, component, $wire: component.$wire, cleanup\n })\n }\n })\n}\n\nexport function globalDirective(name, callback) {\n // Prevent the same directive from registering multiple initialization listeners...\n if (customDirectiveNames.has(name)) return\n\n customDirectiveNames.add(name)\n\n on('directive.global.init', ({ el, directive, cleanup }) => {\n if (directive.value === name) {\n callback({ el, directive, cleanup })\n }\n })\n}\n\nexport function getDirectives(el) {\n return new DirectiveManager(el)\n}\n\nexport function customDirectiveHasBeenRegistered(name) {\n return customDirectiveNames.has(name)\n}\n\nclass DirectiveManager {\n constructor(el) {\n this.el = el\n this.directives = this.extractTypeModifiersAndValue()\n }\n\n all() {\n return this.directives\n }\n\n has(value) {\n return this.directives.map(directive => directive.value).includes(value)\n }\n\n missing(value) {\n return ! this.has(value)\n }\n\n get(value) {\n return this.directives.find(directive => directive.value === value)\n }\n\n extractTypeModifiersAndValue() {\n return Array.from(this.el.getAttributeNames()\n // Filter only the livewire directives.\n .filter(name => matchesForLivewireDirective(name))\n // Parse out the type, modifiers, and value from it.\n .map(name => extractDirective(this.el, name)))\n }\n}\n\nexport class Directive {\n constructor(value, modifiers, rawName, el) {\n this.rawName = this.raw = rawName\n this.el = el\n this.eventContext\n this.wire\n\n this.value = value\n this.modifiers = modifiers\n this.expression = this.el.getAttribute(this.rawName)\n }\n\n get method() {\n const methods = this.parseOutMethodsAndParams(this.expression)\n\n return methods[0].method\n }\n\n get methods() {\n return this.parseOutMethodsAndParams(this.expression)\n }\n\n get params() {\n const methods = this.parseOutMethodsAndParams(this.expression)\n\n return methods[0].params\n }\n\n parseOutMethodsAndParams(rawMethod) {\n let methods = []\n\n // Split methods string into individual methods and their parameters\n let parsedMethods = this.splitAndParseMethods(rawMethod)\n\n // Evaluate parameters for each method and build the methods array\n for (let { method, paramString } of parsedMethods) {\n let params = []\n\n if (paramString.length > 0) {\n function argumentsToArray() {\n for (var l=arguments.length, p=new Array(l), k=0; k<l; k++) {\n p[k] = arguments[k]\n }\n return [].concat(p)\n }\n\n try {\n params = Alpine.evaluate(\n document,\n 'argumentsToArray(' + paramString + ')',\n {\n scope: { argumentsToArray },\n },\n )\n } catch (error) {\n console.warn('Failed to parse parameters:', paramString, error)\n params = []\n }\n }\n\n methods.push({ method, params })\n }\n\n return methods\n }\n\n splitAndParseMethods(methodExpression) {\n let methods = []\n let current = ''\n let parenCount = 0\n let inString = false\n let stringChar = null\n\n let trimmedExpression = methodExpression.trim()\n\n // Parse the expression character by character, splitting on commas only at the top level\n // This handles nested parentheses and strings correctly: foo(bar(1,2), 'hello, world')\n for (let i = 0; i < trimmedExpression.length; i++) {\n let char = trimmedExpression[i]\n\n if (!inString) {\n if (char === '\"' || char === \"'\") {\n inString = true\n stringChar = char\n current += char\n } else if (char === '(') {\n parenCount++\n current += char\n } else if (char === ')') {\n parenCount--\n current += char\n } else if (char === ',' && parenCount === 0) {\n // Found a comma at the top level - parse and add this method\n methods.push(this.parseMethodCall(current.trim()))\n current = ''\n } else {\n current += char\n }\n } else {\n // Inside a string - only exit on matching quote that's not escaped\n if (char === stringChar && trimmedExpression[i-1] !== '\\\\') {\n inString = false\n stringChar = null\n }\n current += char\n }\n }\n\n // Add the last method if there's anything left\n if (current.trim().length > 0) {\n methods.push(this.parseMethodCall(current.trim()))\n }\n\n return methods\n }\n\n parseMethodCall(methodString) {\n // Find the method name - everything before the first opening parenthesis\n let methodMatch = methodString.match(/^([^(]+)\\(/)\n if (!methodMatch) {\n // No parentheses found, treat as method with no params\n return {\n method: methodString.trim(),\n paramString: ''\n }\n }\n\n let method = methodMatch[1].trim()\n let paramStart = methodMatch[0].length - 1 // Position of opening parenthesis\n\n // Since splitAndParseMethods already validated balanced parentheses,\n // we can safely find the last closing parenthesis in the string\n let lastParenIndex = methodString.lastIndexOf(')')\n if (lastParenIndex === -1) {\n throw new Error(`Missing closing parenthesis for method \"${method}\"`)\n }\n\n let paramString = methodString.slice(paramStart + 1, lastParenIndex).trim()\n\n return {\n method,\n paramString\n }\n }\n}\n", "\nexport function toggleBooleanStateDirective(el, directive, isTruthy, cachedDisplay = null) {\n isTruthy = directive.modifiers.includes('remove') ? ! isTruthy : isTruthy\n\n if (directive.modifiers.includes('class')) {\n let classes = directive.expression.split(' ').filter(String)\n\n if (isTruthy) {\n el.classList.add(...classes)\n } else {\n el.classList.remove(...classes)\n }\n } else if (directive.modifiers.includes('attr')) {\n if (isTruthy) {\n el.setAttribute(directive.expression, true)\n } else {\n el.removeAttribute(directive.expression)\n }\n } else {\n let cache = cachedDisplay ?? window\n .getComputedStyle(el, null)\n .getPropertyValue('display')\n\n let display = (['inline', 'list-item', 'block', 'table', 'flex', 'grid', 'inline-flex']\n .filter(i => directive.modifiers.includes(i))[0] || 'inline-block')\n\n // If element is to be removed, set display to its current value...\n // display = (directive.modifiers.includes('remove') && ! isTruthy)\n display = (directive.modifiers.includes('remove') && ! isTruthy)\n ? cache : display\n\n el.style.display = isTruthy ? display : 'none'\n }\n}\n", "import { directive, getDirectives } from '@/directives'\nimport { toggleBooleanStateDirective } from './shared'\nimport { dataGet, WeakBag } from '@/utils'\nimport { on } from '@/hooks'\n\nlet refreshDirtyStatesByComponent = new WeakBag\n\non('commit', ({ component, succeed }) => {\n succeed(() => {\n setTimeout(() => { // Doing a \"setTimeout\" to let morphdom do its thing first...\n refreshDirtyStatesByComponent.each(component, i => i(false))\n })\n })\n})\n\ndirective('dirty', ({ el, directive, component }) => {\n let targets = dirtyTargets(el)\n\n let oldIsDirty = false\n\n let initialDisplay = el.style.display\n\n let refreshDirtyState = (isDirty) => {\n toggleBooleanStateDirective(el, directive, isDirty, initialDisplay)\n\n oldIsDirty = isDirty\n }\n\n refreshDirtyStatesByComponent.add(component, refreshDirtyState)\n\n Alpine.effect(() => {\n let isDirty = false\n\n isDirty = checkDirty(component, targets.length === 0 ? undefined : targets)\n\n if (oldIsDirty !== isDirty) {\n refreshDirtyState(isDirty)\n }\n\n oldIsDirty = isDirty\n })\n})\n\nexport function checkDirty(component, targets) {\n let isDirty = false\n\n if (targets === undefined) {\n isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive)\n } else if (Array.isArray(targets)) {\n for (let i = 0; i < targets.length; i++) {\n if (isDirty) break;\n\n let target = targets[i]\n\n isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target))\n }\n } else {\n isDirty = JSON.stringify(dataGet(component.canonical, targets)) !== JSON.stringify(dataGet(component.reactive, targets))\n }\n\n return isDirty\n}\n\nfunction dirtyTargets(el) {\n let directives = getDirectives(el)\n let targets = []\n\n if (directives.has('model')) {\n targets.push(directives.get('model').expression)\n }\n\n if (directives.has('target')) {\n targets = targets.concat(\n directives\n .get('target')\n .expression.split(',')\n .map(s => s.trim())\n )\n }\n\n return targets\n}\n", "import { on } from '@/hooks'\nimport { getModuleUrl } from '@/utils'\n\nlet pendingComponentAssets = new WeakMap()\n\non('effect', ({ component, effects }) => {\n let scriptModuleHash = effects.scriptModule\n\n if (scriptModuleHash) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/js/${encodedName}.js?v=${scriptModuleHash}`\n\n pendingComponentAssets.set(component, Alpine.reactive({\n loading: true,\n afterLoaded: [],\n }))\n\n import(/* @vite-ignore */ path).then(module => {\n module.run.call(component.$wire, component.$wire, component.$wire.js);\n\n pendingComponentAssets.get(component).loading = false\n pendingComponentAssets.get(component).afterLoaded.forEach(callback => callback())\n pendingComponentAssets.delete(component)\n });\n }\n})\n\nexport function assetIsPendingFor(component) {\n return pendingComponentAssets.has(component) && pendingComponentAssets.get(component).loading\n}\n\nexport function runAfterAssetIsLoadedFor(component, callback) {\n if (assetIsPendingFor(component)) {\n pendingComponentAssets.get(component).afterLoaded.push(() => callback())\n } else {\n callback()\n }\n}", "import { dataSet, deepClone, diff, diffAndConsolidate, diffAndPatchRecursive, extractData} from '@/utils'\nimport { generateWireObject } from '@/$wire'\nimport { findComponentByEl, findComponent, hasComponent } from '@/store'\nimport { trigger } from '@/hooks'\nimport { setNextActionOrigin } from '@/request'\n\nexport class Component {\n constructor(el) {\n if (el.__livewire) throw 'Component already initialized';\n\n el.__livewire = this\n\n this.el = el\n\n this.id = el.getAttribute('wire:id')\n\n this.key = el.getAttribute('wire:key')\n\n this.__livewireId = this.id // @legacy\n\n this.snapshotEncoded = el.getAttribute('wire:snapshot')\n\n this.snapshot = JSON.parse(this.snapshotEncoded)\n\n if (! this.snapshot) {\n throw `Snapshot missing on Livewire component with id: ` + this.id\n }\n\n this.name = this.snapshot.memo.name\n\n this.effects = JSON.parse(el.getAttribute('wire:effects'))\n this.originalEffects = deepClone(this.effects)\n\n // \"canonical\" data represents the last known server state.\n this.canonical = extractData(deepClone(this.snapshot.data))\n // \"ephemeral\" represents the most current state. (This can be freely manipulated by end users)\n this.ephemeral = extractData(deepClone(this.snapshot.data))\n // \"reactive\" is just ephemeral, except when you mutate it, front-ends like Vue react.\n this.reactive = Alpine.reactive(this.ephemeral)\n\n this.queuedUpdates = {}\n\n this.jsActions = {}\n\n // this.$wire = this.reactive\n this.$wire = generateWireObject(this, this.reactive)\n\n // Set the $wire property on the root element...\n el.$wire = this.$wire\n\n this.cleanups = []\n\n // Effects will be processed after every request, but we'll also handle them on initialization.\n this.processEffects(this.effects)\n }\n\n addActionContext(context) {\n // New system: just set the origin for next action\n if (context.el || context.directive) {\n setNextActionOrigin({\n el: context.el,\n directive: context.directive\n })\n }\n\n // Note: Non-origin metadata should be passed directly to fireAction\n // This method is kept for backwards compatibility but simplified\n }\n\n intercept(action, callback = null) {\n return this.$wire.$intercept(action, callback)\n }\n\n mergeNewSnapshot(snapshotEncoded, effects, updates = {}) {\n let snapshot = JSON.parse(snapshotEncoded)\n\n let oldCanonical = deepClone(this.canonical)\n let updatedOldCanonical = this.applyUpdates(oldCanonical, updates)\n\n let newCanonical = extractData(deepClone(snapshot.data))\n\n let dirty = diff(updatedOldCanonical, newCanonical)\n\n this.snapshotEncoded = snapshotEncoded\n\n this.snapshot = snapshot\n\n this.effects = effects\n\n this.canonical = extractData(deepClone(snapshot.data))\n\n let newData = extractData(deepClone(snapshot.data))\n\n // Diff old vs new and patch differences onto the reactive proxy. Walks\n // the trees directly, avoiding dot-notated paths which break when\n // object keys contain dots.\n diffAndPatchRecursive(updatedOldCanonical, newData, this.reactive)\n\n return dirty\n }\n\n queueUpdate(propertyName, value) {\n // These updates will be applied first on the server\n // on the next request, then trickle back to the\n // client on the next request that gets sent.\n this.queuedUpdates[propertyName] = value\n }\n\n mergeQueuedUpdates(diff) {\n // Before adding queuedUpdates into the diff list, we will remove any diffs\n // that will be overriden by the queued update. Queued updates will take\n // priority against ephemeral updates that have happend since them...\n Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => {\n Object.entries(diff).forEach(([diffKey, diffValue]) => {\n if (diffKey.startsWith(updateKey)) {\n delete diff[diffKey]\n }\n })\n\n diff[updateKey] = updateValue\n })\n\n this.queuedUpdates = []\n\n return diff\n }\n\n getUpdates() {\n let propertiesDiff = diffAndConsolidate(this.canonical, this.ephemeral)\n\n return this.mergeQueuedUpdates(propertiesDiff)\n }\n\n applyUpdates(object, updates) {\n for (let key in updates) {\n dataSet(object, key, updates[key])\n }\n\n return object\n }\n\n replayUpdate(snapshot, html) {\n let effects = { ...this.effects, html}\n\n this.mergeNewSnapshot(JSON.stringify(snapshot), effects)\n\n this.processEffects({ html })\n }\n\n /**\n * Here we'll take the new state and side effects from the\n * server and use them to update the existing data that\n * users interact with, triggering reactive effects.\n */\n processEffects(effects, request) {\n // This is for BC.\n trigger('effects', this, effects)\n\n trigger('effect', {\n component: this,\n effects,\n cleanup: i => this.addCleanup(i),\n request,\n })\n }\n\n get children() {\n let componentEl = this.el\n\n let children = []\n\n componentEl.querySelectorAll('[wire\\\\:id]').forEach(el => {\n let parentComponentEl = el.parentElement.closest('[wire\\\\:id]')\n\n if (parentComponentEl !== componentEl) return\n\n let componentInstance = el.__livewire\n\n if (! componentInstance) return\n\n children.push(componentInstance)\n })\n\n return children\n }\n\n get islands() {\n let islands = this.snapshot.memo.islands\n\n return islands\n }\n\n get parent() {\n return findComponentByEl(this.el.parentElement)\n }\n\n get isIsolated() {\n return this.snapshot.memo.isolate\n }\n\n get isLazy() {\n return this.snapshot.memo.lazyLoaded !== undefined\n }\n\n get hasBeenLazyLoaded() {\n return this.snapshot.memo.lazyLoaded === true\n }\n\n get isLazyIsolated() {\n return !! this.snapshot.memo.lazyIsolated\n }\n\n getDeepChildrenWithBindings(callback) {\n this.getDeepChildren(child => {\n if (child.isLazy && ! child.hasBeenLazyLoaded) return\n\n if (child.hasReactiveProps() || child.hasWireModelableBindings()) {\n callback(child)\n }\n })\n }\n\n hasReactiveProps() {\n let meta = this.snapshot.memo\n let props = meta.props\n\n return !! props\n }\n\n hasWireModelableBindings() {\n let meta = this.snapshot.memo\n let bindings = meta.bindings\n\n return !! bindings\n }\n\n getDeepChildren(callback) {\n this.children.forEach(child => {\n callback(child)\n\n child.getDeepChildren(callback)\n })\n }\n\n getEncodedSnapshotWithLatestChildrenMergedIn() {\n let { snapshotEncoded, children, snapshot } = this\n\n let childrenMemo = {}\n\n children.forEach(child => {\n childrenMemo[child.key] = [child.el.tagName.toLowerCase(), child.id]\n })\n\n return snapshotEncoded.replace(\n /\"children\":\\{[^}]*\\}/,\n `\"children\":${JSON.stringify(childrenMemo)}`\n )\n }\n\n inscribeSnapshotAndEffectsOnElement() {\n let el = this.el\n\n el.setAttribute('wire:snapshot', this.snapshotEncoded)\n\n // We need to re-register any event listeners that were originally registered...\n let effects = this.originalEffects.listeners\n ? { listeners: this.originalEffects.listeners }\n : {}\n\n // We need to re-register any url/query-string bindings...\n if (this.originalEffects.url) {\n effects.url = this.originalEffects.url\n }\n\n // We need to re-register any scripts that were originally registered...\n if (this.originalEffects.scripts) {\n effects.scripts = this.originalEffects.scripts;\n }\n\n el.setAttribute('wire:effects', JSON.stringify(effects))\n\n el.setAttribute('wire:key', this.key)\n }\n\n addJsAction(name, action) {\n this.jsActions[name] = action\n }\n\n hasJsAction(name) {\n return this.jsActions[name] !== undefined\n }\n\n getJsAction(name) {\n return this.jsActions[name].bind(this.$wire)\n }\n\n getJsActions() {\n let actions = {}\n for (let key of Object.keys(this.jsActions)) {\n actions[key] = this.getJsAction(key)\n }\n return actions\n }\n\n // Called by JSON.stringify() on both $wire (via the Proxy) and the\n // Component instance directly. Without this, stringifying a Component\n // throws a circular reference error (el <-> component). Tools like\n // Laravel Boost trigger this when logging objects to the browser console.\n toJSON() {\n return {\n id: this.id,\n name: this.name,\n key: this.key,\n data: Object.fromEntries(Object.entries(this.ephemeral)),\n }\n }\n\n addCleanup(cleanup) {\n this.cleanups.push(cleanup)\n }\n\n cleanup() {\n delete this.el.__livewire\n\n while (this.cleanups.length > 0) {\n this.cleanups.pop()()\n }\n }\n}\n", "\nexport function closestFragment(el, { isMatch, hasReachedBoundary }) {\n if (! hasReachedBoundary) hasReachedBoundary = () => false\n\n let current = el\n\n while (current) {\n // Check previous siblings\n let sibling = current.previousSibling;\n\n let foundEndMarker = []\n\n while (sibling) {\n if (isEndFragmentMarker(sibling)) {\n // Keep iterating up until we find the start marker and skip it...\n foundEndMarker.push('a')\n }\n\n if (isStartFragmentMarker(sibling)) {\n if (foundEndMarker.length > 0) {\n foundEndMarker.pop()\n } else {\n let metadata = extractFragmentMetadataFromMarkerNode(sibling)\n\n if (isMatch(metadata)) {\n return new Fragment(sibling)\n }\n }\n }\n\n sibling = sibling.previousSibling;\n }\n\n // No start marker found at this level or found end marker\n // Go up to parent unless we've hit the component root\n current = current.parentElement;\n\n if (current && hasReachedBoundary({ el: current })) {\n break; // Stop at component root\n }\n }\n\n return null;\n}\n\nexport function findFragment(el, { isMatch, hasReachedBoundary }) {\n if (! hasReachedBoundary) hasReachedBoundary = () => false\n\n let startNode = null\n\n let rootEl = el\n\n walkElements(rootEl, (el, { skip, stop }) => {\n // Skip nested Livewire components\n if (el.hasAttribute && el !== rootEl && hasReachedBoundary({ el })) {\n return skip()\n }\n\n // Check all child nodes (including text and comment nodes)\n Array.from(el.childNodes).forEach(node => {\n if (isStartFragmentMarker(node)) {\n let metadata = extractFragmentMetadataFromMarkerNode(node)\n\n if (isMatch(metadata)) {\n startNode = node\n\n stop()\n }\n }\n })\n })\n\n return startNode && new Fragment(startNode)\n}\n\nexport function isStartFragmentMarker(el) {\n return el.nodeType === 8 && el.textContent.startsWith('[if FRAGMENT')\n}\n\nexport function isEndFragmentMarker(el) {\n return el.nodeType === 8 && el.textContent.startsWith('[if ENDFRAGMENT')\n}\n\nfunction walkElements(el, callback) {\n let skip = false\n let stop = false\n\n callback(el, { skip: () => skip = true, stop: () => stop = true })\n\n if (skip || stop) return\n\n Array.from(el.children).forEach(child => {\n walkElements(child, callback)\n\n if (stop) return\n })\n}\n\nexport class Fragment {\n constructor(startMarkerNode) {\n this.startMarkerNode = startMarkerNode\n\n this.metadata = extractFragmentMetadataFromMarkerNode(startMarkerNode)\n }\n\n get endMarkerNode() {\n return findMatchingEndMarkerNode(this.startMarkerNode, this.metadata)\n }\n\n append(mountContainerTagName, html) {\n let container = document.createElement(mountContainerTagName)\n\n container.innerHTML = html\n\n Array.from(container.childNodes).forEach(node => {\n this.endMarkerNode.before(node)\n })\n }\n\n prepend(mountContainerTagName, html) {\n let container = document.createElement(mountContainerTagName)\n\n container.innerHTML = html\n\n Array.from(container.childNodes)\n .reverse()\n .forEach(node => {\n this.startMarkerNode.after(node)\n })\n }\n}\n\nexport function findMatchingEndMarkerNode(startMarkerNode, metadata) {\n let current = startMarkerNode\n\n while (current) {\n if (isEndFragmentMarker(current)) {\n let currentMetadata = extractFragmentMetadataFromMarkerNode(current)\n\n if (Object.keys(metadata).every(key => metadata[key] === currentMetadata[key])) {\n return current\n }\n }\n\n current = current.nextSibling\n }\n\n return null\n}\n\nexport function extractInnerHtmlFromFragmentHtml(fragmentHtml) {\n let regex = /<!--\\[if FRAGMENT\\b.*?\\]><!\\[endif\\]-->([\\s\\S]*)<!--\\[if ENDFRAGMENT\\b.*?\\]><!\\[endif\\]-->/i;\n\n let match = fragmentHtml.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, html] = match\n\n return html\n}\n\nexport function extractFragmentMetadataFromHtml(fragmentHtml) {\n let regex = /\\[if (FRAGMENT|ENDFRAGMENT):(.*?)\\]/\n\n let match = fragmentHtml.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, __, encodedMetadata] = match\n\n return decodeMetadata(encodedMetadata)\n}\n\nexport function extractFragmentMetadataFromMarkerNode(startMarkerNode) {\n let regex = /\\[if (FRAGMENT|ENDFRAGMENT):(.*?)\\]/\n\n let match = startMarkerNode.textContent.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, __, encodedMetadata] = match\n\n return decodeMetadata(encodedMetadata)\n}\n\nexport function decodeMetadata(encodedMetadata) {\n let metadata = {}\n\n // Split by pipe character to get key=value pairs\n let pairs = encodedMetadata.split('|')\n\n pairs.forEach(pair => {\n // Split each pair by = to get key and value\n let [key, value] = pair.split('=')\n metadata[key] = value\n })\n\n return metadata\n}\n", "import { Component } from \"@/component\";\nimport { trigger } from \"@/hooks\";\nimport { walkBackwards, walkUpwards } from \"./utils\";\nimport { extractFragmentMetadataFromMarkerNode, isEndFragmentMarker, isStartFragmentMarker } from \"./fragment\";\n\nlet components = {}\n\nexport function initComponent(el) {\n let component = new Component(el)\n\n if (components[component.id]) throw 'Component already registered'\n\n let cleanup = (i) => component.addCleanup(i)\n\n trigger('component.init', { component, cleanup })\n\n components[component.id] = component\n\n return component\n}\n\nexport function destroyComponent(id) {\n let component = components[id]\n\n if (! component) return\n\n component.cleanup()\n\n delete components[id]\n}\n\nexport function hasComponent(id) {\n return !! components[id]\n}\n\nexport function findComponent(id, strict = true) {\n let component = components[id]\n\n if (! component) {\n if (strict) throw 'Component not found: ' + id\n\n return\n }\n\n return component\n}\n\nexport function findComponentByEl(el, strict = true) {\n let componentId = walkUpwards(el, (node, { stop }) => {\n if (node.__livewire) return stop(node.__livewire.id)\n\n let endMarkers = []\n\n let slotParentId = walkBackwards(node, (siblingNode, { stop }) => {\n if (isEndFragmentMarker(siblingNode)) {\n let metadata = extractFragmentMetadataFromMarkerNode(siblingNode)\n\n if (metadata.type !== 'slot') return\n\n endMarkers.push('a')\n\n return\n }\n\n if (isStartFragmentMarker(siblingNode)) {\n let metadata = extractFragmentMetadataFromMarkerNode(siblingNode)\n\n if (metadata.type !== 'slot') return\n\n\n if (endMarkers.length > 0) {\n endMarkers.pop()\n } else {\n return stop(metadata.parent)\n }\n }\n })\n\n if (slotParentId) return stop(slotParentId)\n })\n\n let component = findComponent(componentId, strict)\n\n if (! component) {\n if (strict) throw \"Could not find Livewire component in DOM tree\"\n\n return\n }\n\n return component\n}\n\nexport function componentsByName(name) {\n return Object.values(components).filter(component => {\n return name == component.name\n })\n}\n\nexport function getByName(name) {\n return componentsByName(name).map(i => i.$wire)\n}\n\nexport function find(id) {\n let component = components[id]\n\n return component && component.$wire\n}\n\nexport function first() {\n return Object.values(components)[0].$wire\n}\n\nexport function all() {\n return Object.values(components)\n}\n", "import { componentsByName } from \"@/store\"\nimport { findRefEl } from \"@/features/supportRefs\"\n\nexport function dispatch(component, name, params) {\n dispatchEvent(component.el, name, params)\n}\n\nexport function dispatchGlobal(name, params) {\n dispatchEvent(window, name, params)\n}\n\nexport function dispatchSelf(component, name, params) {\n dispatchEvent(component.el, name, params, false)\n}\n\nexport function dispatchEl(component, selector, name, params) {\n let targets = component.el.querySelectorAll(selector)\n\n targets.forEach(target => {\n dispatchEvent(target, name, params, false)\n })\n}\n\nexport function dispatchTo(componentName, name, params) {\n let targets = componentsByName(componentName)\n\n targets.forEach(target => {\n dispatchEvent(target.el, name, params, false)\n })\n}\n\nexport function dispatchRef(component, ref, name, params) {\n let el = findRefEl(component, ref)\n\n dispatchEvent(el, name, params, false)\n}\n\nexport function listen(component, name, callback) {\n component.el.addEventListener(name, e => {\n callback(e.detail)\n })\n}\n\nexport function on(eventName, callback) {\n let handler = (e) => {\n // Implemented for backwards compatibility...\n if (! e.__livewire) return\n\n callback(e.detail)\n }\n\n window.addEventListener(eventName, handler)\n\n return () => {\n window.removeEventListener(eventName, handler)\n }\n}\n\nfunction dispatchEvent(target, name, params, bubbles = true) {\n // We need to ensure the params are an array (or object), so we need to wrap them if they're not already...\n if (typeof params === 'string') {\n params = [params]\n }\n\n let e = new CustomEvent(name, { bubbles, detail: params })\n\n e.__livewire = { name, params, receivedBy: [] }\n\n target.dispatchEvent(e)\n}\n", "// packages/collapse/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"collapse\", collapse);\n collapse.inline = (el, { modifiers }) => {\n if (!modifiers.includes(\"min\"))\n return;\n el._x_doShow = () => {\n };\n el._x_doHide = () => {\n };\n };\n function collapse(el, { modifiers }) {\n let duration = modifierValue(modifiers, \"duration\", 250) / 1e3;\n let floor = modifierValue(modifiers, \"min\", 0);\n let fullyHide = !modifiers.includes(\"min\");\n if (!el._x_isShown)\n el.style.height = `${floor}px`;\n if (!el._x_isShown && fullyHide)\n el.hidden = true;\n if (!el._x_isShown)\n el.style.overflow = \"hidden\";\n let setFunction = (el2, styles) => {\n let revertFunction = Alpine.setStyles(el2, styles);\n return styles.height ? () => {\n } : revertFunction;\n };\n let transitionStyles = {\n transitionProperty: \"height\",\n transitionDuration: `${duration}s`,\n transitionTimingFunction: \"cubic-bezier(0.4, 0.0, 0.2, 1)\"\n };\n el._x_transition = {\n in(before = () => {\n }, after = () => {\n }) {\n if (fullyHide)\n el.hidden = false;\n if (fullyHide)\n el.style.display = null;\n let current = el.getBoundingClientRect().height;\n el.style.height = \"auto\";\n let full = el.getBoundingClientRect().height;\n if (current === full) {\n current = floor;\n }\n Alpine.transition(el, Alpine.setStyles, {\n during: transitionStyles,\n start: { height: current + \"px\" },\n end: { height: full + \"px\" }\n }, () => el._x_isShown = true, () => {\n if (Math.abs(el.getBoundingClientRect().height - full) < 1) {\n el.style.overflow = null;\n }\n });\n },\n out(before = () => {\n }, after = () => {\n }) {\n let full = el.getBoundingClientRect().height;\n Alpine.transition(el, setFunction, {\n during: transitionStyles,\n start: { height: full + \"px\" },\n end: { height: floor + \"px\" }\n }, () => el.style.overflow = \"hidden\", () => {\n el._x_isShown = false;\n if (el.style.height == `${floor}px` && fullyHide) {\n el.style.display = \"none\";\n el.hidden = true;\n }\n });\n }\n };\n }\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"duration\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"min\") {\n let match = rawValue.match(/([0-9]+)px/);\n if (match)\n return match[1];\n }\n return rawValue;\n}\n\n// packages/collapse/builds/module.js\nvar module_default = src_default;\nexport {\n src_default as collapse,\n module_default as default\n};\n", "// node_modules/tabbable/dist/index.esm.js\nvar candidateSelectors = [\"input:not([inert]):not([inert] *)\", \"select:not([inert]):not([inert] *)\", \"textarea:not([inert]):not([inert] *)\", \"a[href]:not([inert]):not([inert] *)\", \"button:not([inert]):not([inert] *)\", \"[tabindex]:not(slot):not([inert]):not([inert] *)\", \"audio[controls]:not([inert]):not([inert] *)\", \"video[controls]:not([inert]):not([inert] *)\", '[contenteditable]:not([contenteditable=\"false\"]):not([inert]):not([inert] *)', \"details>summary:first-of-type:not([inert]):not([inert] *)\", \"details:not([inert]):not([inert] *)\"];\nvar candidateSelector = /* @__PURE__ */ candidateSelectors.join(\",\");\nvar NoElement = typeof Element === \"undefined\";\nvar matches = NoElement ? function() {\n} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function(element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\nvar _isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, \"inert\");\n var inert = inertAtt === \"\" || inertAtt === \"true\";\n var result = inert || lookUp && node && // closest does not exist on shadow roots, so we fall back to a manual\n // lookup upward, in case it is not defined.\n (typeof node.closest === \"function\" ? node.closest(\"[inert]\") : _isInert(node.parentNode));\n return result;\n};\nvar isContentEditable = function isContentEditable2(node) {\n var _node$getAttribute2;\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, \"contenteditable\");\n return attValue === \"\" || attValue === \"true\";\n};\nvar getCandidates = function getCandidates2(el, includeContainer, filter) {\n if (_isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\nvar _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (_isInert(element, false)) {\n continue;\n }\n if (element.tagName === \"SLOT\") {\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = _getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === \"function\" && options.getShadowRoot(element);\n var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\nvar hasTabIndex = function hasTabIndex2(node) {\n return !isNaN(parseInt(node.getAttribute(\"tabindex\"), 10));\n};\nvar getTabIndex = function getTabIndex2(node) {\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (node.tabIndex < 0) {\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\nvar getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables2(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput2(node) {\n return node.tagName === \"INPUT\";\n};\nvar isHiddenInput = function isHiddenInput2(node) {\n return isInput(node) && node.type === \"hidden\";\n};\nvar isDetailsWithSummary = function isDetailsWithSummary2(node) {\n var r = node.tagName === \"DETAILS\" && Array.prototype.slice.apply(node.children).some(function(child) {\n return child.tagName === \"SUMMARY\";\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio2(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio2(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios2(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== \"undefined\" && typeof window.CSS !== \"undefined\" && typeof window.CSS.escape === \"function\") {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\", err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio2(node) {\n return isInput(node) && node.type === \"radio\";\n};\nvar isNonTabbableRadio = function isNonTabbableRadio2(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\nvar isNodeAttached = function isNodeAttached2(node) {\n var _nodeRoot;\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea2(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden2(node, _ref) {\n var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot;\n if (displayCheck === \"full-native\") {\n if (\"checkVisibility\" in node) {\n var visible = node.checkVisibility({\n // Checking opacity might be desirable for some use cases, but natively,\n // opacity zero elements _are_ focusable and tabbable.\n checkOpacity: false,\n opacityProperty: false,\n contentVisibilityAuto: true,\n visibilityProperty: true,\n // This is an alias for `visibilityProperty`. Contemporary browsers\n // support both. However, this alias has wider browser support (Chrome\n // >= 105 and Firefox >= 106, vs. Chrome >= 121 and Firefox >= 122), so\n // we include it anyway.\n checkVisibilityCSS: true\n });\n return !visible;\n }\n }\n if (getComputedStyle(node).visibility === \"hidden\") {\n return true;\n }\n var isDirectSummary = matches.call(node, \"details>summary:first-of-type\");\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, \"details:not([open]) *\")) {\n return true;\n }\n if (!displayCheck || displayCheck === \"full\" || // full-native can run this branch when it falls through in case\n // Element#checkVisibility is unsupported\n displayCheck === \"full-native\" || displayCheck === \"legacy-full\") {\n if (typeof getShadowRoot === \"function\") {\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) {\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n node = rootNode.host;\n } else {\n node = parentElement;\n }\n }\n node = originalNode;\n }\n if (isNodeAttached(node)) {\n return !node.getClientRects().length;\n }\n if (displayCheck !== \"legacy-full\") {\n return true;\n }\n } else if (displayCheck === \"non-zero-area\") {\n return isZeroArea(node);\n }\n return false;\n};\nvar isDisabledFromFieldset = function isDisabledFromFieldset2(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n while (parentNode) {\n if (parentNode.tagName === \"FIELDSET\" && parentNode.disabled) {\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n if (child.tagName === \"LEGEND\") {\n return matches.call(parentNode, \"fieldset[disabled] *\") ? true : !child.contains(node);\n }\n }\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isShadowRootTabbable = function isShadowRootTabbable2(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute(\"tabindex\"), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n return false;\n};\nvar _sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function(item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? _sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item,\n isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable2(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return _sortByOrder(candidates);\n};\nvar focusable = function focusable2(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable2(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat(\"iframe:not([inert]):not([inert] *)\").join(\",\");\nvar isFocusable = function isFocusable2(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\n// node_modules/focus-trap/dist/focus-trap.esm.js\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++)\n n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r))\n return _arrayLikeToArray(r);\n}\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c), u = i.value;\n } catch (n2) {\n return void e(n2);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function() {\n var t = this, e = arguments;\n return new Promise(function(r, o) {\n var a = n.apply(t, e);\n function _next(n2) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n2);\n }\n function _throw(n2) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n2);\n }\n _next(void 0);\n });\n };\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {\n t && (r = t);\n var n = 0, F = function() {\n };\n return {\n s: F,\n n: function() {\n return n >= r.length ? {\n done: true\n } : {\n done: false,\n value: r[n++]\n };\n },\n e: function(r2) {\n throw r2;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o, a = true, u = false;\n return {\n s: function() {\n t = t.call(r);\n },\n n: function() {\n var r2 = t.next();\n return a = r2.done, r2;\n },\n e: function(r2) {\n u = true, o = r2;\n },\n f: function() {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u)\n throw o;\n }\n }\n };\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"])\n return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function(r2) {\n return Object.getOwnPropertyDescriptor(e, r2).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {\n _defineProperty(e, r2, t[r2]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {\n Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));\n });\n }\n return e;\n}\nfunction _regenerator() {\n var e, t, r = \"function\" == typeof Symbol ? Symbol : {}, n = r.iterator || \"@@iterator\", o = r.toStringTag || \"@@toStringTag\";\n function i(r2, n2, o2, i2) {\n var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype);\n return _regeneratorDefine(u2, \"_invoke\", function(r3, n3, o3) {\n var i3, c3, u3, f2 = 0, p = o3 || [], y = false, G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function(t2, r4) {\n return i3 = t2, c3 = 0, u3 = e, G.n = r4, a;\n }\n };\n function d(r4, n4) {\n for (c3 = r4, u3 = n4, t = 0; !y && f2 && !o4 && t < p.length; t++) {\n var o4, i4 = p[t], d2 = G.p, l = i4[2];\n r4 > 3 ? (o4 = l === n4) && (u3 = i4[(c3 = i4[4]) ? 5 : (c3 = 3, 3)], i4[4] = i4[5] = e) : i4[0] <= d2 && ((o4 = r4 < 2 && d2 < i4[1]) ? (c3 = 0, G.v = n4, G.n = i4[1]) : d2 < l && (o4 = r4 < 3 || i4[0] > n4 || n4 > l) && (i4[4] = r4, i4[5] = n4, G.n = l, c3 = 0));\n }\n if (o4 || r4 > 1)\n return a;\n throw y = true, n4;\n }\n return function(o4, p2, l) {\n if (f2 > 1)\n throw TypeError(\"Generator is already running\");\n for (y && 1 === p2 && d(p2, l), c3 = p2, u3 = l; (t = c3 < 2 ? e : u3) || !y; ) {\n i3 || (c3 ? c3 < 3 ? (c3 > 1 && (G.n = -1), d(c3, u3)) : G.n = u3 : G.v = u3);\n try {\n if (f2 = 2, i3) {\n if (c3 || (o4 = \"next\"), t = i3[o4]) {\n if (!(t = t.call(i3, u3)))\n throw TypeError(\"iterator result is not an object\");\n if (!t.done)\n return t;\n u3 = t.value, c3 < 2 && (c3 = 0);\n } else\n 1 === c3 && (t = i3.return) && t.call(i3), c3 < 2 && (u3 = TypeError(\"The iterator does not provide a '\" + o4 + \"' method\"), c3 = 1);\n i3 = e;\n } else if ((t = (y = G.n < 0) ? u3 : r3.call(n3, G)) !== a)\n break;\n } catch (t2) {\n i3 = e, c3 = 1, u3 = t2;\n } finally {\n f2 = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r2, o2, i2), true), u2;\n }\n var a = {};\n function Generator() {\n }\n function GeneratorFunction() {\n }\n function GeneratorFunctionPrototype() {\n }\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function() {\n return this;\n }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e2) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e2, GeneratorFunctionPrototype) : (e2.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e2, o, \"GeneratorFunction\")), e2.prototype = Object.create(u), e2;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", _regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), _regeneratorDefine(u), _regeneratorDefine(u, o, \"Generator\"), _regeneratorDefine(u, n, function() {\n return this;\n }), _regeneratorDefine(u, \"toString\", function() {\n return \"[object Generator]\";\n }), (_regenerator = function() {\n return {\n w: i,\n m: f\n };\n })();\n}\nfunction _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e2) {\n i = 0;\n }\n _regeneratorDefine = function(e2, r2, n2, t2) {\n function o(r3, n3) {\n _regeneratorDefine(e2, r3, function(e3) {\n return this._invoke(r3, n3, e3);\n });\n }\n r2 ? i ? i(e2, r2, {\n value: n2,\n enumerable: !t2,\n configurable: !t2,\n writable: !t2\n }) : e2[r2] = n2 : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, _regeneratorDefine(e, r, n, t);\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t)\n return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i)\n return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r)\n return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\nvar activeFocusTraps = {\n // Returns the trap from the top of the stack.\n getActiveTrap: function getActiveTrap(trapStack) {\n if ((trapStack === null || trapStack === void 0 ? void 0 : trapStack.length) > 0) {\n return trapStack[trapStack.length - 1];\n }\n return null;\n },\n // Pauses the currently active trap, then adds a new trap to the stack.\n activateTrap: function activateTrap(trapStack, trap) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (trap !== activeTrap) {\n activeFocusTraps.pauseTrap(trapStack);\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n // Removes the trap from the top of the stack, then unpauses the next trap down.\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n activeFocusTraps.unpauseTrap(trapStack);\n },\n // Pauses the trap at the top of the stack.\n pauseTrap: function pauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n activeTrap === null || activeTrap === void 0 || activeTrap._setPausedState(true);\n },\n // Unpauses the trap at the top of the stack.\n unpauseTrap: function unpauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (activeTrap && !activeTrap._isManuallyPaused()) {\n activeTrap._setPausedState(false);\n }\n }\n};\nvar isSelectableInput = function isSelectableInput2(node) {\n return node.tagName && node.tagName.toLowerCase() === \"input\" && typeof node.select === \"function\";\n};\nvar isEscapeEvent = function isEscapeEvent2(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === \"Escape\" || (e === null || e === void 0 ? void 0 : e.key) === \"Esc\" || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n};\nvar isTabEvent = function isTabEvent2(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === \"Tab\" || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n};\nvar isKeyForward = function isKeyForward2(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\nvar isKeyBackward = function isKeyBackward2(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay2(fn) {\n return setTimeout(fn, 0);\n};\nvar valueOrHandler = function valueOrHandler2(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === \"function\" ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget2(event) {\n return event.target.shadowRoot && typeof event.composedPath === \"function\" ? event.composedPath()[0] : event.target;\n};\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap2(elements, userOptions) {\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isolateSubtrees: false,\n isKeyForward,\n isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n /** @type {Array<HTMLElement>} */\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n /** @type {Array<{\n * container: HTMLElement,\n * tabbableNodes: Array<HTMLElement>, // empty if none\n * focusableNodes: Array<HTMLElement>, // empty if none\n * posTabIndexesFound: boolean,\n * firstTabbableNode: HTMLElement|undefined,\n * lastTabbableNode: HTMLElement|undefined,\n * firstDomTabbableNode: HTMLElement|undefined,\n * lastDomTabbableNode: HTMLElement|undefined,\n * nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n * }>}\n */\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n // references to nodes that are siblings to the ancestors of this trap's containers.\n /** @type {Set<HTMLElement>} */\n adjacentElements: /* @__PURE__ */ new Set(),\n // references to nodes that were inert or aria-hidden before the trap was activated.\n /** @type {Set<HTMLElement>} */\n alreadySilent: /* @__PURE__ */ new Set(),\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n manuallyPaused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: void 0,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: void 0\n };\n var trap;\n var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n var findContainerIndex = function findContainerIndex2(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === \"function\" ? event.composedPath() : void 0;\n return state.containerGroups.findIndex(function(_ref) {\n var container = _ref.container, tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n (composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function(node) {\n return node === element;\n });\n });\n };\n var getNodeForOption = function getNodeForOption2(optionName) {\n var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$hasFallback = _ref2.hasFallback, hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback, _ref2$params = _ref2.params, params = _ref2$params === void 0 ? [] : _ref2$params;\n var optionValue = config[optionName];\n if (typeof optionValue === \"function\") {\n optionValue = optionValue.apply(void 0, _toConsumableArray(params));\n }\n if (optionValue === true) {\n optionValue = void 0;\n }\n if (!optionValue) {\n if (optionValue === void 0 || optionValue === false) {\n return optionValue;\n }\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue;\n if (typeof optionValue === \"string\") {\n try {\n node = doc.querySelector(optionValue);\n } catch (err) {\n throw new Error(\"`\".concat(optionName, '` appears to be an invalid selector; error=\"').concat(err.message, '\"'));\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode2() {\n var node = getNodeForOption(\"initialFocus\", {\n hasFallback: true\n });\n if (node === false) {\n return false;\n }\n if (node === void 0 || node && !isFocusable(node, config.tabbableOptions)) {\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n node = firstTabbableNode || getNodeForOption(\"fallbackFocus\");\n }\n } else if (node === null) {\n node = getNodeForOption(\"fallbackFocus\");\n }\n if (!node) {\n throw new Error(\"Your focus-trap needs to have at least one focusable element\");\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes2() {\n state.containerGroups = state.containers.map(function(container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n var focusableNodes = focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0;\n var firstDomTabbableNode = focusableNodes.find(function(node) {\n return isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function(node) {\n return isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function(node) {\n return getTabIndex(node) > 0;\n });\n return {\n container,\n tabbableNodes,\n focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function(el) {\n return isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function(el) {\n return isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function(group) {\n return group.tabbableNodes.length > 0;\n });\n if (state.tabbableGroups.length <= 0 && !getNodeForOption(\"fallbackFocus\")) {\n throw new Error(\"Your focus-trap must have at least one container with at least one tabbable node in it at all times\");\n }\n if (state.containerGroups.find(function(g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n var _getActiveElement = function getActiveElement(el) {\n var activeElement = el.activeElement;\n if (!activeElement) {\n return;\n }\n if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {\n return _getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n };\n var _tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === _getActiveElement(document)) {\n return;\n }\n if (!node || !node.focus) {\n _tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) {\n var node = getNodeForOption(\"setReturnFocus\", {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n };\n var findNextNavNode = function findNextNavNode2(_ref3) {\n var target = _ref3.target, event = _ref3.event, _ref3$isBackward = _ref3.isBackward, isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0;\n if (containerIndex < 0) {\n if (isBackward) {\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n var startOfGroupIndex = state.tabbableGroups.findIndex(function(_ref4) {\n var firstTabbableNode = _ref4.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n var lastOfGroupIndex = state.tabbableGroups.findIndex(function(_ref5) {\n var lastTabbableNode = _ref5.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n destinationNode = getNodeForOption(\"fallbackFocus\");\n }\n return destinationNode;\n };\n var checkPointerDown = function checkPointerDown2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n };\n var checkFocusIn = function checkFocusIn2(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n event.stopImmediatePropagation();\n var nextNode;\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n var mruTabIdx = tabbableNodes.findIndex(function(node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n }\n }\n }\n } else {\n if (!state.containerGroups.some(function(g) {\n return g.tabbableNodes.some(function(n) {\n return getTabIndex(n) > 0;\n });\n })) {\n navAcrossContainers = false;\n }\n }\n } else {\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n _tryFocus(nextNode);\n } else {\n _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = void 0;\n };\n var checkKeyNav = function checkKeyNav2(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event,\n isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n event.preventDefault();\n }\n _tryFocus(destinationNode);\n }\n };\n var checkTabKey = function checkTabKey2(event) {\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n var checkEscapeKey = function checkEscapeKey2(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n }\n };\n var checkClick = function checkClick2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n var addListeners = function addListeners2() {\n if (!state.active) {\n return Promise.resolve();\n }\n activeFocusTraps.activateTrap(trapStack, trap);\n var promise;\n if (config.delayInitialFocus) {\n promise = new Promise(function(resolve) {\n state.delayInitialFocusTimer = delay(function() {\n _tryFocus(getInitialFocusNode());\n resolve();\n });\n });\n } else {\n promise = Promise.resolve();\n _tryFocus(getInitialFocusNode());\n }\n doc.addEventListener(\"focusin\", checkFocusIn, true);\n doc.addEventListener(\"mousedown\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"touchstart\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"click\", checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkTabKey, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkEscapeKey);\n return promise;\n };\n var collectAdjacentElements = function collectAdjacentElements2(containers) {\n if (state.active && !state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.adjacentElements.clear();\n state.alreadySilent.clear();\n var containerAncestors = /* @__PURE__ */ new Set();\n var adjacentElements = /* @__PURE__ */ new Set();\n var _iterator = _createForOfIteratorHelper(containers), _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done; ) {\n var container = _step.value;\n containerAncestors.add(container);\n var insideShadowRoot = typeof ShadowRoot !== \"undefined\" && container.getRootNode() instanceof ShadowRoot;\n var current = container;\n while (current) {\n containerAncestors.add(current);\n var parent = current.parentElement;\n var siblings = [];\n if (parent) {\n siblings = parent.children;\n } else if (!parent && insideShadowRoot) {\n siblings = current.getRootNode().children;\n parent = current.getRootNode().host;\n insideShadowRoot = typeof ShadowRoot !== \"undefined\" && parent.getRootNode() instanceof ShadowRoot;\n }\n var _iterator2 = _createForOfIteratorHelper(siblings), _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {\n var child = _step2.value;\n adjacentElements.add(child);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n current = parent;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n containerAncestors.forEach(function(el) {\n adjacentElements[\"delete\"](el);\n });\n state.adjacentElements = adjacentElements;\n };\n var removeListeners = function removeListeners2() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener(\"focusin\", checkFocusIn, true);\n doc.removeEventListener(\"mousedown\", checkPointerDown, true);\n doc.removeEventListener(\"touchstart\", checkPointerDown, true);\n doc.removeEventListener(\"click\", checkClick, true);\n doc.removeEventListener(\"keydown\", checkTabKey, true);\n doc.removeEventListener(\"keydown\", checkEscapeKey);\n return trap;\n };\n var checkDomRemoval = function checkDomRemoval2(mutations) {\n var isFocusedNodeRemoved = mutations.some(function(mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function(node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n if (isFocusedNodeRemoved) {\n _tryFocus(getInitialFocusNode());\n }\n };\n var mutationObserver = typeof window !== \"undefined\" && \"MutationObserver\" in window ? new MutationObserver(checkDomRemoval) : void 0;\n var updateObservedNodes = function updateObservedNodes2() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function(container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, \"onActivate\");\n var onPostActivate = getOption(activateOptions, \"onPostActivate\");\n var checkCanFocusTrap = getOption(activateOptions, \"checkCanFocusTrap\");\n var preexistingTrap = activeFocusTraps.getActiveTrap(trapStack);\n var revertState = false;\n if (preexistingTrap && !preexistingTrap.paused) {\n var _preexistingTrap$_set;\n (_preexistingTrap$_set = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set === void 0 || _preexistingTrap$_set.call(preexistingTrap, false);\n revertState = true;\n }\n try {\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = _getActiveElement(doc);\n onActivate === null || onActivate === void 0 || onActivate();\n var finishActivation = /* @__PURE__ */ function() {\n var _ref6 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee() {\n return _regenerator().w(function(_context) {\n while (1)\n switch (_context.n) {\n case 0:\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n _context.n = 1;\n return addListeners();\n case 1:\n trap._setSubtreeIsolation(true);\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 || onPostActivate();\n case 2:\n return _context.a(2);\n }\n }, _callee);\n }));\n return function finishActivation2() {\n return _ref6.apply(this, arguments);\n };\n }();\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n } catch (error) {\n if (preexistingTrap === activeFocusTraps.getActiveTrap(trapStack) && revertState) {\n var _preexistingTrap$_set2;\n (_preexistingTrap$_set2 = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set2 === void 0 || _preexistingTrap$_set2.call(preexistingTrap, true);\n }\n throw error;\n }\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer);\n state.delayInitialFocusTimer = void 0;\n if (!state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.alreadySilent.clear();\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, \"onDeactivate\");\n var onPostDeactivate = getOption(options, \"onPostDeactivate\");\n var checkCanReturnFocus = getOption(options, \"checkCanReturnFocus\");\n var returnFocus = getOption(options, \"returnFocus\", \"returnFocusOnDeactivate\");\n onDeactivate === null || onDeactivate === void 0 || onDeactivate();\n var finishDeactivation = function finishDeactivation2() {\n delay(function() {\n if (returnFocus) {\n _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = true;\n return this._setPausedState(true, pauseOptions);\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = false;\n if (trapStack[trapStack.length - 1] !== this) {\n return this;\n }\n return this._setPausedState(false, unpauseOptions);\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function(element) {\n return typeof element === \"string\" ? doc.querySelector(element) : element;\n });\n if (config.isolateSubtrees) {\n collectAdjacentElements(state.containers);\n }\n if (state.active) {\n updateTabbableNodes();\n if (!state.paused) {\n trap._setSubtreeIsolation(true);\n }\n }\n updateObservedNodes();\n return this;\n }\n };\n Object.defineProperties(trap, {\n _isManuallyPaused: {\n value: function value() {\n return state.manuallyPaused;\n }\n },\n _setPausedState: {\n value: function value(paused, options) {\n if (state.paused === paused) {\n return this;\n }\n state.paused = paused;\n if (paused) {\n var onPause = getOption(options, \"onPause\");\n var onPostPause = getOption(options, \"onPostPause\");\n onPause === null || onPause === void 0 || onPause();\n removeListeners();\n trap._setSubtreeIsolation(false);\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 || onPostPause();\n } else {\n var onUnpause = getOption(options, \"onUnpause\");\n var onPostUnpause = getOption(options, \"onPostUnpause\");\n onUnpause === null || onUnpause === void 0 || onUnpause();\n var finishUnpause = /* @__PURE__ */ function() {\n var _ref7 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee2() {\n return _regenerator().w(function(_context2) {\n while (1)\n switch (_context2.n) {\n case 0:\n updateTabbableNodes();\n _context2.n = 1;\n return addListeners();\n case 1:\n trap._setSubtreeIsolation(true);\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();\n case 2:\n return _context2.a(2);\n }\n }, _callee2);\n }));\n return function finishUnpause2() {\n return _ref7.apply(this, arguments);\n };\n }();\n finishUnpause();\n }\n return this;\n }\n },\n _setSubtreeIsolation: {\n value: function value(isEnabled) {\n if (config.isolateSubtrees) {\n state.adjacentElements.forEach(function(el) {\n var _el$getAttribute;\n if (isEnabled) {\n switch (config.isolateSubtrees) {\n case \"aria-hidden\":\n if (el.ariaHidden === \"true\" || ((_el$getAttribute = el.getAttribute(\"aria-hidden\")) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.toLowerCase()) === \"true\") {\n state.alreadySilent.add(el);\n }\n el.setAttribute(\"aria-hidden\", \"true\");\n break;\n default:\n if (el.inert || el.hasAttribute(\"inert\")) {\n state.alreadySilent.add(el);\n }\n el.setAttribute(\"inert\", true);\n break;\n }\n } else {\n if (state.alreadySilent.has(el))\n ;\n else {\n switch (config.isolateSubtrees) {\n case \"aria-hidden\":\n el.removeAttribute(\"aria-hidden\");\n break;\n default:\n el.removeAttribute(\"inert\");\n break;\n }\n }\n }\n });\n }\n }\n }\n });\n trap.updateContainerElements(elements);\n return trap;\n};\n\n// packages/focus/src/index.js\nfunction src_default(Alpine) {\n let lastFocused;\n let currentFocused;\n window.addEventListener(\"focusin\", () => {\n lastFocused = currentFocused;\n currentFocused = document.activeElement;\n });\n Alpine.magic(\"focus\", (el) => {\n let within = el;\n return {\n __noscroll: false,\n __wrapAround: false,\n within(el2) {\n within = el2;\n return this;\n },\n withoutScrolling() {\n this.__noscroll = true;\n return this;\n },\n noscroll() {\n this.__noscroll = true;\n return this;\n },\n withWrapAround() {\n this.__wrapAround = true;\n return this;\n },\n wrap() {\n return this.withWrapAround();\n },\n focusable(el2) {\n return isFocusable(el2);\n },\n previouslyFocused() {\n return lastFocused;\n },\n lastFocused() {\n return lastFocused;\n },\n focused() {\n return currentFocused;\n },\n focusables() {\n if (Array.isArray(within))\n return within;\n return focusable(within, { displayCheck: \"none\" });\n },\n all() {\n return this.focusables();\n },\n isFirst(el2) {\n let els = this.all();\n return els[0] && els[0].isSameNode(el2);\n },\n isLast(el2) {\n let els = this.all();\n return els.length && els.slice(-1)[0].isSameNode(el2);\n },\n getFirst() {\n return this.all()[0];\n },\n getLast() {\n return this.all().slice(-1)[0];\n },\n getNext() {\n let list = this.all();\n let current = document.activeElement;\n if (list.indexOf(current) === -1)\n return;\n if (this.__wrapAround && list.indexOf(current) === list.length - 1) {\n return list[0];\n }\n return list[list.indexOf(current) + 1];\n },\n getPrevious() {\n let list = this.all();\n let current = document.activeElement;\n if (list.indexOf(current) === -1)\n return;\n if (this.__wrapAround && list.indexOf(current) === 0) {\n return list.slice(-1)[0];\n }\n return list[list.indexOf(current) - 1];\n },\n first() {\n this.focus(this.getFirst());\n },\n last() {\n this.focus(this.getLast());\n },\n next() {\n this.focus(this.getNext());\n },\n previous() {\n this.focus(this.getPrevious());\n },\n prev() {\n return this.previous();\n },\n focus(el2) {\n if (!el2)\n return;\n setTimeout(() => {\n if (!el2.hasAttribute(\"tabindex\"))\n el2.setAttribute(\"tabindex\", \"0\");\n el2.focus({ preventScroll: this.__noscroll });\n });\n }\n };\n });\n Alpine.directive(\"trap\", Alpine.skipDuringClone(\n (el, { expression, modifiers }, { effect, evaluateLater, cleanup }) => {\n let evaluator = evaluateLater(expression);\n let oldValue = false;\n let options = {\n escapeDeactivates: false,\n allowOutsideClick: true,\n fallbackFocus: () => el\n };\n let undoInert = () => {\n };\n if (modifiers.includes(\"noautofocus\")) {\n options.initialFocus = false;\n } else {\n let autofocusEl = el.querySelector(\"[autofocus]\");\n if (autofocusEl)\n options.initialFocus = autofocusEl;\n }\n if (modifiers.includes(\"inert\")) {\n options.onPostActivate = () => {\n Alpine.nextTick(() => {\n undoInert = setInert(el);\n });\n };\n }\n let trap = createFocusTrap(el, options);\n let undoDisableScrolling = () => {\n };\n const releaseFocus = () => {\n undoInert();\n undoInert = () => {\n };\n undoDisableScrolling();\n undoDisableScrolling = () => {\n };\n trap.deactivate({\n returnFocus: !modifiers.includes(\"noreturn\")\n });\n };\n effect(() => evaluator((value) => {\n if (oldValue === value)\n return;\n if (value && !oldValue) {\n if (modifiers.includes(\"noscroll\"))\n undoDisableScrolling = disableScrolling();\n setTimeout(() => {\n trap.activate();\n }, 15);\n }\n if (!value && oldValue) {\n releaseFocus();\n }\n oldValue = !!value;\n }));\n cleanup(releaseFocus);\n },\n // When cloning, we only want to add aria-hidden attributes to the\n // DOM and not try to actually trap, as trapping can mess with the\n // live DOM and isn't just isolated to the cloned DOM.\n (el, { expression, modifiers }, { evaluate }) => {\n if (modifiers.includes(\"inert\") && evaluate(expression))\n setInert(el);\n }\n ));\n}\nfunction setInert(el) {\n let undos = [];\n crawlSiblingsUp(el, (sibling) => {\n let cache = sibling.hasAttribute(\"aria-hidden\");\n sibling.setAttribute(\"aria-hidden\", \"true\");\n undos.push(() => cache || sibling.removeAttribute(\"aria-hidden\"));\n });\n return () => {\n while (undos.length)\n undos.pop()();\n };\n}\nfunction crawlSiblingsUp(el, callback) {\n if (el.isSameNode(document.body) || !el.parentNode)\n return;\n Array.from(el.parentNode.children).forEach((sibling) => {\n if (sibling.isSameNode(el)) {\n crawlSiblingsUp(el.parentNode, callback);\n } else {\n callback(sibling);\n }\n });\n}\nfunction disableScrolling() {\n let overflow = document.documentElement.style.overflow;\n let paddingRight = document.documentElement.style.paddingRight;\n let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n let scrollbarGutter = window.getComputedStyle(document.documentElement).scrollbarGutter;\n document.documentElement.style.overflow = \"hidden\";\n if (scrollbarGutter && scrollbarGutter !== \"auto\") {\n return () => {\n document.documentElement.style.overflow = overflow;\n };\n }\n document.documentElement.style.paddingRight = `${scrollbarWidth}px`;\n return () => {\n document.documentElement.style.overflow = overflow;\n document.documentElement.style.paddingRight = paddingRight;\n };\n}\n\n// packages/focus/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as focus\n};\n/*! Bundled license information:\n\ntabbable/dist/index.esm.js:\n (*!\n * tabbable 6.4.0\n * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n *)\n\nfocus-trap/dist/focus-trap.esm.js:\n (*!\n * focus-trap 8.0.0\n * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n *)\n (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *)\n*/\n", "// packages/persist/src/index.js\nfunction src_default(Alpine) {\n let persist = () => {\n let alias;\n let storage;\n try {\n storage = localStorage;\n } catch (e) {\n console.error(e);\n console.warn(\"Alpine: $persist is using temporary storage since localStorage is unavailable.\");\n let dummy = /* @__PURE__ */ new Map();\n storage = {\n getItem: dummy.get.bind(dummy),\n setItem: dummy.set.bind(dummy)\n };\n }\n return Alpine.interceptor((initialValue, getter, setter, path, key) => {\n let lookup = alias || `_x_${path}`;\n let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue;\n setter(initial);\n Alpine.effect(() => {\n let value = getter();\n storageSet(lookup, value, storage);\n setter(value);\n });\n return initial;\n }, (func) => {\n func.as = (key) => {\n alias = key;\n return func;\n }, func.using = (target) => {\n storage = target;\n return func;\n };\n });\n };\n Object.defineProperty(Alpine, \"$persist\", { get: () => persist() });\n Alpine.magic(\"persist\", persist);\n Alpine.persist = (key, { get, set }, storage = localStorage) => {\n let initial = storageHas(key, storage) ? storageGet(key, storage) : get();\n set(initial);\n Alpine.effect(() => {\n let value = get();\n storageSet(key, value, storage);\n set(value);\n });\n };\n}\nfunction storageHas(key, storage) {\n return storage.getItem(key) !== null;\n}\nfunction storageGet(key, storage) {\n let value = storage.getItem(key);\n if (value === void 0)\n return;\n return JSON.parse(value);\n}\nfunction storageSet(key, value, storage) {\n storage.setItem(key, JSON.stringify(value));\n}\n\n// packages/persist/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as persist\n};\n", "// packages/intersect/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"intersect\", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {\n let evaluate = evaluateLater(expression);\n let options = {\n rootMargin: getRootMargin(modifiers),\n threshold: getThreshold(modifiers)\n };\n let observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting === (value === \"leave\"))\n return;\n evaluate();\n modifiers.includes(\"once\") && observer.disconnect();\n });\n }, options);\n observer.observe(el);\n cleanup(() => {\n observer.disconnect();\n });\n }));\n}\nfunction getThreshold(modifiers) {\n if (modifiers.includes(\"full\"))\n return 0.99;\n if (modifiers.includes(\"half\"))\n return 0.5;\n if (!modifiers.includes(\"threshold\"))\n return 0;\n let threshold = modifiers[modifiers.indexOf(\"threshold\") + 1];\n if (threshold === \"100\")\n return 1;\n if (threshold === \"0\")\n return 0;\n return Number(`.${threshold}`);\n}\nfunction getLengthValue(rawValue) {\n let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);\n return match ? match[1] + (match[2] || \"px\") : void 0;\n}\nfunction getRootMargin(modifiers) {\n const key = \"margin\";\n const fallback = \"0px 0px 0px 0px\";\n const index = modifiers.indexOf(key);\n if (index === -1)\n return fallback;\n let values = [];\n for (let i = 1; i < 5; i++) {\n values.push(getLengthValue(modifiers[index + i] || \"\"));\n }\n values = values.filter((v) => v !== void 0);\n return values.length ? values.join(\" \").trim() : fallback;\n}\n\n// packages/intersect/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as intersect\n};\n", "// node_modules/sortablejs/modular/sortable.esm.js\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function(obj2) {\n return typeof obj2;\n };\n } else {\n _typeof = function(obj2) {\n return obj2 && typeof Symbol === \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n };\n }\n return _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null)\n return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0)\n continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null)\n return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0)\n continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key))\n continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nvar version = \"1.15.2\";\nfunction userAgent(pattern) {\n if (typeof window !== \"undefined\" && window.navigator) {\n return !!/* @__PURE__ */ navigator.userAgent.match(pattern);\n }\n}\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\nvar captureMode = {\n capture: false,\n passive: false\n};\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction matches(el, selector) {\n if (!selector)\n return;\n selector[0] === \">\" && (selector = selector.substring(1));\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n return false;\n}\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\nfunction closest(el, selector, ctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n do {\n if (selector != null && (selector[0] === \">\" ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n if (el === ctx)\n break;\n } while (el = getParentOrHost(el));\n }\n return null;\n}\nvar R_SPACE = /\\s+/g;\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? \"add\" : \"remove\"](name);\n } else {\n var className = (\" \" + el.className + \" \").replace(R_SPACE, \" \").replace(\" \" + name + \" \", \" \");\n el.className = (className + (state ? \" \" + name : \"\")).replace(R_SPACE, \" \");\n }\n }\n}\nfunction css(el, prop, val) {\n var style = el && el.style;\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, \"\");\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf(\"webkit\") === -1) {\n prop = \"-webkit-\" + prop;\n }\n style[prop] = val + (typeof val === \"string\" ? \"\" : \"px\");\n }\n }\n}\nfunction matrix(el, selfOnly) {\n var appliedTransforms = \"\";\n if (typeof el === \"string\") {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, \"transform\");\n if (transform && transform !== \"none\") {\n appliedTransforms = transform + \" \" + appliedTransforms;\n }\n } while (!selfOnly && (el = el.parentNode));\n }\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n return matrixFn && new matrixFn(appliedTransforms);\n}\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName), i = 0, n = list.length;\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n return list;\n }\n return [];\n}\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window)\n return;\n var elRect, top, left, bottom, right, height, width;\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n container = container || el.parentNode;\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, \"transform\") !== \"none\" || relativeToNonStaticParent && css(container, \"position\") !== \"static\")) {\n var containerRect = container.getBoundingClientRect();\n top -= containerRect.top + parseInt(css(container, \"border-top-width\"));\n left -= containerRect.left + parseInt(css(container, \"border-left-width\"));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n } while (container = container.parentNode);\n }\n }\n if (undoScale && el !== window) {\n var elMatrix = matrix(container || el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d;\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n return {\n top,\n left,\n bottom,\n right,\n width,\n height\n };\n}\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true), elSideVal = getRect(el)[elSide];\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide], visible = void 0;\n if (parentSide === \"top\" || parentSide === \"left\") {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n if (!visible)\n return parent;\n if (parent === getWindowScrollingElement())\n break;\n parent = getParentAutoScrollElement(parent, false);\n }\n return false;\n}\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0, i = 0, children = el.children;\n while (i < children.length) {\n if (children[i].style.display !== \"none\" && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n currentChild++;\n }\n i++;\n }\n return null;\n}\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n while (last && (last === Sortable.ghost || css(last, \"display\") === \"none\" || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n return last || null;\n}\nfunction index(el, selector) {\n var index2 = 0;\n if (!el || !el.parentNode) {\n return -1;\n }\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== \"TEMPLATE\" && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index2++;\n }\n }\n return index2;\n}\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0, offsetTop = 0, winScroller = getWindowScrollingElement();\n if (el) {\n do {\n var elMatrix = matrix(el), scaleX = elMatrix.a, scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n return [offsetLeft, offsetTop];\n}\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i))\n continue;\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key])\n return Number(i);\n }\n }\n return -1;\n}\nfunction getParentAutoScrollElement(el, includeSelf) {\n if (!el || !el.getBoundingClientRect)\n return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n do {\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == \"auto\" || elemCSS.overflowX == \"scroll\") || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == \"auto\" || elemCSS.overflowY == \"scroll\")) {\n if (!elem.getBoundingClientRect || elem === document.body)\n return getWindowScrollingElement();\n if (gotSelf || includeSelf)\n return elem;\n gotSelf = true;\n }\n }\n } while (elem = elem.parentNode);\n return getWindowScrollingElement();\n}\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n return dst;\n}\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\nvar _throttleTimeout;\nfunction throttle(callback, ms) {\n return function() {\n if (!_throttleTimeout) {\n var args = arguments, _this = this;\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n _throttleTimeout = setTimeout(function() {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\nfunction getChildContainingRectFromElement(container, options, ghostEl2) {\n var rect = {};\n Array.from(container.children).forEach(function(child) {\n var _rect$left, _rect$top, _rect$right, _rect$bottom;\n if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl2)\n return;\n var childRect = getRect(child);\n rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left);\n rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top);\n rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right);\n rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom);\n });\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\nvar expando = \"Sortable\" + new Date().getTime();\nfunction AnimationStateManager() {\n var animationStates = [], animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation)\n return;\n var children = [].slice.call(this.el.children);\n children.forEach(function(child) {\n if (css(child, \"display\") === \"none\" || child === Sortable.ghost)\n return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect);\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === \"function\")\n callback();\n return;\n }\n var animating = false, animationTime = 0;\n animationStates.forEach(function(state) {\n var time = 0, target = state.target, fromRect = target.fromRect, toRect = getRect(target), prevFromRect = target.prevFromRect, prevToRect = target.prevToRect, animatingRect = state.rect, targetMatrix = matrix(target, true);\n if (targetMatrix) {\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n target.toRect = toRect;\n if (target.thisAnimationDuration) {\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n }\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n if (!time) {\n time = _this.options.animation;\n }\n _this.animate(target, animatingRect, toRect, time);\n }\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function() {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n if (!animating) {\n if (typeof callback === \"function\")\n callback();\n } else {\n animationCallbackId = setTimeout(function() {\n if (typeof callback === \"function\")\n callback();\n }, animationTime);\n }\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, \"transition\", \"\");\n css(target, \"transform\", \"\");\n var elMatrix = matrix(this.el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d, translateX = (currentRect.left - toRect.left) / (scaleX || 1), translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, \"transform\", \"translate3d(\" + translateX + \"px,\" + translateY + \"px,0)\");\n this.forRepaintDummy = repaint(target);\n css(target, \"transition\", \"transform \" + duration + \"ms\" + (this.options.easing ? \" \" + this.options.easing : \"\"));\n css(target, \"transform\", \"translate3d(0,0,0)\");\n typeof target.animated === \"number\" && clearTimeout(target.animated);\n target.animated = setTimeout(function() {\n css(target, \"transition\", \"\");\n css(target, \"transform\", \"\");\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\nfunction repaint(target) {\n return target.offsetWidth;\n}\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n for (var option2 in defaults) {\n if (defaults.hasOwnProperty(option2) && !(option2 in plugin)) {\n plugin[option2] = defaults[option2];\n }\n }\n plugins.forEach(function(p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n this.eventCanceled = false;\n evt.cancel = function() {\n _this.eventCanceled = true;\n };\n var eventNameGlobal = eventName + \"Global\";\n plugins.forEach(function(plugin) {\n if (!sortable[plugin.pluginName])\n return;\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable\n }, evt));\n }\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults2, options) {\n plugins.forEach(function(plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault)\n return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized;\n _extends(defaults2, initialized.defaults);\n });\n for (var option2 in sortable.options) {\n if (!sortable.options.hasOwnProperty(option2))\n continue;\n var modified = this.modifyOption(sortable, option2, sortable.options[option2]);\n if (typeof modified !== \"undefined\") {\n sortable.options[option2] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function(plugin) {\n if (typeof plugin.eventProperties !== \"function\")\n return;\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function(plugin) {\n if (!sortable[plugin.pluginName])\n return;\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === \"function\") {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable, rootEl2 = _ref.rootEl, name = _ref.name, targetEl = _ref.targetEl, cloneEl2 = _ref.cloneEl, toEl = _ref.toEl, fromEl = _ref.fromEl, oldIndex2 = _ref.oldIndex, newIndex2 = _ref.newIndex, oldDraggableIndex2 = _ref.oldDraggableIndex, newDraggableIndex2 = _ref.newDraggableIndex, originalEvent = _ref.originalEvent, putSortable2 = _ref.putSortable, extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl2 && rootEl2[expando];\n if (!sortable)\n return;\n var evt, options = sortable.options, onName = \"on\" + name.charAt(0).toUpperCase() + name.substr(1);\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent(\"Event\");\n evt.initEvent(name, true, true);\n }\n evt.to = toEl || rootEl2;\n evt.from = fromEl || rootEl2;\n evt.item = targetEl || rootEl2;\n evt.clone = cloneEl2;\n evt.oldIndex = oldIndex2;\n evt.newIndex = newIndex2;\n evt.oldDraggableIndex = oldDraggableIndex2;\n evt.newDraggableIndex = newDraggableIndex2;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable2 ? putSortable2.lastPutMode : void 0;\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n for (var option2 in allEventProperties) {\n evt[option2] = allEventProperties[option2];\n }\n if (rootEl2) {\n rootEl2.dispatchEvent(evt);\n }\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\nvar _excluded = [\"evt\"];\nvar pluginEvent2 = function pluginEvent3(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, originalEvent = _ref.evt, data = _objectWithoutProperties(_ref, _excluded);\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n dragStarted: moved,\n putSortable,\n activeSortable: Sortable.active,\n originalEvent,\n oldIndex,\n oldDraggableIndex,\n newIndex,\n newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable,\n name,\n originalEvent\n });\n }\n }, data));\n};\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable,\n cloneEl,\n targetEl: dragEl,\n rootEl,\n oldIndex,\n oldDraggableIndex,\n newIndex,\n newDraggableIndex\n }, info));\n}\nvar dragEl;\nvar parentEl;\nvar ghostEl;\nvar rootEl;\nvar nextEl;\nvar lastDownEl;\nvar cloneEl;\nvar cloneHidden;\nvar oldIndex;\nvar newIndex;\nvar oldDraggableIndex;\nvar newDraggableIndex;\nvar activeGroup;\nvar putSortable;\nvar awaitingDragStarted = false;\nvar ignoreNextClick = false;\nvar sortables = [];\nvar tapEvt;\nvar touchEvt;\nvar lastDx;\nvar lastDy;\nvar tapDistanceLeft;\nvar tapDistanceTop;\nvar moved;\nvar lastTarget;\nvar lastDirection;\nvar pastFirstInvertThresh = false;\nvar isCircumstantialInvert = false;\nvar targetMoveDistance;\nvar ghostRelativeParent;\nvar ghostRelativeParentInitialScroll = [];\nvar _silent = false;\nvar savedInputChecked = [];\nvar documentExists = typeof document !== \"undefined\";\nvar PositionGhostAbsolutely = IOS;\nvar CSSFloatProperty = Edge || IE11OrLess ? \"cssFloat\" : \"float\";\nvar supportDraggable = documentExists && !ChromeForAndroid && !IOS && \"draggable\" in document.createElement(\"div\");\nvar supportCssPointerEvents = function() {\n if (!documentExists)\n return;\n if (IE11OrLess) {\n return false;\n }\n var el = document.createElement(\"x\");\n el.style.cssText = \"pointer-events:auto\";\n return el.style.pointerEvents === \"auto\";\n}();\nvar _detectDirection = function _detectDirection2(el, options) {\n var elCSS = css(el), elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth), child1 = getChild(el, 0, options), child2 = getChild(el, 1, options), firstChildCSS = child1 && css(child1), secondChildCSS = child2 && css(child2), firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width, secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n if (elCSS.display === \"flex\") {\n return elCSS.flexDirection === \"column\" || elCSS.flexDirection === \"column-reverse\" ? \"vertical\" : \"horizontal\";\n }\n if (elCSS.display === \"grid\") {\n return elCSS.gridTemplateColumns.split(\" \").length <= 1 ? \"vertical\" : \"horizontal\";\n }\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== \"none\") {\n var touchingSideChild2 = firstChildCSS[\"float\"] === \"left\" ? \"left\" : \"right\";\n return child2 && (secondChildCSS.clear === \"both\" || secondChildCSS.clear === touchingSideChild2) ? \"vertical\" : \"horizontal\";\n }\n return child1 && (firstChildCSS.display === \"block\" || firstChildCSS.display === \"flex\" || firstChildCSS.display === \"table\" || firstChildCSS.display === \"grid\" || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === \"none\" || child2 && elCSS[CSSFloatProperty] === \"none\" && firstChildWidth + secondChildWidth > elWidth) ? \"vertical\" : \"horizontal\";\n};\nvar _dragElInRowColumn = function _dragElInRowColumn2(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top, dragElS2Opp = vertical ? dragRect.right : dragRect.bottom, dragElOppLength = vertical ? dragRect.width : dragRect.height, targetS1Opp = vertical ? targetRect.left : targetRect.top, targetS2Opp = vertical ? targetRect.right : targetRect.bottom, targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n};\nvar _detectNearestEmptySortable = function _detectNearestEmptySortable2(x, y) {\n var ret;\n sortables.some(function(sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable))\n return;\n var rect = getRect(sortable), insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold, insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n};\nvar _prepareGroup = function _prepareGroup2(options) {\n function toFn(value, pull) {\n return function(to, from, dragEl2, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n if (value == null && (pull || sameGroup)) {\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === \"clone\") {\n return value;\n } else if (typeof value === \"function\") {\n return toFn(value(to, from, dragEl2, evt), pull)(to, from, dragEl2, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === \"string\" && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n var group = {};\n var originalGroup = options.group;\n if (!originalGroup || _typeof(originalGroup) != \"object\") {\n originalGroup = {\n name: originalGroup\n };\n }\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n};\nvar _hideGhostForTarget = function _hideGhostForTarget2() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, \"display\", \"none\");\n }\n};\nvar _unhideGhostForTarget = function _unhideGhostForTarget2() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, \"display\", \"\");\n }\n};\nif (documentExists && !ChromeForAndroid) {\n document.addEventListener(\"click\", function(evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent2(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n if (nearest) {\n var event = {};\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n nearest[expando]._onDragOver(event);\n }\n }\n};\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl2(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n this.el = el;\n this.options = options = _extends({}, options);\n el[expando] = this;\n var defaults2 = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? \">li\" : \">*\",\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: \"sortable-ghost\",\n chosenClass: \"sortable-chosen\",\n dragClass: \"sortable-drag\",\n ignore: \"a, img\",\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl2) {\n dataTransfer.setData(\"Text\", dragEl2.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: \"data-id\",\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: \"sortable-fallback\",\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && \"PointerEvent\" in window && !Safari,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults2);\n for (var name in defaults2) {\n !(name in options) && (options[name] = defaults2[name]);\n }\n _prepareGroup(options);\n for (var fn in this) {\n if (fn.charAt(0) === \"_\" && typeof this[fn] === \"function\") {\n this[fn] = this[fn].bind(this);\n }\n }\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n if (this.nativeDraggable) {\n this.options.touchStartThreshold = 1;\n }\n if (options.supportPointer) {\n on(el, \"pointerdown\", this._onTapStart);\n } else {\n on(el, \"mousedown\", this._onTapStart);\n on(el, \"touchstart\", this._onTapStart);\n }\n if (this.nativeDraggable) {\n on(el, \"dragover\", this);\n on(el, \"dragenter\", this);\n }\n sortables.push(this.el);\n options.store && options.store.get && this.sort(options.store.get(this) || []);\n _extends(this, AnimationStateManager());\n}\nSortable.prototype = /** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === \"function\" ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(evt) {\n if (!evt.cancelable)\n return;\n var _this = this, el = this.el, options = this.options, preventOnFilter = options.preventOnFilter, type = evt.type, touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === \"touch\" && evt, target = (touch || evt).target, originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target, filter = options.filter;\n _saveInputCheckedState(el);\n if (dragEl) {\n return;\n }\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return;\n }\n if (originalTarget.isContentEditable) {\n return;\n }\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === \"SELECT\") {\n return;\n }\n target = closest(target, options.draggable, el, false);\n if (target && target.animated) {\n return;\n }\n if (lastDownEl === target) {\n return;\n }\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable);\n if (typeof filter === \"function\") {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: \"filter\",\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n pluginEvent2(\"filter\", _this, {\n evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return;\n }\n } else if (filter) {\n filter = filter.split(\",\").some(function(criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: \"filter\",\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n pluginEvent2(\"filter\", _this, {\n evt\n });\n return true;\n }\n });\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return;\n }\n }\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n }\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(evt, touch, target) {\n var _this = this, el = _this.el, options = _this.options, ownerDocument = el.ownerDocument, dragStartFn;\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style[\"will-change\"] = \"all\";\n dragStartFn = function dragStartFn2() {\n pluginEvent2(\"delayEnded\", _this, {\n evt\n });\n if (Sortable.eventCanceled) {\n _this._onDrop();\n return;\n }\n _this._disableDelayedDragEvents();\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n }\n _this._triggerDragStart(evt, touch);\n _dispatchEvent({\n sortable: _this,\n name: \"choose\",\n originalEvent: evt\n });\n toggleClass(dragEl, options.chosenClass, true);\n };\n options.ignore.split(\",\").forEach(function(criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, \"dragover\", nearestEmptyInsertDetectEvent);\n on(ownerDocument, \"mousemove\", nearestEmptyInsertDetectEvent);\n on(ownerDocument, \"touchmove\", nearestEmptyInsertDetectEvent);\n on(ownerDocument, \"mouseup\", _this._onDrop);\n on(ownerDocument, \"touchend\", _this._onDrop);\n on(ownerDocument, \"touchcancel\", _this._onDrop);\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n pluginEvent2(\"delayStart\", this, {\n evt\n });\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n on(ownerDocument, \"mouseup\", _this._disableDelayedDrag);\n on(ownerDocument, \"touchend\", _this._disableDelayedDrag);\n on(ownerDocument, \"touchcancel\", _this._disableDelayedDrag);\n on(ownerDocument, \"mousemove\", _this._delayedDragTouchMoveHandler);\n on(ownerDocument, \"touchmove\", _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, \"pointermove\", _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(e) {\n var touch = e.touches ? e.touches[0] : e;\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, \"mouseup\", this._disableDelayedDrag);\n off(ownerDocument, \"touchend\", this._disableDelayedDrag);\n off(ownerDocument, \"touchcancel\", this._disableDelayedDrag);\n off(ownerDocument, \"mousemove\", this._delayedDragTouchMoveHandler);\n off(ownerDocument, \"touchmove\", this._delayedDragTouchMoveHandler);\n off(ownerDocument, \"pointermove\", this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(evt, touch) {\n touch = touch || evt.pointerType == \"touch\" && evt;\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, \"pointermove\", this._onTouchMove);\n } else if (touch) {\n on(document, \"touchmove\", this._onTouchMove);\n } else {\n on(document, \"mousemove\", this._onTouchMove);\n }\n } else {\n on(dragEl, \"dragend\", this);\n on(rootEl, \"dragstart\", this._onDragStart);\n }\n try {\n if (document.selection) {\n _nextTick(function() {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {\n }\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n awaitingDragStarted = false;\n if (rootEl && dragEl) {\n pluginEvent2(\"dragStarted\", this, {\n evt\n });\n if (this.nativeDraggable) {\n on(document, \"dragover\", _checkOutsideTargetEl);\n }\n var options = this.options;\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost();\n _dispatchEvent({\n sortable: this,\n name: \"start\",\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n _hideGhostForTarget();\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent)\n break;\n parent = target;\n }\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target,\n rootEl: parent\n });\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n target = parent;\n } while (parent = parent.parentNode);\n }\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(evt) {\n if (tapEvt) {\n var options = this.options, fallbackTolerance = options.fallbackTolerance, fallbackOffset = options.fallbackOffset, touch = evt.touches ? evt.touches[0] : evt, ghostMatrix = ghostEl && matrix(ghostEl, true), scaleX = ghostEl && ghostMatrix && ghostMatrix.a, scaleY = ghostEl && ghostMatrix && ghostMatrix.d, relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent), dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1), dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1);\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n this._onDragStart(evt, true);\n }\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, \"webkitTransform\", cssMatrix);\n css(ghostEl, \"mozTransform\", cssMatrix);\n css(ghostEl, \"msTransform\", cssMatrix);\n css(ghostEl, \"transform\", cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl, rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container), options = this.options;\n if (PositionGhostAbsolutely) {\n ghostRelativeParent = container;\n while (css(ghostRelativeParent, \"position\") === \"static\" && css(ghostRelativeParent, \"transform\") === \"none\" && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document)\n ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, \"transition\", \"\");\n css(ghostEl, \"transform\", \"\");\n css(ghostEl, \"box-sizing\", \"border-box\");\n css(ghostEl, \"margin\", 0);\n css(ghostEl, \"top\", rect.top);\n css(ghostEl, \"left\", rect.left);\n css(ghostEl, \"width\", rect.width);\n css(ghostEl, \"height\", rect.height);\n css(ghostEl, \"opacity\", \"0.8\");\n css(ghostEl, \"position\", PositionGhostAbsolutely ? \"absolute\" : \"fixed\");\n css(ghostEl, \"zIndex\", \"100000\");\n css(ghostEl, \"pointerEvents\", \"none\");\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl);\n css(ghostEl, \"transform-origin\", tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + \"% \" + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + \"%\");\n }\n },\n _onDragStart: function _onDragStart(evt, fallback) {\n var _this = this;\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent2(\"dragStart\", this, {\n evt\n });\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n pluginEvent2(\"setupClone\", this);\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.removeAttribute(\"id\");\n cloneEl.draggable = false;\n cloneEl.style[\"will-change\"] = \"\";\n this._hideClone();\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n }\n _this.cloneId = _nextTick(function() {\n pluginEvent2(\"clone\", _this);\n if (Sortable.eventCanceled)\n return;\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n _this._hideClone();\n _dispatchEvent({\n sortable: _this,\n name: \"clone\"\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true);\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n off(document, \"mouseup\", _this._onDrop);\n off(document, \"touchend\", _this._onDrop);\n off(document, \"touchcancel\", _this._onDrop);\n if (dataTransfer) {\n dataTransfer.effectAllowed = \"move\";\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n on(document, \"drop\", _this);\n css(dragEl, \"transform\", \"translateZ(0)\");\n }\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, \"selectstart\", _this);\n moved = true;\n if (Safari) {\n css(document.body, \"user-select\", \"none\");\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(evt) {\n var el = this.el, target = evt.target, dragRect, targetRect, revert, options = this.options, group = options.group, activeSortable = Sortable.active, isOwner = activeGroup === group, canSort = options.sort, fromSortable = putSortable || activeSortable, vertical, _this = this, completedFired = false;\n if (_silent)\n return;\n function dragOverEvent(name, extra) {\n pluginEvent2(name, _this, _objectSpread2({\n evt,\n isOwner,\n axis: vertical ? \"vertical\" : \"horizontal\",\n revert,\n dragRect,\n targetRect,\n canSort,\n fromSortable,\n target,\n completed,\n onMove: function onMove(target2, after2) {\n return _onMove(rootEl, el, dragEl, dragRect, target2, getRect(target2), evt, after2);\n },\n changed\n }, extra));\n }\n function capture() {\n dragOverEvent(\"dragOverAnimationCapture\");\n _this.captureAnimationState();\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n }\n function completed(insertion) {\n dragOverEvent(\"dragOverCompleted\", {\n insertion\n });\n if (insertion) {\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n if (_this !== fromSortable) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n }\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n _this.animateAll(function() {\n dragOverEvent(\"dragOverAnimationComplete\");\n _this._ignoreWhileAnimating = null;\n });\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n }\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n }\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n }\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n _dispatchEvent({\n sortable: _this,\n name: \"change\",\n toEl: el,\n newIndex,\n newDraggableIndex,\n originalEvent: evt\n });\n }\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n target = closest(target, options.draggable, el, true);\n dragOverEvent(\"dragOver\");\n if (Sortable.eventCanceled)\n return completedFired;\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n ignoreNextClick = false;\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === \"vertical\";\n dragRect = getRect(dragEl);\n dragOverEvent(\"dragOverValid\");\n if (Sortable.eventCanceled)\n return completedFired;\n if (revert) {\n parentEl = rootEl;\n capture();\n this._hideClone();\n dragOverEvent(\"revert\");\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n return completed(true);\n }\n var elLastChild = lastChild(el, options.draggable);\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n if (elLastChild === dragEl) {\n return completed(false);\n }\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n if (target) {\n targetRect = getRect(target);\n }\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n if (elLastChild && elLastChild.nextSibling) {\n el.insertBefore(dragEl, elLastChild.nextSibling);\n } else {\n el.appendChild(dragEl);\n }\n parentEl = el;\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n var firstChild = getChild(el, 0, options, true);\n if (firstChild === dragEl) {\n return completed(false);\n }\n target = firstChild;\n targetRect = getRect(target);\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el;\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0, targetBeforeFirstSwap, differentLevel = dragEl.parentNode !== el, differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical), side1 = vertical ? \"top\" : \"left\", scrolledPastTop = isScrolledPast(target, \"top\", \"top\") || isScrolledPast(dragEl, \"top\", \"top\"), scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n if (direction !== 0) {\n var dragIndex = index(dragEl);\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, \"display\") === \"none\" || sibling === ghostEl));\n }\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling, after = false;\n after = direction === 1;\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n }\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n parentEl = dragEl.parentNode;\n if (targetBeforeFirstSwap !== void 0 && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n changed();\n return completed(true);\n }\n }\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, \"mousemove\", this._onTouchMove);\n off(document, \"touchmove\", this._onTouchMove);\n off(document, \"pointermove\", this._onTouchMove);\n off(document, \"dragover\", nearestEmptyInsertDetectEvent);\n off(document, \"mousemove\", nearestEmptyInsertDetectEvent);\n off(document, \"touchmove\", nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, \"mouseup\", this._onDrop);\n off(ownerDocument, \"touchend\", this._onDrop);\n off(ownerDocument, \"pointerup\", this._onDrop);\n off(ownerDocument, \"touchcancel\", this._onDrop);\n off(document, \"selectstart\", this);\n },\n _onDrop: function _onDrop(evt) {\n var el = this.el, options = this.options;\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent2(\"drop\", this, {\n evt\n });\n parentEl = dragEl && dragEl.parentNode;\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n if (Sortable.eventCanceled) {\n this._nulling();\n return;\n }\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n _cancelNextTick(this.cloneId);\n _cancelNextTick(this._dragStartId);\n if (this.nativeDraggable) {\n off(document, \"drop\", this);\n off(el, \"dragstart\", this._onDragStart);\n }\n this._offMoveEvents();\n this._offUpEvents();\n if (Safari) {\n css(document.body, \"user-select\", \"\");\n }\n css(dragEl, \"transform\", \"\");\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== \"clone\") {\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, \"dragend\", this);\n }\n _disableDraggable(dragEl);\n dragEl.style[\"will-change\"] = \"\";\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n toggleClass(dragEl, this.options.chosenClass, false);\n _dispatchEvent({\n sortable: this,\n name: \"unchoose\",\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n _dispatchEvent({\n rootEl: parentEl,\n name: \"add\",\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: \"remove\",\n toEl: parentEl,\n originalEvent: evt\n });\n _dispatchEvent({\n rootEl: parentEl,\n name: \"sort\",\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: \"sort\",\n toEl: parentEl,\n originalEvent: evt\n });\n }\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n _dispatchEvent({\n sortable: this,\n name: \"update\",\n toEl: parentEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: \"sort\",\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n if (Sortable.active) {\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n _dispatchEvent({\n sortable: this,\n name: \"end\",\n toEl: parentEl,\n originalEvent: evt\n });\n this.save();\n }\n }\n }\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent2(\"nulling\", this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function(el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(evt) {\n switch (evt.type) {\n case \"drop\":\n case \"dragend\":\n this._onDrop(evt);\n break;\n case \"dragenter\":\n case \"dragover\":\n if (dragEl) {\n this._onDragOver(evt);\n _globalDragOver(evt);\n }\n break;\n case \"selectstart\":\n evt.preventDefault();\n break;\n }\n },\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [], el, children = this.el.children, i = 0, n = children.length, options = this.options;\n for (; i < n; i++) {\n el = children[i];\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n return order;\n },\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order, useAnimation) {\n var items = {}, rootEl2 = this.el;\n this.toArray().forEach(function(id, i) {\n var el = rootEl2.children[i];\n if (closest(el, this.options.draggable, rootEl2, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function(id) {\n if (items[id]) {\n rootEl2.removeChild(items[id]);\n rootEl2.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n if (typeof modifiedValue !== \"undefined\") {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n if (name === \"group\") {\n _prepareGroup(options);\n }\n }\n },\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent2(\"destroy\", this);\n var el = this.el;\n el[expando] = null;\n off(el, \"mousedown\", this._onTapStart);\n off(el, \"touchstart\", this._onTapStart);\n off(el, \"pointerdown\", this._onTapStart);\n if (this.nativeDraggable) {\n off(el, \"dragover\", this);\n off(el, \"dragenter\", this);\n }\n Array.prototype.forEach.call(el.querySelectorAll(\"[draggable]\"), function(el2) {\n el2.removeAttribute(\"draggable\");\n });\n this._onDrop();\n this._disableDelayedDragEvents();\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent2(\"hideClone\", this);\n if (Sortable.eventCanceled)\n return;\n css(cloneEl, \"display\", \"none\");\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable2) {\n if (putSortable2.lastPutMode !== \"clone\") {\n this._hideClone();\n return;\n }\n if (cloneHidden) {\n pluginEvent2(\"showClone\", this);\n if (Sortable.eventCanceled)\n return;\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n css(cloneEl, \"display\", \"\");\n cloneHidden = false;\n }\n }\n};\nfunction _globalDragOver(evt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = \"move\";\n }\n evt.cancelable && evt.preventDefault();\n}\nfunction _onMove(fromEl, toEl, dragEl2, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt, sortable = fromEl[expando], onMoveFn = sortable.options.onMove, retVal;\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(\"move\", {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent(\"Event\");\n evt.initEvent(\"move\", true, true);\n }\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl2;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n return retVal;\n}\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\nfunction _unsilent() {\n _silent = false;\n}\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left;\n}\nfunction _ghostIsLast(evt, vertical, sortable) {\n var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top;\n}\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX, targetLength = vertical ? targetRect.height : targetRect.width, targetS1 = vertical ? targetRect.top : targetRect.left, targetS2 = vertical ? targetRect.bottom : targetRect.right, invert = false;\n if (!invertSwap) {\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n pastFirstInvertThresh = true;\n }\n if (!pastFirstInvertThresh) {\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n invert = invert || invertSwap;\n if (invert) {\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n return 0;\n}\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent, i = str.length, sum = 0;\n while (i--) {\n sum += str.charCodeAt(i);\n }\n return sum.toString(36);\n}\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName(\"input\");\n var idx = inputs.length;\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n}\nif (documentExists) {\n on(document, \"touchmove\", function(evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n}\nSortable.utils = {\n on,\n off,\n css,\n find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend,\n throttle,\n closest,\n toggleClass,\n clone,\n index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild\n};\nSortable.get = function(element) {\n return element[expando];\n};\nSortable.mount = function() {\n for (var _len = arguments.length, plugins2 = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins2[_key] = arguments[_key];\n }\n if (plugins2[0].constructor === Array)\n plugins2 = plugins2[0];\n plugins2.forEach(function(plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n if (plugin.utils)\n Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\nSortable.create = function(el, options) {\n return new Sortable(el, options);\n};\nSortable.version = version;\nvar autoScrolls = [];\nvar scrollEl;\nvar scrollRootEl;\nvar scrolling = false;\nvar lastAutoScrollX;\nvar lastAutoScrollY;\nvar touchEvt$1;\nvar pointerElemChangedInterval;\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n };\n for (var fn in this) {\n if (fn.charAt(0) === \"_\" && typeof this[fn] === \"function\") {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n if (this.sortable.nativeDraggable) {\n on(document, \"dragover\", this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, \"pointermove\", this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, \"touchmove\", this._handleFallbackAutoScroll);\n } else {\n on(document, \"mousemove\", this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop3() {\n if (this.sortable.nativeDraggable) {\n off(document, \"dragover\", this._handleAutoScroll);\n } else {\n off(document, \"pointermove\", this._handleFallbackAutoScroll);\n off(document, \"touchmove\", this._handleFallbackAutoScroll);\n off(document, \"mousemove\", this._handleFallbackAutoScroll);\n }\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt;\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback);\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval();\n pointerElemChangedInterval = setInterval(function() {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: \"scroll\",\n initializeByDefault: true\n });\n}\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function(autoScroll2) {\n clearInterval(autoScroll2.pid);\n });\n autoScrolls = [];\n}\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\nvar autoScroll = throttle(function(evt, options, rootEl2, isFallback) {\n if (!options.scroll)\n return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, sens = options.scrollSensitivity, speed = options.scrollSpeed, winScroller = getWindowScrollingElement();\n var scrollThisInstance = false, scrollCustomFn;\n if (scrollRootEl !== rootEl2) {\n scrollRootEl = rootEl2;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl2, true);\n }\n }\n var layersOut = 0;\n var currentParent = scrollEl;\n do {\n var el = currentParent, rect = getRect(el), top = rect.top, bottom = rect.bottom, left = rect.left, right = rect.right, width = rect.width, height = rect.height, canScrollX = void 0, canScrollY = void 0, scrollWidth = el.scrollWidth, scrollHeight = el.scrollHeight, elCSS = css(el), scrollPosX = el.scrollLeft, scrollPosY = el.scrollTop;\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === \"auto\" || elCSS.overflowX === \"scroll\" || elCSS.overflowX === \"visible\");\n canScrollY = height < scrollHeight && (elCSS.overflowY === \"auto\" || elCSS.overflowY === \"scroll\" || elCSS.overflowY === \"visible\");\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === \"auto\" || elCSS.overflowX === \"scroll\");\n canScrollY = height < scrollHeight && (elCSS.overflowY === \"auto\" || elCSS.overflowY === \"scroll\");\n }\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n autoScrolls[layersOut].pid = setInterval(function() {\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1);\n }\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n if (typeof scrollCustomFn === \"function\") {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== \"continue\") {\n return;\n }\n }\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n scrolling = scrollThisInstance;\n}, 30);\nvar drop = function drop2(_ref) {\n var originalEvent = _ref.originalEvent, putSortable2 = _ref.putSortable, dragEl2 = _ref.dragEl, activeSortable = _ref.activeSortable, dispatchSortableEvent = _ref.dispatchSortableEvent, hideGhostForTarget = _ref.hideGhostForTarget, unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent)\n return;\n var toSortable = putSortable2 || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent(\"spill\");\n this.onSpill({\n dragEl: dragEl2,\n putSortable: putSortable2\n });\n }\n};\nfunction Revert() {\n}\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex2 = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex2;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl2 = _ref3.dragEl, putSortable2 = _ref3.putSortable;\n this.sortable.captureAnimationState();\n if (putSortable2) {\n putSortable2.captureAnimationState();\n }\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl2, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl2);\n }\n this.sortable.animateAll();\n if (putSortable2) {\n putSortable2.animateAll();\n }\n },\n drop\n};\n_extends(Revert, {\n pluginName: \"revertOnSpill\"\n});\nfunction Remove() {\n}\nRemove.prototype = {\n onSpill: function onSpill2(_ref4) {\n var dragEl2 = _ref4.dragEl, putSortable2 = _ref4.putSortable;\n var parentSortable = putSortable2 || this.sortable;\n parentSortable.captureAnimationState();\n dragEl2.parentNode && dragEl2.parentNode.removeChild(dragEl2);\n parentSortable.animateAll();\n },\n drop\n};\n_extends(Remove, {\n pluginName: \"removeOnSpill\"\n});\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\nvar sortable_esm_default = Sortable;\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/sort/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"sort\", (el, { value, modifiers, expression }, { effect, evaluate, cleanup }) => {\n if (value === \"config\") {\n return;\n }\n if (value === \"handle\") {\n return;\n }\n if (value === \"group\") {\n return;\n }\n if (value === \"key\" || value === \"item\") {\n if ([void 0, null, \"\"].includes(expression))\n return;\n el._x_sort_key = evaluate(expression);\n return;\n }\n let handleSelector = \"[x-sort\\\\:handle],[wire\\\\:sort\\\\:handle]\";\n let preferences = {\n hideGhost: !modifiers.includes(\"ghost\"),\n useHandles: !!el.querySelector(handleSelector) || Array.from(el.querySelectorAll(\"template:not(svg template)\")).some((tmpl) => tmpl.content?.querySelector(handleSelector)),\n group: getGroupName(el, modifiers)\n };\n let handleSort = generateSortHandler(expression, evaluate);\n let config = getConfigurationOverrides(el, modifiers, evaluate);\n let sortable = initSortable(el, config, preferences, (key, position) => {\n handleSort(key, position);\n });\n cleanup(() => sortable.destroy());\n });\n}\nfunction generateSortHandler(expression, evaluate) {\n if ([void 0, null, \"\"].includes(expression))\n return () => {\n };\n return (key, position) => {\n evaluate(expression, { scope: {\n // Supporting both `$item` AND `$key` ($key for BC)...\n $key: key,\n $item: key,\n $position: position\n }, params: [\n key,\n position\n ] });\n };\n}\nfunction getConfigurationOverrides(el, modifiers, evaluate) {\n if (el.hasAttribute(\"x-sort:config\")) {\n return evaluate(el.getAttribute(\"x-sort:config\"));\n }\n if (el.hasAttribute(\"wire:sort:config\")) {\n return evaluate(el.getAttribute(\"wire:sort:config\"));\n }\n return {};\n}\nfunction initSortable(el, config, preferences, handle) {\n let ghostRef;\n let options = {\n animation: 150,\n handle: preferences.useHandles ? \"[x-sort\\\\:handle],[wire\\\\:sort\\\\:handle]\" : null,\n group: preferences.group,\n scroll: true,\n forceAutoScrollFallback: true,\n scrollSensitivity: 50,\n // This is here so that if a div containing inputs or buttons has x-sort:ignore, it will not prevent interaction...\n preventOnFilter: false,\n filter(e) {\n if (e.target.hasAttribute(\"x-sort:ignore\") || e.target.hasAttribute(\"wire:sort:ignore\"))\n return true;\n if (e.target.closest(\"[x-sort\\\\:ignore]\") || e.target.closest(\"[wire\\\\:sort\\\\:ignore]\"))\n return true;\n if (!el.querySelector(\"[x-sort\\\\:item],[wire\\\\:sort\\\\:item]\"))\n return false;\n let itemHasAttribute = e.target.closest(\"[x-sort\\\\:item],[wire\\\\:sort\\\\:item]\");\n return itemHasAttribute ? false : true;\n },\n onSort(e) {\n if (e.from !== e.to) {\n if (e.to !== e.target) {\n return;\n }\n }\n let key = void 0;\n walk(e.item, (el2, skip) => {\n if (key !== void 0)\n return;\n if (el2._x_sort_key) {\n key = el2._x_sort_key;\n skip();\n }\n });\n let position = e.newIndex;\n if (key !== void 0 || key !== null) {\n handle(key, position);\n }\n },\n onStart() {\n document.body.classList.add(\"sorting\");\n ghostRef = document.querySelector(\".sortable-ghost\");\n if (preferences.hideGhost && ghostRef)\n ghostRef.style.opacity = \"0\";\n },\n onEnd() {\n document.body.classList.remove(\"sorting\");\n if (preferences.hideGhost && ghostRef)\n ghostRef.style.opacity = \"1\";\n ghostRef = void 0;\n keepElementsWithinMorphMarkers(el);\n }\n };\n return new sortable_esm_default(el, { ...options, ...config });\n}\nfunction keepElementsWithinMorphMarkers(el) {\n let cursor = el.firstChild;\n while (cursor.nextSibling) {\n if (cursor.textContent.trim() === \"[if ENDBLOCK]><![endif]\") {\n el.append(cursor);\n break;\n }\n cursor = cursor.nextSibling;\n }\n}\nfunction getGroupName(el, modifiers) {\n if (el.hasAttribute(\"x-sort:group\")) {\n return el.getAttribute(\"x-sort:group\");\n }\n if (el.hasAttribute(\"wire:sort:group\")) {\n return el.getAttribute(\"wire:sort:group\");\n }\n return modifiers.indexOf(\"group\") !== -1 ? modifiers[modifiers.indexOf(\"group\") + 1] : null;\n}\n\n// packages/sort/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as sort\n};\n/*! Bundled license information:\n\nsortablejs/modular/sortable.esm.js:\n (**!\n * Sortable 1.15.2\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n *)\n*/\n", "// packages/resize/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"resize\", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {\n let evaluator = evaluateLater(expression);\n let evaluate = (width, height) => {\n evaluator(() => {\n }, { scope: { \"$width\": width, \"$height\": height } });\n };\n let off = modifiers.includes(\"document\") ? onDocumentResize(evaluate) : onElResize(el, evaluate);\n cleanup(() => off());\n }));\n}\nfunction onElResize(el, callback) {\n let observer = new ResizeObserver((entries) => {\n let [width, height] = dimensions(entries);\n callback(width, height);\n });\n observer.observe(el);\n return () => observer.disconnect();\n}\nvar documentResizeObserver;\nvar documentResizeObserverCallbacks = /* @__PURE__ */ new Set();\nfunction onDocumentResize(callback) {\n documentResizeObserverCallbacks.add(callback);\n if (!documentResizeObserver) {\n documentResizeObserver = new ResizeObserver((entries) => {\n let [width, height] = dimensions(entries);\n documentResizeObserverCallbacks.forEach((i) => i(width, height));\n });\n documentResizeObserver.observe(document.documentElement);\n }\n return () => {\n documentResizeObserverCallbacks.delete(callback);\n };\n}\nfunction dimensions(entries) {\n let width, height;\n for (let entry of entries) {\n width = entry.borderBoxSize[0].inlineSize;\n height = entry.borderBoxSize[0].blockSize;\n }\n return [width, height];\n}\n\n// packages/resize/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as resize\n};\n", "// node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\nvar min = Math.min;\nvar max = Math.max;\nvar round = Math.round;\nvar floor = Math.floor;\nvar createCoords = (v) => ({\n x: v,\n y: v\n});\nvar oppositeSideMap = {\n left: \"right\",\n right: \"left\",\n bottom: \"top\",\n top: \"bottom\"\n};\nvar oppositeAlignmentMap = {\n start: \"end\",\n end: \"start\"\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === \"function\" ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split(\"-\")[0];\n}\nfunction getAlignment(placement) {\n return placement.split(\"-\")[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === \"x\" ? \"y\" : \"x\";\n}\nfunction getAxisLength(axis) {\n return axis === \"y\" ? \"height\" : \"width\";\n}\nfunction getSideAxis(placement) {\n return [\"top\", \"bottom\"].includes(getSide(placement)) ? \"y\" : \"x\";\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === \"x\" ? alignment === (rtl ? \"end\" : \"start\") ? \"right\" : \"left\" : alignment === \"start\" ? \"bottom\" : \"top\";\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = [\"left\", \"right\"];\n const rl = [\"right\", \"left\"];\n const tb = [\"top\", \"bottom\"];\n const bt = [\"bottom\", \"top\"];\n switch (side) {\n case \"top\":\n case \"bottom\":\n if (rtl)\n return isStart ? rl : lr;\n return isStart ? lr : rl;\n case \"left\":\n case \"right\":\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === \"start\", rtl);\n if (alignment) {\n list = list.map((side) => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== \"number\" ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n// node_modules/@floating-ui/core/dist/floating-ui.core.mjs\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === \"y\";\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case \"top\":\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case \"bottom\":\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case \"right\":\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case \"left\":\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case \"start\":\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case \"end\":\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\nvar computePosition = async (reference, floating, config) => {\n const {\n placement = \"bottom\",\n strategy = \"absolute\",\n middleware = [],\n platform: platform2\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));\n let rects = await platform2.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platform2,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === \"object\") {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform2.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform: platform2,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = \"clippingAncestors\",\n rootBoundary = \"viewport\",\n elementContext = \"floating\",\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === \"floating\" ? \"reference\" : \"floating\";\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform2.getClippingRect({\n element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === \"floating\" ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));\n const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\nvar flip = function(options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: \"flip\",\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform: platform2,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = \"bestFit\",\n fallbackAxisSideDirection = \"none\",\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== \"none\") {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements2 = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides2 = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides2[0]], overflow[sides2[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n if (!overflows.every((side2) => side2 <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements2[nextIndex];\n if (nextPlacement) {\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case \"bestFit\": {\n var _overflowsData$map$so;\n const placement2 = (_overflowsData$map$so = overflowsData.map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement2) {\n resetPlacement = placement2;\n }\n break;\n }\n case \"initialPlacement\":\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform: platform2,\n elements\n } = state;\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === \"y\";\n const mainAxisMulti = [\"left\", \"top\"].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === \"number\" ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === \"number\") {\n crossAxis = alignment === \"end\" ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\nvar offset = function(options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: \"offset\",\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\nvar shift = function(options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: \"shift\",\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: (_ref) => {\n let {\n x: x2,\n y: y2\n } = _ref;\n return {\n x: x2,\n y: y2\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === \"y\" ? \"top\" : \"left\";\n const maxSide = mainAxis === \"y\" ? \"bottom\" : \"right\";\n const min2 = mainAxisCoord + overflow[minSide];\n const max2 = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min2, mainAxisCoord, max2);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === \"y\" ? \"top\" : \"left\";\n const maxSide = crossAxis === \"y\" ? \"bottom\" : \"right\";\n const min2 = crossAxisCoord + overflow[minSide];\n const max2 = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min2, crossAxisCoord, max2);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n\n// node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || \"\").toLowerCase();\n }\n return \"#document\";\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (typeof ShadowRoot === \"undefined\") {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && ![\"inline\", \"contents\"].includes(display);\n}\nfunction isTableElement(element) {\n return [\"table\", \"td\", \"th\"].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n return css.transform !== \"none\" || css.perspective !== \"none\" || (css.containerType ? css.containerType !== \"normal\" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== \"none\" : false) || !webkit && (css.filter ? css.filter !== \"none\" : false) || [\"transform\", \"perspective\", \"filter\"].some((value) => (css.willChange || \"\").includes(value)) || [\"paint\", \"layout\", \"strict\", \"content\"].some((value) => (css.contain || \"\").includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === \"undefined\" || !CSS.supports)\n return false;\n return CSS.supports(\"-webkit-backdrop-filter\", \"none\");\n}\nfunction isLastTraversableNode(node) {\n return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === \"html\") {\n return node;\n }\n const result = (\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot || // DOM Element detected.\n node.parentNode || // ShadowRoot detected.\n isShadowRoot(node) && node.host || // Fallback.\n getDocumentElement(node)\n );\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\n// node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\nvar noOffsets = /* @__PURE__ */ createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== \"fixed\") {\n if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\nfunction getWindowScrollBarX(element) {\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === \"rtl\") {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === \"fixed\") {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === \"fixed\");\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === \"viewport\") {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === \"document\") {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === \"fixed\" || hasFixedPositionAncestor(parentNode, stopNode);\n}\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== \"body\");\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === \"fixed\";\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === \"fixed\") {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === \"static\" && !!currentContainingBlockComputedStyle && [\"absolute\", \"fixed\"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n result = result.filter((ancestor) => ancestor !== currentNode);\n } else {\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === \"clippingAncestors\" ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === \"fixed\";\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === \"fixed\") {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getOffsetParent(element, polyfill) {\n const window2 = getWindow(element);\n if (!isHTMLElement(element)) {\n return window2;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === \"static\") {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === \"html\" || getNodeName(offsetParent) === \"body\" && getComputedStyle(offsetParent).position === \"static\" && !isContainingBlock(offsetParent))) {\n return window2;\n }\n return offsetParent || getContainingBlock(element) || window2;\n}\nvar getElementRects = async function(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...await getDimensionsFn(floating)\n }\n };\n};\nfunction isRTL(element) {\n return getComputedStyle(element).direction === \"rtl\";\n}\nvar platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === \"function\",\n layoutShift = typeof IntersectionObserver === \"function\",\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];\n ancestors.forEach((ancestor) => {\n ancestorScroll && ancestor.addEventListener(\"scroll\", update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener(\"resize\", update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver((_ref) => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach((ancestor) => {\n ancestorScroll && ancestor.removeEventListener(\"scroll\", update);\n ancestorResize && ancestor.removeEventListener(\"resize\", update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\nvar computePosition2 = (reference, floating, options) => {\n const cache = /* @__PURE__ */ new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\n// packages/anchor/src/index.js\nfunction src_default(Alpine) {\n Alpine.magic(\"anchor\", (el) => {\n if (!el._x_anchor)\n throw \"Alpine: No x-anchor directive found on element using $anchor...\";\n return el._x_anchor;\n });\n Alpine.interceptClone((from, to) => {\n if (from && from._x_anchor && !to._x_anchor) {\n to._x_anchor = from._x_anchor;\n }\n });\n Alpine.directive(\"anchor\", Alpine.skipDuringClone(\n (el, { expression, modifiers, value }, { evaluate: evaluate2, effect, cleanup }) => {\n let { placement, offsetValue, unstyled, strategy, allowFlip } = getOptions(modifiers);\n el._x_anchor = Alpine.reactive({ x: 0, y: 0 });\n let previousReference = null;\n let release = null;\n effect(() => {\n let reference = evaluate2(expression);\n if (!reference)\n return;\n if (previousReference !== reference) {\n if (release)\n release();\n previousReference = reference;\n let compute = () => {\n let previousValue;\n computePosition2(reference, el, {\n placement,\n strategy,\n middleware: [allowFlip && flip(), shift({ padding: 5 }), offset(offsetValue)]\n }).then(({ x, y }) => {\n unstyled || setStyles(el, x, y, strategy);\n if (JSON.stringify({ x, y }) !== previousValue) {\n el._x_anchor.x = x;\n el._x_anchor.y = y;\n }\n previousValue = JSON.stringify({ x, y });\n });\n };\n release = autoUpdate(reference, el, () => compute());\n }\n });\n cleanup(() => {\n if (release)\n release();\n });\n },\n // When cloning (or \"morphing\"), we will graft the style and position data from the live tree...\n (el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => {\n let { placement, offsetValue, unstyled, strategy } = getOptions(modifiers);\n if (el._x_anchor) {\n unstyled || setStyles(el, el._x_anchor.x, el._x_anchor.y, strategy);\n }\n }\n ));\n}\nfunction setStyles(el, x, y, strategy = \"absolute\") {\n Object.assign(el.style, {\n left: x + \"px\",\n top: y + \"px\",\n position: strategy\n });\n}\nfunction getOptions(modifiers) {\n let positions = [\"top\", \"top-start\", \"top-end\", \"right\", \"right-start\", \"right-end\", \"bottom\", \"bottom-start\", \"bottom-end\", \"left\", \"left-start\", \"left-end\"];\n let placement = positions.find((i) => modifiers.includes(i));\n let offsetValue = 0;\n if (modifiers.includes(\"offset\")) {\n let idx = modifiers.findIndex((i) => i === \"offset\");\n offsetValue = modifiers[idx + 1] !== void 0 ? Number(modifiers[idx + 1]) : offsetValue;\n }\n let unstyled = modifiers.includes(\"no-style\");\n let allowFlip = !modifiers.includes(\"noflip\");\n let strategy = modifiers.includes(\"fixed\") ? \"fixed\" : \"absolute\";\n return { placement, offsetValue, unstyled, strategy, allowFlip };\n}\n\n// packages/anchor/builds/module.js\nvar module_default = src_default;\nexport {\n src_default as anchor,\n module_default as default\n};\n", "export function unwrap(object) {\n if (object === undefined) return undefined\n\n return JSON.parse(JSON.stringify(object))\n}\n\nexport function batch(callback) {\n let batch = {\n queued: false,\n updates: {},\n add(updates) {\n Object.assign(batch.updates, updates)\n\n if (batch.queued) return\n\n batch.queued = true\n\n queueMicrotask(batch.flush)\n },\n\n flush() {\n if (Object.keys(batch.updates).length) {\n callback(batch.updates)\n }\n\n batch.queued = false\n batch.updates = {}\n },\n }\n\n return batch\n}\n", "import { batch, unwrap } from \"./utils\"\n\nclass HistoryCoordinator {\n constructor() {\n this.url = null\n this.errorHandlers = {}\n\n this.batch = batch((updates) => {\n let url = this.getUrl()\n\n this.writeToHistory('replaceState', url, (state) => {\n // Only update state.alpine as we are merging...\n state.alpine = { ...state.alpine, ...unwrap(updates) }\n\n return state\n })\n\n this.url = null\n })\n }\n\n addErrorHandler(key, callback) {\n this.errorHandlers[key] = callback\n }\n\n getUrl() {\n // If the querystring has started changing the URL before the batch has been flushed, use the URL that was passed in...\n if (this.url) {\n // Always pick up the current hash from the browser, since Livewire only manages query strings\n // and the hash may have been changed externally (e.g. during Alpine init)...\n if (this.url instanceof URL) this.url.hash = window.location.hash\n return this.url\n }\n\n return new URL(window.location.href)\n }\n\n replaceState(url, updates) {\n this.url = url\n this.batch.add(updates)\n }\n\n pushState(url, updates) {\n // Flush any pending replaces first...\n this.batch.flush()\n\n this.writeToHistory('pushState', url, (state) => {\n // Replace the entire state as we are pushing...\n state = { alpine: { ...state.alpine, ...unwrap(updates) } }\n\n return state\n })\n }\n\n writeToHistory(method, url, callback) {\n let state = window.history.state || {}\n if (!state.alpine) state.alpine = {}\n\n // Process the state using the callback...\n state = callback(state)\n\n try {\n // 640k character limit:\n window.history[method](state, '', url.toString())\n } catch (error) {\n Object.values(this.errorHandlers).forEach(\n handler => typeof handler === 'function' && handler(error, url)\n )\n\n // Remove error handlers after processing as they could be different depending on what is calling the method...\n this.errorHandlers = {}\n\n console.error(error)\n }\n }\n}\n\nlet historyCoordinator = new HistoryCoordinator()\n\nexport default historyCoordinator\n", "import historyCoordinator from \"@/plugins/history/coordinator\"\n\nclass Snapshot {\n constructor(url, html) {\n this.url = url\n this.html = html\n }\n}\n\nlet snapshotCache = {\n currentKey: null,\n currentUrl: null,\n keys: [],\n lookup: {},\n\n limit: 10,\n\n has(location) {\n return this.lookup[location] !== undefined\n },\n\n retrieve(location) {\n let snapshot = this.lookup[location]\n\n if (snapshot === undefined)\n throw (\n 'No back button cache found for current location: ' +\n location\n )\n\n return snapshot\n },\n\n replace(key, snapshot) {\n if (this.has(key)) {\n this.lookup[key] = snapshot\n } else {\n this.push(key, snapshot)\n }\n },\n\n push(key, snapshot) {\n this.lookup[key] = snapshot\n\n let index = this.keys.indexOf(key)\n\n if (index > -1) this.keys.splice(index, 1)\n\n this.keys.unshift(key)\n\n this.trim()\n },\n\n trim() {\n for (let key of this.keys.splice(this.limit)) {\n delete this.lookup[key]\n }\n }\n}\n\nlet currentPageStatus = null\n\nexport function storeCurrentPageStatus(status) {\n currentPageStatus = status\n}\n\nexport function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() {\n // Get the URL with all querystring changes...\n let url = historyCoordinator.getUrl()\n \n // Create a history state entry for the initial page load.\n // (This is so later hitting back can restore this page).\n replaceUrl(url, document.documentElement.outerHTML)\n}\n\nexport function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(key, url) {\n let html = document.documentElement.outerHTML\n\n snapshotCache.replace(key, new Snapshot(url, html))\n}\n\nexport function whenTheBackOrForwardButtonIsClicked(\n registerFallback,\n handleHtml\n) {\n let fallback\n\n registerFallback(i => (fallback = i))\n\n window.addEventListener('popstate', e => {\n let state = e.state || {}\n\n let alpine = state.alpine || {}\n\n // If the current page is not a 2xx status code, then we want to force a full page refresh to ensure that the error page assets aren't kept in the DOM...\n if (currentPageStatus && (currentPageStatus < 200 || currentPageStatus >= 300)) {\n return window.location.href = alpine.url\n }\n\n // If state is an empty object, then the popstate has probably been triggered\n // by anchor tags `#my-heading`, so we don't want to handle them.\n if (Object.keys(state).length === 0) return\n\n if (! alpine.snapshotIdx) return\n\n if (snapshotCache.has(alpine.snapshotIdx)) {\n let snapshot = snapshotCache.retrieve(alpine.snapshotIdx)\n\n handleHtml(snapshot.html, snapshot.url, snapshotCache.currentUrl, snapshotCache.currentKey)\n\n snapshotCache.currentKey = alpine.snapshotIdx\n snapshotCache.currentUrl = snapshot.url\n } else {\n snapshotCache.currentKey = null\n snapshotCache.currentUrl = null\n\n fallback(alpine.url)\n }\n })\n}\n\nexport function updateUrlAndStoreLatestHtmlForFutureBackButtons(\n html,\n destination\n) {\n pushUrl(destination, html)\n}\n\nexport function pushUrl(url, html) {\n updateUrl('pushState', url, html)\n}\n\nexport function replaceUrl(url, html) {\n updateUrl('replaceState', url, html)\n}\n\nfunction updateUrl(method, url, html) {\n let key = url.toString() + '-' + Math.random()\n\n method === 'pushState'\n ? snapshotCache.push(key, new Snapshot(url, html))\n : snapshotCache.replace(key = (snapshotCache.currentKey ?? key), new Snapshot(url, html))\n\n historyCoordinator.addErrorHandler('navigate', error => {\n if (error instanceof DOMException && error.name === 'SecurityError') {\n console.error(\n \"Livewire: You can't use wire:navigate with a link to a different root domain: \" +\n url\n )\n }\n })\n\n historyCoordinator[method](url, { snapshotIdx: key, url: url.toString() })\n\n snapshotCache.currentKey = key\n snapshotCache.currentUrl = url\n}\n", "\nexport function whenThisLinkIsPressed(el, callback) {\n let isProgrammaticClick = e => ! e.isTrusted\n let isNotPlainLeftClick = e => (e.which > 1) || (e.altKey) || (e.ctrlKey) || (e.metaKey) || (e.shiftKey)\n let isNotPlainEnterKey = (e) => (e.which !== 13) || (e.altKey) || (e.ctrlKey) || (e.metaKey) || (e.shiftKey)\n\n el.addEventListener('click', e => {\n // This allows programmatic clicking of links via: `$0.click()`...\n if (isProgrammaticClick(e)) {\n e.preventDefault()\n\n callback(whenReleased => whenReleased())\n\n return\n }\n\n // This allows cmd+click and such to still work as expected...\n if (isNotPlainLeftClick(e)) return;\n\n // If it's a plain left click, we want to prevent \"click\" and let \"mouseup\" do its thing...\n e.preventDefault()\n })\n\n el.addEventListener('mousedown', e => {\n // We only care about left clicks for wire:navigate...\n if (isNotPlainLeftClick(e)) return;\n\n e.preventDefault()\n\n callback((whenReleased) => {\n let handler = e => {\n e.preventDefault()\n\n requestAnimationFrame(() => {\n whenReleased()\n })\n\n el.removeEventListener('mouseup', handler)\n }\n\n el.addEventListener('mouseup', handler)\n })\n })\n\n el.addEventListener(\"keydown\", e => {\n // We only care about the enter key...\n if (isNotPlainEnterKey(e)) return;\n\n e.preventDefault()\n\n callback(whenReleased => whenReleased())\n })\n}\n\nexport function whenThisLinkIsHoveredFor(el, ms = 60, callback) {\n el.addEventListener('mouseenter', e => {\n let timeout = setTimeout(() => {\n callback(e)\n }, ms)\n\n let handler = () => {\n clearTimeout(timeout)\n el.removeEventListener('mouseleave', handler)\n }\n\n el.addEventListener('mouseleave', handler)\n })\n}\n\nexport function extractDestinationFromLink(linkEl) {\n return createUrlObjectFromString(linkEl.getAttribute('href'))\n}\n\nexport function createUrlObjectFromString(urlString) {\n return urlString !== null && new URL(urlString, document.baseURI)\n}\n\nexport function getUriStringFromUrlObject(urlObject) {\n return urlObject.pathname + urlObject.search + urlObject.hash\n}\n", "import { getUriStringFromUrlObject } from \"./links\"\nimport { sendNavigateRequest } from \"@/request\"\nimport { storeCurrentPageStatus } from \"./history\"\n\nexport function fetchHtml(destination, callback, errorCallback) {\n let uri = getUriStringFromUrlObject(destination)\n\n performFetch(uri, (html, finalDestination, status) => {\n storeCurrentPageStatus(status)\n\n callback(html, finalDestination)\n }, errorCallback)\n}\n\nexport function performFetch(uri, callback, errorCallback) {\n sendNavigateRequest(uri, callback, errorCallback)\n}\n", "import { performFetch } from \"@/plugins/navigate/fetch\";\nimport { getUriStringFromUrlObject } from \"./links\";\nimport { storeCurrentPageStatus } from \"./history\";\n\n// Warning: this could cause some memory leaks\nlet prefetches = {}\n\n// Default prefetch cache duration is 30 seconds...\nlet cacheDuration = 30000\n\nexport function prefetchHtml(destination, callback, errorCallback) {\n let uri = getUriStringFromUrlObject(destination)\n\n if (prefetches[uri]) return\n\n prefetches[uri] = { finished: false, html: null, whenFinished: () => setTimeout(() => delete prefetches[uri], cacheDuration) }\n\n performFetch(uri, (html, routedUri, status) => {\n storeCurrentPageStatus(status)\n\n callback(html, routedUri)\n }, () => {\n // If the fetch failed, remove the prefetch so it gets attempted again...\n delete prefetches[uri]\n\n errorCallback()\n })\n}\n\nexport function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination) {\n let state = prefetches[getUriStringFromUrlObject(destination)]\n state.html = html\n state.finished = true\n state.finalDestination = finalDestination\n state.whenFinished()\n}\n\nexport function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) {\n let uri = getUriStringFromUrlObject(destination)\n\n if (! prefetches[uri]) return ifNoPrefetchExists()\n\n if (prefetches[uri].finished) {\n let html = prefetches[uri].html\n let finalDestination = prefetches[uri].finalDestination\n\n delete prefetches[uri]\n\n return receive(html, finalDestination)\n } else {\n prefetches[uri].whenFinished = () => {\n let html = prefetches[uri].html\n let finalDestination = prefetches[uri].finalDestination\n\n delete prefetches[uri]\n\n receive(html, finalDestination)\n }\n }\n}\n\n", "import Alpine from \"alpinejs\"\n\nexport function packUpPersistedTeleports(persistedEl) {\n // Persisted elements get removed from the DOM and then re-added later. We need to do the same\n // with any `x-teleport`ed elements...\n Alpine.mutateDom(() => {\n persistedEl.querySelectorAll('[data-teleport-template]').forEach(i => i._x_teleport.remove())\n })\n}\n\nexport function removeAnyLeftOverStaleTeleportTargets(body) {\n // We need to remove any left-over teleported elements form the page\n // as they are stale and will be re-initialized when Alpine boots up on this page...\n Alpine.mutateDom(() => {\n body.querySelectorAll('[data-teleport-target]').forEach(i => i.remove())\n })\n}\n\nexport function unPackPersistedTeleports(persistedEl) {\n // Before we put back any persisted elements, we're going to\n // find any \"x-teleports\" and put their targets back on the page...\n Alpine.walk(persistedEl, (el, skip) => {\n if (! el._x_teleport) return;\n\n el._x_teleportPutBack()\n\n skip()\n })\n}\n\nexport function isTeleportTarget(el) {\n return el.hasAttribute('data-teleport-target')\n}\n", "\nexport function storeScrollInformationInHtmlBeforeNavigatingAway() {\n document.body.setAttribute('data-scroll-x', document.body.scrollLeft)\n document.body.setAttribute('data-scroll-y', document.body.scrollTop)\n\n document.querySelectorAll(['[x-navigate\\\\:scroll]', '[wire\\\\:navigate\\\\:scroll]']).forEach(el => {\n el.setAttribute('data-scroll-x', el.scrollLeft)\n el.setAttribute('data-scroll-y', el.scrollTop)\n })\n}\n\nexport function restoreScrollPositionOrScrollToTop() {\n let scroll = el => {\n if (! el.hasAttribute('data-scroll-x')) {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' })\n } else {\n el.scrollTo({\n top: Number(el.getAttribute('data-scroll-y')),\n left: Number(el.getAttribute('data-scroll-x')),\n behavior: 'instant',\n })\n el.removeAttribute('data-scroll-x')\n el.removeAttribute('data-scroll-y')\n }\n }\n\n queueMicrotask(() => {\n queueMicrotask(() => { // Double microtask here to make sure scrolling restoration is the LAST thing to happen. (Even after Alpine's x-init functions)...\n scroll(document.body)\n\n document.querySelectorAll(['[x-navigate\\\\:scroll]', '[wire\\\\:navigate\\\\:scroll]']).forEach(scroll)\n })\n })\n}\n", "import Alpine from 'alpinejs'\n\nlet els = {}\n\nexport function storePersistantElementsForLater(callback) {\n els = {}\n\n document.querySelectorAll('[x-persist]').forEach(i => {\n els[i.getAttribute('x-persist')] = i\n\n callback(i)\n\n Alpine.mutateDom(() => {\n i.remove()\n })\n })\n}\n\nexport function putPersistantElementsBack(callback) {\n let usedPersists = []\n\n document.querySelectorAll('[x-persist]').forEach(i => {\n let old = els[i.getAttribute('x-persist')]\n\n // There might be a brand new x-persist element...\n if (! old) return\n\n usedPersists.push(i.getAttribute('x-persist'))\n\n old._x_wasPersisted = true\n\n callback(old, i)\n\n Alpine.mutateDom(() => {\n i.replaceWith(old)\n })\n })\n\n Object.entries(els).forEach(([key, el]) => {\n if (usedPersists.includes(key)) return\n\n // Destory the un-used persist DOM trees before releasing them...\n Alpine.destroyTree(el)\n })\n\n // Release unused persists for garbage collection...\n els = {}\n}\n\nexport function isPersistedElement(el) {\n return el.hasAttribute('x-persist')\n}\n", "import NProgress from 'nprogress'\nimport { getNonce } from '@/utils'\n\nNProgress.configure({\n minimum: 0.1,\n trickleSpeed: 200,\n showSpinner: false,\n parent: 'body',\n})\n\ninjectStyles()\n\nlet inProgress = false\n\nexport function showAndStartProgressBar() {\n inProgress = true\n\n // Only show progress bar if it's been a little bit...\n setTimeout(() => {\n if (! inProgress) return\n\n NProgress.start()\n }, 150)\n}\n\nexport function finishAndHideProgressBar() {\n inProgress = false\n\n NProgress.done()\n}\n\nexport function removeAnyLeftOverStaleProgressBars() {\n NProgress.remove()\n}\n\nfunction injectStyles() {\n let style = document.createElement('style')\n\n style.innerHTML = `/* Make clicks pass-through */\n\n #nprogress {\n pointer-events: none;\n }\n\n #nprogress .bar {\n background: var(--livewire-progress-bar-color, #29d);\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n }\n\n /* Fancy blur effect */\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px var(--livewire-progress-bar-color, #29d), 0 0 5px var(--livewire-progress-bar-color, #29d);\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n\n /* Remove these to get rid of the spinner */\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n\n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: var(--livewire-progress-bar-color, #29d);\n border-left-color: var(--livewire-progress-bar-color, #29d);\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n\n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n\n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n\n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `\n\n let nonce = getNonce()\n\n if (nonce) style.nonce = nonce\n\n document.head.appendChild(style)\n}\n", "\nexport function packUpPersistedPopovers(persistedEl) {\n if (!isPopoverSupported()) return;\n\n persistedEl.querySelectorAll(':popover-open').forEach(el => {\n el.setAttribute('data-navigate-popover-open', '')\n\n let animations = el.getAnimations()\n\n // Gather any in-progress animations, serialize them, and pause them, for later re-triggering...\n el._pausedAnimations = animations.map(animation => ({\n keyframes: animation.effect.getKeyframes(),\n options: {\n duration: animation.effect.getTiming().duration,\n easing: animation.effect.getTiming().easing,\n fill: animation.effect.getTiming().fill,\n iterations: animation.effect.getTiming().iterations\n },\n currentTime: animation.currentTime,\n playState: animation.playState\n }))\n\n animations.forEach(i => i.pause())\n })\n}\n\nexport function unPackPersistedPopovers(persistedEl) {\n if (!isPopoverSupported()) return;\n\n persistedEl.querySelectorAll('[data-navigate-popover-open]').forEach(el => {\n el.removeAttribute('data-navigate-popover-open')\n\n // Wait for the popovers to be fully connected to the DOM...\n queueMicrotask(() => {\n if (! el.isConnected) return\n\n // Show them because disconnected popovers are force-hidden...\n el.showPopover()\n\n // End the out-of-the-box animations...\n el.getAnimations().forEach(i => i.finish())\n\n // If there are any paused animations, we need to re-trigger them...\n if (el._pausedAnimations) {\n el._pausedAnimations.forEach(({keyframes, options, currentTime, now, playState}) => {\n let animation = el.animate(keyframes, options);\n\n animation.currentTime = currentTime;\n })\n\n delete el._pausedAnimations\n }\n })\n })\n}\n\nfunction isPopoverSupported() {\n return typeof document.createElement('div').showPopover === 'function';\n}\n", "import { replaceNoncesInHtml, cloneScriptTag } from '@/utils'\n\nlet oldBodyScriptTagHashes = []\n\nlet attributesExemptFromScriptTagHashing = [\n 'data-csrf',\n 'nonce',\n 'aria-hidden',\n]\n\nexport function swapCurrentPageWithNewHtml(html, andThen) {\n // Rewrite nonces in the fetched HTML to match the original page's nonce\n // before parsing, so DOMParser doesn't trigger CSP violations...\n html = replaceNoncesInHtml(html)\n\n let newDocument = (new DOMParser()).parseFromString(html, \"text/html\")\n let newHtml = newDocument.documentElement\n let newBody = document.adoptNode(newDocument.body)\n let newHead = document.adoptNode(newDocument.head)\n\n oldBodyScriptTagHashes = oldBodyScriptTagHashes.concat(Array.from(document.body.querySelectorAll('script')).map(i => {\n return simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing))\n }))\n\n let afterRemoteScriptsHaveLoaded = () => {}\n\n replaceHtmlAttributes(newHtml)\n\n mergeNewHead(newHead).finally(() => {\n afterRemoteScriptsHaveLoaded()\n })\n\n prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes)\n\n let oldBody = document.body\n\n document.body.replaceWith(newBody)\n\n Alpine.destroyTree(oldBody)\n\n andThen(i => afterRemoteScriptsHaveLoaded = i)\n}\n\nfunction prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes) {\n newBody.querySelectorAll('script').forEach(i => {\n // We don't want to re-run script tags marked as \"data-navigate-once\"...\n if (i.hasAttribute('data-navigate-once')) {\n // However, if they didn't exist on the previous page, we do.\n // Therefore, we'll check the \"old body script hashes\" to\n // see if it was already there before skipping it...\n\n let hash = simpleHash(\n ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)\n )\n\n if (oldBodyScriptTagHashes.includes(hash)) return\n }\n\n i.replaceWith(cloneScriptTag(i))\n })\n}\n\nfunction replaceHtmlAttributes(newHtmlElement) {\n let currentHtmlElement = document.documentElement\n\n // Process attributes that are in the new element...\n Array.from(newHtmlElement.attributes).forEach(attr => {\n const name = attr.name\n const value = attr.value\n\n if (currentHtmlElement.getAttribute(name) !== value) {\n // Add or update attribute if the value differs...\n currentHtmlElement.setAttribute(name, value)\n }\n })\n\n // Remove remaining attributes that are not in the new element...\n Array.from(currentHtmlElement.attributes).forEach(attr => {\n if (!newHtmlElement.hasAttribute(attr.name)) {\n currentHtmlElement.removeAttribute(attr.name)\n }\n })\n}\n\nfunction mergeNewHead(newHead) {\n let children = Array.from(document.head.children)\n\n // Compare head assets ignoring nonces so that identical assets\n // with different nonces aren't treated as \"new\"...\n let headChildrenHtmlLookup = children.map(i =>\n ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)\n )\n\n // Only add scripts and styles that aren't already loaded on the page.\n let garbageCollector = document.createDocumentFragment()\n\n let touchedHeadElements = []\n\n let remoteScriptsPromises = []\n\n for (let child of Array.from(newHead.children)) {\n if (isAsset(child)) {\n let childHtml = ignoreAttributes(child.outerHTML, attributesExemptFromScriptTagHashing)\n\n if (! headChildrenHtmlLookup.includes(childHtml)) {\n if (isTracked(child)) {\n if (ifTheQueryStringChangedSinceLastRequest(child, children)) {\n setTimeout(() => window.location.reload())\n }\n }\n\n if (isScript(child)) {\n try {\n remoteScriptsPromises.push(\n injectScriptTagAndWaitForItToFullyLoad(\n cloneScriptTag(child)\n )\n )\n } catch (error) {\n // Let's eat any promise rejects so that we don't\n // break the rest of the Alpine intializing...\n // Any errors triggered by adding the script tag to the page\n // will still be thrown...\n }\n } else {\n document.head.appendChild(child)\n }\n } else {\n garbageCollector.appendChild(child)\n }\n\n touchedHeadElements.push(child)\n }\n }\n\n // Remove any assets that aren't on the new page...\n // @todo: Re-enable this code and find a better way to managed injected stylesheets. See livewire/livewire#6824\n // for (let child of Array.from(document.head.children)) {\n // if (isAsset(child)) {\n // if (! touchedHeadElements.some(i => i.outerHTML === child.outerHTML)) {\n // child.remove()\n // }\n // }\n // }\n\n // How to free up the garbage collector?\n\n // Remove existing non-asset elements like meta, base, title, template.\n for (let child of Array.from(document.head.children)) {\n if (! isAsset(child)) child.remove()\n }\n\n // Add new non-asset elements left over in the new head element.\n for (let child of Array.from(newHead.children)) {\n if (child.tagName.toLowerCase() === 'noscript') continue\n\n document.head.appendChild(child)\n }\n\n return Promise.all(remoteScriptsPromises)\n}\n\nasync function injectScriptTagAndWaitForItToFullyLoad(script) {\n return new Promise((resolve, reject) => {\n // Script assets need to be loaded synchronously so that scripts have\n // their global variables available...\n if (script.src) {\n script.onload = () => resolve()\n script.onerror = () => reject()\n } else {\n resolve()\n }\n\n document.head.appendChild(script)\n })\n}\n\nfunction isTracked(el) {\n return el.hasAttribute('data-navigate-track')\n}\n\nfunction ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) {\n let [uri, queryString] = extractUriAndQueryString(el)\n\n return currentHeadChildren.some(child => {\n if (! isTracked(child)) return false\n\n let [currentUri, currentQueryString] = extractUriAndQueryString(child)\n\n // Only consider a data-navigate-track element changed if the query string has changed (not the URI)...\n if (currentUri === uri && queryString !== currentQueryString) return true\n })\n}\n\nfunction extractUriAndQueryString(el) {\n let url = isScript(el) ? el.src : el.href\n\n return url.split('?')\n}\n\nfunction isAsset(el) {\n return (el.tagName.toLowerCase() === 'link' && el.getAttribute('rel').toLowerCase() === 'stylesheet')\n || el.tagName.toLowerCase() === 'style'\n || el.tagName.toLowerCase() === 'script'\n}\n\nfunction isScript(el) {\n return el.tagName.toLowerCase() === 'script'\n}\n\nfunction simpleHash(str) {\n return str.split('').reduce((a, b) => {\n a = ((a << 5) - a) + b.charCodeAt(0)\n\n return a & a\n }, 0);\n}\n\nfunction ignoreAttributes(subject, attributesToRemove) {\n let result = subject\n\n attributesToRemove.forEach(attr => {\n // Create a regex pattern to match the attribute and its value.\n // The regex handles attributes that have values surrounded by either single or double quotes.\n const regex = new RegExp(`${attr}=\"[^\"]*\"|${attr}='[^']*'`, 'g')\n\n result = result.replace(regex, '')\n })\n\n // Remove all whitespace to make things less flaky...\n result = result.replaceAll(' ', '')\n\n return result.trim()\n}\n", "import { replaceUrl, updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks, updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks, updateUrlAndStoreLatestHtmlForFutureBackButtons, whenTheBackOrForwardButtonIsClicked } from \"./history\"\nimport { getPretchedHtmlOr, prefetchHtml, storeThePrefetchedHtmlForWhenALinkIsClicked } from \"./prefetch\"\nimport { createUrlObjectFromString, extractDestinationFromLink, whenThisLinkIsHoveredFor, whenThisLinkIsPressed } from \"./links\"\nimport { isTeleportTarget, packUpPersistedTeleports, removeAnyLeftOverStaleTeleportTargets, unPackPersistedTeleports } from \"./teleport\"\nimport { restoreScrollPositionOrScrollToTop, storeScrollInformationInHtmlBeforeNavigatingAway } from \"./scroll\"\nimport { isPersistedElement, putPersistantElementsBack, storePersistantElementsForLater } from \"./persist\"\nimport { finishAndHideProgressBar, removeAnyLeftOverStaleProgressBars, showAndStartProgressBar } from \"./bar\"\nimport { packUpPersistedPopovers, unPackPersistedPopovers } from \"./popover\"\nimport { swapCurrentPageWithNewHtml } from \"./page\"\nimport { fetchHtml } from \"./fetch\"\n\nlet enablePersist = true\nlet showProgressBar = true\nlet restoreScroll = true\nlet autofocus = false\n\nexport default function (Alpine) {\n\n Alpine.navigate = (url, options = {}) => {\n let { preserveScroll = false } = options\n\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: false, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { preserveScroll })\n }\n\n Alpine.navigate.disableProgressBar = () => {\n showProgressBar = false\n }\n\n Alpine.addInitSelector(() => `[${Alpine.prefixed('navigate')}]`)\n\n Alpine.directive('navigate', (el, { modifiers }) => {\n let shouldPrefetchOnHover = modifiers.includes('hover')\n\n let preserveScroll = modifiers.includes('preserve-scroll')\n\n shouldPrefetchOnHover && whenThisLinkIsHoveredFor(el, 60, () => {\n let destination = extractDestinationFromLink(el)\n\n if (! destination) return\n\n prefetchHtml(destination, (html, finalDestination) => {\n storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination)\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n })\n\n whenThisLinkIsPressed(el, (whenItIsReleased) => {\n let destination = extractDestinationFromLink(el)\n\n if (! destination) return\n\n prefetchHtml(destination, (html, finalDestination) => {\n storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination)\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n\n whenItIsReleased(() => {\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: false, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { preserveScroll })\n })\n })\n })\n\n function navigateTo(destination, { preserveScroll = false, shouldPushToHistoryState = true }) {\n showProgressBar && showAndStartProgressBar()\n\n fetchHtmlOrUsePrefetchedHtml(destination, (html, finalDestination) => {\n // Fire the navigating event, allowing listeners to register onSwap callbacks\n let swapCallbacks = []\n\n fireEventForOtherLibrariesToHookInto('alpine:navigating', {\n onSwap: (callback) => swapCallbacks.push(callback)\n })\n\n restoreScroll && storeScrollInformationInHtmlBeforeNavigatingAway()\n\n cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement()\n\n // Only update the current page's history state if we're pushing to history.\n // For popstate-triggered navigations (shouldPushToHistoryState = false),\n // the history state has already changed and we shouldn't overwrite it.\n shouldPushToHistoryState && updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks()\n\n preventAlpineFromPickingUpDomChanges(Alpine, andAfterAllThis => {\n enablePersist && storePersistantElementsForLater(persistedEl => {\n packUpPersistedTeleports(persistedEl)\n packUpPersistedPopovers(persistedEl)\n })\n\n if (shouldPushToHistoryState) {\n updateUrlAndStoreLatestHtmlForFutureBackButtons(html, finalDestination)\n } else {\n replaceUrl(finalDestination, html)\n }\n\n swapCurrentPageWithNewHtml(html, (afterNewScriptsAreDoneLoading) => {\n removeAnyLeftOverStaleTeleportTargets(document.body)\n\n enablePersist && putPersistantElementsBack((persistedEl, newStub) => {\n unPackPersistedTeleports(persistedEl)\n unPackPersistedPopovers(persistedEl)\n })\n\n !preserveScroll && restoreScrollPositionOrScrollToTop()\n\n // Invoke any callbacks registered via onSwap during the navigating event\n swapCallbacks.forEach(callback => callback())\n\n afterNewScriptsAreDoneLoading(() => {\n andAfterAllThis(() => {\n setTimeout(() => {\n autofocus && autofocusElementsWithTheAutofocusAttribute()\n })\n\n nowInitializeAlpineOnTheNewPage(Alpine)\n\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n showProgressBar && finishAndHideProgressBar()\n })\n })\n })\n })\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n }\n\n whenTheBackOrForwardButtonIsClicked(\n (ifThePageBeingVisitedHasntBeenCached) => {\n ifThePageBeingVisitedHasntBeenCached((url) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: true, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { shouldPushToHistoryState: false })\n })\n },\n (html, url, currentPageUrl, currentPageKey) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: true, cached: true,\n })\n\n if (prevented) return\n\n // @todo: see if there's a way to update the current HTML BEFORE\n // the back button is hit, and not AFTER:\n storeScrollInformationInHtmlBeforeNavigatingAway()\n\n // Fire the navigating event, allowing listeners to register onSwap callbacks\n let swapCallbacks = []\n\n fireEventForOtherLibrariesToHookInto('alpine:navigating', {\n onSwap: (callback) => swapCallbacks.push(callback)\n })\n\n // Update the snapshot (not the history state, as the history state has\n // already changed to the new page due to the popstate event).\n // This ensures the current HTML has the latest snapshot.\n updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageKey, currentPageUrl)\n\n preventAlpineFromPickingUpDomChanges(Alpine, andAfterAllThis => {\n enablePersist && storePersistantElementsForLater(persistedEl => {\n packUpPersistedTeleports(persistedEl)\n packUpPersistedPopovers(persistedEl)\n })\n\n swapCurrentPageWithNewHtml(html, () => {\n removeAnyLeftOverStaleProgressBars()\n\n removeAnyLeftOverStaleTeleportTargets(document.body)\n\n enablePersist && putPersistantElementsBack((persistedEl, newStub) => {\n unPackPersistedTeleports(persistedEl)\n unPackPersistedPopovers(persistedEl)\n })\n\n restoreScrollPositionOrScrollToTop()\n\n // Invoke any callbacks registered via onSwap during the navigating event\n swapCallbacks.forEach(callback => callback())\n\n andAfterAllThis(() => {\n autofocus && autofocusElementsWithTheAutofocusAttribute()\n\n nowInitializeAlpineOnTheNewPage(Alpine)\n\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n })\n })\n })\n },\n )\n\n // Because DOMContentLoaded is fired on first load,\n // we should fire alpine:navigated as a replacement as well...\n setTimeout(() => {\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n })\n}\n\nfunction fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCallback) {\n getPretchedHtmlOr(fromDestination, callback, () => {\n fetchHtml(fromDestination, callback, errorCallback)\n })\n}\n\nfunction preventAlpineFromPickingUpDomChanges(Alpine, callback) {\n Alpine.stopObservingMutations()\n\n callback((afterAllThis) => {\n Alpine.startObservingMutations()\n\n queueMicrotask(() => {\n afterAllThis()\n })\n })\n}\n\nfunction fireEventForOtherLibrariesToHookInto(name, detail) {\n let event = new CustomEvent(name, {\n cancelable: true,\n bubbles: true,\n detail,\n })\n\n document.dispatchEvent(event)\n\n return event.defaultPrevented\n}\n\nfunction nowInitializeAlpineOnTheNewPage(Alpine) {\n Alpine.initTree(document.body, undefined, (el, skip) => {\n if (el._x_wasPersisted) skip()\n })\n}\n\nfunction autofocusElementsWithTheAutofocusAttribute() {\n document.querySelector('[autofocus]') && document.querySelector('[autofocus]').focus()\n}\n\nfunction cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() {\n // Create a new tree walker that skips persisted elements...\n let walker = function (root, callback) {\n Alpine.walk(root, (el, skip) => {\n if (isPersistedElement(el)) skip()\n if (isTeleportTarget(el)) skip()\n else callback(el, skip)\n })\n }\n\n // Set Alpine in motion to destroy itself on the page. If this proves\n // to be a performance issue at some point (walking the DOM tree),\n // we can be more surgical about cleaning up x-for/if instead...\n Alpine.destroyTree(document.body, walker)\n}\n", "import { isObjecty } from \"@/utils\"\nimport historyCoordinator from \"./coordinator\"\nimport { unwrap } from \"./utils\"\n\nexport default function history(Alpine) {\n Alpine.magic('queryString', (el, { interceptor }) => {\n let alias\n let alwaysShow = false\n let usePush = false\n\n return interceptor((initialSeedValue, getter, setter, path, key) => {\n let queryKey = alias || path\n\n let { initial, replace, push, pop } = track(queryKey, initialSeedValue, alwaysShow)\n\n setter(initial)\n\n if (! usePush) {\n Alpine.effect(() => replace(getter()))\n } else {\n Alpine.effect(() => push(getter()))\n\n pop(async newValue => {\n setter(newValue)\n\n let tillTheEndOfTheMicrotaskQueue = () => Promise.resolve()\n\n await tillTheEndOfTheMicrotaskQueue() // ...so that we preserve the internal lock...\n })\n }\n\n return initial\n }, func => {\n func.alwaysShow = () => { alwaysShow = true; return func }\n func.usePush = () => { usePush = true; return func }\n func.as = key => { alias = key; return func }\n })\n })\n\n Alpine.history = { track }\n}\n\nexport function track(name, initialSeedValue, alwaysShow = false, except = null) {\n let { has, get, set, remove } = queryStringUtils()\n\n let url = historyCoordinator.getUrl()\n let isInitiallyPresentInUrl = has(url, name)\n let initialValue = isInitiallyPresentInUrl ? get(url, name) : initialSeedValue\n let initialValueMemo = JSON.stringify(initialValue)\n let exceptValueMemo = JSON.stringify(except)\n\n let hasReturnedToInitialValue = (newValue) => JSON.stringify(newValue) === initialValueMemo\n let hasReturnedToExceptValue = (newValue) => JSON.stringify(newValue) === exceptValueMemo\n\n if (alwaysShow) url = set(url, name, initialValue)\n\n replace(url, name, { value: initialValue })\n\n let lock = false\n\n let update = (strategy, newValue) => {\n if (lock) return\n\n let url = historyCoordinator.getUrl()\n\n // This block of code is what needs to be changed for this failing test to pass:\n if (! alwaysShow && ! isInitiallyPresentInUrl && hasReturnedToInitialValue(newValue)) {\n url = remove(url, name)\n // This is so that when deeply nested values are tracked, but their parent array/object\n // is removed, we can handle it gracefully by removing the entry from the URL instead\n // of letting it get set to `?someKey=undefined` which causes issues on refresh...\n } else if (newValue === undefined) {\n url = remove(url, name)\n } else if (! alwaysShow && hasReturnedToExceptValue(newValue)) {\n url = remove(url, name)\n } else {\n url = set(url, name, newValue)\n }\n\n // Right now, the above block, checks a few conditions and updates/removes an entry from the query string.\n // The new strategy needs to be something like:\n // - If \"alwaysShow\" is toggled on, then just \"set\" the whole thing with no deep diff\n // - Otherwise, run a deep comparison callback (given the original value and new value).\n // - The callback recieves two params (leaf name and value)\n // - Check leaf name and value for existance in the original URL from page load. If it's there, just call \"set\"\n // - Check leaf name and value for equivelance to original name and value, if equal, call \"remove\", otherwise, \"set\"\n\n // That code will look something like this:\n\n // if (alwaysShow) {\n // set(url, name, newValue)\n // } else {\n // deepCompare(name, newValue, originalValue, (leafName, leafValue) => {\n // // ....\n // })\n // }\n\n strategy(url, name, { value: newValue})\n }\n\n return {\n initial: initialValue,\n\n replace(newValue) { // Update via replaceState...\n update(replace, newValue)\n },\n\n push(newValue) { // Update via pushState...\n update(push, newValue)\n },\n\n pop(receiver) { // \"popstate\" handler...\n let handler = (e) => {\n if (! e.state || ! e.state.alpine) return\n\n Object.entries(e.state.alpine).forEach(([iName, { value: newValue }]) => {\n if (iName !== name) return\n\n lock = true\n\n // Allow the \"receiver\" to be an async function in case a non-syncronous\n // operation (like an ajax) requests needs to happen while preserving\n // the \"locking\" mechanism (\"lock = true\" in this case)...\n let result = receiver(newValue)\n\n if (result instanceof Promise) {\n result.finally(() => lock = false)\n } else {\n lock = false\n }\n })\n }\n\n window.addEventListener('popstate', handler)\n\n return () => window.removeEventListener('popstate', handler)\n }\n }\n}\n\nfunction replace(url, key, object) {\n historyCoordinator.replaceState(url, { [key]: object })\n}\n\nfunction push(url, key, object) {\n historyCoordinator.pushState(url, { [key]: object })\n}\n\nfunction queryStringUtils() {\n return {\n has(url, key) {\n let search = url.search\n\n if (! search) return false\n\n let data = fromQueryString(search, key)\n\n return Object.keys(data).includes(key)\n },\n get(url, key) {\n let search = url.search\n\n if (! search) return false\n\n let data = fromQueryString(search, key)\n\n return data[key]\n },\n set(url, key, value) {\n let data = fromQueryString(url.search, key)\n\n data[key] = stripNulls(unwrap(value))\n\n url.search = toQueryString(data)\n\n return url\n },\n remove(url, key) {\n let data = fromQueryString(url.search, key)\n\n delete data[key]\n\n url.search = toQueryString(data)\n\n return url\n },\n }\n}\n\nfunction stripNulls(value) {\n if (! isObjecty(value)) return value\n\n for (let key in value) {\n if (value[key] === null) delete value[key]\n else value[key] = stripNulls(value[key])\n }\n\n return value\n}\n\n// This function converts JavaScript data to bracketed query string notation...\n// { items: [['foo']] } -> \"items[0][0]=foo\"\nfunction toQueryString(data) {\n let isObjecty = (subject) => typeof subject === 'object' && subject !== null\n\n let buildQueryStringEntries = (data, entries = {}, baseKey = '') => {\n Object.entries(data).forEach(([iKey, iValue]) => {\n let key = baseKey === '' ? iKey : `${baseKey}[${iKey}]`\n\n if (iValue === null) {\n entries[key] = '';\n } else if (! isObjecty(iValue)) {\n entries[key] = encodeURIComponent(iValue)\n .replaceAll('%20', '+') // Conform to RFC1738\n .replaceAll('%2C', ',')\n } else {\n entries = {...entries, ...buildQueryStringEntries(iValue, entries, key)}\n }\n })\n\n return entries\n }\n\n let entries = buildQueryStringEntries(data)\n\n return Object.entries(entries).map(([key, value]) => `${key}=${value}`).join('&')\n}\n\n// This function converts bracketed query string notation back to JS data...\n// \"items[0][0]=foo\" -> { items: [['foo']] }\nfunction fromQueryString(search, queryKey) {\n search = search.replace('?', '')\n\n if (search === '') return {}\n\n let insertDotNotatedValueIntoData = (key, value, data) => {\n let [first, second, ...rest] = key.split('.')\n\n // We're at a leaf node, let's make the assigment...\n if (! second) return data[key] = value\n\n // This is where we fill in empty arrays/objects allong the way to the assigment...\n if (data[first] === undefined) {\n data[first] = isNaN(second) ? {} : []\n }\n\n // Keep deferring assignment until the full key is built up...\n insertDotNotatedValueIntoData([second, ...rest].join('.'), value, data[first])\n }\n\n let entries = search.split('&').map(i => i.split('='))\n\n // let data = {} creates a security (XSS) vulnerability here. We need to use\n // Object.create(null) instead so that we have a \"pure\" object that doesnt\n // inherit Object.prototype and expose the js internals to manipulation.\n let data = Object.create(null)\n\n entries.forEach(([key, value]) => {\n // Query string params don't always have values... (`?foo=`)\n if ( typeof value == 'undefined' ) return;\n\n value = decodeURIComponent(value.replaceAll('+', '%20'))\n\n let decodedKey = decodeURIComponent(key)\n\n let shouldBeHandledAsArray = decodedKey.includes('[') && decodedKey.startsWith(queryKey)\n\n if (!shouldBeHandledAsArray) {\n data[key] = value\n } else {\n // Convert to dot notation because it's easier...\n let dotNotatedKey = decodedKey.replaceAll('[', '.').replaceAll(']', '')\n\n insertDotNotatedValueIntoData(dotNotatedKey, value, data)\n }\n })\n\n return data\n}\n", "// packages/morph/src/morph.js\nfunction morph(from, toHtml, options) {\n monkeyPatchDomSetAttributeToAllowAtSymbols();\n let context = createMorphContext(options);\n let toEl = typeof toHtml === \"string\" ? createElement(toHtml) : toHtml;\n if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) {\n toEl._x_dataStack = window.Alpine.closestDataStack(from);\n toEl._x_dataStack && window.Alpine.cloneNode(from, toEl);\n }\n context.patch(from, toEl);\n return from;\n}\nfunction morphBetween(startMarker, endMarker, toHtml, options = {}) {\n monkeyPatchDomSetAttributeToAllowAtSymbols();\n let context = createMorphContext(options);\n let fromContainer = startMarker.parentNode;\n let fromBlock = new Block(startMarker, endMarker);\n let toContainer = typeof toHtml === \"string\" ? (() => {\n let container = document.createElement(\"div\");\n container.insertAdjacentHTML(\"beforeend\", toHtml);\n return container;\n })() : toHtml;\n let toStartMarker = document.createComment(\"[morph-start]\");\n let toEndMarker = document.createComment(\"[morph-end]\");\n toContainer.insertBefore(toStartMarker, toContainer.firstChild);\n toContainer.appendChild(toEndMarker);\n let toBlock = new Block(toStartMarker, toEndMarker);\n if (window.Alpine && window.Alpine.closestDataStack) {\n toContainer._x_dataStack = window.Alpine.closestDataStack(fromContainer);\n toContainer._x_dataStack && window.Alpine.cloneNode(fromContainer, toContainer);\n }\n context.patchChildren(fromBlock, toBlock);\n}\nfunction createMorphContext(options = {}) {\n let defaultGetKey = (el) => el.getAttribute(\"key\");\n let noop = () => {\n };\n let context = {\n key: options.key || defaultGetKey,\n lookahead: options.lookahead || false,\n updating: options.updating || noop,\n updated: options.updated || noop,\n removing: options.removing || noop,\n removed: options.removed || noop,\n adding: options.adding || noop,\n added: options.added || noop\n };\n context.patch = function(from, to) {\n if (context.differentElementNamesTypesOrKeys(from, to)) {\n return context.swapElements(from, to);\n }\n let updateChildrenOnly = false;\n let skipChildren = false;\n let skipUntil = (predicate) => context.skipUntilCondition = predicate;\n if (shouldSkipChildren(context.updating, () => skipChildren = true, skipUntil, from, to, () => updateChildrenOnly = true))\n return;\n if (from.nodeType === 1 && window.Alpine) {\n window.Alpine.cloneNode(from, to);\n if (from._x_teleport && to._x_teleport) {\n context.patch(from._x_teleport, to._x_teleport);\n }\n }\n if (textOrComment(to)) {\n context.patchNodeValue(from, to);\n context.updated(from, to);\n return;\n }\n if (!updateChildrenOnly) {\n context.patchAttributes(from, to);\n }\n context.updated(from, to);\n if (!skipChildren) {\n context.patchChildren(from, to);\n }\n };\n context.differentElementNamesTypesOrKeys = function(from, to) {\n return from.nodeType != to.nodeType || from.nodeName != to.nodeName || context.getKey(from) != context.getKey(to);\n };\n context.swapElements = function(from, to) {\n if (shouldSkip(context.removing, from))\n return;\n let toCloned = to.cloneNode(true);\n if (shouldSkip(context.adding, toCloned))\n return;\n from.replaceWith(toCloned);\n context.removed(from);\n context.added(toCloned);\n };\n context.patchNodeValue = function(from, to) {\n let value = to.nodeValue;\n if (from.nodeValue !== value) {\n from.nodeValue = value;\n }\n };\n context.patchAttributes = function(from, to) {\n if (from._x_transitioning)\n return;\n if (from._x_isShown && !to._x_isShown) {\n return;\n }\n if (!from._x_isShown && to._x_isShown) {\n return;\n }\n let domAttributes = Array.from(from.attributes);\n let toAttributes = Array.from(to.attributes);\n for (let i = domAttributes.length - 1; i >= 0; i--) {\n let name = domAttributes[i].name;\n if (!to.hasAttribute(name)) {\n if (name === \"open\" && from.nodeName === \"DIALOG\" && from.open) {\n from.close();\n } else {\n from.removeAttribute(name);\n }\n }\n }\n for (let i = toAttributes.length - 1; i >= 0; i--) {\n let name = toAttributes[i].name;\n let value = toAttributes[i].value;\n if (from.getAttribute(name) !== value) {\n from.setAttribute(name, value);\n }\n }\n };\n context.patchChildren = function(from, to) {\n let fromKeys = context.keyToMap(from.children);\n let fromKeyHoldovers = {};\n let currentTo = getFirstNode(to);\n let currentFrom = getFirstNode(from);\n while (currentTo) {\n seedingMatchingId(currentTo, currentFrom);\n let toKey = context.getKey(currentTo);\n let fromKey = context.getKey(currentFrom);\n if (context.skipUntilCondition) {\n let fromDone = !currentFrom || context.skipUntilCondition(currentFrom);\n let toDone = !currentTo || context.skipUntilCondition(currentTo);\n if (fromDone && toDone) {\n context.skipUntilCondition = null;\n } else {\n if (!fromDone)\n currentFrom = currentFrom && getNextSibling(from, currentFrom);\n if (!toDone)\n currentTo = currentTo && getNextSibling(to, currentTo);\n continue;\n }\n }\n if (!currentFrom) {\n if (toKey && fromKeyHoldovers[toKey]) {\n let holdover = fromKeyHoldovers[toKey];\n from.appendChild(holdover);\n currentFrom = holdover;\n fromKey = context.getKey(currentFrom);\n } else {\n if (!shouldSkip(context.adding, currentTo)) {\n let clone = currentTo.cloneNode(true);\n from.appendChild(clone);\n context.added(clone);\n }\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n }\n let isIf = (node) => node && node.nodeType === 8 && node.textContent === \"[if BLOCK]><![endif]\";\n let isEnd = (node) => node && node.nodeType === 8 && node.textContent === \"[if ENDBLOCK]><![endif]\";\n if (isIf(currentTo) && isIf(currentFrom)) {\n let nestedIfCount = 0;\n let fromBlockStart = currentFrom;\n while (currentFrom) {\n let next = getNextSibling(from, currentFrom);\n if (isIf(next)) {\n nestedIfCount++;\n } else if (isEnd(next) && nestedIfCount > 0) {\n nestedIfCount--;\n } else if (isEnd(next) && nestedIfCount === 0) {\n currentFrom = next;\n break;\n }\n currentFrom = next;\n }\n let fromBlockEnd = currentFrom;\n nestedIfCount = 0;\n let toBlockStart = currentTo;\n while (currentTo) {\n let next = getNextSibling(to, currentTo);\n if (isIf(next)) {\n nestedIfCount++;\n } else if (isEnd(next) && nestedIfCount > 0) {\n nestedIfCount--;\n } else if (isEnd(next) && nestedIfCount === 0) {\n currentTo = next;\n break;\n }\n currentTo = next;\n }\n let toBlockEnd = currentTo;\n let fromBlock = new Block(fromBlockStart, fromBlockEnd);\n let toBlock = new Block(toBlockStart, toBlockEnd);\n context.patchChildren(fromBlock, toBlock);\n continue;\n }\n if (currentFrom.nodeType === 1 && context.lookahead && !currentFrom.isEqualNode(currentTo)) {\n let nextToElementSibling = getNextSibling(to, currentTo);\n let found = false;\n while (!found && nextToElementSibling) {\n if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) {\n found = true;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKey = context.getKey(currentFrom);\n }\n nextToElementSibling = getNextSibling(to, nextToElementSibling);\n }\n }\n if (toKey !== fromKey) {\n if (!toKey && fromKey) {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKeyHoldovers[fromKey].remove();\n currentFrom = getNextSibling(from, currentFrom);\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n if (toKey && !fromKey) {\n if (fromKeys[toKey]) {\n currentFrom.replaceWith(fromKeys[toKey]);\n currentFrom = fromKeys[toKey];\n fromKey = context.getKey(currentFrom);\n }\n }\n if (toKey && fromKey) {\n let fromKeyNode = fromKeys[toKey];\n if (fromKeyNode) {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom.replaceWith(fromKeyNode);\n currentFrom = fromKeyNode;\n fromKey = context.getKey(currentFrom);\n } else {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKeyHoldovers[fromKey].remove();\n currentFrom = getNextSibling(from, currentFrom);\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n }\n }\n let currentFromNext = currentFrom && getNextSibling(from, currentFrom);\n context.patch(currentFrom, currentTo);\n currentTo = currentTo && getNextSibling(to, currentTo);\n currentFrom = currentFromNext;\n }\n let removals = [];\n while (currentFrom) {\n if (!shouldSkip(context.removing, currentFrom))\n removals.push(currentFrom);\n currentFrom = getNextSibling(from, currentFrom);\n }\n while (removals.length) {\n let domForRemoval = removals.shift();\n domForRemoval.remove();\n context.removed(domForRemoval);\n }\n };\n context.getKey = function(el) {\n return el && el.nodeType === 1 && context.key(el);\n };\n context.keyToMap = function(els) {\n let map = {};\n for (let el of els) {\n let theKey = context.getKey(el);\n if (theKey) {\n map[theKey] = el;\n }\n }\n return map;\n };\n context.addNodeBefore = function(parent, node, beforeMe) {\n if (!shouldSkip(context.adding, node)) {\n let clone = node.cloneNode(true);\n parent.insertBefore(clone, beforeMe);\n context.added(clone);\n return clone;\n }\n return node;\n };\n return context;\n}\nmorph.step = () => {\n};\nmorph.log = () => {\n};\nfunction shouldSkip(hook, ...args) {\n let skip = false;\n hook(...args, () => skip = true);\n return skip;\n}\nfunction shouldSkipChildren(hook, skipChildren, skipUntil, ...args) {\n let skip = false;\n hook(...args, () => skip = true, skipChildren, skipUntil);\n return skip;\n}\nvar patched = false;\nfunction createElement(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content.firstElementChild;\n}\nfunction textOrComment(el) {\n return el.nodeType === 3 || el.nodeType === 8;\n}\nvar Block = class {\n constructor(start, end) {\n this.startComment = start;\n this.endComment = end;\n }\n get children() {\n let children = [];\n let currentNode = this.startComment.nextSibling;\n while (currentNode && currentNode !== this.endComment) {\n children.push(currentNode);\n currentNode = currentNode.nextSibling;\n }\n return children;\n }\n appendChild(child) {\n this.endComment.before(child);\n }\n get firstChild() {\n let first = this.startComment.nextSibling;\n if (first === this.endComment)\n return;\n return first;\n }\n nextNode(reference) {\n let next = reference.nextSibling;\n if (next === this.endComment)\n return;\n return next;\n }\n insertBefore(newNode, reference) {\n reference.before(newNode);\n return newNode;\n }\n};\nfunction getFirstNode(parent) {\n return parent.firstChild;\n}\nfunction getNextSibling(parent, reference) {\n let next;\n if (parent instanceof Block) {\n next = parent.nextNode(reference);\n } else {\n next = reference.nextSibling;\n }\n return next;\n}\nfunction monkeyPatchDomSetAttributeToAllowAtSymbols() {\n if (patched)\n return;\n patched = true;\n let original = Element.prototype.setAttribute;\n let hostDiv = document.createElement(\"div\");\n Element.prototype.setAttribute = function newSetAttribute(name, value) {\n if (!name.includes(\"@\")) {\n return original.call(this, name, value);\n }\n let escapedValue = value.replace(/&/g, \"&\").replace(/\"/g, \""\");\n hostDiv.innerHTML = `<span ${name}=\"${escapedValue}\"></span>`;\n let attr = hostDiv.firstElementChild.getAttributeNode(name);\n hostDiv.firstElementChild.removeAttributeNode(attr);\n this.setAttributeNode(attr);\n };\n}\nfunction seedingMatchingId(to, from) {\n let fromId = from && from._x_bindings && from._x_bindings.id;\n if (!fromId)\n return;\n if (!to.setAttribute)\n return;\n to.setAttribute(\"id\", fromId);\n to.id = fromId;\n}\n\n// packages/morph/src/index.js\nfunction src_default(Alpine) {\n Alpine.morph = morph;\n Alpine.morphBetween = morphBetween;\n}\n\n// packages/morph/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as morph\n};\n", "// packages/mask/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"mask\", (el, { value, expression }, { effect, evaluateLater, cleanup }) => {\n let templateFn = () => expression;\n let lastInputValue = \"\";\n queueMicrotask(() => {\n if ([\"function\", \"dynamic\"].includes(value)) {\n let evaluator = evaluateLater(expression);\n effect(() => {\n templateFn = (input) => {\n let result;\n Alpine.dontAutoEvaluateFunctions(() => {\n evaluator((value2) => {\n result = typeof value2 === \"function\" ? value2(input) : value2;\n }, { scope: {\n // These are \"magics\" we'll make available to the x-mask:function:\n \"$input\": input,\n \"$money\": formatMoney.bind({ el })\n } });\n });\n return result;\n };\n processInputValue(el, false);\n });\n } else {\n processInputValue(el, false);\n }\n if (el._x_model) {\n if (el._x_model.get() !== el.value) {\n if (!(el._x_model.get() === null && el.value === \"\")) {\n el._x_model.set(el.value);\n }\n }\n let updater = el._x_forceModelUpdate;\n el._x_forceModelUpdate = (value2) => {\n value2 = String(value2);\n let template = templateFn(value2);\n if (template && template !== \"false\") {\n value2 = formatInput(template, value2);\n }\n lastInputValue = value2;\n updater(value2);\n el._x_model.set(value2);\n };\n }\n });\n const controller = new AbortController();\n cleanup(() => {\n controller.abort();\n });\n el.addEventListener(\"input\", () => processInputValue(el), {\n signal: controller.signal,\n // Setting this as a capture phase listener to ensure it runs\n // before wire:model or x-model added as a latent binding...\n capture: true\n });\n el.addEventListener(\"blur\", () => processInputValue(el, false), { signal: controller.signal });\n function processInputValue(el2, shouldRestoreCursor = true) {\n let input = el2.value;\n let template = templateFn(input);\n if (!template || template === \"false\")\n return false;\n if (lastInputValue.length - el2.value.length === 1) {\n return lastInputValue = el2.value;\n }\n let setInput = () => {\n lastInputValue = el2.value = formatInput(template, input);\n };\n if (shouldRestoreCursor) {\n restoreCursorPosition(el2, template, () => {\n setInput();\n });\n } else {\n setInput();\n }\n }\n }).before(\"model\");\n}\nfunction restoreCursorPosition(el, template, callback) {\n let cursorPosition = el.selectionStart;\n let unformattedValue = el.value;\n callback();\n let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition);\n let newPosition = formatInput(\n template,\n beforeLeftOfCursorBeforeFormatting\n ).length;\n el.setSelectionRange(newPosition, newPosition);\n}\nvar regexes = {\n \"9\": /[0-9]/,\n \"a\": /[a-zA-Z]/,\n \"*\": /[a-zA-Z0-9]/\n};\nfunction formatInput(template, input) {\n let templateMark = 0;\n let inputMark = 0;\n let output = \"\";\n while (templateMark < template.length && inputMark < input.length) {\n let templateChar = template[templateMark];\n let inputChar = input[inputMark];\n if (templateChar in regexes) {\n if (regexes[templateChar].test(inputChar)) {\n output += inputChar;\n templateMark++;\n }\n inputMark++;\n } else {\n output += templateChar;\n templateMark++;\n if (templateChar === input[inputMark])\n inputMark++;\n }\n }\n return output;\n}\nfunction formatMoney(input, delimiter = \".\", thousands, precision = 2) {\n if (input === \"-\")\n return \"-\";\n if (/^\\D+$/.test(input))\n return \"9\";\n if (thousands === null || thousands === void 0) {\n thousands = delimiter === \",\" ? \".\" : \",\";\n }\n let addThousands = (input2, thousands2) => {\n let output = \"\";\n let counter = 0;\n for (let i = input2.length - 1; i >= 0; i--) {\n if (input2[i] === thousands2)\n continue;\n if (counter === 3) {\n output = input2[i] + thousands2 + output;\n counter = 0;\n } else {\n output = input2[i] + output;\n }\n counter++;\n }\n return output;\n };\n let minus = input.startsWith(\"-\") ? \"-\" : \"\";\n let strippedInput = input.replaceAll(new RegExp(`[^0-9\\\\${delimiter}]`, \"g\"), \"\");\n let template = Array.from({ length: strippedInput.split(delimiter)[0].length }).fill(\"9\").join(\"\");\n template = `${minus}${addThousands(template, thousands)}`;\n if (precision > 0 && input.includes(delimiter))\n template += `${delimiter}` + \"9\".repeat(precision);\n queueMicrotask(() => {\n if (this.el.value.endsWith(delimiter))\n return;\n if (this.el.value[this.el.selectionStart - 1] === delimiter) {\n this.el.setSelectionRange(this.el.selectionStart - 1, this.el.selectionStart - 1);\n }\n });\n return template;\n}\n\n// packages/mask/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n formatInput,\n src_default as mask\n};\n", "import { findComponentByEl, destroyComponent, initComponent, hasComponent } from './store'\nimport { matchesForLivewireDirective, extractDirective } from './directives'\nimport { trigger } from './hooks'\nimport collapse from '@alpinejs/collapse'\nimport focus from '@alpinejs/focus'\nimport persist from '@alpinejs/persist'\nimport intersect from '@alpinejs/intersect'\nimport sort from '@alpinejs/sort'\nimport resize from '@alpinejs/resize'\nimport anchor from '@alpinejs/anchor'\nimport navigate from './plugins/navigate'\nimport history from './plugins/history'\nimport morph from '@alpinejs/morph'\nimport mask from '@alpinejs/mask'\nimport Alpine from 'alpinejs'\nimport { dispatch } from './utils'\n\nexport function start() {\n setTimeout(() => ensureLivewireScriptIsntMisplaced())\n\n dispatch(document, 'livewire:init')\n dispatch(document, 'livewire:initializing')\n\n Alpine.plugin(morph)\n Alpine.plugin(history)\n Alpine.plugin(intersect)\n Alpine.plugin(sort)\n Alpine.plugin(resize)\n Alpine.plugin(collapse)\n Alpine.plugin(anchor)\n Alpine.plugin(focus)\n Alpine.plugin(persist)\n Alpine.plugin(navigate)\n Alpine.plugin(mask)\n\n Alpine.addRootSelector(() => '[wire\\\\:id]')\n\n Alpine.onAttributesAdded((el, attributes) => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n let component = findComponentByEl(el, false)\n\n if (! component) return\n\n attributes.forEach(attribute => {\n if (! matchesForLivewireDirective(attribute.name)) return;\n\n let directive = extractDirective(el, attribute.name)\n\n trigger('directive.init', { el, component, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n })\n\n Alpine.interceptInit(\n Alpine.skipDuringClone(el => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(el.attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n if (el.hasAttribute('wire:id') && ! el.__livewire && ! hasComponent(el.getAttribute('wire:id'))) {\n let component = initComponent(el)\n\n Alpine.onAttributeRemoved(el, 'wire:id', () => {\n destroyComponent(component.id)\n })\n }\n\n let directives = Array.from(el.getAttributeNames())\n .filter(name => matchesForLivewireDirective(name))\n .map(name => extractDirective(el, name))\n\n directives.forEach(directive => {\n trigger('directive.global.init', { el, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n\n let component = findComponentByEl(el, false)\n\n if (component) {\n trigger('element.init', { el, component })\n\n directives.forEach(directive => {\n trigger('directive.init', { el, component, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n }\n },\n // We still want global directives to be processed during cloning, so we can do that in this fallback callback...\n el => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(el.attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n let directives = Array.from(el.getAttributeNames())\n .filter(name => matchesForLivewireDirective(name))\n .map(name => extractDirective(el, name))\n\n directives.forEach(directive => {\n trigger('directive.global.init', { el, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n })\n )\n\n Alpine.start()\n\n setTimeout(() => window.Livewire.initialRenderIsFinished = true)\n\n dispatch(document, 'livewire:initialized')\n}\n\nfunction ensureLivewireScriptIsntMisplaced() {\n let el = document.querySelector('script[data-update-uri][data-csrf]')\n\n // If there is no Livewire-injected script on the page, move on...\n if (! el) return\n\n // If there is, let's ensure it's at the top-level. If it's nested\n // inside a normal element, that probably means that a closing\n // tag was missing in the template and Chrome moved the tag.\n\n // We're only checking for \"div\" here because it's quick and useful...\n let livewireEl = el.closest('[wire\\\\:id]')\n\n if (livewireEl) {\n console.warn('Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.', livewireEl)\n }\n}\n", "import { dispatchGlobal as dispatch, dispatchTo, on } from './events'\nimport { find, first, getByName, all } from './store'\nimport { start } from './lifecycle'\nimport { on as hook, trigger, triggerAsync } from './hooks'\nimport { directive } from './directives'\nimport Alpine from 'alpinejs'\nimport { fireAction, interceptAction, interceptMessage, interceptRequest } from '@/request'\n\nlet Livewire = {\n directive,\n dispatchTo,\n // @todo: See if this can be injected from a v4 feature...\n interceptAction: (callback) => interceptAction(callback),\n interceptMessage: (callback) => interceptMessage(callback),\n interceptRequest: (callback) => interceptRequest(callback),\n fireAction: (component, method, params = [], metadata = {}) => fireAction(component, method, params, metadata),\n start,\n first,\n find,\n getByName,\n all,\n hook,\n trigger,\n triggerAsync,\n dispatch,\n on,\n get navigate() {\n return Alpine.navigate\n }\n}\n\nlet warnAboutMultipleInstancesOf = entity => console.warn(`Detected multiple instances of ${entity} running`)\n\nif (window.Livewire) warnAboutMultipleInstancesOf('Livewire')\nif (window.Alpine) warnAboutMultipleInstancesOf('Alpine')\n\n// Register features...\nimport './features/index'\n\n// Register directives...\nimport './directives/index'\n\n// Make globals...\nwindow.Livewire = Livewire\nwindow.Alpine = Alpine\n\nif (window.livewireScriptConfig === undefined) {\n window.Alpine.__fromLivewire = true\n\n document.addEventListener('DOMContentLoaded', () => {\n if (window.Alpine.__fromLivewire === undefined) {\n // If this is undefined, we know that an outside Alpine bundle\n // has been included on the page and will cause problems...\n warnAboutMultipleInstancesOf('Alpine')\n }\n\n // Start Livewire...\n Livewire.start()\n })\n}\n\nexport { Livewire, Alpine }\n", "import { on as hook } from '@/hooks'\n\nhook('effect', ({ component, effects }) => {\n registerListeners(component, effects.listeners || [])\n})\n\nfunction registerListeners(component, listeners) {\n listeners.forEach(name => {\n // Register a global listener...\n let handler = (e) => {\n if (component.isLazy && ! component.hasBeenLazyLoaded) return\n\n if (e.__livewire) e.__livewire.receivedBy.push(component)\n\n component.$wire.call('__dispatch', name, e.detail || {})\n }\n\n window.addEventListener(name, handler)\n\n component.addCleanup(() => window.removeEventListener(name, handler))\n\n // Register a listener for when \"to\" or \"self\"\n component.el.addEventListener(name, (e) => {\n if (component.isLazy && ! component.hasBeenLazyLoaded) return\n\n // We don't care about non-Livewire dispatches...\n if (! e.__livewire) return\n\n // We don't care about Livewire bubbling dispatches (only \"to\" and \"self\")...\n if (e.bubbles) return\n\n if (e.__livewire) e.__livewire.receivedBy.push(component.id)\n\n component.$wire.call('__dispatch', name, e.detail || {})\n })\n })\n}\n\n\n", "import { on } from '@/hooks'\nimport Alpine from 'alpinejs'\nimport { evaluateExpression } from '../evaluator'\nimport { replaceNoncesInHtml, cloneScriptTag } from '../utils'\n\nlet executedScripts = new WeakMap\n\nlet executedAssets = new Set\n\non('payload.intercept', async ({ assets }) => {\n if(! assets) return\n\n for (let [key, asset] of Object.entries(assets)) {\n await onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, async () => {\n await addAssetsToHeadTagOfPage(asset)\n })\n }\n})\n\n// Assets that were injected into the HTML need to be registered so that\n// they aren't loaded again...\non('component.init', ({ component }) => {\n let assets = component.snapshot.memo.assets\n\n if (assets) {\n assets.forEach((key) => {\n if (executedAssets.has(key)) return\n executedAssets.add(key)\n })\n }\n})\n\non('effect', ({ component, effects }) => {\n let scripts = effects.scripts\n\n if (scripts) {\n Object.entries(scripts).forEach(([key, content]) => {\n onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, () => {\n let scriptContent = extractScriptTagContent(content)\n\n // Always wrap @script content in an IIFE since it's multi-statement code.\n // Alpine's evaluator tries to detect let/const at the start, but doesn't\n // account for leading comments which causes syntax errors.\n scriptContent = scriptContent.includes('await')\n ? `(async()=>{ ${scriptContent} })()`\n : `(()=>{ ${scriptContent} })()`\n\n Alpine.dontAutoEvaluateFunctions(() => {\n evaluateExpression(component.el, scriptContent, {\n context: component.$wire,\n scope: {\n '$wire': component.$wire,\n '$js': component.$wire.js,\n },\n })\n })\n })\n })\n }\n})\n\nfunction onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, callback) {\n if (executedScripts.has(component)) {\n let alreadyRunKeys = executedScripts.get(component)\n\n if (alreadyRunKeys.includes(key)) return\n }\n\n callback()\n\n if (! executedScripts.has(component)) executedScripts.set(component, [])\n\n let alreadyRunKeys = executedScripts.get(component)\n\n alreadyRunKeys.push(key)\n\n executedScripts.set(component, alreadyRunKeys)\n}\n\nfunction extractScriptTagContent(rawHtml) {\n let scriptRegex = /<script\\b[^>]*>([\\s\\S]*?)<\\/script>/gm\n let matches = scriptRegex.exec(rawHtml)\n let innards = matches && matches[1] ? matches[1].trim() : ''\n\n return innards\n}\n\nasync function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callback) {\n if (executedAssets.has(key)) return\n\n executedAssets.add(key)\n\n await callback()\n}\n\nasync function addAssetsToHeadTagOfPage(rawHtml) {\n // Rewrite nonces in the asset HTML to match the initial page's nonce.\n // Assets from Livewire update requests have a new nonce, but the browser\n // still enforces the original page's CSP header...\n rawHtml = replaceNoncesInHtml(rawHtml)\n\n let newDocument = (new DOMParser()).parseFromString(rawHtml, \"text/html\")\n let newHead = document.adoptNode(newDocument.head)\n\n for (let child of newHead.children) {\n try {\n await runAssetSynchronously(child)\n } catch (error) {\n // Let's eat any promise rejects so that we don't\n // break the rest of Livewire's handling of the response...\n // Any errors triggered by adding the script tag to the page\n // will still be thrown...\n }\n }\n}\n\nasync function runAssetSynchronously(child) {\n return new Promise((resolve, reject) => {\n if (isScript(child)) {\n let script = cloneScriptTag(child)\n\n // Script assets need to be loaded synchronously so that scripts have\n // their global variables available...\n if (script.src) {\n script.onload = () => resolve()\n script.onerror = () => reject()\n } else {\n resolve()\n }\n\n document.head.appendChild(script)\n } else {\n document.head.appendChild(child)\n\n resolve()\n }\n })\n}\n\nfunction isScript(el) {\n return el.tagName.toLowerCase() === 'script'\n}\n\n", "import Alpine from 'alpinejs'\n\nfunction getAlpineScopeKeys(el) {\n let keys = []\n let currentEl = el\n\n while (currentEl) {\n if (currentEl._x_dataStack && currentEl._x_dataStack.length > 0) {\n // Only read the first scope object -- this is the element's OWN\n // data, not inherited parent scopes. Alpine's addScopeToNode()\n // always puts the element's own data at index 0, followed by\n // the parent chain. Reading all entries would leak parent Alpine\n // scope keys across the Livewire component boundary.\n let ownScope = currentEl._x_dataStack[0]\n\n for (let key of Object.keys(ownScope)) {\n if (! keys.includes(key) && ! key.startsWith('$')) keys.push(key)\n }\n }\n\n // Stop at the Livewire component root element...\n if (currentEl.hasAttribute && currentEl.hasAttribute('wire:id')) break\n\n currentEl = currentEl.parentElement\n }\n\n return keys\n}\n\nexport function evaluateExpression(el, expression, options = {}) {\n if (! expression || expression.trim() === '') return\n\n let result = Alpine.evaluateRaw(el, expression, options)\n\n if (result instanceof Promise) {\n result.catch(() => {})\n }\n\n return result\n}\n\nexport function evaluateActionExpression(el, expression, options = {}) {\n if (! expression || expression.trim() === '') return\n\n let contextualExpression = contextualizeExpression(expression, el)\n\n try {\n let result = Alpine.evaluateRaw(el, contextualExpression, options)\n\n // Silently catch Livewire request failures. These are handled by\n // Livewire at the request level...\n if (result instanceof Promise && result._livewireAction) {\n result.catch(() => {})\n }\n\n return result\n } catch (error) {\n console.warn(`Livewire Expression Error: ${error.message}\\n\\n${ expression ? 'Expression: \\\"' + expression + '\\\"\\n\\n' : '' }`, el)\n\n console.error(error)\n }\n}\n\nexport function contextualizeExpression(expression, el) {\n let SKIP = ['JSON', 'true', 'false', 'null', 'undefined', 'this', '$wire', '$event']\n\n // If an element is provided, collect Alpine scope keys between\n // this element and the Livewire component root so they don't\n // get incorrectly prefixed with $wire.\n if (el) {\n SKIP.push(...getAlpineScopeKeys(el))\n }\n let strings = []\n\n // 1. Yank out string literals so we don't touch them\n let result = expression.replace(/([\"'`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/g, (m) => {\n strings.push(m)\n return `___${strings.length - 1}___`\n })\n\n // 2. Prefix identifiers not after a dot (skip placeholders from step 1)\n // Also skip object keys (identifiers immediately followed by colon)\n result = result.replace(/(^|[^.\\w$])(\\$?[a-zA-Z_]\\w*)/g, (m, pre, ident, offset) => {\n if (SKIP.includes(ident) || /^___\\d+___$/.test(ident)) return pre + ident\n if (result[offset + m.length] === ':') return pre + ident\n return pre + '$wire.' + ident\n })\n\n // 3. Restore strings\n return result.replace(/___(\\d+)___/g, (m, i) => strings[i])\n}\n", "import { evaluateExpression } from '../evaluator'\nimport { findComponentByEl } from '@/store'\nimport { overrideMethod } from '@/$wire'\nimport { on } from '@/hooks'\nimport Alpine from 'alpinejs'\n\nAlpine.magic('js', el => {\n let component = findComponentByEl(el)\n\n return component.$wire.js\n})\n\non('effect', ({ component, effects }) => {\n let js = effects.js\n let xjs = effects.xjs\n\n if (js) {\n Object.entries(js).forEach(([method, body]) => {\n overrideMethod(component, method, () => {\n evaluateExpression(component.el, body)\n })\n })\n }\n\n if (xjs) {\n xjs.forEach(({ expression, params }) => {\n params = Object.values(params)\n\n evaluateExpression(component.el, expression, { scope: component.getJsActions(), params })\n })\n }\n})\n", "import { trigger } from \"@/hooks\"\nimport { findComponentByEl } from \"@/store\"\nimport Alpine from 'alpinejs'\nimport { extractFragmentMetadataFromMarkerNode, isEndFragmentMarker, isStartFragmentMarker } from \"./fragment\"\nimport { transitionDomMutation } from \"./directives/wire-transition\"\n\nexport async function morph(component, el, html) {\n let wrapperTag = getTagName(el.parentElement)\n\n let wrapper = document.createElement(wrapperTag)\n\n wrapper.innerHTML = html\n let parentComponent\n\n try {\n parentComponent = findComponentByEl(el.parentElement)\n } catch (e) {}\n\n parentComponent && (wrapper.__livewire = parentComponent)\n\n let to = wrapper.firstElementChild\n\n // Set the snapshot and effects on the `to` element that way if there's a\n // mismatch or problem the component will able to be re-initialized...\n to.setAttribute('wire:snapshot', component.snapshotEncoded)\n\n // Remove the 'html' key from the effects as the html will be morphed...\n let effects = { ...component.effects }\n delete effects.html\n to.setAttribute('wire:effects', JSON.stringify(effects))\n\n to.__livewire = component\n\n trigger('morph', { el, toEl: to, component })\n\n // Let's first do a lookup of all the child components to see if the component already\n // exists and if so we'll clone it and replace the child component with the clone.\n // This is to ensure that components don't loose state even if there might be a\n // `wire:key` missing from elements within a loop around the component...\n let existingComponentsMap = {}\n\n el.querySelectorAll('[wire\\\\:id]').forEach(component => {\n existingComponentsMap[component.getAttribute('wire:id')] = component\n })\n\n to.querySelectorAll('[wire\\\\:id]').forEach(child => {\n // If the child has a `wire:snapshot` it means it's new, so we don't need to find it...\n if (child.hasAttribute('wire:snapshot')) return\n\n let wireId = child.getAttribute('wire:id')\n let existingComponent = existingComponentsMap[wireId]\n\n if (existingComponent) {\n child.replaceWith(existingComponent.cloneNode(true))\n }\n })\n\n let transitionOptions = component.effects.transition || {}\n\n await transitionDomMutation(el, to, () => {\n Alpine.morph(el, to, getMorphConfig(component))\n }, transitionOptions)\n\n trigger('morphed', { el, component })\n}\n\nexport async function morphFragment(component, startNode, endNode, toHTML) {\n let fromContainer = startNode.parentElement\n let fromContainerTag = getTagName(fromContainer)\n\n let toContainer = document.createElement(fromContainerTag)\n toContainer.innerHTML = toHTML\n toContainer.__livewire = component\n\n // Add the parent component reference to an outer wrapper if it exists...\n let parentElement = component.el.parentElement\n let parentElementTag = getTagName(parentElement)\n\n let parentComponent\n\n try {\n parentComponent = parentElement ? findComponentByEl(parentElement) : null\n } catch (e) {}\n\n if (parentComponent) {\n let parentProviderWrapper = document.createElement(parentElementTag)\n parentProviderWrapper.appendChild(toContainer)\n parentProviderWrapper.__livewire = parentComponent\n }\n\n trigger('island.morph', { startNode, endNode, component })\n\n let transitionOptions = component.effects.transition || {}\n\n // Check if the island's own content has [wire:transition] elements.\n // Without this, the parent element (which contains everything) would be\n // passed to transitionDomMutation, causing it to find [wire:transition]\n // elements outside the island and trigger spurious view transitions...\n let islandHasTransition = false\n let node = startNode.nextSibling\n while (node && node !== endNode) {\n if (node.nodeType === 1 && (node.hasAttribute?.('wire:transition') || node.querySelector?.('[wire\\\\:transition]'))) {\n islandHasTransition = true\n break\n }\n node = node.nextSibling\n }\n\n let fromEl = islandHasTransition ? fromContainer : document.createElement('div')\n\n await transitionDomMutation(fromEl, toContainer, () => {\n Alpine.morphBetween(startNode, endNode, toContainer, getMorphConfig(component))\n }, transitionOptions)\n\n trigger('island.morphed', { startNode, endNode, component })\n}\n\nfunction getMorphConfig(component) {\n return {\n updating: (el, toEl, childrenOnly, skip, skipChildren, skipUntil) => {\n // Skip fragments...\n if (isStartFragmentMarker(el) && isStartFragmentMarker(toEl)) {\n let metadata = extractFragmentMetadataFromMarkerNode(toEl)\n\n if (metadata.mode !== 'morph') {\n skipUntil(node => {\n if (isEndFragmentMarker(node)) {\n let endMarkerMetadata = extractFragmentMetadataFromMarkerNode(node)\n\n return endMarkerMetadata.token === metadata.token\n }\n\n return false\n })\n }\n }\n\n if (isntElement(el)) return\n\n trigger('morph.updating', { el, toEl, component, skip, childrenOnly, skipChildren, skipUntil })\n\n // bypass DOM diffing for children by overwriting the content\n if (el.__livewire_replace === true) el.innerHTML = toEl.innerHTML;\n // completely bypass DOM diffing for this element and all children\n if (el.__livewire_replace_self === true) { el.outerHTML = toEl.outerHTML; return skip(); }\n\n if (el.__livewire_ignore === true) return skip()\n if (el.__livewire_ignore_self === true) childrenOnly()\n if (el.__livewire_ignore_children === true) return skipChildren()\n\n // Children will update themselves.\n if (isComponentRootEl(el) && el.getAttribute('wire:id') !== component.id) return skip()\n\n // Give the root Livewire \"to\" element, the same object reference as the \"from\"\n // element. This ensures new Alpine magics like $wire and @entangle can\n // initialize in the context of a real Livewire component object.\n if (isComponentRootEl(el)) toEl.__livewire = component\n },\n\n updated: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.updated', { el, component })\n },\n\n removing: (el, skip) => {\n if (isntElement(el)) return\n\n trigger('morph.removing', { el, component, skip })\n },\n\n removed: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.removed', { el, component })\n },\n\n adding: (el) => {\n trigger('morph.adding', { el, component })\n },\n\n added: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.added', { el })\n },\n\n key: (el) => {\n if (isntElement(el)) return\n\n return el.hasAttribute(`wire:id`)\n ? el.getAttribute(`wire:id`)\n : // If no component \"id\", then first check for \"wire:key\", then \"id\"\n el.hasAttribute(`wire:key`)\n ? el.getAttribute(`wire:key`)\n : el.id\n },\n\n lookahead: false,\n }\n}\n\nfunction isntElement(el) {\n return typeof el.hasAttribute !== 'function'\n}\n\nfunction isComponentRootEl(el) {\n return el.hasAttribute('wire:id')\n}\n\nexport function getTagName(el) {\n // If the root element is a \"tr\", we need the wrapper to be a \"table\"...\n let tag = el ? el.tagName.toLowerCase() : 'div'\n\n // If the tag is a custom element, we can't instantiate it using the hyphenated\n // tag name, so we need to get the name off the custom element instead...\n let customElement = customElements.get(tag)\n\n return customElement ? customElement.name : tag\n}", "import { globalDirective } from \"@/directives\"\n\nlet defaultName = 'match-element'\n\n// No-op \u2014 viewTransitionName is now set dynamically by transitionDomMutation()\n// to avoid creating permanent stacking contexts...\nglobalDirective('transition', ({ el, directive, cleanup }) => {\n //\n})\n\nfunction setTransitionNames(root, options = {}) {\n root.querySelectorAll('[wire\\\\:transition]').forEach(el => {\n if (el.style.viewTransitionName) return\n\n let name = el.getAttribute('wire:transition')\n\n // When the developer orchestrates a typed swap (e.g. #[Transition('forward')]),\n // unnamed wire:transition elements stay unnamed so they ride with the parent's\n // snapshot instead of becoming independent groups with the browser's default fade...\n if (! name && options.type) return\n\n el.style.viewTransitionName = name || defaultName\n })\n}\n\nfunction clearTransitionNames(root) {\n root.querySelectorAll('[wire\\\\:transition]').forEach(el => {\n el.style.viewTransitionName = ''\n })\n}\n\nexport async function transitionDomMutation(fromEl, toEl, callback, options = {}) {\n // Skip transitions entirely if requested...\n if (options.skip) return callback()\n\n // Only transition if there is a [wire:transition] element within either the from or to elements...\n if (! fromEl.querySelector('[wire\\\\:transition]') && ! toEl.querySelector('[wire\\\\:transition]')) return callback()\n\n // Check if View Transitions API is supported...\n if (typeof document.startViewTransition !== 'function') {\n return callback()\n }\n\n // Skip entirely if a modal dialog is already open (transitions behind\n // a dialog are invisible to the user and the ::view-transition pseudo-\n // elements would paint above the dialog during animation)...\n if (document.querySelector('dialog:modal')) return callback()\n\n // Set transition names right before the transition starts (not permanently)...\n setTransitionNames(fromEl, options)\n\n // Disable root transitions for the page...\n let style = document.createElement('style')\n\n style.textContent = `\n @media (prefers-reduced-motion: reduce) {\n ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) {\n animation: none !important;\n }\n }\n\n ::view-transition-old(root) {\n animation: none !important;\n opacity: 0 !important;\n }\n\n ::view-transition-new(root) {\n animation: none !important;\n opacity: 1 !important;\n }\n `\n\n document.head.appendChild(style)\n\n let update = () => {\n callback()\n\n // After a morph, newly added wire:transition elements need their viewTransitionName\n // set synchronously. Alpine's MutationObserver would normally handle this, but its\n // internal queueMicrotask batching delays processing by one microtask hop \u2014 and the\n // View Transitions API's \"activate\" step captures the new DOM state in between,\n // before Alpine has a chance to initialize the directive...\n setTransitionNames(fromEl, options)\n }\n\n let transitionConfig = { update }\n\n // Add transition types if provided...\n if (options.type) {\n transitionConfig.types = [options.type]\n }\n\n let cleanup = () => {\n style.remove()\n clearTransitionNames(fromEl)\n }\n\n // Watch for modal dialogs opening during the transition (e.g., via Alpine x-effect).\n // ::view-transition pseudo-elements paint above the top layer, so elements with\n // wire:transition would visually appear above dialog modals during animation.\n // This observer catches showModal() the instant it sets the `open` attribute\n // and skips the transition before the browser paints a frame...\n let skipOnDialog = (transition) => {\n let observer = new MutationObserver(() => {\n if (document.querySelector('dialog:modal')) {\n transition.skipTransition()\n observer.disconnect()\n }\n })\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['open'],\n subtree: true,\n })\n\n transition.finished.finally(() => observer.disconnect())\n }\n\n try {\n let transition = document.startViewTransition(transitionConfig)\n\n skipOnDialog(transition)\n\n transition.finished.finally(cleanup)\n\n await transition.updateCallbackDone\n } catch (e) {\n // Firefox 144+ supports View Transitions but only with a callback, not a config object (no transition types support)\n let transition = document.startViewTransition(update)\n\n skipOnDialog(transition)\n\n transition.finished.finally(cleanup)\n\n await transition.updateCallbackDone\n }\n}\n", "import { morph } from \"@/morph\";\nimport { interceptMessage } from \"@/request\";\n\ninterceptMessage(({ message, onSuccess }) => {\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let html = payload.effects.html\n\n if (! html) return\n\n await morph(message.component, message.component.el, html)\n })\n })\n})\n", "import { dispatch, dispatchEl, dispatchRef, dispatchSelf, dispatchTo } from '@/events'\nimport { on } from '@/hooks'\n\non('effect', ({ component, effects }) => {\n // Wrapping this in a triple queueMicrotask...\n // The first one puts it after all other \"effect\" hooks...\n // The second one puts it after all reactive Alpine effects\n // (that are processed via flushJobs in scheduler)...\n // The third one puts it after morph changes have been applied...\n queueMicrotask(() => {\n queueMicrotask(() => {\n queueMicrotask(() => {\n dispatchEvents(component, effects.dispatches || [])\n })\n })\n })\n})\n\nfunction dispatchEvents(component, dispatches) {\n dispatches.forEach(({ name, params = {}, self = false, component: componentName, ref, el }) => {\n if (self) dispatchSelf(component, name, params)\n else if (componentName) dispatchTo(componentName, name, params)\n else if (ref) dispatchRef(component, ref, name, params)\n else if (el) dispatchEl(component, el, name, params)\n else dispatch(component, name, params)\n })\n}\n", "import { getDirectives } from '@/directives'\nimport { on } from '@/hooks'\nimport { Bag } from '@/utils'\nimport Alpine from 'alpinejs'\n\nlet cleanups = new Bag\n\n// Adding a setTimeout here so that these event listeners are\n// registered AFTER most other event listenrs, this way, we\n// can call \"stopPropagation\" for things like wire:confirm\non('directive.init', ({ el, directive, cleanup, component }) => setTimeout(() => {\n if (directive.value !== 'submit') return\n\n // Livewire will clean it all up automatically when the form\n // submission returns and the new DOM lacks these additions...\n el.addEventListener('submit', () => {\n // If using wire:submit=\"$parent...\", we will need to use\n // the parent ID as a reference for undoing because it's\n // the ID that will come back from the network request.\n let componentId = directive.expression.startsWith('$parent')\n ? component.parent.id\n : component.id\n\n let cleanup = disableForm(el)\n\n cleanups.add(componentId, cleanup)\n })\n}))\n\non('commit', ({ component, respond }) => {\n respond(() => {\n cleanups.each(component.id, i => i())\n cleanups.remove(component.id)\n })\n})\n\nfunction disableForm(formEl) {\n let undos = []\n\n Alpine.walk(formEl, (el, skip) => {\n if (! formEl.contains(el)) return\n\n if (el.hasAttribute('wire:ignore')) return skip()\n\n if (shouldMarkDisabled(el)) {\n undos.push(markDisabled(el))\n } else if (shouldMarkReadOnly(el)) {\n undos.push(markReadOnly(el))\n }\n })\n\n return () => {\n while (undos.length > 0) undos.shift()()\n }\n}\n\nfunction shouldMarkDisabled(el) {\n let tag = el.tagName.toLowerCase()\n let inputTypesThatDontSupportReadonly = [\n 'hidden', 'range', 'color', 'checkbox', 'radio',\n 'file', 'submit', 'image', 'reset', 'button'\n ]\n\n if (tag === 'select') return true\n if (tag === 'button' && el.type === 'submit') return true\n if (tag === 'input' && inputTypesThatDontSupportReadonly.includes(el.type)) return true\n\n return false\n}\n\nfunction shouldMarkReadOnly(el) {\n return ['input', 'textarea'].includes(el.tagName.toLowerCase())\n}\n\nfunction markDisabled(el) {\n let undo = el.disabled\n ? () => {}\n : () => el.disabled = false\n\n el.disabled = true\n\n return undo\n}\n\nfunction markReadOnly(el) {\n let undo = el.readOnly\n ? () => {}\n : () => el.readOnly = false\n\n el.readOnly = true\n\n return undo\n}\n", "import { on } from '@/hooks'\n\non('commit', ({ succeed }) => {\n succeed(({ effects }) => {\n let download = effects.download\n\n if (! download) return\n\n // We need to use window.webkitURL so downloads work on iOS Safari.\n let urlObject = window.webkitURL || window.URL\n\n let url = urlObject.createObjectURL(\n base64toBlob(download.content, download.contentType)\n )\n\n let invisibleLink = document.createElement('a')\n\n invisibleLink.style.display = 'none'\n invisibleLink.href = url\n invisibleLink.download = download.name\n\n document.body.appendChild(invisibleLink)\n\n invisibleLink.click()\n\n setTimeout(function() {\n urlObject.revokeObjectURL(url)\n }, 0);\n })\n})\n\nfunction base64toBlob(b64Data, contentType = '', sliceSize = 512) {\n const byteCharacters = atob(b64Data)\n const byteArrays = []\n\n if (contentType === null) contentType = ''\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n let slice = byteCharacters.slice(offset, offset + sliceSize)\n\n let byteNumbers = new Array(slice.length)\n\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i)\n }\n\n let byteArray = new Uint8Array(byteNumbers)\n\n byteArrays.push(byteArray)\n }\n\n return new Blob(byteArrays, { type: contentType });\n}\n", "import { on } from '@/hooks'\nimport { dataGet } from '@/utils'\nimport Alpine from 'alpinejs'\nimport { track } from '@/plugins/history'\n\non('effect', ({ component, effects, cleanup }) => {\n let queryString = effects['url']\n\n if (! queryString) return\n\n Object.entries(queryString).forEach(([key, value]) => {\n let { name, as, use, alwaysShow, except } = normalizeQueryStringEntry(key, value)\n\n if (! as) as = name\n\n let initialValue = [false, null, undefined].includes(except) ? dataGet(component.ephemeral, name) : except\n\n let { replace, push, pop } = track(as, initialValue, alwaysShow, except)\n\n if (use === 'replace') {\n let effectReference = Alpine.effect(() => {\n replace(dataGet(component.reactive, name))\n })\n\n cleanup(() => Alpine.release(effectReference))\n } else if (use === 'push') {\n let popNavigating = false\n\n let forgetCommitHandler = on('commit', ({ component: commitComponent, succeed }) => {\n if (component !== commitComponent) return\n\n let beforeValue = dataGet(component.canonical, name)\n\n succeed(() => {\n let afterValue = dataGet(component.canonical, name)\n\n if (JSON.stringify(beforeValue) === JSON.stringify(afterValue)) return\n\n // If we're handling a popstate (back/forward navigation), use\n // replaceState instead of pushState so we don't wipe out the\n // forward history entries...\n if (popNavigating) {\n replace(afterValue)\n } else {\n push(afterValue)\n }\n })\n })\n\n let forgetPopHandler = pop(async newValue => {\n popNavigating = true\n\n await component.$wire.set(name, newValue)\n\n // @todo: this is the absolute worst thing ever I'm so sorry this needs to be refactored stat:\n document.querySelectorAll('input').forEach(el => {\n el._x_forceModelUpdate && el._x_forceModelUpdate(el._x_model.get())\n })\n\n // Use requestAnimationFrame to ensure the flag stays true through\n // the succeed callback which fires in a requestAnimationFrame...\n requestAnimationFrame(() => popNavigating = false)\n })\n\n // If the current property value differs from the initial value\n // (e.g. restored from session), sync the URL via replaceState...\n let currentValue = dataGet(component.ephemeral, name)\n\n if (JSON.stringify(currentValue) !== JSON.stringify(initialValue)) {\n replace(currentValue)\n }\n\n cleanup(() => {\n forgetCommitHandler()\n forgetPopHandler()\n })\n }\n })\n})\n\nfunction normalizeQueryStringEntry(key, value) {\n let defaults = { use: 'replace', alwaysShow: false }\n\n if (typeof value === 'string') {\n return {...defaults, name: value, as: value }\n } else {\n let fullerDefaults = {...defaults, name: key, as: key }\n\n return {...fullerDefaults, ...value }\n }\n}\n", "import { on } from '@/hooks'\nimport { dispatchSelf } from '@/events'\n\non('request', ({ options }) => {\n if (window.Echo) {\n options.headers['X-Socket-ID'] = window.Echo.socketId()\n }\n})\n\non('effect', ({ component, effects }) => {\n let listeners = effects.listeners || []\n\n listeners.forEach(event => {\n if (event.startsWith('echo')) {\n if (typeof window.Echo === 'undefined') {\n console.warn('Laravel Echo cannot be found')\n\n return\n }\n\n let event_parts = event.split(/(echo:|echo-)|:|,/)\n\n if (event_parts[1] == 'echo:') {\n event_parts.splice(2, 0, 'channel', undefined)\n }\n\n if (event_parts[2] == 'notification') {\n event_parts.push(undefined, undefined)\n }\n\n let [\n s1,\n signature,\n channel_type,\n s2,\n channel,\n s3,\n event_name,\n ] = event_parts\n\n if (['channel', 'private', 'encryptedPrivate'].includes(channel_type)) {\n let handler = e => dispatchSelf(component, event, [e])\n\n window.Echo[channel_type](channel).listen(event_name, handler)\n\n component.addCleanup(() => {\n window.Echo[channel_type](channel).stopListening(event_name, handler)\n })\n } else if (channel_type == 'presence') {\n if (['here', 'joining', 'leaving'].includes(event_name)) {\n window.Echo.join(channel)[event_name](e => {\n dispatchSelf(component, event, [e])\n })\n\n component.addCleanup(() => {\n window.Echo.leave(channel)\n })\n } else{\n let handler = e => dispatchSelf(component, event, [e])\n\n window.Echo.join(channel).listen(event_name, handler)\n\n component.addCleanup(() => {\n window.Echo.leave(channel)\n })\n }\n } else if (channel_type == 'notification') {\n window.Echo.private(channel).notification(notification => {\n dispatchSelf(component, event, [notification])\n })\n\n component.addCleanup(() => {\n window.Echo.private(channel).stopListening('.Illuminate\\\\Notifications\\\\Events\\\\BroadcastNotificationCreated')\n })\n } else {\n console.warn('Echo channel type not yet supported')\n }\n }\n })\n})\n", "import { findRefEl } from '@/features/supportRefs'\nimport { interceptMessage } from '@/request'\nimport { findComponent } from '@/store'\n\ninterceptMessage(({ message, onStream }) => {\n onStream(({ json }) => {\n let { id, type, name, el, ref, content, mode } = json\n\n // Early return for islands because they are handled by the islands feature...\n if (type === 'island') return\n\n let component = findComponent(id)\n\n let targetEl = null\n\n if (type === 'directive') {\n const replaceEl = component.el.querySelector(`[wire\\\\:stream\\\\.replace=\"${name}\"]`)\n\n if (replaceEl) {\n targetEl = replaceEl\n mode = 'replace'\n } else {\n targetEl = component.el.querySelector(`[wire\\\\:stream=\"${name}\"]`)\n }\n } else if (type === 'ref') {\n targetEl = findRefEl(component, ref)\n } else if (type === 'element') {\n targetEl = component.el.querySelector(el)\n }\n\n if (! targetEl) return // Noop...\n\n if (mode === 'replace') {\n targetEl.innerHTML = content\n } else {\n targetEl.insertAdjacentHTML('beforeend', content)\n }\n })\n})\n", "document.addEventListener('livewire:initialized', () => {\n shouldHideProgressBar() && Alpine.navigate.disableProgressBar()\n})\n\ndocument.addEventListener('alpine:navigate', e => forwardEvent('livewire:navigate', e))\ndocument.addEventListener('alpine:navigating', e => forwardEvent('livewire:navigating', e))\ndocument.addEventListener('alpine:navigated', e => forwardEvent('livewire:navigated', e))\n\nfunction forwardEvent(name, original) {\n let event = new CustomEvent(name, { cancelable: true, bubbles: true, detail: original.detail })\n\n document.dispatchEvent(event)\n\n if (event.defaultPrevented) {\n original.preventDefault()\n }\n}\n\nexport function shouldRedirectUsingNavigateOr(effects, url, or) {\n let forceNavigate = effects.redirectUsingNavigate\n\n if (forceNavigate) {\n Alpine.navigate(url)\n } else {\n or()\n }\n}\n\nfunction shouldHideProgressBar() {\n if (!! document.querySelector('[data-no-progress-bar]')) return true\n\n if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === 'data-no-progress-bar') return true\n\n return false\n}\n", "import { on } from \"@/hooks\"\nimport { shouldRedirectUsingNavigateOr } from \"./supportNavigate\"\n\non('effect', ({ effects, request }) => {\n if (! effects['redirect']) return\n\n let preventDefault = false\n\n request.invokeOnRedirect({ url: effects['redirect'], preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n let url = effects['redirect']\n\n shouldRedirectUsingNavigateOr(effects, url, () => {\n window.location.href = url\n })\n})\n", "import { closestFragment, extractFragmentMetadataFromHtml, extractInnerHtmlFromFragmentHtml, findFragment } from '@/fragment'\nimport { interceptAction, interceptMessage } from '@/request'\nimport { morphFragment, getTagName } from '@/morph'\n\ninterceptAction(({ action }) => {\n let origin = action.origin\n\n if (! origin) return\n\n let { el, directive } = origin\n\n // Check for wire:island with modifiers (e.g., wire:island.append=\"foo\")\n let islandAttr = Array.from(el.attributes).find(attr => attr.name.startsWith('wire:island'))\n\n if (islandAttr) {\n let islandName = islandAttr.value\n\n // Parse modifiers from attribute name (e.g., \"wire:island.append\" -> [\"append\"])\n let attrParts = islandAttr.name.split('.')\n let isPrepend = attrParts.includes('prepend')\n let isAppend = attrParts.includes('append')\n\n let mode = isPrepend ? 'prepend' : (isAppend ? 'append' : 'morph')\n\n action.mergeMetadata({\n island: {\n name: islandName,\n mode: mode,\n }\n })\n\n return\n }\n\n let fragment = closestIsland(origin.el)\n\n if (! fragment) return\n\n action.mergeMetadata({\n island: {\n name: fragment.metadata.name,\n mode: 'morph',\n }\n })\n})\n\ninterceptMessage(({ message, onSuccess, onStream }) => {\n onStream(({ json }) => {\n let { type, islandFragment } = json\n\n if (type !== 'island') return\n\n renderIsland(message.component, islandFragment)\n })\n\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let fragments = payload.effects.islandFragments || []\n\n fragments.forEach(async fragmentHtml => {\n await renderIsland(message.component, fragmentHtml)\n })\n })\n })\n})\n\nexport function closestIsland(el) {\n return closestFragment(el, {\n isMatch: ({ type }) => {\n return type === 'island'\n },\n })\n}\n\nexport async function renderIsland(component, islandHtml) {\n let metadata = extractFragmentMetadataFromHtml(islandHtml)\n\n let fragment = findFragment(component.el, {\n isMatch: ({ type, token }) => {\n return type === metadata.type && token === metadata.token\n },\n })\n\n if (! fragment) return\n\n let incomingMetadata = extractFragmentMetadataFromHtml(islandHtml)\n let strippedContent = extractInnerHtmlFromFragmentHtml(islandHtml)\n\n let parentElementTag = getTagName(fragment.startMarkerNode.parentElement)\n\n let mode = incomingMetadata.mode || 'morph'\n\n if (mode === 'morph') {\n await morphFragment(component, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent)\n } else if (mode === 'append') {\n fragment.append(parentElementTag, strippedContent)\n } else if (mode === 'prepend') {\n fragment.prepend(parentElementTag, strippedContent)\n }\n}\n", "import { extractFragmentMetadataFromHtml, extractInnerHtmlFromFragmentHtml, findFragment } from '@/fragment'\nimport { interceptMessage } from '@/request'\nimport { findComponent } from '@/store'\nimport { morphFragment } from '@/morph'\n\ninterceptMessage(({ message, onSuccess, onStream }) => {\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let fragments = payload.effects.slotFragments || []\n\n fragments.forEach(async fragmentHtml => {\n await renderSlot(message.component, fragmentHtml)\n })\n })\n })\n})\n\nexport async function renderSlot(component, fragmentHtml) {\n let metadata = extractFragmentMetadataFromHtml(fragmentHtml)\n\n let targetComponent = findComponent(metadata.id)\n\n let fragment = findFragment(targetComponent.el, {\n isMatch: ({ name, token }) => {\n return name === metadata.name && token === metadata.token\n },\n })\n\n if (! fragment) return\n\n let strippedContent = extractInnerHtmlFromFragmentHtml(fragmentHtml)\n\n await morphFragment(targetComponent, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent)\n}\n", "import { interceptMessage } from '@/request'\n\ninterceptMessage(({ message, onSend, onFinish }) => {\n let undos = []\n\n onSend(() => {\n message.actions.forEach(action => {\n let origin = action.origin\n\n if (! origin) return\n\n // Use targetEl if explicitly set (can be null to skip data-loading entirely)\n let el = origin.hasOwnProperty('targetEl') ? origin.targetEl : origin.el\n\n // Skip if no element to apply data-loading to\n if (! el) return\n\n el.setAttribute('data-loading', 'true')\n\n undos.push(() => {\n el.removeAttribute('data-loading')\n })\n })\n })\n\n onFinish(() => undos.forEach(undo => undo()))\n})\n", "import { globalDirective } from \"@/directives\"\nimport Alpine from 'alpinejs'\n\nAlpine.addInitSelector(() => `[wire\\\\:current]`)\n\nlet onPageChanges = new Map\n\ndocument.addEventListener('livewire:navigated', () => {\n onPageChanges.forEach(i => i(new URL(window.location.href)))\n})\n\nglobalDirective('current', ({ el, directive, cleanup }) => {\n let expression = directive.expression\n\n let options = {\n exact: directive.modifiers.includes('exact'),\n strict: directive.modifiers.includes('strict'),\n ignore: directive.modifiers.includes('ignore'),\n }\n\n if (options.ignore) return\n\n // Fragment hrefs aren't supported as of yet...\n if (expression.startsWith('#')) return\n\n // If there is no href, let's not do anything...\n if (! el.hasAttribute('href')) return\n\n let href = el.getAttribute('href')\n\n let hrefUrl = new URL(href, window.location.href)\n\n let classes = expression.split(' ').filter(String)\n\n let refreshCurrent = url => {\n if (pathMatches(hrefUrl, url, options)) {\n el.classList.add(...classes)\n el.setAttribute('data-current', '')\n } else {\n el.classList.remove(...classes)\n el.removeAttribute('data-current')\n }\n }\n\n refreshCurrent(new URL(window.location.href))\n\n onPageChanges.set(el, refreshCurrent)\n\n cleanup(() => onPageChanges.delete(el))\n})\n\nexport function pathMatches(hrefUrl, actualUrl, options = {}) {\n // If the domains/hostnames don't match, we are not going to match...\n if (hrefUrl.hostname !== actualUrl.hostname) return false\n\n // Remove trailing slashes for consistency (if not .strict)...\n let hrefPath = options.strict ? hrefUrl.pathname : hrefUrl.pathname.replace(/\\/+$/, '')\n let actualPath = options.strict ? actualUrl.pathname : actualUrl.pathname.replace(/\\/+$/, '')\n\n if (options.exact) {\n return hrefPath === actualPath\n }\n\n let hrefPathSegments = hrefPath.split('/')\n let actualPathSegments = actualPath.split('/')\n\n\n for (let i = 0; i < hrefPathSegments.length; i++) {\n if (hrefPathSegments[i] !== actualPathSegments[i]) return false\n }\n\n return true\n}\n", "import Alpine from 'alpinejs'\n\n// Export all wire:navigate variations for use in other files\nexport let wireNavigateSelectors = [\n '[wire\\\\:navigate]',\n '[wire\\\\:navigate\\\\.hover]',\n '[wire\\\\:navigate\\\\.preserve-scroll]',\n '[wire\\\\:navigate\\\\.preserve-scroll\\\\.hover]',\n '[wire\\\\:navigate\\\\.hover\\\\.preserve-scroll]',\n]\n\n// Combined selector for querying all wire:navigate elements\nexport let wireNavigateSelector = wireNavigateSelectors.join(', ')\n\n// Attribute to Alpine directive mapping\nlet attributeMap = {\n 'wire:navigate': 'x-navigate',\n 'wire:navigate.hover': 'x-navigate.hover',\n 'wire:navigate.preserve-scroll': 'x-navigate.preserve-scroll',\n 'wire:navigate.preserve-scroll.hover': 'x-navigate.preserve-scroll.hover',\n 'wire:navigate.hover.preserve-scroll': 'x-navigate.hover.preserve-scroll',\n}\n\n// Register all selectors with Alpine\nwireNavigateSelectors.forEach(selector => {\n Alpine.addInitSelector(() => selector)\n})\n\nAlpine.interceptInit(\n Alpine.skipDuringClone(el => {\n // Find which wire:navigate attribute this element has\n for (let [wireAttr, alpineDirective] of Object.entries(attributeMap)) {\n if (el.hasAttribute(wireAttr)) {\n Alpine.bind(el, { [alpineDirective]: true })\n break\n }\n }\n })\n)\n\ndocument.addEventListener('alpine:navigating', () => {\n // Before navigating away, we'll inscribe the latest state of each component\n // in their HTML so that upon return, they will have the latest state...\n Livewire.all().forEach(component => {\n component.inscribeSnapshotAndEffectsOnElement()\n })\n})\n", "import { pathMatches } from '@/directives/wire-current'\nimport { wireNavigateSelector } from '@/directives/wire-navigate'\n\ndocument.addEventListener('livewire:navigated', () => {\n updateNavigateLinks()\n})\n\n// Also run on initial page load\ndocument.addEventListener('DOMContentLoaded', () => {\n updateNavigateLinks()\n})\n\nfunction updateNavigateLinks() {\n let currentUrl = new URL(window.location.href)\n let options = {\n exact: true,\n }\n\n // Find all links with any wire:navigate variation\n document.querySelectorAll(wireNavigateSelector).forEach(el => {\n // If the element has `wire:current` then the user might want to specify strict or \n // exact matching, so we will just return early so we don't override that...\n if (Array.from(el.attributes).some(attr => attr.name.startsWith('wire:current'))) return\n\n // Fragment hrefs aren't supported...\n let href = el.getAttribute('href')\n\n if (! href || href.startsWith('#')) return\n\n try {\n let hrefUrl = new URL(href, window.location.href)\n\n // Check if this link matches the current URL (using default partial matching)\n if (pathMatches(hrefUrl, currentUrl, options)) {\n el.setAttribute('data-current', '')\n } else {\n el.removeAttribute('data-current')\n }\n } catch (e) {\n // Invalid URL, skip\n }\n })\n}\n", "import { interceptMessage } from '@/request'\n\ninterceptMessage(({ message, onSuccess }) => {\n onSuccess(({ onSync, onMorph, onRender }) => {\n message.actions.forEach(action => {\n let origin = action.origin\n\n if (! origin || ! origin.directive) return\n\n let directive = origin.directive\n\n if (! directive.modifiers.includes('preserve-scroll')) return\n\n let oldHeight\n let oldScroll\n\n onSync(() => {\n oldHeight = document.body.scrollHeight\n oldScroll = window.scrollY\n })\n\n onMorph(async () => {\n let heightDiff = document.body.scrollHeight - oldHeight\n window.scrollTo(0, oldScroll + heightDiff)\n\n oldHeight = null\n oldScroll = null\n })\n })\n })\n})\n", "import Alpine from 'alpinejs'\nimport { extractDirective } from '@/directives'\nimport { evaluateActionExpression } from '@/evaluator'\nimport { findComponentByEl } from '@/store'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:intersect')) {\n let { name, value } = el.attributes[i]\n\n let directive = extractDirective(el, name)\n\n let modifierString = name.split('wire:intersect')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-intersect' + modifierString](e) {\n directive.eventContext = e\n\n let component = findComponentByEl(el, false)\n\n if (! component) return\n\n component.addActionContext({\n el,\n directive,\n })\n\n evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n", "import { setNextActionOrigin } from '@/request'\nimport { evaluateActionExpression } from '../evaluator'\nimport Alpine from 'alpinejs'\nimport { extractDirective } from '@/directives'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:sort:item')) {\n let directive = extractDirective(el, el.attributes[i].name)\n\n let modifierString = directive.modifiers.join('.')\n\n let expression = directive.expression\n\n Alpine.bind(el, {\n ['x-sort:item' + modifierString]() {\n return expression\n }\n })\n } else if (el.attributes[i].name.startsWith('wire:sort:group-id')) {\n // This will get read by the wire:sort handler below...\n continue\n } else if (el.attributes[i].name.startsWith('wire:sort:group')) {\n // This will get picked up by Alpine's x-sort source...\n return\n } else if (el.attributes[i].name.startsWith('wire:sort')) {\n let directive = extractDirective(el, el.attributes[i].name)\n\n let attribute = directive.rawName.replace('wire:', 'x-')\n\n // Strip .async from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('async')) {\n attribute = attribute.replace('.async', '')\n }\n\n // Strip .renderless from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('renderless')) {\n attribute = attribute.replace('.renderless', '')\n }\n\n // Strip .prepend from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('prepend')) {\n attribute = attribute.replace('.prepend', '')\n }\n\n // Strip .append from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('append')) {\n attribute = attribute.replace('.append', '')\n }\n\n let expression = directive.expression\n\n Alpine.bind(el, {\n [attribute]() {\n setNextActionOrigin({ el, directive })\n\n // Alpine's x-sort provides $position as the raw DOM index (e.newIndex\n // from SortableJS), which counts ALL children including non-sortable\n // siblings like wire:sort:ignore / x-sort:ignore elements. Recalculate\n // as the index among only sortable items (wire:sort:item / x-sort:item).\n let sortableChildren = Array.from(el.children).filter(child =>\n child.hasAttribute('x-sort:item') || child.hasAttribute('wire:sort:item')\n )\n let itemPosition = sortableChildren.findIndex(child => child._x_sort_key === this.$item)\n let position = itemPosition !== -1 ? itemPosition : this.$position\n\n let params = [this.$item, position]\n let scope = { $item: this.$item, $position: position }\n\n let sortId = el.getAttribute('wire:sort:group-id')\n\n if (sortId !== null) {\n params.push(sortId)\n scope.$id = sortId\n }\n\n evaluateActionExpression(el, expression, { scope, params })\n }\n })\n }\n }\n})", "import { on } from '@/hooks'\nimport { getModuleUrl, getNonce } from '@/utils'\n\nlet loadedStyles = new Set()\n\non('effect', ({ component, effects }) => {\n // Handle scoped styles\n if (effects.styleModule) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/css/${encodedName}.css?v=${effects.styleModule}`\n\n if (!loadedStyles.has(path)) {\n loadedStyles.add(path)\n injectStylesheet(path)\n }\n }\n\n // Handle global styles\n if (effects.globalStyleModule) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/css/${encodedName}.global.css?v=${effects.globalStyleModule}`\n\n if (!loadedStyles.has(path)) {\n loadedStyles.add(path)\n injectStylesheet(path)\n }\n }\n})\n\nfunction injectStylesheet(href) {\n let link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = href\n\n let nonce = getNonce()\n if (nonce) link.nonce = nonce\n\n document.head.appendChild(link)\n}\n", "import { WeakBag } from './utils'\n\nlet callbacksByComponent = new WeakBag\n\nexport function debounceByComponent(component, callback, time) {\n // Prepare yourself for what's happening here.\n // Any text input with wire:model on it should be \"debounced\" by ~150ms by default.\n // We can't use a simple debounce function because we need a way to clear all the pending\n // debounces if a user submits a form or performs some other action.\n // This is a modified debounce function that acts just like a debounce, except it stores\n // the pending callbacks in a global property so we can \"clear them\" on command instead\n // of waiting for their setTimeouts to expire. I know.\n\n // This is a \"null\" callback. Each wire:model will resister one of these upon initialization.\n let callbackRegister = { callback: () => { } }\n callbacksByComponent.add(component, callbackRegister)\n\n // This is a normal \"timeout\" for a debounce function.\n var timeout\n\n return e => {\n clearTimeout(timeout)\n\n timeout = setTimeout(() => {\n callback(e)\n timeout = undefined\n\n // Because we just called the callback, let's return the\n // callback register to it's normal \"null\" state.\n callbackRegister.callback = () => { }\n }, time)\n\n // Register the current callback in the register as a kind-of \"escape-hatch\".\n callbackRegister.callback = () => {\n clearTimeout(timeout)\n callback(e)\n }\n }\n}\n\nexport function callAndClearComponentDebounces(component, callback) {\n // This is to protect against the following scenario:\n // A user is typing into a debounced input, and hits the enter key.\n // If the enter key submits a form or something, the submission\n // will happen BEFORE the model input finishes syncing because\n // of the debounce. This makes sure to clear anything in the debounce queue.\n\n callbacksByComponent.each(component, callbackRegister => {\n callbackRegister.callback()\n callbackRegister.callback = () => { }\n })\n\n callback()\n}\n", "import { callAndClearComponentDebounces } from '@/debounce'\nimport { customDirectiveHasBeenRegistered } from '@/directives'\nimport { on } from '@/hooks'\nimport { setNextActionOrigin, setNextActionInterceptor } from '@/request'\nimport Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\non('directive.init', ({ el, directive, cleanup, component }) => {\n if (['snapshot', 'effects', 'model', 'init', 'loading', 'poll', 'ignore', 'id', 'data', 'key', 'target', 'dirty', 'sort'].includes(directive.value)) return\n if (customDirectiveHasBeenRegistered(directive.value)) return\n\n let attribute = directive.rawName.replace('wire:', 'x-on:')\n\n // Automatically add .prevent to wire:submit, if they didn't add it themselves...\n if (directive.value === 'submit' && ! directive.modifiers.includes('prevent')) {\n attribute = attribute + '.prevent'\n }\n\n // Strip .async from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('async')) {\n attribute = attribute.replace('.async', '')\n }\n\n // Strip .renderless from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('renderless')) {\n attribute = attribute.replace('.renderless', '')\n }\n\n // Strip .prepend from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('prepend')) {\n attribute = attribute.replace('.prepend', '')\n }\n\n // Strip .append from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('append')) {\n attribute = attribute.replace('.append', '')\n }\n\n let cleanupBinding = Alpine.bind(el, {\n [attribute](e) {\n directive.eventContext = e\n directive.wire = component.$wire\n\n let execute = () => {\n callAndClearComponentDebounces(component, () => {\n // For wire:submit, apply data-loading to the submit button, not the form\n if (directive.value === 'submit') {\n let submitButton = e.submitter || el.querySelector('button[type=\"submit\"], input[type=\"submit\"]')\n setNextActionOrigin({ el, directive, targetEl: submitButton })\n } else {\n setNextActionOrigin({ el, directive })\n }\n\n // Check for Livewire event options in $event.detail.livewire\n let livewireOptions = e.detail?.livewire\n\n if (livewireOptions?.interceptAction) {\n setNextActionInterceptor(livewireOptions.interceptAction)\n }\n\n let expression = directive.expression\n\n // Handle defaultParams - if expression has no parentheses, append the default params\n // This uses a simple heuristic: if the expression contains '(', we assume params\n // are already provided. This works for common cases like \"someMethod\" but will\n // skip adding params for edge cases like \"someMethod.bind(this)\" or \"obj['method()']\"\n if (livewireOptions?.defaultParams !== undefined && !expression.includes('(')) {\n let params = Array.isArray(livewireOptions.defaultParams)\n ? livewireOptions.defaultParams\n : [livewireOptions.defaultParams]\n expression = expression + '(' + params.map((p) => JSON.stringify(p)).join(', ') + ')'\n }\n\n evaluateActionExpression(el, expression, { scope: { $event: e } })\n })\n }\n\n // Account for the existance of wire:confirm=\"...\" on the action...\n if (el.__livewire_confirm) {\n el.__livewire_confirm(() => {\n execute()\n }, () => {\n e.stopImmediatePropagation()\n })\n } else {\n execute()\n }\n }\n })\n\n cleanup(cleanupBinding)\n})\n", "import { directive } from \"@/directives\"\n\ndirective('confirm', ({ el, directive }) => {\n let message = directive.expression\n let shouldPrompt = directive.modifiers.includes('prompt')\n\n // Convert sanitized linebreaks (\"\\n\") to real line breaks...\n message = message.replaceAll('\\\\n', '\\n')\n\n if (message === '') message = 'Are you sure?'\n\n el.__livewire_confirm = (action, instead) => {\n if (shouldPrompt) {\n let [question, expected] = message.split('|')\n\n if (! expected) {\n console.warn('Livewire: Must provide expectation with wire:confirm.prompt')\n } else {\n let input = prompt(question)\n\n if (input === expected) {\n action()\n } else {\n instead()\n }\n }\n } else {\n if (confirm(message)) action()\n else instead()\n }\n }\n})\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive } from '@/directives'\n\nlet offlineHandlers = new Set\nlet onlineHandlers = new Set\n\nwindow.addEventListener('offline', () => offlineHandlers.forEach(i => i()))\nwindow.addEventListener('online', () => onlineHandlers.forEach(i => i()))\n\ndirective('offline', ({ el, directive, cleanup }) => {\n let setOffline = () => toggleBooleanStateDirective(el, directive, true)\n let setOnline = () => toggleBooleanStateDirective(el, directive, false)\n\n offlineHandlers.add(setOffline)\n onlineHandlers.add(setOnline)\n\n cleanup(() => {\n offlineHandlers.delete(setOffline)\n onlineHandlers.delete(setOnline)\n })\n})\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive, getDirectives } from \"@/directives\"\nimport { closestIsland } from '@/features/supportIslands'\nimport { interceptMessage } from '@/request'\nimport { listen } from '@/utils'\n\ndirective('loading', ({ el, directive, component, cleanup }) => {\n let { targets, inverted } = getTargets(el)\n\n let [delay, abortDelay] = applyDelay(directive)\n\n let cleanupA = whenTargetsArePartOfRequest(component, el, targets, inverted, [\n () => delay(() => toggleBooleanStateDirective(el, directive, true)),\n () => abortDelay(() => toggleBooleanStateDirective(el, directive, false)),\n ])\n\n let cleanupB = whenTargetsArePartOfFileUpload(component, targets, [\n () => delay(() => toggleBooleanStateDirective(el, directive, true)),\n () => abortDelay(() => toggleBooleanStateDirective(el, directive, false)),\n ])\n\n cleanup(() => {\n cleanupA()\n cleanupB()\n })\n})\n\nfunction applyDelay(directive) {\n if (! directive.modifiers.includes('delay') || directive.modifiers.includes('none')) return [i => i(), i => i()]\n\n let duration = 200\n\n let delayModifiers = {\n 'shortest': 50,\n 'shorter': 100,\n 'short': 150,\n 'default': 200,\n 'long': 300,\n 'longer': 500,\n 'longest': 1000,\n }\n\n Object.keys(delayModifiers).some(key => {\n if (directive.modifiers.includes(key)) {\n duration = delayModifiers[key]\n\n return true\n }\n })\n\n let timeout\n let started = false\n\n return [\n (callback) => { // Initiate delay...\n timeout = setTimeout(() => {\n callback()\n\n started = true\n }, duration)\n },\n async (callback) => { // Execute or abort...\n if (started) {\n await callback()\n started = false\n } else {\n clearTimeout(timeout)\n }\n },\n ]\n}\n\nfunction whenTargetsArePartOfRequest(component, el, targets, inverted, [ startLoading, endLoading ]) {\n return interceptMessage(({ message, onSend, onSuccess, onFinish }) => {\n if (component !== message.component) return\n\n // When explicit targets are set via wire:target, skip island scope filtering\n // and let the target matching handle scoping. This allows wire:loading to\n // respond to any request containing the target, regardless of island boundaries...\n if (targets.length === 0) {\n let island = closestIsland(el)\n\n // If an island is found, see if the message has an action for the island and return if not...\n if (island && ! message.hasActionForIsland(island)) {\n return\n }\n\n // If no island is found, see if the message has an action for the component and return if not...\n if (! island && ! message.hasActionForComponent()) {\n return\n }\n }\n\n let matches = true\n let cleared = false\n\n onSend(({ payload }) => {\n if (targets.length > 0 && containsTargets(payload, targets) === inverted) {\n matches = false\n }\n\n matches && startLoading()\n })\n\n // Clear loading before morph on success\n onSuccess(({ onEffect }) => {\n onEffect(() => {\n if (matches && ! cleared) {\n endLoading()\n cleared = true\n }\n })\n })\n\n // Clear loading on cancel/error/failure (onFinish fires immediately on these paths)\n onFinish(() => {\n if (matches && ! cleared) {\n endLoading()\n cleared = true\n }\n })\n })\n}\n\nfunction whenTargetsArePartOfFileUpload(component, targets, [ startLoading, endLoading ]) {\n let eventMismatch = e => {\n let { id, property } = e.detail\n\n if (id !== component.id) return true\n if (targets.length > 0 && ! targets.map(i => i.target).includes(property)) return true\n\n return false\n }\n\n let cleanupA = listen(window, 'livewire-upload-start', e => {\n if (eventMismatch(e)) return\n\n startLoading()\n })\n\n let cleanupB = listen(window, 'livewire-upload-finish', e => {\n if (eventMismatch(e)) return\n\n endLoading()\n })\n\n let cleanupC = listen(window, 'livewire-upload-error', e => {\n if (eventMismatch(e)) return\n\n endLoading()\n })\n\n return () => {\n cleanupA()\n cleanupB()\n cleanupC()\n }\n}\n\nfunction containsTargets(payload, targets) {\n let { updates, calls } = payload\n\n return targets.some(({ target, params }) => {\n if (params) {\n return calls.some(({ method, params: methodParams }) => {\n return target === method\n && params === quickHash(JSON.stringify(methodParams))\n })\n }\n\n let hasMatchingUpdate = Object.keys(updates).some(property => {\n // If the property is nested, like `foo.bar`, we need to check if the root `foo` is the target.\n if (property.includes('.')) {\n let propertyRoot = property.split('.')[0]\n\n if (propertyRoot === target) return true\n }\n\n return property === target\n })\n\n if (hasMatchingUpdate) return true\n\n if (calls.map(i => i.method).includes(target)) return true\n })\n}\n\nfunction getTargets(el) {\n let directives = getDirectives(el)\n\n let targets = []\n\n let inverted = false\n\n if (directives.has('target')) {\n let directive = directives.get('target')\n\n if (directive.modifiers.includes(\"except\")) inverted = true\n\n directive.methods.forEach(({ method, params }) => {\n targets.push({\n target: method,\n params: params && params.length > 0 ? quickHash(JSON.stringify(params)) : undefined\n })\n })\n } else {\n // If there is no wire:target, let's check for the existance of a wire:click=\"foo\" or something,\n // and automatically scope this loading directive to that action.\n let nonActionOrModelLivewireDirectives = [ 'init', 'dirty', 'offline', 'navigate', 'target', 'loading', 'poll', 'ignore', 'key', 'id' ]\n\n directives\n .all()\n .filter(i => ! nonActionOrModelLivewireDirectives.includes(i.value))\n .map(i => i.expression.split('(')[0])\n .forEach(target => targets.push({ target }))\n }\n\n return { targets, inverted }\n}\n\nfunction quickHash(subject) {\n return btoa(encodeURIComponent(subject))\n}\n", "import { directive } from \"@/directives\"\n\ndirective('replace', ({ el, directive }) => {\n if (directive.modifiers.includes('self')) {\n el.__livewire_replace_self = true\n } else {\n el.__livewire_replace = true\n }\n})\n", "import { directive } from \"@/directives\"\n\ndirective('ignore', ({ el, directive }) => {\n if (directive.modifiers.includes('self')) {\n el.__livewire_ignore_self = true\n } else if (directive.modifiers.includes('children')) {\n el.__livewire_ignore_children = true\n } else {\n el.__livewire_ignore = true\n }\n})\n", "import Alpine from 'alpinejs'\n\nAlpine.interceptInit(el => {\n if (el.hasAttribute('wire:cloak')) {\n Alpine.mutateDom(() => el.removeAttribute('wire:cloak'))\n }\n})\n", "import { directive } from '@/directives'\nimport { handleFileUpload } from '@/features/supportFileUploads'\nimport { findComponentByEl } from '@/store'\nimport { dataGet, dataSet } from '@/utils'\nimport { setNextActionMetadata, setNextActionOrigin } from '@/request'\nimport Alpine from 'alpinejs'\n\ndirective('model', ({ el, directive, component, cleanup }) => {\n // @todo: will need to probaby do this further upstream i just don't want to bog down the entire lifecycle right now...\n // this is to support slots properly...\n component = findComponentByEl(el)\n\n let { expression, modifiers } = directive\n\n if (! expression) {\n return console.warn('Livewire: [wire:model] is missing a value.', el)\n }\n\n if (componentIsMissingProperty(component, expression)) {\n return console.warn('Livewire: [wire:model=\"'+expression+'\"] property does not exist on component: ['+component.name+']', el)\n }\n\n // Handle file uploads differently...\n if (el.type && el.type.toLowerCase() === 'file') {\n return handleFileUpload(el, expression, component, cleanup)\n }\n\n // Split modifiers at .live boundary\n // Modifiers BEFORE .live control client-side (x-model) sync timing\n // Modifiers AFTER .live control network request timing\n let liveIndex = modifiers.indexOf('live')\n let isLive = liveIndex !== -1\n\n // Backwards compatibility: .lazy without .live implies .change.live\n let hasLazyWithoutLive = modifiers.includes('lazy') && ! isLive\n let shouldSendNetwork = isLive || hasLazyWithoutLive\n\n let ephemeralModifiers = isLive && ! hasLazyWithoutLive ? modifiers.slice(0, liveIndex) : modifiers.slice()\n let networkModifiers = isLive && ! hasLazyWithoutLive ? modifiers.slice(liveIndex + 1) : []\n\n // For .lazy backwards compat, trigger network on change\n if (hasLazyWithoutLive) {\n // Remove 'lazy' from ephemeralModifiers for .lazy backwards compat\n ephemeralModifiers = ephemeralModifiers.filter(m => m !== 'lazy')\n networkModifiers.push('change')\n }\n\n // Add self/deep modifier for event propagation control\n if (! (ephemeralModifiers.includes('deep') || networkModifiers.includes('deep'))) {\n if (! ephemeralModifiers.includes('self')) {\n ephemeralModifiers.push('self')\n }\n }\n\n // Extract ephemeral trigger modifiers (these control when x-model syncs)\n let ephemeralOnBlur = ephemeralModifiers.includes('blur')\n let ephemeralOnChange = ephemeralModifiers.includes('change') || ephemeralModifiers.includes('lazy')\n let ephemeralOnEnter = ephemeralModifiers.includes('enter')\n let hasEphemeralTriggers = ephemeralOnBlur || ephemeralOnChange || ephemeralOnEnter\n\n // Extract network trigger modifiers\n let networkOnBlur = networkModifiers.includes('blur')\n let networkOnChange = networkModifiers.includes('change') || networkModifiers.includes('lazy')\n let networkOnEnter = networkModifiers.includes('enter')\n let hasNetworkTriggers = networkOnBlur || networkOnChange || networkOnEnter\n let isDebounced = networkModifiers.includes('debounce')\n let isThrottled = networkModifiers.includes('throttle')\n\n // Trigger a network request\n let update = () => {\n setNextActionOrigin({ el, directive })\n\n if (isLive || isDebounced) {\n setNextActionMetadata({ type: 'model.live' })\n }\n\n expression.startsWith('$parent')\n ? component.$wire.$parent.$commit()\n : component.$wire.$commit()\n }\n\n let debouncedUpdate = update\n\n // Apply debounce/throttle from network modifiers\n if ((shouldSendNetwork && ! hasNetworkTriggers && isRealtimeInput(el)) || isDebounced) {\n debouncedUpdate = debounce(debouncedUpdate, parseModifierDuration(networkModifiers, 'debounce') || 150)\n }\n\n if (isThrottled) {\n debouncedUpdate = throttle(debouncedUpdate, parseModifierDuration(networkModifiers, 'throttle') || 150)\n }\n\n // Build the bindings object\n let bindings = {}\n\n // Network event listeners (for modifiers after .live, or .lazy backwards compat)\n if (shouldSendNetwork && networkOnBlur) {\n bindings['@blur'] = () => update()\n }\n\n if (shouldSendNetwork && networkOnChange) {\n bindings['@change'] = () => update()\n }\n\n if (shouldSendNetwork && networkOnEnter) {\n bindings['@keydown.enter'] = () => update()\n }\n\n // Build x-model modifier tail from ephemeral modifiers\n let xModelTail = getModifierTail(ephemeralModifiers)\n\n bindings['x-model' + xModelTail] = () => {\n return {\n get() {\n return dataGet(component.$wire, expression)\n },\n set(value) {\n dataSet(component.$wire, expression, value)\n\n // If .live is present and no specific network triggers, fire on every ephemeral sync\n if (shouldSendNetwork && ! hasNetworkTriggers) {\n debouncedUpdate()\n }\n },\n }\n }\n\n Alpine.bind(el, bindings)\n})\n\nfunction getModifierTail(modifiers) {\n // Filter out Livewire-specific modifiers that shouldn't go to x-model\n // Keep: blur, change, lazy, enter, self, deep, number, boolean, trim, fill\n // Remove: defer, live, debounce, throttle (and their durations)\n modifiers = modifiers.filter(i => ! [\n 'defer', 'live'\n ].includes(i))\n\n if (modifiers.includes('debounce')) {\n let index = modifiers.indexOf('debounce')\n let hasDuration = parseModifierDuration(modifiers, 'debounce') !== undefined\n\n // Delete the subsequent modifier if it's a duration...\n modifiers.splice(index, hasDuration ? 2 : 1)\n }\n\n if (modifiers.includes('throttle')) {\n let index = modifiers.indexOf('throttle')\n let hasDuration = parseModifierDuration(modifiers, 'throttle') !== undefined\n\n // Delete the subsequent modifier if it's a duration...\n modifiers.splice(index, hasDuration ? 2 : 1)\n }\n\n if (modifiers.length === 0) return ''\n\n return '.' + modifiers.join('.')\n}\n\nfunction isRealtimeInput(el) {\n return (\n ['INPUT', 'TEXTAREA'].includes(el.tagName.toUpperCase()) &&\n !['checkbox', 'radio'].includes(el.type)\n )\n || el.tagName.toUpperCase() === 'UI-SLIDER' // Flux UI\n || el.tagName.toUpperCase() === 'UI-COMPOSER' // Flux UI\n}\n\nfunction isDirty(subject, dirty) {\n // Check for exact match: wire:model=\"bob\" in ['bob']\n if (dirty.includes(subject)) return true\n\n // Check case of parent: wire:model=\"bob.1\" in ['bob']\n return dirty.some(i => subject.startsWith(i))\n}\n\nfunction componentIsMissingProperty(component, property) {\n if (property.startsWith('$parent')) {\n let parent = findComponentByEl(component.el.parentElement, false)\n\n if (! parent) return true\n\n return componentIsMissingProperty(parent, property.slice(7).replace(/^\\./, ''))\n }\n\n // Extract base property, handling both \"foo.bar\" and \"['foo'].bar\"\n let match = property.match(/^\\[['\"]?([^\\]'\"]+)['\"]?\\]/) || property.match(/^([^.\\[]+)/)\n let baseProperty = match[1]\n\n return ! Object.keys(component.canonical).includes(baseProperty)\n}\n\nfunction debounce(func, wait) {\n var timeout;\n\n return function() {\n var context = this, args = arguments;\n\n var later = function() {\n timeout = null\n\n func.apply(context, args)\n }\n\n clearTimeout(timeout)\n\n timeout = setTimeout(later, wait)\n }\n}\n\nfunction throttle(func, limit) {\n let inThrottle\n\n return function() {\n let context = this, args = arguments\n\n if (! inThrottle) {\n func.apply(context, args)\n\n inThrottle = true\n\n setTimeout(() => inThrottle = false, limit)\n }\n }\n}\n\nfunction parseModifierDuration(modifiers, key) {\n let index = modifiers.indexOf(key)\n if (index === -1) return undefined\n\n let nextModifier = modifiers[modifiers.indexOf(key)+1] || 'invalid-wait'\n let duration = nextModifier.split('ms')[0]\n\n return ! isNaN(duration) ? duration : undefined\n}", "import { directive } from \"@/directives\"\nimport { evaluateActionExpression } from '../evaluator'\nimport { setNextActionOrigin } from \"@/request\"\n\ndirective('init', ({ component, el, directive }) => {\n let fullMethod = directive.expression ? directive.expression : '$refresh'\n\n setNextActionOrigin({ el, directive })\n\n evaluateActionExpression(el, fullMethod)\n})\n", "import { directive, getDirectives } from \"@/directives\"\nimport { setNextActionMetadata, setNextActionOrigin, sessionIsExpired } from '@/request'\nimport { evaluateActionExpression } from '../evaluator'\n\ndirective('poll', ({ el, directive, component }) => {\n let interval = extractDurationFrom(directive.modifiers, 2000)\n\n let { start, pauseWhile, throttleWhile, stopWhen } = poll(() => {\n triggerComponentRequest(el, directive, component)\n }, interval)\n\n start()\n\n throttleWhile(() => theTabIsInTheBackground() && theDirectiveIsMissingKeepAlive(directive))\n pauseWhile(() => theDirectiveHasVisible(directive) && theElementIsNotInTheViewport(el))\n pauseWhile(() => theDirectiveIsOffTheElement(el))\n pauseWhile(() => livewireIsOffline())\n pauseWhile(() => sessionIsExpired())\n stopWhen(() => theElementIsDisconnected(el))\n})\n\nfunction triggerComponentRequest(el, directive, component) {\n // Set targetEl to null to prevent data-loading on poll actions\n setNextActionOrigin({ el, directive, targetEl: null })\n setNextActionMetadata({ type: 'poll' })\n\n let fullMethod = directive.expression ? directive.expression : '$refresh'\n\n evaluateActionExpression(el, fullMethod)\n}\n\nexport function poll(callback, interval = 2000) {\n let pauseConditions = []\n let throttleConditions = []\n let stopConditions = []\n\n return {\n start() {\n let clear = syncronizedInterval(interval, () => {\n if (stopConditions.some(i => i())) return clear()\n if (pauseConditions.some(i => i())) return\n if (throttleConditions.some(i => i()) && Math.random() < .95) return\n\n callback()\n })\n },\n pauseWhile(condition) {\n pauseConditions.push(condition)\n },\n throttleWhile(condition) {\n throttleConditions.push(condition)\n },\n stopWhen(condition) {\n stopConditions.push(condition)\n }\n }\n}\n\nlet clocks = []\n\nfunction syncronizedInterval(ms, callback) {\n if (! clocks[ms]) {\n let clock = {\n timer: setInterval(() => clock.callbacks.forEach(i => i()), ms),\n callbacks: new Set,\n }\n\n clocks[ms] = clock\n }\n\n clocks[ms].callbacks.add(callback)\n\n return () => {\n clocks[ms].callbacks.delete(callback)\n\n if (clocks[ms].callbacks.size === 0) {\n clearInterval(clocks[ms].timer)\n delete clocks[ms]\n }\n }\n}\n\nlet isOffline = false\n\nwindow.addEventListener('offline', () => isOffline = true)\nwindow.addEventListener('online', () => isOffline = false)\n\nexport function livewireIsOffline() {\n return isOffline\n}\n\nlet inBackground = false\n\ndocument.addEventListener('visibilitychange', () => { inBackground = document.hidden }, false)\n\nfunction theTabIsInTheBackground() {\n return inBackground\n}\n\nfunction theDirectiveIsOffTheElement(el) {\n return ! getDirectives(el).has('poll')\n}\n\nfunction theDirectiveIsMissingKeepAlive(directive) {\n return ! directive.modifiers.includes('keep-alive')\n}\n\nfunction theDirectiveHasVisible(directive) {\n return directive.modifiers.includes('visible')\n}\n\nfunction theElementIsNotInTheViewport(el) {\n let bounding = el.getBoundingClientRect()\n\n return ! (\n bounding.top < (window.innerHeight || document.documentElement.clientHeight) &&\n bounding.left < (window.innerWidth || document.documentElement.clientWidth) &&\n bounding.bottom > 0 &&\n bounding.right > 0\n )\n}\n\nexport function theElementIsDisconnected(el) {\n return el.isConnected === false\n}\n\nexport function extractDurationFrom(modifiers, defaultDuration) {\n let durationInMilliSeconds\n let durationInMilliSecondsString = modifiers.find(mod => mod.match(/([0-9]+)ms/))\n let durationInSecondsString = modifiers.find(mod => mod.match(/([0-9]+)s/))\n\n if (durationInMilliSecondsString) {\n durationInMilliSeconds = Number(durationInMilliSecondsString.replace('ms', ''))\n } else if (durationInSecondsString) {\n durationInMilliSeconds = Number(durationInSecondsString.replace('s', '')) * 1000\n }\n\n return durationInMilliSeconds || defaultDuration\n}\n", "import { evaluateActionExpression } from '../evaluator'\nimport Alpine from 'alpinejs'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:show')) {\n let { name, value } = el.attributes[i]\n\n let modifierString = name.split('wire:show')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-show' + modifierString]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})", "import Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:text')) {\n let { name, value } = el.attributes[i]\n\n let modifierString = name.split('wire:text')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-text' + modifierString]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n", "import Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:bind:')) {\n let { name, value } = el.attributes[i]\n\n let remainder = name.split('wire:bind')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-bind' + remainder]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n"], + "mappings": "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", + "names": ["require_module_cjs", "__commonJSMin", "exports", "module", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__commonJS", "cb", "mod", "__export", "target", "all", "name", "__copyProps", "to", "from", "except", "desc", "key", "__toESM", "isNodeMode", "__toCommonJS", "require_shared_cjs", "makeMap", "str", "expectsLowerCase", "map", "list", "i", "val", "PatchFlagNames", "slotFlagsText", "GLOBALS_WHITE_LISTED", "isGloballyWhitelisted", "range", "generateCodeFrame", "source", "start2", "end", "lines", "newlineSequences", "_", "idx", "count", "res", "j", "line", "lineLength", "newLineSeqLength", "pad", "length", "specialBooleanAttrs", "isSpecialBooleanAttr", "isBooleanAttr2", "unsafeAttrCharRE", "attrValidationCache", "isSSRSafeAttrName", "isUnsafe", "propsToAttrMap", "isNoUnitNumericStyleProp", "isKnownAttr", "normalizeStyle", "value", "isArray", "item", "normalized", "isString", "parseStringStyle", "isObject2", "listDelimiterRE", "propertyDelimiterRE", "cssText", "ret", "tmp", "stringifyStyle", "styles", "normalizedKey", "hyphenate", "normalizeClass", "HTML_TAGS", "SVG_TAGS", "VOID_TAGS", "isHTMLTag", "isSVGTag", "isVoidTag", "escapeRE", "escapeHtml", "string", "match", "html", "escaped", "index", "lastIndex", "commentStripRE", "escapeHtmlComment", "src", "looseCompareArrays", "a", "b", "equal", "looseEqual", "aValidType", "isDate", "bValidType", "aKeysCount", "bKeysCount", "aHasKey", "bHasKey", "looseIndexOf", "arr", "toDisplayString", "replacer", "_key", "isMap", "entries", "val2", "isSet", "isPlainObject", "babelParserDefaultPlugins", "EMPTY_OBJ", "EMPTY_ARR", "NOOP", "NO", "onRE", "isOn", "isModelListener", "extend", "remove", "el", "hasOwnProperty", "hasOwn", "toTypeString", "isFunction", "isSymbol", "isPromise", "objectToString", "toRawType", "isIntegerKey", "isReservedProp", "cacheStringFunction", "fn", "cache", "camelizeRE", "camelize", "c", "hyphenateRE", "capitalize", "toHandlerKey", "hasChanged", "oldValue", "invokeArrayFns", "fns", "arg", "def", "obj", "toNumber", "n", "_globalThis", "getGlobalThis", "require_shared", "module2", "require_reactivity_cjs", "shared", "targetMap", "effectStack", "activeEffect", "ITERATE_KEY", "MAP_KEY_ITERATE_KEY", "isEffect", "effect3", "options", "effect4", "createReactiveEffect", "stop2", "cleanup", "uid", "enableTracking", "resetTracking", "deps", "shouldTrack", "trackStack", "pauseTracking", "last", "track", "type", "depsMap", "dep", "trigger", "newValue", "oldTarget", "effects", "add2", "effectsToAdd", "key2", "run", "isNonTrackableKeys", "builtInSymbols", "get2", "createGetter", "shallowGet", "readonlyGet", "shallowReadonlyGet", "arrayInstrumentations", "createArrayInstrumentations", "instrumentations", "args", "toRaw2", "l", "isReadonly2", "shallow", "receiver", "shallowReadonlyMap", "readonlyMap", "shallowReactiveMap", "reactiveMap", "targetIsArray", "isRef", "readonly", "reactive3", "set2", "createSetter", "shallowSet", "hadKey", "result", "deleteProperty", "has", "ownKeys", "mutableHandlers", "readonlyHandlers", "shallowReactiveHandlers", "shallowReadonlyHandlers", "toReactive", "toReadonly", "toShallow", "getProto", "v", "get$1", "isShallow", "rawTarget", "rawKey", "has2", "wrap", "has$1", "size", "add", "set$1", "get3", "checkIdentityKeys", "deleteEntry", "clear", "hadItems", "createForEach", "callback", "thisArg", "observed", "createIterableMethod", "method", "targetIsMap", "isPair", "isKeyOnly", "innerIterator", "done", "createReadonlyMethod", "createInstrumentations", "mutableInstrumentations2", "shallowInstrumentations2", "readonlyInstrumentations2", "shallowReadonlyInstrumentations2", "mutableInstrumentations", "readonlyInstrumentations", "shallowInstrumentations", "shallowReadonlyInstrumentations", "createInstrumentationGetter", "mutableCollectionHandlers", "shallowCollectionHandlers", "readonlyCollectionHandlers", "shallowReadonlyCollectionHandlers", "targetTypeMap", "rawType", "getTargetType", "createReactiveObject", "shallowReactive", "shallowReadonly", "baseHandlers", "collectionHandlers", "proxyMap", "existingProxy", "targetType", "proxy", "isReactive2", "isReadonly", "isProxy", "markRaw", "convert", "r", "ref", "createRef", "shallowRef", "RefImpl", "_shallow", "newVal", "rawValue", "triggerRef", "ref2", "unref", "shallowUnwrapHandlers", "proxyRefs", "objectWithRefs", "CustomRefImpl", "factory", "set3", "customRef", "toRefs", "object", "toRef", "ObjectRefImpl", "_object", "ComputedRefImpl", "getter", "_setter", "self2", "computed", "getterOrOptions", "setter", "require_reactivity", "module_exports", "src_default", "module_default", "flushPending", "flushing", "queue", "lastFlushedIndex", "transactionActive", "scheduler", "queueJob", "startTransaction", "commitTransaction", "queueFlush", "job", "dequeueJob", "flushJobs", "reactive", "effect", "release", "raw", "shouldSchedule", "disableEffectScheduling", "setReactivityEngine", "engine", "task", "overrideEffect", "override", "elementBoundEffect", "effectReference", "watch", "firstTime", "oldValueJSON", "newJSON", "previousValue", "transaction", "onAttributeAddeds", "onElRemoveds", "onElAddeds", "onElAdded", "onElRemoved", "onAttributesAdded", "onAttributeRemoved", "cleanupAttributes", "names", "cleanupElement", "_a", "_b", "observer", "onMutate", "currentlyObserving", "startObservingMutations", "stopObservingMutations", "flushObserver", "queuedMutations", "records", "queueLengthWhenTriggered", "mutateDom", "isCollecting", "deferredMutations", "deferMutations", "flushAndStopDeferringMutations", "mutations", "addedNodes", "removedNodes", "addedAttributes", "removedAttributes", "node", "attrs", "scope", "mergeProxies", "closestDataStack", "addScopeToNode", "data2", "referenceNode", "objects", "mergeProxyTrap", "keyInPrototypeChain", "thisProxy", "collapseProxies", "descriptor", "acc", "initInterceptors", "recurse", "basePath", "enumerable", "path", "interceptor", "mutateObj", "get", "set", "initialValue", "initialize", "innerValue", "carry", "segment", "magics", "magic", "injectMagics", "memoizedUtilities", "getUtilities", "utilities", "getElementBoundUtilities", "utils", "tryCatch", "expression", "e", "handleError", "errorHandler", "normalErrorHandler", "setErrorHandler", "handler4", "error2", "shouldAutoEvaluateFunctions", "dontAutoEvaluateFunctions", "evaluate", "extras", "evaluateLater", "theEvaluatorFunction", "setEvaluator", "newEvaluator", "theRawEvaluatorFunction", "setRawEvaluator", "generateEvaluatorFromFunction", "dataStack", "func", "scope2", "params", "context", "runIfTypeOfFunction", "evaluateRaw", "prefixAsString", "prefix", "subject", "setPrefix", "newPrefix", "directiveHandlers", "directive", "directive2", "pos", "directiveOrder", "directiveExists", "directives", "attributes", "originalAttributeOverride", "vAttributes", "staticAttributes", "attributesOnly", "attribute", "attr", "transformedAttributeMap", "toTransformedAttributes", "newName", "oldName", "outNonAlpineAttributes", "toParsedDirectives", "byPriority", "getDirectiveHandler", "isDeferringHandlers", "directiveHandlerStacks", "currentHandlerStackKey", "deferHandlingDirectives", "flushHandlers", "stopDeferring", "cleanups", "cleanupEffect", "alpine_default", "noop", "fullHandler", "startingWith", "replacement", "into", "attributeTransformers", "transform", "mapAttributes", "alpineAttributeRegex", "typeMatch", "valueMatch", "modifiers", "original", "DEFAULT", "typeA", "typeB", "dispatch", "detail", "walk", "el2", "skip", "warn", "message", "started", "start", "initTree", "destroyTree", "handle", "outNestedComponents", "closestRoot", "allSelectors", "warnAboutMissingPlugins", "rootSelectorCallbacks", "initSelectorCallbacks", "rootSelectors", "addRootSelector", "selectorCallback", "addInitSelector", "includeInitSelectors", "findClosest", "element", "selector", "isRoot", "initInterceptors2", "interceptInit", "markerDispenser", "walker", "intercept", "root", "plugin2", "selectors", "tickStack", "isHolding", "nextTick", "releaseNextTicks", "holdNextTicks", "setClasses", "setClassesFromString", "setClassesFromObject", "splitClasses", "classString", "missingClasses", "classString2", "addClassesAndReturnUndo", "classes", "classObject", "forAdd", "bool", "forRemove", "added", "removed", "setStyles", "setStylesFromObject", "setStylesFromString", "previousStyles", "value2", "kebabCase", "once", "fallback", "called", "evaluate2", "registerTransitionsFromHelper", "registerTransitionsFromClassString", "stage", "registerTransitionObject", "doesntSpecify", "transitioningIn", "transitioningOut", "wantsAll", "wantsOpacity", "wantsScale", "opacityValue", "scaleValue", "modifierValue", "delay", "origin", "property", "durationIn", "durationOut", "easing", "setFunction", "defaultValue", "before", "after", "transition", "show", "hide", "nextTick2", "clickAwayCompatibleShow", "resolve", "reject", "closest", "closestHide", "hideAfterChildren", "parent", "during", "undoStart", "undoDuring", "undoEnd", "performTransition", "stages", "interrupted", "reachedBefore", "reachedEnd", "finish", "duration", "isCloning", "skipDuringClone", "onlyDuringClone", "interceptors", "interceptClone", "cloneNode", "dontRegisterReactiveSideEffects", "isCloningLegacy", "clone", "oldEl", "newEl", "cloneTree", "hasRunThroughFirstEl", "el3", "callback2", "storedEffect", "bind", "camelCase", "bindInputValue", "bindStyles", "bindClasses", "bindAttributeAndProperty", "bindAttribute", "isRadio", "isCheckbox", "checkedAttrLooseCompare", "updateSelect", "setPropertyIfChanged", "attributeShouldntBePreservedIfFalsy", "isBooleanAttr", "setIfChanged", "attrName", "propName", "arrayWrappedValue", "option", "char", "valueA", "valueB", "safeParseBoolean", "booleanAttributes", "getBinding", "getAttributeBinding", "extractProp", "extract", "binding", "debounce", "wait", "timeout", "later", "throttle", "limit", "inThrottle", "entangle", "outerGet", "outerSet", "innerGet", "innerSet", "firstRun", "outerHash", "innerHash", "reference", "outer", "inner", "cloneIfObject", "outerHashLatest", "innerHashLatest", "plugin", "stores", "isReactive", "store", "getStores", "binds", "bind2", "bindings", "getBindings", "applyBindingsObject", "injectBindingProviders", "cleanupRunners", "datas", "data", "injectDataProviders", "Alpine", "safemap", "globals", "Token", "Tokenizer", "input", "offset", "hasDecimal", "quote", "next", "nextNext", "Parser", "tokens", "expr", "consequent", "alternate", "operator", "right", "argument", "elements", "properties", "Evaluator", "forceBindingRootScopeToFunctions", "memberValue", "returnValue", "prop", "thisContext", "callee", "left", "evalRight", "keyword", "generateRuntimeFunction", "ast", "evaluator", "cspRawEvaluator", "generateDataStack", "cspEvaluator", "generateEvaluator", "overriddenMagics", "completeScope", "nextReturnValue", "import_reactivity10", "evaluateLater2", "unwatch", "getArrayOfRefObject", "refObjects", "globalIdMemo", "findAndIncrementId", "closestIdRoot", "setIdRoot", "cacheKey", "cacheIdByNameOnElement", "id", "output", "warnMissingPluginMagic", "magicName", "slug", "evaluateInnerSet", "releaseEntanglement", "getTarget", "clone2", "eventName", "placeInDom", "clone3", "target2", "modifiers2", "teleportContainerDuringClone", "handler", "on", "event", "listenerTarget", "wrapHandler", "wrapper", "dotSyntax", "camelCase2", "addDebounceOrThrottle", "isKeyEvent", "isClickEvent", "isListeningForASpecificKeyThatHasntBeenPressed", "nextModifier", "isNumeric", "kebabCase2", "keyModifiers", "debounceIndex", "keyToModifiers", "selectedSystemKeyModifiers", "modifier", "modifierToKeyMap", "scopeTarget", "evaluateGet", "evaluateSet", "getValue", "isGetterSetter", "setValue", "hasChangeModifier", "hasBlurModifier", "hasEnterModifier", "hasExplicitEventModifiers", "removeListener", "listeners", "syncValue", "getInputValue", "form", "syncCallback", "removeResetListener", "currentValue", "safeParseNumber", "checkedAttrLooseCompare2", "number", "isNumeric2", "handler2", "bindingProviders", "storeKeyForXFor", "shouldSkipRegisteringDataDuringClone", "magicContext", "dataProviderContext", "reactiveData", "undo", "toggle", "iteratorNames", "parseForExpression", "evaluateItems", "evaluateKey", "loop", "refreshScope", "newScope", "templateEl", "items", "isNumeric3", "oldLookup", "lookup", "hasStringKeys", "isObject", "scopeEntries", "getIterationScopeVariables", "innerKey", "prev", "reactiveScope", "forIteratorRE", "stripParensRE", "forAliasRE", "inMatch", "iteratorMatch", "scopeVariables", "handler3", "warnMissingPluginDirective", "directiveName", "require_nprogress", "__commonJSMin", "exports", "module", "root", "factory", "NProgress", "Settings", "options", "key", "value", "n", "started", "clamp", "progress", "bar", "speed", "ease", "queue", "next", "css", "barPositionCSS", "work", "force", "amount", "initial", "current", "$promise", "fromStart", "addClass", "perc", "toBarPerc", "parent", "spinner", "removeElement", "removeClass", "bodyStyle", "vendorPrefix", "min", "max", "barCSS", "pending", "fn", "cssPrefixes", "cssProps", "camelCase", "string", "match", "letter", "getVendorProp", "name", "style", "i", "capName", "vendorName", "getStyleProp", "applyCss", "element", "prop", "properties", "args", "hasClass", "list", "classList", "oldList", "newList", "Bag", "key", "value", "callback", "WeakBag", "dispatch", "target", "name", "detail", "bubbles", "listen", "handler", "isObjecty", "subject", "isObject", "isArray", "isFunction", "isPrimitive", "deepClone", "obj", "deeplyEqual", "a", "b", "parsePathSegments", "path", "dataGet", "object", "key", "carry", "i", "dataSet", "value", "segments", "firstSegment", "restOfSegments", "nextSegment", "isArray", "isNumeric", "subject", "diff", "left", "right", "diffs", "path", "isObject", "isArray", "isPrimitive", "leftKeys", "rightKeys", "key", "i", "value", "diffAndConsolidate", "diffRecursive", "rootLeft", "rootRight", "convertedToObject", "hasNonNumericKeys", "arr", "k", "deeplyEqual", "dataGet", "childDiffs", "changedCount", "consolidatedCount", "totalChildren", "childPath", "result", "diffAndPatchRecursive", "target", "isObjecty", "b", "aNum", "extractData", "payload", "isSynthetic", "meta", "iValue", "subject", "getCsrfToken", "nonce", "getNonce", "elWithNonce", "replaceNoncesInHtml", "html", "nonceMatch", "newNonce", "cloneScriptTag", "el", "script", "attr", "getModuleUrl", "getUpdateUri", "contentIsFromDump", "content", "splitDumpFromContent", "dump", "walkUpwards", "callback", "current", "stop", "walkBackwards", "uploadManagers", "getUploadManager", "component", "manager", "UploadManager", "handleFileUpload", "el", "property", "cleanup", "start", "finish", "error", "cancel", "progress", "progressEvent", "percentCompleted", "eventHandler", "e", "value", "clearFileInputValue", "MessageBag", "name", "url", "payload", "tmpFilenames", "tmpFilename", "file", "finishCallback", "errorCallback", "progressCallback", "cancelledCallback", "files", "append", "uploadObject", "formData", "headers", "csrfToken", "getCsrfToken", "response", "method", "retrievePaths", "request", "key", "paths", "errors", "fileInfos", "uploadItem", "thing", "params", "callback", "upload", "component", "name", "file", "finishCallback", "errorCallback", "progressCallback", "cancelledCallback", "getUploadManager", "uploadMultiple", "files", "append", "removeUpload", "tmpFilename", "cancelUpload", "import_alpinejs", "generateEntangleFunction", "component", "cleanup", "name", "live", "isLive", "livewireProperty", "livewireComponent", "livewirePropertyValue", "Alpine", "initialValue", "getter", "setter", "path", "key", "release", "value", "cloneIfObject", "obj", "import_alpinejs", "listeners", "on", "name", "callback", "i", "trigger", "params", "callbacks", "finishers", "finisher", "isFunction", "result", "runFinishers", "triggerAsync", "latest", "iResult", "coordinateNetworkInteractions", "messageBus", "interceptPartition", "message", "compileRequest", "component", "bundledMessages", "child", "action", "constructAction", "createOrAddToOutstandingMessage", "interceptAction", "onFinish", "MessageRequest", "message", "interceptorRegistry", "messageInterceptors", "interceptor", "responsePromise", "error", "response", "body", "url", "preventDefault", "html", "json", "PageRequest", "uri", "MessageInterceptor", "message", "callback", "RequestInterceptor", "request", "InterceptorRegistry", "WeakBag", "component", "showHtmlModal", "html", "page", "a", "modal", "iframe", "hideHtmlModal", "cleanupModal", "componentSymbols", "componentIslandSymbols", "scopeSymbolFromMessage", "message", "component", "action", "islandName", "islandSymbols", "scopeSymbolFromAction", "MessageBus", "callback", "actionScope", "existingAction", "Message", "scope", "component", "action", "actionsByFingerprint", "island", "interceptors", "callback", "interceptor", "MessageInterceptor", "request", "index", "call", "error", "response", "body", "preventDefault", "json", "status", "errors", "returns", "returnsMeta", "resolvedActions", "value", "meta", "Action", "component", "name", "params", "metadata", "origin", "resolve", "reject", "action", "componentId", "bytes", "binary", "chunkSize", "i", "methodIsMarkedAsync", "actionIsAsync", "callback", "cb", "call", "result", "response", "body", "preventDefault", "error", "value", "registerLegacyEventSupport", "interceptRequest", "interceptMessage", "request", "onFailure", "onResponse", "onError", "onSuccess", "respondCallbacks", "succeedCallbacks", "failCallbacks", "trigger", "i", "response", "callback", "json", "error", "body", "preventDefault", "message", "onCancel", "onFinish", "payload", "onSync", "onMorph", "onRender", "outstandingActionOrigin", "outstandingActionMetadata", "outstandingActionInterceptors", "interceptors", "InterceptorRegistry", "messageBus", "MessageBus", "actionInterceptors", "partitionInterceptors", "sessionExpired", "sessionIsExpired", "setNextActionOrigin", "origin", "setNextActionMetadata", "metadata", "setNextActionInterceptor", "callback", "interceptAction", "interceptMessage", "interceptRequest", "interceptPartition", "interceptComponentAction", "component", "actionNameOrCallback", "maybeCallback", "actionName", "action", "rest", "interceptComponentMessage", "message", "a", "interceptComponentRequest", "request", "m", "onFinish", "coordinateNetworkInteractions", "fireAction", "method", "params", "constructAction", "cb", "fireActionInstance", "pendingInterceptors", "Action", "createOrAddToOutstandingMessage", "sendMessages", "Message", "requests", "messages", "existingRequest", "MessageRequest", "hasFoundRequest", "scopeSymbolFromMessage", "getUpdateUri", "getCsrfToken", "cachedOptions", "sendRequest", "responsePromise", "error", "response", "finalResponse", "interceptStreamAndReturnFinalResponse", "json", "componentId", "trigger", "e", "responseBody", "preventDefault", "showHtmlModal", "url", "html", "responseJson", "triggerAsync", "messageResponsePayloads", "payload", "snapshotEncoded", "effects", "snapshot", "handlers", "contentIsFromDump", "dump", "splitDumpFromContent", "reader", "remainingResponse", "done", "chunk", "output", "streams", "remaining", "extractStreamObjects", "stream", "raw", "regex", "matches", "parsed", "i", "sendNavigateRequest", "uri", "errorCallback", "PageRequest", "options", "destination", "getDestination", "status", "createUrlObjectFromString", "finalDestination", "urlString", "registerLegacyEventSupport", "import_alpinejs", "getErrorsObject", "component", "state", "Alpine", "keys", "key", "messages", "firstMessage", "total", "array", "field", "errors", "findRefEl", "component", "name", "refEl", "customDirectiveNames", "matchesForLivewireDirective", "attributeName", "extractDirective", "el", "name", "value", "modifiers", "Directive", "directive", "callback", "on", "component", "cleanup", "globalDirective", "getDirectives", "DirectiveManager", "customDirectiveHasBeenRegistered", "rawName", "rawMethod", "methods", "parsedMethods", "method", "paramString", "params", "argumentsToArray", "p", "k", "error", "methodExpression", "current", "parenCount", "inString", "stringChar", "trimmedExpression", "i", "char", "methodString", "methodMatch", "paramStart", "lastParenIndex", "toggleBooleanStateDirective", "el", "directive", "isTruthy", "cachedDisplay", "classes", "cache", "display", "i", "refreshDirtyStatesByComponent", "WeakBag", "on", "component", "succeed", "i", "directive", "el", "targets", "dirtyTargets", "oldIsDirty", "initialDisplay", "refreshDirtyState", "isDirty", "toggleBooleanStateDirective", "checkDirty", "target", "dataGet", "directives", "getDirectives", "s", "pendingComponentAssets", "on", "component", "effects", "scriptModuleHash", "encodedName", "path", "getModuleUrl", "module", "callback", "assetIsPendingFor", "runAfterAssetIsLoadedFor", "properties", "fallback", "wireProperty", "name", "callback", "component", "wireFallback", "aliases", "generateWireObject", "state", "isScoped", "target", "property", "getProperty", "getFallback", "value", "Alpine", "el", "cleanup", "findComponentByEl", "generateEntangleFunction", "reactive", "dataGet", "fn", "jsActions", "assetIsPendingFor", "resolver", "promise", "resolve", "params", "runAfterAssetIsLoadedFor", "live", "dataSet", "fireAction", "findRefEl", "interceptComponentMessage", "onFinish", "checkDirty", "actionNameOrCallback", "maybeCallback", "interceptComponentAction", "interceptComponentRequest", "getErrorsObject", "method", "options", "setNextActionMetadata", "path", "getter", "unwatch", "effect", "listen", "unhook", "on", "hookComponent", "dispatch", "dispatchSelf", "dispatchTo", "dispatchEl", "dispatchRef", "upload", "uploadMultiple", "removeUpload", "cancelUpload", "parentMemo", "parent", "overriddenMethods", "overrideMethod", "obj", "overrides", "Component", "el", "deepClone", "extractData", "generateWireObject", "context", "setNextActionOrigin", "action", "callback", "snapshotEncoded", "effects", "updates", "snapshot", "oldCanonical", "updatedOldCanonical", "newCanonical", "dirty", "diff", "newData", "diffAndPatchRecursive", "propertyName", "value", "updateKey", "updateValue", "diffKey", "diffValue", "propertiesDiff", "diffAndConsolidate", "object", "key", "dataSet", "html", "request", "trigger", "i", "componentEl", "children", "componentInstance", "findComponentByEl", "child", "childrenMemo", "name", "actions", "cleanup", "closestFragment", "el", "isMatch", "hasReachedBoundary", "current", "sibling", "foundEndMarker", "isEndFragmentMarker", "isStartFragmentMarker", "metadata", "extractFragmentMetadataFromMarkerNode", "Fragment", "findFragment", "startNode", "rootEl", "walkElements", "skip", "stop", "node", "callback", "child", "startMarkerNode", "findMatchingEndMarkerNode", "mountContainerTagName", "html", "container", "currentMetadata", "key", "extractInnerHtmlFromFragmentHtml", "fragmentHtml", "regex", "match", "_", "extractFragmentMetadataFromHtml", "__", "encodedMetadata", "decodeMetadata", "pair", "value", "components", "initComponent", "el", "component", "Component", "trigger", "i", "destroyComponent", "id", "hasComponent", "findComponent", "strict", "findComponentByEl", "componentId", "walkUpwards", "node", "stop", "endMarkers", "slotParentId", "walkBackwards", "siblingNode", "isEndFragmentMarker", "extractFragmentMetadataFromMarkerNode", "isStartFragmentMarker", "metadata", "componentsByName", "name", "getByName", "find", "first", "all", "dispatch", "component", "name", "params", "dispatchEvent", "dispatchGlobal", "dispatchSelf", "dispatchEl", "selector", "target", "dispatchTo", "componentName", "componentsByName", "dispatchRef", "ref", "el", "findRefEl", "listen", "callback", "e", "on", "eventName", "handler", "bubbles", "src_default", "Alpine", "collapse", "el", "modifiers", "duration", "modifierValue", "floor", "fullyHide", "setFunction", "el2", "styles", "revertFunction", "transitionStyles", "before", "after", "current", "full", "key", "fallback", "rawValue", "match", "module_default", "candidateSelectors", "candidateSelector", "NoElement", "matches", "getRootNode", "element", "_element$getRootNode", "_isInert", "node", "lookUp", "_node$getAttribute", "inertAtt", "inert", "result", "isContentEditable", "_node$getAttribute2", "attValue", "getCandidates", "el", "includeContainer", "filter", "candidates", "_getCandidatesIteratively", "elements", "options", "elementsToCheck", "assigned", "content", "nestedCandidates", "validCandidate", "shadowRoot", "validShadowRoot", "_nestedCandidates", "hasTabIndex", "getTabIndex", "getSortOrderTabIndex", "isScope", "tabIndex", "sortOrderedTabbables", "a", "b", "isInput", "isHiddenInput", "isDetailsWithSummary", "child", "getCheckedRadio", "nodes", "form", "i", "isTabbableRadio", "radioScope", "queryRadios", "name", "radioSet", "err", "checked", "isRadio", "isNonTabbableRadio", "isNodeAttached", "_nodeRoot", "nodeRoot", "nodeRootHost", "attached", "_nodeRootHost", "_nodeRootHost$ownerDo", "_node$ownerDocument", "_nodeRoot2", "_nodeRootHost2", "_nodeRootHost2$ownerD", "isZeroArea", "_node$getBoundingClie", "width", "height", "isHidden", "_ref", "displayCheck", "getShadowRoot", "visible", "isDirectSummary", "nodeUnderDetails", "originalNode", "parentElement", "rootNode", "isDisabledFromFieldset", "parentNode", "isNodeMatchingSelectorFocusable", "isNodeMatchingSelectorTabbable", "isShadowRootTabbable", "shadowHostNode", "_sortByOrder", "regularTabbables", "orderedTabbables", "item", "candidateTabindex", "acc", "sortable", "tabbable", "container", "focusable", "isTabbable", "focusableCandidateSelector", "isFocusable", "_arrayLikeToArray", "r", "e", "_arrayWithoutHoles", "asyncGeneratorStep", "n", "o", "c", "u", "n2", "_asyncToGenerator", "_next", "_throw", "_createForOfIteratorHelper", "t", "_unsupportedIterableToArray", "F", "r2", "_defineProperty", "_toPropertyKey", "_iterableToArray", "_nonIterableSpread", "ownKeys", "_objectSpread2", "_regenerator", "o2", "i2", "c2", "Generator", "u2", "_regeneratorDefine", "r3", "n3", "o3", "i3", "c3", "u3", "f2", "p", "y", "G", "d", "t2", "r4", "n4", "o4", "i4", "d2", "l", "p2", "GeneratorFunction", "GeneratorFunctionPrototype", "f", "e2", "e3", "_toConsumableArray", "_toPrimitive", "activeFocusTraps", "trapStack", "trap", "activeTrap", "trapIndex", "isSelectableInput", "isEscapeEvent", "isTabEvent", "isKeyForward", "isKeyBackward", "delay", "fn", "valueOrHandler", "value", "_len", "params", "_key", "getActualTarget", "event", "internalTrapStack", "createFocusTrap", "userOptions", "doc", "config", "state", "getOption", "configOverrideOptions", "optionName", "configOptionName", "findContainerIndex", "composedPath", "tabbableNodes", "getNodeForOption", "_ref2", "_ref2$hasFallback", "hasFallback", "_ref2$params", "optionValue", "getInitialFocusNode", "firstTabbableGroup", "firstTabbableNode", "updateTabbableNodes", "focusableNodes", "lastTabbableNode", "firstDomTabbableNode", "lastDomTabbableNode", "posTabIndexesFound", "forward", "nodeIdx", "group", "g", "_getActiveElement", "activeElement", "_tryFocus", "getReturnFocusNode", "previousActiveElement", "findNextNavNode", "_ref3", "target", "_ref3$isBackward", "isBackward", "destinationNode", "containerIndex", "containerGroup", "startOfGroupIndex", "_ref4", "destinationGroupIndex", "destinationGroup", "lastOfGroupIndex", "_ref5", "_destinationGroupIndex", "_destinationGroup", "checkPointerDown", "checkFocusIn", "targetContained", "nextNode", "navAcrossContainers", "mruContainerIdx", "mruTabIdx", "checkKeyNav", "checkTabKey", "checkEscapeKey", "checkClick", "addListeners", "promise", "resolve", "collectAdjacentElements", "containers", "containerAncestors", "adjacentElements", "_iterator", "_step", "insideShadowRoot", "current", "parent", "siblings", "_iterator2", "_step2", "removeListeners", "checkDomRemoval", "mutations", "isFocusedNodeRemoved", "mutation", "removedNodes", "mutationObserver", "updateObservedNodes", "activateOptions", "onActivate", "onPostActivate", "checkCanFocusTrap", "preexistingTrap", "revertState", "_preexistingTrap$_set", "finishActivation", "_ref6", "_callee", "_context", "error", "_preexistingTrap$_set2", "deactivateOptions", "onDeactivate", "onPostDeactivate", "checkCanReturnFocus", "returnFocus", "finishDeactivation", "pauseOptions", "unpauseOptions", "containerElements", "elementsAsArray", "paused", "onPause", "onPostPause", "onUnpause", "onPostUnpause", "finishUnpause", "_ref7", "_callee2", "_context2", "isEnabled", "_el$getAttribute", "src_default", "Alpine", "lastFocused", "currentFocused", "within", "el2", "els", "list", "expression", "modifiers", "effect", "evaluateLater", "cleanup", "evaluator", "oldValue", "undoInert", "autofocusEl", "setInert", "undoDisableScrolling", "releaseFocus", "disableScrolling", "evaluate", "undos", "crawlSiblingsUp", "sibling", "cache", "callback", "overflow", "paddingRight", "scrollbarWidth", "scrollbarGutter", "module_default", "src_default", "Alpine", "persist", "alias", "storage", "e", "dummy", "initialValue", "getter", "setter", "path", "key", "lookup", "initial", "storageHas", "storageGet", "value", "storageSet", "func", "target", "get", "set", "module_default", "src_default", "Alpine", "el", "value", "expression", "modifiers", "evaluateLater", "cleanup", "evaluate", "options", "getRootMargin", "getThreshold", "observer", "entries", "entry", "threshold", "getLengthValue", "rawValue", "match", "key", "fallback", "index", "values", "i", "v", "module_default", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread2", "target", "i", "source", "key", "_defineProperty", "_typeof", "obj", "obj2", "value", "_extends", "_objectWithoutPropertiesLoose", "excluded", "sourceKeys", "_objectWithoutProperties", "sourceSymbolKeys", "version", "userAgent", "pattern", "IE11OrLess", "Edge", "FireFox", "Safari", "IOS", "ChromeForAndroid", "captureMode", "on", "el", "event", "fn", "off", "matches", "selector", "getParentOrHost", "closest", "ctx", "includeCTX", "R_SPACE", "toggleClass", "name", "state", "className", "css", "prop", "val", "style", "matrix", "selfOnly", "appliedTransforms", "transform", "matrixFn", "find", "tagName", "iterator", "list", "n", "getWindowScrollingElement", "scrollingElement", "getRect", "relativeToContainingBlock", "relativeToNonStaticParent", "undoScale", "container", "elRect", "top", "left", "bottom", "right", "height", "width", "containerRect", "elMatrix", "scaleX", "scaleY", "isScrolledPast", "elSide", "parentSide", "parent", "getParentAutoScrollElement", "elSideVal", "parentSideVal", "visible", "getChild", "childNum", "options", "includeDragEl", "currentChild", "children", "Sortable", "lastChild", "last", "index", "index2", "getRelativeScrollOffset", "offsetLeft", "offsetTop", "winScroller", "indexOfObject", "arr", "includeSelf", "elem", "gotSelf", "elemCSS", "extend", "dst", "src", "isRectEqual", "rect1", "rect2", "_throttleTimeout", "throttle", "callback", "ms", "args", "_this", "cancelThrottle", "scrollBy", "x", "y", "clone", "Polymer", "$", "getChildContainingRectFromElement", "ghostEl2", "rect", "child", "_rect$left", "_rect$top", "_rect$right", "_rect$bottom", "childRect", "expando", "AnimationStateManager", "animationStates", "animationCallbackId", "fromRect", "childMatrix", "animating", "animationTime", "time", "toRect", "prevFromRect", "prevToRect", "animatingRect", "targetMatrix", "calculateRealTime", "currentRect", "duration", "translateX", "translateY", "repaint", "plugins", "defaults", "PluginManager", "plugin", "option2", "p", "eventName", "sortable", "evt", "eventNameGlobal", "defaults2", "pluginName", "initialized", "modified", "eventProperties", "modifiedValue", "dispatchEvent", "_ref", "rootEl2", "targetEl", "cloneEl2", "toEl", "fromEl", "oldIndex2", "newIndex2", "oldDraggableIndex2", "newDraggableIndex2", "originalEvent", "putSortable2", "extraEventProperties", "onName", "allEventProperties", "_excluded", "pluginEvent2", "data", "dragEl", "parentEl", "ghostEl", "rootEl", "nextEl", "lastDownEl", "cloneEl", "cloneHidden", "moved", "putSortable", "oldIndex", "oldDraggableIndex", "newIndex", "newDraggableIndex", "_hideGhostForTarget", "_unhideGhostForTarget", "_dispatchEvent", "info", "activeGroup", "awaitingDragStarted", "ignoreNextClick", "sortables", "tapEvt", "touchEvt", "lastDx", "lastDy", "tapDistanceLeft", "tapDistanceTop", "lastTarget", "lastDirection", "pastFirstInvertThresh", "isCircumstantialInvert", "targetMoveDistance", "ghostRelativeParent", "ghostRelativeParentInitialScroll", "_silent", "savedInputChecked", "documentExists", "PositionGhostAbsolutely", "CSSFloatProperty", "supportDraggable", "supportCssPointerEvents", "_detectDirection", "elCSS", "elWidth", "child1", "child2", "firstChildCSS", "secondChildCSS", "firstChildWidth", "secondChildWidth", "touchingSideChild2", "_dragElInRowColumn", "dragRect", "targetRect", "vertical", "dragElS1Opp", "dragElS2Opp", "dragElOppLength", "targetS1Opp", "targetS2Opp", "targetOppLength", "_detectNearestEmptySortable", "ret", "threshold", "insideHorizontally", "insideVertically", "_prepareGroup", "toFn", "pull", "to", "from", "dragEl2", "sameGroup", "otherGroup", "group", "originalGroup", "nearestEmptyInsertDetectEvent", "nearest", "_checkOutsideTargetEl", "dataTransfer", "preventOnFilter", "type", "touch", "originalTarget", "filter", "_saveInputCheckedState", "criteria", "ownerDocument", "dragStartFn", "_disableDraggable", "e", "_nextTick", "fallback", "inserted", "fallbackTolerance", "fallbackOffset", "ghostMatrix", "relativeScrollOffset", "dx", "dy", "cssMatrix", "revert", "activeSortable", "isOwner", "canSort", "fromSortable", "completedFired", "dragOverEvent", "extra", "completed", "target2", "after2", "_onMove", "changed", "capture", "insertion", "elLastChild", "_ghostIsLast", "_ghostIsFirst", "firstChild", "direction", "targetBeforeFirstSwap", "differentLevel", "differentRowCol", "side1", "scrolledPastTop", "scrollBefore", "_getSwapDirection", "sibling", "dragIndex", "nextSibling", "after", "moveVector", "_unsilent", "_cancelNextTick", "_globalDragOver", "order", "_generateId", "useAnimation", "items", "id", "store", "el2", "willInsertAfter", "onMoveFn", "retVal", "firstElRect", "childContainingRect", "spacer", "lastElRect", "swapThreshold", "invertedSwapThreshold", "invertSwap", "isLastTarget", "mouseOnAxis", "targetLength", "targetS1", "targetS2", "invert", "_getInsertDirection", "str", "sum", "root", "inputs", "idx", "element", "_len", "plugins2", "_key", "autoScrolls", "scrollEl", "scrollRootEl", "scrolling", "lastAutoScrollX", "lastAutoScrollY", "touchEvt$1", "pointerElemChangedInterval", "AutoScrollPlugin", "AutoScroll", "_ref2", "clearPointerElemChangedInterval", "clearAutoScrolls", "autoScroll", "ogElemScroller", "newElem", "autoScroll2", "isFallback", "sens", "speed", "scrollThisInstance", "scrollCustomFn", "layersOut", "currentParent", "canScrollX", "canScrollY", "scrollWidth", "scrollHeight", "scrollPosX", "scrollPosY", "vx", "vy", "scrollOffsetY", "scrollOffsetX", "drop", "dispatchSortableEvent", "hideGhostForTarget", "unhideGhostForTarget", "toSortable", "Revert", "_ref3", "Remove", "_ref4", "parentSortable", "sortable_esm_default", "walk", "skip", "node", "src_default", "Alpine", "modifiers", "expression", "effect", "evaluate", "cleanup", "handleSelector", "preferences", "tmpl", "getGroupName", "handleSort", "generateSortHandler", "config", "getConfigurationOverrides", "initSortable", "position", "handle", "ghostRef", "keepElementsWithinMorphMarkers", "cursor", "module_default", "src_default", "Alpine", "el", "value", "expression", "modifiers", "evaluateLater", "cleanup", "evaluator", "evaluate", "width", "height", "off", "onDocumentResize", "onElResize", "callback", "observer", "entries", "dimensions", "documentResizeObserver", "documentResizeObserverCallbacks", "entry", "module_default", "min", "max", "round", "floor", "createCoords", "v", "oppositeSideMap", "oppositeAlignmentMap", "clamp", "start", "value", "end", "evaluate", "param", "getSide", "placement", "getAlignment", "getOppositeAxis", "axis", "getAxisLength", "getSideAxis", "getAlignmentAxis", "getAlignmentSides", "rects", "rtl", "alignment", "alignmentAxis", "length", "mainAlignmentSide", "getOppositePlacement", "getExpandedPlacements", "oppositePlacement", "getOppositeAlignmentPlacement", "getSideList", "side", "isStart", "lr", "rl", "tb", "bt", "getOppositeAxisPlacements", "flipAlignment", "direction", "list", "expandPaddingObject", "padding", "getPaddingObject", "rectToClientRect", "rect", "computeCoordsFromPlacement", "_ref", "reference", "floating", "sideAxis", "alignLength", "isVertical", "commonX", "commonY", "commonAlign", "coords", "computePosition", "config", "strategy", "middleware", "platform2", "validMiddleware", "x", "y", "statefulPlacement", "middlewareData", "resetCount", "i", "name", "fn", "nextX", "nextY", "data", "reset", "detectOverflow", "state", "options", "_await$platform$isEle", "elements", "boundary", "rootBoundary", "elementContext", "altBoundary", "paddingObject", "element", "clippingClientRect", "offsetParent", "offsetScale", "elementClientRect", "flip", "_middlewareData$arrow", "_middlewareData$flip", "initialPlacement", "checkMainAxis", "checkCrossAxis", "specifiedFallbackPlacements", "fallbackStrategy", "fallbackAxisSideDirection", "detectOverflowOptions", "isBasePlacement", "fallbackPlacements", "placements2", "overflow", "overflows", "overflowsData", "sides2", "side2", "_middlewareData$flip2", "_overflowsData$filter", "nextIndex", "nextPlacement", "resetPlacement", "d", "a", "b", "_overflowsData$map$so", "placement2", "overflow2", "acc", "convertValueToCoords", "mainAxisMulti", "crossAxisMulti", "rawValue", "mainAxis", "crossAxis", "offset", "diffCoords", "shift", "limiter", "x2", "y2", "mainAxisCoord", "crossAxisCoord", "minSide", "maxSide", "min2", "max2", "limitedCoords", "getNodeName", "node", "isNode", "getWindow", "_node$ownerDocument", "getDocumentElement", "isElement", "isHTMLElement", "isShadowRoot", "isOverflowElement", "overflowX", "overflowY", "display", "getComputedStyle", "isTableElement", "isContainingBlock", "webkit", "isWebKit", "css", "getContainingBlock", "currentNode", "getParentNode", "isLastTraversableNode", "getNodeScroll", "result", "getNearestOverflowAncestor", "parentNode", "getOverflowAncestors", "traverseIframes", "_node$ownerDocument2", "scrollableAncestor", "isBody", "win", "getCssDimensions", "width", "height", "hasOffset", "offsetWidth", "offsetHeight", "shouldFallback", "unwrapElement", "getScale", "domElement", "$", "noOffsets", "getVisualOffsets", "shouldAddVisualOffsets", "isFixed", "floatingOffsetParent", "getBoundingClientRect", "includeScale", "isFixedStrategy", "clientRect", "scale", "visualOffsets", "offsetWin", "currentIFrame", "iframeScale", "iframeRect", "left", "top", "convertOffsetParentRelativeRectToViewportRelativeRect", "isOffsetParentAnElement", "documentElement", "scroll", "offsets", "offsetRect", "getClientRects", "getWindowScrollBarX", "getDocumentRect", "html", "body", "getViewportRect", "visualViewport", "visualViewportBased", "getInnerBoundingClientRect", "getClientRectFromClippingAncestor", "clippingAncestor", "hasFixedPositionAncestor", "stopNode", "getClippingElementAncestors", "cache", "cachedResult", "el", "currentContainingBlockComputedStyle", "elementIsFixed", "computedStyle", "currentNodeIsContaining", "ancestor", "getClippingRect", "clippingAncestors", "firstClippingAncestor", "clippingRect", "accRect", "getDimensions", "getRectRelativeToOffsetParent", "getTrueOffsetParent", "polyfill", "getOffsetParent", "window2", "getElementRects", "getOffsetParentFn", "getDimensionsFn", "isRTL", "platform", "observeMove", "onMove", "io", "timeoutId", "root", "cleanup", "refresh", "skip", "threshold", "insetTop", "insetRight", "insetBottom", "insetLeft", "isFirstUpdate", "handleObserve", "entries", "ratio", "autoUpdate", "update", "ancestorScroll", "ancestorResize", "elementResize", "layoutShift", "animationFrame", "referenceEl", "ancestors", "cleanupIo", "reobserveFrame", "resizeObserver", "firstEntry", "frameId", "prevRefRect", "frameLoop", "nextRefRect", "computePosition2", "mergedOptions", "platformWithCache", "src_default", "Alpine", "from", "to", "expression", "modifiers", "evaluate2", "effect", "offsetValue", "unstyled", "allowFlip", "getOptions", "previousReference", "release", "compute", "previousValue", "setStyles", "idx", "module_default", "unwrap", "object", "batch", "callback", "updates", "HistoryCoordinator", "batch", "updates", "url", "state", "unwrap", "key", "callback", "method", "error", "handler", "historyCoordinator", "coordinator_default", "Snapshot", "url", "html", "snapshotCache", "location", "snapshot", "key", "index", "currentPageStatus", "storeCurrentPageStatus", "status", "updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks", "coordinator_default", "replaceUrl", "updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks", "whenTheBackOrForwardButtonIsClicked", "registerFallback", "handleHtml", "fallback", "i", "e", "state", "alpine", "updateUrlAndStoreLatestHtmlForFutureBackButtons", "destination", "pushUrl", "updateUrl", "method", "error", "whenThisLinkIsPressed", "el", "callback", "isProgrammaticClick", "e", "isNotPlainLeftClick", "isNotPlainEnterKey", "whenReleased", "handler", "whenThisLinkIsHoveredFor", "ms", "timeout", "extractDestinationFromLink", "linkEl", "createUrlObjectFromString", "urlString", "getUriStringFromUrlObject", "urlObject", "fetchHtml", "destination", "callback", "errorCallback", "uri", "getUriStringFromUrlObject", "performFetch", "html", "finalDestination", "status", "storeCurrentPageStatus", "sendNavigateRequest", "prefetches", "cacheDuration", "prefetchHtml", "destination", "callback", "errorCallback", "uri", "getUriStringFromUrlObject", "performFetch", "html", "routedUri", "status", "storeCurrentPageStatus", "storeThePrefetchedHtmlForWhenALinkIsClicked", "finalDestination", "state", "getPretchedHtmlOr", "receive", "ifNoPrefetchExists", "import_alpinejs", "packUpPersistedTeleports", "persistedEl", "Alpine", "i", "removeAnyLeftOverStaleTeleportTargets", "body", "unPackPersistedTeleports", "el", "skip", "isTeleportTarget", "storeScrollInformationInHtmlBeforeNavigatingAway", "el", "restoreScrollPositionOrScrollToTop", "scroll", "import_alpinejs", "els", "storePersistantElementsForLater", "callback", "i", "Alpine", "putPersistantElementsBack", "usedPersists", "old", "key", "el", "isPersistedElement", "import_nprogress", "NProgress", "injectStyles", "inProgress", "showAndStartProgressBar", "finishAndHideProgressBar", "removeAnyLeftOverStaleProgressBars", "style", "nonce", "getNonce", "packUpPersistedPopovers", "persistedEl", "isPopoverSupported", "el", "animations", "animation", "i", "unPackPersistedPopovers", "keyframes", "options", "currentTime", "now", "playState", "oldBodyScriptTagHashes", "attributesExemptFromScriptTagHashing", "swapCurrentPageWithNewHtml", "html", "andThen", "replaceNoncesInHtml", "newDocument", "newHtml", "newBody", "newHead", "i", "simpleHash", "ignoreAttributes", "afterRemoteScriptsHaveLoaded", "replaceHtmlAttributes", "mergeNewHead", "prepNewBodyScriptTagsToRun", "oldBody", "hash", "cloneScriptTag", "newHtmlElement", "currentHtmlElement", "attr", "name", "value", "children", "headChildrenHtmlLookup", "garbageCollector", "touchedHeadElements", "remoteScriptsPromises", "child", "isAsset", "childHtml", "isTracked", "ifTheQueryStringChangedSinceLastRequest", "isScript", "injectScriptTagAndWaitForItToFullyLoad", "script", "resolve", "reject", "el", "currentHeadChildren", "uri", "queryString", "extractUriAndQueryString", "currentUri", "currentQueryString", "str", "a", "b", "subject", "attributesToRemove", "result", "regex", "enablePersist", "showProgressBar", "restoreScroll", "autofocus", "navigate_default", "Alpine", "url", "options", "preserveScroll", "destination", "createUrlObjectFromString", "fireEventForOtherLibrariesToHookInto", "navigateTo", "el", "modifiers", "shouldPrefetchOnHover", "whenThisLinkIsHoveredFor", "extractDestinationFromLink", "prefetchHtml", "html", "finalDestination", "storeThePrefetchedHtmlForWhenALinkIsClicked", "finishAndHideProgressBar", "whenThisLinkIsPressed", "whenItIsReleased", "shouldPushToHistoryState", "showAndStartProgressBar", "fetchHtmlOrUsePrefetchedHtml", "swapCallbacks", "callback", "storeScrollInformationInHtmlBeforeNavigatingAway", "cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement", "updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks", "preventAlpineFromPickingUpDomChanges", "andAfterAllThis", "storePersistantElementsForLater", "persistedEl", "packUpPersistedTeleports", "packUpPersistedPopovers", "updateUrlAndStoreLatestHtmlForFutureBackButtons", "replaceUrl", "swapCurrentPageWithNewHtml", "afterNewScriptsAreDoneLoading", "removeAnyLeftOverStaleTeleportTargets", "putPersistantElementsBack", "newStub", "unPackPersistedTeleports", "unPackPersistedPopovers", "restoreScrollPositionOrScrollToTop", "autofocusElementsWithTheAutofocusAttribute", "nowInitializeAlpineOnTheNewPage", "whenTheBackOrForwardButtonIsClicked", "ifThePageBeingVisitedHasntBeenCached", "currentPageUrl", "currentPageKey", "updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks", "removeAnyLeftOverStaleProgressBars", "fromDestination", "errorCallback", "getPretchedHtmlOr", "fetchHtml", "afterAllThis", "name", "detail", "event", "skip", "walker", "root", "isPersistedElement", "isTeleportTarget", "history", "Alpine", "el", "interceptor", "alias", "alwaysShow", "usePush", "initialSeedValue", "getter", "setter", "path", "key", "queryKey", "initial", "replace", "push", "pop", "track", "newValue", "func", "name", "except", "has", "get", "set", "remove", "queryStringUtils", "url", "coordinator_default", "isInitiallyPresentInUrl", "initialValue", "initialValueMemo", "exceptValueMemo", "hasReturnedToInitialValue", "hasReturnedToExceptValue", "lock", "update", "strategy", "receiver", "handler", "e", "iName", "result", "object", "search", "data", "fromQueryString", "value", "stripNulls", "unwrap", "toQueryString", "isObjecty", "subject", "buildQueryStringEntries", "entries", "baseKey", "iKey", "iValue", "insertDotNotatedValueIntoData", "first", "second", "rest", "i", "decodedKey", "dotNotatedKey", "morph", "from", "toHtml", "options", "monkeyPatchDomSetAttributeToAllowAtSymbols", "context", "createMorphContext", "toEl", "createElement", "morphBetween", "startMarker", "endMarker", "fromContainer", "fromBlock", "Block", "toContainer", "container", "toStartMarker", "toEndMarker", "toBlock", "defaultGetKey", "el", "noop", "to", "updateChildrenOnly", "skipChildren", "skipUntil", "predicate", "shouldSkipChildren", "textOrComment", "shouldSkip", "toCloned", "value", "domAttributes", "toAttributes", "i", "name", "fromKeys", "fromKeyHoldovers", "currentTo", "getFirstNode", "currentFrom", "seedingMatchingId", "toKey", "fromKey", "fromDone", "toDone", "getNextSibling", "holdover", "clone", "isIf", "node", "isEnd", "nestedIfCount", "fromBlockStart", "next", "fromBlockEnd", "toBlockStart", "toBlockEnd", "nextToElementSibling", "found", "fromKeyNode", "currentFromNext", "removals", "domForRemoval", "els", "map", "theKey", "parent", "beforeMe", "hook", "args", "skip", "patched", "html", "template", "start", "end", "children", "currentNode", "child", "first", "reference", "newNode", "original", "hostDiv", "escapedValue", "attr", "fromId", "src_default", "Alpine", "module_default", "src_default", "Alpine", "el", "value", "expression", "effect", "evaluateLater", "cleanup", "templateFn", "lastInputValue", "evaluator", "input", "result", "value2", "formatMoney", "processInputValue", "updater", "template", "formatInput", "controller", "el2", "shouldRestoreCursor", "setInput", "restoreCursorPosition", "callback", "cursorPosition", "unformattedValue", "beforeLeftOfCursorBeforeFormatting", "newPosition", "regexes", "templateMark", "inputMark", "output", "templateChar", "inputChar", "delimiter", "thousands", "precision", "addThousands", "input2", "thousands2", "counter", "i", "minus", "strippedInput", "module_default", "import_alpinejs", "start", "ensureLivewireScriptIsntMisplaced", "dispatch", "Alpine", "module_default", "history", "navigate_default", "el", "attributes", "attribute", "matchesForLivewireDirective", "component", "findComponentByEl", "directive", "extractDirective", "trigger", "callback", "hasComponent", "initComponent", "destroyComponent", "directives", "name", "livewireEl", "import_alpinejs", "on", "component", "effects", "registerListeners", "listeners", "name", "handler", "e", "import_alpinejs", "import_alpinejs", "getAlpineScopeKeys", "el", "keys", "currentEl", "ownScope", "key", "evaluateExpression", "expression", "options", "result", "Alpine", "evaluateActionExpression", "contextualExpression", "contextualizeExpression", "error", "SKIP", "strings", "m", "pre", "ident", "offset", "i", "executedScripts", "executedAssets", "on", "assets", "key", "asset", "onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage", "addAssetsToHeadTagOfPage", "component", "effects", "scripts", "content", "onlyIfScriptHasntBeenRunAlreadyForThisComponent", "scriptContent", "extractScriptTagContent", "Alpine", "evaluateExpression", "callback", "alreadyRunKeys", "rawHtml", "matches", "replaceNoncesInHtml", "newDocument", "newHead", "child", "runAssetSynchronously", "resolve", "reject", "isScript", "script", "cloneScriptTag", "el", "import_alpinejs", "Alpine", "el", "findComponentByEl", "on", "component", "effects", "js", "xjs", "method", "body", "overrideMethod", "evaluateExpression", "expression", "params", "import_alpinejs", "defaultName", "globalDirective", "el", "directive", "cleanup", "setTransitionNames", "root", "options", "name", "clearTransitionNames", "transitionDomMutation", "fromEl", "toEl", "callback", "style", "update", "transitionConfig", "skipOnDialog", "transition", "observer", "morph", "component", "el", "html", "wrapperTag", "getTagName", "wrapper", "parentComponent", "findComponentByEl", "to", "effects", "trigger", "existingComponentsMap", "child", "wireId", "existingComponent", "transitionOptions", "transitionDomMutation", "Alpine", "getMorphConfig", "morphFragment", "startNode", "endNode", "toHTML", "fromContainer", "fromContainerTag", "toContainer", "parentElement", "parentElementTag", "parentProviderWrapper", "islandHasTransition", "node", "fromEl", "toEl", "childrenOnly", "skip", "skipChildren", "skipUntil", "isStartFragmentMarker", "metadata", "extractFragmentMetadataFromMarkerNode", "isEndFragmentMarker", "isntElement", "isComponentRootEl", "tag", "customElement", "interceptMessage", "message", "onSuccess", "payload", "onMorph", "html", "morph", "on", "component", "effects", "dispatchEvents", "dispatches", "name", "params", "self", "componentName", "ref", "el", "dispatchSelf", "dispatchTo", "dispatchRef", "dispatchEl", "dispatch", "import_alpinejs", "cleanups", "Bag", "on", "el", "directive", "cleanup", "component", "componentId", "disableForm", "respond", "i", "formEl", "undos", "Alpine", "skip", "shouldMarkDisabled", "markDisabled", "shouldMarkReadOnly", "markReadOnly", "tag", "inputTypesThatDontSupportReadonly", "undo", "on", "succeed", "effects", "download", "urlObject", "url", "base64toBlob", "invisibleLink", "b64Data", "contentType", "sliceSize", "byteCharacters", "byteArrays", "offset", "slice", "byteNumbers", "i", "byteArray", "import_alpinejs", "on", "component", "effects", "cleanup", "queryString", "key", "value", "name", "as", "use", "alwaysShow", "except", "normalizeQueryStringEntry", "initialValue", "dataGet", "replace", "push", "pop", "track", "effectReference", "Alpine", "popNavigating", "forgetCommitHandler", "commitComponent", "succeed", "beforeValue", "afterValue", "forgetPopHandler", "newValue", "el", "currentValue", "defaults", "on", "options", "component", "effects", "event", "event_parts", "s1", "signature", "channel_type", "s2", "channel", "s3", "event_name", "handler", "e", "dispatchSelf", "notification", "interceptMessage", "message", "onStream", "json", "id", "type", "name", "el", "ref", "content", "mode", "component", "findComponent", "targetEl", "replaceEl", "findRefEl", "shouldHideProgressBar", "forwardEvent", "name", "original", "event", "shouldRedirectUsingNavigateOr", "effects", "url", "or", "on", "effects", "request", "preventDefault", "url", "shouldRedirectUsingNavigateOr", "interceptAction", "action", "origin", "el", "directive", "islandAttr", "attr", "islandName", "attrParts", "isPrepend", "isAppend", "mode", "fragment", "closestIsland", "interceptMessage", "message", "onSuccess", "onStream", "json", "type", "islandFragment", "renderIsland", "payload", "onMorph", "fragmentHtml", "closestFragment", "component", "islandHtml", "metadata", "extractFragmentMetadataFromHtml", "findFragment", "token", "incomingMetadata", "strippedContent", "extractInnerHtmlFromFragmentHtml", "parentElementTag", "getTagName", "morphFragment", "interceptMessage", "message", "onSuccess", "onStream", "payload", "onMorph", "fragmentHtml", "renderSlot", "component", "metadata", "extractFragmentMetadataFromHtml", "targetComponent", "findComponent", "fragment", "findFragment", "name", "token", "strippedContent", "extractInnerHtmlFromFragmentHtml", "morphFragment", "interceptMessage", "message", "onSend", "onFinish", "undos", "action", "origin", "el", "undo", "import_alpinejs", "Alpine", "onPageChanges", "i", "globalDirective", "el", "directive", "cleanup", "expression", "options", "href", "hrefUrl", "classes", "refreshCurrent", "url", "pathMatches", "actualUrl", "hrefPath", "actualPath", "hrefPathSegments", "actualPathSegments", "import_alpinejs", "wireNavigateSelectors", "wireNavigateSelector", "attributeMap", "selector", "Alpine", "el", "wireAttr", "alpineDirective", "component", "updateNavigateLinks", "currentUrl", "options", "wireNavigateSelector", "el", "attr", "href", "hrefUrl", "pathMatches", "interceptMessage", "message", "onSuccess", "onSync", "onMorph", "onRender", "action", "origin", "oldHeight", "oldScroll", "heightDiff", "import_alpinejs", "Alpine", "el", "i", "name", "value", "directive", "extractDirective", "modifierString", "expression", "e", "component", "findComponentByEl", "evaluateActionExpression", "import_alpinejs", "Alpine", "el", "i", "directive", "extractDirective", "modifierString", "expression", "attribute", "setNextActionOrigin", "itemPosition", "child", "position", "params", "scope", "sortId", "evaluateActionExpression", "loadedStyles", "on", "component", "effects", "encodedName", "path", "getModuleUrl", "injectStylesheet", "href", "link", "nonce", "getNonce", "callbacksByComponent", "WeakBag", "callAndClearComponentDebounces", "component", "callback", "callbacksByComponent", "callbackRegister", "import_alpinejs", "on", "el", "directive", "cleanup", "component", "customDirectiveHasBeenRegistered", "attribute", "cleanupBinding", "Alpine", "e", "execute", "callAndClearComponentDebounces", "submitButton", "setNextActionOrigin", "livewireOptions", "setNextActionInterceptor", "expression", "params", "p", "evaluateActionExpression", "directive", "el", "message", "shouldPrompt", "action", "instead", "question", "expected", "offlineHandlers", "onlineHandlers", "i", "directive", "el", "cleanup", "setOffline", "toggleBooleanStateDirective", "setOnline", "directive", "el", "component", "cleanup", "targets", "inverted", "getTargets", "delay", "abortDelay", "applyDelay", "cleanupA", "whenTargetsArePartOfRequest", "toggleBooleanStateDirective", "cleanupB", "whenTargetsArePartOfFileUpload", "i", "duration", "delayModifiers", "key", "timeout", "started", "callback", "startLoading", "endLoading", "interceptMessage", "message", "onSend", "onSuccess", "onFinish", "island", "closestIsland", "matches", "cleared", "payload", "containsTargets", "onEffect", "eventMismatch", "e", "id", "property", "listen", "cleanupC", "updates", "calls", "target", "params", "method", "methodParams", "quickHash", "directives", "getDirectives", "nonActionOrModelLivewireDirectives", "subject", "directive", "el", "directive", "el", "import_alpinejs", "Alpine", "el", "import_alpinejs", "directive", "el", "component", "cleanup", "findComponentByEl", "expression", "modifiers", "componentIsMissingProperty", "handleFileUpload", "liveIndex", "isLive", "hasLazyWithoutLive", "shouldSendNetwork", "ephemeralModifiers", "networkModifiers", "m", "ephemeralOnBlur", "ephemeralOnChange", "ephemeralOnEnter", "hasEphemeralTriggers", "networkOnBlur", "networkOnChange", "networkOnEnter", "hasNetworkTriggers", "isDebounced", "isThrottled", "update", "setNextActionOrigin", "setNextActionMetadata", "debouncedUpdate", "isRealtimeInput", "debounce", "parseModifierDuration", "throttle", "bindings", "xModelTail", "getModifierTail", "dataGet", "value", "dataSet", "Alpine", "i", "index", "hasDuration", "componentIsMissingProperty", "component", "property", "parent", "findComponentByEl", "baseProperty", "debounce", "func", "wait", "timeout", "context", "args", "later", "throttle", "limit", "inThrottle", "parseModifierDuration", "modifiers", "key", "duration", "directive", "component", "el", "fullMethod", "setNextActionOrigin", "evaluateActionExpression", "directive", "el", "component", "interval", "extractDurationFrom", "start", "pauseWhile", "throttleWhile", "stopWhen", "poll", "triggerComponentRequest", "theTabIsInTheBackground", "theDirectiveIsMissingKeepAlive", "theDirectiveHasVisible", "theElementIsNotInTheViewport", "theDirectiveIsOffTheElement", "livewireIsOffline", "sessionIsExpired", "theElementIsDisconnected", "setNextActionOrigin", "setNextActionMetadata", "fullMethod", "evaluateActionExpression", "callback", "pauseConditions", "throttleConditions", "stopConditions", "clear", "syncronizedInterval", "i", "condition", "clocks", "ms", "clock", "isOffline", "inBackground", "getDirectives", "bounding", "modifiers", "defaultDuration", "durationInMilliSeconds", "durationInMilliSecondsString", "mod", "durationInSecondsString", "import_alpinejs", "Alpine", "el", "i", "name", "value", "modifierString", "expression", "evaluateActionExpression", "import_alpinejs", "Alpine", "el", "i", "name", "value", "modifierString", "expression", "evaluateActionExpression", "import_alpinejs", "Alpine", "el", "i", "name", "value", "remainder", "expression", "evaluateActionExpression", "Livewire", "directive", "dispatchTo", "callback", "interceptAction", "interceptMessage", "interceptRequest", "component", "method", "params", "metadata", "fireAction", "start", "first", "find", "getByName", "all", "on", "trigger", "triggerAsync", "dispatchGlobal", "Alpine", "warnAboutMultipleInstancesOf", "entity"] +} diff --git a/admin/public/vendor/livewire/livewire.esm.js b/admin/public/vendor/livewire/livewire.esm.js index 24d3b9fe..7a5e08d3 100644 --- a/admin/public/vendor/livewire/livewire.esm.js +++ b/admin/public/vendor/livewire/livewire.esm.js @@ -15,7 +15,10 @@ var __copyProps = (to, from, except, desc) => { } return to; }; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); // node_modules/alpinejs/dist/module.cjs.js var require_module_cjs = __commonJS({ @@ -41,7 +44,10 @@ var require_module_cjs = __commonJS({ } return to; }; - var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, mod)); + var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( + isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, + mod + )); var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var require_shared_cjs = __commonJS2({ "node_modules/@vue/shared/dist/shared.cjs.js"(exports2) { @@ -148,7 +154,7 @@ var require_module_cjs = __commonJS({ } } return res; - } else if (isObject2(value)) { + } else if (isObject22(value)) { return value; } } @@ -189,7 +195,7 @@ var require_module_cjs = __commonJS({ res += normalized + " "; } } - } else if (isObject2(value)) { + } else if (isObject22(value)) { for (const name in value) { if (value[name]) { res += name + " "; @@ -269,8 +275,8 @@ var require_module_cjs = __commonJS({ if (aValidType || bValidType) { return aValidType && bValidType ? looseCompareArrays(a, b) : false; } - aValidType = isObject2(a); - bValidType = isObject2(b); + aValidType = isObject22(a); + bValidType = isObject22(b); if (aValidType || bValidType) { if (!aValidType || !bValidType) { return false; @@ -294,7 +300,7 @@ var require_module_cjs = __commonJS({ return arr.findIndex((item) => looseEqual(item, val)); } var toDisplayString = (val) => { - return val == null ? "" : isObject2(val) ? JSON.stringify(val, replacer, 2) : String(val); + return val == null ? "" : isObject22(val) ? JSON.stringify(val, replacer, 2) : String(val); }; var replacer = (_key, val) => { if (isMap(val)) { @@ -308,7 +314,7 @@ var require_module_cjs = __commonJS({ return { [`Set(${val.size})`]: [...val.values()] }; - } else if (isObject2(val) && !isArray2(val) && !isPlainObject(val)) { + } else if (isObject22(val) && !isArray2(val) && !isPlainObject(val)) { return String(val); } return val; @@ -342,9 +348,9 @@ var require_module_cjs = __commonJS({ var isFunction2 = (val) => typeof val === "function"; var isString = (val) => typeof val === "string"; var isSymbol = (val) => typeof val === "symbol"; - var isObject2 = (val) => val !== null && typeof val === "object"; + var isObject22 = (val) => val !== null && typeof val === "object"; var isPromise = (val) => { - return isObject2(val) && isFunction2(val.then) && isFunction2(val.catch); + return isObject22(val) && isFunction2(val.then) && isFunction2(val.catch); }; var objectToString = Object.prototype.toString; var toTypeString = (value) => objectToString.call(value); @@ -353,7 +359,9 @@ var require_module_cjs = __commonJS({ }; var isPlainObject = (val) => toTypeString(val) === "[object Object]"; var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; - var isReservedProp = /* @__PURE__ */ makeMap(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"); + var isReservedProp = /* @__PURE__ */ makeMap( + ",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); var cacheStringFunction = (fn) => { const cache = /* @__PURE__ */ Object.create(null); return (str) => { @@ -419,7 +427,7 @@ var require_module_cjs = __commonJS({ exports2.isMap = isMap; exports2.isModelListener = isModelListener; exports2.isNoUnitNumericStyleProp = isNoUnitNumericStyleProp; - exports2.isObject = isObject2; + exports2.isObject = isObject22; exports2.isOn = isOn; exports2.isPlainObject = isPlainObject; exports2.isPromise = isPromise; @@ -960,10 +968,18 @@ var require_module_cjs = __commonJS({ has(key) { return has$1.call(this, key, true); }, - add: createReadonlyMethod("add"), - set: createReadonlyMethod("set"), - delete: createReadonlyMethod("delete"), - clear: createReadonlyMethod("clear"), + add: createReadonlyMethod( + "add" + ), + set: createReadonlyMethod( + "set" + ), + delete: createReadonlyMethod( + "delete" + ), + clear: createReadonlyMethod( + "clear" + ), forEach: createForEach(true, false) }; const shallowReadonlyInstrumentations2 = { @@ -976,10 +992,18 @@ var require_module_cjs = __commonJS({ has(key) { return has$1.call(this, key, true); }, - add: createReadonlyMethod("add"), - set: createReadonlyMethod("set"), - delete: createReadonlyMethod("delete"), - clear: createReadonlyMethod("clear"), + add: createReadonlyMethod( + "add" + ), + set: createReadonlyMethod( + "set" + ), + delete: createReadonlyMethod( + "delete" + ), + clear: createReadonlyMethod( + "clear" + ), forEach: createForEach(true, true) }; const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; @@ -1290,17 +1314,25 @@ var require_module_cjs = __commonJS({ }); var module_exports = {}; __export(module_exports, { - Alpine: () => src_default, - default: () => module_default + Alpine: () => src_default2, + default: () => module_default2 }); module.exports = __toCommonJS(module_exports); var flushPending = false; var flushing = false; var queue = []; var lastFlushedIndex = -1; + var transactionActive = false; function scheduler(callback) { queueJob(callback); } + function startTransaction() { + transactionActive = true; + } + function commitTransaction() { + transactionActive = false; + queueFlush(); + } function queueJob(job) { if (!queue.includes(job)) queue.push(job); @@ -1313,6 +1345,8 @@ var require_module_cjs = __commonJS({ } function queueFlush() { if (!flushing && !flushPending) { + if (transactionActive) + return; flushPending = true; queueMicrotask(flushJobs); } @@ -1380,21 +1414,33 @@ var require_module_cjs = __commonJS({ function watch(getter, callback) { let firstTime = true; let oldValue; + let oldValueJSON; let effectReference = effect(() => { let value = getter(); - JSON.stringify(value); + let newJSON = JSON.stringify(value); if (!firstTime) { - queueMicrotask(() => { - callback(value, oldValue); - oldValue = value; - }); - } else { - oldValue = value; + if (typeof value === "object" || value !== oldValue) { + let previousValue = typeof oldValue === "object" ? JSON.parse(oldValueJSON) : oldValue; + queueMicrotask(() => { + callback(value, previousValue); + }); + } } + oldValue = value; + oldValueJSON = newJSON; firstTime = false; }); return () => release(effectReference); } + async function transaction(callback) { + startTransaction(); + try { + await callback(); + await Promise.resolve(); + } finally { + commitTransaction(); + } + } var onAttributeAddeds = []; var onElRemoveds = []; var onElAddeds = []; @@ -1432,10 +1478,10 @@ var require_module_cjs = __commonJS({ }); } function cleanupElement(el) { - if (el._x_cleanups) { - while (el._x_cleanups.length) - el._x_cleanups.pop()(); - } + var _a, _b; + (_a = el._x_effects) == null ? void 0 : _a.forEach(dequeueJob); + while ((_b = el._x_cleanups) == null ? void 0 : _b.length) + el._x_cleanups.pop()(); } var observer = new MutationObserver(onMutate); var currentlyObserving = false; @@ -1483,7 +1529,7 @@ var require_module_cjs = __commonJS({ deferredMutations = deferredMutations.concat(mutations); return; } - let addedNodes = /* @__PURE__ */ new Set(); + let addedNodes = []; let removedNodes = /* @__PURE__ */ new Set(); let addedAttributes = /* @__PURE__ */ new Map(); let removedAttributes = /* @__PURE__ */ new Map(); @@ -1491,8 +1537,24 @@ var require_module_cjs = __commonJS({ if (mutations[i].target._x_ignoreMutationObserver) continue; if (mutations[i].type === "childList") { - mutations[i].addedNodes.forEach((node) => node.nodeType === 1 && addedNodes.add(node)); - mutations[i].removedNodes.forEach((node) => node.nodeType === 1 && removedNodes.add(node)); + mutations[i].removedNodes.forEach((node) => { + if (node.nodeType !== 1) + return; + if (!node._x_marker) + return; + removedNodes.add(node); + }); + mutations[i].addedNodes.forEach((node) => { + if (node.nodeType !== 1) + return; + if (removedNodes.has(node)) { + removedNodes.delete(node); + return; + } + if (node._x_marker) + return; + addedNodes.push(node); + }); } if (mutations[i].type === "attributes") { let el = mutations[i].target; @@ -1525,29 +1587,15 @@ var require_module_cjs = __commonJS({ onAttributeAddeds.forEach((i) => i(el, attrs)); }); for (let node of removedNodes) { - if (addedNodes.has(node)) + if (addedNodes.some((i) => i.contains(node))) continue; onElRemoveds.forEach((i) => i(node)); } - addedNodes.forEach((node) => { - node._x_ignoreSelf = true; - node._x_ignore = true; - }); for (let node of addedNodes) { - if (removedNodes.has(node)) - continue; if (!node.isConnected) continue; - delete node._x_ignoreSelf; - delete node._x_ignore; onElAddeds.forEach((i) => i(node)); - node._x_ignore = true; - node._x_ignoreSelf = true; } - addedNodes.forEach((node) => { - delete node._x_ignoreSelf; - delete node._x_ignore; - }); addedNodes = null; removedNodes = null; addedAttributes = null; @@ -1576,22 +1624,46 @@ var require_module_cjs = __commonJS({ function mergeProxies(objects) { return new Proxy({ objects }, mergeProxyTrap); } + function keyInPrototypeChain(obj, key) { + if (obj === null || obj === Object.prototype) + return null; + if (Object.prototype.hasOwnProperty.call(obj, key)) + return obj; + return keyInPrototypeChain(Object.getPrototypeOf(obj), key); + } var mergeProxyTrap = { ownKeys({ objects }) { - return Array.from(new Set(objects.flatMap((i) => Object.keys(i)))); + return Array.from( + new Set(objects.flatMap((i) => Object.keys(i))) + ); }, has({ objects }, name) { if (name == Symbol.unscopables) return false; - return objects.some((obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name)); + return objects.some( + (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name) + ); }, get({ objects }, name, thisProxy) { if (name == "toJSON") return collapseProxies; - return Reflect.get(objects.find((obj) => Reflect.has(obj, name)) || {}, name, thisProxy); + return Reflect.get( + objects.find( + (obj) => Reflect.has(obj, name) + ) || {}, + name, + thisProxy + ); }, set({ objects }, name, value, thisProxy) { - const target = objects.find((obj) => Object.prototype.hasOwnProperty.call(obj, name)) || objects[objects.length - 1]; + let target; + for (const obj of objects) { + target = keyInPrototypeChain(obj, name); + if (target) + break; + } + if (!target) + target = objects[objects.length - 1]; const descriptor = Object.getOwnPropertyDescriptor(target, name); if ((descriptor == null ? void 0 : descriptor.set) && (descriptor == null ? void 0 : descriptor.get)) return descriptor.set.call(thisProxy, value) || true; @@ -1606,7 +1678,7 @@ var require_module_cjs = __commonJS({ }, {}); } function initInterceptors(data2) { - let isObject2 = (val) => typeof val === "object" && !Array.isArray(val) && val !== null; + let isObject22 = (val) => typeof val === "object" && !Array.isArray(val) && val !== null; let recurse = (obj, basePath = "") => { Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => { if (enumerable === false || value === void 0) @@ -1617,7 +1689,7 @@ var require_module_cjs = __commonJS({ if (typeof value === "object" && value !== null && value._x_interceptor) { obj[key] = value.initialize(data2, path, key); } else { - if (isObject2(value) && value !== obj && !(value instanceof Element)) { + if (isObject22(value) && value !== obj && !(value instanceof Element)) { recurse(value, path); } } @@ -1673,27 +1745,23 @@ var require_module_cjs = __commonJS({ magics[name] = callback; } function injectMagics(obj, el) { + let memoizedUtilities = getUtilities(el); Object.entries(magics).forEach(([name, callback]) => { - let memoizedUtilities = null; - function getUtilities() { - if (memoizedUtilities) { - return memoizedUtilities; - } else { - let [utilities, cleanup] = getElementBoundUtilities(el); - memoizedUtilities = { interceptor, ...utilities }; - onElRemoved(el, cleanup); - return memoizedUtilities; - } - } Object.defineProperty(obj, `$${name}`, { get() { - return callback(el, getUtilities()); + return callback(el, memoizedUtilities); }, enumerable: false }); }); return obj; } + function getUtilities(el) { + let [utilities, cleanup] = getElementBoundUtilities(el); + let utils = { interceptor, ...utilities }; + onElRemoved(el, cleanup); + return utils; + } function tryCatch(el, expression, callback, ...args) { try { return callback(...args); @@ -1701,8 +1769,18 @@ var require_module_cjs = __commonJS({ handleError(e, el, expression); } } - function handleError(error2, el, expression = void 0) { - error2 = Object.assign(error2 != null ? error2 : { message: "No error message given." }, { el, expression }); + function handleError(...args) { + return errorHandler(...args); + } + var errorHandler = normalErrorHandler; + function setErrorHandler(handler4) { + errorHandler = handler4; + } + function normalErrorHandler(error2, el, expression = void 0) { + error2 = Object.assign( + error2 != null ? error2 : { message: "No error message given." }, + { el, expression } + ); console.warn(`Alpine Expression Error: ${error2.message} ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); @@ -1726,10 +1804,15 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function evaluateLater(...args) { return theEvaluatorFunction(...args); } - var theEvaluatorFunction = normalEvaluator; + var theEvaluatorFunction = () => { + }; function setEvaluator(newEvaluator) { theEvaluatorFunction = newEvaluator; } + var theRawEvaluatorFunction; + function setRawEvaluator(newEvaluator) { + theRawEvaluatorFunction = newEvaluator; + } function normalEvaluator(el, expression) { let overriddenMagics = {}; injectMagics(overriddenMagics, el); @@ -1739,7 +1822,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } function generateEvaluatorFromFunction(dataStack, func) { return (receiver = () => { - }, { scope: scope2 = {}, params = [] } = {}) => { + }, { scope: scope2 = {}, params = [], context } = {}) => { + if (!shouldAutoEvaluateFunctions) { + runIfTypeOfFunction(receiver, func, mergeProxies([scope2, ...dataStack]), params); + return; + } let result = func.apply(mergeProxies([scope2, ...dataStack]), params); runIfTypeOfFunction(receiver, result); }; @@ -1754,7 +1841,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression; const safeAsyncFunction = () => { try { - let func2 = new AsyncFunction(["__self", "scope"], `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`); + let func2 = new AsyncFunction( + ["__self", "scope"], + `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;` + ); Object.defineProperty(func2, "name", { value: `[Alpine] ${expression}` }); @@ -1771,12 +1861,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function generateEvaluatorFromString(dataStack, expression, el) { let func = generateFunctionFromString(expression, el); return (receiver = () => { - }, { scope: scope2 = {}, params = [] } = {}) => { + }, { scope: scope2 = {}, params = [], context } = {}) => { func.result = void 0; func.finished = false; let completeScope = mergeProxies([scope2, ...dataStack]); if (typeof func === "function") { - let promise = func(func, completeScope).catch((error2) => handleError(error2, el, expression)); + let promise = func.call(context, func, completeScope).catch((error2) => handleError(error2, el, expression)); if (func.finished) { runIfTypeOfFunction(receiver, func.result, completeScope, params, el); func.result = void 0; @@ -1802,6 +1892,39 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); receiver(value); } } + function evaluateRaw(...args) { + return theRawEvaluatorFunction(...args); + } + function normalRawEvaluator(el, expression, extras = {}) { + var _a, _b; + let overriddenMagics = {}; + injectMagics(overriddenMagics, el); + let dataStack = [overriddenMagics, ...closestDataStack(el)]; + let scope2 = mergeProxies([(_a = extras.scope) != null ? _a : {}, ...dataStack]); + let params = (_b = extras.params) != null ? _b : []; + if (expression.includes("await")) { + let AsyncFunction = Object.getPrototypeOf(async function() { + }).constructor; + let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression; + let func = new AsyncFunction( + ["scope"], + `with (scope) { let __result = ${rightSideSafeExpression}; return __result }` + ); + let result = func.call(extras.context, scope2); + return result; + } else { + let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(()=>{ ${expression} })()` : expression; + let func = new Function( + ["scope"], + `with (scope) { let __result = ${rightSideSafeExpression}; return __result }` + ); + let result = func.call(extras.context, scope2); + if (typeof result === "function" && shouldAutoEvaluateFunctions) { + return result.apply(scope2, params); + } + return result; + } + } var prefixAsString = "x-"; function prefix(subject = "") { return prefixAsString + subject; @@ -1929,6 +2052,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); var alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\b`); function toParsedDirectives(transformedAttributeMap, originalAttributeOverride) { return ({ name, value }) => { + if (name === value) + value = ""; let typeMatch = name.match(alpineAttributeRegex()); let valueMatch = name.match(/:([a-zA-Z0-9\-_:]+)/); let modifiers = name.match(/\.[^.\]]+(?=[^\]]*$)/g) || []; @@ -1946,8 +2071,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); var directiveOrder = [ "ignore", "ref", - "data", "id", + "data", "anchor", "bind", "init", @@ -1965,13 +2090,16 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type; return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB); } - function dispatch3(el, name, detail = {}) { - el.dispatchEvent(new CustomEvent(name, { - detail, - bubbles: true, - composed: true, - cancelable: true - })); + function dispatch3(el, name, detail = {}, options = {}) { + return el.dispatchEvent( + new CustomEvent(name, { + detail, + bubbles: true, + composed: true, + cancelable: true, + ...options + }) + ); } function walk(el, callback) { if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) { @@ -2042,7 +2170,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (callback(el)) return el; if (el._x_teleportBack) - el = el._x_teleportBack; + return findClosest(el._x_teleportBack, callback); + if (el.parentNode instanceof ShadowRoot) { + return findClosest(el.parentNode.host, callback); + } if (!el.parentElement) return; return findClosest(el.parentElement, callback); @@ -2054,21 +2185,29 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function interceptInit(callback) { initInterceptors2.push(callback); } + var markerDispenser = 1; function initTree(el, walker = walk, intercept = () => { }) { + if (findClosest(el, (i) => i._x_ignore)) + return; deferHandlingDirectives(() => { walker(el, (el2, skip) => { + if (el2._x_marker) + return; intercept(el2, skip); initInterceptors2.forEach((i) => i(el2, skip)); directives(el2, el2.attributes).forEach((handle) => handle()); + if (!el2._x_ignore) + el2._x_marker = markerDispenser++; el2._x_ignore && skip(); }); }); } function destroyTree(root, walker = walk) { walker(root, (el) => { - cleanupAttributes(el); cleanupElement(el); + cleanupAttributes(el); + delete el._x_marker; }); } function warnAboutMissingPlugins() { @@ -2122,9 +2261,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } return setClassesFromString(el, value); } + function splitClasses(classString) { + return classString.split(/\s/).filter(Boolean); + } function setClassesFromString(el, classString) { - let split = (classString2) => classString2.split(" ").filter(Boolean); - let missingClasses = (classString2) => classString2.split(" ").filter((i) => !el.classList.contains(i)).filter(Boolean); + let missingClasses = (classString2) => splitClasses(classString2).filter((i) => !el.classList.contains(i)).filter(Boolean); let addClassesAndReturnUndo = (classes) => { el.classList.add(...classes); return () => { @@ -2135,9 +2276,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return addClassesAndReturnUndo(missingClasses(classString)); } function setClassesFromObject(el, classObject) { - let split = (classString) => classString.split(" ").filter(Boolean); - let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? split(classString) : false).filter(Boolean); - let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? split(classString) : false).filter(Boolean); + let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? splitClasses(classString) : false).filter(Boolean); + let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? splitClasses(classString) : false).filter(Boolean); let added = []; let removed = []; forRemove.forEach((i) => { @@ -2486,12 +2626,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function onlyDuringClone(callback) { return (...args) => isCloning && callback(...args); } - var interceptors = []; + var interceptors2 = []; function interceptClone(callback) { - interceptors.push(callback); + interceptors2.push(callback); } function cloneNode(from, to) { - interceptors.forEach((i) => i(from, to)); + interceptors2.forEach((i) => i(from, to)); isCloning = true; dontRegisterReactiveSideEffects(() => { initTree(to, (el, callback) => { @@ -2561,18 +2701,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } } function bindInputValue(el, value) { - if (el.type === "radio") { + if (isRadio(el)) { if (el.attributes.value === void 0) { el.value = value; } - if (window.fromModel) { - if (typeof value === "boolean") { - el.checked = safeParseBoolean(el.value) === value; - } else { - el.checked = checkedAttrLooseCompare(el.value, value); - } - } - } else if (el.type === "checkbox") { + } else if (isCheckbox(el)) { if (Number.isInteger(value)) { el.value = value; } else if (!Array.isArray(value) && typeof value !== "boolean" && ![null, void 0].includes(value)) { @@ -2648,34 +2781,37 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } return rawValue ? Boolean(rawValue) : null; } + var booleanAttributes = /* @__PURE__ */ new Set([ + "allowfullscreen", + "async", + "autofocus", + "autoplay", + "checked", + "controls", + "default", + "defer", + "disabled", + "formnovalidate", + "inert", + "ismap", + "itemscope", + "loop", + "multiple", + "muted", + "nomodule", + "novalidate", + "open", + "playsinline", + "readonly", + "required", + "reversed", + "selected", + "shadowrootclonable", + "shadowrootdelegatesfocus", + "shadowrootserializable" + ]); function isBooleanAttr(attrName) { - const booleanAttributes = [ - "disabled", - "checked", - "required", - "readonly", - "open", - "selected", - "autofocus", - "itemscope", - "multiple", - "novalidate", - "allowfullscreen", - "allowpaymentrequest", - "formnovalidate", - "autoplay", - "controls", - "loop", - "muted", - "playsinline", - "default", - "ismap", - "reversed", - "async", - "defer", - "nomodule" - ]; - return booleanAttributes.includes(attrName); + return booleanAttributes.has(attrName); } function attributeShouldntBePreservedIfFalsy(name) { return !["aria-pressed", "aria-checked", "aria-expanded", "aria-selected"].includes(name); @@ -2708,11 +2844,17 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } return attr; } + function isCheckbox(el) { + return el.type === "checkbox" || el.localName === "ui-checkbox" || el.localName === "ui-switch"; + } + function isRadio(el) { + return el.type === "radio" || el.localName === "ui-radio"; + } function debounce2(func, wait) { - var timeout; + let timeout; return function() { - var context = this, args = arguments; - var later = function() { + const context = this, args = arguments; + const later = function() { timeout = null; func.apply(context, args); }; @@ -2720,7 +2862,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); timeout = setTimeout(later, wait); }; } - function throttle(func, limit) { + function throttle2(func, limit) { let inThrottle; return function() { let context = this, args = arguments; @@ -2776,10 +2918,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return stores[name]; } stores[name] = value; + initInterceptors(stores[name]); if (typeof value === "object" && value !== null && value.hasOwnProperty("init") && typeof value.init === "function") { stores[name].init(); } - initInterceptors(stores[name]); } function getStores() { return stores; @@ -2848,7 +2990,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); return obj; } - var Alpine19 = { + var Alpine25 = { get reactive() { return reactive; }, @@ -2861,7 +3003,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); get raw() { return raw; }, - version: "3.14.1", + get transaction() { + return transaction; + }, + version: "3.15.12", flushAndStopDeferringMutations, dontAutoEvaluateFunctions, disableEffectScheduling, @@ -2875,13 +3020,17 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); onlyDuringClone, addRootSelector, addInitSelector, + setErrorHandler, interceptClone, addScopeToNode, deferMutations, mapAttributes, evaluateLater, interceptInit, + initInterceptors, + injectMagics, setEvaluator, + setRawEvaluator, mergeProxies, extractProp, findClosest, @@ -2894,9 +3043,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); mutateDom, directive: directive2, entangle, - throttle, + throttle: throttle2, debounce: debounce2, evaluate, + evaluateRaw, initTree, nextTick, prefixed: prefix, @@ -2914,7 +3064,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); data, bind: bind2 }; - var alpine_default = Alpine19; + var alpine_default = Alpine25; var import_reactivity10 = __toESM2(require_reactivity()); magic("nextTick", () => nextTick); magic("dispatch", (el) => dispatch3.bind(dispatch3, el)); @@ -3011,22 +3161,25 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return; el._x_removeModelListeners["default"](); let outerGet = el._x_model.get; - let outerSet = el._x_model.set; - let releaseEntanglement = entangle({ - get() { - return outerGet(); - }, - set(value) { - outerSet(value); - } - }, { - get() { - return innerGet(); + let outerSet = el._x_model.setWithModifiers; + let releaseEntanglement = entangle( + { + get() { + return outerGet(); + }, + set(value) { + outerSet(value); + } }, - set(value) { - innerSet(value); + { + get() { + return innerGet(); + }, + set(value) { + innerSet(value); + } } - }); + ); cleanup(releaseEntanglement); }); }); @@ -3058,10 +3211,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } }; mutateDom(() => { - placeInDom(clone2, target, modifiers); skipDuringClone(() => { + placeInDom(clone2, target, modifiers); initTree(clone2); - clone2._x_ignore = true; })(); }); el._x_teleportPutBack = () => { @@ -3070,7 +3222,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); placeInDom(el._x_teleport, target2, modifiers); }); }; - cleanup(() => clone2.remove()); + cleanup( + () => mutateDom(() => { + clone2.remove(); + destroyTree(clone2); + }) + ); }); var teleportContainerDuringClone = document.createElement("div"); function getTarget(expression) { @@ -3104,24 +3261,16 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); event = dotSyntax(event); if (modifiers.includes("camel")) event = camelCase2(event); - if (modifiers.includes("passive")) - options.passive = true; if (modifiers.includes("capture")) options.capture = true; if (modifiers.includes("window")) listenerTarget = window; if (modifiers.includes("document")) listenerTarget = document; - if (modifiers.includes("debounce")) { - let nextModifier = modifiers[modifiers.indexOf("debounce") + 1] || "invalid-wait"; - let wait = isNumeric(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; - handler4 = debounce2(handler4, wait); - } - if (modifiers.includes("throttle")) { - let nextModifier = modifiers[modifiers.indexOf("throttle") + 1] || "invalid-wait"; - let wait = isNumeric(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; - handler4 = throttle(handler4, wait); + if (modifiers.includes("passive")) { + options.passive = modifiers[modifiers.indexOf("passive") + 1] !== "false"; } + handler4 = addDebounceOrThrottle(modifiers, handler4); if (modifiers.includes("prevent")) handler4 = wrapHandler(handler4, (next, e) => { e.preventDefault(); @@ -3156,6 +3305,14 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); handler4 = wrapHandler(handler4, (next, e) => { e.target === el && next(e); }); + if (event === "submit") { + handler4 = wrapHandler(handler4, (next, e) => { + if (e.target._x_pendingModelUpdates) { + e.target._x_pendingModelUpdates.forEach((fn) => fn()); + } + next(e); + }); + } if (isKeyEvent(event) || isClickEvent(event)) { handler4 = wrapHandler(handler4, (next, e) => { if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) { @@ -3169,17 +3326,32 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); listenerTarget.removeEventListener(event, handler4, options); }; } + function addDebounceOrThrottle(modifiers, handler4) { + if (modifiers.includes("debounce")) { + let nextModifier = modifiers[modifiers.indexOf("debounce") + 1] || "invalid-wait"; + let wait = isNumeric2(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; + handler4 = debounce2(handler4, wait); + } + if (modifiers.includes("throttle")) { + let nextModifier = modifiers[modifiers.indexOf("throttle") + 1] || "invalid-wait"; + let wait = isNumeric2(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; + handler4 = throttle2(handler4, wait); + } + return handler4; + } function dotSyntax(subject) { return subject.replace(/-/g, "."); } function camelCase2(subject) { return subject.toLowerCase().replace(/-(\w)/g, (match, char) => char.toUpperCase()); } - function isNumeric(subject) { + function isNumeric2(subject) { return !Array.isArray(subject) && !isNaN(subject); } function kebabCase2(subject) { - if ([" ", "_"].includes(subject)) + if ([" ", "_"].includes( + subject + )) return subject; return subject.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\s]/, "-").toLowerCase(); } @@ -3191,15 +3363,15 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } function isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) { let keyModifiers = modifiers.filter((i) => { - return !["window", "document", "prevent", "stop", "once", "capture", "self", "away", "outside", "passive"].includes(i); + return !["window", "document", "prevent", "stop", "once", "capture", "self", "away", "outside", "passive", "preserve-scroll", "blur", "change", "lazy"].includes(i); }); if (keyModifiers.includes("debounce")) { let debounceIndex = keyModifiers.indexOf("debounce"); - keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); + keyModifiers.splice(debounceIndex, isNumeric2((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); } if (keyModifiers.includes("throttle")) { let debounceIndex = keyModifiers.indexOf("throttle"); - keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); + keyModifiers.splice(debounceIndex, isNumeric2((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); } if (keyModifiers.length === 0) return false; @@ -3253,7 +3425,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); directive2("model", (el, { modifiers, expression }, { effect: effect3, cleanup }) => { let scopeTarget = el; if (modifiers.includes("parent")) { - scopeTarget = el.parentNode; + scopeTarget = findClosest(el, (element) => element !== el); } let evaluateGet = evaluateLater(scopeTarget, expression); let evaluateSet; @@ -3288,14 +3460,53 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); el.setAttribute("name", expression); }); } - var event = el.tagName.toLowerCase() === "select" || ["checkbox", "radio"].includes(el.type) || modifiers.includes("lazy") ? "change" : "input"; - let removeListener = isCloning ? () => { - } : on3(el, event, modifiers, (e) => { - setValue(getInputValue(el, modifiers, e, getValue())); - }); + let hasChangeModifier = modifiers.includes("change") || modifiers.includes("lazy"); + let hasBlurModifier = modifiers.includes("blur"); + let hasEnterModifier = modifiers.includes("enter"); + let hasExplicitEventModifiers = hasChangeModifier || hasBlurModifier || hasEnterModifier; + let removeListener; + if (isCloning) { + removeListener = () => { + }; + } else if (hasExplicitEventModifiers) { + let listeners2 = []; + let syncValue = (e) => setValue(getInputValue(el, modifiers, e, getValue())); + if (hasChangeModifier) { + listeners2.push(on3(el, "change", modifiers, syncValue)); + } + if (hasBlurModifier) { + listeners2.push(on3(el, "blur", modifiers, syncValue)); + if (el.form) { + let form = el.form; + let syncCallback = () => syncValue({ target: el }); + if (!form._x_pendingModelUpdates) + form._x_pendingModelUpdates = []; + form._x_pendingModelUpdates.push(syncCallback); + cleanup(() => { + if (form._x_pendingModelUpdates) { + form._x_pendingModelUpdates.splice(form._x_pendingModelUpdates.indexOf(syncCallback), 1); + } + }); + } + } + if (hasEnterModifier) { + listeners2.push(on3(el, "keydown", modifiers, (e) => { + if (e.key === "Enter") + syncValue(e); + })); + } + removeListener = () => listeners2.forEach((remove) => remove()); + } else { + let event = el.tagName.toLowerCase() === "select" || ["checkbox", "radio"].includes(el.type) ? "change" : "input"; + removeListener = on3(el, event, modifiers, (e) => { + setValue(getInputValue(el, modifiers, e, getValue())); + }); + } if (modifiers.includes("fill")) { - if ([void 0, null, ""].includes(getValue()) || el.type === "checkbox" && Array.isArray(getValue()) || el.tagName.toLowerCase() === "select" && el.multiple) { - setValue(getInputValue(el, modifiers, { target: el }, getValue())); + if ([void 0, null, ""].includes(getValue()) || isCheckbox(el) && Array.isArray(getValue()) || el.tagName.toLowerCase() === "select" && el.multiple) { + setValue( + getInputValue(el, modifiers, { target: el }, getValue()) + ); } } if (!el._x_removeModelListeners) @@ -3314,14 +3525,29 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }, set(value) { setValue(value); - } + }, + setWithModifiers: addDebounceOrThrottle(modifiers, setValue) }; el._x_forceModelUpdate = (value) => { if (value === void 0 && typeof expression === "string" && expression.match(/\./)) value = ""; - window.fromModel = true; - mutateDom(() => bind(el, "value", value)); - delete window.fromModel; + mutateDom(() => { + if (isCheckbox(el)) { + if (Array.isArray(value)) { + el.checked = value.some((val) => val == el.value); + } else { + el.checked = !!value; + } + } else if (isRadio(el)) { + if (typeof value === "boolean") { + el.checked = safeParseBoolean(el.value) === value; + } else { + el.checked = el.value == value; + } + } else { + bind(el, "value", value); + } + }); }; effect3(() => { let value = getValue(); @@ -3334,7 +3560,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return mutateDom(() => { if (event instanceof CustomEvent && event.detail !== void 0) return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value; - else if (el.type === "checkbox") { + else if (isCheckbox(el)) { if (Array.isArray(currentValue)) { let newValue = null; if (modifiers.includes("number")) { @@ -3365,7 +3591,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); } else { let newValue; - if (el.type === "radio") { + if (isRadio(el)) { if (event.target.checked) { newValue = event.target.value; } else { @@ -3388,12 +3614,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } function safeParseNumber(rawValue) { let number = rawValue ? parseFloat(rawValue) : null; - return isNumeric2(number) ? number : rawValue; + return isNumeric22(number) ? number : rawValue; } function checkedAttrLooseCompare2(valueA, valueB) { return valueA == valueB; } - function isNumeric2(subject) { + function isNumeric22(subject) { return !Array.isArray(subject) && !isNaN(subject); } function isGetterSetter(value) { @@ -3422,7 +3648,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); effect3(() => { evaluate2((value) => { mutateDom(() => { - el.innerHTML = value; + el.innerHTML = value != null ? value : ""; el._x_ignoreSelf = true; initTree(el); delete el._x_ignoreSelf; @@ -3531,13 +3757,16 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); el._x_isShown = true; }; let clickAwayCompatibleShow = () => setTimeout(show); - let toggle = once((value) => value ? show() : hide(), (value) => { - if (typeof el._x_toggleAndCascadeWithTransitions === "function") { - el._x_toggleAndCascadeWithTransitions(el, value, show, hide); - } else { - value ? clickAwayCompatibleShow() : hide(); + let toggle = once( + (value) => value ? show() : hide(), + (value) => { + if (typeof el._x_toggleAndCascadeWithTransitions === "function") { + el._x_toggleAndCascadeWithTransitions(el, value, show, hide); + } else { + value ? clickAwayCompatibleShow() : hide(); + } } - }); + ); let oldValue; let firstTime = true; effect3(() => evaluate2((value) => { @@ -3553,132 +3782,96 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); directive2("for", (el, { expression }, { effect: effect3, cleanup }) => { let iteratorNames = parseForExpression(expression); let evaluateItems = evaluateLater(el, iteratorNames.items); - let evaluateKey = evaluateLater(el, el._x_keyExpression || "index"); - el._x_prevKeys = []; - el._x_lookup = {}; + let evaluateKey = evaluateLater( + el, + el._x_keyExpression || "index" + ); + el._x_lookup = /* @__PURE__ */ new Map(); effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey)); cleanup(() => { - Object.values(el._x_lookup).forEach((el2) => el2.remove()); - delete el._x_prevKeys; + el._x_lookup.forEach( + (el2) => mutateDom(() => { + destroyTree(el2); + el2.remove(); + }) + ); delete el._x_lookup; }); }); - function loop(el, iteratorNames, evaluateItems, evaluateKey) { - let isObject2 = (i) => typeof i === "object" && !Array.isArray(i); - let templateEl = el; + function refreshScope(scope2) { + return (newScope) => { + Object.entries(newScope).forEach(([key, value]) => { + scope2[key] = value; + }); + }; + } + function loop(templateEl, iteratorNames, evaluateItems, evaluateKey) { evaluateItems((items) => { - if (isNumeric3(items) && items >= 0) { - items = Array.from(Array(items).keys(), (i) => i + 1); - } - if (items === void 0) + if (isNumeric3(items)) + items = Array.from({ length: items }, (_, i) => i + 1); + if (items === void 0 || items === null) items = []; - let lookup = el._x_lookup; - let prevKeys = el._x_prevKeys; - let scopes = []; - let keys = []; - if (isObject2(items)) { - items = Object.entries(items).map(([key, value]) => { - let scope2 = getIterationScopeVariables(iteratorNames, value, key, items); - evaluateKey((value2) => { - if (keys.includes(value2)) - warn("Duplicate key on x-for", el); - keys.push(value2); - }, { scope: { index: key, ...scope2 } }); - scopes.push(scope2); - }); - } else { - for (let i = 0; i < items.length; i++) { - let scope2 = getIterationScopeVariables(iteratorNames, items[i], i, items); - evaluateKey((value) => { - if (keys.includes(value)) - warn("Duplicate key on x-for", el); - keys.push(value); - }, { scope: { index: i, ...scope2 } }); - scopes.push(scope2); - } - } - let adds = []; - let moves = []; - let removes = []; - let sames = []; - for (let i = 0; i < prevKeys.length; i++) { - let key = prevKeys[i]; - if (keys.indexOf(key) === -1) - removes.push(key); - } - prevKeys = prevKeys.filter((key) => !removes.includes(key)); - let lastKey = "template"; - for (let i = 0; i < keys.length; i++) { - let key = keys[i]; - let prevIndex = prevKeys.indexOf(key); - if (prevIndex === -1) { - prevKeys.splice(i, 0, key); - adds.push([lastKey, i]); - } else if (prevIndex !== i) { - let keyInSpot = prevKeys.splice(i, 1)[0]; - let keyForSpot = prevKeys.splice(prevIndex - 1, 1)[0]; - prevKeys.splice(i, 0, keyForSpot); - prevKeys.splice(prevIndex, 0, keyInSpot); - moves.push([keyInSpot, keyForSpot]); - } else { - sames.push(key); - } - lastKey = key; - } - for (let i = 0; i < removes.length; i++) { - let key = removes[i]; - if (!!lookup[key]._x_effects) { - lookup[key]._x_effects.forEach(dequeueJob); - } - lookup[key].remove(); - lookup[key] = null; - delete lookup[key]; - } - for (let i = 0; i < moves.length; i++) { - let [keyInSpot, keyForSpot] = moves[i]; - let elInSpot = lookup[keyInSpot]; - let elForSpot = lookup[keyForSpot]; - let marker = document.createElement("div"); - mutateDom(() => { - if (!elForSpot) - warn(`x-for ":key" is undefined or invalid`, templateEl, keyForSpot, lookup); - elForSpot.after(marker); - elInSpot.after(elForSpot); - elForSpot._x_currentIfEl && elForSpot.after(elForSpot._x_currentIfEl); - marker.before(elInSpot); - elInSpot._x_currentIfEl && elInSpot.after(elInSpot._x_currentIfEl); - marker.remove(); + if (items instanceof Set) + items = Array.from(items); + if (items instanceof Map) + items = Array.from(items); + let oldLookup = templateEl._x_lookup; + let lookup = /* @__PURE__ */ new Map(); + templateEl._x_lookup = lookup; + let hasStringKeys = isObject2(items); + let scopeEntries = Object.entries(items).map(([index, item]) => { + if (!hasStringKeys) + index = parseInt(index); + let scope2 = getIterationScopeVariables(iteratorNames, item, index, items); + let key; + evaluateKey((innerKey) => { + if (typeof innerKey === "object") + warn("x-for key cannot be an object, it must be a string or an integer", templateEl); + if (oldLookup.has(innerKey)) { + lookup.set(innerKey, oldLookup.get(innerKey)); + oldLookup.delete(innerKey); + } + key = innerKey; + }, { scope: { index, ...scope2 } }); + return [key, scope2]; + }); + mutateDom(() => { + oldLookup.forEach((el) => { + destroyTree(el); + el.remove(); }); - elForSpot._x_refreshXForScope(scopes[keys.indexOf(keyForSpot)]); - } - for (let i = 0; i < adds.length; i++) { - let [lastKey2, index] = adds[i]; - let lastEl = lastKey2 === "template" ? templateEl : lookup[lastKey2]; - if (lastEl._x_currentIfEl) - lastEl = lastEl._x_currentIfEl; - let scope2 = scopes[index]; - let key = keys[index]; - let clone2 = document.importNode(templateEl.content, true).firstElementChild; - let reactiveScope = reactive(scope2); - addScopeToNode(clone2, reactiveScope, templateEl); - clone2._x_refreshXForScope = (newScope) => { - Object.entries(newScope).forEach(([key2, value]) => { - reactiveScope[key2] = value; - }); - }; - mutateDom(() => { - lastEl.after(clone2); - skipDuringClone(() => initTree(clone2))(); + let added = /* @__PURE__ */ new Set(); + let prev = templateEl; + scopeEntries.forEach(([key, scope2]) => { + if (lookup.has(key)) { + let el = lookup.get(key); + el._x_refreshXForScope(scope2); + if (prev.nextElementSibling !== el) { + if (prev.nextElementSibling) + el.replaceWith(prev.nextElementSibling); + prev.after(el); + } + prev = el; + if (el._x_currentIfEl) { + if (el.nextElementSibling !== el._x_currentIfEl) + prev.after(el._x_currentIfEl); + prev = el._x_currentIfEl; + } + return; + } + if (templateEl.content.children.length > 1) + warn("x-for templates require a single root element, additional elements will be ignored.", templateEl); + let clone2 = document.importNode(templateEl.content, true).firstElementChild; + let reactiveScope = reactive(scope2); + addScopeToNode(clone2, reactiveScope, templateEl); + clone2._x_refreshXForScope = refreshScope(reactiveScope); + lookup.set(key, clone2); + added.add(clone2); + prev.after(clone2); + prev = clone2; }); - if (typeof key === "object") { - warn("x-for key cannot be an object, it must be a string or an integer", templateEl); - } - lookup[key] = clone2; - } - for (let i = 0; i < sames.length; i++) { - lookup[sames[i]]._x_refreshXForScope(scopes[keys.indexOf(sames[i])]); - } - templateEl._x_prevKeys = keys; + skipDuringClone(() => added.forEach((clone2) => initTree(clone2)))(); + }); }); } function parseForExpression(expression) { @@ -3725,12 +3918,17 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return scopeVariables; } function isNumeric3(subject) { - return !Array.isArray(subject) && !isNaN(subject); + return typeof subject !== "object" && !isNaN(subject); + } + function isObject2(subject) { + return typeof subject === "object" && !Array.isArray(subject); } function handler3() { } handler3.inline = (el, { expression }, { cleanup }) => { let root = closestRoot(el); + if (!root) + return; if (!root._x_refs) root._x_refs = {}; root._x_refs[expression] = el; @@ -3752,12 +3950,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); el._x_currentIfEl = clone2; el._x_undoIf = () => { - walk(clone2, (node) => { - if (!!node._x_effects) { - node._x_effects.forEach(dequeueJob); - } + mutateDom(() => { + destroyTree(clone2); + clone2.remove(); }); - clone2.remove(); delete el._x_currentIfEl; }; return clone2; @@ -3806,9 +4002,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); directive2(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el)); } alpine_default.setEvaluator(normalEvaluator); + alpine_default.setRawEvaluator(normalRawEvaluator); alpine_default.setReactivityEngine({ reactive: import_reactivity10.reactive, effect: import_reactivity10.effect, release: import_reactivity10.stop, raw: import_reactivity10.toRaw }); - var src_default = alpine_default; - var module_default = src_default; + var src_default2 = alpine_default; + var module_default2 = src_default2; } }); @@ -3834,12 +4031,12 @@ var require_module_cjs2 = __commonJS({ var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var module_exports = {}; __export(module_exports, { - collapse: () => src_default, - default: () => module_default + collapse: () => src_default2, + default: () => module_default2 }); module.exports = __toCommonJS(module_exports); - function src_default(Alpine19) { - Alpine19.directive("collapse", collapse3); + function src_default2(Alpine25) { + Alpine25.directive("collapse", collapse3); collapse3.inline = (el, { modifiers }) => { if (!modifiers.includes("min")) return; @@ -3859,7 +4056,7 @@ var require_module_cjs2 = __commonJS({ if (!el._x_isShown) el.style.overflow = "hidden"; let setFunction = (el2, styles) => { - let revertFunction = Alpine19.setStyles(el2, styles); + let revertFunction = Alpine25.setStyles(el2, styles); return styles.height ? () => { } : revertFunction; }; @@ -3882,7 +4079,7 @@ var require_module_cjs2 = __commonJS({ if (current === full) { current = floor; } - Alpine19.transition(el, Alpine19.setStyles, { + Alpine25.transition(el, Alpine25.setStyles, { during: transitionStyles, start: { height: current + "px" }, end: { height: full + "px" } @@ -3896,7 +4093,7 @@ var require_module_cjs2 = __commonJS({ }, after = () => { }) { let full = el.getBoundingClientRect().height; - Alpine19.transition(el, setFunction, { + Alpine25.transition(el, setFunction, { during: transitionStyles, start: { height: full + "px" }, end: { height: floor + "px" } @@ -3929,7 +4126,7 @@ var require_module_cjs2 = __commonJS({ } return rawValue; } - var module_default = src_default; + var module_default2 = src_default2; } }); @@ -3957,23 +4154,44 @@ var require_module_cjs3 = __commonJS({ } return to; }; - var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, mod)); + var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( + isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, + mod + )); var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var require_dist = __commonJS2({ "node_modules/tabbable/dist/index.js"(exports2) { "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var candidateSelectors = ["input", "select", "textarea", "a[href]", "button", "[tabindex]:not(slot)", "audio[controls]", "video[controls]", '[contenteditable]:not([contenteditable="false"])', "details>summary:first-of-type", "details"]; + var candidateSelectors = ["input:not([inert]):not([inert] *)", "select:not([inert]):not([inert] *)", "textarea:not([inert]):not([inert] *)", "a[href]:not([inert]):not([inert] *)", "button:not([inert]):not([inert] *)", "[tabindex]:not(slot):not([inert]):not([inert] *)", "audio[controls]:not([inert]):not([inert] *)", "video[controls]:not([inert]):not([inert] *)", '[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)', "details>summary:first-of-type:not([inert]):not([inert] *)", "details:not([inert]):not([inert] *)"]; var candidateSelector = /* @__PURE__ */ candidateSelectors.join(","); var NoElement = typeof Element === "undefined"; var matches = NoElement ? function() { } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) { - return element.getRootNode(); + var _element$getRootNode; + return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element); } : function(element) { - return element.ownerDocument; + return element === null || element === void 0 ? void 0 : element.ownerDocument; + }; + var _isInert = function isInert(node, lookUp) { + var _node$getAttribute; + if (lookUp === void 0) { + lookUp = true; + } + var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, "inert"); + var inert = inertAtt === "" || inertAtt === "true"; + var result = inert || lookUp && node && (typeof node.closest === "function" ? node.closest("[inert]") : _isInert(node.parentNode)); + return result; + }; + var isContentEditable = function isContentEditable2(node) { + var _node$getAttribute2; + var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, "contenteditable"); + return attValue === "" || attValue === "true"; }; var getCandidates = function getCandidates2(el, includeContainer, filter) { + if (_isInert(el)) { + return []; + } var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector)); if (includeContainer && matches.call(el, candidateSelector)) { candidates.unshift(el); @@ -3981,20 +4199,23 @@ var require_module_cjs3 = __commonJS({ candidates = candidates.filter(filter); return candidates; }; - var getCandidatesIteratively = function getCandidatesIteratively2(elements, includeContainer, options) { + var _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) { var candidates = []; var elementsToCheck = Array.from(elements); while (elementsToCheck.length) { var element = elementsToCheck.shift(); + if (_isInert(element, false)) { + continue; + } if (element.tagName === "SLOT") { var assigned = element.assignedElements(); var content = assigned.length ? assigned : element.children; - var nestedCandidates = getCandidatesIteratively2(content, true, options); + var nestedCandidates = _getCandidatesIteratively(content, true, options); if (options.flatten) { candidates.push.apply(candidates, nestedCandidates); } else { candidates.push({ - scope: element, + scopeParent: element, candidates: nestedCandidates }); } @@ -4004,14 +4225,14 @@ var require_module_cjs3 = __commonJS({ candidates.push(element); } var shadowRoot = element.shadowRoot || typeof options.getShadowRoot === "function" && options.getShadowRoot(element); - var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element); + var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element)); if (shadowRoot && validShadowRoot) { - var _nestedCandidates = getCandidatesIteratively2(shadowRoot === true ? element.children : shadowRoot.children, true, options); + var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options); if (options.flatten) { candidates.push.apply(candidates, _nestedCandidates); } else { candidates.push({ - scope: element, + scopeParent: element, candidates: _nestedCandidates }); } @@ -4022,14 +4243,27 @@ var require_module_cjs3 = __commonJS({ } return candidates; }; - var getTabindex = function getTabindex2(node, isScope) { + var hasTabIndex = function hasTabIndex2(node) { + return !isNaN(parseInt(node.getAttribute("tabindex"), 10)); + }; + var getTabIndex = function getTabIndex2(node) { + if (!node) { + throw new Error("No node provided"); + } if (node.tabIndex < 0) { - if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute("tabindex"), 10))) { + if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) { return 0; } } return node.tabIndex; }; + var getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) { + var tabIndex = getTabIndex(node); + if (tabIndex < 0 && isScope && !hasTabIndex(node)) { + return 0; + } + return tabIndex; + }; var sortOrderedTabbables = function sortOrderedTabbables2(a, b) { return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex; }; @@ -4080,12 +4314,41 @@ var require_module_cjs3 = __commonJS({ var isNonTabbableRadio = function isNonTabbableRadio2(node) { return isRadio(node) && !isTabbableRadio(node); }; + var isNodeAttached = function isNodeAttached2(node) { + var _nodeRoot; + var nodeRoot = node && getRootNode(node); + var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host; + var attached = false; + if (nodeRoot && nodeRoot !== node) { + var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument; + attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node)); + while (!attached && nodeRootHost) { + var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD; + nodeRoot = getRootNode(nodeRootHost); + nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host; + attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost)); + } + } + return attached; + }; var isZeroArea = function isZeroArea2(node) { var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height; return width === 0 && height === 0; }; var isHidden = function isHidden2(node, _ref) { var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot; + if (displayCheck === "full-native") { + if ("checkVisibility" in node) { + var visible = node.checkVisibility({ + checkOpacity: false, + opacityProperty: false, + contentVisibilityAuto: true, + visibilityProperty: true, + checkVisibilityCSS: true + }); + return !visible; + } + } if (getComputedStyle(node).visibility === "hidden") { return true; } @@ -4094,9 +4357,7 @@ var require_module_cjs3 = __commonJS({ if (matches.call(nodeUnderDetails, "details:not([open]) *")) { return true; } - var nodeRootHost = getRootNode(node).host; - var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node); - if (!displayCheck || displayCheck === "full") { + if (!displayCheck || displayCheck === "full" || displayCheck === "full-native" || displayCheck === "legacy-full") { if (typeof getShadowRoot === "function") { var originalNode = node; while (node) { @@ -4114,9 +4375,12 @@ var require_module_cjs3 = __commonJS({ } node = originalNode; } - if (nodeIsAttached) { + if (isNodeAttached(node)) { return !node.getClientRects().length; } + if (displayCheck !== "legacy-full") { + return true; + } } else if (displayCheck === "non-zero-area") { return isZeroArea(node); } @@ -4147,26 +4411,26 @@ var require_module_cjs3 = __commonJS({ return true; }; var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) { - if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) { + if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) { return false; } return true; }; - var isValidShadowRootTabbable = function isValidShadowRootTabbable2(shadowHostNode) { + var isShadowRootTabbable = function isShadowRootTabbable2(shadowHostNode) { var tabIndex = parseInt(shadowHostNode.getAttribute("tabindex"), 10); if (isNaN(tabIndex) || tabIndex >= 0) { return true; } return false; }; - var sortByOrder = function sortByOrder2(candidates) { + var _sortByOrder = function sortByOrder(candidates) { var regularTabbables = []; var orderedTabbables = []; candidates.forEach(function(item, i) { - var isScope = !!item.scope; - var element = isScope ? item.scope : item; - var candidateTabindex = getTabindex(element, isScope); - var elements = isScope ? sortByOrder2(item.candidates) : element; + var isScope = !!item.scopeParent; + var element = isScope ? item.scopeParent : item; + var candidateTabindex = getSortOrderTabIndex(element, isScope); + var elements = isScope ? _sortByOrder(item.candidates) : element; if (candidateTabindex === 0) { isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element); } else { @@ -4184,32 +4448,32 @@ var require_module_cjs3 = __commonJS({ return acc; }, []).concat(regularTabbables); }; - var tabbable = function tabbable2(el, options) { + var tabbable = function tabbable2(container, options) { options = options || {}; var candidates; if (options.getShadowRoot) { - candidates = getCandidatesIteratively([el], options.includeContainer, { + candidates = _getCandidatesIteratively([container], options.includeContainer, { filter: isNodeMatchingSelectorTabbable.bind(null, options), flatten: false, getShadowRoot: options.getShadowRoot, - shadowRootFilter: isValidShadowRootTabbable + shadowRootFilter: isShadowRootTabbable }); } else { - candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options)); + candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options)); } - return sortByOrder(candidates); + return _sortByOrder(candidates); }; - var focusable2 = function focusable3(el, options) { + var focusable2 = function focusable3(container, options) { options = options || {}; var candidates; if (options.getShadowRoot) { - candidates = getCandidatesIteratively([el], options.includeContainer, { + candidates = _getCandidatesIteratively([container], options.includeContainer, { filter: isNodeMatchingSelectorFocusable.bind(null, options), flatten: true, getShadowRoot: options.getShadowRoot }); } else { - candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options)); + candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options)); } return candidates; }; @@ -4223,7 +4487,7 @@ var require_module_cjs3 = __commonJS({ } return isNodeMatchingSelectorTabbable(options, node); }; - var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat("iframe").join(","); + var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat("iframe:not([inert]):not([inert] *)").join(","); var isFocusable2 = function isFocusable3(node, options) { options = options || {}; if (!node) { @@ -4235,6 +4499,7 @@ var require_module_cjs3 = __commonJS({ return isNodeMatchingSelectorFocusable(options, node); }; exports2.focusable = focusable2; + exports2.getTabIndex = getTabIndex; exports2.isFocusable = isFocusable2; exports2.isTabbable = isTabbable; exports2.tabbable = tabbable; @@ -4243,94 +4508,307 @@ var require_module_cjs3 = __commonJS({ var require_focus_trap = __commonJS2({ "node_modules/focus-trap/dist/focus-trap.js"(exports2) { "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); var tabbable = require_dist(); - function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); - } - return keys; - } - function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? ownKeys(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - return target; + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) + n[e] = r[e]; + return n; } - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; + function _arrayWithoutHoles(r) { + if (Array.isArray(r)) + return _arrayLikeToArray(r); } - var activeFocusTraps = function() { - var trapQueue = []; - return { - activateTrap: function activateTrap(trap) { - if (trapQueue.length > 0) { - var activeTrap = trapQueue[trapQueue.length - 1]; - if (activeTrap !== trap) { - activeTrap.pause(); - } + function asyncGeneratorStep(n, t, e, r, o, a, c) { + try { + var i = n[a](c), u = i.value; + } catch (n2) { + return void e(n2); + } + i.done ? t(u) : Promise.resolve(u).then(r, o); + } + function _asyncToGenerator(n) { + return function() { + var t = this, e = arguments; + return new Promise(function(r, o) { + var a = n.apply(t, e); + function _next(n2) { + asyncGeneratorStep(a, r, o, _next, _throw, "next", n2); } - var trapIndex = trapQueue.indexOf(trap); - if (trapIndex === -1) { - trapQueue.push(trap); - } else { - trapQueue.splice(trapIndex, 1); - trapQueue.push(trap); + function _throw(n2) { + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2); } + _next(void 0); + }); + }; + } + function _createForOfIteratorHelper(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (!t) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { + t && (r = t); + var n = 0, F = function() { + }; + return { + s: F, + n: function() { + return n >= r.length ? { + done: true + } : { + done: false, + value: r[n++] + }; + }, + e: function(r2) { + throw r2; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var o, a = true, u = false; + return { + s: function() { + t = t.call(r); }, - deactivateTrap: function deactivateTrap(trap) { - var trapIndex = trapQueue.indexOf(trap); - if (trapIndex !== -1) { - trapQueue.splice(trapIndex, 1); - } - if (trapQueue.length > 0) { - trapQueue[trapQueue.length - 1].unpause(); + n: function() { + var r2 = t.next(); + return a = r2.done, r2; + }, + e: function(r2) { + u = true, o = r2; + }, + f: function() { + try { + a || null == t.return || t.return(); + } finally { + if (u) + throw o; } } }; - }(); + } + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: true, + configurable: true, + writable: true + }) : e[r] = t, e; + } + function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) + return Array.from(r); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function ownKeys(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + function _objectSpread2(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + function _regenerator() { + var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; + function i(r2, n2, o2, i2) { + var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype); + return _regeneratorDefine(u2, "_invoke", function(r3, n3, o3) { + var i3, c3, u3, f2 = 0, p = o3 || [], y = false, G = { + p: 0, + n: 0, + v: e, + a: d, + f: d.bind(e, 4), + d: function(t2, r4) { + return i3 = t2, c3 = 0, u3 = e, G.n = r4, a; + } + }; + function d(r4, n4) { + for (c3 = r4, u3 = n4, t = 0; !y && f2 && !o4 && t < p.length; t++) { + var o4, i4 = p[t], d2 = G.p, l = i4[2]; + r4 > 3 ? (o4 = l === n4) && (u3 = i4[(c3 = i4[4]) ? 5 : (c3 = 3, 3)], i4[4] = i4[5] = e) : i4[0] <= d2 && ((o4 = r4 < 2 && d2 < i4[1]) ? (c3 = 0, G.v = n4, G.n = i4[1]) : d2 < l && (o4 = r4 < 3 || i4[0] > n4 || n4 > l) && (i4[4] = r4, i4[5] = n4, G.n = l, c3 = 0)); + } + if (o4 || r4 > 1) + return a; + throw y = true, n4; + } + return function(o4, p2, l) { + if (f2 > 1) + throw TypeError("Generator is already running"); + for (y && 1 === p2 && d(p2, l), c3 = p2, u3 = l; (t = c3 < 2 ? e : u3) || !y; ) { + i3 || (c3 ? c3 < 3 ? (c3 > 1 && (G.n = -1), d(c3, u3)) : G.n = u3 : G.v = u3); + try { + if (f2 = 2, i3) { + if (c3 || (o4 = "next"), t = i3[o4]) { + if (!(t = t.call(i3, u3))) + throw TypeError("iterator result is not an object"); + if (!t.done) + return t; + u3 = t.value, c3 < 2 && (c3 = 0); + } else + 1 === c3 && (t = i3.return) && t.call(i3), c3 < 2 && (u3 = TypeError("The iterator does not provide a '" + o4 + "' method"), c3 = 1); + i3 = e; + } else if ((t = (y = G.n < 0) ? u3 : r3.call(n3, G)) !== a) + break; + } catch (t2) { + i3 = e, c3 = 1, u3 = t2; + } finally { + f2 = 1; + } + } + return { + value: t, + done: y + }; + }; + }(r2, o2, i2), true), u2; + } + var a = {}; + function Generator() { + } + function GeneratorFunction() { + } + function GeneratorFunctionPrototype() { + } + t = Object.getPrototypeOf; + var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function() { + return this; + }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); + function f(e2) { + return Object.setPrototypeOf ? Object.setPrototypeOf(e2, GeneratorFunctionPrototype) : (e2.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e2, o, "GeneratorFunction")), e2.prototype = Object.create(u), e2; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function() { + return this; + }), _regeneratorDefine(u, "toString", function() { + return "[object Generator]"; + }), (_regenerator = function() { + return { + w: i, + m: f + }; + })(); + } + function _regeneratorDefine(e, r, n, t) { + var i = Object.defineProperty; + try { + i({}, "", {}); + } catch (e2) { + i = 0; + } + _regeneratorDefine = function(e2, r2, n2, t2) { + function o(r3, n3) { + _regeneratorDefine(e2, r3, function(e3) { + return this._invoke(r3, n3, e3); + }); + } + r2 ? i ? i(e2, r2, { + value: n2, + enumerable: !t2, + configurable: !t2, + writable: !t2 + }) : e2[r2] = n2 : (o("next", 0), o("throw", 1), o("return", 2)); + }, _regeneratorDefine(e, r, n, t); + } + function _toConsumableArray(r) { + return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); + } + function _toPrimitive(t, r) { + if ("object" != typeof t || !t) + return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r); + if ("object" != typeof i) + return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == typeof i ? i : i + ""; + } + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) + return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + var activeFocusTraps = { + getActiveTrap: function getActiveTrap(trapStack) { + if ((trapStack === null || trapStack === void 0 ? void 0 : trapStack.length) > 0) { + return trapStack[trapStack.length - 1]; + } + return null; + }, + activateTrap: function activateTrap(trapStack, trap) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + if (trap !== activeTrap) { + activeFocusTraps.pauseTrap(trapStack); + } + var trapIndex = trapStack.indexOf(trap); + if (trapIndex === -1) { + trapStack.push(trap); + } else { + trapStack.splice(trapIndex, 1); + trapStack.push(trap); + } + }, + deactivateTrap: function deactivateTrap(trapStack, trap) { + var trapIndex = trapStack.indexOf(trap); + if (trapIndex !== -1) { + trapStack.splice(trapIndex, 1); + } + activeFocusTraps.unpauseTrap(trapStack); + }, + pauseTrap: function pauseTrap(trapStack) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + activeTrap === null || activeTrap === void 0 || activeTrap._setPausedState(true); + }, + unpauseTrap: function unpauseTrap(trapStack) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + if (activeTrap && !activeTrap._isManuallyPaused()) { + activeTrap._setPausedState(false); + } + } + }; var isSelectableInput = function isSelectableInput2(node) { return node.tagName && node.tagName.toLowerCase() === "input" && typeof node.select === "function"; }; var isEscapeEvent = function isEscapeEvent2(e) { - return e.key === "Escape" || e.key === "Esc" || e.keyCode === 27; + return (e === null || e === void 0 ? void 0 : e.key) === "Escape" || (e === null || e === void 0 ? void 0 : e.key) === "Esc" || (e === null || e === void 0 ? void 0 : e.keyCode) === 27; }; var isTabEvent = function isTabEvent2(e) { - return e.key === "Tab" || e.keyCode === 9; + return (e === null || e === void 0 ? void 0 : e.key) === "Tab" || (e === null || e === void 0 ? void 0 : e.keyCode) === 9; + }; + var isKeyForward = function isKeyForward2(e) { + return isTabEvent(e) && !e.shiftKey; + }; + var isKeyBackward = function isKeyBackward2(e) { + return isTabEvent(e) && e.shiftKey; }; var delay = function delay2(fn) { return setTimeout(fn, 0); }; - var findIndex = function findIndex2(arr, fn) { - var idx = -1; - arr.every(function(value, i) { - if (fn(value)) { - idx = i; - return false; - } - return true; - }); - return idx; - }; var valueOrHandler = function valueOrHandler2(value) { for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { params[_key - 1] = arguments[_key]; @@ -4340,42 +4818,50 @@ var require_module_cjs3 = __commonJS({ var getActualTarget = function getActualTarget2(event) { return event.target.shadowRoot && typeof event.composedPath === "function" ? event.composedPath()[0] : event.target; }; + var internalTrapStack = []; var createFocusTrap2 = function createFocusTrap3(elements, userOptions) { var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document; + var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack; var config = _objectSpread2({ returnFocusOnDeactivate: true, escapeDeactivates: true, - delayInitialFocus: true + delayInitialFocus: true, + isolateSubtrees: false, + isKeyForward, + isKeyBackward }, userOptions); var state = { containers: [], containerGroups: [], tabbableGroups: [], + adjacentElements: /* @__PURE__ */ new Set(), + alreadySilent: /* @__PURE__ */ new Set(), nodeFocusedBeforeActivation: null, mostRecentlyFocusedNode: null, active: false, paused: false, - delayInitialFocusTimer: void 0 + manuallyPaused: false, + delayInitialFocusTimer: void 0, + recentNavEvent: void 0 }; var trap; var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) { return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName]; }; - var findContainerIndex = function findContainerIndex2(element) { + var findContainerIndex = function findContainerIndex2(element, event) { + var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === "function" ? event.composedPath() : void 0; return state.containerGroups.findIndex(function(_ref) { var container = _ref.container, tabbableNodes = _ref.tabbableNodes; - return container.contains(element) || tabbableNodes.find(function(node) { + return container.contains(element) || (composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function(node) { return node === element; }); }); }; var getNodeForOption = function getNodeForOption2(optionName) { + var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$hasFallback = _ref2.hasFallback, hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback, _ref2$params = _ref2.params, params = _ref2$params === void 0 ? [] : _ref2$params; var optionValue = config[optionName]; if (typeof optionValue === "function") { - for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - params[_key2 - 1] = arguments[_key2]; - } - optionValue = optionValue.apply(void 0, params); + optionValue = optionValue.apply(void 0, _toConsumableArray(params)); } if (optionValue === true) { optionValue = void 0; @@ -4388,19 +4874,27 @@ var require_module_cjs3 = __commonJS({ } var node = optionValue; if (typeof optionValue === "string") { - node = doc.querySelector(optionValue); + try { + node = doc.querySelector(optionValue); + } catch (err) { + throw new Error("`".concat(optionName, '` appears to be an invalid selector; error="').concat(err.message, '"')); + } if (!node) { - throw new Error("`".concat(optionName, "` as selector refers to no known node")); + if (!hasFallback) { + throw new Error("`".concat(optionName, "` as selector refers to no known node")); + } } } return node; }; var getInitialFocusNode = function getInitialFocusNode2() { - var node = getNodeForOption("initialFocus"); + var node = getNodeForOption("initialFocus", { + hasFallback: true + }); if (node === false) { return false; } - if (node === void 0) { + if (node === void 0 || node && !tabbable.isFocusable(node, config.tabbableOptions)) { if (findContainerIndex(doc.activeElement) >= 0) { node = doc.activeElement; } else { @@ -4408,6 +4902,8 @@ var require_module_cjs3 = __commonJS({ var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; node = firstTabbableNode || getNodeForOption("fallbackFocus"); } + } else if (node === null) { + node = getNodeForOption("fallbackFocus"); } if (!node) { throw new Error("Your focus-trap needs to have at least one focusable element"); @@ -4418,28 +4914,40 @@ var require_module_cjs3 = __commonJS({ state.containerGroups = state.containers.map(function(container) { var tabbableNodes = tabbable.tabbable(container, config.tabbableOptions); var focusableNodes = tabbable.focusable(container, config.tabbableOptions); + var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0; + var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0; + var firstDomTabbableNode = focusableNodes.find(function(node) { + return tabbable.isTabbable(node); + }); + var lastDomTabbableNode = focusableNodes.slice().reverse().find(function(node) { + return tabbable.isTabbable(node); + }); + var posTabIndexesFound = !!tabbableNodes.find(function(node) { + return tabbable.getTabIndex(node) > 0; + }); return { container, tabbableNodes, focusableNodes, - firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null, - lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null, + posTabIndexesFound, + firstTabbableNode, + lastTabbableNode, + firstDomTabbableNode, + lastDomTabbableNode, nextTabbableNode: function nextTabbableNode(node) { var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - var nodeIdx = focusableNodes.findIndex(function(n) { - return n === node; - }); + var nodeIdx = tabbableNodes.indexOf(node); if (nodeIdx < 0) { - return void 0; - } - if (forward) { - return focusableNodes.slice(nodeIdx + 1).find(function(n) { - return tabbable.isTabbable(n, config.tabbableOptions); + if (forward) { + return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function(el) { + return tabbable.isTabbable(el); + }); + } + return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function(el) { + return tabbable.isTabbable(el); }); } - return focusableNodes.slice(0, nodeIdx).reverse().find(function(n) { - return tabbable.isTabbable(n, config.tabbableOptions); - }); + return tabbableNodes[nodeIdx + (forward ? 1 : -1)]; } }; }); @@ -4449,16 +4957,31 @@ var require_module_cjs3 = __commonJS({ if (state.tabbableGroups.length <= 0 && !getNodeForOption("fallbackFocus")) { throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times"); } + if (state.containerGroups.find(function(g) { + return g.posTabIndexesFound; + }) && state.containerGroups.length > 1) { + throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps."); + } + }; + var _getActiveElement = function getActiveElement(el) { + var activeElement = el.activeElement; + if (!activeElement) { + return; + } + if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) { + return _getActiveElement(activeElement.shadowRoot); + } + return activeElement; }; - var tryFocus = function tryFocus2(node) { + var _tryFocus = function tryFocus(node) { if (node === false) { return; } - if (node === doc.activeElement) { + if (node === _getActiveElement(document)) { return; } if (!node || !node.focus) { - tryFocus2(getInitialFocusNode()); + _tryFocus(getInitialFocusNode()); return; } node.focus({ @@ -4470,53 +4993,28 @@ var require_module_cjs3 = __commonJS({ } }; var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) { - var node = getNodeForOption("setReturnFocus", previousActiveElement); + var node = getNodeForOption("setReturnFocus", { + params: [previousActiveElement] + }); return node ? node : node === false ? false : previousActiveElement; }; - var checkPointerDown = function checkPointerDown2(e) { - var target = getActualTarget(e); - if (findContainerIndex(target) >= 0) { - return; - } - if (valueOrHandler(config.clickOutsideDeactivates, e)) { - trap.deactivate({ - returnFocus: config.returnFocusOnDeactivate && !tabbable.isFocusable(target, config.tabbableOptions) - }); - return; - } - if (valueOrHandler(config.allowOutsideClick, e)) { - return; - } - e.preventDefault(); - }; - var checkFocusIn = function checkFocusIn2(e) { - var target = getActualTarget(e); - var targetContained = findContainerIndex(target) >= 0; - if (targetContained || target instanceof Document) { - if (targetContained) { - state.mostRecentlyFocusedNode = target; - } - } else { - e.stopImmediatePropagation(); - tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); - } - }; - var checkTab = function checkTab2(e) { - var target = getActualTarget(e); + var findNextNavNode = function findNextNavNode2(_ref3) { + var target = _ref3.target, event = _ref3.event, _ref3$isBackward = _ref3.isBackward, isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward; + target = target || getActualTarget(event); updateTabbableNodes(); var destinationNode = null; if (state.tabbableGroups.length > 0) { - var containerIndex = findContainerIndex(target); + var containerIndex = findContainerIndex(target, event); var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0; if (containerIndex < 0) { - if (e.shiftKey) { + if (isBackward) { destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode; } else { destinationNode = state.tabbableGroups[0].firstTabbableNode; } - } else if (e.shiftKey) { - var startOfGroupIndex = findIndex(state.tabbableGroups, function(_ref2) { - var firstTabbableNode = _ref2.firstTabbableNode; + } else if (isBackward) { + var startOfGroupIndex = state.tabbableGroups.findIndex(function(_ref4) { + var firstTabbableNode = _ref4.firstTabbableNode; return target === firstTabbableNode; }); if (startOfGroupIndex < 0 && (containerGroup.container === target || tabbable.isFocusable(target, config.tabbableOptions) && !tabbable.isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) { @@ -4525,11 +5023,13 @@ var require_module_cjs3 = __commonJS({ if (startOfGroupIndex >= 0) { var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1; var destinationGroup = state.tabbableGroups[destinationGroupIndex]; - destinationNode = destinationGroup.lastTabbableNode; + destinationNode = tabbable.getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode; + } else if (!isTabEvent(event)) { + destinationNode = containerGroup.nextTabbableNode(target, false); } } else { - var lastOfGroupIndex = findIndex(state.tabbableGroups, function(_ref3) { - var lastTabbableNode = _ref3.lastTabbableNode; + var lastOfGroupIndex = state.tabbableGroups.findIndex(function(_ref5) { + var lastTabbableNode = _ref5.lastTabbableNode; return target === lastTabbableNode; }); if (lastOfGroupIndex < 0 && (containerGroup.container === target || tabbable.isFocusable(target, config.tabbableOptions) && !tabbable.isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) { @@ -4538,31 +5038,119 @@ var require_module_cjs3 = __commonJS({ if (lastOfGroupIndex >= 0) { var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1; var _destinationGroup = state.tabbableGroups[_destinationGroupIndex]; - destinationNode = _destinationGroup.firstTabbableNode; + destinationNode = tabbable.getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode; + } else if (!isTabEvent(event)) { + destinationNode = containerGroup.nextTabbableNode(target); } } } else { destinationNode = getNodeForOption("fallbackFocus"); } - if (destinationNode) { - e.preventDefault(); - tryFocus(destinationNode); - } + return destinationNode; }; - var checkKey = function checkKey2(e) { - if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) { - e.preventDefault(); - trap.deactivate(); + var checkPointerDown = function checkPointerDown2(e) { + var target = getActualTarget(e); + if (findContainerIndex(target, e) >= 0) { return; } - if (isTabEvent(e)) { - checkTab(e); + if (valueOrHandler(config.clickOutsideDeactivates, e)) { + trap.deactivate({ + returnFocus: config.returnFocusOnDeactivate + }); + return; + } + if (valueOrHandler(config.allowOutsideClick, e)) { return; } + e.preventDefault(); + }; + var checkFocusIn = function checkFocusIn2(event) { + var target = getActualTarget(event); + var targetContained = findContainerIndex(target, event) >= 0; + if (targetContained || target instanceof Document) { + if (targetContained) { + state.mostRecentlyFocusedNode = target; + } + } else { + event.stopImmediatePropagation(); + var nextNode; + var navAcrossContainers = true; + if (state.mostRecentlyFocusedNode) { + if (tabbable.getTabIndex(state.mostRecentlyFocusedNode) > 0) { + var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode); + var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes; + if (tabbableNodes.length > 0) { + var mruTabIdx = tabbableNodes.findIndex(function(node) { + return node === state.mostRecentlyFocusedNode; + }); + if (mruTabIdx >= 0) { + if (config.isKeyForward(state.recentNavEvent)) { + if (mruTabIdx + 1 < tabbableNodes.length) { + nextNode = tabbableNodes[mruTabIdx + 1]; + navAcrossContainers = false; + } + } else { + if (mruTabIdx - 1 >= 0) { + nextNode = tabbableNodes[mruTabIdx - 1]; + navAcrossContainers = false; + } + } + } + } + } else { + if (!state.containerGroups.some(function(g) { + return g.tabbableNodes.some(function(n) { + return tabbable.getTabIndex(n) > 0; + }); + })) { + navAcrossContainers = false; + } + } + } else { + navAcrossContainers = false; + } + if (navAcrossContainers) { + nextNode = findNextNavNode({ + target: state.mostRecentlyFocusedNode, + isBackward: config.isKeyBackward(state.recentNavEvent) + }); + } + if (nextNode) { + _tryFocus(nextNode); + } else { + _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); + } + } + state.recentNavEvent = void 0; + }; + var checkKeyNav = function checkKeyNav2(event) { + var isBackward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; + state.recentNavEvent = event; + var destinationNode = findNextNavNode({ + event, + isBackward + }); + if (destinationNode) { + if (isTabEvent(event)) { + event.preventDefault(); + } + _tryFocus(destinationNode); + } + }; + var checkTabKey = function checkTabKey2(event) { + if (config.isKeyForward(event) || config.isKeyBackward(event)) { + checkKeyNav(event, config.isKeyBackward(event)); + } + }; + var checkEscapeKey = function checkEscapeKey2(event) { + if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) { + event.preventDefault(); + trap.deactivate(); + } }; var checkClick = function checkClick2(e) { var target = getActualTarget(e); - if (findContainerIndex(target) >= 0) { + if (findContainerIndex(target, e) >= 0) { return; } if (valueOrHandler(config.clickOutsideDeactivates, e)) { @@ -4576,12 +5164,21 @@ var require_module_cjs3 = __commonJS({ }; var addListeners = function addListeners2() { if (!state.active) { - return; + return Promise.resolve(); + } + activeFocusTraps.activateTrap(trapStack, trap); + var promise; + if (config.delayInitialFocus) { + promise = new Promise(function(resolve) { + state.delayInitialFocusTimer = delay(function() { + _tryFocus(getInitialFocusNode()); + resolve(); + }); + }); + } else { + promise = Promise.resolve(); + _tryFocus(getInitialFocusNode()); } - activeFocusTraps.activateTrap(trap); - state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function() { - tryFocus(getInitialFocusNode()); - }) : tryFocus(getInitialFocusNode()); doc.addEventListener("focusin", checkFocusIn, true); doc.addEventListener("mousedown", checkPointerDown, { capture: true, @@ -4595,11 +5192,62 @@ var require_module_cjs3 = __commonJS({ capture: true, passive: false }); - doc.addEventListener("keydown", checkKey, { + doc.addEventListener("keydown", checkTabKey, { capture: true, passive: false }); - return trap; + doc.addEventListener("keydown", checkEscapeKey); + return promise; + }; + var collectAdjacentElements = function collectAdjacentElements2(containers) { + if (state.active && !state.paused) { + trap._setSubtreeIsolation(false); + } + state.adjacentElements.clear(); + state.alreadySilent.clear(); + var containerAncestors = /* @__PURE__ */ new Set(); + var adjacentElements = /* @__PURE__ */ new Set(); + var _iterator = _createForOfIteratorHelper(containers), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var container = _step.value; + containerAncestors.add(container); + var insideShadowRoot = typeof ShadowRoot !== "undefined" && container.getRootNode() instanceof ShadowRoot; + var current = container; + while (current) { + containerAncestors.add(current); + var parent = current.parentElement; + var siblings = []; + if (parent) { + siblings = parent.children; + } else if (!parent && insideShadowRoot) { + siblings = current.getRootNode().children; + parent = current.getRootNode().host; + insideShadowRoot = typeof ShadowRoot !== "undefined" && parent.getRootNode() instanceof ShadowRoot; + } + var _iterator2 = _createForOfIteratorHelper(siblings), _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { + var child = _step2.value; + adjacentElements.add(child); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + current = parent; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + containerAncestors.forEach(function(el) { + adjacentElements["delete"](el); + }); + state.adjacentElements = adjacentElements; }; var removeListeners = function removeListeners2() { if (!state.active) { @@ -4609,9 +5257,36 @@ var require_module_cjs3 = __commonJS({ doc.removeEventListener("mousedown", checkPointerDown, true); doc.removeEventListener("touchstart", checkPointerDown, true); doc.removeEventListener("click", checkClick, true); - doc.removeEventListener("keydown", checkKey, true); + doc.removeEventListener("keydown", checkTabKey, true); + doc.removeEventListener("keydown", checkEscapeKey); return trap; }; + var checkDomRemoval = function checkDomRemoval2(mutations) { + var isFocusedNodeRemoved = mutations.some(function(mutation) { + var removedNodes = Array.from(mutation.removedNodes); + return removedNodes.some(function(node) { + return node === state.mostRecentlyFocusedNode; + }); + }); + if (isFocusedNodeRemoved) { + _tryFocus(getInitialFocusNode()); + } + }; + var mutationObserver = typeof window !== "undefined" && "MutationObserver" in window ? new MutationObserver(checkDomRemoval) : void 0; + var updateObservedNodes = function updateObservedNodes2() { + if (!mutationObserver) { + return; + } + mutationObserver.disconnect(); + if (state.active && !state.paused) { + state.containers.map(function(container) { + mutationObserver.observe(container, { + subtree: true, + childList: true + }); + }); + } + }; trap = { get active() { return state.active; @@ -4626,29 +5301,57 @@ var require_module_cjs3 = __commonJS({ var onActivate = getOption(activateOptions, "onActivate"); var onPostActivate = getOption(activateOptions, "onPostActivate"); var checkCanFocusTrap = getOption(activateOptions, "checkCanFocusTrap"); - if (!checkCanFocusTrap) { - updateTabbableNodes(); - } - state.active = true; - state.paused = false; - state.nodeFocusedBeforeActivation = doc.activeElement; - if (onActivate) { - onActivate(); + var preexistingTrap = activeFocusTraps.getActiveTrap(trapStack); + var revertState = false; + if (preexistingTrap && !preexistingTrap.paused) { + var _preexistingTrap$_set; + (_preexistingTrap$_set = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set === void 0 || _preexistingTrap$_set.call(preexistingTrap, false); + revertState = true; } - var finishActivation = function finishActivation2() { - if (checkCanFocusTrap) { + try { + if (!checkCanFocusTrap) { updateTabbableNodes(); } - addListeners(); - if (onPostActivate) { - onPostActivate(); + state.active = true; + state.paused = false; + state.nodeFocusedBeforeActivation = _getActiveElement(doc); + onActivate === null || onActivate === void 0 || onActivate(); + var finishActivation = /* @__PURE__ */ function() { + var _ref6 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee() { + return _regenerator().w(function(_context) { + while (1) + switch (_context.n) { + case 0: + if (checkCanFocusTrap) { + updateTabbableNodes(); + } + _context.n = 1; + return addListeners(); + case 1: + trap._setSubtreeIsolation(true); + updateObservedNodes(); + onPostActivate === null || onPostActivate === void 0 || onPostActivate(); + case 2: + return _context.a(2); + } + }, _callee); + })); + return function finishActivation2() { + return _ref6.apply(this, arguments); + }; + }(); + if (checkCanFocusTrap) { + checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation); + return this; + } + finishActivation(); + } catch (error2) { + if (preexistingTrap === activeFocusTraps.getActiveTrap(trapStack) && revertState) { + var _preexistingTrap$_set2; + (_preexistingTrap$_set2 = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set2 === void 0 || _preexistingTrap$_set2.call(preexistingTrap, true); } - }; - if (checkCanFocusTrap) { - checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation); - return this; + throw error2; } - finishActivation(); return this; }, deactivate: function deactivate(deactivateOptions) { @@ -4662,25 +5365,26 @@ var require_module_cjs3 = __commonJS({ }, deactivateOptions); clearTimeout(state.delayInitialFocusTimer); state.delayInitialFocusTimer = void 0; + if (!state.paused) { + trap._setSubtreeIsolation(false); + } + state.alreadySilent.clear(); removeListeners(); state.active = false; state.paused = false; - activeFocusTraps.deactivateTrap(trap); + updateObservedNodes(); + activeFocusTraps.deactivateTrap(trapStack, trap); var onDeactivate = getOption(options, "onDeactivate"); var onPostDeactivate = getOption(options, "onPostDeactivate"); var checkCanReturnFocus = getOption(options, "checkCanReturnFocus"); var returnFocus = getOption(options, "returnFocus", "returnFocusOnDeactivate"); - if (onDeactivate) { - onDeactivate(); - } + onDeactivate === null || onDeactivate === void 0 || onDeactivate(); var finishDeactivation = function finishDeactivation2() { delay(function() { if (returnFocus) { - tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)); - } - if (onPostDeactivate) { - onPostDeactivate(); + _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)); } + onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate(); }); }; if (returnFocus && checkCanReturnFocus) { @@ -4690,34 +5394,131 @@ var require_module_cjs3 = __commonJS({ finishDeactivation(); return this; }, - pause: function pause() { - if (state.paused || !state.active) { + pause: function pause(pauseOptions) { + if (!state.active) { return this; } - state.paused = true; - removeListeners(); - return this; + state.manuallyPaused = true; + return this._setPausedState(true, pauseOptions); }, - unpause: function unpause() { - if (!state.paused || !state.active) { + unpause: function unpause(unpauseOptions) { + if (!state.active) { return this; } - state.paused = false; - updateTabbableNodes(); - addListeners(); - return this; + state.manuallyPaused = false; + if (trapStack[trapStack.length - 1] !== this) { + return this; + } + return this._setPausedState(false, unpauseOptions); }, updateContainerElements: function updateContainerElements(containerElements) { var elementsAsArray = [].concat(containerElements).filter(Boolean); state.containers = elementsAsArray.map(function(element) { return typeof element === "string" ? doc.querySelector(element) : element; }); + if (config.isolateSubtrees) { + collectAdjacentElements(state.containers); + } if (state.active) { updateTabbableNodes(); + if (!state.paused) { + trap._setSubtreeIsolation(true); + } } + updateObservedNodes(); return this; } }; + Object.defineProperties(trap, { + _isManuallyPaused: { + value: function value() { + return state.manuallyPaused; + } + }, + _setPausedState: { + value: function value(paused, options) { + if (state.paused === paused) { + return this; + } + state.paused = paused; + if (paused) { + var onPause = getOption(options, "onPause"); + var onPostPause = getOption(options, "onPostPause"); + onPause === null || onPause === void 0 || onPause(); + removeListeners(); + trap._setSubtreeIsolation(false); + updateObservedNodes(); + onPostPause === null || onPostPause === void 0 || onPostPause(); + } else { + var onUnpause = getOption(options, "onUnpause"); + var onPostUnpause = getOption(options, "onPostUnpause"); + onUnpause === null || onUnpause === void 0 || onUnpause(); + var finishUnpause = /* @__PURE__ */ function() { + var _ref7 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee2() { + return _regenerator().w(function(_context2) { + while (1) + switch (_context2.n) { + case 0: + updateTabbableNodes(); + _context2.n = 1; + return addListeners(); + case 1: + trap._setSubtreeIsolation(true); + updateObservedNodes(); + onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause(); + case 2: + return _context2.a(2); + } + }, _callee2); + })); + return function finishUnpause2() { + return _ref7.apply(this, arguments); + }; + }(); + finishUnpause(); + } + return this; + } + }, + _setSubtreeIsolation: { + value: function value(isEnabled) { + if (config.isolateSubtrees) { + state.adjacentElements.forEach(function(el) { + var _el$getAttribute; + if (isEnabled) { + switch (config.isolateSubtrees) { + case "aria-hidden": + if (el.ariaHidden === "true" || ((_el$getAttribute = el.getAttribute("aria-hidden")) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.toLowerCase()) === "true") { + state.alreadySilent.add(el); + } + el.setAttribute("aria-hidden", "true"); + break; + default: + if (el.inert || el.hasAttribute("inert")) { + state.alreadySilent.add(el); + } + el.setAttribute("inert", true); + break; + } + } else { + if (state.alreadySilent.has(el)) + ; + else { + switch (config.isolateSubtrees) { + case "aria-hidden": + el.removeAttribute("aria-hidden"); + break; + default: + el.removeAttribute("inert"); + break; + } + } + } + }); + } + } + } + }); trap.updateContainerElements(elements); return trap; }; @@ -4726,20 +5527,20 @@ var require_module_cjs3 = __commonJS({ }); var module_exports = {}; __export(module_exports, { - default: () => module_default, - focus: () => src_default + default: () => module_default2, + focus: () => src_default2 }); module.exports = __toCommonJS(module_exports); var import_focus_trap = __toESM2(require_focus_trap()); var import_tabbable = __toESM2(require_dist()); - function src_default(Alpine19) { + function src_default2(Alpine25) { let lastFocused; let currentFocused; window.addEventListener("focusin", () => { lastFocused = currentFocused; currentFocused = document.activeElement; }); - Alpine19.magic("focus", (el) => { + Alpine25.magic("focus", (el) => { let within = el; return { __noscroll: false, @@ -4843,59 +5644,67 @@ var require_module_cjs3 = __commonJS({ } }; }); - Alpine19.directive("trap", Alpine19.skipDuringClone((el, { expression, modifiers }, { effect, evaluateLater, cleanup }) => { - let evaluator = evaluateLater(expression); - let oldValue = false; - let options = { - escapeDeactivates: false, - allowOutsideClick: true, - fallbackFocus: () => el - }; - if (modifiers.includes("noautofocus")) { - options.initialFocus = false; - } else { - let autofocusEl = el.querySelector("[autofocus]"); - if (autofocusEl) - options.initialFocus = autofocusEl; - } - let trap = (0, import_focus_trap.createFocusTrap)(el, options); - let undoInert = () => { - }; - let undoDisableScrolling = () => { - }; - const releaseFocus = () => { - undoInert(); - undoInert = () => { + Alpine25.directive("trap", Alpine25.skipDuringClone( + (el, { expression, modifiers }, { effect, evaluateLater, cleanup }) => { + let evaluator = evaluateLater(expression); + let oldValue = false; + let options = { + escapeDeactivates: false, + allowOutsideClick: true, + fallbackFocus: () => el }; - undoDisableScrolling(); - undoDisableScrolling = () => { + let undoInert = () => { }; - trap.deactivate({ - returnFocus: !modifiers.includes("noreturn") - }); - }; - effect(() => evaluator((value) => { - if (oldValue === value) - return; - if (value && !oldValue) { - if (modifiers.includes("noscroll")) - undoDisableScrolling = disableScrolling(); - if (modifiers.includes("inert")) - undoInert = setInert(el); - setTimeout(() => { - trap.activate(); - }, 15); - } - if (!value && oldValue) { - releaseFocus(); + if (modifiers.includes("noautofocus")) { + options.initialFocus = false; + } else { + let autofocusEl = el.querySelector("[autofocus]"); + if (autofocusEl) + options.initialFocus = autofocusEl; + } + if (modifiers.includes("inert")) { + options.onPostActivate = () => { + Alpine25.nextTick(() => { + undoInert = setInert(el); + }); + }; } - oldValue = !!value; - })); - cleanup(releaseFocus); - }, (el, { expression, modifiers }, { evaluate }) => { - if (modifiers.includes("inert") && evaluate(expression)) - setInert(el); - })); + let trap = (0, import_focus_trap.createFocusTrap)(el, options); + let undoDisableScrolling = () => { + }; + const releaseFocus = () => { + undoInert(); + undoInert = () => { + }; + undoDisableScrolling(); + undoDisableScrolling = () => { + }; + trap.deactivate({ + returnFocus: !modifiers.includes("noreturn") + }); + }; + effect(() => evaluator((value) => { + if (oldValue === value) + return; + if (value && !oldValue) { + if (modifiers.includes("noscroll")) + undoDisableScrolling = disableScrolling(); + setTimeout(() => { + trap.activate(); + }, 15); + } + if (!value && oldValue) { + releaseFocus(); + } + oldValue = !!value; + })); + cleanup(releaseFocus); + }, + (el, { expression, modifiers }, { evaluate }) => { + if (modifiers.includes("inert") && evaluate(expression)) + setInert(el); + } + )); } function setInert(el) { let undos = []; @@ -4924,108 +5733,25 @@ var require_module_cjs3 = __commonJS({ let overflow = document.documentElement.style.overflow; let paddingRight = document.documentElement.style.paddingRight; let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; + let scrollbarGutter = window.getComputedStyle(document.documentElement).scrollbarGutter; document.documentElement.style.overflow = "hidden"; + if (scrollbarGutter && scrollbarGutter !== "auto") { + return () => { + document.documentElement.style.overflow = overflow; + }; + } document.documentElement.style.paddingRight = `${scrollbarWidth}px`; return () => { document.documentElement.style.overflow = overflow; document.documentElement.style.paddingRight = paddingRight; }; } - var module_default = src_default; - } -}); - -// node_modules/@alpinejs/persist/dist/module.cjs.js -var require_module_cjs4 = __commonJS({ - "node_modules/@alpinejs/persist/dist/module.cjs.js"(exports, module) { - var __defProp2 = Object.defineProperty; - var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; - var __getOwnPropNames2 = Object.getOwnPropertyNames; - var __hasOwnProp2 = Object.prototype.hasOwnProperty; - var __export = (target, all2) => { - for (var name in all2) - __defProp2(target, name, { get: all2[name], enumerable: true }); - }; - var __copyProps2 = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key) && key !== except) - __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); - } - return to; - }; - var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); - var module_exports = {}; - __export(module_exports, { - default: () => module_default, - persist: () => src_default - }); - module.exports = __toCommonJS(module_exports); - function src_default(Alpine19) { - let persist3 = () => { - let alias; - let storage; - try { - storage = localStorage; - } catch (e) { - console.error(e); - console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable."); - let dummy = /* @__PURE__ */ new Map(); - storage = { - getItem: dummy.get.bind(dummy), - setItem: dummy.set.bind(dummy) - }; - } - return Alpine19.interceptor((initialValue, getter, setter, path, key) => { - let lookup = alias || `_x_${path}`; - let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue; - setter(initial); - Alpine19.effect(() => { - let value = getter(); - storageSet(lookup, value, storage); - setter(value); - }); - return initial; - }, (func) => { - func.as = (key) => { - alias = key; - return func; - }, func.using = (target) => { - storage = target; - return func; - }; - }); - }; - Object.defineProperty(Alpine19, "$persist", { get: () => persist3() }); - Alpine19.magic("persist", persist3); - Alpine19.persist = (key, { get, set }, storage = localStorage) => { - let initial = storageHas(key, storage) ? storageGet(key, storage) : get(); - set(initial); - Alpine19.effect(() => { - let value = get(); - storageSet(key, value, storage); - set(value); - }); - }; - } - function storageHas(key, storage) { - return storage.getItem(key) !== null; - } - function storageGet(key, storage) { - let value = storage.getItem(key, storage); - if (value === void 0) - return; - return JSON.parse(value); - } - function storageSet(key, value, storage) { - storage.setItem(key, JSON.stringify(value)); - } - var module_default = src_default; + var module_default2 = src_default2; } }); // node_modules/@alpinejs/intersect/dist/module.cjs.js -var require_module_cjs5 = __commonJS({ +var require_module_cjs4 = __commonJS({ "node_modules/@alpinejs/intersect/dist/module.cjs.js"(exports, module) { var __defProp2 = Object.defineProperty; var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; @@ -5046,12 +5772,12 @@ var require_module_cjs5 = __commonJS({ var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var module_exports = {}; __export(module_exports, { - default: () => module_default, - intersect: () => src_default + default: () => module_default2, + intersect: () => src_default2 }); module.exports = __toCommonJS(module_exports); - function src_default(Alpine19) { - Alpine19.directive("intersect", Alpine19.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { + function src_default2(Alpine25) { + Alpine25.directive("intersect", Alpine25.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { let evaluate = evaluateLater(expression); let options = { rootMargin: getRootMargin(modifiers), @@ -5102,17 +5828,22 @@ var require_module_cjs5 = __commonJS({ values = values.filter((v) => v !== void 0); return values.length ? values.join(" ").trim() : fallback2; } - var module_default = src_default; + var module_default2 = src_default2; } }); -// node_modules/@alpinejs/resize/dist/module.cjs.js -var require_module_cjs6 = __commonJS({ - "node_modules/@alpinejs/resize/dist/module.cjs.js"(exports, module) { +// node_modules/@alpinejs/sort/dist/module.cjs.js +var require_module_cjs5 = __commonJS({ + "node_modules/@alpinejs/sort/dist/module.cjs.js"(exports, module) { + var __create2 = Object.create; var __defProp2 = Object.defineProperty; var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __getProtoOf2 = Object.getPrototypeOf; var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; var __export = (target, all2) => { for (var name in all2) __defProp2(target, name, { get: all2[name], enumerable: true }); @@ -5125,40 +5856,1177 @@ var require_module_cjs6 = __commonJS({ } return to; }; + var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( + isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, + mod + )); var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); - var module_exports = {}; - __export(module_exports, { - default: () => module_default, - resize: () => src_default - }); - module.exports = __toCommonJS(module_exports); - function src_default(Alpine19) { - Alpine19.directive("resize", Alpine19.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { - let evaluator = evaluateLater(expression); - let evaluate = (width, height) => { - evaluator(() => { - }, { scope: { "$width": width, "$height": height } }); - }; - let off = modifiers.includes("document") ? onDocumentResize(evaluate) : onElResize(el, evaluate); - cleanup(() => off()); - })); - } - function onElResize(el, callback) { - let observer = new ResizeObserver((entries) => { - let [width, height] = dimensions(entries); - callback(width, height); - }); - observer.observe(el); - return () => observer.disconnect(); - } - var documentResizeObserver; - var documentResizeObserverCallbacks = /* @__PURE__ */ new Set(); - function onDocumentResize(callback) { - documentResizeObserverCallbacks.add(callback); - if (!documentResizeObserver) { - documentResizeObserver = new ResizeObserver((entries) => { - let [width, height] = dimensions(entries); - documentResizeObserverCallbacks.forEach((i) => i(width, height)); + var require_Sortable_min = __commonJS2({ + "node_modules/sortablejs/Sortable.min.js"(exports2, module2) { + !function(t, e) { + "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = t || self).Sortable = e(); + }(exports2, function() { + "use strict"; + function e(e2, t2) { + var n2, o2 = Object.keys(e2); + return Object.getOwnPropertySymbols && (n2 = Object.getOwnPropertySymbols(e2), t2 && (n2 = n2.filter(function(t3) { + return Object.getOwnPropertyDescriptor(e2, t3).enumerable; + })), o2.push.apply(o2, n2)), o2; + } + function I(o2) { + for (var t2 = 1; t2 < arguments.length; t2++) { + var i2 = null != arguments[t2] ? arguments[t2] : {}; + t2 % 2 ? e(Object(i2), true).forEach(function(t3) { + var e2, n2; + e2 = o2, t3 = i2[n2 = t3], n2 in e2 ? Object.defineProperty(e2, n2, { value: t3, enumerable: true, configurable: true, writable: true }) : e2[n2] = t3; + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o2, Object.getOwnPropertyDescriptors(i2)) : e(Object(i2)).forEach(function(t3) { + Object.defineProperty(o2, t3, Object.getOwnPropertyDescriptor(i2, t3)); + }); + } + return o2; + } + function o(t2) { + return (o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t3) { + return typeof t3; + } : function(t3) { + return t3 && "function" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? "symbol" : typeof t3; + })(t2); + } + function a() { + return (a = Object.assign || function(t2) { + for (var e2 = 1; e2 < arguments.length; e2++) { + var n2, o2 = arguments[e2]; + for (n2 in o2) + Object.prototype.hasOwnProperty.call(o2, n2) && (t2[n2] = o2[n2]); + } + return t2; + }).apply(this, arguments); + } + function i(t2, e2) { + if (null == t2) + return {}; + var n2, o2 = function(t3, e3) { + if (null == t3) + return {}; + for (var n3, o3 = {}, i3 = Object.keys(t3), r3 = 0; r3 < i3.length; r3++) + n3 = i3[r3], 0 <= e3.indexOf(n3) || (o3[n3] = t3[n3]); + return o3; + }(t2, e2); + if (Object.getOwnPropertySymbols) + for (var i2 = Object.getOwnPropertySymbols(t2), r2 = 0; r2 < i2.length; r2++) + n2 = i2[r2], 0 <= e2.indexOf(n2) || Object.prototype.propertyIsEnumerable.call(t2, n2) && (o2[n2] = t2[n2]); + return o2; + } + function r(t2) { + return function(t3) { + if (Array.isArray(t3)) + return l(t3); + }(t2) || function(t3) { + if ("undefined" != typeof Symbol && null != t3[Symbol.iterator] || null != t3["@@iterator"]) + return Array.from(t3); + }(t2) || function(t3, e2) { + if (t3) { + if ("string" == typeof t3) + return l(t3, e2); + var n2 = Object.prototype.toString.call(t3).slice(8, -1); + return "Map" === (n2 = "Object" === n2 && t3.constructor ? t3.constructor.name : n2) || "Set" === n2 ? Array.from(t3) : "Arguments" === n2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2) ? l(t3, e2) : void 0; + } + }(t2) || function() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + }(); + } + function l(t2, e2) { + (null == e2 || e2 > t2.length) && (e2 = t2.length); + for (var n2 = 0, o2 = new Array(e2); n2 < e2; n2++) + o2[n2] = t2[n2]; + return o2; + } + function t(t2) { + if ("undefined" != typeof window && window.navigator) + return !!navigator.userAgent.match(t2); + } + var y = t(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i), w = t(/Edge/i), s = t(/firefox/i), u = t(/safari/i) && !t(/chrome/i) && !t(/android/i), n = t(/iP(ad|od|hone)/i), c = t(/chrome/i) && t(/android/i), d = { capture: false, passive: false }; + function h(t2, e2, n2) { + t2.addEventListener(e2, n2, !y && d); + } + function f(t2, e2, n2) { + t2.removeEventListener(e2, n2, !y && d); + } + function p(t2, e2) { + if (e2 && (">" === e2[0] && (e2 = e2.substring(1)), t2)) + try { + if (t2.matches) + return t2.matches(e2); + if (t2.msMatchesSelector) + return t2.msMatchesSelector(e2); + if (t2.webkitMatchesSelector) + return t2.webkitMatchesSelector(e2); + } catch (t3) { + return; + } + } + function P(t2, e2, n2, o2) { + if (t2) { + n2 = n2 || document; + do { + if (null != e2 && (">" !== e2[0] || t2.parentNode === n2) && p(t2, e2) || o2 && t2 === n2) + return t2; + } while (t2 !== n2 && (t2 = (i2 = t2).host && i2 !== document && i2.host.nodeType ? i2.host : i2.parentNode)); + } + var i2; + return null; + } + var g, m = /\s+/g; + function k(t2, e2, n2) { + var o2; + t2 && e2 && (t2.classList ? t2.classList[n2 ? "add" : "remove"](e2) : (o2 = (" " + t2.className + " ").replace(m, " ").replace(" " + e2 + " ", " "), t2.className = (o2 + (n2 ? " " + e2 : "")).replace(m, " "))); + } + function R(t2, e2, n2) { + var o2 = t2 && t2.style; + if (o2) { + if (void 0 === n2) + return document.defaultView && document.defaultView.getComputedStyle ? n2 = document.defaultView.getComputedStyle(t2, "") : t2.currentStyle && (n2 = t2.currentStyle), void 0 === e2 ? n2 : n2[e2]; + o2[e2 = !(e2 in o2 || -1 !== e2.indexOf("webkit")) ? "-webkit-" + e2 : e2] = n2 + ("string" == typeof n2 ? "" : "px"); + } + } + function v(t2, e2) { + var n2 = ""; + if ("string" == typeof t2) + n2 = t2; + else + do { + var o2 = R(t2, "transform"); + } while (o2 && "none" !== o2 && (n2 = o2 + " " + n2), !e2 && (t2 = t2.parentNode)); + var i2 = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; + return i2 && new i2(n2); + } + function b(t2, e2, n2) { + if (t2) { + var o2 = t2.getElementsByTagName(e2), i2 = 0, r2 = o2.length; + if (n2) + for (; i2 < r2; i2++) + n2(o2[i2], i2); + return o2; + } + return []; + } + function O() { + var t2 = document.scrollingElement; + return t2 || document.documentElement; + } + function X(t2, e2, n2, o2, i2) { + if (t2.getBoundingClientRect || t2 === window) { + var r2, a2, l2, s2, c2, u2, d2 = t2 !== window && t2.parentNode && t2 !== O() ? (a2 = (r2 = t2.getBoundingClientRect()).top, l2 = r2.left, s2 = r2.bottom, c2 = r2.right, u2 = r2.height, r2.width) : (l2 = a2 = 0, s2 = window.innerHeight, c2 = window.innerWidth, u2 = window.innerHeight, window.innerWidth); + if ((e2 || n2) && t2 !== window && (i2 = i2 || t2.parentNode, !y)) + do { + if (i2 && i2.getBoundingClientRect && ("none" !== R(i2, "transform") || n2 && "static" !== R(i2, "position"))) { + var h2 = i2.getBoundingClientRect(); + a2 -= h2.top + parseInt(R(i2, "border-top-width")), l2 -= h2.left + parseInt(R(i2, "border-left-width")), s2 = a2 + r2.height, c2 = l2 + r2.width; + break; + } + } while (i2 = i2.parentNode); + return o2 && t2 !== window && (o2 = (e2 = v(i2 || t2)) && e2.a, t2 = e2 && e2.d, e2 && (s2 = (a2 /= t2) + (u2 /= t2), c2 = (l2 /= o2) + (d2 /= o2))), { top: a2, left: l2, bottom: s2, right: c2, width: d2, height: u2 }; + } + } + function Y(t2, e2, n2) { + for (var o2 = M(t2, true), i2 = X(t2)[e2]; o2; ) { + var r2 = X(o2)[n2]; + if (!("top" === n2 || "left" === n2 ? r2 <= i2 : i2 <= r2)) + return o2; + if (o2 === O()) + break; + o2 = M(o2, false); + } + return false; + } + function B(t2, e2, n2, o2) { + for (var i2 = 0, r2 = 0, a2 = t2.children; r2 < a2.length; ) { + if ("none" !== a2[r2].style.display && a2[r2] !== Ft.ghost && (o2 || a2[r2] !== Ft.dragged) && P(a2[r2], n2.draggable, t2, false)) { + if (i2 === e2) + return a2[r2]; + i2++; + } + r2++; + } + return null; + } + function F(t2, e2) { + for (var n2 = t2.lastElementChild; n2 && (n2 === Ft.ghost || "none" === R(n2, "display") || e2 && !p(n2, e2)); ) + n2 = n2.previousElementSibling; + return n2 || null; + } + function j(t2, e2) { + var n2 = 0; + if (!t2 || !t2.parentNode) + return -1; + for (; t2 = t2.previousElementSibling; ) + "TEMPLATE" === t2.nodeName.toUpperCase() || t2 === Ft.clone || e2 && !p(t2, e2) || n2++; + return n2; + } + function E(t2) { + var e2 = 0, n2 = 0, o2 = O(); + if (t2) + do { + var i2 = v(t2), r2 = i2.a, i2 = i2.d; + } while (e2 += t2.scrollLeft * r2, n2 += t2.scrollTop * i2, t2 !== o2 && (t2 = t2.parentNode)); + return [e2, n2]; + } + function M(t2, e2) { + if (!t2 || !t2.getBoundingClientRect) + return O(); + var n2 = t2, o2 = false; + do { + if (n2.clientWidth < n2.scrollWidth || n2.clientHeight < n2.scrollHeight) { + var i2 = R(n2); + if (n2.clientWidth < n2.scrollWidth && ("auto" == i2.overflowX || "scroll" == i2.overflowX) || n2.clientHeight < n2.scrollHeight && ("auto" == i2.overflowY || "scroll" == i2.overflowY)) { + if (!n2.getBoundingClientRect || n2 === document.body) + return O(); + if (o2 || e2) + return n2; + o2 = true; + } + } + } while (n2 = n2.parentNode); + return O(); + } + function D(t2, e2) { + return Math.round(t2.top) === Math.round(e2.top) && Math.round(t2.left) === Math.round(e2.left) && Math.round(t2.height) === Math.round(e2.height) && Math.round(t2.width) === Math.round(e2.width); + } + function S(e2, n2) { + return function() { + var t2; + g || (1 === (t2 = arguments).length ? e2.call(this, t2[0]) : e2.apply(this, t2), g = setTimeout(function() { + g = void 0; + }, n2)); + }; + } + function H(t2, e2, n2) { + t2.scrollLeft += e2, t2.scrollTop += n2; + } + function _(t2) { + var e2 = window.Polymer, n2 = window.jQuery || window.Zepto; + return e2 && e2.dom ? e2.dom(t2).cloneNode(true) : n2 ? n2(t2).clone(true)[0] : t2.cloneNode(true); + } + function C(t2, e2) { + R(t2, "position", "absolute"), R(t2, "top", e2.top), R(t2, "left", e2.left), R(t2, "width", e2.width), R(t2, "height", e2.height); + } + function T(t2) { + R(t2, "position", ""), R(t2, "top", ""), R(t2, "left", ""), R(t2, "width", ""), R(t2, "height", ""); + } + function L(n2, o2, i2) { + var r2 = {}; + return Array.from(n2.children).forEach(function(t2) { + var e2; + P(t2, o2.draggable, n2, false) && !t2.animated && t2 !== i2 && (e2 = X(t2), r2.left = Math.min(null !== (t2 = r2.left) && void 0 !== t2 ? t2 : 1 / 0, e2.left), r2.top = Math.min(null !== (t2 = r2.top) && void 0 !== t2 ? t2 : 1 / 0, e2.top), r2.right = Math.max(null !== (t2 = r2.right) && void 0 !== t2 ? t2 : -1 / 0, e2.right), r2.bottom = Math.max(null !== (t2 = r2.bottom) && void 0 !== t2 ? t2 : -1 / 0, e2.bottom)); + }), r2.width = r2.right - r2.left, r2.height = r2.bottom - r2.top, r2.x = r2.left, r2.y = r2.top, r2; + } + var K = "Sortable" + new Date().getTime(); + function x() { + var e2, o2 = []; + return { captureAnimationState: function() { + o2 = [], this.options.animation && [].slice.call(this.el.children).forEach(function(t2) { + var e3, n2; + "none" !== R(t2, "display") && t2 !== Ft.ghost && (o2.push({ target: t2, rect: X(t2) }), e3 = I({}, o2[o2.length - 1].rect), !t2.thisAnimationDuration || (n2 = v(t2, true)) && (e3.top -= n2.f, e3.left -= n2.e), t2.fromRect = e3); + }); + }, addAnimationState: function(t2) { + o2.push(t2); + }, removeAnimationState: function(t2) { + o2.splice(function(t3, e3) { + for (var n2 in t3) + if (t3.hasOwnProperty(n2)) { + for (var o3 in e3) + if (e3.hasOwnProperty(o3) && e3[o3] === t3[n2][o3]) + return Number(n2); + } + return -1; + }(o2, { target: t2 }), 1); + }, animateAll: function(t2) { + var c2 = this; + if (!this.options.animation) + return clearTimeout(e2), void ("function" == typeof t2 && t2()); + var u2 = false, d2 = 0; + o2.forEach(function(t3) { + var e3 = 0, n2 = t3.target, o3 = n2.fromRect, i2 = X(n2), r2 = n2.prevFromRect, a2 = n2.prevToRect, l2 = t3.rect, s2 = v(n2, true); + s2 && (i2.top -= s2.f, i2.left -= s2.e), n2.toRect = i2, n2.thisAnimationDuration && D(r2, i2) && !D(o3, i2) && (l2.top - i2.top) / (l2.left - i2.left) == (o3.top - i2.top) / (o3.left - i2.left) && (t3 = l2, s2 = r2, r2 = a2, a2 = c2.options, e3 = Math.sqrt(Math.pow(s2.top - t3.top, 2) + Math.pow(s2.left - t3.left, 2)) / Math.sqrt(Math.pow(s2.top - r2.top, 2) + Math.pow(s2.left - r2.left, 2)) * a2.animation), D(i2, o3) || (n2.prevFromRect = o3, n2.prevToRect = i2, e3 = e3 || c2.options.animation, c2.animate(n2, l2, i2, e3)), e3 && (u2 = true, d2 = Math.max(d2, e3), clearTimeout(n2.animationResetTimer), n2.animationResetTimer = setTimeout(function() { + n2.animationTime = 0, n2.prevFromRect = null, n2.fromRect = null, n2.prevToRect = null, n2.thisAnimationDuration = null; + }, e3), n2.thisAnimationDuration = e3); + }), clearTimeout(e2), u2 ? e2 = setTimeout(function() { + "function" == typeof t2 && t2(); + }, d2) : "function" == typeof t2 && t2(), o2 = []; + }, animate: function(t2, e3, n2, o3) { + var i2, r2; + o3 && (R(t2, "transition", ""), R(t2, "transform", ""), i2 = (r2 = v(this.el)) && r2.a, r2 = r2 && r2.d, i2 = (e3.left - n2.left) / (i2 || 1), r2 = (e3.top - n2.top) / (r2 || 1), t2.animatingX = !!i2, t2.animatingY = !!r2, R(t2, "transform", "translate3d(" + i2 + "px," + r2 + "px,0)"), this.forRepaintDummy = t2.offsetWidth, R(t2, "transition", "transform " + o3 + "ms" + (this.options.easing ? " " + this.options.easing : "")), R(t2, "transform", "translate3d(0,0,0)"), "number" == typeof t2.animated && clearTimeout(t2.animated), t2.animated = setTimeout(function() { + R(t2, "transition", ""), R(t2, "transform", ""), t2.animated = false, t2.animatingX = false, t2.animatingY = false; + }, o3)); + } }; + } + var A = [], N = { initializeByDefault: true }, W = { mount: function(e2) { + for (var t2 in N) + !N.hasOwnProperty(t2) || t2 in e2 || (e2[t2] = N[t2]); + A.forEach(function(t3) { + if (t3.pluginName === e2.pluginName) + throw "Sortable: Cannot mount plugin ".concat(e2.pluginName, " more than once"); + }), A.push(e2); + }, pluginEvent: function(e2, n2, o2) { + var t2 = this; + this.eventCanceled = false, o2.cancel = function() { + t2.eventCanceled = true; + }; + var i2 = e2 + "Global"; + A.forEach(function(t3) { + n2[t3.pluginName] && (n2[t3.pluginName][i2] && n2[t3.pluginName][i2](I({ sortable: n2 }, o2)), n2.options[t3.pluginName] && n2[t3.pluginName][e2] && n2[t3.pluginName][e2](I({ sortable: n2 }, o2))); + }); + }, initializePlugins: function(n2, o2, i2, t2) { + for (var e2 in A.forEach(function(t3) { + var e3 = t3.pluginName; + (n2.options[e3] || t3.initializeByDefault) && ((t3 = new t3(n2, o2, n2.options)).sortable = n2, t3.options = n2.options, n2[e3] = t3, a(i2, t3.defaults)); + }), n2.options) { + var r2; + n2.options.hasOwnProperty(e2) && (void 0 !== (r2 = this.modifyOption(n2, e2, n2.options[e2])) && (n2.options[e2] = r2)); + } + }, getEventProperties: function(e2, n2) { + var o2 = {}; + return A.forEach(function(t2) { + "function" == typeof t2.eventProperties && a(o2, t2.eventProperties.call(n2[t2.pluginName], e2)); + }), o2; + }, modifyOption: function(e2, n2, o2) { + var i2; + return A.forEach(function(t2) { + e2[t2.pluginName] && t2.optionListeners && "function" == typeof t2.optionListeners[n2] && (i2 = t2.optionListeners[n2].call(e2[t2.pluginName], o2)); + }), i2; + } }; + function z(t2) { + var e2 = t2.sortable, n2 = t2.rootEl, o2 = t2.name, i2 = t2.targetEl, r2 = t2.cloneEl, a2 = t2.toEl, l2 = t2.fromEl, s2 = t2.oldIndex, c2 = t2.newIndex, u2 = t2.oldDraggableIndex, d2 = t2.newDraggableIndex, h2 = t2.originalEvent, f2 = t2.putSortable, p2 = t2.extraEventProperties; + if (e2 = e2 || n2 && n2[K]) { + var g2, m2 = e2.options, t2 = "on" + o2.charAt(0).toUpperCase() + o2.substr(1); + !window.CustomEvent || y || w ? (g2 = document.createEvent("Event")).initEvent(o2, true, true) : g2 = new CustomEvent(o2, { bubbles: true, cancelable: true }), g2.to = a2 || n2, g2.from = l2 || n2, g2.item = i2 || n2, g2.clone = r2, g2.oldIndex = s2, g2.newIndex = c2, g2.oldDraggableIndex = u2, g2.newDraggableIndex = d2, g2.originalEvent = h2, g2.pullMode = f2 ? f2.lastPutMode : void 0; + var v2, b2 = I(I({}, p2), W.getEventProperties(o2, e2)); + for (v2 in b2) + g2[v2] = b2[v2]; + n2 && n2.dispatchEvent(g2), m2[t2] && m2[t2].call(e2, g2); + } + } + function G(t2, e2) { + var n2 = (o2 = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}).evt, o2 = i(o2, U); + W.pluginEvent.bind(Ft)(t2, e2, I({ dragEl: V, parentEl: Z, ghostEl: $, rootEl: Q, nextEl: J, lastDownEl: tt, cloneEl: et, cloneHidden: nt, dragStarted: gt, putSortable: st, activeSortable: Ft.active, originalEvent: n2, oldIndex: ot, oldDraggableIndex: rt, newIndex: it, newDraggableIndex: at, hideGhostForTarget: Rt, unhideGhostForTarget: Xt, cloneNowHidden: function() { + nt = true; + }, cloneNowShown: function() { + nt = false; + }, dispatchSortableEvent: function(t3) { + q({ sortable: e2, name: t3, originalEvent: n2 }); + } }, o2)); + } + var U = ["evt"]; + function q(t2) { + z(I({ putSortable: st, cloneEl: et, targetEl: V, rootEl: Q, oldIndex: ot, oldDraggableIndex: rt, newIndex: it, newDraggableIndex: at }, t2)); + } + var V, Z, $, Q, J, tt, et, nt, ot, it, rt, at, lt, st, ct, ut, dt, ht, ft, pt, gt, mt, vt, bt, yt, wt = false, Et = false, Dt = [], St = false, _t = false, Ct = [], Tt = false, xt = [], Ot = "undefined" != typeof document, Mt = n, At = w || y ? "cssFloat" : "float", Nt = Ot && !c && !n && "draggable" in document.createElement("div"), It = function() { + if (Ot) { + if (y) + return false; + var t2 = document.createElement("x"); + return t2.style.cssText = "pointer-events:auto", "auto" === t2.style.pointerEvents; + } + }(), Pt = function(t2, e2) { + var n2 = R(t2), o2 = parseInt(n2.width) - parseInt(n2.paddingLeft) - parseInt(n2.paddingRight) - parseInt(n2.borderLeftWidth) - parseInt(n2.borderRightWidth), i2 = B(t2, 0, e2), r2 = B(t2, 1, e2), a2 = i2 && R(i2), l2 = r2 && R(r2), s2 = a2 && parseInt(a2.marginLeft) + parseInt(a2.marginRight) + X(i2).width, t2 = l2 && parseInt(l2.marginLeft) + parseInt(l2.marginRight) + X(r2).width; + if ("flex" === n2.display) + return "column" === n2.flexDirection || "column-reverse" === n2.flexDirection ? "vertical" : "horizontal"; + if ("grid" === n2.display) + return n2.gridTemplateColumns.split(" ").length <= 1 ? "vertical" : "horizontal"; + if (i2 && a2.float && "none" !== a2.float) { + e2 = "left" === a2.float ? "left" : "right"; + return !r2 || "both" !== l2.clear && l2.clear !== e2 ? "horizontal" : "vertical"; + } + return i2 && ("block" === a2.display || "flex" === a2.display || "table" === a2.display || "grid" === a2.display || o2 <= s2 && "none" === n2[At] || r2 && "none" === n2[At] && o2 < s2 + t2) ? "vertical" : "horizontal"; + }, kt = function(t2) { + function l2(r2, a2) { + return function(t3, e3, n3, o2) { + var i2 = t3.options.group.name && e3.options.group.name && t3.options.group.name === e3.options.group.name; + if (null == r2 && (a2 || i2)) + return true; + if (null == r2 || false === r2) + return false; + if (a2 && "clone" === r2) + return r2; + if ("function" == typeof r2) + return l2(r2(t3, e3, n3, o2), a2)(t3, e3, n3, o2); + e3 = (a2 ? t3 : e3).options.group.name; + return true === r2 || "string" == typeof r2 && r2 === e3 || r2.join && -1 < r2.indexOf(e3); + }; + } + var e2 = {}, n2 = t2.group; + n2 && "object" == o(n2) || (n2 = { name: n2 }), e2.name = n2.name, e2.checkPull = l2(n2.pull, true), e2.checkPut = l2(n2.put), e2.revertClone = n2.revertClone, t2.group = e2; + }, Rt = function() { + !It && $ && R($, "display", "none"); + }, Xt = function() { + !It && $ && R($, "display", ""); + }; + Ot && !c && document.addEventListener("click", function(t2) { + if (Et) + return t2.preventDefault(), t2.stopPropagation && t2.stopPropagation(), t2.stopImmediatePropagation && t2.stopImmediatePropagation(), Et = false; + }, true); + function Yt(t2) { + if (V) { + t2 = t2.touches ? t2.touches[0] : t2; + var e2 = (i2 = t2.clientX, r2 = t2.clientY, Dt.some(function(t3) { + var e3 = t3[K].options.emptyInsertThreshold; + if (e3 && !F(t3)) { + var n3 = X(t3), o3 = i2 >= n3.left - e3 && i2 <= n3.right + e3, e3 = r2 >= n3.top - e3 && r2 <= n3.bottom + e3; + return o3 && e3 ? a2 = t3 : void 0; + } + }), a2); + if (e2) { + var n2, o2 = {}; + for (n2 in t2) + t2.hasOwnProperty(n2) && (o2[n2] = t2[n2]); + o2.target = o2.rootEl = e2, o2.preventDefault = void 0, o2.stopPropagation = void 0, e2[K]._onDragOver(o2); + } + } + var i2, r2, a2; + } + function Bt(t2) { + V && V.parentNode[K]._isOutsideThisEl(t2.target); + } + function Ft(t2, e2) { + if (!t2 || !t2.nodeType || 1 !== t2.nodeType) + throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t2)); + this.el = t2, this.options = e2 = a({}, e2), t2[K] = this; + var n2, o2, i2 = { group: null, sort: true, disabled: false, store: null, handle: null, draggable: /^[uo]l$/i.test(t2.nodeName) ? ">li" : ">*", swapThreshold: 1, invertSwap: false, invertedSwapThreshold: null, removeCloneOnHide: true, direction: function() { + return Pt(t2, this.options); + }, ghostClass: "sortable-ghost", chosenClass: "sortable-chosen", dragClass: "sortable-drag", ignore: "a, img", filter: null, preventOnFilter: true, animation: 0, easing: null, setData: function(t3, e3) { + t3.setData("Text", e3.textContent); + }, dropBubble: false, dragoverBubble: false, dataIdAttr: "data-id", delay: 0, delayOnTouchOnly: false, touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, forceFallback: false, fallbackClass: "sortable-fallback", fallbackOnBody: false, fallbackTolerance: 0, fallbackOffset: { x: 0, y: 0 }, supportPointer: false !== Ft.supportPointer && "PointerEvent" in window && !u, emptyInsertThreshold: 5 }; + for (n2 in W.initializePlugins(this, t2, i2), i2) + n2 in e2 || (e2[n2] = i2[n2]); + for (o2 in kt(e2), this) + "_" === o2.charAt(0) && "function" == typeof this[o2] && (this[o2] = this[o2].bind(this)); + this.nativeDraggable = !e2.forceFallback && Nt, this.nativeDraggable && (this.options.touchStartThreshold = 1), e2.supportPointer ? h(t2, "pointerdown", this._onTapStart) : (h(t2, "mousedown", this._onTapStart), h(t2, "touchstart", this._onTapStart)), this.nativeDraggable && (h(t2, "dragover", this), h(t2, "dragenter", this)), Dt.push(this.el), e2.store && e2.store.get && this.sort(e2.store.get(this) || []), a(this, x()); + } + function jt(t2, e2, n2, o2, i2, r2, a2, l2) { + var s2, c2, u2 = t2[K], d2 = u2.options.onMove; + return !window.CustomEvent || y || w ? (s2 = document.createEvent("Event")).initEvent("move", true, true) : s2 = new CustomEvent("move", { bubbles: true, cancelable: true }), s2.to = e2, s2.from = t2, s2.dragged = n2, s2.draggedRect = o2, s2.related = i2 || e2, s2.relatedRect = r2 || X(e2), s2.willInsertAfter = l2, s2.originalEvent = a2, t2.dispatchEvent(s2), c2 = d2 ? d2.call(u2, s2, a2) : c2; + } + function Ht(t2) { + t2.draggable = false; + } + function Lt() { + Tt = false; + } + function Kt(t2) { + return setTimeout(t2, 0); + } + function Wt(t2) { + return clearTimeout(t2); + } + Ft.prototype = { constructor: Ft, _isOutsideThisEl: function(t2) { + this.el.contains(t2) || t2 === this.el || (mt = null); + }, _getDirection: function(t2, e2) { + return "function" == typeof this.options.direction ? this.options.direction.call(this, t2, e2, V) : this.options.direction; + }, _onTapStart: function(e2) { + if (e2.cancelable) { + var n2 = this, o2 = this.el, t2 = this.options, i2 = t2.preventOnFilter, r2 = e2.type, a2 = e2.touches && e2.touches[0] || e2.pointerType && "touch" === e2.pointerType && e2, l2 = (a2 || e2).target, s2 = e2.target.shadowRoot && (e2.path && e2.path[0] || e2.composedPath && e2.composedPath()[0]) || l2, c2 = t2.filter; + if (!function(t3) { + xt.length = 0; + var e3 = t3.getElementsByTagName("input"), n3 = e3.length; + for (; n3--; ) { + var o3 = e3[n3]; + o3.checked && xt.push(o3); + } + }(o2), !V && !(/mousedown|pointerdown/.test(r2) && 0 !== e2.button || t2.disabled) && !s2.isContentEditable && (this.nativeDraggable || !u || !l2 || "SELECT" !== l2.tagName.toUpperCase()) && !((l2 = P(l2, t2.draggable, o2, false)) && l2.animated || tt === l2)) { + if (ot = j(l2), rt = j(l2, t2.draggable), "function" == typeof c2) { + if (c2.call(this, e2, l2, this)) + return q({ sortable: n2, rootEl: s2, name: "filter", targetEl: l2, toEl: o2, fromEl: o2 }), G("filter", n2, { evt: e2 }), void (i2 && e2.cancelable && e2.preventDefault()); + } else if (c2 = c2 && c2.split(",").some(function(t3) { + if (t3 = P(s2, t3.trim(), o2, false)) + return q({ sortable: n2, rootEl: t3, name: "filter", targetEl: l2, fromEl: o2, toEl: o2 }), G("filter", n2, { evt: e2 }), true; + })) + return void (i2 && e2.cancelable && e2.preventDefault()); + t2.handle && !P(s2, t2.handle, o2, false) || this._prepareDragStart(e2, a2, l2); + } + } + }, _prepareDragStart: function(t2, e2, n2) { + var o2, i2 = this, r2 = i2.el, a2 = i2.options, l2 = r2.ownerDocument; + n2 && !V && n2.parentNode === r2 && (o2 = X(n2), Q = r2, Z = (V = n2).parentNode, J = V.nextSibling, tt = n2, lt = a2.group, ct = { target: Ft.dragged = V, clientX: (e2 || t2).clientX, clientY: (e2 || t2).clientY }, ft = ct.clientX - o2.left, pt = ct.clientY - o2.top, this._lastX = (e2 || t2).clientX, this._lastY = (e2 || t2).clientY, V.style["will-change"] = "all", o2 = function() { + G("delayEnded", i2, { evt: t2 }), Ft.eventCanceled ? i2._onDrop() : (i2._disableDelayedDragEvents(), !s && i2.nativeDraggable && (V.draggable = true), i2._triggerDragStart(t2, e2), q({ sortable: i2, name: "choose", originalEvent: t2 }), k(V, a2.chosenClass, true)); + }, a2.ignore.split(",").forEach(function(t3) { + b(V, t3.trim(), Ht); + }), h(l2, "dragover", Yt), h(l2, "mousemove", Yt), h(l2, "touchmove", Yt), h(l2, "mouseup", i2._onDrop), h(l2, "touchend", i2._onDrop), h(l2, "touchcancel", i2._onDrop), s && this.nativeDraggable && (this.options.touchStartThreshold = 4, V.draggable = true), G("delayStart", this, { evt: t2 }), !a2.delay || a2.delayOnTouchOnly && !e2 || this.nativeDraggable && (w || y) ? o2() : Ft.eventCanceled ? this._onDrop() : (h(l2, "mouseup", i2._disableDelayedDrag), h(l2, "touchend", i2._disableDelayedDrag), h(l2, "touchcancel", i2._disableDelayedDrag), h(l2, "mousemove", i2._delayedDragTouchMoveHandler), h(l2, "touchmove", i2._delayedDragTouchMoveHandler), a2.supportPointer && h(l2, "pointermove", i2._delayedDragTouchMoveHandler), i2._dragStartTimer = setTimeout(o2, a2.delay))); + }, _delayedDragTouchMoveHandler: function(t2) { + t2 = t2.touches ? t2.touches[0] : t2; + Math.max(Math.abs(t2.clientX - this._lastX), Math.abs(t2.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1)) && this._disableDelayedDrag(); + }, _disableDelayedDrag: function() { + V && Ht(V), clearTimeout(this._dragStartTimer), this._disableDelayedDragEvents(); + }, _disableDelayedDragEvents: function() { + var t2 = this.el.ownerDocument; + f(t2, "mouseup", this._disableDelayedDrag), f(t2, "touchend", this._disableDelayedDrag), f(t2, "touchcancel", this._disableDelayedDrag), f(t2, "mousemove", this._delayedDragTouchMoveHandler), f(t2, "touchmove", this._delayedDragTouchMoveHandler), f(t2, "pointermove", this._delayedDragTouchMoveHandler); + }, _triggerDragStart: function(t2, e2) { + e2 = e2 || "touch" == t2.pointerType && t2, !this.nativeDraggable || e2 ? this.options.supportPointer ? h(document, "pointermove", this._onTouchMove) : h(document, e2 ? "touchmove" : "mousemove", this._onTouchMove) : (h(V, "dragend", this), h(Q, "dragstart", this._onDragStart)); + try { + document.selection ? Kt(function() { + document.selection.empty(); + }) : window.getSelection().removeAllRanges(); + } catch (t3) { + } + }, _dragStarted: function(t2, e2) { + var n2; + wt = false, Q && V ? (G("dragStarted", this, { evt: e2 }), this.nativeDraggable && h(document, "dragover", Bt), n2 = this.options, t2 || k(V, n2.dragClass, false), k(V, n2.ghostClass, true), Ft.active = this, t2 && this._appendGhost(), q({ sortable: this, name: "start", originalEvent: e2 })) : this._nulling(); + }, _emulateDragOver: function() { + if (ut) { + this._lastX = ut.clientX, this._lastY = ut.clientY, Rt(); + for (var t2 = document.elementFromPoint(ut.clientX, ut.clientY), e2 = t2; t2 && t2.shadowRoot && (t2 = t2.shadowRoot.elementFromPoint(ut.clientX, ut.clientY)) !== e2; ) + e2 = t2; + if (V.parentNode[K]._isOutsideThisEl(t2), e2) + do { + if (e2[K]) { + if (e2[K]._onDragOver({ clientX: ut.clientX, clientY: ut.clientY, target: t2, rootEl: e2 }) && !this.options.dragoverBubble) + break; + } + } while (e2 = (t2 = e2).parentNode); + Xt(); + } + }, _onTouchMove: function(t2) { + if (ct) { + var e2 = this.options, n2 = e2.fallbackTolerance, o2 = e2.fallbackOffset, i2 = t2.touches ? t2.touches[0] : t2, r2 = $ && v($, true), a2 = $ && r2 && r2.a, l2 = $ && r2 && r2.d, e2 = Mt && yt && E(yt), a2 = (i2.clientX - ct.clientX + o2.x) / (a2 || 1) + (e2 ? e2[0] - Ct[0] : 0) / (a2 || 1), l2 = (i2.clientY - ct.clientY + o2.y) / (l2 || 1) + (e2 ? e2[1] - Ct[1] : 0) / (l2 || 1); + if (!Ft.active && !wt) { + if (n2 && Math.max(Math.abs(i2.clientX - this._lastX), Math.abs(i2.clientY - this._lastY)) < n2) + return; + this._onDragStart(t2, true); + } + $ && (r2 ? (r2.e += a2 - (dt || 0), r2.f += l2 - (ht || 0)) : r2 = { a: 1, b: 0, c: 0, d: 1, e: a2, f: l2 }, r2 = "matrix(".concat(r2.a, ",").concat(r2.b, ",").concat(r2.c, ",").concat(r2.d, ",").concat(r2.e, ",").concat(r2.f, ")"), R($, "webkitTransform", r2), R($, "mozTransform", r2), R($, "msTransform", r2), R($, "transform", r2), dt = a2, ht = l2, ut = i2), t2.cancelable && t2.preventDefault(); + } + }, _appendGhost: function() { + if (!$) { + var t2 = this.options.fallbackOnBody ? document.body : Q, e2 = X(V, true, Mt, true, t2), n2 = this.options; + if (Mt) { + for (yt = t2; "static" === R(yt, "position") && "none" === R(yt, "transform") && yt !== document; ) + yt = yt.parentNode; + yt !== document.body && yt !== document.documentElement ? (yt === document && (yt = O()), e2.top += yt.scrollTop, e2.left += yt.scrollLeft) : yt = O(), Ct = E(yt); + } + k($ = V.cloneNode(true), n2.ghostClass, false), k($, n2.fallbackClass, true), k($, n2.dragClass, true), R($, "transition", ""), R($, "transform", ""), R($, "box-sizing", "border-box"), R($, "margin", 0), R($, "top", e2.top), R($, "left", e2.left), R($, "width", e2.width), R($, "height", e2.height), R($, "opacity", "0.8"), R($, "position", Mt ? "absolute" : "fixed"), R($, "zIndex", "100000"), R($, "pointerEvents", "none"), Ft.ghost = $, t2.appendChild($), R($, "transform-origin", ft / parseInt($.style.width) * 100 + "% " + pt / parseInt($.style.height) * 100 + "%"); + } + }, _onDragStart: function(t2, e2) { + var n2 = this, o2 = t2.dataTransfer, i2 = n2.options; + G("dragStart", this, { evt: t2 }), Ft.eventCanceled ? this._onDrop() : (G("setupClone", this), Ft.eventCanceled || ((et = _(V)).removeAttribute("id"), et.draggable = false, et.style["will-change"] = "", this._hideClone(), k(et, this.options.chosenClass, false), Ft.clone = et), n2.cloneId = Kt(function() { + G("clone", n2), Ft.eventCanceled || (n2.options.removeCloneOnHide || Q.insertBefore(et, V), n2._hideClone(), q({ sortable: n2, name: "clone" })); + }), e2 || k(V, i2.dragClass, true), e2 ? (Et = true, n2._loopId = setInterval(n2._emulateDragOver, 50)) : (f(document, "mouseup", n2._onDrop), f(document, "touchend", n2._onDrop), f(document, "touchcancel", n2._onDrop), o2 && (o2.effectAllowed = "move", i2.setData && i2.setData.call(n2, o2, V)), h(document, "drop", n2), R(V, "transform", "translateZ(0)")), wt = true, n2._dragStartId = Kt(n2._dragStarted.bind(n2, e2, t2)), h(document, "selectstart", n2), gt = true, u && R(document.body, "user-select", "none")); + }, _onDragOver: function(n2) { + var o2, i2, r2, t2, e2, a2 = this.el, l2 = n2.target, s2 = this.options, c2 = s2.group, u2 = Ft.active, d2 = lt === c2, h2 = s2.sort, f2 = st || u2, p2 = this, g2 = false; + if (!Tt) { + if (void 0 !== n2.preventDefault && n2.cancelable && n2.preventDefault(), l2 = P(l2, s2.draggable, a2, true), O2("dragOver"), Ft.eventCanceled) + return g2; + if (V.contains(n2.target) || l2.animated && l2.animatingX && l2.animatingY || p2._ignoreWhileAnimating === l2) + return A2(false); + if (Et = false, u2 && !s2.disabled && (d2 ? h2 || (i2 = Z !== Q) : st === this || (this.lastPutMode = lt.checkPull(this, u2, V, n2)) && c2.checkPut(this, u2, V, n2))) { + if (r2 = "vertical" === this._getDirection(n2, l2), o2 = X(V), O2("dragOverValid"), Ft.eventCanceled) + return g2; + if (i2) + return Z = Q, M2(), this._hideClone(), O2("revert"), Ft.eventCanceled || (J ? Q.insertBefore(V, J) : Q.appendChild(V)), A2(true); + var m2 = F(a2, s2.draggable); + if (m2 && (S2 = n2, c2 = r2, x2 = X(F((D2 = this).el, D2.options.draggable)), D2 = L(D2.el, D2.options, $), !(c2 ? S2.clientX > D2.right + 10 || S2.clientY > x2.bottom && S2.clientX > x2.left : S2.clientY > D2.bottom + 10 || S2.clientX > x2.right && S2.clientY > x2.top) || m2.animated)) { + if (m2 && (t2 = n2, e2 = r2, C2 = X(B((_2 = this).el, 0, _2.options, true)), _2 = L(_2.el, _2.options, $), e2 ? t2.clientX < _2.left - 10 || t2.clientY < C2.top && t2.clientX < C2.right : t2.clientY < _2.top - 10 || t2.clientY < C2.bottom && t2.clientX < C2.left)) { + var v2 = B(a2, 0, s2, true); + if (v2 === V) + return A2(false); + if (E2 = X(l2 = v2), false !== jt(Q, a2, V, o2, l2, E2, n2, false)) + return M2(), a2.insertBefore(V, v2), Z = a2, N2(), A2(true); + } else if (l2.parentNode === a2) { + var b2, y2, w2, E2 = X(l2), D2 = V.parentNode !== a2, S2 = (S2 = V.animated && V.toRect || o2, x2 = l2.animated && l2.toRect || E2, _2 = (e2 = r2) ? S2.left : S2.top, t2 = e2 ? S2.right : S2.bottom, C2 = e2 ? S2.width : S2.height, v2 = e2 ? x2.left : x2.top, S2 = e2 ? x2.right : x2.bottom, x2 = e2 ? x2.width : x2.height, !(_2 === v2 || t2 === S2 || _2 + C2 / 2 === v2 + x2 / 2)), _2 = r2 ? "top" : "left", C2 = Y(l2, "top", "top") || Y(V, "top", "top"), v2 = C2 ? C2.scrollTop : void 0; + if (mt !== l2 && (y2 = E2[_2], St = false, _t = !S2 && s2.invertSwap || D2), 0 !== (b2 = function(t3, e3, n3, o3, i3, r3, a3, l3) { + var s3 = o3 ? t3.clientY : t3.clientX, c3 = o3 ? n3.height : n3.width, t3 = o3 ? n3.top : n3.left, o3 = o3 ? n3.bottom : n3.right, n3 = false; + if (!a3) { + if (l3 && bt < c3 * i3) { + if (St = !St && (1 === vt ? t3 + c3 * r3 / 2 < s3 : s3 < o3 - c3 * r3 / 2) ? true : St) + n3 = true; + else if (1 === vt ? s3 < t3 + bt : o3 - bt < s3) + return -vt; + } else if (t3 + c3 * (1 - i3) / 2 < s3 && s3 < o3 - c3 * (1 - i3) / 2) + return function(t4) { + return j(V) < j(t4) ? 1 : -1; + }(e3); + } + if ((n3 = n3 || a3) && (s3 < t3 + c3 * r3 / 2 || o3 - c3 * r3 / 2 < s3)) + return t3 + c3 / 2 < s3 ? 1 : -1; + return 0; + }(n2, l2, E2, r2, S2 ? 1 : s2.swapThreshold, null == s2.invertedSwapThreshold ? s2.swapThreshold : s2.invertedSwapThreshold, _t, mt === l2))) + for (var T2 = j(V); (w2 = Z.children[T2 -= b2]) && ("none" === R(w2, "display") || w2 === $); ) + ; + if (0 === b2 || w2 === l2) + return A2(false); + vt = b2; + var x2 = (mt = l2).nextElementSibling, D2 = false, S2 = jt(Q, a2, V, o2, l2, E2, n2, D2 = 1 === b2); + if (false !== S2) + return 1 !== S2 && -1 !== S2 || (D2 = 1 === S2), Tt = true, setTimeout(Lt, 30), M2(), D2 && !x2 ? a2.appendChild(V) : l2.parentNode.insertBefore(V, D2 ? x2 : l2), C2 && H(C2, 0, v2 - C2.scrollTop), Z = V.parentNode, void 0 === y2 || _t || (bt = Math.abs(y2 - X(l2)[_2])), N2(), A2(true); + } + } else { + if (m2 === V) + return A2(false); + if ((l2 = m2 && a2 === n2.target ? m2 : l2) && (E2 = X(l2)), false !== jt(Q, a2, V, o2, l2, E2, n2, !!l2)) + return M2(), m2 && m2.nextSibling ? a2.insertBefore(V, m2.nextSibling) : a2.appendChild(V), Z = a2, N2(), A2(true); + } + if (a2.contains(V)) + return A2(false); + } + return false; + } + function O2(t3, e3) { + G(t3, p2, I({ evt: n2, isOwner: d2, axis: r2 ? "vertical" : "horizontal", revert: i2, dragRect: o2, targetRect: E2, canSort: h2, fromSortable: f2, target: l2, completed: A2, onMove: function(t4, e4) { + return jt(Q, a2, V, o2, t4, X(t4), n2, e4); + }, changed: N2 }, e3)); + } + function M2() { + O2("dragOverAnimationCapture"), p2.captureAnimationState(), p2 !== f2 && f2.captureAnimationState(); + } + function A2(t3) { + return O2("dragOverCompleted", { insertion: t3 }), t3 && (d2 ? u2._hideClone() : u2._showClone(p2), p2 !== f2 && (k(V, (st || u2).options.ghostClass, false), k(V, s2.ghostClass, true)), st !== p2 && p2 !== Ft.active ? st = p2 : p2 === Ft.active && st && (st = null), f2 === p2 && (p2._ignoreWhileAnimating = l2), p2.animateAll(function() { + O2("dragOverAnimationComplete"), p2._ignoreWhileAnimating = null; + }), p2 !== f2 && (f2.animateAll(), f2._ignoreWhileAnimating = null)), (l2 === V && !V.animated || l2 === a2 && !l2.animated) && (mt = null), s2.dragoverBubble || n2.rootEl || l2 === document || (V.parentNode[K]._isOutsideThisEl(n2.target), t3 || Yt(n2)), !s2.dragoverBubble && n2.stopPropagation && n2.stopPropagation(), g2 = true; + } + function N2() { + it = j(V), at = j(V, s2.draggable), q({ sortable: p2, name: "change", toEl: a2, newIndex: it, newDraggableIndex: at, originalEvent: n2 }); + } + }, _ignoreWhileAnimating: null, _offMoveEvents: function() { + f(document, "mousemove", this._onTouchMove), f(document, "touchmove", this._onTouchMove), f(document, "pointermove", this._onTouchMove), f(document, "dragover", Yt), f(document, "mousemove", Yt), f(document, "touchmove", Yt); + }, _offUpEvents: function() { + var t2 = this.el.ownerDocument; + f(t2, "mouseup", this._onDrop), f(t2, "touchend", this._onDrop), f(t2, "pointerup", this._onDrop), f(t2, "touchcancel", this._onDrop), f(document, "selectstart", this); + }, _onDrop: function(t2) { + var e2 = this.el, n2 = this.options; + it = j(V), at = j(V, n2.draggable), G("drop", this, { evt: t2 }), Z = V && V.parentNode, it = j(V), at = j(V, n2.draggable), Ft.eventCanceled || (St = _t = wt = false, clearInterval(this._loopId), clearTimeout(this._dragStartTimer), Wt(this.cloneId), Wt(this._dragStartId), this.nativeDraggable && (f(document, "drop", this), f(e2, "dragstart", this._onDragStart)), this._offMoveEvents(), this._offUpEvents(), u && R(document.body, "user-select", ""), R(V, "transform", ""), t2 && (gt && (t2.cancelable && t2.preventDefault(), n2.dropBubble || t2.stopPropagation()), $ && $.parentNode && $.parentNode.removeChild($), (Q === Z || st && "clone" !== st.lastPutMode) && et && et.parentNode && et.parentNode.removeChild(et), V && (this.nativeDraggable && f(V, "dragend", this), Ht(V), V.style["will-change"] = "", gt && !wt && k(V, (st || this).options.ghostClass, false), k(V, this.options.chosenClass, false), q({ sortable: this, name: "unchoose", toEl: Z, newIndex: null, newDraggableIndex: null, originalEvent: t2 }), Q !== Z ? (0 <= it && (q({ rootEl: Z, name: "add", toEl: Z, fromEl: Q, originalEvent: t2 }), q({ sortable: this, name: "remove", toEl: Z, originalEvent: t2 }), q({ rootEl: Z, name: "sort", toEl: Z, fromEl: Q, originalEvent: t2 }), q({ sortable: this, name: "sort", toEl: Z, originalEvent: t2 })), st && st.save()) : it !== ot && 0 <= it && (q({ sortable: this, name: "update", toEl: Z, originalEvent: t2 }), q({ sortable: this, name: "sort", toEl: Z, originalEvent: t2 })), Ft.active && (null != it && -1 !== it || (it = ot, at = rt), q({ sortable: this, name: "end", toEl: Z, originalEvent: t2 }), this.save())))), this._nulling(); + }, _nulling: function() { + G("nulling", this), Q = V = Z = $ = J = et = tt = nt = ct = ut = gt = it = at = ot = rt = mt = vt = st = lt = Ft.dragged = Ft.ghost = Ft.clone = Ft.active = null, xt.forEach(function(t2) { + t2.checked = true; + }), xt.length = dt = ht = 0; + }, handleEvent: function(t2) { + switch (t2.type) { + case "drop": + case "dragend": + this._onDrop(t2); + break; + case "dragenter": + case "dragover": + V && (this._onDragOver(t2), function(t3) { + t3.dataTransfer && (t3.dataTransfer.dropEffect = "move"); + t3.cancelable && t3.preventDefault(); + }(t2)); + break; + case "selectstart": + t2.preventDefault(); + } + }, toArray: function() { + for (var t2, e2 = [], n2 = this.el.children, o2 = 0, i2 = n2.length, r2 = this.options; o2 < i2; o2++) + P(t2 = n2[o2], r2.draggable, this.el, false) && e2.push(t2.getAttribute(r2.dataIdAttr) || function(t3) { + var e3 = t3.tagName + t3.className + t3.src + t3.href + t3.textContent, n3 = e3.length, o3 = 0; + for (; n3--; ) + o3 += e3.charCodeAt(n3); + return o3.toString(36); + }(t2)); + return e2; + }, sort: function(t2, e2) { + var n2 = {}, o2 = this.el; + this.toArray().forEach(function(t3, e3) { + e3 = o2.children[e3]; + P(e3, this.options.draggable, o2, false) && (n2[t3] = e3); + }, this), e2 && this.captureAnimationState(), t2.forEach(function(t3) { + n2[t3] && (o2.removeChild(n2[t3]), o2.appendChild(n2[t3])); + }), e2 && this.animateAll(); + }, save: function() { + var t2 = this.options.store; + t2 && t2.set && t2.set(this); + }, closest: function(t2, e2) { + return P(t2, e2 || this.options.draggable, this.el, false); + }, option: function(t2, e2) { + var n2 = this.options; + if (void 0 === e2) + return n2[t2]; + var o2 = W.modifyOption(this, t2, e2); + n2[t2] = void 0 !== o2 ? o2 : e2, "group" === t2 && kt(n2); + }, destroy: function() { + G("destroy", this); + var t2 = this.el; + t2[K] = null, f(t2, "mousedown", this._onTapStart), f(t2, "touchstart", this._onTapStart), f(t2, "pointerdown", this._onTapStart), this.nativeDraggable && (f(t2, "dragover", this), f(t2, "dragenter", this)), Array.prototype.forEach.call(t2.querySelectorAll("[draggable]"), function(t3) { + t3.removeAttribute("draggable"); + }), this._onDrop(), this._disableDelayedDragEvents(), Dt.splice(Dt.indexOf(this.el), 1), this.el = t2 = null; + }, _hideClone: function() { + nt || (G("hideClone", this), Ft.eventCanceled || (R(et, "display", "none"), this.options.removeCloneOnHide && et.parentNode && et.parentNode.removeChild(et), nt = true)); + }, _showClone: function(t2) { + "clone" === t2.lastPutMode ? nt && (G("showClone", this), Ft.eventCanceled || (V.parentNode != Q || this.options.group.revertClone ? J ? Q.insertBefore(et, J) : Q.appendChild(et) : Q.insertBefore(et, V), this.options.group.revertClone && this.animate(V, et), R(et, "display", ""), nt = false)) : this._hideClone(); + } }, Ot && h(document, "touchmove", function(t2) { + (Ft.active || wt) && t2.cancelable && t2.preventDefault(); + }), Ft.utils = { on: h, off: f, css: R, find: b, is: function(t2, e2) { + return !!P(t2, e2, t2, false); + }, extend: function(t2, e2) { + if (t2 && e2) + for (var n2 in e2) + e2.hasOwnProperty(n2) && (t2[n2] = e2[n2]); + return t2; + }, throttle: S, closest: P, toggleClass: k, clone: _, index: j, nextTick: Kt, cancelNextTick: Wt, detectDirection: Pt, getChild: B }, Ft.get = function(t2) { + return t2[K]; + }, Ft.mount = function() { + for (var t2 = arguments.length, e2 = new Array(t2), n2 = 0; n2 < t2; n2++) + e2[n2] = arguments[n2]; + (e2 = e2[0].constructor === Array ? e2[0] : e2).forEach(function(t3) { + if (!t3.prototype || !t3.prototype.constructor) + throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(t3)); + t3.utils && (Ft.utils = I(I({}, Ft.utils), t3.utils)), W.mount(t3); + }); + }, Ft.create = function(t2, e2) { + return new Ft(t2, e2); + }; + var zt, Gt, Ut, qt, Vt, Zt, $t = [], Qt = !(Ft.version = "1.15.2"); + function Jt() { + $t.forEach(function(t2) { + clearInterval(t2.pid); + }), $t = []; + } + function te() { + clearInterval(Zt); + } + var ee, ne = S(function(n2, t2, e2, o2) { + if (t2.scroll) { + var i2, r2 = (n2.touches ? n2.touches[0] : n2).clientX, a2 = (n2.touches ? n2.touches[0] : n2).clientY, l2 = t2.scrollSensitivity, s2 = t2.scrollSpeed, c2 = O(), u2 = false; + Gt !== e2 && (Gt = e2, Jt(), zt = t2.scroll, i2 = t2.scrollFn, true === zt && (zt = M(e2, true))); + var d2 = 0, h2 = zt; + do { + var f2 = h2, p2 = X(f2), g2 = p2.top, m2 = p2.bottom, v2 = p2.left, b2 = p2.right, y2 = p2.width, w2 = p2.height, E2 = void 0, D2 = void 0, S2 = f2.scrollWidth, _2 = f2.scrollHeight, C2 = R(f2), T2 = f2.scrollLeft, p2 = f2.scrollTop, D2 = f2 === c2 ? (E2 = y2 < S2 && ("auto" === C2.overflowX || "scroll" === C2.overflowX || "visible" === C2.overflowX), w2 < _2 && ("auto" === C2.overflowY || "scroll" === C2.overflowY || "visible" === C2.overflowY)) : (E2 = y2 < S2 && ("auto" === C2.overflowX || "scroll" === C2.overflowX), w2 < _2 && ("auto" === C2.overflowY || "scroll" === C2.overflowY)), T2 = E2 && (Math.abs(b2 - r2) <= l2 && T2 + y2 < S2) - (Math.abs(v2 - r2) <= l2 && !!T2), p2 = D2 && (Math.abs(m2 - a2) <= l2 && p2 + w2 < _2) - (Math.abs(g2 - a2) <= l2 && !!p2); + if (!$t[d2]) + for (var x2 = 0; x2 <= d2; x2++) + $t[x2] || ($t[x2] = {}); + $t[d2].vx == T2 && $t[d2].vy == p2 && $t[d2].el === f2 || ($t[d2].el = f2, $t[d2].vx = T2, $t[d2].vy = p2, clearInterval($t[d2].pid), 0 == T2 && 0 == p2 || (u2 = true, $t[d2].pid = setInterval(function() { + o2 && 0 === this.layer && Ft.active._onTouchMove(Vt); + var t3 = $t[this.layer].vy ? $t[this.layer].vy * s2 : 0, e3 = $t[this.layer].vx ? $t[this.layer].vx * s2 : 0; + "function" == typeof i2 && "continue" !== i2.call(Ft.dragged.parentNode[K], e3, t3, n2, Vt, $t[this.layer].el) || H($t[this.layer].el, e3, t3); + }.bind({ layer: d2 }), 24))), d2++; + } while (t2.bubbleScroll && h2 !== c2 && (h2 = M(h2, false))); + Qt = u2; + } + }, 30), c = function(t2) { + var e2 = t2.originalEvent, n2 = t2.putSortable, o2 = t2.dragEl, i2 = t2.activeSortable, r2 = t2.dispatchSortableEvent, a2 = t2.hideGhostForTarget, t2 = t2.unhideGhostForTarget; + e2 && (i2 = n2 || i2, a2(), e2 = e2.changedTouches && e2.changedTouches.length ? e2.changedTouches[0] : e2, e2 = document.elementFromPoint(e2.clientX, e2.clientY), t2(), i2 && !i2.el.contains(e2) && (r2("spill"), this.onSpill({ dragEl: o2, putSortable: n2 }))); + }; + function oe() { + } + function ie() { + } + oe.prototype = { startIndex: null, dragStart: function(t2) { + t2 = t2.oldDraggableIndex; + this.startIndex = t2; + }, onSpill: function(t2) { + var e2 = t2.dragEl, n2 = t2.putSortable; + this.sortable.captureAnimationState(), n2 && n2.captureAnimationState(); + t2 = B(this.sortable.el, this.startIndex, this.options); + t2 ? this.sortable.el.insertBefore(e2, t2) : this.sortable.el.appendChild(e2), this.sortable.animateAll(), n2 && n2.animateAll(); + }, drop: c }, a(oe, { pluginName: "revertOnSpill" }), ie.prototype = { onSpill: function(t2) { + var e2 = t2.dragEl, t2 = t2.putSortable || this.sortable; + t2.captureAnimationState(), e2.parentNode && e2.parentNode.removeChild(e2), t2.animateAll(); + }, drop: c }, a(ie, { pluginName: "removeOnSpill" }); + var re, ae, le, se, ce, ue = [], de = [], he = false, fe = false, pe = false; + function ge(n2, o2) { + de.forEach(function(t2, e2) { + e2 = o2.children[t2.sortableIndex + (n2 ? Number(e2) : 0)]; + e2 ? o2.insertBefore(t2, e2) : o2.appendChild(t2); + }); + } + function me() { + ue.forEach(function(t2) { + t2 !== le && t2.parentNode && t2.parentNode.removeChild(t2); + }); + } + return Ft.mount(new function() { + function t2() { + for (var t3 in this.defaults = { scroll: true, forceAutoScrollFallback: false, scrollSensitivity: 30, scrollSpeed: 10, bubbleScroll: true }, this) + "_" === t3.charAt(0) && "function" == typeof this[t3] && (this[t3] = this[t3].bind(this)); + } + return t2.prototype = { dragStarted: function(t3) { + t3 = t3.originalEvent; + this.sortable.nativeDraggable ? h(document, "dragover", this._handleAutoScroll) : this.options.supportPointer ? h(document, "pointermove", this._handleFallbackAutoScroll) : t3.touches ? h(document, "touchmove", this._handleFallbackAutoScroll) : h(document, "mousemove", this._handleFallbackAutoScroll); + }, dragOverCompleted: function(t3) { + t3 = t3.originalEvent; + this.options.dragOverBubble || t3.rootEl || this._handleAutoScroll(t3); + }, drop: function() { + this.sortable.nativeDraggable ? f(document, "dragover", this._handleAutoScroll) : (f(document, "pointermove", this._handleFallbackAutoScroll), f(document, "touchmove", this._handleFallbackAutoScroll), f(document, "mousemove", this._handleFallbackAutoScroll)), te(), Jt(), clearTimeout(g), g = void 0; + }, nulling: function() { + Vt = Gt = zt = Qt = Zt = Ut = qt = null, $t.length = 0; + }, _handleFallbackAutoScroll: function(t3) { + this._handleAutoScroll(t3, true); + }, _handleAutoScroll: function(e2, n2) { + var o2, i2 = this, r2 = (e2.touches ? e2.touches[0] : e2).clientX, a2 = (e2.touches ? e2.touches[0] : e2).clientY, t3 = document.elementFromPoint(r2, a2); + Vt = e2, n2 || this.options.forceAutoScrollFallback || w || y || u ? (ne(e2, this.options, t3, n2), o2 = M(t3, true), !Qt || Zt && r2 === Ut && a2 === qt || (Zt && te(), Zt = setInterval(function() { + var t4 = M(document.elementFromPoint(r2, a2), true); + t4 !== o2 && (o2 = t4, Jt()), ne(e2, i2.options, t4, n2); + }, 10), Ut = r2, qt = a2)) : this.options.bubbleScroll && M(t3, true) !== O() ? ne(e2, this.options, M(t3, false), false) : Jt(); + } }, a(t2, { pluginName: "scroll", initializeByDefault: true }); + }()), Ft.mount(ie, oe), Ft.mount(new function() { + function t2() { + this.defaults = { swapClass: "sortable-swap-highlight" }; + } + return t2.prototype = { dragStart: function(t3) { + t3 = t3.dragEl; + ee = t3; + }, dragOverValid: function(t3) { + var e2 = t3.completed, n2 = t3.target, o2 = t3.onMove, i2 = t3.activeSortable, r2 = t3.changed, a2 = t3.cancel; + i2.options.swap && (t3 = this.sortable.el, i2 = this.options, n2 && n2 !== t3 && (t3 = ee, ee = false !== o2(n2) ? (k(n2, i2.swapClass, true), n2) : null, t3 && t3 !== ee && k(t3, i2.swapClass, false)), r2(), e2(true), a2()); + }, drop: function(t3) { + var e2, n2, o2 = t3.activeSortable, i2 = t3.putSortable, r2 = t3.dragEl, a2 = i2 || this.sortable, l2 = this.options; + ee && k(ee, l2.swapClass, false), ee && (l2.swap || i2 && i2.options.swap) && r2 !== ee && (a2.captureAnimationState(), a2 !== o2 && o2.captureAnimationState(), n2 = ee, t3 = (e2 = r2).parentNode, l2 = n2.parentNode, t3 && l2 && !t3.isEqualNode(n2) && !l2.isEqualNode(e2) && (i2 = j(e2), r2 = j(n2), t3.isEqualNode(l2) && i2 < r2 && r2++, t3.insertBefore(n2, t3.children[i2]), l2.insertBefore(e2, l2.children[r2])), a2.animateAll(), a2 !== o2 && o2.animateAll()); + }, nulling: function() { + ee = null; + } }, a(t2, { pluginName: "swap", eventProperties: function() { + return { swapItem: ee }; + } }); + }()), Ft.mount(new function() { + function t2(o2) { + for (var t3 in this) + "_" === t3.charAt(0) && "function" == typeof this[t3] && (this[t3] = this[t3].bind(this)); + o2.options.avoidImplicitDeselect || (o2.options.supportPointer ? h(document, "pointerup", this._deselectMultiDrag) : (h(document, "mouseup", this._deselectMultiDrag), h(document, "touchend", this._deselectMultiDrag))), h(document, "keydown", this._checkKeyDown), h(document, "keyup", this._checkKeyUp), this.defaults = { selectedClass: "sortable-selected", multiDragKey: null, avoidImplicitDeselect: false, setData: function(t4, e2) { + var n2 = ""; + ue.length && ae === o2 ? ue.forEach(function(t5, e3) { + n2 += (e3 ? ", " : "") + t5.textContent; + }) : n2 = e2.textContent, t4.setData("Text", n2); + } }; + } + return t2.prototype = { multiDragKeyDown: false, isMultiDrag: false, delayStartGlobal: function(t3) { + t3 = t3.dragEl; + le = t3; + }, delayEnded: function() { + this.isMultiDrag = ~ue.indexOf(le); + }, setupClone: function(t3) { + var e2 = t3.sortable, t3 = t3.cancel; + if (this.isMultiDrag) { + for (var n2 = 0; n2 < ue.length; n2++) + de.push(_(ue[n2])), de[n2].sortableIndex = ue[n2].sortableIndex, de[n2].draggable = false, de[n2].style["will-change"] = "", k(de[n2], this.options.selectedClass, false), ue[n2] === le && k(de[n2], this.options.chosenClass, false); + e2._hideClone(), t3(); + } + }, clone: function(t3) { + var e2 = t3.sortable, n2 = t3.rootEl, o2 = t3.dispatchSortableEvent, t3 = t3.cancel; + this.isMultiDrag && (this.options.removeCloneOnHide || ue.length && ae === e2 && (ge(true, n2), o2("clone"), t3())); + }, showClone: function(t3) { + var e2 = t3.cloneNowShown, n2 = t3.rootEl, t3 = t3.cancel; + this.isMultiDrag && (ge(false, n2), de.forEach(function(t4) { + R(t4, "display", ""); + }), e2(), ce = false, t3()); + }, hideClone: function(t3) { + var e2 = this, n2 = (t3.sortable, t3.cloneNowHidden), t3 = t3.cancel; + this.isMultiDrag && (de.forEach(function(t4) { + R(t4, "display", "none"), e2.options.removeCloneOnHide && t4.parentNode && t4.parentNode.removeChild(t4); + }), n2(), ce = true, t3()); + }, dragStartGlobal: function(t3) { + t3.sortable; + !this.isMultiDrag && ae && ae.multiDrag._deselectMultiDrag(), ue.forEach(function(t4) { + t4.sortableIndex = j(t4); + }), ue = ue.sort(function(t4, e2) { + return t4.sortableIndex - e2.sortableIndex; + }), pe = true; + }, dragStarted: function(t3) { + var e2, n2 = this, t3 = t3.sortable; + this.isMultiDrag && (this.options.sort && (t3.captureAnimationState(), this.options.animation && (ue.forEach(function(t4) { + t4 !== le && R(t4, "position", "absolute"); + }), e2 = X(le, false, true, true), ue.forEach(function(t4) { + t4 !== le && C(t4, e2); + }), he = fe = true)), t3.animateAll(function() { + he = fe = false, n2.options.animation && ue.forEach(function(t4) { + T(t4); + }), n2.options.sort && me(); + })); + }, dragOver: function(t3) { + var e2 = t3.target, n2 = t3.completed, t3 = t3.cancel; + fe && ~ue.indexOf(e2) && (n2(false), t3()); + }, revert: function(t3) { + var n2, o2, e2 = t3.fromSortable, i2 = t3.rootEl, r2 = t3.sortable, a2 = t3.dragRect; + 1 < ue.length && (ue.forEach(function(t4) { + r2.addAnimationState({ target: t4, rect: fe ? X(t4) : a2 }), T(t4), t4.fromRect = a2, e2.removeAnimationState(t4); + }), fe = false, n2 = !this.options.removeCloneOnHide, o2 = i2, ue.forEach(function(t4, e3) { + e3 = o2.children[t4.sortableIndex + (n2 ? Number(e3) : 0)]; + e3 ? o2.insertBefore(t4, e3) : o2.appendChild(t4); + })); + }, dragOverCompleted: function(t3) { + var e2, n2 = t3.sortable, o2 = t3.isOwner, i2 = t3.insertion, r2 = t3.activeSortable, a2 = t3.parentEl, l2 = t3.putSortable, t3 = this.options; + i2 && (o2 && r2._hideClone(), he = false, t3.animation && 1 < ue.length && (fe || !o2 && !r2.options.sort && !l2) && (e2 = X(le, false, true, true), ue.forEach(function(t4) { + t4 !== le && (C(t4, e2), a2.appendChild(t4)); + }), fe = true), o2 || (fe || me(), 1 < ue.length ? (o2 = ce, r2._showClone(n2), r2.options.animation && !ce && o2 && de.forEach(function(t4) { + r2.addAnimationState({ target: t4, rect: se }), t4.fromRect = se, t4.thisAnimationDuration = null; + })) : r2._showClone(n2))); + }, dragOverAnimationCapture: function(t3) { + var e2 = t3.dragRect, n2 = t3.isOwner, t3 = t3.activeSortable; + ue.forEach(function(t4) { + t4.thisAnimationDuration = null; + }), t3.options.animation && !n2 && t3.multiDrag.isMultiDrag && (se = a({}, e2), e2 = v(le, true), se.top -= e2.f, se.left -= e2.e); + }, dragOverAnimationComplete: function() { + fe && (fe = false, me()); + }, drop: function(t3) { + var e2 = t3.originalEvent, n2 = t3.rootEl, o2 = t3.parentEl, i2 = t3.sortable, r2 = t3.dispatchSortableEvent, a2 = t3.oldIndex, l2 = t3.putSortable, s2 = l2 || this.sortable; + if (e2) { + var c2, u2, d2, h2 = this.options, f2 = o2.children; + if (!pe) + if (h2.multiDragKey && !this.multiDragKeyDown && this._deselectMultiDrag(), k(le, h2.selectedClass, !~ue.indexOf(le)), ~ue.indexOf(le)) + ue.splice(ue.indexOf(le), 1), re = null, z({ sortable: i2, rootEl: n2, name: "deselect", targetEl: le, originalEvent: e2 }); + else { + if (ue.push(le), z({ sortable: i2, rootEl: n2, name: "select", targetEl: le, originalEvent: e2 }), e2.shiftKey && re && i2.el.contains(re)) { + var p2 = j(re), t3 = j(le); + if (~p2 && ~t3 && p2 !== t3) + for (var g2, m2 = p2 < t3 ? (g2 = p2, t3) : (g2 = t3, p2 + 1); g2 < m2; g2++) + ~ue.indexOf(f2[g2]) || (k(f2[g2], h2.selectedClass, true), ue.push(f2[g2]), z({ sortable: i2, rootEl: n2, name: "select", targetEl: f2[g2], originalEvent: e2 })); + } else + re = le; + ae = s2; + } + pe && this.isMultiDrag && (fe = false, (o2[K].options.sort || o2 !== n2) && 1 < ue.length && (c2 = X(le), u2 = j(le, ":not(." + this.options.selectedClass + ")"), !he && h2.animation && (le.thisAnimationDuration = null), s2.captureAnimationState(), he || (h2.animation && (le.fromRect = c2, ue.forEach(function(t4) { + var e3; + t4.thisAnimationDuration = null, t4 !== le && (e3 = fe ? X(t4) : c2, t4.fromRect = e3, s2.addAnimationState({ target: t4, rect: e3 })); + })), me(), ue.forEach(function(t4) { + f2[u2] ? o2.insertBefore(t4, f2[u2]) : o2.appendChild(t4), u2++; + }), a2 === j(le) && (d2 = false, ue.forEach(function(t4) { + t4.sortableIndex !== j(t4) && (d2 = true); + }), d2 && (r2("update"), r2("sort")))), ue.forEach(function(t4) { + T(t4); + }), s2.animateAll()), ae = s2), (n2 === o2 || l2 && "clone" !== l2.lastPutMode) && de.forEach(function(t4) { + t4.parentNode && t4.parentNode.removeChild(t4); + }); + } + }, nullingGlobal: function() { + this.isMultiDrag = pe = false, de.length = 0; + }, destroyGlobal: function() { + this._deselectMultiDrag(), f(document, "pointerup", this._deselectMultiDrag), f(document, "mouseup", this._deselectMultiDrag), f(document, "touchend", this._deselectMultiDrag), f(document, "keydown", this._checkKeyDown), f(document, "keyup", this._checkKeyUp); + }, _deselectMultiDrag: function(t3) { + if (!(void 0 !== pe && pe || ae !== this.sortable || t3 && P(t3.target, this.options.draggable, this.sortable.el, false) || t3 && 0 !== t3.button)) + for (; ue.length; ) { + var e2 = ue[0]; + k(e2, this.options.selectedClass, false), ue.shift(), z({ sortable: this.sortable, rootEl: this.sortable.el, name: "deselect", targetEl: e2, originalEvent: t3 }); + } + }, _checkKeyDown: function(t3) { + t3.key === this.options.multiDragKey && (this.multiDragKeyDown = true); + }, _checkKeyUp: function(t3) { + t3.key === this.options.multiDragKey && (this.multiDragKeyDown = false); + } }, a(t2, { pluginName: "multiDrag", utils: { select: function(t3) { + var e2 = t3.parentNode[K]; + e2 && e2.options.multiDrag && !~ue.indexOf(t3) && (ae && ae !== e2 && (ae.multiDrag._deselectMultiDrag(), ae = e2), k(t3, e2.options.selectedClass, true), ue.push(t3)); + }, deselect: function(t3) { + var e2 = t3.parentNode[K], n2 = ue.indexOf(t3); + e2 && e2.options.multiDrag && ~n2 && (k(t3, e2.options.selectedClass, false), ue.splice(n2, 1)); + } }, eventProperties: function() { + var n2 = this, o2 = [], i2 = []; + return ue.forEach(function(t3) { + var e2; + o2.push({ multiDragElement: t3, index: t3.sortableIndex }), e2 = fe && t3 !== le ? -1 : fe ? j(t3, ":not(." + n2.options.selectedClass + ")") : j(t3), i2.push({ multiDragElement: t3, index: e2 }); + }), { items: r(ue), clones: [].concat(de), oldIndicies: o2, newIndicies: i2 }; + }, optionListeners: { multiDragKey: function(t3) { + return "ctrl" === (t3 = t3.toLowerCase()) ? t3 = "Control" : 1 < t3.length && (t3 = t3.charAt(0).toUpperCase() + t3.substr(1)), t3; + } } }); + }()), Ft; + }); + } + }); + var module_exports = {}; + __export(module_exports, { + default: () => module_default2, + sort: () => src_default2 + }); + module.exports = __toCommonJS(module_exports); + var import_sortablejs = __toESM2(require_Sortable_min()); + function walk(el, callback) { + if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) { + Array.from(el.children).forEach((el2) => walk(el2, callback)); + return; + } + let skip = false; + callback(el, () => skip = true); + if (skip) + return; + let node = el.firstElementChild; + while (node) { + walk(node, callback, false); + node = node.nextElementSibling; + } + } + function src_default2(Alpine25) { + Alpine25.directive("sort", (el, { value, modifiers, expression }, { effect, evaluate, cleanup }) => { + if (value === "config") { + return; + } + if (value === "handle") { + return; + } + if (value === "group") { + return; + } + if (value === "key" || value === "item") { + if ([void 0, null, ""].includes(expression)) + return; + el._x_sort_key = evaluate(expression); + return; + } + let handleSelector = "[x-sort\\:handle],[wire\\:sort\\:handle]"; + let preferences = { + hideGhost: !modifiers.includes("ghost"), + useHandles: !!el.querySelector(handleSelector) || Array.from(el.querySelectorAll("template:not(svg template)")).some((tmpl) => { + var _a; + return (_a = tmpl.content) == null ? void 0 : _a.querySelector(handleSelector); + }), + group: getGroupName(el, modifiers) + }; + let handleSort = generateSortHandler(expression, evaluate); + let config = getConfigurationOverrides(el, modifiers, evaluate); + let sortable = initSortable(el, config, preferences, (key, position) => { + handleSort(key, position); + }); + cleanup(() => sortable.destroy()); + }); + } + function generateSortHandler(expression, evaluate) { + if ([void 0, null, ""].includes(expression)) + return () => { + }; + return (key, position) => { + evaluate(expression, { scope: { + $key: key, + $item: key, + $position: position + }, params: [ + key, + position + ] }); + }; + } + function getConfigurationOverrides(el, modifiers, evaluate) { + if (el.hasAttribute("x-sort:config")) { + return evaluate(el.getAttribute("x-sort:config")); + } + if (el.hasAttribute("wire:sort:config")) { + return evaluate(el.getAttribute("wire:sort:config")); + } + return {}; + } + function initSortable(el, config, preferences, handle) { + let ghostRef; + let options = { + animation: 150, + handle: preferences.useHandles ? "[x-sort\\:handle],[wire\\:sort\\:handle]" : null, + group: preferences.group, + scroll: true, + forceAutoScrollFallback: true, + scrollSensitivity: 50, + preventOnFilter: false, + filter(e) { + if (e.target.hasAttribute("x-sort:ignore") || e.target.hasAttribute("wire:sort:ignore")) + return true; + if (e.target.closest("[x-sort\\:ignore]") || e.target.closest("[wire\\:sort\\:ignore]")) + return true; + if (!el.querySelector("[x-sort\\:item],[wire\\:sort\\:item]")) + return false; + let itemHasAttribute = e.target.closest("[x-sort\\:item],[wire\\:sort\\:item]"); + return itemHasAttribute ? false : true; + }, + onSort(e) { + if (e.from !== e.to) { + if (e.to !== e.target) { + return; + } + } + let key = void 0; + walk(e.item, (el2, skip) => { + if (key !== void 0) + return; + if (el2._x_sort_key) { + key = el2._x_sort_key; + skip(); + } + }); + let position = e.newIndex; + if (key !== void 0 || key !== null) { + handle(key, position); + } + }, + onStart() { + document.body.classList.add("sorting"); + ghostRef = document.querySelector(".sortable-ghost"); + if (preferences.hideGhost && ghostRef) + ghostRef.style.opacity = "0"; + }, + onEnd() { + document.body.classList.remove("sorting"); + if (preferences.hideGhost && ghostRef) + ghostRef.style.opacity = "1"; + ghostRef = void 0; + keepElementsWithinMorphMarkers(el); + } + }; + return new import_sortablejs.default(el, { ...options, ...config }); + } + function keepElementsWithinMorphMarkers(el) { + let cursor = el.firstChild; + while (cursor.nextSibling) { + if (cursor.textContent.trim() === "[if ENDBLOCK]><![endif]") { + el.append(cursor); + break; + } + cursor = cursor.nextSibling; + } + } + function getGroupName(el, modifiers) { + if (el.hasAttribute("x-sort:group")) { + return el.getAttribute("x-sort:group"); + } + if (el.hasAttribute("wire:sort:group")) { + return el.getAttribute("wire:sort:group"); + } + return modifiers.indexOf("group") !== -1 ? modifiers[modifiers.indexOf("group") + 1] : null; + } + var module_default2 = src_default2; + } +}); + +// node_modules/@alpinejs/resize/dist/module.cjs.js +var require_module_cjs6 = __commonJS({ + "node_modules/@alpinejs/resize/dist/module.cjs.js"(exports, module) { + var __defProp2 = Object.defineProperty; + var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __hasOwnProp2 = Object.prototype.hasOwnProperty; + var __export = (target, all2) => { + for (var name in all2) + __defProp2(target, name, { get: all2[name], enumerable: true }); + }; + var __copyProps2 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp2.call(to, key) && key !== except) + __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); + var module_exports = {}; + __export(module_exports, { + default: () => module_default2, + resize: () => src_default2 + }); + module.exports = __toCommonJS(module_exports); + function src_default2(Alpine25) { + Alpine25.directive("resize", Alpine25.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { + let evaluator = evaluateLater(expression); + let evaluate = (width, height) => { + evaluator(() => { + }, { scope: { "$width": width, "$height": height } }); + }; + let off = modifiers.includes("document") ? onDocumentResize(evaluate) : onElResize(el, evaluate); + cleanup(() => off()); + })); + } + function onElResize(el, callback) { + let observer = new ResizeObserver((entries) => { + let [width, height] = dimensions(entries); + callback(width, height); + }); + observer.observe(el); + return () => observer.disconnect(); + } + var documentResizeObserver; + var documentResizeObserverCallbacks = /* @__PURE__ */ new Set(); + function onDocumentResize(callback) { + documentResizeObserverCallbacks.add(callback); + if (!documentResizeObserver) { + documentResizeObserver = new ResizeObserver((entries) => { + let [width, height] = dimensions(entries); + documentResizeObserverCallbacks.forEach((i) => i(width, height)); }); documentResizeObserver.observe(document.documentElement); } @@ -5174,7 +7042,7 @@ var require_module_cjs6 = __commonJS({ } return [width, height]; } - var module_default = src_default; + var module_default2 = src_default2; } }); @@ -5200,8 +7068,8 @@ var require_module_cjs7 = __commonJS({ var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var module_exports = {}; __export(module_exports, { - anchor: () => src_default, - default: () => module_default + anchor: () => src_default2, + default: () => module_default2 }); module.exports = __toCommonJS(module_exports); var min = Math.min; @@ -6377,51 +8245,67 @@ var require_module_cjs7 = __commonJS({ platform: platformWithCache }); }; - function src_default(Alpine19) { - Alpine19.magic("anchor", (el) => { + function src_default2(Alpine25) { + Alpine25.magic("anchor", (el) => { if (!el._x_anchor) throw "Alpine: No x-anchor directive found on element using $anchor..."; return el._x_anchor; }); - Alpine19.interceptClone((from, to) => { + Alpine25.interceptClone((from, to) => { if (from && from._x_anchor && !to._x_anchor) { to._x_anchor = from._x_anchor; } }); - Alpine19.directive("anchor", Alpine19.skipDuringClone((el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => { - let { placement, offsetValue, unstyled } = getOptions(modifiers); - el._x_anchor = Alpine19.reactive({ x: 0, y: 0 }); - let reference = evaluate2(expression); - if (!reference) - throw "Alpine: no element provided to x-anchor..."; - let compute = () => { - let previousValue; - computePosition2(reference, el, { - placement, - middleware: [flip(), shift({ padding: 5 }), offset(offsetValue)] - }).then(({ x, y }) => { - unstyled || setStyles(el, x, y); - if (JSON.stringify({ x, y }) !== previousValue) { - el._x_anchor.x = x; - el._x_anchor.y = y; - } - previousValue = JSON.stringify({ x, y }); + Alpine25.directive("anchor", Alpine25.skipDuringClone( + (el, { expression, modifiers, value }, { evaluate: evaluate2, effect, cleanup }) => { + let { placement, offsetValue, unstyled, strategy, allowFlip } = getOptions(modifiers); + el._x_anchor = Alpine25.reactive({ x: 0, y: 0 }); + let previousReference = null; + let release = null; + effect(() => { + let reference = evaluate2(expression); + if (!reference) + return; + if (previousReference !== reference) { + if (release) + release(); + previousReference = reference; + let compute = () => { + let previousValue; + computePosition2(reference, el, { + placement, + strategy, + middleware: [allowFlip && flip(), shift({ padding: 5 }), offset(offsetValue)] + }).then(({ x, y }) => { + unstyled || setStyles(el, x, y, strategy); + if (JSON.stringify({ x, y }) !== previousValue) { + el._x_anchor.x = x; + el._x_anchor.y = y; + } + previousValue = JSON.stringify({ x, y }); + }); + }; + release = autoUpdate(reference, el, () => compute()); + } }); - }; - let release = autoUpdate(reference, el, () => compute()); - cleanup(() => release()); - }, (el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => { - let { placement, offsetValue, unstyled } = getOptions(modifiers); - if (el._x_anchor) { - unstyled || setStyles(el, el._x_anchor.x, el._x_anchor.y); + cleanup(() => { + if (release) + release(); + }); + }, + (el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => { + let { placement, offsetValue, unstyled, strategy } = getOptions(modifiers); + if (el._x_anchor) { + unstyled || setStyles(el, el._x_anchor.x, el._x_anchor.y, strategy); + } } - })); + )); } - function setStyles(el, x, y) { + function setStyles(el, x, y, strategy = "absolute") { Object.assign(el.style, { left: x + "px", top: y + "px", - position: "absolute" + position: strategy }); } function getOptions(modifiers) { @@ -6433,9 +8317,11 @@ var require_module_cjs7 = __commonJS({ offsetValue = modifiers[idx + 1] !== void 0 ? Number(modifiers[idx + 1]) : offsetValue; } let unstyled = modifiers.includes("no-style"); - return { placement, offsetValue, unstyled }; + let allowFlip = !modifiers.includes("noflip"); + let strategy = modifiers.includes("fixed") ? "fixed" : "absolute"; + return { placement, offsetValue, unstyled, strategy, allowFlip }; } - var module_default = src_default; + var module_default2 = src_default2; } }); @@ -6738,115 +8624,165 @@ var require_module_cjs8 = __commonJS({ var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var module_exports = {}; __export(module_exports, { - default: () => module_default, - morph: () => src_default + default: () => module_default2, + morph: () => src_default2 }); module.exports = __toCommonJS(module_exports); function morph3(from, toHtml, options) { monkeyPatchDomSetAttributeToAllowAtSymbols(); - let fromEl; - let toEl; - let key, lookahead, updating, updated, removing, removed, adding, added; - function assignOptions(options2 = {}) { - let defaultGetKey = (el) => el.getAttribute("key"); - let noop = () => { - }; - updating = options2.updating || noop; - updated = options2.updated || noop; - removing = options2.removing || noop; - removed = options2.removed || noop; - adding = options2.adding || noop; - added = options2.added || noop; - key = options2.key || defaultGetKey; - lookahead = options2.lookahead || false; - } - function patch(from2, to) { - if (differentElementNamesTypesOrKeys(from2, to)) { - return swapElements(from2, to); + let context = createMorphContext(options); + let toEl = typeof toHtml === "string" ? createElement(toHtml) : toHtml; + if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) { + toEl._x_dataStack = window.Alpine.closestDataStack(from); + toEl._x_dataStack && window.Alpine.cloneNode(from, toEl); + } + context.patch(from, toEl); + return from; + } + function morphBetween(startMarker, endMarker, toHtml, options = {}) { + monkeyPatchDomSetAttributeToAllowAtSymbols(); + let context = createMorphContext(options); + let fromContainer = startMarker.parentNode; + let fromBlock = new Block(startMarker, endMarker); + let toContainer = typeof toHtml === "string" ? (() => { + let container = document.createElement("div"); + container.insertAdjacentHTML("beforeend", toHtml); + return container; + })() : toHtml; + let toStartMarker = document.createComment("[morph-start]"); + let toEndMarker = document.createComment("[morph-end]"); + toContainer.insertBefore(toStartMarker, toContainer.firstChild); + toContainer.appendChild(toEndMarker); + let toBlock = new Block(toStartMarker, toEndMarker); + if (window.Alpine && window.Alpine.closestDataStack) { + toContainer._x_dataStack = window.Alpine.closestDataStack(fromContainer); + toContainer._x_dataStack && window.Alpine.cloneNode(fromContainer, toContainer); + } + context.patchChildren(fromBlock, toBlock); + } + function createMorphContext(options = {}) { + let defaultGetKey = (el) => el.getAttribute("key"); + let noop = () => { + }; + let context = { + key: options.key || defaultGetKey, + lookahead: options.lookahead || false, + updating: options.updating || noop, + updated: options.updated || noop, + removing: options.removing || noop, + removed: options.removed || noop, + adding: options.adding || noop, + added: options.added || noop + }; + context.patch = function(from, to) { + if (context.differentElementNamesTypesOrKeys(from, to)) { + return context.swapElements(from, to); } let updateChildrenOnly = false; - if (shouldSkip(updating, from2, to, () => updateChildrenOnly = true)) + let skipChildren = false; + let skipUntil = (predicate) => context.skipUntilCondition = predicate; + if (shouldSkipChildren(context.updating, () => skipChildren = true, skipUntil, from, to, () => updateChildrenOnly = true)) return; - if (from2.nodeType === 1 && window.Alpine) { - window.Alpine.cloneNode(from2, to); - if (from2._x_teleport && to._x_teleport) { - patch(from2._x_teleport, to._x_teleport); + if (from.nodeType === 1 && window.Alpine) { + window.Alpine.cloneNode(from, to); + if (from._x_teleport && to._x_teleport) { + context.patch(from._x_teleport, to._x_teleport); } } if (textOrComment(to)) { - patchNodeValue(from2, to); - updated(from2, to); + context.patchNodeValue(from, to); + context.updated(from, to); return; } if (!updateChildrenOnly) { - patchAttributes(from2, to); + context.patchAttributes(from, to); } - updated(from2, to); - patchChildren(from2, to); - } - function differentElementNamesTypesOrKeys(from2, to) { - return from2.nodeType != to.nodeType || from2.nodeName != to.nodeName || getKey(from2) != getKey(to); - } - function swapElements(from2, to) { - if (shouldSkip(removing, from2)) + context.updated(from, to); + if (!skipChildren) { + context.patchChildren(from, to); + } + }; + context.differentElementNamesTypesOrKeys = function(from, to) { + return from.nodeType != to.nodeType || from.nodeName != to.nodeName || context.getKey(from) != context.getKey(to); + }; + context.swapElements = function(from, to) { + if (shouldSkip(context.removing, from)) return; let toCloned = to.cloneNode(true); - if (shouldSkip(adding, toCloned)) + if (shouldSkip(context.adding, toCloned)) return; - from2.replaceWith(toCloned); - removed(from2); - added(toCloned); - } - function patchNodeValue(from2, to) { + from.replaceWith(toCloned); + context.removed(from); + context.added(toCloned); + }; + context.patchNodeValue = function(from, to) { let value = to.nodeValue; - if (from2.nodeValue !== value) { - from2.nodeValue = value; + if (from.nodeValue !== value) { + from.nodeValue = value; } - } - function patchAttributes(from2, to) { - if (from2._x_transitioning) + }; + context.patchAttributes = function(from, to) { + if (from._x_transitioning) return; - if (from2._x_isShown && !to._x_isShown) { + if (from._x_isShown && !to._x_isShown) { return; } - if (!from2._x_isShown && to._x_isShown) { + if (!from._x_isShown && to._x_isShown) { return; } - let domAttributes = Array.from(from2.attributes); + let domAttributes = Array.from(from.attributes); let toAttributes = Array.from(to.attributes); for (let i = domAttributes.length - 1; i >= 0; i--) { let name = domAttributes[i].name; if (!to.hasAttribute(name)) { - from2.removeAttribute(name); + if (name === "open" && from.nodeName === "DIALOG" && from.open) { + from.close(); + } else { + from.removeAttribute(name); + } } } for (let i = toAttributes.length - 1; i >= 0; i--) { let name = toAttributes[i].name; let value = toAttributes[i].value; - if (from2.getAttribute(name) !== value) { - from2.setAttribute(name, value); + if (from.getAttribute(name) !== value) { + from.setAttribute(name, value); } } - } - function patchChildren(from2, to) { - let fromKeys = keyToMap(from2.children); + }; + context.patchChildren = function(from, to) { + let fromKeys = context.keyToMap(from.children); let fromKeyHoldovers = {}; let currentTo = getFirstNode(to); - let currentFrom = getFirstNode(from2); + let currentFrom = getFirstNode(from); while (currentTo) { seedingMatchingId(currentTo, currentFrom); - let toKey = getKey(currentTo); - let fromKey = getKey(currentFrom); + let toKey = context.getKey(currentTo); + let fromKey = context.getKey(currentFrom); + if (context.skipUntilCondition) { + let fromDone = !currentFrom || context.skipUntilCondition(currentFrom); + let toDone = !currentTo || context.skipUntilCondition(currentTo); + if (fromDone && toDone) { + context.skipUntilCondition = null; + } else { + if (!fromDone) + currentFrom = currentFrom && getNextSibling(from, currentFrom); + if (!toDone) + currentTo = currentTo && getNextSibling(to, currentTo); + continue; + } + } if (!currentFrom) { if (toKey && fromKeyHoldovers[toKey]) { let holdover = fromKeyHoldovers[toKey]; - from2.appendChild(holdover); + from.appendChild(holdover); currentFrom = holdover; + fromKey = context.getKey(currentFrom); } else { - if (!shouldSkip(adding, currentTo)) { + if (!shouldSkip(context.adding, currentTo)) { let clone = currentTo.cloneNode(true); - from2.appendChild(clone); - added(clone); + from.appendChild(clone); + context.added(clone); } currentTo = getNextSibling(to, currentTo); continue; @@ -6858,7 +8794,7 @@ var require_module_cjs8 = __commonJS({ let nestedIfCount = 0; let fromBlockStart = currentFrom; while (currentFrom) { - let next = getNextSibling(from2, currentFrom); + let next = getNextSibling(from, currentFrom); if (isIf(next)) { nestedIfCount++; } else if (isEnd(next) && nestedIfCount > 0) { @@ -6887,17 +8823,17 @@ var require_module_cjs8 = __commonJS({ let toBlockEnd = currentTo; let fromBlock = new Block(fromBlockStart, fromBlockEnd); let toBlock = new Block(toBlockStart, toBlockEnd); - patchChildren(fromBlock, toBlock); + context.patchChildren(fromBlock, toBlock); continue; } - if (currentFrom.nodeType === 1 && lookahead && !currentFrom.isEqualNode(currentTo)) { + if (currentFrom.nodeType === 1 && context.lookahead && !currentFrom.isEqualNode(currentTo)) { let nextToElementSibling = getNextSibling(to, currentTo); let found = false; while (!found && nextToElementSibling) { if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) { found = true; - currentFrom = addNodeBefore(from2, currentTo, currentFrom); - fromKey = getKey(currentFrom); + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); + fromKey = context.getKey(currentFrom); } nextToElementSibling = getNextSibling(to, nextToElementSibling); } @@ -6905,9 +8841,9 @@ var require_module_cjs8 = __commonJS({ if (toKey !== fromKey) { if (!toKey && fromKey) { fromKeyHoldovers[fromKey] = currentFrom; - currentFrom = addNodeBefore(from2, currentTo, currentFrom); + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); fromKeyHoldovers[fromKey].remove(); - currentFrom = getNextSibling(from2, currentFrom); + currentFrom = getNextSibling(from, currentFrom); currentTo = getNextSibling(to, currentTo); continue; } @@ -6915,6 +8851,7 @@ var require_module_cjs8 = __commonJS({ if (fromKeys[toKey]) { currentFrom.replaceWith(fromKeys[toKey]); currentFrom = fromKeys[toKey]; + fromKey = context.getKey(currentFrom); } } if (toKey && fromKey) { @@ -6923,66 +8860,57 @@ var require_module_cjs8 = __commonJS({ fromKeyHoldovers[fromKey] = currentFrom; currentFrom.replaceWith(fromKeyNode); currentFrom = fromKeyNode; + fromKey = context.getKey(currentFrom); } else { fromKeyHoldovers[fromKey] = currentFrom; - currentFrom = addNodeBefore(from2, currentTo, currentFrom); + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); fromKeyHoldovers[fromKey].remove(); - currentFrom = getNextSibling(from2, currentFrom); + currentFrom = getNextSibling(from, currentFrom); currentTo = getNextSibling(to, currentTo); continue; } } } - let currentFromNext = currentFrom && getNextSibling(from2, currentFrom); - patch(currentFrom, currentTo); + let currentFromNext = currentFrom && getNextSibling(from, currentFrom); + context.patch(currentFrom, currentTo); currentTo = currentTo && getNextSibling(to, currentTo); currentFrom = currentFromNext; } let removals = []; while (currentFrom) { - if (!shouldSkip(removing, currentFrom)) + if (!shouldSkip(context.removing, currentFrom)) removals.push(currentFrom); - currentFrom = getNextSibling(from2, currentFrom); + currentFrom = getNextSibling(from, currentFrom); } while (removals.length) { let domForRemoval = removals.shift(); domForRemoval.remove(); - removed(domForRemoval); + context.removed(domForRemoval); } - } - function getKey(el) { - return el && el.nodeType === 1 && key(el); - } - function keyToMap(els2) { + }; + context.getKey = function(el) { + return el && el.nodeType === 1 && context.key(el); + }; + context.keyToMap = function(els2) { let map = {}; for (let el of els2) { - let theKey = getKey(el); + let theKey = context.getKey(el); if (theKey) { map[theKey] = el; } } return map; - } - function addNodeBefore(parent, node, beforeMe) { - if (!shouldSkip(adding, node)) { + }; + context.addNodeBefore = function(parent, node, beforeMe) { + if (!shouldSkip(context.adding, node)) { let clone = node.cloneNode(true); parent.insertBefore(clone, beforeMe); - added(clone); + context.added(clone); return clone; } return node; - } - assignOptions(options); - fromEl = from; - toEl = typeof toHtml === "string" ? createElement(toHtml) : toHtml; - if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) { - toEl._x_dataStack = window.Alpine.closestDataStack(from); - toEl._x_dataStack && window.Alpine.cloneNode(from, toEl); - } - patch(from, toEl); - fromEl = void 0; - toEl = void 0; - return from; + }; + return context; } morph3.step = () => { }; @@ -6993,6 +8921,11 @@ var require_module_cjs8 = __commonJS({ hook(...args, () => skip = true); return skip; } + function shouldSkipChildren(hook, skipChildren, skipUntil, ...args) { + let skip = false; + hook(...args, () => skip = true, skipChildren, skipUntil); + return skip; + } var patched = false; function createElement(html) { const template = document.createElement("template"); @@ -7058,7 +8991,8 @@ var require_module_cjs8 = __commonJS({ if (!name.includes("@")) { return original.call(this, name, value); } - hostDiv.innerHTML = `<span ${name}="${value}"></span>`; + let escapedValue = value.replace(/&/g, "&").replace(/"/g, """); + hostDiv.innerHTML = `<span ${name}="${escapedValue}"></span>`; let attr = hostDiv.firstElementChild.getAttributeNode(name); hostDiv.firstElementChild.removeAttributeNode(attr); this.setAttributeNode(attr); @@ -7068,13 +9002,16 @@ var require_module_cjs8 = __commonJS({ let fromId = from && from._x_bindings && from._x_bindings.id; if (!fromId) return; + if (!to.setAttribute) + return; to.setAttribute("id", fromId); to.id = fromId; } - function src_default(Alpine19) { - Alpine19.morph = morph3; + function src_default2(Alpine25) { + Alpine25.morph = morph3; + Alpine25.morphBetween = morphBetween; } - var module_default = src_default; + var module_default2 = src_default2; } }); @@ -7100,13 +9037,13 @@ var require_module_cjs9 = __commonJS({ var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var module_exports = {}; __export(module_exports, { - default: () => module_default, - mask: () => src_default, - stripDown: () => stripDown + default: () => module_default2, + formatInput: () => formatInput, + mask: () => src_default2 }); module.exports = __toCommonJS(module_exports); - function src_default(Alpine19) { - Alpine19.directive("mask", (el, { value, expression }, { effect, evaluateLater, cleanup }) => { + function src_default2(Alpine25) { + Alpine25.directive("mask", (el, { value, expression }, { effect, evaluateLater, cleanup }) => { let templateFn = () => expression; let lastInputValue = ""; queueMicrotask(() => { @@ -7115,7 +9052,7 @@ var require_module_cjs9 = __commonJS({ effect(() => { templateFn = (input) => { let result; - Alpine19.dontAutoEvaluateFunctions(() => { + Alpine25.dontAutoEvaluateFunctions(() => { evaluator((value2) => { result = typeof value2 === "function" ? value2(input) : value2; }, { scope: { @@ -7130,9 +9067,25 @@ var require_module_cjs9 = __commonJS({ } else { processInputValue(el, false); } - if (el._x_model) - el._x_model.set(el.value); - }); + if (el._x_model) { + if (el._x_model.get() !== el.value) { + if (!(el._x_model.get() === null && el.value === "")) { + el._x_model.set(el.value); + } + } + let updater = el._x_forceModelUpdate; + el._x_forceModelUpdate = (value2) => { + value2 = String(value2); + let template = templateFn(value2); + if (template && template !== "false") { + value2 = formatInput(template, value2); + } + lastInputValue = value2; + updater(value2); + el._x_model.set(value2); + }; + } + }); const controller = new AbortController(); cleanup(() => { controller.abort(); @@ -7151,7 +9104,7 @@ var require_module_cjs9 = __commonJS({ return lastInputValue = el2.value; } let setInput = () => { - lastInputValue = el2.value = formatInput(input, template); + lastInputValue = el2.value = formatInput(template, input); }; if (shouldRestoreCursor) { restoreCursorPosition(el2, template, () => { @@ -7161,13 +9114,6 @@ var require_module_cjs9 = __commonJS({ setInput(); } } - function formatInput(input, template) { - if (input === "") - return ""; - let strippedDownInput = stripDown(template, input); - let rebuiltInput = buildUp(template, strippedDownInput); - return rebuiltInput; - } }).before("model"); } function restoreCursorPosition(el, template, callback) { @@ -7175,56 +9121,36 @@ var require_module_cjs9 = __commonJS({ let unformattedValue = el.value; callback(); let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition); - let newPosition = buildUp(template, stripDown(template, beforeLeftOfCursorBeforeFormatting)).length; + let newPosition = formatInput( + template, + beforeLeftOfCursorBeforeFormatting + ).length; el.setSelectionRange(newPosition, newPosition); } - function stripDown(template, input) { - let inputToBeStripped = input; - let output = ""; - let regexes = { - "9": /[0-9]/, - "a": /[a-zA-Z]/, - "*": /[a-zA-Z0-9]/ - }; - let wildcardTemplate = ""; - for (let i = 0; i < template.length; i++) { - if (["9", "a", "*"].includes(template[i])) { - wildcardTemplate += template[i]; - continue; - } - for (let j = 0; j < inputToBeStripped.length; j++) { - if (inputToBeStripped[j] === template[i]) { - inputToBeStripped = inputToBeStripped.slice(0, j) + inputToBeStripped.slice(j + 1); - break; - } - } - } - for (let i = 0; i < wildcardTemplate.length; i++) { - let found = false; - for (let j = 0; j < inputToBeStripped.length; j++) { - if (regexes[wildcardTemplate[i]].test(inputToBeStripped[j])) { - output += inputToBeStripped[j]; - inputToBeStripped = inputToBeStripped.slice(0, j) + inputToBeStripped.slice(j + 1); - found = true; - break; - } - } - if (!found) - break; - } - return output; - } - function buildUp(template, input) { - let clean = Array.from(input); + var regexes = { + "9": /[0-9]/, + "a": /[a-zA-Z]/, + "*": /[a-zA-Z0-9]/ + }; + function formatInput(template, input) { + let templateMark = 0; + let inputMark = 0; let output = ""; - for (let i = 0; i < template.length; i++) { - if (!["9", "a", "*"].includes(template[i])) { - output += template[i]; - continue; + while (templateMark < template.length && inputMark < input.length) { + let templateChar = template[templateMark]; + let inputChar = input[inputMark]; + if (templateChar in regexes) { + if (regexes[templateChar].test(inputChar)) { + output += inputChar; + templateMark++; + } + inputMark++; + } else { + output += templateChar; + templateMark++; + if (templateChar === input[inputMark]) + inputMark++; } - if (clean.length === 0) - break; - output += clean.shift(); } return output; } @@ -7267,7 +9193,7 @@ var require_module_cjs9 = __commonJS({ }); return template; } - var module_default = src_default; + var module_default2 = src_default2; } }); @@ -7313,12 +9239,14 @@ var WeakBag = class { } }; function dispatch(target, name, detail = {}, bubbles = true) { - target.dispatchEvent(new CustomEvent(name, { - detail, - bubbles, - composed: true, - cancelable: true - })); + target.dispatchEvent( + new CustomEvent(name, { + detail, + bubbles, + composed: true, + cancelable: true + }) + ); } function listen(target, name, handler) { target.addEventListener(name, handler); @@ -7342,27 +9270,40 @@ function isPrimitive(subject) { function deepClone(obj) { return JSON.parse(JSON.stringify(obj)); } +function deeplyEqual(a, b) { + return JSON.stringify(a) === JSON.stringify(b); +} +function parsePathSegments(path) { + if (path === "") + return []; + return path.replace(/\[(['"]?)(.+?)\1\]/g, ".$2").replace(/^\./, "").split("."); +} function dataGet(object, key) { if (key === "") return object; - return key.split(".").reduce((carry, i) => { - if (carry === void 0) - return void 0; - return carry[i]; + return parsePathSegments(key).reduce((carry, i) => { + return carry?.[i]; }, object); } function dataSet(object, key, value) { - let segments = key.split("."); + let segments = parsePathSegments(key); if (segments.length === 1) { - return object[key] = value; + return object[segments[0]] = value; } let firstSegment = segments.shift(); let restOfSegments = segments.join("."); + let nextSegment = segments[0]; if (object[firstSegment] === void 0) { object[firstSegment] = {}; } + if (isArray(object[firstSegment]) && isNumeric(nextSegment) && parseInt(nextSegment) > object[firstSegment].length) { + object[firstSegment] = { ...object[firstSegment] }; + } dataSet(object[firstSegment], restOfSegments, value); } +function isNumeric(subject) { + return !isNaN(parseInt(subject)); +} function diff(left, right, diffs = {}, path = "") { if (left === right) return diffs; @@ -7375,6 +9316,11 @@ function diff(left, right, diffs = {}, path = "") { return diffs; } let leftKeys = Object.keys(left); + let rightKeys = Object.keys(right); + if (isObject(left) && leftKeys.some((key, i) => key !== rightKeys[i])) { + diffs[path] = right; + return diffs; + } Object.entries(right).forEach(([key, value]) => { diffs = { ...diffs, ...diff(left[key], right[key], diffs, path === "" ? key : `${path}.${key}`) }; leftKeys = leftKeys.filter((i) => i !== key); @@ -7384,6 +9330,118 @@ function diff(left, right, diffs = {}, path = "") { }); return diffs; } +function diffAndConsolidate(left, right) { + let diffs = {}; + diffRecursive(left, right, "", diffs, left, right); + return diffs; +} +function diffRecursive(left, right, path, diffs, rootLeft, rootRight) { + if (left === right) + return { changed: false, consolidated: false }; + let convertedToObject = false; + let hasNonNumericKeys = (arr) => { + return isArray(arr) && Object.keys(arr).some((k) => isNaN(parseInt(k))); + }; + if (typeof left !== typeof right || isObject(left) && isArray(right) || isArray(left) && isObject(right)) { + if (isArray(left) && left.length === 0 && isObject(right)) { + left = {}; + convertedToObject = true; + } else if ((left === void 0 || left === null) && isObject(right)) { + left = {}; + convertedToObject = true; + } else { + diffs[path] = right; + return { changed: true, consolidated: false }; + } + } + if (isArray(left) && isArray(right) && hasNonNumericKeys(right)) { + if (Object.keys(left).length === 0) { + convertedToObject = true; + } + } + if (isPrimitive(left) || isPrimitive(right)) { + diffs[path] = right; + return { changed: true, consolidated: false }; + } + let leftKeys = Object.keys(left); + let rightKeys = Object.keys(right); + if (leftKeys.length !== rightKeys.length && !convertedToObject) { + if (path === "") { + Object.keys(right).forEach((key) => { + if (!deeplyEqual(left[key], right[key])) { + diffs[key] = right[key]; + } + }); + return { changed: true, consolidated: true }; + } + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + if (isObject(left) && leftKeys.length === rightKeys.length && leftKeys.some((key, i) => key !== rightKeys[i])) { + if (path !== "") { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + } + let keysMatch = leftKeys.every((k) => rightKeys.includes(k)); + if (!keysMatch && !convertedToObject) { + if (path !== "") { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + } + let childDiffs = {}; + let changedCount = 0; + let consolidatedCount = 0; + let totalChildren = rightKeys.length; + rightKeys.forEach((key) => { + let childPath = path === "" ? key : `${path}.${key}`; + let result = diffRecursive(left[key], right[key], childPath, childDiffs, rootLeft, rootRight); + if (result.changed) + changedCount++; + if (result.consolidated) + consolidatedCount++; + }); + if (path !== "" && totalChildren > 1 && changedCount === totalChildren && consolidatedCount === 0 && !convertedToObject) { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + Object.assign(diffs, childDiffs); + return { changed: changedCount > 0, consolidated: consolidatedCount > 0 || convertedToObject }; +} +function diffAndPatchRecursive(left, right, target) { + let leftKeys = new Set(Object.keys(left || {})); + let rightKeys = Object.keys(right); + if (!isArray(target) && [...leftKeys].some((key, i) => key !== rightKeys[i])) { + for (let key of Object.keys(target)) + delete target[key]; + for (let key of rightKeys) + target[key] = right[key]; + return; + } + rightKeys.forEach((key) => { + leftKeys.delete(key); + if (deeplyEqual(left?.[key], right[key])) + return; + if (isObjecty(left?.[key]) && isObjecty(right[key]) && isObjecty(target[key]) && isArray(right[key]) === isArray(target[key])) { + diffAndPatchRecursive(left[key], right[key], target[key]); + } else { + target[key] = right[key]; + } + }); + let removedKeys = [...leftKeys]; + removedKeys.sort((a, b) => { + let aNum = parseInt(a) || 0; + let bNum = parseInt(b) || 0; + return bNum - aNum; + }).forEach((key) => { + if (isArray(target)) { + target.splice(parseInt(key), 1); + } else { + delete target[key]; + } + }); +} function extractData(payload) { let value = isSynthetic(payload) ? payload[0] : payload; let meta = isSynthetic(payload) ? payload[1] : void 0; @@ -7417,13 +9475,41 @@ function getNonce() { nonce = window.livewireScriptConfig["nonce"]; return nonce; } - const elWithNonce = document.querySelector("style[data-livewire-style][nonce]"); + let elWithNonce = document.querySelector("style[data-livewire-style][nonce]"); if (elWithNonce) { nonce = elWithNonce.nonce; return nonce; } return null; } +function replaceNoncesInHtml(html) { + let nonce2 = getNonce(); + if (!nonce2) + return html; + let nonceMatch = html.match(/nonce="([^"]+)"/); + if (!nonceMatch) + return html; + let newNonce = nonceMatch[1]; + if (newNonce === nonce2) + return html; + return html.replaceAll(`nonce="${newNonce}"`, `nonce="${nonce2}"`); +} +function cloneScriptTag(el) { + let script = document.createElement("script"); + script.textContent = el.textContent; + script.async = el.async; + for (let attr of el.attributes) { + if (attr.name === "nonce") { + script.nonce = getNonce() || el.nonce; + } else { + script.setAttribute(attr.name, attr.value); + } + } + return script; +} +function getModuleUrl() { + return document.querySelector("[data-module-url]")?.getAttribute("data-module-url") ?? window.livewireScriptConfig["moduleUrl"] ?? null; +} function getUpdateUri() { return document.querySelector("[data-update-uri]")?.getAttribute("data-update-uri") ?? window.livewireScriptConfig["uri"] ?? null; } @@ -7434,6 +9520,28 @@ function splitDumpFromContent(content) { let dump = content.match(/.*<script>Sfdump\(".+"\)<\/script>/s); return [dump, content.replace(dump, "")]; } +function walkUpwards(el, callback) { + let current = el; + while (current) { + let stop = void 0; + callback(current, { stop: (value) => value === void 0 ? stop = current : stop = value }); + if (stop !== void 0) + return stop; + if (current._x_teleportBack) + current = current._x_teleportBack; + current = current.parentElement; + } +} +function walkBackwards(el, callback) { + let current = el; + while (current) { + let stop = void 0; + callback(current, { stop: (value) => value === void 0 ? stop = current : stop = value }); + if (stop !== void 0) + return stop; + current = current.previousSibling; + } +} // js/features/supportFileUploads.js var uploadManagers = /* @__PURE__ */ new WeakMap(); @@ -7453,10 +9561,12 @@ function handleFileUpload(el, property, component, cleanup) { let cancel = () => el.dispatchEvent(new CustomEvent("livewire-upload-cancel", { bubbles: true, detail: { id: component.id, property } })); let progress = (progressEvent) => { var percentCompleted = Math.round(progressEvent.loaded * 100 / progressEvent.total); - el.dispatchEvent(new CustomEvent("livewire-upload-progress", { - bubbles: true, - detail: { progress: percentCompleted } - })); + el.dispatchEvent( + new CustomEvent("livewire-upload-progress", { + bubbles: true, + detail: { progress: percentCompleted } + }) + ); }; let eventHandler = (e) => { if (e.target.files.length === 0) @@ -7475,6 +9585,9 @@ function handleFileUpload(el, property, component, cleanup) { if (value === null || value === "") { el.value = ""; } + if (el.multiple && Array.isArray(value) && value.length === 0) { + el.value = ""; + } }); let clearFileInputValue = () => { el.value = null; @@ -7512,17 +9625,19 @@ var UploadManager = class { finishCallback, errorCallback, progressCallback, - cancelledCallback + cancelledCallback, + append: false }); } - uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback) { + uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback, append = true) { this.setUpload(name, { files: Array.from(files), multiple: true, finishCallback, errorCallback, progressCallback, - cancelledCallback + cancelledCallback, + append }); } removeUpload(name, tmpFilename, finishCallback) { @@ -7575,7 +9690,7 @@ var UploadManager = class { request.addEventListener("load", () => { if ((request.status + "")[0] === "2") { let paths = retrievePaths(request.response && JSON.parse(request.response)); - this.component.$wire.call("_finishUpload", name, paths, this.uploadBag.first(name).multiple); + this.component.$wire.call("_finishUpload", name, paths, this.uploadBag.first(name).multiple, this.uploadBag.first(name).append); return; } let errors = null; @@ -7584,6 +9699,9 @@ var UploadManager = class { } this.component.$wire.call("_uploadErrored", name, errors, this.uploadBag.first(name).multiple); }); + request.addEventListener("error", () => { + this.component.$wire.call("_uploadErrored", name, null, this.uploadBag.first(name).multiple); + }); this.uploadBag.first(name).request = request; request.send(formData); } @@ -7666,26 +9784,49 @@ function upload(component, name, file, finishCallback = () => { }, cancelledCallback = () => { }) { let uploadManager = getUploadManager(component); - uploadManager.upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback); + uploadManager.upload( + name, + file, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback + ); } function uploadMultiple(component, name, files, finishCallback = () => { }, errorCallback = () => { }, progressCallback = () => { }, cancelledCallback = () => { -}) { +}, append = true) { let uploadManager = getUploadManager(component); - uploadManager.uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback); + uploadManager.uploadMultiple( + name, + files, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback, + append + ); } function removeUpload(component, name, tmpFilename, finishCallback = () => { }, errorCallback = () => { }) { let uploadManager = getUploadManager(component); - uploadManager.removeUpload(name, tmpFilename, finishCallback, errorCallback); + uploadManager.removeUpload( + name, + tmpFilename, + finishCallback, + errorCallback + ); } function cancelUpload(component, name, cancelledCallback = () => { }) { let uploadManager = getUploadManager(component); - uploadManager.cancelUpload(name, cancelledCallback); + uploadManager.cancelUpload( + name, + cancelledCallback + ); } // js/features/supportEntangle.js @@ -7736,6 +9877,9 @@ function cloneIfObject(value) { return typeof value === "object" ? JSON.parse(JSON.stringify(value)) : value; } +// js/$wire.js +var import_alpinejs3 = __toESM(require_module_cjs()); + // js/hooks.js var listeners = []; function on(name, callback) { @@ -7781,23 +9925,303 @@ function runFinishers(finishers, result) { return latest; } -// js/request/modal.js +// js/request/interactions.js +function coordinateNetworkInteractions(messageBus2) { + interceptPartition(({ message, compileRequest }) => { + if (!message.component.isIsolated) + return; + compileRequest([message]); + }); + interceptPartition(({ message, compileRequest }) => { + if (message.component.isLazy && !message.component.hasBeenLazyLoaded && message.component.isLazyIsolated) { + compileRequest([message]); + } + }); + interceptPartition(({ message, compileRequest }) => { + let component = message.component; + let bundledMessages = []; + component.getDeepChildrenWithBindings((child) => { + let action = constructAction(child, "$commit"); + let message2 = createOrAddToOutstandingMessage(action); + bundledMessages.push(message2); + }); + if (bundledMessages.length > 0) { + compileRequest([message, ...bundledMessages]); + } + }); + interceptAction(({ action }) => { + let isRenderless = action?.origin?.directive?.modifiers.includes("renderless"); + if (isRenderless) { + action.metadata.renderless = true; + } + let message = messageBus2.activeMessageMatchingScope(action); + if (message) { + if (message.isAsync() || action.isAsync()) + return; + if (action.metadata.type === "poll") { + return action.cancel(); + } + if (Array.from(message.actions).every((action2) => action2.metadata.type === "poll")) { + return message.cancel(); + } + if (Array.from(message.actions).every((action2) => action2.metadata.type === "model.live")) { + if (action.metadata.type === "model.live") { + return; + } + } + action.defer(); + message.addInterceptor(({ onFinish }) => { + onFinish(() => action.fire()); + }); + } + }); +} + +// js/request/request.js +var MessageRequest = class { + messages = /* @__PURE__ */ new Set(); + controller = new AbortController(); + interceptors = []; + cancelled = false; + uri = null; + payload = null; + options = null; + addMessage(message) { + message.setRequest(this); + this.messages.add(message); + } + getActiveMessages() { + return new Set([...this.messages].filter((message) => !message.isCancelled())); + } + initInterceptors(interceptorRegistry) { + this.interceptors = interceptorRegistry.getRequestInterceptors(this); + this.messages.forEach((message) => { + let messageInterceptors = interceptorRegistry.getMessageInterceptors(message); + message.setInterceptors(messageInterceptors); + }); + this.interceptors.forEach((interceptor) => interceptor.init()); + this.messages.forEach((message) => { + message.getInterceptors().forEach((interceptor) => interceptor.init()); + }); + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.controller.abort(); + this.messages.forEach((message) => { + if (message.isCancelled()) + return; + message.cancel(); + }); + } + hasAllCancelledMessages() { + return this.getActiveMessages().size === 0; + } + isCancelled() { + return this.cancelled; + } + invokeOnSend({ responsePromise }) { + this.interceptors.forEach((interceptor) => interceptor.onSend({ responsePromise })); + this.messages.forEach((message) => message.invokeOnSend()); + } + invokeOnCancel() { + this.interceptors.forEach((interceptor) => interceptor.onCancel()); + } + invokeOnFailure({ error: error2 }) { + this.interceptors.forEach((interceptor) => interceptor.onFailure({ error: error2 })); + this.messages.forEach((message) => message.invokeOnFailure(error2)); + } + invokeOnResponse({ response }) { + this.interceptors.forEach((interceptor) => interceptor.onResponse({ response })); + } + invokeOnStream({ response }) { + this.interceptors.forEach((interceptor) => interceptor.onStream({ response })); + } + invokeOnParsed({ response, body }) { + this.interceptors.forEach((interceptor) => interceptor.onParsed({ response, body })); + } + invokeOnRedirect({ url, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onRedirect({ url, preventDefault })); + } + invokeOnDump({ html, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onDump({ html, preventDefault })); + } + invokeOnError({ response, body, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onError({ response, body, preventDefault })); + this.messages.forEach((message) => message.invokeOnError({ response, body, preventDefault })); + } + invokeOnSuccess({ response, body, json }) { + this.interceptors.forEach((interceptor) => interceptor.onSuccess({ response, body, json })); + } + invokeOnFinish() { + this.interceptors.forEach((interceptor) => interceptor.onFinish()); + } +}; +var PageRequest = class { + controller = new AbortController(); + constructor(uri) { + this.uri = uri; + } + cancel() { + this.controller.abort(); + } + isCancelled() { + return this.controller.signal.aborted; + } +}; + +// js/request/interceptor.js +var MessageInterceptor = class { + onSend = () => { + }; + onCancel = () => { + }; + onFailure = () => { + }; + onError = () => { + }; + onStream = () => { + }; + onSuccess = () => { + }; + onSkipped = () => { + }; + onFinish = () => { + }; + onSync = () => { + }; + onEffect = () => { + }; + onMorph = async () => { + }; + onRender = () => { + }; + constructor(message, callback) { + this.message = message; + this.callback = callback; + this.callback({ + message: this.message, + cancel: () => { + let attachedToMessage = this.message.getInterceptors().includes(this); + if (!attachedToMessage) { + this.onCancel(); + } + this.message.cancel(); + }, + onSend: (callback2) => this.onSend = callback2, + onCancel: (callback2) => this.onCancel = callback2, + onFailure: (callback2) => this.onFailure = callback2, + onError: (callback2) => this.onError = callback2, + onStream: (callback2) => this.onStream = callback2, + onSuccess: (callback2) => this.onSuccess = callback2, + onSkipped: (callback2) => this.onSkipped = callback2, + onFinish: (callback2) => this.onFinish = callback2 + }); + } + init() { + } +}; +var RequestInterceptor = class { + onSend = () => { + }; + onCancel = () => { + }; + onFailure = () => { + }; + onResponse = () => { + }; + onParsed = () => { + }; + onError = () => { + }; + onStream = () => { + }; + onRedirect = () => { + }; + onDump = () => { + }; + onSuccess = () => { + }; + onFinish = () => { + }; + constructor(request, callback) { + this.request = request; + this.callback = callback; + this.callback({ + request: this.request, + onSend: (callback2) => this.onSend = callback2, + onCancel: (callback2) => this.onCancel = callback2, + onFailure: (callback2) => this.onFailure = callback2, + onResponse: (callback2) => this.onResponse = callback2, + onParsed: (callback2) => this.onParsed = callback2, + onError: (callback2) => this.onError = callback2, + onStream: (callback2) => this.onStream = callback2, + onRedirect: (callback2) => this.onRedirect = callback2, + onDump: (callback2) => this.onDump = callback2, + onSuccess: (callback2) => this.onSuccess = callback2, + onFinish: (callback2) => this.onFinish = callback2 + }); + } + init() { + } +}; +var InterceptorRegistry = class { + messageInterceptorCallbacks = []; + messageInterceptorCallbacksByComponent = new WeakBag(); + requestInterceptorCallbacks = []; + addInterceptor(component, callback) { + this.messageInterceptorCallbacksByComponent.add(component, callback); + return () => { + this.messageInterceptorCallbacksByComponent.delete(component, callback); + }; + } + addMessageInterceptor(callback) { + this.messageInterceptorCallbacks.push(callback); + return () => { + this.messageInterceptorCallbacks.splice(this.messageInterceptorCallbacks.indexOf(callback), 1); + }; + } + addRequestInterceptor(callback) { + this.requestInterceptorCallbacks.push(callback); + return () => { + this.requestInterceptorCallbacks.splice(this.requestInterceptorCallbacks.indexOf(callback), 1); + }; + } + getMessageInterceptors(message) { + let callbacks = [ + ...this.messageInterceptorCallbacksByComponent.get(message.component), + ...this.messageInterceptorCallbacks + ]; + return callbacks.map((callback) => { + return new MessageInterceptor(message, callback); + }); + } + getRequestInterceptors(request) { + return this.requestInterceptorCallbacks.map((callback) => { + return new RequestInterceptor(request, callback); + }); + } +}; + +// js/utils/modal.js function showHtmlModal(html) { let page = document.createElement("html"); page.innerHTML = html; - page.querySelectorAll("a").forEach((a) => a.setAttribute("target", "_top")); + page.querySelectorAll("a").forEach( + (a) => a.setAttribute("target", "_top") + ); let modal = document.getElementById("livewire-error"); if (typeof modal != "undefined" && modal != null) { modal.innerHTML = ""; } else { - modal = document.createElement("div"); + modal = document.createElement("dialog"); modal.id = "livewire-error"; - modal.style.position = "fixed"; - modal.style.width = "100vw"; - modal.style.height = "100vh"; - modal.style.padding = "50px"; - modal.style.backgroundColor = "rgba(0, 0, 0, .6)"; - modal.style.zIndex = 2e5; + modal.style.margin = "50px"; + modal.style.width = "calc(100% - 100px)"; + modal.style.height = "calc(100% - 100px)"; + modal.style.borderRadius = "5px"; + modal.style.padding = "0px"; } let iframe = document.createElement("iframe"); iframe.style.backgroundColor = "#17161A"; @@ -7811,341 +10235,1401 @@ function showHtmlModal(html) { iframe.contentWindow.document.write(page.outerHTML); iframe.contentWindow.document.close(); modal.addEventListener("click", () => hideHtmlModal(modal)); - modal.setAttribute("tabindex", 0); - modal.addEventListener("keydown", (e) => { - if (e.key === "Escape") - hideHtmlModal(modal); - }); + modal.addEventListener("close", () => cleanupModal(modal)); + modal.showModal(); modal.focus(); + modal.blur(); } function hideHtmlModal(modal) { + modal.close(); +} +function cleanupModal(modal) { modal.outerHTML = ""; document.body.style.overflow = "visible"; } -// js/request/pool.js -var RequestPool = class { +// js/request/messageBus.js +var componentSymbols = /* @__PURE__ */ new WeakMap(); +var componentIslandSymbols = /* @__PURE__ */ new WeakMap(); +function scopeSymbolFromMessage(message) { + let component = message.component; + let hasAllIslands = Array.from(message.actions).every((action) => action.metadata.island); + if (hasAllIslands) { + let islandName = Array.from(message.actions).map((action) => action.metadata.island.name).sort().join("|"); + let islandSymbols = componentIslandSymbols.get(component); + if (!islandSymbols) { + islandSymbols = { [islandName]: Symbol() }; + componentIslandSymbols.set(component, islandSymbols); + } + if (!islandSymbols[islandName]) { + islandSymbols[islandName] = Symbol(); + } + return islandSymbols[islandName]; + } + if (!componentSymbols.has(component)) { + componentSymbols.set(component, Symbol()); + } + return componentSymbols.get(component); +} +function scopeSymbolFromAction(action) { + let component = action.component; + let isIsland = !!action.metadata.island; + if (isIsland) { + let islandName = action.metadata.island.name; + let islandSymbols = componentIslandSymbols.get(component); + if (!islandSymbols) { + islandSymbols = { [islandName]: Symbol() }; + componentIslandSymbols.set(component, islandSymbols); + } + if (!islandSymbols[islandName]) { + islandSymbols[islandName] = Symbol(); + } + return islandSymbols[islandName]; + } + if (!componentSymbols.has(component)) { + componentSymbols.set(component, Symbol()); + } + return componentSymbols.get(component); +} +var MessageBus = class { + pendingMessages = /* @__PURE__ */ new Set(); + activeMessages = /* @__PURE__ */ new Set(); + bufferingMessages = /* @__PURE__ */ new Set(); constructor() { - this.commits = /* @__PURE__ */ new Set(); } - add(commit) { - this.commits.add(commit); + messageBuffer(message, callback) { + if (this.bufferingMessages.has(message)) { + return; + } + this.bufferingMessages.add(message); + setTimeout(() => { + callback(); + this.bufferingMessages.delete(message); + }, 5); + } + addPendingMessage(message) { + this.pendingMessages.add(message); } - delete(commit) { - this.commits.delete(commit); + clearPendingMessages() { + this.pendingMessages.clear(); } - hasCommitFor(component) { - return !!this.findCommitByComponent(component); + getPendingMessages() { + return Array.from(this.pendingMessages); } - findCommitByComponent(component) { - for (let [idx, commit] of this.commits.entries()) { - if (commit.component === component) - return commit; - } + addActiveMessage(message) { + this.activeMessages.add(message); } - shouldHoldCommit(commit) { - return !commit.isolate; + removeActiveMessage(message) { + this.activeMessages.delete(message); } - empty() { - return this.commits.size === 0; + findScopedPendingMessage(action) { + if (action.isAsync()) + return null; + let actionScope = scopeSymbolFromAction(action); + return Array.from(this.pendingMessages).find((message) => { + if (message.component !== action.component) + return false; + return Array.from(message.actions).some( + (existingAction) => scopeSymbolFromAction(existingAction) === actionScope + ); + }); } - async send() { - this.prepare(); - await sendRequest(this); + activeMessageMatchingScope(action) { + return Array.from(this.activeMessages).find((message) => this.matchesScope(message, action)); } - prepare() { - this.commits.forEach((i) => i.prepare()); + matchesScope(message, action) { + return message.scope === scopeSymbolFromAction(action); } - payload() { - let commitPayloads = []; - let successReceivers = []; - let failureReceivers = []; - this.commits.forEach((commit) => { - let [payload, succeed2, fail2] = commit.toRequestPayload(); - commitPayloads.push(payload); - successReceivers.push(succeed2); - failureReceivers.push(fail2); + allScopedMessages(action) { + return [...Array.from(this.activeMessages), ...Array.from(this.pendingMessages)].filter((message) => { + return this.matchesScope(message, action); }); - let succeed = (components2) => successReceivers.forEach((receiver) => receiver(components2.shift())); - let fail = () => failureReceivers.forEach((receiver) => receiver()); - return [commitPayloads, succeed, fail]; + } + eachPendingMessage(callback) { + Array.from(this.pendingMessages).forEach(callback); } }; -// js/request/commit.js -var Commit = class { +// js/request/message.js +var Message = class { + actions = /* @__PURE__ */ new Set(); + snapshot = null; + updates = null; + calls = null; + payload = null; + responsePayload = null; + pendingReturns = []; + pendingReturnsMeta = {}; + interceptors = []; + cancelled = false; + skipped = false; + request = null; + _scope = null; + get scope() { + if (!this._scope) { + throw new Error("Message scope has not been set yet"); + } + return this._scope; + } + set scope(scope) { + this._scope = scope; + } constructor(component) { this.component = component; - this.isolate = false; - this.calls = []; - this.receivers = []; - this.resolvers = []; - } - addResolver(resolver) { - this.resolvers.push(resolver); } - addCall(method, params, receiver) { - this.calls.push({ - path: "", - method, - params, - handleReturn(value) { - receiver(value); - } + addAction(action) { + let actionsByFingerprint = /* @__PURE__ */ new Map(); + Array.from(this.actions).forEach((action2) => { + actionsByFingerprint.set(action2.fingerprint, action2); }); + if (actionsByFingerprint.has(action.fingerprint)) { + actionsByFingerprint.get(action.fingerprint).addSquashedAction(action); + return; + } + action.message = this; + this.actions.add(action); } - prepare() { - trigger("commit.prepare", { component: this.component }); - } - toRequestPayload() { - let propertiesDiff = diff(this.component.canonical, this.component.ephemeral); - let updates = this.component.mergeQueuedUpdates(propertiesDiff); - let payload = { - snapshot: this.component.snapshotEncoded, - updates, - calls: this.calls.map((i) => ({ - path: i.path, - method: i.method, - params: i.params - })) - }; - let succeedCallbacks = []; - let failCallbacks = []; - let respondCallbacks = []; - let succeed = (fwd) => succeedCallbacks.forEach((i) => i(fwd)); - let fail = () => failCallbacks.forEach((i) => i()); - let respond = () => respondCallbacks.forEach((i) => i()); - let finishTarget = trigger("commit", { - component: this.component, - commit: payload, - succeed: (callback) => { - succeedCallbacks.push(callback); - }, - fail: (callback) => { - failCallbacks.push(callback); - }, - respond: (callback) => { - respondCallbacks.push(callback); - } - }); - let handleResponse = (response) => { - let { snapshot, effects } = response; - respond(); - this.component.mergeNewSnapshot(snapshot, effects, updates); - this.component.processEffects(this.component.effects); - if (effects["returns"]) { - let returns = effects["returns"]; - let returnHandlerStack = this.calls.map(({ handleReturn }) => handleReturn); - returnHandlerStack.forEach((handleReturn, index) => { - handleReturn(returns[index]); - }); - } - let parsedSnapshot = JSON.parse(snapshot); - finishTarget({ snapshot: parsedSnapshot, effects }); - this.resolvers.forEach((i) => i()); - succeed(response); - }; - let handleFailure = () => { - respond(); - fail(); - }; - return [payload, handleResponse, handleFailure]; + removeAction(action) { + this.actions.delete(action); + action.message = null; + if (this.actions.size === 0) { + this.cancel(); + } } -}; - -// js/request/bus.js -var CommitBus = class { - constructor() { - this.commits = /* @__PURE__ */ new Set(); - this.pools = /* @__PURE__ */ new Set(); + getActions() { + return Array.from(this.actions); } - add(component) { - let commit = this.findCommitOr(component, () => { - let newCommit = new Commit(component); - this.commits.add(newCommit); - return newCommit; + hasActionForIsland(island) { + return this.getActions().some((action) => { + return action.metadata.island?.name === island.metadata.name; }); - bufferPoolingForFiveMs(commit, () => { - let pool = this.findPoolWithComponent(commit.component); - if (!pool) { - this.createAndSendNewPool(); - } + } + hasActionForComponent() { + return this.getActions().some((action) => { + return action.metadata.island === void 0; }); - return commit; } - findCommitOr(component, callback) { - for (let [idx, commit] of this.commits.entries()) { - if (commit.component === component) { - return commit; - } - } - return callback(); + setInterceptors(interceptors2) { + this.interceptors = interceptors2; + } + addInterceptor(callback) { + let interceptor = new MessageInterceptor(this, callback); + this.interceptors.push(interceptor); + interceptor.init(); } - findPoolWithComponent(component) { - for (let [idx, pool] of this.pools.entries()) { - if (pool.hasCommitFor(component)) - return pool; + setRequest(request) { + this.request = request; + } + getInterceptors() { + return this.interceptors; + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.invokeOnCancel(); + if (this.request?.hasAllCancelledMessages()) { + this.request.cancel(); } } - createAndSendNewPool() { - trigger("commit.pooling", { commits: this.commits }); - let pools = this.corraleCommitsIntoPools(); - this.commits.clear(); - trigger("commit.pooled", { pools }); - pools.forEach((pool) => { - if (pool.empty()) - return; - this.pools.add(pool); - pool.send().then(() => { - this.pools.delete(pool); - this.sendAnyQueuedCommits(); - }); + isCancelled() { + return this.cancelled; + } + markSkipped() { + this.skipped = true; + } + isSkipped() { + return this.skipped; + } + isAsync() { + return Array.from(this.actions).every((action) => action.isAsync()); + } + invokeOnSend() { + this.interceptors.forEach((interceptor) => interceptor.onSend({ + payload: this.payload + })); + Array.from(this.actions).forEach((action, index) => { + let call = this.calls[index]; + action.invokeOnSend({ call }); }); } - corraleCommitsIntoPools() { - let pools = /* @__PURE__ */ new Set(); - for (let [idx, commit] of this.commits.entries()) { - let hasFoundPool = false; - pools.forEach((pool) => { - if (pool.shouldHoldCommit(commit)) { - pool.add(commit); - hasFoundPool = true; - } + invokeOnCancel() { + this.interceptors.forEach((interceptor) => interceptor.onCancel()); + this.rejectActionPromises({ status: null, body: null, json: null, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnFailure(error2) { + this.interceptors.forEach((interceptor) => interceptor.onFailure({ error: error2 })); + Array.from(this.actions).forEach((action) => action.invokeOnFailure({ error: error2 })); + this.rejectActionPromises({ status: null, body: null, json: null, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnError({ response, body, preventDefault }) { + this.interceptors.forEach((interceptor) => interceptor.onError({ + response, + body, + preventDefault + })); + Array.from(this.actions).forEach((action) => action.invokeOnError({ response, body, preventDefault })); + let json = null; + try { + json = JSON.parse(body); + } catch (e) { + } + this.rejectActionPromises({ status: response.status, body, json, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnStream({ json }) { + this.interceptors.forEach((interceptor) => interceptor.onStream({ json })); + } + invokeOnSuccess() { + this.interceptors.forEach((interceptor) => { + interceptor.onSuccess({ + payload: this.responsePayload, + onSync: (callback) => interceptor.onSync = callback, + onEffect: (callback) => interceptor.onEffect = callback, + onMorph: (callback) => interceptor.onMorph = callback, + onRender: (callback) => interceptor.onRender = callback }); - if (!hasFoundPool) { - let newPool = new RequestPool(); - newPool.add(commit); - pools.add(newPool); - } - } - return pools; + }); + this.pendingReturns = this.responsePayload.effects["returns"] || []; + this.pendingReturnsMeta = this.responsePayload.effects["returnsMeta"] || {}; } - sendAnyQueuedCommits() { - if (this.commits.size > 0) { - this.createAndSendNewPool(); - } + invokeOnSync() { + this.interceptors.forEach((interceptor) => interceptor.onSync()); } -}; -var buffersByCommit = /* @__PURE__ */ new WeakMap(); -function bufferPoolingForFiveMs(commit, callback) { - if (buffersByCommit.has(commit)) - return; - buffersByCommit.set(commit, setTimeout(() => { - callback(); - buffersByCommit.delete(commit); - }, 5)); -} - -// js/request/index.js -var commitBus = new CommitBus(); -async function requestCommit(component) { - let commit = commitBus.add(component); - let promise = new Promise((resolve) => { - commit.addResolver(resolve); - }); - promise.commit = commit; - return promise; -} -async function requestCall(component, method, params) { - let commit = commitBus.add(component); - let promise = new Promise((resolve) => { - commit.addCall(method, params, (value) => resolve(value)); - }); - promise.commit = commit; - return promise; -} -async function sendRequest(pool) { - let [payload, handleSuccess, handleFailure] = pool.payload(); - let options = { - method: "POST", - body: JSON.stringify({ - _token: getCsrfToken(), - components: payload - }), - headers: { - "Content-type": "application/json", - "X-Livewire": "" - } - }; - let succeedCallbacks = []; - let failCallbacks = []; - let respondCallbacks = []; - let succeed = (fwd) => succeedCallbacks.forEach((i) => i(fwd)); - let fail = (fwd) => failCallbacks.forEach((i) => i(fwd)); - let respond = (fwd) => respondCallbacks.forEach((i) => i(fwd)); - let finishProfile = trigger("request.profile", options); - let updateUri = getUpdateUri(); - trigger("request", { - url: updateUri, - options, - payload: options.body, - respond: (i) => respondCallbacks.push(i), - succeed: (i) => succeedCallbacks.push(i), - fail: (i) => failCallbacks.push(i) - }); - let response; - try { - response = await fetch(updateUri, options); - } catch (e) { - finishProfile({ content: "{}", failed: true }); - handleFailure(); - fail({ - status: 503, - content: null, - preventDefault: () => { + invokeOnEffect() { + this.interceptors.forEach((interceptor) => interceptor.onEffect()); + } + async invokeOnMorph() { + await Promise.all( + this.interceptors.map((interceptor) => interceptor.onMorph()) + ); + } + invokeOnRender() { + this.interceptors.forEach((interceptor) => interceptor.onRender()); + } + invokeOnFinish() { + this.interceptors.forEach((interceptor) => interceptor.onFinish()); + } + invokeOnSkipped() { + this.interceptors.forEach((interceptor) => interceptor.onSkipped()); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + } + rejectActionPromises({ status, body, json, errors }) { + Array.from(this.actions).forEach((action) => { + action.rejectPromise({ status, body, json, errors }); + }); + } + resolveActionPromises(returns, returnsMeta) { + let resolvedActions = /* @__PURE__ */ new Set(); + returns.forEach((value, index) => { + let action = Array.from(this.actions)[index]; + if (!action) + return; + let meta = returnsMeta[index]; + if (meta?.errors) { + action.rejectPromise({ status: 422, body: null, json: null, errors: meta.errors }); + action.invokeOnFinish(); + resolvedActions.add(action); + return; } + if (meta?.status) { + action.rejectPromise({ status: meta.status, body: null, json: null, errors: null }); + action.invokeOnFinish(); + resolvedActions.add(action); + return; + } + action.invokeOnSuccess(value); + action.resolvePromise(value); + action.invokeOnFinish(); + resolvedActions.add(action); }); - return; + Array.from(this.actions).forEach((action) => { + if (resolvedActions.has(action)) + return; + action.invokeOnSuccess(void 0); + action.resolvePromise(); + action.invokeOnFinish(); + }); + } +}; + +// js/request/action.js +var Action = class { + squashedActions = /* @__PURE__ */ new Set(); + onSendCallbacks = []; + onCancelCallbacks = []; + onSuccessCallbacks = []; + onErrorCallbacks = []; + onFailureCallbacks = []; + onFinishCallbacks = []; + message = null; + cancelled = false; + deferred = false; + _fire = null; + constructor(component, name, params = [], metadata = {}, origin = null) { + this.component = component; + this.name = name; + this.params = params; + this.metadata = metadata; + this.origin = origin; + this.promise = new Promise((resolve, reject) => { + this.promiseResolution = { resolve, reject }; + }); + this.promise._livewireAction = this; + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.invokeOnCancel(); + this.invokeOnFinish(); + this.rejectPromise({ status: null, body: null, json: null, errors: null }); + this.squashedActions.forEach((action) => action.cancel()); + if (this.message) { + this.message.removeAction(this); + } + } + isCancelled() { + return this.cancelled; + } + defer() { + this.deferred = true; + } + isDeferred() { + return this.deferred; + } + fire() { + if (this._fire) { + this._fire(this); + } + } + get fingerprint() { + let componentId = this.component.id; + let name = this.name; + let params = JSON.stringify(this.params); + let metadata = JSON.stringify(this.metadata); + let bytes = new TextEncoder().encode(componentId + name + params + metadata); + let binary = ""; + let chunkSize = 8192; + for (let i = 0; i < bytes.length; i += chunkSize) { + binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize)); + } + return window.btoa(binary); + } + isAsync() { + let asyncMethods = this.component.snapshot.memo?.async || []; + let methodIsMarkedAsync = asyncMethods.includes(this.name); + let actionIsAsync = this.origin?.directive?.modifiers.includes("async") || !!this.metadata.async; + return methodIsMarkedAsync || actionIsAsync; + } + isJson() { + let jsonMethods = this.component.snapshot.memo?.json || []; + return jsonMethods.includes(this.name); + } + addInterceptor(callback) { + callback({ + action: this, + onSend: (cb) => this.onSendCallbacks.push(cb), + onCancel: (cb) => this.onCancelCallbacks.push(cb), + onSuccess: (cb) => this.onSuccessCallbacks.push(cb), + onError: (cb) => this.onErrorCallbacks.push(cb), + onFailure: (cb) => this.onFailureCallbacks.push(cb), + onFinish: (cb) => this.onFinishCallbacks.push(cb) + }); + } + invokeOnSend({ call }) { + this.onSendCallbacks.forEach((cb) => cb({ call })); + this.squashedActions.forEach((action) => action.invokeOnSend({ call })); + } + invokeOnCancel() { + this.onCancelCallbacks.forEach((cb) => cb()); + this.squashedActions.forEach((action) => action.invokeOnCancel()); + } + invokeOnSuccess(result) { + this.onSuccessCallbacks.forEach((cb) => cb(result)); + this.squashedActions.forEach((action) => action.invokeOnSuccess(result)); + } + invokeOnError({ response, body, preventDefault }) { + this.onErrorCallbacks.forEach((cb) => cb({ response, body, preventDefault })); + this.squashedActions.forEach((action) => action.invokeOnError({ response, body, preventDefault })); + } + invokeOnFailure({ error: error2 }) { + this.onFailureCallbacks.forEach((cb) => cb({ error: error2 })); + this.squashedActions.forEach((action) => action.invokeOnFailure({ error: error2 })); + } + invokeOnFinish() { + this.onFinishCallbacks.forEach((cb) => cb()); + this.squashedActions.forEach((action) => action.invokeOnFinish()); } - let mutableObject = { - status: response.status, - response + mergeMetadata(metadata) { + this.metadata = { ...this.metadata, ...metadata }; + } + rejectPromise(error2) { + this.squashedActions.forEach((action) => action.rejectPromise(error2)); + this.promiseResolution.reject(error2); + } + addSquashedAction(action) { + this.squashedActions.add(action); + } + resolvePromise(value) { + this.squashedActions.forEach((action) => action.resolvePromise(value)); + this.promiseResolution.resolve(value); + } +}; + +// js/request/legacy.js +function registerLegacyEventSupport(interceptRequest2, interceptMessage2) { + interceptRequest2(({ + request, + onFailure, + onResponse, + onError, + onSuccess + }) => { + let respondCallbacks = []; + let succeedCallbacks = []; + let failCallbacks = []; + trigger("request", { + url: request.uri, + options: request.options, + payload: request.options.body, + respond: (i) => respondCallbacks.push(i), + succeed: (i) => succeedCallbacks.push(i), + fail: (i) => failCallbacks.push(i) + }); + onResponse(({ response }) => { + respondCallbacks.forEach((callback) => callback({ + status: response.status, + response + })); + }); + onSuccess(({ response, json }) => { + succeedCallbacks.forEach((callback) => callback({ + status: response.status, + json + })); + }); + onFailure(({ error: error2 }) => { + failCallbacks.forEach((callback) => callback({ + status: 503, + content: null, + preventDefault: () => { + } + })); + }); + onError(({ response, body, preventDefault }) => { + failCallbacks.forEach((callback) => callback({ + status: response.status, + content: body, + preventDefault + })); + }); + }); + interceptMessage2(({ + message, + onCancel, + onError, + onSuccess, + onFinish + }) => { + let respondCallbacks = []; + let succeedCallbacks = []; + let failCallbacks = []; + trigger("commit", { + component: message.component, + commit: message.payload, + respond: (callback) => { + respondCallbacks.push(callback); + }, + succeed: (callback) => { + succeedCallbacks.push(callback); + }, + fail: (callback) => { + failCallbacks.push(callback); + } + }); + onFinish(() => { + respondCallbacks.forEach((callback) => callback()); + }); + onSuccess(({ payload, onSync, onMorph, onRender }) => { + onRender(() => { + succeedCallbacks.forEach((callback) => callback({ + snapshot: payload.snapshot, + effects: payload.effects + })); + }); + }); + onError(() => { + failCallbacks.forEach((callback) => callback()); + }); + onCancel(() => { + failCallbacks.forEach((callback) => callback()); + }); + }); +} + +// js/request/index.js +var outstandingActionOrigin = null; +var outstandingActionMetadata = {}; +var outstandingActionInterceptors = []; +var interceptors = new InterceptorRegistry(); +var messageBus = new MessageBus(); +var actionInterceptors = []; +var partitionInterceptors = []; +var sessionExpired = false; +function sessionIsExpired() { + return sessionExpired; +} +function setNextActionOrigin(origin) { + outstandingActionOrigin = origin; +} +function setNextActionMetadata(metadata) { + outstandingActionMetadata = metadata; +} +function setNextActionInterceptor(callback) { + outstandingActionInterceptors.push(callback); +} +function interceptAction(callback) { + actionInterceptors.push(callback); + return () => { + actionInterceptors.splice(actionInterceptors.indexOf(callback), 1); }; - respond(mutableObject); - response = mutableObject.response; - let content = await response.text(); - if (!response.ok) { - finishProfile({ content: "{}", failed: true }); - let preventDefault = false; - handleFailure(); - fail({ - status: response.status, - content, - preventDefault: () => preventDefault = true - }); - if (preventDefault) +} +function interceptMessage(callback) { + return interceptors.addMessageInterceptor(callback); +} +function interceptRequest(callback) { + return interceptors.addRequestInterceptor(callback); +} +function interceptPartition(callback) { + partitionInterceptors.push(callback); + return () => { + partitionInterceptors.splice(partitionInterceptors.indexOf(callback), 1); + }; +} +function interceptComponentAction(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptAction(({ action, ...rest }) => { + if (action.component !== component) return; - if (response.status === 419) { - handlePageExpiry(); + if (actionName && action.name !== actionName) + return; + callback({ action, ...rest }); + }); +} +function interceptComponentMessage(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptors.addInterceptor(component, ({ message, ...rest }) => { + if (actionName) { + let hasAction = Array.from(message.actions).some((a) => a.name === actionName); + if (!hasAction) + return; } - return showFailureModal(content); + callback({ message, ...rest }); + }); +} +function interceptComponentRequest(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptRequest(({ request, ...rest }) => { + let matchingMessages = Array.from(request.messages).filter((m) => { + if (m.component !== component) + return false; + if (actionName) { + return Array.from(m.actions).some((a) => a.name === actionName); + } + return true; + }); + if (matchingMessages.length === 0) + return; + callback({ request, ...rest }); + }); +} +interceptMessage(({ message, onFinish }) => { + messageBus.addActiveMessage(message); + onFinish(() => messageBus.removeActiveMessage(message)); +}); +queueMicrotask(() => { + coordinateNetworkInteractions(messageBus); +}); +function fireAction(component, method, params = [], metadata = {}) { + if (component.__isWireProxy) + component = component.__instance; + let action = constructAction(component, method, params, metadata); + actionInterceptors.forEach((callback) => { + callback({ + action, + onSend: (cb) => action.onSendCallbacks.push(cb), + onCancel: (cb) => action.onCancelCallbacks.push(cb), + onSuccess: (cb) => action.onSuccessCallbacks.push(cb), + onError: (cb) => action.onErrorCallbacks.push(cb), + onFailure: (cb) => action.onFailureCallbacks.push(cb), + onFinish: (cb) => action.onFinishCallbacks.push(cb) + }); + }); + if (action.isCancelled() || action.isDeferred()) + return action.promise; + return fireActionInstance(action); +} +function constructAction(component, method, params, metadata) { + let origin = outstandingActionOrigin; + let pendingInterceptors = outstandingActionInterceptors; + outstandingActionOrigin = null; + outstandingActionInterceptors = []; + metadata = { + ...metadata, + ...outstandingActionMetadata + }; + outstandingActionMetadata = {}; + let action = new Action(component, method, params, metadata, origin); + action._fire = fireActionInstance; + pendingInterceptors.forEach((callback) => action.addInterceptor(callback)); + return action; +} +function fireActionInstance(action) { + let message = createOrAddToOutstandingMessage(action); + messageBus.messageBuffer(message, () => { + sendMessages(); + }); + return action.promise; +} +function createOrAddToOutstandingMessage(action) { + let message = messageBus.findScopedPendingMessage(action); + if (!message) + message = new Message(action.component); + message.addAction(action); + messageBus.addPendingMessage(message); + return message; +} +function sendMessages() { + let requests = /* @__PURE__ */ new Set(); + messageBus.eachPendingMessage((message) => { + partitionInterceptors.forEach((callback) => { + callback({ + message, + compileRequest: (messages2) => { + let existingRequest = Array.from(requests).find( + (request2) => messages2.some((message2) => request2.messages.has(message2)) + ); + if (existingRequest) { + messages2.forEach((message2) => { + if (!existingRequest.messages.has(message2)) { + existingRequest.addMessage(message2); + } + }); + return existingRequest; + } + let request = new MessageRequest(); + messages2.forEach((message2) => request.addMessage(message2)); + requests.add(request); + return request; + } + }); + }); + }); + let messages = messageBus.getPendingMessages(); + messageBus.clearPendingMessages(); + for (let message of messages) { + if (Array.from(requests).some((request) => request.messages.has(message))) { + continue; + } + let hasFoundRequest = false; + requests.forEach((request) => { + if (!hasFoundRequest) { + let hasMessageForSameComponent = Array.from(request.messages).some((m) => m.component === message.component); + if (hasMessageForSameComponent) + return; + request.addMessage(message); + hasFoundRequest = true; + } + }); + if (!hasFoundRequest) { + let request = new MessageRequest(); + request.addMessage(message); + requests.add(request); + } + } + requests.forEach((request) => { + request.messages.forEach((message) => { + message.snapshot = message.component.getEncodedSnapshotWithLatestChildrenMergedIn(); + message.updates = message.component.getUpdates(); + message.calls = Array.from(message.actions).map((i) => ({ + method: i.name, + params: i.params, + metadata: i.metadata + })); + message.payload = { + snapshot: message.snapshot, + updates: message.updates, + calls: message.calls + }; + }); + }); + requests.forEach((request) => { + request.messages.forEach((message) => { + message.scope = scopeSymbolFromMessage(message); + }); + }); + requests.forEach((request) => { + request.uri = getUpdateUri(); + Object.defineProperty(request, "payload", { + get() { + return { + _token: getCsrfToken(), + components: Array.from(request.messages, (i) => i.payload) + }; + } + }); + let cachedOptions = null; + Object.defineProperty(request, "options", { + get() { + if (cachedOptions) + return cachedOptions; + cachedOptions = { + method: "POST", + body: JSON.stringify(request.payload), + headers: { + "Content-type": "application/json", + "X-Livewire": "1" + }, + signal: request.controller.signal + }; + return cachedOptions; + } + }); + }); + requests.forEach((request) => { + request.initInterceptors(interceptors); + if (request.hasAllCancelledMessages()) { + request.cancel(); + } + sendRequest(request, { + send: ({ responsePromise }) => { + request.invokeOnSend({ responsePromise }); + }, + failure: ({ error: error2 }) => { + request.invokeOnFailure({ error: error2 }); + }, + finish: () => { + request.invokeOnFinish(); + }, + response: ({ response }) => { + request.invokeOnResponse({ response }); + }, + stream: async ({ response }) => { + request.invokeOnStream({ response }); + let finalResponse = ""; + try { + finalResponse = await interceptStreamAndReturnFinalResponse(response, (json) => { + let componentId = json.id; + request.messages.forEach((message) => { + if (message.component.id === componentId) { + message.invokeOnStream({ json }); + } + }); + trigger("stream", json); + }); + } catch (e) { + request.cancel(); + throw e; + } + return finalResponse; + }, + parsed: ({ response, responseBody }) => { + request.invokeOnParsed({ response, body: responseBody }); + }, + error: ({ response, responseBody }) => { + let preventDefault = false; + request.invokeOnError({ response, body: responseBody, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + if (response.status === 419) { + if (sessionExpired) + return; + sessionExpired = true; + confirm( + "This page has expired.\nWould you like to refresh the page?" + ) && window.location.reload(); + return; + } + if (response.aborted) + return; + showHtmlModal(responseBody); + }, + redirect: (url) => { + let preventDefault = false; + request.invokeOnRedirect({ url, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + window.location.href = url; + }, + dump: (html) => { + let preventDefault = false; + request.invokeOnDump({ html, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + showHtmlModal(html); + }, + success: async ({ response, responseBody, responseJson }) => { + request.invokeOnSuccess({ response, body: responseBody, json: responseJson }); + await triggerAsync("payload.intercept", responseJson); + let messageResponsePayloads = responseJson.components; + request.messages.forEach((message) => { + messageResponsePayloads.forEach((payload) => { + if (message.isCancelled()) + return; + if (payload.skip) { + if (payload.id === message.component.id) { + message.responsePayload = payload; + message.markSkipped(); + message.invokeOnSkipped(); + message.resolveActionPromises([], []); + message.invokeOnFinish(); + } + return; + } + let { snapshot: snapshotEncoded, effects } = payload; + let snapshot = JSON.parse(snapshotEncoded); + if (snapshot.memo.id === message.component.id) { + message.responsePayload = { snapshot, effects }; + message.invokeOnSuccess(); + if (message.isCancelled()) + return; + Alpine.transaction(async () => { + message.component.mergeNewSnapshot(snapshotEncoded, effects, message.updates); + message.invokeOnSync(); + if (message.isCancelled()) + return; + message.component.processEffects(effects, request); + message.invokeOnEffect(); + if (message.isCancelled()) + return; + await message.invokeOnMorph(); + }).then(() => { + if (!message.isCancelled()) { + message.resolveActionPromises( + message.pendingReturns, + message.pendingReturnsMeta + ); + message.invokeOnFinish(); + } + requestAnimationFrame(() => { + if (message.isCancelled()) + return; + message.invokeOnRender(); + }); + }); + } + }); + }); + } + }); + }); +} +async function sendRequest(request, handlers) { + let response; + try { + if (request.isCancelled()) + return; + let responsePromise = fetch(request.uri, request.options); + if (request.isCancelled()) + return; + handlers.send({ responsePromise }); + response = await responsePromise; + } catch (e) { + if (request.isCancelled()) + return; + handlers.failure({ error: e }); + handlers.finish(); + return; + } + handlers.response({ response }); + let responseBody = null; + if (response.headers.has("X-Livewire-Stream")) { + responseBody = await handlers.stream({ response }); + } else { + responseBody = await response.text(); + } + if (request.isCancelled()) + return; + handlers.parsed({ response, responseBody }); + if (!response.ok) { + handlers.error({ response, responseBody }); + handlers.finish(); + return; } if (response.redirected) { - window.location.href = response.url; + handlers.redirect(response.url); } - if (contentIsFromDump(content)) { + if (contentIsFromDump(responseBody)) { let dump; - [dump, content] = splitDumpFromContent(content); - showHtmlModal(dump); - finishProfile({ content: "{}", failed: true }); + [dump, responseBody] = splitDumpFromContent(responseBody); + handlers.dump(dump); + } + let responseJson = null; + try { + responseJson = JSON.parse(responseBody); + } catch (e) { + console.error(e); + handlers.error({ response, responseBody }); + handlers.finish(); + return; + } + handlers.success({ response, responseBody, responseJson }); + handlers.finish(); +} +async function interceptStreamAndReturnFinalResponse(response, callback) { + let reader = response.body.getReader(); + let remainingResponse = ""; + while (true) { + let { done, value: chunk } = await reader.read(); + let decoder = new TextDecoder(); + let output = decoder.decode(chunk); + let [streams, remaining] = extractStreamObjects(remainingResponse + output); + streams.forEach((stream) => { + callback(stream); + }); + remainingResponse = remaining; + if (done) + return remainingResponse; + } +} +function extractStreamObjects(raw) { + let regex = /({"stream":true.*?"endStream":true})/g; + let matches = raw.match(regex); + let parsed = []; + if (matches) { + for (let i = 0; i < matches.length; i++) { + parsed.push(JSON.parse(matches[i]).body); + } + } + let remaining = raw.replace(regex, ""); + return [parsed, remaining]; +} +async function sendNavigateRequest(uri, callback, errorCallback) { + let request = new PageRequest(uri); + let options = { + headers: { + "X-Livewire-Navigate": "1" + }, + signal: request.controller.signal + }; + trigger("navigate.request", { + uri, + options + }); + let response; + try { + response = await fetch(uri, options); + let destination = getDestination(uri, response); + let html = await response.text(); + let status = response.status; + callback(html, destination, status); + } catch (error2) { + errorCallback(error2); + throw error2; + } +} +function getDestination(uri, response) { + let destination = createUrlObjectFromString(uri); + let finalDestination = createUrlObjectFromString(response.url); + if (destination.pathname + destination.search === finalDestination.pathname + finalDestination.search) { + finalDestination.hash = destination.hash; + } + return finalDestination; +} +function createUrlObjectFromString(urlString) { + return urlString !== null && new URL(urlString, document.baseURI); +} +registerLegacyEventSupport(interceptRequest, interceptMessage); + +// js/features/supportErrors.js +var import_alpinejs2 = __toESM(require_module_cjs()); +function getErrorsObject(component) { + let state = component.__errorsState ??= import_alpinejs2.default.reactive({ + clientErrors: null + }); + component.__lastErrorsSnapshot ??= component.snapshot; + return { + messages() { + if (component.__lastErrorsSnapshot !== component.snapshot) { + state.clientErrors = null; + component.__lastErrorsSnapshot = component.snapshot; + } + return state.clientErrors ??= component.snapshot.memo.errors; + }, + keys() { + return Object.keys(this.messages()); + }, + has(...keys) { + if (this.isEmpty()) + return false; + if (keys.length === 0 || keys.length === 1 && keys[0] == null) + return this.any(); + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + for (let key of keys) { + if (this.first(key) === "") + return false; + } + return true; + }, + hasAny(keys) { + if (this.isEmpty()) + return false; + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + for (let key of keys) { + if (this.has(key)) + return true; + } + return false; + }, + missing(...keys) { + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + return !this.hasAny(keys); + }, + first(key = null) { + let messages = key === null ? this.all() : this.get(key); + let firstMessage = messages.length > 0 ? messages[0] : ""; + return Array.isArray(firstMessage) ? firstMessage[0] : firstMessage; + }, + get(key) { + return this.messages()[key] || []; + }, + all() { + return Object.values(this.messages()).flat(); + }, + isEmpty() { + return !this.any(); + }, + isNotEmpty() { + return this.any(); + }, + any() { + return Object.keys(this.messages()).length > 0; + }, + count() { + return Object.values(this.messages()).reduce((total, array) => { + return total + array.length; + }, 0); + }, + clear(field = null) { + if (field === null) { + state.clientErrors = {}; + } else { + let errors = { ...state.clientErrors ?? component.snapshot.memo.errors }; + delete errors[field]; + state.clientErrors = errors; + } + } + }; +} + +// js/features/supportRefs.js +function findRefEl(component, name) { + let refEl = component.el.querySelector(`[wire\\:ref="${name}"]`); + if (!refEl) + return console.error(`Ref "${name}" not found in component "${component.id}"`); + return refEl; +} + +// js/directives.js +var customDirectiveNames = /* @__PURE__ */ new Set(); +function matchesForLivewireDirective(attributeName) { + return attributeName.match(new RegExp("wire:")); +} +function extractDirective(el, name) { + let [value, ...modifiers] = name.replace(new RegExp("wire:"), "").split("."); + return new Directive(value, modifiers, name, el); +} +function directive(name, callback) { + if (customDirectiveNames.has(name)) + return; + customDirectiveNames.add(name); + on("directive.init", ({ el, component, directive: directive2, cleanup }) => { + if (directive2.value === name) { + callback({ + el, + directive: directive2, + component, + $wire: component.$wire, + cleanup + }); + } + }); +} +function globalDirective(name, callback) { + if (customDirectiveNames.has(name)) + return; + customDirectiveNames.add(name); + on("directive.global.init", ({ el, directive: directive2, cleanup }) => { + if (directive2.value === name) { + callback({ el, directive: directive2, cleanup }); + } + }); +} +function getDirectives(el) { + return new DirectiveManager(el); +} +function customDirectiveHasBeenRegistered(name) { + return customDirectiveNames.has(name); +} +var DirectiveManager = class { + constructor(el) { + this.el = el; + this.directives = this.extractTypeModifiersAndValue(); + } + all() { + return this.directives; + } + has(value) { + return this.directives.map((directive2) => directive2.value).includes(value); + } + missing(value) { + return !this.has(value); + } + get(value) { + return this.directives.find((directive2) => directive2.value === value); + } + extractTypeModifiersAndValue() { + return Array.from(this.el.getAttributeNames().filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(this.el, name))); + } +}; +var Directive = class { + constructor(value, modifiers, rawName, el) { + this.rawName = this.raw = rawName; + this.el = el; + this.eventContext; + this.wire; + this.value = value; + this.modifiers = modifiers; + this.expression = this.el.getAttribute(this.rawName); + } + get method() { + const methods = this.parseOutMethodsAndParams(this.expression); + return methods[0].method; + } + get methods() { + return this.parseOutMethodsAndParams(this.expression); + } + get params() { + const methods = this.parseOutMethodsAndParams(this.expression); + return methods[0].params; + } + parseOutMethodsAndParams(rawMethod) { + let methods = []; + let parsedMethods = this.splitAndParseMethods(rawMethod); + for (let { method, paramString } of parsedMethods) { + let params = []; + if (paramString.length > 0) { + let argumentsToArray = function() { + for (var l = arguments.length, p = new Array(l), k = 0; k < l; k++) { + p[k] = arguments[k]; + } + return [].concat(p); + }; + try { + params = Alpine.evaluate( + document, + "argumentsToArray(" + paramString + ")", + { + scope: { argumentsToArray } + } + ); + } catch (error2) { + console.warn("Failed to parse parameters:", paramString, error2); + params = []; + } + } + methods.push({ method, params }); + } + return methods; + } + splitAndParseMethods(methodExpression) { + let methods = []; + let current = ""; + let parenCount = 0; + let inString = false; + let stringChar = null; + let trimmedExpression = methodExpression.trim(); + for (let i = 0; i < trimmedExpression.length; i++) { + let char = trimmedExpression[i]; + if (!inString) { + if (char === '"' || char === "'") { + inString = true; + stringChar = char; + current += char; + } else if (char === "(") { + parenCount++; + current += char; + } else if (char === ")") { + parenCount--; + current += char; + } else if (char === "," && parenCount === 0) { + methods.push(this.parseMethodCall(current.trim())); + current = ""; + } else { + current += char; + } + } else { + if (char === stringChar && trimmedExpression[i - 1] !== "\\") { + inString = false; + stringChar = null; + } + current += char; + } + } + if (current.trim().length > 0) { + methods.push(this.parseMethodCall(current.trim())); + } + return methods; + } + parseMethodCall(methodString) { + let methodMatch = methodString.match(/^([^(]+)\(/); + if (!methodMatch) { + return { + method: methodString.trim(), + paramString: "" + }; + } + let method = methodMatch[1].trim(); + let paramStart = methodMatch[0].length - 1; + let lastParenIndex = methodString.lastIndexOf(")"); + if (lastParenIndex === -1) { + throw new Error(`Missing closing parenthesis for method "${method}"`); + } + let paramString = methodString.slice(paramStart + 1, lastParenIndex).trim(); + return { + method, + paramString + }; + } +}; + +// js/directives/shared.js +function toggleBooleanStateDirective(el, directive2, isTruthy, cachedDisplay = null) { + isTruthy = directive2.modifiers.includes("remove") ? !isTruthy : isTruthy; + if (directive2.modifiers.includes("class")) { + let classes = directive2.expression.split(" ").filter(String); + if (isTruthy) { + el.classList.add(...classes); + } else { + el.classList.remove(...classes); + } + } else if (directive2.modifiers.includes("attr")) { + if (isTruthy) { + el.setAttribute(directive2.expression, true); + } else { + el.removeAttribute(directive2.expression); + } } else { - finishProfile({ content, failed: false }); + let cache = cachedDisplay ?? window.getComputedStyle(el, null).getPropertyValue("display"); + let display = ["inline", "list-item", "block", "table", "flex", "grid", "inline-flex"].filter((i) => directive2.modifiers.includes(i))[0] || "inline-block"; + display = directive2.modifiers.includes("remove") && !isTruthy ? cache : display; + el.style.display = isTruthy ? display : "none"; + } +} + +// js/directives/wire-dirty.js +var refreshDirtyStatesByComponent = new WeakBag(); +on("commit", ({ component, succeed }) => { + succeed(() => { + setTimeout(() => { + refreshDirtyStatesByComponent.each(component, (i) => i(false)); + }); + }); +}); +directive("dirty", ({ el, directive: directive2, component }) => { + let targets = dirtyTargets(el); + let oldIsDirty = false; + let initialDisplay = el.style.display; + let refreshDirtyState = (isDirty) => { + toggleBooleanStateDirective(el, directive2, isDirty, initialDisplay); + oldIsDirty = isDirty; + }; + refreshDirtyStatesByComponent.add(component, refreshDirtyState); + Alpine.effect(() => { + let isDirty = false; + isDirty = checkDirty(component, targets.length === 0 ? void 0 : targets); + if (oldIsDirty !== isDirty) { + refreshDirtyState(isDirty); + } + oldIsDirty = isDirty; + }); +}); +function checkDirty(component, targets) { + let isDirty = false; + if (targets === void 0) { + isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive); + } else if (Array.isArray(targets)) { + for (let i = 0; i < targets.length; i++) { + if (isDirty) + break; + let target = targets[i]; + isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target)); + } + } else { + isDirty = JSON.stringify(dataGet(component.canonical, targets)) !== JSON.stringify(dataGet(component.reactive, targets)); } - let { components: components2, assets } = JSON.parse(content); - await triggerAsync("payload.intercept", { components: components2, assets }); - await handleSuccess(components2); - succeed({ status: response.status, json: JSON.parse(content) }); + return isDirty; } -function handlePageExpiry() { - confirm("This page has expired.\nWould you like to refresh the page?") && window.location.reload(); +function dirtyTargets(el) { + let directives = getDirectives(el); + let targets = []; + if (directives.has("model")) { + targets.push(directives.get("model").expression); + } + if (directives.has("target")) { + targets = targets.concat( + directives.get("target").expression.split(",").map((s) => s.trim()) + ); + } + return targets; } -function showFailureModal(content) { - let html = content; - showHtmlModal(html); + +// js/features/supportJsModules.js +var pendingComponentAssets = /* @__PURE__ */ new WeakMap(); +on("effect", ({ component, effects }) => { + let scriptModuleHash = effects.scriptModule; + if (scriptModuleHash) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/js/${encodedName}.js?v=${scriptModuleHash}`; + pendingComponentAssets.set(component, Alpine.reactive({ + loading: true, + afterLoaded: [] + })); + import( + /* @vite-ignore */ + path + ).then((module) => { + module.run.call(component.$wire, component.$wire, component.$wire.js); + pendingComponentAssets.get(component).loading = false; + pendingComponentAssets.get(component).afterLoaded.forEach((callback) => callback()); + pendingComponentAssets.delete(component); + }); + } +}); +function assetIsPendingFor(component) { + return pendingComponentAssets.has(component) && pendingComponentAssets.get(component).loading; +} +function runAfterAssetIsLoadedFor(component, callback) { + if (assetIsPendingFor(component)) { + pendingComponentAssets.get(component).afterLoaded.push(() => callback()); + } else { + callback(); + } } // js/$wire.js -var import_alpinejs2 = __toESM(require_module_cjs()); var properties = {}; var fallback; function wireProperty(name, callback, component = null) { @@ -8158,21 +11642,35 @@ var aliases = { "on": "$on", "el": "$el", "id": "$id", + "js": "$js", "get": "$get", "set": "$set", + "refs": "$refs", "call": "$call", - "commit": "$commit", + "hook": "$hook", "watch": "$watch", + "dirty": "$dirty", + "effect": "$effect", + "commit": "$commit", + "errors": "$errors", + "island": "$island", + "upload": "$upload", "entangle": "$entangle", "dispatch": "$dispatch", + "intercept": "$intercept", + "interceptAction": "$interceptAction", + "interceptMessage": "$interceptMessage", + "interceptRequest": "$interceptRequest", "dispatchTo": "$dispatchTo", "dispatchSelf": "$dispatchSelf", - "upload": "$upload", - "uploadMultiple": "$uploadMultiple", + "dispatchEl": "$dispatchEl", + "dispatchRef": "$dispatchRef", "removeUpload": "$removeUpload", - "cancelUpload": "$cancelUpload" + "cancelUpload": "$cancelUpload", + "uploadMultiple": "$uploadMultiple" }; function generateWireObject(component, state) { + let isScoped = false; return new Proxy({}, { get(target, property) { if (property === "__instance") @@ -8183,6 +11681,8 @@ function generateWireObject(component, state) { return getProperty(component, property); } else if (property in state) { return state[property]; + } else if (property === "toJSON") { + return () => component.toJSON(); } else if (!["then"].includes(property)) { return getFallback(component)(property); } @@ -8201,20 +11701,31 @@ function getProperty(component, name) { function getFallback(component) { return fallback(component); } -import_alpinejs2.default.magic("wire", (el, { cleanup }) => { +import_alpinejs3.default.magic("wire", (el, { cleanup }) => { let component; return new Proxy({}, { get(target, property) { - if (!component) - component = closestComponent(el); + if (!component) { + try { + component = findComponentByEl(el); + } catch (e) { + return () => { + }; + } + } if (["$entangle", "entangle"].includes(property)) { return generateEntangleFunction(component, cleanup); } return component.$wire[property]; }, set(target, property, value) { - if (!component) - component = closestComponent(el); + if (!component) { + try { + component = findComponentByEl(el); + } catch (e) { + return true; + } + } component.$wire[property] = value; return true; } @@ -8228,17 +11739,87 @@ wireProperty("$el", (component) => { wireProperty("$id", (component) => { return component.id; }); +wireProperty("$js", (component) => { + let fn = component.addJsAction.bind(component); + let jsActions = component.getJsActions(); + Object.keys(jsActions).forEach((name) => { + fn[name] = jsActions[name]; + }); + return new Proxy(fn, { + set(target, property, value) { + component.addJsAction(property, value); + return true; + }, + get(target, property) { + if (assetIsPendingFor(component)) { + let resolver = null; + let promise = new Promise((resolve) => { + resolver = resolve; + }); + return (...params) => { + runAfterAssetIsLoadedFor(component, () => { + resolver(component.getJsAction(property)(...params)); + }); + return promise; + }; + } + return target[property]; + } + }); +}); wireProperty("$set", (component) => async (property, value, live = true) => { dataSet(component.reactive, property, value); if (live) { component.queueUpdate(property, value); - return await requestCommit(component); + return fireAction(component, "$set"); } return Promise.resolve(); }); +wireProperty("$refs", (component) => { + let fn = (name) => findRefEl(component, name); + return new Proxy(fn, { + get(target, property) { + if (property in target) { + return target[property]; + } + return fn(property); + } + }); +}); +wireProperty("$dirty", (component) => (property) => { + let reactive = import_alpinejs3.default.reactive({ dirty: false }); + interceptComponentMessage(component, ({ onFinish }) => { + onFinish(() => { + queueMicrotask(() => { + reactive.dirty = checkDirty(component, property); + }); + }); + }); + import_alpinejs3.default.effect(() => { + reactive.dirty = checkDirty(component, property); + }); + return reactive.dirty; +}); +wireProperty("$intercept", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentAction(component, actionNameOrCallback, maybeCallback); +}); +wireProperty("$interceptAction", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentAction(component, actionNameOrCallback, maybeCallback); +}); +wireProperty("$interceptMessage", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentMessage(component, actionNameOrCallback, maybeCallback); +}); +wireProperty("$interceptRequest", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentRequest(component, actionNameOrCallback, maybeCallback); +}); +wireProperty("$errors", (component) => getErrorsObject(component)); wireProperty("$call", (component) => async (method, ...params) => { return await component.$wire[method](...params); }); +wireProperty("$island", (component) => (name, options = {}) => { + setNextActionMetadata({ island: { name, mode: "morph", ...options } }); + return component.$wire; +}); wireProperty("$entangle", (component) => (name, live = false) => { return generateEntangleFunction(component)(name, live); }); @@ -8249,15 +11830,37 @@ wireProperty("$watch", (component) => (path, callback) => { let getter = () => { return dataGet(component.reactive, path); }; - let unwatch = import_alpinejs2.default.watch(getter, callback); + let unwatch = import_alpinejs3.default.watch(getter, callback); component.addCleanup(unwatch); + return unwatch; +}); +wireProperty("$effect", (component) => (callback) => { + let effect = import_alpinejs3.default.effect(callback); + component.addCleanup(effect); + return effect; +}); +wireProperty("$refresh", (component) => async () => { + return fireAction(component, "$refresh"); +}); +wireProperty("$commit", (component) => async () => { + return fireAction(component, "$commit"); }); -wireProperty("$refresh", (component) => component.$wire.$commit); -wireProperty("$commit", (component) => async () => await requestCommit(component)); wireProperty("$on", (component) => (...params) => listen2(component, ...params)); +wireProperty("$hook", (component) => (name, callback) => { + let unhook = on(name, ({ component: hookComponent, ...params }) => { + if (hookComponent === void 0) + return callback(params); + if (hookComponent.id === component.id) + return callback({ component: hookComponent, ...params }); + }); + component.addCleanup(unhook); + return unhook; +}); wireProperty("$dispatch", (component) => (...params) => dispatch2(component, ...params)); wireProperty("$dispatchSelf", (component) => (...params) => dispatchSelf(component, ...params)); wireProperty("$dispatchTo", () => (...params) => dispatchTo(...params)); +wireProperty("$dispatchEl", (component) => (...params) => dispatchEl(component, ...params)); +wireProperty("$dispatchRef", (component) => (...params) => dispatchRef(component, ...params)); wireProperty("$upload", (component) => (...params) => upload(component, ...params)); wireProperty("$uploadMultiple", (component) => (...params) => uploadMultiple(component, ...params)); wireProperty("$removeUpload", (component) => (...params) => removeUpload(component, ...params)); @@ -8266,7 +11869,9 @@ var parentMemo = /* @__PURE__ */ new WeakMap(); wireProperty("$parent", (component) => { if (parentMemo.has(component)) return parentMemo.get(component).$wire; - let parent = component.parent; + let parent = findComponentByEl(component.el.parentElement, false); + if (!parent) + return; parentMemo.set(component, parent); return parent.$wire; }); @@ -8279,7 +11884,7 @@ function overrideMethod(component, method, callback) { obj[method] = callback; overriddenMethods.set(component, obj); } -wireFallback((component) => (property) => async (...params) => { +wireFallback((component) => (property) => (...params) => { if (params.length === 1 && params[0] instanceof Event) { params = []; } @@ -8289,7 +11894,7 @@ wireFallback((component) => (property) => async (...params) => { return overrides[property](params); } } - return await requestCall(component, property, params); + return fireAction(component, property, params); }); // js/component.js @@ -8300,6 +11905,7 @@ var Component = class { el.__livewire = this; this.el = el; this.id = el.getAttribute("wire:id"); + this.key = el.getAttribute("wire:key"); this.__livewireId = this.id; this.snapshotEncoded = el.getAttribute("wire:snapshot"); this.snapshot = JSON.parse(this.snapshotEncoded); @@ -8313,10 +11919,23 @@ var Component = class { this.ephemeral = extractData(deepClone(this.snapshot.data)); this.reactive = Alpine.reactive(this.ephemeral); this.queuedUpdates = {}; + this.jsActions = {}; this.$wire = generateWireObject(this, this.reactive); + el.$wire = this.$wire; this.cleanups = []; this.processEffects(this.effects); } + addActionContext(context) { + if (context.el || context.directive) { + setNextActionOrigin({ + el: context.el, + directive: context.directive + }); + } + } + intercept(action, callback = null) { + return this.$wire.$intercept(action, callback); + } mergeNewSnapshot(snapshotEncoded, effects, updates = {}) { let snapshot = JSON.parse(snapshotEncoded); let oldCanonical = deepClone(this.canonical); @@ -8328,10 +11947,7 @@ var Component = class { this.effects = effects; this.canonical = extractData(deepClone(snapshot.data)); let newData = extractData(deepClone(snapshot.data)); - Object.entries(dirty).forEach(([key, value]) => { - let rootKey = key.split(".")[0]; - this.reactive[rootKey] = newData[rootKey]; - }); + diffAndPatchRecursive(updatedOldCanonical, newData, this.reactive); return dirty; } queueUpdate(propertyName, value) { @@ -8340,7 +11956,7 @@ var Component = class { mergeQueuedUpdates(diff2) { Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => { Object.entries(diff2).forEach(([diffKey, diffValue]) => { - if (diffKey.startsWith(updateValue)) { + if (diffKey.startsWith(updateKey)) { delete diff2[diffKey]; } }); @@ -8349,6 +11965,10 @@ var Component = class { this.queuedUpdates = []; return diff2; } + getUpdates() { + let propertiesDiff = diffAndConsolidate(this.canonical, this.ephemeral); + return this.mergeQueuedUpdates(propertiesDiff); + } applyUpdates(object, updates) { for (let key in updates) { dataSet(object, key, updates[key]); @@ -8360,21 +11980,83 @@ var Component = class { this.mergeNewSnapshot(JSON.stringify(snapshot), effects); this.processEffects({ html }); } - processEffects(effects) { + processEffects(effects, request) { trigger("effects", this, effects); trigger("effect", { component: this, effects, - cleanup: (i) => this.addCleanup(i) + cleanup: (i) => this.addCleanup(i), + request }); } - get children() { + get children() { + let componentEl = this.el; + let children = []; + componentEl.querySelectorAll("[wire\\:id]").forEach((el) => { + let parentComponentEl = el.parentElement.closest("[wire\\:id]"); + if (parentComponentEl !== componentEl) + return; + let componentInstance = el.__livewire; + if (!componentInstance) + return; + children.push(componentInstance); + }); + return children; + } + get islands() { + let islands = this.snapshot.memo.islands; + return islands; + } + get parent() { + return findComponentByEl(this.el.parentElement); + } + get isIsolated() { + return this.snapshot.memo.isolate; + } + get isLazy() { + return this.snapshot.memo.lazyLoaded !== void 0; + } + get hasBeenLazyLoaded() { + return this.snapshot.memo.lazyLoaded === true; + } + get isLazyIsolated() { + return !!this.snapshot.memo.lazyIsolated; + } + getDeepChildrenWithBindings(callback) { + this.getDeepChildren((child) => { + if (child.isLazy && !child.hasBeenLazyLoaded) + return; + if (child.hasReactiveProps() || child.hasWireModelableBindings()) { + callback(child); + } + }); + } + hasReactiveProps() { + let meta = this.snapshot.memo; + let props = meta.props; + return !!props; + } + hasWireModelableBindings() { let meta = this.snapshot.memo; - let childIds = Object.values(meta.children).map((i) => i[1]); - return childIds.map((id) => findComponent(id)); + let bindings = meta.bindings; + return !!bindings; } - get parent() { - return closestComponent(this.el.parentElement); + getDeepChildren(callback) { + this.children.forEach((child) => { + callback(child); + child.getDeepChildren(callback); + }); + } + getEncodedSnapshotWithLatestChildrenMergedIn() { + let { snapshotEncoded, children, snapshot } = this; + let childrenMemo = {}; + children.forEach((child) => { + childrenMemo[child.key] = [child.el.tagName.toLowerCase(), child.id]; + }); + return snapshotEncoded.replace( + /"children":\{[^}]*\}/, + `"children":${JSON.stringify(childrenMemo)}` + ); } inscribeSnapshotAndEffectsOnElement() { let el = this.el; @@ -8387,6 +12069,31 @@ var Component = class { effects.scripts = this.originalEffects.scripts; } el.setAttribute("wire:effects", JSON.stringify(effects)); + el.setAttribute("wire:key", this.key); + } + addJsAction(name, action) { + this.jsActions[name] = action; + } + hasJsAction(name) { + return this.jsActions[name] !== void 0; + } + getJsAction(name) { + return this.jsActions[name].bind(this.$wire); + } + getJsActions() { + let actions = {}; + for (let key of Object.keys(this.jsActions)) { + actions[key] = this.getJsAction(key); + } + return actions; + } + toJSON() { + return { + id: this.id, + name: this.name, + key: this.key, + data: Object.fromEntries(Object.entries(this.ephemeral)) + }; } addCleanup(cleanup) { this.cleanups.push(cleanup); @@ -8399,6 +12106,146 @@ var Component = class { } }; +// js/fragment.js +function closestFragment(el, { isMatch, hasReachedBoundary }) { + if (!hasReachedBoundary) + hasReachedBoundary = () => false; + let current = el; + while (current) { + let sibling = current.previousSibling; + let foundEndMarker = []; + while (sibling) { + if (isEndFragmentMarker(sibling)) { + foundEndMarker.push("a"); + } + if (isStartFragmentMarker(sibling)) { + if (foundEndMarker.length > 0) { + foundEndMarker.pop(); + } else { + let metadata = extractFragmentMetadataFromMarkerNode(sibling); + if (isMatch(metadata)) { + return new Fragment(sibling); + } + } + } + sibling = sibling.previousSibling; + } + current = current.parentElement; + if (current && hasReachedBoundary({ el: current })) { + break; + } + } + return null; +} +function findFragment(el, { isMatch, hasReachedBoundary }) { + if (!hasReachedBoundary) + hasReachedBoundary = () => false; + let startNode = null; + let rootEl = el; + walkElements(rootEl, (el2, { skip, stop }) => { + if (el2.hasAttribute && el2 !== rootEl && hasReachedBoundary({ el: el2 })) { + return skip(); + } + Array.from(el2.childNodes).forEach((node) => { + if (isStartFragmentMarker(node)) { + let metadata = extractFragmentMetadataFromMarkerNode(node); + if (isMatch(metadata)) { + startNode = node; + stop(); + } + } + }); + }); + return startNode && new Fragment(startNode); +} +function isStartFragmentMarker(el) { + return el.nodeType === 8 && el.textContent.startsWith("[if FRAGMENT"); +} +function isEndFragmentMarker(el) { + return el.nodeType === 8 && el.textContent.startsWith("[if ENDFRAGMENT"); +} +function walkElements(el, callback) { + let skip = false; + let stop = false; + callback(el, { skip: () => skip = true, stop: () => stop = true }); + if (skip || stop) + return; + Array.from(el.children).forEach((child) => { + walkElements(child, callback); + if (stop) + return; + }); +} +var Fragment = class { + constructor(startMarkerNode) { + this.startMarkerNode = startMarkerNode; + this.metadata = extractFragmentMetadataFromMarkerNode(startMarkerNode); + } + get endMarkerNode() { + return findMatchingEndMarkerNode(this.startMarkerNode, this.metadata); + } + append(mountContainerTagName, html) { + let container = document.createElement(mountContainerTagName); + container.innerHTML = html; + Array.from(container.childNodes).forEach((node) => { + this.endMarkerNode.before(node); + }); + } + prepend(mountContainerTagName, html) { + let container = document.createElement(mountContainerTagName); + container.innerHTML = html; + Array.from(container.childNodes).reverse().forEach((node) => { + this.startMarkerNode.after(node); + }); + } +}; +function findMatchingEndMarkerNode(startMarkerNode, metadata) { + let current = startMarkerNode; + while (current) { + if (isEndFragmentMarker(current)) { + let currentMetadata = extractFragmentMetadataFromMarkerNode(current); + if (Object.keys(metadata).every((key) => metadata[key] === currentMetadata[key])) { + return current; + } + } + current = current.nextSibling; + } + return null; +} +function extractInnerHtmlFromFragmentHtml(fragmentHtml) { + let regex = /<!--\[if FRAGMENT\b.*?\]><!\[endif\]-->([\s\S]*)<!--\[if ENDFRAGMENT\b.*?\]><!\[endif\]-->/i; + let match = fragmentHtml.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, html] = match; + return html; +} +function extractFragmentMetadataFromHtml(fragmentHtml) { + let regex = /\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/; + let match = fragmentHtml.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, __, encodedMetadata] = match; + return decodeMetadata(encodedMetadata); +} +function extractFragmentMetadataFromMarkerNode(startMarkerNode) { + let regex = /\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/; + let match = startMarkerNode.textContent.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, __, encodedMetadata] = match; + return decodeMetadata(encodedMetadata); +} +function decodeMetadata(encodedMetadata) { + let metadata = {}; + let pairs = encodedMetadata.split("|"); + pairs.forEach((pair) => { + let [key, value] = pair.split("="); + metadata[key] = value; + }); + return metadata; +} + // js/store.js var components = {}; function initComponent(el) { @@ -8417,20 +12264,52 @@ function destroyComponent(id) { component.cleanup(); delete components[id]; } -function findComponent(id) { +function hasComponent(id) { + return !!components[id]; +} +function findComponent(id, strict = true) { let component = components[id]; - if (!component) - throw "Component not found: " + id; + if (!component) { + if (strict) + throw "Component not found: " + id; + return; + } return component; } -function closestComponent(el, strict = true) { - let closestRoot = Alpine.findClosest(el, (i) => i.__livewire); - if (!closestRoot) { +function findComponentByEl(el, strict = true) { + let componentId = walkUpwards(el, (node, { stop }) => { + if (node.__livewire) + return stop(node.__livewire.id); + let endMarkers = []; + let slotParentId = walkBackwards(node, (siblingNode, { stop: stop2 }) => { + if (isEndFragmentMarker(siblingNode)) { + let metadata = extractFragmentMetadataFromMarkerNode(siblingNode); + if (metadata.type !== "slot") + return; + endMarkers.push("a"); + return; + } + if (isStartFragmentMarker(siblingNode)) { + let metadata = extractFragmentMetadataFromMarkerNode(siblingNode); + if (metadata.type !== "slot") + return; + if (endMarkers.length > 0) { + endMarkers.pop(); + } else { + return stop2(metadata.parent); + } + } + }); + if (slotParentId) + return stop(slotParentId); + }); + let component = findComponent(componentId, strict); + if (!component) { if (strict) throw "Could not find Livewire component in DOM tree"; return; } - return closestRoot.__livewire; + return component; } function componentsByName(name) { return Object.values(components).filter((component) => { @@ -8461,12 +12340,22 @@ function dispatchGlobal(name, params) { function dispatchSelf(component, name, params) { dispatchEvent(component.el, name, params, false); } +function dispatchEl(component, selector, name, params) { + let targets = component.el.querySelectorAll(selector); + targets.forEach((target) => { + dispatchEvent(target, name, params, false); + }); +} function dispatchTo(componentName, name, params) { let targets = componentsByName(componentName); targets.forEach((target) => { dispatchEvent(target.el, name, params, false); }); } +function dispatchRef(component, ref, name, params) { + let el = findRefEl(component, ref); + dispatchEvent(el, name, params, false); +} function listen2(component, name, callback) { component.el.addEventListener(name, (e) => { callback(e.detail); @@ -8484,105 +12373,168 @@ function on2(eventName, callback) { }; } function dispatchEvent(target, name, params, bubbles = true) { + if (typeof params === "string") { + params = [params]; + } let e = new CustomEvent(name, { bubbles, detail: params }); e.__livewire = { name, params, receivedBy: [] }; target.dispatchEvent(e); } -// js/directives.js -var customDirectiveNames = /* @__PURE__ */ new Set(); -function matchesForLivewireDirective(attributeName) { - return attributeName.match(new RegExp("wire:")); +// js/lifecycle.js +var import_collapse = __toESM(require_module_cjs2()); +var import_focus = __toESM(require_module_cjs3()); + +// node_modules/@alpinejs/persist/dist/module.esm.js +function src_default(Alpine25) { + let persist = () => { + let alias; + let storage; + try { + storage = localStorage; + } catch (e) { + console.error(e); + console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable."); + let dummy = /* @__PURE__ */ new Map(); + storage = { + getItem: dummy.get.bind(dummy), + setItem: dummy.set.bind(dummy) + }; + } + return Alpine25.interceptor((initialValue, getter, setter, path, key) => { + let lookup = alias || `_x_${path}`; + let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue; + setter(initial); + Alpine25.effect(() => { + let value = getter(); + storageSet(lookup, value, storage); + setter(value); + }); + return initial; + }, (func) => { + func.as = (key) => { + alias = key; + return func; + }, func.using = (target) => { + storage = target; + return func; + }; + }); + }; + Object.defineProperty(Alpine25, "$persist", { get: () => persist() }); + Alpine25.magic("persist", persist); + Alpine25.persist = (key, { get, set }, storage = localStorage) => { + let initial = storageHas(key, storage) ? storageGet(key, storage) : get(); + set(initial); + Alpine25.effect(() => { + let value = get(); + storageSet(key, value, storage); + set(value); + }); + }; } -function extractDirective(el, name) { - let [value, ...modifiers] = name.replace(new RegExp("wire:"), "").split("."); - return new Directive(value, modifiers, name, el); +function storageHas(key, storage) { + return storage.getItem(key) !== null; } -function directive(name, callback) { - if (customDirectiveNames.has(name)) +function storageGet(key, storage) { + let value = storage.getItem(key); + if (value === void 0) return; - customDirectiveNames.add(name); - on("directive.init", ({ el, component, directive: directive2, cleanup }) => { - if (directive2.value === name) { - callback({ - el, - directive: directive2, - component, - $wire: component.$wire, - cleanup - }); - } - }); + return JSON.parse(value); } -function getDirectives(el) { - return new DirectiveManager(el); +function storageSet(key, value, storage) { + storage.setItem(key, JSON.stringify(value)); } -function customDirectiveHasBeenRegistered(name) { - return customDirectiveNames.has(name); +var module_default = src_default; + +// js/lifecycle.js +var import_intersect = __toESM(require_module_cjs4()); +var import_sort = __toESM(require_module_cjs5()); +var import_resize = __toESM(require_module_cjs6()); +var import_anchor = __toESM(require_module_cjs7()); + +// js/plugins/history/utils.js +function unwrap(object) { + if (object === void 0) + return void 0; + return JSON.parse(JSON.stringify(object)); } -var DirectiveManager = class { - constructor(el) { - this.el = el; - this.directives = this.extractTypeModifiersAndValue(); - } - all() { - return this.directives; - } - has(value) { - return this.directives.map((directive2) => directive2.value).includes(value); - } - missing(value) { - return !this.has(value); +function batch(callback) { + let batch2 = { + queued: false, + updates: {}, + add(updates) { + Object.assign(batch2.updates, updates); + if (batch2.queued) + return; + batch2.queued = true; + queueMicrotask(batch2.flush); + }, + flush() { + if (Object.keys(batch2.updates).length) { + callback(batch2.updates); + } + batch2.queued = false; + batch2.updates = {}; + } + }; + return batch2; +} + +// js/plugins/history/coordinator.js +var HistoryCoordinator = class { + constructor() { + this.url = null; + this.errorHandlers = {}; + this.batch = batch((updates) => { + let url = this.getUrl(); + this.writeToHistory("replaceState", url, (state) => { + state.alpine = { ...state.alpine, ...unwrap(updates) }; + return state; + }); + this.url = null; + }); } - get(value) { - return this.directives.find((directive2) => directive2.value === value); + addErrorHandler(key, callback) { + this.errorHandlers[key] = callback; } - extractTypeModifiersAndValue() { - return Array.from(this.el.getAttributeNames().filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(this.el, name))); + getUrl() { + if (this.url) { + if (this.url instanceof URL) + this.url.hash = window.location.hash; + return this.url; + } + return new URL(window.location.href); } -}; -var Directive = class { - constructor(value, modifiers, rawName, el) { - this.rawName = this.raw = rawName; - this.el = el; - this.eventContext; - this.value = value; - this.modifiers = modifiers; - this.expression = this.el.getAttribute(this.rawName); + replaceState(url, updates) { + this.url = url; + this.batch.add(updates); } - get method() { - const { method } = this.parseOutMethodAndParams(this.expression); - return method; + pushState(url, updates) { + this.batch.flush(); + this.writeToHistory("pushState", url, (state) => { + state = { alpine: { ...state.alpine, ...unwrap(updates) } }; + return state; + }); } - get params() { - const { params } = this.parseOutMethodAndParams(this.expression); - return params; - } - parseOutMethodAndParams(rawMethod) { - let method = rawMethod; - let params = []; - const methodAndParamString = method.match(/(.*?)\((.*)\)/s); - if (methodAndParamString) { - method = methodAndParamString[1]; - let func = new Function("$event", `return (function () { - for (var l=arguments.length, p=new Array(l), k=0; k<l; k++) { - p[k] = arguments[k]; - } - return [].concat(p); - })(${methodAndParamString[2]})`); - params = func(this.eventContext); + writeToHistory(method, url, callback) { + let state = window.history.state || {}; + if (!state.alpine) + state.alpine = {}; + state = callback(state); + try { + window.history[method](state, "", url.toString()); + } catch (error2) { + Object.values(this.errorHandlers).forEach( + (handler) => typeof handler === "function" && handler(error2, url) + ); + this.errorHandlers = {}; + console.error(error2); } - return { method, params }; } }; - -// js/lifecycle.js -var import_collapse = __toESM(require_module_cjs2()); -var import_focus = __toESM(require_module_cjs3()); -var import_persist2 = __toESM(require_module_cjs4()); -var import_intersect = __toESM(require_module_cjs5()); -var import_resize = __toESM(require_module_cjs6()); -var import_anchor = __toESM(require_module_cjs7()); +var historyCoordinator = new HistoryCoordinator(); +var coordinator_default = historyCoordinator; // js/plugins/navigate/history.js var Snapshot = class { @@ -8627,8 +12579,12 @@ var snapshotCache = { } } }; +var currentPageStatus = null; +function storeCurrentPageStatus(status) { + currentPageStatus = status; +} function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() { - let url = new URL(window.location.href, document.baseURI); + let url = coordinator_default.getUrl(); replaceUrl(url, document.documentElement.outerHTML); } function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(key, url) { @@ -8641,6 +12597,9 @@ function whenTheBackOrForwardButtonIsClicked(registerFallback, handleHtml) { window.addEventListener("popstate", (e) => { let state = e.state || {}; let alpine = state.alpine || {}; + if (currentPageStatus && (currentPageStatus < 200 || currentPageStatus >= 300)) { + return window.location.href = alpine.url; + } if (Object.keys(state).length === 0) return; if (!alpine.snapshotIdx) @@ -8648,7 +12607,11 @@ function whenTheBackOrForwardButtonIsClicked(registerFallback, handleHtml) { if (snapshotCache.has(alpine.snapshotIdx)) { let snapshot = snapshotCache.retrieve(alpine.snapshotIdx); handleHtml(snapshot.html, snapshot.url, snapshotCache.currentUrl, snapshotCache.currentKey); + snapshotCache.currentKey = alpine.snapshotIdx; + snapshotCache.currentUrl = snapshot.url; } else { + snapshotCache.currentKey = null; + snapshotCache.currentUrl = null; fallback2(alpine.url); } }); @@ -8665,21 +12628,16 @@ function replaceUrl(url, html) { function updateUrl(method, url, html) { let key = url.toString() + "-" + Math.random(); method === "pushState" ? snapshotCache.push(key, new Snapshot(url, html)) : snapshotCache.replace(key = snapshotCache.currentKey ?? key, new Snapshot(url, html)); - let state = history.state || {}; - if (!state.alpine) - state.alpine = {}; - state.alpine.snapshotIdx = key; - state.alpine.url = url.toString(); - try { - history[method](state, JSON.stringify(document.title), url); - snapshotCache.currentKey = key; - snapshotCache.currentUrl = url; - } catch (error2) { + coordinator_default.addErrorHandler("navigate", (error2) => { if (error2 instanceof DOMException && error2.name === "SecurityError") { - console.error("Livewire: You can't use wire:navigate with a link to a different root domain: " + url); + console.error( + "Livewire: You can't use wire:navigate with a link to a different root domain: " + url + ); } - console.error(error2); - } + }); + coordinator_default[method](url, { snapshotIdx: key, url: url.toString() }); + snapshotCache.currentKey = key; + snapshotCache.currentUrl = url; } // js/plugins/navigate/links.js @@ -8704,7 +12662,9 @@ function whenThisLinkIsPressed(el, callback) { callback((whenReleased) => { let handler = (e2) => { e2.preventDefault(); - whenReleased(); + requestAnimationFrame(() => { + whenReleased(); + }); el.removeEventListener("mouseup", handler); }; el.addEventListener("mouseup", handler); @@ -8730,9 +12690,9 @@ function whenThisLinkIsHoveredFor(el, ms = 60, callback) { }); } function extractDestinationFromLink(linkEl) { - return createUrlObjectFromString(linkEl.getAttribute("href")); + return createUrlObjectFromString2(linkEl.getAttribute("href")); } -function createUrlObjectFromString(urlString) { +function createUrlObjectFromString2(urlString) { return urlString !== null && new URL(urlString, document.baseURI); } function getUriStringFromUrlObject(urlObject) { @@ -8740,45 +12700,31 @@ function getUriStringFromUrlObject(urlObject) { } // js/plugins/navigate/fetch.js -function fetchHtml(destination, callback) { +function fetchHtml(destination, callback, errorCallback) { let uri = getUriStringFromUrlObject(destination); - performFetch(uri, (html, finalDestination) => { + performFetch(uri, (html, finalDestination, status) => { + storeCurrentPageStatus(status); callback(html, finalDestination); - }); + }, errorCallback); } -function performFetch(uri, callback) { - let options = { - headers: { - "X-Livewire-Navigate": "" - } - }; - trigger("navigate.request", { - url: uri, - options - }); - let finalDestination; - fetch(uri, options).then((response) => { - let destination = createUrlObjectFromString(uri); - finalDestination = createUrlObjectFromString(response.url); - if (destination.pathname + destination.search === finalDestination.pathname + finalDestination.search) { - finalDestination.hash = destination.hash; - } - return response.text(); - }).then((html) => { - callback(html, finalDestination); - }); +function performFetch(uri, callback, errorCallback) { + sendNavigateRequest(uri, callback, errorCallback); } // js/plugins/navigate/prefetch.js var prefetches = {}; -function prefetchHtml(destination, callback) { +var cacheDuration = 3e4; +function prefetchHtml(destination, callback, errorCallback) { let uri = getUriStringFromUrlObject(destination); if (prefetches[uri]) return; - prefetches[uri] = { finished: false, html: null, whenFinished: () => { - } }; - performFetch(uri, (html, routedUri) => { + prefetches[uri] = { finished: false, html: null, whenFinished: () => setTimeout(() => delete prefetches[uri], cacheDuration) }; + performFetch(uri, (html, routedUri, status) => { + storeCurrentPageStatus(status); callback(html, routedUri); + }, () => { + delete prefetches[uri]; + errorCallback(); }); } function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination) { @@ -8808,19 +12754,19 @@ function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) { } // js/plugins/navigate/teleport.js -var import_alpinejs3 = __toESM(require_module_cjs()); +var import_alpinejs4 = __toESM(require_module_cjs()); function packUpPersistedTeleports(persistedEl) { - import_alpinejs3.default.mutateDom(() => { + import_alpinejs4.default.mutateDom(() => { persistedEl.querySelectorAll("[data-teleport-template]").forEach((i) => i._x_teleport.remove()); }); } function removeAnyLeftOverStaleTeleportTargets(body) { - import_alpinejs3.default.mutateDom(() => { + import_alpinejs4.default.mutateDom(() => { body.querySelectorAll("[data-teleport-target]").forEach((i) => i.remove()); }); } function unPackPersistedTeleports(persistedEl) { - import_alpinejs3.default.walk(persistedEl, (el, skip) => { + import_alpinejs4.default.walk(persistedEl, (el, skip) => { if (!el._x_teleport) return; el._x_teleportPutBack(); @@ -8835,7 +12781,7 @@ function isTeleportTarget(el) { function storeScrollInformationInHtmlBeforeNavigatingAway() { document.body.setAttribute("data-scroll-x", document.body.scrollLeft); document.body.setAttribute("data-scroll-y", document.body.scrollTop); - document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:scroll]"]).forEach((el) => { + document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:navigate\\:scroll]"]).forEach((el) => { el.setAttribute("data-scroll-x", el.scrollLeft); el.setAttribute("data-scroll-y", el.scrollTop); }); @@ -8855,20 +12801,22 @@ function restoreScrollPositionOrScrollToTop() { } }; queueMicrotask(() => { - scroll(document.body); - document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:scroll]"]).forEach(scroll); + queueMicrotask(() => { + scroll(document.body); + document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:navigate\\:scroll]"]).forEach(scroll); + }); }); } // js/plugins/navigate/persist.js -var import_alpinejs4 = __toESM(require_module_cjs()); +var import_alpinejs5 = __toESM(require_module_cjs()); var els = {}; function storePersistantElementsForLater(callback) { els = {}; document.querySelectorAll("[x-persist]").forEach((i) => { els[i.getAttribute("x-persist")] = i; callback(i); - import_alpinejs4.default.mutateDom(() => { + import_alpinejs5.default.mutateDom(() => { i.remove(); }); }); @@ -8882,14 +12830,14 @@ function putPersistantElementsBack(callback) { usedPersists.push(i.getAttribute("x-persist")); old._x_wasPersisted = true; callback(old, i); - import_alpinejs4.default.mutateDom(() => { + import_alpinejs5.default.mutateDom(() => { i.replaceWith(old); }); }); Object.entries(els).forEach(([key, el]) => { if (usedPersists.includes(key)) return; - import_alpinejs4.default.destroyTree(el); + import_alpinejs5.default.destroyTree(el); }); els = {}; } @@ -9005,14 +12953,62 @@ function injectStyles() { document.head.appendChild(style); } +// js/plugins/navigate/popover.js +function packUpPersistedPopovers(persistedEl) { + if (!isPopoverSupported()) + return; + persistedEl.querySelectorAll(":popover-open").forEach((el) => { + el.setAttribute("data-navigate-popover-open", ""); + let animations = el.getAnimations(); + el._pausedAnimations = animations.map((animation) => ({ + keyframes: animation.effect.getKeyframes(), + options: { + duration: animation.effect.getTiming().duration, + easing: animation.effect.getTiming().easing, + fill: animation.effect.getTiming().fill, + iterations: animation.effect.getTiming().iterations + }, + currentTime: animation.currentTime, + playState: animation.playState + })); + animations.forEach((i) => i.pause()); + }); +} +function unPackPersistedPopovers(persistedEl) { + if (!isPopoverSupported()) + return; + persistedEl.querySelectorAll("[data-navigate-popover-open]").forEach((el) => { + el.removeAttribute("data-navigate-popover-open"); + queueMicrotask(() => { + if (!el.isConnected) + return; + el.showPopover(); + el.getAnimations().forEach((i) => i.finish()); + if (el._pausedAnimations) { + el._pausedAnimations.forEach(({ keyframes, options, currentTime, now, playState }) => { + let animation = el.animate(keyframes, options); + animation.currentTime = currentTime; + }); + delete el._pausedAnimations; + } + }); + }); +} +function isPopoverSupported() { + return typeof document.createElement("div").showPopover === "function"; +} + // js/plugins/navigate/page.js var oldBodyScriptTagHashes = []; var attributesExemptFromScriptTagHashing = [ "data-csrf", + "nonce", "aria-hidden" ]; function swapCurrentPageWithNewHtml(html, andThen) { + html = replaceNoncesInHtml(html); let newDocument = new DOMParser().parseFromString(html, "text/html"); + let newHtml = newDocument.documentElement; let newBody = document.adoptNode(newDocument.body); let newHead = document.adoptNode(newDocument.head); oldBodyScriptTagHashes = oldBodyScriptTagHashes.concat(Array.from(document.body.querySelectorAll("script")).map((i) => { @@ -9020,6 +13016,7 @@ function swapCurrentPageWithNewHtml(html, andThen) { })); let afterRemoteScriptsHaveLoaded = () => { }; + replaceHtmlAttributes(newHtml); mergeNewHead(newHead).finally(() => { afterRemoteScriptsHaveLoaded(); }); @@ -9032,22 +13029,42 @@ function swapCurrentPageWithNewHtml(html, andThen) { function prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes2) { newBody.querySelectorAll("script").forEach((i) => { if (i.hasAttribute("data-navigate-once")) { - let hash = simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)); + let hash = simpleHash( + ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing) + ); if (oldBodyScriptTagHashes2.includes(hash)) return; } i.replaceWith(cloneScriptTag(i)); }); } +function replaceHtmlAttributes(newHtmlElement) { + let currentHtmlElement = document.documentElement; + Array.from(newHtmlElement.attributes).forEach((attr) => { + const name = attr.name; + const value = attr.value; + if (currentHtmlElement.getAttribute(name) !== value) { + currentHtmlElement.setAttribute(name, value); + } + }); + Array.from(currentHtmlElement.attributes).forEach((attr) => { + if (!newHtmlElement.hasAttribute(attr.name)) { + currentHtmlElement.removeAttribute(attr.name); + } + }); +} function mergeNewHead(newHead) { let children = Array.from(document.head.children); - let headChildrenHtmlLookup = children.map((i) => i.outerHTML); + let headChildrenHtmlLookup = children.map( + (i) => ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing) + ); let garbageCollector = document.createDocumentFragment(); let touchedHeadElements = []; let remoteScriptsPromises = []; for (let child of Array.from(newHead.children)) { if (isAsset(child)) { - if (!headChildrenHtmlLookup.includes(child.outerHTML)) { + let childHtml = ignoreAttributes(child.outerHTML, attributesExemptFromScriptTagHashing); + if (!headChildrenHtmlLookup.includes(childHtml)) { if (isTracked(child)) { if (ifTheQueryStringChangedSinceLastRequest(child, children)) { setTimeout(() => window.location.reload()); @@ -9055,7 +13072,11 @@ function mergeNewHead(newHead) { } if (isScript(child)) { try { - remoteScriptsPromises.push(injectScriptTagAndWaitForItToFullyLoad(cloneScriptTag(child))); + remoteScriptsPromises.push( + injectScriptTagAndWaitForItToFullyLoad( + cloneScriptTag(child) + ) + ); } catch (error2) { } } else { @@ -9072,6 +13093,8 @@ function mergeNewHead(newHead) { child.remove(); } for (let child of Array.from(newHead.children)) { + if (child.tagName.toLowerCase() === "noscript") + continue; document.head.appendChild(child); } return Promise.all(remoteScriptsPromises); @@ -9087,15 +13110,6 @@ async function injectScriptTagAndWaitForItToFullyLoad(script) { document.head.appendChild(script); }); } -function cloneScriptTag(el) { - let script = document.createElement("script"); - script.textContent = el.textContent; - script.async = el.async; - for (let attr of el.attributes) { - script.setAttribute(attr.name, attr.value); - } - return script; -} function isTracked(el) { return el.hasAttribute("data-navigate-track"); } @@ -9140,30 +13154,34 @@ var enablePersist = true; var showProgressBar = true; var restoreScroll = true; var autofocus = false; -function navigate_default(Alpine19) { - Alpine19.navigate = (url) => { - let destination = createUrlObjectFromString(url); - let prevented = fireEventForOtherLibariesToHookInto("alpine:navigate", { +function navigate_default(Alpine25) { + Alpine25.navigate = (url, options = {}) => { + let { preserveScroll = false } = options; + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { url: destination, history: false, cached: false }); if (prevented) return; - navigateTo(destination); + navigateTo(destination, { preserveScroll }); }; - Alpine19.navigate.disableProgressBar = () => { + Alpine25.navigate.disableProgressBar = () => { showProgressBar = false; }; - Alpine19.addInitSelector(() => `[${Alpine19.prefixed("navigate")}]`); - Alpine19.directive("navigate", (el, { modifiers }) => { + Alpine25.addInitSelector(() => `[${Alpine25.prefixed("navigate")}]`); + Alpine25.directive("navigate", (el, { modifiers }) => { let shouldPrefetchOnHover = modifiers.includes("hover"); + let preserveScroll = modifiers.includes("preserve-scroll"); shouldPrefetchOnHover && whenThisLinkIsHoveredFor(el, 60, () => { let destination = extractDestinationFromLink(el); if (!destination) return; prefetchHtml(destination, (html, finalDestination) => { storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination); + }, () => { + showProgressBar && finishAndHideProgressBar(); }); }); whenThisLinkIsPressed(el, (whenItIsReleased) => { @@ -9172,30 +13190,35 @@ function navigate_default(Alpine19) { return; prefetchHtml(destination, (html, finalDestination) => { storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination); + }, () => { + showProgressBar && finishAndHideProgressBar(); }); whenItIsReleased(() => { - let prevented = fireEventForOtherLibariesToHookInto("alpine:navigate", { + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { url: destination, history: false, cached: false }); if (prevented) return; - navigateTo(destination); + navigateTo(destination, { preserveScroll }); }); }); }); - function navigateTo(destination, shouldPushToHistoryState = true) { + function navigateTo(destination, { preserveScroll = false, shouldPushToHistoryState = true }) { showProgressBar && showAndStartProgressBar(); fetchHtmlOrUsePrefetchedHtml(destination, (html, finalDestination) => { - fireEventForOtherLibariesToHookInto("alpine:navigating"); + let swapCallbacks = []; + fireEventForOtherLibrariesToHookInto("alpine:navigating", { + onSwap: (callback) => swapCallbacks.push(callback) + }); restoreScroll && storeScrollInformationInHtmlBeforeNavigatingAway(); - showProgressBar && finishAndHideProgressBar(); cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement(); - updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks(); - preventAlpineFromPickingUpDomChanges(Alpine19, (andAfterAllThis) => { + shouldPushToHistoryState && updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks(); + preventAlpineFromPickingUpDomChanges(Alpine25, (andAfterAllThis) => { enablePersist && storePersistantElementsForLater((persistedEl) => { packUpPersistedTeleports(persistedEl); + packUpPersistedPopovers(persistedEl); }); if (shouldPushToHistoryState) { updateUrlAndStoreLatestHtmlForFutureBackButtons(html, finalDestination); @@ -9206,84 +13229,97 @@ function navigate_default(Alpine19) { removeAnyLeftOverStaleTeleportTargets(document.body); enablePersist && putPersistantElementsBack((persistedEl, newStub) => { unPackPersistedTeleports(persistedEl); + unPackPersistedPopovers(persistedEl); }); - restoreScrollPositionOrScrollToTop(); + !preserveScroll && restoreScrollPositionOrScrollToTop(); + swapCallbacks.forEach((callback) => callback()); afterNewScriptsAreDoneLoading(() => { andAfterAllThis(() => { setTimeout(() => { autofocus && autofocusElementsWithTheAutofocusAttribute(); }); - nowInitializeAlpineOnTheNewPage(Alpine19); - fireEventForOtherLibariesToHookInto("alpine:navigated"); + nowInitializeAlpineOnTheNewPage(Alpine25); + fireEventForOtherLibrariesToHookInto("alpine:navigated"); + showProgressBar && finishAndHideProgressBar(); }); }); }); }); + }, () => { + showProgressBar && finishAndHideProgressBar(); }); } - whenTheBackOrForwardButtonIsClicked((ifThePageBeingVisitedHasntBeenCached) => { - ifThePageBeingVisitedHasntBeenCached((url) => { - let destination = createUrlObjectFromString(url); - let prevented = fireEventForOtherLibariesToHookInto("alpine:navigate", { + whenTheBackOrForwardButtonIsClicked( + (ifThePageBeingVisitedHasntBeenCached) => { + ifThePageBeingVisitedHasntBeenCached((url) => { + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { + url: destination, + history: true, + cached: false + }); + if (prevented) + return; + navigateTo(destination, { shouldPushToHistoryState: false }); + }); + }, + (html, url, currentPageUrl, currentPageKey) => { + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { url: destination, history: true, - cached: false + cached: true }); if (prevented) return; - let shouldPushToHistoryState = false; - navigateTo(destination, shouldPushToHistoryState); - }); - }, (html, url, currentPageUrl, currentPageKey) => { - let destination = createUrlObjectFromString(url); - let prevented = fireEventForOtherLibariesToHookInto("alpine:navigate", { - url: destination, - history: true, - cached: true - }); - if (prevented) - return; - storeScrollInformationInHtmlBeforeNavigatingAway(); - fireEventForOtherLibariesToHookInto("alpine:navigating"); - updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageUrl, currentPageKey); - preventAlpineFromPickingUpDomChanges(Alpine19, (andAfterAllThis) => { - enablePersist && storePersistantElementsForLater((persistedEl) => { - packUpPersistedTeleports(persistedEl); + storeScrollInformationInHtmlBeforeNavigatingAway(); + let swapCallbacks = []; + fireEventForOtherLibrariesToHookInto("alpine:navigating", { + onSwap: (callback) => swapCallbacks.push(callback) }); - swapCurrentPageWithNewHtml(html, () => { - removeAnyLeftOverStaleProgressBars(); - removeAnyLeftOverStaleTeleportTargets(document.body); - enablePersist && putPersistantElementsBack((persistedEl, newStub) => { - unPackPersistedTeleports(persistedEl); + updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageKey, currentPageUrl); + preventAlpineFromPickingUpDomChanges(Alpine25, (andAfterAllThis) => { + enablePersist && storePersistantElementsForLater((persistedEl) => { + packUpPersistedTeleports(persistedEl); + packUpPersistedPopovers(persistedEl); }); - restoreScrollPositionOrScrollToTop(); - andAfterAllThis(() => { - autofocus && autofocusElementsWithTheAutofocusAttribute(); - nowInitializeAlpineOnTheNewPage(Alpine19); - fireEventForOtherLibariesToHookInto("alpine:navigated"); + swapCurrentPageWithNewHtml(html, () => { + removeAnyLeftOverStaleProgressBars(); + removeAnyLeftOverStaleTeleportTargets(document.body); + enablePersist && putPersistantElementsBack((persistedEl, newStub) => { + unPackPersistedTeleports(persistedEl); + unPackPersistedPopovers(persistedEl); + }); + restoreScrollPositionOrScrollToTop(); + swapCallbacks.forEach((callback) => callback()); + andAfterAllThis(() => { + autofocus && autofocusElementsWithTheAutofocusAttribute(); + nowInitializeAlpineOnTheNewPage(Alpine25); + fireEventForOtherLibrariesToHookInto("alpine:navigated"); + }); }); }); - }); - }); + } + ); setTimeout(() => { - fireEventForOtherLibariesToHookInto("alpine:navigated"); + fireEventForOtherLibrariesToHookInto("alpine:navigated"); }); } -function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback) { +function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCallback) { getPretchedHtmlOr(fromDestination, callback, () => { - fetchHtml(fromDestination, callback); + fetchHtml(fromDestination, callback, errorCallback); }); } -function preventAlpineFromPickingUpDomChanges(Alpine19, callback) { - Alpine19.stopObservingMutations(); +function preventAlpineFromPickingUpDomChanges(Alpine25, callback) { + Alpine25.stopObservingMutations(); callback((afterAllThis) => { - Alpine19.startObservingMutations(); + Alpine25.startObservingMutations(); queueMicrotask(() => { afterAllThis(); }); }); } -function fireEventForOtherLibariesToHookInto(name, detail) { +function fireEventForOtherLibrariesToHookInto(name, detail) { let event = new CustomEvent(name, { cancelable: true, bubbles: true, @@ -9292,8 +13328,8 @@ function fireEventForOtherLibariesToHookInto(name, detail) { document.dispatchEvent(event); return event.defaultPrevented; } -function nowInitializeAlpineOnTheNewPage(Alpine19) { - Alpine19.initTree(document.body, void 0, (el, skip) => { +function nowInitializeAlpineOnTheNewPage(Alpine25) { + Alpine25.initTree(document.body, void 0, (el, skip) => { if (el._x_wasPersisted) skip(); }); @@ -9316,8 +13352,8 @@ function cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() { } // js/plugins/history/index.js -function history2(Alpine19) { - Alpine19.magic("queryString", (el, { interceptor }) => { +function history(Alpine25) { + Alpine25.magic("queryString", (el, { interceptor }) => { let alias; let alwaysShow = false; let usePush = false; @@ -9326,9 +13362,9 @@ function history2(Alpine19) { let { initial, replace: replace2, push: push2, pop } = track(queryKey, initialSeedValue, alwaysShow); setter(initial); if (!usePush) { - Alpine19.effect(() => replace2(getter())); + Alpine25.effect(() => replace2(getter())); } else { - Alpine19.effect(() => push2(getter())); + Alpine25.effect(() => push2(getter())); pop(async (newValue) => { setter(newValue); let tillTheEndOfTheMicrotaskQueue = () => Promise.resolve(); @@ -9351,15 +13387,15 @@ function history2(Alpine19) { }; }); }); - Alpine19.history = { track }; + Alpine25.history = { track }; } function track(name, initialSeedValue, alwaysShow = false, except = null) { let { has, get, set, remove } = queryStringUtils(); - let url = new URL(window.location.href); + let url = coordinator_default.getUrl(); let isInitiallyPresentInUrl = has(url, name); let initialValue = isInitiallyPresentInUrl ? get(url, name) : initialSeedValue; let initialValueMemo = JSON.stringify(initialValue); - let exceptValueMemo = [false, null, void 0].includes(except) ? initialSeedValue : JSON.stringify(except); + let exceptValueMemo = JSON.stringify(except); let hasReturnedToInitialValue = (newValue) => JSON.stringify(newValue) === initialValueMemo; let hasReturnedToExceptValue = (newValue) => JSON.stringify(newValue) === exceptValueMemo; if (alwaysShow) @@ -9369,7 +13405,7 @@ function track(name, initialSeedValue, alwaysShow = false, except = null) { let update = (strategy, newValue) => { if (lock) return; - let url2 = new URL(window.location.href); + let url2 = coordinator_default.getUrl(); if (!alwaysShow && !isInitiallyPresentInUrl && hasReturnedToInitialValue(newValue)) { url2 = remove(url2, name); } else if (newValue === void 0) { @@ -9411,23 +13447,10 @@ function track(name, initialSeedValue, alwaysShow = false, except = null) { }; } function replace(url, key, object) { - let state = window.history.state || {}; - if (!state.alpine) - state.alpine = {}; - state.alpine[key] = unwrap(object); - window.history.replaceState(state, "", url.toString()); + coordinator_default.replaceState(url, { [key]: object }); } function push(url, key, object) { - let state = window.history.state || {}; - if (!state.alpine) - state.alpine = {}; - state = { alpine: { ...state.alpine, ...{ [key]: unwrap(object) } } }; - window.history.pushState(state, "", url.toString()); -} -function unwrap(object) { - if (object === void 0) - return void 0; - return JSON.parse(JSON.stringify(object)); + coordinator_default.pushState(url, { [key]: object }); } function queryStringUtils() { return { @@ -9435,24 +13458,24 @@ function queryStringUtils() { let search = url.search; if (!search) return false; - let data = fromQueryString(search); + let data = fromQueryString(search, key); return Object.keys(data).includes(key); }, get(url, key) { let search = url.search; if (!search) return false; - let data = fromQueryString(search); + let data = fromQueryString(search, key); return data[key]; }, set(url, key, value) { - let data = fromQueryString(url.search); + let data = fromQueryString(url.search, key); data[key] = stripNulls(unwrap(value)); url.search = toQueryString(data); return url; }, remove(url, key) { - let data = fromQueryString(url.search); + let data = fromQueryString(url.search, key); delete data[key]; url.search = toQueryString(data); return url; @@ -9488,7 +13511,7 @@ function toQueryString(data) { let entries = buildQueryStringEntries(data); return Object.entries(entries).map(([key, value]) => `${key}=${value}`).join("&"); } -function fromQueryString(search) { +function fromQueryString(search, queryKey) { search = search.replace("?", ""); if (search === "") return {}; @@ -9507,10 +13530,12 @@ function fromQueryString(search) { if (typeof value == "undefined") return; value = decodeURIComponent(value.replaceAll("+", "%20")); - if (!key.includes("[")) { + let decodedKey = decodeURIComponent(key); + let shouldBeHandledAsArray = decodedKey.includes("[") && decodedKey.startsWith(queryKey); + if (!shouldBeHandledAsArray) { data[key] = value; } else { - let dotNotatedKey = key.replaceAll("[", ".").replaceAll("]", ""); + let dotNotatedKey = decodedKey.replaceAll("[", ".").replaceAll("]", ""); insertDotNotatedValueIntoData(dotNotatedKey, value, data); } }); @@ -9520,26 +13545,27 @@ function fromQueryString(search) { // js/lifecycle.js var import_morph = __toESM(require_module_cjs8()); var import_mask = __toESM(require_module_cjs9()); -var import_alpinejs5 = __toESM(require_module_cjs()); +var import_alpinejs6 = __toESM(require_module_cjs()); function start() { setTimeout(() => ensureLivewireScriptIsntMisplaced()); dispatch(document, "livewire:init"); dispatch(document, "livewire:initializing"); - import_alpinejs5.default.plugin(import_morph.default); - import_alpinejs5.default.plugin(history2); - import_alpinejs5.default.plugin(import_intersect.default); - import_alpinejs5.default.plugin(import_resize.default); - import_alpinejs5.default.plugin(import_collapse.default); - import_alpinejs5.default.plugin(import_anchor.default); - import_alpinejs5.default.plugin(import_focus.default); - import_alpinejs5.default.plugin(import_persist2.default); - import_alpinejs5.default.plugin(navigate_default); - import_alpinejs5.default.plugin(import_mask.default); - import_alpinejs5.default.addRootSelector(() => "[wire\\:id]"); - import_alpinejs5.default.onAttributesAdded((el, attributes) => { + import_alpinejs6.default.plugin(import_morph.default); + import_alpinejs6.default.plugin(history); + import_alpinejs6.default.plugin(import_intersect.default); + import_alpinejs6.default.plugin(import_sort.default); + import_alpinejs6.default.plugin(import_resize.default); + import_alpinejs6.default.plugin(import_collapse.default); + import_alpinejs6.default.plugin(import_anchor.default); + import_alpinejs6.default.plugin(import_focus.default); + import_alpinejs6.default.plugin(module_default); + import_alpinejs6.default.plugin(navigate_default); + import_alpinejs6.default.plugin(import_mask.default); + import_alpinejs6.default.addRootSelector(() => "[wire\\:id]"); + import_alpinejs6.default.onAttributesAdded((el, attributes) => { if (!Array.from(attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) return; - let component = closestComponent(el, false); + let component = findComponentByEl(el, false); if (!component) return; attributes.forEach((attribute) => { @@ -9547,31 +13573,50 @@ function start() { return; let directive2 = extractDirective(el, attribute.name); trigger("directive.init", { el, component, directive: directive2, cleanup: (callback) => { - import_alpinejs5.default.onAttributeRemoved(el, directive2.raw, callback); + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); } }); }); }); - import_alpinejs5.default.interceptInit(import_alpinejs5.default.skipDuringClone((el) => { - if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) - return; - if (el.hasAttribute("wire:id")) { - let component2 = initComponent(el); - import_alpinejs5.default.onAttributeRemoved(el, "wire:id", () => { - destroyComponent(component2.id); - }); - } - let component = closestComponent(el, false); - if (component) { - trigger("element.init", { el, component }); - let directives = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name)); - directives.forEach((directive2) => { - trigger("directive.init", { el, component, directive: directive2, cleanup: (callback) => { - import_alpinejs5.default.onAttributeRemoved(el, directive2.raw, callback); - } }); - }); - } - })); - import_alpinejs5.default.start(); + import_alpinejs6.default.interceptInit( + import_alpinejs6.default.skipDuringClone( + (el) => { + if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) + return; + if (el.hasAttribute("wire:id") && !el.__livewire && !hasComponent(el.getAttribute("wire:id"))) { + let component2 = initComponent(el); + import_alpinejs6.default.onAttributeRemoved(el, "wire:id", () => { + destroyComponent(component2.id); + }); + } + let directives = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name)); + directives.forEach((directive2) => { + trigger("directive.global.init", { el, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + let component = findComponentByEl(el, false); + if (component) { + trigger("element.init", { el, component }); + directives.forEach((directive2) => { + trigger("directive.init", { el, component, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + } + }, + (el) => { + if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) + return; + let directives = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name)); + directives.forEach((directive2) => { + trigger("directive.global.init", { el, directive: directive2, cleanup: (callback) => { + import_alpinejs6.default.onAttributeRemoved(el, directive2.raw, callback); + } }); + }); + } + ) + ); + import_alpinejs6.default.start(); setTimeout(() => window.Livewire.initialRenderIsFinished = true); dispatch(document, "livewire:initialized"); } @@ -9586,7 +13631,7 @@ function ensureLivewireScriptIsntMisplaced() { } // js/index.js -var import_alpinejs17 = __toESM(require_module_cjs()); +var import_alpinejs23 = __toESM(require_module_cjs()); // js/features/supportListeners.js on("effect", ({ component, effects }) => { @@ -9595,6 +13640,8 @@ on("effect", ({ component, effects }) => { function registerListeners(component, listeners2) { listeners2.forEach((name) => { let handler = (e) => { + if (component.isLazy && !component.hasBeenLazyLoaded) + return; if (e.__livewire) e.__livewire.receivedBy.push(component); component.$wire.call("__dispatch", name, e.detail || {}); @@ -9602,6 +13649,8 @@ function registerListeners(component, listeners2) { window.addEventListener(name, handler); component.addCleanup(() => window.removeEventListener(name, handler)); component.el.addEventListener(name, (e) => { + if (component.isLazy && !component.hasBeenLazyLoaded) + return; if (!e.__livewire) return; if (e.bubbles) @@ -9614,7 +13663,76 @@ function registerListeners(component, listeners2) { } // js/features/supportScriptsAndAssets.js -var import_alpinejs6 = __toESM(require_module_cjs()); +var import_alpinejs8 = __toESM(require_module_cjs()); + +// js/evaluator.js +var import_alpinejs7 = __toESM(require_module_cjs()); +function getAlpineScopeKeys(el) { + let keys = []; + let currentEl = el; + while (currentEl) { + if (currentEl._x_dataStack && currentEl._x_dataStack.length > 0) { + let ownScope = currentEl._x_dataStack[0]; + for (let key of Object.keys(ownScope)) { + if (!keys.includes(key) && !key.startsWith("$")) + keys.push(key); + } + } + if (currentEl.hasAttribute && currentEl.hasAttribute("wire:id")) + break; + currentEl = currentEl.parentElement; + } + return keys; +} +function evaluateExpression(el, expression, options = {}) { + if (!expression || expression.trim() === "") + return; + let result = import_alpinejs7.default.evaluateRaw(el, expression, options); + if (result instanceof Promise) { + result.catch(() => { + }); + } + return result; +} +function evaluateActionExpression(el, expression, options = {}) { + if (!expression || expression.trim() === "") + return; + let contextualExpression = contextualizeExpression(expression, el); + try { + let result = import_alpinejs7.default.evaluateRaw(el, contextualExpression, options); + if (result instanceof Promise && result._livewireAction) { + result.catch(() => { + }); + } + return result; + } catch (error2) { + console.warn(`Livewire Expression Error: ${error2.message} + +${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); + console.error(error2); + } +} +function contextualizeExpression(expression, el) { + let SKIP = ["JSON", "true", "false", "null", "undefined", "this", "$wire", "$event"]; + if (el) { + SKIP.push(...getAlpineScopeKeys(el)); + } + let strings = []; + let result = expression.replace(/(["'`])(?:(?!\1)[^\\]|\\.)*\1/g, (m) => { + strings.push(m); + return `___${strings.length - 1}___`; + }); + result = result.replace(/(^|[^.\w$])(\$?[a-zA-Z_]\w*)/g, (m, pre, ident, offset) => { + if (SKIP.includes(ident) || /^___\d+___$/.test(ident)) + return pre + ident; + if (result[offset + m.length] === ":") + return pre + ident; + return pre + "$wire." + ident; + }); + return result.replace(/___(\d+)___/g, (m, i) => strings[i]); +} + +// js/features/supportScriptsAndAssets.js var executedScripts = /* @__PURE__ */ new WeakMap(); var executedAssets = /* @__PURE__ */ new Set(); on("payload.intercept", async ({ assets }) => { @@ -9642,8 +13760,15 @@ on("effect", ({ component, effects }) => { Object.entries(scripts).forEach(([key, content]) => { onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, () => { let scriptContent = extractScriptTagContent(content); - import_alpinejs6.default.dontAutoEvaluateFunctions(() => { - import_alpinejs6.default.evaluate(component.el, scriptContent, { "$wire": component.$wire }); + scriptContent = scriptContent.includes("await") ? `(async()=>{ ${scriptContent} })()` : `(()=>{ ${scriptContent} })()`; + import_alpinejs8.default.dontAutoEvaluateFunctions(() => { + evaluateExpression(component.el, scriptContent, { + context: component.$wire, + scope: { + "$wire": component.$wire, + "$js": component.$wire.js + } + }); }); }); }); @@ -9671,10 +13796,11 @@ function extractScriptTagContent(rawHtml) { async function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callback) { if (executedAssets.has(key)) return; - await callback(); executedAssets.add(key); + await callback(); } async function addAssetsToHeadTagOfPage(rawHtml) { + rawHtml = replaceNoncesInHtml(rawHtml); let newDocument = new DOMParser().parseFromString(rawHtml, "text/html"); let newHead = document.adoptNode(newDocument.head); for (let child of newHead.children) { @@ -9687,7 +13813,7 @@ async function addAssetsToHeadTagOfPage(rawHtml) { async function runAssetSynchronously(child) { return new Promise((resolve, reject) => { if (isScript2(child)) { - let script = cloneScriptTag2(child); + let script = cloneScriptTag(child); if (script.src) { script.onload = () => resolve(); script.onerror = () => reject(); @@ -9704,101 +13830,259 @@ async function runAssetSynchronously(child) { function isScript2(el) { return el.tagName.toLowerCase() === "script"; } -function cloneScriptTag2(el) { - let script = document.createElement("script"); - script.textContent = el.textContent; - script.async = el.async; - for (let attr of el.attributes) { - script.setAttribute(attr.name, attr.value); - } - return script; -} // js/features/supportJsEvaluation.js -var import_alpinejs7 = __toESM(require_module_cjs()); +var import_alpinejs9 = __toESM(require_module_cjs()); +import_alpinejs9.default.magic("js", (el) => { + let component = findComponentByEl(el); + return component.$wire.js; +}); on("effect", ({ component, effects }) => { let js = effects.js; let xjs = effects.xjs; if (js) { Object.entries(js).forEach(([method, body]) => { overrideMethod(component, method, () => { - import_alpinejs7.default.evaluate(component.el, body); + evaluateExpression(component.el, body); }); }); } if (xjs) { - xjs.forEach((expression) => { - import_alpinejs7.default.evaluate(component.el, expression); + xjs.forEach(({ expression, params }) => { + params = Object.values(params); + evaluateExpression(component.el, expression, { scope: component.getJsActions(), params }); }); } }); // js/morph.js -var import_alpinejs8 = __toESM(require_module_cjs()); -function morph2(component, el, html) { - let wrapperTag = el.parentElement ? el.parentElement.tagName.toLowerCase() : "div"; +var import_alpinejs10 = __toESM(require_module_cjs()); + +// js/directives/wire-transition.js +var defaultName = "match-element"; +globalDirective("transition", ({ el, directive: directive2, cleanup }) => { +}); +function setTransitionNames(root, options = {}) { + root.querySelectorAll("[wire\\:transition]").forEach((el) => { + if (el.style.viewTransitionName) + return; + let name = el.getAttribute("wire:transition"); + if (!name && options.type) + return; + el.style.viewTransitionName = name || defaultName; + }); +} +function clearTransitionNames(root) { + root.querySelectorAll("[wire\\:transition]").forEach((el) => { + el.style.viewTransitionName = ""; + }); +} +async function transitionDomMutation(fromEl, toEl, callback, options = {}) { + if (options.skip) + return callback(); + if (!fromEl.querySelector("[wire\\:transition]") && !toEl.querySelector("[wire\\:transition]")) + return callback(); + if (typeof document.startViewTransition !== "function") { + return callback(); + } + if (document.querySelector("dialog:modal")) + return callback(); + setTransitionNames(fromEl, options); + let style = document.createElement("style"); + style.textContent = ` + @media (prefers-reduced-motion: reduce) { + ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { + animation: none !important; + } + } + + ::view-transition-old(root) { + animation: none !important; + opacity: 0 !important; + } + + ::view-transition-new(root) { + animation: none !important; + opacity: 1 !important; + } + `; + document.head.appendChild(style); + let update = () => { + callback(); + setTransitionNames(fromEl, options); + }; + let transitionConfig = { update }; + if (options.type) { + transitionConfig.types = [options.type]; + } + let cleanup = () => { + style.remove(); + clearTransitionNames(fromEl); + }; + let skipOnDialog = (transition) => { + let observer = new MutationObserver(() => { + if (document.querySelector("dialog:modal")) { + transition.skipTransition(); + observer.disconnect(); + } + }); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ["open"], + subtree: true + }); + transition.finished.finally(() => observer.disconnect()); + }; + try { + let transition = document.startViewTransition(transitionConfig); + skipOnDialog(transition); + transition.finished.finally(cleanup); + await transition.updateCallbackDone; + } catch (e) { + let transition = document.startViewTransition(update); + skipOnDialog(transition); + transition.finished.finally(cleanup); + await transition.updateCallbackDone; + } +} + +// js/morph.js +async function morph2(component, el, html) { + let wrapperTag = getTagName(el.parentElement); let wrapper = document.createElement(wrapperTag); wrapper.innerHTML = html; let parentComponent; try { - parentComponent = closestComponent(el.parentElement); + parentComponent = findComponentByEl(el.parentElement); } catch (e) { } parentComponent && (wrapper.__livewire = parentComponent); let to = wrapper.firstElementChild; + to.setAttribute("wire:snapshot", component.snapshotEncoded); + let effects = { ...component.effects }; + delete effects.html; + to.setAttribute("wire:effects", JSON.stringify(effects)); to.__livewire = component; trigger("morph", { el, toEl: to, component }); - import_alpinejs8.default.morph(el, to, { - updating: (el2, toEl, childrenOnly, skip) => { - if (isntElement(el2)) + let existingComponentsMap = {}; + el.querySelectorAll("[wire\\:id]").forEach((component2) => { + existingComponentsMap[component2.getAttribute("wire:id")] = component2; + }); + to.querySelectorAll("[wire\\:id]").forEach((child) => { + if (child.hasAttribute("wire:snapshot")) + return; + let wireId = child.getAttribute("wire:id"); + let existingComponent = existingComponentsMap[wireId]; + if (existingComponent) { + child.replaceWith(existingComponent.cloneNode(true)); + } + }); + let transitionOptions = component.effects.transition || {}; + await transitionDomMutation(el, to, () => { + import_alpinejs10.default.morph(el, to, getMorphConfig(component)); + }, transitionOptions); + trigger("morphed", { el, component }); +} +async function morphFragment(component, startNode, endNode, toHTML) { + let fromContainer = startNode.parentElement; + let fromContainerTag = getTagName(fromContainer); + let toContainer = document.createElement(fromContainerTag); + toContainer.innerHTML = toHTML; + toContainer.__livewire = component; + let parentElement = component.el.parentElement; + let parentElementTag = getTagName(parentElement); + let parentComponent; + try { + parentComponent = parentElement ? findComponentByEl(parentElement) : null; + } catch (e) { + } + if (parentComponent) { + let parentProviderWrapper = document.createElement(parentElementTag); + parentProviderWrapper.appendChild(toContainer); + parentProviderWrapper.__livewire = parentComponent; + } + trigger("island.morph", { startNode, endNode, component }); + let transitionOptions = component.effects.transition || {}; + let islandHasTransition = false; + let node = startNode.nextSibling; + while (node && node !== endNode) { + if (node.nodeType === 1 && (node.hasAttribute?.("wire:transition") || node.querySelector?.("[wire\\:transition]"))) { + islandHasTransition = true; + break; + } + node = node.nextSibling; + } + let fromEl = islandHasTransition ? fromContainer : document.createElement("div"); + await transitionDomMutation(fromEl, toContainer, () => { + import_alpinejs10.default.morphBetween(startNode, endNode, toContainer, getMorphConfig(component)); + }, transitionOptions); + trigger("island.morphed", { startNode, endNode, component }); +} +function getMorphConfig(component) { + return { + updating: (el, toEl, childrenOnly, skip, skipChildren, skipUntil) => { + if (isStartFragmentMarker(el) && isStartFragmentMarker(toEl)) { + let metadata = extractFragmentMetadataFromMarkerNode(toEl); + if (metadata.mode !== "morph") { + skipUntil((node) => { + if (isEndFragmentMarker(node)) { + let endMarkerMetadata = extractFragmentMetadataFromMarkerNode(node); + return endMarkerMetadata.token === metadata.token; + } + return false; + }); + } + } + if (isntElement(el)) return; - trigger("morph.updating", { el: el2, toEl, component, skip, childrenOnly }); - if (el2.__livewire_replace === true) - el2.innerHTML = toEl.innerHTML; - if (el2.__livewire_replace_self === true) { - el2.outerHTML = toEl.outerHTML; + trigger("morph.updating", { el, toEl, component, skip, childrenOnly, skipChildren, skipUntil }); + if (el.__livewire_replace === true) + el.innerHTML = toEl.innerHTML; + if (el.__livewire_replace_self === true) { + el.outerHTML = toEl.outerHTML; return skip(); } - if (el2.__livewire_ignore === true) + if (el.__livewire_ignore === true) return skip(); - if (el2.__livewire_ignore_self === true) + if (el.__livewire_ignore_self === true) childrenOnly(); - if (isComponentRootEl(el2) && el2.getAttribute("wire:id") !== component.id) + if (el.__livewire_ignore_children === true) + return skipChildren(); + if (isComponentRootEl(el) && el.getAttribute("wire:id") !== component.id) return skip(); - if (isComponentRootEl(el2)) + if (isComponentRootEl(el)) toEl.__livewire = component; }, - updated: (el2) => { - if (isntElement(el2)) + updated: (el) => { + if (isntElement(el)) return; - trigger("morph.updated", { el: el2, component }); + trigger("morph.updated", { el, component }); }, - removing: (el2, skip) => { - if (isntElement(el2)) + removing: (el, skip) => { + if (isntElement(el)) return; - trigger("morph.removing", { el: el2, component, skip }); + trigger("morph.removing", { el, component, skip }); }, - removed: (el2) => { - if (isntElement(el2)) + removed: (el) => { + if (isntElement(el)) return; - trigger("morph.removed", { el: el2, component }); + trigger("morph.removed", { el, component }); }, - adding: (el2) => { - trigger("morph.adding", { el: el2, component }); + adding: (el) => { + trigger("morph.adding", { el, component }); }, - added: (el2) => { - if (isntElement(el2)) + added: (el) => { + if (isntElement(el)) return; - const closestComponentId = closestComponent(el2).id; - trigger("morph.added", { el: el2 }); + trigger("morph.added", { el }); }, - key: (el2) => { - if (isntElement(el2)) + key: (el) => { + if (isntElement(el)) return; - return el2.hasAttribute(`wire:key`) ? el2.getAttribute(`wire:key`) : el2.hasAttribute(`wire:id`) ? el2.getAttribute(`wire:id`) : el2.id; + return el.hasAttribute(`wire:id`) ? el.getAttribute(`wire:id`) : el.hasAttribute(`wire:key`) ? el.getAttribute(`wire:key`) : el.id; }, lookahead: false - }); + }; } function isntElement(el) { return typeof el.hasAttribute !== "function"; @@ -9806,36 +14090,51 @@ function isntElement(el) { function isComponentRootEl(el) { return el.hasAttribute("wire:id"); } +function getTagName(el) { + let tag = el ? el.tagName.toLowerCase() : "div"; + let customElement = customElements.get(tag); + return customElement ? customElement.name : tag; +} // js/features/supportMorphDom.js -on("effect", ({ component, effects }) => { - let html = effects.html; - if (!html) - return; - queueMicrotask(() => { - queueMicrotask(() => { - morph2(component, component.el, html); +interceptMessage(({ message, onSuccess }) => { + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let html = payload.effects.html; + if (!html) + return; + await morph2(message.component, message.component.el, html); }); }); }); // js/features/supportDispatches.js on("effect", ({ component, effects }) => { - dispatchEvents(component, effects.dispatches || []); + queueMicrotask(() => { + queueMicrotask(() => { + queueMicrotask(() => { + dispatchEvents(component, effects.dispatches || []); + }); + }); + }); }); function dispatchEvents(component, dispatches) { - dispatches.forEach(({ name, params = {}, self: self2 = false, to }) => { + dispatches.forEach(({ name, params = {}, self: self2 = false, component: componentName, ref, el }) => { if (self2) dispatchSelf(component, name, params); - else if (to) - dispatchTo(to, name, params); + else if (componentName) + dispatchTo(componentName, name, params); + else if (ref) + dispatchRef(component, ref, name, params); + else if (el) + dispatchEl(component, el, name, params); else dispatch2(component, name, params); }); } // js/features/supportDisablingFormsDuringRequest.js -var import_alpinejs9 = __toESM(require_module_cjs()); +var import_alpinejs11 = __toESM(require_module_cjs()); var cleanups = new Bag(); on("directive.init", ({ el, directive: directive2, cleanup, component }) => setTimeout(() => { if (directive2.value !== "submit") @@ -9854,7 +14153,7 @@ on("commit", ({ component, respond }) => { }); function disableForm(formEl) { let undos = []; - import_alpinejs9.default.walk(formEl, (el, skip) => { + import_alpinejs11.default.walk(formEl, (el, skip) => { if (!formEl.contains(el)) return; if (el.hasAttribute("wire:ignore")) @@ -9872,11 +14171,23 @@ function disableForm(formEl) { } function shouldMarkDisabled(el) { let tag = el.tagName.toLowerCase(); + let inputTypesThatDontSupportReadonly = [ + "hidden", + "range", + "color", + "checkbox", + "radio", + "file", + "submit", + "image", + "reset", + "button" + ]; if (tag === "select") return true; if (tag === "button" && el.type === "submit") return true; - if (tag === "input" && (el.type === "checkbox" || el.type === "radio")) + if (tag === "input" && inputTypesThatDontSupportReadonly.includes(el.type)) return true; return false; } @@ -9896,74 +14207,6 @@ function markReadOnly(el) { return undo; } -// js/features/supportPropsAndModelables.js -on("commit.pooling", ({ commits }) => { - commits.forEach((commit) => { - let component = commit.component; - getDeepChildrenWithBindings(component, (child) => { - child.$wire.$commit(); - }); - }); -}); -on("commit.pooled", ({ pools }) => { - let commits = getPooledCommits(pools); - commits.forEach((commit) => { - let component = commit.component; - getDeepChildrenWithBindings(component, (child) => { - colocateCommitsByComponent(pools, component, child); - }); - }); -}); -function getPooledCommits(pools) { - let commits = []; - pools.forEach((pool) => { - pool.commits.forEach((commit) => { - commits.push(commit); - }); - }); - return commits; -} -function colocateCommitsByComponent(pools, component, foreignComponent) { - let pool = findPoolWithComponent(pools, component); - let foreignPool = findPoolWithComponent(pools, foreignComponent); - let foreignCommit = foreignPool.findCommitByComponent(foreignComponent); - foreignPool.delete(foreignCommit); - pool.add(foreignCommit); - pools.forEach((pool2) => { - if (pool2.empty()) - pools.delete(pool2); - }); -} -function findPoolWithComponent(pools, component) { - for (let [idx, pool] of pools.entries()) { - if (pool.hasCommitFor(component)) - return pool; - } -} -function getDeepChildrenWithBindings(component, callback) { - getDeepChildren(component, (child) => { - if (hasReactiveProps(child) || hasWireModelableBindings(child)) { - callback(child); - } - }); -} -function hasReactiveProps(component) { - let meta = component.snapshot.memo; - let props = meta.props; - return !!props; -} -function hasWireModelableBindings(component) { - let meta = component.snapshot.memo; - let bindings = meta.bindings; - return !!bindings; -} -function getDeepChildren(component, callback) { - component.children.forEach((child) => { - callback(child); - getDeepChildren(child, callback); - }); -} - // js/features/supportFileDownloads.js on("commit", ({ succeed }) => { succeed(({ effects }) => { @@ -9971,7 +14214,9 @@ on("commit", ({ succeed }) => { if (!download) return; let urlObject = window.webkitURL || window.URL; - let url = urlObject.createObjectURL(base64toBlob(download.content, download.contentType)); + let url = urlObject.createObjectURL( + base64toBlob(download.content, download.contentType) + ); let invisibleLink = document.createElement("a"); invisibleLink.style.display = "none"; invisibleLink.href = url; @@ -10000,34 +14245,8 @@ function base64toBlob(b64Data, contentType = "", sliceSize = 512) { return new Blob(byteArrays, { type: contentType }); } -// js/features/supportLazyLoading.js -var componentsThatWantToBeBundled = /* @__PURE__ */ new WeakSet(); -var componentsThatAreLazy = /* @__PURE__ */ new WeakSet(); -on("component.init", ({ component }) => { - let memo = component.snapshot.memo; - if (memo.lazyLoaded === void 0) - return; - componentsThatAreLazy.add(component); - if (memo.lazyIsolated !== void 0 && memo.lazyIsolated === false) { - componentsThatWantToBeBundled.add(component); - } -}); -on("commit.pooling", ({ commits }) => { - commits.forEach((commit) => { - if (!componentsThatAreLazy.has(commit.component)) - return; - if (componentsThatWantToBeBundled.has(commit.component)) { - commit.isolate = false; - componentsThatWantToBeBundled.delete(commit.component); - } else { - commit.isolate = true; - } - componentsThatAreLazy.delete(commit.component); - }); -}); - // js/features/supportQueryString.js -var import_alpinejs10 = __toESM(require_module_cjs()); +var import_alpinejs12 = __toESM(require_module_cjs()); on("effect", ({ component, effects, cleanup }) => { let queryString = effects["url"]; if (!queryString) @@ -10039,11 +14258,12 @@ on("effect", ({ component, effects, cleanup }) => { let initialValue = [false, null, void 0].includes(except) ? dataGet(component.ephemeral, name) : except; let { replace: replace2, push: push2, pop } = track(as, initialValue, alwaysShow, except); if (use === "replace") { - let effectReference = import_alpinejs10.default.effect(() => { + let effectReference = import_alpinejs12.default.effect(() => { replace2(dataGet(component.reactive, name)); }); - cleanup(() => import_alpinejs10.default.release(effectReference)); + cleanup(() => import_alpinejs12.default.release(effectReference)); } else if (use === "push") { + let popNavigating = false; let forgetCommitHandler = on("commit", ({ component: commitComponent, succeed }) => { if (component !== commitComponent) return; @@ -10052,15 +14272,25 @@ on("effect", ({ component, effects, cleanup }) => { let afterValue = dataGet(component.canonical, name); if (JSON.stringify(beforeValue) === JSON.stringify(afterValue)) return; - push2(afterValue); + if (popNavigating) { + replace2(afterValue); + } else { + push2(afterValue); + } }); }); let forgetPopHandler = pop(async (newValue) => { + popNavigating = true; await component.$wire.set(name, newValue); document.querySelectorAll("input").forEach((el) => { el._x_forceModelUpdate && el._x_forceModelUpdate(el._x_model.get()); }); + requestAnimationFrame(() => popNavigating = false); }); + let currentValue = dataGet(component.ephemeral, name); + if (JSON.stringify(currentValue) !== JSON.stringify(initialValue)) { + replace2(currentValue); + } cleanup(() => { forgetCommitHandler(); forgetPopHandler(); @@ -10119,17 +14349,23 @@ on("effect", ({ component, effects }) => { window.Echo.join(channel)[event_name]((e) => { dispatchSelf(component, event, [e]); }); + component.addCleanup(() => { + window.Echo.leave(channel); + }); } else { let handler = (e) => dispatchSelf(component, event, [e]); window.Echo.join(channel).listen(event_name, handler); component.addCleanup(() => { - window.Echo.leaveChannel(channel); + window.Echo.leave(channel); }); } } else if (channel_type == "notification") { window.Echo.private(channel).notification((notification) => { dispatchSelf(component, event, [notification]); }); + component.addCleanup(() => { + window.Echo.private(channel).stopListening(".Illuminate\\Notifications\\Events\\BroadcastNotificationCreated"); + }); } else { console.warn("Echo channel type not yet supported"); } @@ -10137,24 +14373,41 @@ on("effect", ({ component, effects }) => { }); }); -// js/features/supportIsolating.js -var componentsThatAreIsolated = /* @__PURE__ */ new WeakSet(); -on("component.init", ({ component }) => { - let memo = component.snapshot.memo; - if (memo.isolate !== true) - return; - componentsThatAreIsolated.add(component); -}); -on("commit.pooling", ({ commits }) => { - commits.forEach((commit) => { - if (!componentsThatAreIsolated.has(commit.component)) +// js/features/supportStreaming.js +interceptMessage(({ message, onStream }) => { + onStream(({ json }) => { + let { id, type, name, el, ref, content, mode } = json; + if (type === "island") + return; + let component = findComponent(id); + let targetEl = null; + if (type === "directive") { + const replaceEl = component.el.querySelector(`[wire\\:stream\\.replace="${name}"]`); + if (replaceEl) { + targetEl = replaceEl; + mode = "replace"; + } else { + targetEl = component.el.querySelector(`[wire\\:stream="${name}"]`); + } + } else if (type === "ref") { + targetEl = findRefEl(component, ref); + } else if (type === "element") { + targetEl = component.el.querySelector(el); + } + if (!targetEl) return; - commit.isolate = true; + if (mode === "replace") { + targetEl.innerHTML = content; + } else { + targetEl.insertAdjacentHTML("beforeend", content); + } }); }); // js/features/supportNavigate.js -shouldHideProgressBar() && Alpine.navigate.disableProgressBar(); +document.addEventListener("livewire:initialized", () => { + shouldHideProgressBar() && Alpine.navigate.disableProgressBar(); +}); document.addEventListener("alpine:navigate", (e) => forwardEvent("livewire:navigate", e)); document.addEventListener("alpine:navigating", (e) => forwardEvent("livewire:navigating", e)); document.addEventListener("alpine:navigated", (e) => forwardEvent("livewire:navigated", e)); @@ -10176,51 +14429,401 @@ function shouldRedirectUsingNavigateOr(effects, url, or) { function shouldHideProgressBar() { if (!!document.querySelector("[data-no-progress-bar]")) return true; - if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === false) + if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === "data-no-progress-bar") return true; return false; } // js/features/supportRedirects.js -on("effect", ({ effects }) => { +on("effect", ({ effects, request }) => { if (!effects["redirect"]) return; + let preventDefault = false; + request.invokeOnRedirect({ url: effects["redirect"], preventDefault: () => preventDefault = true }); + if (preventDefault) + return; let url = effects["redirect"]; shouldRedirectUsingNavigateOr(effects, url, () => { window.location.href = url; }); }); -// js/directives/wire-transition.js -var import_alpinejs11 = __toESM(require_module_cjs()); -on("morph.added", ({ el }) => { - el.__addedByMorph = true; +// js/features/supportIslands.js +interceptAction(({ action }) => { + let origin = action.origin; + if (!origin) + return; + let { el, directive: directive2 } = origin; + let islandAttr = Array.from(el.attributes).find((attr) => attr.name.startsWith("wire:island")); + if (islandAttr) { + let islandName = islandAttr.value; + let attrParts = islandAttr.name.split("."); + let isPrepend = attrParts.includes("prepend"); + let isAppend = attrParts.includes("append"); + let mode = isPrepend ? "prepend" : isAppend ? "append" : "morph"; + action.mergeMetadata({ + island: { + name: islandName, + mode + } + }); + return; + } + let fragment = closestIsland(origin.el); + if (!fragment) + return; + action.mergeMetadata({ + island: { + name: fragment.metadata.name, + mode: "morph" + } + }); +}); +interceptMessage(({ message, onSuccess, onStream }) => { + onStream(({ json }) => { + let { type, islandFragment } = json; + if (type !== "island") + return; + renderIsland(message.component, islandFragment); + }); + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let fragments = payload.effects.islandFragments || []; + fragments.forEach(async (fragmentHtml) => { + await renderIsland(message.component, fragmentHtml); + }); + }); + }); +}); +function closestIsland(el) { + return closestFragment(el, { + isMatch: ({ type }) => { + return type === "island"; + } + }); +} +async function renderIsland(component, islandHtml) { + let metadata = extractFragmentMetadataFromHtml(islandHtml); + let fragment = findFragment(component.el, { + isMatch: ({ type, token }) => { + return type === metadata.type && token === metadata.token; + } + }); + if (!fragment) + return; + let incomingMetadata = extractFragmentMetadataFromHtml(islandHtml); + let strippedContent = extractInnerHtmlFromFragmentHtml(islandHtml); + let parentElementTag = getTagName(fragment.startMarkerNode.parentElement); + let mode = incomingMetadata.mode || "morph"; + if (mode === "morph") { + await morphFragment(component, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent); + } else if (mode === "append") { + fragment.append(parentElementTag, strippedContent); + } else if (mode === "prepend") { + fragment.prepend(parentElementTag, strippedContent); + } +} + +// js/features/supportSlots.js +interceptMessage(({ message, onSuccess, onStream }) => { + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let fragments = payload.effects.slotFragments || []; + fragments.forEach(async (fragmentHtml) => { + await renderSlot(message.component, fragmentHtml); + }); + }); + }); +}); +async function renderSlot(component, fragmentHtml) { + let metadata = extractFragmentMetadataFromHtml(fragmentHtml); + let targetComponent = findComponent(metadata.id); + let fragment = findFragment(targetComponent.el, { + isMatch: ({ name, token }) => { + return name === metadata.name && token === metadata.token; + } + }); + if (!fragment) + return; + let strippedContent = extractInnerHtmlFromFragmentHtml(fragmentHtml); + await morphFragment(targetComponent, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent); +} + +// js/features/supportDataLoading.js +interceptMessage(({ message, onSend, onFinish }) => { + let undos = []; + onSend(() => { + message.actions.forEach((action) => { + let origin = action.origin; + if (!origin) + return; + let el = origin.hasOwnProperty("targetEl") ? origin.targetEl : origin.el; + if (!el) + return; + el.setAttribute("data-loading", "true"); + undos.push(() => { + el.removeAttribute("data-loading"); + }); + }); + }); + onFinish(() => undos.forEach((undo) => undo())); +}); + +// js/directives/wire-current.js +var import_alpinejs13 = __toESM(require_module_cjs()); +import_alpinejs13.default.addInitSelector(() => `[wire\\:current]`); +var onPageChanges = /* @__PURE__ */ new Map(); +document.addEventListener("livewire:navigated", () => { + onPageChanges.forEach((i) => i(new URL(window.location.href))); +}); +globalDirective("current", ({ el, directive: directive2, cleanup }) => { + let expression = directive2.expression; + let options = { + exact: directive2.modifiers.includes("exact"), + strict: directive2.modifiers.includes("strict"), + ignore: directive2.modifiers.includes("ignore") + }; + if (options.ignore) + return; + if (expression.startsWith("#")) + return; + if (!el.hasAttribute("href")) + return; + let href = el.getAttribute("href"); + let hrefUrl = new URL(href, window.location.href); + let classes = expression.split(" ").filter(String); + let refreshCurrent = (url) => { + if (pathMatches(hrefUrl, url, options)) { + el.classList.add(...classes); + el.setAttribute("data-current", ""); + } else { + el.classList.remove(...classes); + el.removeAttribute("data-current"); + } + }; + refreshCurrent(new URL(window.location.href)); + onPageChanges.set(el, refreshCurrent); + cleanup(() => onPageChanges.delete(el)); +}); +function pathMatches(hrefUrl, actualUrl, options = {}) { + if (hrefUrl.hostname !== actualUrl.hostname) + return false; + let hrefPath = options.strict ? hrefUrl.pathname : hrefUrl.pathname.replace(/\/+$/, ""); + let actualPath = options.strict ? actualUrl.pathname : actualUrl.pathname.replace(/\/+$/, ""); + if (options.exact) { + return hrefPath === actualPath; + } + let hrefPathSegments = hrefPath.split("/"); + let actualPathSegments = actualPath.split("/"); + for (let i = 0; i < hrefPathSegments.length; i++) { + if (hrefPathSegments[i] !== actualPathSegments[i]) + return false; + } + return true; +} + +// js/directives/wire-navigate.js +var import_alpinejs14 = __toESM(require_module_cjs()); +var wireNavigateSelectors = [ + "[wire\\:navigate]", + "[wire\\:navigate\\.hover]", + "[wire\\:navigate\\.preserve-scroll]", + "[wire\\:navigate\\.preserve-scroll\\.hover]", + "[wire\\:navigate\\.hover\\.preserve-scroll]" +]; +var wireNavigateSelector = wireNavigateSelectors.join(", "); +var attributeMap = { + "wire:navigate": "x-navigate", + "wire:navigate.hover": "x-navigate.hover", + "wire:navigate.preserve-scroll": "x-navigate.preserve-scroll", + "wire:navigate.preserve-scroll.hover": "x-navigate.preserve-scroll.hover", + "wire:navigate.hover.preserve-scroll": "x-navigate.hover.preserve-scroll" +}; +wireNavigateSelectors.forEach((selector) => { + import_alpinejs14.default.addInitSelector(() => selector); +}); +import_alpinejs14.default.interceptInit( + import_alpinejs14.default.skipDuringClone((el) => { + for (let [wireAttr, alpineDirective] of Object.entries(attributeMap)) { + if (el.hasAttribute(wireAttr)) { + import_alpinejs14.default.bind(el, { [alpineDirective]: true }); + break; + } + } + }) +); +document.addEventListener("alpine:navigating", () => { + Livewire.all().forEach((component) => { + component.inscribeSnapshotAndEffectsOnElement(); + }); +}); + +// js/features/supportDataCurrent.js +document.addEventListener("livewire:navigated", () => { + updateNavigateLinks(); }); -directive("transition", ({ el, directive: directive2, component, cleanup }) => { - let visibility = import_alpinejs11.default.reactive({ state: el.__addedByMorph ? false : true }); - import_alpinejs11.default.bind(el, { - [directive2.rawName.replace("wire:", "x-")]: "", - "x-show"() { - return visibility.state; +document.addEventListener("DOMContentLoaded", () => { + updateNavigateLinks(); +}); +function updateNavigateLinks() { + let currentUrl = new URL(window.location.href); + let options = { + exact: true + }; + document.querySelectorAll(wireNavigateSelector).forEach((el) => { + if (Array.from(el.attributes).some((attr) => attr.name.startsWith("wire:current"))) + return; + let href = el.getAttribute("href"); + if (!href || href.startsWith("#")) + return; + try { + let hrefUrl = new URL(href, window.location.href); + if (pathMatches(hrefUrl, currentUrl, options)) { + el.setAttribute("data-current", ""); + } else { + el.removeAttribute("data-current"); + } + } catch (e) { } }); - el.__addedByMorph && setTimeout(() => visibility.state = true); - let cleanups2 = []; - cleanups2.push(on("morph.removing", ({ el: el2, skip }) => { - skip(); - el2.addEventListener("transitionend", () => { - el2.remove(); - }); - visibility.state = false; - cleanups2.push(on("morph", ({ component: morphComponent }) => { - if (morphComponent !== component) +} + +// js/features/supportPreserveScroll.js +interceptMessage(({ message, onSuccess }) => { + onSuccess(({ onSync, onMorph, onRender }) => { + message.actions.forEach((action) => { + let origin = action.origin; + if (!origin || !origin.directive) return; - el2.remove(); - cleanups2.forEach((i) => i()); - })); - })); - cleanup(() => cleanups2.forEach((i) => i())); + let directive2 = origin.directive; + if (!directive2.modifiers.includes("preserve-scroll")) + return; + let oldHeight; + let oldScroll; + onSync(() => { + oldHeight = document.body.scrollHeight; + oldScroll = window.scrollY; + }); + onMorph(async () => { + let heightDiff = document.body.scrollHeight - oldHeight; + window.scrollTo(0, oldScroll + heightDiff); + oldHeight = null; + oldScroll = null; + }); + }); + }); +}); + +// js/features/supportWireIntersect.js +var import_alpinejs15 = __toESM(require_module_cjs()); +import_alpinejs15.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:intersect")) { + let { name, value } = el.attributes[i]; + let directive2 = extractDirective(el, name); + let modifierString = name.split("wire:intersect")[1]; + let expression = value.trim(); + import_alpinejs15.default.bind(el, { + ["x-intersect" + modifierString](e) { + directive2.eventContext = e; + let component = findComponentByEl(el, false); + if (!component) + return; + component.addActionContext({ + el, + directive: directive2 + }); + evaluateActionExpression(el, expression); + } + }); + } + } +}); + +// js/features/supportWireSort.js +var import_alpinejs16 = __toESM(require_module_cjs()); +import_alpinejs16.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:sort:item")) { + let directive2 = extractDirective(el, el.attributes[i].name); + let modifierString = directive2.modifiers.join("."); + let expression = directive2.expression; + import_alpinejs16.default.bind(el, { + ["x-sort:item" + modifierString]() { + return expression; + } + }); + } else if (el.attributes[i].name.startsWith("wire:sort:group-id")) { + continue; + } else if (el.attributes[i].name.startsWith("wire:sort:group")) { + return; + } else if (el.attributes[i].name.startsWith("wire:sort")) { + let directive2 = extractDirective(el, el.attributes[i].name); + let attribute = directive2.rawName.replace("wire:", "x-"); + if (directive2.modifiers.includes("async")) { + attribute = attribute.replace(".async", ""); + } + if (directive2.modifiers.includes("renderless")) { + attribute = attribute.replace(".renderless", ""); + } + if (directive2.modifiers.includes("prepend")) { + attribute = attribute.replace(".prepend", ""); + } + if (directive2.modifiers.includes("append")) { + attribute = attribute.replace(".append", ""); + } + let expression = directive2.expression; + import_alpinejs16.default.bind(el, { + [attribute]() { + setNextActionOrigin({ el, directive: directive2 }); + let sortableChildren = Array.from(el.children).filter( + (child) => child.hasAttribute("x-sort:item") || child.hasAttribute("wire:sort:item") + ); + let itemPosition = sortableChildren.findIndex((child) => child._x_sort_key === this.$item); + let position = itemPosition !== -1 ? itemPosition : this.$position; + let params = [this.$item, position]; + let scope = { $item: this.$item, $position: position }; + let sortId = el.getAttribute("wire:sort:group-id"); + if (sortId !== null) { + params.push(sortId); + scope.$id = sortId; + } + evaluateActionExpression(el, expression, { scope, params }); + } + }); + } + } +}); + +// js/features/supportCssModules.js +var loadedStyles = /* @__PURE__ */ new Set(); +on("effect", ({ component, effects }) => { + if (effects.styleModule) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/css/${encodedName}.css?v=${effects.styleModule}`; + if (!loadedStyles.has(path)) { + loadedStyles.add(path); + injectStylesheet(path); + } + } + if (effects.globalStyleModule) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/css/${encodedName}.global.css?v=${effects.globalStyleModule}`; + if (!loadedStyles.has(path)) { + loadedStyles.add(path); + injectStylesheet(path); + } + } }); +function injectStylesheet(href) { + let link = document.createElement("link"); + link.rel = "stylesheet"; + link.href = href; + let nonce2 = getNonce(); + if (nonce2) + link.nonce = nonce2; + document.head.appendChild(link); +} // js/debounce.js var callbacksByComponent = new WeakBag(); @@ -10234,9 +14837,9 @@ function callAndClearComponentDebounces(component, callback) { } // js/directives/wire-wildcard.js -var import_alpinejs12 = __toESM(require_module_cjs()); +var import_alpinejs17 = __toESM(require_module_cjs()); on("directive.init", ({ el, directive: directive2, cleanup, component }) => { - if (["snapshot", "effects", "model", "init", "loading", "poll", "ignore", "id", "data", "key", "target", "dirty"].includes(directive2.value)) + if (["snapshot", "effects", "model", "init", "loading", "poll", "ignore", "id", "data", "key", "target", "dirty", "sort"].includes(directive2.value)) return; if (customDirectiveHasBeenRegistered(directive2.value)) return; @@ -10244,11 +14847,40 @@ on("directive.init", ({ el, directive: directive2, cleanup, component }) => { if (directive2.value === "submit" && !directive2.modifiers.includes("prevent")) { attribute = attribute + ".prevent"; } - let cleanupBinding = import_alpinejs12.default.bind(el, { + if (directive2.modifiers.includes("async")) { + attribute = attribute.replace(".async", ""); + } + if (directive2.modifiers.includes("renderless")) { + attribute = attribute.replace(".renderless", ""); + } + if (directive2.modifiers.includes("prepend")) { + attribute = attribute.replace(".prepend", ""); + } + if (directive2.modifiers.includes("append")) { + attribute = attribute.replace(".append", ""); + } + let cleanupBinding = import_alpinejs17.default.bind(el, { [attribute](e) { + directive2.eventContext = e; + directive2.wire = component.$wire; let execute = () => { callAndClearComponentDebounces(component, () => { - import_alpinejs12.default.evaluate(el, "$wire." + directive2.expression, { scope: { $event: e } }); + if (directive2.value === "submit") { + let submitButton = e.submitter || el.querySelector('button[type="submit"], input[type="submit"]'); + setNextActionOrigin({ el, directive: directive2, targetEl: submitButton }); + } else { + setNextActionOrigin({ el, directive: directive2 }); + } + let livewireOptions = e.detail?.livewire; + if (livewireOptions?.interceptAction) { + setNextActionInterceptor(livewireOptions.interceptAction); + } + let expression = directive2.expression; + if (livewireOptions?.defaultParams !== void 0 && !expression.includes("(")) { + let params = Array.isArray(livewireOptions.defaultParams) ? livewireOptions.defaultParams : [livewireOptions.defaultParams]; + expression = expression + "(" + params.map((p) => JSON.stringify(p)).join(", ") + ")"; + } + evaluateActionExpression(el, expression, { scope: { $event: e } }); }); }; if (el.__livewire_confirm) { @@ -10265,23 +14897,6 @@ on("directive.init", ({ el, directive: directive2, cleanup, component }) => { cleanup(cleanupBinding); }); -// js/directives/wire-navigate.js -var import_alpinejs13 = __toESM(require_module_cjs()); -import_alpinejs13.default.addInitSelector(() => `[wire\\:navigate]`); -import_alpinejs13.default.addInitSelector(() => `[wire\\:navigate\\.hover]`); -import_alpinejs13.default.interceptInit(import_alpinejs13.default.skipDuringClone((el) => { - if (el.hasAttribute("wire:navigate")) { - import_alpinejs13.default.bind(el, { ["x-navigate"]: true }); - } else if (el.hasAttribute("wire:navigate.hover")) { - import_alpinejs13.default.bind(el, { ["x-navigate.hover"]: true }); - } -})); -document.addEventListener("alpine:navigating", () => { - Livewire.all().forEach((component) => { - component.inscribeSnapshotAndEffectsOnElement(); - }); -}); - // js/directives/wire-confirm.js directive("confirm", ({ el, directive: directive2 }) => { let message = directive2.expression; @@ -10311,30 +14926,6 @@ directive("confirm", ({ el, directive: directive2 }) => { }; }); -// js/directives/shared.js -function toggleBooleanStateDirective(el, directive2, isTruthy, cachedDisplay = null) { - isTruthy = directive2.modifiers.includes("remove") ? !isTruthy : isTruthy; - if (directive2.modifiers.includes("class")) { - let classes = directive2.expression.split(" ").filter(String); - if (isTruthy) { - el.classList.add(...classes); - } else { - el.classList.remove(...classes); - } - } else if (directive2.modifiers.includes("attr")) { - if (isTruthy) { - el.setAttribute(directive2.expression, true); - } else { - el.removeAttribute(directive2.expression); - } - } else { - let cache = cachedDisplay ?? window.getComputedStyle(el, null).getPropertyValue("display"); - let display = ["inline", "block", "table", "flex", "grid", "inline-flex"].filter((i) => directive2.modifiers.includes(i))[0] || "inline-block"; - display = directive2.modifiers.includes("remove") && !isTruthy ? cache : display; - el.style.display = isTruthy ? display : "none"; - } -} - // js/directives/wire-offline.js var offlineHandlers = /* @__PURE__ */ new Set(); var onlineHandlers = /* @__PURE__ */ new Set(); @@ -10355,7 +14946,7 @@ directive("offline", ({ el, directive: directive2, cleanup }) => { directive("loading", ({ el, directive: directive2, component, cleanup }) => { let { targets, inverted } = getTargets(el); let [delay, abortDelay] = applyDelay(directive2); - let cleanupA = whenTargetsArePartOfRequest(component, targets, inverted, [ + let cleanupA = whenTargetsArePartOfRequest(component, el, targets, inverted, [ () => delay(() => toggleBooleanStateDirective(el, directive2, true)), () => abortDelay(() => toggleBooleanStateDirective(el, directive2, false)) ]); @@ -10406,15 +14997,40 @@ function applyDelay(directive2) { } ]; } -function whenTargetsArePartOfRequest(component, targets, inverted, [startLoading, endLoading]) { - return on("commit", ({ component: iComponent, commit: payload, respond }) => { - if (iComponent !== component) - return; - if (targets.length > 0 && containsTargets(payload, targets) === inverted) +function whenTargetsArePartOfRequest(component, el, targets, inverted, [startLoading, endLoading]) { + return interceptMessage(({ message, onSend, onSuccess, onFinish }) => { + if (component !== message.component) return; - startLoading(); - respond(() => { - endLoading(); + if (targets.length === 0) { + let island = closestIsland(el); + if (island && !message.hasActionForIsland(island)) { + return; + } + if (!island && !message.hasActionForComponent()) { + return; + } + } + let matches = true; + let cleared = false; + onSend(({ payload }) => { + if (targets.length > 0 && containsTargets(payload, targets) === inverted) { + matches = false; + } + matches && startLoading(); + }); + onSuccess(({ onEffect }) => { + onEffect(() => { + if (matches && !cleared) { + endLoading(); + cleared = true; + } + }); + }); + onFinish(() => { + if (matches && !cleared) { + endLoading(); + cleared = true; + } }); }); } @@ -10476,20 +15092,16 @@ function getTargets(el) { let inverted = false; if (directives.has("target")) { let directive2 = directives.get("target"); - let raw = directive2.expression; if (directive2.modifiers.includes("except")) inverted = true; - if (raw.includes("(") && raw.includes(")")) { - targets.push({ target: directive2.method, params: quickHash(JSON.stringify(directive2.params)) }); - } else if (raw.includes(",")) { - raw.split(",").map((i) => i.trim()).forEach((target) => { - targets.push({ target }); + directive2.methods.forEach(({ method, params }) => { + targets.push({ + target: method, + params: params && params.length > 0 ? quickHash(JSON.stringify(params)) : void 0 }); - } else { - targets.push({ target: raw }); - } + }); } else { - let nonActionOrModelLivewireDirectives = ["init", "dirty", "offline", "target", "loading", "poll", "ignore", "key", "id"]; + let nonActionOrModelLivewireDirectives = ["init", "dirty", "offline", "navigate", "target", "loading", "poll", "ignore", "key", "id"]; directives.all().filter((i) => !nonActionOrModelLivewireDirectives.includes(i.value)).map((i) => i.expression.split("(")[0]).forEach((target) => targets.push({ target })); } return { targets, inverted }; @@ -10498,70 +15110,6 @@ function quickHash(subject) { return btoa(encodeURIComponent(subject)); } -// js/directives/wire-stream.js -directive("stream", ({ el, directive: directive2, cleanup }) => { - let { expression, modifiers } = directive2; - let off = on("stream", ({ name, content, replace: replace2 }) => { - if (name !== expression) - return; - if (modifiers.includes("replace") || replace2) { - el.innerHTML = content; - } else { - el.innerHTML = el.innerHTML + content; - } - }); - cleanup(off); -}); -on("request", ({ respond }) => { - respond((mutableObject) => { - let response = mutableObject.response; - if (!response.headers.has("X-Livewire-Stream")) - return; - mutableObject.response = { - ok: true, - redirected: false, - status: 200, - async text() { - let finalResponse = await interceptStreamAndReturnFinalResponse(response, (streamed) => { - trigger("stream", streamed); - }); - if (contentIsFromDump(finalResponse)) { - this.ok = false; - } - return finalResponse; - } - }; - }); -}); -async function interceptStreamAndReturnFinalResponse(response, callback) { - let reader = response.body.getReader(); - let remainingResponse = ""; - while (true) { - let { done, value: chunk } = await reader.read(); - let decoder = new TextDecoder(); - let output = decoder.decode(chunk); - let [streams, remaining] = extractStreamObjects(remainingResponse + output); - streams.forEach((stream) => { - callback(stream); - }); - remainingResponse = remaining; - if (done) - return remainingResponse; - } -} -function extractStreamObjects(raw) { - let regex = /({"stream":true.*?"endStream":true})/g; - let matches = raw.match(regex); - let parsed = []; - if (matches) { - for (let i = 0; i < matches.length; i++) { - parsed.push(JSON.parse(matches[i]).body); - } - } - let remaining = raw.replace(regex, ""); - return [parsed, remaining]; -} - // js/directives/wire-replace.js directive("replace", ({ el, directive: directive2 }) => { if (directive2.modifiers.includes("self")) { @@ -10575,63 +15123,25 @@ directive("replace", ({ el, directive: directive2 }) => { directive("ignore", ({ el, directive: directive2 }) => { if (directive2.modifiers.includes("self")) { el.__livewire_ignore_self = true; + } else if (directive2.modifiers.includes("children")) { + el.__livewire_ignore_children = true; } else { el.__livewire_ignore = true; } }); -// js/directives/wire-dirty.js -var refreshDirtyStatesByComponent = new WeakBag(); -on("commit", ({ component, respond }) => { - respond(() => { - setTimeout(() => { - refreshDirtyStatesByComponent.each(component, (i) => i(false)); - }); - }); -}); -directive("dirty", ({ el, directive: directive2, component }) => { - let targets = dirtyTargets(el); - let dirty = Alpine.reactive({ state: false }); - let oldIsDirty = false; - let initialDisplay = el.style.display; - let refreshDirtyState = (isDirty) => { - toggleBooleanStateDirective(el, directive2, isDirty, initialDisplay); - oldIsDirty = isDirty; - }; - refreshDirtyStatesByComponent.add(component, refreshDirtyState); - Alpine.effect(() => { - let isDirty = false; - if (targets.length === 0) { - isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive); - } else { - for (let i = 0; i < targets.length; i++) { - if (isDirty) - break; - let target = targets[i]; - isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target)); - } - } - if (oldIsDirty !== isDirty) { - refreshDirtyState(isDirty); - } - oldIsDirty = isDirty; - }); -}); -function dirtyTargets(el) { - let directives = getDirectives(el); - let targets = []; - if (directives.has("model")) { - targets.push(directives.get("model").expression); - } - if (directives.has("target")) { - targets = targets.concat(directives.get("target").expression.split(",").map((s) => s.trim())); +// js/directives/wire-cloak.js +var import_alpinejs18 = __toESM(require_module_cjs()); +import_alpinejs18.default.interceptInit((el) => { + if (el.hasAttribute("wire:cloak")) { + import_alpinejs18.default.mutateDom(() => el.removeAttribute("wire:cloak")); } - return targets; -} +}); // js/directives/wire-model.js -var import_alpinejs14 = __toESM(require_module_cjs()); +var import_alpinejs19 = __toESM(require_module_cjs()); directive("model", ({ el, directive: directive2, component, cleanup }) => { + component = findComponentByEl(el); let { expression, modifiers } = directive2; if (!expression) { return console.warn("Livewire: [wire:model] is missing a value.", el); @@ -10642,52 +15152,102 @@ directive("model", ({ el, directive: directive2, component, cleanup }) => { if (el.type && el.type.toLowerCase() === "file") { return handleFileUpload(el, expression, component, cleanup); } - let isLive = modifiers.includes("live"); - let isLazy = modifiers.includes("lazy") || modifiers.includes("change"); - let onBlur = modifiers.includes("blur"); - let isDebounced = modifiers.includes("debounce"); - let update = expression.startsWith("$parent") ? () => component.$wire.$parent.$commit() : () => component.$wire.$commit(); - let debouncedUpdate = isTextInput(el) && !isDebounced && isLive ? debounce(update, 150) : update; - import_alpinejs14.default.bind(el, { - ["@change"]() { - isLazy && update(); - }, - ["@blur"]() { - onBlur && update(); - }, - ["x-model" + getModifierTail(modifiers)]() { - return { - get() { - return dataGet(component.$wire, expression); - }, - set(value) { - dataSet(component.$wire, expression, value); - isLive && !isLazy && !onBlur && debouncedUpdate(); + let liveIndex = modifiers.indexOf("live"); + let isLive = liveIndex !== -1; + let hasLazyWithoutLive = modifiers.includes("lazy") && !isLive; + let shouldSendNetwork = isLive || hasLazyWithoutLive; + let ephemeralModifiers = isLive && !hasLazyWithoutLive ? modifiers.slice(0, liveIndex) : modifiers.slice(); + let networkModifiers = isLive && !hasLazyWithoutLive ? modifiers.slice(liveIndex + 1) : []; + if (hasLazyWithoutLive) { + ephemeralModifiers = ephemeralModifiers.filter((m) => m !== "lazy"); + networkModifiers.push("change"); + } + if (!(ephemeralModifiers.includes("deep") || networkModifiers.includes("deep"))) { + if (!ephemeralModifiers.includes("self")) { + ephemeralModifiers.push("self"); + } + } + let ephemeralOnBlur = ephemeralModifiers.includes("blur"); + let ephemeralOnChange = ephemeralModifiers.includes("change") || ephemeralModifiers.includes("lazy"); + let ephemeralOnEnter = ephemeralModifiers.includes("enter"); + let hasEphemeralTriggers = ephemeralOnBlur || ephemeralOnChange || ephemeralOnEnter; + let networkOnBlur = networkModifiers.includes("blur"); + let networkOnChange = networkModifiers.includes("change") || networkModifiers.includes("lazy"); + let networkOnEnter = networkModifiers.includes("enter"); + let hasNetworkTriggers = networkOnBlur || networkOnChange || networkOnEnter; + let isDebounced = networkModifiers.includes("debounce"); + let isThrottled = networkModifiers.includes("throttle"); + let update = () => { + setNextActionOrigin({ el, directive: directive2 }); + if (isLive || isDebounced) { + setNextActionMetadata({ type: "model.live" }); + } + expression.startsWith("$parent") ? component.$wire.$parent.$commit() : component.$wire.$commit(); + }; + let debouncedUpdate = update; + if (shouldSendNetwork && !hasNetworkTriggers && isRealtimeInput(el) || isDebounced) { + debouncedUpdate = debounce(debouncedUpdate, parseModifierDuration(networkModifiers, "debounce") || 150); + } + if (isThrottled) { + debouncedUpdate = throttle(debouncedUpdate, parseModifierDuration(networkModifiers, "throttle") || 150); + } + let bindings = {}; + if (shouldSendNetwork && networkOnBlur) { + bindings["@blur"] = () => update(); + } + if (shouldSendNetwork && networkOnChange) { + bindings["@change"] = () => update(); + } + if (shouldSendNetwork && networkOnEnter) { + bindings["@keydown.enter"] = () => update(); + } + let xModelTail = getModifierTail(ephemeralModifiers); + bindings["x-model" + xModelTail] = () => { + return { + get() { + return dataGet(component.$wire, expression); + }, + set(value) { + dataSet(component.$wire, expression, value); + if (shouldSendNetwork && !hasNetworkTriggers) { + debouncedUpdate(); } - }; - } - }); + } + }; + }; + import_alpinejs19.default.bind(el, bindings); }); function getModifierTail(modifiers) { modifiers = modifiers.filter((i) => ![ - "lazy", - "defer" + "defer", + "live" ].includes(i)); + if (modifiers.includes("debounce")) { + let index = modifiers.indexOf("debounce"); + let hasDuration = parseModifierDuration(modifiers, "debounce") !== void 0; + modifiers.splice(index, hasDuration ? 2 : 1); + } + if (modifiers.includes("throttle")) { + let index = modifiers.indexOf("throttle"); + let hasDuration = parseModifierDuration(modifiers, "throttle") !== void 0; + modifiers.splice(index, hasDuration ? 2 : 1); + } if (modifiers.length === 0) return ""; return "." + modifiers.join("."); } -function isTextInput(el) { - return ["INPUT", "TEXTAREA"].includes(el.tagName.toUpperCase()) && !["checkbox", "radio"].includes(el.type); +function isRealtimeInput(el) { + return ["INPUT", "TEXTAREA"].includes(el.tagName.toUpperCase()) && !["checkbox", "radio"].includes(el.type) || el.tagName.toUpperCase() === "UI-SLIDER" || el.tagName.toUpperCase() === "UI-COMPOSER"; } function componentIsMissingProperty(component, property) { if (property.startsWith("$parent")) { - let parent = closestComponent(component.el.parentElement, false); + let parent = findComponentByEl(component.el.parentElement, false); if (!parent) return true; - return componentIsMissingProperty(parent, property.split("$parent.")[1]); + return componentIsMissingProperty(parent, property.slice(7).replace(/^\./, "")); } - let baseProperty = property.split(".")[0]; + let match = property.match(/^\[['"]?([^\]'"]+)['"]?\]/) || property.match(/^([^.\[]+)/); + let baseProperty = match[1]; return !Object.keys(component.canonical).includes(baseProperty); } function debounce(func, wait) { @@ -10702,30 +15262,52 @@ function debounce(func, wait) { timeout = setTimeout(later, wait); }; } +function throttle(func, limit) { + let inThrottle; + return function() { + let context = this, args = arguments; + if (!inThrottle) { + func.apply(context, args); + inThrottle = true; + setTimeout(() => inThrottle = false, limit); + } + }; +} +function parseModifierDuration(modifiers, key) { + let index = modifiers.indexOf(key); + if (index === -1) + return void 0; + let nextModifier = modifiers[modifiers.indexOf(key) + 1] || "invalid-wait"; + let duration = nextModifier.split("ms")[0]; + return !isNaN(duration) ? duration : void 0; +} // js/directives/wire-init.js -var import_alpinejs15 = __toESM(require_module_cjs()); -directive("init", ({ el, directive: directive2 }) => { - let fullMethod = directive2.expression ?? "$refresh"; - import_alpinejs15.default.evaluate(el, `$wire.${fullMethod}`); +directive("init", ({ component, el, directive: directive2 }) => { + let fullMethod = directive2.expression ? directive2.expression : "$refresh"; + setNextActionOrigin({ el, directive: directive2 }); + evaluateActionExpression(el, fullMethod); }); // js/directives/wire-poll.js -var import_alpinejs16 = __toESM(require_module_cjs()); -directive("poll", ({ el, directive: directive2 }) => { +directive("poll", ({ el, directive: directive2, component }) => { let interval = extractDurationFrom(directive2.modifiers, 2e3); let { start: start2, pauseWhile, throttleWhile, stopWhen } = poll(() => { - triggerComponentRequest(el, directive2); + triggerComponentRequest(el, directive2, component); }, interval); start2(); throttleWhile(() => theTabIsInTheBackground() && theDirectiveIsMissingKeepAlive(directive2)); pauseWhile(() => theDirectiveHasVisible(directive2) && theElementIsNotInTheViewport(el)); pauseWhile(() => theDirectiveIsOffTheElement(el)); pauseWhile(() => livewireIsOffline()); + pauseWhile(() => sessionIsExpired()); stopWhen(() => theElementIsDisconnected(el)); }); -function triggerComponentRequest(el, directive2) { - import_alpinejs16.default.evaluate(el, directive2.expression ? "$wire." + directive2.expression : "$wire.$commit()"); +function triggerComponentRequest(el, directive2, component) { + setNextActionOrigin({ el, directive: directive2, targetEl: null }); + setNextActionMetadata({ type: "poll" }); + let fullMethod = directive2.expression ? directive2.expression : "$refresh"; + evaluateActionExpression(el, fullMethod); } function poll(callback, interval = 2e3) { let pauseConditions = []; @@ -10813,10 +15395,65 @@ function extractDurationFrom(modifiers, defaultDuration) { return durationInMilliSeconds || defaultDuration; } +// js/directives/wire-show.js +var import_alpinejs20 = __toESM(require_module_cjs()); +import_alpinejs20.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:show")) { + let { name, value } = el.attributes[i]; + let modifierString = name.split("wire:show")[1]; + let expression = value.trim(); + import_alpinejs20.default.bind(el, { + ["x-show" + modifierString]() { + return evaluateActionExpression(el, expression); + } + }); + } + } +}); + +// js/directives/wire-text.js +var import_alpinejs21 = __toESM(require_module_cjs()); +import_alpinejs21.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:text")) { + let { name, value } = el.attributes[i]; + let modifierString = name.split("wire:text")[1]; + let expression = value.trim(); + import_alpinejs21.default.bind(el, { + ["x-text" + modifierString]() { + return evaluateActionExpression(el, expression); + } + }); + } + } +}); + +// js/directives/wire-bind.js +var import_alpinejs22 = __toESM(require_module_cjs()); +import_alpinejs22.default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:bind:")) { + let { name, value } = el.attributes[i]; + let remainder = name.split("wire:bind")[1]; + let expression = value.trim(); + import_alpinejs22.default.bind(el, { + ["x-bind" + remainder]() { + return evaluateActionExpression(el, expression); + } + }); + } + } +}); + // js/index.js var Livewire2 = { directive, dispatchTo, + interceptAction: (callback) => interceptAction(callback), + interceptMessage: (callback) => interceptMessage(callback), + interceptRequest: (callback) => interceptRequest(callback), + fireAction: (component, method, params = [], metadata = {}) => fireAction(component, method, params, metadata), start, first, find, @@ -10828,7 +15465,7 @@ var Livewire2 = { dispatch: dispatchGlobal, on: on2, get navigate() { - return import_alpinejs17.default.navigate; + return import_alpinejs23.default.navigate; } }; var warnAboutMultipleInstancesOf = (entity) => console.warn(`Detected multiple instances of ${entity} running`); @@ -10837,7 +15474,7 @@ if (window.Livewire) if (window.Alpine) warnAboutMultipleInstancesOf("Alpine"); window.Livewire = Livewire2; -window.Alpine = import_alpinejs17.default; +window.Alpine = import_alpinejs23.default; if (window.livewireScriptConfig === void 0) { window.Alpine.__fromLivewire = true; document.addEventListener("DOMContentLoaded", () => { @@ -10847,7 +15484,7 @@ if (window.livewireScriptConfig === void 0) { Livewire2.start(); }); } -var export_Alpine = import_alpinejs17.default; +var export_Alpine = import_alpinejs23.default; export { export_Alpine as Alpine, Livewire2 as Livewire @@ -10856,15 +15493,22 @@ export { * @license MIT */ /*! Bundled license information: +sortablejs/Sortable.min.js: + (*! Sortable 1.15.2 - MIT | git://github.com/SortableJS/Sortable.git *) +*/ +/*! Bundled license information: + tabbable/dist/index.js: (*! - * tabbable 5.3.3 + * tabbable 6.4.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE *) focus-trap/dist/focus-trap.js: (*! - * focus-trap 6.9.4 + * focus-trap 8.0.0 * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE *) + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *) */ +//# sourceMappingURL=livewire.esm.js.map diff --git a/admin/public/vendor/livewire/livewire.esm.js.map b/admin/public/vendor/livewire/livewire.esm.js.map new file mode 100644 index 00000000..750a2bbf --- /dev/null +++ b/admin/public/vendor/livewire/livewire.esm.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../node_modules/alpinejs/dist/module.cjs.js", "../node_modules/@alpinejs/collapse/dist/module.cjs.js", "../node_modules/@alpinejs/focus/dist/module.cjs.js", "../node_modules/@alpinejs/intersect/dist/module.cjs.js", "../node_modules/@alpinejs/sort/dist/module.cjs.js", "../node_modules/@alpinejs/resize/dist/module.cjs.js", "../node_modules/@alpinejs/anchor/dist/module.cjs.js", "../node_modules/nprogress/nprogress.js", "../node_modules/@alpinejs/morph/dist/module.cjs.js", "../node_modules/@alpinejs/mask/dist/module.cjs.js", "../js/utils.js", "../js/features/supportFileUploads.js", "../js/features/supportEntangle.js", "../js/$wire.js", "../js/hooks.js", "../js/request/interactions.js", "../js/request/request.js", "../js/request/interceptor.js", "../js/utils/modal.js", "../js/request/messageBus.js", "../js/request/message.js", "../js/request/action.js", "../js/request/legacy.js", "../js/request/index.js", "../js/features/supportErrors.js", "../js/features/supportRefs.js", "../js/directives.js", "../js/directives/shared.js", "../js/directives/wire-dirty.js", "../js/features/supportJsModules.js", "../js/component.js", "../js/fragment.js", "../js/store.js", "../js/events.js", "../js/lifecycle.js", "../node_modules/@alpinejs/persist/dist/module.esm.js", "../js/plugins/history/utils.js", "../js/plugins/history/coordinator.js", "../js/plugins/navigate/history.js", "../js/plugins/navigate/links.js", "../js/plugins/navigate/fetch.js", "../js/plugins/navigate/prefetch.js", "../js/plugins/navigate/teleport.js", "../js/plugins/navigate/scroll.js", "../js/plugins/navigate/persist.js", "../js/plugins/navigate/bar.js", "../js/plugins/navigate/popover.js", "../js/plugins/navigate/page.js", "../js/plugins/navigate/index.js", "../js/plugins/history/index.js", "../js/index.js", "../js/features/supportListeners.js", "../js/features/supportScriptsAndAssets.js", "../js/evaluator.js", "../js/features/supportJsEvaluation.js", "../js/morph.js", "../js/directives/wire-transition.js", "../js/features/supportMorphDom.js", "../js/features/supportDispatches.js", "../js/features/supportDisablingFormsDuringRequest.js", "../js/features/supportFileDownloads.js", "../js/features/supportQueryString.js", "../js/features/supportLaravelEcho.js", "../js/features/supportStreaming.js", "../js/features/supportNavigate.js", "../js/features/supportRedirects.js", "../js/features/supportIslands.js", "../js/features/supportSlots.js", "../js/features/supportDataLoading.js", "../js/directives/wire-current.js", "../js/directives/wire-navigate.js", "../js/features/supportDataCurrent.js", "../js/features/supportPreserveScroll.js", "../js/features/supportWireIntersect.js", "../js/features/supportWireSort.js", "../js/features/supportCssModules.js", "../js/debounce.js", "../js/directives/wire-wildcard.js", "../js/directives/wire-confirm.js", "../js/directives/wire-offline.js", "../js/directives/wire-loading.js", "../js/directives/wire-replace.js", "../js/directives/wire-ignore.js", "../js/directives/wire-cloak.js", "../js/directives/wire-model.js", "../js/directives/wire-init.js", "../js/directives/wire-poll.js", "../js/directives/wire-show.js", "../js/directives/wire-text.js", "../js/directives/wire-bind.js"], + "sourcesContent": ["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// node_modules/@vue/shared/dist/shared.cjs.js\nvar require_shared_cjs = __commonJS({\n \"node_modules/@vue/shared/dist/shared.cjs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n function makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n }\n var PatchFlagNames = {\n [\n 1\n /* TEXT */\n ]: `TEXT`,\n [\n 2\n /* CLASS */\n ]: `CLASS`,\n [\n 4\n /* STYLE */\n ]: `STYLE`,\n [\n 8\n /* PROPS */\n ]: `PROPS`,\n [\n 16\n /* FULL_PROPS */\n ]: `FULL_PROPS`,\n [\n 32\n /* HYDRATE_EVENTS */\n ]: `HYDRATE_EVENTS`,\n [\n 64\n /* STABLE_FRAGMENT */\n ]: `STABLE_FRAGMENT`,\n [\n 128\n /* KEYED_FRAGMENT */\n ]: `KEYED_FRAGMENT`,\n [\n 256\n /* UNKEYED_FRAGMENT */\n ]: `UNKEYED_FRAGMENT`,\n [\n 512\n /* NEED_PATCH */\n ]: `NEED_PATCH`,\n [\n 1024\n /* DYNAMIC_SLOTS */\n ]: `DYNAMIC_SLOTS`,\n [\n 2048\n /* DEV_ROOT_FRAGMENT */\n ]: `DEV_ROOT_FRAGMENT`,\n [\n -1\n /* HOISTED */\n ]: `HOISTED`,\n [\n -2\n /* BAIL */\n ]: `BAIL`\n };\n var slotFlagsText = {\n [\n 1\n /* STABLE */\n ]: \"STABLE\",\n [\n 2\n /* DYNAMIC */\n ]: \"DYNAMIC\",\n [\n 3\n /* FORWARDED */\n ]: \"FORWARDED\"\n };\n var GLOBALS_WHITE_LISTED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt\";\n var isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);\n var range = 2;\n function generateCodeFrame(source, start2 = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start2) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start2 - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start2);\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n }\n var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\n var isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\n var isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`);\n var unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\n var attrValidationCache = {};\n function isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n }\n var propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n };\n var isNoUnitNumericStyleProp = /* @__PURE__ */ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width`);\n var isKnownAttr = /* @__PURE__ */ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`);\n function normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = normalizeStyle(isString(item) ? parseStringStyle(item) : item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isObject2(value)) {\n return value;\n }\n }\n var listDelimiterRE = /;(?![^(]*\\))/g;\n var propertyDelimiterRE = /:(.+)/;\n function parseStringStyle(cssText) {\n const ret = {};\n cssText.split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n }\n function stringifyStyle(styles) {\n let ret = \"\";\n if (!styles) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\" && isNoUnitNumericStyleProp(normalizedKey)) {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n }\n function normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject2(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n }\n var HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\n var SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\n var VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\n var isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\n var isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\n var isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n var escapeRE = /[\"'&<>]/;\n function escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n }\n var commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\n function escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n }\n function looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n }\n function looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject2(a);\n bValidType = isObject2(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n }\n function looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n }\n var toDisplayString = (val) => {\n return val == null ? \"\" : isObject2(val) ? JSON.stringify(val, replacer, 2) : String(val);\n };\n var replacer = (_key, val) => {\n if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n entries[`${key} =>`] = val2;\n return entries;\n }, {})\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n } else if (isObject2(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n };\n var babelParserDefaultPlugins = [\n \"bigInt\",\n \"optionalChaining\",\n \"nullishCoalescingOperator\"\n ];\n var EMPTY_OBJ = Object.freeze({});\n var EMPTY_ARR = Object.freeze([]);\n var NOOP = () => {\n };\n var NO = () => false;\n var onRE = /^on[^a-z]/;\n var isOn = (key) => onRE.test(key);\n var isModelListener = (key) => key.startsWith(\"onUpdate:\");\n var extend = Object.assign;\n var remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n };\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasOwn = (val, key) => hasOwnProperty.call(val, key);\n var isArray = Array.isArray;\n var isMap = (val) => toTypeString(val) === \"[object Map]\";\n var isSet = (val) => toTypeString(val) === \"[object Set]\";\n var isDate = (val) => val instanceof Date;\n var isFunction = (val) => typeof val === \"function\";\n var isString = (val) => typeof val === \"string\";\n var isSymbol = (val) => typeof val === \"symbol\";\n var isObject2 = (val) => val !== null && typeof val === \"object\";\n var isPromise = (val) => {\n return isObject2(val) && isFunction(val.then) && isFunction(val.catch);\n };\n var objectToString = Object.prototype.toString;\n var toTypeString = (value) => objectToString.call(value);\n var toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n };\n var isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\n var isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\n var isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n );\n var cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n };\n var camelizeRE = /-(\\w)/g;\n var camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n });\n var hyphenateRE = /\\B([A-Z])/g;\n var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\n var capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\n var toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\n var hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue);\n var invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n };\n var def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n };\n var toNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n };\n var _globalThis;\n var getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n };\n exports.EMPTY_ARR = EMPTY_ARR;\n exports.EMPTY_OBJ = EMPTY_OBJ;\n exports.NO = NO;\n exports.NOOP = NOOP;\n exports.PatchFlagNames = PatchFlagNames;\n exports.babelParserDefaultPlugins = babelParserDefaultPlugins;\n exports.camelize = camelize;\n exports.capitalize = capitalize;\n exports.def = def;\n exports.escapeHtml = escapeHtml;\n exports.escapeHtmlComment = escapeHtmlComment;\n exports.extend = extend;\n exports.generateCodeFrame = generateCodeFrame;\n exports.getGlobalThis = getGlobalThis;\n exports.hasChanged = hasChanged;\n exports.hasOwn = hasOwn;\n exports.hyphenate = hyphenate;\n exports.invokeArrayFns = invokeArrayFns;\n exports.isArray = isArray;\n exports.isBooleanAttr = isBooleanAttr2;\n exports.isDate = isDate;\n exports.isFunction = isFunction;\n exports.isGloballyWhitelisted = isGloballyWhitelisted;\n exports.isHTMLTag = isHTMLTag;\n exports.isIntegerKey = isIntegerKey;\n exports.isKnownAttr = isKnownAttr;\n exports.isMap = isMap;\n exports.isModelListener = isModelListener;\n exports.isNoUnitNumericStyleProp = isNoUnitNumericStyleProp;\n exports.isObject = isObject2;\n exports.isOn = isOn;\n exports.isPlainObject = isPlainObject;\n exports.isPromise = isPromise;\n exports.isReservedProp = isReservedProp;\n exports.isSSRSafeAttrName = isSSRSafeAttrName;\n exports.isSVGTag = isSVGTag;\n exports.isSet = isSet;\n exports.isSpecialBooleanAttr = isSpecialBooleanAttr;\n exports.isString = isString;\n exports.isSymbol = isSymbol;\n exports.isVoidTag = isVoidTag;\n exports.looseEqual = looseEqual;\n exports.looseIndexOf = looseIndexOf;\n exports.makeMap = makeMap;\n exports.normalizeClass = normalizeClass;\n exports.normalizeStyle = normalizeStyle;\n exports.objectToString = objectToString;\n exports.parseStringStyle = parseStringStyle;\n exports.propsToAttrMap = propsToAttrMap;\n exports.remove = remove;\n exports.slotFlagsText = slotFlagsText;\n exports.stringifyStyle = stringifyStyle;\n exports.toDisplayString = toDisplayString;\n exports.toHandlerKey = toHandlerKey;\n exports.toNumber = toNumber;\n exports.toRawType = toRawType;\n exports.toTypeString = toTypeString;\n }\n});\n\n// node_modules/@vue/shared/index.js\nvar require_shared = __commonJS({\n \"node_modules/@vue/shared/index.js\"(exports, module2) {\n \"use strict\";\n if (false) {\n module2.exports = null;\n } else {\n module2.exports = require_shared_cjs();\n }\n }\n});\n\n// node_modules/@vue/reactivity/dist/reactivity.cjs.js\nvar require_reactivity_cjs = __commonJS({\n \"node_modules/@vue/reactivity/dist/reactivity.cjs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var shared = require_shared();\n var targetMap = /* @__PURE__ */ new WeakMap();\n var effectStack = [];\n var activeEffect;\n var ITERATE_KEY = Symbol(\"iterate\");\n var MAP_KEY_ITERATE_KEY = Symbol(\"Map key iterate\");\n function isEffect(fn) {\n return fn && fn._isEffect === true;\n }\n function effect3(fn, options = shared.EMPTY_OBJ) {\n if (isEffect(fn)) {\n fn = fn.raw;\n }\n const effect4 = createReactiveEffect(fn, options);\n if (!options.lazy) {\n effect4();\n }\n return effect4;\n }\n function stop2(effect4) {\n if (effect4.active) {\n cleanup(effect4);\n if (effect4.options.onStop) {\n effect4.options.onStop();\n }\n effect4.active = false;\n }\n }\n var uid = 0;\n function createReactiveEffect(fn, options) {\n const effect4 = function reactiveEffect() {\n if (!effect4.active) {\n return fn();\n }\n if (!effectStack.includes(effect4)) {\n cleanup(effect4);\n try {\n enableTracking();\n effectStack.push(effect4);\n activeEffect = effect4;\n return fn();\n } finally {\n effectStack.pop();\n resetTracking();\n activeEffect = effectStack[effectStack.length - 1];\n }\n }\n };\n effect4.id = uid++;\n effect4.allowRecurse = !!options.allowRecurse;\n effect4._isEffect = true;\n effect4.active = true;\n effect4.raw = fn;\n effect4.deps = [];\n effect4.options = options;\n return effect4;\n }\n function cleanup(effect4) {\n const { deps } = effect4;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect4);\n }\n deps.length = 0;\n }\n }\n var shouldTrack = true;\n var trackStack = [];\n function pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n }\n function enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n }\n function resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n }\n function track(target, type, key) {\n if (!shouldTrack || activeEffect === void 0) {\n return;\n }\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = /* @__PURE__ */ new Set());\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (activeEffect.options.onTrack) {\n activeEffect.options.onTrack({\n effect: activeEffect,\n target,\n type,\n key\n });\n }\n }\n }\n function trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n const effects = /* @__PURE__ */ new Set();\n const add2 = (effectsToAdd) => {\n if (effectsToAdd) {\n effectsToAdd.forEach((effect4) => {\n if (effect4 !== activeEffect || effect4.allowRecurse) {\n effects.add(effect4);\n }\n });\n }\n };\n if (type === \"clear\") {\n depsMap.forEach(add2);\n } else if (key === \"length\" && shared.isArray(target)) {\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newValue) {\n add2(dep);\n }\n });\n } else {\n if (key !== void 0) {\n add2(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!shared.isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (shared.isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (shared.isIntegerKey(key)) {\n add2(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!shared.isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (shared.isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (shared.isMap(target)) {\n add2(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const run = (effect4) => {\n if (effect4.options.onTrigger) {\n effect4.options.onTrigger({\n effect: effect4,\n target,\n key,\n type,\n newValue,\n oldValue,\n oldTarget\n });\n }\n if (effect4.options.scheduler) {\n effect4.options.scheduler(effect4);\n } else {\n effect4();\n }\n };\n effects.forEach(run);\n }\n var isNonTrackableKeys = /* @__PURE__ */ shared.makeMap(`__proto__,__v_isRef,__isVue`);\n var builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(shared.isSymbol));\n var get2 = /* @__PURE__ */ createGetter();\n var shallowGet = /* @__PURE__ */ createGetter(false, true);\n var readonlyGet = /* @__PURE__ */ createGetter(true);\n var shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);\n var arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\n function createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw2(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw2));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw2(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n }\n function createGetter(isReadonly2 = false, shallow = false) {\n return function get3(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = shared.isArray(target);\n if (!isReadonly2 && targetIsArray && shared.hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (shared.isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n const shouldUnwrap = !targetIsArray || !shared.isIntegerKey(key);\n return shouldUnwrap ? res.value : res;\n }\n if (shared.isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive3(res);\n }\n return res;\n };\n }\n var set2 = /* @__PURE__ */ createSetter();\n var shallowSet = /* @__PURE__ */ createSetter(true);\n function createSetter(shallow = false) {\n return function set3(target, key, value, receiver) {\n let oldValue = target[key];\n if (!shallow) {\n value = toRaw2(value);\n oldValue = toRaw2(oldValue);\n if (!shared.isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = shared.isArray(target) && shared.isIntegerKey(key) ? Number(key) < target.length : shared.hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw2(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (shared.hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n };\n }\n function deleteProperty(target, key) {\n const hadKey = shared.hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n function has(target, key) {\n const result = Reflect.has(target, key);\n if (!shared.isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n function ownKeys(target) {\n track(target, \"iterate\", shared.isArray(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n }\n var mutableHandlers = {\n get: get2,\n set: set2,\n deleteProperty,\n has,\n ownKeys\n };\n var readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n {\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n {\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n };\n var shallowReactiveHandlers = /* @__PURE__ */ shared.extend({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n });\n var shallowReadonlyHandlers = /* @__PURE__ */ shared.extend({}, readonlyHandlers, {\n get: shallowReadonlyGet\n });\n var toReactive = (value) => shared.isObject(value) ? reactive3(value) : value;\n var toReadonly = (value) => shared.isObject(value) ? readonly(value) : value;\n var toShallow = (value) => value;\n var getProto = (v) => Reflect.getPrototypeOf(v);\n function get$1(target, key, isReadonly2 = false, isShallow = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const rawKey = toRaw2(key);\n if (key !== rawKey) {\n !isReadonly2 && track(rawTarget, \"get\", key);\n }\n !isReadonly2 && track(rawTarget, \"get\", rawKey);\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n }\n function has$1(key, isReadonly2 = false) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const rawKey = toRaw2(key);\n if (key !== rawKey) {\n !isReadonly2 && track(rawTarget, \"has\", key);\n }\n !isReadonly2 && track(rawTarget, \"has\", rawKey);\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n }\n function size(target, isReadonly2 = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n !isReadonly2 && track(toRaw2(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n }\n function add(value) {\n value = toRaw2(value);\n const target = toRaw2(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n }\n function set$1(key, value) {\n value = toRaw2(value);\n const target = toRaw2(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw2(key);\n hadKey = has2.call(target, key);\n } else {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (shared.hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n }\n function deleteEntry(key) {\n const target = toRaw2(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw2(key);\n hadKey = has2.call(target, key);\n } else {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3 ? get3.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n function clear() {\n const target = toRaw2(this);\n const hadItems = target.size !== 0;\n const oldTarget = shared.isMap(target) ? new Map(target) : new Set(target);\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n }\n function createForEach(isReadonly2, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n }\n function createIterableMethod(method, isReadonly2, isShallow) {\n return function(...args) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw2(target);\n const targetIsMap = shared.isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n }\n function createReadonlyMethod(type) {\n return function(...args) {\n {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${shared.capitalize(type)} operation ${key}failed: target is readonly.`, toRaw2(this));\n }\n return type === \"delete\" ? false : this;\n };\n }\n function createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n }\n var [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\n function createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(shared.hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n };\n }\n var mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n };\n var shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n };\n var readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n };\n var shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n };\n function checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw2(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = shared.toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`);\n }\n }\n var reactiveMap = /* @__PURE__ */ new WeakMap();\n var shallowReactiveMap = /* @__PURE__ */ new WeakMap();\n var readonlyMap = /* @__PURE__ */ new WeakMap();\n var shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\n function targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n }\n function getTargetType(value) {\n return value[\n \"__v_skip\"\n /* SKIP */\n ] || !Object.isExtensible(value) ? 0 : targetTypeMap(shared.toRawType(value));\n }\n function reactive3(target) {\n if (target && target[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ]) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n }\n function shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n }\n function readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n }\n function shallowReadonly(target) {\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\n }\n function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!shared.isObject(target)) {\n {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\n \"__v_raw\"\n /* RAW */\n ] && !(isReadonly2 && target[\n \"__v_isReactive\"\n /* IS_REACTIVE */\n ])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n }\n function isReactive2(value) {\n if (isReadonly(value)) {\n return isReactive2(value[\n \"__v_raw\"\n /* RAW */\n ]);\n }\n return !!(value && value[\n \"__v_isReactive\"\n /* IS_REACTIVE */\n ]);\n }\n function isReadonly(value) {\n return !!(value && value[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ]);\n }\n function isProxy(value) {\n return isReactive2(value) || isReadonly(value);\n }\n function toRaw2(observed) {\n return observed && toRaw2(observed[\n \"__v_raw\"\n /* RAW */\n ]) || observed;\n }\n function markRaw(value) {\n shared.def(value, \"__v_skip\", true);\n return value;\n }\n var convert = (val) => shared.isObject(val) ? reactive3(val) : val;\n function isRef(r) {\n return Boolean(r && r.__v_isRef === true);\n }\n function ref(value) {\n return createRef(value);\n }\n function shallowRef(value) {\n return createRef(value, true);\n }\n var RefImpl = class {\n constructor(value, _shallow = false) {\n this._shallow = _shallow;\n this.__v_isRef = true;\n this._rawValue = _shallow ? value : toRaw2(value);\n this._value = _shallow ? value : convert(value);\n }\n get value() {\n track(toRaw2(this), \"get\", \"value\");\n return this._value;\n }\n set value(newVal) {\n newVal = this._shallow ? newVal : toRaw2(newVal);\n if (shared.hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = this._shallow ? newVal : convert(newVal);\n trigger(toRaw2(this), \"set\", \"value\", newVal);\n }\n }\n };\n function createRef(rawValue, shallow = false) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n }\n function triggerRef(ref2) {\n trigger(toRaw2(ref2), \"set\", \"value\", ref2.value);\n }\n function unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n }\n var shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n };\n function proxyRefs(objectWithRefs) {\n return isReactive2(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n }\n var CustomRefImpl = class {\n constructor(factory) {\n this.__v_isRef = true;\n const { get: get3, set: set3 } = factory(() => track(this, \"get\", \"value\"), () => trigger(this, \"set\", \"value\"));\n this._get = get3;\n this._set = set3;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n };\n function customRef(factory) {\n return new CustomRefImpl(factory);\n }\n function toRefs(object) {\n if (!isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = shared.isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n }\n var ObjectRefImpl = class {\n constructor(_object, _key) {\n this._object = _object;\n this._key = _key;\n this.__v_isRef = true;\n }\n get value() {\n return this._object[this._key];\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n };\n function toRef(object, key) {\n return isRef(object[key]) ? object[key] : new ObjectRefImpl(object, key);\n }\n var ComputedRefImpl = class {\n constructor(getter, _setter, isReadonly2) {\n this._setter = _setter;\n this._dirty = true;\n this.__v_isRef = true;\n this.effect = effect3(getter, {\n lazy: true,\n scheduler: () => {\n if (!this._dirty) {\n this._dirty = true;\n trigger(toRaw2(this), \"set\", \"value\");\n }\n }\n });\n this[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ] = isReadonly2;\n }\n get value() {\n const self2 = toRaw2(this);\n if (self2._dirty) {\n self2._value = this.effect();\n self2._dirty = false;\n }\n track(self2, \"get\", \"value\");\n return self2._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n };\n function computed(getterOrOptions) {\n let getter;\n let setter;\n if (shared.isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n setter = () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n };\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n return new ComputedRefImpl(getter, setter, shared.isFunction(getterOrOptions) || !getterOrOptions.set);\n }\n exports.ITERATE_KEY = ITERATE_KEY;\n exports.computed = computed;\n exports.customRef = customRef;\n exports.effect = effect3;\n exports.enableTracking = enableTracking;\n exports.isProxy = isProxy;\n exports.isReactive = isReactive2;\n exports.isReadonly = isReadonly;\n exports.isRef = isRef;\n exports.markRaw = markRaw;\n exports.pauseTracking = pauseTracking;\n exports.proxyRefs = proxyRefs;\n exports.reactive = reactive3;\n exports.readonly = readonly;\n exports.ref = ref;\n exports.resetTracking = resetTracking;\n exports.shallowReactive = shallowReactive;\n exports.shallowReadonly = shallowReadonly;\n exports.shallowRef = shallowRef;\n exports.stop = stop2;\n exports.toRaw = toRaw2;\n exports.toRef = toRef;\n exports.toRefs = toRefs;\n exports.track = track;\n exports.trigger = trigger;\n exports.triggerRef = triggerRef;\n exports.unref = unref;\n }\n});\n\n// node_modules/@vue/reactivity/index.js\nvar require_reactivity = __commonJS({\n \"node_modules/@vue/reactivity/index.js\"(exports, module2) {\n \"use strict\";\n if (false) {\n module2.exports = null;\n } else {\n module2.exports = require_reactivity_cjs();\n }\n }\n});\n\n// packages/alpinejs/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n Alpine: () => src_default,\n default: () => module_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/alpinejs/src/scheduler.js\nvar flushPending = false;\nvar flushing = false;\nvar queue = [];\nvar lastFlushedIndex = -1;\nvar transactionActive = false;\nfunction scheduler(callback) {\n queueJob(callback);\n}\nfunction startTransaction() {\n transactionActive = true;\n}\nfunction commitTransaction() {\n transactionActive = false;\n queueFlush();\n}\nfunction queueJob(job) {\n if (!queue.includes(job))\n queue.push(job);\n queueFlush();\n}\nfunction dequeueJob(job) {\n let index = queue.indexOf(job);\n if (index !== -1 && index > lastFlushedIndex)\n queue.splice(index, 1);\n}\nfunction queueFlush() {\n if (!flushing && !flushPending) {\n if (transactionActive)\n return;\n flushPending = true;\n queueMicrotask(flushJobs);\n }\n}\nfunction flushJobs() {\n flushPending = false;\n flushing = true;\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n lastFlushedIndex = i;\n }\n queue.length = 0;\n lastFlushedIndex = -1;\n flushing = false;\n}\n\n// packages/alpinejs/src/reactivity.js\nvar reactive;\nvar effect;\nvar release;\nvar raw;\nvar shouldSchedule = true;\nfunction disableEffectScheduling(callback) {\n shouldSchedule = false;\n callback();\n shouldSchedule = true;\n}\nfunction setReactivityEngine(engine) {\n reactive = engine.reactive;\n release = engine.release;\n effect = (callback) => engine.effect(callback, { scheduler: (task) => {\n if (shouldSchedule) {\n scheduler(task);\n } else {\n task();\n }\n } });\n raw = engine.raw;\n}\nfunction overrideEffect(override) {\n effect = override;\n}\nfunction elementBoundEffect(el) {\n let cleanup = () => {\n };\n let wrappedEffect = (callback) => {\n let effectReference = effect(callback);\n if (!el._x_effects) {\n el._x_effects = /* @__PURE__ */ new Set();\n el._x_runEffects = () => {\n el._x_effects.forEach((i) => i());\n };\n }\n el._x_effects.add(effectReference);\n cleanup = () => {\n if (effectReference === void 0)\n return;\n el._x_effects.delete(effectReference);\n release(effectReference);\n };\n return effectReference;\n };\n return [wrappedEffect, () => {\n cleanup();\n }];\n}\nfunction watch(getter, callback) {\n let firstTime = true;\n let oldValue;\n let oldValueJSON;\n let effectReference = effect(() => {\n let value = getter();\n let newJSON = JSON.stringify(value);\n if (!firstTime) {\n if (typeof value === \"object\" || value !== oldValue) {\n let previousValue = typeof oldValue === \"object\" ? JSON.parse(oldValueJSON) : oldValue;\n queueMicrotask(() => {\n callback(value, previousValue);\n });\n }\n }\n oldValue = value;\n oldValueJSON = newJSON;\n firstTime = false;\n });\n return () => release(effectReference);\n}\nasync function transaction(callback) {\n startTransaction();\n try {\n await callback();\n await Promise.resolve();\n } finally {\n commitTransaction();\n }\n}\n\n// packages/alpinejs/src/mutation.js\nvar onAttributeAddeds = [];\nvar onElRemoveds = [];\nvar onElAddeds = [];\nfunction onElAdded(callback) {\n onElAddeds.push(callback);\n}\nfunction onElRemoved(el, callback) {\n if (typeof callback === \"function\") {\n if (!el._x_cleanups)\n el._x_cleanups = [];\n el._x_cleanups.push(callback);\n } else {\n callback = el;\n onElRemoveds.push(callback);\n }\n}\nfunction onAttributesAdded(callback) {\n onAttributeAddeds.push(callback);\n}\nfunction onAttributeRemoved(el, name, callback) {\n if (!el._x_attributeCleanups)\n el._x_attributeCleanups = {};\n if (!el._x_attributeCleanups[name])\n el._x_attributeCleanups[name] = [];\n el._x_attributeCleanups[name].push(callback);\n}\nfunction cleanupAttributes(el, names) {\n if (!el._x_attributeCleanups)\n return;\n Object.entries(el._x_attributeCleanups).forEach(([name, value]) => {\n if (names === void 0 || names.includes(name)) {\n value.forEach((i) => i());\n delete el._x_attributeCleanups[name];\n }\n });\n}\nfunction cleanupElement(el) {\n var _a, _b;\n (_a = el._x_effects) == null ? void 0 : _a.forEach(dequeueJob);\n while ((_b = el._x_cleanups) == null ? void 0 : _b.length)\n el._x_cleanups.pop()();\n}\nvar observer = new MutationObserver(onMutate);\nvar currentlyObserving = false;\nfunction startObservingMutations() {\n observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });\n currentlyObserving = true;\n}\nfunction stopObservingMutations() {\n flushObserver();\n observer.disconnect();\n currentlyObserving = false;\n}\nvar queuedMutations = [];\nfunction flushObserver() {\n let records = observer.takeRecords();\n queuedMutations.push(() => records.length > 0 && onMutate(records));\n let queueLengthWhenTriggered = queuedMutations.length;\n queueMicrotask(() => {\n if (queuedMutations.length === queueLengthWhenTriggered) {\n while (queuedMutations.length > 0)\n queuedMutations.shift()();\n }\n });\n}\nfunction mutateDom(callback) {\n if (!currentlyObserving)\n return callback();\n stopObservingMutations();\n let result = callback();\n startObservingMutations();\n return result;\n}\nvar isCollecting = false;\nvar deferredMutations = [];\nfunction deferMutations() {\n isCollecting = true;\n}\nfunction flushAndStopDeferringMutations() {\n isCollecting = false;\n onMutate(deferredMutations);\n deferredMutations = [];\n}\nfunction onMutate(mutations) {\n if (isCollecting) {\n deferredMutations = deferredMutations.concat(mutations);\n return;\n }\n let addedNodes = [];\n let removedNodes = /* @__PURE__ */ new Set();\n let addedAttributes = /* @__PURE__ */ new Map();\n let removedAttributes = /* @__PURE__ */ new Map();\n for (let i = 0; i < mutations.length; i++) {\n if (mutations[i].target._x_ignoreMutationObserver)\n continue;\n if (mutations[i].type === \"childList\") {\n mutations[i].removedNodes.forEach((node) => {\n if (node.nodeType !== 1)\n return;\n if (!node._x_marker)\n return;\n removedNodes.add(node);\n });\n mutations[i].addedNodes.forEach((node) => {\n if (node.nodeType !== 1)\n return;\n if (removedNodes.has(node)) {\n removedNodes.delete(node);\n return;\n }\n if (node._x_marker)\n return;\n addedNodes.push(node);\n });\n }\n if (mutations[i].type === \"attributes\") {\n let el = mutations[i].target;\n let name = mutations[i].attributeName;\n let oldValue = mutations[i].oldValue;\n let add = () => {\n if (!addedAttributes.has(el))\n addedAttributes.set(el, []);\n addedAttributes.get(el).push({ name, value: el.getAttribute(name) });\n };\n let remove = () => {\n if (!removedAttributes.has(el))\n removedAttributes.set(el, []);\n removedAttributes.get(el).push(name);\n };\n if (el.hasAttribute(name) && oldValue === null) {\n add();\n } else if (el.hasAttribute(name)) {\n remove();\n add();\n } else {\n remove();\n }\n }\n }\n removedAttributes.forEach((attrs, el) => {\n cleanupAttributes(el, attrs);\n });\n addedAttributes.forEach((attrs, el) => {\n onAttributeAddeds.forEach((i) => i(el, attrs));\n });\n for (let node of removedNodes) {\n if (addedNodes.some((i) => i.contains(node)))\n continue;\n onElRemoveds.forEach((i) => i(node));\n }\n for (let node of addedNodes) {\n if (!node.isConnected)\n continue;\n onElAddeds.forEach((i) => i(node));\n }\n addedNodes = null;\n removedNodes = null;\n addedAttributes = null;\n removedAttributes = null;\n}\n\n// packages/alpinejs/src/scope.js\nfunction scope(node) {\n return mergeProxies(closestDataStack(node));\n}\nfunction addScopeToNode(node, data2, referenceNode) {\n node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)];\n return () => {\n node._x_dataStack = node._x_dataStack.filter((i) => i !== data2);\n };\n}\nfunction closestDataStack(node) {\n if (node._x_dataStack)\n return node._x_dataStack;\n if (typeof ShadowRoot === \"function\" && node instanceof ShadowRoot) {\n return closestDataStack(node.host);\n }\n if (!node.parentNode) {\n return [];\n }\n return closestDataStack(node.parentNode);\n}\nfunction mergeProxies(objects) {\n return new Proxy({ objects }, mergeProxyTrap);\n}\nfunction keyInPrototypeChain(obj, key) {\n if (obj === null || obj === Object.prototype)\n return null;\n if (Object.prototype.hasOwnProperty.call(obj, key))\n return obj;\n return keyInPrototypeChain(Object.getPrototypeOf(obj), key);\n}\nvar mergeProxyTrap = {\n ownKeys({ objects }) {\n return Array.from(\n new Set(objects.flatMap((i) => Object.keys(i)))\n );\n },\n has({ objects }, name) {\n if (name == Symbol.unscopables)\n return false;\n return objects.some(\n (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name)\n );\n },\n get({ objects }, name, thisProxy) {\n if (name == \"toJSON\")\n return collapseProxies;\n return Reflect.get(\n objects.find(\n (obj) => Reflect.has(obj, name)\n ) || {},\n name,\n thisProxy\n );\n },\n set({ objects }, name, value, thisProxy) {\n let target;\n for (const obj of objects) {\n target = keyInPrototypeChain(obj, name);\n if (target)\n break;\n }\n if (!target)\n target = objects[objects.length - 1];\n const descriptor = Object.getOwnPropertyDescriptor(target, name);\n if ((descriptor == null ? void 0 : descriptor.set) && (descriptor == null ? void 0 : descriptor.get))\n return descriptor.set.call(thisProxy, value) || true;\n return Reflect.set(target, name, value);\n }\n};\nfunction collapseProxies() {\n let keys = Reflect.ownKeys(this);\n return keys.reduce((acc, key) => {\n acc[key] = Reflect.get(this, key);\n return acc;\n }, {});\n}\n\n// packages/alpinejs/src/interceptor.js\nfunction initInterceptors(data2) {\n let isObject2 = (val) => typeof val === \"object\" && !Array.isArray(val) && val !== null;\n let recurse = (obj, basePath = \"\") => {\n Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {\n if (enumerable === false || value === void 0)\n return;\n if (typeof value === \"object\" && value !== null && value.__v_skip)\n return;\n let path = basePath === \"\" ? key : `${basePath}.${key}`;\n if (typeof value === \"object\" && value !== null && value._x_interceptor) {\n obj[key] = value.initialize(data2, path, key);\n } else {\n if (isObject2(value) && value !== obj && !(value instanceof Element)) {\n recurse(value, path);\n }\n }\n });\n };\n return recurse(data2);\n}\nfunction interceptor(callback, mutateObj = () => {\n}) {\n let obj = {\n initialValue: void 0,\n _x_interceptor: true,\n initialize(data2, path, key) {\n return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key);\n }\n };\n mutateObj(obj);\n return (initialValue) => {\n if (typeof initialValue === \"object\" && initialValue !== null && initialValue._x_interceptor) {\n let initialize = obj.initialize.bind(obj);\n obj.initialize = (data2, path, key) => {\n let innerValue = initialValue.initialize(data2, path, key);\n obj.initialValue = innerValue;\n return initialize(data2, path, key);\n };\n } else {\n obj.initialValue = initialValue;\n }\n return obj;\n };\n}\nfunction get(obj, path) {\n return path.split(\".\").reduce((carry, segment) => carry[segment], obj);\n}\nfunction set(obj, path, value) {\n if (typeof path === \"string\")\n path = path.split(\".\");\n if (path.length === 1)\n obj[path[0]] = value;\n else if (path.length === 0)\n throw error;\n else {\n if (obj[path[0]])\n return set(obj[path[0]], path.slice(1), value);\n else {\n obj[path[0]] = {};\n return set(obj[path[0]], path.slice(1), value);\n }\n }\n}\n\n// packages/alpinejs/src/magics.js\nvar magics = {};\nfunction magic(name, callback) {\n magics[name] = callback;\n}\nfunction injectMagics(obj, el) {\n let memoizedUtilities = getUtilities(el);\n Object.entries(magics).forEach(([name, callback]) => {\n Object.defineProperty(obj, `$${name}`, {\n get() {\n return callback(el, memoizedUtilities);\n },\n enumerable: false\n });\n });\n return obj;\n}\nfunction getUtilities(el) {\n let [utilities, cleanup] = getElementBoundUtilities(el);\n let utils = { interceptor, ...utilities };\n onElRemoved(el, cleanup);\n return utils;\n}\n\n// packages/alpinejs/src/utils/error.js\nfunction tryCatch(el, expression, callback, ...args) {\n try {\n return callback(...args);\n } catch (e) {\n handleError(e, el, expression);\n }\n}\nfunction handleError(...args) {\n return errorHandler(...args);\n}\nvar errorHandler = normalErrorHandler;\nfunction setErrorHandler(handler4) {\n errorHandler = handler4;\n}\nfunction normalErrorHandler(error2, el, expression = void 0) {\n error2 = Object.assign(\n error2 != null ? error2 : { message: \"No error message given.\" },\n { el, expression }\n );\n console.warn(`Alpine Expression Error: ${error2.message}\n\n${expression ? 'Expression: \"' + expression + '\"\\n\\n' : \"\"}`, el);\n setTimeout(() => {\n throw error2;\n }, 0);\n}\n\n// packages/alpinejs/src/evaluator.js\nvar shouldAutoEvaluateFunctions = true;\nfunction dontAutoEvaluateFunctions(callback) {\n let cache = shouldAutoEvaluateFunctions;\n shouldAutoEvaluateFunctions = false;\n let result = callback();\n shouldAutoEvaluateFunctions = cache;\n return result;\n}\nfunction evaluate(el, expression, extras = {}) {\n let result;\n evaluateLater(el, expression)((value) => result = value, extras);\n return result;\n}\nfunction evaluateLater(...args) {\n return theEvaluatorFunction(...args);\n}\nvar theEvaluatorFunction = () => {\n};\nfunction setEvaluator(newEvaluator) {\n theEvaluatorFunction = newEvaluator;\n}\nvar theRawEvaluatorFunction;\nfunction setRawEvaluator(newEvaluator) {\n theRawEvaluatorFunction = newEvaluator;\n}\nfunction normalEvaluator(el, expression) {\n let overriddenMagics = {};\n injectMagics(overriddenMagics, el);\n let dataStack = [overriddenMagics, ...closestDataStack(el)];\n let evaluator = typeof expression === \"function\" ? generateEvaluatorFromFunction(dataStack, expression) : generateEvaluatorFromString(dataStack, expression, el);\n return tryCatch.bind(null, el, expression, evaluator);\n}\nfunction generateEvaluatorFromFunction(dataStack, func) {\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [], context } = {}) => {\n if (!shouldAutoEvaluateFunctions) {\n runIfTypeOfFunction(receiver, func, mergeProxies([scope2, ...dataStack]), params);\n return;\n }\n let result = func.apply(mergeProxies([scope2, ...dataStack]), params);\n runIfTypeOfFunction(receiver, result);\n };\n}\nvar evaluatorMemo = {};\nfunction generateFunctionFromString(expression, el) {\n if (evaluatorMemo[expression]) {\n return evaluatorMemo[expression];\n }\n let AsyncFunction = Object.getPrototypeOf(async function() {\n }).constructor;\n let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;\n const safeAsyncFunction = () => {\n try {\n let func2 = new AsyncFunction(\n [\"__self\", \"scope\"],\n `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`\n );\n Object.defineProperty(func2, \"name\", {\n value: `[Alpine] ${expression}`\n });\n return func2;\n } catch (error2) {\n handleError(error2, el, expression);\n return Promise.resolve();\n }\n };\n let func = safeAsyncFunction();\n evaluatorMemo[expression] = func;\n return func;\n}\nfunction generateEvaluatorFromString(dataStack, expression, el) {\n let func = generateFunctionFromString(expression, el);\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [], context } = {}) => {\n func.result = void 0;\n func.finished = false;\n let completeScope = mergeProxies([scope2, ...dataStack]);\n if (typeof func === \"function\") {\n let promise = func.call(context, func, completeScope).catch((error2) => handleError(error2, el, expression));\n if (func.finished) {\n runIfTypeOfFunction(receiver, func.result, completeScope, params, el);\n func.result = void 0;\n } else {\n promise.then((result) => {\n runIfTypeOfFunction(receiver, result, completeScope, params, el);\n }).catch((error2) => handleError(error2, el, expression)).finally(() => func.result = void 0);\n }\n }\n };\n}\nfunction runIfTypeOfFunction(receiver, value, scope2, params, el) {\n if (shouldAutoEvaluateFunctions && typeof value === \"function\") {\n let result = value.apply(scope2, params);\n if (result instanceof Promise) {\n result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value));\n } else {\n receiver(result);\n }\n } else if (typeof value === \"object\" && value instanceof Promise) {\n value.then((i) => receiver(i));\n } else {\n receiver(value);\n }\n}\nfunction evaluateRaw(...args) {\n return theRawEvaluatorFunction(...args);\n}\nfunction normalRawEvaluator(el, expression, extras = {}) {\n var _a, _b;\n let overriddenMagics = {};\n injectMagics(overriddenMagics, el);\n let dataStack = [overriddenMagics, ...closestDataStack(el)];\n let scope2 = mergeProxies([(_a = extras.scope) != null ? _a : {}, ...dataStack]);\n let params = (_b = extras.params) != null ? _b : [];\n if (expression.includes(\"await\")) {\n let AsyncFunction = Object.getPrototypeOf(async function() {\n }).constructor;\n let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;\n let func = new AsyncFunction(\n [\"scope\"],\n `with (scope) { let __result = ${rightSideSafeExpression}; return __result }`\n );\n let result = func.call(extras.context, scope2);\n return result;\n } else {\n let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(()=>{ ${expression} })()` : expression;\n let func = new Function(\n [\"scope\"],\n `with (scope) { let __result = ${rightSideSafeExpression}; return __result }`\n );\n let result = func.call(extras.context, scope2);\n if (typeof result === \"function\" && shouldAutoEvaluateFunctions) {\n return result.apply(scope2, params);\n }\n return result;\n }\n}\n\n// packages/alpinejs/src/directives.js\nvar prefixAsString = \"x-\";\nfunction prefix(subject = \"\") {\n return prefixAsString + subject;\n}\nfunction setPrefix(newPrefix) {\n prefixAsString = newPrefix;\n}\nvar directiveHandlers = {};\nfunction directive(name, callback) {\n directiveHandlers[name] = callback;\n return {\n before(directive2) {\n if (!directiveHandlers[directive2]) {\n console.warn(String.raw`Cannot find directive \\`${directive2}\\`. \\`${name}\\` will use the default order of execution`);\n return;\n }\n const pos = directiveOrder.indexOf(directive2);\n directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf(\"DEFAULT\"), 0, name);\n }\n };\n}\nfunction directiveExists(name) {\n return Object.keys(directiveHandlers).includes(name);\n}\nfunction directives(el, attributes, originalAttributeOverride) {\n attributes = Array.from(attributes);\n if (el._x_virtualDirectives) {\n let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(vAttributes);\n vAttributes = vAttributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n attributes = attributes.concat(vAttributes);\n }\n let transformedAttributeMap = {};\n let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority);\n return directives2.map((directive2) => {\n return getDirectiveHandler(el, directive2);\n });\n}\nfunction attributesOnly(attributes) {\n return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr));\n}\nvar isDeferringHandlers = false;\nvar directiveHandlerStacks = /* @__PURE__ */ new Map();\nvar currentHandlerStackKey = Symbol();\nfunction deferHandlingDirectives(callback) {\n isDeferringHandlers = true;\n let key = Symbol();\n currentHandlerStackKey = key;\n directiveHandlerStacks.set(key, []);\n let flushHandlers = () => {\n while (directiveHandlerStacks.get(key).length)\n directiveHandlerStacks.get(key).shift()();\n directiveHandlerStacks.delete(key);\n };\n let stopDeferring = () => {\n isDeferringHandlers = false;\n flushHandlers();\n };\n callback(flushHandlers);\n stopDeferring();\n}\nfunction getElementBoundUtilities(el) {\n let cleanups = [];\n let cleanup = (callback) => cleanups.push(callback);\n let [effect3, cleanupEffect] = elementBoundEffect(el);\n cleanups.push(cleanupEffect);\n let utilities = {\n Alpine: alpine_default,\n effect: effect3,\n cleanup,\n evaluateLater: evaluateLater.bind(evaluateLater, el),\n evaluate: evaluate.bind(evaluate, el)\n };\n let doCleanup = () => cleanups.forEach((i) => i());\n return [utilities, doCleanup];\n}\nfunction getDirectiveHandler(el, directive2) {\n let noop = () => {\n };\n let handler4 = directiveHandlers[directive2.type] || noop;\n let [utilities, cleanup] = getElementBoundUtilities(el);\n onAttributeRemoved(el, directive2.original, cleanup);\n let fullHandler = () => {\n if (el._x_ignore || el._x_ignoreSelf)\n return;\n handler4.inline && handler4.inline(el, directive2, utilities);\n handler4 = handler4.bind(handler4, el, directive2, utilities);\n isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4();\n };\n fullHandler.runCleanups = cleanup;\n return fullHandler;\n}\nvar startingWith = (subject, replacement) => ({ name, value }) => {\n if (name.startsWith(subject))\n name = name.replace(subject, replacement);\n return { name, value };\n};\nvar into = (i) => i;\nfunction toTransformedAttributes(callback = () => {\n}) {\n return ({ name, value }) => {\n let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => {\n return transform(carry);\n }, { name, value });\n if (newName !== name)\n callback(newName, name);\n return { name: newName, value: newValue };\n };\n}\nvar attributeTransformers = [];\nfunction mapAttributes(callback) {\n attributeTransformers.push(callback);\n}\nfunction outNonAlpineAttributes({ name }) {\n return alpineAttributeRegex().test(name);\n}\nvar alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\\\b`);\nfunction toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {\n return ({ name, value }) => {\n if (name === value)\n value = \"\";\n let typeMatch = name.match(alpineAttributeRegex());\n let valueMatch = name.match(/:([a-zA-Z0-9\\-_:]+)/);\n let modifiers = name.match(/\\.[^.\\]]+(?=[^\\]]*$)/g) || [];\n let original = originalAttributeOverride || transformedAttributeMap[name] || name;\n return {\n type: typeMatch ? typeMatch[1] : null,\n value: valueMatch ? valueMatch[1] : null,\n modifiers: modifiers.map((i) => i.replace(\".\", \"\")),\n expression: value,\n original\n };\n };\n}\nvar DEFAULT = \"DEFAULT\";\nvar directiveOrder = [\n \"ignore\",\n \"ref\",\n \"id\",\n \"data\",\n \"anchor\",\n \"bind\",\n \"init\",\n \"for\",\n \"model\",\n \"modelable\",\n \"transition\",\n \"show\",\n \"if\",\n DEFAULT,\n \"teleport\"\n];\nfunction byPriority(a, b) {\n let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type;\n let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type;\n return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);\n}\n\n// packages/alpinejs/src/utils/dispatch.js\nfunction dispatch(el, name, detail = {}, options = {}) {\n return el.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles: true,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true,\n // Allows overriding the default event options.\n ...options\n })\n );\n}\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/alpinejs/src/utils/warn.js\nfunction warn(message, ...args) {\n console.warn(`Alpine Warning: ${message}`, ...args);\n}\n\n// packages/alpinejs/src/lifecycle.js\nvar started = false;\nfunction start() {\n if (started)\n warn(\"Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.\");\n started = true;\n if (!document.body)\n warn(\"Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?\");\n dispatch(document, \"alpine:init\");\n dispatch(document, \"alpine:initializing\");\n startObservingMutations();\n onElAdded((el) => initTree(el, walk));\n onElRemoved((el) => destroyTree(el));\n onAttributesAdded((el, attrs) => {\n directives(el, attrs).forEach((handle) => handle());\n });\n let outNestedComponents = (el) => !closestRoot(el.parentElement, true);\n Array.from(document.querySelectorAll(allSelectors().join(\",\"))).filter(outNestedComponents).forEach((el) => {\n initTree(el);\n });\n dispatch(document, \"alpine:initialized\");\n setTimeout(() => {\n warnAboutMissingPlugins();\n });\n}\nvar rootSelectorCallbacks = [];\nvar initSelectorCallbacks = [];\nfunction rootSelectors() {\n return rootSelectorCallbacks.map((fn) => fn());\n}\nfunction allSelectors() {\n return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn());\n}\nfunction addRootSelector(selectorCallback) {\n rootSelectorCallbacks.push(selectorCallback);\n}\nfunction addInitSelector(selectorCallback) {\n initSelectorCallbacks.push(selectorCallback);\n}\nfunction closestRoot(el, includeInitSelectors = false) {\n return findClosest(el, (element) => {\n const selectors = includeInitSelectors ? allSelectors() : rootSelectors();\n if (selectors.some((selector) => element.matches(selector)))\n return true;\n });\n}\nfunction findClosest(el, callback) {\n if (!el)\n return;\n if (callback(el))\n return el;\n if (el._x_teleportBack)\n return findClosest(el._x_teleportBack, callback);\n if (el.parentNode instanceof ShadowRoot) {\n return findClosest(el.parentNode.host, callback);\n }\n if (!el.parentElement)\n return;\n return findClosest(el.parentElement, callback);\n}\nfunction isRoot(el) {\n return rootSelectors().some((selector) => el.matches(selector));\n}\nvar initInterceptors2 = [];\nfunction interceptInit(callback) {\n initInterceptors2.push(callback);\n}\nvar markerDispenser = 1;\nfunction initTree(el, walker = walk, intercept = () => {\n}) {\n if (findClosest(el, (i) => i._x_ignore))\n return;\n deferHandlingDirectives(() => {\n walker(el, (el2, skip) => {\n if (el2._x_marker)\n return;\n intercept(el2, skip);\n initInterceptors2.forEach((i) => i(el2, skip));\n directives(el2, el2.attributes).forEach((handle) => handle());\n if (!el2._x_ignore)\n el2._x_marker = markerDispenser++;\n el2._x_ignore && skip();\n });\n });\n}\nfunction destroyTree(root, walker = walk) {\n walker(root, (el) => {\n cleanupElement(el);\n cleanupAttributes(el);\n delete el._x_marker;\n });\n}\nfunction warnAboutMissingPlugins() {\n let pluginDirectives = [\n [\"ui\", \"dialog\", [\"[x-dialog], [x-popover]\"]],\n [\"anchor\", \"anchor\", [\"[x-anchor]\"]],\n [\"sort\", \"sort\", [\"[x-sort]\"]]\n ];\n pluginDirectives.forEach(([plugin2, directive2, selectors]) => {\n if (directiveExists(directive2))\n return;\n selectors.some((selector) => {\n if (document.querySelector(selector)) {\n warn(`found \"${selector}\", but missing ${plugin2} plugin`);\n return true;\n }\n });\n });\n}\n\n// packages/alpinejs/src/nextTick.js\nvar tickStack = [];\nvar isHolding = false;\nfunction nextTick(callback = () => {\n}) {\n queueMicrotask(() => {\n isHolding || setTimeout(() => {\n releaseNextTicks();\n });\n });\n return new Promise((res) => {\n tickStack.push(() => {\n callback();\n res();\n });\n });\n}\nfunction releaseNextTicks() {\n isHolding = false;\n while (tickStack.length)\n tickStack.shift()();\n}\nfunction holdNextTicks() {\n isHolding = true;\n}\n\n// packages/alpinejs/src/utils/classes.js\nfunction setClasses(el, value) {\n if (Array.isArray(value)) {\n return setClassesFromString(el, value.join(\" \"));\n } else if (typeof value === \"object\" && value !== null) {\n return setClassesFromObject(el, value);\n } else if (typeof value === \"function\") {\n return setClasses(el, value());\n }\n return setClassesFromString(el, value);\n}\nfunction splitClasses(classString) {\n return classString.split(/\\s/).filter(Boolean);\n}\nfunction setClassesFromString(el, classString) {\n let missingClasses = (classString2) => splitClasses(classString2).filter((i) => !el.classList.contains(i)).filter(Boolean);\n let addClassesAndReturnUndo = (classes) => {\n el.classList.add(...classes);\n return () => {\n el.classList.remove(...classes);\n };\n };\n classString = classString === true ? classString = \"\" : classString || \"\";\n return addClassesAndReturnUndo(missingClasses(classString));\n}\nfunction setClassesFromObject(el, classObject) {\n let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? splitClasses(classString) : false).filter(Boolean);\n let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? splitClasses(classString) : false).filter(Boolean);\n let added = [];\n let removed = [];\n forRemove.forEach((i) => {\n if (el.classList.contains(i)) {\n el.classList.remove(i);\n removed.push(i);\n }\n });\n forAdd.forEach((i) => {\n if (!el.classList.contains(i)) {\n el.classList.add(i);\n added.push(i);\n }\n });\n return () => {\n removed.forEach((i) => el.classList.add(i));\n added.forEach((i) => el.classList.remove(i));\n };\n}\n\n// packages/alpinejs/src/utils/styles.js\nfunction setStyles(el, value) {\n if (typeof value === \"object\" && value !== null) {\n return setStylesFromObject(el, value);\n }\n return setStylesFromString(el, value);\n}\nfunction setStylesFromObject(el, value) {\n let previousStyles = {};\n Object.entries(value).forEach(([key, value2]) => {\n previousStyles[key] = el.style[key];\n if (!key.startsWith(\"--\")) {\n key = kebabCase(key);\n }\n el.style.setProperty(key, value2);\n });\n setTimeout(() => {\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n });\n return () => {\n setStyles(el, previousStyles);\n };\n}\nfunction setStylesFromString(el, value) {\n let cache = el.getAttribute(\"style\", value);\n el.setAttribute(\"style\", value);\n return () => {\n el.setAttribute(\"style\", cache || \"\");\n };\n}\nfunction kebabCase(subject) {\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\n// packages/alpinejs/src/utils/once.js\nfunction once(callback, fallback = () => {\n}) {\n let called = false;\n return function() {\n if (!called) {\n called = true;\n callback.apply(this, arguments);\n } else {\n fallback.apply(this, arguments);\n }\n };\n}\n\n// packages/alpinejs/src/directives/x-transition.js\ndirective(\"transition\", (el, { value, modifiers, expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"function\")\n expression = evaluate2(expression);\n if (expression === false)\n return;\n if (!expression || typeof expression === \"boolean\") {\n registerTransitionsFromHelper(el, modifiers, value);\n } else {\n registerTransitionsFromClassString(el, expression, value);\n }\n});\nfunction registerTransitionsFromClassString(el, classString, stage) {\n registerTransitionObject(el, setClasses, \"\");\n let directiveStorageMap = {\n \"enter\": (classes) => {\n el._x_transition.enter.during = classes;\n },\n \"enter-start\": (classes) => {\n el._x_transition.enter.start = classes;\n },\n \"enter-end\": (classes) => {\n el._x_transition.enter.end = classes;\n },\n \"leave\": (classes) => {\n el._x_transition.leave.during = classes;\n },\n \"leave-start\": (classes) => {\n el._x_transition.leave.start = classes;\n },\n \"leave-end\": (classes) => {\n el._x_transition.leave.end = classes;\n }\n };\n directiveStorageMap[stage](classString);\n}\nfunction registerTransitionsFromHelper(el, modifiers, stage) {\n registerTransitionObject(el, setStyles);\n let doesntSpecify = !modifiers.includes(\"in\") && !modifiers.includes(\"out\") && !stage;\n let transitioningIn = doesntSpecify || modifiers.includes(\"in\") || [\"enter\"].includes(stage);\n let transitioningOut = doesntSpecify || modifiers.includes(\"out\") || [\"leave\"].includes(stage);\n if (modifiers.includes(\"in\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index < modifiers.indexOf(\"out\"));\n }\n if (modifiers.includes(\"out\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index > modifiers.indexOf(\"out\"));\n }\n let wantsAll = !modifiers.includes(\"opacity\") && !modifiers.includes(\"scale\");\n let wantsOpacity = wantsAll || modifiers.includes(\"opacity\");\n let wantsScale = wantsAll || modifiers.includes(\"scale\");\n let opacityValue = wantsOpacity ? 0 : 1;\n let scaleValue = wantsScale ? modifierValue(modifiers, \"scale\", 95) / 100 : 1;\n let delay = modifierValue(modifiers, \"delay\", 0) / 1e3;\n let origin = modifierValue(modifiers, \"origin\", \"center\");\n let property = \"opacity, transform\";\n let durationIn = modifierValue(modifiers, \"duration\", 150) / 1e3;\n let durationOut = modifierValue(modifiers, \"duration\", 75) / 1e3;\n let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`;\n if (transitioningIn) {\n el._x_transition.enter.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationIn}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.enter.start = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n el._x_transition.enter.end = {\n opacity: 1,\n transform: `scale(1)`\n };\n }\n if (transitioningOut) {\n el._x_transition.leave.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationOut}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.leave.start = {\n opacity: 1,\n transform: `scale(1)`\n };\n el._x_transition.leave.end = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n }\n}\nfunction registerTransitionObject(el, setFunction, defaultValue = {}) {\n if (!el._x_transition)\n el._x_transition = {\n enter: { during: defaultValue, start: defaultValue, end: defaultValue },\n leave: { during: defaultValue, start: defaultValue, end: defaultValue },\n in(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.enter.during,\n start: this.enter.start,\n end: this.enter.end\n }, before, after);\n },\n out(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.leave.during,\n start: this.leave.start,\n end: this.leave.end\n }, before, after);\n }\n };\n}\nwindow.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) {\n const nextTick2 = document.visibilityState === \"visible\" ? requestAnimationFrame : setTimeout;\n let clickAwayCompatibleShow = () => nextTick2(show);\n if (value) {\n if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) {\n el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow();\n } else {\n el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();\n }\n return;\n }\n el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => {\n el._x_transition.out(() => {\n }, () => resolve(hide));\n el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true }));\n }) : Promise.resolve(hide);\n queueMicrotask(() => {\n let closest = closestHide(el);\n if (closest) {\n if (!closest._x_hideChildren)\n closest._x_hideChildren = [];\n closest._x_hideChildren.push(el);\n } else {\n nextTick2(() => {\n let hideAfterChildren = (el2) => {\n let carry = Promise.all([\n el2._x_hidePromise,\n ...(el2._x_hideChildren || []).map(hideAfterChildren)\n ]).then(([i]) => i == null ? void 0 : i());\n delete el2._x_hidePromise;\n delete el2._x_hideChildren;\n return carry;\n };\n hideAfterChildren(el).catch((e) => {\n if (!e.isFromCancelledTransition)\n throw e;\n });\n });\n }\n });\n};\nfunction closestHide(el) {\n let parent = el.parentNode;\n if (!parent)\n return;\n return parent._x_hidePromise ? parent : closestHide(parent);\n}\nfunction transition(el, setFunction, { during, start: start2, end } = {}, before = () => {\n}, after = () => {\n}) {\n if (el._x_transitioning)\n el._x_transitioning.cancel();\n if (Object.keys(during).length === 0 && Object.keys(start2).length === 0 && Object.keys(end).length === 0) {\n before();\n after();\n return;\n }\n let undoStart, undoDuring, undoEnd;\n performTransition(el, {\n start() {\n undoStart = setFunction(el, start2);\n },\n during() {\n undoDuring = setFunction(el, during);\n },\n before,\n end() {\n undoStart();\n undoEnd = setFunction(el, end);\n },\n after,\n cleanup() {\n undoDuring();\n undoEnd();\n }\n });\n}\nfunction performTransition(el, stages) {\n let interrupted, reachedBefore, reachedEnd;\n let finish = once(() => {\n mutateDom(() => {\n interrupted = true;\n if (!reachedBefore)\n stages.before();\n if (!reachedEnd) {\n stages.end();\n releaseNextTicks();\n }\n stages.after();\n if (el.isConnected)\n stages.cleanup();\n delete el._x_transitioning;\n });\n });\n el._x_transitioning = {\n beforeCancels: [],\n beforeCancel(callback) {\n this.beforeCancels.push(callback);\n },\n cancel: once(function() {\n while (this.beforeCancels.length) {\n this.beforeCancels.shift()();\n }\n ;\n finish();\n }),\n finish\n };\n mutateDom(() => {\n stages.start();\n stages.during();\n });\n holdNextTicks();\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n let delay = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n if (duration === 0)\n duration = Number(getComputedStyle(el).animationDuration.replace(\"s\", \"\")) * 1e3;\n mutateDom(() => {\n stages.before();\n });\n reachedBefore = true;\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n mutateDom(() => {\n stages.end();\n });\n releaseNextTicks();\n setTimeout(el._x_transitioning.finish, duration + delay);\n reachedEnd = true;\n });\n });\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"scale\") {\n if (isNaN(rawValue))\n return fallback;\n }\n if (key === \"duration\" || key === \"delay\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"origin\") {\n if ([\"top\", \"right\", \"left\", \"center\", \"bottom\"].includes(modifiers[modifiers.indexOf(key) + 2])) {\n return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(\" \");\n }\n }\n return rawValue;\n}\n\n// packages/alpinejs/src/clone.js\nvar isCloning = false;\nfunction skipDuringClone(callback, fallback = () => {\n}) {\n return (...args) => isCloning ? fallback(...args) : callback(...args);\n}\nfunction onlyDuringClone(callback) {\n return (...args) => isCloning && callback(...args);\n}\nvar interceptors = [];\nfunction interceptClone(callback) {\n interceptors.push(callback);\n}\nfunction cloneNode(from, to) {\n interceptors.forEach((i) => i(from, to));\n isCloning = true;\n dontRegisterReactiveSideEffects(() => {\n initTree(to, (el, callback) => {\n callback(el, () => {\n });\n });\n });\n isCloning = false;\n}\nvar isCloningLegacy = false;\nfunction clone(oldEl, newEl) {\n if (!newEl._x_dataStack)\n newEl._x_dataStack = oldEl._x_dataStack;\n isCloning = true;\n isCloningLegacy = true;\n dontRegisterReactiveSideEffects(() => {\n cloneTree(newEl);\n });\n isCloning = false;\n isCloningLegacy = false;\n}\nfunction cloneTree(el) {\n let hasRunThroughFirstEl = false;\n let shallowWalker = (el2, callback) => {\n walk(el2, (el3, skip) => {\n if (hasRunThroughFirstEl && isRoot(el3))\n return skip();\n hasRunThroughFirstEl = true;\n callback(el3, skip);\n });\n };\n initTree(el, shallowWalker);\n}\nfunction dontRegisterReactiveSideEffects(callback) {\n let cache = effect;\n overrideEffect((callback2, el) => {\n let storedEffect = cache(callback2);\n release(storedEffect);\n return () => {\n };\n });\n callback();\n overrideEffect(cache);\n}\n\n// packages/alpinejs/src/utils/bind.js\nfunction bind(el, name, value, modifiers = []) {\n if (!el._x_bindings)\n el._x_bindings = reactive({});\n el._x_bindings[name] = value;\n name = modifiers.includes(\"camel\") ? camelCase(name) : name;\n switch (name) {\n case \"value\":\n bindInputValue(el, value);\n break;\n case \"style\":\n bindStyles(el, value);\n break;\n case \"class\":\n bindClasses(el, value);\n break;\n case \"selected\":\n case \"checked\":\n bindAttributeAndProperty(el, name, value);\n break;\n default:\n bindAttribute(el, name, value);\n break;\n }\n}\nfunction bindInputValue(el, value) {\n if (isRadio(el)) {\n if (el.attributes.value === void 0) {\n el.value = value;\n }\n } else if (isCheckbox(el)) {\n if (Number.isInteger(value)) {\n el.value = value;\n } else if (!Array.isArray(value) && typeof value !== \"boolean\" && ![null, void 0].includes(value)) {\n el.value = String(value);\n } else {\n if (Array.isArray(value)) {\n el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value));\n } else {\n el.checked = !!value;\n }\n }\n } else if (el.tagName === \"SELECT\") {\n updateSelect(el, value);\n } else {\n if (el.value === value)\n return;\n el.value = value === void 0 ? \"\" : value;\n }\n}\nfunction bindClasses(el, value) {\n if (el._x_undoAddedClasses)\n el._x_undoAddedClasses();\n el._x_undoAddedClasses = setClasses(el, value);\n}\nfunction bindStyles(el, value) {\n if (el._x_undoAddedStyles)\n el._x_undoAddedStyles();\n el._x_undoAddedStyles = setStyles(el, value);\n}\nfunction bindAttributeAndProperty(el, name, value) {\n bindAttribute(el, name, value);\n setPropertyIfChanged(el, name, value);\n}\nfunction bindAttribute(el, name, value) {\n if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) {\n el.removeAttribute(name);\n } else {\n if (isBooleanAttr(name))\n value = name;\n setIfChanged(el, name, value);\n }\n}\nfunction setIfChanged(el, attrName, value) {\n if (el.getAttribute(attrName) != value) {\n el.setAttribute(attrName, value);\n }\n}\nfunction setPropertyIfChanged(el, propName, value) {\n if (el[propName] !== value) {\n el[propName] = value;\n }\n}\nfunction updateSelect(el, value) {\n const arrayWrappedValue = [].concat(value).map((value2) => {\n return value2 + \"\";\n });\n Array.from(el.options).forEach((option) => {\n option.selected = arrayWrappedValue.includes(option.value);\n });\n}\nfunction camelCase(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction checkedAttrLooseCompare(valueA, valueB) {\n return valueA == valueB;\n}\nfunction safeParseBoolean(rawValue) {\n if ([1, \"1\", \"true\", \"on\", \"yes\", true].includes(rawValue)) {\n return true;\n }\n if ([0, \"0\", \"false\", \"off\", \"no\", false].includes(rawValue)) {\n return false;\n }\n return rawValue ? Boolean(rawValue) : null;\n}\nvar booleanAttributes = /* @__PURE__ */ new Set([\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"defer\",\n \"disabled\",\n \"formnovalidate\",\n \"inert\",\n \"ismap\",\n \"itemscope\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"selected\",\n \"shadowrootclonable\",\n \"shadowrootdelegatesfocus\",\n \"shadowrootserializable\"\n]);\nfunction isBooleanAttr(attrName) {\n return booleanAttributes.has(attrName);\n}\nfunction attributeShouldntBePreservedIfFalsy(name) {\n return ![\"aria-pressed\", \"aria-checked\", \"aria-expanded\", \"aria-selected\"].includes(name);\n}\nfunction getBinding(el, name, fallback) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n return getAttributeBinding(el, name, fallback);\n}\nfunction extractProp(el, name, fallback, extract = true) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) {\n let binding = el._x_inlineBindings[name];\n binding.extract = extract;\n return dontAutoEvaluateFunctions(() => {\n return evaluate(el, binding.expression);\n });\n }\n return getAttributeBinding(el, name, fallback);\n}\nfunction getAttributeBinding(el, name, fallback) {\n let attr = el.getAttribute(name);\n if (attr === null)\n return typeof fallback === \"function\" ? fallback() : fallback;\n if (attr === \"\")\n return true;\n if (isBooleanAttr(name)) {\n return !![name, \"true\"].includes(attr);\n }\n return attr;\n}\nfunction isCheckbox(el) {\n return el.type === \"checkbox\" || el.localName === \"ui-checkbox\" || el.localName === \"ui-switch\";\n}\nfunction isRadio(el) {\n return el.type === \"radio\" || el.localName === \"ui-radio\";\n}\n\n// packages/alpinejs/src/utils/debounce.js\nfunction debounce(func, wait) {\n let timeout;\n return function() {\n const context = this, args = arguments;\n const later = function() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n// packages/alpinejs/src/utils/throttle.js\nfunction throttle(func, limit) {\n let inThrottle;\n return function() {\n let context = this, args = arguments;\n if (!inThrottle) {\n func.apply(context, args);\n inThrottle = true;\n setTimeout(() => inThrottle = false, limit);\n }\n };\n}\n\n// packages/alpinejs/src/entangle.js\nfunction entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {\n let firstRun = true;\n let outerHash;\n let innerHash;\n let reference = effect(() => {\n let outer = outerGet();\n let inner = innerGet();\n if (firstRun) {\n innerSet(cloneIfObject(outer));\n firstRun = false;\n } else {\n let outerHashLatest = JSON.stringify(outer);\n let innerHashLatest = JSON.stringify(inner);\n if (outerHashLatest !== outerHash) {\n innerSet(cloneIfObject(outer));\n } else if (outerHashLatest !== innerHashLatest) {\n outerSet(cloneIfObject(inner));\n } else {\n }\n }\n outerHash = JSON.stringify(outerGet());\n innerHash = JSON.stringify(innerGet());\n });\n return () => {\n release(reference);\n };\n}\nfunction cloneIfObject(value) {\n return typeof value === \"object\" ? JSON.parse(JSON.stringify(value)) : value;\n}\n\n// packages/alpinejs/src/plugin.js\nfunction plugin(callback) {\n let callbacks = Array.isArray(callback) ? callback : [callback];\n callbacks.forEach((i) => i(alpine_default));\n}\n\n// packages/alpinejs/src/store.js\nvar stores = {};\nvar isReactive = false;\nfunction store(name, value) {\n if (!isReactive) {\n stores = reactive(stores);\n isReactive = true;\n }\n if (value === void 0) {\n return stores[name];\n }\n stores[name] = value;\n initInterceptors(stores[name]);\n if (typeof value === \"object\" && value !== null && value.hasOwnProperty(\"init\") && typeof value.init === \"function\") {\n stores[name].init();\n }\n}\nfunction getStores() {\n return stores;\n}\n\n// packages/alpinejs/src/binds.js\nvar binds = {};\nfunction bind2(name, bindings) {\n let getBindings = typeof bindings !== \"function\" ? () => bindings : bindings;\n if (name instanceof Element) {\n return applyBindingsObject(name, getBindings());\n } else {\n binds[name] = getBindings;\n }\n return () => {\n };\n}\nfunction injectBindingProviders(obj) {\n Object.entries(binds).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback(...args);\n };\n }\n });\n });\n return obj;\n}\nfunction applyBindingsObject(el, obj, original) {\n let cleanupRunners = [];\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n let attributes = Object.entries(obj).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(attributes);\n attributes = attributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n directives(el, attributes, original).map((handle) => {\n cleanupRunners.push(handle.runCleanups);\n handle();\n });\n return () => {\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n };\n}\n\n// packages/alpinejs/src/datas.js\nvar datas = {};\nfunction data(name, callback) {\n datas[name] = callback;\n}\nfunction injectDataProviders(obj, context) {\n Object.entries(datas).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback.bind(context)(...args);\n };\n },\n enumerable: false\n });\n });\n return obj;\n}\n\n// packages/alpinejs/src/alpine.js\nvar Alpine = {\n get reactive() {\n return reactive;\n },\n get release() {\n return release;\n },\n get effect() {\n return effect;\n },\n get raw() {\n return raw;\n },\n get transaction() {\n return transaction;\n },\n version: \"3.15.12\",\n flushAndStopDeferringMutations,\n dontAutoEvaluateFunctions,\n disableEffectScheduling,\n startObservingMutations,\n stopObservingMutations,\n setReactivityEngine,\n onAttributeRemoved,\n onAttributesAdded,\n closestDataStack,\n skipDuringClone,\n onlyDuringClone,\n addRootSelector,\n addInitSelector,\n setErrorHandler,\n interceptClone,\n addScopeToNode,\n deferMutations,\n mapAttributes,\n evaluateLater,\n interceptInit,\n initInterceptors,\n injectMagics,\n setEvaluator,\n setRawEvaluator,\n mergeProxies,\n extractProp,\n findClosest,\n onElRemoved,\n closestRoot,\n destroyTree,\n interceptor,\n // INTERNAL: not public API and is subject to change without major release.\n transition,\n // INTERNAL\n setStyles,\n // INTERNAL\n mutateDom,\n directive,\n entangle,\n throttle,\n debounce,\n evaluate,\n evaluateRaw,\n initTree,\n nextTick,\n prefixed: prefix,\n prefix: setPrefix,\n plugin,\n magic,\n store,\n start,\n clone,\n // INTERNAL\n cloneNode,\n // INTERNAL\n bound: getBinding,\n $data: scope,\n watch,\n walk,\n data,\n bind: bind2\n};\nvar alpine_default = Alpine;\n\n// packages/alpinejs/src/index.js\nvar import_reactivity10 = __toESM(require_reactivity());\n\n// packages/alpinejs/src/magics/$nextTick.js\nmagic(\"nextTick\", () => nextTick);\n\n// packages/alpinejs/src/magics/$dispatch.js\nmagic(\"dispatch\", (el) => dispatch.bind(dispatch, el));\n\n// packages/alpinejs/src/magics/$watch.js\nmagic(\"watch\", (el, { evaluateLater: evaluateLater2, cleanup }) => (key, callback) => {\n let evaluate2 = evaluateLater2(key);\n let getter = () => {\n let value;\n evaluate2((i) => value = i);\n return value;\n };\n let unwatch = watch(getter, callback);\n cleanup(unwatch);\n});\n\n// packages/alpinejs/src/magics/$store.js\nmagic(\"store\", getStores);\n\n// packages/alpinejs/src/magics/$data.js\nmagic(\"data\", (el) => scope(el));\n\n// packages/alpinejs/src/magics/$root.js\nmagic(\"root\", (el) => closestRoot(el));\n\n// packages/alpinejs/src/magics/$refs.js\nmagic(\"refs\", (el) => {\n if (el._x_refs_proxy)\n return el._x_refs_proxy;\n el._x_refs_proxy = mergeProxies(getArrayOfRefObject(el));\n return el._x_refs_proxy;\n});\nfunction getArrayOfRefObject(el) {\n let refObjects = [];\n findClosest(el, (i) => {\n if (i._x_refs)\n refObjects.push(i._x_refs);\n });\n return refObjects;\n}\n\n// packages/alpinejs/src/ids.js\nvar globalIdMemo = {};\nfunction findAndIncrementId(name) {\n if (!globalIdMemo[name])\n globalIdMemo[name] = 0;\n return ++globalIdMemo[name];\n}\nfunction closestIdRoot(el, name) {\n return findClosest(el, (element) => {\n if (element._x_ids && element._x_ids[name])\n return true;\n });\n}\nfunction setIdRoot(el, name) {\n if (!el._x_ids)\n el._x_ids = {};\n if (!el._x_ids[name])\n el._x_ids[name] = findAndIncrementId(name);\n}\n\n// packages/alpinejs/src/magics/$id.js\nmagic(\"id\", (el, { cleanup }) => (name, key = null) => {\n let cacheKey = `${name}${key ? `-${key}` : \"\"}`;\n return cacheIdByNameOnElement(el, cacheKey, cleanup, () => {\n let root = closestIdRoot(el, name);\n let id = root ? root._x_ids[name] : findAndIncrementId(name);\n return key ? `${name}-${id}-${key}` : `${name}-${id}`;\n });\n});\ninterceptClone((from, to) => {\n if (from._x_id) {\n to._x_id = from._x_id;\n }\n});\nfunction cacheIdByNameOnElement(el, cacheKey, cleanup, callback) {\n if (!el._x_id)\n el._x_id = {};\n if (el._x_id[cacheKey])\n return el._x_id[cacheKey];\n let output = callback();\n el._x_id[cacheKey] = output;\n cleanup(() => {\n delete el._x_id[cacheKey];\n });\n return output;\n}\n\n// packages/alpinejs/src/magics/$el.js\nmagic(\"el\", (el) => el);\n\n// packages/alpinejs/src/magics/index.js\nwarnMissingPluginMagic(\"Focus\", \"focus\", \"focus\");\nwarnMissingPluginMagic(\"Persist\", \"persist\", \"persist\");\nfunction warnMissingPluginMagic(name, magicName, slug) {\n magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/directives/x-modelable.js\ndirective(\"modelable\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup }) => {\n let func = evaluateLater2(expression);\n let innerGet = () => {\n let result;\n func((i) => result = i);\n return result;\n };\n let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`);\n let innerSet = (val) => evaluateInnerSet(() => {\n }, { scope: { \"__placeholder\": val } });\n let initialValue = innerGet();\n innerSet(initialValue);\n queueMicrotask(() => {\n if (!el._x_model)\n return;\n el._x_removeModelListeners[\"default\"]();\n let outerGet = el._x_model.get;\n let outerSet = el._x_model.setWithModifiers;\n let releaseEntanglement = entangle(\n {\n get() {\n return outerGet();\n },\n set(value) {\n outerSet(value);\n }\n },\n {\n get() {\n return innerGet();\n },\n set(value) {\n innerSet(value);\n }\n }\n );\n cleanup(releaseEntanglement);\n });\n});\n\n// packages/alpinejs/src/directives/x-teleport.js\ndirective(\"teleport\", (el, { modifiers, expression }, { cleanup }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-teleport can only be used on a <template> tag\", el);\n let target = getTarget(expression);\n let clone2 = el.content.cloneNode(true).firstElementChild;\n el._x_teleport = clone2;\n clone2._x_teleportBack = el;\n el.setAttribute(\"data-teleport-template\", true);\n clone2.setAttribute(\"data-teleport-target\", true);\n if (el._x_forwardEvents) {\n el._x_forwardEvents.forEach((eventName) => {\n clone2.addEventListener(eventName, (e) => {\n e.stopPropagation();\n el.dispatchEvent(new e.constructor(e.type, e));\n });\n });\n }\n addScopeToNode(clone2, {}, el);\n let placeInDom = (clone3, target2, modifiers2) => {\n if (modifiers2.includes(\"prepend\")) {\n target2.parentNode.insertBefore(clone3, target2);\n } else if (modifiers2.includes(\"append\")) {\n target2.parentNode.insertBefore(clone3, target2.nextSibling);\n } else {\n target2.appendChild(clone3);\n }\n };\n mutateDom(() => {\n skipDuringClone(() => {\n placeInDom(clone2, target, modifiers);\n initTree(clone2);\n })();\n });\n el._x_teleportPutBack = () => {\n let target2 = getTarget(expression);\n mutateDom(() => {\n placeInDom(el._x_teleport, target2, modifiers);\n });\n };\n cleanup(\n () => mutateDom(() => {\n clone2.remove();\n destroyTree(clone2);\n })\n );\n});\nvar teleportContainerDuringClone = document.createElement(\"div\");\nfunction getTarget(expression) {\n let target = skipDuringClone(() => {\n return document.querySelector(expression);\n }, () => {\n return teleportContainerDuringClone;\n })();\n if (!target)\n warn(`Cannot find x-teleport element for selector: \"${expression}\"`);\n return target;\n}\n\n// packages/alpinejs/src/directives/x-ignore.js\nvar handler = () => {\n};\nhandler.inline = (el, { modifiers }, { cleanup }) => {\n modifiers.includes(\"self\") ? el._x_ignoreSelf = true : el._x_ignore = true;\n cleanup(() => {\n modifiers.includes(\"self\") ? delete el._x_ignoreSelf : delete el._x_ignore;\n });\n};\ndirective(\"ignore\", handler);\n\n// packages/alpinejs/src/directives/x-effect.js\ndirective(\"effect\", skipDuringClone((el, { expression }, { effect: effect3 }) => {\n effect3(evaluateLater(el, expression));\n}));\n\n// packages/alpinejs/src/utils/on.js\nfunction on(el, event, modifiers, callback) {\n let listenerTarget = el;\n let handler4 = (e) => callback(e);\n let options = {};\n let wrapHandler = (callback2, wrapper) => (e) => wrapper(callback2, e);\n if (modifiers.includes(\"dot\"))\n event = dotSyntax(event);\n if (modifiers.includes(\"camel\"))\n event = camelCase2(event);\n if (modifiers.includes(\"capture\"))\n options.capture = true;\n if (modifiers.includes(\"window\"))\n listenerTarget = window;\n if (modifiers.includes(\"document\"))\n listenerTarget = document;\n if (modifiers.includes(\"passive\")) {\n options.passive = modifiers[modifiers.indexOf(\"passive\") + 1] !== \"false\";\n }\n handler4 = addDebounceOrThrottle(modifiers, handler4);\n if (modifiers.includes(\"prevent\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.preventDefault();\n next(e);\n });\n if (modifiers.includes(\"stop\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.stopPropagation();\n next(e);\n });\n if (modifiers.includes(\"once\")) {\n handler4 = wrapHandler(handler4, (next, e) => {\n next(e);\n listenerTarget.removeEventListener(event, handler4, options);\n });\n }\n if (modifiers.includes(\"away\") || modifiers.includes(\"outside\")) {\n listenerTarget = document;\n handler4 = wrapHandler(handler4, (next, e) => {\n if (el.contains(e.target))\n return;\n if (e.target.isConnected === false)\n return;\n if (el.offsetWidth < 1 && el.offsetHeight < 1)\n return;\n if (el._x_isShown === false)\n return;\n next(e);\n });\n }\n if (modifiers.includes(\"self\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.target === el && next(e);\n });\n if (event === \"submit\") {\n handler4 = wrapHandler(handler4, (next, e) => {\n if (e.target._x_pendingModelUpdates) {\n e.target._x_pendingModelUpdates.forEach((fn) => fn());\n }\n next(e);\n });\n }\n if (isKeyEvent(event) || isClickEvent(event)) {\n handler4 = wrapHandler(handler4, (next, e) => {\n if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) {\n return;\n }\n next(e);\n });\n }\n listenerTarget.addEventListener(event, handler4, options);\n return () => {\n listenerTarget.removeEventListener(event, handler4, options);\n };\n}\nfunction addDebounceOrThrottle(modifiers, handler4) {\n if (modifiers.includes(\"debounce\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"debounce\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = debounce(handler4, wait);\n }\n if (modifiers.includes(\"throttle\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"throttle\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = throttle(handler4, wait);\n }\n return handler4;\n}\nfunction dotSyntax(subject) {\n return subject.replace(/-/g, \".\");\n}\nfunction camelCase2(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction isNumeric(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction kebabCase2(subject) {\n if ([\" \", \"_\"].includes(\n subject\n ))\n return subject;\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[_\\s]/, \"-\").toLowerCase();\n}\nfunction isKeyEvent(event) {\n return [\"keydown\", \"keyup\"].includes(event);\n}\nfunction isClickEvent(event) {\n return [\"contextmenu\", \"click\", \"mouse\"].some((i) => event.includes(i));\n}\nfunction isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) {\n let keyModifiers = modifiers.filter((i) => {\n return ![\"window\", \"document\", \"prevent\", \"stop\", \"once\", \"capture\", \"self\", \"away\", \"outside\", \"passive\", \"preserve-scroll\", \"blur\", \"change\", \"lazy\"].includes(i);\n });\n if (keyModifiers.includes(\"debounce\")) {\n let debounceIndex = keyModifiers.indexOf(\"debounce\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.includes(\"throttle\")) {\n let debounceIndex = keyModifiers.indexOf(\"throttle\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.length === 0)\n return false;\n if (keyModifiers.length === 1 && keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n const systemKeyModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\", \"cmd\", \"super\"];\n const selectedSystemKeyModifiers = systemKeyModifiers.filter((modifier) => keyModifiers.includes(modifier));\n keyModifiers = keyModifiers.filter((i) => !selectedSystemKeyModifiers.includes(i));\n if (selectedSystemKeyModifiers.length > 0) {\n const activelyPressedKeyModifiers = selectedSystemKeyModifiers.filter((modifier) => {\n if (modifier === \"cmd\" || modifier === \"super\")\n modifier = \"meta\";\n return e[`${modifier}Key`];\n });\n if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) {\n if (isClickEvent(e.type))\n return false;\n if (keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n }\n }\n return true;\n}\nfunction keyToModifiers(key) {\n if (!key)\n return [];\n key = kebabCase2(key);\n let modifierToKeyMap = {\n \"ctrl\": \"control\",\n \"slash\": \"/\",\n \"space\": \" \",\n \"spacebar\": \" \",\n \"cmd\": \"meta\",\n \"esc\": \"escape\",\n \"up\": \"arrow-up\",\n \"down\": \"arrow-down\",\n \"left\": \"arrow-left\",\n \"right\": \"arrow-right\",\n \"period\": \".\",\n \"comma\": \",\",\n \"equal\": \"=\",\n \"minus\": \"-\",\n \"underscore\": \"_\"\n };\n modifierToKeyMap[key] = key;\n return Object.keys(modifierToKeyMap).map((modifier) => {\n if (modifierToKeyMap[modifier] === key)\n return modifier;\n }).filter((modifier) => modifier);\n}\n\n// packages/alpinejs/src/directives/x-model.js\ndirective(\"model\", (el, { modifiers, expression }, { effect: effect3, cleanup }) => {\n let scopeTarget = el;\n if (modifiers.includes(\"parent\")) {\n scopeTarget = findClosest(el, (element) => element !== el);\n }\n let evaluateGet = evaluateLater(scopeTarget, expression);\n let evaluateSet;\n if (typeof expression === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`);\n } else if (typeof expression === \"function\" && typeof expression() === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`);\n } else {\n evaluateSet = () => {\n };\n }\n let getValue = () => {\n let result;\n evaluateGet((value) => result = value);\n return isGetterSetter(result) ? result.get() : result;\n };\n let setValue = (value) => {\n let result;\n evaluateGet((value2) => result = value2);\n if (isGetterSetter(result)) {\n result.set(value);\n } else {\n evaluateSet(() => {\n }, {\n scope: { \"__placeholder\": value }\n });\n }\n };\n if (typeof expression === \"string\" && el.type === \"radio\") {\n mutateDom(() => {\n if (!el.hasAttribute(\"name\"))\n el.setAttribute(\"name\", expression);\n });\n }\n let hasChangeModifier = modifiers.includes(\"change\") || modifiers.includes(\"lazy\");\n let hasBlurModifier = modifiers.includes(\"blur\");\n let hasEnterModifier = modifiers.includes(\"enter\");\n let hasExplicitEventModifiers = hasChangeModifier || hasBlurModifier || hasEnterModifier;\n let removeListener;\n if (isCloning) {\n removeListener = () => {\n };\n } else if (hasExplicitEventModifiers) {\n let listeners = [];\n let syncValue = (e) => setValue(getInputValue(el, modifiers, e, getValue()));\n if (hasChangeModifier) {\n listeners.push(on(el, \"change\", modifiers, syncValue));\n }\n if (hasBlurModifier) {\n listeners.push(on(el, \"blur\", modifiers, syncValue));\n if (el.form) {\n let form = el.form;\n let syncCallback = () => syncValue({ target: el });\n if (!form._x_pendingModelUpdates)\n form._x_pendingModelUpdates = [];\n form._x_pendingModelUpdates.push(syncCallback);\n cleanup(() => {\n if (form._x_pendingModelUpdates) {\n form._x_pendingModelUpdates.splice(form._x_pendingModelUpdates.indexOf(syncCallback), 1);\n }\n });\n }\n }\n if (hasEnterModifier) {\n listeners.push(on(el, \"keydown\", modifiers, (e) => {\n if (e.key === \"Enter\")\n syncValue(e);\n }));\n }\n removeListener = () => listeners.forEach((remove) => remove());\n } else {\n let event = el.tagName.toLowerCase() === \"select\" || [\"checkbox\", \"radio\"].includes(el.type) ? \"change\" : \"input\";\n removeListener = on(el, event, modifiers, (e) => {\n setValue(getInputValue(el, modifiers, e, getValue()));\n });\n }\n if (modifiers.includes(\"fill\")) {\n if ([void 0, null, \"\"].includes(getValue()) || isCheckbox(el) && Array.isArray(getValue()) || el.tagName.toLowerCase() === \"select\" && el.multiple) {\n setValue(\n getInputValue(el, modifiers, { target: el }, getValue())\n );\n }\n }\n if (!el._x_removeModelListeners)\n el._x_removeModelListeners = {};\n el._x_removeModelListeners[\"default\"] = removeListener;\n cleanup(() => el._x_removeModelListeners[\"default\"]());\n if (el.form) {\n let removeResetListener = on(el.form, \"reset\", [], (e) => {\n nextTick(() => el._x_model && el._x_model.set(getInputValue(el, modifiers, { target: el }, getValue())));\n });\n cleanup(() => removeResetListener());\n }\n el._x_model = {\n get() {\n return getValue();\n },\n set(value) {\n setValue(value);\n },\n setWithModifiers: addDebounceOrThrottle(modifiers, setValue)\n };\n el._x_forceModelUpdate = (value) => {\n if (value === void 0 && typeof expression === \"string\" && expression.match(/\\./))\n value = \"\";\n mutateDom(() => {\n if (isCheckbox(el)) {\n if (Array.isArray(value)) {\n el.checked = value.some((val) => val == el.value);\n } else {\n el.checked = !!value;\n }\n } else if (isRadio(el)) {\n if (typeof value === \"boolean\") {\n el.checked = safeParseBoolean(el.value) === value;\n } else {\n el.checked = el.value == value;\n }\n } else {\n bind(el, \"value\", value);\n }\n });\n };\n effect3(() => {\n let value = getValue();\n if (modifiers.includes(\"unintrusive\") && document.activeElement.isSameNode(el))\n return;\n el._x_forceModelUpdate(value);\n });\n});\nfunction getInputValue(el, modifiers, event, currentValue) {\n return mutateDom(() => {\n if (event instanceof CustomEvent && event.detail !== void 0)\n return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value;\n else if (isCheckbox(el)) {\n if (Array.isArray(currentValue)) {\n let newValue = null;\n if (modifiers.includes(\"number\")) {\n newValue = safeParseNumber(event.target.value);\n } else if (modifiers.includes(\"boolean\")) {\n newValue = safeParseBoolean(event.target.value);\n } else {\n newValue = event.target.value;\n }\n return event.target.checked ? currentValue.includes(newValue) ? currentValue : currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));\n } else {\n return event.target.checked;\n }\n } else if (el.tagName.toLowerCase() === \"select\" && el.multiple) {\n if (modifiers.includes(\"number\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseNumber(rawValue);\n });\n } else if (modifiers.includes(\"boolean\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseBoolean(rawValue);\n });\n }\n return Array.from(event.target.selectedOptions).map((option) => {\n return option.value || option.text;\n });\n } else {\n let newValue;\n if (isRadio(el)) {\n if (event.target.checked) {\n newValue = event.target.value;\n } else {\n newValue = currentValue;\n }\n } else {\n newValue = event.target.value;\n }\n if (modifiers.includes(\"number\")) {\n return safeParseNumber(newValue);\n } else if (modifiers.includes(\"boolean\")) {\n return safeParseBoolean(newValue);\n } else if (modifiers.includes(\"trim\")) {\n return newValue.trim();\n } else {\n return newValue;\n }\n }\n });\n}\nfunction safeParseNumber(rawValue) {\n let number = rawValue ? parseFloat(rawValue) : null;\n return isNumeric2(number) ? number : rawValue;\n}\nfunction checkedAttrLooseCompare2(valueA, valueB) {\n return valueA == valueB;\n}\nfunction isNumeric2(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction isGetterSetter(value) {\n return value !== null && typeof value === \"object\" && typeof value.get === \"function\" && typeof value.set === \"function\";\n}\n\n// packages/alpinejs/src/directives/x-cloak.js\ndirective(\"cloak\", (el) => queueMicrotask(() => mutateDom(() => el.removeAttribute(prefix(\"cloak\")))));\n\n// packages/alpinejs/src/directives/x-init.js\naddInitSelector(() => `[${prefix(\"init\")}]`);\ndirective(\"init\", skipDuringClone((el, { expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"string\") {\n return !!expression.trim() && evaluate2(expression, {}, false);\n }\n return evaluate2(expression, {}, false);\n}));\n\n// packages/alpinejs/src/directives/x-text.js\ndirective(\"text\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.textContent = value;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-html.js\ndirective(\"html\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.innerHTML = value != null ? value : \"\";\n el._x_ignoreSelf = true;\n initTree(el);\n delete el._x_ignoreSelf;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-bind.js\nmapAttributes(startingWith(\":\", into(prefix(\"bind:\"))));\nvar handler2 = (el, { value, modifiers, expression, original }, { effect: effect3, cleanup }) => {\n if (!value) {\n let bindingProviders = {};\n injectBindingProviders(bindingProviders);\n let getBindings = evaluateLater(el, expression);\n getBindings((bindings) => {\n applyBindingsObject(el, bindings, original);\n }, { scope: bindingProviders });\n return;\n }\n if (value === \"key\")\n return storeKeyForXFor(el, expression);\n if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) {\n return;\n }\n let evaluate2 = evaluateLater(el, expression);\n effect3(() => evaluate2((result) => {\n if (result === void 0 && typeof expression === \"string\" && expression.match(/\\./)) {\n result = \"\";\n }\n mutateDom(() => bind(el, value, result, modifiers));\n }));\n cleanup(() => {\n el._x_undoAddedClasses && el._x_undoAddedClasses();\n el._x_undoAddedStyles && el._x_undoAddedStyles();\n });\n};\nhandler2.inline = (el, { value, modifiers, expression }) => {\n if (!value)\n return;\n if (!el._x_inlineBindings)\n el._x_inlineBindings = {};\n el._x_inlineBindings[value] = { expression, extract: false };\n};\ndirective(\"bind\", handler2);\nfunction storeKeyForXFor(el, expression) {\n el._x_keyExpression = expression;\n}\n\n// packages/alpinejs/src/directives/x-data.js\naddRootSelector(() => `[${prefix(\"data\")}]`);\ndirective(\"data\", (el, { expression }, { cleanup }) => {\n if (shouldSkipRegisteringDataDuringClone(el))\n return;\n expression = expression === \"\" ? \"{}\" : expression;\n let magicContext = {};\n injectMagics(magicContext, el);\n let dataProviderContext = {};\n injectDataProviders(dataProviderContext, magicContext);\n let data2 = evaluate(el, expression, { scope: dataProviderContext });\n if (data2 === void 0 || data2 === true)\n data2 = {};\n injectMagics(data2, el);\n let reactiveData = reactive(data2);\n initInterceptors(reactiveData);\n let undo = addScopeToNode(el, reactiveData);\n reactiveData[\"init\"] && evaluate(el, reactiveData[\"init\"]);\n cleanup(() => {\n reactiveData[\"destroy\"] && evaluate(el, reactiveData[\"destroy\"]);\n undo();\n });\n});\ninterceptClone((from, to) => {\n if (from._x_dataStack) {\n to._x_dataStack = from._x_dataStack;\n to.setAttribute(\"data-has-alpine-state\", true);\n }\n});\nfunction shouldSkipRegisteringDataDuringClone(el) {\n if (!isCloning)\n return false;\n if (isCloningLegacy)\n return true;\n return el.hasAttribute(\"data-has-alpine-state\");\n}\n\n// packages/alpinejs/src/directives/x-show.js\ndirective(\"show\", (el, { modifiers, expression }, { effect: effect3 }) => {\n let evaluate2 = evaluateLater(el, expression);\n if (!el._x_doHide)\n el._x_doHide = () => {\n mutateDom(() => {\n el.style.setProperty(\"display\", \"none\", modifiers.includes(\"important\") ? \"important\" : void 0);\n });\n };\n if (!el._x_doShow)\n el._x_doShow = () => {\n mutateDom(() => {\n if (el.style.length === 1 && el.style.display === \"none\") {\n el.removeAttribute(\"style\");\n } else {\n el.style.removeProperty(\"display\");\n }\n });\n };\n let hide = () => {\n el._x_doHide();\n el._x_isShown = false;\n };\n let show = () => {\n el._x_doShow();\n el._x_isShown = true;\n };\n let clickAwayCompatibleShow = () => setTimeout(show);\n let toggle = once(\n (value) => value ? show() : hide(),\n (value) => {\n if (typeof el._x_toggleAndCascadeWithTransitions === \"function\") {\n el._x_toggleAndCascadeWithTransitions(el, value, show, hide);\n } else {\n value ? clickAwayCompatibleShow() : hide();\n }\n }\n );\n let oldValue;\n let firstTime = true;\n effect3(() => evaluate2((value) => {\n if (!firstTime && value === oldValue)\n return;\n if (modifiers.includes(\"immediate\"))\n value ? clickAwayCompatibleShow() : hide();\n toggle(value);\n oldValue = value;\n firstTime = false;\n }));\n});\n\n// packages/alpinejs/src/directives/x-for.js\ndirective(\"for\", (el, { expression }, { effect: effect3, cleanup }) => {\n let iteratorNames = parseForExpression(expression);\n let evaluateItems = evaluateLater(el, iteratorNames.items);\n let evaluateKey = evaluateLater(\n el,\n // the x-bind:key expression is stored for our use instead of evaluated.\n el._x_keyExpression || \"index\"\n );\n el._x_lookup = /* @__PURE__ */ new Map();\n effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey));\n cleanup(() => {\n el._x_lookup.forEach(\n (el2) => mutateDom(() => {\n destroyTree(el2);\n el2.remove();\n })\n );\n delete el._x_lookup;\n });\n});\nfunction refreshScope(scope2) {\n return (newScope) => {\n Object.entries(newScope).forEach(([key, value]) => {\n scope2[key] = value;\n });\n };\n}\nfunction loop(templateEl, iteratorNames, evaluateItems, evaluateKey) {\n evaluateItems((items) => {\n if (isNumeric3(items))\n items = Array.from({ length: items }, (_, i) => i + 1);\n if (items === void 0 || items === null)\n items = [];\n if (items instanceof Set)\n items = Array.from(items);\n if (items instanceof Map)\n items = Array.from(items);\n let oldLookup = templateEl._x_lookup;\n let lookup = /* @__PURE__ */ new Map();\n templateEl._x_lookup = lookup;\n let hasStringKeys = isObject(items);\n let scopeEntries = Object.entries(items).map(([index, item]) => {\n if (!hasStringKeys)\n index = parseInt(index);\n let scope2 = getIterationScopeVariables(iteratorNames, item, index, items);\n let key;\n evaluateKey((innerKey) => {\n if (typeof innerKey === \"object\")\n warn(\"x-for key cannot be an object, it must be a string or an integer\", templateEl);\n if (oldLookup.has(innerKey)) {\n lookup.set(innerKey, oldLookup.get(innerKey));\n oldLookup.delete(innerKey);\n }\n key = innerKey;\n }, { scope: { index, ...scope2 } });\n return [key, scope2];\n });\n mutateDom(() => {\n oldLookup.forEach((el) => {\n destroyTree(el);\n el.remove();\n });\n let added = /* @__PURE__ */ new Set();\n let prev = templateEl;\n scopeEntries.forEach(([key, scope2]) => {\n if (lookup.has(key)) {\n let el = lookup.get(key);\n el._x_refreshXForScope(scope2);\n if (prev.nextElementSibling !== el) {\n if (prev.nextElementSibling)\n el.replaceWith(prev.nextElementSibling);\n prev.after(el);\n }\n prev = el;\n if (el._x_currentIfEl) {\n if (el.nextElementSibling !== el._x_currentIfEl)\n prev.after(el._x_currentIfEl);\n prev = el._x_currentIfEl;\n }\n return;\n }\n if (templateEl.content.children.length > 1)\n warn(\"x-for templates require a single root element, additional elements will be ignored.\", templateEl);\n let clone2 = document.importNode(templateEl.content, true).firstElementChild;\n let reactiveScope = reactive(scope2);\n addScopeToNode(clone2, reactiveScope, templateEl);\n clone2._x_refreshXForScope = refreshScope(reactiveScope);\n lookup.set(key, clone2);\n added.add(clone2);\n prev.after(clone2);\n prev = clone2;\n });\n skipDuringClone(() => added.forEach((clone2) => initTree(clone2)))();\n });\n });\n}\nfunction parseForExpression(expression) {\n let forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\n let stripParensRE = /^\\s*\\(|\\)\\s*$/g;\n let forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\n let inMatch = expression.match(forAliasRE);\n if (!inMatch)\n return;\n let res = {};\n res.items = inMatch[2].trim();\n let item = inMatch[1].replace(stripParensRE, \"\").trim();\n let iteratorMatch = item.match(forIteratorRE);\n if (iteratorMatch) {\n res.item = item.replace(forIteratorRE, \"\").trim();\n res.index = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.collection = iteratorMatch[2].trim();\n }\n } else {\n res.item = item;\n }\n return res;\n}\nfunction getIterationScopeVariables(iteratorNames, item, index, items) {\n let scopeVariables = {};\n if (/^\\[.*\\]$/.test(iteratorNames.item) && Array.isArray(item)) {\n let names = iteratorNames.item.replace(\"[\", \"\").replace(\"]\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name, i) => {\n scopeVariables[name] = item[i];\n });\n } else if (/^\\{.*\\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === \"object\") {\n let names = iteratorNames.item.replace(\"{\", \"\").replace(\"}\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name) => {\n scopeVariables[name] = item[name];\n });\n } else {\n scopeVariables[iteratorNames.item] = item;\n }\n if (iteratorNames.index)\n scopeVariables[iteratorNames.index] = index;\n if (iteratorNames.collection)\n scopeVariables[iteratorNames.collection] = items;\n return scopeVariables;\n}\nfunction isNumeric3(subject) {\n return typeof subject !== \"object\" && !isNaN(subject);\n}\nfunction isObject(subject) {\n return typeof subject === \"object\" && !Array.isArray(subject);\n}\n\n// packages/alpinejs/src/directives/x-ref.js\nfunction handler3() {\n}\nhandler3.inline = (el, { expression }, { cleanup }) => {\n let root = closestRoot(el);\n if (!root)\n return;\n if (!root._x_refs)\n root._x_refs = {};\n root._x_refs[expression] = el;\n cleanup(() => delete root._x_refs[expression]);\n};\ndirective(\"ref\", handler3);\n\n// packages/alpinejs/src/directives/x-if.js\ndirective(\"if\", (el, { expression }, { effect: effect3, cleanup }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-if can only be used on a <template> tag\", el);\n let evaluate2 = evaluateLater(el, expression);\n let show = () => {\n if (el._x_currentIfEl)\n return el._x_currentIfEl;\n let clone2 = el.content.cloneNode(true).firstElementChild;\n addScopeToNode(clone2, {}, el);\n mutateDom(() => {\n el.after(clone2);\n skipDuringClone(() => initTree(clone2))();\n });\n el._x_currentIfEl = clone2;\n el._x_undoIf = () => {\n mutateDom(() => {\n destroyTree(clone2);\n clone2.remove();\n });\n delete el._x_currentIfEl;\n };\n return clone2;\n };\n let hide = () => {\n if (!el._x_undoIf)\n return;\n el._x_undoIf();\n delete el._x_undoIf;\n };\n effect3(() => evaluate2((value) => {\n value ? show() : hide();\n }));\n cleanup(() => el._x_undoIf && el._x_undoIf());\n});\n\n// packages/alpinejs/src/directives/x-id.js\ndirective(\"id\", (el, { expression }, { evaluate: evaluate2 }) => {\n let names = evaluate2(expression);\n names.forEach((name) => setIdRoot(el, name));\n});\ninterceptClone((from, to) => {\n if (from._x_ids) {\n to._x_ids = from._x_ids;\n }\n});\n\n// packages/alpinejs/src/directives/x-on.js\nmapAttributes(startingWith(\"@\", into(prefix(\"on:\"))));\ndirective(\"on\", skipDuringClone((el, { value, modifiers, expression }, { cleanup }) => {\n let evaluate2 = expression ? evaluateLater(el, expression) : () => {\n };\n if (el.tagName.toLowerCase() === \"template\") {\n if (!el._x_forwardEvents)\n el._x_forwardEvents = [];\n if (!el._x_forwardEvents.includes(value))\n el._x_forwardEvents.push(value);\n }\n let removeListener = on(el, value, modifiers, (e) => {\n evaluate2(() => {\n }, { scope: { \"$event\": e }, params: [e] });\n });\n cleanup(() => removeListener());\n}));\n\n// packages/alpinejs/src/directives/index.js\nwarnMissingPluginDirective(\"Collapse\", \"collapse\", \"collapse\");\nwarnMissingPluginDirective(\"Intersect\", \"intersect\", \"intersect\");\nwarnMissingPluginDirective(\"Focus\", \"trap\", \"focus\");\nwarnMissingPluginDirective(\"Mask\", \"mask\", \"mask\");\nfunction warnMissingPluginDirective(name, directiveName, slug) {\n directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/index.js\nalpine_default.setEvaluator(normalEvaluator);\nalpine_default.setRawEvaluator(normalRawEvaluator);\nalpine_default.setReactivityEngine({ reactive: import_reactivity10.reactive, effect: import_reactivity10.effect, release: import_reactivity10.stop, raw: import_reactivity10.toRaw });\nvar src_default = alpine_default;\n\n// packages/alpinejs/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n Alpine\n});\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/collapse/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n collapse: () => src_default,\n default: () => module_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/collapse/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"collapse\", collapse);\n collapse.inline = (el, { modifiers }) => {\n if (!modifiers.includes(\"min\"))\n return;\n el._x_doShow = () => {\n };\n el._x_doHide = () => {\n };\n };\n function collapse(el, { modifiers }) {\n let duration = modifierValue(modifiers, \"duration\", 250) / 1e3;\n let floor = modifierValue(modifiers, \"min\", 0);\n let fullyHide = !modifiers.includes(\"min\");\n if (!el._x_isShown)\n el.style.height = `${floor}px`;\n if (!el._x_isShown && fullyHide)\n el.hidden = true;\n if (!el._x_isShown)\n el.style.overflow = \"hidden\";\n let setFunction = (el2, styles) => {\n let revertFunction = Alpine.setStyles(el2, styles);\n return styles.height ? () => {\n } : revertFunction;\n };\n let transitionStyles = {\n transitionProperty: \"height\",\n transitionDuration: `${duration}s`,\n transitionTimingFunction: \"cubic-bezier(0.4, 0.0, 0.2, 1)\"\n };\n el._x_transition = {\n in(before = () => {\n }, after = () => {\n }) {\n if (fullyHide)\n el.hidden = false;\n if (fullyHide)\n el.style.display = null;\n let current = el.getBoundingClientRect().height;\n el.style.height = \"auto\";\n let full = el.getBoundingClientRect().height;\n if (current === full) {\n current = floor;\n }\n Alpine.transition(el, Alpine.setStyles, {\n during: transitionStyles,\n start: { height: current + \"px\" },\n end: { height: full + \"px\" }\n }, () => el._x_isShown = true, () => {\n if (Math.abs(el.getBoundingClientRect().height - full) < 1) {\n el.style.overflow = null;\n }\n });\n },\n out(before = () => {\n }, after = () => {\n }) {\n let full = el.getBoundingClientRect().height;\n Alpine.transition(el, setFunction, {\n during: transitionStyles,\n start: { height: full + \"px\" },\n end: { height: floor + \"px\" }\n }, () => el.style.overflow = \"hidden\", () => {\n el._x_isShown = false;\n if (el.style.height == `${floor}px` && fullyHide) {\n el.style.display = \"none\";\n el.hidden = true;\n }\n });\n }\n };\n }\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"duration\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"min\") {\n let match = rawValue.match(/([0-9]+)px/);\n if (match)\n return match[1];\n }\n return rawValue;\n}\n\n// packages/collapse/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n collapse\n});\n", "var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// node_modules/tabbable/dist/index.js\nvar require_dist = __commonJS({\n \"node_modules/tabbable/dist/index.js\"(exports) {\n \"use strict\";\n var candidateSelectors = [\"input:not([inert]):not([inert] *)\", \"select:not([inert]):not([inert] *)\", \"textarea:not([inert]):not([inert] *)\", \"a[href]:not([inert]):not([inert] *)\", \"button:not([inert]):not([inert] *)\", \"[tabindex]:not(slot):not([inert]):not([inert] *)\", \"audio[controls]:not([inert]):not([inert] *)\", \"video[controls]:not([inert]):not([inert] *)\", '[contenteditable]:not([contenteditable=\"false\"]):not([inert]):not([inert] *)', \"details>summary:first-of-type:not([inert]):not([inert] *)\", \"details:not([inert]):not([inert] *)\"];\n var candidateSelector = /* @__PURE__ */ candidateSelectors.join(\",\");\n var NoElement = typeof Element === \"undefined\";\n var matches = NoElement ? function() {\n } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n } : function(element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n };\n var _isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, \"inert\");\n var inert = inertAtt === \"\" || inertAtt === \"true\";\n var result = inert || lookUp && node && // closest does not exist on shadow roots, so we fall back to a manual\n // lookup upward, in case it is not defined.\n (typeof node.closest === \"function\" ? node.closest(\"[inert]\") : _isInert(node.parentNode));\n return result;\n };\n var isContentEditable = function isContentEditable2(node) {\n var _node$getAttribute2;\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, \"contenteditable\");\n return attValue === \"\" || attValue === \"true\";\n };\n var getCandidates = function getCandidates2(el, includeContainer, filter) {\n if (_isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n };\n var _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (_isInert(element, false)) {\n continue;\n }\n if (element.tagName === \"SLOT\") {\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = _getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === \"function\" && options.getShadowRoot(element);\n var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n };\n var hasTabIndex = function hasTabIndex2(node) {\n return !isNaN(parseInt(node.getAttribute(\"tabindex\"), 10));\n };\n var getTabIndex = function getTabIndex2(node) {\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (node.tabIndex < 0) {\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n };\n var getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n };\n var sortOrderedTabbables = function sortOrderedTabbables2(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n };\n var isInput = function isInput2(node) {\n return node.tagName === \"INPUT\";\n };\n var isHiddenInput = function isHiddenInput2(node) {\n return isInput(node) && node.type === \"hidden\";\n };\n var isDetailsWithSummary = function isDetailsWithSummary2(node) {\n var r = node.tagName === \"DETAILS\" && Array.prototype.slice.apply(node.children).some(function(child) {\n return child.tagName === \"SUMMARY\";\n });\n return r;\n };\n var getCheckedRadio = function getCheckedRadio2(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n };\n var isTabbableRadio = function isTabbableRadio2(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios2(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== \"undefined\" && typeof window.CSS !== \"undefined\" && typeof window.CSS.escape === \"function\") {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\", err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n };\n var isRadio = function isRadio2(node) {\n return isInput(node) && node.type === \"radio\";\n };\n var isNonTabbableRadio = function isNonTabbableRadio2(node) {\n return isRadio(node) && !isTabbableRadio(node);\n };\n var isNodeAttached = function isNodeAttached2(node) {\n var _nodeRoot;\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n };\n var isZeroArea = function isZeroArea2(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n };\n var isHidden = function isHidden2(node, _ref) {\n var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot;\n if (displayCheck === \"full-native\") {\n if (\"checkVisibility\" in node) {\n var visible = node.checkVisibility({\n // Checking opacity might be desirable for some use cases, but natively,\n // opacity zero elements _are_ focusable and tabbable.\n checkOpacity: false,\n opacityProperty: false,\n contentVisibilityAuto: true,\n visibilityProperty: true,\n // This is an alias for `visibilityProperty`. Contemporary browsers\n // support both. However, this alias has wider browser support (Chrome\n // >= 105 and Firefox >= 106, vs. Chrome >= 121 and Firefox >= 122), so\n // we include it anyway.\n checkVisibilityCSS: true\n });\n return !visible;\n }\n }\n if (getComputedStyle(node).visibility === \"hidden\") {\n return true;\n }\n var isDirectSummary = matches.call(node, \"details>summary:first-of-type\");\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, \"details:not([open]) *\")) {\n return true;\n }\n if (!displayCheck || displayCheck === \"full\" || // full-native can run this branch when it falls through in case\n // Element#checkVisibility is unsupported\n displayCheck === \"full-native\" || displayCheck === \"legacy-full\") {\n if (typeof getShadowRoot === \"function\") {\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) {\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n node = rootNode.host;\n } else {\n node = parentElement;\n }\n }\n node = originalNode;\n }\n if (isNodeAttached(node)) {\n return !node.getClientRects().length;\n }\n if (displayCheck !== \"legacy-full\") {\n return true;\n }\n } else if (displayCheck === \"non-zero-area\") {\n return isZeroArea(node);\n }\n return false;\n };\n var isDisabledFromFieldset = function isDisabledFromFieldset2(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n while (parentNode) {\n if (parentNode.tagName === \"FIELDSET\" && parentNode.disabled) {\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n if (child.tagName === \"LEGEND\") {\n return matches.call(parentNode, \"fieldset[disabled] *\") ? true : !child.contains(node);\n }\n }\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n return false;\n };\n var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n };\n var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n };\n var isShadowRootTabbable = function isShadowRootTabbable2(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute(\"tabindex\"), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n return false;\n };\n var _sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function(item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? _sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item,\n isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n };\n var tabbable = function tabbable2(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return _sortByOrder(candidates);\n };\n var focusable2 = function focusable3(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n };\n var isTabbable = function isTabbable2(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n };\n var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat(\"iframe:not([inert]):not([inert] *)\").join(\",\");\n var isFocusable2 = function isFocusable3(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n };\n exports.focusable = focusable2;\n exports.getTabIndex = getTabIndex;\n exports.isFocusable = isFocusable2;\n exports.isTabbable = isTabbable;\n exports.tabbable = tabbable;\n }\n});\n\n// node_modules/focus-trap/dist/focus-trap.js\nvar require_focus_trap = __commonJS({\n \"node_modules/focus-trap/dist/focus-trap.js\"(exports) {\n \"use strict\";\n var tabbable = require_dist();\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++)\n n[e] = r[e];\n return n;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r))\n return _arrayLikeToArray(r);\n }\n function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c), u = i.value;\n } catch (n2) {\n return void e(n2);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n }\n function _asyncToGenerator(n) {\n return function() {\n var t = this, e = arguments;\n return new Promise(function(r, o) {\n var a = n.apply(t, e);\n function _next(n2) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n2);\n }\n function _throw(n2) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n2);\n }\n _next(void 0);\n });\n };\n }\n function _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {\n t && (r = t);\n var n = 0, F = function() {\n };\n return {\n s: F,\n n: function() {\n return n >= r.length ? {\n done: true\n } : {\n done: false,\n value: r[n++]\n };\n },\n e: function(r2) {\n throw r2;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o, a = true, u = false;\n return {\n s: function() {\n t = t.call(r);\n },\n n: function() {\n var r2 = t.next();\n return a = r2.done, r2;\n },\n e: function(r2) {\n u = true, o = r2;\n },\n f: function() {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u)\n throw o;\n }\n }\n };\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"])\n return Array.from(r);\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function(r2) {\n return Object.getOwnPropertyDescriptor(e, r2).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {\n _defineProperty(e, r2, t[r2]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {\n Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));\n });\n }\n return e;\n }\n function _regenerator() {\n var e, t, r = \"function\" == typeof Symbol ? Symbol : {}, n = r.iterator || \"@@iterator\", o = r.toStringTag || \"@@toStringTag\";\n function i(r2, n2, o2, i2) {\n var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype);\n return _regeneratorDefine(u2, \"_invoke\", function(r3, n3, o3) {\n var i3, c3, u3, f2 = 0, p = o3 || [], y = false, G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function(t2, r4) {\n return i3 = t2, c3 = 0, u3 = e, G.n = r4, a;\n }\n };\n function d(r4, n4) {\n for (c3 = r4, u3 = n4, t = 0; !y && f2 && !o4 && t < p.length; t++) {\n var o4, i4 = p[t], d2 = G.p, l = i4[2];\n r4 > 3 ? (o4 = l === n4) && (u3 = i4[(c3 = i4[4]) ? 5 : (c3 = 3, 3)], i4[4] = i4[5] = e) : i4[0] <= d2 && ((o4 = r4 < 2 && d2 < i4[1]) ? (c3 = 0, G.v = n4, G.n = i4[1]) : d2 < l && (o4 = r4 < 3 || i4[0] > n4 || n4 > l) && (i4[4] = r4, i4[5] = n4, G.n = l, c3 = 0));\n }\n if (o4 || r4 > 1)\n return a;\n throw y = true, n4;\n }\n return function(o4, p2, l) {\n if (f2 > 1)\n throw TypeError(\"Generator is already running\");\n for (y && 1 === p2 && d(p2, l), c3 = p2, u3 = l; (t = c3 < 2 ? e : u3) || !y; ) {\n i3 || (c3 ? c3 < 3 ? (c3 > 1 && (G.n = -1), d(c3, u3)) : G.n = u3 : G.v = u3);\n try {\n if (f2 = 2, i3) {\n if (c3 || (o4 = \"next\"), t = i3[o4]) {\n if (!(t = t.call(i3, u3)))\n throw TypeError(\"iterator result is not an object\");\n if (!t.done)\n return t;\n u3 = t.value, c3 < 2 && (c3 = 0);\n } else\n 1 === c3 && (t = i3.return) && t.call(i3), c3 < 2 && (u3 = TypeError(\"The iterator does not provide a '\" + o4 + \"' method\"), c3 = 1);\n i3 = e;\n } else if ((t = (y = G.n < 0) ? u3 : r3.call(n3, G)) !== a)\n break;\n } catch (t2) {\n i3 = e, c3 = 1, u3 = t2;\n } finally {\n f2 = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r2, o2, i2), true), u2;\n }\n var a = {};\n function Generator() {\n }\n function GeneratorFunction() {\n }\n function GeneratorFunctionPrototype() {\n }\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function() {\n return this;\n }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e2) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e2, GeneratorFunctionPrototype) : (e2.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e2, o, \"GeneratorFunction\")), e2.prototype = Object.create(u), e2;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", _regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), _regeneratorDefine(u), _regeneratorDefine(u, o, \"Generator\"), _regeneratorDefine(u, n, function() {\n return this;\n }), _regeneratorDefine(u, \"toString\", function() {\n return \"[object Generator]\";\n }), (_regenerator = function() {\n return {\n w: i,\n m: f\n };\n })();\n }\n function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e2) {\n i = 0;\n }\n _regeneratorDefine = function(e2, r2, n2, t2) {\n function o(r3, n3) {\n _regeneratorDefine(e2, r3, function(e3) {\n return this._invoke(r3, n3, e3);\n });\n }\n r2 ? i ? i(e2, r2, {\n value: n2,\n enumerable: !t2,\n configurable: !t2,\n writable: !t2\n }) : e2[r2] = n2 : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, _regeneratorDefine(e, r, n, t);\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t)\n return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i)\n return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r)\n return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n var activeFocusTraps = {\n // Returns the trap from the top of the stack.\n getActiveTrap: function getActiveTrap(trapStack) {\n if ((trapStack === null || trapStack === void 0 ? void 0 : trapStack.length) > 0) {\n return trapStack[trapStack.length - 1];\n }\n return null;\n },\n // Pauses the currently active trap, then adds a new trap to the stack.\n activateTrap: function activateTrap(trapStack, trap) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (trap !== activeTrap) {\n activeFocusTraps.pauseTrap(trapStack);\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n // Removes the trap from the top of the stack, then unpauses the next trap down.\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n activeFocusTraps.unpauseTrap(trapStack);\n },\n // Pauses the trap at the top of the stack.\n pauseTrap: function pauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n activeTrap === null || activeTrap === void 0 || activeTrap._setPausedState(true);\n },\n // Unpauses the trap at the top of the stack.\n unpauseTrap: function unpauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (activeTrap && !activeTrap._isManuallyPaused()) {\n activeTrap._setPausedState(false);\n }\n }\n };\n var isSelectableInput = function isSelectableInput2(node) {\n return node.tagName && node.tagName.toLowerCase() === \"input\" && typeof node.select === \"function\";\n };\n var isEscapeEvent = function isEscapeEvent2(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === \"Escape\" || (e === null || e === void 0 ? void 0 : e.key) === \"Esc\" || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n };\n var isTabEvent = function isTabEvent2(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === \"Tab\" || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n };\n var isKeyForward = function isKeyForward2(e) {\n return isTabEvent(e) && !e.shiftKey;\n };\n var isKeyBackward = function isKeyBackward2(e) {\n return isTabEvent(e) && e.shiftKey;\n };\n var delay = function delay2(fn) {\n return setTimeout(fn, 0);\n };\n var valueOrHandler = function valueOrHandler2(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === \"function\" ? value.apply(void 0, params) : value;\n };\n var getActualTarget = function getActualTarget2(event) {\n return event.target.shadowRoot && typeof event.composedPath === \"function\" ? event.composedPath()[0] : event.target;\n };\n var internalTrapStack = [];\n var createFocusTrap2 = function createFocusTrap3(elements, userOptions) {\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isolateSubtrees: false,\n isKeyForward,\n isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n /** @type {Array<HTMLElement>} */\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n /** @type {Array<{\n * container: HTMLElement,\n * tabbableNodes: Array<HTMLElement>, // empty if none\n * focusableNodes: Array<HTMLElement>, // empty if none\n * posTabIndexesFound: boolean,\n * firstTabbableNode: HTMLElement|undefined,\n * lastTabbableNode: HTMLElement|undefined,\n * firstDomTabbableNode: HTMLElement|undefined,\n * lastDomTabbableNode: HTMLElement|undefined,\n * nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n * }>}\n */\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n // references to nodes that are siblings to the ancestors of this trap's containers.\n /** @type {Set<HTMLElement>} */\n adjacentElements: /* @__PURE__ */ new Set(),\n // references to nodes that were inert or aria-hidden before the trap was activated.\n /** @type {Set<HTMLElement>} */\n alreadySilent: /* @__PURE__ */ new Set(),\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n manuallyPaused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: void 0,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: void 0\n };\n var trap;\n var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n var findContainerIndex = function findContainerIndex2(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === \"function\" ? event.composedPath() : void 0;\n return state.containerGroups.findIndex(function(_ref) {\n var container = _ref.container, tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n (composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function(node) {\n return node === element;\n });\n });\n };\n var getNodeForOption = function getNodeForOption2(optionName) {\n var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$hasFallback = _ref2.hasFallback, hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback, _ref2$params = _ref2.params, params = _ref2$params === void 0 ? [] : _ref2$params;\n var optionValue = config[optionName];\n if (typeof optionValue === \"function\") {\n optionValue = optionValue.apply(void 0, _toConsumableArray(params));\n }\n if (optionValue === true) {\n optionValue = void 0;\n }\n if (!optionValue) {\n if (optionValue === void 0 || optionValue === false) {\n return optionValue;\n }\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue;\n if (typeof optionValue === \"string\") {\n try {\n node = doc.querySelector(optionValue);\n } catch (err) {\n throw new Error(\"`\".concat(optionName, '` appears to be an invalid selector; error=\"').concat(err.message, '\"'));\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode2() {\n var node = getNodeForOption(\"initialFocus\", {\n hasFallback: true\n });\n if (node === false) {\n return false;\n }\n if (node === void 0 || node && !tabbable.isFocusable(node, config.tabbableOptions)) {\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n node = firstTabbableNode || getNodeForOption(\"fallbackFocus\");\n }\n } else if (node === null) {\n node = getNodeForOption(\"fallbackFocus\");\n }\n if (!node) {\n throw new Error(\"Your focus-trap needs to have at least one focusable element\");\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes2() {\n state.containerGroups = state.containers.map(function(container) {\n var tabbableNodes = tabbable.tabbable(container, config.tabbableOptions);\n var focusableNodes = tabbable.focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0;\n var firstDomTabbableNode = focusableNodes.find(function(node) {\n return tabbable.isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function(node) {\n return tabbable.isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function(node) {\n return tabbable.getTabIndex(node) > 0;\n });\n return {\n container,\n tabbableNodes,\n focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function(el) {\n return tabbable.isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function(el) {\n return tabbable.isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function(group) {\n return group.tabbableNodes.length > 0;\n });\n if (state.tabbableGroups.length <= 0 && !getNodeForOption(\"fallbackFocus\")) {\n throw new Error(\"Your focus-trap must have at least one container with at least one tabbable node in it at all times\");\n }\n if (state.containerGroups.find(function(g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n var _getActiveElement = function getActiveElement(el) {\n var activeElement = el.activeElement;\n if (!activeElement) {\n return;\n }\n if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {\n return _getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n };\n var _tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === _getActiveElement(document)) {\n return;\n }\n if (!node || !node.focus) {\n _tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) {\n var node = getNodeForOption(\"setReturnFocus\", {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n };\n var findNextNavNode = function findNextNavNode2(_ref3) {\n var target = _ref3.target, event = _ref3.event, _ref3$isBackward = _ref3.isBackward, isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0;\n if (containerIndex < 0) {\n if (isBackward) {\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n var startOfGroupIndex = state.tabbableGroups.findIndex(function(_ref4) {\n var firstTabbableNode = _ref4.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || tabbable.isFocusable(target, config.tabbableOptions) && !tabbable.isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = tabbable.getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n var lastOfGroupIndex = state.tabbableGroups.findIndex(function(_ref5) {\n var lastTabbableNode = _ref5.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || tabbable.isFocusable(target, config.tabbableOptions) && !tabbable.isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = tabbable.getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n destinationNode = getNodeForOption(\"fallbackFocus\");\n }\n return destinationNode;\n };\n var checkPointerDown = function checkPointerDown2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n };\n var checkFocusIn = function checkFocusIn2(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n event.stopImmediatePropagation();\n var nextNode;\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (tabbable.getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n var mruTabIdx = tabbableNodes.findIndex(function(node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n }\n }\n }\n } else {\n if (!state.containerGroups.some(function(g) {\n return g.tabbableNodes.some(function(n) {\n return tabbable.getTabIndex(n) > 0;\n });\n })) {\n navAcrossContainers = false;\n }\n }\n } else {\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n _tryFocus(nextNode);\n } else {\n _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = void 0;\n };\n var checkKeyNav = function checkKeyNav2(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event,\n isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n event.preventDefault();\n }\n _tryFocus(destinationNode);\n }\n };\n var checkTabKey = function checkTabKey2(event) {\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n var checkEscapeKey = function checkEscapeKey2(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n }\n };\n var checkClick = function checkClick2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n var addListeners = function addListeners2() {\n if (!state.active) {\n return Promise.resolve();\n }\n activeFocusTraps.activateTrap(trapStack, trap);\n var promise;\n if (config.delayInitialFocus) {\n promise = new Promise(function(resolve) {\n state.delayInitialFocusTimer = delay(function() {\n _tryFocus(getInitialFocusNode());\n resolve();\n });\n });\n } else {\n promise = Promise.resolve();\n _tryFocus(getInitialFocusNode());\n }\n doc.addEventListener(\"focusin\", checkFocusIn, true);\n doc.addEventListener(\"mousedown\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"touchstart\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"click\", checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkTabKey, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkEscapeKey);\n return promise;\n };\n var collectAdjacentElements = function collectAdjacentElements2(containers) {\n if (state.active && !state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.adjacentElements.clear();\n state.alreadySilent.clear();\n var containerAncestors = /* @__PURE__ */ new Set();\n var adjacentElements = /* @__PURE__ */ new Set();\n var _iterator = _createForOfIteratorHelper(containers), _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done; ) {\n var container = _step.value;\n containerAncestors.add(container);\n var insideShadowRoot = typeof ShadowRoot !== \"undefined\" && container.getRootNode() instanceof ShadowRoot;\n var current = container;\n while (current) {\n containerAncestors.add(current);\n var parent = current.parentElement;\n var siblings = [];\n if (parent) {\n siblings = parent.children;\n } else if (!parent && insideShadowRoot) {\n siblings = current.getRootNode().children;\n parent = current.getRootNode().host;\n insideShadowRoot = typeof ShadowRoot !== \"undefined\" && parent.getRootNode() instanceof ShadowRoot;\n }\n var _iterator2 = _createForOfIteratorHelper(siblings), _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {\n var child = _step2.value;\n adjacentElements.add(child);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n current = parent;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n containerAncestors.forEach(function(el) {\n adjacentElements[\"delete\"](el);\n });\n state.adjacentElements = adjacentElements;\n };\n var removeListeners = function removeListeners2() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener(\"focusin\", checkFocusIn, true);\n doc.removeEventListener(\"mousedown\", checkPointerDown, true);\n doc.removeEventListener(\"touchstart\", checkPointerDown, true);\n doc.removeEventListener(\"click\", checkClick, true);\n doc.removeEventListener(\"keydown\", checkTabKey, true);\n doc.removeEventListener(\"keydown\", checkEscapeKey);\n return trap;\n };\n var checkDomRemoval = function checkDomRemoval2(mutations) {\n var isFocusedNodeRemoved = mutations.some(function(mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function(node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n if (isFocusedNodeRemoved) {\n _tryFocus(getInitialFocusNode());\n }\n };\n var mutationObserver = typeof window !== \"undefined\" && \"MutationObserver\" in window ? new MutationObserver(checkDomRemoval) : void 0;\n var updateObservedNodes = function updateObservedNodes2() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function(container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, \"onActivate\");\n var onPostActivate = getOption(activateOptions, \"onPostActivate\");\n var checkCanFocusTrap = getOption(activateOptions, \"checkCanFocusTrap\");\n var preexistingTrap = activeFocusTraps.getActiveTrap(trapStack);\n var revertState = false;\n if (preexistingTrap && !preexistingTrap.paused) {\n var _preexistingTrap$_set;\n (_preexistingTrap$_set = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set === void 0 || _preexistingTrap$_set.call(preexistingTrap, false);\n revertState = true;\n }\n try {\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = _getActiveElement(doc);\n onActivate === null || onActivate === void 0 || onActivate();\n var finishActivation = /* @__PURE__ */ function() {\n var _ref6 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee() {\n return _regenerator().w(function(_context) {\n while (1)\n switch (_context.n) {\n case 0:\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n _context.n = 1;\n return addListeners();\n case 1:\n trap._setSubtreeIsolation(true);\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 || onPostActivate();\n case 2:\n return _context.a(2);\n }\n }, _callee);\n }));\n return function finishActivation2() {\n return _ref6.apply(this, arguments);\n };\n }();\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n } catch (error) {\n if (preexistingTrap === activeFocusTraps.getActiveTrap(trapStack) && revertState) {\n var _preexistingTrap$_set2;\n (_preexistingTrap$_set2 = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set2 === void 0 || _preexistingTrap$_set2.call(preexistingTrap, true);\n }\n throw error;\n }\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer);\n state.delayInitialFocusTimer = void 0;\n if (!state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.alreadySilent.clear();\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, \"onDeactivate\");\n var onPostDeactivate = getOption(options, \"onPostDeactivate\");\n var checkCanReturnFocus = getOption(options, \"checkCanReturnFocus\");\n var returnFocus = getOption(options, \"returnFocus\", \"returnFocusOnDeactivate\");\n onDeactivate === null || onDeactivate === void 0 || onDeactivate();\n var finishDeactivation = function finishDeactivation2() {\n delay(function() {\n if (returnFocus) {\n _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = true;\n return this._setPausedState(true, pauseOptions);\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = false;\n if (trapStack[trapStack.length - 1] !== this) {\n return this;\n }\n return this._setPausedState(false, unpauseOptions);\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function(element) {\n return typeof element === \"string\" ? doc.querySelector(element) : element;\n });\n if (config.isolateSubtrees) {\n collectAdjacentElements(state.containers);\n }\n if (state.active) {\n updateTabbableNodes();\n if (!state.paused) {\n trap._setSubtreeIsolation(true);\n }\n }\n updateObservedNodes();\n return this;\n }\n };\n Object.defineProperties(trap, {\n _isManuallyPaused: {\n value: function value() {\n return state.manuallyPaused;\n }\n },\n _setPausedState: {\n value: function value(paused, options) {\n if (state.paused === paused) {\n return this;\n }\n state.paused = paused;\n if (paused) {\n var onPause = getOption(options, \"onPause\");\n var onPostPause = getOption(options, \"onPostPause\");\n onPause === null || onPause === void 0 || onPause();\n removeListeners();\n trap._setSubtreeIsolation(false);\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 || onPostPause();\n } else {\n var onUnpause = getOption(options, \"onUnpause\");\n var onPostUnpause = getOption(options, \"onPostUnpause\");\n onUnpause === null || onUnpause === void 0 || onUnpause();\n var finishUnpause = /* @__PURE__ */ function() {\n var _ref7 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee2() {\n return _regenerator().w(function(_context2) {\n while (1)\n switch (_context2.n) {\n case 0:\n updateTabbableNodes();\n _context2.n = 1;\n return addListeners();\n case 1:\n trap._setSubtreeIsolation(true);\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();\n case 2:\n return _context2.a(2);\n }\n }, _callee2);\n }));\n return function finishUnpause2() {\n return _ref7.apply(this, arguments);\n };\n }();\n finishUnpause();\n }\n return this;\n }\n },\n _setSubtreeIsolation: {\n value: function value(isEnabled) {\n if (config.isolateSubtrees) {\n state.adjacentElements.forEach(function(el) {\n var _el$getAttribute;\n if (isEnabled) {\n switch (config.isolateSubtrees) {\n case \"aria-hidden\":\n if (el.ariaHidden === \"true\" || ((_el$getAttribute = el.getAttribute(\"aria-hidden\")) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.toLowerCase()) === \"true\") {\n state.alreadySilent.add(el);\n }\n el.setAttribute(\"aria-hidden\", \"true\");\n break;\n default:\n if (el.inert || el.hasAttribute(\"inert\")) {\n state.alreadySilent.add(el);\n }\n el.setAttribute(\"inert\", true);\n break;\n }\n } else {\n if (state.alreadySilent.has(el))\n ;\n else {\n switch (config.isolateSubtrees) {\n case \"aria-hidden\":\n el.removeAttribute(\"aria-hidden\");\n break;\n default:\n el.removeAttribute(\"inert\");\n break;\n }\n }\n }\n });\n }\n }\n }\n });\n trap.updateContainerElements(elements);\n return trap;\n };\n exports.createFocusTrap = createFocusTrap2;\n }\n});\n\n// packages/focus/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n focus: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/focus/src/index.js\nvar import_focus_trap = __toESM(require_focus_trap());\nvar import_tabbable = __toESM(require_dist());\nfunction src_default(Alpine) {\n let lastFocused;\n let currentFocused;\n window.addEventListener(\"focusin\", () => {\n lastFocused = currentFocused;\n currentFocused = document.activeElement;\n });\n Alpine.magic(\"focus\", (el) => {\n let within = el;\n return {\n __noscroll: false,\n __wrapAround: false,\n within(el2) {\n within = el2;\n return this;\n },\n withoutScrolling() {\n this.__noscroll = true;\n return this;\n },\n noscroll() {\n this.__noscroll = true;\n return this;\n },\n withWrapAround() {\n this.__wrapAround = true;\n return this;\n },\n wrap() {\n return this.withWrapAround();\n },\n focusable(el2) {\n return (0, import_tabbable.isFocusable)(el2);\n },\n previouslyFocused() {\n return lastFocused;\n },\n lastFocused() {\n return lastFocused;\n },\n focused() {\n return currentFocused;\n },\n focusables() {\n if (Array.isArray(within))\n return within;\n return (0, import_tabbable.focusable)(within, { displayCheck: \"none\" });\n },\n all() {\n return this.focusables();\n },\n isFirst(el2) {\n let els = this.all();\n return els[0] && els[0].isSameNode(el2);\n },\n isLast(el2) {\n let els = this.all();\n return els.length && els.slice(-1)[0].isSameNode(el2);\n },\n getFirst() {\n return this.all()[0];\n },\n getLast() {\n return this.all().slice(-1)[0];\n },\n getNext() {\n let list = this.all();\n let current = document.activeElement;\n if (list.indexOf(current) === -1)\n return;\n if (this.__wrapAround && list.indexOf(current) === list.length - 1) {\n return list[0];\n }\n return list[list.indexOf(current) + 1];\n },\n getPrevious() {\n let list = this.all();\n let current = document.activeElement;\n if (list.indexOf(current) === -1)\n return;\n if (this.__wrapAround && list.indexOf(current) === 0) {\n return list.slice(-1)[0];\n }\n return list[list.indexOf(current) - 1];\n },\n first() {\n this.focus(this.getFirst());\n },\n last() {\n this.focus(this.getLast());\n },\n next() {\n this.focus(this.getNext());\n },\n previous() {\n this.focus(this.getPrevious());\n },\n prev() {\n return this.previous();\n },\n focus(el2) {\n if (!el2)\n return;\n setTimeout(() => {\n if (!el2.hasAttribute(\"tabindex\"))\n el2.setAttribute(\"tabindex\", \"0\");\n el2.focus({ preventScroll: this.__noscroll });\n });\n }\n };\n });\n Alpine.directive(\"trap\", Alpine.skipDuringClone(\n (el, { expression, modifiers }, { effect, evaluateLater, cleanup }) => {\n let evaluator = evaluateLater(expression);\n let oldValue = false;\n let options = {\n escapeDeactivates: false,\n allowOutsideClick: true,\n fallbackFocus: () => el\n };\n let undoInert = () => {\n };\n if (modifiers.includes(\"noautofocus\")) {\n options.initialFocus = false;\n } else {\n let autofocusEl = el.querySelector(\"[autofocus]\");\n if (autofocusEl)\n options.initialFocus = autofocusEl;\n }\n if (modifiers.includes(\"inert\")) {\n options.onPostActivate = () => {\n Alpine.nextTick(() => {\n undoInert = setInert(el);\n });\n };\n }\n let trap = (0, import_focus_trap.createFocusTrap)(el, options);\n let undoDisableScrolling = () => {\n };\n const releaseFocus = () => {\n undoInert();\n undoInert = () => {\n };\n undoDisableScrolling();\n undoDisableScrolling = () => {\n };\n trap.deactivate({\n returnFocus: !modifiers.includes(\"noreturn\")\n });\n };\n effect(() => evaluator((value) => {\n if (oldValue === value)\n return;\n if (value && !oldValue) {\n if (modifiers.includes(\"noscroll\"))\n undoDisableScrolling = disableScrolling();\n setTimeout(() => {\n trap.activate();\n }, 15);\n }\n if (!value && oldValue) {\n releaseFocus();\n }\n oldValue = !!value;\n }));\n cleanup(releaseFocus);\n },\n // When cloning, we only want to add aria-hidden attributes to the\n // DOM and not try to actually trap, as trapping can mess with the\n // live DOM and isn't just isolated to the cloned DOM.\n (el, { expression, modifiers }, { evaluate }) => {\n if (modifiers.includes(\"inert\") && evaluate(expression))\n setInert(el);\n }\n ));\n}\nfunction setInert(el) {\n let undos = [];\n crawlSiblingsUp(el, (sibling) => {\n let cache = sibling.hasAttribute(\"aria-hidden\");\n sibling.setAttribute(\"aria-hidden\", \"true\");\n undos.push(() => cache || sibling.removeAttribute(\"aria-hidden\"));\n });\n return () => {\n while (undos.length)\n undos.pop()();\n };\n}\nfunction crawlSiblingsUp(el, callback) {\n if (el.isSameNode(document.body) || !el.parentNode)\n return;\n Array.from(el.parentNode.children).forEach((sibling) => {\n if (sibling.isSameNode(el)) {\n crawlSiblingsUp(el.parentNode, callback);\n } else {\n callback(sibling);\n }\n });\n}\nfunction disableScrolling() {\n let overflow = document.documentElement.style.overflow;\n let paddingRight = document.documentElement.style.paddingRight;\n let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n let scrollbarGutter = window.getComputedStyle(document.documentElement).scrollbarGutter;\n document.documentElement.style.overflow = \"hidden\";\n if (scrollbarGutter && scrollbarGutter !== \"auto\") {\n return () => {\n document.documentElement.style.overflow = overflow;\n };\n }\n document.documentElement.style.paddingRight = `${scrollbarWidth}px`;\n return () => {\n document.documentElement.style.overflow = overflow;\n document.documentElement.style.paddingRight = paddingRight;\n };\n}\n\n// packages/focus/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n focus\n});\n/*! Bundled license information:\n\ntabbable/dist/index.js:\n (*!\n * tabbable 6.4.0\n * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n *)\n\nfocus-trap/dist/focus-trap.js:\n (*!\n * focus-trap 8.0.0\n * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n *)\n (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *)\n*/\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/intersect/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n intersect: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/intersect/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"intersect\", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {\n let evaluate = evaluateLater(expression);\n let options = {\n rootMargin: getRootMargin(modifiers),\n threshold: getThreshold(modifiers)\n };\n let observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting === (value === \"leave\"))\n return;\n evaluate();\n modifiers.includes(\"once\") && observer.disconnect();\n });\n }, options);\n observer.observe(el);\n cleanup(() => {\n observer.disconnect();\n });\n }));\n}\nfunction getThreshold(modifiers) {\n if (modifiers.includes(\"full\"))\n return 0.99;\n if (modifiers.includes(\"half\"))\n return 0.5;\n if (!modifiers.includes(\"threshold\"))\n return 0;\n let threshold = modifiers[modifiers.indexOf(\"threshold\") + 1];\n if (threshold === \"100\")\n return 1;\n if (threshold === \"0\")\n return 0;\n return Number(`.${threshold}`);\n}\nfunction getLengthValue(rawValue) {\n let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);\n return match ? match[1] + (match[2] || \"px\") : void 0;\n}\nfunction getRootMargin(modifiers) {\n const key = \"margin\";\n const fallback = \"0px 0px 0px 0px\";\n const index = modifiers.indexOf(key);\n if (index === -1)\n return fallback;\n let values = [];\n for (let i = 1; i < 5; i++) {\n values.push(getLengthValue(modifiers[index + i] || \"\"));\n }\n values = values.filter((v) => v !== void 0);\n return values.length ? values.join(\" \").trim() : fallback;\n}\n\n// packages/intersect/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n intersect\n});\n", "var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// node_modules/sortablejs/Sortable.min.js\nvar require_Sortable_min = __commonJS({\n \"node_modules/sortablejs/Sortable.min.js\"(exports, module2) {\n !function(t, e) {\n \"object\" == typeof exports && \"undefined\" != typeof module2 ? module2.exports = e() : \"function\" == typeof define && define.amd ? define(e) : (t = t || self).Sortable = e();\n }(exports, function() {\n \"use strict\";\n function e(e2, t2) {\n var n2, o2 = Object.keys(e2);\n return Object.getOwnPropertySymbols && (n2 = Object.getOwnPropertySymbols(e2), t2 && (n2 = n2.filter(function(t3) {\n return Object.getOwnPropertyDescriptor(e2, t3).enumerable;\n })), o2.push.apply(o2, n2)), o2;\n }\n function I(o2) {\n for (var t2 = 1; t2 < arguments.length; t2++) {\n var i2 = null != arguments[t2] ? arguments[t2] : {};\n t2 % 2 ? e(Object(i2), true).forEach(function(t3) {\n var e2, n2;\n e2 = o2, t3 = i2[n2 = t3], n2 in e2 ? Object.defineProperty(e2, n2, { value: t3, enumerable: true, configurable: true, writable: true }) : e2[n2] = t3;\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o2, Object.getOwnPropertyDescriptors(i2)) : e(Object(i2)).forEach(function(t3) {\n Object.defineProperty(o2, t3, Object.getOwnPropertyDescriptor(i2, t3));\n });\n }\n return o2;\n }\n function o(t2) {\n return (o = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(t3) {\n return typeof t3;\n } : function(t3) {\n return t3 && \"function\" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? \"symbol\" : typeof t3;\n })(t2);\n }\n function a() {\n return (a = Object.assign || function(t2) {\n for (var e2 = 1; e2 < arguments.length; e2++) {\n var n2, o2 = arguments[e2];\n for (n2 in o2)\n Object.prototype.hasOwnProperty.call(o2, n2) && (t2[n2] = o2[n2]);\n }\n return t2;\n }).apply(this, arguments);\n }\n function i(t2, e2) {\n if (null == t2)\n return {};\n var n2, o2 = function(t3, e3) {\n if (null == t3)\n return {};\n for (var n3, o3 = {}, i3 = Object.keys(t3), r3 = 0; r3 < i3.length; r3++)\n n3 = i3[r3], 0 <= e3.indexOf(n3) || (o3[n3] = t3[n3]);\n return o3;\n }(t2, e2);\n if (Object.getOwnPropertySymbols)\n for (var i2 = Object.getOwnPropertySymbols(t2), r2 = 0; r2 < i2.length; r2++)\n n2 = i2[r2], 0 <= e2.indexOf(n2) || Object.prototype.propertyIsEnumerable.call(t2, n2) && (o2[n2] = t2[n2]);\n return o2;\n }\n function r(t2) {\n return function(t3) {\n if (Array.isArray(t3))\n return l(t3);\n }(t2) || function(t3) {\n if (\"undefined\" != typeof Symbol && null != t3[Symbol.iterator] || null != t3[\"@@iterator\"])\n return Array.from(t3);\n }(t2) || function(t3, e2) {\n if (t3) {\n if (\"string\" == typeof t3)\n return l(t3, e2);\n var n2 = Object.prototype.toString.call(t3).slice(8, -1);\n return \"Map\" === (n2 = \"Object\" === n2 && t3.constructor ? t3.constructor.name : n2) || \"Set\" === n2 ? Array.from(t3) : \"Arguments\" === n2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2) ? l(t3, e2) : void 0;\n }\n }(t2) || function() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n function l(t2, e2) {\n (null == e2 || e2 > t2.length) && (e2 = t2.length);\n for (var n2 = 0, o2 = new Array(e2); n2 < e2; n2++)\n o2[n2] = t2[n2];\n return o2;\n }\n function t(t2) {\n if (\"undefined\" != typeof window && window.navigator)\n return !!navigator.userAgent.match(t2);\n }\n var y = t(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i), w = t(/Edge/i), s = t(/firefox/i), u = t(/safari/i) && !t(/chrome/i) && !t(/android/i), n = t(/iP(ad|od|hone)/i), c = t(/chrome/i) && t(/android/i), d = { capture: false, passive: false };\n function h(t2, e2, n2) {\n t2.addEventListener(e2, n2, !y && d);\n }\n function f(t2, e2, n2) {\n t2.removeEventListener(e2, n2, !y && d);\n }\n function p(t2, e2) {\n if (e2 && (\">\" === e2[0] && (e2 = e2.substring(1)), t2))\n try {\n if (t2.matches)\n return t2.matches(e2);\n if (t2.msMatchesSelector)\n return t2.msMatchesSelector(e2);\n if (t2.webkitMatchesSelector)\n return t2.webkitMatchesSelector(e2);\n } catch (t3) {\n return;\n }\n }\n function P(t2, e2, n2, o2) {\n if (t2) {\n n2 = n2 || document;\n do {\n if (null != e2 && (\">\" !== e2[0] || t2.parentNode === n2) && p(t2, e2) || o2 && t2 === n2)\n return t2;\n } while (t2 !== n2 && (t2 = (i2 = t2).host && i2 !== document && i2.host.nodeType ? i2.host : i2.parentNode));\n }\n var i2;\n return null;\n }\n var g, m = /\\s+/g;\n function k(t2, e2, n2) {\n var o2;\n t2 && e2 && (t2.classList ? t2.classList[n2 ? \"add\" : \"remove\"](e2) : (o2 = (\" \" + t2.className + \" \").replace(m, \" \").replace(\" \" + e2 + \" \", \" \"), t2.className = (o2 + (n2 ? \" \" + e2 : \"\")).replace(m, \" \")));\n }\n function R(t2, e2, n2) {\n var o2 = t2 && t2.style;\n if (o2) {\n if (void 0 === n2)\n return document.defaultView && document.defaultView.getComputedStyle ? n2 = document.defaultView.getComputedStyle(t2, \"\") : t2.currentStyle && (n2 = t2.currentStyle), void 0 === e2 ? n2 : n2[e2];\n o2[e2 = !(e2 in o2 || -1 !== e2.indexOf(\"webkit\")) ? \"-webkit-\" + e2 : e2] = n2 + (\"string\" == typeof n2 ? \"\" : \"px\");\n }\n }\n function v(t2, e2) {\n var n2 = \"\";\n if (\"string\" == typeof t2)\n n2 = t2;\n else\n do {\n var o2 = R(t2, \"transform\");\n } while (o2 && \"none\" !== o2 && (n2 = o2 + \" \" + n2), !e2 && (t2 = t2.parentNode));\n var i2 = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n return i2 && new i2(n2);\n }\n function b(t2, e2, n2) {\n if (t2) {\n var o2 = t2.getElementsByTagName(e2), i2 = 0, r2 = o2.length;\n if (n2)\n for (; i2 < r2; i2++)\n n2(o2[i2], i2);\n return o2;\n }\n return [];\n }\n function O() {\n var t2 = document.scrollingElement;\n return t2 || document.documentElement;\n }\n function X(t2, e2, n2, o2, i2) {\n if (t2.getBoundingClientRect || t2 === window) {\n var r2, a2, l2, s2, c2, u2, d2 = t2 !== window && t2.parentNode && t2 !== O() ? (a2 = (r2 = t2.getBoundingClientRect()).top, l2 = r2.left, s2 = r2.bottom, c2 = r2.right, u2 = r2.height, r2.width) : (l2 = a2 = 0, s2 = window.innerHeight, c2 = window.innerWidth, u2 = window.innerHeight, window.innerWidth);\n if ((e2 || n2) && t2 !== window && (i2 = i2 || t2.parentNode, !y))\n do {\n if (i2 && i2.getBoundingClientRect && (\"none\" !== R(i2, \"transform\") || n2 && \"static\" !== R(i2, \"position\"))) {\n var h2 = i2.getBoundingClientRect();\n a2 -= h2.top + parseInt(R(i2, \"border-top-width\")), l2 -= h2.left + parseInt(R(i2, \"border-left-width\")), s2 = a2 + r2.height, c2 = l2 + r2.width;\n break;\n }\n } while (i2 = i2.parentNode);\n return o2 && t2 !== window && (o2 = (e2 = v(i2 || t2)) && e2.a, t2 = e2 && e2.d, e2 && (s2 = (a2 /= t2) + (u2 /= t2), c2 = (l2 /= o2) + (d2 /= o2))), { top: a2, left: l2, bottom: s2, right: c2, width: d2, height: u2 };\n }\n }\n function Y(t2, e2, n2) {\n for (var o2 = M(t2, true), i2 = X(t2)[e2]; o2; ) {\n var r2 = X(o2)[n2];\n if (!(\"top\" === n2 || \"left\" === n2 ? r2 <= i2 : i2 <= r2))\n return o2;\n if (o2 === O())\n break;\n o2 = M(o2, false);\n }\n return false;\n }\n function B(t2, e2, n2, o2) {\n for (var i2 = 0, r2 = 0, a2 = t2.children; r2 < a2.length; ) {\n if (\"none\" !== a2[r2].style.display && a2[r2] !== Ft.ghost && (o2 || a2[r2] !== Ft.dragged) && P(a2[r2], n2.draggable, t2, false)) {\n if (i2 === e2)\n return a2[r2];\n i2++;\n }\n r2++;\n }\n return null;\n }\n function F(t2, e2) {\n for (var n2 = t2.lastElementChild; n2 && (n2 === Ft.ghost || \"none\" === R(n2, \"display\") || e2 && !p(n2, e2)); )\n n2 = n2.previousElementSibling;\n return n2 || null;\n }\n function j(t2, e2) {\n var n2 = 0;\n if (!t2 || !t2.parentNode)\n return -1;\n for (; t2 = t2.previousElementSibling; )\n \"TEMPLATE\" === t2.nodeName.toUpperCase() || t2 === Ft.clone || e2 && !p(t2, e2) || n2++;\n return n2;\n }\n function E(t2) {\n var e2 = 0, n2 = 0, o2 = O();\n if (t2)\n do {\n var i2 = v(t2), r2 = i2.a, i2 = i2.d;\n } while (e2 += t2.scrollLeft * r2, n2 += t2.scrollTop * i2, t2 !== o2 && (t2 = t2.parentNode));\n return [e2, n2];\n }\n function M(t2, e2) {\n if (!t2 || !t2.getBoundingClientRect)\n return O();\n var n2 = t2, o2 = false;\n do {\n if (n2.clientWidth < n2.scrollWidth || n2.clientHeight < n2.scrollHeight) {\n var i2 = R(n2);\n if (n2.clientWidth < n2.scrollWidth && (\"auto\" == i2.overflowX || \"scroll\" == i2.overflowX) || n2.clientHeight < n2.scrollHeight && (\"auto\" == i2.overflowY || \"scroll\" == i2.overflowY)) {\n if (!n2.getBoundingClientRect || n2 === document.body)\n return O();\n if (o2 || e2)\n return n2;\n o2 = true;\n }\n }\n } while (n2 = n2.parentNode);\n return O();\n }\n function D(t2, e2) {\n return Math.round(t2.top) === Math.round(e2.top) && Math.round(t2.left) === Math.round(e2.left) && Math.round(t2.height) === Math.round(e2.height) && Math.round(t2.width) === Math.round(e2.width);\n }\n function S(e2, n2) {\n return function() {\n var t2;\n g || (1 === (t2 = arguments).length ? e2.call(this, t2[0]) : e2.apply(this, t2), g = setTimeout(function() {\n g = void 0;\n }, n2));\n };\n }\n function H(t2, e2, n2) {\n t2.scrollLeft += e2, t2.scrollTop += n2;\n }\n function _(t2) {\n var e2 = window.Polymer, n2 = window.jQuery || window.Zepto;\n return e2 && e2.dom ? e2.dom(t2).cloneNode(true) : n2 ? n2(t2).clone(true)[0] : t2.cloneNode(true);\n }\n function C(t2, e2) {\n R(t2, \"position\", \"absolute\"), R(t2, \"top\", e2.top), R(t2, \"left\", e2.left), R(t2, \"width\", e2.width), R(t2, \"height\", e2.height);\n }\n function T(t2) {\n R(t2, \"position\", \"\"), R(t2, \"top\", \"\"), R(t2, \"left\", \"\"), R(t2, \"width\", \"\"), R(t2, \"height\", \"\");\n }\n function L(n2, o2, i2) {\n var r2 = {};\n return Array.from(n2.children).forEach(function(t2) {\n var e2;\n P(t2, o2.draggable, n2, false) && !t2.animated && t2 !== i2 && (e2 = X(t2), r2.left = Math.min(null !== (t2 = r2.left) && void 0 !== t2 ? t2 : 1 / 0, e2.left), r2.top = Math.min(null !== (t2 = r2.top) && void 0 !== t2 ? t2 : 1 / 0, e2.top), r2.right = Math.max(null !== (t2 = r2.right) && void 0 !== t2 ? t2 : -1 / 0, e2.right), r2.bottom = Math.max(null !== (t2 = r2.bottom) && void 0 !== t2 ? t2 : -1 / 0, e2.bottom));\n }), r2.width = r2.right - r2.left, r2.height = r2.bottom - r2.top, r2.x = r2.left, r2.y = r2.top, r2;\n }\n var K = \"Sortable\" + new Date().getTime();\n function x() {\n var e2, o2 = [];\n return { captureAnimationState: function() {\n o2 = [], this.options.animation && [].slice.call(this.el.children).forEach(function(t2) {\n var e3, n2;\n \"none\" !== R(t2, \"display\") && t2 !== Ft.ghost && (o2.push({ target: t2, rect: X(t2) }), e3 = I({}, o2[o2.length - 1].rect), !t2.thisAnimationDuration || (n2 = v(t2, true)) && (e3.top -= n2.f, e3.left -= n2.e), t2.fromRect = e3);\n });\n }, addAnimationState: function(t2) {\n o2.push(t2);\n }, removeAnimationState: function(t2) {\n o2.splice(function(t3, e3) {\n for (var n2 in t3)\n if (t3.hasOwnProperty(n2)) {\n for (var o3 in e3)\n if (e3.hasOwnProperty(o3) && e3[o3] === t3[n2][o3])\n return Number(n2);\n }\n return -1;\n }(o2, { target: t2 }), 1);\n }, animateAll: function(t2) {\n var c2 = this;\n if (!this.options.animation)\n return clearTimeout(e2), void (\"function\" == typeof t2 && t2());\n var u2 = false, d2 = 0;\n o2.forEach(function(t3) {\n var e3 = 0, n2 = t3.target, o3 = n2.fromRect, i2 = X(n2), r2 = n2.prevFromRect, a2 = n2.prevToRect, l2 = t3.rect, s2 = v(n2, true);\n s2 && (i2.top -= s2.f, i2.left -= s2.e), n2.toRect = i2, n2.thisAnimationDuration && D(r2, i2) && !D(o3, i2) && (l2.top - i2.top) / (l2.left - i2.left) == (o3.top - i2.top) / (o3.left - i2.left) && (t3 = l2, s2 = r2, r2 = a2, a2 = c2.options, e3 = Math.sqrt(Math.pow(s2.top - t3.top, 2) + Math.pow(s2.left - t3.left, 2)) / Math.sqrt(Math.pow(s2.top - r2.top, 2) + Math.pow(s2.left - r2.left, 2)) * a2.animation), D(i2, o3) || (n2.prevFromRect = o3, n2.prevToRect = i2, e3 = e3 || c2.options.animation, c2.animate(n2, l2, i2, e3)), e3 && (u2 = true, d2 = Math.max(d2, e3), clearTimeout(n2.animationResetTimer), n2.animationResetTimer = setTimeout(function() {\n n2.animationTime = 0, n2.prevFromRect = null, n2.fromRect = null, n2.prevToRect = null, n2.thisAnimationDuration = null;\n }, e3), n2.thisAnimationDuration = e3);\n }), clearTimeout(e2), u2 ? e2 = setTimeout(function() {\n \"function\" == typeof t2 && t2();\n }, d2) : \"function\" == typeof t2 && t2(), o2 = [];\n }, animate: function(t2, e3, n2, o3) {\n var i2, r2;\n o3 && (R(t2, \"transition\", \"\"), R(t2, \"transform\", \"\"), i2 = (r2 = v(this.el)) && r2.a, r2 = r2 && r2.d, i2 = (e3.left - n2.left) / (i2 || 1), r2 = (e3.top - n2.top) / (r2 || 1), t2.animatingX = !!i2, t2.animatingY = !!r2, R(t2, \"transform\", \"translate3d(\" + i2 + \"px,\" + r2 + \"px,0)\"), this.forRepaintDummy = t2.offsetWidth, R(t2, \"transition\", \"transform \" + o3 + \"ms\" + (this.options.easing ? \" \" + this.options.easing : \"\")), R(t2, \"transform\", \"translate3d(0,0,0)\"), \"number\" == typeof t2.animated && clearTimeout(t2.animated), t2.animated = setTimeout(function() {\n R(t2, \"transition\", \"\"), R(t2, \"transform\", \"\"), t2.animated = false, t2.animatingX = false, t2.animatingY = false;\n }, o3));\n } };\n }\n var A = [], N = { initializeByDefault: true }, W = { mount: function(e2) {\n for (var t2 in N)\n !N.hasOwnProperty(t2) || t2 in e2 || (e2[t2] = N[t2]);\n A.forEach(function(t3) {\n if (t3.pluginName === e2.pluginName)\n throw \"Sortable: Cannot mount plugin \".concat(e2.pluginName, \" more than once\");\n }), A.push(e2);\n }, pluginEvent: function(e2, n2, o2) {\n var t2 = this;\n this.eventCanceled = false, o2.cancel = function() {\n t2.eventCanceled = true;\n };\n var i2 = e2 + \"Global\";\n A.forEach(function(t3) {\n n2[t3.pluginName] && (n2[t3.pluginName][i2] && n2[t3.pluginName][i2](I({ sortable: n2 }, o2)), n2.options[t3.pluginName] && n2[t3.pluginName][e2] && n2[t3.pluginName][e2](I({ sortable: n2 }, o2)));\n });\n }, initializePlugins: function(n2, o2, i2, t2) {\n for (var e2 in A.forEach(function(t3) {\n var e3 = t3.pluginName;\n (n2.options[e3] || t3.initializeByDefault) && ((t3 = new t3(n2, o2, n2.options)).sortable = n2, t3.options = n2.options, n2[e3] = t3, a(i2, t3.defaults));\n }), n2.options) {\n var r2;\n n2.options.hasOwnProperty(e2) && (void 0 !== (r2 = this.modifyOption(n2, e2, n2.options[e2])) && (n2.options[e2] = r2));\n }\n }, getEventProperties: function(e2, n2) {\n var o2 = {};\n return A.forEach(function(t2) {\n \"function\" == typeof t2.eventProperties && a(o2, t2.eventProperties.call(n2[t2.pluginName], e2));\n }), o2;\n }, modifyOption: function(e2, n2, o2) {\n var i2;\n return A.forEach(function(t2) {\n e2[t2.pluginName] && t2.optionListeners && \"function\" == typeof t2.optionListeners[n2] && (i2 = t2.optionListeners[n2].call(e2[t2.pluginName], o2));\n }), i2;\n } };\n function z(t2) {\n var e2 = t2.sortable, n2 = t2.rootEl, o2 = t2.name, i2 = t2.targetEl, r2 = t2.cloneEl, a2 = t2.toEl, l2 = t2.fromEl, s2 = t2.oldIndex, c2 = t2.newIndex, u2 = t2.oldDraggableIndex, d2 = t2.newDraggableIndex, h2 = t2.originalEvent, f2 = t2.putSortable, p2 = t2.extraEventProperties;\n if (e2 = e2 || n2 && n2[K]) {\n var g2, m2 = e2.options, t2 = \"on\" + o2.charAt(0).toUpperCase() + o2.substr(1);\n !window.CustomEvent || y || w ? (g2 = document.createEvent(\"Event\")).initEvent(o2, true, true) : g2 = new CustomEvent(o2, { bubbles: true, cancelable: true }), g2.to = a2 || n2, g2.from = l2 || n2, g2.item = i2 || n2, g2.clone = r2, g2.oldIndex = s2, g2.newIndex = c2, g2.oldDraggableIndex = u2, g2.newDraggableIndex = d2, g2.originalEvent = h2, g2.pullMode = f2 ? f2.lastPutMode : void 0;\n var v2, b2 = I(I({}, p2), W.getEventProperties(o2, e2));\n for (v2 in b2)\n g2[v2] = b2[v2];\n n2 && n2.dispatchEvent(g2), m2[t2] && m2[t2].call(e2, g2);\n }\n }\n function G(t2, e2) {\n var n2 = (o2 = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}).evt, o2 = i(o2, U);\n W.pluginEvent.bind(Ft)(t2, e2, I({ dragEl: V, parentEl: Z, ghostEl: $, rootEl: Q, nextEl: J, lastDownEl: tt, cloneEl: et, cloneHidden: nt, dragStarted: gt, putSortable: st, activeSortable: Ft.active, originalEvent: n2, oldIndex: ot, oldDraggableIndex: rt, newIndex: it, newDraggableIndex: at, hideGhostForTarget: Rt, unhideGhostForTarget: Xt, cloneNowHidden: function() {\n nt = true;\n }, cloneNowShown: function() {\n nt = false;\n }, dispatchSortableEvent: function(t3) {\n q({ sortable: e2, name: t3, originalEvent: n2 });\n } }, o2));\n }\n var U = [\"evt\"];\n function q(t2) {\n z(I({ putSortable: st, cloneEl: et, targetEl: V, rootEl: Q, oldIndex: ot, oldDraggableIndex: rt, newIndex: it, newDraggableIndex: at }, t2));\n }\n var V, Z, $, Q, J, tt, et, nt, ot, it, rt, at, lt, st, ct, ut, dt, ht, ft, pt, gt, mt, vt, bt, yt, wt = false, Et = false, Dt = [], St = false, _t = false, Ct = [], Tt = false, xt = [], Ot = \"undefined\" != typeof document, Mt = n, At = w || y ? \"cssFloat\" : \"float\", Nt = Ot && !c && !n && \"draggable\" in document.createElement(\"div\"), It = function() {\n if (Ot) {\n if (y)\n return false;\n var t2 = document.createElement(\"x\");\n return t2.style.cssText = \"pointer-events:auto\", \"auto\" === t2.style.pointerEvents;\n }\n }(), Pt = function(t2, e2) {\n var n2 = R(t2), o2 = parseInt(n2.width) - parseInt(n2.paddingLeft) - parseInt(n2.paddingRight) - parseInt(n2.borderLeftWidth) - parseInt(n2.borderRightWidth), i2 = B(t2, 0, e2), r2 = B(t2, 1, e2), a2 = i2 && R(i2), l2 = r2 && R(r2), s2 = a2 && parseInt(a2.marginLeft) + parseInt(a2.marginRight) + X(i2).width, t2 = l2 && parseInt(l2.marginLeft) + parseInt(l2.marginRight) + X(r2).width;\n if (\"flex\" === n2.display)\n return \"column\" === n2.flexDirection || \"column-reverse\" === n2.flexDirection ? \"vertical\" : \"horizontal\";\n if (\"grid\" === n2.display)\n return n2.gridTemplateColumns.split(\" \").length <= 1 ? \"vertical\" : \"horizontal\";\n if (i2 && a2.float && \"none\" !== a2.float) {\n e2 = \"left\" === a2.float ? \"left\" : \"right\";\n return !r2 || \"both\" !== l2.clear && l2.clear !== e2 ? \"horizontal\" : \"vertical\";\n }\n return i2 && (\"block\" === a2.display || \"flex\" === a2.display || \"table\" === a2.display || \"grid\" === a2.display || o2 <= s2 && \"none\" === n2[At] || r2 && \"none\" === n2[At] && o2 < s2 + t2) ? \"vertical\" : \"horizontal\";\n }, kt = function(t2) {\n function l2(r2, a2) {\n return function(t3, e3, n3, o2) {\n var i2 = t3.options.group.name && e3.options.group.name && t3.options.group.name === e3.options.group.name;\n if (null == r2 && (a2 || i2))\n return true;\n if (null == r2 || false === r2)\n return false;\n if (a2 && \"clone\" === r2)\n return r2;\n if (\"function\" == typeof r2)\n return l2(r2(t3, e3, n3, o2), a2)(t3, e3, n3, o2);\n e3 = (a2 ? t3 : e3).options.group.name;\n return true === r2 || \"string\" == typeof r2 && r2 === e3 || r2.join && -1 < r2.indexOf(e3);\n };\n }\n var e2 = {}, n2 = t2.group;\n n2 && \"object\" == o(n2) || (n2 = { name: n2 }), e2.name = n2.name, e2.checkPull = l2(n2.pull, true), e2.checkPut = l2(n2.put), e2.revertClone = n2.revertClone, t2.group = e2;\n }, Rt = function() {\n !It && $ && R($, \"display\", \"none\");\n }, Xt = function() {\n !It && $ && R($, \"display\", \"\");\n };\n Ot && !c && document.addEventListener(\"click\", function(t2) {\n if (Et)\n return t2.preventDefault(), t2.stopPropagation && t2.stopPropagation(), t2.stopImmediatePropagation && t2.stopImmediatePropagation(), Et = false;\n }, true);\n function Yt(t2) {\n if (V) {\n t2 = t2.touches ? t2.touches[0] : t2;\n var e2 = (i2 = t2.clientX, r2 = t2.clientY, Dt.some(function(t3) {\n var e3 = t3[K].options.emptyInsertThreshold;\n if (e3 && !F(t3)) {\n var n3 = X(t3), o3 = i2 >= n3.left - e3 && i2 <= n3.right + e3, e3 = r2 >= n3.top - e3 && r2 <= n3.bottom + e3;\n return o3 && e3 ? a2 = t3 : void 0;\n }\n }), a2);\n if (e2) {\n var n2, o2 = {};\n for (n2 in t2)\n t2.hasOwnProperty(n2) && (o2[n2] = t2[n2]);\n o2.target = o2.rootEl = e2, o2.preventDefault = void 0, o2.stopPropagation = void 0, e2[K]._onDragOver(o2);\n }\n }\n var i2, r2, a2;\n }\n function Bt(t2) {\n V && V.parentNode[K]._isOutsideThisEl(t2.target);\n }\n function Ft(t2, e2) {\n if (!t2 || !t2.nodeType || 1 !== t2.nodeType)\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(t2));\n this.el = t2, this.options = e2 = a({}, e2), t2[K] = this;\n var n2, o2, i2 = { group: null, sort: true, disabled: false, store: null, handle: null, draggable: /^[uo]l$/i.test(t2.nodeName) ? \">li\" : \">*\", swapThreshold: 1, invertSwap: false, invertedSwapThreshold: null, removeCloneOnHide: true, direction: function() {\n return Pt(t2, this.options);\n }, ghostClass: \"sortable-ghost\", chosenClass: \"sortable-chosen\", dragClass: \"sortable-drag\", ignore: \"a, img\", filter: null, preventOnFilter: true, animation: 0, easing: null, setData: function(t3, e3) {\n t3.setData(\"Text\", e3.textContent);\n }, dropBubble: false, dragoverBubble: false, dataIdAttr: \"data-id\", delay: 0, delayOnTouchOnly: false, touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, forceFallback: false, fallbackClass: \"sortable-fallback\", fallbackOnBody: false, fallbackTolerance: 0, fallbackOffset: { x: 0, y: 0 }, supportPointer: false !== Ft.supportPointer && \"PointerEvent\" in window && !u, emptyInsertThreshold: 5 };\n for (n2 in W.initializePlugins(this, t2, i2), i2)\n n2 in e2 || (e2[n2] = i2[n2]);\n for (o2 in kt(e2), this)\n \"_\" === o2.charAt(0) && \"function\" == typeof this[o2] && (this[o2] = this[o2].bind(this));\n this.nativeDraggable = !e2.forceFallback && Nt, this.nativeDraggable && (this.options.touchStartThreshold = 1), e2.supportPointer ? h(t2, \"pointerdown\", this._onTapStart) : (h(t2, \"mousedown\", this._onTapStart), h(t2, \"touchstart\", this._onTapStart)), this.nativeDraggable && (h(t2, \"dragover\", this), h(t2, \"dragenter\", this)), Dt.push(this.el), e2.store && e2.store.get && this.sort(e2.store.get(this) || []), a(this, x());\n }\n function jt(t2, e2, n2, o2, i2, r2, a2, l2) {\n var s2, c2, u2 = t2[K], d2 = u2.options.onMove;\n return !window.CustomEvent || y || w ? (s2 = document.createEvent(\"Event\")).initEvent(\"move\", true, true) : s2 = new CustomEvent(\"move\", { bubbles: true, cancelable: true }), s2.to = e2, s2.from = t2, s2.dragged = n2, s2.draggedRect = o2, s2.related = i2 || e2, s2.relatedRect = r2 || X(e2), s2.willInsertAfter = l2, s2.originalEvent = a2, t2.dispatchEvent(s2), c2 = d2 ? d2.call(u2, s2, a2) : c2;\n }\n function Ht(t2) {\n t2.draggable = false;\n }\n function Lt() {\n Tt = false;\n }\n function Kt(t2) {\n return setTimeout(t2, 0);\n }\n function Wt(t2) {\n return clearTimeout(t2);\n }\n Ft.prototype = { constructor: Ft, _isOutsideThisEl: function(t2) {\n this.el.contains(t2) || t2 === this.el || (mt = null);\n }, _getDirection: function(t2, e2) {\n return \"function\" == typeof this.options.direction ? this.options.direction.call(this, t2, e2, V) : this.options.direction;\n }, _onTapStart: function(e2) {\n if (e2.cancelable) {\n var n2 = this, o2 = this.el, t2 = this.options, i2 = t2.preventOnFilter, r2 = e2.type, a2 = e2.touches && e2.touches[0] || e2.pointerType && \"touch\" === e2.pointerType && e2, l2 = (a2 || e2).target, s2 = e2.target.shadowRoot && (e2.path && e2.path[0] || e2.composedPath && e2.composedPath()[0]) || l2, c2 = t2.filter;\n if (!function(t3) {\n xt.length = 0;\n var e3 = t3.getElementsByTagName(\"input\"), n3 = e3.length;\n for (; n3--; ) {\n var o3 = e3[n3];\n o3.checked && xt.push(o3);\n }\n }(o2), !V && !(/mousedown|pointerdown/.test(r2) && 0 !== e2.button || t2.disabled) && !s2.isContentEditable && (this.nativeDraggable || !u || !l2 || \"SELECT\" !== l2.tagName.toUpperCase()) && !((l2 = P(l2, t2.draggable, o2, false)) && l2.animated || tt === l2)) {\n if (ot = j(l2), rt = j(l2, t2.draggable), \"function\" == typeof c2) {\n if (c2.call(this, e2, l2, this))\n return q({ sortable: n2, rootEl: s2, name: \"filter\", targetEl: l2, toEl: o2, fromEl: o2 }), G(\"filter\", n2, { evt: e2 }), void (i2 && e2.cancelable && e2.preventDefault());\n } else if (c2 = c2 && c2.split(\",\").some(function(t3) {\n if (t3 = P(s2, t3.trim(), o2, false))\n return q({ sortable: n2, rootEl: t3, name: \"filter\", targetEl: l2, fromEl: o2, toEl: o2 }), G(\"filter\", n2, { evt: e2 }), true;\n }))\n return void (i2 && e2.cancelable && e2.preventDefault());\n t2.handle && !P(s2, t2.handle, o2, false) || this._prepareDragStart(e2, a2, l2);\n }\n }\n }, _prepareDragStart: function(t2, e2, n2) {\n var o2, i2 = this, r2 = i2.el, a2 = i2.options, l2 = r2.ownerDocument;\n n2 && !V && n2.parentNode === r2 && (o2 = X(n2), Q = r2, Z = (V = n2).parentNode, J = V.nextSibling, tt = n2, lt = a2.group, ct = { target: Ft.dragged = V, clientX: (e2 || t2).clientX, clientY: (e2 || t2).clientY }, ft = ct.clientX - o2.left, pt = ct.clientY - o2.top, this._lastX = (e2 || t2).clientX, this._lastY = (e2 || t2).clientY, V.style[\"will-change\"] = \"all\", o2 = function() {\n G(\"delayEnded\", i2, { evt: t2 }), Ft.eventCanceled ? i2._onDrop() : (i2._disableDelayedDragEvents(), !s && i2.nativeDraggable && (V.draggable = true), i2._triggerDragStart(t2, e2), q({ sortable: i2, name: \"choose\", originalEvent: t2 }), k(V, a2.chosenClass, true));\n }, a2.ignore.split(\",\").forEach(function(t3) {\n b(V, t3.trim(), Ht);\n }), h(l2, \"dragover\", Yt), h(l2, \"mousemove\", Yt), h(l2, \"touchmove\", Yt), h(l2, \"mouseup\", i2._onDrop), h(l2, \"touchend\", i2._onDrop), h(l2, \"touchcancel\", i2._onDrop), s && this.nativeDraggable && (this.options.touchStartThreshold = 4, V.draggable = true), G(\"delayStart\", this, { evt: t2 }), !a2.delay || a2.delayOnTouchOnly && !e2 || this.nativeDraggable && (w || y) ? o2() : Ft.eventCanceled ? this._onDrop() : (h(l2, \"mouseup\", i2._disableDelayedDrag), h(l2, \"touchend\", i2._disableDelayedDrag), h(l2, \"touchcancel\", i2._disableDelayedDrag), h(l2, \"mousemove\", i2._delayedDragTouchMoveHandler), h(l2, \"touchmove\", i2._delayedDragTouchMoveHandler), a2.supportPointer && h(l2, \"pointermove\", i2._delayedDragTouchMoveHandler), i2._dragStartTimer = setTimeout(o2, a2.delay)));\n }, _delayedDragTouchMoveHandler: function(t2) {\n t2 = t2.touches ? t2.touches[0] : t2;\n Math.max(Math.abs(t2.clientX - this._lastX), Math.abs(t2.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1)) && this._disableDelayedDrag();\n }, _disableDelayedDrag: function() {\n V && Ht(V), clearTimeout(this._dragStartTimer), this._disableDelayedDragEvents();\n }, _disableDelayedDragEvents: function() {\n var t2 = this.el.ownerDocument;\n f(t2, \"mouseup\", this._disableDelayedDrag), f(t2, \"touchend\", this._disableDelayedDrag), f(t2, \"touchcancel\", this._disableDelayedDrag), f(t2, \"mousemove\", this._delayedDragTouchMoveHandler), f(t2, \"touchmove\", this._delayedDragTouchMoveHandler), f(t2, \"pointermove\", this._delayedDragTouchMoveHandler);\n }, _triggerDragStart: function(t2, e2) {\n e2 = e2 || \"touch\" == t2.pointerType && t2, !this.nativeDraggable || e2 ? this.options.supportPointer ? h(document, \"pointermove\", this._onTouchMove) : h(document, e2 ? \"touchmove\" : \"mousemove\", this._onTouchMove) : (h(V, \"dragend\", this), h(Q, \"dragstart\", this._onDragStart));\n try {\n document.selection ? Kt(function() {\n document.selection.empty();\n }) : window.getSelection().removeAllRanges();\n } catch (t3) {\n }\n }, _dragStarted: function(t2, e2) {\n var n2;\n wt = false, Q && V ? (G(\"dragStarted\", this, { evt: e2 }), this.nativeDraggable && h(document, \"dragover\", Bt), n2 = this.options, t2 || k(V, n2.dragClass, false), k(V, n2.ghostClass, true), Ft.active = this, t2 && this._appendGhost(), q({ sortable: this, name: \"start\", originalEvent: e2 })) : this._nulling();\n }, _emulateDragOver: function() {\n if (ut) {\n this._lastX = ut.clientX, this._lastY = ut.clientY, Rt();\n for (var t2 = document.elementFromPoint(ut.clientX, ut.clientY), e2 = t2; t2 && t2.shadowRoot && (t2 = t2.shadowRoot.elementFromPoint(ut.clientX, ut.clientY)) !== e2; )\n e2 = t2;\n if (V.parentNode[K]._isOutsideThisEl(t2), e2)\n do {\n if (e2[K]) {\n if (e2[K]._onDragOver({ clientX: ut.clientX, clientY: ut.clientY, target: t2, rootEl: e2 }) && !this.options.dragoverBubble)\n break;\n }\n } while (e2 = (t2 = e2).parentNode);\n Xt();\n }\n }, _onTouchMove: function(t2) {\n if (ct) {\n var e2 = this.options, n2 = e2.fallbackTolerance, o2 = e2.fallbackOffset, i2 = t2.touches ? t2.touches[0] : t2, r2 = $ && v($, true), a2 = $ && r2 && r2.a, l2 = $ && r2 && r2.d, e2 = Mt && yt && E(yt), a2 = (i2.clientX - ct.clientX + o2.x) / (a2 || 1) + (e2 ? e2[0] - Ct[0] : 0) / (a2 || 1), l2 = (i2.clientY - ct.clientY + o2.y) / (l2 || 1) + (e2 ? e2[1] - Ct[1] : 0) / (l2 || 1);\n if (!Ft.active && !wt) {\n if (n2 && Math.max(Math.abs(i2.clientX - this._lastX), Math.abs(i2.clientY - this._lastY)) < n2)\n return;\n this._onDragStart(t2, true);\n }\n $ && (r2 ? (r2.e += a2 - (dt || 0), r2.f += l2 - (ht || 0)) : r2 = { a: 1, b: 0, c: 0, d: 1, e: a2, f: l2 }, r2 = \"matrix(\".concat(r2.a, \",\").concat(r2.b, \",\").concat(r2.c, \",\").concat(r2.d, \",\").concat(r2.e, \",\").concat(r2.f, \")\"), R($, \"webkitTransform\", r2), R($, \"mozTransform\", r2), R($, \"msTransform\", r2), R($, \"transform\", r2), dt = a2, ht = l2, ut = i2), t2.cancelable && t2.preventDefault();\n }\n }, _appendGhost: function() {\n if (!$) {\n var t2 = this.options.fallbackOnBody ? document.body : Q, e2 = X(V, true, Mt, true, t2), n2 = this.options;\n if (Mt) {\n for (yt = t2; \"static\" === R(yt, \"position\") && \"none\" === R(yt, \"transform\") && yt !== document; )\n yt = yt.parentNode;\n yt !== document.body && yt !== document.documentElement ? (yt === document && (yt = O()), e2.top += yt.scrollTop, e2.left += yt.scrollLeft) : yt = O(), Ct = E(yt);\n }\n k($ = V.cloneNode(true), n2.ghostClass, false), k($, n2.fallbackClass, true), k($, n2.dragClass, true), R($, \"transition\", \"\"), R($, \"transform\", \"\"), R($, \"box-sizing\", \"border-box\"), R($, \"margin\", 0), R($, \"top\", e2.top), R($, \"left\", e2.left), R($, \"width\", e2.width), R($, \"height\", e2.height), R($, \"opacity\", \"0.8\"), R($, \"position\", Mt ? \"absolute\" : \"fixed\"), R($, \"zIndex\", \"100000\"), R($, \"pointerEvents\", \"none\"), Ft.ghost = $, t2.appendChild($), R($, \"transform-origin\", ft / parseInt($.style.width) * 100 + \"% \" + pt / parseInt($.style.height) * 100 + \"%\");\n }\n }, _onDragStart: function(t2, e2) {\n var n2 = this, o2 = t2.dataTransfer, i2 = n2.options;\n G(\"dragStart\", this, { evt: t2 }), Ft.eventCanceled ? this._onDrop() : (G(\"setupClone\", this), Ft.eventCanceled || ((et = _(V)).removeAttribute(\"id\"), et.draggable = false, et.style[\"will-change\"] = \"\", this._hideClone(), k(et, this.options.chosenClass, false), Ft.clone = et), n2.cloneId = Kt(function() {\n G(\"clone\", n2), Ft.eventCanceled || (n2.options.removeCloneOnHide || Q.insertBefore(et, V), n2._hideClone(), q({ sortable: n2, name: \"clone\" }));\n }), e2 || k(V, i2.dragClass, true), e2 ? (Et = true, n2._loopId = setInterval(n2._emulateDragOver, 50)) : (f(document, \"mouseup\", n2._onDrop), f(document, \"touchend\", n2._onDrop), f(document, \"touchcancel\", n2._onDrop), o2 && (o2.effectAllowed = \"move\", i2.setData && i2.setData.call(n2, o2, V)), h(document, \"drop\", n2), R(V, \"transform\", \"translateZ(0)\")), wt = true, n2._dragStartId = Kt(n2._dragStarted.bind(n2, e2, t2)), h(document, \"selectstart\", n2), gt = true, u && R(document.body, \"user-select\", \"none\"));\n }, _onDragOver: function(n2) {\n var o2, i2, r2, t2, e2, a2 = this.el, l2 = n2.target, s2 = this.options, c2 = s2.group, u2 = Ft.active, d2 = lt === c2, h2 = s2.sort, f2 = st || u2, p2 = this, g2 = false;\n if (!Tt) {\n if (void 0 !== n2.preventDefault && n2.cancelable && n2.preventDefault(), l2 = P(l2, s2.draggable, a2, true), O2(\"dragOver\"), Ft.eventCanceled)\n return g2;\n if (V.contains(n2.target) || l2.animated && l2.animatingX && l2.animatingY || p2._ignoreWhileAnimating === l2)\n return A2(false);\n if (Et = false, u2 && !s2.disabled && (d2 ? h2 || (i2 = Z !== Q) : st === this || (this.lastPutMode = lt.checkPull(this, u2, V, n2)) && c2.checkPut(this, u2, V, n2))) {\n if (r2 = \"vertical\" === this._getDirection(n2, l2), o2 = X(V), O2(\"dragOverValid\"), Ft.eventCanceled)\n return g2;\n if (i2)\n return Z = Q, M2(), this._hideClone(), O2(\"revert\"), Ft.eventCanceled || (J ? Q.insertBefore(V, J) : Q.appendChild(V)), A2(true);\n var m2 = F(a2, s2.draggable);\n if (m2 && (S2 = n2, c2 = r2, x2 = X(F((D2 = this).el, D2.options.draggable)), D2 = L(D2.el, D2.options, $), !(c2 ? S2.clientX > D2.right + 10 || S2.clientY > x2.bottom && S2.clientX > x2.left : S2.clientY > D2.bottom + 10 || S2.clientX > x2.right && S2.clientY > x2.top) || m2.animated)) {\n if (m2 && (t2 = n2, e2 = r2, C2 = X(B((_2 = this).el, 0, _2.options, true)), _2 = L(_2.el, _2.options, $), e2 ? t2.clientX < _2.left - 10 || t2.clientY < C2.top && t2.clientX < C2.right : t2.clientY < _2.top - 10 || t2.clientY < C2.bottom && t2.clientX < C2.left)) {\n var v2 = B(a2, 0, s2, true);\n if (v2 === V)\n return A2(false);\n if (E2 = X(l2 = v2), false !== jt(Q, a2, V, o2, l2, E2, n2, false))\n return M2(), a2.insertBefore(V, v2), Z = a2, N2(), A2(true);\n } else if (l2.parentNode === a2) {\n var b2, y2, w2, E2 = X(l2), D2 = V.parentNode !== a2, S2 = (S2 = V.animated && V.toRect || o2, x2 = l2.animated && l2.toRect || E2, _2 = (e2 = r2) ? S2.left : S2.top, t2 = e2 ? S2.right : S2.bottom, C2 = e2 ? S2.width : S2.height, v2 = e2 ? x2.left : x2.top, S2 = e2 ? x2.right : x2.bottom, x2 = e2 ? x2.width : x2.height, !(_2 === v2 || t2 === S2 || _2 + C2 / 2 === v2 + x2 / 2)), _2 = r2 ? \"top\" : \"left\", C2 = Y(l2, \"top\", \"top\") || Y(V, \"top\", \"top\"), v2 = C2 ? C2.scrollTop : void 0;\n if (mt !== l2 && (y2 = E2[_2], St = false, _t = !S2 && s2.invertSwap || D2), 0 !== (b2 = function(t3, e3, n3, o3, i3, r3, a3, l3) {\n var s3 = o3 ? t3.clientY : t3.clientX, c3 = o3 ? n3.height : n3.width, t3 = o3 ? n3.top : n3.left, o3 = o3 ? n3.bottom : n3.right, n3 = false;\n if (!a3) {\n if (l3 && bt < c3 * i3) {\n if (St = !St && (1 === vt ? t3 + c3 * r3 / 2 < s3 : s3 < o3 - c3 * r3 / 2) ? true : St)\n n3 = true;\n else if (1 === vt ? s3 < t3 + bt : o3 - bt < s3)\n return -vt;\n } else if (t3 + c3 * (1 - i3) / 2 < s3 && s3 < o3 - c3 * (1 - i3) / 2)\n return function(t4) {\n return j(V) < j(t4) ? 1 : -1;\n }(e3);\n }\n if ((n3 = n3 || a3) && (s3 < t3 + c3 * r3 / 2 || o3 - c3 * r3 / 2 < s3))\n return t3 + c3 / 2 < s3 ? 1 : -1;\n return 0;\n }(n2, l2, E2, r2, S2 ? 1 : s2.swapThreshold, null == s2.invertedSwapThreshold ? s2.swapThreshold : s2.invertedSwapThreshold, _t, mt === l2)))\n for (var T2 = j(V); (w2 = Z.children[T2 -= b2]) && (\"none\" === R(w2, \"display\") || w2 === $); )\n ;\n if (0 === b2 || w2 === l2)\n return A2(false);\n vt = b2;\n var x2 = (mt = l2).nextElementSibling, D2 = false, S2 = jt(Q, a2, V, o2, l2, E2, n2, D2 = 1 === b2);\n if (false !== S2)\n return 1 !== S2 && -1 !== S2 || (D2 = 1 === S2), Tt = true, setTimeout(Lt, 30), M2(), D2 && !x2 ? a2.appendChild(V) : l2.parentNode.insertBefore(V, D2 ? x2 : l2), C2 && H(C2, 0, v2 - C2.scrollTop), Z = V.parentNode, void 0 === y2 || _t || (bt = Math.abs(y2 - X(l2)[_2])), N2(), A2(true);\n }\n } else {\n if (m2 === V)\n return A2(false);\n if ((l2 = m2 && a2 === n2.target ? m2 : l2) && (E2 = X(l2)), false !== jt(Q, a2, V, o2, l2, E2, n2, !!l2))\n return M2(), m2 && m2.nextSibling ? a2.insertBefore(V, m2.nextSibling) : a2.appendChild(V), Z = a2, N2(), A2(true);\n }\n if (a2.contains(V))\n return A2(false);\n }\n return false;\n }\n function O2(t3, e3) {\n G(t3, p2, I({ evt: n2, isOwner: d2, axis: r2 ? \"vertical\" : \"horizontal\", revert: i2, dragRect: o2, targetRect: E2, canSort: h2, fromSortable: f2, target: l2, completed: A2, onMove: function(t4, e4) {\n return jt(Q, a2, V, o2, t4, X(t4), n2, e4);\n }, changed: N2 }, e3));\n }\n function M2() {\n O2(\"dragOverAnimationCapture\"), p2.captureAnimationState(), p2 !== f2 && f2.captureAnimationState();\n }\n function A2(t3) {\n return O2(\"dragOverCompleted\", { insertion: t3 }), t3 && (d2 ? u2._hideClone() : u2._showClone(p2), p2 !== f2 && (k(V, (st || u2).options.ghostClass, false), k(V, s2.ghostClass, true)), st !== p2 && p2 !== Ft.active ? st = p2 : p2 === Ft.active && st && (st = null), f2 === p2 && (p2._ignoreWhileAnimating = l2), p2.animateAll(function() {\n O2(\"dragOverAnimationComplete\"), p2._ignoreWhileAnimating = null;\n }), p2 !== f2 && (f2.animateAll(), f2._ignoreWhileAnimating = null)), (l2 === V && !V.animated || l2 === a2 && !l2.animated) && (mt = null), s2.dragoverBubble || n2.rootEl || l2 === document || (V.parentNode[K]._isOutsideThisEl(n2.target), t3 || Yt(n2)), !s2.dragoverBubble && n2.stopPropagation && n2.stopPropagation(), g2 = true;\n }\n function N2() {\n it = j(V), at = j(V, s2.draggable), q({ sortable: p2, name: \"change\", toEl: a2, newIndex: it, newDraggableIndex: at, originalEvent: n2 });\n }\n }, _ignoreWhileAnimating: null, _offMoveEvents: function() {\n f(document, \"mousemove\", this._onTouchMove), f(document, \"touchmove\", this._onTouchMove), f(document, \"pointermove\", this._onTouchMove), f(document, \"dragover\", Yt), f(document, \"mousemove\", Yt), f(document, \"touchmove\", Yt);\n }, _offUpEvents: function() {\n var t2 = this.el.ownerDocument;\n f(t2, \"mouseup\", this._onDrop), f(t2, \"touchend\", this._onDrop), f(t2, \"pointerup\", this._onDrop), f(t2, \"touchcancel\", this._onDrop), f(document, \"selectstart\", this);\n }, _onDrop: function(t2) {\n var e2 = this.el, n2 = this.options;\n it = j(V), at = j(V, n2.draggable), G(\"drop\", this, { evt: t2 }), Z = V && V.parentNode, it = j(V), at = j(V, n2.draggable), Ft.eventCanceled || (St = _t = wt = false, clearInterval(this._loopId), clearTimeout(this._dragStartTimer), Wt(this.cloneId), Wt(this._dragStartId), this.nativeDraggable && (f(document, \"drop\", this), f(e2, \"dragstart\", this._onDragStart)), this._offMoveEvents(), this._offUpEvents(), u && R(document.body, \"user-select\", \"\"), R(V, \"transform\", \"\"), t2 && (gt && (t2.cancelable && t2.preventDefault(), n2.dropBubble || t2.stopPropagation()), $ && $.parentNode && $.parentNode.removeChild($), (Q === Z || st && \"clone\" !== st.lastPutMode) && et && et.parentNode && et.parentNode.removeChild(et), V && (this.nativeDraggable && f(V, \"dragend\", this), Ht(V), V.style[\"will-change\"] = \"\", gt && !wt && k(V, (st || this).options.ghostClass, false), k(V, this.options.chosenClass, false), q({ sortable: this, name: \"unchoose\", toEl: Z, newIndex: null, newDraggableIndex: null, originalEvent: t2 }), Q !== Z ? (0 <= it && (q({ rootEl: Z, name: \"add\", toEl: Z, fromEl: Q, originalEvent: t2 }), q({ sortable: this, name: \"remove\", toEl: Z, originalEvent: t2 }), q({ rootEl: Z, name: \"sort\", toEl: Z, fromEl: Q, originalEvent: t2 }), q({ sortable: this, name: \"sort\", toEl: Z, originalEvent: t2 })), st && st.save()) : it !== ot && 0 <= it && (q({ sortable: this, name: \"update\", toEl: Z, originalEvent: t2 }), q({ sortable: this, name: \"sort\", toEl: Z, originalEvent: t2 })), Ft.active && (null != it && -1 !== it || (it = ot, at = rt), q({ sortable: this, name: \"end\", toEl: Z, originalEvent: t2 }), this.save())))), this._nulling();\n }, _nulling: function() {\n G(\"nulling\", this), Q = V = Z = $ = J = et = tt = nt = ct = ut = gt = it = at = ot = rt = mt = vt = st = lt = Ft.dragged = Ft.ghost = Ft.clone = Ft.active = null, xt.forEach(function(t2) {\n t2.checked = true;\n }), xt.length = dt = ht = 0;\n }, handleEvent: function(t2) {\n switch (t2.type) {\n case \"drop\":\n case \"dragend\":\n this._onDrop(t2);\n break;\n case \"dragenter\":\n case \"dragover\":\n V && (this._onDragOver(t2), function(t3) {\n t3.dataTransfer && (t3.dataTransfer.dropEffect = \"move\");\n t3.cancelable && t3.preventDefault();\n }(t2));\n break;\n case \"selectstart\":\n t2.preventDefault();\n }\n }, toArray: function() {\n for (var t2, e2 = [], n2 = this.el.children, o2 = 0, i2 = n2.length, r2 = this.options; o2 < i2; o2++)\n P(t2 = n2[o2], r2.draggable, this.el, false) && e2.push(t2.getAttribute(r2.dataIdAttr) || function(t3) {\n var e3 = t3.tagName + t3.className + t3.src + t3.href + t3.textContent, n3 = e3.length, o3 = 0;\n for (; n3--; )\n o3 += e3.charCodeAt(n3);\n return o3.toString(36);\n }(t2));\n return e2;\n }, sort: function(t2, e2) {\n var n2 = {}, o2 = this.el;\n this.toArray().forEach(function(t3, e3) {\n e3 = o2.children[e3];\n P(e3, this.options.draggable, o2, false) && (n2[t3] = e3);\n }, this), e2 && this.captureAnimationState(), t2.forEach(function(t3) {\n n2[t3] && (o2.removeChild(n2[t3]), o2.appendChild(n2[t3]));\n }), e2 && this.animateAll();\n }, save: function() {\n var t2 = this.options.store;\n t2 && t2.set && t2.set(this);\n }, closest: function(t2, e2) {\n return P(t2, e2 || this.options.draggable, this.el, false);\n }, option: function(t2, e2) {\n var n2 = this.options;\n if (void 0 === e2)\n return n2[t2];\n var o2 = W.modifyOption(this, t2, e2);\n n2[t2] = void 0 !== o2 ? o2 : e2, \"group\" === t2 && kt(n2);\n }, destroy: function() {\n G(\"destroy\", this);\n var t2 = this.el;\n t2[K] = null, f(t2, \"mousedown\", this._onTapStart), f(t2, \"touchstart\", this._onTapStart), f(t2, \"pointerdown\", this._onTapStart), this.nativeDraggable && (f(t2, \"dragover\", this), f(t2, \"dragenter\", this)), Array.prototype.forEach.call(t2.querySelectorAll(\"[draggable]\"), function(t3) {\n t3.removeAttribute(\"draggable\");\n }), this._onDrop(), this._disableDelayedDragEvents(), Dt.splice(Dt.indexOf(this.el), 1), this.el = t2 = null;\n }, _hideClone: function() {\n nt || (G(\"hideClone\", this), Ft.eventCanceled || (R(et, \"display\", \"none\"), this.options.removeCloneOnHide && et.parentNode && et.parentNode.removeChild(et), nt = true));\n }, _showClone: function(t2) {\n \"clone\" === t2.lastPutMode ? nt && (G(\"showClone\", this), Ft.eventCanceled || (V.parentNode != Q || this.options.group.revertClone ? J ? Q.insertBefore(et, J) : Q.appendChild(et) : Q.insertBefore(et, V), this.options.group.revertClone && this.animate(V, et), R(et, \"display\", \"\"), nt = false)) : this._hideClone();\n } }, Ot && h(document, \"touchmove\", function(t2) {\n (Ft.active || wt) && t2.cancelable && t2.preventDefault();\n }), Ft.utils = { on: h, off: f, css: R, find: b, is: function(t2, e2) {\n return !!P(t2, e2, t2, false);\n }, extend: function(t2, e2) {\n if (t2 && e2)\n for (var n2 in e2)\n e2.hasOwnProperty(n2) && (t2[n2] = e2[n2]);\n return t2;\n }, throttle: S, closest: P, toggleClass: k, clone: _, index: j, nextTick: Kt, cancelNextTick: Wt, detectDirection: Pt, getChild: B }, Ft.get = function(t2) {\n return t2[K];\n }, Ft.mount = function() {\n for (var t2 = arguments.length, e2 = new Array(t2), n2 = 0; n2 < t2; n2++)\n e2[n2] = arguments[n2];\n (e2 = e2[0].constructor === Array ? e2[0] : e2).forEach(function(t3) {\n if (!t3.prototype || !t3.prototype.constructor)\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(t3));\n t3.utils && (Ft.utils = I(I({}, Ft.utils), t3.utils)), W.mount(t3);\n });\n }, Ft.create = function(t2, e2) {\n return new Ft(t2, e2);\n };\n var zt, Gt, Ut, qt, Vt, Zt, $t = [], Qt = !(Ft.version = \"1.15.2\");\n function Jt() {\n $t.forEach(function(t2) {\n clearInterval(t2.pid);\n }), $t = [];\n }\n function te() {\n clearInterval(Zt);\n }\n var ee, ne = S(function(n2, t2, e2, o2) {\n if (t2.scroll) {\n var i2, r2 = (n2.touches ? n2.touches[0] : n2).clientX, a2 = (n2.touches ? n2.touches[0] : n2).clientY, l2 = t2.scrollSensitivity, s2 = t2.scrollSpeed, c2 = O(), u2 = false;\n Gt !== e2 && (Gt = e2, Jt(), zt = t2.scroll, i2 = t2.scrollFn, true === zt && (zt = M(e2, true)));\n var d2 = 0, h2 = zt;\n do {\n var f2 = h2, p2 = X(f2), g2 = p2.top, m2 = p2.bottom, v2 = p2.left, b2 = p2.right, y2 = p2.width, w2 = p2.height, E2 = void 0, D2 = void 0, S2 = f2.scrollWidth, _2 = f2.scrollHeight, C2 = R(f2), T2 = f2.scrollLeft, p2 = f2.scrollTop, D2 = f2 === c2 ? (E2 = y2 < S2 && (\"auto\" === C2.overflowX || \"scroll\" === C2.overflowX || \"visible\" === C2.overflowX), w2 < _2 && (\"auto\" === C2.overflowY || \"scroll\" === C2.overflowY || \"visible\" === C2.overflowY)) : (E2 = y2 < S2 && (\"auto\" === C2.overflowX || \"scroll\" === C2.overflowX), w2 < _2 && (\"auto\" === C2.overflowY || \"scroll\" === C2.overflowY)), T2 = E2 && (Math.abs(b2 - r2) <= l2 && T2 + y2 < S2) - (Math.abs(v2 - r2) <= l2 && !!T2), p2 = D2 && (Math.abs(m2 - a2) <= l2 && p2 + w2 < _2) - (Math.abs(g2 - a2) <= l2 && !!p2);\n if (!$t[d2])\n for (var x2 = 0; x2 <= d2; x2++)\n $t[x2] || ($t[x2] = {});\n $t[d2].vx == T2 && $t[d2].vy == p2 && $t[d2].el === f2 || ($t[d2].el = f2, $t[d2].vx = T2, $t[d2].vy = p2, clearInterval($t[d2].pid), 0 == T2 && 0 == p2 || (u2 = true, $t[d2].pid = setInterval(function() {\n o2 && 0 === this.layer && Ft.active._onTouchMove(Vt);\n var t3 = $t[this.layer].vy ? $t[this.layer].vy * s2 : 0, e3 = $t[this.layer].vx ? $t[this.layer].vx * s2 : 0;\n \"function\" == typeof i2 && \"continue\" !== i2.call(Ft.dragged.parentNode[K], e3, t3, n2, Vt, $t[this.layer].el) || H($t[this.layer].el, e3, t3);\n }.bind({ layer: d2 }), 24))), d2++;\n } while (t2.bubbleScroll && h2 !== c2 && (h2 = M(h2, false)));\n Qt = u2;\n }\n }, 30), c = function(t2) {\n var e2 = t2.originalEvent, n2 = t2.putSortable, o2 = t2.dragEl, i2 = t2.activeSortable, r2 = t2.dispatchSortableEvent, a2 = t2.hideGhostForTarget, t2 = t2.unhideGhostForTarget;\n e2 && (i2 = n2 || i2, a2(), e2 = e2.changedTouches && e2.changedTouches.length ? e2.changedTouches[0] : e2, e2 = document.elementFromPoint(e2.clientX, e2.clientY), t2(), i2 && !i2.el.contains(e2) && (r2(\"spill\"), this.onSpill({ dragEl: o2, putSortable: n2 })));\n };\n function oe() {\n }\n function ie() {\n }\n oe.prototype = { startIndex: null, dragStart: function(t2) {\n t2 = t2.oldDraggableIndex;\n this.startIndex = t2;\n }, onSpill: function(t2) {\n var e2 = t2.dragEl, n2 = t2.putSortable;\n this.sortable.captureAnimationState(), n2 && n2.captureAnimationState();\n t2 = B(this.sortable.el, this.startIndex, this.options);\n t2 ? this.sortable.el.insertBefore(e2, t2) : this.sortable.el.appendChild(e2), this.sortable.animateAll(), n2 && n2.animateAll();\n }, drop: c }, a(oe, { pluginName: \"revertOnSpill\" }), ie.prototype = { onSpill: function(t2) {\n var e2 = t2.dragEl, t2 = t2.putSortable || this.sortable;\n t2.captureAnimationState(), e2.parentNode && e2.parentNode.removeChild(e2), t2.animateAll();\n }, drop: c }, a(ie, { pluginName: \"removeOnSpill\" });\n var re, ae, le, se, ce, ue = [], de = [], he = false, fe = false, pe = false;\n function ge(n2, o2) {\n de.forEach(function(t2, e2) {\n e2 = o2.children[t2.sortableIndex + (n2 ? Number(e2) : 0)];\n e2 ? o2.insertBefore(t2, e2) : o2.appendChild(t2);\n });\n }\n function me() {\n ue.forEach(function(t2) {\n t2 !== le && t2.parentNode && t2.parentNode.removeChild(t2);\n });\n }\n return Ft.mount(new function() {\n function t2() {\n for (var t3 in this.defaults = { scroll: true, forceAutoScrollFallback: false, scrollSensitivity: 30, scrollSpeed: 10, bubbleScroll: true }, this)\n \"_\" === t3.charAt(0) && \"function\" == typeof this[t3] && (this[t3] = this[t3].bind(this));\n }\n return t2.prototype = { dragStarted: function(t3) {\n t3 = t3.originalEvent;\n this.sortable.nativeDraggable ? h(document, \"dragover\", this._handleAutoScroll) : this.options.supportPointer ? h(document, \"pointermove\", this._handleFallbackAutoScroll) : t3.touches ? h(document, \"touchmove\", this._handleFallbackAutoScroll) : h(document, \"mousemove\", this._handleFallbackAutoScroll);\n }, dragOverCompleted: function(t3) {\n t3 = t3.originalEvent;\n this.options.dragOverBubble || t3.rootEl || this._handleAutoScroll(t3);\n }, drop: function() {\n this.sortable.nativeDraggable ? f(document, \"dragover\", this._handleAutoScroll) : (f(document, \"pointermove\", this._handleFallbackAutoScroll), f(document, \"touchmove\", this._handleFallbackAutoScroll), f(document, \"mousemove\", this._handleFallbackAutoScroll)), te(), Jt(), clearTimeout(g), g = void 0;\n }, nulling: function() {\n Vt = Gt = zt = Qt = Zt = Ut = qt = null, $t.length = 0;\n }, _handleFallbackAutoScroll: function(t3) {\n this._handleAutoScroll(t3, true);\n }, _handleAutoScroll: function(e2, n2) {\n var o2, i2 = this, r2 = (e2.touches ? e2.touches[0] : e2).clientX, a2 = (e2.touches ? e2.touches[0] : e2).clientY, t3 = document.elementFromPoint(r2, a2);\n Vt = e2, n2 || this.options.forceAutoScrollFallback || w || y || u ? (ne(e2, this.options, t3, n2), o2 = M(t3, true), !Qt || Zt && r2 === Ut && a2 === qt || (Zt && te(), Zt = setInterval(function() {\n var t4 = M(document.elementFromPoint(r2, a2), true);\n t4 !== o2 && (o2 = t4, Jt()), ne(e2, i2.options, t4, n2);\n }, 10), Ut = r2, qt = a2)) : this.options.bubbleScroll && M(t3, true) !== O() ? ne(e2, this.options, M(t3, false), false) : Jt();\n } }, a(t2, { pluginName: \"scroll\", initializeByDefault: true });\n }()), Ft.mount(ie, oe), Ft.mount(new function() {\n function t2() {\n this.defaults = { swapClass: \"sortable-swap-highlight\" };\n }\n return t2.prototype = { dragStart: function(t3) {\n t3 = t3.dragEl;\n ee = t3;\n }, dragOverValid: function(t3) {\n var e2 = t3.completed, n2 = t3.target, o2 = t3.onMove, i2 = t3.activeSortable, r2 = t3.changed, a2 = t3.cancel;\n i2.options.swap && (t3 = this.sortable.el, i2 = this.options, n2 && n2 !== t3 && (t3 = ee, ee = false !== o2(n2) ? (k(n2, i2.swapClass, true), n2) : null, t3 && t3 !== ee && k(t3, i2.swapClass, false)), r2(), e2(true), a2());\n }, drop: function(t3) {\n var e2, n2, o2 = t3.activeSortable, i2 = t3.putSortable, r2 = t3.dragEl, a2 = i2 || this.sortable, l2 = this.options;\n ee && k(ee, l2.swapClass, false), ee && (l2.swap || i2 && i2.options.swap) && r2 !== ee && (a2.captureAnimationState(), a2 !== o2 && o2.captureAnimationState(), n2 = ee, t3 = (e2 = r2).parentNode, l2 = n2.parentNode, t3 && l2 && !t3.isEqualNode(n2) && !l2.isEqualNode(e2) && (i2 = j(e2), r2 = j(n2), t3.isEqualNode(l2) && i2 < r2 && r2++, t3.insertBefore(n2, t3.children[i2]), l2.insertBefore(e2, l2.children[r2])), a2.animateAll(), a2 !== o2 && o2.animateAll());\n }, nulling: function() {\n ee = null;\n } }, a(t2, { pluginName: \"swap\", eventProperties: function() {\n return { swapItem: ee };\n } });\n }()), Ft.mount(new function() {\n function t2(o2) {\n for (var t3 in this)\n \"_\" === t3.charAt(0) && \"function\" == typeof this[t3] && (this[t3] = this[t3].bind(this));\n o2.options.avoidImplicitDeselect || (o2.options.supportPointer ? h(document, \"pointerup\", this._deselectMultiDrag) : (h(document, \"mouseup\", this._deselectMultiDrag), h(document, \"touchend\", this._deselectMultiDrag))), h(document, \"keydown\", this._checkKeyDown), h(document, \"keyup\", this._checkKeyUp), this.defaults = { selectedClass: \"sortable-selected\", multiDragKey: null, avoidImplicitDeselect: false, setData: function(t4, e2) {\n var n2 = \"\";\n ue.length && ae === o2 ? ue.forEach(function(t5, e3) {\n n2 += (e3 ? \", \" : \"\") + t5.textContent;\n }) : n2 = e2.textContent, t4.setData(\"Text\", n2);\n } };\n }\n return t2.prototype = { multiDragKeyDown: false, isMultiDrag: false, delayStartGlobal: function(t3) {\n t3 = t3.dragEl;\n le = t3;\n }, delayEnded: function() {\n this.isMultiDrag = ~ue.indexOf(le);\n }, setupClone: function(t3) {\n var e2 = t3.sortable, t3 = t3.cancel;\n if (this.isMultiDrag) {\n for (var n2 = 0; n2 < ue.length; n2++)\n de.push(_(ue[n2])), de[n2].sortableIndex = ue[n2].sortableIndex, de[n2].draggable = false, de[n2].style[\"will-change\"] = \"\", k(de[n2], this.options.selectedClass, false), ue[n2] === le && k(de[n2], this.options.chosenClass, false);\n e2._hideClone(), t3();\n }\n }, clone: function(t3) {\n var e2 = t3.sortable, n2 = t3.rootEl, o2 = t3.dispatchSortableEvent, t3 = t3.cancel;\n this.isMultiDrag && (this.options.removeCloneOnHide || ue.length && ae === e2 && (ge(true, n2), o2(\"clone\"), t3()));\n }, showClone: function(t3) {\n var e2 = t3.cloneNowShown, n2 = t3.rootEl, t3 = t3.cancel;\n this.isMultiDrag && (ge(false, n2), de.forEach(function(t4) {\n R(t4, \"display\", \"\");\n }), e2(), ce = false, t3());\n }, hideClone: function(t3) {\n var e2 = this, n2 = (t3.sortable, t3.cloneNowHidden), t3 = t3.cancel;\n this.isMultiDrag && (de.forEach(function(t4) {\n R(t4, \"display\", \"none\"), e2.options.removeCloneOnHide && t4.parentNode && t4.parentNode.removeChild(t4);\n }), n2(), ce = true, t3());\n }, dragStartGlobal: function(t3) {\n t3.sortable;\n !this.isMultiDrag && ae && ae.multiDrag._deselectMultiDrag(), ue.forEach(function(t4) {\n t4.sortableIndex = j(t4);\n }), ue = ue.sort(function(t4, e2) {\n return t4.sortableIndex - e2.sortableIndex;\n }), pe = true;\n }, dragStarted: function(t3) {\n var e2, n2 = this, t3 = t3.sortable;\n this.isMultiDrag && (this.options.sort && (t3.captureAnimationState(), this.options.animation && (ue.forEach(function(t4) {\n t4 !== le && R(t4, \"position\", \"absolute\");\n }), e2 = X(le, false, true, true), ue.forEach(function(t4) {\n t4 !== le && C(t4, e2);\n }), he = fe = true)), t3.animateAll(function() {\n he = fe = false, n2.options.animation && ue.forEach(function(t4) {\n T(t4);\n }), n2.options.sort && me();\n }));\n }, dragOver: function(t3) {\n var e2 = t3.target, n2 = t3.completed, t3 = t3.cancel;\n fe && ~ue.indexOf(e2) && (n2(false), t3());\n }, revert: function(t3) {\n var n2, o2, e2 = t3.fromSortable, i2 = t3.rootEl, r2 = t3.sortable, a2 = t3.dragRect;\n 1 < ue.length && (ue.forEach(function(t4) {\n r2.addAnimationState({ target: t4, rect: fe ? X(t4) : a2 }), T(t4), t4.fromRect = a2, e2.removeAnimationState(t4);\n }), fe = false, n2 = !this.options.removeCloneOnHide, o2 = i2, ue.forEach(function(t4, e3) {\n e3 = o2.children[t4.sortableIndex + (n2 ? Number(e3) : 0)];\n e3 ? o2.insertBefore(t4, e3) : o2.appendChild(t4);\n }));\n }, dragOverCompleted: function(t3) {\n var e2, n2 = t3.sortable, o2 = t3.isOwner, i2 = t3.insertion, r2 = t3.activeSortable, a2 = t3.parentEl, l2 = t3.putSortable, t3 = this.options;\n i2 && (o2 && r2._hideClone(), he = false, t3.animation && 1 < ue.length && (fe || !o2 && !r2.options.sort && !l2) && (e2 = X(le, false, true, true), ue.forEach(function(t4) {\n t4 !== le && (C(t4, e2), a2.appendChild(t4));\n }), fe = true), o2 || (fe || me(), 1 < ue.length ? (o2 = ce, r2._showClone(n2), r2.options.animation && !ce && o2 && de.forEach(function(t4) {\n r2.addAnimationState({ target: t4, rect: se }), t4.fromRect = se, t4.thisAnimationDuration = null;\n })) : r2._showClone(n2)));\n }, dragOverAnimationCapture: function(t3) {\n var e2 = t3.dragRect, n2 = t3.isOwner, t3 = t3.activeSortable;\n ue.forEach(function(t4) {\n t4.thisAnimationDuration = null;\n }), t3.options.animation && !n2 && t3.multiDrag.isMultiDrag && (se = a({}, e2), e2 = v(le, true), se.top -= e2.f, se.left -= e2.e);\n }, dragOverAnimationComplete: function() {\n fe && (fe = false, me());\n }, drop: function(t3) {\n var e2 = t3.originalEvent, n2 = t3.rootEl, o2 = t3.parentEl, i2 = t3.sortable, r2 = t3.dispatchSortableEvent, a2 = t3.oldIndex, l2 = t3.putSortable, s2 = l2 || this.sortable;\n if (e2) {\n var c2, u2, d2, h2 = this.options, f2 = o2.children;\n if (!pe)\n if (h2.multiDragKey && !this.multiDragKeyDown && this._deselectMultiDrag(), k(le, h2.selectedClass, !~ue.indexOf(le)), ~ue.indexOf(le))\n ue.splice(ue.indexOf(le), 1), re = null, z({ sortable: i2, rootEl: n2, name: \"deselect\", targetEl: le, originalEvent: e2 });\n else {\n if (ue.push(le), z({ sortable: i2, rootEl: n2, name: \"select\", targetEl: le, originalEvent: e2 }), e2.shiftKey && re && i2.el.contains(re)) {\n var p2 = j(re), t3 = j(le);\n if (~p2 && ~t3 && p2 !== t3)\n for (var g2, m2 = p2 < t3 ? (g2 = p2, t3) : (g2 = t3, p2 + 1); g2 < m2; g2++)\n ~ue.indexOf(f2[g2]) || (k(f2[g2], h2.selectedClass, true), ue.push(f2[g2]), z({ sortable: i2, rootEl: n2, name: \"select\", targetEl: f2[g2], originalEvent: e2 }));\n } else\n re = le;\n ae = s2;\n }\n pe && this.isMultiDrag && (fe = false, (o2[K].options.sort || o2 !== n2) && 1 < ue.length && (c2 = X(le), u2 = j(le, \":not(.\" + this.options.selectedClass + \")\"), !he && h2.animation && (le.thisAnimationDuration = null), s2.captureAnimationState(), he || (h2.animation && (le.fromRect = c2, ue.forEach(function(t4) {\n var e3;\n t4.thisAnimationDuration = null, t4 !== le && (e3 = fe ? X(t4) : c2, t4.fromRect = e3, s2.addAnimationState({ target: t4, rect: e3 }));\n })), me(), ue.forEach(function(t4) {\n f2[u2] ? o2.insertBefore(t4, f2[u2]) : o2.appendChild(t4), u2++;\n }), a2 === j(le) && (d2 = false, ue.forEach(function(t4) {\n t4.sortableIndex !== j(t4) && (d2 = true);\n }), d2 && (r2(\"update\"), r2(\"sort\")))), ue.forEach(function(t4) {\n T(t4);\n }), s2.animateAll()), ae = s2), (n2 === o2 || l2 && \"clone\" !== l2.lastPutMode) && de.forEach(function(t4) {\n t4.parentNode && t4.parentNode.removeChild(t4);\n });\n }\n }, nullingGlobal: function() {\n this.isMultiDrag = pe = false, de.length = 0;\n }, destroyGlobal: function() {\n this._deselectMultiDrag(), f(document, \"pointerup\", this._deselectMultiDrag), f(document, \"mouseup\", this._deselectMultiDrag), f(document, \"touchend\", this._deselectMultiDrag), f(document, \"keydown\", this._checkKeyDown), f(document, \"keyup\", this._checkKeyUp);\n }, _deselectMultiDrag: function(t3) {\n if (!(void 0 !== pe && pe || ae !== this.sortable || t3 && P(t3.target, this.options.draggable, this.sortable.el, false) || t3 && 0 !== t3.button))\n for (; ue.length; ) {\n var e2 = ue[0];\n k(e2, this.options.selectedClass, false), ue.shift(), z({ sortable: this.sortable, rootEl: this.sortable.el, name: \"deselect\", targetEl: e2, originalEvent: t3 });\n }\n }, _checkKeyDown: function(t3) {\n t3.key === this.options.multiDragKey && (this.multiDragKeyDown = true);\n }, _checkKeyUp: function(t3) {\n t3.key === this.options.multiDragKey && (this.multiDragKeyDown = false);\n } }, a(t2, { pluginName: \"multiDrag\", utils: { select: function(t3) {\n var e2 = t3.parentNode[K];\n e2 && e2.options.multiDrag && !~ue.indexOf(t3) && (ae && ae !== e2 && (ae.multiDrag._deselectMultiDrag(), ae = e2), k(t3, e2.options.selectedClass, true), ue.push(t3));\n }, deselect: function(t3) {\n var e2 = t3.parentNode[K], n2 = ue.indexOf(t3);\n e2 && e2.options.multiDrag && ~n2 && (k(t3, e2.options.selectedClass, false), ue.splice(n2, 1));\n } }, eventProperties: function() {\n var n2 = this, o2 = [], i2 = [];\n return ue.forEach(function(t3) {\n var e2;\n o2.push({ multiDragElement: t3, index: t3.sortableIndex }), e2 = fe && t3 !== le ? -1 : fe ? j(t3, \":not(.\" + n2.options.selectedClass + \")\") : j(t3), i2.push({ multiDragElement: t3, index: e2 });\n }), { items: r(ue), clones: [].concat(de), oldIndicies: o2, newIndicies: i2 };\n }, optionListeners: { multiDragKey: function(t3) {\n return \"ctrl\" === (t3 = t3.toLowerCase()) ? t3 = \"Control\" : 1 < t3.length && (t3 = t3.charAt(0).toUpperCase() + t3.substr(1)), t3;\n } } });\n }()), Ft;\n });\n }\n});\n\n// packages/sort/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n sort: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/sort/src/index.js\nvar import_sortablejs = __toESM(require_Sortable_min());\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/sort/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"sort\", (el, { value, modifiers, expression }, { effect, evaluate, cleanup }) => {\n if (value === \"config\") {\n return;\n }\n if (value === \"handle\") {\n return;\n }\n if (value === \"group\") {\n return;\n }\n if (value === \"key\" || value === \"item\") {\n if ([void 0, null, \"\"].includes(expression))\n return;\n el._x_sort_key = evaluate(expression);\n return;\n }\n let handleSelector = \"[x-sort\\\\:handle],[wire\\\\:sort\\\\:handle]\";\n let preferences = {\n hideGhost: !modifiers.includes(\"ghost\"),\n useHandles: !!el.querySelector(handleSelector) || Array.from(el.querySelectorAll(\"template:not(svg template)\")).some((tmpl) => {\n var _a;\n return (_a = tmpl.content) == null ? void 0 : _a.querySelector(handleSelector);\n }),\n group: getGroupName(el, modifiers)\n };\n let handleSort = generateSortHandler(expression, evaluate);\n let config = getConfigurationOverrides(el, modifiers, evaluate);\n let sortable = initSortable(el, config, preferences, (key, position) => {\n handleSort(key, position);\n });\n cleanup(() => sortable.destroy());\n });\n}\nfunction generateSortHandler(expression, evaluate) {\n if ([void 0, null, \"\"].includes(expression))\n return () => {\n };\n return (key, position) => {\n evaluate(expression, { scope: {\n // Supporting both `$item` AND `$key` ($key for BC)...\n $key: key,\n $item: key,\n $position: position\n }, params: [\n key,\n position\n ] });\n };\n}\nfunction getConfigurationOverrides(el, modifiers, evaluate) {\n if (el.hasAttribute(\"x-sort:config\")) {\n return evaluate(el.getAttribute(\"x-sort:config\"));\n }\n if (el.hasAttribute(\"wire:sort:config\")) {\n return evaluate(el.getAttribute(\"wire:sort:config\"));\n }\n return {};\n}\nfunction initSortable(el, config, preferences, handle) {\n let ghostRef;\n let options = {\n animation: 150,\n handle: preferences.useHandles ? \"[x-sort\\\\:handle],[wire\\\\:sort\\\\:handle]\" : null,\n group: preferences.group,\n scroll: true,\n forceAutoScrollFallback: true,\n scrollSensitivity: 50,\n // This is here so that if a div containing inputs or buttons has x-sort:ignore, it will not prevent interaction...\n preventOnFilter: false,\n filter(e) {\n if (e.target.hasAttribute(\"x-sort:ignore\") || e.target.hasAttribute(\"wire:sort:ignore\"))\n return true;\n if (e.target.closest(\"[x-sort\\\\:ignore]\") || e.target.closest(\"[wire\\\\:sort\\\\:ignore]\"))\n return true;\n if (!el.querySelector(\"[x-sort\\\\:item],[wire\\\\:sort\\\\:item]\"))\n return false;\n let itemHasAttribute = e.target.closest(\"[x-sort\\\\:item],[wire\\\\:sort\\\\:item]\");\n return itemHasAttribute ? false : true;\n },\n onSort(e) {\n if (e.from !== e.to) {\n if (e.to !== e.target) {\n return;\n }\n }\n let key = void 0;\n walk(e.item, (el2, skip) => {\n if (key !== void 0)\n return;\n if (el2._x_sort_key) {\n key = el2._x_sort_key;\n skip();\n }\n });\n let position = e.newIndex;\n if (key !== void 0 || key !== null) {\n handle(key, position);\n }\n },\n onStart() {\n document.body.classList.add(\"sorting\");\n ghostRef = document.querySelector(\".sortable-ghost\");\n if (preferences.hideGhost && ghostRef)\n ghostRef.style.opacity = \"0\";\n },\n onEnd() {\n document.body.classList.remove(\"sorting\");\n if (preferences.hideGhost && ghostRef)\n ghostRef.style.opacity = \"1\";\n ghostRef = void 0;\n keepElementsWithinMorphMarkers(el);\n }\n };\n return new import_sortablejs.default(el, { ...options, ...config });\n}\nfunction keepElementsWithinMorphMarkers(el) {\n let cursor = el.firstChild;\n while (cursor.nextSibling) {\n if (cursor.textContent.trim() === \"[if ENDBLOCK]><![endif]\") {\n el.append(cursor);\n break;\n }\n cursor = cursor.nextSibling;\n }\n}\nfunction getGroupName(el, modifiers) {\n if (el.hasAttribute(\"x-sort:group\")) {\n return el.getAttribute(\"x-sort:group\");\n }\n if (el.hasAttribute(\"wire:sort:group\")) {\n return el.getAttribute(\"wire:sort:group\");\n }\n return modifiers.indexOf(\"group\") !== -1 ? modifiers[modifiers.indexOf(\"group\") + 1] : null;\n}\n\n// packages/sort/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n sort\n});\n/*! Bundled license information:\n\nsortablejs/Sortable.min.js:\n (*! Sortable 1.15.2 - MIT | git://github.com/SortableJS/Sortable.git *)\n*/\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/resize/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n resize: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/resize/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"resize\", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {\n let evaluator = evaluateLater(expression);\n let evaluate = (width, height) => {\n evaluator(() => {\n }, { scope: { \"$width\": width, \"$height\": height } });\n };\n let off = modifiers.includes(\"document\") ? onDocumentResize(evaluate) : onElResize(el, evaluate);\n cleanup(() => off());\n }));\n}\nfunction onElResize(el, callback) {\n let observer = new ResizeObserver((entries) => {\n let [width, height] = dimensions(entries);\n callback(width, height);\n });\n observer.observe(el);\n return () => observer.disconnect();\n}\nvar documentResizeObserver;\nvar documentResizeObserverCallbacks = /* @__PURE__ */ new Set();\nfunction onDocumentResize(callback) {\n documentResizeObserverCallbacks.add(callback);\n if (!documentResizeObserver) {\n documentResizeObserver = new ResizeObserver((entries) => {\n let [width, height] = dimensions(entries);\n documentResizeObserverCallbacks.forEach((i) => i(width, height));\n });\n documentResizeObserver.observe(document.documentElement);\n }\n return () => {\n documentResizeObserverCallbacks.delete(callback);\n };\n}\nfunction dimensions(entries) {\n let width, height;\n for (let entry of entries) {\n width = entry.borderBoxSize[0].inlineSize;\n height = entry.borderBoxSize[0].blockSize;\n }\n return [width, height];\n}\n\n// packages/resize/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n resize\n});\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/anchor/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n anchor: () => src_default,\n default: () => module_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\nvar min = Math.min;\nvar max = Math.max;\nvar round = Math.round;\nvar floor = Math.floor;\nvar createCoords = (v) => ({\n x: v,\n y: v\n});\nvar oppositeSideMap = {\n left: \"right\",\n right: \"left\",\n bottom: \"top\",\n top: \"bottom\"\n};\nvar oppositeAlignmentMap = {\n start: \"end\",\n end: \"start\"\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === \"function\" ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split(\"-\")[0];\n}\nfunction getAlignment(placement) {\n return placement.split(\"-\")[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === \"x\" ? \"y\" : \"x\";\n}\nfunction getAxisLength(axis) {\n return axis === \"y\" ? \"height\" : \"width\";\n}\nfunction getSideAxis(placement) {\n return [\"top\", \"bottom\"].includes(getSide(placement)) ? \"y\" : \"x\";\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === \"x\" ? alignment === (rtl ? \"end\" : \"start\") ? \"right\" : \"left\" : alignment === \"start\" ? \"bottom\" : \"top\";\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = [\"left\", \"right\"];\n const rl = [\"right\", \"left\"];\n const tb = [\"top\", \"bottom\"];\n const bt = [\"bottom\", \"top\"];\n switch (side) {\n case \"top\":\n case \"bottom\":\n if (rtl)\n return isStart ? rl : lr;\n return isStart ? lr : rl;\n case \"left\":\n case \"right\":\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === \"start\", rtl);\n if (alignment) {\n list = list.map((side) => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== \"number\" ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n// node_modules/@floating-ui/core/dist/floating-ui.core.mjs\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === \"y\";\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case \"top\":\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case \"bottom\":\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case \"right\":\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case \"left\":\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case \"start\":\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case \"end\":\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\nvar computePosition = async (reference, floating, config) => {\n const {\n placement = \"bottom\",\n strategy = \"absolute\",\n middleware = [],\n platform: platform2\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));\n let rects = await platform2.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platform2,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === \"object\") {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform2.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform: platform2,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = \"clippingAncestors\",\n rootBoundary = \"viewport\",\n elementContext = \"floating\",\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === \"floating\" ? \"reference\" : \"floating\";\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform2.getClippingRect({\n element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === \"floating\" ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));\n const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\nvar flip = function(options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: \"flip\",\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform: platform2,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = \"bestFit\",\n fallbackAxisSideDirection = \"none\",\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== \"none\") {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements2 = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides2 = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides2[0]], overflow[sides2[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n if (!overflows.every((side2) => side2 <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements2[nextIndex];\n if (nextPlacement) {\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case \"bestFit\": {\n var _overflowsData$map$so;\n const placement2 = (_overflowsData$map$so = overflowsData.map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement2) {\n resetPlacement = placement2;\n }\n break;\n }\n case \"initialPlacement\":\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform: platform2,\n elements\n } = state;\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === \"y\";\n const mainAxisMulti = [\"left\", \"top\"].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === \"number\" ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === \"number\") {\n crossAxis = alignment === \"end\" ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\nvar offset = function(options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: \"offset\",\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\nvar shift = function(options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: \"shift\",\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: (_ref) => {\n let {\n x: x2,\n y: y2\n } = _ref;\n return {\n x: x2,\n y: y2\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === \"y\" ? \"top\" : \"left\";\n const maxSide = mainAxis === \"y\" ? \"bottom\" : \"right\";\n const min2 = mainAxisCoord + overflow[minSide];\n const max2 = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min2, mainAxisCoord, max2);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === \"y\" ? \"top\" : \"left\";\n const maxSide = crossAxis === \"y\" ? \"bottom\" : \"right\";\n const min2 = crossAxisCoord + overflow[minSide];\n const max2 = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min2, crossAxisCoord, max2);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n\n// node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || \"\").toLowerCase();\n }\n return \"#document\";\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (typeof ShadowRoot === \"undefined\") {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && ![\"inline\", \"contents\"].includes(display);\n}\nfunction isTableElement(element) {\n return [\"table\", \"td\", \"th\"].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n return css.transform !== \"none\" || css.perspective !== \"none\" || (css.containerType ? css.containerType !== \"normal\" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== \"none\" : false) || !webkit && (css.filter ? css.filter !== \"none\" : false) || [\"transform\", \"perspective\", \"filter\"].some((value) => (css.willChange || \"\").includes(value)) || [\"paint\", \"layout\", \"strict\", \"content\"].some((value) => (css.contain || \"\").includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === \"undefined\" || !CSS.supports)\n return false;\n return CSS.supports(\"-webkit-backdrop-filter\", \"none\");\n}\nfunction isLastTraversableNode(node) {\n return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === \"html\") {\n return node;\n }\n const result = (\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot || // DOM Element detected.\n node.parentNode || // ShadowRoot detected.\n isShadowRoot(node) && node.host || // Fallback.\n getDocumentElement(node)\n );\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\n// node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\nvar noOffsets = /* @__PURE__ */ createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== \"fixed\") {\n if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\nfunction getWindowScrollBarX(element) {\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === \"rtl\") {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === \"fixed\") {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === \"fixed\");\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === \"viewport\") {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === \"document\") {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === \"fixed\" || hasFixedPositionAncestor(parentNode, stopNode);\n}\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== \"body\");\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === \"fixed\";\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === \"fixed\") {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === \"static\" && !!currentContainingBlockComputedStyle && [\"absolute\", \"fixed\"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n result = result.filter((ancestor) => ancestor !== currentNode);\n } else {\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === \"clippingAncestors\" ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === \"fixed\";\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === \"fixed\") {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getOffsetParent(element, polyfill) {\n const window2 = getWindow(element);\n if (!isHTMLElement(element)) {\n return window2;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === \"static\") {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === \"html\" || getNodeName(offsetParent) === \"body\" && getComputedStyle(offsetParent).position === \"static\" && !isContainingBlock(offsetParent))) {\n return window2;\n }\n return offsetParent || getContainingBlock(element) || window2;\n}\nvar getElementRects = async function(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...await getDimensionsFn(floating)\n }\n };\n};\nfunction isRTL(element) {\n return getComputedStyle(element).direction === \"rtl\";\n}\nvar platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === \"function\",\n layoutShift = typeof IntersectionObserver === \"function\",\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];\n ancestors.forEach((ancestor) => {\n ancestorScroll && ancestor.addEventListener(\"scroll\", update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener(\"resize\", update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver((_ref) => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach((ancestor) => {\n ancestorScroll && ancestor.removeEventListener(\"scroll\", update);\n ancestorResize && ancestor.removeEventListener(\"resize\", update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\nvar computePosition2 = (reference, floating, options) => {\n const cache = /* @__PURE__ */ new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\n// packages/anchor/src/index.js\nfunction src_default(Alpine) {\n Alpine.magic(\"anchor\", (el) => {\n if (!el._x_anchor)\n throw \"Alpine: No x-anchor directive found on element using $anchor...\";\n return el._x_anchor;\n });\n Alpine.interceptClone((from, to) => {\n if (from && from._x_anchor && !to._x_anchor) {\n to._x_anchor = from._x_anchor;\n }\n });\n Alpine.directive(\"anchor\", Alpine.skipDuringClone(\n (el, { expression, modifiers, value }, { evaluate: evaluate2, effect, cleanup }) => {\n let { placement, offsetValue, unstyled, strategy, allowFlip } = getOptions(modifiers);\n el._x_anchor = Alpine.reactive({ x: 0, y: 0 });\n let previousReference = null;\n let release = null;\n effect(() => {\n let reference = evaluate2(expression);\n if (!reference)\n return;\n if (previousReference !== reference) {\n if (release)\n release();\n previousReference = reference;\n let compute = () => {\n let previousValue;\n computePosition2(reference, el, {\n placement,\n strategy,\n middleware: [allowFlip && flip(), shift({ padding: 5 }), offset(offsetValue)]\n }).then(({ x, y }) => {\n unstyled || setStyles(el, x, y, strategy);\n if (JSON.stringify({ x, y }) !== previousValue) {\n el._x_anchor.x = x;\n el._x_anchor.y = y;\n }\n previousValue = JSON.stringify({ x, y });\n });\n };\n release = autoUpdate(reference, el, () => compute());\n }\n });\n cleanup(() => {\n if (release)\n release();\n });\n },\n // When cloning (or \"morphing\"), we will graft the style and position data from the live tree...\n (el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => {\n let { placement, offsetValue, unstyled, strategy } = getOptions(modifiers);\n if (el._x_anchor) {\n unstyled || setStyles(el, el._x_anchor.x, el._x_anchor.y, strategy);\n }\n }\n ));\n}\nfunction setStyles(el, x, y, strategy = \"absolute\") {\n Object.assign(el.style, {\n left: x + \"px\",\n top: y + \"px\",\n position: strategy\n });\n}\nfunction getOptions(modifiers) {\n let positions = [\"top\", \"top-start\", \"top-end\", \"right\", \"right-start\", \"right-end\", \"bottom\", \"bottom-start\", \"bottom-end\", \"left\", \"left-start\", \"left-end\"];\n let placement = positions.find((i) => modifiers.includes(i));\n let offsetValue = 0;\n if (modifiers.includes(\"offset\")) {\n let idx = modifiers.findIndex((i) => i === \"offset\");\n offsetValue = modifiers[idx + 1] !== void 0 ? Number(modifiers[idx + 1]) : offsetValue;\n }\n let unstyled = modifiers.includes(\"no-style\");\n let allowFlip = !modifiers.includes(\"noflip\");\n let strategy = modifiers.includes(\"fixed\") ? \"fixed\" : \"absolute\";\n return { placement, offsetValue, unstyled, strategy, allowFlip };\n}\n\n// packages/anchor/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n anchor\n});\n", "/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/morph/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n morph: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/morph/src/morph.js\nfunction morph(from, toHtml, options) {\n monkeyPatchDomSetAttributeToAllowAtSymbols();\n let context = createMorphContext(options);\n let toEl = typeof toHtml === \"string\" ? createElement(toHtml) : toHtml;\n if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) {\n toEl._x_dataStack = window.Alpine.closestDataStack(from);\n toEl._x_dataStack && window.Alpine.cloneNode(from, toEl);\n }\n context.patch(from, toEl);\n return from;\n}\nfunction morphBetween(startMarker, endMarker, toHtml, options = {}) {\n monkeyPatchDomSetAttributeToAllowAtSymbols();\n let context = createMorphContext(options);\n let fromContainer = startMarker.parentNode;\n let fromBlock = new Block(startMarker, endMarker);\n let toContainer = typeof toHtml === \"string\" ? (() => {\n let container = document.createElement(\"div\");\n container.insertAdjacentHTML(\"beforeend\", toHtml);\n return container;\n })() : toHtml;\n let toStartMarker = document.createComment(\"[morph-start]\");\n let toEndMarker = document.createComment(\"[morph-end]\");\n toContainer.insertBefore(toStartMarker, toContainer.firstChild);\n toContainer.appendChild(toEndMarker);\n let toBlock = new Block(toStartMarker, toEndMarker);\n if (window.Alpine && window.Alpine.closestDataStack) {\n toContainer._x_dataStack = window.Alpine.closestDataStack(fromContainer);\n toContainer._x_dataStack && window.Alpine.cloneNode(fromContainer, toContainer);\n }\n context.patchChildren(fromBlock, toBlock);\n}\nfunction createMorphContext(options = {}) {\n let defaultGetKey = (el) => el.getAttribute(\"key\");\n let noop = () => {\n };\n let context = {\n key: options.key || defaultGetKey,\n lookahead: options.lookahead || false,\n updating: options.updating || noop,\n updated: options.updated || noop,\n removing: options.removing || noop,\n removed: options.removed || noop,\n adding: options.adding || noop,\n added: options.added || noop\n };\n context.patch = function(from, to) {\n if (context.differentElementNamesTypesOrKeys(from, to)) {\n return context.swapElements(from, to);\n }\n let updateChildrenOnly = false;\n let skipChildren = false;\n let skipUntil = (predicate) => context.skipUntilCondition = predicate;\n if (shouldSkipChildren(context.updating, () => skipChildren = true, skipUntil, from, to, () => updateChildrenOnly = true))\n return;\n if (from.nodeType === 1 && window.Alpine) {\n window.Alpine.cloneNode(from, to);\n if (from._x_teleport && to._x_teleport) {\n context.patch(from._x_teleport, to._x_teleport);\n }\n }\n if (textOrComment(to)) {\n context.patchNodeValue(from, to);\n context.updated(from, to);\n return;\n }\n if (!updateChildrenOnly) {\n context.patchAttributes(from, to);\n }\n context.updated(from, to);\n if (!skipChildren) {\n context.patchChildren(from, to);\n }\n };\n context.differentElementNamesTypesOrKeys = function(from, to) {\n return from.nodeType != to.nodeType || from.nodeName != to.nodeName || context.getKey(from) != context.getKey(to);\n };\n context.swapElements = function(from, to) {\n if (shouldSkip(context.removing, from))\n return;\n let toCloned = to.cloneNode(true);\n if (shouldSkip(context.adding, toCloned))\n return;\n from.replaceWith(toCloned);\n context.removed(from);\n context.added(toCloned);\n };\n context.patchNodeValue = function(from, to) {\n let value = to.nodeValue;\n if (from.nodeValue !== value) {\n from.nodeValue = value;\n }\n };\n context.patchAttributes = function(from, to) {\n if (from._x_transitioning)\n return;\n if (from._x_isShown && !to._x_isShown) {\n return;\n }\n if (!from._x_isShown && to._x_isShown) {\n return;\n }\n let domAttributes = Array.from(from.attributes);\n let toAttributes = Array.from(to.attributes);\n for (let i = domAttributes.length - 1; i >= 0; i--) {\n let name = domAttributes[i].name;\n if (!to.hasAttribute(name)) {\n if (name === \"open\" && from.nodeName === \"DIALOG\" && from.open) {\n from.close();\n } else {\n from.removeAttribute(name);\n }\n }\n }\n for (let i = toAttributes.length - 1; i >= 0; i--) {\n let name = toAttributes[i].name;\n let value = toAttributes[i].value;\n if (from.getAttribute(name) !== value) {\n from.setAttribute(name, value);\n }\n }\n };\n context.patchChildren = function(from, to) {\n let fromKeys = context.keyToMap(from.children);\n let fromKeyHoldovers = {};\n let currentTo = getFirstNode(to);\n let currentFrom = getFirstNode(from);\n while (currentTo) {\n seedingMatchingId(currentTo, currentFrom);\n let toKey = context.getKey(currentTo);\n let fromKey = context.getKey(currentFrom);\n if (context.skipUntilCondition) {\n let fromDone = !currentFrom || context.skipUntilCondition(currentFrom);\n let toDone = !currentTo || context.skipUntilCondition(currentTo);\n if (fromDone && toDone) {\n context.skipUntilCondition = null;\n } else {\n if (!fromDone)\n currentFrom = currentFrom && getNextSibling(from, currentFrom);\n if (!toDone)\n currentTo = currentTo && getNextSibling(to, currentTo);\n continue;\n }\n }\n if (!currentFrom) {\n if (toKey && fromKeyHoldovers[toKey]) {\n let holdover = fromKeyHoldovers[toKey];\n from.appendChild(holdover);\n currentFrom = holdover;\n fromKey = context.getKey(currentFrom);\n } else {\n if (!shouldSkip(context.adding, currentTo)) {\n let clone = currentTo.cloneNode(true);\n from.appendChild(clone);\n context.added(clone);\n }\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n }\n let isIf = (node) => node && node.nodeType === 8 && node.textContent === \"[if BLOCK]><![endif]\";\n let isEnd = (node) => node && node.nodeType === 8 && node.textContent === \"[if ENDBLOCK]><![endif]\";\n if (isIf(currentTo) && isIf(currentFrom)) {\n let nestedIfCount = 0;\n let fromBlockStart = currentFrom;\n while (currentFrom) {\n let next = getNextSibling(from, currentFrom);\n if (isIf(next)) {\n nestedIfCount++;\n } else if (isEnd(next) && nestedIfCount > 0) {\n nestedIfCount--;\n } else if (isEnd(next) && nestedIfCount === 0) {\n currentFrom = next;\n break;\n }\n currentFrom = next;\n }\n let fromBlockEnd = currentFrom;\n nestedIfCount = 0;\n let toBlockStart = currentTo;\n while (currentTo) {\n let next = getNextSibling(to, currentTo);\n if (isIf(next)) {\n nestedIfCount++;\n } else if (isEnd(next) && nestedIfCount > 0) {\n nestedIfCount--;\n } else if (isEnd(next) && nestedIfCount === 0) {\n currentTo = next;\n break;\n }\n currentTo = next;\n }\n let toBlockEnd = currentTo;\n let fromBlock = new Block(fromBlockStart, fromBlockEnd);\n let toBlock = new Block(toBlockStart, toBlockEnd);\n context.patchChildren(fromBlock, toBlock);\n continue;\n }\n if (currentFrom.nodeType === 1 && context.lookahead && !currentFrom.isEqualNode(currentTo)) {\n let nextToElementSibling = getNextSibling(to, currentTo);\n let found = false;\n while (!found && nextToElementSibling) {\n if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) {\n found = true;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKey = context.getKey(currentFrom);\n }\n nextToElementSibling = getNextSibling(to, nextToElementSibling);\n }\n }\n if (toKey !== fromKey) {\n if (!toKey && fromKey) {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKeyHoldovers[fromKey].remove();\n currentFrom = getNextSibling(from, currentFrom);\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n if (toKey && !fromKey) {\n if (fromKeys[toKey]) {\n currentFrom.replaceWith(fromKeys[toKey]);\n currentFrom = fromKeys[toKey];\n fromKey = context.getKey(currentFrom);\n }\n }\n if (toKey && fromKey) {\n let fromKeyNode = fromKeys[toKey];\n if (fromKeyNode) {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom.replaceWith(fromKeyNode);\n currentFrom = fromKeyNode;\n fromKey = context.getKey(currentFrom);\n } else {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKeyHoldovers[fromKey].remove();\n currentFrom = getNextSibling(from, currentFrom);\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n }\n }\n let currentFromNext = currentFrom && getNextSibling(from, currentFrom);\n context.patch(currentFrom, currentTo);\n currentTo = currentTo && getNextSibling(to, currentTo);\n currentFrom = currentFromNext;\n }\n let removals = [];\n while (currentFrom) {\n if (!shouldSkip(context.removing, currentFrom))\n removals.push(currentFrom);\n currentFrom = getNextSibling(from, currentFrom);\n }\n while (removals.length) {\n let domForRemoval = removals.shift();\n domForRemoval.remove();\n context.removed(domForRemoval);\n }\n };\n context.getKey = function(el) {\n return el && el.nodeType === 1 && context.key(el);\n };\n context.keyToMap = function(els) {\n let map = {};\n for (let el of els) {\n let theKey = context.getKey(el);\n if (theKey) {\n map[theKey] = el;\n }\n }\n return map;\n };\n context.addNodeBefore = function(parent, node, beforeMe) {\n if (!shouldSkip(context.adding, node)) {\n let clone = node.cloneNode(true);\n parent.insertBefore(clone, beforeMe);\n context.added(clone);\n return clone;\n }\n return node;\n };\n return context;\n}\nmorph.step = () => {\n};\nmorph.log = () => {\n};\nfunction shouldSkip(hook, ...args) {\n let skip = false;\n hook(...args, () => skip = true);\n return skip;\n}\nfunction shouldSkipChildren(hook, skipChildren, skipUntil, ...args) {\n let skip = false;\n hook(...args, () => skip = true, skipChildren, skipUntil);\n return skip;\n}\nvar patched = false;\nfunction createElement(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content.firstElementChild;\n}\nfunction textOrComment(el) {\n return el.nodeType === 3 || el.nodeType === 8;\n}\nvar Block = class {\n constructor(start, end) {\n this.startComment = start;\n this.endComment = end;\n }\n get children() {\n let children = [];\n let currentNode = this.startComment.nextSibling;\n while (currentNode && currentNode !== this.endComment) {\n children.push(currentNode);\n currentNode = currentNode.nextSibling;\n }\n return children;\n }\n appendChild(child) {\n this.endComment.before(child);\n }\n get firstChild() {\n let first = this.startComment.nextSibling;\n if (first === this.endComment)\n return;\n return first;\n }\n nextNode(reference) {\n let next = reference.nextSibling;\n if (next === this.endComment)\n return;\n return next;\n }\n insertBefore(newNode, reference) {\n reference.before(newNode);\n return newNode;\n }\n};\nfunction getFirstNode(parent) {\n return parent.firstChild;\n}\nfunction getNextSibling(parent, reference) {\n let next;\n if (parent instanceof Block) {\n next = parent.nextNode(reference);\n } else {\n next = reference.nextSibling;\n }\n return next;\n}\nfunction monkeyPatchDomSetAttributeToAllowAtSymbols() {\n if (patched)\n return;\n patched = true;\n let original = Element.prototype.setAttribute;\n let hostDiv = document.createElement(\"div\");\n Element.prototype.setAttribute = function newSetAttribute(name, value) {\n if (!name.includes(\"@\")) {\n return original.call(this, name, value);\n }\n let escapedValue = value.replace(/&/g, \"&\").replace(/\"/g, \""\");\n hostDiv.innerHTML = `<span ${name}=\"${escapedValue}\"></span>`;\n let attr = hostDiv.firstElementChild.getAttributeNode(name);\n hostDiv.firstElementChild.removeAttributeNode(attr);\n this.setAttributeNode(attr);\n };\n}\nfunction seedingMatchingId(to, from) {\n let fromId = from && from._x_bindings && from._x_bindings.id;\n if (!fromId)\n return;\n if (!to.setAttribute)\n return;\n to.setAttribute(\"id\", fromId);\n to.id = fromId;\n}\n\n// packages/morph/src/index.js\nfunction src_default(Alpine) {\n Alpine.morph = morph;\n Alpine.morphBetween = morphBetween;\n}\n\n// packages/morph/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n morph\n});\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// packages/mask/builds/module.js\nvar module_exports = {};\n__export(module_exports, {\n default: () => module_default,\n formatInput: () => formatInput,\n mask: () => src_default\n});\nmodule.exports = __toCommonJS(module_exports);\n\n// packages/mask/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"mask\", (el, { value, expression }, { effect, evaluateLater, cleanup }) => {\n let templateFn = () => expression;\n let lastInputValue = \"\";\n queueMicrotask(() => {\n if ([\"function\", \"dynamic\"].includes(value)) {\n let evaluator = evaluateLater(expression);\n effect(() => {\n templateFn = (input) => {\n let result;\n Alpine.dontAutoEvaluateFunctions(() => {\n evaluator((value2) => {\n result = typeof value2 === \"function\" ? value2(input) : value2;\n }, { scope: {\n // These are \"magics\" we'll make available to the x-mask:function:\n \"$input\": input,\n \"$money\": formatMoney.bind({ el })\n } });\n });\n return result;\n };\n processInputValue(el, false);\n });\n } else {\n processInputValue(el, false);\n }\n if (el._x_model) {\n if (el._x_model.get() !== el.value) {\n if (!(el._x_model.get() === null && el.value === \"\")) {\n el._x_model.set(el.value);\n }\n }\n let updater = el._x_forceModelUpdate;\n el._x_forceModelUpdate = (value2) => {\n value2 = String(value2);\n let template = templateFn(value2);\n if (template && template !== \"false\") {\n value2 = formatInput(template, value2);\n }\n lastInputValue = value2;\n updater(value2);\n el._x_model.set(value2);\n };\n }\n });\n const controller = new AbortController();\n cleanup(() => {\n controller.abort();\n });\n el.addEventListener(\"input\", () => processInputValue(el), {\n signal: controller.signal,\n // Setting this as a capture phase listener to ensure it runs\n // before wire:model or x-model added as a latent binding...\n capture: true\n });\n el.addEventListener(\"blur\", () => processInputValue(el, false), { signal: controller.signal });\n function processInputValue(el2, shouldRestoreCursor = true) {\n let input = el2.value;\n let template = templateFn(input);\n if (!template || template === \"false\")\n return false;\n if (lastInputValue.length - el2.value.length === 1) {\n return lastInputValue = el2.value;\n }\n let setInput = () => {\n lastInputValue = el2.value = formatInput(template, input);\n };\n if (shouldRestoreCursor) {\n restoreCursorPosition(el2, template, () => {\n setInput();\n });\n } else {\n setInput();\n }\n }\n }).before(\"model\");\n}\nfunction restoreCursorPosition(el, template, callback) {\n let cursorPosition = el.selectionStart;\n let unformattedValue = el.value;\n callback();\n let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition);\n let newPosition = formatInput(\n template,\n beforeLeftOfCursorBeforeFormatting\n ).length;\n el.setSelectionRange(newPosition, newPosition);\n}\nvar regexes = {\n \"9\": /[0-9]/,\n \"a\": /[a-zA-Z]/,\n \"*\": /[a-zA-Z0-9]/\n};\nfunction formatInput(template, input) {\n let templateMark = 0;\n let inputMark = 0;\n let output = \"\";\n while (templateMark < template.length && inputMark < input.length) {\n let templateChar = template[templateMark];\n let inputChar = input[inputMark];\n if (templateChar in regexes) {\n if (regexes[templateChar].test(inputChar)) {\n output += inputChar;\n templateMark++;\n }\n inputMark++;\n } else {\n output += templateChar;\n templateMark++;\n if (templateChar === input[inputMark])\n inputMark++;\n }\n }\n return output;\n}\nfunction formatMoney(input, delimiter = \".\", thousands, precision = 2) {\n if (input === \"-\")\n return \"-\";\n if (/^\\D+$/.test(input))\n return \"9\";\n if (thousands === null || thousands === void 0) {\n thousands = delimiter === \",\" ? \".\" : \",\";\n }\n let addThousands = (input2, thousands2) => {\n let output = \"\";\n let counter = 0;\n for (let i = input2.length - 1; i >= 0; i--) {\n if (input2[i] === thousands2)\n continue;\n if (counter === 3) {\n output = input2[i] + thousands2 + output;\n counter = 0;\n } else {\n output = input2[i] + output;\n }\n counter++;\n }\n return output;\n };\n let minus = input.startsWith(\"-\") ? \"-\" : \"\";\n let strippedInput = input.replaceAll(new RegExp(`[^0-9\\\\${delimiter}]`, \"g\"), \"\");\n let template = Array.from({ length: strippedInput.split(delimiter)[0].length }).fill(\"9\").join(\"\");\n template = `${minus}${addThousands(template, thousands)}`;\n if (precision > 0 && input.includes(delimiter))\n template += `${delimiter}` + \"9\".repeat(precision);\n queueMicrotask(() => {\n if (this.el.value.endsWith(delimiter))\n return;\n if (this.el.value[this.el.selectionStart - 1] === delimiter) {\n this.el.setSelectionRange(this.el.selectionStart - 1, this.el.selectionStart - 1);\n }\n });\n return template;\n}\n\n// packages/mask/builds/module.js\nvar module_default = src_default;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n formatInput,\n mask\n});\n", "\nexport class Bag {\n constructor() { this.arrays = {} }\n\n add(key, value) {\n if (! this.arrays[key]) this.arrays[key] = []\n this.arrays[key].push(value)\n }\n\n remove(key) {\n if (this.arrays[key]) delete this.arrays[key]\n }\n\n get(key) { return this.arrays[key] || [] }\n\n each(key, callback) { return this.get(key).forEach(callback) }\n}\n\nexport class WeakBag {\n constructor() { this.arrays = new WeakMap }\n\n add(key, value) {\n if (! this.arrays.has(key)) this.arrays.set(key, [])\n this.arrays.get(key).push(value)\n }\n\n remove(key) {\n if (this.arrays.has(key)) this.arrays.delete(key, [])\n }\n\n get(key) { return this.arrays.has(key) ? this.arrays.get(key) : [] }\n\n each(key, callback) { return this.get(key).forEach(callback) }\n}\n\nexport function dispatch(target, name, detail = {}, bubbles = true) {\n target.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true,\n })\n )\n}\n\nexport function listen(target, name, handler) {\n target.addEventListener(name, handler)\n\n return () => target.removeEventListener(name, handler)\n}\n\n/**\n * Type-checking in JS is weird and annoying, these are better.\n */\nexport function isObjecty(subject) { return (typeof subject === 'object' && subject !== null) }\nexport function isObject(subject) { return (isObjecty(subject) && ! isArray(subject)) }\nexport function isArray(subject) { return Array.isArray(subject) }\nexport function isFunction(subject) { return typeof subject === 'function' }\nexport function isPrimitive(subject) { return typeof subject !== 'object' || subject === null }\n\n/**\n * Clone an object deeply to wipe out any shared references.\n */\nexport function deepClone(obj) { return JSON.parse(JSON.stringify(obj)) }\n\n/**\n * Determine if two objects take the exact same shape.\n */\nexport function deeplyEqual(a, b) { return JSON.stringify(a) === JSON.stringify(b) }\n\n/**\n * An easy way to loop through arrays and objects.\n */\nexport function each(subject, callback) {\n Object.entries(subject).forEach(([key, value]) => callback(key, value))\n}\n\n/**\n * Parse a path string into segments, supporting dot and bracket notation.\n * e.g. \"foo.bar\", \"foo[0].bar\", \"foo['hey'].baz\"\n */\nfunction parsePathSegments(path) {\n if (path === '') return []\n\n return path\n .replace(/\\[(['\"]?)(.+?)\\1\\]/g, '.$2') // Convert brackets to dots: foo['bar'] \u2192 foo.bar, foo[0] \u2192 foo.0\n .replace(/^\\./, '') // Remove leading dot if present\n .split('.')\n}\n\n/**\n * Get a property from an object with support for dot-notation and bracket-notation.\n */\nexport function dataGet(object, key) {\n if (key === '') return object\n\n return parsePathSegments(key).reduce((carry, i) => {\n return carry?.[i]\n }, object)\n}\n\n/**\n * Set a property on an object with support for dot-notation and bracket-notation.\n */\nexport function dataSet(object, key, value) {\n let segments = parsePathSegments(key)\n\n if (segments.length === 1) {\n return object[segments[0]] = value\n }\n\n let firstSegment = segments.shift()\n let restOfSegments = segments.join('.')\n let nextSegment = segments[0]\n\n if (object[firstSegment] === undefined) {\n object[firstSegment] = {}\n }\n\n // If we're about to set a numeric key that would create null gaps, convert to object.\n // This prevents JavaScript from filling intermediate indices with nulls\n // (e.g., arr[1000] = true creates 1000 null entries in a JS array).\n // We only convert when the key would create gaps (key > length), not when appending.\n if (isArray(object[firstSegment]) && isNumeric(nextSegment) && parseInt(nextSegment) > object[firstSegment].length) {\n object[firstSegment] = { ...object[firstSegment] }\n }\n\n dataSet(object[firstSegment], restOfSegments, value)\n}\n\nfunction isNumeric(subject) {\n return ! isNaN(parseInt(subject))\n}\n\n/**\n * Delete a property from an object with support for dot-notation and bracket-notation.\n */\nexport function dataDelete(object, key) {\n let segments = parsePathSegments(key)\n\n if (segments.length === 1) {\n if (Array.isArray(object)) {\n object.splice(segments[0], 1)\n } else {\n delete object[segments[0]]\n }\n return\n }\n\n let firstSegment = segments.shift()\n let restOfSegments = segments.join('.')\n\n if (object[firstSegment] !== undefined) {\n dataDelete(object[firstSegment], restOfSegments)\n }\n}\n\n/**\n * Create a flat, dot-notated diff of two objects.\n * @deprecated Use diffAndConsolidate instead for smarter update consolidation\n */\nexport function diff(left, right, diffs = {}, path = '') {\n // Are they the same?\n if (left === right) return diffs\n\n // Are they COMPLETELY different?\n if (typeof left !== typeof right || (isObject(left) && isArray(right)) || (isArray(left) && isObject(right))) {\n diffs[path] = right;\n return diffs\n }\n\n // Is the right or left side a primitive value (a leaf node)?\n if (isPrimitive(left) || isPrimitive(right)) {\n diffs[path] = right\n return diffs\n }\n\n // We now know both are objects...\n let leftKeys = Object.keys(left)\n let rightKeys = Object.keys(right)\n\n // Did the key order change? (includes insertions that shift existing keys)\n if (isObject(left) && leftKeys.some((key, i) => key !== rightKeys[i])) {\n diffs[path] = right\n return diffs\n }\n\n // Recursively diff the object's properties...\n Object.entries(right).forEach(([key, value]) => {\n diffs = {...diffs, ...diff(left[key], right[key], diffs, path === '' ? key : `${path}.${key}`)}\n leftKeys = leftKeys.filter(i => i !== key)\n })\n\n // Mark any items for removal...\n leftKeys.forEach(key => {\n diffs[`${path}.${key}`] = '__rm__'\n })\n\n return diffs\n}\n\n/**\n * Create a flat, dot-notated diff of two objects with automatic consolidation.\n * When multiple items in an array/object change or the size changes,\n * the diff is consolidated to the parent level instead of individual items.\n */\nexport function diffAndConsolidate(left, right) {\n let diffs = {}\n\n diffRecursive(left, right, '', diffs, left, right)\n\n return diffs\n}\n\nfunction diffRecursive(left, right, path, diffs, rootLeft, rootRight) {\n // Are they the same?\n if (left === right) return { changed: false, consolidated: false }\n\n // Track if we're doing a type conversion from empty array/null/undefined to object\n // In this case, we want granular diffs, not consolidation\n let convertedToObject = false\n\n // Helper to check if an array has non-numeric (string) keys\n // Arrays with string keys need granular diffs because JSON.stringify ignores them\n let hasNonNumericKeys = (arr) => {\n return isArray(arr) && Object.keys(arr).some(k => isNaN(parseInt(k)))\n }\n\n // Are they COMPLETELY different types?\n if (typeof left !== typeof right || (isObject(left) && isArray(right)) || (isArray(left) && isObject(right))) {\n // Special case: if left is an empty array and right is an object,\n // treat the empty array as an empty object so we get granular diffs.\n // This handles the case where wire:model.live=\"tableFilters.filter_1.value\"\n // updates tableFilters from [] to { filter_1: { value: 'foo' } }\n if (isArray(left) && left.length === 0 && isObject(right)) {\n left = {}\n convertedToObject = true\n // Fall through to continue with object comparison below\n }\n // Special case: if left is undefined/null and right is an object,\n // treat left as an empty object to get granular diffs for new properties\n else if ((left === undefined || left === null) && isObject(right)) {\n left = {}\n convertedToObject = true\n // Fall through to continue with object comparison below\n } else {\n diffs[path] = right\n return { changed: true, consolidated: false }\n }\n }\n\n // Special case: if both are arrays but right has non-numeric keys,\n // we need granular diffs because JSON.stringify ignores string keys on arrays.\n // Treat both as objects to properly diff the string keys.\n if (isArray(left) && isArray(right) && hasNonNumericKeys(right)) {\n // Treat the arrays as objects for comparison\n // If left was empty, mark as converted to object to prevent consolidation\n if (Object.keys(left).length === 0) {\n convertedToObject = true\n }\n }\n\n // Is either side a primitive value (a leaf node)?\n if (isPrimitive(left) || isPrimitive(right)) {\n diffs[path] = right\n return { changed: true, consolidated: false }\n }\n\n // Both are objects/arrays - check if we should consolidate at this level\n let leftKeys = Object.keys(left)\n let rightKeys = Object.keys(right)\n\n // If the size changed, consolidate at this level\n // BUT if we converted to object, don't consolidate - we're adding new items\n // and should produce granular diffs for query string handling\n if (leftKeys.length !== rightKeys.length && !convertedToObject) {\n // For root level, we can't consolidate to a single key, so diff each root property\n if (path === '') {\n Object.keys(right).forEach(key => {\n if (!deeplyEqual(left[key], right[key])) {\n diffs[key] = right[key]\n }\n })\n return { changed: true, consolidated: true }\n }\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n\n // Did the key order change?\n if (isObject(left) && leftKeys.length === rightKeys.length && leftKeys.some((key, i) => key !== rightKeys[i])) {\n if (path !== '') {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n }\n\n // Check if all keys are the same (no additions/removals)\n let keysMatch = leftKeys.every(k => rightKeys.includes(k))\n\n if (!keysMatch && !convertedToObject) {\n // Keys differ (some added, some removed) - consolidate\n if (path !== '') {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n }\n\n // Recursively diff children\n let childDiffs = {}\n let changedCount = 0\n let consolidatedCount = 0\n let totalChildren = rightKeys.length\n\n rightKeys.forEach(key => {\n let childPath = path === '' ? key : `${path}.${key}`\n let result = diffRecursive(left[key], right[key], childPath, childDiffs, rootLeft, rootRight)\n if (result.changed) changedCount++\n if (result.consolidated) consolidatedCount++\n })\n\n // If all children changed AND none of them were already consolidated, consolidate to this level\n // (unless we're at root). This prevents double-consolidation up the tree.\n // ALSO skip consolidation if we converted to object - we're adding new items, not replacing\n // Only consolidate if there are MULTIPLE children - single property changes should remain granular\n // for wire:target to work correctly (e.g., wire:target=\"form.text\" needs \"form.text\" not \"form\")\n if (path !== '' && totalChildren > 1 && changedCount === totalChildren && consolidatedCount === 0 && !convertedToObject) {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n\n // Otherwise, add individual child diffs\n Object.assign(diffs, childDiffs)\n\n // If any child was consolidated, bubble that up to prevent further consolidation\n // Also bubble up convertedToObject to prevent parent consolidation from\n // JSON-serializing arrays with non-numeric keys (which JSON.stringify ignores)\n return { changed: changedCount > 0, consolidated: consolidatedCount > 0 || convertedToObject }\n}\n\n/**\n * Diff two object trees (left = old, right = new) and patch the differences\n * onto a target object. Walks the trees directly via object key access,\n * avoiding dot-notated path strings which break when object keys contain dots.\n */\nexport function diffAndPatchRecursive(left, right, target) {\n let leftKeys = new Set(Object.keys(left || {}))\n let rightKeys = Object.keys(right)\n\n // If existing keys shifted position in an object (e.g. a key was inserted\n // in the middle), we can't patch key-by-key because new keys would be\n // appended at the end. Replace all keys on the target to preserve order.\n if (!isArray(target) && [...leftKeys].some((key, i) => key !== rightKeys[i])) {\n for (let key of Object.keys(target)) delete target[key]\n for (let key of rightKeys) target[key] = right[key]\n return\n }\n\n rightKeys.forEach(key => {\n leftKeys.delete(key)\n\n if (deeplyEqual(left?.[key], right[key])) return\n\n if (isObjecty(left?.[key]) && isObjecty(right[key]) && isObjecty(target[key])\n && isArray(right[key]) === isArray(target[key])) {\n diffAndPatchRecursive(left[key], right[key], target[key])\n } else {\n target[key] = right[key]\n }\n })\n\n // Handle removals \u2014 keys present in left but not in right.\n // Sort in reverse numeric order so array splice indices stay valid.\n let removedKeys = [...leftKeys]\n\n removedKeys.sort((a, b) => {\n let aNum = parseInt(a) || 0\n let bNum = parseInt(b) || 0\n return bNum - aNum\n }).forEach(key => {\n if (isArray(target)) {\n target.splice(parseInt(key), 1)\n } else {\n delete target[key]\n }\n })\n}\n\n/**\n * The data that's passed between the browser and server is in the form of\n * nested tuples consisting of the schema: [rawValue, metadata]. In this\n * method we're extracting the plain JS object of only the raw values.\n */\nexport function extractData(payload) {\n let value = isSynthetic(payload) ? payload[0] : payload\n let meta = isSynthetic(payload) ? payload[1] : undefined\n\n if (isObjecty(value)) {\n Object.entries(value).forEach(([key, iValue]) => {\n value[key] = extractData(iValue)\n })\n }\n\n return value\n}\n\n/**\n * Determine if the variable passed in is a node in a nested metadata\n * tuple tree. (Meaning it takes the form of: [rawData, metadata])\n */\nexport function isSynthetic(subject) {\n return Array.isArray(subject)\n && subject.length === 2\n && typeof subject[1] === 'object'\n && Object.keys(subject[1]).includes('s')\n}\n\n/**\n * Post requests in Laravel require a csrf token to be passed\n * along with the payload. Here, we'll try and locate one.\n */\nexport function getCsrfToken() {\n // Purposely not caching. Fetching it fresh every time ensures we're\n // not depending on a stale session's CSRF token...\n\n if (document.querySelector('meta[name=\"csrf-token\"]')) {\n return document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content')\n }\n\n if (document.querySelector('[data-csrf]')) {\n return document.querySelector('[data-csrf]').getAttribute('data-csrf')\n }\n\n if (window.livewireScriptConfig['csrf'] ?? false) {\n return window.livewireScriptConfig['csrf']\n }\n\n throw 'Livewire: No CSRF token detected'\n}\n\nlet nonce;\n\nexport function getNonce() {\n if (nonce) return nonce\n\n\n if (window.livewireScriptConfig && (window.livewireScriptConfig['nonce'] ?? false)) {\n nonce = window.livewireScriptConfig['nonce']\n\n return nonce\n }\n\n let elWithNonce = document.querySelector('style[data-livewire-style][nonce]')\n\n if (elWithNonce) {\n nonce = elWithNonce.nonce\n\n return nonce\n }\n\n return null\n}\n\nexport function replaceNoncesInHtml(html) {\n let nonce = getNonce()\n if (! nonce) return html\n\n let nonceMatch = html.match(/nonce=\"([^\"]+)\"/)\n if (! nonceMatch) return html\n\n let newNonce = nonceMatch[1]\n if (newNonce === nonce) return html\n\n return html.replaceAll(`nonce=\"${newNonce}\"`, `nonce=\"${nonce}\"`)\n}\n\nexport function cloneScriptTag(el) {\n let script = document.createElement('script')\n\n script.textContent = el.textContent\n script.async = el.async\n\n for (let attr of el.attributes) {\n if (attr.name === 'nonce') {\n // Browsers clear .nonce from DOMParser-parsed elements,\n // so fall back to the page's original nonce...\n script.nonce = getNonce() || el.nonce\n } else {\n script.setAttribute(attr.name, attr.value)\n }\n }\n\n return script\n}\n\n/**\n * Livewire's base URL for loading JS/CSS modules.\n * Returns a full URL including origin, generated by PHP's url() helper.\n */\nexport function getModuleUrl() {\n return document.querySelector('[data-module-url]')?.getAttribute('data-module-url') ?? window.livewireScriptConfig['moduleUrl'] ?? null\n}\n\n/**\n * Livewire's update URI. This is configurable via Livewire::setUpdateRoute(...)\n */\nexport function getUpdateUri() {\n return document.querySelector('[data-update-uri]')?.getAttribute('data-update-uri') ?? window.livewireScriptConfig['uri'] ?? null\n}\n\nexport function contentIsFromDump(content) {\n return !! content.match(/<script>Sfdump\\(\".+\"\\)<\\/script>/)\n}\n\nexport function splitDumpFromContent(content) {\n let dump = content.match(/.*<script>Sfdump\\(\".+\"\\)<\\/script>/s)\n\n return [dump, content.replace(dump, '')]\n}\n\nexport function walkUpwards(el, callback) {\n let current = el\n\n while (current) {\n let stop = undefined\n\n callback(current, { stop: (value) => value === undefined ? stop = current : stop = value })\n\n if (stop !== undefined) return stop\n\n if (current._x_teleportBack) current = current._x_teleportBack\n\n current = current.parentElement\n }\n}\n\nexport function walkBackwards(el, callback) {\n let current = el\n\n while (current) {\n let stop = undefined\n\n callback(current, { stop: (value) => value === undefined ? stop = current : stop = value })\n\n if (stop !== undefined) return stop\n\n current = current.previousSibling\n }\n}\n", "import { getCsrfToken } from '@/utils';\n\nlet uploadManagers = new WeakMap\n\nfunction getUploadManager(component) {\n if (! uploadManagers.has(component)) {\n let manager = new UploadManager(component)\n\n uploadManagers.set(component, manager)\n\n manager.registerListeners()\n }\n\n return uploadManagers.get(component)\n}\n\nexport function handleFileUpload(el, property, component, cleanup) {\n let manager = getUploadManager(component)\n\n let start = () => el.dispatchEvent(new CustomEvent('livewire-upload-start', { bubbles: true, detail: { id: component.id, property} }))\n let finish = () => el.dispatchEvent(new CustomEvent('livewire-upload-finish', { bubbles: true, detail: { id: component.id, property} }))\n let error = () => el.dispatchEvent(new CustomEvent('livewire-upload-error', { bubbles: true, detail: { id: component.id, property} }))\n let cancel = () => el.dispatchEvent(new CustomEvent('livewire-upload-cancel', { bubbles: true, detail: { id: component.id, property} }))\n let progress = (progressEvent) => {\n var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total )\n\n el.dispatchEvent(\n new CustomEvent('livewire-upload-progress', {\n bubbles: true, detail: { progress: percentCompleted }\n })\n )\n }\n\n let eventHandler = e => {\n if (e.target.files.length === 0) return\n\n start()\n\n if (e.target.multiple) {\n manager.uploadMultiple(property, e.target.files, finish, error, progress, cancel)\n } else {\n manager.upload(property, e.target.files[0], finish, error, progress, cancel)\n }\n }\n\n el.addEventListener('change', eventHandler)\n\n // If the Livewire property has changed to null or an empty string, then reset the input...\n component.$wire.$watch(property, (value) => {\n // This watch will only be released when the component is removed. However, the\n // actual file-upload element may be removed from the DOM withou the entire\n // component being removed. In this case, let's just bail early on this.\n if (! el.isConnected) return\n\n if (value === null || value === '') {\n el.value = ''\n }\n \n // If the file input is a multiple file input and the value has been reset to an empty array, then reset the input...\n if (el.multiple && Array.isArray(value) && value.length === 0) {\n el.value = ''\n }\n })\n\n // There's a bug in browsers where selecting a file, removing it,\n // then re-adding it doesn't fire the change event. This fixes it.\n // Reference: https://stackoverflow.com/questions/12030686/html-input-file-selection-event-not-firing-upon-selecting-the-same-file\n let clearFileInputValue = () => { el.value = null }\n el.addEventListener('click', clearFileInputValue)\n\n // Clear the input if the uploaded is cancelled...\n el.addEventListener('livewire-upload-cancel', clearFileInputValue)\n\n cleanup(() => {\n el.removeEventListener('change', eventHandler)\n el.removeEventListener('click', clearFileInputValue)\n })\n}\n\nclass UploadManager {\n constructor(component) {\n this.component = component\n this.uploadBag = new MessageBag\n this.removeBag = new MessageBag\n }\n\n registerListeners() {\n this.component.$wire.$on('upload:generatedSignedUrl', ({ name, url }) => {\n // We have to add reduntant \"setLoading\" calls because the dom-patch\n // from the first response will clear the setUploadLoading call\n // from the first upload call.\n setUploadLoading(this.component, name)\n\n this.handleSignedUrl(name, url)\n })\n\n this.component.$wire.$on('upload:generatedSignedUrlForS3', ({ name, payload }) => {\n setUploadLoading(this.component, name)\n\n this.handleS3PreSignedUrl(name, payload)\n })\n\n this.component.$wire.$on('upload:finished', ({ name, tmpFilenames }) => this.markUploadFinished(name, tmpFilenames))\n this.component.$wire.$on('upload:errored', ({ name }) => this.markUploadErrored(name))\n this.component.$wire.$on('upload:removed', ({ name, tmpFilename }) => this.removeBag.shift(name).finishCallback(tmpFilename))\n }\n\n upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback) {\n this.setUpload(name, {\n files: [file],\n multiple: false,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append: false,\n })\n }\n\n uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback, append = true) {\n this.setUpload(name, {\n files: Array.from(files),\n multiple: true,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append,\n })\n }\n\n removeUpload(name, tmpFilename, finishCallback) {\n this.removeBag.push(name, {\n tmpFilename, finishCallback\n })\n\n this.component.$wire.call('_removeUpload', name, tmpFilename);\n }\n\n setUpload(name, uploadObject) {\n this.uploadBag.add(name, uploadObject)\n\n if (this.uploadBag.get(name).length === 1) {\n this.startUpload(name, uploadObject)\n }\n }\n\n handleSignedUrl(name, url) {\n let formData = new FormData()\n Array.from(this.uploadBag.first(name).files).forEach(file => formData.append('files[]', file, file.name))\n\n let headers = {\n 'Accept': 'application/json',\n }\n\n let csrfToken = getCsrfToken()\n\n if (csrfToken) headers['X-CSRF-TOKEN'] = csrfToken\n\n this.makeRequest(name, formData, 'post', url, headers, response => {\n return response.paths\n })\n }\n\n handleS3PreSignedUrl(name, payload) {\n let formData = this.uploadBag.first(name).files[0]\n\n let headers = payload.headers\n if ('Host' in headers) delete headers.Host\n let url = payload.url\n\n this.makeRequest(name, formData, 'put', url, headers, response => {\n return [payload.path]\n })\n }\n\n makeRequest(name, formData, method, url, headers, retrievePaths) {\n let request = new XMLHttpRequest()\n\n request.open(method, url)\n\n Object.entries(headers).forEach(([key, value]) => {\n request.setRequestHeader(key, value)\n })\n\n request.upload.addEventListener('progress', e => {\n e.detail = {}\n e.detail.progress = Math.floor((e.loaded * 100) / e.total)\n\n this.uploadBag.first(name).progressCallback(e)\n })\n\n request.addEventListener('load', () => {\n if ((request.status+'')[0] === '2') {\n let paths = retrievePaths(request.response && JSON.parse(request.response))\n\n this.component.$wire.call('_finishUpload', name, paths, this.uploadBag.first(name).multiple, this.uploadBag.first(name).append)\n\n return\n }\n\n let errors = null\n\n if (request.status === 422) {\n errors = request.response\n }\n\n this.component.$wire.call('_uploadErrored', name, errors, this.uploadBag.first(name).multiple)\n })\n\n request.addEventListener('error', () => {\n this.component.$wire.call('_uploadErrored', name, null, this.uploadBag.first(name).multiple)\n })\n\n this.uploadBag.first(name).request = request\n\n request.send(formData)\n }\n\n startUpload(name, uploadObject) {\n let fileInfos = uploadObject.files.map(file => {\n return { name: file.name, size: file.size, type: file.type }\n })\n\n this.component.$wire.call('_startUpload', name, fileInfos, uploadObject.multiple);\n\n setUploadLoading(this.component, name)\n }\n\n markUploadFinished(name, tmpFilenames) {\n unsetUploadLoading(this.component)\n\n let uploadObject = this.uploadBag.shift(name)\n uploadObject.finishCallback(uploadObject.multiple ? tmpFilenames : tmpFilenames[0])\n\n if (this.uploadBag.get(name).length > 0) this.startUpload(name, this.uploadBag.last(name))\n }\n\n markUploadErrored(name) {\n unsetUploadLoading(this.component)\n\n this.uploadBag.shift(name).errorCallback()\n\n if (this.uploadBag.get(name).length > 0) this.startUpload(name, this.uploadBag.last(name))\n }\n\n cancelUpload(name, cancelledCallback = null) {\n unsetUploadLoading(this.component)\n\n let uploadItem = this.uploadBag.first(name);\n\n if (uploadItem) {\n if (uploadItem.request) {\n uploadItem.request.abort();\n }\n\n this.uploadBag.shift(name).cancelledCallback();\n\n if (cancelledCallback) cancelledCallback()\n }\n }\n}\n\nexport default class MessageBag {\n constructor() {\n this.bag = {}\n }\n\n add(name, thing) {\n if (! this.bag[name]) {\n this.bag[name] = []\n }\n\n this.bag[name].push(thing)\n }\n\n push(name, thing) {\n this.add(name, thing)\n }\n\n first(name) {\n if (! this.bag[name]) return null\n\n return this.bag[name][0]\n }\n\n last(name) {\n return this.bag[name].slice(-1)[0]\n }\n\n get(name) {\n return this.bag[name]\n }\n\n shift(name) {\n return this.bag[name].shift()\n }\n\n call(name, ...params) {\n (this.listeners[name] || []).forEach(callback => {\n callback(...params)\n })\n }\n\n has(name) {\n return Object.keys(this.listeners).includes(name)\n }\n}\n\nfunction setUploadLoading() {\n // @todo\n}\n\nfunction unsetUploadLoading() {\n // @todo\n}\n\nexport function upload(\n component,\n name,\n file,\n finishCallback = () => { },\n errorCallback = () => { },\n progressCallback = () => { },\n cancelledCallback = () => { },\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.upload(\n name,\n file,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n )\n}\n\nexport function uploadMultiple(\n component,\n name,\n files,\n finishCallback = () => { },\n errorCallback = () => { },\n progressCallback = () => { },\n cancelledCallback = () => { },\n append = true,\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.uploadMultiple(\n name,\n files,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append,\n )\n}\n\nexport function removeUpload(\n component,\n name,\n tmpFilename,\n finishCallback = () => { },\n errorCallback = () => { }\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.removeUpload(\n name,\n tmpFilename,\n finishCallback,\n errorCallback\n )\n}\n\nexport function cancelUpload(\n component,\n name,\n cancelledCallback = () => { }\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.cancelUpload(\n name,\n cancelledCallback\n )\n}\n", "import Alpine from 'alpinejs'\n\nexport function generateEntangleFunction(component, cleanup) {\n if (! cleanup) cleanup = () => {}\n\n return (name, live = false) => {\n let isLive = live\n let livewireProperty = name\n let livewireComponent = component.$wire\n let livewirePropertyValue = livewireComponent.get(livewireProperty)\n\n let interceptor = Alpine.interceptor((initialValue, getter, setter, path, key) => {\n // Check to see if the Livewire property exists and if not log a console error\n // and return so everything else keeps running.\n if (typeof livewirePropertyValue === 'undefined') {\n console.error(`Livewire Entangle Error: Livewire property ['${livewireProperty}'] cannot be found on component: ['${component.name}']`)\n return\n }\n\n let release = Alpine.entangle({\n // Outer scope...\n get() {\n return livewireComponent.get(name)\n },\n set(value) {\n livewireComponent.set(name, value, isLive)\n }\n }, {\n // Inner scope...\n get() {\n return getter()\n },\n set(value) {\n setter(value)\n }\n })\n\n cleanup(() => release())\n\n return cloneIfObject(livewireComponent.get(name))\n }, obj => {\n Object.defineProperty(obj, 'live', {\n get() {\n isLive = true\n\n return obj\n }\n })\n })\n\n return interceptor(livewirePropertyValue)\n }\n}\n\nfunction cloneIfObject(value) {\n return typeof value === 'object'\n ? JSON.parse(JSON.stringify(value))\n : value\n}\n", "import { cancelUpload, removeUpload, upload, uploadMultiple } from './features/supportFileUploads'\nimport { dispatch, dispatchEl, dispatchRef, dispatchSelf, dispatchTo, listen } from '@/events'\nimport { generateEntangleFunction } from '@/features/supportEntangle'\nimport { findComponentByEl } from '@/store'\nimport { dataGet, dataSet } from '@/utils'\nimport Alpine from 'alpinejs'\nimport { on as hook } from './hooks'\nimport { fireAction, setNextActionMetadata, interceptComponentAction, interceptComponentMessage, interceptComponentRequest } from '@/request'\nimport { getErrorsObject } from '@/features/supportErrors'\nimport { findRefEl } from '@/features/supportRefs'\nimport { checkDirty } from './directives/wire-dirty'\nimport { assetIsPendingFor, runAfterAssetIsLoadedFor } from './features/supportJsModules'\n\nlet properties = {}\nlet fallback\n\nfunction wireProperty(name, callback, component = null) {\n properties[name] = callback\n}\n\nfunction wireFallback(callback) {\n fallback = callback\n}\n\n// For V2 backwards compatibility...\n// And I actually like both depending on the scenario...\nlet aliases = {\n 'on': '$on',\n 'el': '$el',\n 'id': '$id',\n 'js': '$js',\n 'get': '$get',\n 'set': '$set',\n 'refs': '$refs',\n 'call': '$call',\n 'hook': '$hook',\n 'watch': '$watch',\n 'dirty': '$dirty',\n 'effect': '$effect',\n 'commit': '$commit',\n 'errors': '$errors',\n 'island': '$island',\n 'upload': '$upload',\n 'entangle': '$entangle',\n 'dispatch': '$dispatch',\n 'intercept': '$intercept',\n 'interceptAction': '$interceptAction',\n 'interceptMessage': '$interceptMessage',\n 'interceptRequest': '$interceptRequest',\n 'dispatchTo': '$dispatchTo',\n 'dispatchSelf': '$dispatchSelf',\n 'dispatchEl': '$dispatchEl',\n 'dispatchRef': '$dispatchRef',\n 'removeUpload': '$removeUpload',\n 'cancelUpload': '$cancelUpload',\n 'uploadMultiple': '$uploadMultiple',\n}\n\nexport function generateWireObject(component, state) {\n let isScoped = false\n\n return new Proxy({}, {\n get(target, property) {\n if (property === '__instance') return component\n\n if (property in aliases) {\n return getProperty(component, aliases[property])\n } else if (property in properties) {\n return getProperty(component, property)\n } else if (property in state) {\n return state[property]\n } else if (property === 'toJSON') {\n // Tools like Laravel Boost call JSON.stringify() on objects\n // (e.g. for browser console logging). Without this, the Proxy\n // fallback would send \"toJSON\" as a server-side method call,\n // throwing a MethodNotFoundException.\n return () => component.toJSON()\n } else if (! ['then'].includes(property)) {\n return getFallback(component)(property)\n }\n },\n\n set(target, property, value) {\n if (property in state) {\n state[property] = value\n }\n\n return true\n },\n })\n}\n\nfunction getProperty(component, name) {\n return properties[name](component)\n}\n\nfunction getFallback(component) {\n return fallback(component)\n}\n\nAlpine.magic('wire', (el, { cleanup }) => {\n // Purposely initializing an empty variable here is a \"memo\"\n // so that a component is lazy-loaded when using $wire from Alpine...\n let component\n\n // Override $wire methods that need to be cleaned up when\n // and element is removed. For example, `x-data=\"{ foo: $wire.entangle(...) }\"`:\n // we would want the entangle effect freed if the element was removed from the DOM...\n return new Proxy({}, {\n get(target, property) {\n if (! component) {\n try {\n component = findComponentByEl(el)\n } catch (e) {\n return () => {}\n }\n }\n\n if (['$entangle', 'entangle'].includes(property)) {\n return generateEntangleFunction(component, cleanup)\n }\n\n return component.$wire[property]\n },\n\n set(target, property, value) {\n if (! component) {\n try {\n component = findComponentByEl(el)\n } catch (e) {\n return true\n }\n }\n\n component.$wire[property] = value\n\n return true\n },\n })\n})\n\nwireProperty('__instance', (component) => component)\n\nwireProperty('$get', (component) => (property, reactive = true) => dataGet(reactive ? component.reactive : component.ephemeral, property))\n\nwireProperty('$el', (component) => {\n return component.el\n})\n\nwireProperty('$id', (component) => {\n return component.id\n})\n\nwireProperty('$js', (component) => {\n let fn = component.addJsAction.bind(component)\n\n let jsActions = component.getJsActions()\n\n Object.keys(jsActions).forEach((name) => {\n fn[name] = jsActions[name]\n })\n\n return new Proxy(fn, {\n set(target, property, value) {\n component.addJsAction(property, value)\n\n return true\n },\n get(target, property) {\n // Scripts in view-based components are imported dynamically,\n // which means they run asynchronously. This causes issues with\n // things like wire:text=\"$js.foo()\" not being available on page load.\n // To patch this, we return a promise that resolves the $js action\n // after the script is fully imported and executed...\n if (assetIsPendingFor(component)) {\n let resolver = null\n\n let promise = new Promise((resolve) => {\n resolver = resolve\n })\n\n return (...params) => {\n runAfterAssetIsLoadedFor(component, () => {\n resolver(component.getJsAction(property)(...params))\n })\n\n return promise\n }\n }\n\n return target[property]\n }\n })\n})\n\nwireProperty('$set', (component) => async (property, value, live = true) => {\n dataSet(component.reactive, property, value)\n\n // If \"live\", send a request, queueing the property update to happen first\n // on the server, then trickle back down to the client and get merged...\n if (live) {\n component.queueUpdate(property, value)\n\n return fireAction(component, '$set')\n }\n\n return Promise.resolve()\n})\n\nwireProperty('$refs', (component) => {\n let fn = (name) => findRefEl(component, name)\n\n return new Proxy(fn, {\n get(target, property) {\n if (property in target) {\n return target[property]\n }\n\n return fn(property)\n }\n })\n})\n\nwireProperty('$dirty', (component) => (property) => {\n let reactive = Alpine.reactive({ dirty: false })\n\n interceptComponentMessage(component, ({ onFinish }) => {\n onFinish(() => {\n queueMicrotask(() => {\n reactive.dirty = checkDirty(component, property)\n })\n })\n })\n\n Alpine.effect(() => {\n reactive.dirty = checkDirty(component, property)\n })\n\n return reactive.dirty\n})\n\nwireProperty('$intercept', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentAction(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptAction', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentAction(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptMessage', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentMessage(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptRequest', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentRequest(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$errors', (component) => getErrorsObject(component))\n\nwireProperty('$call', (component) => async (method, ...params) => {\n return await component.$wire[method](...params)\n})\n\nwireProperty('$island', (component) => (name, options = {}) => {\n setNextActionMetadata({ island: { name, mode: 'morph', ...options } })\n\n return component.$wire\n})\n\nwireProperty('$entangle', (component) => (name, live = false) => {\n return generateEntangleFunction(component)(name, live)\n})\n\nwireProperty('$toggle', (component) => (name, live = true) => {\n return component.$wire.set(name, ! component.$wire.get(name), live)\n})\n\nwireProperty('$watch', (component) => (path, callback) => {\n let getter = () => {\n return dataGet(component.reactive, path)\n }\n\n let unwatch = Alpine.watch(getter, callback)\n\n component.addCleanup(unwatch)\n\n return unwatch\n})\n\nwireProperty('$effect', (component) => (callback) => {\n let effect = Alpine.effect(callback)\n\n component.addCleanup(effect)\n\n return effect\n})\n\nwireProperty('$refresh', (component) => async () => {\n return fireAction(component, '$refresh')\n})\n\nwireProperty('$commit', (component) => async () => {\n return fireAction(component, '$commit')\n})\n\nwireProperty('$on', (component) => (...params) => listen(component, ...params))\n\nwireProperty('$hook', (component) => (name, callback) => {\n let unhook = hook(name, ({component: hookComponent, ...params}) => {\n // Request level hooks don't have a component, so just run the callback\n if (hookComponent === undefined) return callback(params)\n\n // Run the callback if the component in the hook matches the $wire component\n if (hookComponent.id === component.id) return callback({component: hookComponent, ...params})\n })\n\n component.addCleanup(unhook)\n\n // Return the unhook function so it can be called manually if needed\n return unhook\n})\n\nwireProperty('$dispatch', (component) => (...params) => dispatch(component, ...params))\nwireProperty('$dispatchSelf', (component) => (...params) => dispatchSelf(component, ...params))\nwireProperty('$dispatchTo', () => (...params) => dispatchTo(...params))\nwireProperty('$dispatchEl', (component) => (...params) => dispatchEl(component, ...params))\nwireProperty('$dispatchRef', (component) => (...params) => dispatchRef(component, ...params))\nwireProperty('$upload', (component) => (...params) => upload(component, ...params))\nwireProperty('$uploadMultiple', (component) => (...params) => uploadMultiple(component, ...params))\nwireProperty('$removeUpload', (component) => (...params) => removeUpload(component, ...params))\nwireProperty('$cancelUpload', (component) => (...params) => cancelUpload(component, ...params))\n\nlet parentMemo = new WeakMap\n\nwireProperty('$parent', component => {\n if (parentMemo.has(component)) return parentMemo.get(component).$wire\n\n let parent = findComponentByEl(component.el.parentElement, false)\n\n if (! parent) return\n\n parentMemo.set(component, parent)\n\n return parent.$wire\n})\n\nlet overriddenMethods = new WeakMap\n\nexport function overrideMethod(component, method, callback) {\n if (! overriddenMethods.has(component)) {\n overriddenMethods.set(component, {})\n }\n\n let obj = overriddenMethods.get(component)\n\n obj[method] = callback\n\n overriddenMethods.set(component, obj)\n}\n\nwireFallback((component) => (property) => (...params) => {\n // If this method is passed directly to a Vue or Alpine\n // event listener (@click=\"someMethod\") without using\n // parens, strip out the automatically added event.\n if (params.length === 1 && params[0] instanceof Event) {\n params = []\n }\n\n if (overriddenMethods.has(component)) {\n let overrides = overriddenMethods.get(component)\n\n if (typeof overrides[property] === 'function') {\n return overrides[property](params)\n }\n }\n\n return fireAction(component, property, params)\n})\n", "import { isFunction } from '@/utils'\n\n/**\n * Our internal event listener bus...\n */\nlet listeners = []\n\n/**\n * Register a callback to run when an event is triggered...\n */\nexport function on(name, callback) {\n if (! listeners[name]) listeners[name] = []\n\n listeners[name].push(callback)\n\n // Return an \"off\" callback to remove the listener...\n return () => {\n listeners[name] = listeners[name].filter(i => i !== callback)\n }\n}\n\n/**\n * In addition to triggering an event, this method allows you to\n * defer running callbacks returned from listeners and pass a\n * value through each one so they can act like middleware.\n *\n * An example of using this combination to the fullest:\n *\n * // First let's look at the triggering phase:\n * let finish = trigger([event name], ...[event params])\n *\n * return finish([pass-through value])\n *\n * // Now, let's look at the \"listening\" phase:\n * on([event name], (...[event params]) => {\n * // The contents of this callback will be run immediately on trigger.\n *\n * return ([pass-through value]) => {\n * // This callback will be run when \"finish()\" is called.\n *\n * // The [pass-through value] can be mutated and must\n * // be returned for the next callback to process.\n * return [pass-through value]\n * }\n * })\n */\nexport function trigger(name, ...params) {\n let callbacks = listeners[name] || []\n\n let finishers = []\n\n for (let i = 0; i < callbacks.length; i++) {\n let finisher = callbacks[i](...params)\n\n if (isFunction(finisher)) finishers.push(finisher)\n }\n\n return (result) => {\n return runFinishers(finishers, result)\n }\n}\n\nexport async function triggerAsync(name, ...params) {\n let callbacks = listeners[name] || []\n\n let finishers = []\n\n for (let i = 0; i < callbacks.length; i++) {\n let finisher = await callbacks[i](...params)\n\n if (isFunction(finisher)) finishers.push(finisher)\n }\n\n return (result) => {\n return runFinishers(finishers, result)\n }\n}\n\nexport function runFinishers(finishers, result)\n{\n let latest = result\n\n for (let i = 0; i < finishers.length; i++) {\n let iResult = finishers[i](latest)\n\n if (iResult !== undefined) {\n latest = iResult\n }\n }\n\n return latest\n}\n", "import { constructAction, createOrAddToOutstandingMessage, interceptAction, interceptPartition } from '@/request'\n\nexport function coordinateNetworkInteractions(messageBus) {\n // Handle isolated components...\n interceptPartition(({ message, compileRequest }) => {\n if (! message.component.isIsolated) return\n\n compileRequest([message])\n })\n\n // Handle lazy components...\n interceptPartition(({ message, compileRequest }) => {\n if (\n message.component.isLazy &&\n ! message.component.hasBeenLazyLoaded &&\n message.component.isLazyIsolated\n ) {\n compileRequest([message])\n }\n })\n\n // Handle modelable/reactive components...\n interceptPartition(({ message, compileRequest }) => {\n let component = message.component\n\n let bundledMessages = []\n\n component.getDeepChildrenWithBindings(child => {\n let action = constructAction(child, '$commit')\n let message = createOrAddToOutstandingMessage(action)\n\n bundledMessages.push(message)\n })\n\n if (bundledMessages.length > 0) {\n compileRequest([message, ...bundledMessages])\n }\n })\n\n // If a request is in-flight, queue up the action to fire after the in-flight request has finished...\n interceptAction(({ action }) => {\n // Wire:click.renderless\n let isRenderless = action?.origin?.directive?.modifiers.includes('renderless')\n if (isRenderless) {\n action.metadata.renderless = true\n }\n\n let message = messageBus.activeMessageMatchingScope(action)\n\n if (message) {\n // Wire:click.async:\n // - allow async actions incoming to pass through...\n // - if active message actions are async, allow the incoming async action to pass through as well...\n if (message.isAsync() || action.isAsync()) return\n\n // Wire:poll:\n // - Throw away new polls if a request of any kind is in-flight...\n if (action.metadata.type === 'poll') {\n return action.cancel()\n }\n\n // Wire:poll:\n // - Cancel in-flight polls to prioritize the new poll...\n if (Array.from(message.actions).every(action => action.metadata.type === 'poll')) {\n return message.cancel()\n }\n\n // Wire:model.live:\n // - If both incoming and outgoing requests are model.live, let them run in parallel...\n if (Array.from(message.actions).every(action => action.metadata.type === 'model.live')) {\n if (action.metadata.type === 'model.live') {\n return\n }\n }\n\n action.defer()\n\n message.addInterceptor(({ onFinish }) => {\n onFinish(() => action.fire())\n })\n }\n })\n}\n", "\nexport class MessageRequest {\n messages = new Set()\n controller = new AbortController()\n interceptors = []\n cancelled = false\n uri = null\n payload = null\n options = null\n\n addMessage(message) {\n message.setRequest(this)\n\n this.messages.add(message)\n }\n\n getActiveMessages() {\n return new Set([...this.messages].filter(message => ! message.isCancelled()))\n }\n\n initInterceptors(interceptorRegistry) {\n this.interceptors = interceptorRegistry.getRequestInterceptors(this)\n\n this.messages.forEach(message => {\n let messageInterceptors = interceptorRegistry.getMessageInterceptors(message)\n\n message.setInterceptors(messageInterceptors)\n })\n\n this.interceptors.forEach(interceptor => interceptor.init())\n\n this.messages.forEach(message => {\n message.getInterceptors().forEach(interceptor => interceptor.init())\n })\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.controller.abort()\n\n this.messages.forEach(message => {\n if (message.isCancelled()) return\n\n message.cancel()\n })\n }\n\n hasAllCancelledMessages() {\n return this.getActiveMessages().size === 0\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n /**\n * Lifecycle methods\n */\n invokeOnSend({ responsePromise }) {\n this.interceptors.forEach(interceptor => interceptor.onSend({ responsePromise }))\n\n this.messages.forEach(message => message.invokeOnSend())\n }\n\n invokeOnCancel() {\n this.interceptors.forEach(interceptor => interceptor.onCancel())\n }\n\n invokeOnFailure({ error }) {\n this.interceptors.forEach(interceptor => interceptor.onFailure({ error }))\n\n this.messages.forEach(message => message.invokeOnFailure(error))\n }\n\n invokeOnResponse({ response }) {\n this.interceptors.forEach(interceptor => interceptor.onResponse({ response }))\n }\n\n invokeOnStream({ response }) {\n this.interceptors.forEach(interceptor => interceptor.onStream({ response }))\n }\n\n invokeOnParsed({ response, body }) {\n this.interceptors.forEach(interceptor => interceptor.onParsed({ response, body }))\n }\n\n\n invokeOnRedirect({ url, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onRedirect({ url, preventDefault }))\n }\n\n invokeOnDump({ html, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onDump({ html, preventDefault }))\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onError({ response, body, preventDefault }))\n\n this.messages.forEach(message => message.invokeOnError({ response, body, preventDefault }))\n }\n\n invokeOnSuccess({ response, body, json }) {\n this.interceptors.forEach(interceptor => interceptor.onSuccess({ response, body, json }))\n }\n\n invokeOnFinish() {\n this.interceptors.forEach(interceptor => interceptor.onFinish())\n }\n}\n\nexport class PageRequest {\n controller = new AbortController()\n\n constructor(uri) {\n this.uri = uri\n }\n\n cancel() {\n this.controller.abort()\n }\n\n isCancelled() {\n return this.controller.signal.aborted\n }\n}\n", "import { WeakBag } from \"@/utils\"\n\nexport class MessageInterceptor {\n onSend = () => {}\n onCancel = () => {}\n onFailure = () => {}\n onError = () => {}\n onStream = () => {}\n onSuccess = () => {}\n onSkipped = () => {}\n onFinish = () => {}\n onSync = () => {}\n onEffect = () => {}\n onMorph = async () => {}\n onRender = () => {}\n\n constructor(message, callback) {\n this.message = message\n this.callback = callback\n\n this.callback({\n message: this.message,\n cancel: () => {\n // If we're not yet attached to the message's interceptors,\n // call our own onCancel since message.invokeOnCancel() won't reach us\n let attachedToMessage = this.message.getInterceptors().includes(this)\n\n if (!attachedToMessage) {\n this.onCancel()\n }\n\n this.message.cancel()\n },\n onSend: (callback) => this.onSend = callback,\n onCancel: (callback) => this.onCancel = callback,\n onFailure: (callback) => this.onFailure = callback,\n onError: (callback) => this.onError = callback,\n onStream: (callback) => this.onStream = callback,\n onSuccess: (callback) => this.onSuccess = callback,\n onSkipped: (callback) => this.onSkipped = callback,\n onFinish: (callback) => this.onFinish = callback,\n })\n }\n\n init() {\n // Reserved for future use\n }\n}\n\nexport class RequestInterceptor {\n onSend = () => {}\n onCancel = () => {}\n onFailure = () => {}\n onResponse = () => {}\n onParsed = () => {}\n onError = () => {}\n onStream = () => {}\n onRedirect = () => {}\n onDump = () => {}\n onSuccess = () => {}\n onFinish = () => {}\n\n constructor(request, callback) {\n this.request = request\n this.callback = callback\n\n this.callback({\n request: this.request,\n onSend: (callback) => this.onSend = callback,\n onCancel: (callback) => this.onCancel = callback,\n onFailure: (callback) => this.onFailure = callback,\n onResponse: (callback) => this.onResponse = callback,\n onParsed: (callback) => this.onParsed = callback,\n onError: (callback) => this.onError = callback,\n onStream: (callback) => this.onStream = callback,\n onRedirect: (callback) => this.onRedirect = callback,\n onDump: (callback) => this.onDump = callback,\n onSuccess: (callback) => this.onSuccess = callback,\n onFinish: (callback) => this.onFinish = callback,\n })\n }\n\n init() {\n // Reserved for future use\n }\n}\n\nexport class InterceptorRegistry {\n messageInterceptorCallbacks = []\n messageInterceptorCallbacksByComponent = new WeakBag\n requestInterceptorCallbacks = []\n\n addInterceptor(component, callback) {\n this.messageInterceptorCallbacksByComponent.add(component, callback)\n\n return () => {\n this.messageInterceptorCallbacksByComponent.delete(component, callback)\n }\n }\n\n addMessageInterceptor(callback) {\n this.messageInterceptorCallbacks.push(callback)\n\n return () => {\n this.messageInterceptorCallbacks.splice(this.messageInterceptorCallbacks.indexOf(callback), 1)\n }\n }\n\n addRequestInterceptor(callback) {\n this.requestInterceptorCallbacks.push(callback)\n\n return () => {\n this.requestInterceptorCallbacks.splice(this.requestInterceptorCallbacks.indexOf(callback), 1)\n }\n }\n\n getMessageInterceptors(message) {\n let callbacks = [\n ...this.messageInterceptorCallbacksByComponent.get(message.component),\n ...this.messageInterceptorCallbacks,\n ]\n\n return callbacks.map(callback => {\n return new MessageInterceptor(message, callback)\n })\n }\n\n getRequestInterceptors(request) {\n return this.requestInterceptorCallbacks.map(callback => {\n return new RequestInterceptor(request, callback)\n })\n }\n}", "\n// This code and concept is all Jonathan Reinink - thanks man!\nexport function showHtmlModal(html) {\n let page = document.createElement('html')\n page.innerHTML = html\n page.querySelectorAll('a').forEach(a =>\n a.setAttribute('target', '_top')\n )\n\n let modal = document.getElementById('livewire-error')\n\n if (typeof modal != 'undefined' && modal != null) {\n // Modal already exists.\n modal.innerHTML = ''\n } else {\n modal = document.createElement('dialog')\n modal.id = 'livewire-error'\n modal.style.margin = '50px'\n modal.style.width = 'calc(100% - 100px)'\n modal.style.height = 'calc(100% - 100px)'\n modal.style.borderRadius = '5px'\n modal.style.padding = '0px'\n // Background color is set on the ::backdrop in Livewire's styles...\n }\n\n let iframe = document.createElement('iframe')\n iframe.style.backgroundColor = '#17161A'\n iframe.style.borderRadius = '5px'\n iframe.style.width = '100%'\n iframe.style.height = '100%'\n modal.appendChild(iframe)\n\n document.body.prepend(modal)\n document.body.style.overflow = 'hidden'\n iframe.contentWindow.document.open()\n iframe.contentWindow.document.write(page.outerHTML)\n iframe.contentWindow.document.close()\n\n // Close on click...\n modal.addEventListener('click', () => hideHtmlModal(modal))\n\n // Clean up on dialog close. This ensures that the modal dialog captures the escape\n // event first, so that dialog elements below it do not capture the event, before\n // we clean up and remove the modal from the DOM...\n modal.addEventListener('close', () => cleanupModal(modal))\n\n // Show the modal and focus it to ensure that the escape key works, otherwise it'll \n // be captured by the iframe, then blur so the modal focus ring isn't visible...\n modal.showModal()\n modal.focus()\n modal.blur()\n}\n\n// We don't want to clean up in here anymore because we're using the close \n// event to trigger the cleanup. This function is kept here to maintain \n// backwards compatibility as it is an exported function...\nexport function hideHtmlModal(modal) {\n modal.close()\n}\n\nfunction cleanupModal(modal) {\n modal.outerHTML = ''\n document.body.style.overflow = 'visible'\n}\n", "\nlet componentSymbols = new WeakMap\nlet componentIslandSymbols = new WeakMap\n\nexport function scopeSymbolFromMessage(message) {\n let component = message.component\n\n let hasAllIslands = Array.from(message.actions).every(action => action.metadata.island)\n\n if (hasAllIslands) {\n let islandName = Array.from(message.actions).map(action => action.metadata.island.name).sort().join('|')\n\n let islandSymbols = componentIslandSymbols.get(component)\n\n if (! islandSymbols) {\n islandSymbols = { [islandName]: Symbol() }\n\n componentIslandSymbols.set(component, islandSymbols)\n }\n\n if (! islandSymbols[islandName]) {\n islandSymbols[islandName] = Symbol()\n }\n\n return islandSymbols[islandName]\n }\n\n if (! componentSymbols.has(component)) {\n componentSymbols.set(component, Symbol())\n }\n\n return componentSymbols.get(component)\n}\n\nexport function scopeSymbolFromAction(action) {\n let component = action.component\n\n let isIsland = !! action.metadata.island\n\n if (isIsland) {\n let islandName = action.metadata.island.name\n\n let islandSymbols = componentIslandSymbols.get(component)\n\n if (! islandSymbols) {\n islandSymbols = { [islandName]: Symbol() }\n\n componentIslandSymbols.set(component, islandSymbols)\n }\n\n if (! islandSymbols[islandName]) {\n islandSymbols[islandName] = Symbol()\n }\n\n return islandSymbols[islandName]\n }\n\n if (! componentSymbols.has(component)) {\n componentSymbols.set(component, Symbol())\n }\n\n return componentSymbols.get(component)\n}\n\nexport class MessageBus {\n pendingMessages = new Set\n activeMessages = new Set\n bufferingMessages = new Set\n\n constructor() {\n //\n }\n\n messageBuffer(message, callback) {\n if (this.bufferingMessages.has(message)) {\n return\n }\n\n this.bufferingMessages.add(message)\n\n setTimeout(() => { // Buffer for 5ms to allow other areas of the codebase to hook into the lifecycle of an individual commit...\n callback()\n\n this.bufferingMessages.delete(message)\n }, 5)\n }\n\n addPendingMessage(message) {\n this.pendingMessages.add(message)\n }\n\n clearPendingMessages() {\n this.pendingMessages.clear()\n }\n\n getPendingMessages() {\n return Array.from(this.pendingMessages)\n }\n\n addActiveMessage(message) {\n this.activeMessages.add(message)\n }\n\n removeActiveMessage(message) {\n this.activeMessages.delete(message)\n }\n\n findScopedPendingMessage(action) {\n if (action.isAsync()) return null\n\n let actionScope = scopeSymbolFromAction(action)\n\n return Array.from(this.pendingMessages).find(message => {\n if (message.component !== action.component) return false\n\n // Check if any action in the message has the same scope\n return Array.from(message.actions).some(existingAction =>\n scopeSymbolFromAction(existingAction) === actionScope\n )\n })\n }\n\n activeMessageMatchingScope(action) {\n return Array.from(this.activeMessages).find(message => this.matchesScope(message, action))\n }\n\n matchesScope(message, action) {\n return message.scope === scopeSymbolFromAction(action)\n }\n\n allScopedMessages(action) {\n return [...Array.from(this.activeMessages), ...Array.from(this.pendingMessages)].filter(message => {\n return this.matchesScope(message, action)\n })\n }\n\n eachPendingMessage(callback) {\n Array.from(this.pendingMessages).forEach(callback)\n }\n}", "import { MessageInterceptor } from \"./interceptor\"\n\nexport default class Message {\n actions = new Set()\n snapshot = null\n updates = null\n calls = null\n payload = null\n responsePayload = null\n pendingReturns = []\n pendingReturnsMeta = {}\n interceptors = []\n cancelled = false\n skipped = false\n request = null\n _scope = null\n\n // Ensure scope isn't accessed until it's been set...\n get scope() {\n if (! this._scope) {\n throw new Error('Message scope has not been set yet')\n }\n\n return this._scope\n }\n\n set scope(scope) {\n this._scope = scope\n }\n\n constructor(component) {\n this.component = component\n }\n\n addAction(action) {\n let actionsByFingerprint = new Map()\n\n Array.from(this.actions).forEach(action => {\n actionsByFingerprint.set(action.fingerprint, action)\n })\n\n if (actionsByFingerprint.has(action.fingerprint)) {\n actionsByFingerprint.get(action.fingerprint).addSquashedAction(action)\n\n return\n }\n\n action.message = this\n this.actions.add(action)\n }\n\n removeAction(action) {\n this.actions.delete(action)\n action.message = null\n\n // If no actions remain, cancel the message\n if (this.actions.size === 0) {\n this.cancel()\n }\n }\n\n getActions() {\n return Array.from(this.actions)\n }\n\n hasActionForIsland(island) {\n return this.getActions().some(action => {\n return action.metadata.island?.name === island.metadata.name\n })\n }\n\n hasActionForComponent() {\n return this.getActions().some(action => {\n return action.metadata.island === undefined\n })\n }\n\n setInterceptors(interceptors) {\n this.interceptors = interceptors\n }\n\n addInterceptor(callback) {\n let interceptor = new MessageInterceptor(this, callback)\n\n this.interceptors.push(interceptor)\n\n interceptor.init()\n }\n\n setRequest(request) {\n this.request = request\n }\n\n getInterceptors() {\n return this.interceptors\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.invokeOnCancel()\n\n if (this.request?.hasAllCancelledMessages()) {\n this.request.cancel()\n }\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n markSkipped() {\n this.skipped = true\n }\n\n isSkipped() {\n return this.skipped\n }\n\n isAsync() {\n return Array.from(this.actions).every(action => action.isAsync())\n }\n\n /**\n * Lifecycle methods...\n */\n\n invokeOnSend() {\n this.interceptors.forEach(interceptor => interceptor.onSend({\n payload: this.payload\n }))\n\n // Invoke action-level onSend callbacks\n Array.from(this.actions).forEach((action, index) => {\n let call = this.calls[index]\n action.invokeOnSend({ call })\n })\n }\n\n invokeOnCancel() {\n this.interceptors.forEach(interceptor => interceptor.onCancel())\n\n this.rejectActionPromises({ status: null, body: null, json: null, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnFailure(error) {\n this.interceptors.forEach(interceptor => interceptor.onFailure({ error }))\n\n // Invoke action-level onFailure callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFailure({ error }))\n\n this.rejectActionPromises({ status: null, body: null, json: null, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onError({\n response,\n body,\n preventDefault\n }))\n\n // Invoke action-level onError callbacks\n Array.from(this.actions).forEach(action => action.invokeOnError({ response, body, preventDefault }))\n\n // Try to parse body as JSON for the rejection payload\n let json = null\n try { json = JSON.parse(body) } catch (e) {}\n\n this.rejectActionPromises({ status: response.status, body, json, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnStream({ json }) {\n this.interceptors.forEach(interceptor => interceptor.onStream({ json }))\n }\n\n invokeOnSuccess() {\n this.interceptors.forEach(interceptor => {\n interceptor.onSuccess({\n payload: this.responsePayload,\n onSync: callback => interceptor.onSync = callback,\n onEffect: callback => interceptor.onEffect = callback,\n onMorph: callback => interceptor.onMorph = callback,\n onRender: callback => interceptor.onRender = callback\n })\n })\n\n // Store returns for later resolution (after morph)\n this.pendingReturns = this.responsePayload.effects['returns'] || []\n this.pendingReturnsMeta = this.responsePayload.effects['returnsMeta'] || {}\n }\n\n invokeOnSync() {\n this.interceptors.forEach(interceptor => interceptor.onSync())\n }\n\n invokeOnEffect() {\n this.interceptors.forEach(interceptor => interceptor.onEffect())\n }\n\n async invokeOnMorph() {\n await Promise.all(\n this.interceptors.map(interceptor => interceptor.onMorph())\n )\n }\n\n invokeOnRender() {\n this.interceptors.forEach(interceptor => interceptor.onRender())\n }\n\n invokeOnFinish() {\n this.interceptors.forEach(interceptor => interceptor.onFinish())\n }\n\n invokeOnSkipped() {\n this.interceptors.forEach(interceptor => interceptor.onSkipped())\n\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n }\n\n rejectActionPromises({ status, body, json, errors }) {\n Array.from(this.actions).forEach(action => {\n action.rejectPromise({ status, body, json, errors })\n })\n }\n\n resolveActionPromises(returns, returnsMeta) {\n let resolvedActions = new Set()\n\n returns.forEach((value, index) => {\n let action = Array.from(this.actions)[index]\n\n if (! action) return;\n\n // Check for errors in returnsMeta\n let meta = returnsMeta[index]\n if (meta?.errors) {\n action.rejectPromise({ status: 422, body: null, json: null, errors: meta.errors })\n action.invokeOnFinish()\n resolvedActions.add(action)\n return\n }\n\n if (meta?.status) {\n action.rejectPromise({ status: meta.status, body: null, json: null, errors: null })\n action.invokeOnFinish()\n resolvedActions.add(action)\n return\n }\n\n // Invoke action-level onSuccess callback with the return value\n action.invokeOnSuccess(value)\n\n action.resolvePromise(value)\n\n // Invoke action-level onFinish callback\n action.invokeOnFinish()\n\n resolvedActions.add(action)\n })\n\n Array.from(this.actions).forEach(action => {\n if (resolvedActions.has(action)) return\n\n // Invoke action-level onSuccess callback (undefined return)\n action.invokeOnSuccess(undefined)\n\n action.resolvePromise()\n\n // Invoke action-level onFinish callback\n action.invokeOnFinish()\n })\n }\n}\n", "\nexport default class Action {\n squashedActions = new Set()\n\n // Interceptor callbacks\n onSendCallbacks = []\n onCancelCallbacks = []\n onSuccessCallbacks = []\n onErrorCallbacks = []\n onFailureCallbacks = []\n onFinishCallbacks = []\n\n // Reference to the message this action belongs to (set by message.addAction)\n message = null\n cancelled = false\n deferred = false\n\n // Set by constructAction() to avoid circular dependency\n _fire = null\n\n constructor(component, name, params = [], metadata = {}, origin = null) {\n this.component = component\n this.name = name\n this.params = params\n this.metadata = metadata\n this.origin = origin\n\n this.promise = new Promise((resolve, reject) => {\n this.promiseResolution = { resolve, reject }\n })\n\n this.promise._livewireAction = this\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.invokeOnCancel()\n this.invokeOnFinish()\n this.rejectPromise({ status: null, body: null, json: null, errors: null })\n\n // Also cancel squashed actions\n this.squashedActions.forEach(action => action.cancel())\n\n // Remove from message if attached\n if (this.message) {\n this.message.removeAction(this)\n }\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n defer() {\n this.deferred = true\n }\n\n isDeferred() {\n return this.deferred\n }\n\n fire() {\n if (this._fire) {\n this._fire(this)\n }\n }\n\n get fingerprint() {\n let componentId = this.component.id\n let name = this.name\n let params = JSON.stringify(this.params)\n let metadata = JSON.stringify(this.metadata)\n\n // btoa only supports Latin-1 characters, not UTF-8, so we need to encode the string first...\n let bytes = new TextEncoder().encode(componentId + name + params + metadata)\n\n // Process in chunks to avoid \"Maximum call stack size exceeded\" with large payloads\n // (e.g., 300KB+ base64 images). The spread operator in String.fromCharCode(...array)\n // fails when array length exceeds JS engine's argument limit (~125k elements).\n let binary = ''\n let chunkSize = 8192\n for (let i = 0; i < bytes.length; i += chunkSize) {\n binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize))\n }\n\n return window.btoa(binary)\n }\n\n isAsync() {\n let asyncMethods = this.component.snapshot.memo?.async || []\n\n let methodIsMarkedAsync = asyncMethods.includes(this.name)\n\n let actionIsAsync = this.origin?.directive?.modifiers.includes('async') || (!! this.metadata.async)\n\n return methodIsMarkedAsync || actionIsAsync\n }\n\n isJson() {\n let jsonMethods = this.component.snapshot.memo?.json || []\n\n return jsonMethods.includes(this.name)\n }\n\n addInterceptor(callback) {\n callback({\n action: this,\n onSend: (cb) => this.onSendCallbacks.push(cb),\n onCancel: (cb) => this.onCancelCallbacks.push(cb),\n onSuccess: (cb) => this.onSuccessCallbacks.push(cb),\n onError: (cb) => this.onErrorCallbacks.push(cb),\n onFailure: (cb) => this.onFailureCallbacks.push(cb),\n onFinish: (cb) => this.onFinishCallbacks.push(cb),\n })\n }\n\n // Lifecycle invocations\n invokeOnSend({ call }) {\n this.onSendCallbacks.forEach(cb => cb({ call }))\n this.squashedActions.forEach(action => action.invokeOnSend({ call }))\n }\n\n invokeOnCancel() {\n this.onCancelCallbacks.forEach(cb => cb())\n this.squashedActions.forEach(action => action.invokeOnCancel())\n }\n\n invokeOnSuccess(result) {\n this.onSuccessCallbacks.forEach(cb => cb(result))\n this.squashedActions.forEach(action => action.invokeOnSuccess(result))\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.onErrorCallbacks.forEach(cb => cb({ response, body, preventDefault }))\n this.squashedActions.forEach(action => action.invokeOnError({ response, body, preventDefault }))\n }\n\n invokeOnFailure({ error }) {\n this.onFailureCallbacks.forEach(cb => cb({ error }))\n this.squashedActions.forEach(action => action.invokeOnFailure({ error }))\n }\n\n invokeOnFinish() {\n this.onFinishCallbacks.forEach(cb => cb())\n this.squashedActions.forEach(action => action.invokeOnFinish())\n }\n\n mergeMetadata(metadata) {\n this.metadata = { ...this.metadata, ...metadata }\n }\n\n rejectPromise(error) {\n this.squashedActions.forEach(action => action.rejectPromise(error))\n\n this.promiseResolution.reject(error)\n }\n\n addSquashedAction(action) {\n this.squashedActions.add(action)\n }\n\n resolvePromise(value) {\n this.squashedActions.forEach(action => action.resolvePromise(value))\n this.promiseResolution.resolve(value)\n }\n}\n", "import { trigger } from '@/hooks.js'\n\nexport function registerLegacyEventSupport(interceptRequest, interceptMessage) {\n\n// Support legacy 'request' event...\ninterceptRequest(({\n request,\n onFailure,\n onResponse,\n onError,\n onSuccess,\n}) => {\n let respondCallbacks = []\n let succeedCallbacks = []\n let failCallbacks = []\n\n trigger('request', {\n url: request.uri,\n options: request.options,\n payload: request.options.body,\n respond: i => respondCallbacks.push(i),\n succeed: i => succeedCallbacks.push(i),\n fail: i => failCallbacks.push(i),\n })\n\n onResponse(({ response }) => {\n respondCallbacks.forEach(callback => callback({\n status: response.status,\n response,\n }))\n })\n\n onSuccess(({ response, json }) => {\n succeedCallbacks.forEach(callback => callback({\n status: response.status,\n json,\n }))\n })\n\n onFailure(({ error }) => {\n failCallbacks.forEach(callback => callback({\n status: 503,\n content: null,\n preventDefault: () => {},\n }))\n })\n\n onError(({ response, body, preventDefault }) => {\n failCallbacks.forEach(callback => callback({\n status: response.status,\n content: body,\n preventDefault,\n }))\n })\n})\n\n// Support legacy 'commit' event...\ninterceptMessage(({\n message,\n onCancel,\n onError,\n onSuccess,\n onFinish,\n}) => {\n // Allow other areas of the codebase to hook into the lifecycle\n // of an individual commit...\n let respondCallbacks = []\n let succeedCallbacks = []\n let failCallbacks = []\n\n trigger('commit', {\n component: message.component,\n commit: message.payload,\n respond: (callback) => {\n respondCallbacks.push(callback)\n },\n succeed: (callback) => {\n succeedCallbacks.push(callback)\n },\n fail: (callback) => {\n failCallbacks.push(callback)\n },\n })\n\n onFinish(() => {\n respondCallbacks.forEach(callback => callback())\n })\n\n onSuccess(({ payload, onSync, onMorph, onRender }) => {\n onRender(() => {\n succeedCallbacks.forEach(callback => callback({\n snapshot: payload.snapshot,\n effects: payload.effects,\n }))\n })\n })\n\n onError(() => {\n failCallbacks.forEach(callback => callback())\n })\n\n onCancel(() => {\n failCallbacks.forEach(callback => callback())\n })\n})\n\n}\n", "import { getCsrfToken, contentIsFromDump, splitDumpFromContent, getUpdateUri } from '@/utils'\nimport { coordinateNetworkInteractions } from './interactions.js'\nimport { MessageRequest, PageRequest } from './request.js'\nimport { InterceptorRegistry } from './interceptor.js'\nimport { trigger, triggerAsync } from '@/hooks.js'\nimport { showHtmlModal } from '@/utils/modal.js'\nimport { MessageBus, scopeSymbolFromMessage } from './messageBus.js'\nimport Message from './message.js'\nimport Action from './action.js'\n\nlet outstandingActionOrigin = null\nlet outstandingActionMetadata = {}\nlet outstandingActionInterceptors = []\nlet interceptors = new InterceptorRegistry\nlet messageBus = new MessageBus()\nlet actionInterceptors = []\nlet partitionInterceptors = []\nlet sessionExpired = false\n\nexport function sessionIsExpired() {\n return sessionExpired\n}\n\nexport function setNextActionOrigin(origin) {\n outstandingActionOrigin = origin\n}\n\nexport function setNextActionMetadata(metadata) {\n outstandingActionMetadata = metadata\n}\n\nexport function setNextActionInterceptor(callback) {\n outstandingActionInterceptors.push(callback)\n}\n\nexport function interceptAction(callback) {\n actionInterceptors.push(callback)\n\n return () => {\n actionInterceptors.splice(actionInterceptors.indexOf(callback), 1)\n }\n}\n\nexport function interceptMessage(callback) {\n return interceptors.addMessageInterceptor(callback)\n}\n\nexport function interceptRequest(callback) {\n return interceptors.addRequestInterceptor(callback)\n}\n\nexport function interceptPartition(callback) {\n partitionInterceptors.push(callback)\n\n return () => {\n partitionInterceptors.splice(partitionInterceptors.indexOf(callback), 1)\n }\n}\n\n// Component-scoped interceptors...\n\nexport function interceptComponentAction(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptAction(({ action, ...rest }) => {\n if (action.component !== component) return\n if (actionName && action.name !== actionName) return\n\n callback({ action, ...rest })\n })\n}\n\nexport function interceptComponentMessage(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptors.addInterceptor(component, ({ message, ...rest }) => {\n if (actionName) {\n let hasAction = Array.from(message.actions).some(a => a.name === actionName)\n\n if (! hasAction) return\n }\n\n callback({ message, ...rest })\n })\n}\n\nexport function interceptComponentRequest(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptRequest(({ request, ...rest }) => {\n let matchingMessages = Array.from(request.messages).filter(m => {\n if (m.component !== component) return false\n\n if (actionName) {\n return Array.from(m.actions).some(a => a.name === actionName)\n }\n\n return true\n })\n\n if (matchingMessages.length === 0) return\n\n callback({ request, ...rest })\n })\n}\n\ninterceptMessage(({ message, onFinish }) => {\n messageBus.addActiveMessage(message)\n\n onFinish(() => messageBus.removeActiveMessage(message))\n})\n\n// Ensure that other parts of the codebase are able to intercept actions before the default handling...\nqueueMicrotask(() => {\n coordinateNetworkInteractions(messageBus)\n})\n\nexport function fireAction(component, method, params = [], metadata = {}) {\n if (component.__isWireProxy) component = component.__instance\n\n let action = constructAction(component, method, params, metadata)\n\n actionInterceptors.forEach(callback => {\n callback({\n action,\n onSend: (cb) => action.onSendCallbacks.push(cb),\n onCancel: (cb) => action.onCancelCallbacks.push(cb),\n onSuccess: (cb) => action.onSuccessCallbacks.push(cb),\n onError: (cb) => action.onErrorCallbacks.push(cb),\n onFailure: (cb) => action.onFailureCallbacks.push(cb),\n onFinish: (cb) => action.onFinishCallbacks.push(cb),\n })\n })\n\n if (action.isCancelled() || action.isDeferred()) return action.promise\n\n return fireActionInstance(action)\n}\n\nexport function constructAction(component, method, params, metadata) {\n let origin = outstandingActionOrigin\n let pendingInterceptors = outstandingActionInterceptors\n\n outstandingActionOrigin = null\n outstandingActionInterceptors = []\n\n metadata = {\n ...metadata,\n ...outstandingActionMetadata,\n }\n\n outstandingActionMetadata = {}\n\n let action = new Action(component, method, params, metadata, origin)\n\n // Set fire function to avoid circular dependency\n action._fire = fireActionInstance\n\n // Attach any per-action interceptors (from event.detail.livewire.interceptAction)\n pendingInterceptors.forEach(callback => action.addInterceptor(callback))\n\n return action\n}\n\nexport function fireActionInstance(action) {\n let message = createOrAddToOutstandingMessage(action)\n\n messageBus.messageBuffer(message, () => {\n sendMessages()\n })\n\n return action.promise\n}\n\nexport function createOrAddToOutstandingMessage(action) {\n let message = messageBus.findScopedPendingMessage(action)\n\n if (! message) message = new Message(action.component)\n\n message.addAction(action)\n\n messageBus.addPendingMessage(message)\n\n return message\n}\n\nfunction sendMessages() {\n let requests = new Set()\n\n messageBus.eachPendingMessage(message => {\n partitionInterceptors.forEach(callback => {\n callback({\n message,\n compileRequest: (messages) => {\n // When multiple components in a hierarchy listen to the same event and one\n // has a modelable child, the partition interceptor may try to bundle the\n // same child message into multiple requests. For example: Parent and Child\n // both listen to 'foo', and Child has a modelable grandchild. Parent's\n // interceptor bundles [Parent, Grandchild] into Request 1. Then Child's\n // interceptor tries to bundle [Child, Grandchild], but Grandchild is already\n // in Request 1. Rather than throwing an error, we merge Child into Request 1\n // so all related components are sent together, maintaining data consistency.\n let existingRequest = Array.from(requests).find(request =>\n messages.some(message => request.messages.has(message))\n )\n\n if (existingRequest) {\n // Add any new messages to the existing request\n messages.forEach(message => {\n if (!existingRequest.messages.has(message)) {\n existingRequest.addMessage(message)\n }\n })\n return existingRequest\n }\n\n // No overlap, create a new request\n let request = new MessageRequest()\n\n messages.forEach(message => request.addMessage(message))\n\n requests.add(request)\n\n return request\n },\n })\n })\n })\n\n let messages = messageBus.getPendingMessages()\n\n messageBus.clearPendingMessages()\n\n for (let message of messages) {\n if (Array.from(requests).some(request => request.messages.has(message))) {\n continue\n }\n\n let hasFoundRequest = false\n\n requests.forEach(request => {\n if (! hasFoundRequest) {\n // Don't add to a request that already has a message for the same component\n let hasMessageForSameComponent = Array.from(request.messages).some(m => m.component === message.component)\n\n if (hasMessageForSameComponent) return\n\n request.addMessage(message)\n\n hasFoundRequest = true\n }\n })\n\n if (! hasFoundRequest) {\n let request = new MessageRequest()\n\n request.addMessage(message)\n\n requests.add(request)\n }\n }\n\n requests.forEach(request => {\n request.messages.forEach(message => {\n message.snapshot = message.component.getEncodedSnapshotWithLatestChildrenMergedIn()\n message.updates = message.component.getUpdates()\n message.calls = Array.from(message.actions).map(i => ({\n method: i.name,\n params: i.params,\n metadata: i.metadata,\n }))\n\n message.payload = {\n snapshot: message.snapshot,\n updates: message.updates,\n calls: message.calls,\n }\n })\n })\n\n // Assign scope symbols to messages...\n requests.forEach(request => {\n request.messages.forEach(message => {\n message.scope = scopeSymbolFromMessage(message)\n })\n })\n\n requests.forEach(request => {\n request.uri = getUpdateUri()\n\n Object.defineProperty(request, 'payload', {\n get() {\n return {\n _token: getCsrfToken(),\n components: Array.from(request.messages, i => i.payload)\n }\n }\n })\n\n let cachedOptions = null\n\n Object.defineProperty(request, 'options', {\n get() {\n if (cachedOptions) return cachedOptions\n\n cachedOptions = {\n method: 'POST',\n body: JSON.stringify(request.payload),\n headers: {\n 'Content-type': 'application/json',\n 'X-Livewire': '1', // This '1' value means nothing, but it stops Cloudflare from stripping the header...\n },\n signal: request.controller.signal,\n }\n\n return cachedOptions\n }\n })\n })\n\n requests.forEach(request => {\n request.initInterceptors(interceptors)\n\n if (request.hasAllCancelledMessages()) {\n request.cancel()\n }\n\n sendRequest(request, {\n send: ({ responsePromise }) => {\n request.invokeOnSend({ responsePromise })\n },\n failure: ({ error }) => {\n request.invokeOnFailure({ error })\n },\n finish: () => {\n request.invokeOnFinish()\n },\n response: ({ response }) => {\n request.invokeOnResponse({ response })\n },\n stream: async ({ response }) => {\n request.invokeOnStream({ response })\n\n let finalResponse = ''\n\n try {\n finalResponse = await interceptStreamAndReturnFinalResponse(response, json => {\n let componentId = json.id\n\n request.messages.forEach(message => {\n if (message.component.id === componentId) {\n message.invokeOnStream({ json })\n }\n })\n\n trigger('stream', json)\n })\n } catch (e) {\n request.cancel()\n\n throw e\n }\n\n return finalResponse\n },\n parsed: ({ response, responseBody }) => {\n request.invokeOnParsed({ response, body: responseBody })\n },\n error: ({ response, responseBody }) => {\n let preventDefault = false\n\n request.invokeOnError({ response, body: responseBody, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n if (response.status === 419) {\n if (sessionExpired) return\n\n sessionExpired = true\n\n confirm(\n 'This page has expired.\\nWould you like to refresh the page?'\n ) && window.location.reload()\n\n return\n }\n\n if (response.aborted) return\n\n showHtmlModal(responseBody)\n },\n redirect: (url) => {\n let preventDefault = false\n\n request.invokeOnRedirect({ url, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n window.location.href = url\n },\n dump: (html) => {\n let preventDefault = false\n\n request.invokeOnDump({ html, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n showHtmlModal(html)\n },\n success: async ({ response, responseBody, responseJson }) => {\n request.invokeOnSuccess({ response, body: responseBody, json: responseJson })\n\n await triggerAsync('payload.intercept', responseJson)\n\n let messageResponsePayloads = responseJson.components\n\n request.messages.forEach(message => {\n messageResponsePayloads.forEach(payload => {\n if (message.isCancelled()) return\n\n // Server skipped this child (unchanged reactive props)...\n if (payload.skip) {\n if (payload.id === message.component.id) {\n message.responsePayload = payload\n message.markSkipped()\n message.invokeOnSkipped()\n message.resolveActionPromises([], [])\n message.invokeOnFinish()\n }\n\n return\n }\n\n let { snapshot: snapshotEncoded, effects } = payload\n let snapshot = JSON.parse(snapshotEncoded)\n\n if (snapshot.memo.id === message.component.id) {\n message.responsePayload = { snapshot, effects }\n\n message.invokeOnSuccess()\n if (message.isCancelled()) return\n\n // Use Alpine.transaction to batch data updates and DOM morphing\n // This prevents effects from firing before the morph cleanup runs\n Alpine.transaction(async () => {\n message.component.mergeNewSnapshot(snapshotEncoded, effects, message.updates)\n\n message.invokeOnSync()\n if (message.isCancelled()) return\n\n // Trigger any side effects from the payload like \"morph\" and \"dispatch event\"...\n message.component.processEffects(effects, request)\n\n message.invokeOnEffect()\n if (message.isCancelled()) return\n\n await message.invokeOnMorph()\n }).then(() => {\n // Resolve promises & finish AFTER morph completes\n if (! message.isCancelled()) {\n message.resolveActionPromises(\n message.pendingReturns,\n message.pendingReturnsMeta\n )\n message.invokeOnFinish()\n }\n\n requestAnimationFrame(() => {\n if (message.isCancelled()) return\n\n message.invokeOnRender()\n })\n })\n }\n })\n })\n },\n })\n })\n}\n\nasync function sendRequest(request, handlers) {\n let response\n\n try {\n if (request.isCancelled()) return\n\n let responsePromise = fetch(request.uri, request.options)\n\n if (request.isCancelled()) return\n handlers.send({ responsePromise })\n\n response = await responsePromise\n } catch (e) {\n if (request.isCancelled()) return\n\n handlers.failure({ error: e })\n handlers.finish()\n\n return\n }\n\n handlers.response({ response })\n\n let responseBody = null\n\n if (response.headers.has('X-Livewire-Stream')) {\n responseBody = await handlers.stream({ response })\n } else {\n responseBody = await response.text()\n }\n\n if (request.isCancelled()) return\n\n handlers.parsed({ response, responseBody })\n\n // Handle error response...\n if (! response.ok) {\n handlers.error({ response, responseBody })\n handlers.finish()\n\n return\n }\n\n if (response.redirected) {\n handlers.redirect(response.url)\n }\n\n /**\n * Sometimes a response will be prepended with html to render a dump, so we\n * will separate the dump html from Livewire's JSON response content and\n * render the dump in a modal and allow Livewire to continue with the\n * request.\n */\n if (contentIsFromDump(responseBody)) {\n let dump\n\n [dump, responseBody] = splitDumpFromContent(responseBody)\n\n handlers.dump(dump)\n }\n\n let responseJson = null\n\n try {\n responseJson = JSON.parse(responseBody)\n } catch (e) {\n console.error(e)\n\n // When a stream is started, the headers are already sent,\n // so if an error occurs, the responseBody won't be JSON,\n // and we can treat it like an error response...\n handlers.error({ response, responseBody })\n handlers.finish()\n\n return\n }\n\n handlers.success({ response, responseBody, responseJson })\n handlers.finish()\n}\n\nasync function interceptStreamAndReturnFinalResponse(response, callback) {\n let reader = response.body.getReader()\n let remainingResponse = ''\n\n while (true) {\n let { done, value: chunk } = await reader.read()\n\n let decoder = new TextDecoder\n let output = decoder.decode(chunk)\n\n let [ streams, remaining ] = extractStreamObjects(remainingResponse + output)\n\n streams.forEach(stream => {\n callback(stream)\n })\n\n remainingResponse = remaining\n\n if (done) return remainingResponse\n }\n}\n\nfunction extractStreamObjects(raw) {\n let regex = /({\"stream\":true.*?\"endStream\":true})/g\n\n let matches = raw.match(regex)\n\n let parsed = []\n\n if (matches) {\n for (let i = 0; i < matches.length; i++) {\n parsed.push(JSON.parse(matches[i]).body)\n }\n }\n\n let remaining = raw.replace(regex, '');\n\n return [ parsed, remaining ];\n}\n\nexport async function sendNavigateRequest(uri, callback, errorCallback) {\n let request = new PageRequest(uri)\n\n let options = {\n // method: 'GET',\n headers: {\n 'X-Livewire-Navigate': '1', // This '1' value means nothing, but it stops Cloudflare from stripping the header...\n },\n signal: request.controller.signal,\n }\n\n trigger('navigate.request', {\n uri,\n options,\n })\n\n let response\n\n try {\n response = await fetch(uri, options)\n\n let destination = getDestination(uri, response)\n\n let html = await response.text()\n\n let status = response.status\n\n callback(html, destination, status)\n } catch (error) {\n errorCallback(error)\n\n throw error\n }\n}\n\nfunction getDestination(uri, response) {\n let destination = createUrlObjectFromString(uri)\n let finalDestination = createUrlObjectFromString(response.url)\n\n // If there was no redirect triggered by the URL that was fetched...\n if ((destination.pathname + destination.search) === (finalDestination.pathname + finalDestination.search)) {\n // Then let's carry over any \"hash\" entries on the URL.\n // We have to do this because hashes aren't sent to\n // the server by \"fetch\", so it needs to get added\n finalDestination.hash = destination.hash\n }\n\n return finalDestination\n}\n\nfunction createUrlObjectFromString(urlString) {\n return urlString !== null && new URL(urlString, document.baseURI)\n}\n\n// Load legacy event support ('request' and 'commit' events)\nimport { registerLegacyEventSupport } from './legacy.js'\nregisterLegacyEventSupport(interceptRequest, interceptMessage)\n", "// This errors object has the most common methods from \\Illuminate\\Support\\MessageBag class on the backend...\nimport Alpine from 'alpinejs'\n\nexport function getErrorsObject(component) {\n let state = component.__errorsState ??= Alpine.reactive({\n clientErrors: null,\n })\n\n // Store lastSnapshot outside reactive state to avoid Proxy wrapping breaking identity comparison...\n component.__lastErrorsSnapshot ??= component.snapshot\n\n return {\n messages() {\n // If the snapshot changed (server responded), reset client overrides...\n if (component.__lastErrorsSnapshot !== component.snapshot) {\n state.clientErrors = null\n component.__lastErrorsSnapshot = component.snapshot\n }\n\n // Assign into reactive state so Alpine can track changes...\n return state.clientErrors ??= component.snapshot.memo.errors\n },\n\n keys() {\n return Object.keys(this.messages())\n },\n\n has(...keys) {\n if (this.isEmpty()) return false\n\n if (keys.length === 0 || (keys.length === 1 && keys[0] == null)) return this.any()\n\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n for (let key of keys) {\n if (this.first(key) === '') return false\n }\n\n return true\n },\n\n hasAny(keys) {\n if (this.isEmpty()) return false\n\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n for (let key of keys) {\n if (this.has(key)) return true\n }\n\n return false\n },\n\n missing(...keys) {\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n return ! this.hasAny(keys)\n },\n\n first(key = null) {\n let messages = key === null ? this.all() : this.get(key)\n\n let firstMessage = messages.length > 0 ? messages[0] : ''\n\n return Array.isArray(firstMessage) ? firstMessage[0] : firstMessage\n },\n\n get(key) {\n return this.messages()[key] || []\n },\n\n all() {\n return Object.values(this.messages()).flat()\n },\n\n isEmpty() {\n return ! this.any()\n },\n\n isNotEmpty() {\n return this.any()\n },\n\n any() {\n return Object.keys(this.messages()).length > 0\n },\n\n count() {\n return Object.values(this.messages()).reduce((total, array) => {\n return total + array.length;\n }, 0);\n },\n\n clear(field = null) {\n if (field === null) {\n state.clientErrors = {}\n } else {\n let errors = { ...(state.clientErrors ?? component.snapshot.memo.errors) }\n delete errors[field]\n state.clientErrors = errors\n }\n },\n }\n}\n", "\nexport function findRefEl(component, name) {\n let refEl = component.el.querySelector(`[wire\\\\:ref=\"${name}\"]`)\n\n if (! refEl) return console.error(`Ref \"${name}\" not found in component \"${component.id}\"`)\n\n return refEl\n}\n", "import { on } from './hooks'\n\nlet customDirectiveNames = new Set\n\nexport function matchesForLivewireDirective(attributeName) {\n return attributeName.match(new RegExp('wire:'))\n}\n\nexport function extractDirective(el, name) {\n let [value, ...modifiers] = name.replace(new RegExp('wire:'), '').split('.')\n\n return new Directive(value, modifiers, name, el)\n}\n\nexport function directive(name, callback) {\n // Prevent the same directive from registering multiple initialization listeners...\n if (customDirectiveNames.has(name)) return\n\n customDirectiveNames.add(name)\n\n on('directive.init', ({ el, component, directive, cleanup }) => {\n if (directive.value === name) {\n callback({\n el, directive, component, $wire: component.$wire, cleanup\n })\n }\n })\n}\n\nexport function globalDirective(name, callback) {\n // Prevent the same directive from registering multiple initialization listeners...\n if (customDirectiveNames.has(name)) return\n\n customDirectiveNames.add(name)\n\n on('directive.global.init', ({ el, directive, cleanup }) => {\n if (directive.value === name) {\n callback({ el, directive, cleanup })\n }\n })\n}\n\nexport function getDirectives(el) {\n return new DirectiveManager(el)\n}\n\nexport function customDirectiveHasBeenRegistered(name) {\n return customDirectiveNames.has(name)\n}\n\nclass DirectiveManager {\n constructor(el) {\n this.el = el\n this.directives = this.extractTypeModifiersAndValue()\n }\n\n all() {\n return this.directives\n }\n\n has(value) {\n return this.directives.map(directive => directive.value).includes(value)\n }\n\n missing(value) {\n return ! this.has(value)\n }\n\n get(value) {\n return this.directives.find(directive => directive.value === value)\n }\n\n extractTypeModifiersAndValue() {\n return Array.from(this.el.getAttributeNames()\n // Filter only the livewire directives.\n .filter(name => matchesForLivewireDirective(name))\n // Parse out the type, modifiers, and value from it.\n .map(name => extractDirective(this.el, name)))\n }\n}\n\nexport class Directive {\n constructor(value, modifiers, rawName, el) {\n this.rawName = this.raw = rawName\n this.el = el\n this.eventContext\n this.wire\n\n this.value = value\n this.modifiers = modifiers\n this.expression = this.el.getAttribute(this.rawName)\n }\n\n get method() {\n const methods = this.parseOutMethodsAndParams(this.expression)\n\n return methods[0].method\n }\n\n get methods() {\n return this.parseOutMethodsAndParams(this.expression)\n }\n\n get params() {\n const methods = this.parseOutMethodsAndParams(this.expression)\n\n return methods[0].params\n }\n\n parseOutMethodsAndParams(rawMethod) {\n let methods = []\n\n // Split methods string into individual methods and their parameters\n let parsedMethods = this.splitAndParseMethods(rawMethod)\n\n // Evaluate parameters for each method and build the methods array\n for (let { method, paramString } of parsedMethods) {\n let params = []\n\n if (paramString.length > 0) {\n function argumentsToArray() {\n for (var l=arguments.length, p=new Array(l), k=0; k<l; k++) {\n p[k] = arguments[k]\n }\n return [].concat(p)\n }\n\n try {\n params = Alpine.evaluate(\n document,\n 'argumentsToArray(' + paramString + ')',\n {\n scope: { argumentsToArray },\n },\n )\n } catch (error) {\n console.warn('Failed to parse parameters:', paramString, error)\n params = []\n }\n }\n\n methods.push({ method, params })\n }\n\n return methods\n }\n\n splitAndParseMethods(methodExpression) {\n let methods = []\n let current = ''\n let parenCount = 0\n let inString = false\n let stringChar = null\n\n let trimmedExpression = methodExpression.trim()\n\n // Parse the expression character by character, splitting on commas only at the top level\n // This handles nested parentheses and strings correctly: foo(bar(1,2), 'hello, world')\n for (let i = 0; i < trimmedExpression.length; i++) {\n let char = trimmedExpression[i]\n\n if (!inString) {\n if (char === '\"' || char === \"'\") {\n inString = true\n stringChar = char\n current += char\n } else if (char === '(') {\n parenCount++\n current += char\n } else if (char === ')') {\n parenCount--\n current += char\n } else if (char === ',' && parenCount === 0) {\n // Found a comma at the top level - parse and add this method\n methods.push(this.parseMethodCall(current.trim()))\n current = ''\n } else {\n current += char\n }\n } else {\n // Inside a string - only exit on matching quote that's not escaped\n if (char === stringChar && trimmedExpression[i-1] !== '\\\\') {\n inString = false\n stringChar = null\n }\n current += char\n }\n }\n\n // Add the last method if there's anything left\n if (current.trim().length > 0) {\n methods.push(this.parseMethodCall(current.trim()))\n }\n\n return methods\n }\n\n parseMethodCall(methodString) {\n // Find the method name - everything before the first opening parenthesis\n let methodMatch = methodString.match(/^([^(]+)\\(/)\n if (!methodMatch) {\n // No parentheses found, treat as method with no params\n return {\n method: methodString.trim(),\n paramString: ''\n }\n }\n\n let method = methodMatch[1].trim()\n let paramStart = methodMatch[0].length - 1 // Position of opening parenthesis\n\n // Since splitAndParseMethods already validated balanced parentheses,\n // we can safely find the last closing parenthesis in the string\n let lastParenIndex = methodString.lastIndexOf(')')\n if (lastParenIndex === -1) {\n throw new Error(`Missing closing parenthesis for method \"${method}\"`)\n }\n\n let paramString = methodString.slice(paramStart + 1, lastParenIndex).trim()\n\n return {\n method,\n paramString\n }\n }\n}\n", "\nexport function toggleBooleanStateDirective(el, directive, isTruthy, cachedDisplay = null) {\n isTruthy = directive.modifiers.includes('remove') ? ! isTruthy : isTruthy\n\n if (directive.modifiers.includes('class')) {\n let classes = directive.expression.split(' ').filter(String)\n\n if (isTruthy) {\n el.classList.add(...classes)\n } else {\n el.classList.remove(...classes)\n }\n } else if (directive.modifiers.includes('attr')) {\n if (isTruthy) {\n el.setAttribute(directive.expression, true)\n } else {\n el.removeAttribute(directive.expression)\n }\n } else {\n let cache = cachedDisplay ?? window\n .getComputedStyle(el, null)\n .getPropertyValue('display')\n\n let display = (['inline', 'list-item', 'block', 'table', 'flex', 'grid', 'inline-flex']\n .filter(i => directive.modifiers.includes(i))[0] || 'inline-block')\n\n // If element is to be removed, set display to its current value...\n // display = (directive.modifiers.includes('remove') && ! isTruthy)\n display = (directive.modifiers.includes('remove') && ! isTruthy)\n ? cache : display\n\n el.style.display = isTruthy ? display : 'none'\n }\n}\n", "import { directive, getDirectives } from '@/directives'\nimport { toggleBooleanStateDirective } from './shared'\nimport { dataGet, WeakBag } from '@/utils'\nimport { on } from '@/hooks'\n\nlet refreshDirtyStatesByComponent = new WeakBag\n\non('commit', ({ component, succeed }) => {\n succeed(() => {\n setTimeout(() => { // Doing a \"setTimeout\" to let morphdom do its thing first...\n refreshDirtyStatesByComponent.each(component, i => i(false))\n })\n })\n})\n\ndirective('dirty', ({ el, directive, component }) => {\n let targets = dirtyTargets(el)\n\n let oldIsDirty = false\n\n let initialDisplay = el.style.display\n\n let refreshDirtyState = (isDirty) => {\n toggleBooleanStateDirective(el, directive, isDirty, initialDisplay)\n\n oldIsDirty = isDirty\n }\n\n refreshDirtyStatesByComponent.add(component, refreshDirtyState)\n\n Alpine.effect(() => {\n let isDirty = false\n\n isDirty = checkDirty(component, targets.length === 0 ? undefined : targets)\n\n if (oldIsDirty !== isDirty) {\n refreshDirtyState(isDirty)\n }\n\n oldIsDirty = isDirty\n })\n})\n\nexport function checkDirty(component, targets) {\n let isDirty = false\n\n if (targets === undefined) {\n isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive)\n } else if (Array.isArray(targets)) {\n for (let i = 0; i < targets.length; i++) {\n if (isDirty) break;\n\n let target = targets[i]\n\n isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target))\n }\n } else {\n isDirty = JSON.stringify(dataGet(component.canonical, targets)) !== JSON.stringify(dataGet(component.reactive, targets))\n }\n\n return isDirty\n}\n\nfunction dirtyTargets(el) {\n let directives = getDirectives(el)\n let targets = []\n\n if (directives.has('model')) {\n targets.push(directives.get('model').expression)\n }\n\n if (directives.has('target')) {\n targets = targets.concat(\n directives\n .get('target')\n .expression.split(',')\n .map(s => s.trim())\n )\n }\n\n return targets\n}\n", "import { on } from '@/hooks'\nimport { getModuleUrl } from '@/utils'\n\nlet pendingComponentAssets = new WeakMap()\n\non('effect', ({ component, effects }) => {\n let scriptModuleHash = effects.scriptModule\n\n if (scriptModuleHash) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/js/${encodedName}.js?v=${scriptModuleHash}`\n\n pendingComponentAssets.set(component, Alpine.reactive({\n loading: true,\n afterLoaded: [],\n }))\n\n import(/* @vite-ignore */ path).then(module => {\n module.run.call(component.$wire, component.$wire, component.$wire.js);\n\n pendingComponentAssets.get(component).loading = false\n pendingComponentAssets.get(component).afterLoaded.forEach(callback => callback())\n pendingComponentAssets.delete(component)\n });\n }\n})\n\nexport function assetIsPendingFor(component) {\n return pendingComponentAssets.has(component) && pendingComponentAssets.get(component).loading\n}\n\nexport function runAfterAssetIsLoadedFor(component, callback) {\n if (assetIsPendingFor(component)) {\n pendingComponentAssets.get(component).afterLoaded.push(() => callback())\n } else {\n callback()\n }\n}", "import { dataSet, deepClone, diff, diffAndConsolidate, diffAndPatchRecursive, extractData} from '@/utils'\nimport { generateWireObject } from '@/$wire'\nimport { findComponentByEl, findComponent, hasComponent } from '@/store'\nimport { trigger } from '@/hooks'\nimport { setNextActionOrigin } from '@/request'\n\nexport class Component {\n constructor(el) {\n if (el.__livewire) throw 'Component already initialized';\n\n el.__livewire = this\n\n this.el = el\n\n this.id = el.getAttribute('wire:id')\n\n this.key = el.getAttribute('wire:key')\n\n this.__livewireId = this.id // @legacy\n\n this.snapshotEncoded = el.getAttribute('wire:snapshot')\n\n this.snapshot = JSON.parse(this.snapshotEncoded)\n\n if (! this.snapshot) {\n throw `Snapshot missing on Livewire component with id: ` + this.id\n }\n\n this.name = this.snapshot.memo.name\n\n this.effects = JSON.parse(el.getAttribute('wire:effects'))\n this.originalEffects = deepClone(this.effects)\n\n // \"canonical\" data represents the last known server state.\n this.canonical = extractData(deepClone(this.snapshot.data))\n // \"ephemeral\" represents the most current state. (This can be freely manipulated by end users)\n this.ephemeral = extractData(deepClone(this.snapshot.data))\n // \"reactive\" is just ephemeral, except when you mutate it, front-ends like Vue react.\n this.reactive = Alpine.reactive(this.ephemeral)\n\n this.queuedUpdates = {}\n\n this.jsActions = {}\n\n // this.$wire = this.reactive\n this.$wire = generateWireObject(this, this.reactive)\n\n // Set the $wire property on the root element...\n el.$wire = this.$wire\n\n this.cleanups = []\n\n // Effects will be processed after every request, but we'll also handle them on initialization.\n this.processEffects(this.effects)\n }\n\n addActionContext(context) {\n // New system: just set the origin for next action\n if (context.el || context.directive) {\n setNextActionOrigin({\n el: context.el,\n directive: context.directive\n })\n }\n\n // Note: Non-origin metadata should be passed directly to fireAction\n // This method is kept for backwards compatibility but simplified\n }\n\n intercept(action, callback = null) {\n return this.$wire.$intercept(action, callback)\n }\n\n mergeNewSnapshot(snapshotEncoded, effects, updates = {}) {\n let snapshot = JSON.parse(snapshotEncoded)\n\n let oldCanonical = deepClone(this.canonical)\n let updatedOldCanonical = this.applyUpdates(oldCanonical, updates)\n\n let newCanonical = extractData(deepClone(snapshot.data))\n\n let dirty = diff(updatedOldCanonical, newCanonical)\n\n this.snapshotEncoded = snapshotEncoded\n\n this.snapshot = snapshot\n\n this.effects = effects\n\n this.canonical = extractData(deepClone(snapshot.data))\n\n let newData = extractData(deepClone(snapshot.data))\n\n // Diff old vs new and patch differences onto the reactive proxy. Walks\n // the trees directly, avoiding dot-notated paths which break when\n // object keys contain dots.\n diffAndPatchRecursive(updatedOldCanonical, newData, this.reactive)\n\n return dirty\n }\n\n queueUpdate(propertyName, value) {\n // These updates will be applied first on the server\n // on the next request, then trickle back to the\n // client on the next request that gets sent.\n this.queuedUpdates[propertyName] = value\n }\n\n mergeQueuedUpdates(diff) {\n // Before adding queuedUpdates into the diff list, we will remove any diffs\n // that will be overriden by the queued update. Queued updates will take\n // priority against ephemeral updates that have happend since them...\n Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => {\n Object.entries(diff).forEach(([diffKey, diffValue]) => {\n if (diffKey.startsWith(updateKey)) {\n delete diff[diffKey]\n }\n })\n\n diff[updateKey] = updateValue\n })\n\n this.queuedUpdates = []\n\n return diff\n }\n\n getUpdates() {\n let propertiesDiff = diffAndConsolidate(this.canonical, this.ephemeral)\n\n return this.mergeQueuedUpdates(propertiesDiff)\n }\n\n applyUpdates(object, updates) {\n for (let key in updates) {\n dataSet(object, key, updates[key])\n }\n\n return object\n }\n\n replayUpdate(snapshot, html) {\n let effects = { ...this.effects, html}\n\n this.mergeNewSnapshot(JSON.stringify(snapshot), effects)\n\n this.processEffects({ html })\n }\n\n /**\n * Here we'll take the new state and side effects from the\n * server and use them to update the existing data that\n * users interact with, triggering reactive effects.\n */\n processEffects(effects, request) {\n // This is for BC.\n trigger('effects', this, effects)\n\n trigger('effect', {\n component: this,\n effects,\n cleanup: i => this.addCleanup(i),\n request,\n })\n }\n\n get children() {\n let componentEl = this.el\n\n let children = []\n\n componentEl.querySelectorAll('[wire\\\\:id]').forEach(el => {\n let parentComponentEl = el.parentElement.closest('[wire\\\\:id]')\n\n if (parentComponentEl !== componentEl) return\n\n let componentInstance = el.__livewire\n\n if (! componentInstance) return\n\n children.push(componentInstance)\n })\n\n return children\n }\n\n get islands() {\n let islands = this.snapshot.memo.islands\n\n return islands\n }\n\n get parent() {\n return findComponentByEl(this.el.parentElement)\n }\n\n get isIsolated() {\n return this.snapshot.memo.isolate\n }\n\n get isLazy() {\n return this.snapshot.memo.lazyLoaded !== undefined\n }\n\n get hasBeenLazyLoaded() {\n return this.snapshot.memo.lazyLoaded === true\n }\n\n get isLazyIsolated() {\n return !! this.snapshot.memo.lazyIsolated\n }\n\n getDeepChildrenWithBindings(callback) {\n this.getDeepChildren(child => {\n if (child.isLazy && ! child.hasBeenLazyLoaded) return\n\n if (child.hasReactiveProps() || child.hasWireModelableBindings()) {\n callback(child)\n }\n })\n }\n\n hasReactiveProps() {\n let meta = this.snapshot.memo\n let props = meta.props\n\n return !! props\n }\n\n hasWireModelableBindings() {\n let meta = this.snapshot.memo\n let bindings = meta.bindings\n\n return !! bindings\n }\n\n getDeepChildren(callback) {\n this.children.forEach(child => {\n callback(child)\n\n child.getDeepChildren(callback)\n })\n }\n\n getEncodedSnapshotWithLatestChildrenMergedIn() {\n let { snapshotEncoded, children, snapshot } = this\n\n let childrenMemo = {}\n\n children.forEach(child => {\n childrenMemo[child.key] = [child.el.tagName.toLowerCase(), child.id]\n })\n\n return snapshotEncoded.replace(\n /\"children\":\\{[^}]*\\}/,\n `\"children\":${JSON.stringify(childrenMemo)}`\n )\n }\n\n inscribeSnapshotAndEffectsOnElement() {\n let el = this.el\n\n el.setAttribute('wire:snapshot', this.snapshotEncoded)\n\n // We need to re-register any event listeners that were originally registered...\n let effects = this.originalEffects.listeners\n ? { listeners: this.originalEffects.listeners }\n : {}\n\n // We need to re-register any url/query-string bindings...\n if (this.originalEffects.url) {\n effects.url = this.originalEffects.url\n }\n\n // We need to re-register any scripts that were originally registered...\n if (this.originalEffects.scripts) {\n effects.scripts = this.originalEffects.scripts;\n }\n\n el.setAttribute('wire:effects', JSON.stringify(effects))\n\n el.setAttribute('wire:key', this.key)\n }\n\n addJsAction(name, action) {\n this.jsActions[name] = action\n }\n\n hasJsAction(name) {\n return this.jsActions[name] !== undefined\n }\n\n getJsAction(name) {\n return this.jsActions[name].bind(this.$wire)\n }\n\n getJsActions() {\n let actions = {}\n for (let key of Object.keys(this.jsActions)) {\n actions[key] = this.getJsAction(key)\n }\n return actions\n }\n\n // Called by JSON.stringify() on both $wire (via the Proxy) and the\n // Component instance directly. Without this, stringifying a Component\n // throws a circular reference error (el <-> component). Tools like\n // Laravel Boost trigger this when logging objects to the browser console.\n toJSON() {\n return {\n id: this.id,\n name: this.name,\n key: this.key,\n data: Object.fromEntries(Object.entries(this.ephemeral)),\n }\n }\n\n addCleanup(cleanup) {\n this.cleanups.push(cleanup)\n }\n\n cleanup() {\n delete this.el.__livewire\n\n while (this.cleanups.length > 0) {\n this.cleanups.pop()()\n }\n }\n}\n", "\nexport function closestFragment(el, { isMatch, hasReachedBoundary }) {\n if (! hasReachedBoundary) hasReachedBoundary = () => false\n\n let current = el\n\n while (current) {\n // Check previous siblings\n let sibling = current.previousSibling;\n\n let foundEndMarker = []\n\n while (sibling) {\n if (isEndFragmentMarker(sibling)) {\n // Keep iterating up until we find the start marker and skip it...\n foundEndMarker.push('a')\n }\n\n if (isStartFragmentMarker(sibling)) {\n if (foundEndMarker.length > 0) {\n foundEndMarker.pop()\n } else {\n let metadata = extractFragmentMetadataFromMarkerNode(sibling)\n\n if (isMatch(metadata)) {\n return new Fragment(sibling)\n }\n }\n }\n\n sibling = sibling.previousSibling;\n }\n\n // No start marker found at this level or found end marker\n // Go up to parent unless we've hit the component root\n current = current.parentElement;\n\n if (current && hasReachedBoundary({ el: current })) {\n break; // Stop at component root\n }\n }\n\n return null;\n}\n\nexport function findFragment(el, { isMatch, hasReachedBoundary }) {\n if (! hasReachedBoundary) hasReachedBoundary = () => false\n\n let startNode = null\n\n let rootEl = el\n\n walkElements(rootEl, (el, { skip, stop }) => {\n // Skip nested Livewire components\n if (el.hasAttribute && el !== rootEl && hasReachedBoundary({ el })) {\n return skip()\n }\n\n // Check all child nodes (including text and comment nodes)\n Array.from(el.childNodes).forEach(node => {\n if (isStartFragmentMarker(node)) {\n let metadata = extractFragmentMetadataFromMarkerNode(node)\n\n if (isMatch(metadata)) {\n startNode = node\n\n stop()\n }\n }\n })\n })\n\n return startNode && new Fragment(startNode)\n}\n\nexport function isStartFragmentMarker(el) {\n return el.nodeType === 8 && el.textContent.startsWith('[if FRAGMENT')\n}\n\nexport function isEndFragmentMarker(el) {\n return el.nodeType === 8 && el.textContent.startsWith('[if ENDFRAGMENT')\n}\n\nfunction walkElements(el, callback) {\n let skip = false\n let stop = false\n\n callback(el, { skip: () => skip = true, stop: () => stop = true })\n\n if (skip || stop) return\n\n Array.from(el.children).forEach(child => {\n walkElements(child, callback)\n\n if (stop) return\n })\n}\n\nexport class Fragment {\n constructor(startMarkerNode) {\n this.startMarkerNode = startMarkerNode\n\n this.metadata = extractFragmentMetadataFromMarkerNode(startMarkerNode)\n }\n\n get endMarkerNode() {\n return findMatchingEndMarkerNode(this.startMarkerNode, this.metadata)\n }\n\n append(mountContainerTagName, html) {\n let container = document.createElement(mountContainerTagName)\n\n container.innerHTML = html\n\n Array.from(container.childNodes).forEach(node => {\n this.endMarkerNode.before(node)\n })\n }\n\n prepend(mountContainerTagName, html) {\n let container = document.createElement(mountContainerTagName)\n\n container.innerHTML = html\n\n Array.from(container.childNodes)\n .reverse()\n .forEach(node => {\n this.startMarkerNode.after(node)\n })\n }\n}\n\nexport function findMatchingEndMarkerNode(startMarkerNode, metadata) {\n let current = startMarkerNode\n\n while (current) {\n if (isEndFragmentMarker(current)) {\n let currentMetadata = extractFragmentMetadataFromMarkerNode(current)\n\n if (Object.keys(metadata).every(key => metadata[key] === currentMetadata[key])) {\n return current\n }\n }\n\n current = current.nextSibling\n }\n\n return null\n}\n\nexport function extractInnerHtmlFromFragmentHtml(fragmentHtml) {\n let regex = /<!--\\[if FRAGMENT\\b.*?\\]><!\\[endif\\]-->([\\s\\S]*)<!--\\[if ENDFRAGMENT\\b.*?\\]><!\\[endif\\]-->/i;\n\n let match = fragmentHtml.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, html] = match\n\n return html\n}\n\nexport function extractFragmentMetadataFromHtml(fragmentHtml) {\n let regex = /\\[if (FRAGMENT|ENDFRAGMENT):(.*?)\\]/\n\n let match = fragmentHtml.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, __, encodedMetadata] = match\n\n return decodeMetadata(encodedMetadata)\n}\n\nexport function extractFragmentMetadataFromMarkerNode(startMarkerNode) {\n let regex = /\\[if (FRAGMENT|ENDFRAGMENT):(.*?)\\]/\n\n let match = startMarkerNode.textContent.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, __, encodedMetadata] = match\n\n return decodeMetadata(encodedMetadata)\n}\n\nexport function decodeMetadata(encodedMetadata) {\n let metadata = {}\n\n // Split by pipe character to get key=value pairs\n let pairs = encodedMetadata.split('|')\n\n pairs.forEach(pair => {\n // Split each pair by = to get key and value\n let [key, value] = pair.split('=')\n metadata[key] = value\n })\n\n return metadata\n}\n", "import { Component } from \"@/component\";\nimport { trigger } from \"@/hooks\";\nimport { walkBackwards, walkUpwards } from \"./utils\";\nimport { extractFragmentMetadataFromMarkerNode, isEndFragmentMarker, isStartFragmentMarker } from \"./fragment\";\n\nlet components = {}\n\nexport function initComponent(el) {\n let component = new Component(el)\n\n if (components[component.id]) throw 'Component already registered'\n\n let cleanup = (i) => component.addCleanup(i)\n\n trigger('component.init', { component, cleanup })\n\n components[component.id] = component\n\n return component\n}\n\nexport function destroyComponent(id) {\n let component = components[id]\n\n if (! component) return\n\n component.cleanup()\n\n delete components[id]\n}\n\nexport function hasComponent(id) {\n return !! components[id]\n}\n\nexport function findComponent(id, strict = true) {\n let component = components[id]\n\n if (! component) {\n if (strict) throw 'Component not found: ' + id\n\n return\n }\n\n return component\n}\n\nexport function findComponentByEl(el, strict = true) {\n let componentId = walkUpwards(el, (node, { stop }) => {\n if (node.__livewire) return stop(node.__livewire.id)\n\n let endMarkers = []\n\n let slotParentId = walkBackwards(node, (siblingNode, { stop }) => {\n if (isEndFragmentMarker(siblingNode)) {\n let metadata = extractFragmentMetadataFromMarkerNode(siblingNode)\n\n if (metadata.type !== 'slot') return\n\n endMarkers.push('a')\n\n return\n }\n\n if (isStartFragmentMarker(siblingNode)) {\n let metadata = extractFragmentMetadataFromMarkerNode(siblingNode)\n\n if (metadata.type !== 'slot') return\n\n\n if (endMarkers.length > 0) {\n endMarkers.pop()\n } else {\n return stop(metadata.parent)\n }\n }\n })\n\n if (slotParentId) return stop(slotParentId)\n })\n\n let component = findComponent(componentId, strict)\n\n if (! component) {\n if (strict) throw \"Could not find Livewire component in DOM tree\"\n\n return\n }\n\n return component\n}\n\nexport function componentsByName(name) {\n return Object.values(components).filter(component => {\n return name == component.name\n })\n}\n\nexport function getByName(name) {\n return componentsByName(name).map(i => i.$wire)\n}\n\nexport function find(id) {\n let component = components[id]\n\n return component && component.$wire\n}\n\nexport function first() {\n return Object.values(components)[0].$wire\n}\n\nexport function all() {\n return Object.values(components)\n}\n", "import { componentsByName } from \"@/store\"\nimport { findRefEl } from \"@/features/supportRefs\"\n\nexport function dispatch(component, name, params) {\n dispatchEvent(component.el, name, params)\n}\n\nexport function dispatchGlobal(name, params) {\n dispatchEvent(window, name, params)\n}\n\nexport function dispatchSelf(component, name, params) {\n dispatchEvent(component.el, name, params, false)\n}\n\nexport function dispatchEl(component, selector, name, params) {\n let targets = component.el.querySelectorAll(selector)\n\n targets.forEach(target => {\n dispatchEvent(target, name, params, false)\n })\n}\n\nexport function dispatchTo(componentName, name, params) {\n let targets = componentsByName(componentName)\n\n targets.forEach(target => {\n dispatchEvent(target.el, name, params, false)\n })\n}\n\nexport function dispatchRef(component, ref, name, params) {\n let el = findRefEl(component, ref)\n\n dispatchEvent(el, name, params, false)\n}\n\nexport function listen(component, name, callback) {\n component.el.addEventListener(name, e => {\n callback(e.detail)\n })\n}\n\nexport function on(eventName, callback) {\n let handler = (e) => {\n // Implemented for backwards compatibility...\n if (! e.__livewire) return\n\n callback(e.detail)\n }\n\n window.addEventListener(eventName, handler)\n\n return () => {\n window.removeEventListener(eventName, handler)\n }\n}\n\nfunction dispatchEvent(target, name, params, bubbles = true) {\n // We need to ensure the params are an array (or object), so we need to wrap them if they're not already...\n if (typeof params === 'string') {\n params = [params]\n }\n\n let e = new CustomEvent(name, { bubbles, detail: params })\n\n e.__livewire = { name, params, receivedBy: [] }\n\n target.dispatchEvent(e)\n}\n", "import { findComponentByEl, destroyComponent, initComponent, hasComponent } from './store'\nimport { matchesForLivewireDirective, extractDirective } from './directives'\nimport { trigger } from './hooks'\nimport collapse from '@alpinejs/collapse'\nimport focus from '@alpinejs/focus'\nimport persist from '@alpinejs/persist'\nimport intersect from '@alpinejs/intersect'\nimport sort from '@alpinejs/sort'\nimport resize from '@alpinejs/resize'\nimport anchor from '@alpinejs/anchor'\nimport navigate from './plugins/navigate'\nimport history from './plugins/history'\nimport morph from '@alpinejs/morph'\nimport mask from '@alpinejs/mask'\nimport Alpine from 'alpinejs'\nimport { dispatch } from './utils'\n\nexport function start() {\n setTimeout(() => ensureLivewireScriptIsntMisplaced())\n\n dispatch(document, 'livewire:init')\n dispatch(document, 'livewire:initializing')\n\n Alpine.plugin(morph)\n Alpine.plugin(history)\n Alpine.plugin(intersect)\n Alpine.plugin(sort)\n Alpine.plugin(resize)\n Alpine.plugin(collapse)\n Alpine.plugin(anchor)\n Alpine.plugin(focus)\n Alpine.plugin(persist)\n Alpine.plugin(navigate)\n Alpine.plugin(mask)\n\n Alpine.addRootSelector(() => '[wire\\\\:id]')\n\n Alpine.onAttributesAdded((el, attributes) => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n let component = findComponentByEl(el, false)\n\n if (! component) return\n\n attributes.forEach(attribute => {\n if (! matchesForLivewireDirective(attribute.name)) return;\n\n let directive = extractDirective(el, attribute.name)\n\n trigger('directive.init', { el, component, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n })\n\n Alpine.interceptInit(\n Alpine.skipDuringClone(el => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(el.attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n if (el.hasAttribute('wire:id') && ! el.__livewire && ! hasComponent(el.getAttribute('wire:id'))) {\n let component = initComponent(el)\n\n Alpine.onAttributeRemoved(el, 'wire:id', () => {\n destroyComponent(component.id)\n })\n }\n\n let directives = Array.from(el.getAttributeNames())\n .filter(name => matchesForLivewireDirective(name))\n .map(name => extractDirective(el, name))\n\n directives.forEach(directive => {\n trigger('directive.global.init', { el, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n\n let component = findComponentByEl(el, false)\n\n if (component) {\n trigger('element.init', { el, component })\n\n directives.forEach(directive => {\n trigger('directive.init', { el, component, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n }\n },\n // We still want global directives to be processed during cloning, so we can do that in this fallback callback...\n el => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(el.attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n let directives = Array.from(el.getAttributeNames())\n .filter(name => matchesForLivewireDirective(name))\n .map(name => extractDirective(el, name))\n\n directives.forEach(directive => {\n trigger('directive.global.init', { el, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n })\n )\n\n Alpine.start()\n\n setTimeout(() => window.Livewire.initialRenderIsFinished = true)\n\n dispatch(document, 'livewire:initialized')\n}\n\nfunction ensureLivewireScriptIsntMisplaced() {\n let el = document.querySelector('script[data-update-uri][data-csrf]')\n\n // If there is no Livewire-injected script on the page, move on...\n if (! el) return\n\n // If there is, let's ensure it's at the top-level. If it's nested\n // inside a normal element, that probably means that a closing\n // tag was missing in the template and Chrome moved the tag.\n\n // We're only checking for \"div\" here because it's quick and useful...\n let livewireEl = el.closest('[wire\\\\:id]')\n\n if (livewireEl) {\n console.warn('Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.', livewireEl)\n }\n}\n", "// packages/persist/src/index.js\nfunction src_default(Alpine) {\n let persist = () => {\n let alias;\n let storage;\n try {\n storage = localStorage;\n } catch (e) {\n console.error(e);\n console.warn(\"Alpine: $persist is using temporary storage since localStorage is unavailable.\");\n let dummy = /* @__PURE__ */ new Map();\n storage = {\n getItem: dummy.get.bind(dummy),\n setItem: dummy.set.bind(dummy)\n };\n }\n return Alpine.interceptor((initialValue, getter, setter, path, key) => {\n let lookup = alias || `_x_${path}`;\n let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue;\n setter(initial);\n Alpine.effect(() => {\n let value = getter();\n storageSet(lookup, value, storage);\n setter(value);\n });\n return initial;\n }, (func) => {\n func.as = (key) => {\n alias = key;\n return func;\n }, func.using = (target) => {\n storage = target;\n return func;\n };\n });\n };\n Object.defineProperty(Alpine, \"$persist\", { get: () => persist() });\n Alpine.magic(\"persist\", persist);\n Alpine.persist = (key, { get, set }, storage = localStorage) => {\n let initial = storageHas(key, storage) ? storageGet(key, storage) : get();\n set(initial);\n Alpine.effect(() => {\n let value = get();\n storageSet(key, value, storage);\n set(value);\n });\n };\n}\nfunction storageHas(key, storage) {\n return storage.getItem(key) !== null;\n}\nfunction storageGet(key, storage) {\n let value = storage.getItem(key);\n if (value === void 0)\n return;\n return JSON.parse(value);\n}\nfunction storageSet(key, value, storage) {\n storage.setItem(key, JSON.stringify(value));\n}\n\n// packages/persist/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as persist\n};\n", "export function unwrap(object) {\n if (object === undefined) return undefined\n\n return JSON.parse(JSON.stringify(object))\n}\n\nexport function batch(callback) {\n let batch = {\n queued: false,\n updates: {},\n add(updates) {\n Object.assign(batch.updates, updates)\n\n if (batch.queued) return\n\n batch.queued = true\n\n queueMicrotask(batch.flush)\n },\n\n flush() {\n if (Object.keys(batch.updates).length) {\n callback(batch.updates)\n }\n\n batch.queued = false\n batch.updates = {}\n },\n }\n\n return batch\n}\n", "import { batch, unwrap } from \"./utils\"\n\nclass HistoryCoordinator {\n constructor() {\n this.url = null\n this.errorHandlers = {}\n\n this.batch = batch((updates) => {\n let url = this.getUrl()\n\n this.writeToHistory('replaceState', url, (state) => {\n // Only update state.alpine as we are merging...\n state.alpine = { ...state.alpine, ...unwrap(updates) }\n\n return state\n })\n\n this.url = null\n })\n }\n\n addErrorHandler(key, callback) {\n this.errorHandlers[key] = callback\n }\n\n getUrl() {\n // If the querystring has started changing the URL before the batch has been flushed, use the URL that was passed in...\n if (this.url) {\n // Always pick up the current hash from the browser, since Livewire only manages query strings\n // and the hash may have been changed externally (e.g. during Alpine init)...\n if (this.url instanceof URL) this.url.hash = window.location.hash\n return this.url\n }\n\n return new URL(window.location.href)\n }\n\n replaceState(url, updates) {\n this.url = url\n this.batch.add(updates)\n }\n\n pushState(url, updates) {\n // Flush any pending replaces first...\n this.batch.flush()\n\n this.writeToHistory('pushState', url, (state) => {\n // Replace the entire state as we are pushing...\n state = { alpine: { ...state.alpine, ...unwrap(updates) } }\n\n return state\n })\n }\n\n writeToHistory(method, url, callback) {\n let state = window.history.state || {}\n if (!state.alpine) state.alpine = {}\n\n // Process the state using the callback...\n state = callback(state)\n\n try {\n // 640k character limit:\n window.history[method](state, '', url.toString())\n } catch (error) {\n Object.values(this.errorHandlers).forEach(\n handler => typeof handler === 'function' && handler(error, url)\n )\n\n // Remove error handlers after processing as they could be different depending on what is calling the method...\n this.errorHandlers = {}\n\n console.error(error)\n }\n }\n}\n\nlet historyCoordinator = new HistoryCoordinator()\n\nexport default historyCoordinator\n", "import historyCoordinator from \"@/plugins/history/coordinator\"\n\nclass Snapshot {\n constructor(url, html) {\n this.url = url\n this.html = html\n }\n}\n\nlet snapshotCache = {\n currentKey: null,\n currentUrl: null,\n keys: [],\n lookup: {},\n\n limit: 10,\n\n has(location) {\n return this.lookup[location] !== undefined\n },\n\n retrieve(location) {\n let snapshot = this.lookup[location]\n\n if (snapshot === undefined)\n throw (\n 'No back button cache found for current location: ' +\n location\n )\n\n return snapshot\n },\n\n replace(key, snapshot) {\n if (this.has(key)) {\n this.lookup[key] = snapshot\n } else {\n this.push(key, snapshot)\n }\n },\n\n push(key, snapshot) {\n this.lookup[key] = snapshot\n\n let index = this.keys.indexOf(key)\n\n if (index > -1) this.keys.splice(index, 1)\n\n this.keys.unshift(key)\n\n this.trim()\n },\n\n trim() {\n for (let key of this.keys.splice(this.limit)) {\n delete this.lookup[key]\n }\n }\n}\n\nlet currentPageStatus = null\n\nexport function storeCurrentPageStatus(status) {\n currentPageStatus = status\n}\n\nexport function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() {\n // Get the URL with all querystring changes...\n let url = historyCoordinator.getUrl()\n \n // Create a history state entry for the initial page load.\n // (This is so later hitting back can restore this page).\n replaceUrl(url, document.documentElement.outerHTML)\n}\n\nexport function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(key, url) {\n let html = document.documentElement.outerHTML\n\n snapshotCache.replace(key, new Snapshot(url, html))\n}\n\nexport function whenTheBackOrForwardButtonIsClicked(\n registerFallback,\n handleHtml\n) {\n let fallback\n\n registerFallback(i => (fallback = i))\n\n window.addEventListener('popstate', e => {\n let state = e.state || {}\n\n let alpine = state.alpine || {}\n\n // If the current page is not a 2xx status code, then we want to force a full page refresh to ensure that the error page assets aren't kept in the DOM...\n if (currentPageStatus && (currentPageStatus < 200 || currentPageStatus >= 300)) {\n return window.location.href = alpine.url\n }\n\n // If state is an empty object, then the popstate has probably been triggered\n // by anchor tags `#my-heading`, so we don't want to handle them.\n if (Object.keys(state).length === 0) return\n\n if (! alpine.snapshotIdx) return\n\n if (snapshotCache.has(alpine.snapshotIdx)) {\n let snapshot = snapshotCache.retrieve(alpine.snapshotIdx)\n\n handleHtml(snapshot.html, snapshot.url, snapshotCache.currentUrl, snapshotCache.currentKey)\n\n snapshotCache.currentKey = alpine.snapshotIdx\n snapshotCache.currentUrl = snapshot.url\n } else {\n snapshotCache.currentKey = null\n snapshotCache.currentUrl = null\n\n fallback(alpine.url)\n }\n })\n}\n\nexport function updateUrlAndStoreLatestHtmlForFutureBackButtons(\n html,\n destination\n) {\n pushUrl(destination, html)\n}\n\nexport function pushUrl(url, html) {\n updateUrl('pushState', url, html)\n}\n\nexport function replaceUrl(url, html) {\n updateUrl('replaceState', url, html)\n}\n\nfunction updateUrl(method, url, html) {\n let key = url.toString() + '-' + Math.random()\n\n method === 'pushState'\n ? snapshotCache.push(key, new Snapshot(url, html))\n : snapshotCache.replace(key = (snapshotCache.currentKey ?? key), new Snapshot(url, html))\n\n historyCoordinator.addErrorHandler('navigate', error => {\n if (error instanceof DOMException && error.name === 'SecurityError') {\n console.error(\n \"Livewire: You can't use wire:navigate with a link to a different root domain: \" +\n url\n )\n }\n })\n\n historyCoordinator[method](url, { snapshotIdx: key, url: url.toString() })\n\n snapshotCache.currentKey = key\n snapshotCache.currentUrl = url\n}\n", "\nexport function whenThisLinkIsPressed(el, callback) {\n let isProgrammaticClick = e => ! e.isTrusted\n let isNotPlainLeftClick = e => (e.which > 1) || (e.altKey) || (e.ctrlKey) || (e.metaKey) || (e.shiftKey)\n let isNotPlainEnterKey = (e) => (e.which !== 13) || (e.altKey) || (e.ctrlKey) || (e.metaKey) || (e.shiftKey)\n\n el.addEventListener('click', e => {\n // This allows programmatic clicking of links via: `$0.click()`...\n if (isProgrammaticClick(e)) {\n e.preventDefault()\n\n callback(whenReleased => whenReleased())\n\n return\n }\n\n // This allows cmd+click and such to still work as expected...\n if (isNotPlainLeftClick(e)) return;\n\n // If it's a plain left click, we want to prevent \"click\" and let \"mouseup\" do its thing...\n e.preventDefault()\n })\n\n el.addEventListener('mousedown', e => {\n // We only care about left clicks for wire:navigate...\n if (isNotPlainLeftClick(e)) return;\n\n e.preventDefault()\n\n callback((whenReleased) => {\n let handler = e => {\n e.preventDefault()\n\n requestAnimationFrame(() => {\n whenReleased()\n })\n\n el.removeEventListener('mouseup', handler)\n }\n\n el.addEventListener('mouseup', handler)\n })\n })\n\n el.addEventListener(\"keydown\", e => {\n // We only care about the enter key...\n if (isNotPlainEnterKey(e)) return;\n\n e.preventDefault()\n\n callback(whenReleased => whenReleased())\n })\n}\n\nexport function whenThisLinkIsHoveredFor(el, ms = 60, callback) {\n el.addEventListener('mouseenter', e => {\n let timeout = setTimeout(() => {\n callback(e)\n }, ms)\n\n let handler = () => {\n clearTimeout(timeout)\n el.removeEventListener('mouseleave', handler)\n }\n\n el.addEventListener('mouseleave', handler)\n })\n}\n\nexport function extractDestinationFromLink(linkEl) {\n return createUrlObjectFromString(linkEl.getAttribute('href'))\n}\n\nexport function createUrlObjectFromString(urlString) {\n return urlString !== null && new URL(urlString, document.baseURI)\n}\n\nexport function getUriStringFromUrlObject(urlObject) {\n return urlObject.pathname + urlObject.search + urlObject.hash\n}\n", "import { getUriStringFromUrlObject } from \"./links\"\nimport { sendNavigateRequest } from \"@/request\"\nimport { storeCurrentPageStatus } from \"./history\"\n\nexport function fetchHtml(destination, callback, errorCallback) {\n let uri = getUriStringFromUrlObject(destination)\n\n performFetch(uri, (html, finalDestination, status) => {\n storeCurrentPageStatus(status)\n\n callback(html, finalDestination)\n }, errorCallback)\n}\n\nexport function performFetch(uri, callback, errorCallback) {\n sendNavigateRequest(uri, callback, errorCallback)\n}\n", "import { performFetch } from \"@/plugins/navigate/fetch\";\nimport { getUriStringFromUrlObject } from \"./links\";\nimport { storeCurrentPageStatus } from \"./history\";\n\n// Warning: this could cause some memory leaks\nlet prefetches = {}\n\n// Default prefetch cache duration is 30 seconds...\nlet cacheDuration = 30000\n\nexport function prefetchHtml(destination, callback, errorCallback) {\n let uri = getUriStringFromUrlObject(destination)\n\n if (prefetches[uri]) return\n\n prefetches[uri] = { finished: false, html: null, whenFinished: () => setTimeout(() => delete prefetches[uri], cacheDuration) }\n\n performFetch(uri, (html, routedUri, status) => {\n storeCurrentPageStatus(status)\n\n callback(html, routedUri)\n }, () => {\n // If the fetch failed, remove the prefetch so it gets attempted again...\n delete prefetches[uri]\n\n errorCallback()\n })\n}\n\nexport function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination) {\n let state = prefetches[getUriStringFromUrlObject(destination)]\n state.html = html\n state.finished = true\n state.finalDestination = finalDestination\n state.whenFinished()\n}\n\nexport function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) {\n let uri = getUriStringFromUrlObject(destination)\n\n if (! prefetches[uri]) return ifNoPrefetchExists()\n\n if (prefetches[uri].finished) {\n let html = prefetches[uri].html\n let finalDestination = prefetches[uri].finalDestination\n\n delete prefetches[uri]\n\n return receive(html, finalDestination)\n } else {\n prefetches[uri].whenFinished = () => {\n let html = prefetches[uri].html\n let finalDestination = prefetches[uri].finalDestination\n\n delete prefetches[uri]\n\n receive(html, finalDestination)\n }\n }\n}\n\n", "import Alpine from \"alpinejs\"\n\nexport function packUpPersistedTeleports(persistedEl) {\n // Persisted elements get removed from the DOM and then re-added later. We need to do the same\n // with any `x-teleport`ed elements...\n Alpine.mutateDom(() => {\n persistedEl.querySelectorAll('[data-teleport-template]').forEach(i => i._x_teleport.remove())\n })\n}\n\nexport function removeAnyLeftOverStaleTeleportTargets(body) {\n // We need to remove any left-over teleported elements form the page\n // as they are stale and will be re-initialized when Alpine boots up on this page...\n Alpine.mutateDom(() => {\n body.querySelectorAll('[data-teleport-target]').forEach(i => i.remove())\n })\n}\n\nexport function unPackPersistedTeleports(persistedEl) {\n // Before we put back any persisted elements, we're going to\n // find any \"x-teleports\" and put their targets back on the page...\n Alpine.walk(persistedEl, (el, skip) => {\n if (! el._x_teleport) return;\n\n el._x_teleportPutBack()\n\n skip()\n })\n}\n\nexport function isTeleportTarget(el) {\n return el.hasAttribute('data-teleport-target')\n}\n", "\nexport function storeScrollInformationInHtmlBeforeNavigatingAway() {\n document.body.setAttribute('data-scroll-x', document.body.scrollLeft)\n document.body.setAttribute('data-scroll-y', document.body.scrollTop)\n\n document.querySelectorAll(['[x-navigate\\\\:scroll]', '[wire\\\\:navigate\\\\:scroll]']).forEach(el => {\n el.setAttribute('data-scroll-x', el.scrollLeft)\n el.setAttribute('data-scroll-y', el.scrollTop)\n })\n}\n\nexport function restoreScrollPositionOrScrollToTop() {\n let scroll = el => {\n if (! el.hasAttribute('data-scroll-x')) {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' })\n } else {\n el.scrollTo({\n top: Number(el.getAttribute('data-scroll-y')),\n left: Number(el.getAttribute('data-scroll-x')),\n behavior: 'instant',\n })\n el.removeAttribute('data-scroll-x')\n el.removeAttribute('data-scroll-y')\n }\n }\n\n queueMicrotask(() => {\n queueMicrotask(() => { // Double microtask here to make sure scrolling restoration is the LAST thing to happen. (Even after Alpine's x-init functions)...\n scroll(document.body)\n\n document.querySelectorAll(['[x-navigate\\\\:scroll]', '[wire\\\\:navigate\\\\:scroll]']).forEach(scroll)\n })\n })\n}\n", "import Alpine from 'alpinejs'\n\nlet els = {}\n\nexport function storePersistantElementsForLater(callback) {\n els = {}\n\n document.querySelectorAll('[x-persist]').forEach(i => {\n els[i.getAttribute('x-persist')] = i\n\n callback(i)\n\n Alpine.mutateDom(() => {\n i.remove()\n })\n })\n}\n\nexport function putPersistantElementsBack(callback) {\n let usedPersists = []\n\n document.querySelectorAll('[x-persist]').forEach(i => {\n let old = els[i.getAttribute('x-persist')]\n\n // There might be a brand new x-persist element...\n if (! old) return\n\n usedPersists.push(i.getAttribute('x-persist'))\n\n old._x_wasPersisted = true\n\n callback(old, i)\n\n Alpine.mutateDom(() => {\n i.replaceWith(old)\n })\n })\n\n Object.entries(els).forEach(([key, el]) => {\n if (usedPersists.includes(key)) return\n\n // Destory the un-used persist DOM trees before releasing them...\n Alpine.destroyTree(el)\n })\n\n // Release unused persists for garbage collection...\n els = {}\n}\n\nexport function isPersistedElement(el) {\n return el.hasAttribute('x-persist')\n}\n", "import NProgress from 'nprogress'\nimport { getNonce } from '@/utils'\n\nNProgress.configure({\n minimum: 0.1,\n trickleSpeed: 200,\n showSpinner: false,\n parent: 'body',\n})\n\ninjectStyles()\n\nlet inProgress = false\n\nexport function showAndStartProgressBar() {\n inProgress = true\n\n // Only show progress bar if it's been a little bit...\n setTimeout(() => {\n if (! inProgress) return\n\n NProgress.start()\n }, 150)\n}\n\nexport function finishAndHideProgressBar() {\n inProgress = false\n\n NProgress.done()\n}\n\nexport function removeAnyLeftOverStaleProgressBars() {\n NProgress.remove()\n}\n\nfunction injectStyles() {\n let style = document.createElement('style')\n\n style.innerHTML = `/* Make clicks pass-through */\n\n #nprogress {\n pointer-events: none;\n }\n\n #nprogress .bar {\n background: var(--livewire-progress-bar-color, #29d);\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n }\n\n /* Fancy blur effect */\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px var(--livewire-progress-bar-color, #29d), 0 0 5px var(--livewire-progress-bar-color, #29d);\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n\n /* Remove these to get rid of the spinner */\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n\n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: var(--livewire-progress-bar-color, #29d);\n border-left-color: var(--livewire-progress-bar-color, #29d);\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n\n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n\n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n\n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `\n\n let nonce = getNonce()\n\n if (nonce) style.nonce = nonce\n\n document.head.appendChild(style)\n}\n", "\nexport function packUpPersistedPopovers(persistedEl) {\n if (!isPopoverSupported()) return;\n\n persistedEl.querySelectorAll(':popover-open').forEach(el => {\n el.setAttribute('data-navigate-popover-open', '')\n\n let animations = el.getAnimations()\n\n // Gather any in-progress animations, serialize them, and pause them, for later re-triggering...\n el._pausedAnimations = animations.map(animation => ({\n keyframes: animation.effect.getKeyframes(),\n options: {\n duration: animation.effect.getTiming().duration,\n easing: animation.effect.getTiming().easing,\n fill: animation.effect.getTiming().fill,\n iterations: animation.effect.getTiming().iterations\n },\n currentTime: animation.currentTime,\n playState: animation.playState\n }))\n\n animations.forEach(i => i.pause())\n })\n}\n\nexport function unPackPersistedPopovers(persistedEl) {\n if (!isPopoverSupported()) return;\n\n persistedEl.querySelectorAll('[data-navigate-popover-open]').forEach(el => {\n el.removeAttribute('data-navigate-popover-open')\n\n // Wait for the popovers to be fully connected to the DOM...\n queueMicrotask(() => {\n if (! el.isConnected) return\n\n // Show them because disconnected popovers are force-hidden...\n el.showPopover()\n\n // End the out-of-the-box animations...\n el.getAnimations().forEach(i => i.finish())\n\n // If there are any paused animations, we need to re-trigger them...\n if (el._pausedAnimations) {\n el._pausedAnimations.forEach(({keyframes, options, currentTime, now, playState}) => {\n let animation = el.animate(keyframes, options);\n\n animation.currentTime = currentTime;\n })\n\n delete el._pausedAnimations\n }\n })\n })\n}\n\nfunction isPopoverSupported() {\n return typeof document.createElement('div').showPopover === 'function';\n}\n", "import { replaceNoncesInHtml, cloneScriptTag } from '@/utils'\n\nlet oldBodyScriptTagHashes = []\n\nlet attributesExemptFromScriptTagHashing = [\n 'data-csrf',\n 'nonce',\n 'aria-hidden',\n]\n\nexport function swapCurrentPageWithNewHtml(html, andThen) {\n // Rewrite nonces in the fetched HTML to match the original page's nonce\n // before parsing, so DOMParser doesn't trigger CSP violations...\n html = replaceNoncesInHtml(html)\n\n let newDocument = (new DOMParser()).parseFromString(html, \"text/html\")\n let newHtml = newDocument.documentElement\n let newBody = document.adoptNode(newDocument.body)\n let newHead = document.adoptNode(newDocument.head)\n\n oldBodyScriptTagHashes = oldBodyScriptTagHashes.concat(Array.from(document.body.querySelectorAll('script')).map(i => {\n return simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing))\n }))\n\n let afterRemoteScriptsHaveLoaded = () => {}\n\n replaceHtmlAttributes(newHtml)\n\n mergeNewHead(newHead).finally(() => {\n afterRemoteScriptsHaveLoaded()\n })\n\n prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes)\n\n let oldBody = document.body\n\n document.body.replaceWith(newBody)\n\n Alpine.destroyTree(oldBody)\n\n andThen(i => afterRemoteScriptsHaveLoaded = i)\n}\n\nfunction prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes) {\n newBody.querySelectorAll('script').forEach(i => {\n // We don't want to re-run script tags marked as \"data-navigate-once\"...\n if (i.hasAttribute('data-navigate-once')) {\n // However, if they didn't exist on the previous page, we do.\n // Therefore, we'll check the \"old body script hashes\" to\n // see if it was already there before skipping it...\n\n let hash = simpleHash(\n ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)\n )\n\n if (oldBodyScriptTagHashes.includes(hash)) return\n }\n\n i.replaceWith(cloneScriptTag(i))\n })\n}\n\nfunction replaceHtmlAttributes(newHtmlElement) {\n let currentHtmlElement = document.documentElement\n\n // Process attributes that are in the new element...\n Array.from(newHtmlElement.attributes).forEach(attr => {\n const name = attr.name\n const value = attr.value\n\n if (currentHtmlElement.getAttribute(name) !== value) {\n // Add or update attribute if the value differs...\n currentHtmlElement.setAttribute(name, value)\n }\n })\n\n // Remove remaining attributes that are not in the new element...\n Array.from(currentHtmlElement.attributes).forEach(attr => {\n if (!newHtmlElement.hasAttribute(attr.name)) {\n currentHtmlElement.removeAttribute(attr.name)\n }\n })\n}\n\nfunction mergeNewHead(newHead) {\n let children = Array.from(document.head.children)\n\n // Compare head assets ignoring nonces so that identical assets\n // with different nonces aren't treated as \"new\"...\n let headChildrenHtmlLookup = children.map(i =>\n ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)\n )\n\n // Only add scripts and styles that aren't already loaded on the page.\n let garbageCollector = document.createDocumentFragment()\n\n let touchedHeadElements = []\n\n let remoteScriptsPromises = []\n\n for (let child of Array.from(newHead.children)) {\n if (isAsset(child)) {\n let childHtml = ignoreAttributes(child.outerHTML, attributesExemptFromScriptTagHashing)\n\n if (! headChildrenHtmlLookup.includes(childHtml)) {\n if (isTracked(child)) {\n if (ifTheQueryStringChangedSinceLastRequest(child, children)) {\n setTimeout(() => window.location.reload())\n }\n }\n\n if (isScript(child)) {\n try {\n remoteScriptsPromises.push(\n injectScriptTagAndWaitForItToFullyLoad(\n cloneScriptTag(child)\n )\n )\n } catch (error) {\n // Let's eat any promise rejects so that we don't\n // break the rest of the Alpine intializing...\n // Any errors triggered by adding the script tag to the page\n // will still be thrown...\n }\n } else {\n document.head.appendChild(child)\n }\n } else {\n garbageCollector.appendChild(child)\n }\n\n touchedHeadElements.push(child)\n }\n }\n\n // Remove any assets that aren't on the new page...\n // @todo: Re-enable this code and find a better way to managed injected stylesheets. See livewire/livewire#6824\n // for (let child of Array.from(document.head.children)) {\n // if (isAsset(child)) {\n // if (! touchedHeadElements.some(i => i.outerHTML === child.outerHTML)) {\n // child.remove()\n // }\n // }\n // }\n\n // How to free up the garbage collector?\n\n // Remove existing non-asset elements like meta, base, title, template.\n for (let child of Array.from(document.head.children)) {\n if (! isAsset(child)) child.remove()\n }\n\n // Add new non-asset elements left over in the new head element.\n for (let child of Array.from(newHead.children)) {\n if (child.tagName.toLowerCase() === 'noscript') continue\n\n document.head.appendChild(child)\n }\n\n return Promise.all(remoteScriptsPromises)\n}\n\nasync function injectScriptTagAndWaitForItToFullyLoad(script) {\n return new Promise((resolve, reject) => {\n // Script assets need to be loaded synchronously so that scripts have\n // their global variables available...\n if (script.src) {\n script.onload = () => resolve()\n script.onerror = () => reject()\n } else {\n resolve()\n }\n\n document.head.appendChild(script)\n })\n}\n\nfunction isTracked(el) {\n return el.hasAttribute('data-navigate-track')\n}\n\nfunction ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) {\n let [uri, queryString] = extractUriAndQueryString(el)\n\n return currentHeadChildren.some(child => {\n if (! isTracked(child)) return false\n\n let [currentUri, currentQueryString] = extractUriAndQueryString(child)\n\n // Only consider a data-navigate-track element changed if the query string has changed (not the URI)...\n if (currentUri === uri && queryString !== currentQueryString) return true\n })\n}\n\nfunction extractUriAndQueryString(el) {\n let url = isScript(el) ? el.src : el.href\n\n return url.split('?')\n}\n\nfunction isAsset(el) {\n return (el.tagName.toLowerCase() === 'link' && el.getAttribute('rel').toLowerCase() === 'stylesheet')\n || el.tagName.toLowerCase() === 'style'\n || el.tagName.toLowerCase() === 'script'\n}\n\nfunction isScript(el) {\n return el.tagName.toLowerCase() === 'script'\n}\n\nfunction simpleHash(str) {\n return str.split('').reduce((a, b) => {\n a = ((a << 5) - a) + b.charCodeAt(0)\n\n return a & a\n }, 0);\n}\n\nfunction ignoreAttributes(subject, attributesToRemove) {\n let result = subject\n\n attributesToRemove.forEach(attr => {\n // Create a regex pattern to match the attribute and its value.\n // The regex handles attributes that have values surrounded by either single or double quotes.\n const regex = new RegExp(`${attr}=\"[^\"]*\"|${attr}='[^']*'`, 'g')\n\n result = result.replace(regex, '')\n })\n\n // Remove all whitespace to make things less flaky...\n result = result.replaceAll(' ', '')\n\n return result.trim()\n}\n", "import { replaceUrl, updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks, updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks, updateUrlAndStoreLatestHtmlForFutureBackButtons, whenTheBackOrForwardButtonIsClicked } from \"./history\"\nimport { getPretchedHtmlOr, prefetchHtml, storeThePrefetchedHtmlForWhenALinkIsClicked } from \"./prefetch\"\nimport { createUrlObjectFromString, extractDestinationFromLink, whenThisLinkIsHoveredFor, whenThisLinkIsPressed } from \"./links\"\nimport { isTeleportTarget, packUpPersistedTeleports, removeAnyLeftOverStaleTeleportTargets, unPackPersistedTeleports } from \"./teleport\"\nimport { restoreScrollPositionOrScrollToTop, storeScrollInformationInHtmlBeforeNavigatingAway } from \"./scroll\"\nimport { isPersistedElement, putPersistantElementsBack, storePersistantElementsForLater } from \"./persist\"\nimport { finishAndHideProgressBar, removeAnyLeftOverStaleProgressBars, showAndStartProgressBar } from \"./bar\"\nimport { packUpPersistedPopovers, unPackPersistedPopovers } from \"./popover\"\nimport { swapCurrentPageWithNewHtml } from \"./page\"\nimport { fetchHtml } from \"./fetch\"\n\nlet enablePersist = true\nlet showProgressBar = true\nlet restoreScroll = true\nlet autofocus = false\n\nexport default function (Alpine) {\n\n Alpine.navigate = (url, options = {}) => {\n let { preserveScroll = false } = options\n\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: false, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { preserveScroll })\n }\n\n Alpine.navigate.disableProgressBar = () => {\n showProgressBar = false\n }\n\n Alpine.addInitSelector(() => `[${Alpine.prefixed('navigate')}]`)\n\n Alpine.directive('navigate', (el, { modifiers }) => {\n let shouldPrefetchOnHover = modifiers.includes('hover')\n\n let preserveScroll = modifiers.includes('preserve-scroll')\n\n shouldPrefetchOnHover && whenThisLinkIsHoveredFor(el, 60, () => {\n let destination = extractDestinationFromLink(el)\n\n if (! destination) return\n\n prefetchHtml(destination, (html, finalDestination) => {\n storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination)\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n })\n\n whenThisLinkIsPressed(el, (whenItIsReleased) => {\n let destination = extractDestinationFromLink(el)\n\n if (! destination) return\n\n prefetchHtml(destination, (html, finalDestination) => {\n storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination)\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n\n whenItIsReleased(() => {\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: false, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { preserveScroll })\n })\n })\n })\n\n function navigateTo(destination, { preserveScroll = false, shouldPushToHistoryState = true }) {\n showProgressBar && showAndStartProgressBar()\n\n fetchHtmlOrUsePrefetchedHtml(destination, (html, finalDestination) => {\n // Fire the navigating event, allowing listeners to register onSwap callbacks\n let swapCallbacks = []\n\n fireEventForOtherLibrariesToHookInto('alpine:navigating', {\n onSwap: (callback) => swapCallbacks.push(callback)\n })\n\n restoreScroll && storeScrollInformationInHtmlBeforeNavigatingAway()\n\n cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement()\n\n // Only update the current page's history state if we're pushing to history.\n // For popstate-triggered navigations (shouldPushToHistoryState = false),\n // the history state has already changed and we shouldn't overwrite it.\n shouldPushToHistoryState && updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks()\n\n preventAlpineFromPickingUpDomChanges(Alpine, andAfterAllThis => {\n enablePersist && storePersistantElementsForLater(persistedEl => {\n packUpPersistedTeleports(persistedEl)\n packUpPersistedPopovers(persistedEl)\n })\n\n if (shouldPushToHistoryState) {\n updateUrlAndStoreLatestHtmlForFutureBackButtons(html, finalDestination)\n } else {\n replaceUrl(finalDestination, html)\n }\n\n swapCurrentPageWithNewHtml(html, (afterNewScriptsAreDoneLoading) => {\n removeAnyLeftOverStaleTeleportTargets(document.body)\n\n enablePersist && putPersistantElementsBack((persistedEl, newStub) => {\n unPackPersistedTeleports(persistedEl)\n unPackPersistedPopovers(persistedEl)\n })\n\n !preserveScroll && restoreScrollPositionOrScrollToTop()\n\n // Invoke any callbacks registered via onSwap during the navigating event\n swapCallbacks.forEach(callback => callback())\n\n afterNewScriptsAreDoneLoading(() => {\n andAfterAllThis(() => {\n setTimeout(() => {\n autofocus && autofocusElementsWithTheAutofocusAttribute()\n })\n\n nowInitializeAlpineOnTheNewPage(Alpine)\n\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n showProgressBar && finishAndHideProgressBar()\n })\n })\n })\n })\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n }\n\n whenTheBackOrForwardButtonIsClicked(\n (ifThePageBeingVisitedHasntBeenCached) => {\n ifThePageBeingVisitedHasntBeenCached((url) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: true, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { shouldPushToHistoryState: false })\n })\n },\n (html, url, currentPageUrl, currentPageKey) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: true, cached: true,\n })\n\n if (prevented) return\n\n // @todo: see if there's a way to update the current HTML BEFORE\n // the back button is hit, and not AFTER:\n storeScrollInformationInHtmlBeforeNavigatingAway()\n\n // Fire the navigating event, allowing listeners to register onSwap callbacks\n let swapCallbacks = []\n\n fireEventForOtherLibrariesToHookInto('alpine:navigating', {\n onSwap: (callback) => swapCallbacks.push(callback)\n })\n\n // Update the snapshot (not the history state, as the history state has\n // already changed to the new page due to the popstate event).\n // This ensures the current HTML has the latest snapshot.\n updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageKey, currentPageUrl)\n\n preventAlpineFromPickingUpDomChanges(Alpine, andAfterAllThis => {\n enablePersist && storePersistantElementsForLater(persistedEl => {\n packUpPersistedTeleports(persistedEl)\n packUpPersistedPopovers(persistedEl)\n })\n\n swapCurrentPageWithNewHtml(html, () => {\n removeAnyLeftOverStaleProgressBars()\n\n removeAnyLeftOverStaleTeleportTargets(document.body)\n\n enablePersist && putPersistantElementsBack((persistedEl, newStub) => {\n unPackPersistedTeleports(persistedEl)\n unPackPersistedPopovers(persistedEl)\n })\n\n restoreScrollPositionOrScrollToTop()\n\n // Invoke any callbacks registered via onSwap during the navigating event\n swapCallbacks.forEach(callback => callback())\n\n andAfterAllThis(() => {\n autofocus && autofocusElementsWithTheAutofocusAttribute()\n\n nowInitializeAlpineOnTheNewPage(Alpine)\n\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n })\n })\n })\n },\n )\n\n // Because DOMContentLoaded is fired on first load,\n // we should fire alpine:navigated as a replacement as well...\n setTimeout(() => {\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n })\n}\n\nfunction fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCallback) {\n getPretchedHtmlOr(fromDestination, callback, () => {\n fetchHtml(fromDestination, callback, errorCallback)\n })\n}\n\nfunction preventAlpineFromPickingUpDomChanges(Alpine, callback) {\n Alpine.stopObservingMutations()\n\n callback((afterAllThis) => {\n Alpine.startObservingMutations()\n\n queueMicrotask(() => {\n afterAllThis()\n })\n })\n}\n\nfunction fireEventForOtherLibrariesToHookInto(name, detail) {\n let event = new CustomEvent(name, {\n cancelable: true,\n bubbles: true,\n detail,\n })\n\n document.dispatchEvent(event)\n\n return event.defaultPrevented\n}\n\nfunction nowInitializeAlpineOnTheNewPage(Alpine) {\n Alpine.initTree(document.body, undefined, (el, skip) => {\n if (el._x_wasPersisted) skip()\n })\n}\n\nfunction autofocusElementsWithTheAutofocusAttribute() {\n document.querySelector('[autofocus]') && document.querySelector('[autofocus]').focus()\n}\n\nfunction cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() {\n // Create a new tree walker that skips persisted elements...\n let walker = function (root, callback) {\n Alpine.walk(root, (el, skip) => {\n if (isPersistedElement(el)) skip()\n if (isTeleportTarget(el)) skip()\n else callback(el, skip)\n })\n }\n\n // Set Alpine in motion to destroy itself on the page. If this proves\n // to be a performance issue at some point (walking the DOM tree),\n // we can be more surgical about cleaning up x-for/if instead...\n Alpine.destroyTree(document.body, walker)\n}\n", "import { isObjecty } from \"@/utils\"\nimport historyCoordinator from \"./coordinator\"\nimport { unwrap } from \"./utils\"\n\nexport default function history(Alpine) {\n Alpine.magic('queryString', (el, { interceptor }) => {\n let alias\n let alwaysShow = false\n let usePush = false\n\n return interceptor((initialSeedValue, getter, setter, path, key) => {\n let queryKey = alias || path\n\n let { initial, replace, push, pop } = track(queryKey, initialSeedValue, alwaysShow)\n\n setter(initial)\n\n if (! usePush) {\n Alpine.effect(() => replace(getter()))\n } else {\n Alpine.effect(() => push(getter()))\n\n pop(async newValue => {\n setter(newValue)\n\n let tillTheEndOfTheMicrotaskQueue = () => Promise.resolve()\n\n await tillTheEndOfTheMicrotaskQueue() // ...so that we preserve the internal lock...\n })\n }\n\n return initial\n }, func => {\n func.alwaysShow = () => { alwaysShow = true; return func }\n func.usePush = () => { usePush = true; return func }\n func.as = key => { alias = key; return func }\n })\n })\n\n Alpine.history = { track }\n}\n\nexport function track(name, initialSeedValue, alwaysShow = false, except = null) {\n let { has, get, set, remove } = queryStringUtils()\n\n let url = historyCoordinator.getUrl()\n let isInitiallyPresentInUrl = has(url, name)\n let initialValue = isInitiallyPresentInUrl ? get(url, name) : initialSeedValue\n let initialValueMemo = JSON.stringify(initialValue)\n let exceptValueMemo = JSON.stringify(except)\n\n let hasReturnedToInitialValue = (newValue) => JSON.stringify(newValue) === initialValueMemo\n let hasReturnedToExceptValue = (newValue) => JSON.stringify(newValue) === exceptValueMemo\n\n if (alwaysShow) url = set(url, name, initialValue)\n\n replace(url, name, { value: initialValue })\n\n let lock = false\n\n let update = (strategy, newValue) => {\n if (lock) return\n\n let url = historyCoordinator.getUrl()\n\n // This block of code is what needs to be changed for this failing test to pass:\n if (! alwaysShow && ! isInitiallyPresentInUrl && hasReturnedToInitialValue(newValue)) {\n url = remove(url, name)\n // This is so that when deeply nested values are tracked, but their parent array/object\n // is removed, we can handle it gracefully by removing the entry from the URL instead\n // of letting it get set to `?someKey=undefined` which causes issues on refresh...\n } else if (newValue === undefined) {\n url = remove(url, name)\n } else if (! alwaysShow && hasReturnedToExceptValue(newValue)) {\n url = remove(url, name)\n } else {\n url = set(url, name, newValue)\n }\n\n // Right now, the above block, checks a few conditions and updates/removes an entry from the query string.\n // The new strategy needs to be something like:\n // - If \"alwaysShow\" is toggled on, then just \"set\" the whole thing with no deep diff\n // - Otherwise, run a deep comparison callback (given the original value and new value).\n // - The callback recieves two params (leaf name and value)\n // - Check leaf name and value for existance in the original URL from page load. If it's there, just call \"set\"\n // - Check leaf name and value for equivelance to original name and value, if equal, call \"remove\", otherwise, \"set\"\n\n // That code will look something like this:\n\n // if (alwaysShow) {\n // set(url, name, newValue)\n // } else {\n // deepCompare(name, newValue, originalValue, (leafName, leafValue) => {\n // // ....\n // })\n // }\n\n strategy(url, name, { value: newValue})\n }\n\n return {\n initial: initialValue,\n\n replace(newValue) { // Update via replaceState...\n update(replace, newValue)\n },\n\n push(newValue) { // Update via pushState...\n update(push, newValue)\n },\n\n pop(receiver) { // \"popstate\" handler...\n let handler = (e) => {\n if (! e.state || ! e.state.alpine) return\n\n Object.entries(e.state.alpine).forEach(([iName, { value: newValue }]) => {\n if (iName !== name) return\n\n lock = true\n\n // Allow the \"receiver\" to be an async function in case a non-syncronous\n // operation (like an ajax) requests needs to happen while preserving\n // the \"locking\" mechanism (\"lock = true\" in this case)...\n let result = receiver(newValue)\n\n if (result instanceof Promise) {\n result.finally(() => lock = false)\n } else {\n lock = false\n }\n })\n }\n\n window.addEventListener('popstate', handler)\n\n return () => window.removeEventListener('popstate', handler)\n }\n }\n}\n\nfunction replace(url, key, object) {\n historyCoordinator.replaceState(url, { [key]: object })\n}\n\nfunction push(url, key, object) {\n historyCoordinator.pushState(url, { [key]: object })\n}\n\nfunction queryStringUtils() {\n return {\n has(url, key) {\n let search = url.search\n\n if (! search) return false\n\n let data = fromQueryString(search, key)\n\n return Object.keys(data).includes(key)\n },\n get(url, key) {\n let search = url.search\n\n if (! search) return false\n\n let data = fromQueryString(search, key)\n\n return data[key]\n },\n set(url, key, value) {\n let data = fromQueryString(url.search, key)\n\n data[key] = stripNulls(unwrap(value))\n\n url.search = toQueryString(data)\n\n return url\n },\n remove(url, key) {\n let data = fromQueryString(url.search, key)\n\n delete data[key]\n\n url.search = toQueryString(data)\n\n return url\n },\n }\n}\n\nfunction stripNulls(value) {\n if (! isObjecty(value)) return value\n\n for (let key in value) {\n if (value[key] === null) delete value[key]\n else value[key] = stripNulls(value[key])\n }\n\n return value\n}\n\n// This function converts JavaScript data to bracketed query string notation...\n// { items: [['foo']] } -> \"items[0][0]=foo\"\nfunction toQueryString(data) {\n let isObjecty = (subject) => typeof subject === 'object' && subject !== null\n\n let buildQueryStringEntries = (data, entries = {}, baseKey = '') => {\n Object.entries(data).forEach(([iKey, iValue]) => {\n let key = baseKey === '' ? iKey : `${baseKey}[${iKey}]`\n\n if (iValue === null) {\n entries[key] = '';\n } else if (! isObjecty(iValue)) {\n entries[key] = encodeURIComponent(iValue)\n .replaceAll('%20', '+') // Conform to RFC1738\n .replaceAll('%2C', ',')\n } else {\n entries = {...entries, ...buildQueryStringEntries(iValue, entries, key)}\n }\n })\n\n return entries\n }\n\n let entries = buildQueryStringEntries(data)\n\n return Object.entries(entries).map(([key, value]) => `${key}=${value}`).join('&')\n}\n\n// This function converts bracketed query string notation back to JS data...\n// \"items[0][0]=foo\" -> { items: [['foo']] }\nfunction fromQueryString(search, queryKey) {\n search = search.replace('?', '')\n\n if (search === '') return {}\n\n let insertDotNotatedValueIntoData = (key, value, data) => {\n let [first, second, ...rest] = key.split('.')\n\n // We're at a leaf node, let's make the assigment...\n if (! second) return data[key] = value\n\n // This is where we fill in empty arrays/objects allong the way to the assigment...\n if (data[first] === undefined) {\n data[first] = isNaN(second) ? {} : []\n }\n\n // Keep deferring assignment until the full key is built up...\n insertDotNotatedValueIntoData([second, ...rest].join('.'), value, data[first])\n }\n\n let entries = search.split('&').map(i => i.split('='))\n\n // let data = {} creates a security (XSS) vulnerability here. We need to use\n // Object.create(null) instead so that we have a \"pure\" object that doesnt\n // inherit Object.prototype and expose the js internals to manipulation.\n let data = Object.create(null)\n\n entries.forEach(([key, value]) => {\n // Query string params don't always have values... (`?foo=`)\n if ( typeof value == 'undefined' ) return;\n\n value = decodeURIComponent(value.replaceAll('+', '%20'))\n\n let decodedKey = decodeURIComponent(key)\n\n let shouldBeHandledAsArray = decodedKey.includes('[') && decodedKey.startsWith(queryKey)\n\n if (!shouldBeHandledAsArray) {\n data[key] = value\n } else {\n // Convert to dot notation because it's easier...\n let dotNotatedKey = decodedKey.replaceAll('[', '.').replaceAll(']', '')\n\n insertDotNotatedValueIntoData(dotNotatedKey, value, data)\n }\n })\n\n return data\n}\n", "import { dispatchGlobal as dispatch, dispatchTo, on } from './events'\nimport { find, first, getByName, all } from './store'\nimport { start } from './lifecycle'\nimport { on as hook, trigger, triggerAsync } from './hooks'\nimport { directive } from './directives'\nimport Alpine from 'alpinejs'\nimport { fireAction, interceptAction, interceptMessage, interceptRequest } from '@/request'\n\nlet Livewire = {\n directive,\n dispatchTo,\n // @todo: See if this can be injected from a v4 feature...\n interceptAction: (callback) => interceptAction(callback),\n interceptMessage: (callback) => interceptMessage(callback),\n interceptRequest: (callback) => interceptRequest(callback),\n fireAction: (component, method, params = [], metadata = {}) => fireAction(component, method, params, metadata),\n start,\n first,\n find,\n getByName,\n all,\n hook,\n trigger,\n triggerAsync,\n dispatch,\n on,\n get navigate() {\n return Alpine.navigate\n }\n}\n\nlet warnAboutMultipleInstancesOf = entity => console.warn(`Detected multiple instances of ${entity} running`)\n\nif (window.Livewire) warnAboutMultipleInstancesOf('Livewire')\nif (window.Alpine) warnAboutMultipleInstancesOf('Alpine')\n\n// Register features...\nimport './features/index'\n\n// Register directives...\nimport './directives/index'\n\n// Make globals...\nwindow.Livewire = Livewire\nwindow.Alpine = Alpine\n\nif (window.livewireScriptConfig === undefined) {\n window.Alpine.__fromLivewire = true\n\n document.addEventListener('DOMContentLoaded', () => {\n if (window.Alpine.__fromLivewire === undefined) {\n // If this is undefined, we know that an outside Alpine bundle\n // has been included on the page and will cause problems...\n warnAboutMultipleInstancesOf('Alpine')\n }\n\n // Start Livewire...\n Livewire.start()\n })\n}\n\nexport { Livewire, Alpine }\n", "import { on as hook } from '@/hooks'\n\nhook('effect', ({ component, effects }) => {\n registerListeners(component, effects.listeners || [])\n})\n\nfunction registerListeners(component, listeners) {\n listeners.forEach(name => {\n // Register a global listener...\n let handler = (e) => {\n if (component.isLazy && ! component.hasBeenLazyLoaded) return\n\n if (e.__livewire) e.__livewire.receivedBy.push(component)\n\n component.$wire.call('__dispatch', name, e.detail || {})\n }\n\n window.addEventListener(name, handler)\n\n component.addCleanup(() => window.removeEventListener(name, handler))\n\n // Register a listener for when \"to\" or \"self\"\n component.el.addEventListener(name, (e) => {\n if (component.isLazy && ! component.hasBeenLazyLoaded) return\n\n // We don't care about non-Livewire dispatches...\n if (! e.__livewire) return\n\n // We don't care about Livewire bubbling dispatches (only \"to\" and \"self\")...\n if (e.bubbles) return\n\n if (e.__livewire) e.__livewire.receivedBy.push(component.id)\n\n component.$wire.call('__dispatch', name, e.detail || {})\n })\n })\n}\n\n\n", "import { on } from '@/hooks'\nimport Alpine from 'alpinejs'\nimport { evaluateExpression } from '../evaluator'\nimport { replaceNoncesInHtml, cloneScriptTag } from '../utils'\n\nlet executedScripts = new WeakMap\n\nlet executedAssets = new Set\n\non('payload.intercept', async ({ assets }) => {\n if(! assets) return\n\n for (let [key, asset] of Object.entries(assets)) {\n await onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, async () => {\n await addAssetsToHeadTagOfPage(asset)\n })\n }\n})\n\n// Assets that were injected into the HTML need to be registered so that\n// they aren't loaded again...\non('component.init', ({ component }) => {\n let assets = component.snapshot.memo.assets\n\n if (assets) {\n assets.forEach((key) => {\n if (executedAssets.has(key)) return\n executedAssets.add(key)\n })\n }\n})\n\non('effect', ({ component, effects }) => {\n let scripts = effects.scripts\n\n if (scripts) {\n Object.entries(scripts).forEach(([key, content]) => {\n onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, () => {\n let scriptContent = extractScriptTagContent(content)\n\n // Always wrap @script content in an IIFE since it's multi-statement code.\n // Alpine's evaluator tries to detect let/const at the start, but doesn't\n // account for leading comments which causes syntax errors.\n scriptContent = scriptContent.includes('await')\n ? `(async()=>{ ${scriptContent} })()`\n : `(()=>{ ${scriptContent} })()`\n\n Alpine.dontAutoEvaluateFunctions(() => {\n evaluateExpression(component.el, scriptContent, {\n context: component.$wire,\n scope: {\n '$wire': component.$wire,\n '$js': component.$wire.js,\n },\n })\n })\n })\n })\n }\n})\n\nfunction onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, callback) {\n if (executedScripts.has(component)) {\n let alreadyRunKeys = executedScripts.get(component)\n\n if (alreadyRunKeys.includes(key)) return\n }\n\n callback()\n\n if (! executedScripts.has(component)) executedScripts.set(component, [])\n\n let alreadyRunKeys = executedScripts.get(component)\n\n alreadyRunKeys.push(key)\n\n executedScripts.set(component, alreadyRunKeys)\n}\n\nfunction extractScriptTagContent(rawHtml) {\n let scriptRegex = /<script\\b[^>]*>([\\s\\S]*?)<\\/script>/gm\n let matches = scriptRegex.exec(rawHtml)\n let innards = matches && matches[1] ? matches[1].trim() : ''\n\n return innards\n}\n\nasync function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callback) {\n if (executedAssets.has(key)) return\n\n executedAssets.add(key)\n\n await callback()\n}\n\nasync function addAssetsToHeadTagOfPage(rawHtml) {\n // Rewrite nonces in the asset HTML to match the initial page's nonce.\n // Assets from Livewire update requests have a new nonce, but the browser\n // still enforces the original page's CSP header...\n rawHtml = replaceNoncesInHtml(rawHtml)\n\n let newDocument = (new DOMParser()).parseFromString(rawHtml, \"text/html\")\n let newHead = document.adoptNode(newDocument.head)\n\n for (let child of newHead.children) {\n try {\n await runAssetSynchronously(child)\n } catch (error) {\n // Let's eat any promise rejects so that we don't\n // break the rest of Livewire's handling of the response...\n // Any errors triggered by adding the script tag to the page\n // will still be thrown...\n }\n }\n}\n\nasync function runAssetSynchronously(child) {\n return new Promise((resolve, reject) => {\n if (isScript(child)) {\n let script = cloneScriptTag(child)\n\n // Script assets need to be loaded synchronously so that scripts have\n // their global variables available...\n if (script.src) {\n script.onload = () => resolve()\n script.onerror = () => reject()\n } else {\n resolve()\n }\n\n document.head.appendChild(script)\n } else {\n document.head.appendChild(child)\n\n resolve()\n }\n })\n}\n\nfunction isScript(el) {\n return el.tagName.toLowerCase() === 'script'\n}\n\n", "import Alpine from 'alpinejs'\n\nfunction getAlpineScopeKeys(el) {\n let keys = []\n let currentEl = el\n\n while (currentEl) {\n if (currentEl._x_dataStack && currentEl._x_dataStack.length > 0) {\n // Only read the first scope object -- this is the element's OWN\n // data, not inherited parent scopes. Alpine's addScopeToNode()\n // always puts the element's own data at index 0, followed by\n // the parent chain. Reading all entries would leak parent Alpine\n // scope keys across the Livewire component boundary.\n let ownScope = currentEl._x_dataStack[0]\n\n for (let key of Object.keys(ownScope)) {\n if (! keys.includes(key) && ! key.startsWith('$')) keys.push(key)\n }\n }\n\n // Stop at the Livewire component root element...\n if (currentEl.hasAttribute && currentEl.hasAttribute('wire:id')) break\n\n currentEl = currentEl.parentElement\n }\n\n return keys\n}\n\nexport function evaluateExpression(el, expression, options = {}) {\n if (! expression || expression.trim() === '') return\n\n let result = Alpine.evaluateRaw(el, expression, options)\n\n if (result instanceof Promise) {\n result.catch(() => {})\n }\n\n return result\n}\n\nexport function evaluateActionExpression(el, expression, options = {}) {\n if (! expression || expression.trim() === '') return\n\n let contextualExpression = contextualizeExpression(expression, el)\n\n try {\n let result = Alpine.evaluateRaw(el, contextualExpression, options)\n\n // Silently catch Livewire request failures. These are handled by\n // Livewire at the request level...\n if (result instanceof Promise && result._livewireAction) {\n result.catch(() => {})\n }\n\n return result\n } catch (error) {\n console.warn(`Livewire Expression Error: ${error.message}\\n\\n${ expression ? 'Expression: \\\"' + expression + '\\\"\\n\\n' : '' }`, el)\n\n console.error(error)\n }\n}\n\nexport function contextualizeExpression(expression, el) {\n let SKIP = ['JSON', 'true', 'false', 'null', 'undefined', 'this', '$wire', '$event']\n\n // If an element is provided, collect Alpine scope keys between\n // this element and the Livewire component root so they don't\n // get incorrectly prefixed with $wire.\n if (el) {\n SKIP.push(...getAlpineScopeKeys(el))\n }\n let strings = []\n\n // 1. Yank out string literals so we don't touch them\n let result = expression.replace(/([\"'`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/g, (m) => {\n strings.push(m)\n return `___${strings.length - 1}___`\n })\n\n // 2. Prefix identifiers not after a dot (skip placeholders from step 1)\n // Also skip object keys (identifiers immediately followed by colon)\n result = result.replace(/(^|[^.\\w$])(\\$?[a-zA-Z_]\\w*)/g, (m, pre, ident, offset) => {\n if (SKIP.includes(ident) || /^___\\d+___$/.test(ident)) return pre + ident\n if (result[offset + m.length] === ':') return pre + ident\n return pre + '$wire.' + ident\n })\n\n // 3. Restore strings\n return result.replace(/___(\\d+)___/g, (m, i) => strings[i])\n}\n", "import { evaluateExpression } from '../evaluator'\nimport { findComponentByEl } from '@/store'\nimport { overrideMethod } from '@/$wire'\nimport { on } from '@/hooks'\nimport Alpine from 'alpinejs'\n\nAlpine.magic('js', el => {\n let component = findComponentByEl(el)\n\n return component.$wire.js\n})\n\non('effect', ({ component, effects }) => {\n let js = effects.js\n let xjs = effects.xjs\n\n if (js) {\n Object.entries(js).forEach(([method, body]) => {\n overrideMethod(component, method, () => {\n evaluateExpression(component.el, body)\n })\n })\n }\n\n if (xjs) {\n xjs.forEach(({ expression, params }) => {\n params = Object.values(params)\n\n evaluateExpression(component.el, expression, { scope: component.getJsActions(), params })\n })\n }\n})\n", "import { trigger } from \"@/hooks\"\nimport { findComponentByEl } from \"@/store\"\nimport Alpine from 'alpinejs'\nimport { extractFragmentMetadataFromMarkerNode, isEndFragmentMarker, isStartFragmentMarker } from \"./fragment\"\nimport { transitionDomMutation } from \"./directives/wire-transition\"\n\nexport async function morph(component, el, html) {\n let wrapperTag = getTagName(el.parentElement)\n\n let wrapper = document.createElement(wrapperTag)\n\n wrapper.innerHTML = html\n let parentComponent\n\n try {\n parentComponent = findComponentByEl(el.parentElement)\n } catch (e) {}\n\n parentComponent && (wrapper.__livewire = parentComponent)\n\n let to = wrapper.firstElementChild\n\n // Set the snapshot and effects on the `to` element that way if there's a\n // mismatch or problem the component will able to be re-initialized...\n to.setAttribute('wire:snapshot', component.snapshotEncoded)\n\n // Remove the 'html' key from the effects as the html will be morphed...\n let effects = { ...component.effects }\n delete effects.html\n to.setAttribute('wire:effects', JSON.stringify(effects))\n\n to.__livewire = component\n\n trigger('morph', { el, toEl: to, component })\n\n // Let's first do a lookup of all the child components to see if the component already\n // exists and if so we'll clone it and replace the child component with the clone.\n // This is to ensure that components don't loose state even if there might be a\n // `wire:key` missing from elements within a loop around the component...\n let existingComponentsMap = {}\n\n el.querySelectorAll('[wire\\\\:id]').forEach(component => {\n existingComponentsMap[component.getAttribute('wire:id')] = component\n })\n\n to.querySelectorAll('[wire\\\\:id]').forEach(child => {\n // If the child has a `wire:snapshot` it means it's new, so we don't need to find it...\n if (child.hasAttribute('wire:snapshot')) return\n\n let wireId = child.getAttribute('wire:id')\n let existingComponent = existingComponentsMap[wireId]\n\n if (existingComponent) {\n child.replaceWith(existingComponent.cloneNode(true))\n }\n })\n\n let transitionOptions = component.effects.transition || {}\n\n await transitionDomMutation(el, to, () => {\n Alpine.morph(el, to, getMorphConfig(component))\n }, transitionOptions)\n\n trigger('morphed', { el, component })\n}\n\nexport async function morphFragment(component, startNode, endNode, toHTML) {\n let fromContainer = startNode.parentElement\n let fromContainerTag = getTagName(fromContainer)\n\n let toContainer = document.createElement(fromContainerTag)\n toContainer.innerHTML = toHTML\n toContainer.__livewire = component\n\n // Add the parent component reference to an outer wrapper if it exists...\n let parentElement = component.el.parentElement\n let parentElementTag = getTagName(parentElement)\n\n let parentComponent\n\n try {\n parentComponent = parentElement ? findComponentByEl(parentElement) : null\n } catch (e) {}\n\n if (parentComponent) {\n let parentProviderWrapper = document.createElement(parentElementTag)\n parentProviderWrapper.appendChild(toContainer)\n parentProviderWrapper.__livewire = parentComponent\n }\n\n trigger('island.morph', { startNode, endNode, component })\n\n let transitionOptions = component.effects.transition || {}\n\n // Check if the island's own content has [wire:transition] elements.\n // Without this, the parent element (which contains everything) would be\n // passed to transitionDomMutation, causing it to find [wire:transition]\n // elements outside the island and trigger spurious view transitions...\n let islandHasTransition = false\n let node = startNode.nextSibling\n while (node && node !== endNode) {\n if (node.nodeType === 1 && (node.hasAttribute?.('wire:transition') || node.querySelector?.('[wire\\\\:transition]'))) {\n islandHasTransition = true\n break\n }\n node = node.nextSibling\n }\n\n let fromEl = islandHasTransition ? fromContainer : document.createElement('div')\n\n await transitionDomMutation(fromEl, toContainer, () => {\n Alpine.morphBetween(startNode, endNode, toContainer, getMorphConfig(component))\n }, transitionOptions)\n\n trigger('island.morphed', { startNode, endNode, component })\n}\n\nfunction getMorphConfig(component) {\n return {\n updating: (el, toEl, childrenOnly, skip, skipChildren, skipUntil) => {\n // Skip fragments...\n if (isStartFragmentMarker(el) && isStartFragmentMarker(toEl)) {\n let metadata = extractFragmentMetadataFromMarkerNode(toEl)\n\n if (metadata.mode !== 'morph') {\n skipUntil(node => {\n if (isEndFragmentMarker(node)) {\n let endMarkerMetadata = extractFragmentMetadataFromMarkerNode(node)\n\n return endMarkerMetadata.token === metadata.token\n }\n\n return false\n })\n }\n }\n\n if (isntElement(el)) return\n\n trigger('morph.updating', { el, toEl, component, skip, childrenOnly, skipChildren, skipUntil })\n\n // bypass DOM diffing for children by overwriting the content\n if (el.__livewire_replace === true) el.innerHTML = toEl.innerHTML;\n // completely bypass DOM diffing for this element and all children\n if (el.__livewire_replace_self === true) { el.outerHTML = toEl.outerHTML; return skip(); }\n\n if (el.__livewire_ignore === true) return skip()\n if (el.__livewire_ignore_self === true) childrenOnly()\n if (el.__livewire_ignore_children === true) return skipChildren()\n\n // Children will update themselves.\n if (isComponentRootEl(el) && el.getAttribute('wire:id') !== component.id) return skip()\n\n // Give the root Livewire \"to\" element, the same object reference as the \"from\"\n // element. This ensures new Alpine magics like $wire and @entangle can\n // initialize in the context of a real Livewire component object.\n if (isComponentRootEl(el)) toEl.__livewire = component\n },\n\n updated: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.updated', { el, component })\n },\n\n removing: (el, skip) => {\n if (isntElement(el)) return\n\n trigger('morph.removing', { el, component, skip })\n },\n\n removed: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.removed', { el, component })\n },\n\n adding: (el) => {\n trigger('morph.adding', { el, component })\n },\n\n added: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.added', { el })\n },\n\n key: (el) => {\n if (isntElement(el)) return\n\n return el.hasAttribute(`wire:id`)\n ? el.getAttribute(`wire:id`)\n : // If no component \"id\", then first check for \"wire:key\", then \"id\"\n el.hasAttribute(`wire:key`)\n ? el.getAttribute(`wire:key`)\n : el.id\n },\n\n lookahead: false,\n }\n}\n\nfunction isntElement(el) {\n return typeof el.hasAttribute !== 'function'\n}\n\nfunction isComponentRootEl(el) {\n return el.hasAttribute('wire:id')\n}\n\nexport function getTagName(el) {\n // If the root element is a \"tr\", we need the wrapper to be a \"table\"...\n let tag = el ? el.tagName.toLowerCase() : 'div'\n\n // If the tag is a custom element, we can't instantiate it using the hyphenated\n // tag name, so we need to get the name off the custom element instead...\n let customElement = customElements.get(tag)\n\n return customElement ? customElement.name : tag\n}", "import { globalDirective } from \"@/directives\"\n\nlet defaultName = 'match-element'\n\n// No-op \u2014 viewTransitionName is now set dynamically by transitionDomMutation()\n// to avoid creating permanent stacking contexts...\nglobalDirective('transition', ({ el, directive, cleanup }) => {\n //\n})\n\nfunction setTransitionNames(root, options = {}) {\n root.querySelectorAll('[wire\\\\:transition]').forEach(el => {\n if (el.style.viewTransitionName) return\n\n let name = el.getAttribute('wire:transition')\n\n // When the developer orchestrates a typed swap (e.g. #[Transition('forward')]),\n // unnamed wire:transition elements stay unnamed so they ride with the parent's\n // snapshot instead of becoming independent groups with the browser's default fade...\n if (! name && options.type) return\n\n el.style.viewTransitionName = name || defaultName\n })\n}\n\nfunction clearTransitionNames(root) {\n root.querySelectorAll('[wire\\\\:transition]').forEach(el => {\n el.style.viewTransitionName = ''\n })\n}\n\nexport async function transitionDomMutation(fromEl, toEl, callback, options = {}) {\n // Skip transitions entirely if requested...\n if (options.skip) return callback()\n\n // Only transition if there is a [wire:transition] element within either the from or to elements...\n if (! fromEl.querySelector('[wire\\\\:transition]') && ! toEl.querySelector('[wire\\\\:transition]')) return callback()\n\n // Check if View Transitions API is supported...\n if (typeof document.startViewTransition !== 'function') {\n return callback()\n }\n\n // Skip entirely if a modal dialog is already open (transitions behind\n // a dialog are invisible to the user and the ::view-transition pseudo-\n // elements would paint above the dialog during animation)...\n if (document.querySelector('dialog:modal')) return callback()\n\n // Set transition names right before the transition starts (not permanently)...\n setTransitionNames(fromEl, options)\n\n // Disable root transitions for the page...\n let style = document.createElement('style')\n\n style.textContent = `\n @media (prefers-reduced-motion: reduce) {\n ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) {\n animation: none !important;\n }\n }\n\n ::view-transition-old(root) {\n animation: none !important;\n opacity: 0 !important;\n }\n\n ::view-transition-new(root) {\n animation: none !important;\n opacity: 1 !important;\n }\n `\n\n document.head.appendChild(style)\n\n let update = () => {\n callback()\n\n // After a morph, newly added wire:transition elements need their viewTransitionName\n // set synchronously. Alpine's MutationObserver would normally handle this, but its\n // internal queueMicrotask batching delays processing by one microtask hop \u2014 and the\n // View Transitions API's \"activate\" step captures the new DOM state in between,\n // before Alpine has a chance to initialize the directive...\n setTransitionNames(fromEl, options)\n }\n\n let transitionConfig = { update }\n\n // Add transition types if provided...\n if (options.type) {\n transitionConfig.types = [options.type]\n }\n\n let cleanup = () => {\n style.remove()\n clearTransitionNames(fromEl)\n }\n\n // Watch for modal dialogs opening during the transition (e.g., via Alpine x-effect).\n // ::view-transition pseudo-elements paint above the top layer, so elements with\n // wire:transition would visually appear above dialog modals during animation.\n // This observer catches showModal() the instant it sets the `open` attribute\n // and skips the transition before the browser paints a frame...\n let skipOnDialog = (transition) => {\n let observer = new MutationObserver(() => {\n if (document.querySelector('dialog:modal')) {\n transition.skipTransition()\n observer.disconnect()\n }\n })\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['open'],\n subtree: true,\n })\n\n transition.finished.finally(() => observer.disconnect())\n }\n\n try {\n let transition = document.startViewTransition(transitionConfig)\n\n skipOnDialog(transition)\n\n transition.finished.finally(cleanup)\n\n await transition.updateCallbackDone\n } catch (e) {\n // Firefox 144+ supports View Transitions but only with a callback, not a config object (no transition types support)\n let transition = document.startViewTransition(update)\n\n skipOnDialog(transition)\n\n transition.finished.finally(cleanup)\n\n await transition.updateCallbackDone\n }\n}\n", "import { morph } from \"@/morph\";\nimport { interceptMessage } from \"@/request\";\n\ninterceptMessage(({ message, onSuccess }) => {\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let html = payload.effects.html\n\n if (! html) return\n\n await morph(message.component, message.component.el, html)\n })\n })\n})\n", "import { dispatch, dispatchEl, dispatchRef, dispatchSelf, dispatchTo } from '@/events'\nimport { on } from '@/hooks'\n\non('effect', ({ component, effects }) => {\n // Wrapping this in a triple queueMicrotask...\n // The first one puts it after all other \"effect\" hooks...\n // The second one puts it after all reactive Alpine effects\n // (that are processed via flushJobs in scheduler)...\n // The third one puts it after morph changes have been applied...\n queueMicrotask(() => {\n queueMicrotask(() => {\n queueMicrotask(() => {\n dispatchEvents(component, effects.dispatches || [])\n })\n })\n })\n})\n\nfunction dispatchEvents(component, dispatches) {\n dispatches.forEach(({ name, params = {}, self = false, component: componentName, ref, el }) => {\n if (self) dispatchSelf(component, name, params)\n else if (componentName) dispatchTo(componentName, name, params)\n else if (ref) dispatchRef(component, ref, name, params)\n else if (el) dispatchEl(component, el, name, params)\n else dispatch(component, name, params)\n })\n}\n", "import { getDirectives } from '@/directives'\nimport { on } from '@/hooks'\nimport { Bag } from '@/utils'\nimport Alpine from 'alpinejs'\n\nlet cleanups = new Bag\n\n// Adding a setTimeout here so that these event listeners are\n// registered AFTER most other event listenrs, this way, we\n// can call \"stopPropagation\" for things like wire:confirm\non('directive.init', ({ el, directive, cleanup, component }) => setTimeout(() => {\n if (directive.value !== 'submit') return\n\n // Livewire will clean it all up automatically when the form\n // submission returns and the new DOM lacks these additions...\n el.addEventListener('submit', () => {\n // If using wire:submit=\"$parent...\", we will need to use\n // the parent ID as a reference for undoing because it's\n // the ID that will come back from the network request.\n let componentId = directive.expression.startsWith('$parent')\n ? component.parent.id\n : component.id\n\n let cleanup = disableForm(el)\n\n cleanups.add(componentId, cleanup)\n })\n}))\n\non('commit', ({ component, respond }) => {\n respond(() => {\n cleanups.each(component.id, i => i())\n cleanups.remove(component.id)\n })\n})\n\nfunction disableForm(formEl) {\n let undos = []\n\n Alpine.walk(formEl, (el, skip) => {\n if (! formEl.contains(el)) return\n\n if (el.hasAttribute('wire:ignore')) return skip()\n\n if (shouldMarkDisabled(el)) {\n undos.push(markDisabled(el))\n } else if (shouldMarkReadOnly(el)) {\n undos.push(markReadOnly(el))\n }\n })\n\n return () => {\n while (undos.length > 0) undos.shift()()\n }\n}\n\nfunction shouldMarkDisabled(el) {\n let tag = el.tagName.toLowerCase()\n let inputTypesThatDontSupportReadonly = [\n 'hidden', 'range', 'color', 'checkbox', 'radio',\n 'file', 'submit', 'image', 'reset', 'button'\n ]\n\n if (tag === 'select') return true\n if (tag === 'button' && el.type === 'submit') return true\n if (tag === 'input' && inputTypesThatDontSupportReadonly.includes(el.type)) return true\n\n return false\n}\n\nfunction shouldMarkReadOnly(el) {\n return ['input', 'textarea'].includes(el.tagName.toLowerCase())\n}\n\nfunction markDisabled(el) {\n let undo = el.disabled\n ? () => {}\n : () => el.disabled = false\n\n el.disabled = true\n\n return undo\n}\n\nfunction markReadOnly(el) {\n let undo = el.readOnly\n ? () => {}\n : () => el.readOnly = false\n\n el.readOnly = true\n\n return undo\n}\n", "import { on } from '@/hooks'\n\non('commit', ({ succeed }) => {\n succeed(({ effects }) => {\n let download = effects.download\n\n if (! download) return\n\n // We need to use window.webkitURL so downloads work on iOS Safari.\n let urlObject = window.webkitURL || window.URL\n\n let url = urlObject.createObjectURL(\n base64toBlob(download.content, download.contentType)\n )\n\n let invisibleLink = document.createElement('a')\n\n invisibleLink.style.display = 'none'\n invisibleLink.href = url\n invisibleLink.download = download.name\n\n document.body.appendChild(invisibleLink)\n\n invisibleLink.click()\n\n setTimeout(function() {\n urlObject.revokeObjectURL(url)\n }, 0);\n })\n})\n\nfunction base64toBlob(b64Data, contentType = '', sliceSize = 512) {\n const byteCharacters = atob(b64Data)\n const byteArrays = []\n\n if (contentType === null) contentType = ''\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n let slice = byteCharacters.slice(offset, offset + sliceSize)\n\n let byteNumbers = new Array(slice.length)\n\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i)\n }\n\n let byteArray = new Uint8Array(byteNumbers)\n\n byteArrays.push(byteArray)\n }\n\n return new Blob(byteArrays, { type: contentType });\n}\n", "import { on } from '@/hooks'\nimport { dataGet } from '@/utils'\nimport Alpine from 'alpinejs'\nimport { track } from '@/plugins/history'\n\non('effect', ({ component, effects, cleanup }) => {\n let queryString = effects['url']\n\n if (! queryString) return\n\n Object.entries(queryString).forEach(([key, value]) => {\n let { name, as, use, alwaysShow, except } = normalizeQueryStringEntry(key, value)\n\n if (! as) as = name\n\n let initialValue = [false, null, undefined].includes(except) ? dataGet(component.ephemeral, name) : except\n\n let { replace, push, pop } = track(as, initialValue, alwaysShow, except)\n\n if (use === 'replace') {\n let effectReference = Alpine.effect(() => {\n replace(dataGet(component.reactive, name))\n })\n\n cleanup(() => Alpine.release(effectReference))\n } else if (use === 'push') {\n let popNavigating = false\n\n let forgetCommitHandler = on('commit', ({ component: commitComponent, succeed }) => {\n if (component !== commitComponent) return\n\n let beforeValue = dataGet(component.canonical, name)\n\n succeed(() => {\n let afterValue = dataGet(component.canonical, name)\n\n if (JSON.stringify(beforeValue) === JSON.stringify(afterValue)) return\n\n // If we're handling a popstate (back/forward navigation), use\n // replaceState instead of pushState so we don't wipe out the\n // forward history entries...\n if (popNavigating) {\n replace(afterValue)\n } else {\n push(afterValue)\n }\n })\n })\n\n let forgetPopHandler = pop(async newValue => {\n popNavigating = true\n\n await component.$wire.set(name, newValue)\n\n // @todo: this is the absolute worst thing ever I'm so sorry this needs to be refactored stat:\n document.querySelectorAll('input').forEach(el => {\n el._x_forceModelUpdate && el._x_forceModelUpdate(el._x_model.get())\n })\n\n // Use requestAnimationFrame to ensure the flag stays true through\n // the succeed callback which fires in a requestAnimationFrame...\n requestAnimationFrame(() => popNavigating = false)\n })\n\n // If the current property value differs from the initial value\n // (e.g. restored from session), sync the URL via replaceState...\n let currentValue = dataGet(component.ephemeral, name)\n\n if (JSON.stringify(currentValue) !== JSON.stringify(initialValue)) {\n replace(currentValue)\n }\n\n cleanup(() => {\n forgetCommitHandler()\n forgetPopHandler()\n })\n }\n })\n})\n\nfunction normalizeQueryStringEntry(key, value) {\n let defaults = { use: 'replace', alwaysShow: false }\n\n if (typeof value === 'string') {\n return {...defaults, name: value, as: value }\n } else {\n let fullerDefaults = {...defaults, name: key, as: key }\n\n return {...fullerDefaults, ...value }\n }\n}\n", "import { on } from '@/hooks'\nimport { dispatchSelf } from '@/events'\n\non('request', ({ options }) => {\n if (window.Echo) {\n options.headers['X-Socket-ID'] = window.Echo.socketId()\n }\n})\n\non('effect', ({ component, effects }) => {\n let listeners = effects.listeners || []\n\n listeners.forEach(event => {\n if (event.startsWith('echo')) {\n if (typeof window.Echo === 'undefined') {\n console.warn('Laravel Echo cannot be found')\n\n return\n }\n\n let event_parts = event.split(/(echo:|echo-)|:|,/)\n\n if (event_parts[1] == 'echo:') {\n event_parts.splice(2, 0, 'channel', undefined)\n }\n\n if (event_parts[2] == 'notification') {\n event_parts.push(undefined, undefined)\n }\n\n let [\n s1,\n signature,\n channel_type,\n s2,\n channel,\n s3,\n event_name,\n ] = event_parts\n\n if (['channel', 'private', 'encryptedPrivate'].includes(channel_type)) {\n let handler = e => dispatchSelf(component, event, [e])\n\n window.Echo[channel_type](channel).listen(event_name, handler)\n\n component.addCleanup(() => {\n window.Echo[channel_type](channel).stopListening(event_name, handler)\n })\n } else if (channel_type == 'presence') {\n if (['here', 'joining', 'leaving'].includes(event_name)) {\n window.Echo.join(channel)[event_name](e => {\n dispatchSelf(component, event, [e])\n })\n\n component.addCleanup(() => {\n window.Echo.leave(channel)\n })\n } else{\n let handler = e => dispatchSelf(component, event, [e])\n\n window.Echo.join(channel).listen(event_name, handler)\n\n component.addCleanup(() => {\n window.Echo.leave(channel)\n })\n }\n } else if (channel_type == 'notification') {\n window.Echo.private(channel).notification(notification => {\n dispatchSelf(component, event, [notification])\n })\n\n component.addCleanup(() => {\n window.Echo.private(channel).stopListening('.Illuminate\\\\Notifications\\\\Events\\\\BroadcastNotificationCreated')\n })\n } else {\n console.warn('Echo channel type not yet supported')\n }\n }\n })\n})\n", "import { findRefEl } from '@/features/supportRefs'\nimport { interceptMessage } from '@/request'\nimport { findComponent } from '@/store'\n\ninterceptMessage(({ message, onStream }) => {\n onStream(({ json }) => {\n let { id, type, name, el, ref, content, mode } = json\n\n // Early return for islands because they are handled by the islands feature...\n if (type === 'island') return\n\n let component = findComponent(id)\n\n let targetEl = null\n\n if (type === 'directive') {\n const replaceEl = component.el.querySelector(`[wire\\\\:stream\\\\.replace=\"${name}\"]`)\n\n if (replaceEl) {\n targetEl = replaceEl\n mode = 'replace'\n } else {\n targetEl = component.el.querySelector(`[wire\\\\:stream=\"${name}\"]`)\n }\n } else if (type === 'ref') {\n targetEl = findRefEl(component, ref)\n } else if (type === 'element') {\n targetEl = component.el.querySelector(el)\n }\n\n if (! targetEl) return // Noop...\n\n if (mode === 'replace') {\n targetEl.innerHTML = content\n } else {\n targetEl.insertAdjacentHTML('beforeend', content)\n }\n })\n})\n", "document.addEventListener('livewire:initialized', () => {\n shouldHideProgressBar() && Alpine.navigate.disableProgressBar()\n})\n\ndocument.addEventListener('alpine:navigate', e => forwardEvent('livewire:navigate', e))\ndocument.addEventListener('alpine:navigating', e => forwardEvent('livewire:navigating', e))\ndocument.addEventListener('alpine:navigated', e => forwardEvent('livewire:navigated', e))\n\nfunction forwardEvent(name, original) {\n let event = new CustomEvent(name, { cancelable: true, bubbles: true, detail: original.detail })\n\n document.dispatchEvent(event)\n\n if (event.defaultPrevented) {\n original.preventDefault()\n }\n}\n\nexport function shouldRedirectUsingNavigateOr(effects, url, or) {\n let forceNavigate = effects.redirectUsingNavigate\n\n if (forceNavigate) {\n Alpine.navigate(url)\n } else {\n or()\n }\n}\n\nfunction shouldHideProgressBar() {\n if (!! document.querySelector('[data-no-progress-bar]')) return true\n\n if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === 'data-no-progress-bar') return true\n\n return false\n}\n", "import { on } from \"@/hooks\"\nimport { shouldRedirectUsingNavigateOr } from \"./supportNavigate\"\n\non('effect', ({ effects, request }) => {\n if (! effects['redirect']) return\n\n let preventDefault = false\n\n request.invokeOnRedirect({ url: effects['redirect'], preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n let url = effects['redirect']\n\n shouldRedirectUsingNavigateOr(effects, url, () => {\n window.location.href = url\n })\n})\n", "import { closestFragment, extractFragmentMetadataFromHtml, extractInnerHtmlFromFragmentHtml, findFragment } from '@/fragment'\nimport { interceptAction, interceptMessage } from '@/request'\nimport { morphFragment, getTagName } from '@/morph'\n\ninterceptAction(({ action }) => {\n let origin = action.origin\n\n if (! origin) return\n\n let { el, directive } = origin\n\n // Check for wire:island with modifiers (e.g., wire:island.append=\"foo\")\n let islandAttr = Array.from(el.attributes).find(attr => attr.name.startsWith('wire:island'))\n\n if (islandAttr) {\n let islandName = islandAttr.value\n\n // Parse modifiers from attribute name (e.g., \"wire:island.append\" -> [\"append\"])\n let attrParts = islandAttr.name.split('.')\n let isPrepend = attrParts.includes('prepend')\n let isAppend = attrParts.includes('append')\n\n let mode = isPrepend ? 'prepend' : (isAppend ? 'append' : 'morph')\n\n action.mergeMetadata({\n island: {\n name: islandName,\n mode: mode,\n }\n })\n\n return\n }\n\n let fragment = closestIsland(origin.el)\n\n if (! fragment) return\n\n action.mergeMetadata({\n island: {\n name: fragment.metadata.name,\n mode: 'morph',\n }\n })\n})\n\ninterceptMessage(({ message, onSuccess, onStream }) => {\n onStream(({ json }) => {\n let { type, islandFragment } = json\n\n if (type !== 'island') return\n\n renderIsland(message.component, islandFragment)\n })\n\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let fragments = payload.effects.islandFragments || []\n\n fragments.forEach(async fragmentHtml => {\n await renderIsland(message.component, fragmentHtml)\n })\n })\n })\n})\n\nexport function closestIsland(el) {\n return closestFragment(el, {\n isMatch: ({ type }) => {\n return type === 'island'\n },\n })\n}\n\nexport async function renderIsland(component, islandHtml) {\n let metadata = extractFragmentMetadataFromHtml(islandHtml)\n\n let fragment = findFragment(component.el, {\n isMatch: ({ type, token }) => {\n return type === metadata.type && token === metadata.token\n },\n })\n\n if (! fragment) return\n\n let incomingMetadata = extractFragmentMetadataFromHtml(islandHtml)\n let strippedContent = extractInnerHtmlFromFragmentHtml(islandHtml)\n\n let parentElementTag = getTagName(fragment.startMarkerNode.parentElement)\n\n let mode = incomingMetadata.mode || 'morph'\n\n if (mode === 'morph') {\n await morphFragment(component, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent)\n } else if (mode === 'append') {\n fragment.append(parentElementTag, strippedContent)\n } else if (mode === 'prepend') {\n fragment.prepend(parentElementTag, strippedContent)\n }\n}\n", "import { extractFragmentMetadataFromHtml, extractInnerHtmlFromFragmentHtml, findFragment } from '@/fragment'\nimport { interceptMessage } from '@/request'\nimport { findComponent } from '@/store'\nimport { morphFragment } from '@/morph'\n\ninterceptMessage(({ message, onSuccess, onStream }) => {\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let fragments = payload.effects.slotFragments || []\n\n fragments.forEach(async fragmentHtml => {\n await renderSlot(message.component, fragmentHtml)\n })\n })\n })\n})\n\nexport async function renderSlot(component, fragmentHtml) {\n let metadata = extractFragmentMetadataFromHtml(fragmentHtml)\n\n let targetComponent = findComponent(metadata.id)\n\n let fragment = findFragment(targetComponent.el, {\n isMatch: ({ name, token }) => {\n return name === metadata.name && token === metadata.token\n },\n })\n\n if (! fragment) return\n\n let strippedContent = extractInnerHtmlFromFragmentHtml(fragmentHtml)\n\n await morphFragment(targetComponent, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent)\n}\n", "import { interceptMessage } from '@/request'\n\ninterceptMessage(({ message, onSend, onFinish }) => {\n let undos = []\n\n onSend(() => {\n message.actions.forEach(action => {\n let origin = action.origin\n\n if (! origin) return\n\n // Use targetEl if explicitly set (can be null to skip data-loading entirely)\n let el = origin.hasOwnProperty('targetEl') ? origin.targetEl : origin.el\n\n // Skip if no element to apply data-loading to\n if (! el) return\n\n el.setAttribute('data-loading', 'true')\n\n undos.push(() => {\n el.removeAttribute('data-loading')\n })\n })\n })\n\n onFinish(() => undos.forEach(undo => undo()))\n})\n", "import { globalDirective } from \"@/directives\"\nimport Alpine from 'alpinejs'\n\nAlpine.addInitSelector(() => `[wire\\\\:current]`)\n\nlet onPageChanges = new Map\n\ndocument.addEventListener('livewire:navigated', () => {\n onPageChanges.forEach(i => i(new URL(window.location.href)))\n})\n\nglobalDirective('current', ({ el, directive, cleanup }) => {\n let expression = directive.expression\n\n let options = {\n exact: directive.modifiers.includes('exact'),\n strict: directive.modifiers.includes('strict'),\n ignore: directive.modifiers.includes('ignore'),\n }\n\n if (options.ignore) return\n\n // Fragment hrefs aren't supported as of yet...\n if (expression.startsWith('#')) return\n\n // If there is no href, let's not do anything...\n if (! el.hasAttribute('href')) return\n\n let href = el.getAttribute('href')\n\n let hrefUrl = new URL(href, window.location.href)\n\n let classes = expression.split(' ').filter(String)\n\n let refreshCurrent = url => {\n if (pathMatches(hrefUrl, url, options)) {\n el.classList.add(...classes)\n el.setAttribute('data-current', '')\n } else {\n el.classList.remove(...classes)\n el.removeAttribute('data-current')\n }\n }\n\n refreshCurrent(new URL(window.location.href))\n\n onPageChanges.set(el, refreshCurrent)\n\n cleanup(() => onPageChanges.delete(el))\n})\n\nexport function pathMatches(hrefUrl, actualUrl, options = {}) {\n // If the domains/hostnames don't match, we are not going to match...\n if (hrefUrl.hostname !== actualUrl.hostname) return false\n\n // Remove trailing slashes for consistency (if not .strict)...\n let hrefPath = options.strict ? hrefUrl.pathname : hrefUrl.pathname.replace(/\\/+$/, '')\n let actualPath = options.strict ? actualUrl.pathname : actualUrl.pathname.replace(/\\/+$/, '')\n\n if (options.exact) {\n return hrefPath === actualPath\n }\n\n let hrefPathSegments = hrefPath.split('/')\n let actualPathSegments = actualPath.split('/')\n\n\n for (let i = 0; i < hrefPathSegments.length; i++) {\n if (hrefPathSegments[i] !== actualPathSegments[i]) return false\n }\n\n return true\n}\n", "import Alpine from 'alpinejs'\n\n// Export all wire:navigate variations for use in other files\nexport let wireNavigateSelectors = [\n '[wire\\\\:navigate]',\n '[wire\\\\:navigate\\\\.hover]',\n '[wire\\\\:navigate\\\\.preserve-scroll]',\n '[wire\\\\:navigate\\\\.preserve-scroll\\\\.hover]',\n '[wire\\\\:navigate\\\\.hover\\\\.preserve-scroll]',\n]\n\n// Combined selector for querying all wire:navigate elements\nexport let wireNavigateSelector = wireNavigateSelectors.join(', ')\n\n// Attribute to Alpine directive mapping\nlet attributeMap = {\n 'wire:navigate': 'x-navigate',\n 'wire:navigate.hover': 'x-navigate.hover',\n 'wire:navigate.preserve-scroll': 'x-navigate.preserve-scroll',\n 'wire:navigate.preserve-scroll.hover': 'x-navigate.preserve-scroll.hover',\n 'wire:navigate.hover.preserve-scroll': 'x-navigate.hover.preserve-scroll',\n}\n\n// Register all selectors with Alpine\nwireNavigateSelectors.forEach(selector => {\n Alpine.addInitSelector(() => selector)\n})\n\nAlpine.interceptInit(\n Alpine.skipDuringClone(el => {\n // Find which wire:navigate attribute this element has\n for (let [wireAttr, alpineDirective] of Object.entries(attributeMap)) {\n if (el.hasAttribute(wireAttr)) {\n Alpine.bind(el, { [alpineDirective]: true })\n break\n }\n }\n })\n)\n\ndocument.addEventListener('alpine:navigating', () => {\n // Before navigating away, we'll inscribe the latest state of each component\n // in their HTML so that upon return, they will have the latest state...\n Livewire.all().forEach(component => {\n component.inscribeSnapshotAndEffectsOnElement()\n })\n})\n", "import { pathMatches } from '@/directives/wire-current'\nimport { wireNavigateSelector } from '@/directives/wire-navigate'\n\ndocument.addEventListener('livewire:navigated', () => {\n updateNavigateLinks()\n})\n\n// Also run on initial page load\ndocument.addEventListener('DOMContentLoaded', () => {\n updateNavigateLinks()\n})\n\nfunction updateNavigateLinks() {\n let currentUrl = new URL(window.location.href)\n let options = {\n exact: true,\n }\n\n // Find all links with any wire:navigate variation\n document.querySelectorAll(wireNavigateSelector).forEach(el => {\n // If the element has `wire:current` then the user might want to specify strict or \n // exact matching, so we will just return early so we don't override that...\n if (Array.from(el.attributes).some(attr => attr.name.startsWith('wire:current'))) return\n\n // Fragment hrefs aren't supported...\n let href = el.getAttribute('href')\n\n if (! href || href.startsWith('#')) return\n\n try {\n let hrefUrl = new URL(href, window.location.href)\n\n // Check if this link matches the current URL (using default partial matching)\n if (pathMatches(hrefUrl, currentUrl, options)) {\n el.setAttribute('data-current', '')\n } else {\n el.removeAttribute('data-current')\n }\n } catch (e) {\n // Invalid URL, skip\n }\n })\n}\n", "import { interceptMessage } from '@/request'\n\ninterceptMessage(({ message, onSuccess }) => {\n onSuccess(({ onSync, onMorph, onRender }) => {\n message.actions.forEach(action => {\n let origin = action.origin\n\n if (! origin || ! origin.directive) return\n\n let directive = origin.directive\n\n if (! directive.modifiers.includes('preserve-scroll')) return\n\n let oldHeight\n let oldScroll\n\n onSync(() => {\n oldHeight = document.body.scrollHeight\n oldScroll = window.scrollY\n })\n\n onMorph(async () => {\n let heightDiff = document.body.scrollHeight - oldHeight\n window.scrollTo(0, oldScroll + heightDiff)\n\n oldHeight = null\n oldScroll = null\n })\n })\n })\n})\n", "import Alpine from 'alpinejs'\nimport { extractDirective } from '@/directives'\nimport { evaluateActionExpression } from '@/evaluator'\nimport { findComponentByEl } from '@/store'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:intersect')) {\n let { name, value } = el.attributes[i]\n\n let directive = extractDirective(el, name)\n\n let modifierString = name.split('wire:intersect')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-intersect' + modifierString](e) {\n directive.eventContext = e\n\n let component = findComponentByEl(el, false)\n\n if (! component) return\n\n component.addActionContext({\n el,\n directive,\n })\n\n evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n", "import { setNextActionOrigin } from '@/request'\nimport { evaluateActionExpression } from '../evaluator'\nimport Alpine from 'alpinejs'\nimport { extractDirective } from '@/directives'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:sort:item')) {\n let directive = extractDirective(el, el.attributes[i].name)\n\n let modifierString = directive.modifiers.join('.')\n\n let expression = directive.expression\n\n Alpine.bind(el, {\n ['x-sort:item' + modifierString]() {\n return expression\n }\n })\n } else if (el.attributes[i].name.startsWith('wire:sort:group-id')) {\n // This will get read by the wire:sort handler below...\n continue\n } else if (el.attributes[i].name.startsWith('wire:sort:group')) {\n // This will get picked up by Alpine's x-sort source...\n return\n } else if (el.attributes[i].name.startsWith('wire:sort')) {\n let directive = extractDirective(el, el.attributes[i].name)\n\n let attribute = directive.rawName.replace('wire:', 'x-')\n\n // Strip .async from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('async')) {\n attribute = attribute.replace('.async', '')\n }\n\n // Strip .renderless from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('renderless')) {\n attribute = attribute.replace('.renderless', '')\n }\n\n // Strip .prepend from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('prepend')) {\n attribute = attribute.replace('.prepend', '')\n }\n\n // Strip .append from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('append')) {\n attribute = attribute.replace('.append', '')\n }\n\n let expression = directive.expression\n\n Alpine.bind(el, {\n [attribute]() {\n setNextActionOrigin({ el, directive })\n\n // Alpine's x-sort provides $position as the raw DOM index (e.newIndex\n // from SortableJS), which counts ALL children including non-sortable\n // siblings like wire:sort:ignore / x-sort:ignore elements. Recalculate\n // as the index among only sortable items (wire:sort:item / x-sort:item).\n let sortableChildren = Array.from(el.children).filter(child =>\n child.hasAttribute('x-sort:item') || child.hasAttribute('wire:sort:item')\n )\n let itemPosition = sortableChildren.findIndex(child => child._x_sort_key === this.$item)\n let position = itemPosition !== -1 ? itemPosition : this.$position\n\n let params = [this.$item, position]\n let scope = { $item: this.$item, $position: position }\n\n let sortId = el.getAttribute('wire:sort:group-id')\n\n if (sortId !== null) {\n params.push(sortId)\n scope.$id = sortId\n }\n\n evaluateActionExpression(el, expression, { scope, params })\n }\n })\n }\n }\n})", "import { on } from '@/hooks'\nimport { getModuleUrl, getNonce } from '@/utils'\n\nlet loadedStyles = new Set()\n\non('effect', ({ component, effects }) => {\n // Handle scoped styles\n if (effects.styleModule) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/css/${encodedName}.css?v=${effects.styleModule}`\n\n if (!loadedStyles.has(path)) {\n loadedStyles.add(path)\n injectStylesheet(path)\n }\n }\n\n // Handle global styles\n if (effects.globalStyleModule) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/css/${encodedName}.global.css?v=${effects.globalStyleModule}`\n\n if (!loadedStyles.has(path)) {\n loadedStyles.add(path)\n injectStylesheet(path)\n }\n }\n})\n\nfunction injectStylesheet(href) {\n let link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = href\n\n let nonce = getNonce()\n if (nonce) link.nonce = nonce\n\n document.head.appendChild(link)\n}\n", "import { WeakBag } from './utils'\n\nlet callbacksByComponent = new WeakBag\n\nexport function debounceByComponent(component, callback, time) {\n // Prepare yourself for what's happening here.\n // Any text input with wire:model on it should be \"debounced\" by ~150ms by default.\n // We can't use a simple debounce function because we need a way to clear all the pending\n // debounces if a user submits a form or performs some other action.\n // This is a modified debounce function that acts just like a debounce, except it stores\n // the pending callbacks in a global property so we can \"clear them\" on command instead\n // of waiting for their setTimeouts to expire. I know.\n\n // This is a \"null\" callback. Each wire:model will resister one of these upon initialization.\n let callbackRegister = { callback: () => { } }\n callbacksByComponent.add(component, callbackRegister)\n\n // This is a normal \"timeout\" for a debounce function.\n var timeout\n\n return e => {\n clearTimeout(timeout)\n\n timeout = setTimeout(() => {\n callback(e)\n timeout = undefined\n\n // Because we just called the callback, let's return the\n // callback register to it's normal \"null\" state.\n callbackRegister.callback = () => { }\n }, time)\n\n // Register the current callback in the register as a kind-of \"escape-hatch\".\n callbackRegister.callback = () => {\n clearTimeout(timeout)\n callback(e)\n }\n }\n}\n\nexport function callAndClearComponentDebounces(component, callback) {\n // This is to protect against the following scenario:\n // A user is typing into a debounced input, and hits the enter key.\n // If the enter key submits a form or something, the submission\n // will happen BEFORE the model input finishes syncing because\n // of the debounce. This makes sure to clear anything in the debounce queue.\n\n callbacksByComponent.each(component, callbackRegister => {\n callbackRegister.callback()\n callbackRegister.callback = () => { }\n })\n\n callback()\n}\n", "import { callAndClearComponentDebounces } from '@/debounce'\nimport { customDirectiveHasBeenRegistered } from '@/directives'\nimport { on } from '@/hooks'\nimport { setNextActionOrigin, setNextActionInterceptor } from '@/request'\nimport Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\non('directive.init', ({ el, directive, cleanup, component }) => {\n if (['snapshot', 'effects', 'model', 'init', 'loading', 'poll', 'ignore', 'id', 'data', 'key', 'target', 'dirty', 'sort'].includes(directive.value)) return\n if (customDirectiveHasBeenRegistered(directive.value)) return\n\n let attribute = directive.rawName.replace('wire:', 'x-on:')\n\n // Automatically add .prevent to wire:submit, if they didn't add it themselves...\n if (directive.value === 'submit' && ! directive.modifiers.includes('prevent')) {\n attribute = attribute + '.prevent'\n }\n\n // Strip .async from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('async')) {\n attribute = attribute.replace('.async', '')\n }\n\n // Strip .renderless from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('renderless')) {\n attribute = attribute.replace('.renderless', '')\n }\n\n // Strip .prepend from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('prepend')) {\n attribute = attribute.replace('.prepend', '')\n }\n\n // Strip .append from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('append')) {\n attribute = attribute.replace('.append', '')\n }\n\n let cleanupBinding = Alpine.bind(el, {\n [attribute](e) {\n directive.eventContext = e\n directive.wire = component.$wire\n\n let execute = () => {\n callAndClearComponentDebounces(component, () => {\n // For wire:submit, apply data-loading to the submit button, not the form\n if (directive.value === 'submit') {\n let submitButton = e.submitter || el.querySelector('button[type=\"submit\"], input[type=\"submit\"]')\n setNextActionOrigin({ el, directive, targetEl: submitButton })\n } else {\n setNextActionOrigin({ el, directive })\n }\n\n // Check for Livewire event options in $event.detail.livewire\n let livewireOptions = e.detail?.livewire\n\n if (livewireOptions?.interceptAction) {\n setNextActionInterceptor(livewireOptions.interceptAction)\n }\n\n let expression = directive.expression\n\n // Handle defaultParams - if expression has no parentheses, append the default params\n // This uses a simple heuristic: if the expression contains '(', we assume params\n // are already provided. This works for common cases like \"someMethod\" but will\n // skip adding params for edge cases like \"someMethod.bind(this)\" or \"obj['method()']\"\n if (livewireOptions?.defaultParams !== undefined && !expression.includes('(')) {\n let params = Array.isArray(livewireOptions.defaultParams)\n ? livewireOptions.defaultParams\n : [livewireOptions.defaultParams]\n expression = expression + '(' + params.map((p) => JSON.stringify(p)).join(', ') + ')'\n }\n\n evaluateActionExpression(el, expression, { scope: { $event: e } })\n })\n }\n\n // Account for the existance of wire:confirm=\"...\" on the action...\n if (el.__livewire_confirm) {\n el.__livewire_confirm(() => {\n execute()\n }, () => {\n e.stopImmediatePropagation()\n })\n } else {\n execute()\n }\n }\n })\n\n cleanup(cleanupBinding)\n})\n", "import { directive } from \"@/directives\"\n\ndirective('confirm', ({ el, directive }) => {\n let message = directive.expression\n let shouldPrompt = directive.modifiers.includes('prompt')\n\n // Convert sanitized linebreaks (\"\\n\") to real line breaks...\n message = message.replaceAll('\\\\n', '\\n')\n\n if (message === '') message = 'Are you sure?'\n\n el.__livewire_confirm = (action, instead) => {\n if (shouldPrompt) {\n let [question, expected] = message.split('|')\n\n if (! expected) {\n console.warn('Livewire: Must provide expectation with wire:confirm.prompt')\n } else {\n let input = prompt(question)\n\n if (input === expected) {\n action()\n } else {\n instead()\n }\n }\n } else {\n if (confirm(message)) action()\n else instead()\n }\n }\n})\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive } from '@/directives'\n\nlet offlineHandlers = new Set\nlet onlineHandlers = new Set\n\nwindow.addEventListener('offline', () => offlineHandlers.forEach(i => i()))\nwindow.addEventListener('online', () => onlineHandlers.forEach(i => i()))\n\ndirective('offline', ({ el, directive, cleanup }) => {\n let setOffline = () => toggleBooleanStateDirective(el, directive, true)\n let setOnline = () => toggleBooleanStateDirective(el, directive, false)\n\n offlineHandlers.add(setOffline)\n onlineHandlers.add(setOnline)\n\n cleanup(() => {\n offlineHandlers.delete(setOffline)\n onlineHandlers.delete(setOnline)\n })\n})\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive, getDirectives } from \"@/directives\"\nimport { closestIsland } from '@/features/supportIslands'\nimport { interceptMessage } from '@/request'\nimport { listen } from '@/utils'\n\ndirective('loading', ({ el, directive, component, cleanup }) => {\n let { targets, inverted } = getTargets(el)\n\n let [delay, abortDelay] = applyDelay(directive)\n\n let cleanupA = whenTargetsArePartOfRequest(component, el, targets, inverted, [\n () => delay(() => toggleBooleanStateDirective(el, directive, true)),\n () => abortDelay(() => toggleBooleanStateDirective(el, directive, false)),\n ])\n\n let cleanupB = whenTargetsArePartOfFileUpload(component, targets, [\n () => delay(() => toggleBooleanStateDirective(el, directive, true)),\n () => abortDelay(() => toggleBooleanStateDirective(el, directive, false)),\n ])\n\n cleanup(() => {\n cleanupA()\n cleanupB()\n })\n})\n\nfunction applyDelay(directive) {\n if (! directive.modifiers.includes('delay') || directive.modifiers.includes('none')) return [i => i(), i => i()]\n\n let duration = 200\n\n let delayModifiers = {\n 'shortest': 50,\n 'shorter': 100,\n 'short': 150,\n 'default': 200,\n 'long': 300,\n 'longer': 500,\n 'longest': 1000,\n }\n\n Object.keys(delayModifiers).some(key => {\n if (directive.modifiers.includes(key)) {\n duration = delayModifiers[key]\n\n return true\n }\n })\n\n let timeout\n let started = false\n\n return [\n (callback) => { // Initiate delay...\n timeout = setTimeout(() => {\n callback()\n\n started = true\n }, duration)\n },\n async (callback) => { // Execute or abort...\n if (started) {\n await callback()\n started = false\n } else {\n clearTimeout(timeout)\n }\n },\n ]\n}\n\nfunction whenTargetsArePartOfRequest(component, el, targets, inverted, [ startLoading, endLoading ]) {\n return interceptMessage(({ message, onSend, onSuccess, onFinish }) => {\n if (component !== message.component) return\n\n // When explicit targets are set via wire:target, skip island scope filtering\n // and let the target matching handle scoping. This allows wire:loading to\n // respond to any request containing the target, regardless of island boundaries...\n if (targets.length === 0) {\n let island = closestIsland(el)\n\n // If an island is found, see if the message has an action for the island and return if not...\n if (island && ! message.hasActionForIsland(island)) {\n return\n }\n\n // If no island is found, see if the message has an action for the component and return if not...\n if (! island && ! message.hasActionForComponent()) {\n return\n }\n }\n\n let matches = true\n let cleared = false\n\n onSend(({ payload }) => {\n if (targets.length > 0 && containsTargets(payload, targets) === inverted) {\n matches = false\n }\n\n matches && startLoading()\n })\n\n // Clear loading before morph on success\n onSuccess(({ onEffect }) => {\n onEffect(() => {\n if (matches && ! cleared) {\n endLoading()\n cleared = true\n }\n })\n })\n\n // Clear loading on cancel/error/failure (onFinish fires immediately on these paths)\n onFinish(() => {\n if (matches && ! cleared) {\n endLoading()\n cleared = true\n }\n })\n })\n}\n\nfunction whenTargetsArePartOfFileUpload(component, targets, [ startLoading, endLoading ]) {\n let eventMismatch = e => {\n let { id, property } = e.detail\n\n if (id !== component.id) return true\n if (targets.length > 0 && ! targets.map(i => i.target).includes(property)) return true\n\n return false\n }\n\n let cleanupA = listen(window, 'livewire-upload-start', e => {\n if (eventMismatch(e)) return\n\n startLoading()\n })\n\n let cleanupB = listen(window, 'livewire-upload-finish', e => {\n if (eventMismatch(e)) return\n\n endLoading()\n })\n\n let cleanupC = listen(window, 'livewire-upload-error', e => {\n if (eventMismatch(e)) return\n\n endLoading()\n })\n\n return () => {\n cleanupA()\n cleanupB()\n cleanupC()\n }\n}\n\nfunction containsTargets(payload, targets) {\n let { updates, calls } = payload\n\n return targets.some(({ target, params }) => {\n if (params) {\n return calls.some(({ method, params: methodParams }) => {\n return target === method\n && params === quickHash(JSON.stringify(methodParams))\n })\n }\n\n let hasMatchingUpdate = Object.keys(updates).some(property => {\n // If the property is nested, like `foo.bar`, we need to check if the root `foo` is the target.\n if (property.includes('.')) {\n let propertyRoot = property.split('.')[0]\n\n if (propertyRoot === target) return true\n }\n\n return property === target\n })\n\n if (hasMatchingUpdate) return true\n\n if (calls.map(i => i.method).includes(target)) return true\n })\n}\n\nfunction getTargets(el) {\n let directives = getDirectives(el)\n\n let targets = []\n\n let inverted = false\n\n if (directives.has('target')) {\n let directive = directives.get('target')\n\n if (directive.modifiers.includes(\"except\")) inverted = true\n\n directive.methods.forEach(({ method, params }) => {\n targets.push({\n target: method,\n params: params && params.length > 0 ? quickHash(JSON.stringify(params)) : undefined\n })\n })\n } else {\n // If there is no wire:target, let's check for the existance of a wire:click=\"foo\" or something,\n // and automatically scope this loading directive to that action.\n let nonActionOrModelLivewireDirectives = [ 'init', 'dirty', 'offline', 'navigate', 'target', 'loading', 'poll', 'ignore', 'key', 'id' ]\n\n directives\n .all()\n .filter(i => ! nonActionOrModelLivewireDirectives.includes(i.value))\n .map(i => i.expression.split('(')[0])\n .forEach(target => targets.push({ target }))\n }\n\n return { targets, inverted }\n}\n\nfunction quickHash(subject) {\n return btoa(encodeURIComponent(subject))\n}\n", "import { directive } from \"@/directives\"\n\ndirective('replace', ({ el, directive }) => {\n if (directive.modifiers.includes('self')) {\n el.__livewire_replace_self = true\n } else {\n el.__livewire_replace = true\n }\n})\n", "import { directive } from \"@/directives\"\n\ndirective('ignore', ({ el, directive }) => {\n if (directive.modifiers.includes('self')) {\n el.__livewire_ignore_self = true\n } else if (directive.modifiers.includes('children')) {\n el.__livewire_ignore_children = true\n } else {\n el.__livewire_ignore = true\n }\n})\n", "import Alpine from 'alpinejs'\n\nAlpine.interceptInit(el => {\n if (el.hasAttribute('wire:cloak')) {\n Alpine.mutateDom(() => el.removeAttribute('wire:cloak'))\n }\n})\n", "import { directive } from '@/directives'\nimport { handleFileUpload } from '@/features/supportFileUploads'\nimport { findComponentByEl } from '@/store'\nimport { dataGet, dataSet } from '@/utils'\nimport { setNextActionMetadata, setNextActionOrigin } from '@/request'\nimport Alpine from 'alpinejs'\n\ndirective('model', ({ el, directive, component, cleanup }) => {\n // @todo: will need to probaby do this further upstream i just don't want to bog down the entire lifecycle right now...\n // this is to support slots properly...\n component = findComponentByEl(el)\n\n let { expression, modifiers } = directive\n\n if (! expression) {\n return console.warn('Livewire: [wire:model] is missing a value.', el)\n }\n\n if (componentIsMissingProperty(component, expression)) {\n return console.warn('Livewire: [wire:model=\"'+expression+'\"] property does not exist on component: ['+component.name+']', el)\n }\n\n // Handle file uploads differently...\n if (el.type && el.type.toLowerCase() === 'file') {\n return handleFileUpload(el, expression, component, cleanup)\n }\n\n // Split modifiers at .live boundary\n // Modifiers BEFORE .live control client-side (x-model) sync timing\n // Modifiers AFTER .live control network request timing\n let liveIndex = modifiers.indexOf('live')\n let isLive = liveIndex !== -1\n\n // Backwards compatibility: .lazy without .live implies .change.live\n let hasLazyWithoutLive = modifiers.includes('lazy') && ! isLive\n let shouldSendNetwork = isLive || hasLazyWithoutLive\n\n let ephemeralModifiers = isLive && ! hasLazyWithoutLive ? modifiers.slice(0, liveIndex) : modifiers.slice()\n let networkModifiers = isLive && ! hasLazyWithoutLive ? modifiers.slice(liveIndex + 1) : []\n\n // For .lazy backwards compat, trigger network on change\n if (hasLazyWithoutLive) {\n // Remove 'lazy' from ephemeralModifiers for .lazy backwards compat\n ephemeralModifiers = ephemeralModifiers.filter(m => m !== 'lazy')\n networkModifiers.push('change')\n }\n\n // Add self/deep modifier for event propagation control\n if (! (ephemeralModifiers.includes('deep') || networkModifiers.includes('deep'))) {\n if (! ephemeralModifiers.includes('self')) {\n ephemeralModifiers.push('self')\n }\n }\n\n // Extract ephemeral trigger modifiers (these control when x-model syncs)\n let ephemeralOnBlur = ephemeralModifiers.includes('blur')\n let ephemeralOnChange = ephemeralModifiers.includes('change') || ephemeralModifiers.includes('lazy')\n let ephemeralOnEnter = ephemeralModifiers.includes('enter')\n let hasEphemeralTriggers = ephemeralOnBlur || ephemeralOnChange || ephemeralOnEnter\n\n // Extract network trigger modifiers\n let networkOnBlur = networkModifiers.includes('blur')\n let networkOnChange = networkModifiers.includes('change') || networkModifiers.includes('lazy')\n let networkOnEnter = networkModifiers.includes('enter')\n let hasNetworkTriggers = networkOnBlur || networkOnChange || networkOnEnter\n let isDebounced = networkModifiers.includes('debounce')\n let isThrottled = networkModifiers.includes('throttle')\n\n // Trigger a network request\n let update = () => {\n setNextActionOrigin({ el, directive })\n\n if (isLive || isDebounced) {\n setNextActionMetadata({ type: 'model.live' })\n }\n\n expression.startsWith('$parent')\n ? component.$wire.$parent.$commit()\n : component.$wire.$commit()\n }\n\n let debouncedUpdate = update\n\n // Apply debounce/throttle from network modifiers\n if ((shouldSendNetwork && ! hasNetworkTriggers && isRealtimeInput(el)) || isDebounced) {\n debouncedUpdate = debounce(debouncedUpdate, parseModifierDuration(networkModifiers, 'debounce') || 150)\n }\n\n if (isThrottled) {\n debouncedUpdate = throttle(debouncedUpdate, parseModifierDuration(networkModifiers, 'throttle') || 150)\n }\n\n // Build the bindings object\n let bindings = {}\n\n // Network event listeners (for modifiers after .live, or .lazy backwards compat)\n if (shouldSendNetwork && networkOnBlur) {\n bindings['@blur'] = () => update()\n }\n\n if (shouldSendNetwork && networkOnChange) {\n bindings['@change'] = () => update()\n }\n\n if (shouldSendNetwork && networkOnEnter) {\n bindings['@keydown.enter'] = () => update()\n }\n\n // Build x-model modifier tail from ephemeral modifiers\n let xModelTail = getModifierTail(ephemeralModifiers)\n\n bindings['x-model' + xModelTail] = () => {\n return {\n get() {\n return dataGet(component.$wire, expression)\n },\n set(value) {\n dataSet(component.$wire, expression, value)\n\n // If .live is present and no specific network triggers, fire on every ephemeral sync\n if (shouldSendNetwork && ! hasNetworkTriggers) {\n debouncedUpdate()\n }\n },\n }\n }\n\n Alpine.bind(el, bindings)\n})\n\nfunction getModifierTail(modifiers) {\n // Filter out Livewire-specific modifiers that shouldn't go to x-model\n // Keep: blur, change, lazy, enter, self, deep, number, boolean, trim, fill\n // Remove: defer, live, debounce, throttle (and their durations)\n modifiers = modifiers.filter(i => ! [\n 'defer', 'live'\n ].includes(i))\n\n if (modifiers.includes('debounce')) {\n let index = modifiers.indexOf('debounce')\n let hasDuration = parseModifierDuration(modifiers, 'debounce') !== undefined\n\n // Delete the subsequent modifier if it's a duration...\n modifiers.splice(index, hasDuration ? 2 : 1)\n }\n\n if (modifiers.includes('throttle')) {\n let index = modifiers.indexOf('throttle')\n let hasDuration = parseModifierDuration(modifiers, 'throttle') !== undefined\n\n // Delete the subsequent modifier if it's a duration...\n modifiers.splice(index, hasDuration ? 2 : 1)\n }\n\n if (modifiers.length === 0) return ''\n\n return '.' + modifiers.join('.')\n}\n\nfunction isRealtimeInput(el) {\n return (\n ['INPUT', 'TEXTAREA'].includes(el.tagName.toUpperCase()) &&\n !['checkbox', 'radio'].includes(el.type)\n )\n || el.tagName.toUpperCase() === 'UI-SLIDER' // Flux UI\n || el.tagName.toUpperCase() === 'UI-COMPOSER' // Flux UI\n}\n\nfunction isDirty(subject, dirty) {\n // Check for exact match: wire:model=\"bob\" in ['bob']\n if (dirty.includes(subject)) return true\n\n // Check case of parent: wire:model=\"bob.1\" in ['bob']\n return dirty.some(i => subject.startsWith(i))\n}\n\nfunction componentIsMissingProperty(component, property) {\n if (property.startsWith('$parent')) {\n let parent = findComponentByEl(component.el.parentElement, false)\n\n if (! parent) return true\n\n return componentIsMissingProperty(parent, property.slice(7).replace(/^\\./, ''))\n }\n\n // Extract base property, handling both \"foo.bar\" and \"['foo'].bar\"\n let match = property.match(/^\\[['\"]?([^\\]'\"]+)['\"]?\\]/) || property.match(/^([^.\\[]+)/)\n let baseProperty = match[1]\n\n return ! Object.keys(component.canonical).includes(baseProperty)\n}\n\nfunction debounce(func, wait) {\n var timeout;\n\n return function() {\n var context = this, args = arguments;\n\n var later = function() {\n timeout = null\n\n func.apply(context, args)\n }\n\n clearTimeout(timeout)\n\n timeout = setTimeout(later, wait)\n }\n}\n\nfunction throttle(func, limit) {\n let inThrottle\n\n return function() {\n let context = this, args = arguments\n\n if (! inThrottle) {\n func.apply(context, args)\n\n inThrottle = true\n\n setTimeout(() => inThrottle = false, limit)\n }\n }\n}\n\nfunction parseModifierDuration(modifiers, key) {\n let index = modifiers.indexOf(key)\n if (index === -1) return undefined\n\n let nextModifier = modifiers[modifiers.indexOf(key)+1] || 'invalid-wait'\n let duration = nextModifier.split('ms')[0]\n\n return ! isNaN(duration) ? duration : undefined\n}", "import { directive } from \"@/directives\"\nimport { evaluateActionExpression } from '../evaluator'\nimport { setNextActionOrigin } from \"@/request\"\n\ndirective('init', ({ component, el, directive }) => {\n let fullMethod = directive.expression ? directive.expression : '$refresh'\n\n setNextActionOrigin({ el, directive })\n\n evaluateActionExpression(el, fullMethod)\n})\n", "import { directive, getDirectives } from \"@/directives\"\nimport { setNextActionMetadata, setNextActionOrigin, sessionIsExpired } from '@/request'\nimport { evaluateActionExpression } from '../evaluator'\n\ndirective('poll', ({ el, directive, component }) => {\n let interval = extractDurationFrom(directive.modifiers, 2000)\n\n let { start, pauseWhile, throttleWhile, stopWhen } = poll(() => {\n triggerComponentRequest(el, directive, component)\n }, interval)\n\n start()\n\n throttleWhile(() => theTabIsInTheBackground() && theDirectiveIsMissingKeepAlive(directive))\n pauseWhile(() => theDirectiveHasVisible(directive) && theElementIsNotInTheViewport(el))\n pauseWhile(() => theDirectiveIsOffTheElement(el))\n pauseWhile(() => livewireIsOffline())\n pauseWhile(() => sessionIsExpired())\n stopWhen(() => theElementIsDisconnected(el))\n})\n\nfunction triggerComponentRequest(el, directive, component) {\n // Set targetEl to null to prevent data-loading on poll actions\n setNextActionOrigin({ el, directive, targetEl: null })\n setNextActionMetadata({ type: 'poll' })\n\n let fullMethod = directive.expression ? directive.expression : '$refresh'\n\n evaluateActionExpression(el, fullMethod)\n}\n\nexport function poll(callback, interval = 2000) {\n let pauseConditions = []\n let throttleConditions = []\n let stopConditions = []\n\n return {\n start() {\n let clear = syncronizedInterval(interval, () => {\n if (stopConditions.some(i => i())) return clear()\n if (pauseConditions.some(i => i())) return\n if (throttleConditions.some(i => i()) && Math.random() < .95) return\n\n callback()\n })\n },\n pauseWhile(condition) {\n pauseConditions.push(condition)\n },\n throttleWhile(condition) {\n throttleConditions.push(condition)\n },\n stopWhen(condition) {\n stopConditions.push(condition)\n }\n }\n}\n\nlet clocks = []\n\nfunction syncronizedInterval(ms, callback) {\n if (! clocks[ms]) {\n let clock = {\n timer: setInterval(() => clock.callbacks.forEach(i => i()), ms),\n callbacks: new Set,\n }\n\n clocks[ms] = clock\n }\n\n clocks[ms].callbacks.add(callback)\n\n return () => {\n clocks[ms].callbacks.delete(callback)\n\n if (clocks[ms].callbacks.size === 0) {\n clearInterval(clocks[ms].timer)\n delete clocks[ms]\n }\n }\n}\n\nlet isOffline = false\n\nwindow.addEventListener('offline', () => isOffline = true)\nwindow.addEventListener('online', () => isOffline = false)\n\nexport function livewireIsOffline() {\n return isOffline\n}\n\nlet inBackground = false\n\ndocument.addEventListener('visibilitychange', () => { inBackground = document.hidden }, false)\n\nfunction theTabIsInTheBackground() {\n return inBackground\n}\n\nfunction theDirectiveIsOffTheElement(el) {\n return ! getDirectives(el).has('poll')\n}\n\nfunction theDirectiveIsMissingKeepAlive(directive) {\n return ! directive.modifiers.includes('keep-alive')\n}\n\nfunction theDirectiveHasVisible(directive) {\n return directive.modifiers.includes('visible')\n}\n\nfunction theElementIsNotInTheViewport(el) {\n let bounding = el.getBoundingClientRect()\n\n return ! (\n bounding.top < (window.innerHeight || document.documentElement.clientHeight) &&\n bounding.left < (window.innerWidth || document.documentElement.clientWidth) &&\n bounding.bottom > 0 &&\n bounding.right > 0\n )\n}\n\nexport function theElementIsDisconnected(el) {\n return el.isConnected === false\n}\n\nexport function extractDurationFrom(modifiers, defaultDuration) {\n let durationInMilliSeconds\n let durationInMilliSecondsString = modifiers.find(mod => mod.match(/([0-9]+)ms/))\n let durationInSecondsString = modifiers.find(mod => mod.match(/([0-9]+)s/))\n\n if (durationInMilliSecondsString) {\n durationInMilliSeconds = Number(durationInMilliSecondsString.replace('ms', ''))\n } else if (durationInSecondsString) {\n durationInMilliSeconds = Number(durationInSecondsString.replace('s', '')) * 1000\n }\n\n return durationInMilliSeconds || defaultDuration\n}\n", "import { evaluateActionExpression } from '../evaluator'\nimport Alpine from 'alpinejs'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:show')) {\n let { name, value } = el.attributes[i]\n\n let modifierString = name.split('wire:show')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-show' + modifierString]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})", "import Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:text')) {\n let { name, value } = el.attributes[i]\n\n let modifierString = name.split('wire:text')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-text' + modifierString]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n", "import Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:bind:')) {\n let { name, value } = el.attributes[i]\n\n let remainder = name.split('wire:bind')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-bind' + remainder]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n"], + "mappings": "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", + "names": ["__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__commonJS", "all", "__copyProps", "__toESM", "exports", "start2", "isArray", "isObject2", "isFunction", "track", "trigger", "src_default", "module_default", "directive", "directive2", "cleanups", "dispatch", "start", "fallback", "interceptors", "debounce", "throttle", "cloneIfObject", "Alpine", "on", "isNumeric", "listeners", "isNumeric2", "isObject", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "src_default", "module_default", "Alpine", "collapse", "fallback", "require_module_cjs", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__commonJS", "all", "__copyProps", "__toESM", "exports", "error", "module_default", "src_default", "Alpine", "els", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "module_default", "src_default", "Alpine", "fallback", "require_module_cjs", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__commonJS", "all", "__copyProps", "__toESM", "exports", "module_default", "src_default", "Alpine", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "module_default", "src_default", "Alpine", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "src_default", "module_default", "start", "getComputedStyle", "Alpine", "NProgress", "properties", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "module_default", "src_default", "morph", "els", "start", "first", "Alpine", "require_module_cjs", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "all", "__copyProps", "module_default", "src_default", "Alpine", "nonce", "start", "error", "Alpine", "import_alpinejs", "messageBus", "message", "action", "error", "callback", "action", "interceptors", "error", "error", "interceptRequest", "interceptMessage", "error", "messages", "request", "message", "error", "import_alpinejs", "Alpine", "directive", "error", "directive", "directive", "Alpine", "listen", "dispatch", "diff", "el", "stop", "dispatch", "listen", "on", "Alpine", "batch", "error", "fallback", "error", "e", "createUrlObjectFromString", "import_alpinejs", "Alpine", "import_alpinejs", "Alpine", "NProgress", "nonce", "oldBodyScriptTagHashes", "error", "Alpine", "createUrlObjectFromString", "Alpine", "replace", "push", "url", "isObjecty", "data", "entries", "first", "import_alpinejs", "Alpine", "morph", "intersect", "sort", "resize", "collapse", "anchor", "focus", "mask", "directive", "component", "import_alpinejs", "listeners", "import_alpinejs", "import_alpinejs", "Alpine", "error", "Alpine", "alreadyRunKeys", "error", "isScript", "import_alpinejs", "Alpine", "import_alpinejs", "directive", "morph", "component", "Alpine", "morph", "self", "dispatch", "import_alpinejs", "directive", "cleanup", "Alpine", "import_alpinejs", "replace", "push", "Alpine", "listeners", "directive", "import_alpinejs", "Alpine", "directive", "import_alpinejs", "Alpine", "directive", "import_alpinejs", "Alpine", "directive", "import_alpinejs", "Alpine", "directive", "nonce", "import_alpinejs", "directive", "Alpine", "directive", "directive", "directive", "directive", "directive", "import_alpinejs", "Alpine", "import_alpinejs", "directive", "Alpine", "directive", "directive", "start", "import_alpinejs", "Alpine", "import_alpinejs", "Alpine", "import_alpinejs", "Alpine", "Livewire", "on", "Alpine"] +} diff --git a/admin/public/vendor/livewire/livewire.js b/admin/public/vendor/livewire/livewire.js index c740e266..4daf0992 100644 --- a/admin/public/vendor/livewire/livewire.js +++ b/admin/public/vendor/livewire/livewire.js @@ -16,7 +16,10 @@ } return to; }; - var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); + var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod + )); // node_modules/nprogress/nprogress.js var require_nprogress = __commonJS({ @@ -65,15 +68,15 @@ queue2(function(next) { if (Settings.positionUsing === "") Settings.positionUsing = NProgress2.getPositioningCSS(); - css(bar, barPositionCSS(n, speed, ease)); + css2(bar, barPositionCSS(n, speed, ease)); if (n === 1) { - css(progress, { + css2(progress, { transition: "none", opacity: 1 }); progress.offsetWidth; setTimeout(function() { - css(progress, { + css2(progress, { transition: "all " + speed + "ms linear", opacity: 0 }); @@ -157,7 +160,7 @@ progress.id = "nprogress"; progress.innerHTML = Settings.template; var bar = progress.querySelector(Settings.barSelector), perc = fromStart ? "-100" : toBarPerc(NProgress2.status || 0), parent = document.querySelector(Settings.parent), spinner; - css(bar, { + css2(bar, { transition: "all 0 linear", transform: "translate3d(" + perc + "%,0,0)" }); @@ -227,7 +230,7 @@ next(); }; }(); - var css = function() { + var css2 = function() { var cssPrefixes = ["Webkit", "O", "Moz", "ms"], cssProps = {}; function camelCase3(string) { return string.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function(match, letter) { @@ -337,12 +340,14 @@ } }; function dispatch(target, name, detail = {}, bubbles = true) { - target.dispatchEvent(new CustomEvent(name, { - detail, - bubbles, - composed: true, - cancelable: true - })); + target.dispatchEvent( + new CustomEvent(name, { + detail, + bubbles, + composed: true, + cancelable: true + }) + ); } function listen(target, name, handler4) { target.addEventListener(name, handler4); @@ -366,27 +371,40 @@ function deepClone(obj) { return JSON.parse(JSON.stringify(obj)); } + function deeplyEqual(a, b) { + return JSON.stringify(a) === JSON.stringify(b); + } + function parsePathSegments(path) { + if (path === "") + return []; + return path.replace(/\[(['"]?)(.+?)\1\]/g, ".$2").replace(/^\./, "").split("."); + } function dataGet(object, key) { if (key === "") return object; - return key.split(".").reduce((carry, i) => { - if (carry === void 0) - return void 0; - return carry[i]; + return parsePathSegments(key).reduce((carry, i) => { + return carry?.[i]; }, object); } function dataSet(object, key, value) { - let segments = key.split("."); + let segments = parsePathSegments(key); if (segments.length === 1) { - return object[key] = value; + return object[segments[0]] = value; } let firstSegment = segments.shift(); let restOfSegments = segments.join("."); + let nextSegment = segments[0]; if (object[firstSegment] === void 0) { object[firstSegment] = {}; } + if (isArray(object[firstSegment]) && isNumeric(nextSegment) && parseInt(nextSegment) > object[firstSegment].length) { + object[firstSegment] = { ...object[firstSegment] }; + } dataSet(object[firstSegment], restOfSegments, value); } + function isNumeric(subject) { + return !isNaN(parseInt(subject)); + } function diff(left, right, diffs = {}, path = "") { if (left === right) return diffs; @@ -399,6 +417,11 @@ return diffs; } let leftKeys = Object.keys(left); + let rightKeys = Object.keys(right); + if (isObject(left) && leftKeys.some((key, i) => key !== rightKeys[i])) { + diffs[path] = right; + return diffs; + } Object.entries(right).forEach(([key, value]) => { diffs = { ...diffs, ...diff(left[key], right[key], diffs, path === "" ? key : `${path}.${key}`) }; leftKeys = leftKeys.filter((i) => i !== key); @@ -408,6 +431,118 @@ }); return diffs; } + function diffAndConsolidate(left, right) { + let diffs = {}; + diffRecursive(left, right, "", diffs, left, right); + return diffs; + } + function diffRecursive(left, right, path, diffs, rootLeft, rootRight) { + if (left === right) + return { changed: false, consolidated: false }; + let convertedToObject = false; + let hasNonNumericKeys = (arr) => { + return isArray(arr) && Object.keys(arr).some((k) => isNaN(parseInt(k))); + }; + if (typeof left !== typeof right || isObject(left) && isArray(right) || isArray(left) && isObject(right)) { + if (isArray(left) && left.length === 0 && isObject(right)) { + left = {}; + convertedToObject = true; + } else if ((left === void 0 || left === null) && isObject(right)) { + left = {}; + convertedToObject = true; + } else { + diffs[path] = right; + return { changed: true, consolidated: false }; + } + } + if (isArray(left) && isArray(right) && hasNonNumericKeys(right)) { + if (Object.keys(left).length === 0) { + convertedToObject = true; + } + } + if (isPrimitive(left) || isPrimitive(right)) { + diffs[path] = right; + return { changed: true, consolidated: false }; + } + let leftKeys = Object.keys(left); + let rightKeys = Object.keys(right); + if (leftKeys.length !== rightKeys.length && !convertedToObject) { + if (path === "") { + Object.keys(right).forEach((key) => { + if (!deeplyEqual(left[key], right[key])) { + diffs[key] = right[key]; + } + }); + return { changed: true, consolidated: true }; + } + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + if (isObject(left) && leftKeys.length === rightKeys.length && leftKeys.some((key, i) => key !== rightKeys[i])) { + if (path !== "") { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + } + let keysMatch = leftKeys.every((k) => rightKeys.includes(k)); + if (!keysMatch && !convertedToObject) { + if (path !== "") { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + } + let childDiffs = {}; + let changedCount = 0; + let consolidatedCount = 0; + let totalChildren = rightKeys.length; + rightKeys.forEach((key) => { + let childPath = path === "" ? key : `${path}.${key}`; + let result = diffRecursive(left[key], right[key], childPath, childDiffs, rootLeft, rootRight); + if (result.changed) + changedCount++; + if (result.consolidated) + consolidatedCount++; + }); + if (path !== "" && totalChildren > 1 && changedCount === totalChildren && consolidatedCount === 0 && !convertedToObject) { + diffs[path] = dataGet(rootRight, path); + return { changed: true, consolidated: true }; + } + Object.assign(diffs, childDiffs); + return { changed: changedCount > 0, consolidated: consolidatedCount > 0 || convertedToObject }; + } + function diffAndPatchRecursive(left, right, target) { + let leftKeys = new Set(Object.keys(left || {})); + let rightKeys = Object.keys(right); + if (!isArray(target) && [...leftKeys].some((key, i) => key !== rightKeys[i])) { + for (let key of Object.keys(target)) + delete target[key]; + for (let key of rightKeys) + target[key] = right[key]; + return; + } + rightKeys.forEach((key) => { + leftKeys.delete(key); + if (deeplyEqual(left?.[key], right[key])) + return; + if (isObjecty(left?.[key]) && isObjecty(right[key]) && isObjecty(target[key]) && isArray(right[key]) === isArray(target[key])) { + diffAndPatchRecursive(left[key], right[key], target[key]); + } else { + target[key] = right[key]; + } + }); + let removedKeys = [...leftKeys]; + removedKeys.sort((a, b) => { + let aNum = parseInt(a) || 0; + let bNum = parseInt(b) || 0; + return bNum - aNum; + }).forEach((key) => { + if (isArray(target)) { + target.splice(parseInt(key), 1); + } else { + delete target[key]; + } + }); + } function extractData(payload) { let value = isSynthetic(payload) ? payload[0] : payload; let meta = isSynthetic(payload) ? payload[1] : void 0; @@ -441,13 +576,41 @@ nonce = window.livewireScriptConfig["nonce"]; return nonce; } - const elWithNonce = document.querySelector("style[data-livewire-style][nonce]"); + let elWithNonce = document.querySelector("style[data-livewire-style][nonce]"); if (elWithNonce) { nonce = elWithNonce.nonce; return nonce; } return null; } + function replaceNoncesInHtml(html) { + let nonce2 = getNonce(); + if (!nonce2) + return html; + let nonceMatch = html.match(/nonce="([^"]+)"/); + if (!nonceMatch) + return html; + let newNonce = nonceMatch[1]; + if (newNonce === nonce2) + return html; + return html.replaceAll(`nonce="${newNonce}"`, `nonce="${nonce2}"`); + } + function cloneScriptTag(el) { + let script = document.createElement("script"); + script.textContent = el.textContent; + script.async = el.async; + for (let attr of el.attributes) { + if (attr.name === "nonce") { + script.nonce = getNonce() || el.nonce; + } else { + script.setAttribute(attr.name, attr.value); + } + } + return script; + } + function getModuleUrl() { + return document.querySelector("[data-module-url]")?.getAttribute("data-module-url") ?? window.livewireScriptConfig["moduleUrl"] ?? null; + } function getUpdateUri() { return document.querySelector("[data-update-uri]")?.getAttribute("data-update-uri") ?? window.livewireScriptConfig["uri"] ?? null; } @@ -458,6 +621,28 @@ let dump = content.match(/.*<script>Sfdump\(".+"\)<\/script>/s); return [dump, content.replace(dump, "")]; } + function walkUpwards(el, callback) { + let current = el; + while (current) { + let stop2 = void 0; + callback(current, { stop: (value) => value === void 0 ? stop2 = current : stop2 = value }); + if (stop2 !== void 0) + return stop2; + if (current._x_teleportBack) + current = current._x_teleportBack; + current = current.parentElement; + } + } + function walkBackwards(el, callback) { + let current = el; + while (current) { + let stop2 = void 0; + callback(current, { stop: (value) => value === void 0 ? stop2 = current : stop2 = value }); + if (stop2 !== void 0) + return stop2; + current = current.previousSibling; + } + } // js/features/supportFileUploads.js var uploadManagers = /* @__PURE__ */ new WeakMap(); @@ -477,10 +662,12 @@ let cancel = () => el.dispatchEvent(new CustomEvent("livewire-upload-cancel", { bubbles: true, detail: { id: component.id, property } })); let progress = (progressEvent) => { var percentCompleted = Math.round(progressEvent.loaded * 100 / progressEvent.total); - el.dispatchEvent(new CustomEvent("livewire-upload-progress", { - bubbles: true, - detail: { progress: percentCompleted } - })); + el.dispatchEvent( + new CustomEvent("livewire-upload-progress", { + bubbles: true, + detail: { progress: percentCompleted } + }) + ); }; let eventHandler = (e) => { if (e.target.files.length === 0) @@ -499,6 +686,9 @@ if (value === null || value === "") { el.value = ""; } + if (el.multiple && Array.isArray(value) && value.length === 0) { + el.value = ""; + } }); let clearFileInputValue = () => { el.value = null; @@ -536,17 +726,19 @@ finishCallback, errorCallback, progressCallback, - cancelledCallback + cancelledCallback, + append: false }); } - uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback) { + uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback, append = true) { this.setUpload(name, { files: Array.from(files), multiple: true, finishCallback, errorCallback, progressCallback, - cancelledCallback + cancelledCallback, + append }); } removeUpload(name, tmpFilename, finishCallback) { @@ -599,7 +791,7 @@ request.addEventListener("load", () => { if ((request.status + "")[0] === "2") { let paths = retrievePaths(request.response && JSON.parse(request.response)); - this.component.$wire.call("_finishUpload", name, paths, this.uploadBag.first(name).multiple); + this.component.$wire.call("_finishUpload", name, paths, this.uploadBag.first(name).multiple, this.uploadBag.first(name).append); return; } let errors = null; @@ -608,6 +800,9 @@ } this.component.$wire.call("_uploadErrored", name, errors, this.uploadBag.first(name).multiple); }); + request.addEventListener("error", () => { + this.component.$wire.call("_uploadErrored", name, null, this.uploadBag.first(name).multiple); + }); this.uploadBag.first(name).request = request; request.send(formData); } @@ -690,26 +885,49 @@ }, cancelledCallback = () => { }) { let uploadManager = getUploadManager(component); - uploadManager.upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback); + uploadManager.upload( + name, + file, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback + ); } function uploadMultiple(component, name, files, finishCallback = () => { }, errorCallback = () => { }, progressCallback = () => { }, cancelledCallback = () => { - }) { + }, append = true) { let uploadManager = getUploadManager(component); - uploadManager.uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback); + uploadManager.uploadMultiple( + name, + files, + finishCallback, + errorCallback, + progressCallback, + cancelledCallback, + append + ); } function removeUpload(component, name, tmpFilename, finishCallback = () => { }, errorCallback = () => { }) { let uploadManager = getUploadManager(component); - uploadManager.removeUpload(name, tmpFilename, finishCallback, errorCallback); + uploadManager.removeUpload( + name, + tmpFilename, + finishCallback, + errorCallback + ); } function cancelUpload(component, name, cancelledCallback = () => { }) { let uploadManager = getUploadManager(component); - uploadManager.cancelUpload(name, cancelledCallback); + uploadManager.cancelUpload( + name, + cancelledCallback + ); } // node_modules/alpinejs/dist/module.esm.js @@ -717,21 +935,31 @@ var flushing = false; var queue = []; var lastFlushedIndex = -1; + var transactionActive = false; function scheduler(callback) { queueJob(callback); } + function startTransaction() { + transactionActive = true; + } + function commitTransaction() { + transactionActive = false; + queueFlush(); + } function queueJob(job) { if (!queue.includes(job)) queue.push(job); queueFlush(); } function dequeueJob(job) { - let index = queue.indexOf(job); - if (index !== -1 && index > lastFlushedIndex) - queue.splice(index, 1); + let index2 = queue.indexOf(job); + if (index2 !== -1 && index2 > lastFlushedIndex) + queue.splice(index2, 1); } function queueFlush() { if (!flushing && !flushPending) { + if (transactionActive) + return; flushPending = true; queueMicrotask(flushJobs); } @@ -799,21 +1027,33 @@ function watch(getter, callback) { let firstTime = true; let oldValue; + let oldValueJSON; let effectReference = effect(() => { let value = getter(); - JSON.stringify(value); + let newJSON = JSON.stringify(value); if (!firstTime) { - queueMicrotask(() => { - callback(value, oldValue); - oldValue = value; - }); - } else { - oldValue = value; + if (typeof value === "object" || value !== oldValue) { + let previousValue = typeof oldValue === "object" ? JSON.parse(oldValueJSON) : oldValue; + queueMicrotask(() => { + callback(value, previousValue); + }); + } } + oldValue = value; + oldValueJSON = newJSON; firstTime = false; }); return () => release(effectReference); } + async function transaction(callback) { + startTransaction(); + try { + await callback(); + await Promise.resolve(); + } finally { + commitTransaction(); + } + } var onAttributeAddeds = []; var onElRemoveds = []; var onElAddeds = []; @@ -851,10 +1091,9 @@ }); } function cleanupElement(el) { - if (el._x_cleanups) { - while (el._x_cleanups.length) - el._x_cleanups.pop()(); - } + el._x_effects?.forEach(dequeueJob); + while (el._x_cleanups?.length) + el._x_cleanups.pop()(); } var observer = new MutationObserver(onMutate); var currentlyObserving = false; @@ -902,7 +1141,7 @@ deferredMutations = deferredMutations.concat(mutations); return; } - let addedNodes = /* @__PURE__ */ new Set(); + let addedNodes = []; let removedNodes = /* @__PURE__ */ new Set(); let addedAttributes = /* @__PURE__ */ new Map(); let removedAttributes = /* @__PURE__ */ new Map(); @@ -910,8 +1149,24 @@ if (mutations[i].target._x_ignoreMutationObserver) continue; if (mutations[i].type === "childList") { - mutations[i].addedNodes.forEach((node) => node.nodeType === 1 && addedNodes.add(node)); - mutations[i].removedNodes.forEach((node) => node.nodeType === 1 && removedNodes.add(node)); + mutations[i].removedNodes.forEach((node) => { + if (node.nodeType !== 1) + return; + if (!node._x_marker) + return; + removedNodes.add(node); + }); + mutations[i].addedNodes.forEach((node) => { + if (node.nodeType !== 1) + return; + if (removedNodes.has(node)) { + removedNodes.delete(node); + return; + } + if (node._x_marker) + return; + addedNodes.push(node); + }); } if (mutations[i].type === "attributes") { let el = mutations[i].target; @@ -944,29 +1199,15 @@ onAttributeAddeds.forEach((i) => i(el, attrs)); }); for (let node of removedNodes) { - if (addedNodes.has(node)) + if (addedNodes.some((i) => i.contains(node))) continue; onElRemoveds.forEach((i) => i(node)); } - addedNodes.forEach((node) => { - node._x_ignoreSelf = true; - node._x_ignore = true; - }); for (let node of addedNodes) { - if (removedNodes.has(node)) - continue; if (!node.isConnected) continue; - delete node._x_ignoreSelf; - delete node._x_ignore; onElAddeds.forEach((i) => i(node)); - node._x_ignore = true; - node._x_ignoreSelf = true; } - addedNodes.forEach((node) => { - delete node._x_ignoreSelf; - delete node._x_ignore; - }); addedNodes = null; removedNodes = null; addedAttributes = null; @@ -995,22 +1236,46 @@ function mergeProxies(objects) { return new Proxy({ objects }, mergeProxyTrap); } + function keyInPrototypeChain(obj, key) { + if (obj === null || obj === Object.prototype) + return null; + if (Object.prototype.hasOwnProperty.call(obj, key)) + return obj; + return keyInPrototypeChain(Object.getPrototypeOf(obj), key); + } var mergeProxyTrap = { ownKeys({ objects }) { - return Array.from(new Set(objects.flatMap((i) => Object.keys(i)))); + return Array.from( + new Set(objects.flatMap((i) => Object.keys(i))) + ); }, has({ objects }, name) { if (name == Symbol.unscopables) return false; - return objects.some((obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name)); + return objects.some( + (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name) + ); }, get({ objects }, name, thisProxy) { if (name == "toJSON") return collapseProxies; - return Reflect.get(objects.find((obj) => Reflect.has(obj, name)) || {}, name, thisProxy); + return Reflect.get( + objects.find( + (obj) => Reflect.has(obj, name) + ) || {}, + name, + thisProxy + ); }, set({ objects }, name, value, thisProxy) { - const target = objects.find((obj) => Object.prototype.hasOwnProperty.call(obj, name)) || objects[objects.length - 1]; + let target; + for (const obj of objects) { + target = keyInPrototypeChain(obj, name); + if (target) + break; + } + if (!target) + target = objects[objects.length - 1]; const descriptor = Object.getOwnPropertyDescriptor(target, name); if (descriptor?.set && descriptor?.get) return descriptor.set.call(thisProxy, value) || true; @@ -1025,7 +1290,7 @@ }, {}); } function initInterceptors(data2) { - let isObject22 = (val) => typeof val === "object" && !Array.isArray(val) && val !== null; + let isObject3 = (val) => typeof val === "object" && !Array.isArray(val) && val !== null; let recurse = (obj, basePath = "") => { Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => { if (enumerable === false || value === void 0) @@ -1036,7 +1301,7 @@ if (typeof value === "object" && value !== null && value._x_interceptor) { obj[key] = value.initialize(data2, path, key); } else { - if (isObject22(value) && value !== obj && !(value instanceof Element)) { + if (isObject3(value) && value !== obj && !(value instanceof Element)) { recurse(value, path); } } @@ -1092,27 +1357,23 @@ magics[name] = callback; } function injectMagics(obj, el) { + let memoizedUtilities = getUtilities(el); Object.entries(magics).forEach(([name, callback]) => { - let memoizedUtilities = null; - function getUtilities() { - if (memoizedUtilities) { - return memoizedUtilities; - } else { - let [utilities, cleanup2] = getElementBoundUtilities(el); - memoizedUtilities = { interceptor, ...utilities }; - onElRemoved(el, cleanup2); - return memoizedUtilities; - } - } Object.defineProperty(obj, `$${name}`, { get() { - return callback(el, getUtilities()); + return callback(el, memoizedUtilities); }, enumerable: false }); }); return obj; } + function getUtilities(el) { + let [utilities, cleanup2] = getElementBoundUtilities(el); + let utils = { interceptor, ...utilities }; + onElRemoved(el, cleanup2); + return utils; + } function tryCatch(el, expression, callback, ...args) { try { return callback(...args); @@ -1120,8 +1381,18 @@ handleError(e, el, expression); } } - function handleError(error2, el, expression = void 0) { - error2 = Object.assign(error2 ?? { message: "No error message given." }, { el, expression }); + function handleError(...args) { + return errorHandler(...args); + } + var errorHandler = normalErrorHandler; + function setErrorHandler(handler4) { + errorHandler = handler4; + } + function normalErrorHandler(error2, el, expression = void 0) { + error2 = Object.assign( + error2 ?? { message: "No error message given." }, + { el, expression } + ); console.warn(`Alpine Expression Error: ${error2.message} ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); @@ -1145,10 +1416,15 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function evaluateLater(...args) { return theEvaluatorFunction(...args); } - var theEvaluatorFunction = normalEvaluator; + var theEvaluatorFunction = () => { + }; function setEvaluator(newEvaluator) { theEvaluatorFunction = newEvaluator; } + var theRawEvaluatorFunction; + function setRawEvaluator(newEvaluator) { + theRawEvaluatorFunction = newEvaluator; + } function normalEvaluator(el, expression) { let overriddenMagics = {}; injectMagics(overriddenMagics, el); @@ -1158,7 +1434,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } function generateEvaluatorFromFunction(dataStack, func) { return (receiver = () => { - }, { scope: scope2 = {}, params = [] } = {}) => { + }, { scope: scope2 = {}, params = [], context } = {}) => { + if (!shouldAutoEvaluateFunctions) { + runIfTypeOfFunction(receiver, func, mergeProxies([scope2, ...dataStack]), params); + return; + } let result = func.apply(mergeProxies([scope2, ...dataStack]), params); runIfTypeOfFunction(receiver, result); }; @@ -1173,7 +1453,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression; const safeAsyncFunction = () => { try { - let func2 = new AsyncFunction(["__self", "scope"], `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`); + let func2 = new AsyncFunction( + ["__self", "scope"], + `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;` + ); Object.defineProperty(func2, "name", { value: `[Alpine] ${expression}` }); @@ -1190,12 +1473,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function generateEvaluatorFromString(dataStack, expression, el) { let func = generateFunctionFromString(expression, el); return (receiver = () => { - }, { scope: scope2 = {}, params = [] } = {}) => { + }, { scope: scope2 = {}, params = [], context } = {}) => { func.result = void 0; func.finished = false; let completeScope = mergeProxies([scope2, ...dataStack]); if (typeof func === "function") { - let promise = func(func, completeScope).catch((error2) => handleError(error2, el, expression)); + let promise = func.call(context, func, completeScope).catch((error2) => handleError(error2, el, expression)); if (func.finished) { runIfTypeOfFunction(receiver, func.result, completeScope, params, el); func.result = void 0; @@ -1221,6 +1504,38 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); receiver(value); } } + function evaluateRaw(...args) { + return theRawEvaluatorFunction(...args); + } + function normalRawEvaluator(el, expression, extras = {}) { + let overriddenMagics = {}; + injectMagics(overriddenMagics, el); + let dataStack = [overriddenMagics, ...closestDataStack(el)]; + let scope2 = mergeProxies([extras.scope ?? {}, ...dataStack]); + let params = extras.params ?? []; + if (expression.includes("await")) { + let AsyncFunction = Object.getPrototypeOf(async function() { + }).constructor; + let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression; + let func = new AsyncFunction( + ["scope"], + `with (scope) { let __result = ${rightSideSafeExpression}; return __result }` + ); + let result = func.call(extras.context, scope2); + return result; + } else { + let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression.trim()) || /^(let|const)\s/.test(expression.trim()) ? `(()=>{ ${expression} })()` : expression; + let func = new Function( + ["scope"], + `with (scope) { let __result = ${rightSideSafeExpression}; return __result }` + ); + let result = func.call(extras.context, scope2); + if (typeof result === "function" && shouldAutoEvaluateFunctions) { + return result.apply(scope2, params); + } + return result; + } + } var prefixAsString = "x-"; function prefix(subject = "") { return prefixAsString + subject; @@ -1348,6 +1663,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); var alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\b`); function toParsedDirectives(transformedAttributeMap, originalAttributeOverride) { return ({ name, value }) => { + if (name === value) + value = ""; let typeMatch = name.match(alpineAttributeRegex()); let valueMatch = name.match(/:([a-zA-Z0-9\-_:]+)/); let modifiers = name.match(/\.[^.\]]+(?=[^\]]*$)/g) || []; @@ -1365,8 +1682,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); var directiveOrder = [ "ignore", "ref", - "data", "id", + "data", "anchor", "bind", "init", @@ -1384,13 +1701,16 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type; return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB); } - function dispatch2(el, name, detail = {}) { - el.dispatchEvent(new CustomEvent(name, { - detail, - bubbles: true, - composed: true, - cancelable: true - })); + function dispatch2(el, name, detail = {}, options = {}) { + return el.dispatchEvent( + new CustomEvent(name, { + detail, + bubbles: true, + composed: true, + cancelable: true, + ...options + }) + ); } function walk(el, callback) { if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) { @@ -1461,7 +1781,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (callback(el)) return el; if (el._x_teleportBack) - el = el._x_teleportBack; + return findClosest(el._x_teleportBack, callback); + if (el.parentNode instanceof ShadowRoot) { + return findClosest(el.parentNode.host, callback); + } if (!el.parentElement) return; return findClosest(el.parentElement, callback); @@ -1473,21 +1796,29 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function interceptInit(callback) { initInterceptors2.push(callback); } + var markerDispenser = 1; function initTree(el, walker = walk, intercept = () => { }) { + if (findClosest(el, (i) => i._x_ignore)) + return; deferHandlingDirectives(() => { walker(el, (el2, skip) => { + if (el2._x_marker) + return; intercept(el2, skip); initInterceptors2.forEach((i) => i(el2, skip)); directives(el2, el2.attributes).forEach((handle) => handle()); + if (!el2._x_ignore) + el2._x_marker = markerDispenser++; el2._x_ignore && skip(); }); }); } function destroyTree(root, walker = walk) { walker(root, (el) => { - cleanupAttributes(el); cleanupElement(el); + cleanupAttributes(el); + delete el._x_marker; }); } function warnAboutMissingPlugins() { @@ -1541,9 +1872,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } return setClassesFromString(el, value); } + function splitClasses(classString) { + return classString.split(/\s/).filter(Boolean); + } function setClassesFromString(el, classString) { - let split = (classString2) => classString2.split(" ").filter(Boolean); - let missingClasses = (classString2) => classString2.split(" ").filter((i) => !el.classList.contains(i)).filter(Boolean); + let missingClasses = (classString2) => splitClasses(classString2).filter((i) => !el.classList.contains(i)).filter(Boolean); let addClassesAndReturnUndo = (classes) => { el.classList.add(...classes); return () => { @@ -1554,9 +1887,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return addClassesAndReturnUndo(missingClasses(classString)); } function setClassesFromObject(el, classObject) { - let split = (classString) => classString.split(" ").filter(Boolean); - let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? split(classString) : false).filter(Boolean); - let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? split(classString) : false).filter(Boolean); + let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? splitClasses(classString) : false).filter(Boolean); + let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? splitClasses(classString) : false).filter(Boolean); let added = []; let removed = []; forRemove.forEach((i) => { @@ -1663,10 +1995,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let transitioningIn = doesntSpecify || modifiers.includes("in") || ["enter"].includes(stage); let transitioningOut = doesntSpecify || modifiers.includes("out") || ["leave"].includes(stage); if (modifiers.includes("in") && !doesntSpecify) { - modifiers = modifiers.filter((i, index) => index < modifiers.indexOf("out")); + modifiers = modifiers.filter((i, index2) => index2 < modifiers.indexOf("out")); } if (modifiers.includes("out") && !doesntSpecify) { - modifiers = modifiers.filter((i, index) => index > modifiers.indexOf("out")); + modifiers = modifiers.filter((i, index2) => index2 > modifiers.indexOf("out")); } let wantsAll = !modifiers.includes("opacity") && !modifiers.includes("scale"); let wantsOpacity = wantsAll || modifiers.includes("opacity"); @@ -1756,11 +2088,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true })); }) : Promise.resolve(hide); queueMicrotask(() => { - let closest = closestHide(el); - if (closest) { - if (!closest._x_hideChildren) - closest._x_hideChildren = []; - closest._x_hideChildren.push(el); + let closest2 = closestHide(el); + if (closest2) { + if (!closest2._x_hideChildren) + closest2._x_hideChildren = []; + closest2._x_hideChildren.push(el); } else { nextTick2(() => { let hideAfterChildren = (el2) => { @@ -1980,18 +2312,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } } function bindInputValue(el, value) { - if (el.type === "radio") { + if (isRadio(el)) { if (el.attributes.value === void 0) { el.value = value; } - if (window.fromModel) { - if (typeof value === "boolean") { - el.checked = safeParseBoolean(el.value) === value; - } else { - el.checked = checkedAttrLooseCompare(el.value, value); - } - } - } else if (el.type === "checkbox") { + } else if (isCheckbox(el)) { if (Number.isInteger(value)) { el.value = value; } else if (!Array.isArray(value) && typeof value !== "boolean" && ![null, void 0].includes(value)) { @@ -2048,8 +2373,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); const arrayWrappedValue = [].concat(value).map((value2) => { return value2 + ""; }); - Array.from(el.options).forEach((option) => { - option.selected = arrayWrappedValue.includes(option.value); + Array.from(el.options).forEach((option2) => { + option2.selected = arrayWrappedValue.includes(option2.value); }); } function camelCase(subject) { @@ -2067,34 +2392,37 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } return rawValue ? Boolean(rawValue) : null; } + var booleanAttributes = /* @__PURE__ */ new Set([ + "allowfullscreen", + "async", + "autofocus", + "autoplay", + "checked", + "controls", + "default", + "defer", + "disabled", + "formnovalidate", + "inert", + "ismap", + "itemscope", + "loop", + "multiple", + "muted", + "nomodule", + "novalidate", + "open", + "playsinline", + "readonly", + "required", + "reversed", + "selected", + "shadowrootclonable", + "shadowrootdelegatesfocus", + "shadowrootserializable" + ]); function isBooleanAttr(attrName) { - const booleanAttributes = [ - "disabled", - "checked", - "required", - "readonly", - "open", - "selected", - "autofocus", - "itemscope", - "multiple", - "novalidate", - "allowfullscreen", - "allowpaymentrequest", - "formnovalidate", - "autoplay", - "controls", - "loop", - "muted", - "playsinline", - "default", - "ismap", - "reversed", - "async", - "defer", - "nomodule" - ]; - return booleanAttributes.includes(attrName); + return booleanAttributes.has(attrName); } function attributeShouldntBePreservedIfFalsy(name) { return !["aria-pressed", "aria-checked", "aria-expanded", "aria-selected"].includes(name); @@ -2127,11 +2455,17 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } return attr; } + function isCheckbox(el) { + return el.type === "checkbox" || el.localName === "ui-checkbox" || el.localName === "ui-switch"; + } + function isRadio(el) { + return el.type === "radio" || el.localName === "ui-radio"; + } function debounce(func, wait) { - var timeout; + let timeout; return function() { - var context = this, args = arguments; - var later = function() { + const context = this, args = arguments; + const later = function() { timeout = null; func.apply(context, args); }; @@ -2195,10 +2529,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return stores[name]; } stores[name] = value; + initInterceptors(stores[name]); if (typeof value === "object" && value !== null && value.hasOwnProperty("init") && typeof value.init === "function") { stores[name].init(); } - initInterceptors(stores[name]); } function getStores() { return stores; @@ -2280,7 +2614,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); get raw() { return raw; }, - version: "3.14.1", + get transaction() { + return transaction; + }, + version: "3.15.12", flushAndStopDeferringMutations, dontAutoEvaluateFunctions, disableEffectScheduling, @@ -2294,13 +2631,17 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); onlyDuringClone, addRootSelector, addInitSelector, + setErrorHandler, interceptClone, addScopeToNode, deferMutations, mapAttributes, evaluateLater, interceptInit, + initInterceptors, + injectMagics, setEvaluator, + setRawEvaluator, mergeProxies, extractProp, findClosest, @@ -2316,6 +2657,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); throttle, debounce, evaluate, + evaluateRaw, initTree, nextTick, prefixed: prefix, @@ -2861,10 +3203,18 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); has(key) { return has$1.call(this, key, true); }, - add: createReadonlyMethod("add"), - set: createReadonlyMethod("set"), - delete: createReadonlyMethod("delete"), - clear: createReadonlyMethod("clear"), + add: createReadonlyMethod( + "add" + ), + set: createReadonlyMethod( + "set" + ), + delete: createReadonlyMethod( + "delete" + ), + clear: createReadonlyMethod( + "clear" + ), forEach: createForEach(true, false) }; const shallowReadonlyInstrumentations2 = { @@ -2877,10 +3227,18 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); has(key) { return has$1.call(this, key, true); }, - add: createReadonlyMethod("add"), - set: createReadonlyMethod("set"), - delete: createReadonlyMethod("delete"), - clear: createReadonlyMethod("clear"), + add: createReadonlyMethod( + "add" + ), + set: createReadonlyMethod( + "set" + ), + delete: createReadonlyMethod( + "delete" + ), + clear: createReadonlyMethod( + "clear" + ), forEach: createForEach(true, true) }; const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; @@ -3077,22 +3435,25 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return; el._x_removeModelListeners["default"](); let outerGet = el._x_model.get; - let outerSet = el._x_model.set; - let releaseEntanglement = entangle({ - get() { - return outerGet(); - }, - set(value) { - outerSet(value); - } - }, { - get() { - return innerGet(); + let outerSet = el._x_model.setWithModifiers; + let releaseEntanglement = entangle( + { + get() { + return outerGet(); + }, + set(value) { + outerSet(value); + } }, - set(value) { - innerSet(value); + { + get() { + return innerGet(); + }, + set(value) { + innerSet(value); + } } - }); + ); cleanup2(releaseEntanglement); }); }); @@ -3100,20 +3461,20 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (el.tagName.toLowerCase() !== "template") warn("x-teleport can only be used on a <template> tag", el); let target = getTarget(expression); - let clone2 = el.content.cloneNode(true).firstElementChild; - el._x_teleport = clone2; - clone2._x_teleportBack = el; + let clone22 = el.content.cloneNode(true).firstElementChild; + el._x_teleport = clone22; + clone22._x_teleportBack = el; el.setAttribute("data-teleport-template", true); - clone2.setAttribute("data-teleport-target", true); + clone22.setAttribute("data-teleport-target", true); if (el._x_forwardEvents) { el._x_forwardEvents.forEach((eventName) => { - clone2.addEventListener(eventName, (e) => { + clone22.addEventListener(eventName, (e) => { e.stopPropagation(); el.dispatchEvent(new e.constructor(e.type, e)); }); }); } - addScopeToNode(clone2, {}, el); + addScopeToNode(clone22, {}, el); let placeInDom = (clone3, target2, modifiers2) => { if (modifiers2.includes("prepend")) { target2.parentNode.insertBefore(clone3, target2); @@ -3124,10 +3485,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } }; mutateDom(() => { - placeInDom(clone2, target, modifiers); skipDuringClone(() => { - initTree(clone2); - clone2._x_ignore = true; + placeInDom(clone22, target, modifiers); + initTree(clone22); })(); }); el._x_teleportPutBack = () => { @@ -3136,7 +3496,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); placeInDom(el._x_teleport, target2, modifiers); }); }; - cleanup2(() => clone2.remove()); + cleanup2( + () => mutateDom(() => { + clone22.remove(); + destroyTree(clone22); + }) + ); }); var teleportContainerDuringClone = document.createElement("div"); function getTarget(expression) { @@ -3170,24 +3535,16 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); event = dotSyntax(event); if (modifiers.includes("camel")) event = camelCase2(event); - if (modifiers.includes("passive")) - options.passive = true; if (modifiers.includes("capture")) options.capture = true; if (modifiers.includes("window")) listenerTarget = window; if (modifiers.includes("document")) listenerTarget = document; - if (modifiers.includes("debounce")) { - let nextModifier = modifiers[modifiers.indexOf("debounce") + 1] || "invalid-wait"; - let wait = isNumeric(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; - handler4 = debounce(handler4, wait); - } - if (modifiers.includes("throttle")) { - let nextModifier = modifiers[modifiers.indexOf("throttle") + 1] || "invalid-wait"; - let wait = isNumeric(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; - handler4 = throttle(handler4, wait); + if (modifiers.includes("passive")) { + options.passive = modifiers[modifiers.indexOf("passive") + 1] !== "false"; } + handler4 = addDebounceOrThrottle(modifiers, handler4); if (modifiers.includes("prevent")) handler4 = wrapHandler(handler4, (next, e) => { e.preventDefault(); @@ -3222,6 +3579,14 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); handler4 = wrapHandler(handler4, (next, e) => { e.target === el && next(e); }); + if (event === "submit") { + handler4 = wrapHandler(handler4, (next, e) => { + if (e.target._x_pendingModelUpdates) { + e.target._x_pendingModelUpdates.forEach((fn) => fn()); + } + next(e); + }); + } if (isKeyEvent(event) || isClickEvent(event)) { handler4 = wrapHandler(handler4, (next, e) => { if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) { @@ -3235,17 +3600,32 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); listenerTarget.removeEventListener(event, handler4, options); }; } + function addDebounceOrThrottle(modifiers, handler4) { + if (modifiers.includes("debounce")) { + let nextModifier = modifiers[modifiers.indexOf("debounce") + 1] || "invalid-wait"; + let wait = isNumeric2(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; + handler4 = debounce(handler4, wait); + } + if (modifiers.includes("throttle")) { + let nextModifier = modifiers[modifiers.indexOf("throttle") + 1] || "invalid-wait"; + let wait = isNumeric2(nextModifier.split("ms")[0]) ? Number(nextModifier.split("ms")[0]) : 250; + handler4 = throttle(handler4, wait); + } + return handler4; + } function dotSyntax(subject) { return subject.replace(/-/g, "."); } function camelCase2(subject) { return subject.toLowerCase().replace(/-(\w)/g, (match, char) => char.toUpperCase()); } - function isNumeric(subject) { + function isNumeric2(subject) { return !Array.isArray(subject) && !isNaN(subject); } function kebabCase2(subject) { - if ([" ", "_"].includes(subject)) + if ([" ", "_"].includes( + subject + )) return subject; return subject.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\s]/, "-").toLowerCase(); } @@ -3257,15 +3637,15 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } function isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) { let keyModifiers = modifiers.filter((i) => { - return !["window", "document", "prevent", "stop", "once", "capture", "self", "away", "outside", "passive"].includes(i); + return !["window", "document", "prevent", "stop", "once", "capture", "self", "away", "outside", "passive", "preserve-scroll", "blur", "change", "lazy"].includes(i); }); if (keyModifiers.includes("debounce")) { let debounceIndex = keyModifiers.indexOf("debounce"); - keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); + keyModifiers.splice(debounceIndex, isNumeric2((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); } if (keyModifiers.includes("throttle")) { let debounceIndex = keyModifiers.indexOf("throttle"); - keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); + keyModifiers.splice(debounceIndex, isNumeric2((keyModifiers[debounceIndex + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1); } if (keyModifiers.length === 0) return false; @@ -3319,7 +3699,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); directive("model", (el, { modifiers, expression }, { effect: effect3, cleanup: cleanup2 }) => { let scopeTarget = el; if (modifiers.includes("parent")) { - scopeTarget = el.parentNode; + scopeTarget = findClosest(el, (element) => element !== el); } let evaluateGet = evaluateLater(scopeTarget, expression); let evaluateSet; @@ -3354,14 +3734,53 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); el.setAttribute("name", expression); }); } - var event = el.tagName.toLowerCase() === "select" || ["checkbox", "radio"].includes(el.type) || modifiers.includes("lazy") ? "change" : "input"; - let removeListener = isCloning ? () => { - } : on(el, event, modifiers, (e) => { - setValue(getInputValue(el, modifiers, e, getValue())); - }); + let hasChangeModifier = modifiers.includes("change") || modifiers.includes("lazy"); + let hasBlurModifier = modifiers.includes("blur"); + let hasEnterModifier = modifiers.includes("enter"); + let hasExplicitEventModifiers = hasChangeModifier || hasBlurModifier || hasEnterModifier; + let removeListener; + if (isCloning) { + removeListener = () => { + }; + } else if (hasExplicitEventModifiers) { + let listeners2 = []; + let syncValue = (e) => setValue(getInputValue(el, modifiers, e, getValue())); + if (hasChangeModifier) { + listeners2.push(on(el, "change", modifiers, syncValue)); + } + if (hasBlurModifier) { + listeners2.push(on(el, "blur", modifiers, syncValue)); + if (el.form) { + let form = el.form; + let syncCallback = () => syncValue({ target: el }); + if (!form._x_pendingModelUpdates) + form._x_pendingModelUpdates = []; + form._x_pendingModelUpdates.push(syncCallback); + cleanup2(() => { + if (form._x_pendingModelUpdates) { + form._x_pendingModelUpdates.splice(form._x_pendingModelUpdates.indexOf(syncCallback), 1); + } + }); + } + } + if (hasEnterModifier) { + listeners2.push(on(el, "keydown", modifiers, (e) => { + if (e.key === "Enter") + syncValue(e); + })); + } + removeListener = () => listeners2.forEach((remove) => remove()); + } else { + let event = el.tagName.toLowerCase() === "select" || ["checkbox", "radio"].includes(el.type) ? "change" : "input"; + removeListener = on(el, event, modifiers, (e) => { + setValue(getInputValue(el, modifiers, e, getValue())); + }); + } if (modifiers.includes("fill")) { - if ([void 0, null, ""].includes(getValue()) || el.type === "checkbox" && Array.isArray(getValue()) || el.tagName.toLowerCase() === "select" && el.multiple) { - setValue(getInputValue(el, modifiers, { target: el }, getValue())); + if ([void 0, null, ""].includes(getValue()) || isCheckbox(el) && Array.isArray(getValue()) || el.tagName.toLowerCase() === "select" && el.multiple) { + setValue( + getInputValue(el, modifiers, { target: el }, getValue()) + ); } } if (!el._x_removeModelListeners) @@ -3380,14 +3799,29 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }, set(value) { setValue(value); - } + }, + setWithModifiers: addDebounceOrThrottle(modifiers, setValue) }; el._x_forceModelUpdate = (value) => { if (value === void 0 && typeof expression === "string" && expression.match(/\./)) value = ""; - window.fromModel = true; - mutateDom(() => bind(el, "value", value)); - delete window.fromModel; + mutateDom(() => { + if (isCheckbox(el)) { + if (Array.isArray(value)) { + el.checked = value.some((val) => val == el.value); + } else { + el.checked = !!value; + } + } else if (isRadio(el)) { + if (typeof value === "boolean") { + el.checked = safeParseBoolean(el.value) === value; + } else { + el.checked = el.value == value; + } + } else { + bind(el, "value", value); + } + }); }; effect3(() => { let value = getValue(); @@ -3400,7 +3834,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return mutateDom(() => { if (event instanceof CustomEvent && event.detail !== void 0) return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value; - else if (el.type === "checkbox") { + else if (isCheckbox(el)) { if (Array.isArray(currentValue)) { let newValue = null; if (modifiers.includes("number")) { @@ -3416,22 +3850,22 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } } else if (el.tagName.toLowerCase() === "select" && el.multiple) { if (modifiers.includes("number")) { - return Array.from(event.target.selectedOptions).map((option) => { - let rawValue = option.value || option.text; + return Array.from(event.target.selectedOptions).map((option2) => { + let rawValue = option2.value || option2.text; return safeParseNumber(rawValue); }); } else if (modifiers.includes("boolean")) { - return Array.from(event.target.selectedOptions).map((option) => { - let rawValue = option.value || option.text; + return Array.from(event.target.selectedOptions).map((option2) => { + let rawValue = option2.value || option2.text; return safeParseBoolean(rawValue); }); } - return Array.from(event.target.selectedOptions).map((option) => { - return option.value || option.text; + return Array.from(event.target.selectedOptions).map((option2) => { + return option2.value || option2.text; }); } else { let newValue; - if (el.type === "radio") { + if (isRadio(el)) { if (event.target.checked) { newValue = event.target.value; } else { @@ -3454,12 +3888,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } function safeParseNumber(rawValue) { let number = rawValue ? parseFloat(rawValue) : null; - return isNumeric2(number) ? number : rawValue; + return isNumeric22(number) ? number : rawValue; } function checkedAttrLooseCompare2(valueA, valueB) { return valueA == valueB; } - function isNumeric2(subject) { + function isNumeric22(subject) { return !Array.isArray(subject) && !isNaN(subject); } function isGetterSetter(value) { @@ -3488,7 +3922,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); effect3(() => { evaluate22((value) => { mutateDom(() => { - el.innerHTML = value; + el.innerHTML = value ?? ""; el._x_ignoreSelf = true; initTree(el); delete el._x_ignoreSelf; @@ -3597,13 +4031,16 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); el._x_isShown = true; }; let clickAwayCompatibleShow = () => setTimeout(show); - let toggle = once((value) => value ? show() : hide(), (value) => { - if (typeof el._x_toggleAndCascadeWithTransitions === "function") { - el._x_toggleAndCascadeWithTransitions(el, value, show, hide); - } else { - value ? clickAwayCompatibleShow() : hide(); + let toggle = once( + (value) => value ? show() : hide(), + (value) => { + if (typeof el._x_toggleAndCascadeWithTransitions === "function") { + el._x_toggleAndCascadeWithTransitions(el, value, show, hide); + } else { + value ? clickAwayCompatibleShow() : hide(); + } } - }); + ); let oldValue; let firstTime = true; effect3(() => evaluate22((value) => { @@ -3619,132 +4056,96 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); directive("for", (el, { expression }, { effect: effect3, cleanup: cleanup2 }) => { let iteratorNames = parseForExpression(expression); let evaluateItems = evaluateLater(el, iteratorNames.items); - let evaluateKey = evaluateLater(el, el._x_keyExpression || "index"); - el._x_prevKeys = []; - el._x_lookup = {}; + let evaluateKey = evaluateLater( + el, + el._x_keyExpression || "index" + ); + el._x_lookup = /* @__PURE__ */ new Map(); effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey)); cleanup2(() => { - Object.values(el._x_lookup).forEach((el2) => el2.remove()); - delete el._x_prevKeys; + el._x_lookup.forEach( + (el2) => mutateDom(() => { + destroyTree(el2); + el2.remove(); + }) + ); delete el._x_lookup; }); }); - function loop(el, iteratorNames, evaluateItems, evaluateKey) { - let isObject22 = (i) => typeof i === "object" && !Array.isArray(i); - let templateEl = el; + function refreshScope(scope2) { + return (newScope) => { + Object.entries(newScope).forEach(([key, value]) => { + scope2[key] = value; + }); + }; + } + function loop(templateEl, iteratorNames, evaluateItems, evaluateKey) { evaluateItems((items) => { - if (isNumeric3(items) && items >= 0) { - items = Array.from(Array(items).keys(), (i) => i + 1); - } - if (items === void 0) + if (isNumeric3(items)) + items = Array.from({ length: items }, (_, i) => i + 1); + if (items === void 0 || items === null) items = []; - let lookup = el._x_lookup; - let prevKeys = el._x_prevKeys; - let scopes = []; - let keys = []; - if (isObject22(items)) { - items = Object.entries(items).map(([key, value]) => { - let scope2 = getIterationScopeVariables(iteratorNames, value, key, items); - evaluateKey((value2) => { - if (keys.includes(value2)) - warn("Duplicate key on x-for", el); - keys.push(value2); - }, { scope: { index: key, ...scope2 } }); - scopes.push(scope2); - }); - } else { - for (let i = 0; i < items.length; i++) { - let scope2 = getIterationScopeVariables(iteratorNames, items[i], i, items); - evaluateKey((value) => { - if (keys.includes(value)) - warn("Duplicate key on x-for", el); - keys.push(value); - }, { scope: { index: i, ...scope2 } }); - scopes.push(scope2); - } - } - let adds = []; - let moves = []; - let removes = []; - let sames = []; - for (let i = 0; i < prevKeys.length; i++) { - let key = prevKeys[i]; - if (keys.indexOf(key) === -1) - removes.push(key); - } - prevKeys = prevKeys.filter((key) => !removes.includes(key)); - let lastKey = "template"; - for (let i = 0; i < keys.length; i++) { - let key = keys[i]; - let prevIndex = prevKeys.indexOf(key); - if (prevIndex === -1) { - prevKeys.splice(i, 0, key); - adds.push([lastKey, i]); - } else if (prevIndex !== i) { - let keyInSpot = prevKeys.splice(i, 1)[0]; - let keyForSpot = prevKeys.splice(prevIndex - 1, 1)[0]; - prevKeys.splice(i, 0, keyForSpot); - prevKeys.splice(prevIndex, 0, keyInSpot); - moves.push([keyInSpot, keyForSpot]); - } else { - sames.push(key); - } - lastKey = key; - } - for (let i = 0; i < removes.length; i++) { - let key = removes[i]; - if (!!lookup[key]._x_effects) { - lookup[key]._x_effects.forEach(dequeueJob); - } - lookup[key].remove(); - lookup[key] = null; - delete lookup[key]; - } - for (let i = 0; i < moves.length; i++) { - let [keyInSpot, keyForSpot] = moves[i]; - let elInSpot = lookup[keyInSpot]; - let elForSpot = lookup[keyForSpot]; - let marker = document.createElement("div"); - mutateDom(() => { - if (!elForSpot) - warn(`x-for ":key" is undefined or invalid`, templateEl, keyForSpot, lookup); - elForSpot.after(marker); - elInSpot.after(elForSpot); - elForSpot._x_currentIfEl && elForSpot.after(elForSpot._x_currentIfEl); - marker.before(elInSpot); - elInSpot._x_currentIfEl && elInSpot.after(elInSpot._x_currentIfEl); - marker.remove(); + if (items instanceof Set) + items = Array.from(items); + if (items instanceof Map) + items = Array.from(items); + let oldLookup = templateEl._x_lookup; + let lookup = /* @__PURE__ */ new Map(); + templateEl._x_lookup = lookup; + let hasStringKeys = isObject22(items); + let scopeEntries = Object.entries(items).map(([index2, item]) => { + if (!hasStringKeys) + index2 = parseInt(index2); + let scope2 = getIterationScopeVariables(iteratorNames, item, index2, items); + let key; + evaluateKey((innerKey) => { + if (typeof innerKey === "object") + warn("x-for key cannot be an object, it must be a string or an integer", templateEl); + if (oldLookup.has(innerKey)) { + lookup.set(innerKey, oldLookup.get(innerKey)); + oldLookup.delete(innerKey); + } + key = innerKey; + }, { scope: { index: index2, ...scope2 } }); + return [key, scope2]; + }); + mutateDom(() => { + oldLookup.forEach((el) => { + destroyTree(el); + el.remove(); }); - elForSpot._x_refreshXForScope(scopes[keys.indexOf(keyForSpot)]); - } - for (let i = 0; i < adds.length; i++) { - let [lastKey2, index] = adds[i]; - let lastEl = lastKey2 === "template" ? templateEl : lookup[lastKey2]; - if (lastEl._x_currentIfEl) - lastEl = lastEl._x_currentIfEl; - let scope2 = scopes[index]; - let key = keys[index]; - let clone2 = document.importNode(templateEl.content, true).firstElementChild; - let reactiveScope = reactive(scope2); - addScopeToNode(clone2, reactiveScope, templateEl); - clone2._x_refreshXForScope = (newScope) => { - Object.entries(newScope).forEach(([key2, value]) => { - reactiveScope[key2] = value; - }); - }; - mutateDom(() => { - lastEl.after(clone2); - skipDuringClone(() => initTree(clone2))(); + let added = /* @__PURE__ */ new Set(); + let prev = templateEl; + scopeEntries.forEach(([key, scope2]) => { + if (lookup.has(key)) { + let el = lookup.get(key); + el._x_refreshXForScope(scope2); + if (prev.nextElementSibling !== el) { + if (prev.nextElementSibling) + el.replaceWith(prev.nextElementSibling); + prev.after(el); + } + prev = el; + if (el._x_currentIfEl) { + if (el.nextElementSibling !== el._x_currentIfEl) + prev.after(el._x_currentIfEl); + prev = el._x_currentIfEl; + } + return; + } + if (templateEl.content.children.length > 1) + warn("x-for templates require a single root element, additional elements will be ignored.", templateEl); + let clone22 = document.importNode(templateEl.content, true).firstElementChild; + let reactiveScope = reactive(scope2); + addScopeToNode(clone22, reactiveScope, templateEl); + clone22._x_refreshXForScope = refreshScope(reactiveScope); + lookup.set(key, clone22); + added.add(clone22); + prev.after(clone22); + prev = clone22; }); - if (typeof key === "object") { - warn("x-for key cannot be an object, it must be a string or an integer", templateEl); - } - lookup[key] = clone2; - } - for (let i = 0; i < sames.length; i++) { - lookup[sames[i]]._x_refreshXForScope(scopes[keys.indexOf(sames[i])]); - } - templateEl._x_prevKeys = keys; + skipDuringClone(() => added.forEach((clone22) => initTree(clone22)))(); + }); }); } function parseForExpression(expression) { @@ -3769,7 +4170,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } return res; } - function getIterationScopeVariables(iteratorNames, item, index, items) { + function getIterationScopeVariables(iteratorNames, item, index2, items) { let scopeVariables = {}; if (/^\[.*\]$/.test(iteratorNames.item) && Array.isArray(item)) { let names = iteratorNames.item.replace("[", "").replace("]", "").split(",").map((i) => i.trim()); @@ -3785,18 +4186,23 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); scopeVariables[iteratorNames.item] = item; } if (iteratorNames.index) - scopeVariables[iteratorNames.index] = index; + scopeVariables[iteratorNames.index] = index2; if (iteratorNames.collection) scopeVariables[iteratorNames.collection] = items; return scopeVariables; } function isNumeric3(subject) { - return !Array.isArray(subject) && !isNaN(subject); + return typeof subject !== "object" && !isNaN(subject); + } + function isObject22(subject) { + return typeof subject === "object" && !Array.isArray(subject); } function handler3() { } handler3.inline = (el, { expression }, { cleanup: cleanup2 }) => { let root = closestRoot(el); + if (!root) + return; if (!root._x_refs) root._x_refs = {}; root._x_refs[expression] = el; @@ -3810,23 +4216,21 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let show = () => { if (el._x_currentIfEl) return el._x_currentIfEl; - let clone2 = el.content.cloneNode(true).firstElementChild; - addScopeToNode(clone2, {}, el); + let clone22 = el.content.cloneNode(true).firstElementChild; + addScopeToNode(clone22, {}, el); mutateDom(() => { - el.after(clone2); - skipDuringClone(() => initTree(clone2))(); + el.after(clone22); + skipDuringClone(() => initTree(clone22))(); }); - el._x_currentIfEl = clone2; + el._x_currentIfEl = clone22; el._x_undoIf = () => { - walk(clone2, (node) => { - if (!!node._x_effects) { - node._x_effects.forEach(dequeueJob); - } + mutateDom(() => { + destroyTree(clone22); + clone22.remove(); }); - clone2.remove(); delete el._x_currentIfEl; }; - return clone2; + return clone22; }; let hide = () => { if (!el._x_undoIf) @@ -3872,6 +4276,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el)); } alpine_default.setEvaluator(normalEvaluator); + alpine_default.setRawEvaluator(normalRawEvaluator); alpine_default.setReactivityEngine({ reactive: reactive2, effect: effect2, release: stop, raw: toRaw }); var src_default = alpine_default; var module_default = src_default; @@ -3968,1970 +4373,6592 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return latest; } - // js/request/modal.js - function showHtmlModal(html) { - let page = document.createElement("html"); - page.innerHTML = html; - page.querySelectorAll("a").forEach((a) => a.setAttribute("target", "_top")); - let modal = document.getElementById("livewire-error"); - if (typeof modal != "undefined" && modal != null) { - modal.innerHTML = ""; - } else { - modal = document.createElement("div"); - modal.id = "livewire-error"; - modal.style.position = "fixed"; - modal.style.width = "100vw"; - modal.style.height = "100vh"; - modal.style.padding = "50px"; - modal.style.backgroundColor = "rgba(0, 0, 0, .6)"; - modal.style.zIndex = 2e5; - } - let iframe = document.createElement("iframe"); - iframe.style.backgroundColor = "#17161A"; - iframe.style.borderRadius = "5px"; - iframe.style.width = "100%"; - iframe.style.height = "100%"; - modal.appendChild(iframe); - document.body.prepend(modal); - document.body.style.overflow = "hidden"; - iframe.contentWindow.document.open(); - iframe.contentWindow.document.write(page.outerHTML); - iframe.contentWindow.document.close(); - modal.addEventListener("click", () => hideHtmlModal(modal)); - modal.setAttribute("tabindex", 0); - modal.addEventListener("keydown", (e) => { - if (e.key === "Escape") - hideHtmlModal(modal); + // js/request/interactions.js + function coordinateNetworkInteractions(messageBus2) { + interceptPartition(({ message, compileRequest }) => { + if (!message.component.isIsolated) + return; + compileRequest([message]); + }); + interceptPartition(({ message, compileRequest }) => { + if (message.component.isLazy && !message.component.hasBeenLazyLoaded && message.component.isLazyIsolated) { + compileRequest([message]); + } + }); + interceptPartition(({ message, compileRequest }) => { + let component = message.component; + let bundledMessages = []; + component.getDeepChildrenWithBindings((child) => { + let action = constructAction(child, "$commit"); + let message2 = createOrAddToOutstandingMessage(action); + bundledMessages.push(message2); + }); + if (bundledMessages.length > 0) { + compileRequest([message, ...bundledMessages]); + } + }); + interceptAction(({ action }) => { + let isRenderless = action?.origin?.directive?.modifiers.includes("renderless"); + if (isRenderless) { + action.metadata.renderless = true; + } + let message = messageBus2.activeMessageMatchingScope(action); + if (message) { + if (message.isAsync() || action.isAsync()) + return; + if (action.metadata.type === "poll") { + return action.cancel(); + } + if (Array.from(message.actions).every((action2) => action2.metadata.type === "poll")) { + return message.cancel(); + } + if (Array.from(message.actions).every((action2) => action2.metadata.type === "model.live")) { + if (action.metadata.type === "model.live") { + return; + } + } + action.defer(); + message.addInterceptor(({ onFinish }) => { + onFinish(() => action.fire()); + }); + } }); - modal.focus(); - } - function hideHtmlModal(modal) { - modal.outerHTML = ""; - document.body.style.overflow = "visible"; } - // js/request/pool.js - var RequestPool = class { - constructor() { - this.commits = /* @__PURE__ */ new Set(); + // js/request/request.js + var MessageRequest = class { + messages = /* @__PURE__ */ new Set(); + controller = new AbortController(); + interceptors = []; + cancelled = false; + uri = null; + payload = null; + options = null; + addMessage(message) { + message.setRequest(this); + this.messages.add(message); + } + getActiveMessages() { + return new Set([...this.messages].filter((message) => !message.isCancelled())); + } + initInterceptors(interceptorRegistry) { + this.interceptors = interceptorRegistry.getRequestInterceptors(this); + this.messages.forEach((message) => { + let messageInterceptors = interceptorRegistry.getMessageInterceptors(message); + message.setInterceptors(messageInterceptors); + }); + this.interceptors.forEach((interceptor2) => interceptor2.init()); + this.messages.forEach((message) => { + message.getInterceptors().forEach((interceptor2) => interceptor2.init()); + }); + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.controller.abort(); + this.messages.forEach((message) => { + if (message.isCancelled()) + return; + message.cancel(); + }); } - add(commit) { - this.commits.add(commit); + hasAllCancelledMessages() { + return this.getActiveMessages().size === 0; } - delete(commit) { - this.commits.delete(commit); + isCancelled() { + return this.cancelled; } - hasCommitFor(component) { - return !!this.findCommitByComponent(component); + invokeOnSend({ responsePromise }) { + this.interceptors.forEach((interceptor2) => interceptor2.onSend({ responsePromise })); + this.messages.forEach((message) => message.invokeOnSend()); } - findCommitByComponent(component) { - for (let [idx, commit] of this.commits.entries()) { - if (commit.component === component) - return commit; - } + invokeOnCancel() { + this.interceptors.forEach((interceptor2) => interceptor2.onCancel()); } - shouldHoldCommit(commit) { - return !commit.isolate; + invokeOnFailure({ error: error2 }) { + this.interceptors.forEach((interceptor2) => interceptor2.onFailure({ error: error2 })); + this.messages.forEach((message) => message.invokeOnFailure(error2)); } - empty() { - return this.commits.size === 0; + invokeOnResponse({ response }) { + this.interceptors.forEach((interceptor2) => interceptor2.onResponse({ response })); } - async send() { - this.prepare(); - await sendRequest(this); + invokeOnStream({ response }) { + this.interceptors.forEach((interceptor2) => interceptor2.onStream({ response })); } - prepare() { - this.commits.forEach((i) => i.prepare()); + invokeOnParsed({ response, body }) { + this.interceptors.forEach((interceptor2) => interceptor2.onParsed({ response, body })); } - payload() { - let commitPayloads = []; - let successReceivers = []; - let failureReceivers = []; - this.commits.forEach((commit) => { - let [payload, succeed2, fail2] = commit.toRequestPayload(); - commitPayloads.push(payload); - successReceivers.push(succeed2); - failureReceivers.push(fail2); - }); - let succeed = (components2) => successReceivers.forEach((receiver) => receiver(components2.shift())); - let fail = () => failureReceivers.forEach((receiver) => receiver()); - return [commitPayloads, succeed, fail]; + invokeOnRedirect({ url, preventDefault }) { + this.interceptors.forEach((interceptor2) => interceptor2.onRedirect({ url, preventDefault })); + } + invokeOnDump({ html, preventDefault }) { + this.interceptors.forEach((interceptor2) => interceptor2.onDump({ html, preventDefault })); + } + invokeOnError({ response, body, preventDefault }) { + this.interceptors.forEach((interceptor2) => interceptor2.onError({ response, body, preventDefault })); + this.messages.forEach((message) => message.invokeOnError({ response, body, preventDefault })); + } + invokeOnSuccess({ response, body, json }) { + this.interceptors.forEach((interceptor2) => interceptor2.onSuccess({ response, body, json })); + } + invokeOnFinish() { + this.interceptors.forEach((interceptor2) => interceptor2.onFinish()); } }; - - // js/request/commit.js - var Commit = class { - constructor(component) { - this.component = component; - this.isolate = false; - this.calls = []; - this.receivers = []; - this.resolvers = []; + var PageRequest = class { + controller = new AbortController(); + constructor(uri) { + this.uri = uri; } - addResolver(resolver) { - this.resolvers.push(resolver); + cancel() { + this.controller.abort(); } - addCall(method, params, receiver) { - this.calls.push({ - path: "", - method, - params, - handleReturn(value) { - receiver(value); - } - }); - } - prepare() { - trigger2("commit.prepare", { component: this.component }); - } - toRequestPayload() { - let propertiesDiff = diff(this.component.canonical, this.component.ephemeral); - let updates = this.component.mergeQueuedUpdates(propertiesDiff); - let payload = { - snapshot: this.component.snapshotEncoded, - updates, - calls: this.calls.map((i) => ({ - path: i.path, - method: i.method, - params: i.params - })) - }; - let succeedCallbacks = []; - let failCallbacks = []; - let respondCallbacks = []; - let succeed = (fwd) => succeedCallbacks.forEach((i) => i(fwd)); - let fail = () => failCallbacks.forEach((i) => i()); - let respond = () => respondCallbacks.forEach((i) => i()); - let finishTarget = trigger2("commit", { - component: this.component, - commit: payload, - succeed: (callback) => { - succeedCallbacks.push(callback); - }, - fail: (callback) => { - failCallbacks.push(callback); + isCancelled() { + return this.controller.signal.aborted; + } + }; + + // js/request/interceptor.js + var MessageInterceptor = class { + onSend = () => { + }; + onCancel = () => { + }; + onFailure = () => { + }; + onError = () => { + }; + onStream = () => { + }; + onSuccess = () => { + }; + onSkipped = () => { + }; + onFinish = () => { + }; + onSync = () => { + }; + onEffect = () => { + }; + onMorph = async () => { + }; + onRender = () => { + }; + constructor(message, callback) { + this.message = message; + this.callback = callback; + this.callback({ + message: this.message, + cancel: () => { + let attachedToMessage = this.message.getInterceptors().includes(this); + if (!attachedToMessage) { + this.onCancel(); + } + this.message.cancel(); }, - respond: (callback) => { - respondCallbacks.push(callback); - } + onSend: (callback2) => this.onSend = callback2, + onCancel: (callback2) => this.onCancel = callback2, + onFailure: (callback2) => this.onFailure = callback2, + onError: (callback2) => this.onError = callback2, + onStream: (callback2) => this.onStream = callback2, + onSuccess: (callback2) => this.onSuccess = callback2, + onSkipped: (callback2) => this.onSkipped = callback2, + onFinish: (callback2) => this.onFinish = callback2 }); - let handleResponse = (response) => { - let { snapshot, effects } = response; - respond(); - this.component.mergeNewSnapshot(snapshot, effects, updates); - this.component.processEffects(this.component.effects); - if (effects["returns"]) { - let returns = effects["returns"]; - let returnHandlerStack = this.calls.map(({ handleReturn }) => handleReturn); - returnHandlerStack.forEach((handleReturn, index) => { - handleReturn(returns[index]); - }); - } - let parsedSnapshot = JSON.parse(snapshot); - finishTarget({ snapshot: parsedSnapshot, effects }); - this.resolvers.forEach((i) => i()); - succeed(response); + } + init() { + } + }; + var RequestInterceptor = class { + onSend = () => { + }; + onCancel = () => { + }; + onFailure = () => { + }; + onResponse = () => { + }; + onParsed = () => { + }; + onError = () => { + }; + onStream = () => { + }; + onRedirect = () => { + }; + onDump = () => { + }; + onSuccess = () => { + }; + onFinish = () => { + }; + constructor(request, callback) { + this.request = request; + this.callback = callback; + this.callback({ + request: this.request, + onSend: (callback2) => this.onSend = callback2, + onCancel: (callback2) => this.onCancel = callback2, + onFailure: (callback2) => this.onFailure = callback2, + onResponse: (callback2) => this.onResponse = callback2, + onParsed: (callback2) => this.onParsed = callback2, + onError: (callback2) => this.onError = callback2, + onStream: (callback2) => this.onStream = callback2, + onRedirect: (callback2) => this.onRedirect = callback2, + onDump: (callback2) => this.onDump = callback2, + onSuccess: (callback2) => this.onSuccess = callback2, + onFinish: (callback2) => this.onFinish = callback2 + }); + } + init() { + } + }; + var InterceptorRegistry = class { + messageInterceptorCallbacks = []; + messageInterceptorCallbacksByComponent = new WeakBag(); + requestInterceptorCallbacks = []; + addInterceptor(component, callback) { + this.messageInterceptorCallbacksByComponent.add(component, callback); + return () => { + this.messageInterceptorCallbacksByComponent.delete(component, callback); }; - let handleFailure = () => { - respond(); - fail(); + } + addMessageInterceptor(callback) { + this.messageInterceptorCallbacks.push(callback); + return () => { + this.messageInterceptorCallbacks.splice(this.messageInterceptorCallbacks.indexOf(callback), 1); + }; + } + addRequestInterceptor(callback) { + this.requestInterceptorCallbacks.push(callback); + return () => { + this.requestInterceptorCallbacks.splice(this.requestInterceptorCallbacks.indexOf(callback), 1); }; - return [payload, handleResponse, handleFailure]; + } + getMessageInterceptors(message) { + let callbacks = [ + ...this.messageInterceptorCallbacksByComponent.get(message.component), + ...this.messageInterceptorCallbacks + ]; + return callbacks.map((callback) => { + return new MessageInterceptor(message, callback); + }); + } + getRequestInterceptors(request) { + return this.requestInterceptorCallbacks.map((callback) => { + return new RequestInterceptor(request, callback); + }); } }; - // js/request/bus.js - var CommitBus = class { + // js/utils/modal.js + function showHtmlModal(html) { + let page = document.createElement("html"); + page.innerHTML = html; + page.querySelectorAll("a").forEach( + (a) => a.setAttribute("target", "_top") + ); + let modal = document.getElementById("livewire-error"); + if (typeof modal != "undefined" && modal != null) { + modal.innerHTML = ""; + } else { + modal = document.createElement("dialog"); + modal.id = "livewire-error"; + modal.style.margin = "50px"; + modal.style.width = "calc(100% - 100px)"; + modal.style.height = "calc(100% - 100px)"; + modal.style.borderRadius = "5px"; + modal.style.padding = "0px"; + } + let iframe = document.createElement("iframe"); + iframe.style.backgroundColor = "#17161A"; + iframe.style.borderRadius = "5px"; + iframe.style.width = "100%"; + iframe.style.height = "100%"; + modal.appendChild(iframe); + document.body.prepend(modal); + document.body.style.overflow = "hidden"; + iframe.contentWindow.document.open(); + iframe.contentWindow.document.write(page.outerHTML); + iframe.contentWindow.document.close(); + modal.addEventListener("click", () => hideHtmlModal(modal)); + modal.addEventListener("close", () => cleanupModal(modal)); + modal.showModal(); + modal.focus(); + modal.blur(); + } + function hideHtmlModal(modal) { + modal.close(); + } + function cleanupModal(modal) { + modal.outerHTML = ""; + document.body.style.overflow = "visible"; + } + + // js/request/messageBus.js + var componentSymbols = /* @__PURE__ */ new WeakMap(); + var componentIslandSymbols = /* @__PURE__ */ new WeakMap(); + function scopeSymbolFromMessage(message) { + let component = message.component; + let hasAllIslands = Array.from(message.actions).every((action) => action.metadata.island); + if (hasAllIslands) { + let islandName = Array.from(message.actions).map((action) => action.metadata.island.name).sort().join("|"); + let islandSymbols = componentIslandSymbols.get(component); + if (!islandSymbols) { + islandSymbols = { [islandName]: Symbol() }; + componentIslandSymbols.set(component, islandSymbols); + } + if (!islandSymbols[islandName]) { + islandSymbols[islandName] = Symbol(); + } + return islandSymbols[islandName]; + } + if (!componentSymbols.has(component)) { + componentSymbols.set(component, Symbol()); + } + return componentSymbols.get(component); + } + function scopeSymbolFromAction(action) { + let component = action.component; + let isIsland = !!action.metadata.island; + if (isIsland) { + let islandName = action.metadata.island.name; + let islandSymbols = componentIslandSymbols.get(component); + if (!islandSymbols) { + islandSymbols = { [islandName]: Symbol() }; + componentIslandSymbols.set(component, islandSymbols); + } + if (!islandSymbols[islandName]) { + islandSymbols[islandName] = Symbol(); + } + return islandSymbols[islandName]; + } + if (!componentSymbols.has(component)) { + componentSymbols.set(component, Symbol()); + } + return componentSymbols.get(component); + } + var MessageBus = class { + pendingMessages = /* @__PURE__ */ new Set(); + activeMessages = /* @__PURE__ */ new Set(); + bufferingMessages = /* @__PURE__ */ new Set(); constructor() { - this.commits = /* @__PURE__ */ new Set(); - this.pools = /* @__PURE__ */ new Set(); } - add(component) { - let commit = this.findCommitOr(component, () => { - let newCommit = new Commit(component); - this.commits.add(newCommit); - return newCommit; + messageBuffer(message, callback) { + if (this.bufferingMessages.has(message)) { + return; + } + this.bufferingMessages.add(message); + setTimeout(() => { + callback(); + this.bufferingMessages.delete(message); + }, 5); + } + addPendingMessage(message) { + this.pendingMessages.add(message); + } + clearPendingMessages() { + this.pendingMessages.clear(); + } + getPendingMessages() { + return Array.from(this.pendingMessages); + } + addActiveMessage(message) { + this.activeMessages.add(message); + } + removeActiveMessage(message) { + this.activeMessages.delete(message); + } + findScopedPendingMessage(action) { + if (action.isAsync()) + return null; + let actionScope = scopeSymbolFromAction(action); + return Array.from(this.pendingMessages).find((message) => { + if (message.component !== action.component) + return false; + return Array.from(message.actions).some( + (existingAction) => scopeSymbolFromAction(existingAction) === actionScope + ); }); - bufferPoolingForFiveMs(commit, () => { - let pool = this.findPoolWithComponent(commit.component); - if (!pool) { - this.createAndSendNewPool(); - } + } + activeMessageMatchingScope(action) { + return Array.from(this.activeMessages).find((message) => this.matchesScope(message, action)); + } + matchesScope(message, action) { + return message.scope === scopeSymbolFromAction(action); + } + allScopedMessages(action) { + return [...Array.from(this.activeMessages), ...Array.from(this.pendingMessages)].filter((message) => { + return this.matchesScope(message, action); }); - return commit; } - findCommitOr(component, callback) { - for (let [idx, commit] of this.commits.entries()) { - if (commit.component === component) { - return commit; - } + eachPendingMessage(callback) { + Array.from(this.pendingMessages).forEach(callback); + } + }; + + // js/request/message.js + var Message = class { + actions = /* @__PURE__ */ new Set(); + snapshot = null; + updates = null; + calls = null; + payload = null; + responsePayload = null; + pendingReturns = []; + pendingReturnsMeta = {}; + interceptors = []; + cancelled = false; + skipped = false; + request = null; + _scope = null; + get scope() { + if (!this._scope) { + throw new Error("Message scope has not been set yet"); + } + return this._scope; + } + set scope(scope2) { + this._scope = scope2; + } + constructor(component) { + this.component = component; + } + addAction(action) { + let actionsByFingerprint = /* @__PURE__ */ new Map(); + Array.from(this.actions).forEach((action2) => { + actionsByFingerprint.set(action2.fingerprint, action2); + }); + if (actionsByFingerprint.has(action.fingerprint)) { + actionsByFingerprint.get(action.fingerprint).addSquashedAction(action); + return; } - return callback(); + action.message = this; + this.actions.add(action); } - findPoolWithComponent(component) { - for (let [idx, pool] of this.pools.entries()) { - if (pool.hasCommitFor(component)) - return pool; + removeAction(action) { + this.actions.delete(action); + action.message = null; + if (this.actions.size === 0) { + this.cancel(); } } - createAndSendNewPool() { - trigger2("commit.pooling", { commits: this.commits }); - let pools = this.corraleCommitsIntoPools(); - this.commits.clear(); - trigger2("commit.pooled", { pools }); - pools.forEach((pool) => { - if (pool.empty()) - return; - this.pools.add(pool); - pool.send().then(() => { - this.pools.delete(pool); - this.sendAnyQueuedCommits(); - }); + getActions() { + return Array.from(this.actions); + } + hasActionForIsland(island) { + return this.getActions().some((action) => { + return action.metadata.island?.name === island.metadata.name; }); } - corraleCommitsIntoPools() { - let pools = /* @__PURE__ */ new Set(); - for (let [idx, commit] of this.commits.entries()) { - let hasFoundPool = false; - pools.forEach((pool) => { - if (pool.shouldHoldCommit(commit)) { - pool.add(commit); - hasFoundPool = true; - } - }); - if (!hasFoundPool) { - let newPool = new RequestPool(); - newPool.add(commit); - pools.add(newPool); - } + hasActionForComponent() { + return this.getActions().some((action) => { + return action.metadata.island === void 0; + }); + } + setInterceptors(interceptors3) { + this.interceptors = interceptors3; + } + addInterceptor(callback) { + let interceptor2 = new MessageInterceptor(this, callback); + this.interceptors.push(interceptor2); + interceptor2.init(); + } + setRequest(request) { + this.request = request; + } + getInterceptors() { + return this.interceptors; + } + cancel() { + if (this.cancelled) + return; + this.cancelled = true; + this.invokeOnCancel(); + if (this.request?.hasAllCancelledMessages()) { + this.request.cancel(); } - return pools; } - sendAnyQueuedCommits() { - if (this.commits.size > 0) { - this.createAndSendNewPool(); + isCancelled() { + return this.cancelled; + } + markSkipped() { + this.skipped = true; + } + isSkipped() { + return this.skipped; + } + isAsync() { + return Array.from(this.actions).every((action) => action.isAsync()); + } + invokeOnSend() { + this.interceptors.forEach((interceptor2) => interceptor2.onSend({ + payload: this.payload + })); + Array.from(this.actions).forEach((action, index2) => { + let call = this.calls[index2]; + action.invokeOnSend({ call }); + }); + } + invokeOnCancel() { + this.interceptors.forEach((interceptor2) => interceptor2.onCancel()); + this.rejectActionPromises({ status: null, body: null, json: null, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnFailure(error2) { + this.interceptors.forEach((interceptor2) => interceptor2.onFailure({ error: error2 })); + Array.from(this.actions).forEach((action) => action.invokeOnFailure({ error: error2 })); + this.rejectActionPromises({ status: null, body: null, json: null, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnError({ response, body, preventDefault }) { + this.interceptors.forEach((interceptor2) => interceptor2.onError({ + response, + body, + preventDefault + })); + Array.from(this.actions).forEach((action) => action.invokeOnError({ response, body, preventDefault })); + let json = null; + try { + json = JSON.parse(body); + } catch (e) { } + this.rejectActionPromises({ status: response.status, body, json, errors: null }); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + this.invokeOnFinish(); + } + invokeOnStream({ json }) { + this.interceptors.forEach((interceptor2) => interceptor2.onStream({ json })); + } + invokeOnSuccess() { + this.interceptors.forEach((interceptor2) => { + interceptor2.onSuccess({ + payload: this.responsePayload, + onSync: (callback) => interceptor2.onSync = callback, + onEffect: (callback) => interceptor2.onEffect = callback, + onMorph: (callback) => interceptor2.onMorph = callback, + onRender: (callback) => interceptor2.onRender = callback + }); + }); + this.pendingReturns = this.responsePayload.effects["returns"] || []; + this.pendingReturnsMeta = this.responsePayload.effects["returnsMeta"] || {}; + } + invokeOnSync() { + this.interceptors.forEach((interceptor2) => interceptor2.onSync()); + } + invokeOnEffect() { + this.interceptors.forEach((interceptor2) => interceptor2.onEffect()); + } + async invokeOnMorph() { + await Promise.all( + this.interceptors.map((interceptor2) => interceptor2.onMorph()) + ); + } + invokeOnRender() { + this.interceptors.forEach((interceptor2) => interceptor2.onRender()); + } + invokeOnFinish() { + this.interceptors.forEach((interceptor2) => interceptor2.onFinish()); + } + invokeOnSkipped() { + this.interceptors.forEach((interceptor2) => interceptor2.onSkipped()); + Array.from(this.actions).forEach((action) => action.invokeOnFinish()); + } + rejectActionPromises({ status, body, json, errors }) { + Array.from(this.actions).forEach((action) => { + action.rejectPromise({ status, body, json, errors }); + }); + } + resolveActionPromises(returns, returnsMeta) { + let resolvedActions = /* @__PURE__ */ new Set(); + returns.forEach((value, index2) => { + let action = Array.from(this.actions)[index2]; + if (!action) + return; + let meta = returnsMeta[index2]; + if (meta?.errors) { + action.rejectPromise({ status: 422, body: null, json: null, errors: meta.errors }); + action.invokeOnFinish(); + resolvedActions.add(action); + return; + } + if (meta?.status) { + action.rejectPromise({ status: meta.status, body: null, json: null, errors: null }); + action.invokeOnFinish(); + resolvedActions.add(action); + return; + } + action.invokeOnSuccess(value); + action.resolvePromise(value); + action.invokeOnFinish(); + resolvedActions.add(action); + }); + Array.from(this.actions).forEach((action) => { + if (resolvedActions.has(action)) + return; + action.invokeOnSuccess(void 0); + action.resolvePromise(); + action.invokeOnFinish(); + }); } }; - var buffersByCommit = /* @__PURE__ */ new WeakMap(); - function bufferPoolingForFiveMs(commit, callback) { - if (buffersByCommit.has(commit)) - return; - buffersByCommit.set(commit, setTimeout(() => { - callback(); - buffersByCommit.delete(commit); - }, 5)); - } - // js/request/index.js - var commitBus = new CommitBus(); - async function requestCommit(component) { - let commit = commitBus.add(component); - let promise = new Promise((resolve) => { - commit.addResolver(resolve); - }); - promise.commit = commit; - return promise; - } - async function requestCall(component, method, params) { - let commit = commitBus.add(component); - let promise = new Promise((resolve) => { - commit.addCall(method, params, (value) => resolve(value)); - }); - promise.commit = commit; - return promise; - } - async function sendRequest(pool) { - let [payload, handleSuccess, handleFailure] = pool.payload(); - let options = { - method: "POST", - body: JSON.stringify({ - _token: getCsrfToken(), - components: payload - }), - headers: { - "Content-type": "application/json", - "X-Livewire": "" - } - }; - let succeedCallbacks = []; - let failCallbacks = []; - let respondCallbacks = []; - let succeed = (fwd) => succeedCallbacks.forEach((i) => i(fwd)); - let fail = (fwd) => failCallbacks.forEach((i) => i(fwd)); - let respond = (fwd) => respondCallbacks.forEach((i) => i(fwd)); - let finishProfile = trigger2("request.profile", options); - let updateUri = getUpdateUri(); - trigger2("request", { - url: updateUri, - options, - payload: options.body, - respond: (i) => respondCallbacks.push(i), - succeed: (i) => succeedCallbacks.push(i), - fail: (i) => failCallbacks.push(i) - }); - let response; - try { - response = await fetch(updateUri, options); - } catch (e) { - finishProfile({ content: "{}", failed: true }); - handleFailure(); - fail({ - status: 503, - content: null, - preventDefault: () => { - } + // js/request/action.js + var Action = class { + squashedActions = /* @__PURE__ */ new Set(); + onSendCallbacks = []; + onCancelCallbacks = []; + onSuccessCallbacks = []; + onErrorCallbacks = []; + onFailureCallbacks = []; + onFinishCallbacks = []; + message = null; + cancelled = false; + deferred = false; + _fire = null; + constructor(component, name, params = [], metadata = {}, origin = null) { + this.component = component; + this.name = name; + this.params = params; + this.metadata = metadata; + this.origin = origin; + this.promise = new Promise((resolve, reject) => { + this.promiseResolution = { resolve, reject }; }); - return; + this.promise._livewireAction = this; } - let mutableObject = { - status: response.status, - response - }; - respond(mutableObject); - response = mutableObject.response; - let content = await response.text(); - if (!response.ok) { - finishProfile({ content: "{}", failed: true }); - let preventDefault = false; - handleFailure(); - fail({ - status: response.status, - content, - preventDefault: () => preventDefault = true - }); - if (preventDefault) + cancel() { + if (this.cancelled) return; - if (response.status === 419) { - handlePageExpiry(); - } - return showFailureModal(content); + this.cancelled = true; + this.invokeOnCancel(); + this.invokeOnFinish(); + this.rejectPromise({ status: null, body: null, json: null, errors: null }); + this.squashedActions.forEach((action) => action.cancel()); + if (this.message) { + this.message.removeAction(this); + } + } + isCancelled() { + return this.cancelled; + } + defer() { + this.deferred = true; + } + isDeferred() { + return this.deferred; + } + fire() { + if (this._fire) { + this._fire(this); + } + } + get fingerprint() { + let componentId = this.component.id; + let name = this.name; + let params = JSON.stringify(this.params); + let metadata = JSON.stringify(this.metadata); + let bytes = new TextEncoder().encode(componentId + name + params + metadata); + let binary = ""; + let chunkSize = 8192; + for (let i = 0; i < bytes.length; i += chunkSize) { + binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize)); + } + return window.btoa(binary); + } + isAsync() { + let asyncMethods = this.component.snapshot.memo?.async || []; + let methodIsMarkedAsync = asyncMethods.includes(this.name); + let actionIsAsync = this.origin?.directive?.modifiers.includes("async") || !!this.metadata.async; + return methodIsMarkedAsync || actionIsAsync; + } + isJson() { + let jsonMethods = this.component.snapshot.memo?.json || []; + return jsonMethods.includes(this.name); + } + addInterceptor(callback) { + callback({ + action: this, + onSend: (cb) => this.onSendCallbacks.push(cb), + onCancel: (cb) => this.onCancelCallbacks.push(cb), + onSuccess: (cb) => this.onSuccessCallbacks.push(cb), + onError: (cb) => this.onErrorCallbacks.push(cb), + onFailure: (cb) => this.onFailureCallbacks.push(cb), + onFinish: (cb) => this.onFinishCallbacks.push(cb) + }); } - if (response.redirected) { - window.location.href = response.url; + invokeOnSend({ call }) { + this.onSendCallbacks.forEach((cb) => cb({ call })); + this.squashedActions.forEach((action) => action.invokeOnSend({ call })); } - if (contentIsFromDump(content)) { - let dump; - [dump, content] = splitDumpFromContent(content); - showHtmlModal(dump); - finishProfile({ content: "{}", failed: true }); - } else { - finishProfile({ content, failed: false }); + invokeOnCancel() { + this.onCancelCallbacks.forEach((cb) => cb()); + this.squashedActions.forEach((action) => action.invokeOnCancel()); + } + invokeOnSuccess(result) { + this.onSuccessCallbacks.forEach((cb) => cb(result)); + this.squashedActions.forEach((action) => action.invokeOnSuccess(result)); + } + invokeOnError({ response, body, preventDefault }) { + this.onErrorCallbacks.forEach((cb) => cb({ response, body, preventDefault })); + this.squashedActions.forEach((action) => action.invokeOnError({ response, body, preventDefault })); + } + invokeOnFailure({ error: error2 }) { + this.onFailureCallbacks.forEach((cb) => cb({ error: error2 })); + this.squashedActions.forEach((action) => action.invokeOnFailure({ error: error2 })); + } + invokeOnFinish() { + this.onFinishCallbacks.forEach((cb) => cb()); + this.squashedActions.forEach((action) => action.invokeOnFinish()); + } + mergeMetadata(metadata) { + this.metadata = { ...this.metadata, ...metadata }; + } + rejectPromise(error2) { + this.squashedActions.forEach((action) => action.rejectPromise(error2)); + this.promiseResolution.reject(error2); + } + addSquashedAction(action) { + this.squashedActions.add(action); + } + resolvePromise(value) { + this.squashedActions.forEach((action) => action.resolvePromise(value)); + this.promiseResolution.resolve(value); } - let { components: components2, assets } = JSON.parse(content); - await triggerAsync("payload.intercept", { components: components2, assets }); - await handleSuccess(components2); - succeed({ status: response.status, json: JSON.parse(content) }); - } - function handlePageExpiry() { - confirm("This page has expired.\nWould you like to refresh the page?") && window.location.reload(); - } - function showFailureModal(content) { - let html = content; - showHtmlModal(html); - } - - // js/$wire.js - var properties = {}; - var fallback; - function wireProperty(name, callback, component = null) { - properties[name] = callback; - } - function wireFallback(callback) { - fallback = callback; - } - var aliases = { - "on": "$on", - "el": "$el", - "id": "$id", - "get": "$get", - "set": "$set", - "call": "$call", - "commit": "$commit", - "watch": "$watch", - "entangle": "$entangle", - "dispatch": "$dispatch", - "dispatchTo": "$dispatchTo", - "dispatchSelf": "$dispatchSelf", - "upload": "$upload", - "uploadMultiple": "$uploadMultiple", - "removeUpload": "$removeUpload", - "cancelUpload": "$cancelUpload" }; - function generateWireObject(component, state) { - return new Proxy({}, { - get(target, property) { - if (property === "__instance") - return component; - if (property in aliases) { - return getProperty(component, aliases[property]); - } else if (property in properties) { - return getProperty(component, property); - } else if (property in state) { - return state[property]; - } else if (!["then"].includes(property)) { - return getFallback(component)(property); - } - }, - set(target, property, value) { - if (property in state) { - state[property] = value; + + // js/request/legacy.js + function registerLegacyEventSupport(interceptRequest2, interceptMessage2) { + interceptRequest2(({ + request, + onFailure, + onResponse, + onError, + onSuccess + }) => { + let respondCallbacks = []; + let succeedCallbacks = []; + let failCallbacks = []; + trigger2("request", { + url: request.uri, + options: request.options, + payload: request.options.body, + respond: (i) => respondCallbacks.push(i), + succeed: (i) => succeedCallbacks.push(i), + fail: (i) => failCallbacks.push(i) + }); + onResponse(({ response }) => { + respondCallbacks.forEach((callback) => callback({ + status: response.status, + response + })); + }); + onSuccess(({ response, json }) => { + succeedCallbacks.forEach((callback) => callback({ + status: response.status, + json + })); + }); + onFailure(({ error: error2 }) => { + failCallbacks.forEach((callback) => callback({ + status: 503, + content: null, + preventDefault: () => { + } + })); + }); + onError(({ response, body, preventDefault }) => { + failCallbacks.forEach((callback) => callback({ + status: response.status, + content: body, + preventDefault + })); + }); + }); + interceptMessage2(({ + message, + onCancel, + onError, + onSuccess, + onFinish + }) => { + let respondCallbacks = []; + let succeedCallbacks = []; + let failCallbacks = []; + trigger2("commit", { + component: message.component, + commit: message.payload, + respond: (callback) => { + respondCallbacks.push(callback); + }, + succeed: (callback) => { + succeedCallbacks.push(callback); + }, + fail: (callback) => { + failCallbacks.push(callback); } - return true; - } + }); + onFinish(() => { + respondCallbacks.forEach((callback) => callback()); + }); + onSuccess(({ payload, onSync, onMorph, onRender }) => { + onRender(() => { + succeedCallbacks.forEach((callback) => callback({ + snapshot: payload.snapshot, + effects: payload.effects + })); + }); + }); + onError(() => { + failCallbacks.forEach((callback) => callback()); + }); + onCancel(() => { + failCallbacks.forEach((callback) => callback()); + }); }); } - function getProperty(component, name) { - return properties[name](component); + + // js/request/index.js + var outstandingActionOrigin = null; + var outstandingActionMetadata = {}; + var outstandingActionInterceptors = []; + var interceptors2 = new InterceptorRegistry(); + var messageBus = new MessageBus(); + var actionInterceptors = []; + var partitionInterceptors = []; + var sessionExpired = false; + function sessionIsExpired() { + return sessionExpired; + } + function setNextActionOrigin(origin) { + outstandingActionOrigin = origin; + } + function setNextActionMetadata(metadata) { + outstandingActionMetadata = metadata; + } + function setNextActionInterceptor(callback) { + outstandingActionInterceptors.push(callback); + } + function interceptAction(callback) { + actionInterceptors.push(callback); + return () => { + actionInterceptors.splice(actionInterceptors.indexOf(callback), 1); + }; } - function getFallback(component) { - return fallback(component); + function interceptMessage(callback) { + return interceptors2.addMessageInterceptor(callback); } - module_default.magic("wire", (el, { cleanup: cleanup2 }) => { - let component; - return new Proxy({}, { - get(target, property) { - if (!component) - component = closestComponent(el); - if (["$entangle", "entangle"].includes(property)) { - return generateEntangleFunction(component, cleanup2); + function interceptRequest(callback) { + return interceptors2.addRequestInterceptor(callback); + } + function interceptPartition(callback) { + partitionInterceptors.push(callback); + return () => { + partitionInterceptors.splice(partitionInterceptors.indexOf(callback), 1); + }; + } + function interceptComponentAction(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptAction(({ action, ...rest }) => { + if (action.component !== component) + return; + if (actionName && action.name !== actionName) + return; + callback({ action, ...rest }); + }); + } + function interceptComponentMessage(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptors2.addInterceptor(component, ({ message, ...rest }) => { + if (actionName) { + let hasAction = Array.from(message.actions).some((a) => a.name === actionName); + if (!hasAction) + return; + } + callback({ message, ...rest }); + }); + } + function interceptComponentRequest(component, actionNameOrCallback, maybeCallback) { + let actionName = typeof actionNameOrCallback === "string" ? actionNameOrCallback : null; + let callback = actionName ? maybeCallback : actionNameOrCallback; + return interceptRequest(({ request, ...rest }) => { + let matchingMessages = Array.from(request.messages).filter((m) => { + if (m.component !== component) + return false; + if (actionName) { + return Array.from(m.actions).some((a) => a.name === actionName); } - return component.$wire[property]; - }, - set(target, property, value) { - if (!component) - component = closestComponent(el); - component.$wire[property] = value; return true; - } + }); + if (matchingMessages.length === 0) + return; + callback({ request, ...rest }); }); - }); - wireProperty("__instance", (component) => component); - wireProperty("$get", (component) => (property, reactive3 = true) => dataGet(reactive3 ? component.reactive : component.ephemeral, property)); - wireProperty("$el", (component) => { - return component.el; - }); - wireProperty("$id", (component) => { - return component.id; - }); - wireProperty("$set", (component) => async (property, value, live = true) => { - dataSet(component.reactive, property, value); - if (live) { - component.queueUpdate(property, value); - return await requestCommit(component); - } - return Promise.resolve(); - }); - wireProperty("$call", (component) => async (method, ...params) => { - return await component.$wire[method](...params); - }); - wireProperty("$entangle", (component) => (name, live = false) => { - return generateEntangleFunction(component)(name, live); - }); - wireProperty("$toggle", (component) => (name, live = true) => { - return component.$wire.set(name, !component.$wire.get(name), live); - }); - wireProperty("$watch", (component) => (path, callback) => { - let getter = () => { - return dataGet(component.reactive, path); - }; - let unwatch = module_default.watch(getter, callback); - component.addCleanup(unwatch); - }); - wireProperty("$refresh", (component) => component.$wire.$commit); - wireProperty("$commit", (component) => async () => await requestCommit(component)); - wireProperty("$on", (component) => (...params) => listen2(component, ...params)); - wireProperty("$dispatch", (component) => (...params) => dispatch3(component, ...params)); - wireProperty("$dispatchSelf", (component) => (...params) => dispatchSelf(component, ...params)); - wireProperty("$dispatchTo", () => (...params) => dispatchTo(...params)); - wireProperty("$upload", (component) => (...params) => upload(component, ...params)); - wireProperty("$uploadMultiple", (component) => (...params) => uploadMultiple(component, ...params)); - wireProperty("$removeUpload", (component) => (...params) => removeUpload(component, ...params)); - wireProperty("$cancelUpload", (component) => (...params) => cancelUpload(component, ...params)); - var parentMemo = /* @__PURE__ */ new WeakMap(); - wireProperty("$parent", (component) => { - if (parentMemo.has(component)) - return parentMemo.get(component).$wire; - let parent = component.parent; - parentMemo.set(component, parent); - return parent.$wire; - }); - var overriddenMethods = /* @__PURE__ */ new WeakMap(); - function overrideMethod(component, method, callback) { - if (!overriddenMethods.has(component)) { - overriddenMethods.set(component, {}); - } - let obj = overriddenMethods.get(component); - obj[method] = callback; - overriddenMethods.set(component, obj); } - wireFallback((component) => (property) => async (...params) => { - if (params.length === 1 && params[0] instanceof Event) { - params = []; - } - if (overriddenMethods.has(component)) { - let overrides = overriddenMethods.get(component); - if (typeof overrides[property] === "function") { - return overrides[property](params); - } - } - return await requestCall(component, property, params); + interceptMessage(({ message, onFinish }) => { + messageBus.addActiveMessage(message); + onFinish(() => messageBus.removeActiveMessage(message)); }); - - // js/component.js - var Component = class { - constructor(el) { - if (el.__livewire) - throw "Component already initialized"; - el.__livewire = this; - this.el = el; - this.id = el.getAttribute("wire:id"); - this.__livewireId = this.id; - this.snapshotEncoded = el.getAttribute("wire:snapshot"); - this.snapshot = JSON.parse(this.snapshotEncoded); - if (!this.snapshot) { - throw `Snapshot missing on Livewire component with id: ` + this.id; - } - this.name = this.snapshot.memo.name; - this.effects = JSON.parse(el.getAttribute("wire:effects")); - this.originalEffects = deepClone(this.effects); - this.canonical = extractData(deepClone(this.snapshot.data)); - this.ephemeral = extractData(deepClone(this.snapshot.data)); - this.reactive = Alpine.reactive(this.ephemeral); - this.queuedUpdates = {}; - this.$wire = generateWireObject(this, this.reactive); - this.cleanups = []; - this.processEffects(this.effects); - } - mergeNewSnapshot(snapshotEncoded, effects, updates = {}) { - let snapshot = JSON.parse(snapshotEncoded); - let oldCanonical = deepClone(this.canonical); - let updatedOldCanonical = this.applyUpdates(oldCanonical, updates); - let newCanonical = extractData(deepClone(snapshot.data)); - let dirty = diff(updatedOldCanonical, newCanonical); - this.snapshotEncoded = snapshotEncoded; - this.snapshot = snapshot; - this.effects = effects; - this.canonical = extractData(deepClone(snapshot.data)); - let newData = extractData(deepClone(snapshot.data)); - Object.entries(dirty).forEach(([key, value]) => { - let rootKey = key.split(".")[0]; - this.reactive[rootKey] = newData[rootKey]; + queueMicrotask(() => { + coordinateNetworkInteractions(messageBus); + }); + function fireAction(component, method, params = [], metadata = {}) { + if (component.__isWireProxy) + component = component.__instance; + let action = constructAction(component, method, params, metadata); + actionInterceptors.forEach((callback) => { + callback({ + action, + onSend: (cb) => action.onSendCallbacks.push(cb), + onCancel: (cb) => action.onCancelCallbacks.push(cb), + onSuccess: (cb) => action.onSuccessCallbacks.push(cb), + onError: (cb) => action.onErrorCallbacks.push(cb), + onFailure: (cb) => action.onFailureCallbacks.push(cb), + onFinish: (cb) => action.onFinishCallbacks.push(cb) }); - return dirty; - } - queueUpdate(propertyName, value) { - this.queuedUpdates[propertyName] = value; - } - mergeQueuedUpdates(diff2) { - Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => { - Object.entries(diff2).forEach(([diffKey, diffValue]) => { - if (diffKey.startsWith(updateValue)) { - delete diff2[diffKey]; + }); + if (action.isCancelled() || action.isDeferred()) + return action.promise; + return fireActionInstance(action); + } + function constructAction(component, method, params, metadata) { + let origin = outstandingActionOrigin; + let pendingInterceptors = outstandingActionInterceptors; + outstandingActionOrigin = null; + outstandingActionInterceptors = []; + metadata = { + ...metadata, + ...outstandingActionMetadata + }; + outstandingActionMetadata = {}; + let action = new Action(component, method, params, metadata, origin); + action._fire = fireActionInstance; + pendingInterceptors.forEach((callback) => action.addInterceptor(callback)); + return action; + } + function fireActionInstance(action) { + let message = createOrAddToOutstandingMessage(action); + messageBus.messageBuffer(message, () => { + sendMessages(); + }); + return action.promise; + } + function createOrAddToOutstandingMessage(action) { + let message = messageBus.findScopedPendingMessage(action); + if (!message) + message = new Message(action.component); + message.addAction(action); + messageBus.addPendingMessage(message); + return message; + } + function sendMessages() { + let requests = /* @__PURE__ */ new Set(); + messageBus.eachPendingMessage((message) => { + partitionInterceptors.forEach((callback) => { + callback({ + message, + compileRequest: (messages2) => { + let existingRequest = Array.from(requests).find( + (request2) => messages2.some((message2) => request2.messages.has(message2)) + ); + if (existingRequest) { + messages2.forEach((message2) => { + if (!existingRequest.messages.has(message2)) { + existingRequest.addMessage(message2); + } + }); + return existingRequest; + } + let request = new MessageRequest(); + messages2.forEach((message2) => request.addMessage(message2)); + requests.add(request); + return request; } }); - diff2[updateKey] = updateValue; }); - this.queuedUpdates = []; - return diff2; - } - applyUpdates(object, updates) { - for (let key in updates) { - dataSet(object, key, updates[key]); + }); + let messages = messageBus.getPendingMessages(); + messageBus.clearPendingMessages(); + for (let message of messages) { + if (Array.from(requests).some((request) => request.messages.has(message))) { + continue; } - return object; - } - replayUpdate(snapshot, html) { - let effects = { ...this.effects, html }; - this.mergeNewSnapshot(JSON.stringify(snapshot), effects); - this.processEffects({ html }); - } - processEffects(effects) { - trigger2("effects", this, effects); - trigger2("effect", { - component: this, - effects, - cleanup: (i) => this.addCleanup(i) + let hasFoundRequest = false; + requests.forEach((request) => { + if (!hasFoundRequest) { + let hasMessageForSameComponent = Array.from(request.messages).some((m) => m.component === message.component); + if (hasMessageForSameComponent) + return; + request.addMessage(message); + hasFoundRequest = true; + } }); - } - get children() { - let meta = this.snapshot.memo; - let childIds = Object.values(meta.children).map((i) => i[1]); - return childIds.map((id) => findComponent(id)); - } - get parent() { - return closestComponent(this.el.parentElement); - } - inscribeSnapshotAndEffectsOnElement() { - let el = this.el; - el.setAttribute("wire:snapshot", this.snapshotEncoded); - let effects = this.originalEffects.listeners ? { listeners: this.originalEffects.listeners } : {}; - if (this.originalEffects.url) { - effects.url = this.originalEffects.url; - } - if (this.originalEffects.scripts) { - effects.scripts = this.originalEffects.scripts; + if (!hasFoundRequest) { + let request = new MessageRequest(); + request.addMessage(message); + requests.add(request); + } + } + requests.forEach((request) => { + request.messages.forEach((message) => { + message.snapshot = message.component.getEncodedSnapshotWithLatestChildrenMergedIn(); + message.updates = message.component.getUpdates(); + message.calls = Array.from(message.actions).map((i) => ({ + method: i.name, + params: i.params, + metadata: i.metadata + })); + message.payload = { + snapshot: message.snapshot, + updates: message.updates, + calls: message.calls + }; + }); + }); + requests.forEach((request) => { + request.messages.forEach((message) => { + message.scope = scopeSymbolFromMessage(message); + }); + }); + requests.forEach((request) => { + request.uri = getUpdateUri(); + Object.defineProperty(request, "payload", { + get() { + return { + _token: getCsrfToken(), + components: Array.from(request.messages, (i) => i.payload) + }; + } + }); + let cachedOptions = null; + Object.defineProperty(request, "options", { + get() { + if (cachedOptions) + return cachedOptions; + cachedOptions = { + method: "POST", + body: JSON.stringify(request.payload), + headers: { + "Content-type": "application/json", + "X-Livewire": "1" + }, + signal: request.controller.signal + }; + return cachedOptions; + } + }); + }); + requests.forEach((request) => { + request.initInterceptors(interceptors2); + if (request.hasAllCancelledMessages()) { + request.cancel(); } - el.setAttribute("wire:effects", JSON.stringify(effects)); - } - addCleanup(cleanup2) { - this.cleanups.push(cleanup2); - } - cleanup() { - delete this.el.__livewire; - while (this.cleanups.length > 0) { - this.cleanups.pop()(); + sendRequest(request, { + send: ({ responsePromise }) => { + request.invokeOnSend({ responsePromise }); + }, + failure: ({ error: error2 }) => { + request.invokeOnFailure({ error: error2 }); + }, + finish: () => { + request.invokeOnFinish(); + }, + response: ({ response }) => { + request.invokeOnResponse({ response }); + }, + stream: async ({ response }) => { + request.invokeOnStream({ response }); + let finalResponse = ""; + try { + finalResponse = await interceptStreamAndReturnFinalResponse(response, (json) => { + let componentId = json.id; + request.messages.forEach((message) => { + if (message.component.id === componentId) { + message.invokeOnStream({ json }); + } + }); + trigger2("stream", json); + }); + } catch (e) { + request.cancel(); + throw e; + } + return finalResponse; + }, + parsed: ({ response, responseBody }) => { + request.invokeOnParsed({ response, body: responseBody }); + }, + error: ({ response, responseBody }) => { + let preventDefault = false; + request.invokeOnError({ response, body: responseBody, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + if (response.status === 419) { + if (sessionExpired) + return; + sessionExpired = true; + confirm( + "This page has expired.\nWould you like to refresh the page?" + ) && window.location.reload(); + return; + } + if (response.aborted) + return; + showHtmlModal(responseBody); + }, + redirect: (url) => { + let preventDefault = false; + request.invokeOnRedirect({ url, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + window.location.href = url; + }, + dump: (html) => { + let preventDefault = false; + request.invokeOnDump({ html, preventDefault: () => preventDefault = true }); + if (preventDefault) + return; + showHtmlModal(html); + }, + success: async ({ response, responseBody, responseJson }) => { + request.invokeOnSuccess({ response, body: responseBody, json: responseJson }); + await triggerAsync("payload.intercept", responseJson); + let messageResponsePayloads = responseJson.components; + request.messages.forEach((message) => { + messageResponsePayloads.forEach((payload) => { + if (message.isCancelled()) + return; + if (payload.skip) { + if (payload.id === message.component.id) { + message.responsePayload = payload; + message.markSkipped(); + message.invokeOnSkipped(); + message.resolveActionPromises([], []); + message.invokeOnFinish(); + } + return; + } + let { snapshot: snapshotEncoded, effects } = payload; + let snapshot = JSON.parse(snapshotEncoded); + if (snapshot.memo.id === message.component.id) { + message.responsePayload = { snapshot, effects }; + message.invokeOnSuccess(); + if (message.isCancelled()) + return; + Alpine.transaction(async () => { + message.component.mergeNewSnapshot(snapshotEncoded, effects, message.updates); + message.invokeOnSync(); + if (message.isCancelled()) + return; + message.component.processEffects(effects, request); + message.invokeOnEffect(); + if (message.isCancelled()) + return; + await message.invokeOnMorph(); + }).then(() => { + if (!message.isCancelled()) { + message.resolveActionPromises( + message.pendingReturns, + message.pendingReturnsMeta + ); + message.invokeOnFinish(); + } + requestAnimationFrame(() => { + if (message.isCancelled()) + return; + message.invokeOnRender(); + }); + }); + } + }); + }); + } + }); + }); + } + async function sendRequest(request, handlers) { + let response; + try { + if (request.isCancelled()) + return; + let responsePromise = fetch(request.uri, request.options); + if (request.isCancelled()) + return; + handlers.send({ responsePromise }); + response = await responsePromise; + } catch (e) { + if (request.isCancelled()) + return; + handlers.failure({ error: e }); + handlers.finish(); + return; + } + handlers.response({ response }); + let responseBody = null; + if (response.headers.has("X-Livewire-Stream")) { + responseBody = await handlers.stream({ response }); + } else { + responseBody = await response.text(); + } + if (request.isCancelled()) + return; + handlers.parsed({ response, responseBody }); + if (!response.ok) { + handlers.error({ response, responseBody }); + handlers.finish(); + return; + } + if (response.redirected) { + handlers.redirect(response.url); + } + if (contentIsFromDump(responseBody)) { + let dump; + [dump, responseBody] = splitDumpFromContent(responseBody); + handlers.dump(dump); + } + let responseJson = null; + try { + responseJson = JSON.parse(responseBody); + } catch (e) { + console.error(e); + handlers.error({ response, responseBody }); + handlers.finish(); + return; + } + handlers.success({ response, responseBody, responseJson }); + handlers.finish(); + } + async function interceptStreamAndReturnFinalResponse(response, callback) { + let reader = response.body.getReader(); + let remainingResponse = ""; + while (true) { + let { done, value: chunk } = await reader.read(); + let decoder = new TextDecoder(); + let output = decoder.decode(chunk); + let [streams, remaining] = extractStreamObjects(remainingResponse + output); + streams.forEach((stream) => { + callback(stream); + }); + remainingResponse = remaining; + if (done) + return remainingResponse; + } + } + function extractStreamObjects(raw2) { + let regex = /({"stream":true.*?"endStream":true})/g; + let matches3 = raw2.match(regex); + let parsed = []; + if (matches3) { + for (let i = 0; i < matches3.length; i++) { + parsed.push(JSON.parse(matches3[i]).body); } } - }; + let remaining = raw2.replace(regex, ""); + return [parsed, remaining]; + } + async function sendNavigateRequest(uri, callback, errorCallback) { + let request = new PageRequest(uri); + let options = { + headers: { + "X-Livewire-Navigate": "1" + }, + signal: request.controller.signal + }; + trigger2("navigate.request", { + uri, + options + }); + let response; + try { + response = await fetch(uri, options); + let destination = getDestination(uri, response); + let html = await response.text(); + let status = response.status; + callback(html, destination, status); + } catch (error2) { + errorCallback(error2); + throw error2; + } + } + function getDestination(uri, response) { + let destination = createUrlObjectFromString(uri); + let finalDestination = createUrlObjectFromString(response.url); + if (destination.pathname + destination.search === finalDestination.pathname + finalDestination.search) { + finalDestination.hash = destination.hash; + } + return finalDestination; + } + function createUrlObjectFromString(urlString) { + return urlString !== null && new URL(urlString, document.baseURI); + } + registerLegacyEventSupport(interceptRequest, interceptMessage); - // js/store.js - var components = {}; - function initComponent(el) { - let component = new Component(el); - if (components[component.id]) - throw "Component already registered"; - let cleanup2 = (i) => component.addCleanup(i); - trigger2("component.init", { component, cleanup: cleanup2 }); - components[component.id] = component; - return component; + // js/features/supportErrors.js + function getErrorsObject(component) { + let state = component.__errorsState ??= module_default.reactive({ + clientErrors: null + }); + component.__lastErrorsSnapshot ??= component.snapshot; + return { + messages() { + if (component.__lastErrorsSnapshot !== component.snapshot) { + state.clientErrors = null; + component.__lastErrorsSnapshot = component.snapshot; + } + return state.clientErrors ??= component.snapshot.memo.errors; + }, + keys() { + return Object.keys(this.messages()); + }, + has(...keys) { + if (this.isEmpty()) + return false; + if (keys.length === 0 || keys.length === 1 && keys[0] == null) + return this.any(); + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + for (let key of keys) { + if (this.first(key) === "") + return false; + } + return true; + }, + hasAny(keys) { + if (this.isEmpty()) + return false; + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + for (let key of keys) { + if (this.has(key)) + return true; + } + return false; + }, + missing(...keys) { + if (keys.length === 1 && Array.isArray(keys[0])) + keys = keys[0]; + return !this.hasAny(keys); + }, + first(key = null) { + let messages = key === null ? this.all() : this.get(key); + let firstMessage = messages.length > 0 ? messages[0] : ""; + return Array.isArray(firstMessage) ? firstMessage[0] : firstMessage; + }, + get(key) { + return this.messages()[key] || []; + }, + all() { + return Object.values(this.messages()).flat(); + }, + isEmpty() { + return !this.any(); + }, + isNotEmpty() { + return this.any(); + }, + any() { + return Object.keys(this.messages()).length > 0; + }, + count() { + return Object.values(this.messages()).reduce((total, array) => { + return total + array.length; + }, 0); + }, + clear(field = null) { + if (field === null) { + state.clientErrors = {}; + } else { + let errors = { ...state.clientErrors ?? component.snapshot.memo.errors }; + delete errors[field]; + state.clientErrors = errors; + } + } + }; } - function destroyComponent(id) { - let component = components[id]; - if (!component) - return; - component.cleanup(); - delete components[id]; + + // js/features/supportRefs.js + function findRefEl(component, name) { + let refEl = component.el.querySelector(`[wire\\:ref="${name}"]`); + if (!refEl) + return console.error(`Ref "${name}" not found in component "${component.id}"`); + return refEl; } - function findComponent(id) { - let component = components[id]; - if (!component) - throw "Component not found: " + id; - return component; + + // js/directives.js + var customDirectiveNames = /* @__PURE__ */ new Set(); + function matchesForLivewireDirective(attributeName) { + return attributeName.match(new RegExp("wire:")); } - function closestComponent(el, strict = true) { - let closestRoot2 = Alpine.findClosest(el, (i) => i.__livewire); - if (!closestRoot2) { - if (strict) - throw "Could not find Livewire component in DOM tree"; + function extractDirective(el, name) { + let [value, ...modifiers] = name.replace(new RegExp("wire:"), "").split("."); + return new Directive(value, modifiers, name, el); + } + function directive2(name, callback) { + if (customDirectiveNames.has(name)) return; - } - return closestRoot2.__livewire; + customDirectiveNames.add(name); + on2("directive.init", ({ el, component, directive: directive3, cleanup: cleanup2 }) => { + if (directive3.value === name) { + callback({ + el, + directive: directive3, + component, + $wire: component.$wire, + cleanup: cleanup2 + }); + } + }); } - function componentsByName(name) { - return Object.values(components).filter((component) => { - return name == component.name; + function globalDirective(name, callback) { + if (customDirectiveNames.has(name)) + return; + customDirectiveNames.add(name); + on2("directive.global.init", ({ el, directive: directive3, cleanup: cleanup2 }) => { + if (directive3.value === name) { + callback({ el, directive: directive3, cleanup: cleanup2 }); + } + }); + } + function getDirectives(el) { + return new DirectiveManager(el); + } + function customDirectiveHasBeenRegistered(name) { + return customDirectiveNames.has(name); + } + var DirectiveManager = class { + constructor(el) { + this.el = el; + this.directives = this.extractTypeModifiersAndValue(); + } + all() { + return this.directives; + } + has(value) { + return this.directives.map((directive3) => directive3.value).includes(value); + } + missing(value) { + return !this.has(value); + } + get(value) { + return this.directives.find((directive3) => directive3.value === value); + } + extractTypeModifiersAndValue() { + return Array.from(this.el.getAttributeNames().filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(this.el, name))); + } + }; + var Directive = class { + constructor(value, modifiers, rawName, el) { + this.rawName = this.raw = rawName; + this.el = el; + this.eventContext; + this.wire; + this.value = value; + this.modifiers = modifiers; + this.expression = this.el.getAttribute(this.rawName); + } + get method() { + const methods = this.parseOutMethodsAndParams(this.expression); + return methods[0].method; + } + get methods() { + return this.parseOutMethodsAndParams(this.expression); + } + get params() { + const methods = this.parseOutMethodsAndParams(this.expression); + return methods[0].params; + } + parseOutMethodsAndParams(rawMethod) { + let methods = []; + let parsedMethods = this.splitAndParseMethods(rawMethod); + for (let { method, paramString } of parsedMethods) { + let params = []; + if (paramString.length > 0) { + let argumentsToArray = function() { + for (var l = arguments.length, p = new Array(l), k = 0; k < l; k++) { + p[k] = arguments[k]; + } + return [].concat(p); + }; + try { + params = Alpine.evaluate( + document, + "argumentsToArray(" + paramString + ")", + { + scope: { argumentsToArray } + } + ); + } catch (error2) { + console.warn("Failed to parse parameters:", paramString, error2); + params = []; + } + } + methods.push({ method, params }); + } + return methods; + } + splitAndParseMethods(methodExpression) { + let methods = []; + let current = ""; + let parenCount = 0; + let inString = false; + let stringChar = null; + let trimmedExpression = methodExpression.trim(); + for (let i = 0; i < trimmedExpression.length; i++) { + let char = trimmedExpression[i]; + if (!inString) { + if (char === '"' || char === "'") { + inString = true; + stringChar = char; + current += char; + } else if (char === "(") { + parenCount++; + current += char; + } else if (char === ")") { + parenCount--; + current += char; + } else if (char === "," && parenCount === 0) { + methods.push(this.parseMethodCall(current.trim())); + current = ""; + } else { + current += char; + } + } else { + if (char === stringChar && trimmedExpression[i - 1] !== "\\") { + inString = false; + stringChar = null; + } + current += char; + } + } + if (current.trim().length > 0) { + methods.push(this.parseMethodCall(current.trim())); + } + return methods; + } + parseMethodCall(methodString) { + let methodMatch = methodString.match(/^([^(]+)\(/); + if (!methodMatch) { + return { + method: methodString.trim(), + paramString: "" + }; + } + let method = methodMatch[1].trim(); + let paramStart = methodMatch[0].length - 1; + let lastParenIndex = methodString.lastIndexOf(")"); + if (lastParenIndex === -1) { + throw new Error(`Missing closing parenthesis for method "${method}"`); + } + let paramString = methodString.slice(paramStart + 1, lastParenIndex).trim(); + return { + method, + paramString + }; + } + }; + + // js/directives/shared.js + function toggleBooleanStateDirective(el, directive3, isTruthy, cachedDisplay = null) { + isTruthy = directive3.modifiers.includes("remove") ? !isTruthy : isTruthy; + if (directive3.modifiers.includes("class")) { + let classes = directive3.expression.split(" ").filter(String); + if (isTruthy) { + el.classList.add(...classes); + } else { + el.classList.remove(...classes); + } + } else if (directive3.modifiers.includes("attr")) { + if (isTruthy) { + el.setAttribute(directive3.expression, true); + } else { + el.removeAttribute(directive3.expression); + } + } else { + let cache = cachedDisplay ?? window.getComputedStyle(el, null).getPropertyValue("display"); + let display = ["inline", "list-item", "block", "table", "flex", "grid", "inline-flex"].filter((i) => directive3.modifiers.includes(i))[0] || "inline-block"; + display = directive3.modifiers.includes("remove") && !isTruthy ? cache : display; + el.style.display = isTruthy ? display : "none"; + } + } + + // js/directives/wire-dirty.js + var refreshDirtyStatesByComponent = new WeakBag(); + on2("commit", ({ component, succeed }) => { + succeed(() => { + setTimeout(() => { + refreshDirtyStatesByComponent.each(component, (i) => i(false)); + }); + }); + }); + directive2("dirty", ({ el, directive: directive3, component }) => { + let targets = dirtyTargets(el); + let oldIsDirty = false; + let initialDisplay = el.style.display; + let refreshDirtyState = (isDirty) => { + toggleBooleanStateDirective(el, directive3, isDirty, initialDisplay); + oldIsDirty = isDirty; + }; + refreshDirtyStatesByComponent.add(component, refreshDirtyState); + Alpine.effect(() => { + let isDirty = false; + isDirty = checkDirty(component, targets.length === 0 ? void 0 : targets); + if (oldIsDirty !== isDirty) { + refreshDirtyState(isDirty); + } + oldIsDirty = isDirty; + }); + }); + function checkDirty(component, targets) { + let isDirty = false; + if (targets === void 0) { + isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive); + } else if (Array.isArray(targets)) { + for (let i = 0; i < targets.length; i++) { + if (isDirty) + break; + let target = targets[i]; + isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target)); + } + } else { + isDirty = JSON.stringify(dataGet(component.canonical, targets)) !== JSON.stringify(dataGet(component.reactive, targets)); + } + return isDirty; + } + function dirtyTargets(el) { + let directives2 = getDirectives(el); + let targets = []; + if (directives2.has("model")) { + targets.push(directives2.get("model").expression); + } + if (directives2.has("target")) { + targets = targets.concat( + directives2.get("target").expression.split(",").map((s) => s.trim()) + ); + } + return targets; + } + + // js/features/supportJsModules.js + var pendingComponentAssets = /* @__PURE__ */ new WeakMap(); + on2("effect", ({ component, effects }) => { + let scriptModuleHash = effects.scriptModule; + if (scriptModuleHash) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/js/${encodedName}.js?v=${scriptModuleHash}`; + pendingComponentAssets.set(component, Alpine.reactive({ + loading: true, + afterLoaded: [] + })); + import( + /* @vite-ignore */ + path + ).then((module) => { + module.run.call(component.$wire, component.$wire, component.$wire.js); + pendingComponentAssets.get(component).loading = false; + pendingComponentAssets.get(component).afterLoaded.forEach((callback) => callback()); + pendingComponentAssets.delete(component); + }); + } + }); + function assetIsPendingFor(component) { + return pendingComponentAssets.has(component) && pendingComponentAssets.get(component).loading; + } + function runAfterAssetIsLoadedFor(component, callback) { + if (assetIsPendingFor(component)) { + pendingComponentAssets.get(component).afterLoaded.push(() => callback()); + } else { + callback(); + } + } + + // js/$wire.js + var properties = {}; + var fallback; + function wireProperty(name, callback, component = null) { + properties[name] = callback; + } + function wireFallback(callback) { + fallback = callback; + } + var aliases = { + "on": "$on", + "el": "$el", + "id": "$id", + "js": "$js", + "get": "$get", + "set": "$set", + "refs": "$refs", + "call": "$call", + "hook": "$hook", + "watch": "$watch", + "dirty": "$dirty", + "effect": "$effect", + "commit": "$commit", + "errors": "$errors", + "island": "$island", + "upload": "$upload", + "entangle": "$entangle", + "dispatch": "$dispatch", + "intercept": "$intercept", + "interceptAction": "$interceptAction", + "interceptMessage": "$interceptMessage", + "interceptRequest": "$interceptRequest", + "dispatchTo": "$dispatchTo", + "dispatchSelf": "$dispatchSelf", + "dispatchEl": "$dispatchEl", + "dispatchRef": "$dispatchRef", + "removeUpload": "$removeUpload", + "cancelUpload": "$cancelUpload", + "uploadMultiple": "$uploadMultiple" + }; + function generateWireObject(component, state) { + let isScoped = false; + return new Proxy({}, { + get(target, property) { + if (property === "__instance") + return component; + if (property in aliases) { + return getProperty(component, aliases[property]); + } else if (property in properties) { + return getProperty(component, property); + } else if (property in state) { + return state[property]; + } else if (property === "toJSON") { + return () => component.toJSON(); + } else if (!["then"].includes(property)) { + return getFallback(component)(property); + } + }, + set(target, property, value) { + if (property in state) { + state[property] = value; + } + return true; + } + }); + } + function getProperty(component, name) { + return properties[name](component); + } + function getFallback(component) { + return fallback(component); + } + module_default.magic("wire", (el, { cleanup: cleanup2 }) => { + let component; + return new Proxy({}, { + get(target, property) { + if (!component) { + try { + component = findComponentByEl(el); + } catch (e) { + return () => { + }; + } + } + if (["$entangle", "entangle"].includes(property)) { + return generateEntangleFunction(component, cleanup2); + } + return component.$wire[property]; + }, + set(target, property, value) { + if (!component) { + try { + component = findComponentByEl(el); + } catch (e) { + return true; + } + } + component.$wire[property] = value; + return true; + } + }); + }); + wireProperty("__instance", (component) => component); + wireProperty("$get", (component) => (property, reactive3 = true) => dataGet(reactive3 ? component.reactive : component.ephemeral, property)); + wireProperty("$el", (component) => { + return component.el; + }); + wireProperty("$id", (component) => { + return component.id; + }); + wireProperty("$js", (component) => { + let fn = component.addJsAction.bind(component); + let jsActions = component.getJsActions(); + Object.keys(jsActions).forEach((name) => { + fn[name] = jsActions[name]; + }); + return new Proxy(fn, { + set(target, property, value) { + component.addJsAction(property, value); + return true; + }, + get(target, property) { + if (assetIsPendingFor(component)) { + let resolver = null; + let promise = new Promise((resolve) => { + resolver = resolve; + }); + return (...params) => { + runAfterAssetIsLoadedFor(component, () => { + resolver(component.getJsAction(property)(...params)); + }); + return promise; + }; + } + return target[property]; + } + }); + }); + wireProperty("$set", (component) => async (property, value, live = true) => { + dataSet(component.reactive, property, value); + if (live) { + component.queueUpdate(property, value); + return fireAction(component, "$set"); + } + return Promise.resolve(); + }); + wireProperty("$refs", (component) => { + let fn = (name) => findRefEl(component, name); + return new Proxy(fn, { + get(target, property) { + if (property in target) { + return target[property]; + } + return fn(property); + } + }); + }); + wireProperty("$dirty", (component) => (property) => { + let reactive3 = module_default.reactive({ dirty: false }); + interceptComponentMessage(component, ({ onFinish }) => { + onFinish(() => { + queueMicrotask(() => { + reactive3.dirty = checkDirty(component, property); + }); + }); + }); + module_default.effect(() => { + reactive3.dirty = checkDirty(component, property); + }); + return reactive3.dirty; + }); + wireProperty("$intercept", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentAction(component, actionNameOrCallback, maybeCallback); + }); + wireProperty("$interceptAction", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentAction(component, actionNameOrCallback, maybeCallback); + }); + wireProperty("$interceptMessage", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentMessage(component, actionNameOrCallback, maybeCallback); + }); + wireProperty("$interceptRequest", (component) => (actionNameOrCallback, maybeCallback) => { + return interceptComponentRequest(component, actionNameOrCallback, maybeCallback); + }); + wireProperty("$errors", (component) => getErrorsObject(component)); + wireProperty("$call", (component) => async (method, ...params) => { + return await component.$wire[method](...params); + }); + wireProperty("$island", (component) => (name, options = {}) => { + setNextActionMetadata({ island: { name, mode: "morph", ...options } }); + return component.$wire; + }); + wireProperty("$entangle", (component) => (name, live = false) => { + return generateEntangleFunction(component)(name, live); + }); + wireProperty("$toggle", (component) => (name, live = true) => { + return component.$wire.set(name, !component.$wire.get(name), live); + }); + wireProperty("$watch", (component) => (path, callback) => { + let getter = () => { + return dataGet(component.reactive, path); + }; + let unwatch = module_default.watch(getter, callback); + component.addCleanup(unwatch); + return unwatch; + }); + wireProperty("$effect", (component) => (callback) => { + let effect3 = module_default.effect(callback); + component.addCleanup(effect3); + return effect3; + }); + wireProperty("$refresh", (component) => async () => { + return fireAction(component, "$refresh"); + }); + wireProperty("$commit", (component) => async () => { + return fireAction(component, "$commit"); + }); + wireProperty("$on", (component) => (...params) => listen2(component, ...params)); + wireProperty("$hook", (component) => (name, callback) => { + let unhook = on2(name, ({ component: hookComponent, ...params }) => { + if (hookComponent === void 0) + return callback(params); + if (hookComponent.id === component.id) + return callback({ component: hookComponent, ...params }); + }); + component.addCleanup(unhook); + return unhook; + }); + wireProperty("$dispatch", (component) => (...params) => dispatch3(component, ...params)); + wireProperty("$dispatchSelf", (component) => (...params) => dispatchSelf(component, ...params)); + wireProperty("$dispatchTo", () => (...params) => dispatchTo(...params)); + wireProperty("$dispatchEl", (component) => (...params) => dispatchEl(component, ...params)); + wireProperty("$dispatchRef", (component) => (...params) => dispatchRef(component, ...params)); + wireProperty("$upload", (component) => (...params) => upload(component, ...params)); + wireProperty("$uploadMultiple", (component) => (...params) => uploadMultiple(component, ...params)); + wireProperty("$removeUpload", (component) => (...params) => removeUpload(component, ...params)); + wireProperty("$cancelUpload", (component) => (...params) => cancelUpload(component, ...params)); + var parentMemo = /* @__PURE__ */ new WeakMap(); + wireProperty("$parent", (component) => { + if (parentMemo.has(component)) + return parentMemo.get(component).$wire; + let parent = findComponentByEl(component.el.parentElement, false); + if (!parent) + return; + parentMemo.set(component, parent); + return parent.$wire; + }); + var overriddenMethods = /* @__PURE__ */ new WeakMap(); + function overrideMethod(component, method, callback) { + if (!overriddenMethods.has(component)) { + overriddenMethods.set(component, {}); + } + let obj = overriddenMethods.get(component); + obj[method] = callback; + overriddenMethods.set(component, obj); + } + wireFallback((component) => (property) => (...params) => { + if (params.length === 1 && params[0] instanceof Event) { + params = []; + } + if (overriddenMethods.has(component)) { + let overrides = overriddenMethods.get(component); + if (typeof overrides[property] === "function") { + return overrides[property](params); + } + } + return fireAction(component, property, params); + }); + + // js/component.js + var Component = class { + constructor(el) { + if (el.__livewire) + throw "Component already initialized"; + el.__livewire = this; + this.el = el; + this.id = el.getAttribute("wire:id"); + this.key = el.getAttribute("wire:key"); + this.__livewireId = this.id; + this.snapshotEncoded = el.getAttribute("wire:snapshot"); + this.snapshot = JSON.parse(this.snapshotEncoded); + if (!this.snapshot) { + throw `Snapshot missing on Livewire component with id: ` + this.id; + } + this.name = this.snapshot.memo.name; + this.effects = JSON.parse(el.getAttribute("wire:effects")); + this.originalEffects = deepClone(this.effects); + this.canonical = extractData(deepClone(this.snapshot.data)); + this.ephemeral = extractData(deepClone(this.snapshot.data)); + this.reactive = Alpine.reactive(this.ephemeral); + this.queuedUpdates = {}; + this.jsActions = {}; + this.$wire = generateWireObject(this, this.reactive); + el.$wire = this.$wire; + this.cleanups = []; + this.processEffects(this.effects); + } + addActionContext(context) { + if (context.el || context.directive) { + setNextActionOrigin({ + el: context.el, + directive: context.directive + }); + } + } + intercept(action, callback = null) { + return this.$wire.$intercept(action, callback); + } + mergeNewSnapshot(snapshotEncoded, effects, updates = {}) { + let snapshot = JSON.parse(snapshotEncoded); + let oldCanonical = deepClone(this.canonical); + let updatedOldCanonical = this.applyUpdates(oldCanonical, updates); + let newCanonical = extractData(deepClone(snapshot.data)); + let dirty = diff(updatedOldCanonical, newCanonical); + this.snapshotEncoded = snapshotEncoded; + this.snapshot = snapshot; + this.effects = effects; + this.canonical = extractData(deepClone(snapshot.data)); + let newData = extractData(deepClone(snapshot.data)); + diffAndPatchRecursive(updatedOldCanonical, newData, this.reactive); + return dirty; + } + queueUpdate(propertyName, value) { + this.queuedUpdates[propertyName] = value; + } + mergeQueuedUpdates(diff2) { + Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => { + Object.entries(diff2).forEach(([diffKey, diffValue]) => { + if (diffKey.startsWith(updateKey)) { + delete diff2[diffKey]; + } + }); + diff2[updateKey] = updateValue; + }); + this.queuedUpdates = []; + return diff2; + } + getUpdates() { + let propertiesDiff = diffAndConsolidate(this.canonical, this.ephemeral); + return this.mergeQueuedUpdates(propertiesDiff); + } + applyUpdates(object, updates) { + for (let key in updates) { + dataSet(object, key, updates[key]); + } + return object; + } + replayUpdate(snapshot, html) { + let effects = { ...this.effects, html }; + this.mergeNewSnapshot(JSON.stringify(snapshot), effects); + this.processEffects({ html }); + } + processEffects(effects, request) { + trigger2("effects", this, effects); + trigger2("effect", { + component: this, + effects, + cleanup: (i) => this.addCleanup(i), + request + }); + } + get children() { + let componentEl = this.el; + let children = []; + componentEl.querySelectorAll("[wire\\:id]").forEach((el) => { + let parentComponentEl = el.parentElement.closest("[wire\\:id]"); + if (parentComponentEl !== componentEl) + return; + let componentInstance = el.__livewire; + if (!componentInstance) + return; + children.push(componentInstance); + }); + return children; + } + get islands() { + let islands = this.snapshot.memo.islands; + return islands; + } + get parent() { + return findComponentByEl(this.el.parentElement); + } + get isIsolated() { + return this.snapshot.memo.isolate; + } + get isLazy() { + return this.snapshot.memo.lazyLoaded !== void 0; + } + get hasBeenLazyLoaded() { + return this.snapshot.memo.lazyLoaded === true; + } + get isLazyIsolated() { + return !!this.snapshot.memo.lazyIsolated; + } + getDeepChildrenWithBindings(callback) { + this.getDeepChildren((child) => { + if (child.isLazy && !child.hasBeenLazyLoaded) + return; + if (child.hasReactiveProps() || child.hasWireModelableBindings()) { + callback(child); + } + }); + } + hasReactiveProps() { + let meta = this.snapshot.memo; + let props = meta.props; + return !!props; + } + hasWireModelableBindings() { + let meta = this.snapshot.memo; + let bindings = meta.bindings; + return !!bindings; + } + getDeepChildren(callback) { + this.children.forEach((child) => { + callback(child); + child.getDeepChildren(callback); + }); + } + getEncodedSnapshotWithLatestChildrenMergedIn() { + let { snapshotEncoded, children, snapshot } = this; + let childrenMemo = {}; + children.forEach((child) => { + childrenMemo[child.key] = [child.el.tagName.toLowerCase(), child.id]; + }); + return snapshotEncoded.replace( + /"children":\{[^}]*\}/, + `"children":${JSON.stringify(childrenMemo)}` + ); + } + inscribeSnapshotAndEffectsOnElement() { + let el = this.el; + el.setAttribute("wire:snapshot", this.snapshotEncoded); + let effects = this.originalEffects.listeners ? { listeners: this.originalEffects.listeners } : {}; + if (this.originalEffects.url) { + effects.url = this.originalEffects.url; + } + if (this.originalEffects.scripts) { + effects.scripts = this.originalEffects.scripts; + } + el.setAttribute("wire:effects", JSON.stringify(effects)); + el.setAttribute("wire:key", this.key); + } + addJsAction(name, action) { + this.jsActions[name] = action; + } + hasJsAction(name) { + return this.jsActions[name] !== void 0; + } + getJsAction(name) { + return this.jsActions[name].bind(this.$wire); + } + getJsActions() { + let actions = {}; + for (let key of Object.keys(this.jsActions)) { + actions[key] = this.getJsAction(key); + } + return actions; + } + toJSON() { + return { + id: this.id, + name: this.name, + key: this.key, + data: Object.fromEntries(Object.entries(this.ephemeral)) + }; + } + addCleanup(cleanup2) { + this.cleanups.push(cleanup2); + } + cleanup() { + delete this.el.__livewire; + while (this.cleanups.length > 0) { + this.cleanups.pop()(); + } + } + }; + + // js/fragment.js + function closestFragment(el, { isMatch, hasReachedBoundary }) { + if (!hasReachedBoundary) + hasReachedBoundary = () => false; + let current = el; + while (current) { + let sibling = current.previousSibling; + let foundEndMarker = []; + while (sibling) { + if (isEndFragmentMarker(sibling)) { + foundEndMarker.push("a"); + } + if (isStartFragmentMarker(sibling)) { + if (foundEndMarker.length > 0) { + foundEndMarker.pop(); + } else { + let metadata = extractFragmentMetadataFromMarkerNode(sibling); + if (isMatch(metadata)) { + return new Fragment(sibling); + } + } + } + sibling = sibling.previousSibling; + } + current = current.parentElement; + if (current && hasReachedBoundary({ el: current })) { + break; + } + } + return null; + } + function findFragment(el, { isMatch, hasReachedBoundary }) { + if (!hasReachedBoundary) + hasReachedBoundary = () => false; + let startNode = null; + let rootEl2 = el; + walkElements(rootEl2, (el2, { skip, stop: stop2 }) => { + if (el2.hasAttribute && el2 !== rootEl2 && hasReachedBoundary({ el: el2 })) { + return skip(); + } + Array.from(el2.childNodes).forEach((node) => { + if (isStartFragmentMarker(node)) { + let metadata = extractFragmentMetadataFromMarkerNode(node); + if (isMatch(metadata)) { + startNode = node; + stop2(); + } + } + }); + }); + return startNode && new Fragment(startNode); + } + function isStartFragmentMarker(el) { + return el.nodeType === 8 && el.textContent.startsWith("[if FRAGMENT"); + } + function isEndFragmentMarker(el) { + return el.nodeType === 8 && el.textContent.startsWith("[if ENDFRAGMENT"); + } + function walkElements(el, callback) { + let skip = false; + let stop2 = false; + callback(el, { skip: () => skip = true, stop: () => stop2 = true }); + if (skip || stop2) + return; + Array.from(el.children).forEach((child) => { + walkElements(child, callback); + if (stop2) + return; + }); + } + var Fragment = class { + constructor(startMarkerNode) { + this.startMarkerNode = startMarkerNode; + this.metadata = extractFragmentMetadataFromMarkerNode(startMarkerNode); + } + get endMarkerNode() { + return findMatchingEndMarkerNode(this.startMarkerNode, this.metadata); + } + append(mountContainerTagName, html) { + let container = document.createElement(mountContainerTagName); + container.innerHTML = html; + Array.from(container.childNodes).forEach((node) => { + this.endMarkerNode.before(node); + }); + } + prepend(mountContainerTagName, html) { + let container = document.createElement(mountContainerTagName); + container.innerHTML = html; + Array.from(container.childNodes).reverse().forEach((node) => { + this.startMarkerNode.after(node); + }); + } + }; + function findMatchingEndMarkerNode(startMarkerNode, metadata) { + let current = startMarkerNode; + while (current) { + if (isEndFragmentMarker(current)) { + let currentMetadata = extractFragmentMetadataFromMarkerNode(current); + if (Object.keys(metadata).every((key) => metadata[key] === currentMetadata[key])) { + return current; + } + } + current = current.nextSibling; + } + return null; + } + function extractInnerHtmlFromFragmentHtml(fragmentHtml) { + let regex = /<!--\[if FRAGMENT\b.*?\]><!\[endif\]-->([\s\S]*)<!--\[if ENDFRAGMENT\b.*?\]><!\[endif\]-->/i; + let match = fragmentHtml.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, html] = match; + return html; + } + function extractFragmentMetadataFromHtml(fragmentHtml) { + let regex = /\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/; + let match = fragmentHtml.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, __, encodedMetadata] = match; + return decodeMetadata(encodedMetadata); + } + function extractFragmentMetadataFromMarkerNode(startMarkerNode) { + let regex = /\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/; + let match = startMarkerNode.textContent.match(regex); + if (!match) + throw new Error("Invalid fragment marker"); + let [_, __, encodedMetadata] = match; + return decodeMetadata(encodedMetadata); + } + function decodeMetadata(encodedMetadata) { + let metadata = {}; + let pairs = encodedMetadata.split("|"); + pairs.forEach((pair) => { + let [key, value] = pair.split("="); + metadata[key] = value; + }); + return metadata; + } + + // js/store.js + var components = {}; + function initComponent(el) { + let component = new Component(el); + if (components[component.id]) + throw "Component already registered"; + let cleanup2 = (i) => component.addCleanup(i); + trigger2("component.init", { component, cleanup: cleanup2 }); + components[component.id] = component; + return component; + } + function destroyComponent(id) { + let component = components[id]; + if (!component) + return; + component.cleanup(); + delete components[id]; + } + function hasComponent(id) { + return !!components[id]; + } + function findComponent(id, strict = true) { + let component = components[id]; + if (!component) { + if (strict) + throw "Component not found: " + id; + return; + } + return component; + } + function findComponentByEl(el, strict = true) { + let componentId = walkUpwards(el, (node, { stop: stop2 }) => { + if (node.__livewire) + return stop2(node.__livewire.id); + let endMarkers = []; + let slotParentId = walkBackwards(node, (siblingNode, { stop: stop3 }) => { + if (isEndFragmentMarker(siblingNode)) { + let metadata = extractFragmentMetadataFromMarkerNode(siblingNode); + if (metadata.type !== "slot") + return; + endMarkers.push("a"); + return; + } + if (isStartFragmentMarker(siblingNode)) { + let metadata = extractFragmentMetadataFromMarkerNode(siblingNode); + if (metadata.type !== "slot") + return; + if (endMarkers.length > 0) { + endMarkers.pop(); + } else { + return stop3(metadata.parent); + } + } + }); + if (slotParentId) + return stop2(slotParentId); + }); + let component = findComponent(componentId, strict); + if (!component) { + if (strict) + throw "Could not find Livewire component in DOM tree"; + return; + } + return component; + } + function componentsByName(name) { + return Object.values(components).filter((component) => { + return name == component.name; + }); + } + function getByName(name) { + return componentsByName(name).map((i) => i.$wire); + } + function find(id) { + let component = components[id]; + return component && component.$wire; + } + function first() { + return Object.values(components)[0].$wire; + } + function all() { + return Object.values(components); + } + + // js/events.js + function dispatch3(component, name, params) { + dispatchEvent(component.el, name, params); + } + function dispatchGlobal(name, params) { + dispatchEvent(window, name, params); + } + function dispatchSelf(component, name, params) { + dispatchEvent(component.el, name, params, false); + } + function dispatchEl(component, selector, name, params) { + let targets = component.el.querySelectorAll(selector); + targets.forEach((target) => { + dispatchEvent(target, name, params, false); + }); + } + function dispatchTo(componentName, name, params) { + let targets = componentsByName(componentName); + targets.forEach((target) => { + dispatchEvent(target.el, name, params, false); + }); + } + function dispatchRef(component, ref, name, params) { + let el = findRefEl(component, ref); + dispatchEvent(el, name, params, false); + } + function listen2(component, name, callback) { + component.el.addEventListener(name, (e) => { + callback(e.detail); + }); + } + function on3(eventName, callback) { + let handler4 = (e) => { + if (!e.__livewire) + return; + callback(e.detail); + }; + window.addEventListener(eventName, handler4); + return () => { + window.removeEventListener(eventName, handler4); + }; + } + function dispatchEvent(target, name, params, bubbles = true) { + if (typeof params === "string") { + params = [params]; + } + let e = new CustomEvent(name, { bubbles, detail: params }); + e.__livewire = { name, params, receivedBy: [] }; + target.dispatchEvent(e); + } + + // node_modules/@alpinejs/collapse/dist/module.esm.js + function src_default2(Alpine3) { + Alpine3.directive("collapse", collapse); + collapse.inline = (el, { modifiers }) => { + if (!modifiers.includes("min")) + return; + el._x_doShow = () => { + }; + el._x_doHide = () => { + }; + }; + function collapse(el, { modifiers }) { + let duration = modifierValue2(modifiers, "duration", 250) / 1e3; + let floor2 = modifierValue2(modifiers, "min", 0); + let fullyHide = !modifiers.includes("min"); + if (!el._x_isShown) + el.style.height = `${floor2}px`; + if (!el._x_isShown && fullyHide) + el.hidden = true; + if (!el._x_isShown) + el.style.overflow = "hidden"; + let setFunction = (el2, styles) => { + let revertFunction = Alpine3.setStyles(el2, styles); + return styles.height ? () => { + } : revertFunction; + }; + let transitionStyles = { + transitionProperty: "height", + transitionDuration: `${duration}s`, + transitionTimingFunction: "cubic-bezier(0.4, 0.0, 0.2, 1)" + }; + el._x_transition = { + in(before = () => { + }, after = () => { + }) { + if (fullyHide) + el.hidden = false; + if (fullyHide) + el.style.display = null; + let current = el.getBoundingClientRect().height; + el.style.height = "auto"; + let full = el.getBoundingClientRect().height; + if (current === full) { + current = floor2; + } + Alpine3.transition(el, Alpine3.setStyles, { + during: transitionStyles, + start: { height: current + "px" }, + end: { height: full + "px" } + }, () => el._x_isShown = true, () => { + if (Math.abs(el.getBoundingClientRect().height - full) < 1) { + el.style.overflow = null; + } + }); + }, + out(before = () => { + }, after = () => { + }) { + let full = el.getBoundingClientRect().height; + Alpine3.transition(el, setFunction, { + during: transitionStyles, + start: { height: full + "px" }, + end: { height: floor2 + "px" } + }, () => el.style.overflow = "hidden", () => { + el._x_isShown = false; + if (el.style.height == `${floor2}px` && fullyHide) { + el.style.display = "none"; + el.hidden = true; + } + }); + } + }; + } + } + function modifierValue2(modifiers, key, fallback2) { + if (modifiers.indexOf(key) === -1) + return fallback2; + const rawValue = modifiers[modifiers.indexOf(key) + 1]; + if (!rawValue) + return fallback2; + if (key === "duration") { + let match = rawValue.match(/([0-9]+)ms/); + if (match) + return match[1]; + } + if (key === "min") { + let match = rawValue.match(/([0-9]+)px/); + if (match) + return match[1]; + } + return rawValue; + } + var module_default2 = src_default2; + + // node_modules/@alpinejs/focus/dist/module.esm.js + var candidateSelectors = ["input:not([inert]):not([inert] *)", "select:not([inert]):not([inert] *)", "textarea:not([inert]):not([inert] *)", "a[href]:not([inert]):not([inert] *)", "button:not([inert]):not([inert] *)", "[tabindex]:not(slot):not([inert]):not([inert] *)", "audio[controls]:not([inert]):not([inert] *)", "video[controls]:not([inert]):not([inert] *)", '[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)', "details>summary:first-of-type:not([inert]):not([inert] *)", "details:not([inert]):not([inert] *)"]; + var candidateSelector = /* @__PURE__ */ candidateSelectors.join(","); + var NoElement = typeof Element === "undefined"; + var matches = NoElement ? function() { + } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; + var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) { + var _element$getRootNode; + return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element); + } : function(element) { + return element === null || element === void 0 ? void 0 : element.ownerDocument; + }; + var _isInert = function isInert(node, lookUp) { + var _node$getAttribute; + if (lookUp === void 0) { + lookUp = true; + } + var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, "inert"); + var inert = inertAtt === "" || inertAtt === "true"; + var result = inert || lookUp && node && (typeof node.closest === "function" ? node.closest("[inert]") : _isInert(node.parentNode)); + return result; + }; + var isContentEditable = function isContentEditable2(node) { + var _node$getAttribute2; + var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, "contenteditable"); + return attValue === "" || attValue === "true"; + }; + var getCandidates = function getCandidates2(el, includeContainer, filter) { + if (_isInert(el)) { + return []; + } + var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector)); + if (includeContainer && matches.call(el, candidateSelector)) { + candidates.unshift(el); + } + candidates = candidates.filter(filter); + return candidates; + }; + var _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) { + var candidates = []; + var elementsToCheck = Array.from(elements); + while (elementsToCheck.length) { + var element = elementsToCheck.shift(); + if (_isInert(element, false)) { + continue; + } + if (element.tagName === "SLOT") { + var assigned = element.assignedElements(); + var content = assigned.length ? assigned : element.children; + var nestedCandidates = _getCandidatesIteratively(content, true, options); + if (options.flatten) { + candidates.push.apply(candidates, nestedCandidates); + } else { + candidates.push({ + scopeParent: element, + candidates: nestedCandidates + }); + } + } else { + var validCandidate = matches.call(element, candidateSelector); + if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) { + candidates.push(element); + } + var shadowRoot = element.shadowRoot || typeof options.getShadowRoot === "function" && options.getShadowRoot(element); + var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element)); + if (shadowRoot && validShadowRoot) { + var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options); + if (options.flatten) { + candidates.push.apply(candidates, _nestedCandidates); + } else { + candidates.push({ + scopeParent: element, + candidates: _nestedCandidates + }); + } + } else { + elementsToCheck.unshift.apply(elementsToCheck, element.children); + } + } + } + return candidates; + }; + var hasTabIndex = function hasTabIndex2(node) { + return !isNaN(parseInt(node.getAttribute("tabindex"), 10)); + }; + var getTabIndex = function getTabIndex2(node) { + if (!node) { + throw new Error("No node provided"); + } + if (node.tabIndex < 0) { + if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) { + return 0; + } + } + return node.tabIndex; + }; + var getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) { + var tabIndex = getTabIndex(node); + if (tabIndex < 0 && isScope && !hasTabIndex(node)) { + return 0; + } + return tabIndex; + }; + var sortOrderedTabbables = function sortOrderedTabbables2(a, b) { + return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex; + }; + var isInput = function isInput2(node) { + return node.tagName === "INPUT"; + }; + var isHiddenInput = function isHiddenInput2(node) { + return isInput(node) && node.type === "hidden"; + }; + var isDetailsWithSummary = function isDetailsWithSummary2(node) { + var r = node.tagName === "DETAILS" && Array.prototype.slice.apply(node.children).some(function(child) { + return child.tagName === "SUMMARY"; + }); + return r; + }; + var getCheckedRadio = function getCheckedRadio2(nodes, form) { + for (var i = 0; i < nodes.length; i++) { + if (nodes[i].checked && nodes[i].form === form) { + return nodes[i]; + } + } + }; + var isTabbableRadio = function isTabbableRadio2(node) { + if (!node.name) { + return true; + } + var radioScope = node.form || getRootNode(node); + var queryRadios = function queryRadios2(name) { + return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]'); + }; + var radioSet; + if (typeof window !== "undefined" && typeof window.CSS !== "undefined" && typeof window.CSS.escape === "function") { + radioSet = queryRadios(window.CSS.escape(node.name)); + } else { + try { + radioSet = queryRadios(node.name); + } catch (err) { + console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s", err.message); + return false; + } + } + var checked = getCheckedRadio(radioSet, node.form); + return !checked || checked === node; + }; + var isRadio2 = function isRadio22(node) { + return isInput(node) && node.type === "radio"; + }; + var isNonTabbableRadio = function isNonTabbableRadio2(node) { + return isRadio2(node) && !isTabbableRadio(node); + }; + var isNodeAttached = function isNodeAttached2(node) { + var _nodeRoot; + var nodeRoot = node && getRootNode(node); + var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host; + var attached = false; + if (nodeRoot && nodeRoot !== node) { + var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument; + attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node)); + while (!attached && nodeRootHost) { + var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD; + nodeRoot = getRootNode(nodeRootHost); + nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host; + attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost)); + } + } + return attached; + }; + var isZeroArea = function isZeroArea2(node) { + var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height; + return width === 0 && height === 0; + }; + var isHidden = function isHidden2(node, _ref) { + var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot; + if (displayCheck === "full-native") { + if ("checkVisibility" in node) { + var visible = node.checkVisibility({ + checkOpacity: false, + opacityProperty: false, + contentVisibilityAuto: true, + visibilityProperty: true, + checkVisibilityCSS: true + }); + return !visible; + } + } + if (getComputedStyle(node).visibility === "hidden") { + return true; + } + var isDirectSummary = matches.call(node, "details>summary:first-of-type"); + var nodeUnderDetails = isDirectSummary ? node.parentElement : node; + if (matches.call(nodeUnderDetails, "details:not([open]) *")) { + return true; + } + if (!displayCheck || displayCheck === "full" || displayCheck === "full-native" || displayCheck === "legacy-full") { + if (typeof getShadowRoot === "function") { + var originalNode = node; + while (node) { + var parentElement = node.parentElement; + var rootNode = getRootNode(node); + if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) { + return isZeroArea(node); + } else if (node.assignedSlot) { + node = node.assignedSlot; + } else if (!parentElement && rootNode !== node.ownerDocument) { + node = rootNode.host; + } else { + node = parentElement; + } + } + node = originalNode; + } + if (isNodeAttached(node)) { + return !node.getClientRects().length; + } + if (displayCheck !== "legacy-full") { + return true; + } + } else if (displayCheck === "non-zero-area") { + return isZeroArea(node); + } + return false; + }; + var isDisabledFromFieldset = function isDisabledFromFieldset2(node) { + if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) { + var parentNode = node.parentElement; + while (parentNode) { + if (parentNode.tagName === "FIELDSET" && parentNode.disabled) { + for (var i = 0; i < parentNode.children.length; i++) { + var child = parentNode.children.item(i); + if (child.tagName === "LEGEND") { + return matches.call(parentNode, "fieldset[disabled] *") ? true : !child.contains(node); + } + } + return true; + } + parentNode = parentNode.parentElement; + } + } + return false; + }; + var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) { + if (node.disabled || isHiddenInput(node) || isHidden(node, options) || isDetailsWithSummary(node) || isDisabledFromFieldset(node)) { + return false; + } + return true; + }; + var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) { + if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) { + return false; + } + return true; + }; + var isShadowRootTabbable = function isShadowRootTabbable2(shadowHostNode) { + var tabIndex = parseInt(shadowHostNode.getAttribute("tabindex"), 10); + if (isNaN(tabIndex) || tabIndex >= 0) { + return true; + } + return false; + }; + var _sortByOrder = function sortByOrder(candidates) { + var regularTabbables = []; + var orderedTabbables = []; + candidates.forEach(function(item, i) { + var isScope = !!item.scopeParent; + var element = isScope ? item.scopeParent : item; + var candidateTabindex = getSortOrderTabIndex(element, isScope); + var elements = isScope ? _sortByOrder(item.candidates) : element; + if (candidateTabindex === 0) { + isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element); + } else { + orderedTabbables.push({ + documentOrder: i, + tabIndex: candidateTabindex, + item, + isScope, + content: elements + }); + } + }); + return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) { + sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content); + return acc; + }, []).concat(regularTabbables); + }; + var tabbable = function tabbable2(container, options) { + options = options || {}; + var candidates; + if (options.getShadowRoot) { + candidates = _getCandidatesIteratively([container], options.includeContainer, { + filter: isNodeMatchingSelectorTabbable.bind(null, options), + flatten: false, + getShadowRoot: options.getShadowRoot, + shadowRootFilter: isShadowRootTabbable + }); + } else { + candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options)); + } + return _sortByOrder(candidates); + }; + var focusable = function focusable2(container, options) { + options = options || {}; + var candidates; + if (options.getShadowRoot) { + candidates = _getCandidatesIteratively([container], options.includeContainer, { + filter: isNodeMatchingSelectorFocusable.bind(null, options), + flatten: true, + getShadowRoot: options.getShadowRoot + }); + } else { + candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options)); + } + return candidates; + }; + var isTabbable = function isTabbable2(node, options) { + options = options || {}; + if (!node) { + throw new Error("No node provided"); + } + if (matches.call(node, candidateSelector) === false) { + return false; + } + return isNodeMatchingSelectorTabbable(options, node); + }; + var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat("iframe:not([inert]):not([inert] *)").join(","); + var isFocusable = function isFocusable2(node, options) { + options = options || {}; + if (!node) { + throw new Error("No node provided"); + } + if (matches.call(node, focusableCandidateSelector) === false) { + return false; + } + return isNodeMatchingSelectorFocusable(options, node); + }; + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) + n[e] = r[e]; + return n; + } + function _arrayWithoutHoles(r) { + if (Array.isArray(r)) + return _arrayLikeToArray(r); + } + function asyncGeneratorStep(n, t, e, r, o, a, c) { + try { + var i = n[a](c), u = i.value; + } catch (n2) { + return void e(n2); + } + i.done ? t(u) : Promise.resolve(u).then(r, o); + } + function _asyncToGenerator(n) { + return function() { + var t = this, e = arguments; + return new Promise(function(r, o) { + var a = n.apply(t, e); + function _next(n2) { + asyncGeneratorStep(a, r, o, _next, _throw, "next", n2); + } + function _throw(n2) { + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2); + } + _next(void 0); + }); + }; + } + function _createForOfIteratorHelper(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (!t) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { + t && (r = t); + var n = 0, F = function() { + }; + return { + s: F, + n: function() { + return n >= r.length ? { + done: true + } : { + done: false, + value: r[n++] + }; + }, + e: function(r2) { + throw r2; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var o, a = true, u = false; + return { + s: function() { + t = t.call(r); + }, + n: function() { + var r2 = t.next(); + return a = r2.done, r2; + }, + e: function(r2) { + u = true, o = r2; + }, + f: function() { + try { + a || null == t.return || t.return(); + } finally { + if (u) + throw o; + } + } + }; + } + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: true, + configurable: true, + writable: true + }) : e[r] = t, e; + } + function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) + return Array.from(r); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + function _objectSpread2(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + function _regenerator() { + var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; + function i(r2, n2, o2, i2) { + var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype); + return _regeneratorDefine(u2, "_invoke", function(r3, n3, o3) { + var i3, c3, u3, f2 = 0, p = o3 || [], y = false, G = { + p: 0, + n: 0, + v: e, + a: d, + f: d.bind(e, 4), + d: function(t2, r4) { + return i3 = t2, c3 = 0, u3 = e, G.n = r4, a; + } + }; + function d(r4, n4) { + for (c3 = r4, u3 = n4, t = 0; !y && f2 && !o4 && t < p.length; t++) { + var o4, i4 = p[t], d2 = G.p, l = i4[2]; + r4 > 3 ? (o4 = l === n4) && (u3 = i4[(c3 = i4[4]) ? 5 : (c3 = 3, 3)], i4[4] = i4[5] = e) : i4[0] <= d2 && ((o4 = r4 < 2 && d2 < i4[1]) ? (c3 = 0, G.v = n4, G.n = i4[1]) : d2 < l && (o4 = r4 < 3 || i4[0] > n4 || n4 > l) && (i4[4] = r4, i4[5] = n4, G.n = l, c3 = 0)); + } + if (o4 || r4 > 1) + return a; + throw y = true, n4; + } + return function(o4, p2, l) { + if (f2 > 1) + throw TypeError("Generator is already running"); + for (y && 1 === p2 && d(p2, l), c3 = p2, u3 = l; (t = c3 < 2 ? e : u3) || !y; ) { + i3 || (c3 ? c3 < 3 ? (c3 > 1 && (G.n = -1), d(c3, u3)) : G.n = u3 : G.v = u3); + try { + if (f2 = 2, i3) { + if (c3 || (o4 = "next"), t = i3[o4]) { + if (!(t = t.call(i3, u3))) + throw TypeError("iterator result is not an object"); + if (!t.done) + return t; + u3 = t.value, c3 < 2 && (c3 = 0); + } else + 1 === c3 && (t = i3.return) && t.call(i3), c3 < 2 && (u3 = TypeError("The iterator does not provide a '" + o4 + "' method"), c3 = 1); + i3 = e; + } else if ((t = (y = G.n < 0) ? u3 : r3.call(n3, G)) !== a) + break; + } catch (t2) { + i3 = e, c3 = 1, u3 = t2; + } finally { + f2 = 1; + } + } + return { + value: t, + done: y + }; + }; + }(r2, o2, i2), true), u2; + } + var a = {}; + function Generator() { + } + function GeneratorFunction() { + } + function GeneratorFunctionPrototype() { + } + t = Object.getPrototypeOf; + var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function() { + return this; + }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); + function f(e2) { + return Object.setPrototypeOf ? Object.setPrototypeOf(e2, GeneratorFunctionPrototype) : (e2.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e2, o, "GeneratorFunction")), e2.prototype = Object.create(u), e2; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function() { + return this; + }), _regeneratorDefine(u, "toString", function() { + return "[object Generator]"; + }), (_regenerator = function() { + return { + w: i, + m: f + }; + })(); + } + function _regeneratorDefine(e, r, n, t) { + var i = Object.defineProperty; + try { + i({}, "", {}); + } catch (e2) { + i = 0; + } + _regeneratorDefine = function(e2, r2, n2, t2) { + function o(r3, n3) { + _regeneratorDefine(e2, r3, function(e3) { + return this._invoke(r3, n3, e3); + }); + } + r2 ? i ? i(e2, r2, { + value: n2, + enumerable: !t2, + configurable: !t2, + writable: !t2 + }) : e2[r2] = n2 : (o("next", 0), o("throw", 1), o("return", 2)); + }, _regeneratorDefine(e, r, n, t); + } + function _toConsumableArray(r) { + return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); + } + function _toPrimitive(t, r) { + if ("object" != typeof t || !t) + return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r); + if ("object" != typeof i) + return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == typeof i ? i : i + ""; + } + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) + return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + var activeFocusTraps = { + getActiveTrap: function getActiveTrap(trapStack) { + if ((trapStack === null || trapStack === void 0 ? void 0 : trapStack.length) > 0) { + return trapStack[trapStack.length - 1]; + } + return null; + }, + activateTrap: function activateTrap(trapStack, trap) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + if (trap !== activeTrap) { + activeFocusTraps.pauseTrap(trapStack); + } + var trapIndex = trapStack.indexOf(trap); + if (trapIndex === -1) { + trapStack.push(trap); + } else { + trapStack.splice(trapIndex, 1); + trapStack.push(trap); + } + }, + deactivateTrap: function deactivateTrap(trapStack, trap) { + var trapIndex = trapStack.indexOf(trap); + if (trapIndex !== -1) { + trapStack.splice(trapIndex, 1); + } + activeFocusTraps.unpauseTrap(trapStack); + }, + pauseTrap: function pauseTrap(trapStack) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + activeTrap === null || activeTrap === void 0 || activeTrap._setPausedState(true); + }, + unpauseTrap: function unpauseTrap(trapStack) { + var activeTrap = activeFocusTraps.getActiveTrap(trapStack); + if (activeTrap && !activeTrap._isManuallyPaused()) { + activeTrap._setPausedState(false); + } + } + }; + var isSelectableInput = function isSelectableInput2(node) { + return node.tagName && node.tagName.toLowerCase() === "input" && typeof node.select === "function"; + }; + var isEscapeEvent = function isEscapeEvent2(e) { + return (e === null || e === void 0 ? void 0 : e.key) === "Escape" || (e === null || e === void 0 ? void 0 : e.key) === "Esc" || (e === null || e === void 0 ? void 0 : e.keyCode) === 27; + }; + var isTabEvent = function isTabEvent2(e) { + return (e === null || e === void 0 ? void 0 : e.key) === "Tab" || (e === null || e === void 0 ? void 0 : e.keyCode) === 9; + }; + var isKeyForward = function isKeyForward2(e) { + return isTabEvent(e) && !e.shiftKey; + }; + var isKeyBackward = function isKeyBackward2(e) { + return isTabEvent(e) && e.shiftKey; + }; + var delay = function delay2(fn) { + return setTimeout(fn, 0); + }; + var valueOrHandler = function valueOrHandler2(value) { + for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + params[_key - 1] = arguments[_key]; + } + return typeof value === "function" ? value.apply(void 0, params) : value; + }; + var getActualTarget = function getActualTarget2(event) { + return event.target.shadowRoot && typeof event.composedPath === "function" ? event.composedPath()[0] : event.target; + }; + var internalTrapStack = []; + var createFocusTrap = function createFocusTrap2(elements, userOptions) { + var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document; + var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack; + var config = _objectSpread2({ + returnFocusOnDeactivate: true, + escapeDeactivates: true, + delayInitialFocus: true, + isolateSubtrees: false, + isKeyForward, + isKeyBackward + }, userOptions); + var state = { + containers: [], + containerGroups: [], + tabbableGroups: [], + adjacentElements: /* @__PURE__ */ new Set(), + alreadySilent: /* @__PURE__ */ new Set(), + nodeFocusedBeforeActivation: null, + mostRecentlyFocusedNode: null, + active: false, + paused: false, + manuallyPaused: false, + delayInitialFocusTimer: void 0, + recentNavEvent: void 0 + }; + var trap; + var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) { + return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName]; + }; + var findContainerIndex = function findContainerIndex2(element, event) { + var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === "function" ? event.composedPath() : void 0; + return state.containerGroups.findIndex(function(_ref) { + var container = _ref.container, tabbableNodes = _ref.tabbableNodes; + return container.contains(element) || (composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function(node) { + return node === element; + }); + }); + }; + var getNodeForOption = function getNodeForOption2(optionName) { + var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$hasFallback = _ref2.hasFallback, hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback, _ref2$params = _ref2.params, params = _ref2$params === void 0 ? [] : _ref2$params; + var optionValue = config[optionName]; + if (typeof optionValue === "function") { + optionValue = optionValue.apply(void 0, _toConsumableArray(params)); + } + if (optionValue === true) { + optionValue = void 0; + } + if (!optionValue) { + if (optionValue === void 0 || optionValue === false) { + return optionValue; + } + throw new Error("`".concat(optionName, "` was specified but was not a node, or did not return a node")); + } + var node = optionValue; + if (typeof optionValue === "string") { + try { + node = doc.querySelector(optionValue); + } catch (err) { + throw new Error("`".concat(optionName, '` appears to be an invalid selector; error="').concat(err.message, '"')); + } + if (!node) { + if (!hasFallback) { + throw new Error("`".concat(optionName, "` as selector refers to no known node")); + } + } + } + return node; + }; + var getInitialFocusNode = function getInitialFocusNode2() { + var node = getNodeForOption("initialFocus", { + hasFallback: true + }); + if (node === false) { + return false; + } + if (node === void 0 || node && !isFocusable(node, config.tabbableOptions)) { + if (findContainerIndex(doc.activeElement) >= 0) { + node = doc.activeElement; + } else { + var firstTabbableGroup = state.tabbableGroups[0]; + var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; + node = firstTabbableNode || getNodeForOption("fallbackFocus"); + } + } else if (node === null) { + node = getNodeForOption("fallbackFocus"); + } + if (!node) { + throw new Error("Your focus-trap needs to have at least one focusable element"); + } + return node; + }; + var updateTabbableNodes = function updateTabbableNodes2() { + state.containerGroups = state.containers.map(function(container) { + var tabbableNodes = tabbable(container, config.tabbableOptions); + var focusableNodes = focusable(container, config.tabbableOptions); + var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0; + var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0; + var firstDomTabbableNode = focusableNodes.find(function(node) { + return isTabbable(node); + }); + var lastDomTabbableNode = focusableNodes.slice().reverse().find(function(node) { + return isTabbable(node); + }); + var posTabIndexesFound = !!tabbableNodes.find(function(node) { + return getTabIndex(node) > 0; + }); + return { + container, + tabbableNodes, + focusableNodes, + posTabIndexesFound, + firstTabbableNode, + lastTabbableNode, + firstDomTabbableNode, + lastDomTabbableNode, + nextTabbableNode: function nextTabbableNode(node) { + var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + var nodeIdx = tabbableNodes.indexOf(node); + if (nodeIdx < 0) { + if (forward) { + return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function(el) { + return isTabbable(el); + }); + } + return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function(el) { + return isTabbable(el); + }); + } + return tabbableNodes[nodeIdx + (forward ? 1 : -1)]; + } + }; + }); + state.tabbableGroups = state.containerGroups.filter(function(group) { + return group.tabbableNodes.length > 0; + }); + if (state.tabbableGroups.length <= 0 && !getNodeForOption("fallbackFocus")) { + throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times"); + } + if (state.containerGroups.find(function(g) { + return g.posTabIndexesFound; + }) && state.containerGroups.length > 1) { + throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps."); + } + }; + var _getActiveElement = function getActiveElement(el) { + var activeElement = el.activeElement; + if (!activeElement) { + return; + } + if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) { + return _getActiveElement(activeElement.shadowRoot); + } + return activeElement; + }; + var _tryFocus = function tryFocus(node) { + if (node === false) { + return; + } + if (node === _getActiveElement(document)) { + return; + } + if (!node || !node.focus) { + _tryFocus(getInitialFocusNode()); + return; + } + node.focus({ + preventScroll: !!config.preventScroll + }); + state.mostRecentlyFocusedNode = node; + if (isSelectableInput(node)) { + node.select(); + } + }; + var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) { + var node = getNodeForOption("setReturnFocus", { + params: [previousActiveElement] + }); + return node ? node : node === false ? false : previousActiveElement; + }; + var findNextNavNode = function findNextNavNode2(_ref3) { + var target = _ref3.target, event = _ref3.event, _ref3$isBackward = _ref3.isBackward, isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward; + target = target || getActualTarget(event); + updateTabbableNodes(); + var destinationNode = null; + if (state.tabbableGroups.length > 0) { + var containerIndex = findContainerIndex(target, event); + var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0; + if (containerIndex < 0) { + if (isBackward) { + destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode; + } else { + destinationNode = state.tabbableGroups[0].firstTabbableNode; + } + } else if (isBackward) { + var startOfGroupIndex = state.tabbableGroups.findIndex(function(_ref4) { + var firstTabbableNode = _ref4.firstTabbableNode; + return target === firstTabbableNode; + }); + if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) { + startOfGroupIndex = containerIndex; + } + if (startOfGroupIndex >= 0) { + var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1; + var destinationGroup = state.tabbableGroups[destinationGroupIndex]; + destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode; + } else if (!isTabEvent(event)) { + destinationNode = containerGroup.nextTabbableNode(target, false); + } + } else { + var lastOfGroupIndex = state.tabbableGroups.findIndex(function(_ref5) { + var lastTabbableNode = _ref5.lastTabbableNode; + return target === lastTabbableNode; + }); + if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) { + lastOfGroupIndex = containerIndex; + } + if (lastOfGroupIndex >= 0) { + var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1; + var _destinationGroup = state.tabbableGroups[_destinationGroupIndex]; + destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode; + } else if (!isTabEvent(event)) { + destinationNode = containerGroup.nextTabbableNode(target); + } + } + } else { + destinationNode = getNodeForOption("fallbackFocus"); + } + return destinationNode; + }; + var checkPointerDown = function checkPointerDown2(e) { + var target = getActualTarget(e); + if (findContainerIndex(target, e) >= 0) { + return; + } + if (valueOrHandler(config.clickOutsideDeactivates, e)) { + trap.deactivate({ + returnFocus: config.returnFocusOnDeactivate + }); + return; + } + if (valueOrHandler(config.allowOutsideClick, e)) { + return; + } + e.preventDefault(); + }; + var checkFocusIn = function checkFocusIn2(event) { + var target = getActualTarget(event); + var targetContained = findContainerIndex(target, event) >= 0; + if (targetContained || target instanceof Document) { + if (targetContained) { + state.mostRecentlyFocusedNode = target; + } + } else { + event.stopImmediatePropagation(); + var nextNode; + var navAcrossContainers = true; + if (state.mostRecentlyFocusedNode) { + if (getTabIndex(state.mostRecentlyFocusedNode) > 0) { + var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode); + var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes; + if (tabbableNodes.length > 0) { + var mruTabIdx = tabbableNodes.findIndex(function(node) { + return node === state.mostRecentlyFocusedNode; + }); + if (mruTabIdx >= 0) { + if (config.isKeyForward(state.recentNavEvent)) { + if (mruTabIdx + 1 < tabbableNodes.length) { + nextNode = tabbableNodes[mruTabIdx + 1]; + navAcrossContainers = false; + } + } else { + if (mruTabIdx - 1 >= 0) { + nextNode = tabbableNodes[mruTabIdx - 1]; + navAcrossContainers = false; + } + } + } + } + } else { + if (!state.containerGroups.some(function(g) { + return g.tabbableNodes.some(function(n) { + return getTabIndex(n) > 0; + }); + })) { + navAcrossContainers = false; + } + } + } else { + navAcrossContainers = false; + } + if (navAcrossContainers) { + nextNode = findNextNavNode({ + target: state.mostRecentlyFocusedNode, + isBackward: config.isKeyBackward(state.recentNavEvent) + }); + } + if (nextNode) { + _tryFocus(nextNode); + } else { + _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); + } + } + state.recentNavEvent = void 0; + }; + var checkKeyNav = function checkKeyNav2(event) { + var isBackward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; + state.recentNavEvent = event; + var destinationNode = findNextNavNode({ + event, + isBackward + }); + if (destinationNode) { + if (isTabEvent(event)) { + event.preventDefault(); + } + _tryFocus(destinationNode); + } + }; + var checkTabKey = function checkTabKey2(event) { + if (config.isKeyForward(event) || config.isKeyBackward(event)) { + checkKeyNav(event, config.isKeyBackward(event)); + } + }; + var checkEscapeKey = function checkEscapeKey2(event) { + if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) { + event.preventDefault(); + trap.deactivate(); + } + }; + var checkClick = function checkClick2(e) { + var target = getActualTarget(e); + if (findContainerIndex(target, e) >= 0) { + return; + } + if (valueOrHandler(config.clickOutsideDeactivates, e)) { + return; + } + if (valueOrHandler(config.allowOutsideClick, e)) { + return; + } + e.preventDefault(); + e.stopImmediatePropagation(); + }; + var addListeners = function addListeners2() { + if (!state.active) { + return Promise.resolve(); + } + activeFocusTraps.activateTrap(trapStack, trap); + var promise; + if (config.delayInitialFocus) { + promise = new Promise(function(resolve) { + state.delayInitialFocusTimer = delay(function() { + _tryFocus(getInitialFocusNode()); + resolve(); + }); + }); + } else { + promise = Promise.resolve(); + _tryFocus(getInitialFocusNode()); + } + doc.addEventListener("focusin", checkFocusIn, true); + doc.addEventListener("mousedown", checkPointerDown, { + capture: true, + passive: false + }); + doc.addEventListener("touchstart", checkPointerDown, { + capture: true, + passive: false + }); + doc.addEventListener("click", checkClick, { + capture: true, + passive: false + }); + doc.addEventListener("keydown", checkTabKey, { + capture: true, + passive: false + }); + doc.addEventListener("keydown", checkEscapeKey); + return promise; + }; + var collectAdjacentElements = function collectAdjacentElements2(containers) { + if (state.active && !state.paused) { + trap._setSubtreeIsolation(false); + } + state.adjacentElements.clear(); + state.alreadySilent.clear(); + var containerAncestors = /* @__PURE__ */ new Set(); + var adjacentElements = /* @__PURE__ */ new Set(); + var _iterator = _createForOfIteratorHelper(containers), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var container = _step.value; + containerAncestors.add(container); + var insideShadowRoot = typeof ShadowRoot !== "undefined" && container.getRootNode() instanceof ShadowRoot; + var current = container; + while (current) { + containerAncestors.add(current); + var parent = current.parentElement; + var siblings = []; + if (parent) { + siblings = parent.children; + } else if (!parent && insideShadowRoot) { + siblings = current.getRootNode().children; + parent = current.getRootNode().host; + insideShadowRoot = typeof ShadowRoot !== "undefined" && parent.getRootNode() instanceof ShadowRoot; + } + var _iterator2 = _createForOfIteratorHelper(siblings), _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { + var child = _step2.value; + adjacentElements.add(child); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + current = parent; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + containerAncestors.forEach(function(el) { + adjacentElements["delete"](el); + }); + state.adjacentElements = adjacentElements; + }; + var removeListeners = function removeListeners2() { + if (!state.active) { + return; + } + doc.removeEventListener("focusin", checkFocusIn, true); + doc.removeEventListener("mousedown", checkPointerDown, true); + doc.removeEventListener("touchstart", checkPointerDown, true); + doc.removeEventListener("click", checkClick, true); + doc.removeEventListener("keydown", checkTabKey, true); + doc.removeEventListener("keydown", checkEscapeKey); + return trap; + }; + var checkDomRemoval = function checkDomRemoval2(mutations) { + var isFocusedNodeRemoved = mutations.some(function(mutation) { + var removedNodes = Array.from(mutation.removedNodes); + return removedNodes.some(function(node) { + return node === state.mostRecentlyFocusedNode; + }); + }); + if (isFocusedNodeRemoved) { + _tryFocus(getInitialFocusNode()); + } + }; + var mutationObserver = typeof window !== "undefined" && "MutationObserver" in window ? new MutationObserver(checkDomRemoval) : void 0; + var updateObservedNodes = function updateObservedNodes2() { + if (!mutationObserver) { + return; + } + mutationObserver.disconnect(); + if (state.active && !state.paused) { + state.containers.map(function(container) { + mutationObserver.observe(container, { + subtree: true, + childList: true + }); + }); + } + }; + trap = { + get active() { + return state.active; + }, + get paused() { + return state.paused; + }, + activate: function activate(activateOptions) { + if (state.active) { + return this; + } + var onActivate = getOption(activateOptions, "onActivate"); + var onPostActivate = getOption(activateOptions, "onPostActivate"); + var checkCanFocusTrap = getOption(activateOptions, "checkCanFocusTrap"); + var preexistingTrap = activeFocusTraps.getActiveTrap(trapStack); + var revertState = false; + if (preexistingTrap && !preexistingTrap.paused) { + var _preexistingTrap$_set; + (_preexistingTrap$_set = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set === void 0 || _preexistingTrap$_set.call(preexistingTrap, false); + revertState = true; + } + try { + if (!checkCanFocusTrap) { + updateTabbableNodes(); + } + state.active = true; + state.paused = false; + state.nodeFocusedBeforeActivation = _getActiveElement(doc); + onActivate === null || onActivate === void 0 || onActivate(); + var finishActivation = /* @__PURE__ */ function() { + var _ref6 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee() { + return _regenerator().w(function(_context) { + while (1) + switch (_context.n) { + case 0: + if (checkCanFocusTrap) { + updateTabbableNodes(); + } + _context.n = 1; + return addListeners(); + case 1: + trap._setSubtreeIsolation(true); + updateObservedNodes(); + onPostActivate === null || onPostActivate === void 0 || onPostActivate(); + case 2: + return _context.a(2); + } + }, _callee); + })); + return function finishActivation2() { + return _ref6.apply(this, arguments); + }; + }(); + if (checkCanFocusTrap) { + checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation); + return this; + } + finishActivation(); + } catch (error2) { + if (preexistingTrap === activeFocusTraps.getActiveTrap(trapStack) && revertState) { + var _preexistingTrap$_set2; + (_preexistingTrap$_set2 = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set2 === void 0 || _preexistingTrap$_set2.call(preexistingTrap, true); + } + throw error2; + } + return this; + }, + deactivate: function deactivate(deactivateOptions) { + if (!state.active) { + return this; + } + var options = _objectSpread2({ + onDeactivate: config.onDeactivate, + onPostDeactivate: config.onPostDeactivate, + checkCanReturnFocus: config.checkCanReturnFocus + }, deactivateOptions); + clearTimeout(state.delayInitialFocusTimer); + state.delayInitialFocusTimer = void 0; + if (!state.paused) { + trap._setSubtreeIsolation(false); + } + state.alreadySilent.clear(); + removeListeners(); + state.active = false; + state.paused = false; + updateObservedNodes(); + activeFocusTraps.deactivateTrap(trapStack, trap); + var onDeactivate = getOption(options, "onDeactivate"); + var onPostDeactivate = getOption(options, "onPostDeactivate"); + var checkCanReturnFocus = getOption(options, "checkCanReturnFocus"); + var returnFocus = getOption(options, "returnFocus", "returnFocusOnDeactivate"); + onDeactivate === null || onDeactivate === void 0 || onDeactivate(); + var finishDeactivation = function finishDeactivation2() { + delay(function() { + if (returnFocus) { + _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)); + } + onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate(); + }); + }; + if (returnFocus && checkCanReturnFocus) { + checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation); + return this; + } + finishDeactivation(); + return this; + }, + pause: function pause(pauseOptions) { + if (!state.active) { + return this; + } + state.manuallyPaused = true; + return this._setPausedState(true, pauseOptions); + }, + unpause: function unpause(unpauseOptions) { + if (!state.active) { + return this; + } + state.manuallyPaused = false; + if (trapStack[trapStack.length - 1] !== this) { + return this; + } + return this._setPausedState(false, unpauseOptions); + }, + updateContainerElements: function updateContainerElements(containerElements) { + var elementsAsArray = [].concat(containerElements).filter(Boolean); + state.containers = elementsAsArray.map(function(element) { + return typeof element === "string" ? doc.querySelector(element) : element; + }); + if (config.isolateSubtrees) { + collectAdjacentElements(state.containers); + } + if (state.active) { + updateTabbableNodes(); + if (!state.paused) { + trap._setSubtreeIsolation(true); + } + } + updateObservedNodes(); + return this; + } + }; + Object.defineProperties(trap, { + _isManuallyPaused: { + value: function value() { + return state.manuallyPaused; + } + }, + _setPausedState: { + value: function value(paused, options) { + if (state.paused === paused) { + return this; + } + state.paused = paused; + if (paused) { + var onPause = getOption(options, "onPause"); + var onPostPause = getOption(options, "onPostPause"); + onPause === null || onPause === void 0 || onPause(); + removeListeners(); + trap._setSubtreeIsolation(false); + updateObservedNodes(); + onPostPause === null || onPostPause === void 0 || onPostPause(); + } else { + var onUnpause = getOption(options, "onUnpause"); + var onPostUnpause = getOption(options, "onPostUnpause"); + onUnpause === null || onUnpause === void 0 || onUnpause(); + var finishUnpause = /* @__PURE__ */ function() { + var _ref7 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee2() { + return _regenerator().w(function(_context2) { + while (1) + switch (_context2.n) { + case 0: + updateTabbableNodes(); + _context2.n = 1; + return addListeners(); + case 1: + trap._setSubtreeIsolation(true); + updateObservedNodes(); + onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause(); + case 2: + return _context2.a(2); + } + }, _callee2); + })); + return function finishUnpause2() { + return _ref7.apply(this, arguments); + }; + }(); + finishUnpause(); + } + return this; + } + }, + _setSubtreeIsolation: { + value: function value(isEnabled) { + if (config.isolateSubtrees) { + state.adjacentElements.forEach(function(el) { + var _el$getAttribute; + if (isEnabled) { + switch (config.isolateSubtrees) { + case "aria-hidden": + if (el.ariaHidden === "true" || ((_el$getAttribute = el.getAttribute("aria-hidden")) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.toLowerCase()) === "true") { + state.alreadySilent.add(el); + } + el.setAttribute("aria-hidden", "true"); + break; + default: + if (el.inert || el.hasAttribute("inert")) { + state.alreadySilent.add(el); + } + el.setAttribute("inert", true); + break; + } + } else { + if (state.alreadySilent.has(el)) + ; + else { + switch (config.isolateSubtrees) { + case "aria-hidden": + el.removeAttribute("aria-hidden"); + break; + default: + el.removeAttribute("inert"); + break; + } + } + } + }); + } + } + } + }); + trap.updateContainerElements(elements); + return trap; + }; + function src_default3(Alpine3) { + let lastFocused; + let currentFocused; + window.addEventListener("focusin", () => { + lastFocused = currentFocused; + currentFocused = document.activeElement; + }); + Alpine3.magic("focus", (el) => { + let within = el; + return { + __noscroll: false, + __wrapAround: false, + within(el2) { + within = el2; + return this; + }, + withoutScrolling() { + this.__noscroll = true; + return this; + }, + noscroll() { + this.__noscroll = true; + return this; + }, + withWrapAround() { + this.__wrapAround = true; + return this; + }, + wrap() { + return this.withWrapAround(); + }, + focusable(el2) { + return isFocusable(el2); + }, + previouslyFocused() { + return lastFocused; + }, + lastFocused() { + return lastFocused; + }, + focused() { + return currentFocused; + }, + focusables() { + if (Array.isArray(within)) + return within; + return focusable(within, { displayCheck: "none" }); + }, + all() { + return this.focusables(); + }, + isFirst(el2) { + let els2 = this.all(); + return els2[0] && els2[0].isSameNode(el2); + }, + isLast(el2) { + let els2 = this.all(); + return els2.length && els2.slice(-1)[0].isSameNode(el2); + }, + getFirst() { + return this.all()[0]; + }, + getLast() { + return this.all().slice(-1)[0]; + }, + getNext() { + let list = this.all(); + let current = document.activeElement; + if (list.indexOf(current) === -1) + return; + if (this.__wrapAround && list.indexOf(current) === list.length - 1) { + return list[0]; + } + return list[list.indexOf(current) + 1]; + }, + getPrevious() { + let list = this.all(); + let current = document.activeElement; + if (list.indexOf(current) === -1) + return; + if (this.__wrapAround && list.indexOf(current) === 0) { + return list.slice(-1)[0]; + } + return list[list.indexOf(current) - 1]; + }, + first() { + this.focus(this.getFirst()); + }, + last() { + this.focus(this.getLast()); + }, + next() { + this.focus(this.getNext()); + }, + previous() { + this.focus(this.getPrevious()); + }, + prev() { + return this.previous(); + }, + focus(el2) { + if (!el2) + return; + setTimeout(() => { + if (!el2.hasAttribute("tabindex")) + el2.setAttribute("tabindex", "0"); + el2.focus({ preventScroll: this.__noscroll }); + }); + } + }; }); + Alpine3.directive("trap", Alpine3.skipDuringClone( + (el, { expression, modifiers }, { effect: effect3, evaluateLater: evaluateLater2, cleanup: cleanup2 }) => { + let evaluator = evaluateLater2(expression); + let oldValue = false; + let options = { + escapeDeactivates: false, + allowOutsideClick: true, + fallbackFocus: () => el + }; + let undoInert = () => { + }; + if (modifiers.includes("noautofocus")) { + options.initialFocus = false; + } else { + let autofocusEl = el.querySelector("[autofocus]"); + if (autofocusEl) + options.initialFocus = autofocusEl; + } + if (modifiers.includes("inert")) { + options.onPostActivate = () => { + Alpine3.nextTick(() => { + undoInert = setInert(el); + }); + }; + } + let trap = createFocusTrap(el, options); + let undoDisableScrolling = () => { + }; + const releaseFocus = () => { + undoInert(); + undoInert = () => { + }; + undoDisableScrolling(); + undoDisableScrolling = () => { + }; + trap.deactivate({ + returnFocus: !modifiers.includes("noreturn") + }); + }; + effect3(() => evaluator((value) => { + if (oldValue === value) + return; + if (value && !oldValue) { + if (modifiers.includes("noscroll")) + undoDisableScrolling = disableScrolling(); + setTimeout(() => { + trap.activate(); + }, 15); + } + if (!value && oldValue) { + releaseFocus(); + } + oldValue = !!value; + })); + cleanup2(releaseFocus); + }, + (el, { expression, modifiers }, { evaluate: evaluate3 }) => { + if (modifiers.includes("inert") && evaluate3(expression)) + setInert(el); + } + )); } - function getByName(name) { - return componentsByName(name).map((i) => i.$wire); - } - function find(id) { - let component = components[id]; - return component && component.$wire; - } - function first() { - return Object.values(components)[0].$wire; - } - function all() { - return Object.values(components); - } - - // js/events.js - function dispatch3(component, name, params) { - dispatchEvent(component.el, name, params); - } - function dispatchGlobal(name, params) { - dispatchEvent(window, name, params); - } - function dispatchSelf(component, name, params) { - dispatchEvent(component.el, name, params, false); - } - function dispatchTo(componentName, name, params) { - let targets = componentsByName(componentName); - targets.forEach((target) => { - dispatchEvent(target.el, name, params, false); + function setInert(el) { + let undos = []; + crawlSiblingsUp(el, (sibling) => { + let cache = sibling.hasAttribute("aria-hidden"); + sibling.setAttribute("aria-hidden", "true"); + undos.push(() => cache || sibling.removeAttribute("aria-hidden")); }); + return () => { + while (undos.length) + undos.pop()(); + }; } - function listen2(component, name, callback) { - component.el.addEventListener(name, (e) => { - callback(e.detail); + function crawlSiblingsUp(el, callback) { + if (el.isSameNode(document.body) || !el.parentNode) + return; + Array.from(el.parentNode.children).forEach((sibling) => { + if (sibling.isSameNode(el)) { + crawlSiblingsUp(el.parentNode, callback); + } else { + callback(sibling); + } }); } - function on3(eventName, callback) { - let handler4 = (e) => { - if (!e.__livewire) - return; - callback(e.detail); - }; - window.addEventListener(eventName, handler4); + function disableScrolling() { + let overflow = document.documentElement.style.overflow; + let paddingRight = document.documentElement.style.paddingRight; + let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; + let scrollbarGutter = window.getComputedStyle(document.documentElement).scrollbarGutter; + document.documentElement.style.overflow = "hidden"; + if (scrollbarGutter && scrollbarGutter !== "auto") { + return () => { + document.documentElement.style.overflow = overflow; + }; + } + document.documentElement.style.paddingRight = `${scrollbarWidth}px`; return () => { - window.removeEventListener(eventName, handler4); + document.documentElement.style.overflow = overflow; + document.documentElement.style.paddingRight = paddingRight; }; } - function dispatchEvent(target, name, params, bubbles = true) { - let e = new CustomEvent(name, { bubbles, detail: params }); - e.__livewire = { name, params, receivedBy: [] }; - target.dispatchEvent(e); - } + var module_default3 = src_default3; - // js/directives.js - var customDirectiveNames = /* @__PURE__ */ new Set(); - function matchesForLivewireDirective(attributeName) { - return attributeName.match(new RegExp("wire:")); + // node_modules/@alpinejs/persist/dist/module.esm.js + function src_default4(Alpine3) { + let persist = () => { + let alias; + let storage; + try { + storage = localStorage; + } catch (e) { + console.error(e); + console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable."); + let dummy = /* @__PURE__ */ new Map(); + storage = { + getItem: dummy.get.bind(dummy), + setItem: dummy.set.bind(dummy) + }; + } + return Alpine3.interceptor((initialValue, getter, setter, path, key) => { + let lookup = alias || `_x_${path}`; + let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue; + setter(initial); + Alpine3.effect(() => { + let value = getter(); + storageSet(lookup, value, storage); + setter(value); + }); + return initial; + }, (func) => { + func.as = (key) => { + alias = key; + return func; + }, func.using = (target) => { + storage = target; + return func; + }; + }); + }; + Object.defineProperty(Alpine3, "$persist", { get: () => persist() }); + Alpine3.magic("persist", persist); + Alpine3.persist = (key, { get: get3, set: set3 }, storage = localStorage) => { + let initial = storageHas(key, storage) ? storageGet(key, storage) : get3(); + set3(initial); + Alpine3.effect(() => { + let value = get3(); + storageSet(key, value, storage); + set3(value); + }); + }; } - function extractDirective(el, name) { - let [value, ...modifiers] = name.replace(new RegExp("wire:"), "").split("."); - return new Directive(value, modifiers, name, el); + function storageHas(key, storage) { + return storage.getItem(key) !== null; } - function directive2(name, callback) { - if (customDirectiveNames.has(name)) + function storageGet(key, storage) { + let value = storage.getItem(key); + if (value === void 0) return; - customDirectiveNames.add(name); - on2("directive.init", ({ el, component, directive: directive3, cleanup: cleanup2 }) => { - if (directive3.value === name) { - callback({ - el, - directive: directive3, - component, - $wire: component.$wire, - cleanup: cleanup2 + return JSON.parse(value); + } + function storageSet(key, value, storage) { + storage.setItem(key, JSON.stringify(value)); + } + var module_default4 = src_default4; + + // node_modules/@alpinejs/intersect/dist/module.esm.js + function src_default5(Alpine3) { + Alpine3.directive("intersect", Alpine3.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater: evaluateLater2, cleanup: cleanup2 }) => { + let evaluate3 = evaluateLater2(expression); + let options = { + rootMargin: getRootMargin(modifiers), + threshold: getThreshold(modifiers) + }; + let observer2 = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting === (value === "leave")) + return; + evaluate3(); + modifiers.includes("once") && observer2.disconnect(); }); - } - }); + }, options); + observer2.observe(el); + cleanup2(() => { + observer2.disconnect(); + }); + })); } - function getDirectives(el) { - return new DirectiveManager(el); + function getThreshold(modifiers) { + if (modifiers.includes("full")) + return 0.99; + if (modifiers.includes("half")) + return 0.5; + if (!modifiers.includes("threshold")) + return 0; + let threshold = modifiers[modifiers.indexOf("threshold") + 1]; + if (threshold === "100") + return 1; + if (threshold === "0") + return 0; + return Number(`.${threshold}`); } - function customDirectiveHasBeenRegistered(name) { - return customDirectiveNames.has(name); + function getLengthValue(rawValue) { + let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/); + return match ? match[1] + (match[2] || "px") : void 0; } - var DirectiveManager = class { - constructor(el) { - this.el = el; - this.directives = this.extractTypeModifiersAndValue(); - } - all() { - return this.directives; - } - has(value) { - return this.directives.map((directive3) => directive3.value).includes(value); - } - missing(value) { - return !this.has(value); - } - get(value) { - return this.directives.find((directive3) => directive3.value === value); - } - extractTypeModifiersAndValue() { - return Array.from(this.el.getAttributeNames().filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(this.el, name))); - } - }; - var Directive = class { - constructor(value, modifiers, rawName, el) { - this.rawName = this.raw = rawName; - this.el = el; - this.eventContext; - this.value = value; - this.modifiers = modifiers; - this.expression = this.el.getAttribute(this.rawName); + function getRootMargin(modifiers) { + const key = "margin"; + const fallback2 = "0px 0px 0px 0px"; + const index2 = modifiers.indexOf(key); + if (index2 === -1) + return fallback2; + let values = []; + for (let i = 1; i < 5; i++) { + values.push(getLengthValue(modifiers[index2 + i] || "")); } - get method() { - const { method } = this.parseOutMethodAndParams(this.expression); - return method; + values = values.filter((v) => v !== void 0); + return values.length ? values.join(" ").trim() : fallback2; + } + var module_default5 = src_default5; + + // node_modules/@alpinejs/sort/dist/module.esm.js + function ownKeys3(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) { + symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + keys.push.apply(keys, symbols); } - get params() { - const { params } = this.parseOutMethodAndParams(this.expression); - return params; - } - parseOutMethodAndParams(rawMethod) { - let method = rawMethod; - let params = []; - const methodAndParamString = method.match(/(.*?)\((.*)\)/s); - if (methodAndParamString) { - method = methodAndParamString[1]; - let func = new Function("$event", `return (function () { - for (var l=arguments.length, p=new Array(l), k=0; k<l; k++) { - p[k] = arguments[k]; - } - return [].concat(p); - })(${methodAndParamString[2]})`); - params = func(this.eventContext); + return keys; + } + function _objectSpread22(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + if (i % 2) { + ownKeys3(Object(source), true).forEach(function(key) { + _defineProperty2(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys3(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); } - return { method, params }; } - }; - - // node_modules/@alpinejs/collapse/dist/module.esm.js - function src_default2(Alpine3) { - Alpine3.directive("collapse", collapse); - collapse.inline = (el, { modifiers }) => { - if (!modifiers.includes("min")) - return; - el._x_doShow = () => { - }; - el._x_doHide = () => { - }; - }; - function collapse(el, { modifiers }) { - let duration = modifierValue2(modifiers, "duration", 250) / 1e3; - let floor2 = modifierValue2(modifiers, "min", 0); - let fullyHide = !modifiers.includes("min"); - if (!el._x_isShown) - el.style.height = `${floor2}px`; - if (!el._x_isShown && fullyHide) - el.hidden = true; - if (!el._x_isShown) - el.style.overflow = "hidden"; - let setFunction = (el2, styles) => { - let revertFunction = Alpine3.setStyles(el2, styles); - return styles.height ? () => { - } : revertFunction; - }; - let transitionStyles = { - transitionProperty: "height", - transitionDuration: `${duration}s`, - transitionTimingFunction: "cubic-bezier(0.4, 0.0, 0.2, 1)" + return target; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function(obj2) { + return typeof obj2; }; - el._x_transition = { - in(before = () => { - }, after = () => { - }) { - if (fullyHide) - el.hidden = false; - if (fullyHide) - el.style.display = null; - let current = el.getBoundingClientRect().height; - el.style.height = "auto"; - let full = el.getBoundingClientRect().height; - if (current === full) { - current = floor2; - } - Alpine3.transition(el, Alpine3.setStyles, { - during: transitionStyles, - start: { height: current + "px" }, - end: { height: full + "px" } - }, () => el._x_isShown = true, () => { - if (Math.abs(el.getBoundingClientRect().height - full) < 1) { - el.style.overflow = null; - } - }); - }, - out(before = () => { - }, after = () => { - }) { - let full = el.getBoundingClientRect().height; - Alpine3.transition(el, setFunction, { - during: transitionStyles, - start: { height: full + "px" }, - end: { height: floor2 + "px" } - }, () => el.style.overflow = "hidden", () => { - el._x_isShown = false; - if (el.style.height == `${floor2}px` && fullyHide) { - el.style.display = "none"; - el.hidden = true; - } - }); - } + } else { + _typeof = function(obj2) { + return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; }; } + return _typeof(obj); } - function modifierValue2(modifiers, key, fallback2) { - if (modifiers.indexOf(key) === -1) - return fallback2; - const rawValue = modifiers[modifiers.indexOf(key) + 1]; - if (!rawValue) - return fallback2; - if (key === "duration") { - let match = rawValue.match(/([0-9]+)ms/); - if (match) - return match[1]; - } - if (key === "min") { - let match = rawValue.match(/([0-9]+)px/); - if (match) - return match[1]; + function _defineProperty2(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; } - return rawValue; + return obj; } - var module_default2 = src_default2; - - // node_modules/@alpinejs/focus/dist/module.esm.js - var candidateSelectors = ["input", "select", "textarea", "a[href]", "button", "[tabindex]:not(slot)", "audio[controls]", "video[controls]", '[contenteditable]:not([contenteditable="false"])', "details>summary:first-of-type", "details"]; - var candidateSelector = /* @__PURE__ */ candidateSelectors.join(","); - var NoElement = typeof Element === "undefined"; - var matches = NoElement ? function() { - } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; - var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) { - return element.getRootNode(); - } : function(element) { - return element.ownerDocument; - }; - var getCandidates = function getCandidates2(el, includeContainer, filter) { - var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector)); - if (includeContainer && matches.call(el, candidateSelector)) { - candidates.unshift(el); - } - candidates = candidates.filter(filter); - return candidates; - }; - var getCandidatesIteratively = function getCandidatesIteratively2(elements, includeContainer, options) { - var candidates = []; - var elementsToCheck = Array.from(elements); - while (elementsToCheck.length) { - var element = elementsToCheck.shift(); - if (element.tagName === "SLOT") { - var assigned = element.assignedElements(); - var content = assigned.length ? assigned : element.children; - var nestedCandidates = getCandidatesIteratively2(content, true, options); - if (options.flatten) { - candidates.push.apply(candidates, nestedCandidates); - } else { - candidates.push({ - scope: element, - candidates: nestedCandidates - }); - } - } else { - var validCandidate = matches.call(element, candidateSelector); - if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) { - candidates.push(element); - } - var shadowRoot = element.shadowRoot || typeof options.getShadowRoot === "function" && options.getShadowRoot(element); - var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element); - if (shadowRoot && validShadowRoot) { - var _nestedCandidates = getCandidatesIteratively2(shadowRoot === true ? element.children : shadowRoot.children, true, options); - if (options.flatten) { - candidates.push.apply(candidates, _nestedCandidates); - } else { - candidates.push({ - scope: element, - candidates: _nestedCandidates - }); + function _extends() { + _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; } - } else { - elementsToCheck.unshift.apply(elementsToCheck, element.children); } } + return target; + }; + return _extends.apply(this, arguments); + } + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) + return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) + continue; + target[key] = source[key]; } - return candidates; - }; - var getTabindex = function getTabindex2(node, isScope) { - if (node.tabIndex < 0) { - if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute("tabindex"), 10))) { - return 0; - } - } - return node.tabIndex; - }; - var sortOrderedTabbables = function sortOrderedTabbables2(a, b) { - return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex; - }; - var isInput = function isInput2(node) { - return node.tagName === "INPUT"; - }; - var isHiddenInput = function isHiddenInput2(node) { - return isInput(node) && node.type === "hidden"; - }; - var isDetailsWithSummary = function isDetailsWithSummary2(node) { - var r = node.tagName === "DETAILS" && Array.prototype.slice.apply(node.children).some(function(child) { - return child.tagName === "SUMMARY"; - }); - return r; - }; - var getCheckedRadio = function getCheckedRadio2(nodes, form) { - for (var i = 0; i < nodes.length; i++) { - if (nodes[i].checked && nodes[i].form === form) { - return nodes[i]; + return target; + } + function _objectWithoutProperties(source, excluded) { + if (source == null) + return {}; + var target = _objectWithoutPropertiesLoose(source, excluded); + var key, i; + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) + continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) + continue; + target[key] = source[key]; } } + return target; + } + var version = "1.15.2"; + function userAgent(pattern) { + if (typeof window !== "undefined" && window.navigator) { + return !!/* @__PURE__ */ navigator.userAgent.match(pattern); + } + } + var IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i); + var Edge = userAgent(/Edge/i); + var FireFox = userAgent(/firefox/i); + var Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i); + var IOS = userAgent(/iP(ad|od|hone)/i); + var ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i); + var captureMode = { + capture: false, + passive: false }; - var isTabbableRadio = function isTabbableRadio2(node) { - if (!node.name) { - return true; - } - var radioScope = node.form || getRootNode(node); - var queryRadios = function queryRadios2(name) { - return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]'); - }; - var radioSet; - if (typeof window !== "undefined" && typeof window.CSS !== "undefined" && typeof window.CSS.escape === "function") { - radioSet = queryRadios(window.CSS.escape(node.name)); - } else { + function on4(el, event, fn) { + el.addEventListener(event, fn, !IE11OrLess && captureMode); + } + function off(el, event, fn) { + el.removeEventListener(event, fn, !IE11OrLess && captureMode); + } + function matches2(el, selector) { + if (!selector) + return; + selector[0] === ">" && (selector = selector.substring(1)); + if (el) { try { - radioSet = queryRadios(node.name); - } catch (err) { - console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s", err.message); - return false; - } - } - var checked = getCheckedRadio(radioSet, node.form); - return !checked || checked === node; - }; - var isRadio = function isRadio2(node) { - return isInput(node) && node.type === "radio"; - }; - var isNonTabbableRadio = function isNonTabbableRadio2(node) { - return isRadio(node) && !isTabbableRadio(node); - }; - var isZeroArea = function isZeroArea2(node) { - var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height; - return width === 0 && height === 0; - }; - var isHidden = function isHidden2(node, _ref) { - var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot; - if (getComputedStyle(node).visibility === "hidden") { - return true; - } - var isDirectSummary = matches.call(node, "details>summary:first-of-type"); - var nodeUnderDetails = isDirectSummary ? node.parentElement : node; - if (matches.call(nodeUnderDetails, "details:not([open]) *")) { - return true; - } - var nodeRootHost = getRootNode(node).host; - var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node); - if (!displayCheck || displayCheck === "full") { - if (typeof getShadowRoot === "function") { - var originalNode = node; - while (node) { - var parentElement = node.parentElement; - var rootNode = getRootNode(node); - if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) { - return isZeroArea(node); - } else if (node.assignedSlot) { - node = node.assignedSlot; - } else if (!parentElement && rootNode !== node.ownerDocument) { - node = rootNode.host; - } else { - node = parentElement; - } + if (el.matches) { + return el.matches(selector); + } else if (el.msMatchesSelector) { + return el.msMatchesSelector(selector); + } else if (el.webkitMatchesSelector) { + return el.webkitMatchesSelector(selector); } - node = originalNode; - } - if (nodeIsAttached) { - return !node.getClientRects().length; + } catch (_) { + return false; } - } else if (displayCheck === "non-zero-area") { - return isZeroArea(node); } return false; - }; - var isDisabledFromFieldset = function isDisabledFromFieldset2(node) { - if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) { - var parentNode = node.parentElement; - while (parentNode) { - if (parentNode.tagName === "FIELDSET" && parentNode.disabled) { - for (var i = 0; i < parentNode.children.length; i++) { - var child = parentNode.children.item(i); - if (child.tagName === "LEGEND") { - return matches.call(parentNode, "fieldset[disabled] *") ? true : !child.contains(node); - } - } - return true; + } + function getParentOrHost(el) { + return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode; + } + function closest(el, selector, ctx, includeCTX) { + if (el) { + ctx = ctx || document; + do { + if (selector != null && (selector[0] === ">" ? el.parentNode === ctx && matches2(el, selector) : matches2(el, selector)) || includeCTX && el === ctx) { + return el; } - parentNode = parentNode.parentElement; - } + if (el === ctx) + break; + } while (el = getParentOrHost(el)); } - return false; - }; - var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) { - if (node.disabled || isHiddenInput(node) || isHidden(node, options) || isDetailsWithSummary(node) || isDisabledFromFieldset(node)) { - return false; + return null; + } + var R_SPACE = /\s+/g; + function toggleClass(el, name, state) { + if (el && name) { + if (el.classList) { + el.classList[state ? "add" : "remove"](name); + } else { + var className = (" " + el.className + " ").replace(R_SPACE, " ").replace(" " + name + " ", " "); + el.className = (className + (state ? " " + name : "")).replace(R_SPACE, " "); + } } - return true; - }; - var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) { - if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) { - return false; + } + function css(el, prop, val) { + var style = el && el.style; + if (style) { + if (val === void 0) { + if (document.defaultView && document.defaultView.getComputedStyle) { + val = document.defaultView.getComputedStyle(el, ""); + } else if (el.currentStyle) { + val = el.currentStyle; + } + return prop === void 0 ? val : val[prop]; + } else { + if (!(prop in style) && prop.indexOf("webkit") === -1) { + prop = "-webkit-" + prop; + } + style[prop] = val + (typeof val === "string" ? "" : "px"); + } } - return true; - }; - var isValidShadowRootTabbable = function isValidShadowRootTabbable2(shadowHostNode) { - var tabIndex = parseInt(shadowHostNode.getAttribute("tabindex"), 10); - if (isNaN(tabIndex) || tabIndex >= 0) { - return true; + } + function matrix(el, selfOnly) { + var appliedTransforms = ""; + if (typeof el === "string") { + appliedTransforms = el; + } else { + do { + var transform = css(el, "transform"); + if (transform && transform !== "none") { + appliedTransforms = transform + " " + appliedTransforms; + } + } while (!selfOnly && (el = el.parentNode)); } - return false; - }; - var sortByOrder = function sortByOrder2(candidates) { - var regularTabbables = []; - var orderedTabbables = []; - candidates.forEach(function(item, i) { - var isScope = !!item.scope; - var element = isScope ? item.scope : item; - var candidateTabindex = getTabindex(element, isScope); - var elements = isScope ? sortByOrder2(item.candidates) : element; - if (candidateTabindex === 0) { - isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element); - } else { - orderedTabbables.push({ - documentOrder: i, - tabIndex: candidateTabindex, - item, - isScope, - content: elements - }); + var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; + return matrixFn && new matrixFn(appliedTransforms); + } + function find2(ctx, tagName, iterator) { + if (ctx) { + var list = ctx.getElementsByTagName(tagName), i = 0, n = list.length; + if (iterator) { + for (; i < n; i++) { + iterator(list[i], i); + } } - }); - return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) { - sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content); - return acc; - }, []).concat(regularTabbables); - }; - var tabbable = function tabbable2(el, options) { - options = options || {}; - var candidates; - if (options.getShadowRoot) { - candidates = getCandidatesIteratively([el], options.includeContainer, { - filter: isNodeMatchingSelectorTabbable.bind(null, options), - flatten: false, - getShadowRoot: options.getShadowRoot, - shadowRootFilter: isValidShadowRootTabbable - }); + return list; + } + return []; + } + function getWindowScrollingElement() { + var scrollingElement = document.scrollingElement; + if (scrollingElement) { + return scrollingElement; } else { - candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options)); + return document.documentElement; } - return sortByOrder(candidates); - }; - var focusable = function focusable2(el, options) { - options = options || {}; - var candidates; - if (options.getShadowRoot) { - candidates = getCandidatesIteratively([el], options.includeContainer, { - filter: isNodeMatchingSelectorFocusable.bind(null, options), - flatten: true, - getShadowRoot: options.getShadowRoot - }); + } + function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) { + if (!el.getBoundingClientRect && el !== window) + return; + var elRect, top, left, bottom, right, height, width; + if (el !== window && el.parentNode && el !== getWindowScrollingElement()) { + elRect = el.getBoundingClientRect(); + top = elRect.top; + left = elRect.left; + bottom = elRect.bottom; + right = elRect.right; + height = elRect.height; + width = elRect.width; } else { - candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options)); + top = 0; + left = 0; + bottom = window.innerHeight; + right = window.innerWidth; + height = window.innerHeight; + width = window.innerWidth; + } + if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) { + container = container || el.parentNode; + if (!IE11OrLess) { + do { + if (container && container.getBoundingClientRect && (css(container, "transform") !== "none" || relativeToNonStaticParent && css(container, "position") !== "static")) { + var containerRect = container.getBoundingClientRect(); + top -= containerRect.top + parseInt(css(container, "border-top-width")); + left -= containerRect.left + parseInt(css(container, "border-left-width")); + bottom = top + elRect.height; + right = left + elRect.width; + break; + } + } while (container = container.parentNode); + } } - return candidates; - }; - var isTabbable = function isTabbable2(node, options) { - options = options || {}; - if (!node) { - throw new Error("No node provided"); + if (undoScale && el !== window) { + var elMatrix = matrix(container || el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d; + if (elMatrix) { + top /= scaleY; + left /= scaleX; + width /= scaleX; + height /= scaleY; + bottom = top + height; + right = left + width; + } } - if (matches.call(node, candidateSelector) === false) { - return false; + return { + top, + left, + bottom, + right, + width, + height + }; + } + function isScrolledPast(el, elSide, parentSide) { + var parent = getParentAutoScrollElement(el, true), elSideVal = getRect(el)[elSide]; + while (parent) { + var parentSideVal = getRect(parent)[parentSide], visible = void 0; + if (parentSide === "top" || parentSide === "left") { + visible = elSideVal >= parentSideVal; + } else { + visible = elSideVal <= parentSideVal; + } + if (!visible) + return parent; + if (parent === getWindowScrollingElement()) + break; + parent = getParentAutoScrollElement(parent, false); } - return isNodeMatchingSelectorTabbable(options, node); - }; - var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat("iframe").join(","); - var isFocusable = function isFocusable2(node, options) { - options = options || {}; - if (!node) { - throw new Error("No node provided"); + return false; + } + function getChild(el, childNum, options, includeDragEl) { + var currentChild = 0, i = 0, children = el.children; + while (i < children.length) { + if (children[i].style.display !== "none" && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) { + if (currentChild === childNum) { + return children[i]; + } + currentChild++; + } + i++; } - if (matches.call(node, focusableCandidateSelector) === false) { - return false; + return null; + } + function lastChild(el, selector) { + var last = el.lastElementChild; + while (last && (last === Sortable.ghost || css(last, "display") === "none" || selector && !matches2(last, selector))) { + last = last.previousElementSibling; } - return isNodeMatchingSelectorFocusable(options, node); - }; - function ownKeys2(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); + return last || null; + } + function index(el, selector) { + var index2 = 0; + if (!el || !el.parentNode) { + return -1; } - return keys; + while (el = el.previousElementSibling) { + if (el.nodeName.toUpperCase() !== "TEMPLATE" && el !== Sortable.clone && (!selector || matches2(el, selector))) { + index2++; + } + } + return index2; } - function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? ownKeys2(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys2(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); + function getRelativeScrollOffset(el) { + var offsetLeft = 0, offsetTop = 0, winScroller = getWindowScrollingElement(); + if (el) { + do { + var elMatrix = matrix(el), scaleX = elMatrix.a, scaleY = elMatrix.d; + offsetLeft += el.scrollLeft * scaleX; + offsetTop += el.scrollTop * scaleY; + } while (el !== winScroller && (el = el.parentNode)); } - return target; + return [offsetLeft, offsetTop]; } - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value, - enumerable: true, - configurable: true, - writable: true - }); + function indexOfObject(arr, obj) { + for (var i in arr) { + if (!arr.hasOwnProperty(i)) + continue; + for (var key in obj) { + if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) + return Number(i); + } + } + return -1; + } + function getParentAutoScrollElement(el, includeSelf) { + if (!el || !el.getBoundingClientRect) + return getWindowScrollingElement(); + var elem = el; + var gotSelf = false; + do { + if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) { + var elemCSS = css(elem); + if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == "auto" || elemCSS.overflowX == "scroll") || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == "auto" || elemCSS.overflowY == "scroll")) { + if (!elem.getBoundingClientRect || elem === document.body) + return getWindowScrollingElement(); + if (gotSelf || includeSelf) + return elem; + gotSelf = true; + } + } + } while (elem = elem.parentNode); + return getWindowScrollingElement(); + } + function extend(dst, src) { + if (dst && src) { + for (var key in src) { + if (src.hasOwnProperty(key)) { + dst[key] = src[key]; + } + } + } + return dst; + } + function isRectEqual(rect1, rect2) { + return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width); + } + var _throttleTimeout; + function throttle2(callback, ms) { + return function() { + if (!_throttleTimeout) { + var args = arguments, _this = this; + if (args.length === 1) { + callback.call(_this, args[0]); + } else { + callback.apply(_this, args); + } + _throttleTimeout = setTimeout(function() { + _throttleTimeout = void 0; + }, ms); + } + }; + } + function cancelThrottle() { + clearTimeout(_throttleTimeout); + _throttleTimeout = void 0; + } + function scrollBy(el, x, y) { + el.scrollLeft += x; + el.scrollTop += y; + } + function clone2(el) { + var Polymer = window.Polymer; + var $ = window.jQuery || window.Zepto; + if (Polymer && Polymer.dom) { + return Polymer.dom(el).cloneNode(true); + } else if ($) { + return $(el).clone(true)[0]; } else { - obj[key] = value; + return el.cloneNode(true); } - return obj; } - var activeFocusTraps = function() { - var trapQueue = []; + function getChildContainingRectFromElement(container, options, ghostEl2) { + var rect = {}; + Array.from(container.children).forEach(function(child) { + var _rect$left, _rect$top, _rect$right, _rect$bottom; + if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl2) + return; + var childRect = getRect(child); + rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left); + rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top); + rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right); + rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom); + }); + rect.width = rect.right - rect.left; + rect.height = rect.bottom - rect.top; + rect.x = rect.left; + rect.y = rect.top; + return rect; + } + var expando = "Sortable" + new Date().getTime(); + function AnimationStateManager() { + var animationStates = [], animationCallbackId; return { - activateTrap: function activateTrap(trap) { - if (trapQueue.length > 0) { - var activeTrap = trapQueue[trapQueue.length - 1]; - if (activeTrap !== trap) { - activeTrap.pause(); + captureAnimationState: function captureAnimationState() { + animationStates = []; + if (!this.options.animation) + return; + var children = [].slice.call(this.el.children); + children.forEach(function(child) { + if (css(child, "display") === "none" || child === Sortable.ghost) + return; + animationStates.push({ + target: child, + rect: getRect(child) + }); + var fromRect = _objectSpread22({}, animationStates[animationStates.length - 1].rect); + if (child.thisAnimationDuration) { + var childMatrix = matrix(child, true); + if (childMatrix) { + fromRect.top -= childMatrix.f; + fromRect.left -= childMatrix.e; + } } + child.fromRect = fromRect; + }); + }, + addAnimationState: function addAnimationState(state) { + animationStates.push(state); + }, + removeAnimationState: function removeAnimationState(target) { + animationStates.splice(indexOfObject(animationStates, { + target + }), 1); + }, + animateAll: function animateAll(callback) { + var _this = this; + if (!this.options.animation) { + clearTimeout(animationCallbackId); + if (typeof callback === "function") + callback(); + return; } - var trapIndex = trapQueue.indexOf(trap); - if (trapIndex === -1) { - trapQueue.push(trap); + var animating = false, animationTime = 0; + animationStates.forEach(function(state) { + var time = 0, target = state.target, fromRect = target.fromRect, toRect = getRect(target), prevFromRect = target.prevFromRect, prevToRect = target.prevToRect, animatingRect = state.rect, targetMatrix = matrix(target, true); + if (targetMatrix) { + toRect.top -= targetMatrix.f; + toRect.left -= targetMatrix.e; + } + target.toRect = toRect; + if (target.thisAnimationDuration) { + if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) { + time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options); + } + } + if (!isRectEqual(toRect, fromRect)) { + target.prevFromRect = fromRect; + target.prevToRect = toRect; + if (!time) { + time = _this.options.animation; + } + _this.animate(target, animatingRect, toRect, time); + } + if (time) { + animating = true; + animationTime = Math.max(animationTime, time); + clearTimeout(target.animationResetTimer); + target.animationResetTimer = setTimeout(function() { + target.animationTime = 0; + target.prevFromRect = null; + target.fromRect = null; + target.prevToRect = null; + target.thisAnimationDuration = null; + }, time); + target.thisAnimationDuration = time; + } + }); + clearTimeout(animationCallbackId); + if (!animating) { + if (typeof callback === "function") + callback(); } else { - trapQueue.splice(trapIndex, 1); - trapQueue.push(trap); + animationCallbackId = setTimeout(function() { + if (typeof callback === "function") + callback(); + }, animationTime); } + animationStates = []; }, - deactivateTrap: function deactivateTrap(trap) { - var trapIndex = trapQueue.indexOf(trap); - if (trapIndex !== -1) { - trapQueue.splice(trapIndex, 1); - } - if (trapQueue.length > 0) { - trapQueue[trapQueue.length - 1].unpause(); + animate: function animate(target, currentRect, toRect, duration) { + if (duration) { + css(target, "transition", ""); + css(target, "transform", ""); + var elMatrix = matrix(this.el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d, translateX = (currentRect.left - toRect.left) / (scaleX || 1), translateY = (currentRect.top - toRect.top) / (scaleY || 1); + target.animatingX = !!translateX; + target.animatingY = !!translateY; + css(target, "transform", "translate3d(" + translateX + "px," + translateY + "px,0)"); + this.forRepaintDummy = repaint(target); + css(target, "transition", "transform " + duration + "ms" + (this.options.easing ? " " + this.options.easing : "")); + css(target, "transform", "translate3d(0,0,0)"); + typeof target.animated === "number" && clearTimeout(target.animated); + target.animated = setTimeout(function() { + css(target, "transition", ""); + css(target, "transform", ""); + target.animated = false; + target.animatingX = false; + target.animatingY = false; + }, duration); } } }; - }(); - var isSelectableInput = function isSelectableInput2(node) { - return node.tagName && node.tagName.toLowerCase() === "input" && typeof node.select === "function"; - }; - var isEscapeEvent = function isEscapeEvent2(e) { - return e.key === "Escape" || e.key === "Esc" || e.keyCode === 27; - }; - var isTabEvent = function isTabEvent2(e) { - return e.key === "Tab" || e.keyCode === 9; - }; - var delay = function delay2(fn) { - return setTimeout(fn, 0); + } + function repaint(target) { + return target.offsetWidth; + } + function calculateRealTime(animatingRect, fromRect, toRect, options) { + return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation; + } + var plugins = []; + var defaults = { + initializeByDefault: true }; - var findIndex = function findIndex2(arr, fn) { - var idx = -1; - arr.every(function(value, i) { - if (fn(value)) { - idx = i; - return false; + var PluginManager = { + mount: function mount(plugin2) { + for (var option2 in defaults) { + if (defaults.hasOwnProperty(option2) && !(option2 in plugin2)) { + plugin2[option2] = defaults[option2]; + } } - return true; - }); - return idx; - }; - var valueOrHandler = function valueOrHandler2(value) { - for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - params[_key - 1] = arguments[_key]; - } - return typeof value === "function" ? value.apply(void 0, params) : value; - }; - var getActualTarget = function getActualTarget2(event) { - return event.target.shadowRoot && typeof event.composedPath === "function" ? event.composedPath()[0] : event.target; - }; - var createFocusTrap = function createFocusTrap2(elements, userOptions) { - var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document; - var config = _objectSpread2({ - returnFocusOnDeactivate: true, - escapeDeactivates: true, - delayInitialFocus: true - }, userOptions); - var state = { - containers: [], - containerGroups: [], - tabbableGroups: [], - nodeFocusedBeforeActivation: null, - mostRecentlyFocusedNode: null, - active: false, - paused: false, - delayInitialFocusTimer: void 0 - }; - var trap; - var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) { - return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName]; - }; - var findContainerIndex = function findContainerIndex2(element) { - return state.containerGroups.findIndex(function(_ref) { - var container = _ref.container, tabbableNodes = _ref.tabbableNodes; - return container.contains(element) || tabbableNodes.find(function(node) { - return node === element; - }); + plugins.forEach(function(p) { + if (p.pluginName === plugin2.pluginName) { + throw "Sortable: Cannot mount plugin ".concat(plugin2.pluginName, " more than once"); + } }); - }; - var getNodeForOption = function getNodeForOption2(optionName) { - var optionValue = config[optionName]; - if (typeof optionValue === "function") { - for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - params[_key2 - 1] = arguments[_key2]; + plugins.push(plugin2); + }, + pluginEvent: function pluginEvent(eventName, sortable, evt) { + var _this = this; + this.eventCanceled = false; + evt.cancel = function() { + _this.eventCanceled = true; + }; + var eventNameGlobal = eventName + "Global"; + plugins.forEach(function(plugin2) { + if (!sortable[plugin2.pluginName]) + return; + if (sortable[plugin2.pluginName][eventNameGlobal]) { + sortable[plugin2.pluginName][eventNameGlobal](_objectSpread22({ + sortable + }, evt)); } - optionValue = optionValue.apply(void 0, params); - } - if (optionValue === true) { - optionValue = void 0; - } - if (!optionValue) { - if (optionValue === void 0 || optionValue === false) { - return optionValue; + if (sortable.options[plugin2.pluginName] && sortable[plugin2.pluginName][eventName]) { + sortable[plugin2.pluginName][eventName](_objectSpread22({ + sortable + }, evt)); + } + }); + }, + initializePlugins: function initializePlugins(sortable, el, defaults2, options) { + plugins.forEach(function(plugin2) { + var pluginName = plugin2.pluginName; + if (!sortable.options[pluginName] && !plugin2.initializeByDefault) + return; + var initialized = new plugin2(sortable, el, sortable.options); + initialized.sortable = sortable; + initialized.options = sortable.options; + sortable[pluginName] = initialized; + _extends(defaults2, initialized.defaults); + }); + for (var option2 in sortable.options) { + if (!sortable.options.hasOwnProperty(option2)) + continue; + var modified = this.modifyOption(sortable, option2, sortable.options[option2]); + if (typeof modified !== "undefined") { + sortable.options[option2] = modified; } - throw new Error("`".concat(optionName, "` was specified but was not a node, or did not return a node")); } - var node = optionValue; - if (typeof optionValue === "string") { - node = doc.querySelector(optionValue); - if (!node) { - throw new Error("`".concat(optionName, "` as selector refers to no known node")); + }, + getEventProperties: function getEventProperties(name, sortable) { + var eventProperties = {}; + plugins.forEach(function(plugin2) { + if (typeof plugin2.eventProperties !== "function") + return; + _extends(eventProperties, plugin2.eventProperties.call(sortable[plugin2.pluginName], name)); + }); + return eventProperties; + }, + modifyOption: function modifyOption(sortable, name, value) { + var modifiedValue; + plugins.forEach(function(plugin2) { + if (!sortable[plugin2.pluginName]) + return; + if (plugin2.optionListeners && typeof plugin2.optionListeners[name] === "function") { + modifiedValue = plugin2.optionListeners[name].call(sortable[plugin2.pluginName], value); } + }); + return modifiedValue; + } + }; + function dispatchEvent2(_ref) { + var sortable = _ref.sortable, rootEl2 = _ref.rootEl, name = _ref.name, targetEl = _ref.targetEl, cloneEl2 = _ref.cloneEl, toEl = _ref.toEl, fromEl = _ref.fromEl, oldIndex2 = _ref.oldIndex, newIndex2 = _ref.newIndex, oldDraggableIndex2 = _ref.oldDraggableIndex, newDraggableIndex2 = _ref.newDraggableIndex, originalEvent = _ref.originalEvent, putSortable2 = _ref.putSortable, extraEventProperties = _ref.extraEventProperties; + sortable = sortable || rootEl2 && rootEl2[expando]; + if (!sortable) + return; + var evt, options = sortable.options, onName = "on" + name.charAt(0).toUpperCase() + name.substr(1); + if (window.CustomEvent && !IE11OrLess && !Edge) { + evt = new CustomEvent(name, { + bubbles: true, + cancelable: true + }); + } else { + evt = document.createEvent("Event"); + evt.initEvent(name, true, true); + } + evt.to = toEl || rootEl2; + evt.from = fromEl || rootEl2; + evt.item = targetEl || rootEl2; + evt.clone = cloneEl2; + evt.oldIndex = oldIndex2; + evt.newIndex = newIndex2; + evt.oldDraggableIndex = oldDraggableIndex2; + evt.newDraggableIndex = newDraggableIndex2; + evt.originalEvent = originalEvent; + evt.pullMode = putSortable2 ? putSortable2.lastPutMode : void 0; + var allEventProperties = _objectSpread22(_objectSpread22({}, extraEventProperties), PluginManager.getEventProperties(name, sortable)); + for (var option2 in allEventProperties) { + evt[option2] = allEventProperties[option2]; + } + if (rootEl2) { + rootEl2.dispatchEvent(evt); + } + if (options[onName]) { + options[onName].call(sortable, evt); + } + } + var _excluded = ["evt"]; + var pluginEvent2 = function pluginEvent3(eventName, sortable) { + var _ref = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, originalEvent = _ref.evt, data2 = _objectWithoutProperties(_ref, _excluded); + PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread22({ + dragEl, + parentEl, + ghostEl, + rootEl, + nextEl, + lastDownEl, + cloneEl, + cloneHidden, + dragStarted: moved, + putSortable, + activeSortable: Sortable.active, + originalEvent, + oldIndex, + oldDraggableIndex, + newIndex, + newDraggableIndex, + hideGhostForTarget: _hideGhostForTarget, + unhideGhostForTarget: _unhideGhostForTarget, + cloneNowHidden: function cloneNowHidden() { + cloneHidden = true; + }, + cloneNowShown: function cloneNowShown() { + cloneHidden = false; + }, + dispatchSortableEvent: function dispatchSortableEvent(name) { + _dispatchEvent({ + sortable, + name, + originalEvent + }); } - return node; - }; - var getInitialFocusNode = function getInitialFocusNode2() { - var node = getNodeForOption("initialFocus"); - if (node === false) { - return false; + }, data2)); + }; + function _dispatchEvent(info) { + dispatchEvent2(_objectSpread22({ + putSortable, + cloneEl, + targetEl: dragEl, + rootEl, + oldIndex, + oldDraggableIndex, + newIndex, + newDraggableIndex + }, info)); + } + var dragEl; + var parentEl; + var ghostEl; + var rootEl; + var nextEl; + var lastDownEl; + var cloneEl; + var cloneHidden; + var oldIndex; + var newIndex; + var oldDraggableIndex; + var newDraggableIndex; + var activeGroup; + var putSortable; + var awaitingDragStarted = false; + var ignoreNextClick = false; + var sortables = []; + var tapEvt; + var touchEvt; + var lastDx; + var lastDy; + var tapDistanceLeft; + var tapDistanceTop; + var moved; + var lastTarget; + var lastDirection; + var pastFirstInvertThresh = false; + var isCircumstantialInvert = false; + var targetMoveDistance; + var ghostRelativeParent; + var ghostRelativeParentInitialScroll = []; + var _silent = false; + var savedInputChecked = []; + var documentExists = typeof document !== "undefined"; + var PositionGhostAbsolutely = IOS; + var CSSFloatProperty = Edge || IE11OrLess ? "cssFloat" : "float"; + var supportDraggable = documentExists && !ChromeForAndroid && !IOS && "draggable" in document.createElement("div"); + var supportCssPointerEvents = function() { + if (!documentExists) + return; + if (IE11OrLess) { + return false; + } + var el = document.createElement("x"); + el.style.cssText = "pointer-events:auto"; + return el.style.pointerEvents === "auto"; + }(); + var _detectDirection = function _detectDirection2(el, options) { + var elCSS = css(el), elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth), child1 = getChild(el, 0, options), child2 = getChild(el, 1, options), firstChildCSS = child1 && css(child1), secondChildCSS = child2 && css(child2), firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width, secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width; + if (elCSS.display === "flex") { + return elCSS.flexDirection === "column" || elCSS.flexDirection === "column-reverse" ? "vertical" : "horizontal"; + } + if (elCSS.display === "grid") { + return elCSS.gridTemplateColumns.split(" ").length <= 1 ? "vertical" : "horizontal"; + } + if (child1 && firstChildCSS["float"] && firstChildCSS["float"] !== "none") { + var touchingSideChild2 = firstChildCSS["float"] === "left" ? "left" : "right"; + return child2 && (secondChildCSS.clear === "both" || secondChildCSS.clear === touchingSideChild2) ? "vertical" : "horizontal"; + } + return child1 && (firstChildCSS.display === "block" || firstChildCSS.display === "flex" || firstChildCSS.display === "table" || firstChildCSS.display === "grid" || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === "none" || child2 && elCSS[CSSFloatProperty] === "none" && firstChildWidth + secondChildWidth > elWidth) ? "vertical" : "horizontal"; + }; + var _dragElInRowColumn = function _dragElInRowColumn2(dragRect, targetRect, vertical) { + var dragElS1Opp = vertical ? dragRect.left : dragRect.top, dragElS2Opp = vertical ? dragRect.right : dragRect.bottom, dragElOppLength = vertical ? dragRect.width : dragRect.height, targetS1Opp = vertical ? targetRect.left : targetRect.top, targetS2Opp = vertical ? targetRect.right : targetRect.bottom, targetOppLength = vertical ? targetRect.width : targetRect.height; + return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2; + }; + var _detectNearestEmptySortable = function _detectNearestEmptySortable2(x, y) { + var ret; + sortables.some(function(sortable) { + var threshold = sortable[expando].options.emptyInsertThreshold; + if (!threshold || lastChild(sortable)) + return; + var rect = getRect(sortable), insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold, insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold; + if (insideHorizontally && insideVertically) { + return ret = sortable; } - if (node === void 0) { - if (findContainerIndex(doc.activeElement) >= 0) { - node = doc.activeElement; + }); + return ret; + }; + var _prepareGroup = function _prepareGroup2(options) { + function toFn(value, pull) { + return function(to, from, dragEl2, evt) { + var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name; + if (value == null && (pull || sameGroup)) { + return true; + } else if (value == null || value === false) { + return false; + } else if (pull && value === "clone") { + return value; + } else if (typeof value === "function") { + return toFn(value(to, from, dragEl2, evt), pull)(to, from, dragEl2, evt); } else { - var firstTabbableGroup = state.tabbableGroups[0]; - var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; - node = firstTabbableNode || getNodeForOption("fallbackFocus"); + var otherGroup = (pull ? to : from).options.group.name; + return value === true || typeof value === "string" && value === otherGroup || value.join && value.indexOf(otherGroup) > -1; } + }; + } + var group = {}; + var originalGroup = options.group; + if (!originalGroup || _typeof(originalGroup) != "object") { + originalGroup = { + name: originalGroup + }; + } + group.name = originalGroup.name; + group.checkPull = toFn(originalGroup.pull, true); + group.checkPut = toFn(originalGroup.put); + group.revertClone = originalGroup.revertClone; + options.group = group; + }; + var _hideGhostForTarget = function _hideGhostForTarget2() { + if (!supportCssPointerEvents && ghostEl) { + css(ghostEl, "display", "none"); + } + }; + var _unhideGhostForTarget = function _unhideGhostForTarget2() { + if (!supportCssPointerEvents && ghostEl) { + css(ghostEl, "display", ""); + } + }; + if (documentExists && !ChromeForAndroid) { + document.addEventListener("click", function(evt) { + if (ignoreNextClick) { + evt.preventDefault(); + evt.stopPropagation && evt.stopPropagation(); + evt.stopImmediatePropagation && evt.stopImmediatePropagation(); + ignoreNextClick = false; + return false; } - if (!node) { - throw new Error("Your focus-trap needs to have at least one focusable element"); - } - return node; - }; - var updateTabbableNodes = function updateTabbableNodes2() { - state.containerGroups = state.containers.map(function(container) { - var tabbableNodes = tabbable(container, config.tabbableOptions); - var focusableNodes = focusable(container, config.tabbableOptions); - return { - container, - tabbableNodes, - focusableNodes, - firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null, - lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null, - nextTabbableNode: function nextTabbableNode(node) { - var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - var nodeIdx = focusableNodes.findIndex(function(n) { - return n === node; - }); - if (nodeIdx < 0) { - return void 0; - } - if (forward) { - return focusableNodes.slice(nodeIdx + 1).find(function(n) { - return isTabbable(n, config.tabbableOptions); - }); - } - return focusableNodes.slice(0, nodeIdx).reverse().find(function(n) { - return isTabbable(n, config.tabbableOptions); - }); + }, true); + } + var nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent2(evt) { + if (dragEl) { + evt = evt.touches ? evt.touches[0] : evt; + var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY); + if (nearest) { + var event = {}; + for (var i in evt) { + if (evt.hasOwnProperty(i)) { + event[i] = evt[i]; } - }; - }); - state.tabbableGroups = state.containerGroups.filter(function(group) { - return group.tabbableNodes.length > 0; - }); - if (state.tabbableGroups.length <= 0 && !getNodeForOption("fallbackFocus")) { - throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times"); + } + event.target = event.rootEl = nearest; + event.preventDefault = void 0; + event.stopPropagation = void 0; + nearest[expando]._onDragOver(event); } + } + }; + var _checkOutsideTargetEl = function _checkOutsideTargetEl2(evt) { + if (dragEl) { + dragEl.parentNode[expando]._isOutsideThisEl(evt.target); + } + }; + function Sortable(el, options) { + if (!(el && el.nodeType && el.nodeType === 1)) { + throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(el)); + } + this.el = el; + this.options = options = _extends({}, options); + el[expando] = this; + var defaults2 = { + group: null, + sort: true, + disabled: false, + store: null, + handle: null, + draggable: /^[uo]l$/i.test(el.nodeName) ? ">li" : ">*", + swapThreshold: 1, + invertSwap: false, + invertedSwapThreshold: null, + removeCloneOnHide: true, + direction: function direction() { + return _detectDirection(el, this.options); + }, + ghostClass: "sortable-ghost", + chosenClass: "sortable-chosen", + dragClass: "sortable-drag", + ignore: "a, img", + filter: null, + preventOnFilter: true, + animation: 0, + easing: null, + setData: function setData(dataTransfer, dragEl2) { + dataTransfer.setData("Text", dragEl2.textContent); + }, + dropBubble: false, + dragoverBubble: false, + dataIdAttr: "data-id", + delay: 0, + delayOnTouchOnly: false, + touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, + forceFallback: false, + fallbackClass: "sortable-fallback", + fallbackOnBody: false, + fallbackTolerance: 0, + fallbackOffset: { + x: 0, + y: 0 + }, + supportPointer: Sortable.supportPointer !== false && "PointerEvent" in window && !Safari, + emptyInsertThreshold: 5 }; - var tryFocus = function tryFocus2(node) { - if (node === false) { - return; + PluginManager.initializePlugins(this, el, defaults2); + for (var name in defaults2) { + !(name in options) && (options[name] = defaults2[name]); + } + _prepareGroup(options); + for (var fn in this) { + if (fn.charAt(0) === "_" && typeof this[fn] === "function") { + this[fn] = this[fn].bind(this); + } + } + this.nativeDraggable = options.forceFallback ? false : supportDraggable; + if (this.nativeDraggable) { + this.options.touchStartThreshold = 1; + } + if (options.supportPointer) { + on4(el, "pointerdown", this._onTapStart); + } else { + on4(el, "mousedown", this._onTapStart); + on4(el, "touchstart", this._onTapStart); + } + if (this.nativeDraggable) { + on4(el, "dragover", this); + on4(el, "dragenter", this); + } + sortables.push(this.el); + options.store && options.store.get && this.sort(options.store.get(this) || []); + _extends(this, AnimationStateManager()); + } + Sortable.prototype = { + constructor: Sortable, + _isOutsideThisEl: function _isOutsideThisEl(target) { + if (!this.el.contains(target) && target !== this.el) { + lastTarget = null; } - if (node === doc.activeElement) { + }, + _getDirection: function _getDirection(evt, target) { + return typeof this.options.direction === "function" ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction; + }, + _onTapStart: function _onTapStart(evt) { + if (!evt.cancelable) + return; + var _this = this, el = this.el, options = this.options, preventOnFilter = options.preventOnFilter, type = evt.type, touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === "touch" && evt, target = (touch || evt).target, originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target, filter = options.filter; + _saveInputCheckedState(el); + if (dragEl) { return; } - if (!node || !node.focus) { - tryFocus2(getInitialFocusNode()); + if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) { return; } - node.focus({ - preventScroll: !!config.preventScroll - }); - state.mostRecentlyFocusedNode = node; - if (isSelectableInput(node)) { - node.select(); + if (originalTarget.isContentEditable) { + return; } - }; - var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) { - var node = getNodeForOption("setReturnFocus", previousActiveElement); - return node ? node : node === false ? false : previousActiveElement; - }; - var checkPointerDown = function checkPointerDown2(e) { - var target = getActualTarget(e); - if (findContainerIndex(target) >= 0) { + if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === "SELECT") { return; } - if (valueOrHandler(config.clickOutsideDeactivates, e)) { - trap.deactivate({ - returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions) - }); + target = closest(target, options.draggable, el, false); + if (target && target.animated) { return; } - if (valueOrHandler(config.allowOutsideClick, e)) { + if (lastDownEl === target) { return; } - e.preventDefault(); - }; - var checkFocusIn = function checkFocusIn2(e) { - var target = getActualTarget(e); - var targetContained = findContainerIndex(target) >= 0; - if (targetContained || target instanceof Document) { - if (targetContained) { - state.mostRecentlyFocusedNode = target; + oldIndex = index(target); + oldDraggableIndex = index(target, options.draggable); + if (typeof filter === "function") { + if (filter.call(this, evt, target, this)) { + _dispatchEvent({ + sortable: _this, + rootEl: originalTarget, + name: "filter", + targetEl: target, + toEl: el, + fromEl: el + }); + pluginEvent2("filter", _this, { + evt + }); + preventOnFilter && evt.cancelable && evt.preventDefault(); + return; } - } else { - e.stopImmediatePropagation(); - tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); - } - }; - var checkTab = function checkTab2(e) { - var target = getActualTarget(e); - updateTabbableNodes(); - var destinationNode = null; - if (state.tabbableGroups.length > 0) { - var containerIndex = findContainerIndex(target); - var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0; - if (containerIndex < 0) { - if (e.shiftKey) { - destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode; - } else { - destinationNode = state.tabbableGroups[0].firstTabbableNode; + } else if (filter) { + filter = filter.split(",").some(function(criteria) { + criteria = closest(originalTarget, criteria.trim(), el, false); + if (criteria) { + _dispatchEvent({ + sortable: _this, + rootEl: criteria, + name: "filter", + targetEl: target, + fromEl: el, + toEl: el + }); + pluginEvent2("filter", _this, { + evt + }); + return true; } - } else if (e.shiftKey) { - var startOfGroupIndex = findIndex(state.tabbableGroups, function(_ref2) { - var firstTabbableNode = _ref2.firstTabbableNode; - return target === firstTabbableNode; + }); + if (filter) { + preventOnFilter && evt.cancelable && evt.preventDefault(); + return; + } + } + if (options.handle && !closest(originalTarget, options.handle, el, false)) { + return; + } + this._prepareDragStart(evt, touch, target); + }, + _prepareDragStart: function _prepareDragStart(evt, touch, target) { + var _this = this, el = _this.el, options = _this.options, ownerDocument = el.ownerDocument, dragStartFn; + if (target && !dragEl && target.parentNode === el) { + var dragRect = getRect(target); + rootEl = el; + dragEl = target; + parentEl = dragEl.parentNode; + nextEl = dragEl.nextSibling; + lastDownEl = target; + activeGroup = options.group; + Sortable.dragged = dragEl; + tapEvt = { + target: dragEl, + clientX: (touch || evt).clientX, + clientY: (touch || evt).clientY + }; + tapDistanceLeft = tapEvt.clientX - dragRect.left; + tapDistanceTop = tapEvt.clientY - dragRect.top; + this._lastX = (touch || evt).clientX; + this._lastY = (touch || evt).clientY; + dragEl.style["will-change"] = "all"; + dragStartFn = function dragStartFn2() { + pluginEvent2("delayEnded", _this, { + evt }); - if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) { - startOfGroupIndex = containerIndex; + if (Sortable.eventCanceled) { + _this._onDrop(); + return; } - if (startOfGroupIndex >= 0) { - var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1; - var destinationGroup = state.tabbableGroups[destinationGroupIndex]; - destinationNode = destinationGroup.lastTabbableNode; + _this._disableDelayedDragEvents(); + if (!FireFox && _this.nativeDraggable) { + dragEl.draggable = true; } - } else { - var lastOfGroupIndex = findIndex(state.tabbableGroups, function(_ref3) { - var lastTabbableNode = _ref3.lastTabbableNode; - return target === lastTabbableNode; + _this._triggerDragStart(evt, touch); + _dispatchEvent({ + sortable: _this, + name: "choose", + originalEvent: evt }); - if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) { - lastOfGroupIndex = containerIndex; - } - if (lastOfGroupIndex >= 0) { - var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1; - var _destinationGroup = state.tabbableGroups[_destinationGroupIndex]; - destinationNode = _destinationGroup.firstTabbableNode; + toggleClass(dragEl, options.chosenClass, true); + }; + options.ignore.split(",").forEach(function(criteria) { + find2(dragEl, criteria.trim(), _disableDraggable); + }); + on4(ownerDocument, "dragover", nearestEmptyInsertDetectEvent); + on4(ownerDocument, "mousemove", nearestEmptyInsertDetectEvent); + on4(ownerDocument, "touchmove", nearestEmptyInsertDetectEvent); + on4(ownerDocument, "mouseup", _this._onDrop); + on4(ownerDocument, "touchend", _this._onDrop); + on4(ownerDocument, "touchcancel", _this._onDrop); + if (FireFox && this.nativeDraggable) { + this.options.touchStartThreshold = 4; + dragEl.draggable = true; + } + pluginEvent2("delayStart", this, { + evt + }); + if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) { + if (Sortable.eventCanceled) { + this._onDrop(); + return; } + on4(ownerDocument, "mouseup", _this._disableDelayedDrag); + on4(ownerDocument, "touchend", _this._disableDelayedDrag); + on4(ownerDocument, "touchcancel", _this._disableDelayedDrag); + on4(ownerDocument, "mousemove", _this._delayedDragTouchMoveHandler); + on4(ownerDocument, "touchmove", _this._delayedDragTouchMoveHandler); + options.supportPointer && on4(ownerDocument, "pointermove", _this._delayedDragTouchMoveHandler); + _this._dragStartTimer = setTimeout(dragStartFn, options.delay); + } else { + dragStartFn(); } - } else { - destinationNode = getNodeForOption("fallbackFocus"); } - if (destinationNode) { - e.preventDefault(); - tryFocus(destinationNode); + }, + _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(e) { + var touch = e.touches ? e.touches[0] : e; + if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) { + this._disableDelayedDrag(); } - }; - var checkKey = function checkKey2(e) { - if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) { - e.preventDefault(); - trap.deactivate(); - return; + }, + _disableDelayedDrag: function _disableDelayedDrag() { + dragEl && _disableDraggable(dragEl); + clearTimeout(this._dragStartTimer); + this._disableDelayedDragEvents(); + }, + _disableDelayedDragEvents: function _disableDelayedDragEvents() { + var ownerDocument = this.el.ownerDocument; + off(ownerDocument, "mouseup", this._disableDelayedDrag); + off(ownerDocument, "touchend", this._disableDelayedDrag); + off(ownerDocument, "touchcancel", this._disableDelayedDrag); + off(ownerDocument, "mousemove", this._delayedDragTouchMoveHandler); + off(ownerDocument, "touchmove", this._delayedDragTouchMoveHandler); + off(ownerDocument, "pointermove", this._delayedDragTouchMoveHandler); + }, + _triggerDragStart: function _triggerDragStart(evt, touch) { + touch = touch || evt.pointerType == "touch" && evt; + if (!this.nativeDraggable || touch) { + if (this.options.supportPointer) { + on4(document, "pointermove", this._onTouchMove); + } else if (touch) { + on4(document, "touchmove", this._onTouchMove); + } else { + on4(document, "mousemove", this._onTouchMove); + } + } else { + on4(dragEl, "dragend", this); + on4(rootEl, "dragstart", this._onDragStart); } - if (isTabEvent(e)) { - checkTab(e); - return; + try { + if (document.selection) { + _nextTick(function() { + document.selection.empty(); + }); + } else { + window.getSelection().removeAllRanges(); + } + } catch (err) { } - }; - var checkClick = function checkClick2(e) { - var target = getActualTarget(e); - if (findContainerIndex(target) >= 0) { - return; + }, + _dragStarted: function _dragStarted(fallback2, evt) { + awaitingDragStarted = false; + if (rootEl && dragEl) { + pluginEvent2("dragStarted", this, { + evt + }); + if (this.nativeDraggable) { + on4(document, "dragover", _checkOutsideTargetEl); + } + var options = this.options; + !fallback2 && toggleClass(dragEl, options.dragClass, false); + toggleClass(dragEl, options.ghostClass, true); + Sortable.active = this; + fallback2 && this._appendGhost(); + _dispatchEvent({ + sortable: this, + name: "start", + originalEvent: evt + }); + } else { + this._nulling(); } - if (valueOrHandler(config.clickOutsideDeactivates, e)) { - return; + }, + _emulateDragOver: function _emulateDragOver() { + if (touchEvt) { + this._lastX = touchEvt.clientX; + this._lastY = touchEvt.clientY; + _hideGhostForTarget(); + var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY); + var parent = target; + while (target && target.shadowRoot) { + target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY); + if (target === parent) + break; + parent = target; + } + dragEl.parentNode[expando]._isOutsideThisEl(target); + if (parent) { + do { + if (parent[expando]) { + var inserted = void 0; + inserted = parent[expando]._onDragOver({ + clientX: touchEvt.clientX, + clientY: touchEvt.clientY, + target, + rootEl: parent + }); + if (inserted && !this.options.dragoverBubble) { + break; + } + } + target = parent; + } while (parent = parent.parentNode); + } + _unhideGhostForTarget(); } - if (valueOrHandler(config.allowOutsideClick, e)) { - return; + }, + _onTouchMove: function _onTouchMove(evt) { + if (tapEvt) { + var options = this.options, fallbackTolerance = options.fallbackTolerance, fallbackOffset = options.fallbackOffset, touch = evt.touches ? evt.touches[0] : evt, ghostMatrix = ghostEl && matrix(ghostEl, true), scaleX = ghostEl && ghostMatrix && ghostMatrix.a, scaleY = ghostEl && ghostMatrix && ghostMatrix.d, relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent), dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1), dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); + if (!Sortable.active && !awaitingDragStarted) { + if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) { + return; + } + this._onDragStart(evt, true); + } + if (ghostEl) { + if (ghostMatrix) { + ghostMatrix.e += dx - (lastDx || 0); + ghostMatrix.f += dy - (lastDy || 0); + } else { + ghostMatrix = { + a: 1, + b: 0, + c: 0, + d: 1, + e: dx, + f: dy + }; + } + var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")"); + css(ghostEl, "webkitTransform", cssMatrix); + css(ghostEl, "mozTransform", cssMatrix); + css(ghostEl, "msTransform", cssMatrix); + css(ghostEl, "transform", cssMatrix); + lastDx = dx; + lastDy = dy; + touchEvt = touch; + } + evt.cancelable && evt.preventDefault(); } - e.preventDefault(); - e.stopImmediatePropagation(); - }; - var addListeners = function addListeners2() { - if (!state.active) { - return; + }, + _appendGhost: function _appendGhost() { + if (!ghostEl) { + var container = this.options.fallbackOnBody ? document.body : rootEl, rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container), options = this.options; + if (PositionGhostAbsolutely) { + ghostRelativeParent = container; + while (css(ghostRelativeParent, "position") === "static" && css(ghostRelativeParent, "transform") === "none" && ghostRelativeParent !== document) { + ghostRelativeParent = ghostRelativeParent.parentNode; + } + if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) { + if (ghostRelativeParent === document) + ghostRelativeParent = getWindowScrollingElement(); + rect.top += ghostRelativeParent.scrollTop; + rect.left += ghostRelativeParent.scrollLeft; + } else { + ghostRelativeParent = getWindowScrollingElement(); + } + ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent); + } + ghostEl = dragEl.cloneNode(true); + toggleClass(ghostEl, options.ghostClass, false); + toggleClass(ghostEl, options.fallbackClass, true); + toggleClass(ghostEl, options.dragClass, true); + css(ghostEl, "transition", ""); + css(ghostEl, "transform", ""); + css(ghostEl, "box-sizing", "border-box"); + css(ghostEl, "margin", 0); + css(ghostEl, "top", rect.top); + css(ghostEl, "left", rect.left); + css(ghostEl, "width", rect.width); + css(ghostEl, "height", rect.height); + css(ghostEl, "opacity", "0.8"); + css(ghostEl, "position", PositionGhostAbsolutely ? "absolute" : "fixed"); + css(ghostEl, "zIndex", "100000"); + css(ghostEl, "pointerEvents", "none"); + Sortable.ghost = ghostEl; + container.appendChild(ghostEl); + css(ghostEl, "transform-origin", tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + "% " + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + "%"); } - activeFocusTraps.activateTrap(trap); - state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function() { - tryFocus(getInitialFocusNode()); - }) : tryFocus(getInitialFocusNode()); - doc.addEventListener("focusin", checkFocusIn, true); - doc.addEventListener("mousedown", checkPointerDown, { - capture: true, - passive: false - }); - doc.addEventListener("touchstart", checkPointerDown, { - capture: true, - passive: false - }); - doc.addEventListener("click", checkClick, { - capture: true, - passive: false - }); - doc.addEventListener("keydown", checkKey, { - capture: true, - passive: false + }, + _onDragStart: function _onDragStart(evt, fallback2) { + var _this = this; + var dataTransfer = evt.dataTransfer; + var options = _this.options; + pluginEvent2("dragStart", this, { + evt }); - return trap; - }; - var removeListeners = function removeListeners2() { - if (!state.active) { + if (Sortable.eventCanceled) { + this._onDrop(); + return; + } + pluginEvent2("setupClone", this); + if (!Sortable.eventCanceled) { + cloneEl = clone2(dragEl); + cloneEl.removeAttribute("id"); + cloneEl.draggable = false; + cloneEl.style["will-change"] = ""; + this._hideClone(); + toggleClass(cloneEl, this.options.chosenClass, false); + Sortable.clone = cloneEl; + } + _this.cloneId = _nextTick(function() { + pluginEvent2("clone", _this); + if (Sortable.eventCanceled) + return; + if (!_this.options.removeCloneOnHide) { + rootEl.insertBefore(cloneEl, dragEl); + } + _this._hideClone(); + _dispatchEvent({ + sortable: _this, + name: "clone" + }); + }); + !fallback2 && toggleClass(dragEl, options.dragClass, true); + if (fallback2) { + ignoreNextClick = true; + _this._loopId = setInterval(_this._emulateDragOver, 50); + } else { + off(document, "mouseup", _this._onDrop); + off(document, "touchend", _this._onDrop); + off(document, "touchcancel", _this._onDrop); + if (dataTransfer) { + dataTransfer.effectAllowed = "move"; + options.setData && options.setData.call(_this, dataTransfer, dragEl); + } + on4(document, "drop", _this); + css(dragEl, "transform", "translateZ(0)"); + } + awaitingDragStarted = true; + _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback2, evt)); + on4(document, "selectstart", _this); + moved = true; + if (Safari) { + css(document.body, "user-select", "none"); + } + }, + _onDragOver: function _onDragOver(evt) { + var el = this.el, target = evt.target, dragRect, targetRect, revert, options = this.options, group = options.group, activeSortable = Sortable.active, isOwner = activeGroup === group, canSort = options.sort, fromSortable = putSortable || activeSortable, vertical, _this = this, completedFired = false; + if (_silent) return; + function dragOverEvent(name, extra) { + pluginEvent2(name, _this, _objectSpread22({ + evt, + isOwner, + axis: vertical ? "vertical" : "horizontal", + revert, + dragRect, + targetRect, + canSort, + fromSortable, + target, + completed, + onMove: function onMove(target2, after2) { + return _onMove(rootEl, el, dragEl, dragRect, target2, getRect(target2), evt, after2); + }, + changed + }, extra)); + } + function capture() { + dragOverEvent("dragOverAnimationCapture"); + _this.captureAnimationState(); + if (_this !== fromSortable) { + fromSortable.captureAnimationState(); + } } - doc.removeEventListener("focusin", checkFocusIn, true); - doc.removeEventListener("mousedown", checkPointerDown, true); - doc.removeEventListener("touchstart", checkPointerDown, true); - doc.removeEventListener("click", checkClick, true); - doc.removeEventListener("keydown", checkKey, true); - return trap; - }; - trap = { - get active() { - return state.active; - }, - get paused() { - return state.paused; - }, - activate: function activate(activateOptions) { - if (state.active) { - return this; + function completed(insertion) { + dragOverEvent("dragOverCompleted", { + insertion + }); + if (insertion) { + if (isOwner) { + activeSortable._hideClone(); + } else { + activeSortable._showClone(_this); + } + if (_this !== fromSortable) { + toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false); + toggleClass(dragEl, options.ghostClass, true); + } + if (putSortable !== _this && _this !== Sortable.active) { + putSortable = _this; + } else if (_this === Sortable.active && putSortable) { + putSortable = null; + } + if (fromSortable === _this) { + _this._ignoreWhileAnimating = target; + } + _this.animateAll(function() { + dragOverEvent("dragOverAnimationComplete"); + _this._ignoreWhileAnimating = null; + }); + if (_this !== fromSortable) { + fromSortable.animateAll(); + fromSortable._ignoreWhileAnimating = null; + } } - var onActivate = getOption(activateOptions, "onActivate"); - var onPostActivate = getOption(activateOptions, "onPostActivate"); - var checkCanFocusTrap = getOption(activateOptions, "checkCanFocusTrap"); - if (!checkCanFocusTrap) { - updateTabbableNodes(); + if (target === dragEl && !dragEl.animated || target === el && !target.animated) { + lastTarget = null; } - state.active = true; - state.paused = false; - state.nodeFocusedBeforeActivation = doc.activeElement; - if (onActivate) { - onActivate(); + if (!options.dragoverBubble && !evt.rootEl && target !== document) { + dragEl.parentNode[expando]._isOutsideThisEl(evt.target); + !insertion && nearestEmptyInsertDetectEvent(evt); } - var finishActivation = function finishActivation2() { - if (checkCanFocusTrap) { - updateTabbableNodes(); + !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation(); + return completedFired = true; + } + function changed() { + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + _dispatchEvent({ + sortable: _this, + name: "change", + toEl: el, + newIndex, + newDraggableIndex, + originalEvent: evt + }); + } + if (evt.preventDefault !== void 0) { + evt.cancelable && evt.preventDefault(); + } + target = closest(target, options.draggable, el, true); + dragOverEvent("dragOver"); + if (Sortable.eventCanceled) + return completedFired; + if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) { + return completed(false); + } + ignoreNextClick = false; + if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) { + vertical = this._getDirection(evt, target) === "vertical"; + dragRect = getRect(dragEl); + dragOverEvent("dragOverValid"); + if (Sortable.eventCanceled) + return completedFired; + if (revert) { + parentEl = rootEl; + capture(); + this._hideClone(); + dragOverEvent("revert"); + if (!Sortable.eventCanceled) { + if (nextEl) { + rootEl.insertBefore(dragEl, nextEl); + } else { + rootEl.appendChild(dragEl); + } } - addListeners(); - if (onPostActivate) { - onPostActivate(); + return completed(true); + } + var elLastChild = lastChild(el, options.draggable); + if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) { + if (elLastChild === dragEl) { + return completed(false); + } + if (elLastChild && el === evt.target) { + target = elLastChild; + } + if (target) { + targetRect = getRect(target); + } + if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) { + capture(); + if (elLastChild && elLastChild.nextSibling) { + el.insertBefore(dragEl, elLastChild.nextSibling); + } else { + el.appendChild(dragEl); + } + parentEl = el; + changed(); + return completed(true); + } + } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) { + var firstChild = getChild(el, 0, options, true); + if (firstChild === dragEl) { + return completed(false); + } + target = firstChild; + targetRect = getRect(target); + if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) { + capture(); + el.insertBefore(dragEl, firstChild); + parentEl = el; + changed(); + return completed(true); + } + } else if (target.parentNode === el) { + targetRect = getRect(target); + var direction = 0, targetBeforeFirstSwap, differentLevel = dragEl.parentNode !== el, differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical), side1 = vertical ? "top" : "left", scrolledPastTop = isScrolledPast(target, "top", "top") || isScrolledPast(dragEl, "top", "top"), scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0; + if (lastTarget !== target) { + targetBeforeFirstSwap = targetRect[side1]; + pastFirstInvertThresh = false; + isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel; + } + direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target); + var sibling; + if (direction !== 0) { + var dragIndex = index(dragEl); + do { + dragIndex -= direction; + sibling = parentEl.children[dragIndex]; + } while (sibling && (css(sibling, "display") === "none" || sibling === ghostEl)); + } + if (direction === 0 || sibling === target) { + return completed(false); + } + lastTarget = target; + lastDirection = direction; + var nextSibling = target.nextElementSibling, after = false; + after = direction === 1; + var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after); + if (moveVector !== false) { + if (moveVector === 1 || moveVector === -1) { + after = moveVector === 1; + } + _silent = true; + setTimeout(_unsilent, 30); + capture(); + if (after && !nextSibling) { + el.appendChild(dragEl); + } else { + target.parentNode.insertBefore(dragEl, after ? nextSibling : target); + } + if (scrolledPastTop) { + scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop); + } + parentEl = dragEl.parentNode; + if (targetBeforeFirstSwap !== void 0 && !isCircumstantialInvert) { + targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]); + } + changed(); + return completed(true); } - }; - if (checkCanFocusTrap) { - checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation); - return this; } - finishActivation(); - return this; - }, - deactivate: function deactivate(deactivateOptions) { - if (!state.active) { - return this; + if (el.contains(dragEl)) { + return completed(false); } - var options = _objectSpread2({ - onDeactivate: config.onDeactivate, - onPostDeactivate: config.onPostDeactivate, - checkCanReturnFocus: config.checkCanReturnFocus - }, deactivateOptions); - clearTimeout(state.delayInitialFocusTimer); - state.delayInitialFocusTimer = void 0; - removeListeners(); - state.active = false; - state.paused = false; - activeFocusTraps.deactivateTrap(trap); - var onDeactivate = getOption(options, "onDeactivate"); - var onPostDeactivate = getOption(options, "onPostDeactivate"); - var checkCanReturnFocus = getOption(options, "checkCanReturnFocus"); - var returnFocus = getOption(options, "returnFocus", "returnFocusOnDeactivate"); - if (onDeactivate) { - onDeactivate(); + } + return false; + }, + _ignoreWhileAnimating: null, + _offMoveEvents: function _offMoveEvents() { + off(document, "mousemove", this._onTouchMove); + off(document, "touchmove", this._onTouchMove); + off(document, "pointermove", this._onTouchMove); + off(document, "dragover", nearestEmptyInsertDetectEvent); + off(document, "mousemove", nearestEmptyInsertDetectEvent); + off(document, "touchmove", nearestEmptyInsertDetectEvent); + }, + _offUpEvents: function _offUpEvents() { + var ownerDocument = this.el.ownerDocument; + off(ownerDocument, "mouseup", this._onDrop); + off(ownerDocument, "touchend", this._onDrop); + off(ownerDocument, "pointerup", this._onDrop); + off(ownerDocument, "touchcancel", this._onDrop); + off(document, "selectstart", this); + }, + _onDrop: function _onDrop(evt) { + var el = this.el, options = this.options; + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + pluginEvent2("drop", this, { + evt + }); + parentEl = dragEl && dragEl.parentNode; + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + if (Sortable.eventCanceled) { + this._nulling(); + return; + } + awaitingDragStarted = false; + isCircumstantialInvert = false; + pastFirstInvertThresh = false; + clearInterval(this._loopId); + clearTimeout(this._dragStartTimer); + _cancelNextTick(this.cloneId); + _cancelNextTick(this._dragStartId); + if (this.nativeDraggable) { + off(document, "drop", this); + off(el, "dragstart", this._onDragStart); + } + this._offMoveEvents(); + this._offUpEvents(); + if (Safari) { + css(document.body, "user-select", ""); + } + css(dragEl, "transform", ""); + if (evt) { + if (moved) { + evt.cancelable && evt.preventDefault(); + !options.dropBubble && evt.stopPropagation(); } - var finishDeactivation = function finishDeactivation2() { - delay(function() { - if (returnFocus) { - tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)); + ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl); + if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== "clone") { + cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl); + } + if (dragEl) { + if (this.nativeDraggable) { + off(dragEl, "dragend", this); + } + _disableDraggable(dragEl); + dragEl.style["will-change"] = ""; + if (moved && !awaitingDragStarted) { + toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false); + } + toggleClass(dragEl, this.options.chosenClass, false); + _dispatchEvent({ + sortable: this, + name: "unchoose", + toEl: parentEl, + newIndex: null, + newDraggableIndex: null, + originalEvent: evt + }); + if (rootEl !== parentEl) { + if (newIndex >= 0) { + _dispatchEvent({ + rootEl: parentEl, + name: "add", + toEl: parentEl, + fromEl: rootEl, + originalEvent: evt + }); + _dispatchEvent({ + sortable: this, + name: "remove", + toEl: parentEl, + originalEvent: evt + }); + _dispatchEvent({ + rootEl: parentEl, + name: "sort", + toEl: parentEl, + fromEl: rootEl, + originalEvent: evt + }); + _dispatchEvent({ + sortable: this, + name: "sort", + toEl: parentEl, + originalEvent: evt + }); } - if (onPostDeactivate) { - onPostDeactivate(); + putSortable && putSortable.save(); + } else { + if (newIndex !== oldIndex) { + if (newIndex >= 0) { + _dispatchEvent({ + sortable: this, + name: "update", + toEl: parentEl, + originalEvent: evt + }); + _dispatchEvent({ + sortable: this, + name: "sort", + toEl: parentEl, + originalEvent: evt + }); + } } - }); - }; - if (returnFocus && checkCanReturnFocus) { - checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation); - return this; + } + if (Sortable.active) { + if (newIndex == null || newIndex === -1) { + newIndex = oldIndex; + newDraggableIndex = oldDraggableIndex; + } + _dispatchEvent({ + sortable: this, + name: "end", + toEl: parentEl, + originalEvent: evt + }); + this.save(); + } } - finishDeactivation(); - return this; - }, - pause: function pause() { - if (state.paused || !state.active) { - return this; + } + this._nulling(); + }, + _nulling: function _nulling() { + pluginEvent2("nulling", this); + rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null; + savedInputChecked.forEach(function(el) { + el.checked = true; + }); + savedInputChecked.length = lastDx = lastDy = 0; + }, + handleEvent: function handleEvent(evt) { + switch (evt.type) { + case "drop": + case "dragend": + this._onDrop(evt); + break; + case "dragenter": + case "dragover": + if (dragEl) { + this._onDragOver(evt); + _globalDragOver(evt); + } + break; + case "selectstart": + evt.preventDefault(); + break; + } + }, + toArray: function toArray() { + var order = [], el, children = this.el.children, i = 0, n = children.length, options = this.options; + for (; i < n; i++) { + el = children[i]; + if (closest(el, options.draggable, this.el, false)) { + order.push(el.getAttribute(options.dataIdAttr) || _generateId(el)); } - state.paused = true; - removeListeners(); - return this; - }, - unpause: function unpause() { - if (!state.paused || !state.active) { - return this; + } + return order; + }, + sort: function sort(order, useAnimation) { + var items = {}, rootEl2 = this.el; + this.toArray().forEach(function(id, i) { + var el = rootEl2.children[i]; + if (closest(el, this.options.draggable, rootEl2, false)) { + items[id] = el; } - state.paused = false; - updateTabbableNodes(); - addListeners(); - return this; - }, - updateContainerElements: function updateContainerElements(containerElements) { - var elementsAsArray = [].concat(containerElements).filter(Boolean); - state.containers = elementsAsArray.map(function(element) { - return typeof element === "string" ? doc.querySelector(element) : element; - }); - if (state.active) { - updateTabbableNodes(); + }, this); + useAnimation && this.captureAnimationState(); + order.forEach(function(id) { + if (items[id]) { + rootEl2.removeChild(items[id]); + rootEl2.appendChild(items[id]); + } + }); + useAnimation && this.animateAll(); + }, + save: function save() { + var store2 = this.options.store; + store2 && store2.set && store2.set(this); + }, + closest: function closest$1(el, selector) { + return closest(el, selector || this.options.draggable, this.el, false); + }, + option: function option(name, value) { + var options = this.options; + if (value === void 0) { + return options[name]; + } else { + var modifiedValue = PluginManager.modifyOption(this, name, value); + if (typeof modifiedValue !== "undefined") { + options[name] = modifiedValue; + } else { + options[name] = value; + } + if (name === "group") { + _prepareGroup(options); } - return this; } - }; - trap.updateContainerElements(elements); - return trap; + }, + destroy: function destroy() { + pluginEvent2("destroy", this); + var el = this.el; + el[expando] = null; + off(el, "mousedown", this._onTapStart); + off(el, "touchstart", this._onTapStart); + off(el, "pointerdown", this._onTapStart); + if (this.nativeDraggable) { + off(el, "dragover", this); + off(el, "dragenter", this); + } + Array.prototype.forEach.call(el.querySelectorAll("[draggable]"), function(el2) { + el2.removeAttribute("draggable"); + }); + this._onDrop(); + this._disableDelayedDragEvents(); + sortables.splice(sortables.indexOf(this.el), 1); + this.el = el = null; + }, + _hideClone: function _hideClone() { + if (!cloneHidden) { + pluginEvent2("hideClone", this); + if (Sortable.eventCanceled) + return; + css(cloneEl, "display", "none"); + if (this.options.removeCloneOnHide && cloneEl.parentNode) { + cloneEl.parentNode.removeChild(cloneEl); + } + cloneHidden = true; + } + }, + _showClone: function _showClone(putSortable2) { + if (putSortable2.lastPutMode !== "clone") { + this._hideClone(); + return; + } + if (cloneHidden) { + pluginEvent2("showClone", this); + if (Sortable.eventCanceled) + return; + if (dragEl.parentNode == rootEl && !this.options.group.revertClone) { + rootEl.insertBefore(cloneEl, dragEl); + } else if (nextEl) { + rootEl.insertBefore(cloneEl, nextEl); + } else { + rootEl.appendChild(cloneEl); + } + if (this.options.group.revertClone) { + this.animate(dragEl, cloneEl); + } + css(cloneEl, "display", ""); + cloneHidden = false; + } + } }; - function src_default3(Alpine3) { - let lastFocused; - let currentFocused; - window.addEventListener("focusin", () => { - lastFocused = currentFocused; - currentFocused = document.activeElement; - }); - Alpine3.magic("focus", (el) => { - let within = el; - return { - __noscroll: false, - __wrapAround: false, - within(el2) { - within = el2; - return this; - }, - withoutScrolling() { - this.__noscroll = true; - return this; - }, - noscroll() { - this.__noscroll = true; - return this; - }, - withWrapAround() { - this.__wrapAround = true; - return this; - }, - wrap() { - return this.withWrapAround(); - }, - focusable(el2) { - return isFocusable(el2); - }, - previouslyFocused() { - return lastFocused; - }, - lastFocused() { - return lastFocused; - }, - focused() { - return currentFocused; - }, - focusables() { - if (Array.isArray(within)) - return within; - return focusable(within, { displayCheck: "none" }); - }, - all() { - return this.focusables(); - }, - isFirst(el2) { - let els2 = this.all(); - return els2[0] && els2[0].isSameNode(el2); - }, - isLast(el2) { - let els2 = this.all(); - return els2.length && els2.slice(-1)[0].isSameNode(el2); - }, - getFirst() { - return this.all()[0]; - }, - getLast() { - return this.all().slice(-1)[0]; - }, - getNext() { - let list = this.all(); - let current = document.activeElement; - if (list.indexOf(current) === -1) - return; - if (this.__wrapAround && list.indexOf(current) === list.length - 1) { - return list[0]; - } - return list[list.indexOf(current) + 1]; - }, - getPrevious() { - let list = this.all(); - let current = document.activeElement; - if (list.indexOf(current) === -1) - return; - if (this.__wrapAround && list.indexOf(current) === 0) { - return list.slice(-1)[0]; + function _globalDragOver(evt) { + if (evt.dataTransfer) { + evt.dataTransfer.dropEffect = "move"; + } + evt.cancelable && evt.preventDefault(); + } + function _onMove(fromEl, toEl, dragEl2, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) { + var evt, sortable = fromEl[expando], onMoveFn = sortable.options.onMove, retVal; + if (window.CustomEvent && !IE11OrLess && !Edge) { + evt = new CustomEvent("move", { + bubbles: true, + cancelable: true + }); + } else { + evt = document.createEvent("Event"); + evt.initEvent("move", true, true); + } + evt.to = toEl; + evt.from = fromEl; + evt.dragged = dragEl2; + evt.draggedRect = dragRect; + evt.related = targetEl || toEl; + evt.relatedRect = targetRect || getRect(toEl); + evt.willInsertAfter = willInsertAfter; + evt.originalEvent = originalEvent; + fromEl.dispatchEvent(evt); + if (onMoveFn) { + retVal = onMoveFn.call(sortable, evt, originalEvent); + } + return retVal; + } + function _disableDraggable(el) { + el.draggable = false; + } + function _unsilent() { + _silent = false; + } + function _ghostIsFirst(evt, vertical, sortable) { + var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true)); + var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl); + var spacer = 10; + return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left; + } + function _ghostIsLast(evt, vertical, sortable) { + var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable)); + var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl); + var spacer = 10; + return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top; + } + function _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) { + var mouseOnAxis = vertical ? evt.clientY : evt.clientX, targetLength = vertical ? targetRect.height : targetRect.width, targetS1 = vertical ? targetRect.top : targetRect.left, targetS2 = vertical ? targetRect.bottom : targetRect.right, invert = false; + if (!invertSwap) { + if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) { + if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) { + pastFirstInvertThresh = true; + } + if (!pastFirstInvertThresh) { + if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance : mouseOnAxis > targetS2 - targetMoveDistance) { + return -lastDirection; } - return list[list.indexOf(current) - 1]; - }, - first() { - this.focus(this.getFirst()); - }, - last() { - this.focus(this.getLast()); - }, - next() { - this.focus(this.getNext()); - }, - previous() { - this.focus(this.getPrevious()); - }, - prev() { - return this.previous(); - }, - focus(el2) { - if (!el2) - return; - setTimeout(() => { - if (!el2.hasAttribute("tabindex")) - el2.setAttribute("tabindex", "0"); - el2.focus({ preventScroll: this.__noscroll }); - }); + } else { + invert = true; } - }; - }); - Alpine3.directive("trap", Alpine3.skipDuringClone((el, { expression, modifiers }, { effect: effect3, evaluateLater: evaluateLater2, cleanup: cleanup2 }) => { - let evaluator = evaluateLater2(expression); - let oldValue = false; - let options = { - escapeDeactivates: false, - allowOutsideClick: true, - fallbackFocus: () => el - }; - if (modifiers.includes("noautofocus")) { - options.initialFocus = false; } else { - let autofocusEl = el.querySelector("[autofocus]"); - if (autofocusEl) - options.initialFocus = autofocusEl; + if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) { + return _getInsertDirection(target); + } } - let trap = createFocusTrap(el, options); - let undoInert = () => { - }; - let undoDisableScrolling = () => { - }; - const releaseFocus = () => { - undoInert(); - undoInert = () => { - }; - undoDisableScrolling(); - undoDisableScrolling = () => { - }; - trap.deactivate({ - returnFocus: !modifiers.includes("noreturn") - }); + } + invert = invert || invertSwap; + if (invert) { + if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) { + return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1; + } + } + return 0; + } + function _getInsertDirection(target) { + if (index(dragEl) < index(target)) { + return 1; + } else { + return -1; + } + } + function _generateId(el) { + var str = el.tagName + el.className + el.src + el.href + el.textContent, i = str.length, sum = 0; + while (i--) { + sum += str.charCodeAt(i); + } + return sum.toString(36); + } + function _saveInputCheckedState(root) { + savedInputChecked.length = 0; + var inputs = root.getElementsByTagName("input"); + var idx = inputs.length; + while (idx--) { + var el = inputs[idx]; + el.checked && savedInputChecked.push(el); + } + } + function _nextTick(fn) { + return setTimeout(fn, 0); + } + function _cancelNextTick(id) { + return clearTimeout(id); + } + if (documentExists) { + on4(document, "touchmove", function(evt) { + if ((Sortable.active || awaitingDragStarted) && evt.cancelable) { + evt.preventDefault(); + } + }); + } + Sortable.utils = { + on: on4, + off, + css, + find: find2, + is: function is(el, selector) { + return !!closest(el, selector, el, false); + }, + extend, + throttle: throttle2, + closest, + toggleClass, + clone: clone2, + index, + nextTick: _nextTick, + cancelNextTick: _cancelNextTick, + detectDirection: _detectDirection, + getChild + }; + Sortable.get = function(element) { + return element[expando]; + }; + Sortable.mount = function() { + for (var _len = arguments.length, plugins2 = new Array(_len), _key = 0; _key < _len; _key++) { + plugins2[_key] = arguments[_key]; + } + if (plugins2[0].constructor === Array) + plugins2 = plugins2[0]; + plugins2.forEach(function(plugin2) { + if (!plugin2.prototype || !plugin2.prototype.constructor) { + throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(plugin2)); + } + if (plugin2.utils) + Sortable.utils = _objectSpread22(_objectSpread22({}, Sortable.utils), plugin2.utils); + PluginManager.mount(plugin2); + }); + }; + Sortable.create = function(el, options) { + return new Sortable(el, options); + }; + Sortable.version = version; + var autoScrolls = []; + var scrollEl; + var scrollRootEl; + var scrolling = false; + var lastAutoScrollX; + var lastAutoScrollY; + var touchEvt$1; + var pointerElemChangedInterval; + function AutoScrollPlugin() { + function AutoScroll() { + this.defaults = { + scroll: true, + forceAutoScrollFallback: false, + scrollSensitivity: 30, + scrollSpeed: 10, + bubbleScroll: true }; - effect3(() => evaluator((value) => { - if (oldValue === value) - return; - if (value && !oldValue) { - if (modifiers.includes("noscroll")) - undoDisableScrolling = disableScrolling(); - if (modifiers.includes("inert")) - undoInert = setInert(el); - setTimeout(() => { - trap.activate(); - }, 15); + for (var fn in this) { + if (fn.charAt(0) === "_" && typeof this[fn] === "function") { + this[fn] = this[fn].bind(this); + } + } + } + AutoScroll.prototype = { + dragStarted: function dragStarted(_ref) { + var originalEvent = _ref.originalEvent; + if (this.sortable.nativeDraggable) { + on4(document, "dragover", this._handleAutoScroll); + } else { + if (this.options.supportPointer) { + on4(document, "pointermove", this._handleFallbackAutoScroll); + } else if (originalEvent.touches) { + on4(document, "touchmove", this._handleFallbackAutoScroll); + } else { + on4(document, "mousemove", this._handleFallbackAutoScroll); + } } - if (!value && oldValue) { - releaseFocus(); + }, + dragOverCompleted: function dragOverCompleted(_ref2) { + var originalEvent = _ref2.originalEvent; + if (!this.options.dragOverBubble && !originalEvent.rootEl) { + this._handleAutoScroll(originalEvent); } - oldValue = !!value; - })); - cleanup2(releaseFocus); - }, (el, { expression, modifiers }, { evaluate: evaluate3 }) => { - if (modifiers.includes("inert") && evaluate3(expression)) - setInert(el); - })); + }, + drop: function drop3() { + if (this.sortable.nativeDraggable) { + off(document, "dragover", this._handleAutoScroll); + } else { + off(document, "pointermove", this._handleFallbackAutoScroll); + off(document, "touchmove", this._handleFallbackAutoScroll); + off(document, "mousemove", this._handleFallbackAutoScroll); + } + clearPointerElemChangedInterval(); + clearAutoScrolls(); + cancelThrottle(); + }, + nulling: function nulling() { + touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null; + autoScrolls.length = 0; + }, + _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) { + this._handleAutoScroll(evt, true); + }, + _handleAutoScroll: function _handleAutoScroll(evt, fallback2) { + var _this = this; + var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, elem = document.elementFromPoint(x, y); + touchEvt$1 = evt; + if (fallback2 || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) { + autoScroll(evt, this.options, elem, fallback2); + var ogElemScroller = getParentAutoScrollElement(elem, true); + if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) { + pointerElemChangedInterval && clearPointerElemChangedInterval(); + pointerElemChangedInterval = setInterval(function() { + var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true); + if (newElem !== ogElemScroller) { + ogElemScroller = newElem; + clearAutoScrolls(); + } + autoScroll(evt, _this.options, newElem, fallback2); + }, 10); + lastAutoScrollX = x; + lastAutoScrollY = y; + } + } else { + if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) { + clearAutoScrolls(); + return; + } + autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false); + } + } + }; + return _extends(AutoScroll, { + pluginName: "scroll", + initializeByDefault: true + }); } - function setInert(el) { - let undos = []; - crawlSiblingsUp(el, (sibling) => { - let cache = sibling.hasAttribute("aria-hidden"); - sibling.setAttribute("aria-hidden", "true"); - undos.push(() => cache || sibling.removeAttribute("aria-hidden")); + function clearAutoScrolls() { + autoScrolls.forEach(function(autoScroll2) { + clearInterval(autoScroll2.pid); }); - return () => { - while (undos.length) - undos.pop()(); - }; + autoScrolls = []; } - function crawlSiblingsUp(el, callback) { - if (el.isSameNode(document.body) || !el.parentNode) + function clearPointerElemChangedInterval() { + clearInterval(pointerElemChangedInterval); + } + var autoScroll = throttle2(function(evt, options, rootEl2, isFallback) { + if (!options.scroll) return; - Array.from(el.parentNode.children).forEach((sibling) => { - if (sibling.isSameNode(el)) { - crawlSiblingsUp(el.parentNode, callback); + var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, sens = options.scrollSensitivity, speed = options.scrollSpeed, winScroller = getWindowScrollingElement(); + var scrollThisInstance = false, scrollCustomFn; + if (scrollRootEl !== rootEl2) { + scrollRootEl = rootEl2; + clearAutoScrolls(); + scrollEl = options.scroll; + scrollCustomFn = options.scrollFn; + if (scrollEl === true) { + scrollEl = getParentAutoScrollElement(rootEl2, true); + } + } + var layersOut = 0; + var currentParent = scrollEl; + do { + var el = currentParent, rect = getRect(el), top = rect.top, bottom = rect.bottom, left = rect.left, right = rect.right, width = rect.width, height = rect.height, canScrollX = void 0, canScrollY = void 0, scrollWidth = el.scrollWidth, scrollHeight = el.scrollHeight, elCSS = css(el), scrollPosX = el.scrollLeft, scrollPosY = el.scrollTop; + if (el === winScroller) { + canScrollX = width < scrollWidth && (elCSS.overflowX === "auto" || elCSS.overflowX === "scroll" || elCSS.overflowX === "visible"); + canScrollY = height < scrollHeight && (elCSS.overflowY === "auto" || elCSS.overflowY === "scroll" || elCSS.overflowY === "visible"); } else { - callback(sibling); + canScrollX = width < scrollWidth && (elCSS.overflowX === "auto" || elCSS.overflowX === "scroll"); + canScrollY = height < scrollHeight && (elCSS.overflowY === "auto" || elCSS.overflowY === "scroll"); + } + var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX); + var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY); + if (!autoScrolls[layersOut]) { + for (var i = 0; i <= layersOut; i++) { + if (!autoScrolls[i]) { + autoScrolls[i] = {}; + } + } } - }); - } - function disableScrolling() { - let overflow = document.documentElement.style.overflow; - let paddingRight = document.documentElement.style.paddingRight; - let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; - document.documentElement.style.overflow = "hidden"; - document.documentElement.style.paddingRight = `${scrollbarWidth}px`; - return () => { - document.documentElement.style.overflow = overflow; - document.documentElement.style.paddingRight = paddingRight; - }; - } - var module_default3 = src_default3; - - // node_modules/@alpinejs/persist/dist/module.esm.js - function src_default4(Alpine3) { - let persist = () => { - let alias; - let storage; - try { - storage = localStorage; - } catch (e) { - console.error(e); - console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable."); - let dummy = /* @__PURE__ */ new Map(); - storage = { - getItem: dummy.get.bind(dummy), - setItem: dummy.set.bind(dummy) - }; + if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) { + autoScrolls[layersOut].el = el; + autoScrolls[layersOut].vx = vx; + autoScrolls[layersOut].vy = vy; + clearInterval(autoScrolls[layersOut].pid); + if (vx != 0 || vy != 0) { + scrollThisInstance = true; + autoScrolls[layersOut].pid = setInterval(function() { + if (isFallback && this.layer === 0) { + Sortable.active._onTouchMove(touchEvt$1); + } + var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0; + var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0; + if (typeof scrollCustomFn === "function") { + if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== "continue") { + return; + } + } + scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY); + }.bind({ + layer: layersOut + }), 24); + } } - return Alpine3.interceptor((initialValue, getter, setter, path, key) => { - let lookup = alias || `_x_${path}`; - let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue; - setter(initial); - Alpine3.effect(() => { - let value = getter(); - storageSet(lookup, value, storage); - setter(value); - }); - return initial; - }, (func) => { - func.as = (key) => { - alias = key; - return func; - }, func.using = (target) => { - storage = target; - return func; - }; - }); - }; - Object.defineProperty(Alpine3, "$persist", { get: () => persist() }); - Alpine3.magic("persist", persist); - Alpine3.persist = (key, { get: get3, set: set3 }, storage = localStorage) => { - let initial = storageHas(key, storage) ? storageGet(key, storage) : get3(); - set3(initial); - Alpine3.effect(() => { - let value = get3(); - storageSet(key, value, storage); - set3(value); + layersOut++; + } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false))); + scrolling = scrollThisInstance; + }, 30); + var drop = function drop2(_ref) { + var originalEvent = _ref.originalEvent, putSortable2 = _ref.putSortable, dragEl2 = _ref.dragEl, activeSortable = _ref.activeSortable, dispatchSortableEvent = _ref.dispatchSortableEvent, hideGhostForTarget = _ref.hideGhostForTarget, unhideGhostForTarget = _ref.unhideGhostForTarget; + if (!originalEvent) + return; + var toSortable = putSortable2 || activeSortable; + hideGhostForTarget(); + var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent; + var target = document.elementFromPoint(touch.clientX, touch.clientY); + unhideGhostForTarget(); + if (toSortable && !toSortable.el.contains(target)) { + dispatchSortableEvent("spill"); + this.onSpill({ + dragEl: dragEl2, + putSortable: putSortable2 }); - }; - } - function storageHas(key, storage) { - return storage.getItem(key) !== null; + } + }; + function Revert() { } - function storageGet(key, storage) { - let value = storage.getItem(key, storage); - if (value === void 0) + Revert.prototype = { + startIndex: null, + dragStart: function dragStart(_ref2) { + var oldDraggableIndex2 = _ref2.oldDraggableIndex; + this.startIndex = oldDraggableIndex2; + }, + onSpill: function onSpill(_ref3) { + var dragEl2 = _ref3.dragEl, putSortable2 = _ref3.putSortable; + this.sortable.captureAnimationState(); + if (putSortable2) { + putSortable2.captureAnimationState(); + } + var nextSibling = getChild(this.sortable.el, this.startIndex, this.options); + if (nextSibling) { + this.sortable.el.insertBefore(dragEl2, nextSibling); + } else { + this.sortable.el.appendChild(dragEl2); + } + this.sortable.animateAll(); + if (putSortable2) { + putSortable2.animateAll(); + } + }, + drop + }; + _extends(Revert, { + pluginName: "revertOnSpill" + }); + function Remove() { + } + Remove.prototype = { + onSpill: function onSpill2(_ref4) { + var dragEl2 = _ref4.dragEl, putSortable2 = _ref4.putSortable; + var parentSortable = putSortable2 || this.sortable; + parentSortable.captureAnimationState(); + dragEl2.parentNode && dragEl2.parentNode.removeChild(dragEl2); + parentSortable.animateAll(); + }, + drop + }; + _extends(Remove, { + pluginName: "removeOnSpill" + }); + Sortable.mount(new AutoScrollPlugin()); + Sortable.mount(Remove, Revert); + var sortable_esm_default = Sortable; + function walk2(el, callback) { + if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) { + Array.from(el.children).forEach((el2) => walk2(el2, callback)); return; - return JSON.parse(value); - } - function storageSet(key, value, storage) { - storage.setItem(key, JSON.stringify(value)); + } + let skip = false; + callback(el, () => skip = true); + if (skip) + return; + let node = el.firstElementChild; + while (node) { + walk2(node, callback, false); + node = node.nextElementSibling; + } } - var module_default4 = src_default4; - - // node_modules/@alpinejs/intersect/dist/module.esm.js - function src_default5(Alpine3) { - Alpine3.directive("intersect", Alpine3.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater: evaluateLater2, cleanup: cleanup2 }) => { - let evaluate3 = evaluateLater2(expression); - let options = { - rootMargin: getRootMargin(modifiers), - threshold: getThreshold(modifiers) + function src_default6(Alpine3) { + Alpine3.directive("sort", (el, { value, modifiers, expression }, { effect: effect3, evaluate: evaluate3, cleanup: cleanup2 }) => { + if (value === "config") { + return; + } + if (value === "handle") { + return; + } + if (value === "group") { + return; + } + if (value === "key" || value === "item") { + if ([void 0, null, ""].includes(expression)) + return; + el._x_sort_key = evaluate3(expression); + return; + } + let handleSelector = "[x-sort\\:handle],[wire\\:sort\\:handle]"; + let preferences = { + hideGhost: !modifiers.includes("ghost"), + useHandles: !!el.querySelector(handleSelector) || Array.from(el.querySelectorAll("template:not(svg template)")).some((tmpl) => tmpl.content?.querySelector(handleSelector)), + group: getGroupName(el, modifiers) }; - let observer2 = new IntersectionObserver((entries) => { - entries.forEach((entry) => { - if (entry.isIntersecting === (value === "leave")) - return; - evaluate3(); - modifiers.includes("once") && observer2.disconnect(); - }); - }, options); - observer2.observe(el); - cleanup2(() => { - observer2.disconnect(); + let handleSort = generateSortHandler(expression, evaluate3); + let config = getConfigurationOverrides(el, modifiers, evaluate3); + let sortable = initSortable(el, config, preferences, (key, position) => { + handleSort(key, position); }); - })); - } - function getThreshold(modifiers) { - if (modifiers.includes("full")) - return 0.99; - if (modifiers.includes("half")) - return 0.5; - if (!modifiers.includes("threshold")) - return 0; - let threshold = modifiers[modifiers.indexOf("threshold") + 1]; - if (threshold === "100") - return 1; - if (threshold === "0") - return 0; - return Number(`.${threshold}`); + cleanup2(() => sortable.destroy()); + }); } - function getLengthValue(rawValue) { - let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/); - return match ? match[1] + (match[2] || "px") : void 0; + function generateSortHandler(expression, evaluate3) { + if ([void 0, null, ""].includes(expression)) + return () => { + }; + return (key, position) => { + evaluate3(expression, { scope: { + $key: key, + $item: key, + $position: position + }, params: [ + key, + position + ] }); + }; } - function getRootMargin(modifiers) { - const key = "margin"; - const fallback2 = "0px 0px 0px 0px"; - const index = modifiers.indexOf(key); - if (index === -1) - return fallback2; - let values = []; - for (let i = 1; i < 5; i++) { - values.push(getLengthValue(modifiers[index + i] || "")); + function getConfigurationOverrides(el, modifiers, evaluate3) { + if (el.hasAttribute("x-sort:config")) { + return evaluate3(el.getAttribute("x-sort:config")); } - values = values.filter((v) => v !== void 0); - return values.length ? values.join(" ").trim() : fallback2; + if (el.hasAttribute("wire:sort:config")) { + return evaluate3(el.getAttribute("wire:sort:config")); + } + return {}; } - var module_default5 = src_default5; + function initSortable(el, config, preferences, handle) { + let ghostRef; + let options = { + animation: 150, + handle: preferences.useHandles ? "[x-sort\\:handle],[wire\\:sort\\:handle]" : null, + group: preferences.group, + scroll: true, + forceAutoScrollFallback: true, + scrollSensitivity: 50, + preventOnFilter: false, + filter(e) { + if (e.target.hasAttribute("x-sort:ignore") || e.target.hasAttribute("wire:sort:ignore")) + return true; + if (e.target.closest("[x-sort\\:ignore]") || e.target.closest("[wire\\:sort\\:ignore]")) + return true; + if (!el.querySelector("[x-sort\\:item],[wire\\:sort\\:item]")) + return false; + let itemHasAttribute = e.target.closest("[x-sort\\:item],[wire\\:sort\\:item]"); + return itemHasAttribute ? false : true; + }, + onSort(e) { + if (e.from !== e.to) { + if (e.to !== e.target) { + return; + } + } + let key = void 0; + walk2(e.item, (el2, skip) => { + if (key !== void 0) + return; + if (el2._x_sort_key) { + key = el2._x_sort_key; + skip(); + } + }); + let position = e.newIndex; + if (key !== void 0 || key !== null) { + handle(key, position); + } + }, + onStart() { + document.body.classList.add("sorting"); + ghostRef = document.querySelector(".sortable-ghost"); + if (preferences.hideGhost && ghostRef) + ghostRef.style.opacity = "0"; + }, + onEnd() { + document.body.classList.remove("sorting"); + if (preferences.hideGhost && ghostRef) + ghostRef.style.opacity = "1"; + ghostRef = void 0; + keepElementsWithinMorphMarkers(el); + } + }; + return new sortable_esm_default(el, { ...options, ...config }); + } + function keepElementsWithinMorphMarkers(el) { + let cursor = el.firstChild; + while (cursor.nextSibling) { + if (cursor.textContent.trim() === "[if ENDBLOCK]><![endif]") { + el.append(cursor); + break; + } + cursor = cursor.nextSibling; + } + } + function getGroupName(el, modifiers) { + if (el.hasAttribute("x-sort:group")) { + return el.getAttribute("x-sort:group"); + } + if (el.hasAttribute("wire:sort:group")) { + return el.getAttribute("wire:sort:group"); + } + return modifiers.indexOf("group") !== -1 ? modifiers[modifiers.indexOf("group") + 1] : null; + } + var module_default6 = src_default6; // node_modules/@alpinejs/resize/dist/module.esm.js - function src_default6(Alpine3) { + function src_default7(Alpine3) { Alpine3.directive("resize", Alpine3.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater: evaluateLater2, cleanup: cleanup2 }) => { let evaluator = evaluateLater2(expression); let evaluate3 = (width, height) => { evaluator(() => { }, { scope: { "$width": width, "$height": height } }); }; - let off = modifiers.includes("document") ? onDocumentResize(evaluate3) : onElResize(el, evaluate3); - cleanup2(() => off()); + let off2 = modifiers.includes("document") ? onDocumentResize(evaluate3) : onElResize(el, evaluate3); + cleanup2(() => off2()); })); } function onElResize(el, callback) { @@ -5965,7 +10992,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } return [width, height]; } - var module_default6 = src_default6; + var module_default7 = src_default7; // node_modules/@alpinejs/anchor/dist/module.esm.js var min = Math.min; @@ -6545,8 +11572,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } function isContainingBlock(element) { const webkit = isWebKit(); - const css = getComputedStyle2(element); - return css.transform !== "none" || css.perspective !== "none" || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || ["transform", "perspective", "filter"].some((value) => (css.willChange || "").includes(value)) || ["paint", "layout", "strict", "content"].some((value) => (css.contain || "").includes(value)); + const css2 = getComputedStyle2(element); + return css2.transform !== "none" || css2.perspective !== "none" || (css2.containerType ? css2.containerType !== "normal" : false) || !webkit && (css2.backdropFilter ? css2.backdropFilter !== "none" : false) || !webkit && (css2.filter ? css2.filter !== "none" : false) || ["transform", "perspective", "filter"].some((value) => (css2.willChange || "").includes(value)) || ["paint", "layout", "strict", "content"].some((value) => (css2.contain || "").includes(value)); } function getContainingBlock(element) { let currentNode = getParentNode(element); @@ -6616,9 +11643,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes)); } function getCssDimensions(element) { - const css = getComputedStyle2(element); - let width = parseFloat(css.width) || 0; - let height = parseFloat(css.height) || 0; + const css2 = getComputedStyle2(element); + let width = parseFloat(css2.width) || 0; + let height = parseFloat(css2.height) || 0; const hasOffset = isHTMLElement(element); const offsetWidth = hasOffset ? element.offsetWidth : width; const offsetHeight = hasOffset ? element.offsetHeight : height; @@ -6711,9 +11738,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); while (currentIFrame && offsetParent && offsetWin !== win) { const iframeScale = getScale(currentIFrame); const iframeRect = currentIFrame.getBoundingClientRect(); - const css = getComputedStyle2(currentIFrame); - const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x; - const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y; + const css2 = getComputedStyle2(currentIFrame); + const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css2.paddingLeft)) * iframeScale.x; + const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css2.paddingTop)) * iframeScale.y; x *= iframeScale.x; y *= iframeScale.y; width *= iframeScale.x; @@ -7141,7 +12168,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); platform: platformWithCache }); }; - function src_default7(Alpine3) { + function src_default8(Alpine3) { Alpine3.magic("anchor", (el) => { if (!el._x_anchor) throw "Alpine: No x-anchor directive found on element using $anchor..."; @@ -7152,40 +12179,56 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); to._x_anchor = from._x_anchor; } }); - Alpine3.directive("anchor", Alpine3.skipDuringClone((el, { expression, modifiers, value }, { cleanup: cleanup2, evaluate: evaluate22 }) => { - let { placement, offsetValue, unstyled } = getOptions(modifiers); - el._x_anchor = Alpine3.reactive({ x: 0, y: 0 }); - let reference = evaluate22(expression); - if (!reference) - throw "Alpine: no element provided to x-anchor..."; - let compute = () => { - let previousValue; - computePosition2(reference, el, { - placement, - middleware: [flip(), shift({ padding: 5 }), offset(offsetValue)] - }).then(({ x, y }) => { - unstyled || setStyles2(el, x, y); - if (JSON.stringify({ x, y }) !== previousValue) { - el._x_anchor.x = x; - el._x_anchor.y = y; - } - previousValue = JSON.stringify({ x, y }); + Alpine3.directive("anchor", Alpine3.skipDuringClone( + (el, { expression, modifiers, value }, { evaluate: evaluate22, effect: effect3, cleanup: cleanup2 }) => { + let { placement, offsetValue, unstyled, strategy, allowFlip } = getOptions(modifiers); + el._x_anchor = Alpine3.reactive({ x: 0, y: 0 }); + let previousReference = null; + let release2 = null; + effect3(() => { + let reference = evaluate22(expression); + if (!reference) + return; + if (previousReference !== reference) { + if (release2) + release2(); + previousReference = reference; + let compute = () => { + let previousValue; + computePosition2(reference, el, { + placement, + strategy, + middleware: [allowFlip && flip(), shift({ padding: 5 }), offset(offsetValue)] + }).then(({ x, y }) => { + unstyled || setStyles2(el, x, y, strategy); + if (JSON.stringify({ x, y }) !== previousValue) { + el._x_anchor.x = x; + el._x_anchor.y = y; + } + previousValue = JSON.stringify({ x, y }); + }); + }; + release2 = autoUpdate(reference, el, () => compute()); + } }); - }; - let release2 = autoUpdate(reference, el, () => compute()); - cleanup2(() => release2()); - }, (el, { expression, modifiers, value }, { cleanup: cleanup2, evaluate: evaluate22 }) => { - let { placement, offsetValue, unstyled } = getOptions(modifiers); - if (el._x_anchor) { - unstyled || setStyles2(el, el._x_anchor.x, el._x_anchor.y); + cleanup2(() => { + if (release2) + release2(); + }); + }, + (el, { expression, modifiers, value }, { cleanup: cleanup2, evaluate: evaluate22 }) => { + let { placement, offsetValue, unstyled, strategy } = getOptions(modifiers); + if (el._x_anchor) { + unstyled || setStyles2(el, el._x_anchor.x, el._x_anchor.y, strategy); + } } - })); + )); } - function setStyles2(el, x, y) { + function setStyles2(el, x, y, strategy = "absolute") { Object.assign(el.style, { left: x + "px", top: y + "px", - position: "absolute" + position: strategy }); } function getOptions(modifiers) { @@ -7197,9 +12240,94 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); offsetValue = modifiers[idx + 1] !== void 0 ? Number(modifiers[idx + 1]) : offsetValue; } let unstyled = modifiers.includes("no-style"); - return { placement, offsetValue, unstyled }; + let allowFlip = !modifiers.includes("noflip"); + let strategy = modifiers.includes("fixed") ? "fixed" : "absolute"; + return { placement, offsetValue, unstyled, strategy, allowFlip }; } - var module_default7 = src_default7; + var module_default8 = src_default8; + + // js/plugins/history/utils.js + function unwrap(object) { + if (object === void 0) + return void 0; + return JSON.parse(JSON.stringify(object)); + } + function batch(callback) { + let batch2 = { + queued: false, + updates: {}, + add(updates) { + Object.assign(batch2.updates, updates); + if (batch2.queued) + return; + batch2.queued = true; + queueMicrotask(batch2.flush); + }, + flush() { + if (Object.keys(batch2.updates).length) { + callback(batch2.updates); + } + batch2.queued = false; + batch2.updates = {}; + } + }; + return batch2; + } + + // js/plugins/history/coordinator.js + var HistoryCoordinator = class { + constructor() { + this.url = null; + this.errorHandlers = {}; + this.batch = batch((updates) => { + let url = this.getUrl(); + this.writeToHistory("replaceState", url, (state) => { + state.alpine = { ...state.alpine, ...unwrap(updates) }; + return state; + }); + this.url = null; + }); + } + addErrorHandler(key, callback) { + this.errorHandlers[key] = callback; + } + getUrl() { + if (this.url) { + if (this.url instanceof URL) + this.url.hash = window.location.hash; + return this.url; + } + return new URL(window.location.href); + } + replaceState(url, updates) { + this.url = url; + this.batch.add(updates); + } + pushState(url, updates) { + this.batch.flush(); + this.writeToHistory("pushState", url, (state) => { + state = { alpine: { ...state.alpine, ...unwrap(updates) } }; + return state; + }); + } + writeToHistory(method, url, callback) { + let state = window.history.state || {}; + if (!state.alpine) + state.alpine = {}; + state = callback(state); + try { + window.history[method](state, "", url.toString()); + } catch (error2) { + Object.values(this.errorHandlers).forEach( + (handler4) => typeof handler4 === "function" && handler4(error2, url) + ); + this.errorHandlers = {}; + console.error(error2); + } + } + }; + var historyCoordinator = new HistoryCoordinator(); + var coordinator_default = historyCoordinator; // js/plugins/navigate/history.js var Snapshot = class { @@ -7232,9 +12360,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }, push(key, snapshot) { this.lookup[key] = snapshot; - let index = this.keys.indexOf(key); - if (index > -1) - this.keys.splice(index, 1); + let index2 = this.keys.indexOf(key); + if (index2 > -1) + this.keys.splice(index2, 1); this.keys.unshift(key); this.trim(); }, @@ -7244,8 +12372,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } } }; + var currentPageStatus = null; + function storeCurrentPageStatus(status) { + currentPageStatus = status; + } function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() { - let url = new URL(window.location.href, document.baseURI); + let url = coordinator_default.getUrl(); replaceUrl(url, document.documentElement.outerHTML); } function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(key, url) { @@ -7258,6 +12390,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); window.addEventListener("popstate", (e) => { let state = e.state || {}; let alpine = state.alpine || {}; + if (currentPageStatus && (currentPageStatus < 200 || currentPageStatus >= 300)) { + return window.location.href = alpine.url; + } if (Object.keys(state).length === 0) return; if (!alpine.snapshotIdx) @@ -7265,7 +12400,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (snapshotCache.has(alpine.snapshotIdx)) { let snapshot = snapshotCache.retrieve(alpine.snapshotIdx); handleHtml(snapshot.html, snapshot.url, snapshotCache.currentUrl, snapshotCache.currentKey); + snapshotCache.currentKey = alpine.snapshotIdx; + snapshotCache.currentUrl = snapshot.url; } else { + snapshotCache.currentKey = null; + snapshotCache.currentUrl = null; fallback2(alpine.url); } }); @@ -7282,21 +12421,16 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function updateUrl(method, url, html) { let key = url.toString() + "-" + Math.random(); method === "pushState" ? snapshotCache.push(key, new Snapshot(url, html)) : snapshotCache.replace(key = snapshotCache.currentKey ?? key, new Snapshot(url, html)); - let state = history.state || {}; - if (!state.alpine) - state.alpine = {}; - state.alpine.snapshotIdx = key; - state.alpine.url = url.toString(); - try { - history[method](state, JSON.stringify(document.title), url); - snapshotCache.currentKey = key; - snapshotCache.currentUrl = url; - } catch (error2) { + coordinator_default.addErrorHandler("navigate", (error2) => { if (error2 instanceof DOMException && error2.name === "SecurityError") { - console.error("Livewire: You can't use wire:navigate with a link to a different root domain: " + url); + console.error( + "Livewire: You can't use wire:navigate with a link to a different root domain: " + url + ); } - console.error(error2); - } + }); + coordinator_default[method](url, { snapshotIdx: key, url: url.toString() }); + snapshotCache.currentKey = key; + snapshotCache.currentUrl = url; } // js/plugins/navigate/links.js @@ -7321,7 +12455,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); callback((whenReleased) => { let handler4 = (e2) => { e2.preventDefault(); - whenReleased(); + requestAnimationFrame(() => { + whenReleased(); + }); el.removeEventListener("mouseup", handler4); }; el.addEventListener("mouseup", handler4); @@ -7347,9 +12483,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); } function extractDestinationFromLink(linkEl) { - return createUrlObjectFromString(linkEl.getAttribute("href")); + return createUrlObjectFromString2(linkEl.getAttribute("href")); } - function createUrlObjectFromString(urlString) { + function createUrlObjectFromString2(urlString) { return urlString !== null && new URL(urlString, document.baseURI); } function getUriStringFromUrlObject(urlObject) { @@ -7357,45 +12493,31 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } // js/plugins/navigate/fetch.js - function fetchHtml(destination, callback) { + function fetchHtml(destination, callback, errorCallback) { let uri = getUriStringFromUrlObject(destination); - performFetch(uri, (html, finalDestination) => { + performFetch(uri, (html, finalDestination, status) => { + storeCurrentPageStatus(status); callback(html, finalDestination); - }); + }, errorCallback); } - function performFetch(uri, callback) { - let options = { - headers: { - "X-Livewire-Navigate": "" - } - }; - trigger2("navigate.request", { - url: uri, - options - }); - let finalDestination; - fetch(uri, options).then((response) => { - let destination = createUrlObjectFromString(uri); - finalDestination = createUrlObjectFromString(response.url); - if (destination.pathname + destination.search === finalDestination.pathname + finalDestination.search) { - finalDestination.hash = destination.hash; - } - return response.text(); - }).then((html) => { - callback(html, finalDestination); - }); + function performFetch(uri, callback, errorCallback) { + sendNavigateRequest(uri, callback, errorCallback); } // js/plugins/navigate/prefetch.js var prefetches = {}; - function prefetchHtml(destination, callback) { + var cacheDuration = 3e4; + function prefetchHtml(destination, callback, errorCallback) { let uri = getUriStringFromUrlObject(destination); if (prefetches[uri]) return; - prefetches[uri] = { finished: false, html: null, whenFinished: () => { - } }; - performFetch(uri, (html, routedUri) => { + prefetches[uri] = { finished: false, html: null, whenFinished: () => setTimeout(() => delete prefetches[uri], cacheDuration) }; + performFetch(uri, (html, routedUri, status) => { + storeCurrentPageStatus(status); callback(html, routedUri); + }, () => { + delete prefetches[uri]; + errorCallback(); }); } function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination) { @@ -7451,7 +12573,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function storeScrollInformationInHtmlBeforeNavigatingAway() { document.body.setAttribute("data-scroll-x", document.body.scrollLeft); document.body.setAttribute("data-scroll-y", document.body.scrollTop); - document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:scroll]"]).forEach((el) => { + document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:navigate\\:scroll]"]).forEach((el) => { el.setAttribute("data-scroll-x", el.scrollLeft); el.setAttribute("data-scroll-y", el.scrollTop); }); @@ -7471,8 +12593,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } }; queueMicrotask(() => { - scroll(document.body); - document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:scroll]"]).forEach(scroll); + queueMicrotask(() => { + scroll(document.body); + document.querySelectorAll(["[x-navigate\\:scroll]", "[wire\\:navigate\\:scroll]"]).forEach(scroll); + }); }); } @@ -7620,14 +12744,62 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); document.head.appendChild(style); } + // js/plugins/navigate/popover.js + function packUpPersistedPopovers(persistedEl) { + if (!isPopoverSupported()) + return; + persistedEl.querySelectorAll(":popover-open").forEach((el) => { + el.setAttribute("data-navigate-popover-open", ""); + let animations = el.getAnimations(); + el._pausedAnimations = animations.map((animation) => ({ + keyframes: animation.effect.getKeyframes(), + options: { + duration: animation.effect.getTiming().duration, + easing: animation.effect.getTiming().easing, + fill: animation.effect.getTiming().fill, + iterations: animation.effect.getTiming().iterations + }, + currentTime: animation.currentTime, + playState: animation.playState + })); + animations.forEach((i) => i.pause()); + }); + } + function unPackPersistedPopovers(persistedEl) { + if (!isPopoverSupported()) + return; + persistedEl.querySelectorAll("[data-navigate-popover-open]").forEach((el) => { + el.removeAttribute("data-navigate-popover-open"); + queueMicrotask(() => { + if (!el.isConnected) + return; + el.showPopover(); + el.getAnimations().forEach((i) => i.finish()); + if (el._pausedAnimations) { + el._pausedAnimations.forEach(({ keyframes, options, currentTime, now, playState }) => { + let animation = el.animate(keyframes, options); + animation.currentTime = currentTime; + }); + delete el._pausedAnimations; + } + }); + }); + } + function isPopoverSupported() { + return typeof document.createElement("div").showPopover === "function"; + } + // js/plugins/navigate/page.js var oldBodyScriptTagHashes = []; var attributesExemptFromScriptTagHashing = [ "data-csrf", + "nonce", "aria-hidden" ]; function swapCurrentPageWithNewHtml(html, andThen) { + html = replaceNoncesInHtml(html); let newDocument = new DOMParser().parseFromString(html, "text/html"); + let newHtml = newDocument.documentElement; let newBody = document.adoptNode(newDocument.body); let newHead = document.adoptNode(newDocument.head); oldBodyScriptTagHashes = oldBodyScriptTagHashes.concat(Array.from(document.body.querySelectorAll("script")).map((i) => { @@ -7635,6 +12807,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); })); let afterRemoteScriptsHaveLoaded = () => { }; + replaceHtmlAttributes(newHtml); mergeNewHead(newHead).finally(() => { afterRemoteScriptsHaveLoaded(); }); @@ -7647,22 +12820,42 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes2) { newBody.querySelectorAll("script").forEach((i) => { if (i.hasAttribute("data-navigate-once")) { - let hash = simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)); + let hash = simpleHash( + ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing) + ); if (oldBodyScriptTagHashes2.includes(hash)) return; } i.replaceWith(cloneScriptTag(i)); }); } + function replaceHtmlAttributes(newHtmlElement) { + let currentHtmlElement = document.documentElement; + Array.from(newHtmlElement.attributes).forEach((attr) => { + const name = attr.name; + const value = attr.value; + if (currentHtmlElement.getAttribute(name) !== value) { + currentHtmlElement.setAttribute(name, value); + } + }); + Array.from(currentHtmlElement.attributes).forEach((attr) => { + if (!newHtmlElement.hasAttribute(attr.name)) { + currentHtmlElement.removeAttribute(attr.name); + } + }); + } function mergeNewHead(newHead) { let children = Array.from(document.head.children); - let headChildrenHtmlLookup = children.map((i) => i.outerHTML); + let headChildrenHtmlLookup = children.map( + (i) => ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing) + ); let garbageCollector = document.createDocumentFragment(); let touchedHeadElements = []; let remoteScriptsPromises = []; for (let child of Array.from(newHead.children)) { if (isAsset(child)) { - if (!headChildrenHtmlLookup.includes(child.outerHTML)) { + let childHtml = ignoreAttributes(child.outerHTML, attributesExemptFromScriptTagHashing); + if (!headChildrenHtmlLookup.includes(childHtml)) { if (isTracked(child)) { if (ifTheQueryStringChangedSinceLastRequest(child, children)) { setTimeout(() => window.location.reload()); @@ -7670,7 +12863,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } if (isScript(child)) { try { - remoteScriptsPromises.push(injectScriptTagAndWaitForItToFullyLoad(cloneScriptTag(child))); + remoteScriptsPromises.push( + injectScriptTagAndWaitForItToFullyLoad( + cloneScriptTag(child) + ) + ); } catch (error2) { } } else { @@ -7687,6 +12884,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); child.remove(); } for (let child of Array.from(newHead.children)) { + if (child.tagName.toLowerCase() === "noscript") + continue; document.head.appendChild(child); } return Promise.all(remoteScriptsPromises); @@ -7702,15 +12901,6 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); document.head.appendChild(script); }); } - function cloneScriptTag(el) { - let script = document.createElement("script"); - script.textContent = el.textContent; - script.async = el.async; - for (let attr of el.attributes) { - script.setAttribute(attr.name, attr.value); - } - return script; - } function isTracked(el) { return el.hasAttribute("data-navigate-track"); } @@ -7756,16 +12946,17 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); var restoreScroll = true; var autofocus = false; function navigate_default(Alpine3) { - Alpine3.navigate = (url) => { - let destination = createUrlObjectFromString(url); - let prevented = fireEventForOtherLibariesToHookInto("alpine:navigate", { + Alpine3.navigate = (url, options = {}) => { + let { preserveScroll = false } = options; + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { url: destination, history: false, cached: false }); if (prevented) return; - navigateTo(destination); + navigateTo(destination, { preserveScroll }); }; Alpine3.navigate.disableProgressBar = () => { showProgressBar = false; @@ -7773,12 +12964,15 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); Alpine3.addInitSelector(() => `[${Alpine3.prefixed("navigate")}]`); Alpine3.directive("navigate", (el, { modifiers }) => { let shouldPrefetchOnHover = modifiers.includes("hover"); + let preserveScroll = modifiers.includes("preserve-scroll"); shouldPrefetchOnHover && whenThisLinkIsHoveredFor(el, 60, () => { let destination = extractDestinationFromLink(el); if (!destination) return; prefetchHtml(destination, (html, finalDestination) => { storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination); + }, () => { + showProgressBar && finishAndHideProgressBar(); }); }); whenThisLinkIsPressed(el, (whenItIsReleased) => { @@ -7787,30 +12981,35 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return; prefetchHtml(destination, (html, finalDestination) => { storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination); + }, () => { + showProgressBar && finishAndHideProgressBar(); }); whenItIsReleased(() => { - let prevented = fireEventForOtherLibariesToHookInto("alpine:navigate", { + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { url: destination, history: false, cached: false }); if (prevented) return; - navigateTo(destination); + navigateTo(destination, { preserveScroll }); }); }); }); - function navigateTo(destination, shouldPushToHistoryState = true) { + function navigateTo(destination, { preserveScroll = false, shouldPushToHistoryState = true }) { showProgressBar && showAndStartProgressBar(); fetchHtmlOrUsePrefetchedHtml(destination, (html, finalDestination) => { - fireEventForOtherLibariesToHookInto("alpine:navigating"); + let swapCallbacks = []; + fireEventForOtherLibrariesToHookInto("alpine:navigating", { + onSwap: (callback) => swapCallbacks.push(callback) + }); restoreScroll && storeScrollInformationInHtmlBeforeNavigatingAway(); - showProgressBar && finishAndHideProgressBar(); cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement(); - updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks(); + shouldPushToHistoryState && updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks(); preventAlpineFromPickingUpDomChanges(Alpine3, (andAfterAllThis) => { enablePersist && storePersistantElementsForLater((persistedEl) => { packUpPersistedTeleports(persistedEl); + packUpPersistedPopovers(persistedEl); }); if (shouldPushToHistoryState) { updateUrlAndStoreLatestHtmlForFutureBackButtons(html, finalDestination); @@ -7821,72 +13020,85 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); removeAnyLeftOverStaleTeleportTargets(document.body); enablePersist && putPersistantElementsBack((persistedEl, newStub) => { unPackPersistedTeleports(persistedEl); + unPackPersistedPopovers(persistedEl); }); - restoreScrollPositionOrScrollToTop(); + !preserveScroll && restoreScrollPositionOrScrollToTop(); + swapCallbacks.forEach((callback) => callback()); afterNewScriptsAreDoneLoading(() => { andAfterAllThis(() => { setTimeout(() => { autofocus && autofocusElementsWithTheAutofocusAttribute(); }); nowInitializeAlpineOnTheNewPage(Alpine3); - fireEventForOtherLibariesToHookInto("alpine:navigated"); + fireEventForOtherLibrariesToHookInto("alpine:navigated"); + showProgressBar && finishAndHideProgressBar(); }); }); }); }); + }, () => { + showProgressBar && finishAndHideProgressBar(); }); } - whenTheBackOrForwardButtonIsClicked((ifThePageBeingVisitedHasntBeenCached) => { - ifThePageBeingVisitedHasntBeenCached((url) => { - let destination = createUrlObjectFromString(url); - let prevented = fireEventForOtherLibariesToHookInto("alpine:navigate", { + whenTheBackOrForwardButtonIsClicked( + (ifThePageBeingVisitedHasntBeenCached) => { + ifThePageBeingVisitedHasntBeenCached((url) => { + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { + url: destination, + history: true, + cached: false + }); + if (prevented) + return; + navigateTo(destination, { shouldPushToHistoryState: false }); + }); + }, + (html, url, currentPageUrl, currentPageKey) => { + let destination = createUrlObjectFromString2(url); + let prevented = fireEventForOtherLibrariesToHookInto("alpine:navigate", { url: destination, history: true, - cached: false + cached: true }); if (prevented) return; - let shouldPushToHistoryState = false; - navigateTo(destination, shouldPushToHistoryState); - }); - }, (html, url, currentPageUrl, currentPageKey) => { - let destination = createUrlObjectFromString(url); - let prevented = fireEventForOtherLibariesToHookInto("alpine:navigate", { - url: destination, - history: true, - cached: true - }); - if (prevented) - return; - storeScrollInformationInHtmlBeforeNavigatingAway(); - fireEventForOtherLibariesToHookInto("alpine:navigating"); - updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageUrl, currentPageKey); - preventAlpineFromPickingUpDomChanges(Alpine3, (andAfterAllThis) => { - enablePersist && storePersistantElementsForLater((persistedEl) => { - packUpPersistedTeleports(persistedEl); + storeScrollInformationInHtmlBeforeNavigatingAway(); + let swapCallbacks = []; + fireEventForOtherLibrariesToHookInto("alpine:navigating", { + onSwap: (callback) => swapCallbacks.push(callback) }); - swapCurrentPageWithNewHtml(html, () => { - removeAnyLeftOverStaleProgressBars(); - removeAnyLeftOverStaleTeleportTargets(document.body); - enablePersist && putPersistantElementsBack((persistedEl, newStub) => { - unPackPersistedTeleports(persistedEl); + updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageKey, currentPageUrl); + preventAlpineFromPickingUpDomChanges(Alpine3, (andAfterAllThis) => { + enablePersist && storePersistantElementsForLater((persistedEl) => { + packUpPersistedTeleports(persistedEl); + packUpPersistedPopovers(persistedEl); }); - restoreScrollPositionOrScrollToTop(); - andAfterAllThis(() => { - autofocus && autofocusElementsWithTheAutofocusAttribute(); - nowInitializeAlpineOnTheNewPage(Alpine3); - fireEventForOtherLibariesToHookInto("alpine:navigated"); + swapCurrentPageWithNewHtml(html, () => { + removeAnyLeftOverStaleProgressBars(); + removeAnyLeftOverStaleTeleportTargets(document.body); + enablePersist && putPersistantElementsBack((persistedEl, newStub) => { + unPackPersistedTeleports(persistedEl); + unPackPersistedPopovers(persistedEl); + }); + restoreScrollPositionOrScrollToTop(); + swapCallbacks.forEach((callback) => callback()); + andAfterAllThis(() => { + autofocus && autofocusElementsWithTheAutofocusAttribute(); + nowInitializeAlpineOnTheNewPage(Alpine3); + fireEventForOtherLibrariesToHookInto("alpine:navigated"); + }); }); }); - }); - }); + } + ); setTimeout(() => { - fireEventForOtherLibariesToHookInto("alpine:navigated"); + fireEventForOtherLibrariesToHookInto("alpine:navigated"); }); } - function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback) { + function fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCallback) { getPretchedHtmlOr(fromDestination, callback, () => { - fetchHtml(fromDestination, callback); + fetchHtml(fromDestination, callback, errorCallback); }); } function preventAlpineFromPickingUpDomChanges(Alpine3, callback) { @@ -7898,7 +13110,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); }); } - function fireEventForOtherLibariesToHookInto(name, detail) { + function fireEventForOtherLibrariesToHookInto(name, detail) { let event = new CustomEvent(name, { cancelable: true, bubbles: true, @@ -7931,7 +13143,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } // js/plugins/history/index.js - function history2(Alpine3) { + function history(Alpine3) { Alpine3.magic("queryString", (el, { interceptor: interceptor2 }) => { let alias; let alwaysShow = false; @@ -7970,11 +13182,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } function track2(name, initialSeedValue, alwaysShow = false, except = null) { let { has: has2, get: get3, set: set3, remove } = queryStringUtils(); - let url = new URL(window.location.href); + let url = coordinator_default.getUrl(); let isInitiallyPresentInUrl = has2(url, name); let initialValue = isInitiallyPresentInUrl ? get3(url, name) : initialSeedValue; let initialValueMemo = JSON.stringify(initialValue); - let exceptValueMemo = [false, null, void 0].includes(except) ? initialSeedValue : JSON.stringify(except); + let exceptValueMemo = JSON.stringify(except); let hasReturnedToInitialValue = (newValue) => JSON.stringify(newValue) === initialValueMemo; let hasReturnedToExceptValue = (newValue) => JSON.stringify(newValue) === exceptValueMemo; if (alwaysShow) @@ -7984,7 +13196,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let update = (strategy, newValue) => { if (lock) return; - let url2 = new URL(window.location.href); + let url2 = coordinator_default.getUrl(); if (!alwaysShow && !isInitiallyPresentInUrl && hasReturnedToInitialValue(newValue)) { url2 = remove(url2, name); } else if (newValue === void 0) { @@ -8026,23 +13238,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }; } function replace(url, key, object) { - let state = window.history.state || {}; - if (!state.alpine) - state.alpine = {}; - state.alpine[key] = unwrap(object); - window.history.replaceState(state, "", url.toString()); + coordinator_default.replaceState(url, { [key]: object }); } function push(url, key, object) { - let state = window.history.state || {}; - if (!state.alpine) - state.alpine = {}; - state = { alpine: { ...state.alpine, ...{ [key]: unwrap(object) } } }; - window.history.pushState(state, "", url.toString()); - } - function unwrap(object) { - if (object === void 0) - return void 0; - return JSON.parse(JSON.stringify(object)); + coordinator_default.pushState(url, { [key]: object }); } function queryStringUtils() { return { @@ -8050,24 +13249,24 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let search = url.search; if (!search) return false; - let data2 = fromQueryString(search); + let data2 = fromQueryString(search, key); return Object.keys(data2).includes(key); }, get(url, key) { let search = url.search; if (!search) return false; - let data2 = fromQueryString(search); + let data2 = fromQueryString(search, key); return data2[key]; }, set(url, key, value) { - let data2 = fromQueryString(url.search); + let data2 = fromQueryString(url.search, key); data2[key] = stripNulls(unwrap(value)); url.search = toQueryString(data2); return url; }, remove(url, key) { - let data2 = fromQueryString(url.search); + let data2 = fromQueryString(url.search, key); delete data2[key]; url.search = toQueryString(data2); return url; @@ -8103,7 +13302,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let entries = buildQueryStringEntries(data2); return Object.entries(entries).map(([key, value]) => `${key}=${value}`).join("&"); } - function fromQueryString(search) { + function fromQueryString(search, queryKey) { search = search.replace("?", ""); if (search === "") return {}; @@ -8122,10 +13321,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (typeof value == "undefined") return; value = decodeURIComponent(value.replaceAll("+", "%20")); - if (!key.includes("[")) { + let decodedKey = decodeURIComponent(key); + let shouldBeHandledAsArray = decodedKey.includes("[") && decodedKey.startsWith(queryKey); + if (!shouldBeHandledAsArray) { data2[key] = value; } else { - let dotNotatedKey = key.replaceAll("[", ".").replaceAll("]", ""); + let dotNotatedKey = decodedKey.replaceAll("[", ".").replaceAll("]", ""); insertDotNotatedValueIntoData(dotNotatedKey, value, data2); } }); @@ -8135,109 +13336,159 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); // node_modules/@alpinejs/morph/dist/module.esm.js function morph(from, toHtml, options) { monkeyPatchDomSetAttributeToAllowAtSymbols(); - let fromEl; - let toEl; - let key, lookahead, updating, updated, removing, removed, adding, added; - function assignOptions(options2 = {}) { - let defaultGetKey = (el) => el.getAttribute("key"); - let noop = () => { - }; - updating = options2.updating || noop; - updated = options2.updated || noop; - removing = options2.removing || noop; - removed = options2.removed || noop; - adding = options2.adding || noop; - added = options2.added || noop; - key = options2.key || defaultGetKey; - lookahead = options2.lookahead || false; - } - function patch(from2, to) { - if (differentElementNamesTypesOrKeys(from2, to)) { - return swapElements(from2, to); + let context = createMorphContext(options); + let toEl = typeof toHtml === "string" ? createElement(toHtml) : toHtml; + if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) { + toEl._x_dataStack = window.Alpine.closestDataStack(from); + toEl._x_dataStack && window.Alpine.cloneNode(from, toEl); + } + context.patch(from, toEl); + return from; + } + function morphBetween(startMarker, endMarker, toHtml, options = {}) { + monkeyPatchDomSetAttributeToAllowAtSymbols(); + let context = createMorphContext(options); + let fromContainer = startMarker.parentNode; + let fromBlock = new Block(startMarker, endMarker); + let toContainer = typeof toHtml === "string" ? (() => { + let container = document.createElement("div"); + container.insertAdjacentHTML("beforeend", toHtml); + return container; + })() : toHtml; + let toStartMarker = document.createComment("[morph-start]"); + let toEndMarker = document.createComment("[morph-end]"); + toContainer.insertBefore(toStartMarker, toContainer.firstChild); + toContainer.appendChild(toEndMarker); + let toBlock = new Block(toStartMarker, toEndMarker); + if (window.Alpine && window.Alpine.closestDataStack) { + toContainer._x_dataStack = window.Alpine.closestDataStack(fromContainer); + toContainer._x_dataStack && window.Alpine.cloneNode(fromContainer, toContainer); + } + context.patchChildren(fromBlock, toBlock); + } + function createMorphContext(options = {}) { + let defaultGetKey = (el) => el.getAttribute("key"); + let noop = () => { + }; + let context = { + key: options.key || defaultGetKey, + lookahead: options.lookahead || false, + updating: options.updating || noop, + updated: options.updated || noop, + removing: options.removing || noop, + removed: options.removed || noop, + adding: options.adding || noop, + added: options.added || noop + }; + context.patch = function(from, to) { + if (context.differentElementNamesTypesOrKeys(from, to)) { + return context.swapElements(from, to); } let updateChildrenOnly = false; - if (shouldSkip(updating, from2, to, () => updateChildrenOnly = true)) + let skipChildren = false; + let skipUntil = (predicate) => context.skipUntilCondition = predicate; + if (shouldSkipChildren(context.updating, () => skipChildren = true, skipUntil, from, to, () => updateChildrenOnly = true)) return; - if (from2.nodeType === 1 && window.Alpine) { - window.Alpine.cloneNode(from2, to); - if (from2._x_teleport && to._x_teleport) { - patch(from2._x_teleport, to._x_teleport); + if (from.nodeType === 1 && window.Alpine) { + window.Alpine.cloneNode(from, to); + if (from._x_teleport && to._x_teleport) { + context.patch(from._x_teleport, to._x_teleport); } } if (textOrComment(to)) { - patchNodeValue(from2, to); - updated(from2, to); + context.patchNodeValue(from, to); + context.updated(from, to); return; } if (!updateChildrenOnly) { - patchAttributes(from2, to); + context.patchAttributes(from, to); } - updated(from2, to); - patchChildren(from2, to); - } - function differentElementNamesTypesOrKeys(from2, to) { - return from2.nodeType != to.nodeType || from2.nodeName != to.nodeName || getKey(from2) != getKey(to); - } - function swapElements(from2, to) { - if (shouldSkip(removing, from2)) + context.updated(from, to); + if (!skipChildren) { + context.patchChildren(from, to); + } + }; + context.differentElementNamesTypesOrKeys = function(from, to) { + return from.nodeType != to.nodeType || from.nodeName != to.nodeName || context.getKey(from) != context.getKey(to); + }; + context.swapElements = function(from, to) { + if (shouldSkip(context.removing, from)) return; let toCloned = to.cloneNode(true); - if (shouldSkip(adding, toCloned)) + if (shouldSkip(context.adding, toCloned)) return; - from2.replaceWith(toCloned); - removed(from2); - added(toCloned); - } - function patchNodeValue(from2, to) { + from.replaceWith(toCloned); + context.removed(from); + context.added(toCloned); + }; + context.patchNodeValue = function(from, to) { let value = to.nodeValue; - if (from2.nodeValue !== value) { - from2.nodeValue = value; + if (from.nodeValue !== value) { + from.nodeValue = value; } - } - function patchAttributes(from2, to) { - if (from2._x_transitioning) + }; + context.patchAttributes = function(from, to) { + if (from._x_transitioning) return; - if (from2._x_isShown && !to._x_isShown) { + if (from._x_isShown && !to._x_isShown) { return; } - if (!from2._x_isShown && to._x_isShown) { + if (!from._x_isShown && to._x_isShown) { return; } - let domAttributes = Array.from(from2.attributes); + let domAttributes = Array.from(from.attributes); let toAttributes = Array.from(to.attributes); for (let i = domAttributes.length - 1; i >= 0; i--) { let name = domAttributes[i].name; if (!to.hasAttribute(name)) { - from2.removeAttribute(name); + if (name === "open" && from.nodeName === "DIALOG" && from.open) { + from.close(); + } else { + from.removeAttribute(name); + } } } for (let i = toAttributes.length - 1; i >= 0; i--) { let name = toAttributes[i].name; let value = toAttributes[i].value; - if (from2.getAttribute(name) !== value) { - from2.setAttribute(name, value); + if (from.getAttribute(name) !== value) { + from.setAttribute(name, value); } } - } - function patchChildren(from2, to) { - let fromKeys = keyToMap(from2.children); + }; + context.patchChildren = function(from, to) { + let fromKeys = context.keyToMap(from.children); let fromKeyHoldovers = {}; let currentTo = getFirstNode(to); - let currentFrom = getFirstNode(from2); + let currentFrom = getFirstNode(from); while (currentTo) { seedingMatchingId(currentTo, currentFrom); - let toKey = getKey(currentTo); - let fromKey = getKey(currentFrom); + let toKey = context.getKey(currentTo); + let fromKey = context.getKey(currentFrom); + if (context.skipUntilCondition) { + let fromDone = !currentFrom || context.skipUntilCondition(currentFrom); + let toDone = !currentTo || context.skipUntilCondition(currentTo); + if (fromDone && toDone) { + context.skipUntilCondition = null; + } else { + if (!fromDone) + currentFrom = currentFrom && getNextSibling(from, currentFrom); + if (!toDone) + currentTo = currentTo && getNextSibling(to, currentTo); + continue; + } + } if (!currentFrom) { if (toKey && fromKeyHoldovers[toKey]) { let holdover = fromKeyHoldovers[toKey]; - from2.appendChild(holdover); + from.appendChild(holdover); currentFrom = holdover; + fromKey = context.getKey(currentFrom); } else { - if (!shouldSkip(adding, currentTo)) { - let clone2 = currentTo.cloneNode(true); - from2.appendChild(clone2); - added(clone2); + if (!shouldSkip(context.adding, currentTo)) { + let clone3 = currentTo.cloneNode(true); + from.appendChild(clone3); + context.added(clone3); } currentTo = getNextSibling(to, currentTo); continue; @@ -8249,7 +13500,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let nestedIfCount = 0; let fromBlockStart = currentFrom; while (currentFrom) { - let next = getNextSibling(from2, currentFrom); + let next = getNextSibling(from, currentFrom); if (isIf(next)) { nestedIfCount++; } else if (isEnd(next) && nestedIfCount > 0) { @@ -8278,17 +13529,17 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let toBlockEnd = currentTo; let fromBlock = new Block(fromBlockStart, fromBlockEnd); let toBlock = new Block(toBlockStart, toBlockEnd); - patchChildren(fromBlock, toBlock); + context.patchChildren(fromBlock, toBlock); continue; } - if (currentFrom.nodeType === 1 && lookahead && !currentFrom.isEqualNode(currentTo)) { + if (currentFrom.nodeType === 1 && context.lookahead && !currentFrom.isEqualNode(currentTo)) { let nextToElementSibling = getNextSibling(to, currentTo); let found = false; while (!found && nextToElementSibling) { if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) { found = true; - currentFrom = addNodeBefore(from2, currentTo, currentFrom); - fromKey = getKey(currentFrom); + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); + fromKey = context.getKey(currentFrom); } nextToElementSibling = getNextSibling(to, nextToElementSibling); } @@ -8296,9 +13547,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (toKey !== fromKey) { if (!toKey && fromKey) { fromKeyHoldovers[fromKey] = currentFrom; - currentFrom = addNodeBefore(from2, currentTo, currentFrom); + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); fromKeyHoldovers[fromKey].remove(); - currentFrom = getNextSibling(from2, currentFrom); + currentFrom = getNextSibling(from, currentFrom); currentTo = getNextSibling(to, currentTo); continue; } @@ -8306,6 +13557,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (fromKeys[toKey]) { currentFrom.replaceWith(fromKeys[toKey]); currentFrom = fromKeys[toKey]; + fromKey = context.getKey(currentFrom); } } if (toKey && fromKey) { @@ -8314,66 +13566,57 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); fromKeyHoldovers[fromKey] = currentFrom; currentFrom.replaceWith(fromKeyNode); currentFrom = fromKeyNode; + fromKey = context.getKey(currentFrom); } else { fromKeyHoldovers[fromKey] = currentFrom; - currentFrom = addNodeBefore(from2, currentTo, currentFrom); + currentFrom = context.addNodeBefore(from, currentTo, currentFrom); fromKeyHoldovers[fromKey].remove(); - currentFrom = getNextSibling(from2, currentFrom); + currentFrom = getNextSibling(from, currentFrom); currentTo = getNextSibling(to, currentTo); continue; } } } - let currentFromNext = currentFrom && getNextSibling(from2, currentFrom); - patch(currentFrom, currentTo); + let currentFromNext = currentFrom && getNextSibling(from, currentFrom); + context.patch(currentFrom, currentTo); currentTo = currentTo && getNextSibling(to, currentTo); currentFrom = currentFromNext; } let removals = []; while (currentFrom) { - if (!shouldSkip(removing, currentFrom)) + if (!shouldSkip(context.removing, currentFrom)) removals.push(currentFrom); - currentFrom = getNextSibling(from2, currentFrom); + currentFrom = getNextSibling(from, currentFrom); } while (removals.length) { let domForRemoval = removals.shift(); domForRemoval.remove(); - removed(domForRemoval); + context.removed(domForRemoval); } - } - function getKey(el) { - return el && el.nodeType === 1 && key(el); - } - function keyToMap(els2) { + }; + context.getKey = function(el) { + return el && el.nodeType === 1 && context.key(el); + }; + context.keyToMap = function(els2) { let map = {}; for (let el of els2) { - let theKey = getKey(el); + let theKey = context.getKey(el); if (theKey) { map[theKey] = el; } } return map; - } - function addNodeBefore(parent, node, beforeMe) { - if (!shouldSkip(adding, node)) { - let clone2 = node.cloneNode(true); - parent.insertBefore(clone2, beforeMe); - added(clone2); - return clone2; + }; + context.addNodeBefore = function(parent, node, beforeMe) { + if (!shouldSkip(context.adding, node)) { + let clone3 = node.cloneNode(true); + parent.insertBefore(clone3, beforeMe); + context.added(clone3); + return clone3; } return node; - } - assignOptions(options); - fromEl = from; - toEl = typeof toHtml === "string" ? createElement(toHtml) : toHtml; - if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) { - toEl._x_dataStack = window.Alpine.closestDataStack(from); - toEl._x_dataStack && window.Alpine.cloneNode(from, toEl); - } - patch(from, toEl); - fromEl = void 0; - toEl = void 0; - return from; + }; + return context; } morph.step = () => { }; @@ -8384,6 +13627,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); hook(...args, () => skip = true); return skip; } + function shouldSkipChildren(hook, skipChildren, skipUntil, ...args) { + let skip = false; + hook(...args, () => skip = true, skipChildren, skipUntil); + return skip; + } var patched = false; function createElement(html) { const template = document.createElement("template"); @@ -8449,7 +13697,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (!name.includes("@")) { return original.call(this, name, value); } - hostDiv.innerHTML = `<span ${name}="${value}"></span>`; + let escapedValue = value.replace(/&/g, "&").replace(/"/g, """); + hostDiv.innerHTML = `<span ${name}="${escapedValue}"></span>`; let attr = hostDiv.firstElementChild.getAttributeNode(name); hostDiv.firstElementChild.removeAttributeNode(attr); this.setAttributeNode(attr); @@ -8459,16 +13708,19 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let fromId = from && from._x_bindings && from._x_bindings.id; if (!fromId) return; + if (!to.setAttribute) + return; to.setAttribute("id", fromId); to.id = fromId; } - function src_default8(Alpine3) { + function src_default9(Alpine3) { Alpine3.morph = morph; + Alpine3.morphBetween = morphBetween; } - var module_default8 = src_default8; + var module_default9 = src_default9; // node_modules/@alpinejs/mask/dist/module.esm.js - function src_default9(Alpine3) { + function src_default10(Alpine3) { Alpine3.directive("mask", (el, { value, expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup: cleanup2 }) => { let templateFn = () => expression; let lastInputValue = ""; @@ -8493,8 +13745,24 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } else { processInputValue(el, false); } - if (el._x_model) - el._x_model.set(el.value); + if (el._x_model) { + if (el._x_model.get() !== el.value) { + if (!(el._x_model.get() === null && el.value === "")) { + el._x_model.set(el.value); + } + } + let updater = el._x_forceModelUpdate; + el._x_forceModelUpdate = (value2) => { + value2 = String(value2); + let template = templateFn(value2); + if (template && template !== "false") { + value2 = formatInput(template, value2); + } + lastInputValue = value2; + updater(value2); + el._x_model.set(value2); + }; + } }); const controller = new AbortController(); cleanup2(() => { @@ -8514,7 +13782,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return lastInputValue = el2.value; } let setInput = () => { - lastInputValue = el2.value = formatInput(input, template); + lastInputValue = el2.value = formatInput(template, input); }; if (shouldRestoreCursor) { restoreCursorPosition(el2, template, () => { @@ -8522,72 +13790,45 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); } else { setInput(); - } - } - function formatInput(input, template) { - if (input === "") - return ""; - let strippedDownInput = stripDown(template, input); - let rebuiltInput = buildUp(template, strippedDownInput); - return rebuiltInput; - } - }).before("model"); - } - function restoreCursorPosition(el, template, callback) { - let cursorPosition = el.selectionStart; - let unformattedValue = el.value; - callback(); - let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition); - let newPosition = buildUp(template, stripDown(template, beforeLeftOfCursorBeforeFormatting)).length; - el.setSelectionRange(newPosition, newPosition); - } - function stripDown(template, input) { - let inputToBeStripped = input; - let output = ""; - let regexes = { - "9": /[0-9]/, - "a": /[a-zA-Z]/, - "*": /[a-zA-Z0-9]/ - }; - let wildcardTemplate = ""; - for (let i = 0; i < template.length; i++) { - if (["9", "a", "*"].includes(template[i])) { - wildcardTemplate += template[i]; - continue; - } - for (let j = 0; j < inputToBeStripped.length; j++) { - if (inputToBeStripped[j] === template[i]) { - inputToBeStripped = inputToBeStripped.slice(0, j) + inputToBeStripped.slice(j + 1); - break; - } - } - } - for (let i = 0; i < wildcardTemplate.length; i++) { - let found = false; - for (let j = 0; j < inputToBeStripped.length; j++) { - if (regexes[wildcardTemplate[i]].test(inputToBeStripped[j])) { - output += inputToBeStripped[j]; - inputToBeStripped = inputToBeStripped.slice(0, j) + inputToBeStripped.slice(j + 1); - found = true; - break; - } - } - if (!found) - break; - } - return output; + } + } + }).before("model"); + } + function restoreCursorPosition(el, template, callback) { + let cursorPosition = el.selectionStart; + let unformattedValue = el.value; + callback(); + let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition); + let newPosition = formatInput( + template, + beforeLeftOfCursorBeforeFormatting + ).length; + el.setSelectionRange(newPosition, newPosition); } - function buildUp(template, input) { - let clean = Array.from(input); + var regexes = { + "9": /[0-9]/, + "a": /[a-zA-Z]/, + "*": /[a-zA-Z0-9]/ + }; + function formatInput(template, input) { + let templateMark = 0; + let inputMark = 0; let output = ""; - for (let i = 0; i < template.length; i++) { - if (!["9", "a", "*"].includes(template[i])) { - output += template[i]; - continue; + while (templateMark < template.length && inputMark < input.length) { + let templateChar = template[templateMark]; + let inputChar = input[inputMark]; + if (templateChar in regexes) { + if (regexes[templateChar].test(inputChar)) { + output += inputChar; + templateMark++; + } + inputMark++; + } else { + output += templateChar; + templateMark++; + if (templateChar === input[inputMark]) + inputMark++; } - if (clean.length === 0) - break; - output += clean.shift(); } return output; } @@ -8630,28 +13871,29 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); return template; } - var module_default9 = src_default9; + var module_default10 = src_default10; // js/lifecycle.js function start2() { setTimeout(() => ensureLivewireScriptIsntMisplaced()); dispatch(document, "livewire:init"); dispatch(document, "livewire:initializing"); - module_default.plugin(module_default8); - module_default.plugin(history2); + module_default.plugin(module_default9); + module_default.plugin(history); module_default.plugin(module_default5); module_default.plugin(module_default6); - module_default.plugin(module_default2); module_default.plugin(module_default7); + module_default.plugin(module_default2); + module_default.plugin(module_default8); module_default.plugin(module_default3); module_default.plugin(module_default4); module_default.plugin(navigate_default); - module_default.plugin(module_default9); + module_default.plugin(module_default10); module_default.addRootSelector(() => "[wire\\:id]"); module_default.onAttributesAdded((el, attributes) => { if (!Array.from(attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) return; - let component = closestComponent(el, false); + let component = findComponentByEl(el, false); if (!component) return; attributes.forEach((attribute) => { @@ -8663,26 +13905,45 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } }); }); }); - module_default.interceptInit(module_default.skipDuringClone((el) => { - if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) - return; - if (el.hasAttribute("wire:id")) { - let component2 = initComponent(el); - module_default.onAttributeRemoved(el, "wire:id", () => { - destroyComponent(component2.id); - }); - } - let component = closestComponent(el, false); - if (component) { - trigger2("element.init", { el, component }); - let directives2 = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name)); - directives2.forEach((directive3) => { - trigger2("directive.init", { el, component, directive: directive3, cleanup: (callback) => { - module_default.onAttributeRemoved(el, directive3.raw, callback); - } }); - }); - } - })); + module_default.interceptInit( + module_default.skipDuringClone( + (el) => { + if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) + return; + if (el.hasAttribute("wire:id") && !el.__livewire && !hasComponent(el.getAttribute("wire:id"))) { + let component2 = initComponent(el); + module_default.onAttributeRemoved(el, "wire:id", () => { + destroyComponent(component2.id); + }); + } + let directives2 = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name)); + directives2.forEach((directive3) => { + trigger2("directive.global.init", { el, directive: directive3, cleanup: (callback) => { + module_default.onAttributeRemoved(el, directive3.raw, callback); + } }); + }); + let component = findComponentByEl(el, false); + if (component) { + trigger2("element.init", { el, component }); + directives2.forEach((directive3) => { + trigger2("directive.init", { el, component, directive: directive3, cleanup: (callback) => { + module_default.onAttributeRemoved(el, directive3.raw, callback); + } }); + }); + } + }, + (el) => { + if (!Array.from(el.attributes).some((attribute) => matchesForLivewireDirective(attribute.name))) + return; + let directives2 = Array.from(el.getAttributeNames()).filter((name) => matchesForLivewireDirective(name)).map((name) => extractDirective(el, name)); + directives2.forEach((directive3) => { + trigger2("directive.global.init", { el, directive: directive3, cleanup: (callback) => { + module_default.onAttributeRemoved(el, directive3.raw, callback); + } }); + }); + } + ) + ); module_default.start(); setTimeout(() => window.Livewire.initialRenderIsFinished = true); dispatch(document, "livewire:initialized"); @@ -8704,6 +13965,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function registerListeners(component, listeners2) { listeners2.forEach((name) => { let handler4 = (e) => { + if (component.isLazy && !component.hasBeenLazyLoaded) + return; if (e.__livewire) e.__livewire.receivedBy.push(component); component.$wire.call("__dispatch", name, e.detail || {}); @@ -8711,6 +13974,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); window.addEventListener(name, handler4); component.addCleanup(() => window.removeEventListener(name, handler4)); component.el.addEventListener(name, (e) => { + if (component.isLazy && !component.hasBeenLazyLoaded) + return; if (!e.__livewire) return; if (e.bubbles) @@ -8722,6 +13987,72 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); } + // js/evaluator.js + function getAlpineScopeKeys(el) { + let keys = []; + let currentEl = el; + while (currentEl) { + if (currentEl._x_dataStack && currentEl._x_dataStack.length > 0) { + let ownScope = currentEl._x_dataStack[0]; + for (let key of Object.keys(ownScope)) { + if (!keys.includes(key) && !key.startsWith("$")) + keys.push(key); + } + } + if (currentEl.hasAttribute && currentEl.hasAttribute("wire:id")) + break; + currentEl = currentEl.parentElement; + } + return keys; + } + function evaluateExpression(el, expression, options = {}) { + if (!expression || expression.trim() === "") + return; + let result = module_default.evaluateRaw(el, expression, options); + if (result instanceof Promise) { + result.catch(() => { + }); + } + return result; + } + function evaluateActionExpression(el, expression, options = {}) { + if (!expression || expression.trim() === "") + return; + let contextualExpression = contextualizeExpression(expression, el); + try { + let result = module_default.evaluateRaw(el, contextualExpression, options); + if (result instanceof Promise && result._livewireAction) { + result.catch(() => { + }); + } + return result; + } catch (error2) { + console.warn(`Livewire Expression Error: ${error2.message} + +${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); + console.error(error2); + } + } + function contextualizeExpression(expression, el) { + let SKIP = ["JSON", "true", "false", "null", "undefined", "this", "$wire", "$event"]; + if (el) { + SKIP.push(...getAlpineScopeKeys(el)); + } + let strings = []; + let result = expression.replace(/(["'`])(?:(?!\1)[^\\]|\\.)*\1/g, (m) => { + strings.push(m); + return `___${strings.length - 1}___`; + }); + result = result.replace(/(^|[^.\w$])(\$?[a-zA-Z_]\w*)/g, (m, pre, ident, offset2) => { + if (SKIP.includes(ident) || /^___\d+___$/.test(ident)) + return pre + ident; + if (result[offset2 + m.length] === ":") + return pre + ident; + return pre + "$wire." + ident; + }); + return result.replace(/___(\d+)___/g, (m, i) => strings[i]); + } + // js/features/supportScriptsAndAssets.js var executedScripts = /* @__PURE__ */ new WeakMap(); var executedAssets = /* @__PURE__ */ new Set(); @@ -8750,8 +14081,15 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); Object.entries(scripts).forEach(([key, content]) => { onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, () => { let scriptContent = extractScriptTagContent(content); + scriptContent = scriptContent.includes("await") ? `(async()=>{ ${scriptContent} })()` : `(()=>{ ${scriptContent} })()`; module_default.dontAutoEvaluateFunctions(() => { - module_default.evaluate(component.el, scriptContent, { "$wire": component.$wire }); + evaluateExpression(component.el, scriptContent, { + context: component.$wire, + scope: { + "$wire": component.$wire, + "$js": component.$wire.js + } + }); }); }); }); @@ -8772,17 +14110,18 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } function extractScriptTagContent(rawHtml) { let scriptRegex = /<script\b[^>]*>([\s\S]*?)<\/script>/gm; - let matches2 = scriptRegex.exec(rawHtml); - let innards = matches2 && matches2[1] ? matches2[1].trim() : ""; + let matches3 = scriptRegex.exec(rawHtml); + let innards = matches3 && matches3[1] ? matches3[1].trim() : ""; return innards; } async function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callback) { if (executedAssets.has(key)) return; - await callback(); executedAssets.add(key); + await callback(); } async function addAssetsToHeadTagOfPage(rawHtml) { + rawHtml = replaceNoncesInHtml(rawHtml); let newDocument = new DOMParser().parseFromString(rawHtml, "text/html"); let newHead = document.adoptNode(newDocument.head); for (let child of newHead.children) { @@ -8795,7 +14134,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); async function runAssetSynchronously(child) { return new Promise((resolve, reject) => { if (isScript2(child)) { - let script = cloneScriptTag2(child); + let script = cloneScriptTag(child); if (script.src) { script.onload = () => resolve(); script.onerror = () => reject(); @@ -8812,99 +14151,255 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function isScript2(el) { return el.tagName.toLowerCase() === "script"; } - function cloneScriptTag2(el) { - let script = document.createElement("script"); - script.textContent = el.textContent; - script.async = el.async; - for (let attr of el.attributes) { - script.setAttribute(attr.name, attr.value); - } - return script; - } // js/features/supportJsEvaluation.js + module_default.magic("js", (el) => { + let component = findComponentByEl(el); + return component.$wire.js; + }); on2("effect", ({ component, effects }) => { let js = effects.js; let xjs = effects.xjs; if (js) { Object.entries(js).forEach(([method, body]) => { overrideMethod(component, method, () => { - module_default.evaluate(component.el, body); + evaluateExpression(component.el, body); }); }); } if (xjs) { - xjs.forEach((expression) => { - module_default.evaluate(component.el, expression); + xjs.forEach(({ expression, params }) => { + params = Object.values(params); + evaluateExpression(component.el, expression, { scope: component.getJsActions(), params }); }); } }); + // js/directives/wire-transition.js + var defaultName = "match-element"; + globalDirective("transition", ({ el, directive: directive3, cleanup: cleanup2 }) => { + }); + function setTransitionNames(root, options = {}) { + root.querySelectorAll("[wire\\:transition]").forEach((el) => { + if (el.style.viewTransitionName) + return; + let name = el.getAttribute("wire:transition"); + if (!name && options.type) + return; + el.style.viewTransitionName = name || defaultName; + }); + } + function clearTransitionNames(root) { + root.querySelectorAll("[wire\\:transition]").forEach((el) => { + el.style.viewTransitionName = ""; + }); + } + async function transitionDomMutation(fromEl, toEl, callback, options = {}) { + if (options.skip) + return callback(); + if (!fromEl.querySelector("[wire\\:transition]") && !toEl.querySelector("[wire\\:transition]")) + return callback(); + if (typeof document.startViewTransition !== "function") { + return callback(); + } + if (document.querySelector("dialog:modal")) + return callback(); + setTransitionNames(fromEl, options); + let style = document.createElement("style"); + style.textContent = ` + @media (prefers-reduced-motion: reduce) { + ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { + animation: none !important; + } + } + + ::view-transition-old(root) { + animation: none !important; + opacity: 0 !important; + } + + ::view-transition-new(root) { + animation: none !important; + opacity: 1 !important; + } + `; + document.head.appendChild(style); + let update = () => { + callback(); + setTransitionNames(fromEl, options); + }; + let transitionConfig = { update }; + if (options.type) { + transitionConfig.types = [options.type]; + } + let cleanup2 = () => { + style.remove(); + clearTransitionNames(fromEl); + }; + let skipOnDialog = (transition2) => { + let observer2 = new MutationObserver(() => { + if (document.querySelector("dialog:modal")) { + transition2.skipTransition(); + observer2.disconnect(); + } + }); + observer2.observe(document.documentElement, { + attributes: true, + attributeFilter: ["open"], + subtree: true + }); + transition2.finished.finally(() => observer2.disconnect()); + }; + try { + let transition2 = document.startViewTransition(transitionConfig); + skipOnDialog(transition2); + transition2.finished.finally(cleanup2); + await transition2.updateCallbackDone; + } catch (e) { + let transition2 = document.startViewTransition(update); + skipOnDialog(transition2); + transition2.finished.finally(cleanup2); + await transition2.updateCallbackDone; + } + } + // js/morph.js - function morph2(component, el, html) { - let wrapperTag = el.parentElement ? el.parentElement.tagName.toLowerCase() : "div"; + async function morph2(component, el, html) { + let wrapperTag = getTagName(el.parentElement); let wrapper = document.createElement(wrapperTag); wrapper.innerHTML = html; let parentComponent; try { - parentComponent = closestComponent(el.parentElement); + parentComponent = findComponentByEl(el.parentElement); } catch (e) { } parentComponent && (wrapper.__livewire = parentComponent); let to = wrapper.firstElementChild; + to.setAttribute("wire:snapshot", component.snapshotEncoded); + let effects = { ...component.effects }; + delete effects.html; + to.setAttribute("wire:effects", JSON.stringify(effects)); to.__livewire = component; trigger2("morph", { el, toEl: to, component }); - module_default.morph(el, to, { - updating: (el2, toEl, childrenOnly, skip) => { - if (isntElement(el2)) + let existingComponentsMap = {}; + el.querySelectorAll("[wire\\:id]").forEach((component2) => { + existingComponentsMap[component2.getAttribute("wire:id")] = component2; + }); + to.querySelectorAll("[wire\\:id]").forEach((child) => { + if (child.hasAttribute("wire:snapshot")) + return; + let wireId = child.getAttribute("wire:id"); + let existingComponent = existingComponentsMap[wireId]; + if (existingComponent) { + child.replaceWith(existingComponent.cloneNode(true)); + } + }); + let transitionOptions = component.effects.transition || {}; + await transitionDomMutation(el, to, () => { + module_default.morph(el, to, getMorphConfig(component)); + }, transitionOptions); + trigger2("morphed", { el, component }); + } + async function morphFragment(component, startNode, endNode, toHTML) { + let fromContainer = startNode.parentElement; + let fromContainerTag = getTagName(fromContainer); + let toContainer = document.createElement(fromContainerTag); + toContainer.innerHTML = toHTML; + toContainer.__livewire = component; + let parentElement = component.el.parentElement; + let parentElementTag = getTagName(parentElement); + let parentComponent; + try { + parentComponent = parentElement ? findComponentByEl(parentElement) : null; + } catch (e) { + } + if (parentComponent) { + let parentProviderWrapper = document.createElement(parentElementTag); + parentProviderWrapper.appendChild(toContainer); + parentProviderWrapper.__livewire = parentComponent; + } + trigger2("island.morph", { startNode, endNode, component }); + let transitionOptions = component.effects.transition || {}; + let islandHasTransition = false; + let node = startNode.nextSibling; + while (node && node !== endNode) { + if (node.nodeType === 1 && (node.hasAttribute?.("wire:transition") || node.querySelector?.("[wire\\:transition]"))) { + islandHasTransition = true; + break; + } + node = node.nextSibling; + } + let fromEl = islandHasTransition ? fromContainer : document.createElement("div"); + await transitionDomMutation(fromEl, toContainer, () => { + module_default.morphBetween(startNode, endNode, toContainer, getMorphConfig(component)); + }, transitionOptions); + trigger2("island.morphed", { startNode, endNode, component }); + } + function getMorphConfig(component) { + return { + updating: (el, toEl, childrenOnly, skip, skipChildren, skipUntil) => { + if (isStartFragmentMarker(el) && isStartFragmentMarker(toEl)) { + let metadata = extractFragmentMetadataFromMarkerNode(toEl); + if (metadata.mode !== "morph") { + skipUntil((node) => { + if (isEndFragmentMarker(node)) { + let endMarkerMetadata = extractFragmentMetadataFromMarkerNode(node); + return endMarkerMetadata.token === metadata.token; + } + return false; + }); + } + } + if (isntElement(el)) return; - trigger2("morph.updating", { el: el2, toEl, component, skip, childrenOnly }); - if (el2.__livewire_replace === true) - el2.innerHTML = toEl.innerHTML; - if (el2.__livewire_replace_self === true) { - el2.outerHTML = toEl.outerHTML; + trigger2("morph.updating", { el, toEl, component, skip, childrenOnly, skipChildren, skipUntil }); + if (el.__livewire_replace === true) + el.innerHTML = toEl.innerHTML; + if (el.__livewire_replace_self === true) { + el.outerHTML = toEl.outerHTML; return skip(); } - if (el2.__livewire_ignore === true) + if (el.__livewire_ignore === true) return skip(); - if (el2.__livewire_ignore_self === true) + if (el.__livewire_ignore_self === true) childrenOnly(); - if (isComponentRootEl(el2) && el2.getAttribute("wire:id") !== component.id) + if (el.__livewire_ignore_children === true) + return skipChildren(); + if (isComponentRootEl(el) && el.getAttribute("wire:id") !== component.id) return skip(); - if (isComponentRootEl(el2)) + if (isComponentRootEl(el)) toEl.__livewire = component; }, - updated: (el2) => { - if (isntElement(el2)) + updated: (el) => { + if (isntElement(el)) return; - trigger2("morph.updated", { el: el2, component }); + trigger2("morph.updated", { el, component }); }, - removing: (el2, skip) => { - if (isntElement(el2)) + removing: (el, skip) => { + if (isntElement(el)) return; - trigger2("morph.removing", { el: el2, component, skip }); + trigger2("morph.removing", { el, component, skip }); }, - removed: (el2) => { - if (isntElement(el2)) + removed: (el) => { + if (isntElement(el)) return; - trigger2("morph.removed", { el: el2, component }); + trigger2("morph.removed", { el, component }); }, - adding: (el2) => { - trigger2("morph.adding", { el: el2, component }); + adding: (el) => { + trigger2("morph.adding", { el, component }); }, - added: (el2) => { - if (isntElement(el2)) + added: (el) => { + if (isntElement(el)) return; - const closestComponentId = closestComponent(el2).id; - trigger2("morph.added", { el: el2 }); + trigger2("morph.added", { el }); }, - key: (el2) => { - if (isntElement(el2)) + key: (el) => { + if (isntElement(el)) return; - return el2.hasAttribute(`wire:key`) ? el2.getAttribute(`wire:key`) : el2.hasAttribute(`wire:id`) ? el2.getAttribute(`wire:id`) : el2.id; + return el.hasAttribute(`wire:id`) ? el.getAttribute(`wire:id`) : el.hasAttribute(`wire:key`) ? el.getAttribute(`wire:key`) : el.id; }, lookahead: false - }); + }; } function isntElement(el) { return typeof el.hasAttribute !== "function"; @@ -8912,29 +14407,44 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function isComponentRootEl(el) { return el.hasAttribute("wire:id"); } + function getTagName(el) { + let tag = el ? el.tagName.toLowerCase() : "div"; + let customElement = customElements.get(tag); + return customElement ? customElement.name : tag; + } // js/features/supportMorphDom.js - on2("effect", ({ component, effects }) => { - let html = effects.html; - if (!html) - return; - queueMicrotask(() => { - queueMicrotask(() => { - morph2(component, component.el, html); + interceptMessage(({ message, onSuccess }) => { + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let html = payload.effects.html; + if (!html) + return; + await morph2(message.component, message.component.el, html); }); }); }); // js/features/supportDispatches.js on2("effect", ({ component, effects }) => { - dispatchEvents(component, effects.dispatches || []); + queueMicrotask(() => { + queueMicrotask(() => { + queueMicrotask(() => { + dispatchEvents(component, effects.dispatches || []); + }); + }); + }); }); function dispatchEvents(component, dispatches) { - dispatches.forEach(({ name, params = {}, self = false, to }) => { + dispatches.forEach(({ name, params = {}, self = false, component: componentName, ref, el }) => { if (self) dispatchSelf(component, name, params); - else if (to) - dispatchTo(to, name, params); + else if (componentName) + dispatchTo(componentName, name, params); + else if (ref) + dispatchRef(component, ref, name, params); + else if (el) + dispatchEl(component, el, name, params); else dispatch3(component, name, params); }); @@ -8977,11 +14487,23 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } function shouldMarkDisabled(el) { let tag = el.tagName.toLowerCase(); + let inputTypesThatDontSupportReadonly = [ + "hidden", + "range", + "color", + "checkbox", + "radio", + "file", + "submit", + "image", + "reset", + "button" + ]; if (tag === "select") return true; if (tag === "button" && el.type === "submit") return true; - if (tag === "input" && (el.type === "checkbox" || el.type === "radio")) + if (tag === "input" && inputTypesThatDontSupportReadonly.includes(el.type)) return true; return false; } @@ -9001,74 +14523,6 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return undo; } - // js/features/supportPropsAndModelables.js - on2("commit.pooling", ({ commits }) => { - commits.forEach((commit) => { - let component = commit.component; - getDeepChildrenWithBindings(component, (child) => { - child.$wire.$commit(); - }); - }); - }); - on2("commit.pooled", ({ pools }) => { - let commits = getPooledCommits(pools); - commits.forEach((commit) => { - let component = commit.component; - getDeepChildrenWithBindings(component, (child) => { - colocateCommitsByComponent(pools, component, child); - }); - }); - }); - function getPooledCommits(pools) { - let commits = []; - pools.forEach((pool) => { - pool.commits.forEach((commit) => { - commits.push(commit); - }); - }); - return commits; - } - function colocateCommitsByComponent(pools, component, foreignComponent) { - let pool = findPoolWithComponent(pools, component); - let foreignPool = findPoolWithComponent(pools, foreignComponent); - let foreignCommit = foreignPool.findCommitByComponent(foreignComponent); - foreignPool.delete(foreignCommit); - pool.add(foreignCommit); - pools.forEach((pool2) => { - if (pool2.empty()) - pools.delete(pool2); - }); - } - function findPoolWithComponent(pools, component) { - for (let [idx, pool] of pools.entries()) { - if (pool.hasCommitFor(component)) - return pool; - } - } - function getDeepChildrenWithBindings(component, callback) { - getDeepChildren(component, (child) => { - if (hasReactiveProps(child) || hasWireModelableBindings(child)) { - callback(child); - } - }); - } - function hasReactiveProps(component) { - let meta = component.snapshot.memo; - let props = meta.props; - return !!props; - } - function hasWireModelableBindings(component) { - let meta = component.snapshot.memo; - let bindings = meta.bindings; - return !!bindings; - } - function getDeepChildren(component, callback) { - component.children.forEach((child) => { - callback(child); - getDeepChildren(child, callback); - }); - } - // js/features/supportFileDownloads.js on2("commit", ({ succeed }) => { succeed(({ effects }) => { @@ -9076,7 +14530,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (!download) return; let urlObject = window.webkitURL || window.URL; - let url = urlObject.createObjectURL(base64toBlob(download.content, download.contentType)); + let url = urlObject.createObjectURL( + base64toBlob(download.content, download.contentType) + ); let invisibleLink = document.createElement("a"); invisibleLink.style.display = "none"; invisibleLink.href = url; @@ -9105,32 +14561,6 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return new Blob(byteArrays, { type: contentType }); } - // js/features/supportLazyLoading.js - var componentsThatWantToBeBundled = /* @__PURE__ */ new WeakSet(); - var componentsThatAreLazy = /* @__PURE__ */ new WeakSet(); - on2("component.init", ({ component }) => { - let memo = component.snapshot.memo; - if (memo.lazyLoaded === void 0) - return; - componentsThatAreLazy.add(component); - if (memo.lazyIsolated !== void 0 && memo.lazyIsolated === false) { - componentsThatWantToBeBundled.add(component); - } - }); - on2("commit.pooling", ({ commits }) => { - commits.forEach((commit) => { - if (!componentsThatAreLazy.has(commit.component)) - return; - if (componentsThatWantToBeBundled.has(commit.component)) { - commit.isolate = false; - componentsThatWantToBeBundled.delete(commit.component); - } else { - commit.isolate = true; - } - componentsThatAreLazy.delete(commit.component); - }); - }); - // js/features/supportQueryString.js on2("effect", ({ component, effects, cleanup: cleanup2 }) => { let queryString = effects["url"]; @@ -9148,6 +14578,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); cleanup2(() => module_default.release(effectReference)); } else if (use === "push") { + let popNavigating = false; let forgetCommitHandler = on2("commit", ({ component: commitComponent, succeed }) => { if (component !== commitComponent) return; @@ -9156,15 +14587,25 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let afterValue = dataGet(component.canonical, name); if (JSON.stringify(beforeValue) === JSON.stringify(afterValue)) return; - push2(afterValue); + if (popNavigating) { + replace2(afterValue); + } else { + push2(afterValue); + } }); }); let forgetPopHandler = pop(async (newValue) => { + popNavigating = true; await component.$wire.set(name, newValue); document.querySelectorAll("input").forEach((el) => { el._x_forceModelUpdate && el._x_forceModelUpdate(el._x_model.get()); }); + requestAnimationFrame(() => popNavigating = false); }); + let currentValue = dataGet(component.ephemeral, name); + if (JSON.stringify(currentValue) !== JSON.stringify(initialValue)) { + replace2(currentValue); + } cleanup2(() => { forgetCommitHandler(); forgetPopHandler(); @@ -9173,11 +14614,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); }); function normalizeQueryStringEntry(key, value) { - let defaults = { use: "replace", alwaysShow: false }; + let defaults2 = { use: "replace", alwaysShow: false }; if (typeof value === "string") { - return { ...defaults, name: value, as: value }; + return { ...defaults2, name: value, as: value }; } else { - let fullerDefaults = { ...defaults, name: key, as: key }; + let fullerDefaults = { ...defaults2, name: key, as: key }; return { ...fullerDefaults, ...value }; } } @@ -9223,17 +14664,23 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); window.Echo.join(channel)[event_name]((e) => { dispatchSelf(component, event, [e]); }); + component.addCleanup(() => { + window.Echo.leave(channel); + }); } else { let handler4 = (e) => dispatchSelf(component, event, [e]); window.Echo.join(channel).listen(event_name, handler4); component.addCleanup(() => { - window.Echo.leaveChannel(channel); + window.Echo.leave(channel); }); } } else if (channel_type == "notification") { window.Echo.private(channel).notification((notification) => { dispatchSelf(component, event, [notification]); }); + component.addCleanup(() => { + window.Echo.private(channel).stopListening(".Illuminate\\Notifications\\Events\\BroadcastNotificationCreated"); + }); } else { console.warn("Echo channel type not yet supported"); } @@ -9241,24 +14688,41 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }); }); - // js/features/supportIsolating.js - var componentsThatAreIsolated = /* @__PURE__ */ new WeakSet(); - on2("component.init", ({ component }) => { - let memo = component.snapshot.memo; - if (memo.isolate !== true) - return; - componentsThatAreIsolated.add(component); - }); - on2("commit.pooling", ({ commits }) => { - commits.forEach((commit) => { - if (!componentsThatAreIsolated.has(commit.component)) + // js/features/supportStreaming.js + interceptMessage(({ message, onStream }) => { + onStream(({ json }) => { + let { id, type, name, el, ref, content, mode } = json; + if (type === "island") + return; + let component = findComponent(id); + let targetEl = null; + if (type === "directive") { + const replaceEl = component.el.querySelector(`[wire\\:stream\\.replace="${name}"]`); + if (replaceEl) { + targetEl = replaceEl; + mode = "replace"; + } else { + targetEl = component.el.querySelector(`[wire\\:stream="${name}"]`); + } + } else if (type === "ref") { + targetEl = findRefEl(component, ref); + } else if (type === "element") { + targetEl = component.el.querySelector(el); + } + if (!targetEl) return; - commit.isolate = true; + if (mode === "replace") { + targetEl.innerHTML = content; + } else { + targetEl.insertAdjacentHTML("beforeend", content); + } }); }); // js/features/supportNavigate.js - shouldHideProgressBar() && Alpine.navigate.disableProgressBar(); + document.addEventListener("livewire:initialized", () => { + shouldHideProgressBar() && Alpine.navigate.disableProgressBar(); + }); document.addEventListener("alpine:navigate", (e) => forwardEvent("livewire:navigate", e)); document.addEventListener("alpine:navigating", (e) => forwardEvent("livewire:navigating", e)); document.addEventListener("alpine:navigated", (e) => forwardEvent("livewire:navigated", e)); @@ -9280,51 +14744,398 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function shouldHideProgressBar() { if (!!document.querySelector("[data-no-progress-bar]")) return true; - if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === false) + if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === "data-no-progress-bar") return true; return false; } // js/features/supportRedirects.js - on2("effect", ({ effects }) => { + on2("effect", ({ effects, request }) => { if (!effects["redirect"]) return; + let preventDefault = false; + request.invokeOnRedirect({ url: effects["redirect"], preventDefault: () => preventDefault = true }); + if (preventDefault) + return; let url = effects["redirect"]; shouldRedirectUsingNavigateOr(effects, url, () => { window.location.href = url; }); }); - // js/directives/wire-transition.js - on2("morph.added", ({ el }) => { - el.__addedByMorph = true; + // js/features/supportIslands.js + interceptAction(({ action }) => { + let origin = action.origin; + if (!origin) + return; + let { el, directive: directive3 } = origin; + let islandAttr = Array.from(el.attributes).find((attr) => attr.name.startsWith("wire:island")); + if (islandAttr) { + let islandName = islandAttr.value; + let attrParts = islandAttr.name.split("."); + let isPrepend = attrParts.includes("prepend"); + let isAppend = attrParts.includes("append"); + let mode = isPrepend ? "prepend" : isAppend ? "append" : "morph"; + action.mergeMetadata({ + island: { + name: islandName, + mode + } + }); + return; + } + let fragment = closestIsland(origin.el); + if (!fragment) + return; + action.mergeMetadata({ + island: { + name: fragment.metadata.name, + mode: "morph" + } + }); + }); + interceptMessage(({ message, onSuccess, onStream }) => { + onStream(({ json }) => { + let { type, islandFragment } = json; + if (type !== "island") + return; + renderIsland(message.component, islandFragment); + }); + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let fragments = payload.effects.islandFragments || []; + fragments.forEach(async (fragmentHtml) => { + await renderIsland(message.component, fragmentHtml); + }); + }); + }); + }); + function closestIsland(el) { + return closestFragment(el, { + isMatch: ({ type }) => { + return type === "island"; + } + }); + } + async function renderIsland(component, islandHtml) { + let metadata = extractFragmentMetadataFromHtml(islandHtml); + let fragment = findFragment(component.el, { + isMatch: ({ type, token }) => { + return type === metadata.type && token === metadata.token; + } + }); + if (!fragment) + return; + let incomingMetadata = extractFragmentMetadataFromHtml(islandHtml); + let strippedContent = extractInnerHtmlFromFragmentHtml(islandHtml); + let parentElementTag = getTagName(fragment.startMarkerNode.parentElement); + let mode = incomingMetadata.mode || "morph"; + if (mode === "morph") { + await morphFragment(component, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent); + } else if (mode === "append") { + fragment.append(parentElementTag, strippedContent); + } else if (mode === "prepend") { + fragment.prepend(parentElementTag, strippedContent); + } + } + + // js/features/supportSlots.js + interceptMessage(({ message, onSuccess, onStream }) => { + onSuccess(({ payload, onMorph }) => { + onMorph(async () => { + let fragments = payload.effects.slotFragments || []; + fragments.forEach(async (fragmentHtml) => { + await renderSlot(message.component, fragmentHtml); + }); + }); + }); + }); + async function renderSlot(component, fragmentHtml) { + let metadata = extractFragmentMetadataFromHtml(fragmentHtml); + let targetComponent = findComponent(metadata.id); + let fragment = findFragment(targetComponent.el, { + isMatch: ({ name, token }) => { + return name === metadata.name && token === metadata.token; + } + }); + if (!fragment) + return; + let strippedContent = extractInnerHtmlFromFragmentHtml(fragmentHtml); + await morphFragment(targetComponent, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent); + } + + // js/features/supportDataLoading.js + interceptMessage(({ message, onSend, onFinish }) => { + let undos = []; + onSend(() => { + message.actions.forEach((action) => { + let origin = action.origin; + if (!origin) + return; + let el = origin.hasOwnProperty("targetEl") ? origin.targetEl : origin.el; + if (!el) + return; + el.setAttribute("data-loading", "true"); + undos.push(() => { + el.removeAttribute("data-loading"); + }); + }); + }); + onFinish(() => undos.forEach((undo) => undo())); + }); + + // js/directives/wire-current.js + module_default.addInitSelector(() => `[wire\\:current]`); + var onPageChanges = /* @__PURE__ */ new Map(); + document.addEventListener("livewire:navigated", () => { + onPageChanges.forEach((i) => i(new URL(window.location.href))); + }); + globalDirective("current", ({ el, directive: directive3, cleanup: cleanup2 }) => { + let expression = directive3.expression; + let options = { + exact: directive3.modifiers.includes("exact"), + strict: directive3.modifiers.includes("strict"), + ignore: directive3.modifiers.includes("ignore") + }; + if (options.ignore) + return; + if (expression.startsWith("#")) + return; + if (!el.hasAttribute("href")) + return; + let href = el.getAttribute("href"); + let hrefUrl = new URL(href, window.location.href); + let classes = expression.split(" ").filter(String); + let refreshCurrent = (url) => { + if (pathMatches(hrefUrl, url, options)) { + el.classList.add(...classes); + el.setAttribute("data-current", ""); + } else { + el.classList.remove(...classes); + el.removeAttribute("data-current"); + } + }; + refreshCurrent(new URL(window.location.href)); + onPageChanges.set(el, refreshCurrent); + cleanup2(() => onPageChanges.delete(el)); + }); + function pathMatches(hrefUrl, actualUrl, options = {}) { + if (hrefUrl.hostname !== actualUrl.hostname) + return false; + let hrefPath = options.strict ? hrefUrl.pathname : hrefUrl.pathname.replace(/\/+$/, ""); + let actualPath = options.strict ? actualUrl.pathname : actualUrl.pathname.replace(/\/+$/, ""); + if (options.exact) { + return hrefPath === actualPath; + } + let hrefPathSegments = hrefPath.split("/"); + let actualPathSegments = actualPath.split("/"); + for (let i = 0; i < hrefPathSegments.length; i++) { + if (hrefPathSegments[i] !== actualPathSegments[i]) + return false; + } + return true; + } + + // js/directives/wire-navigate.js + var wireNavigateSelectors = [ + "[wire\\:navigate]", + "[wire\\:navigate\\.hover]", + "[wire\\:navigate\\.preserve-scroll]", + "[wire\\:navigate\\.preserve-scroll\\.hover]", + "[wire\\:navigate\\.hover\\.preserve-scroll]" + ]; + var wireNavigateSelector = wireNavigateSelectors.join(", "); + var attributeMap = { + "wire:navigate": "x-navigate", + "wire:navigate.hover": "x-navigate.hover", + "wire:navigate.preserve-scroll": "x-navigate.preserve-scroll", + "wire:navigate.preserve-scroll.hover": "x-navigate.preserve-scroll.hover", + "wire:navigate.hover.preserve-scroll": "x-navigate.hover.preserve-scroll" + }; + wireNavigateSelectors.forEach((selector) => { + module_default.addInitSelector(() => selector); + }); + module_default.interceptInit( + module_default.skipDuringClone((el) => { + for (let [wireAttr, alpineDirective] of Object.entries(attributeMap)) { + if (el.hasAttribute(wireAttr)) { + module_default.bind(el, { [alpineDirective]: true }); + break; + } + } + }) + ); + document.addEventListener("alpine:navigating", () => { + Livewire.all().forEach((component) => { + component.inscribeSnapshotAndEffectsOnElement(); + }); + }); + + // js/features/supportDataCurrent.js + document.addEventListener("livewire:navigated", () => { + updateNavigateLinks(); + }); + document.addEventListener("DOMContentLoaded", () => { + updateNavigateLinks(); }); - directive2("transition", ({ el, directive: directive3, component, cleanup: cleanup2 }) => { - let visibility = module_default.reactive({ state: el.__addedByMorph ? false : true }); - module_default.bind(el, { - [directive3.rawName.replace("wire:", "x-")]: "", - "x-show"() { - return visibility.state; + function updateNavigateLinks() { + let currentUrl = new URL(window.location.href); + let options = { + exact: true + }; + document.querySelectorAll(wireNavigateSelector).forEach((el) => { + if (Array.from(el.attributes).some((attr) => attr.name.startsWith("wire:current"))) + return; + let href = el.getAttribute("href"); + if (!href || href.startsWith("#")) + return; + try { + let hrefUrl = new URL(href, window.location.href); + if (pathMatches(hrefUrl, currentUrl, options)) { + el.setAttribute("data-current", ""); + } else { + el.removeAttribute("data-current"); + } + } catch (e) { } }); - el.__addedByMorph && setTimeout(() => visibility.state = true); - let cleanups2 = []; - cleanups2.push(on2("morph.removing", ({ el: el2, skip }) => { - skip(); - el2.addEventListener("transitionend", () => { - el2.remove(); - }); - visibility.state = false; - cleanups2.push(on2("morph", ({ component: morphComponent }) => { - if (morphComponent !== component) + } + + // js/features/supportPreserveScroll.js + interceptMessage(({ message, onSuccess }) => { + onSuccess(({ onSync, onMorph, onRender }) => { + message.actions.forEach((action) => { + let origin = action.origin; + if (!origin || !origin.directive) return; - el2.remove(); - cleanups2.forEach((i) => i()); - })); - })); - cleanup2(() => cleanups2.forEach((i) => i())); + let directive3 = origin.directive; + if (!directive3.modifiers.includes("preserve-scroll")) + return; + let oldHeight; + let oldScroll; + onSync(() => { + oldHeight = document.body.scrollHeight; + oldScroll = window.scrollY; + }); + onMorph(async () => { + let heightDiff = document.body.scrollHeight - oldHeight; + window.scrollTo(0, oldScroll + heightDiff); + oldHeight = null; + oldScroll = null; + }); + }); + }); }); + // js/features/supportWireIntersect.js + module_default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:intersect")) { + let { name, value } = el.attributes[i]; + let directive3 = extractDirective(el, name); + let modifierString = name.split("wire:intersect")[1]; + let expression = value.trim(); + module_default.bind(el, { + ["x-intersect" + modifierString](e) { + directive3.eventContext = e; + let component = findComponentByEl(el, false); + if (!component) + return; + component.addActionContext({ + el, + directive: directive3 + }); + evaluateActionExpression(el, expression); + } + }); + } + } + }); + + // js/features/supportWireSort.js + module_default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:sort:item")) { + let directive3 = extractDirective(el, el.attributes[i].name); + let modifierString = directive3.modifiers.join("."); + let expression = directive3.expression; + module_default.bind(el, { + ["x-sort:item" + modifierString]() { + return expression; + } + }); + } else if (el.attributes[i].name.startsWith("wire:sort:group-id")) { + continue; + } else if (el.attributes[i].name.startsWith("wire:sort:group")) { + return; + } else if (el.attributes[i].name.startsWith("wire:sort")) { + let directive3 = extractDirective(el, el.attributes[i].name); + let attribute = directive3.rawName.replace("wire:", "x-"); + if (directive3.modifiers.includes("async")) { + attribute = attribute.replace(".async", ""); + } + if (directive3.modifiers.includes("renderless")) { + attribute = attribute.replace(".renderless", ""); + } + if (directive3.modifiers.includes("prepend")) { + attribute = attribute.replace(".prepend", ""); + } + if (directive3.modifiers.includes("append")) { + attribute = attribute.replace(".append", ""); + } + let expression = directive3.expression; + module_default.bind(el, { + [attribute]() { + setNextActionOrigin({ el, directive: directive3 }); + let sortableChildren = Array.from(el.children).filter( + (child) => child.hasAttribute("x-sort:item") || child.hasAttribute("wire:sort:item") + ); + let itemPosition = sortableChildren.findIndex((child) => child._x_sort_key === this.$item); + let position = itemPosition !== -1 ? itemPosition : this.$position; + let params = [this.$item, position]; + let scope2 = { $item: this.$item, $position: position }; + let sortId = el.getAttribute("wire:sort:group-id"); + if (sortId !== null) { + params.push(sortId); + scope2.$id = sortId; + } + evaluateActionExpression(el, expression, { scope: scope2, params }); + } + }); + } + } + }); + + // js/features/supportCssModules.js + var loadedStyles = /* @__PURE__ */ new Set(); + on2("effect", ({ component, effects }) => { + if (effects.styleModule) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/css/${encodedName}.css?v=${effects.styleModule}`; + if (!loadedStyles.has(path)) { + loadedStyles.add(path); + injectStylesheet(path); + } + } + if (effects.globalStyleModule) { + let encodedName = component.name.replace(/\./g, "--").replace(/::/g, "---").replace(/:/g, "----"); + let path = `${getModuleUrl()}/css/${encodedName}.global.css?v=${effects.globalStyleModule}`; + if (!loadedStyles.has(path)) { + loadedStyles.add(path); + injectStylesheet(path); + } + } + }); + function injectStylesheet(href) { + let link = document.createElement("link"); + link.rel = "stylesheet"; + link.href = href; + let nonce2 = getNonce(); + if (nonce2) + link.nonce = nonce2; + document.head.appendChild(link); + } + // js/debounce.js var callbacksByComponent = new WeakBag(); function callAndClearComponentDebounces(component, callback) { @@ -9338,7 +15149,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); // js/directives/wire-wildcard.js on2("directive.init", ({ el, directive: directive3, cleanup: cleanup2, component }) => { - if (["snapshot", "effects", "model", "init", "loading", "poll", "ignore", "id", "data", "key", "target", "dirty"].includes(directive3.value)) + if (["snapshot", "effects", "model", "init", "loading", "poll", "ignore", "id", "data", "key", "target", "dirty", "sort"].includes(directive3.value)) return; if (customDirectiveHasBeenRegistered(directive3.value)) return; @@ -9346,11 +15157,40 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (directive3.value === "submit" && !directive3.modifiers.includes("prevent")) { attribute = attribute + ".prevent"; } + if (directive3.modifiers.includes("async")) { + attribute = attribute.replace(".async", ""); + } + if (directive3.modifiers.includes("renderless")) { + attribute = attribute.replace(".renderless", ""); + } + if (directive3.modifiers.includes("prepend")) { + attribute = attribute.replace(".prepend", ""); + } + if (directive3.modifiers.includes("append")) { + attribute = attribute.replace(".append", ""); + } let cleanupBinding = module_default.bind(el, { [attribute](e) { + directive3.eventContext = e; + directive3.wire = component.$wire; let execute = () => { callAndClearComponentDebounces(component, () => { - module_default.evaluate(el, "$wire." + directive3.expression, { scope: { $event: e } }); + if (directive3.value === "submit") { + let submitButton = e.submitter || el.querySelector('button[type="submit"], input[type="submit"]'); + setNextActionOrigin({ el, directive: directive3, targetEl: submitButton }); + } else { + setNextActionOrigin({ el, directive: directive3 }); + } + let livewireOptions = e.detail?.livewire; + if (livewireOptions?.interceptAction) { + setNextActionInterceptor(livewireOptions.interceptAction); + } + let expression = directive3.expression; + if (livewireOptions?.defaultParams !== void 0 && !expression.includes("(")) { + let params = Array.isArray(livewireOptions.defaultParams) ? livewireOptions.defaultParams : [livewireOptions.defaultParams]; + expression = expression + "(" + params.map((p) => JSON.stringify(p)).join(", ") + ")"; + } + evaluateActionExpression(el, expression, { scope: { $event: e } }); }); }; if (el.__livewire_confirm) { @@ -9367,22 +15207,6 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); cleanup2(cleanupBinding); }); - // js/directives/wire-navigate.js - module_default.addInitSelector(() => `[wire\\:navigate]`); - module_default.addInitSelector(() => `[wire\\:navigate\\.hover]`); - module_default.interceptInit(module_default.skipDuringClone((el) => { - if (el.hasAttribute("wire:navigate")) { - module_default.bind(el, { ["x-navigate"]: true }); - } else if (el.hasAttribute("wire:navigate.hover")) { - module_default.bind(el, { ["x-navigate.hover"]: true }); - } - })); - document.addEventListener("alpine:navigating", () => { - Livewire.all().forEach((component) => { - component.inscribeSnapshotAndEffectsOnElement(); - }); - }); - // js/directives/wire-confirm.js directive2("confirm", ({ el, directive: directive3 }) => { let message = directive3.expression; @@ -9412,30 +15236,6 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }; }); - // js/directives/shared.js - function toggleBooleanStateDirective(el, directive3, isTruthy, cachedDisplay = null) { - isTruthy = directive3.modifiers.includes("remove") ? !isTruthy : isTruthy; - if (directive3.modifiers.includes("class")) { - let classes = directive3.expression.split(" ").filter(String); - if (isTruthy) { - el.classList.add(...classes); - } else { - el.classList.remove(...classes); - } - } else if (directive3.modifiers.includes("attr")) { - if (isTruthy) { - el.setAttribute(directive3.expression, true); - } else { - el.removeAttribute(directive3.expression); - } - } else { - let cache = cachedDisplay ?? window.getComputedStyle(el, null).getPropertyValue("display"); - let display = ["inline", "block", "table", "flex", "grid", "inline-flex"].filter((i) => directive3.modifiers.includes(i))[0] || "inline-block"; - display = directive3.modifiers.includes("remove") && !isTruthy ? cache : display; - el.style.display = isTruthy ? display : "none"; - } - } - // js/directives/wire-offline.js var offlineHandlers = /* @__PURE__ */ new Set(); var onlineHandlers = /* @__PURE__ */ new Set(); @@ -9456,7 +15256,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); directive2("loading", ({ el, directive: directive3, component, cleanup: cleanup2 }) => { let { targets, inverted } = getTargets(el); let [delay3, abortDelay] = applyDelay(directive3); - let cleanupA = whenTargetsArePartOfRequest(component, targets, inverted, [ + let cleanupA = whenTargetsArePartOfRequest(component, el, targets, inverted, [ () => delay3(() => toggleBooleanStateDirective(el, directive3, true)), () => abortDelay(() => toggleBooleanStateDirective(el, directive3, false)) ]); @@ -9507,15 +15307,40 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } ]; } - function whenTargetsArePartOfRequest(component, targets, inverted, [startLoading, endLoading]) { - return on2("commit", ({ component: iComponent, commit: payload, respond }) => { - if (iComponent !== component) - return; - if (targets.length > 0 && containsTargets(payload, targets) === inverted) + function whenTargetsArePartOfRequest(component, el, targets, inverted, [startLoading, endLoading]) { + return interceptMessage(({ message, onSend, onSuccess, onFinish }) => { + if (component !== message.component) return; - startLoading(); - respond(() => { - endLoading(); + if (targets.length === 0) { + let island = closestIsland(el); + if (island && !message.hasActionForIsland(island)) { + return; + } + if (!island && !message.hasActionForComponent()) { + return; + } + } + let matches3 = true; + let cleared = false; + onSend(({ payload }) => { + if (targets.length > 0 && containsTargets(payload, targets) === inverted) { + matches3 = false; + } + matches3 && startLoading(); + }); + onSuccess(({ onEffect }) => { + onEffect(() => { + if (matches3 && !cleared) { + endLoading(); + cleared = true; + } + }); + }); + onFinish(() => { + if (matches3 && !cleared) { + endLoading(); + cleared = true; + } }); }); } @@ -9577,20 +15402,16 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let inverted = false; if (directives2.has("target")) { let directive3 = directives2.get("target"); - let raw2 = directive3.expression; if (directive3.modifiers.includes("except")) inverted = true; - if (raw2.includes("(") && raw2.includes(")")) { - targets.push({ target: directive3.method, params: quickHash(JSON.stringify(directive3.params)) }); - } else if (raw2.includes(",")) { - raw2.split(",").map((i) => i.trim()).forEach((target) => { - targets.push({ target }); + directive3.methods.forEach(({ method, params }) => { + targets.push({ + target: method, + params: params && params.length > 0 ? quickHash(JSON.stringify(params)) : void 0 }); - } else { - targets.push({ target: raw2 }); - } + }); } else { - let nonActionOrModelLivewireDirectives = ["init", "dirty", "offline", "target", "loading", "poll", "ignore", "key", "id"]; + let nonActionOrModelLivewireDirectives = ["init", "dirty", "offline", "navigate", "target", "loading", "poll", "ignore", "key", "id"]; directives2.all().filter((i) => !nonActionOrModelLivewireDirectives.includes(i.value)).map((i) => i.expression.split("(")[0]).forEach((target) => targets.push({ target })); } return { targets, inverted }; @@ -9599,70 +15420,6 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return btoa(encodeURIComponent(subject)); } - // js/directives/wire-stream.js - directive2("stream", ({ el, directive: directive3, cleanup: cleanup2 }) => { - let { expression, modifiers } = directive3; - let off = on2("stream", ({ name, content, replace: replace2 }) => { - if (name !== expression) - return; - if (modifiers.includes("replace") || replace2) { - el.innerHTML = content; - } else { - el.innerHTML = el.innerHTML + content; - } - }); - cleanup2(off); - }); - on2("request", ({ respond }) => { - respond((mutableObject) => { - let response = mutableObject.response; - if (!response.headers.has("X-Livewire-Stream")) - return; - mutableObject.response = { - ok: true, - redirected: false, - status: 200, - async text() { - let finalResponse = await interceptStreamAndReturnFinalResponse(response, (streamed) => { - trigger2("stream", streamed); - }); - if (contentIsFromDump(finalResponse)) { - this.ok = false; - } - return finalResponse; - } - }; - }); - }); - async function interceptStreamAndReturnFinalResponse(response, callback) { - let reader = response.body.getReader(); - let remainingResponse = ""; - while (true) { - let { done, value: chunk } = await reader.read(); - let decoder = new TextDecoder(); - let output = decoder.decode(chunk); - let [streams, remaining] = extractStreamObjects(remainingResponse + output); - streams.forEach((stream) => { - callback(stream); - }); - remainingResponse = remaining; - if (done) - return remainingResponse; - } - } - function extractStreamObjects(raw2) { - let regex = /({"stream":true.*?"endStream":true})/g; - let matches2 = raw2.match(regex); - let parsed = []; - if (matches2) { - for (let i = 0; i < matches2.length; i++) { - parsed.push(JSON.parse(matches2[i]).body); - } - } - let remaining = raw2.replace(regex, ""); - return [parsed, remaining]; - } - // js/directives/wire-replace.js directive2("replace", ({ el, directive: directive3 }) => { if (directive3.modifiers.includes("self")) { @@ -9676,62 +15433,23 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); directive2("ignore", ({ el, directive: directive3 }) => { if (directive3.modifiers.includes("self")) { el.__livewire_ignore_self = true; + } else if (directive3.modifiers.includes("children")) { + el.__livewire_ignore_children = true; } else { el.__livewire_ignore = true; } }); - // js/directives/wire-dirty.js - var refreshDirtyStatesByComponent = new WeakBag(); - on2("commit", ({ component, respond }) => { - respond(() => { - setTimeout(() => { - refreshDirtyStatesByComponent.each(component, (i) => i(false)); - }); - }); - }); - directive2("dirty", ({ el, directive: directive3, component }) => { - let targets = dirtyTargets(el); - let dirty = Alpine.reactive({ state: false }); - let oldIsDirty = false; - let initialDisplay = el.style.display; - let refreshDirtyState = (isDirty) => { - toggleBooleanStateDirective(el, directive3, isDirty, initialDisplay); - oldIsDirty = isDirty; - }; - refreshDirtyStatesByComponent.add(component, refreshDirtyState); - Alpine.effect(() => { - let isDirty = false; - if (targets.length === 0) { - isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive); - } else { - for (let i = 0; i < targets.length; i++) { - if (isDirty) - break; - let target = targets[i]; - isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target)); - } - } - if (oldIsDirty !== isDirty) { - refreshDirtyState(isDirty); - } - oldIsDirty = isDirty; - }); - }); - function dirtyTargets(el) { - let directives2 = getDirectives(el); - let targets = []; - if (directives2.has("model")) { - targets.push(directives2.get("model").expression); - } - if (directives2.has("target")) { - targets = targets.concat(directives2.get("target").expression.split(",").map((s) => s.trim())); + // js/directives/wire-cloak.js + module_default.interceptInit((el) => { + if (el.hasAttribute("wire:cloak")) { + module_default.mutateDom(() => el.removeAttribute("wire:cloak")); } - return targets; - } + }); // js/directives/wire-model.js directive2("model", ({ el, directive: directive3, component, cleanup: cleanup2 }) => { + component = findComponentByEl(el); let { expression, modifiers } = directive3; if (!expression) { return console.warn("Livewire: [wire:model] is missing a value.", el); @@ -9742,52 +15460,102 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); if (el.type && el.type.toLowerCase() === "file") { return handleFileUpload(el, expression, component, cleanup2); } - let isLive = modifiers.includes("live"); - let isLazy = modifiers.includes("lazy") || modifiers.includes("change"); - let onBlur = modifiers.includes("blur"); - let isDebounced = modifiers.includes("debounce"); - let update = expression.startsWith("$parent") ? () => component.$wire.$parent.$commit() : () => component.$wire.$commit(); - let debouncedUpdate = isTextInput(el) && !isDebounced && isLive ? debounce2(update, 150) : update; - module_default.bind(el, { - ["@change"]() { - isLazy && update(); - }, - ["@blur"]() { - onBlur && update(); - }, - ["x-model" + getModifierTail(modifiers)]() { - return { - get() { - return dataGet(component.$wire, expression); - }, - set(value) { - dataSet(component.$wire, expression, value); - isLive && !isLazy && !onBlur && debouncedUpdate(); + let liveIndex = modifiers.indexOf("live"); + let isLive = liveIndex !== -1; + let hasLazyWithoutLive = modifiers.includes("lazy") && !isLive; + let shouldSendNetwork = isLive || hasLazyWithoutLive; + let ephemeralModifiers = isLive && !hasLazyWithoutLive ? modifiers.slice(0, liveIndex) : modifiers.slice(); + let networkModifiers = isLive && !hasLazyWithoutLive ? modifiers.slice(liveIndex + 1) : []; + if (hasLazyWithoutLive) { + ephemeralModifiers = ephemeralModifiers.filter((m) => m !== "lazy"); + networkModifiers.push("change"); + } + if (!(ephemeralModifiers.includes("deep") || networkModifiers.includes("deep"))) { + if (!ephemeralModifiers.includes("self")) { + ephemeralModifiers.push("self"); + } + } + let ephemeralOnBlur = ephemeralModifiers.includes("blur"); + let ephemeralOnChange = ephemeralModifiers.includes("change") || ephemeralModifiers.includes("lazy"); + let ephemeralOnEnter = ephemeralModifiers.includes("enter"); + let hasEphemeralTriggers = ephemeralOnBlur || ephemeralOnChange || ephemeralOnEnter; + let networkOnBlur = networkModifiers.includes("blur"); + let networkOnChange = networkModifiers.includes("change") || networkModifiers.includes("lazy"); + let networkOnEnter = networkModifiers.includes("enter"); + let hasNetworkTriggers = networkOnBlur || networkOnChange || networkOnEnter; + let isDebounced = networkModifiers.includes("debounce"); + let isThrottled = networkModifiers.includes("throttle"); + let update = () => { + setNextActionOrigin({ el, directive: directive3 }); + if (isLive || isDebounced) { + setNextActionMetadata({ type: "model.live" }); + } + expression.startsWith("$parent") ? component.$wire.$parent.$commit() : component.$wire.$commit(); + }; + let debouncedUpdate = update; + if (shouldSendNetwork && !hasNetworkTriggers && isRealtimeInput(el) || isDebounced) { + debouncedUpdate = debounce2(debouncedUpdate, parseModifierDuration(networkModifiers, "debounce") || 150); + } + if (isThrottled) { + debouncedUpdate = throttle3(debouncedUpdate, parseModifierDuration(networkModifiers, "throttle") || 150); + } + let bindings = {}; + if (shouldSendNetwork && networkOnBlur) { + bindings["@blur"] = () => update(); + } + if (shouldSendNetwork && networkOnChange) { + bindings["@change"] = () => update(); + } + if (shouldSendNetwork && networkOnEnter) { + bindings["@keydown.enter"] = () => update(); + } + let xModelTail = getModifierTail(ephemeralModifiers); + bindings["x-model" + xModelTail] = () => { + return { + get() { + return dataGet(component.$wire, expression); + }, + set(value) { + dataSet(component.$wire, expression, value); + if (shouldSendNetwork && !hasNetworkTriggers) { + debouncedUpdate(); } - }; - } - }); + } + }; + }; + module_default.bind(el, bindings); }); function getModifierTail(modifiers) { modifiers = modifiers.filter((i) => ![ - "lazy", - "defer" + "defer", + "live" ].includes(i)); + if (modifiers.includes("debounce")) { + let index2 = modifiers.indexOf("debounce"); + let hasDuration = parseModifierDuration(modifiers, "debounce") !== void 0; + modifiers.splice(index2, hasDuration ? 2 : 1); + } + if (modifiers.includes("throttle")) { + let index2 = modifiers.indexOf("throttle"); + let hasDuration = parseModifierDuration(modifiers, "throttle") !== void 0; + modifiers.splice(index2, hasDuration ? 2 : 1); + } if (modifiers.length === 0) return ""; return "." + modifiers.join("."); } - function isTextInput(el) { - return ["INPUT", "TEXTAREA"].includes(el.tagName.toUpperCase()) && !["checkbox", "radio"].includes(el.type); + function isRealtimeInput(el) { + return ["INPUT", "TEXTAREA"].includes(el.tagName.toUpperCase()) && !["checkbox", "radio"].includes(el.type) || el.tagName.toUpperCase() === "UI-SLIDER" || el.tagName.toUpperCase() === "UI-COMPOSER"; } function componentIsMissingProperty(component, property) { if (property.startsWith("$parent")) { - let parent = closestComponent(component.el.parentElement, false); + let parent = findComponentByEl(component.el.parentElement, false); if (!parent) return true; - return componentIsMissingProperty(parent, property.split("$parent.")[1]); + return componentIsMissingProperty(parent, property.slice(7).replace(/^\./, "")); } - let baseProperty = property.split(".")[0]; + let match = property.match(/^\[['"]?([^\]'"]+)['"]?\]/) || property.match(/^([^.\[]+)/); + let baseProperty = match[1]; return !Object.keys(component.canonical).includes(baseProperty); } function debounce2(func, wait) { @@ -9802,28 +15570,52 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); timeout = setTimeout(later, wait); }; } + function throttle3(func, limit) { + let inThrottle; + return function() { + let context = this, args = arguments; + if (!inThrottle) { + func.apply(context, args); + inThrottle = true; + setTimeout(() => inThrottle = false, limit); + } + }; + } + function parseModifierDuration(modifiers, key) { + let index2 = modifiers.indexOf(key); + if (index2 === -1) + return void 0; + let nextModifier = modifiers[modifiers.indexOf(key) + 1] || "invalid-wait"; + let duration = nextModifier.split("ms")[0]; + return !isNaN(duration) ? duration : void 0; + } // js/directives/wire-init.js - directive2("init", ({ el, directive: directive3 }) => { - let fullMethod = directive3.expression ?? "$refresh"; - module_default.evaluate(el, `$wire.${fullMethod}`); + directive2("init", ({ component, el, directive: directive3 }) => { + let fullMethod = directive3.expression ? directive3.expression : "$refresh"; + setNextActionOrigin({ el, directive: directive3 }); + evaluateActionExpression(el, fullMethod); }); // js/directives/wire-poll.js - directive2("poll", ({ el, directive: directive3 }) => { + directive2("poll", ({ el, directive: directive3, component }) => { let interval = extractDurationFrom(directive3.modifiers, 2e3); let { start: start3, pauseWhile, throttleWhile, stopWhen } = poll(() => { - triggerComponentRequest(el, directive3); + triggerComponentRequest(el, directive3, component); }, interval); start3(); throttleWhile(() => theTabIsInTheBackground() && theDirectiveIsMissingKeepAlive(directive3)); pauseWhile(() => theDirectiveHasVisible(directive3) && theElementIsNotInTheViewport(el)); pauseWhile(() => theDirectiveIsOffTheElement(el)); pauseWhile(() => livewireIsOffline()); + pauseWhile(() => sessionIsExpired()); stopWhen(() => theElementIsDisconnected(el)); }); - function triggerComponentRequest(el, directive3) { - module_default.evaluate(el, directive3.expression ? "$wire." + directive3.expression : "$wire.$commit()"); + function triggerComponentRequest(el, directive3, component) { + setNextActionOrigin({ el, directive: directive3, targetEl: null }); + setNextActionMetadata({ type: "poll" }); + let fullMethod = directive3.expression ? directive3.expression : "$refresh"; + evaluateActionExpression(el, fullMethod); } function poll(callback, interval = 2e3) { let pauseConditions = []; @@ -9911,10 +15703,62 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return durationInMilliSeconds || defaultDuration; } + // js/directives/wire-show.js + module_default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:show")) { + let { name, value } = el.attributes[i]; + let modifierString = name.split("wire:show")[1]; + let expression = value.trim(); + module_default.bind(el, { + ["x-show" + modifierString]() { + return evaluateActionExpression(el, expression); + } + }); + } + } + }); + + // js/directives/wire-text.js + module_default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:text")) { + let { name, value } = el.attributes[i]; + let modifierString = name.split("wire:text")[1]; + let expression = value.trim(); + module_default.bind(el, { + ["x-text" + modifierString]() { + return evaluateActionExpression(el, expression); + } + }); + } + } + }); + + // js/directives/wire-bind.js + module_default.interceptInit((el) => { + for (let i = 0; i < el.attributes.length; i++) { + if (el.attributes[i].name.startsWith("wire:bind:")) { + let { name, value } = el.attributes[i]; + let remainder = name.split("wire:bind")[1]; + let expression = value.trim(); + module_default.bind(el, { + ["x-bind" + remainder]() { + return evaluateActionExpression(el, expression); + } + }); + } + } + }); + // js/index.js var Livewire2 = { directive: directive2, dispatchTo, + interceptAction: (callback) => interceptAction(callback), + interceptMessage: (callback) => interceptMessage(callback), + interceptRequest: (callback) => interceptRequest(callback), + fireAction: (component, method, params = [], metadata = {}) => fireAction(component, method, params, metadata), start: start2, first, find, @@ -9950,15 +15794,26 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); * @license MIT */ /*! Bundled license information: +sortablejs/modular/sortable.esm.js: + (**! + * Sortable 1.15.2 + * @author RubaXa <trash@rubaxa.org> + * @author owenm <owen23355@gmail.com> + * @license MIT + *) +*/ +/*! Bundled license information: + tabbable/dist/index.esm.js: (*! - * tabbable 5.3.3 + * tabbable 6.4.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE *) focus-trap/dist/focus-trap.esm.js: (*! - * focus-trap 6.9.4 + * focus-trap 8.0.0 * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE *) + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *) */ diff --git a/admin/public/vendor/livewire/livewire.min.js b/admin/public/vendor/livewire/livewire.min.js index d9796253..d66cd9f6 100644 --- a/admin/public/vendor/livewire/livewire.min.js +++ b/admin/public/vendor/livewire/livewire.min.js @@ -1,14 +1,11 @@ -(()=>{var il=Object.create;var ni=Object.defineProperty;var ol=Object.getOwnPropertyDescriptor;var sl=Object.getOwnPropertyNames;var al=Object.getPrototypeOf,ll=Object.prototype.hasOwnProperty;var ul=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var cl=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of sl(t))!ll.call(e,i)&&i!==r&&ni(e,i,{get:()=>t[i],enumerable:!(n=ol(t,i))||n.enumerable});return e};var fl=(e,t,r)=>(r=e!=null?il(al(e)):{},cl(t||!e||!e.__esModule?ni(r,"default",{value:e,enumerable:!0}):r,e));var pa=ul((Un,da)=>{(function(e,t){typeof define=="function"&&define.amd?define(t):typeof Un=="object"?da.exports=t():e.NProgress=t()})(Un,function(){var e={};e.version="0.2.0";var t=e.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};e.configure=function(c){var d,m;for(d in c)m=c[d],m!==void 0&&c.hasOwnProperty(d)&&(t[d]=m);return this},e.status=null,e.set=function(c){var d=e.isStarted();c=r(c,t.minimum,1),e.status=c===1?null:c;var m=e.render(!d),b=m.querySelector(t.barSelector),g=t.speed,y=t.easing;return m.offsetWidth,o(function(v){t.positionUsing===""&&(t.positionUsing=e.getPositioningCSS()),s(b,i(c,g,y)),c===1?(s(m,{transition:"none",opacity:1}),m.offsetWidth,setTimeout(function(){s(m,{transition:"all "+g+"ms linear",opacity:0}),setTimeout(function(){e.remove(),v()},g)},g)):setTimeout(v,g)}),this},e.isStarted=function(){return typeof e.status=="number"},e.start=function(){e.status||e.set(0);var c=function(){setTimeout(function(){!e.status||(e.trickle(),c())},t.trickleSpeed)};return t.trickle&&c(),this},e.done=function(c){return!c&&!e.status?this:e.inc(.3+.5*Math.random()).set(1)},e.inc=function(c){var d=e.status;return d?(typeof c!="number"&&(c=(1-d)*r(Math.random()*d,.1,.95)),d=r(d+c,0,.994),e.set(d)):e.start()},e.trickle=function(){return e.inc(Math.random()*t.trickleRate)},function(){var c=0,d=0;e.promise=function(m){return!m||m.state()==="resolved"?this:(d===0&&e.start(),c++,d++,m.always(function(){d--,d===0?(c=0,e.done()):e.set((c-d)/c)}),this)}}(),e.render=function(c){if(e.isRendered())return document.getElementById("nprogress");l(document.documentElement,"nprogress-busy");var d=document.createElement("div");d.id="nprogress",d.innerHTML=t.template;var m=d.querySelector(t.barSelector),b=c?"-100":n(e.status||0),g=document.querySelector(t.parent),y;return s(m,{transition:"all 0 linear",transform:"translate3d("+b+"%,0,0)"}),t.showSpinner||(y=d.querySelector(t.spinnerSelector),y&&p(y)),g!=document.body&&l(g,"nprogress-custom-parent"),g.appendChild(d),d},e.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(t.parent),"nprogress-custom-parent");var c=document.getElementById("nprogress");c&&p(c)},e.isRendered=function(){return!!document.getElementById("nprogress")},e.getPositioningCSS=function(){var c=document.body.style,d="WebkitTransform"in c?"Webkit":"MozTransform"in c?"Moz":"msTransform"in c?"ms":"OTransform"in c?"O":"";return d+"Perspective"in c?"translate3d":d+"Transform"in c?"translate":"margin"};function r(c,d,m){return c<d?d:c>m?m:c}function n(c){return(-1+c)*100}function i(c,d,m){var b;return t.positionUsing==="translate3d"?b={transform:"translate3d("+n(c)+"%,0,0)"}:t.positionUsing==="translate"?b={transform:"translate("+n(c)+"%,0)"}:b={"margin-left":n(c)+"%"},b.transition="all "+d+"ms "+m,b}var o=function(){var c=[];function d(){var m=c.shift();m&&m(d)}return function(m){c.push(m),c.length==1&&d()}}(),s=function(){var c=["Webkit","O","Moz","ms"],d={};function m(v){return v.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(_,T){return T.toUpperCase()})}function b(v){var _=document.body.style;if(v in _)return v;for(var T=c.length,A=v.charAt(0).toUpperCase()+v.slice(1),w;T--;)if(w=c[T]+A,w in _)return w;return v}function g(v){return v=m(v),d[v]||(d[v]=b(v))}function y(v,_,T){_=g(_),v.style[_]=T}return function(v,_){var T=arguments,A,w;if(T.length==2)for(A in _)w=_[A],w!==void 0&&_.hasOwnProperty(A)&&y(v,A,w);else y(v,T[1],T[2])}}();function a(c,d){var m=typeof c=="string"?c:f(c);return m.indexOf(" "+d+" ")>=0}function l(c,d){var m=f(c),b=m+d;a(m,d)||(c.className=b.substring(1))}function u(c,d){var m=f(c),b;!a(c,d)||(b=m.replace(" "+d+" "," "),c.className=b.substring(1,b.length-1))}function f(c){return(" "+(c.className||"")+" ").replace(/\s+/gi," ")}function p(c){c&&c.parentNode&&c.parentNode.removeChild(c)}return e})});var wt=class{constructor(){this.arrays={}}add(t,r){this.arrays[t]||(this.arrays[t]=[]),this.arrays[t].push(r)}remove(t){this.arrays[t]&&delete this.arrays[t]}get(t){return this.arrays[t]||[]}each(t,r){return this.get(t).forEach(r)}},Fe=class{constructor(){this.arrays=new WeakMap}add(t,r){this.arrays.has(t)||this.arrays.set(t,[]),this.arrays.get(t).push(r)}remove(t){this.arrays.has(t)&&this.arrays.delete(t,[])}get(t){return this.arrays.has(t)?this.arrays.get(t):[]}each(t,r){return this.get(t).forEach(r)}};function yt(e,t,r={},n=!0){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:n,composed:!0,cancelable:!0}))}function xt(e,t,r){return e.addEventListener(t,r),()=>e.removeEventListener(t,r)}function _t(e){return typeof e=="object"&&e!==null}function ii(e){return _t(e)&&!vr(e)}function vr(e){return Array.isArray(e)}function br(e){return typeof e=="function"}function oi(e){return typeof e!="object"||e===null}function ce(e){return JSON.parse(JSON.stringify(e))}function W(e,t){return t===""?e:t.split(".").reduce((r,n)=>{if(r!==void 0)return r[n]},e)}function ye(e,t,r){let n=t.split(".");if(n.length===1)return e[t]=r;let i=n.shift(),o=n.join(".");e[i]===void 0&&(e[i]={}),ye(e[i],o,r)}function Qe(e,t,r={},n=""){if(e===t)return r;if(typeof e!=typeof t||ii(e)&&vr(t)||vr(e)&&ii(t)||oi(e)||oi(t))return r[n]=t,r;let i=Object.keys(e);return Object.entries(t).forEach(([o,s])=>{r={...r,...Qe(e[o],t[o],r,n===""?o:`${n}.${o}`)},i=i.filter(a=>a!==o)}),i.forEach(o=>{r[`${n}.${o}`]="__rm__"}),r}function xe(e){let t=si(e)?e[0]:e,r=si(e)?e[1]:void 0;return _t(t)&&Object.entries(t).forEach(([n,i])=>{t[n]=xe(i)}),t}function si(e){return Array.isArray(e)&&e.length===2&&typeof e[1]=="object"&&Object.keys(e[1]).includes("s")}function St(){if(document.querySelector('meta[name="csrf-token"]'))return document.querySelector('meta[name="csrf-token"]').getAttribute("content");if(document.querySelector("[data-csrf]"))return document.querySelector("[data-csrf]").getAttribute("data-csrf");if(window.livewireScriptConfig.csrf??!1)return window.livewireScriptConfig.csrf;throw"Livewire: No CSRF token detected"}var Ie;function ai(){if(Ie)return Ie;if(window.livewireScriptConfig&&(window.livewireScriptConfig.nonce??!1))return Ie=window.livewireScriptConfig.nonce,Ie;let e=document.querySelector("style[data-livewire-style][nonce]");return e?(Ie=e.nonce,Ie):null}function li(){return document.querySelector("[data-update-uri]")?.getAttribute("data-update-uri")??window.livewireScriptConfig.uri??null}function Et(e){return!!e.match(/<script>Sfdump\(".+"\)<\/script>/)}function ui(e){let t=e.match(/.*<script>Sfdump\(".+"\)<\/script>/s);return[t,e.replace(t,"")]}var wr=new WeakMap;function et(e){if(!wr.has(e)){let t=new yr(e);wr.set(e,t),t.registerListeners()}return wr.get(e)}function ci(e,t,r,n){let i=et(r),o=()=>e.dispatchEvent(new CustomEvent("livewire-upload-start",{bubbles:!0,detail:{id:r.id,property:t}})),s=()=>e.dispatchEvent(new CustomEvent("livewire-upload-finish",{bubbles:!0,detail:{id:r.id,property:t}})),a=()=>e.dispatchEvent(new CustomEvent("livewire-upload-error",{bubbles:!0,detail:{id:r.id,property:t}})),l=()=>e.dispatchEvent(new CustomEvent("livewire-upload-cancel",{bubbles:!0,detail:{id:r.id,property:t}})),u=c=>{var d=Math.round(c.loaded*100/c.total);e.dispatchEvent(new CustomEvent("livewire-upload-progress",{bubbles:!0,detail:{progress:d}}))},f=c=>{c.target.files.length!==0&&(o(),c.target.multiple?i.uploadMultiple(t,c.target.files,s,a,u,l):i.upload(t,c.target.files[0],s,a,u,l))};e.addEventListener("change",f),r.$wire.$watch(t,c=>{!e.isConnected||(c===null||c==="")&&(e.value="")});let p=()=>{e.value=null};e.addEventListener("click",p),e.addEventListener("livewire-upload-cancel",p),n(()=>{e.removeEventListener("change",f),e.removeEventListener("click",p)})}var yr=class{constructor(t){this.component=t,this.uploadBag=new Ze,this.removeBag=new Ze}registerListeners(){this.component.$wire.$on("upload:generatedSignedUrl",({name:t,url:r})=>{this.component,this.handleSignedUrl(t,r)}),this.component.$wire.$on("upload:generatedSignedUrlForS3",({name:t,payload:r})=>{this.component,this.handleS3PreSignedUrl(t,r)}),this.component.$wire.$on("upload:finished",({name:t,tmpFilenames:r})=>this.markUploadFinished(t,r)),this.component.$wire.$on("upload:errored",({name:t})=>this.markUploadErrored(t)),this.component.$wire.$on("upload:removed",({name:t,tmpFilename:r})=>this.removeBag.shift(t).finishCallback(r))}upload(t,r,n,i,o,s){this.setUpload(t,{files:[r],multiple:!1,finishCallback:n,errorCallback:i,progressCallback:o,cancelledCallback:s})}uploadMultiple(t,r,n,i,o,s){this.setUpload(t,{files:Array.from(r),multiple:!0,finishCallback:n,errorCallback:i,progressCallback:o,cancelledCallback:s})}removeUpload(t,r,n){this.removeBag.push(t,{tmpFilename:r,finishCallback:n}),this.component.$wire.call("_removeUpload",t,r)}setUpload(t,r){this.uploadBag.add(t,r),this.uploadBag.get(t).length===1&&this.startUpload(t,r)}handleSignedUrl(t,r){let n=new FormData;Array.from(this.uploadBag.first(t).files).forEach(s=>n.append("files[]",s,s.name));let i={Accept:"application/json"},o=St();o&&(i["X-CSRF-TOKEN"]=o),this.makeRequest(t,n,"post",r,i,s=>s.paths)}handleS3PreSignedUrl(t,r){let n=this.uploadBag.first(t).files[0],i=r.headers;"Host"in i&&delete i.Host;let o=r.url;this.makeRequest(t,n,"put",o,i,s=>[r.path])}makeRequest(t,r,n,i,o,s){let a=new XMLHttpRequest;a.open(n,i),Object.entries(o).forEach(([l,u])=>{a.setRequestHeader(l,u)}),a.upload.addEventListener("progress",l=>{l.detail={},l.detail.progress=Math.floor(l.loaded*100/l.total),this.uploadBag.first(t).progressCallback(l)}),a.addEventListener("load",()=>{if((a.status+"")[0]==="2"){let u=s(a.response&&JSON.parse(a.response));this.component.$wire.call("_finishUpload",t,u,this.uploadBag.first(t).multiple);return}let l=null;a.status===422&&(l=a.response),this.component.$wire.call("_uploadErrored",t,l,this.uploadBag.first(t).multiple)}),this.uploadBag.first(t).request=a,a.send(r)}startUpload(t,r){let n=r.files.map(i=>({name:i.name,size:i.size,type:i.type}));this.component.$wire.call("_startUpload",t,n,r.multiple),this.component}markUploadFinished(t,r){this.component;let n=this.uploadBag.shift(t);n.finishCallback(n.multiple?r:r[0]),this.uploadBag.get(t).length>0&&this.startUpload(t,this.uploadBag.last(t))}markUploadErrored(t){this.component,this.uploadBag.shift(t).errorCallback(),this.uploadBag.get(t).length>0&&this.startUpload(t,this.uploadBag.last(t))}cancelUpload(t,r=null){this.component;let n=this.uploadBag.first(t);n&&(n.request&&n.request.abort(),this.uploadBag.shift(t).cancelledCallback(),r&&r())}},Ze=class{constructor(){this.bag={}}add(t,r){this.bag[t]||(this.bag[t]=[]),this.bag[t].push(r)}push(t,r){this.add(t,r)}first(t){return this.bag[t]?this.bag[t][0]:null}last(t){return this.bag[t].slice(-1)[0]}get(t){return this.bag[t]}shift(t){return this.bag[t].shift()}call(t,...r){(this.listeners[t]||[]).forEach(n=>{n(...r)})}has(t){return Object.keys(this.listeners).includes(t)}};function fi(e,t,r,n=()=>{},i=()=>{},o=()=>{},s=()=>{}){et(e).upload(t,r,n,i,o,s)}function di(e,t,r,n=()=>{},i=()=>{},o=()=>{},s=()=>{}){et(e).uploadMultiple(t,r,n,i,o,s)}function pi(e,t,r,n=()=>{},i=()=>{}){et(e).removeUpload(t,r,n,i)}function hi(e,t,r=()=>{}){et(e).cancelUpload(t,r)}var Cr=!1,Or=!1,Ee=[],Tr=-1;function dl(e){pl(e)}function pl(e){Ee.includes(e)||Ee.push(e),hl()}function ki(e){let t=Ee.indexOf(e);t!==-1&&t>Tr&&Ee.splice(t,1)}function hl(){!Or&&!Cr&&(Cr=!0,queueMicrotask(ml))}function ml(){Cr=!1,Or=!0;for(let e=0;e<Ee.length;e++)Ee[e](),Tr=e;Ee.length=0,Tr=-1,Or=!1}var Be,Te,Ue,Li,kr=!0;function gl(e){kr=!1,e(),kr=!0}function vl(e){Be=e.reactive,Ue=e.release,Te=t=>e.effect(t,{scheduler:r=>{kr?dl(r):r()}}),Li=e.raw}function mi(e){Te=e}function bl(e){let t=()=>{};return[n=>{let i=Te(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),Ue(i))},i},()=>{t()}]}function Ni(e,t){let r=!0,n,i=Te(()=>{let o=e();JSON.stringify(o),r?n=o:queueMicrotask(()=>{t(o,n),n=o}),r=!1});return()=>Ue(i)}var Ri=[],Pi=[],Mi=[];function wl(e){Mi.push(e)}function qr(e,t){typeof t=="function"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,Pi.push(t))}function Ii(e){Ri.push(e)}function Fi(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function $i(e,t){!e._x_attributeCleanups||Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}function yl(e){if(e._x_cleanups)for(;e._x_cleanups.length;)e._x_cleanups.pop()()}var Wr=new MutationObserver(Jr),zr=!1;function Kr(){Wr.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),zr=!0}function Di(){xl(),Wr.disconnect(),zr=!1}var tt=[];function xl(){let e=Wr.takeRecords();tt.push(()=>e.length>0&&Jr(e));let t=tt.length;queueMicrotask(()=>{if(tt.length===t)for(;tt.length>0;)tt.shift()()})}function B(e){if(!zr)return e();Di();let t=e();return Kr(),t}var Vr=!1,Rt=[];function _l(){Vr=!0}function Sl(){Vr=!1,Jr(Rt),Rt=[]}function Jr(e){if(Vr){Rt=Rt.concat(e);return}let t=new Set,r=new Set,n=new Map,i=new Map;for(let o=0;o<e.length;o++)if(!e[o].target._x_ignoreMutationObserver&&(e[o].type==="childList"&&(e[o].addedNodes.forEach(s=>s.nodeType===1&&t.add(s)),e[o].removedNodes.forEach(s=>s.nodeType===1&&r.add(s))),e[o].type==="attributes")){let s=e[o].target,a=e[o].attributeName,l=e[o].oldValue,u=()=>{n.has(s)||n.set(s,[]),n.get(s).push({name:a,value:s.getAttribute(a)})},f=()=>{i.has(s)||i.set(s,[]),i.get(s).push(a)};s.hasAttribute(a)&&l===null?u():s.hasAttribute(a)?(f(),u()):f()}i.forEach((o,s)=>{$i(s,o)}),n.forEach((o,s)=>{Ri.forEach(a=>a(s,o))});for(let o of r)t.has(o)||Pi.forEach(s=>s(o));t.forEach(o=>{o._x_ignoreSelf=!0,o._x_ignore=!0});for(let o of t)r.has(o)||!o.isConnected||(delete o._x_ignoreSelf,delete o._x_ignore,Mi.forEach(s=>s(o)),o._x_ignore=!0,o._x_ignoreSelf=!0);t.forEach(o=>{delete o._x_ignoreSelf,delete o._x_ignore}),t=null,r=null,n=null,i=null}function Bi(e){return ut($e(e))}function lt(e,t,r){return e._x_dataStack=[t,...$e(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function $e(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?$e(e.host):e.parentNode?$e(e.parentNode):[]}function ut(e){return new Proxy({objects:e},El)}var El={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(t=>Object.keys(t))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(r=>Object.prototype.hasOwnProperty.call(r,t)||Reflect.has(r,t))},get({objects:e},t,r){return t=="toJSON"?Al:Reflect.get(e.find(n=>Reflect.has(n,t))||{},t,r)},set({objects:e},t,r,n){let i=e.find(s=>Object.prototype.hasOwnProperty.call(s,t))||e[e.length-1],o=Object.getOwnPropertyDescriptor(i,t);return o?.set&&o?.get?o.set.call(n,r)||!0:Reflect.set(i,t,r)}};function Al(){return Reflect.ownKeys(this).reduce((t,r)=>(t[r]=Reflect.get(this,r),t),{})}function Ui(e){let t=n=>typeof n=="object"&&!Array.isArray(n)&&n!==null,r=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([o,{value:s,enumerable:a}])=>{if(a===!1||s===void 0||typeof s=="object"&&s!==null&&s.__v_skip)return;let l=i===""?o:`${i}.${o}`;typeof s=="object"&&s!==null&&s._x_interceptor?n[o]=s.initialize(e,l,o):t(s)&&s!==n&&!(s instanceof Element)&&r(s,l)})};return r(e)}function Hi(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,o){return e(this.initialValue,()=>Cl(n,i),s=>Lr(n,i,s),i,o)}};return t(r),n=>{if(typeof n=="object"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(o,s,a)=>{let l=n.initialize(o,s,a);return r.initialValue=l,i(o,s,a)}}else r.initialValue=n;return r}}function Cl(e,t){return t.split(".").reduce((r,n)=>r[n],e)}function Lr(e,t,r){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),Lr(e[t[0]],t.slice(1),r)}}var ji={};function Z(e,t){ji[e]=t}function Nr(e,t){return Object.entries(ji).forEach(([r,n])=>{let i=null;function o(){if(i)return i;{let[s,a]=Ji(t);return i={interceptor:Hi,...s},qr(t,a),i}}Object.defineProperty(e,`$${r}`,{get(){return n(t,o())},enumerable:!1})}),e}function Ol(e,t,r,...n){try{return r(...n)}catch(i){at(i,e,t)}}function at(e,t,r=void 0){e=Object.assign(e??{message:"No error message given."},{el:t,expression:r}),console.warn(`Alpine Expression Error: ${e.message} +(()=>{var zf=Object.create;var ls=Object.defineProperty;var Kf=Object.getOwnPropertyDescriptor;var Vf=Object.getOwnPropertyNames;var Jf=Object.getPrototypeOf,Gf=Object.prototype.hasOwnProperty;var Xf=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Yf=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Vf(t))!Gf.call(e,i)&&i!==r&&ls(e,i,{get:()=>t[i],enumerable:!(n=Kf(t,i))||n.enumerable});return e};var Qf=(e,t,r)=>(r=e!=null?zf(Jf(e)):{},Yf(t||!e||!e.__esModule?ls(r,"default",{value:e,enumerable:!0}):r,e));var of=Xf((qa,nf)=>{(function(e,t){typeof define=="function"&&define.amd?define(t):typeof qa=="object"?nf.exports=t():e.NProgress=t()})(qa,function(){var e={};e.version="0.2.0";var t=e.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};e.configure=function(d){var p,m;for(p in d)m=d[p],m!==void 0&&d.hasOwnProperty(p)&&(t[p]=m);return this},e.status=null,e.set=function(d){var p=e.isStarted();d=r(d,t.minimum,1),e.status=d===1?null:d;var m=e.render(!p),h=m.querySelector(t.barSelector),v=t.speed,y=t.easing;return m.offsetWidth,o(function(w){t.positionUsing===""&&(t.positionUsing=e.getPositioningCSS()),a(h,i(d,v,y)),d===1?(a(m,{transition:"none",opacity:1}),m.offsetWidth,setTimeout(function(){a(m,{transition:"all "+v+"ms linear",opacity:0}),setTimeout(function(){e.remove(),w()},v)},v)):setTimeout(w,v)}),this},e.isStarted=function(){return typeof e.status=="number"},e.start=function(){e.status||e.set(0);var d=function(){setTimeout(function(){!e.status||(e.trickle(),d())},t.trickleSpeed)};return t.trickle&&d(),this},e.done=function(d){return!d&&!e.status?this:e.inc(.3+.5*Math.random()).set(1)},e.inc=function(d){var p=e.status;return p?(typeof d!="number"&&(d=(1-p)*r(Math.random()*p,.1,.95)),p=r(p+d,0,.994),e.set(p)):e.start()},e.trickle=function(){return e.inc(Math.random()*t.trickleRate)},function(){var d=0,p=0;e.promise=function(m){return!m||m.state()==="resolved"?this:(p===0&&e.start(),d++,p++,m.always(function(){p--,p===0?(d=0,e.done()):e.set((d-p)/d)}),this)}}(),e.render=function(d){if(e.isRendered())return document.getElementById("nprogress");l(document.documentElement,"nprogress-busy");var p=document.createElement("div");p.id="nprogress",p.innerHTML=t.template;var m=p.querySelector(t.barSelector),h=d?"-100":n(e.status||0),v=document.querySelector(t.parent),y;return a(m,{transition:"all 0 linear",transform:"translate3d("+h+"%,0,0)"}),t.showSpinner||(y=p.querySelector(t.spinnerSelector),y&&f(y)),v!=document.body&&l(v,"nprogress-custom-parent"),v.appendChild(p),p},e.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(t.parent),"nprogress-custom-parent");var d=document.getElementById("nprogress");d&&f(d)},e.isRendered=function(){return!!document.getElementById("nprogress")},e.getPositioningCSS=function(){var d=document.body.style,p="WebkitTransform"in d?"Webkit":"MozTransform"in d?"Moz":"msTransform"in d?"ms":"OTransform"in d?"O":"";return p+"Perspective"in d?"translate3d":p+"Transform"in d?"translate":"margin"};function r(d,p,m){return d<p?p:d>m?m:d}function n(d){return(-1+d)*100}function i(d,p,m){var h;return t.positionUsing==="translate3d"?h={transform:"translate3d("+n(d)+"%,0,0)"}:t.positionUsing==="translate"?h={transform:"translate("+n(d)+"%,0)"}:h={"margin-left":n(d)+"%"},h.transition="all "+p+"ms "+m,h}var o=function(){var d=[];function p(){var m=d.shift();m&&m(p)}return function(m){d.push(m),d.length==1&&p()}}(),a=function(){var d=["Webkit","O","Moz","ms"],p={};function m(w){return w.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(S,C){return C.toUpperCase()})}function h(w){var S=document.body.style;if(w in S)return w;for(var C=d.length,P=w.charAt(0).toUpperCase()+w.slice(1),O;C--;)if(O=d[C]+P,O in S)return O;return w}function v(w){return w=m(w),p[w]||(p[w]=h(w))}function y(w,S,C){S=v(S),w.style[S]=C}return function(w,S){var C=arguments,P,O;if(C.length==2)for(P in S)O=S[P],O!==void 0&&S.hasOwnProperty(P)&&y(w,P,O);else y(w,C[1],C[2])}}();function s(d,p){var m=typeof d=="string"?d:c(d);return m.indexOf(" "+p+" ")>=0}function l(d,p){var m=c(d),h=m+p;s(m,p)||(d.className=h.substring(1))}function u(d,p){var m=c(d),h;!s(d,p)||(h=m.replace(" "+p+" "," "),d.className=h.substring(1,h.length-1))}function c(d){return(" "+(d.className||"")+" ").replace(/\s+/gi," ")}function f(d){d&&d.parentNode&&d.parentNode.removeChild(d)}return e})});var fn=class{constructor(){this.arrays={}}add(t,r){this.arrays[t]||(this.arrays[t]=[]),this.arrays[t].push(r)}remove(t){this.arrays[t]&&delete this.arrays[t]}get(t){return this.arrays[t]||[]}each(t,r){return this.get(t).forEach(r)}},tt=class{constructor(){this.arrays=new WeakMap}add(t,r){this.arrays.has(t)||this.arrays.set(t,[]),this.arrays.get(t).push(r)}remove(t){this.arrays.has(t)&&this.arrays.delete(t,[])}get(t){return this.arrays.has(t)?this.arrays.get(t):[]}each(t,r){return this.get(t).forEach(r)}};function pn(e,t,r={},n=!0){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:n,composed:!0,cancelable:!0}))}function hn(e,t,r){return e.addEventListener(t,r),()=>e.removeEventListener(t,r)}function ht(e){return typeof e=="object"&&e!==null}function et(e){return ht(e)&&!he(e)}function he(e){return Array.isArray(e)}function Ki(e){return typeof e=="function"}function dn(e){return typeof e!="object"||e===null}function rt(e){return JSON.parse(JSON.stringify(e))}function cs(e,t){return JSON.stringify(e)===JSON.stringify(t)}function fs(e){return e===""?[]:e.replace(/\[(['"]?)(.+?)\1\]/g,".$2").replace(/^\./,"").split(".")}function Z(e,t){return t===""?e:fs(t).reduce((r,n)=>r?.[n],e)}function mt(e,t,r){let n=fs(t);if(n.length===1)return e[n[0]]=r;let i=n.shift(),o=n.join("."),a=n[0];e[i]===void 0&&(e[i]={}),he(e[i])&&Zf(a)&&parseInt(a)>e[i].length&&(e[i]={...e[i]}),mt(e[i],o,r)}function Zf(e){return!isNaN(parseInt(e))}function Vi(e,t,r={},n=""){if(e===t)return r;if(typeof e!=typeof t||et(e)&&he(t)||he(e)&&et(t)||dn(e)||dn(t))return r[n]=t,r;let i=Object.keys(e),o=Object.keys(t);return et(e)&&i.some((a,s)=>a!==o[s])?(r[n]=t,r):(Object.entries(t).forEach(([a,s])=>{r={...r,...Vi(e[a],t[a],r,n===""?a:`${n}.${a}`)},i=i.filter(l=>l!==a)}),i.forEach(a=>{r[`${n}.${a}`]="__rm__"}),r)}function ds(e,t){let r={};return ps(e,t,"",r,e,t),r}function ps(e,t,r,n,i,o){if(e===t)return{changed:!1,consolidated:!1};let a=!1,s=h=>he(h)&&Object.keys(h).some(v=>isNaN(parseInt(v)));if(typeof e!=typeof t||et(e)&&he(t)||he(e)&&et(t))if(he(e)&&e.length===0&&et(t))e={},a=!0;else if(e==null&&et(t))e={},a=!0;else return n[r]=t,{changed:!0,consolidated:!1};if(he(e)&&he(t)&&s(t)&&Object.keys(e).length===0&&(a=!0),dn(e)||dn(t))return n[r]=t,{changed:!0,consolidated:!1};let l=Object.keys(e),u=Object.keys(t);if(l.length!==u.length&&!a)return r===""?(Object.keys(t).forEach(h=>{cs(e[h],t[h])||(n[h]=t[h])}),{changed:!0,consolidated:!0}):(n[r]=Z(o,r),{changed:!0,consolidated:!0});if(et(e)&&l.length===u.length&&l.some((h,v)=>h!==u[v])&&r!=="")return n[r]=Z(o,r),{changed:!0,consolidated:!0};if(!l.every(h=>u.includes(h))&&!a&&r!=="")return n[r]=Z(o,r),{changed:!0,consolidated:!0};let f={},d=0,p=0,m=u.length;return u.forEach(h=>{let v=r===""?h:`${r}.${h}`,y=ps(e[h],t[h],v,f,i,o);y.changed&&d++,y.consolidated&&p++}),r!==""&&m>1&&d===m&&p===0&&!a?(n[r]=Z(o,r),{changed:!0,consolidated:!0}):(Object.assign(n,f),{changed:d>0,consolidated:p>0||a})}function Ji(e,t,r){let n=new Set(Object.keys(e||{})),i=Object.keys(t);if(!he(r)&&[...n].some((a,s)=>a!==i[s])){for(let a of Object.keys(r))delete r[a];for(let a of i)r[a]=t[a];return}i.forEach(a=>{n.delete(a),!cs(e?.[a],t[a])&&(ht(e?.[a])&&ht(t[a])&&ht(r[a])&&he(t[a])===he(r[a])?Ji(e[a],t[a],r[a]):r[a]=t[a])}),[...n].sort((a,s)=>{let l=parseInt(a)||0;return(parseInt(s)||0)-l}).forEach(a=>{he(r)?r.splice(parseInt(a),1):delete r[a]})}function gt(e){let t=us(e)?e[0]:e,r=us(e)?e[1]:void 0;return ht(t)&&Object.entries(t).forEach(([n,i])=>{t[n]=gt(i)}),t}function us(e){return Array.isArray(e)&&e.length===2&&typeof e[1]=="object"&&Object.keys(e[1]).includes("s")}function mn(){if(document.querySelector('meta[name="csrf-token"]'))return document.querySelector('meta[name="csrf-token"]').getAttribute("content");if(document.querySelector("[data-csrf]"))return document.querySelector("[data-csrf]").getAttribute("data-csrf");if(window.livewireScriptConfig.csrf??!1)return window.livewireScriptConfig.csrf;throw"Livewire: No CSRF token detected"}var Ut;function Ht(){if(Ut)return Ut;if(window.livewireScriptConfig&&(window.livewireScriptConfig.nonce??!1))return Ut=window.livewireScriptConfig.nonce,Ut;let e=document.querySelector("style[data-livewire-style][nonce]");return e?(Ut=e.nonce,Ut):null}function gn(e){let t=Ht();if(!t)return e;let r=e.match(/nonce="([^"]+)"/);if(!r)return e;let n=r[1];return n===t?e:e.replaceAll(`nonce="${n}"`,`nonce="${t}"`)}function br(e){let t=document.createElement("script");t.textContent=e.textContent,t.async=e.async;for(let r of e.attributes)r.name==="nonce"?t.nonce=Ht()||e.nonce:t.setAttribute(r.name,r.value);return t}function yr(){return document.querySelector("[data-module-url]")?.getAttribute("data-module-url")??window.livewireScriptConfig.moduleUrl??null}function hs(){return document.querySelector("[data-update-uri]")?.getAttribute("data-update-uri")??window.livewireScriptConfig.uri??null}function ms(e){return!!e.match(/<script>Sfdump\(".+"\)<\/script>/)}function gs(e){let t=e.match(/.*<script>Sfdump\(".+"\)<\/script>/s);return[t,e.replace(t,"")]}function vs(e,t){let r=e;for(;r;){let n;if(t(r,{stop:i=>i===void 0?n=r:n=i}),n!==void 0)return n;r._x_teleportBack&&(r=r._x_teleportBack),r=r.parentElement}}function bs(e,t){let r=e;for(;r;){let n;if(t(r,{stop:i=>i===void 0?n=r:n=i}),n!==void 0)return n;r=r.previousSibling}}var Gi=new WeakMap;function _r(e){if(!Gi.has(e)){let t=new Xi(e);Gi.set(e,t),t.registerListeners()}return Gi.get(e)}function ys(e,t,r,n){let i=_r(r),o=()=>e.dispatchEvent(new CustomEvent("livewire-upload-start",{bubbles:!0,detail:{id:r.id,property:t}})),a=()=>e.dispatchEvent(new CustomEvent("livewire-upload-finish",{bubbles:!0,detail:{id:r.id,property:t}})),s=()=>e.dispatchEvent(new CustomEvent("livewire-upload-error",{bubbles:!0,detail:{id:r.id,property:t}})),l=()=>e.dispatchEvent(new CustomEvent("livewire-upload-cancel",{bubbles:!0,detail:{id:r.id,property:t}})),u=d=>{var p=Math.round(d.loaded*100/d.total);e.dispatchEvent(new CustomEvent("livewire-upload-progress",{bubbles:!0,detail:{progress:p}}))},c=d=>{d.target.files.length!==0&&(o(),d.target.multiple?i.uploadMultiple(t,d.target.files,a,s,u,l):i.upload(t,d.target.files[0],a,s,u,l))};e.addEventListener("change",c),r.$wire.$watch(t,d=>{!e.isConnected||((d===null||d==="")&&(e.value=""),e.multiple&&Array.isArray(d)&&d.length===0&&(e.value=""))});let f=()=>{e.value=null};e.addEventListener("click",f),e.addEventListener("livewire-upload-cancel",f),n(()=>{e.removeEventListener("change",c),e.removeEventListener("click",f)})}var Xi=class{constructor(t){this.component=t,this.uploadBag=new wr,this.removeBag=new wr}registerListeners(){this.component.$wire.$on("upload:generatedSignedUrl",({name:t,url:r})=>{this.component,this.handleSignedUrl(t,r)}),this.component.$wire.$on("upload:generatedSignedUrlForS3",({name:t,payload:r})=>{this.component,this.handleS3PreSignedUrl(t,r)}),this.component.$wire.$on("upload:finished",({name:t,tmpFilenames:r})=>this.markUploadFinished(t,r)),this.component.$wire.$on("upload:errored",({name:t})=>this.markUploadErrored(t)),this.component.$wire.$on("upload:removed",({name:t,tmpFilename:r})=>this.removeBag.shift(t).finishCallback(r))}upload(t,r,n,i,o,a){this.setUpload(t,{files:[r],multiple:!1,finishCallback:n,errorCallback:i,progressCallback:o,cancelledCallback:a,append:!1})}uploadMultiple(t,r,n,i,o,a,s=!0){this.setUpload(t,{files:Array.from(r),multiple:!0,finishCallback:n,errorCallback:i,progressCallback:o,cancelledCallback:a,append:s})}removeUpload(t,r,n){this.removeBag.push(t,{tmpFilename:r,finishCallback:n}),this.component.$wire.call("_removeUpload",t,r)}setUpload(t,r){this.uploadBag.add(t,r),this.uploadBag.get(t).length===1&&this.startUpload(t,r)}handleSignedUrl(t,r){let n=new FormData;Array.from(this.uploadBag.first(t).files).forEach(a=>n.append("files[]",a,a.name));let i={Accept:"application/json"},o=mn();o&&(i["X-CSRF-TOKEN"]=o),this.makeRequest(t,n,"post",r,i,a=>a.paths)}handleS3PreSignedUrl(t,r){let n=this.uploadBag.first(t).files[0],i=r.headers;"Host"in i&&delete i.Host;let o=r.url;this.makeRequest(t,n,"put",o,i,a=>[r.path])}makeRequest(t,r,n,i,o,a){let s=new XMLHttpRequest;s.open(n,i),Object.entries(o).forEach(([l,u])=>{s.setRequestHeader(l,u)}),s.upload.addEventListener("progress",l=>{l.detail={},l.detail.progress=Math.floor(l.loaded*100/l.total),this.uploadBag.first(t).progressCallback(l)}),s.addEventListener("load",()=>{if((s.status+"")[0]==="2"){let u=a(s.response&&JSON.parse(s.response));this.component.$wire.call("_finishUpload",t,u,this.uploadBag.first(t).multiple,this.uploadBag.first(t).append);return}let l=null;s.status===422&&(l=s.response),this.component.$wire.call("_uploadErrored",t,l,this.uploadBag.first(t).multiple)}),s.addEventListener("error",()=>{this.component.$wire.call("_uploadErrored",t,null,this.uploadBag.first(t).multiple)}),this.uploadBag.first(t).request=s,s.send(r)}startUpload(t,r){let n=r.files.map(i=>({name:i.name,size:i.size,type:i.type}));this.component.$wire.call("_startUpload",t,n,r.multiple),this.component}markUploadFinished(t,r){this.component;let n=this.uploadBag.shift(t);n.finishCallback(n.multiple?r:r[0]),this.uploadBag.get(t).length>0&&this.startUpload(t,this.uploadBag.last(t))}markUploadErrored(t){this.component,this.uploadBag.shift(t).errorCallback(),this.uploadBag.get(t).length>0&&this.startUpload(t,this.uploadBag.last(t))}cancelUpload(t,r=null){this.component;let n=this.uploadBag.first(t);n&&(n.request&&n.request.abort(),this.uploadBag.shift(t).cancelledCallback(),r&&r())}},wr=class{constructor(){this.bag={}}add(t,r){this.bag[t]||(this.bag[t]=[]),this.bag[t].push(r)}push(t,r){this.add(t,r)}first(t){return this.bag[t]?this.bag[t][0]:null}last(t){return this.bag[t].slice(-1)[0]}get(t){return this.bag[t]}shift(t){return this.bag[t].shift()}call(t,...r){(this.listeners[t]||[]).forEach(n=>{n(...r)})}has(t){return Object.keys(this.listeners).includes(t)}};function ws(e,t,r,n=()=>{},i=()=>{},o=()=>{},a=()=>{}){_r(e).upload(t,r,n,i,o,a)}function _s(e,t,r,n=()=>{},i=()=>{},o=()=>{},a=()=>{},s=!0){_r(e).uploadMultiple(t,r,n,i,o,a,s)}function xs(e,t,r,n=()=>{},i=()=>{}){_r(e).removeUpload(t,r,n,i)}function Es(e,t,r=()=>{}){_r(e).cancelUpload(t,r)}var to=!1,ro=!1,yt=[],no=-1,bo=!1;function ed(e){nd(e)}function td(){bo=!0}function rd(){bo=!1,Rs()}function nd(e){yt.includes(e)||yt.push(e),Rs()}function id(e){let t=yt.indexOf(e);t!==-1&&t>no&&yt.splice(t,1)}function Rs(){if(!ro&&!to){if(bo)return;to=!0,queueMicrotask(od)}}function od(){to=!1,ro=!0;for(let e=0;e<yt.length;e++)yt[e](),no=e;yt.length=0,no=-1,ro=!1}var Kt,Ct,Vt,Ls,io=!0;function ad(e){io=!1,e(),io=!0}function sd(e){Kt=e.reactive,Vt=e.release,Ct=t=>e.effect(t,{scheduler:r=>{io?ed(r):r()}}),Ls=e.raw}function Ss(e){Ct=e}function ld(e){let t=()=>{};return[n=>{let i=Ct(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),Vt(i))},i},()=>{t()}]}function $s(e,t){let r=!0,n,i,o=Ct(()=>{let a=e(),s=JSON.stringify(a);if(!r&&(typeof a=="object"||a!==n)){let l=typeof n=="object"?JSON.parse(i):n;queueMicrotask(()=>{t(a,l)})}n=a,i=s,r=!1});return()=>Vt(o)}async function ud(e){td();try{await e(),await Promise.resolve()}finally{rd()}}var Bs=[],js=[],Us=[];function cd(e){Us.push(e)}function yo(e,t){typeof t=="function"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,js.push(t))}function Hs(e){Bs.push(e)}function qs(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function Ws(e,t){!e._x_attributeCleanups||Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}function fd(e){for(e._x_effects?.forEach(id);e._x_cleanups?.length;)e._x_cleanups.pop()()}var wo=new MutationObserver(So),_o=!1;function xo(){wo.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),_o=!0}function zs(){dd(),wo.disconnect(),_o=!1}var xr=[];function dd(){let e=wo.takeRecords();xr.push(()=>e.length>0&&So(e));let t=xr.length;queueMicrotask(()=>{if(xr.length===t)for(;xr.length>0;)xr.shift()()})}function Q(e){if(!_o)return e();zs();let t=e();return xo(),t}var Eo=!1,Sn=[];function pd(){Eo=!0}function hd(){Eo=!1,So(Sn),Sn=[]}function So(e){if(Eo){Sn=Sn.concat(e);return}let t=[],r=new Set,n=new Map,i=new Map;for(let o=0;o<e.length;o++)if(!e[o].target._x_ignoreMutationObserver&&(e[o].type==="childList"&&(e[o].removedNodes.forEach(a=>{a.nodeType===1&&(!a._x_marker||r.add(a))}),e[o].addedNodes.forEach(a=>{if(a.nodeType===1){if(r.has(a)){r.delete(a);return}a._x_marker||t.push(a)}})),e[o].type==="attributes")){let a=e[o].target,s=e[o].attributeName,l=e[o].oldValue,u=()=>{n.has(a)||n.set(a,[]),n.get(a).push({name:s,value:a.getAttribute(s)})},c=()=>{i.has(a)||i.set(a,[]),i.get(a).push(s)};a.hasAttribute(s)&&l===null?u():a.hasAttribute(s)?(c(),u()):c()}i.forEach((o,a)=>{Ws(a,o)}),n.forEach((o,a)=>{Bs.forEach(s=>s(a,o))});for(let o of r)t.some(a=>a.contains(o))||js.forEach(a=>a(o));for(let o of t)!o.isConnected||Us.forEach(a=>a(o));t=null,r=null,n=null,i=null}function Ks(e){return St(Et(e))}function Nr(e,t,r){return e._x_dataStack=[t,...Et(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function Et(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?Et(e.host):e.parentNode?Et(e.parentNode):[]}function St(e){return new Proxy({objects:e},md)}function Vs(e,t){return e===null||e===Object.prototype?null:Object.prototype.hasOwnProperty.call(e,t)?e:Vs(Object.getPrototypeOf(e),t)}var md={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(t=>Object.keys(t))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(r=>Object.prototype.hasOwnProperty.call(r,t)||Reflect.has(r,t))},get({objects:e},t,r){return t=="toJSON"?gd:Reflect.get(e.find(n=>Reflect.has(n,t))||{},t,r)},set({objects:e},t,r,n){let i;for(let a of e)if(i=Vs(a,t),i)break;i||(i=e[e.length-1]);let o=Object.getOwnPropertyDescriptor(i,t);return o?.set&&o?.get?o.set.call(n,r)||!0:Reflect.set(i,t,r)}};function gd(){return Reflect.ownKeys(this).reduce((t,r)=>(t[r]=Reflect.get(this,r),t),{})}function Ao(e){let t=n=>typeof n=="object"&&!Array.isArray(n)&&n!==null,r=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([o,{value:a,enumerable:s}])=>{if(s===!1||a===void 0||typeof a=="object"&&a!==null&&a.__v_skip)return;let l=i===""?o:`${i}.${o}`;typeof a=="object"&&a!==null&&a._x_interceptor?n[o]=a.initialize(e,l,o):t(a)&&a!==n&&!(a instanceof Element)&&r(a,l)})};return r(e)}function Js(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,o){return e(this.initialValue,()=>vd(n,i),a=>oo(n,i,a),i,o)}};return t(r),n=>{if(typeof n=="object"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(o,a,s)=>{let l=n.initialize(o,a,s);return r.initialValue=l,i(o,a,s)}}else r.initialValue=n;return r}}function vd(e,t){return t.split(".").reduce((r,n)=>r[n],e)}function oo(e,t,r){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),oo(e[t[0]],t.slice(1),r)}}var Gs={};function Te(e,t){Gs[e]=t}function kr(e,t){let r=bd(t);return Object.entries(Gs).forEach(([n,i])=>{Object.defineProperty(e,`$${n}`,{get(){return i(t,r)},enumerable:!1})}),e}function bd(e){let[t,r]=rl(e),n={interceptor:Js,...t};return yo(e,r),n}function yd(e,t,r,...n){try{return r(...n)}catch(i){Tr(i,e,t)}}function Tr(...e){return Xs(...e)}var Xs=_d;function wd(e){Xs=e}function _d(e,t,r=void 0){e=Object.assign(e??{message:"No error message given."},{el:t,expression:r}),console.warn(`Alpine Expression Error: ${e.message} ${r?'Expression: "'+r+`" -`:""}`,t),setTimeout(()=>{throw e},0)}var Lt=!0;function qi(e){let t=Lt;Lt=!1;let r=e();return Lt=t,r}function Ae(e,t,r={}){let n;return H(e,t)(i=>n=i,r),n}function H(...e){return Wi(...e)}var Wi=zi;function Tl(e){Wi=e}function zi(e,t){let r={};Nr(r,e);let n=[r,...$e(e)],i=typeof t=="function"?kl(n,t):Nl(n,t,e);return Ol.bind(null,e,t,i)}function kl(e,t){return(r=()=>{},{scope:n={},params:i=[]}={})=>{let o=t.apply(ut([n,...e]),i);Pt(r,o)}}var xr={};function Ll(e,t){if(xr[e])return xr[e];let r=Object.getPrototypeOf(async function(){}).constructor,n=/^[\n\s]*if.*\(.*\)/.test(e.trim())||/^(let|const)\s/.test(e.trim())?`(async()=>{ ${e} })()`:e,o=(()=>{try{let s=new r(["__self","scope"],`with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`);return Object.defineProperty(s,"name",{value:`[Alpine] ${e}`}),s}catch(s){return at(s,t,e),Promise.resolve()}})();return xr[e]=o,o}function Nl(e,t,r){let n=Ll(t,r);return(i=()=>{},{scope:o={},params:s=[]}={})=>{n.result=void 0,n.finished=!1;let a=ut([o,...e]);if(typeof n=="function"){let l=n(n,a).catch(u=>at(u,r,t));n.finished?(Pt(i,n.result,a,s,r),n.result=void 0):l.then(u=>{Pt(i,u,a,s,r)}).catch(u=>at(u,r,t)).finally(()=>n.result=void 0)}}}function Pt(e,t,r,n,i){if(Lt&&typeof t=="function"){let o=t.apply(r,n);o instanceof Promise?o.then(s=>Pt(e,s,r,n)).catch(s=>at(s,i,t)):e(o)}else typeof t=="object"&&t instanceof Promise?t.then(o=>e(o)):e(t)}var Gr="x-";function He(e=""){return Gr+e}function Rl(e){Gr=e}var Mt={};function F(e,t){return Mt[e]=t,{before(r){if(!Mt[r]){console.warn(String.raw`Cannot find directive \`${r}\`. \`${e}\` will use the default order of execution`);return}let n=Se.indexOf(r);Se.splice(n>=0?n:Se.indexOf("DEFAULT"),0,e)}}}function Pl(e){return Object.keys(Mt).includes(e)}function Xr(e,t,r){if(t=Array.from(t),e._x_virtualDirectives){let o=Object.entries(e._x_virtualDirectives).map(([a,l])=>({name:a,value:l})),s=Ki(o);o=o.map(a=>s.find(l=>l.name===a.name)?{name:`x-bind:${a.name}`,value:`"${a.value}"`}:a),t=t.concat(o)}let n={};return t.map(Yi((o,s)=>n[o]=s)).filter(Zi).map(Fl(n,r)).sort($l).map(o=>Il(e,o))}function Ki(e){return Array.from(e).map(Yi()).filter(t=>!Zi(t))}var Rr=!1,it=new Map,Vi=Symbol();function Ml(e){Rr=!0;let t=Symbol();Vi=t,it.set(t,[]);let r=()=>{for(;it.get(t).length;)it.get(t).shift()();it.delete(t)},n=()=>{Rr=!1,r()};e(r),n()}function Ji(e){let t=[],r=a=>t.push(a),[n,i]=bl(e);return t.push(i),[{Alpine:ft,effect:n,cleanup:r,evaluateLater:H.bind(H,e),evaluate:Ae.bind(Ae,e)},()=>t.forEach(a=>a())]}function Il(e,t){let r=()=>{},n=Mt[t.type]||r,[i,o]=Ji(e);Fi(e,t.original,o);let s=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,i),n=n.bind(n,e,t,i),Rr?it.get(Vi).push(n):n())};return s.runCleanups=o,s}var Gi=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),Xi=e=>e;function Yi(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=Qi.reduce((o,s)=>s(o),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var Qi=[];function Yr(e){Qi.push(e)}function Zi({name:e}){return eo().test(e)}var eo=()=>new RegExp(`^${Gr}([^:^.]+)\\b`);function Fl(e,t){return({name:r,value:n})=>{let i=r.match(eo()),o=r.match(/:([a-zA-Z0-9\-_:]+)/),s=r.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],a=t||e[r]||r;return{type:i?i[1]:null,value:o?o[1]:null,modifiers:s.map(l=>l.replace(".","")),expression:n,original:a}}}var Pr="DEFAULT",Se=["ignore","ref","data","id","anchor","bind","init","for","model","modelable","transition","show","if",Pr,"teleport"];function $l(e,t){let r=Se.indexOf(e.type)===-1?Pr:e.type,n=Se.indexOf(t.type)===-1?Pr:t.type;return Se.indexOf(r)-Se.indexOf(n)}function ot(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}function de(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>de(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)de(n,t,!1),n=n.nextElementSibling}function V(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var gi=!1;function Dl(){gi&&V("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),gi=!0,document.body||V("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?"),ot(document,"alpine:init"),ot(document,"alpine:initializing"),Kr(),wl(t=>ie(t,de)),qr(t=>ao(t)),Ii((t,r)=>{Xr(t,r).forEach(n=>n())});let e=t=>!Ft(t.parentElement,!0);Array.from(document.querySelectorAll(no().join(","))).filter(e).forEach(t=>{ie(t)}),ot(document,"alpine:initialized"),setTimeout(()=>{Hl()})}var Qr=[],to=[];function ro(){return Qr.map(e=>e())}function no(){return Qr.concat(to).map(e=>e())}function io(e){Qr.push(e)}function oo(e){to.push(e)}function Ft(e,t=!1){return ct(e,r=>{if((t?no():ro()).some(i=>r.matches(i)))return!0})}function ct(e,t){if(!!e){if(t(e))return e;if(e._x_teleportBack&&(e=e._x_teleportBack),!!e.parentElement)return ct(e.parentElement,t)}}function Bl(e){return ro().some(t=>e.matches(t))}var so=[];function Ul(e){so.push(e)}function ie(e,t=de,r=()=>{}){Ml(()=>{t(e,(n,i)=>{r(n,i),so.forEach(o=>o(n,i)),Xr(n,n.attributes).forEach(o=>o()),n._x_ignore&&i()})})}function ao(e,t=de){t(e,r=>{$i(r),yl(r)})}function Hl(){[["ui","dialog",["[x-dialog], [x-popover]"]],["anchor","anchor",["[x-anchor]"]],["sort","sort",["[x-sort]"]]].forEach(([t,r,n])=>{Pl(r)||n.some(i=>{if(document.querySelector(i))return V(`found "${i}", but missing ${t} plugin`),!0})})}var Mr=[],Zr=!1;function en(e=()=>{}){return queueMicrotask(()=>{Zr||setTimeout(()=>{Ir()})}),new Promise(t=>{Mr.push(()=>{e(),t()})})}function Ir(){for(Zr=!1;Mr.length;)Mr.shift()()}function jl(){Zr=!0}function tn(e,t){return Array.isArray(t)?vi(e,t.join(" ")):typeof t=="object"&&t!==null?ql(e,t):typeof t=="function"?tn(e,t()):vi(e,t)}function vi(e,t){let r=o=>o.split(" ").filter(Boolean),n=o=>o.split(" ").filter(s=>!e.classList.contains(s)).filter(Boolean),i=o=>(e.classList.add(...o),()=>{e.classList.remove(...o)});return t=t===!0?t="":t||"",i(n(t))}function ql(e,t){let r=a=>a.split(" ").filter(Boolean),n=Object.entries(t).flatMap(([a,l])=>l?r(a):!1).filter(Boolean),i=Object.entries(t).flatMap(([a,l])=>l?!1:r(a)).filter(Boolean),o=[],s=[];return i.forEach(a=>{e.classList.contains(a)&&(e.classList.remove(a),s.push(a))}),n.forEach(a=>{e.classList.contains(a)||(e.classList.add(a),o.push(a))}),()=>{s.forEach(a=>e.classList.add(a)),o.forEach(a=>e.classList.remove(a))}}function $t(e,t){return typeof t=="object"&&t!==null?Wl(e,t):zl(e,t)}function Wl(e,t){let r={};return Object.entries(t).forEach(([n,i])=>{r[n]=e.style[n],n.startsWith("--")||(n=Kl(n)),e.style.setProperty(n,i)}),setTimeout(()=>{e.style.length===0&&e.removeAttribute("style")}),()=>{$t(e,r)}}function zl(e,t){let r=e.getAttribute("style",t);return e.setAttribute("style",t),()=>{e.setAttribute("style",r||"")}}function Kl(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function Fr(e,t=()=>{}){let r=!1;return function(){r?t.apply(this,arguments):(r=!0,e.apply(this,arguments))}}F("transition",(e,{value:t,modifiers:r,expression:n},{evaluate:i})=>{typeof n=="function"&&(n=i(n)),n!==!1&&(!n||typeof n=="boolean"?Jl(e,r,t):Vl(e,n,t))});function Vl(e,t,r){lo(e,tn,""),{enter:i=>{e._x_transition.enter.during=i},"enter-start":i=>{e._x_transition.enter.start=i},"enter-end":i=>{e._x_transition.enter.end=i},leave:i=>{e._x_transition.leave.during=i},"leave-start":i=>{e._x_transition.leave.start=i},"leave-end":i=>{e._x_transition.leave.end=i}}[r](t)}function Jl(e,t,r){lo(e,$t);let n=!t.includes("in")&&!t.includes("out")&&!r,i=n||t.includes("in")||["enter"].includes(r),o=n||t.includes("out")||["leave"].includes(r);t.includes("in")&&!n&&(t=t.filter((y,v)=>v<t.indexOf("out"))),t.includes("out")&&!n&&(t=t.filter((y,v)=>v>t.indexOf("out")));let s=!t.includes("opacity")&&!t.includes("scale"),a=s||t.includes("opacity"),l=s||t.includes("scale"),u=a?0:1,f=l?rt(t,"scale",95)/100:1,p=rt(t,"delay",0)/1e3,c=rt(t,"origin","center"),d="opacity, transform",m=rt(t,"duration",150)/1e3,b=rt(t,"duration",75)/1e3,g="cubic-bezier(0.4, 0.0, 0.2, 1)";i&&(e._x_transition.enter.during={transformOrigin:c,transitionDelay:`${p}s`,transitionProperty:d,transitionDuration:`${m}s`,transitionTimingFunction:g},e._x_transition.enter.start={opacity:u,transform:`scale(${f})`},e._x_transition.enter.end={opacity:1,transform:"scale(1)"}),o&&(e._x_transition.leave.during={transformOrigin:c,transitionDelay:`${p}s`,transitionProperty:d,transitionDuration:`${b}s`,transitionTimingFunction:g},e._x_transition.leave.start={opacity:1,transform:"scale(1)"},e._x_transition.leave.end={opacity:u,transform:`scale(${f})`})}function lo(e,t,r={}){e._x_transition||(e._x_transition={enter:{during:r,start:r,end:r},leave:{during:r,start:r,end:r},in(n=()=>{},i=()=>{}){$r(e,t,{during:this.enter.during,start:this.enter.start,end:this.enter.end},n,i)},out(n=()=>{},i=()=>{}){$r(e,t,{during:this.leave.during,start:this.leave.start,end:this.leave.end},n,i)}})}window.Element.prototype._x_toggleAndCascadeWithTransitions=function(e,t,r,n){let i=document.visibilityState==="visible"?requestAnimationFrame:setTimeout,o=()=>i(r);if(t){e._x_transition&&(e._x_transition.enter||e._x_transition.leave)?e._x_transition.enter&&(Object.entries(e._x_transition.enter.during).length||Object.entries(e._x_transition.enter.start).length||Object.entries(e._x_transition.enter.end).length)?e._x_transition.in(r):o():e._x_transition?e._x_transition.in(r):o();return}e._x_hidePromise=e._x_transition?new Promise((s,a)=>{e._x_transition.out(()=>{},()=>s(n)),e._x_transitioning&&e._x_transitioning.beforeCancel(()=>a({isFromCancelledTransition:!0}))}):Promise.resolve(n),queueMicrotask(()=>{let s=uo(e);s?(s._x_hideChildren||(s._x_hideChildren=[]),s._x_hideChildren.push(e)):i(()=>{let a=l=>{let u=Promise.all([l._x_hidePromise,...(l._x_hideChildren||[]).map(a)]).then(([f])=>f?.());return delete l._x_hidePromise,delete l._x_hideChildren,u};a(e).catch(l=>{if(!l.isFromCancelledTransition)throw l})})})};function uo(e){let t=e.parentNode;if(!!t)return t._x_hidePromise?t:uo(t)}function $r(e,t,{during:r,start:n,end:i}={},o=()=>{},s=()=>{}){if(e._x_transitioning&&e._x_transitioning.cancel(),Object.keys(r).length===0&&Object.keys(n).length===0&&Object.keys(i).length===0){o(),s();return}let a,l,u;Gl(e,{start(){a=t(e,n)},during(){l=t(e,r)},before:o,end(){a(),u=t(e,i)},after:s,cleanup(){l(),u()}})}function Gl(e,t){let r,n,i,o=Fr(()=>{B(()=>{r=!0,n||t.before(),i||(t.end(),Ir()),t.after(),e.isConnected&&t.cleanup(),delete e._x_transitioning})});e._x_transitioning={beforeCancels:[],beforeCancel(s){this.beforeCancels.push(s)},cancel:Fr(function(){for(;this.beforeCancels.length;)this.beforeCancels.shift()();o()}),finish:o},B(()=>{t.start(),t.during()}),jl(),requestAnimationFrame(()=>{if(r)return;let s=Number(getComputedStyle(e).transitionDuration.replace(/,.*/,"").replace("s",""))*1e3,a=Number(getComputedStyle(e).transitionDelay.replace(/,.*/,"").replace("s",""))*1e3;s===0&&(s=Number(getComputedStyle(e).animationDuration.replace("s",""))*1e3),B(()=>{t.before()}),n=!0,requestAnimationFrame(()=>{r||(B(()=>{t.end()}),Ir(),setTimeout(e._x_transitioning.finish,s+a),i=!0)})})}function rt(e,t,r){if(e.indexOf(t)===-1)return r;let n=e[e.indexOf(t)+1];if(!n||t==="scale"&&isNaN(n))return r;if(t==="duration"||t==="delay"){let i=n.match(/([0-9]+)ms/);if(i)return i[1]}return t==="origin"&&["top","right","left","center","bottom"].includes(e[e.indexOf(t)+2])?[n,e[e.indexOf(t)+2]].join(" "):n}var pe=!1;function me(e,t=()=>{}){return(...r)=>pe?t(...r):e(...r)}function Xl(e){return(...t)=>pe&&e(...t)}var co=[];function Dt(e){co.push(e)}function Yl(e,t){co.forEach(r=>r(e,t)),pe=!0,fo(()=>{ie(t,(r,n)=>{n(r,()=>{})})}),pe=!1}var Dr=!1;function Ql(e,t){t._x_dataStack||(t._x_dataStack=e._x_dataStack),pe=!0,Dr=!0,fo(()=>{Zl(t)}),pe=!1,Dr=!1}function Zl(e){let t=!1;ie(e,(n,i)=>{de(n,(o,s)=>{if(t&&Bl(o))return s();t=!0,i(o,s)})})}function fo(e){let t=Te;mi((r,n)=>{let i=t(r);return Ue(i),()=>{}}),e(),mi(t)}function po(e,t,r,n=[]){switch(e._x_bindings||(e._x_bindings=Be({})),e._x_bindings[t]=r,t=n.includes("camel")?au(t):t,t){case"value":eu(e,r);break;case"style":ru(e,r);break;case"class":tu(e,r);break;case"selected":case"checked":nu(e,t,r);break;default:ho(e,t,r);break}}function eu(e,t){if(e.type==="radio")e.attributes.value===void 0&&(e.value=t),window.fromModel&&(typeof t=="boolean"?e.checked=Nt(e.value)===t:e.checked=bi(e.value,t));else if(e.type==="checkbox")Number.isInteger(t)?e.value=t:!Array.isArray(t)&&typeof t!="boolean"&&![null,void 0].includes(t)?e.value=String(t):Array.isArray(t)?e.checked=t.some(r=>bi(r,e.value)):e.checked=!!t;else if(e.tagName==="SELECT")su(e,t);else{if(e.value===t)return;e.value=t===void 0?"":t}}function tu(e,t){e._x_undoAddedClasses&&e._x_undoAddedClasses(),e._x_undoAddedClasses=tn(e,t)}function ru(e,t){e._x_undoAddedStyles&&e._x_undoAddedStyles(),e._x_undoAddedStyles=$t(e,t)}function nu(e,t,r){ho(e,t,r),ou(e,t,r)}function ho(e,t,r){[null,void 0,!1].includes(r)&&lu(t)?e.removeAttribute(t):(mo(t)&&(r=t),iu(e,t,r))}function iu(e,t,r){e.getAttribute(t)!=r&&e.setAttribute(t,r)}function ou(e,t,r){e[t]!==r&&(e[t]=r)}function su(e,t){let r=[].concat(t).map(n=>n+"");Array.from(e.options).forEach(n=>{n.selected=r.includes(n.value)})}function au(e){return e.toLowerCase().replace(/-(\w)/g,(t,r)=>r.toUpperCase())}function bi(e,t){return e==t}function Nt(e){return[1,"1","true","on","yes",!0].includes(e)?!0:[0,"0","false","off","no",!1].includes(e)?!1:e?Boolean(e):null}function mo(e){return["disabled","checked","required","readonly","open","selected","autofocus","itemscope","multiple","novalidate","allowfullscreen","allowpaymentrequest","formnovalidate","autoplay","controls","loop","muted","playsinline","default","ismap","reversed","async","defer","nomodule"].includes(e)}function lu(e){return!["aria-pressed","aria-checked","aria-expanded","aria-selected"].includes(e)}function uu(e,t,r){return e._x_bindings&&e._x_bindings[t]!==void 0?e._x_bindings[t]:go(e,t,r)}function cu(e,t,r,n=!0){if(e._x_bindings&&e._x_bindings[t]!==void 0)return e._x_bindings[t];if(e._x_inlineBindings&&e._x_inlineBindings[t]!==void 0){let i=e._x_inlineBindings[t];return i.extract=n,qi(()=>Ae(e,i.expression))}return go(e,t,r)}function go(e,t,r){let n=e.getAttribute(t);return n===null?typeof r=="function"?r():r:n===""?!0:mo(t)?!![t,"true"].includes(n):n}function vo(e,t){var r;return function(){var n=this,i=arguments,o=function(){r=null,e.apply(n,i)};clearTimeout(r),r=setTimeout(o,t)}}function bo(e,t){let r;return function(){let n=this,i=arguments;r||(e.apply(n,i),r=!0,setTimeout(()=>r=!1,t))}}function wo({get:e,set:t},{get:r,set:n}){let i=!0,o,s,a=Te(()=>{let l=e(),u=r();if(i)n(_r(l)),i=!1;else{let f=JSON.stringify(l),p=JSON.stringify(u);f!==o?n(_r(l)):f!==p&&t(_r(u))}o=JSON.stringify(e()),s=JSON.stringify(r())});return()=>{Ue(a)}}function _r(e){return typeof e=="object"?JSON.parse(JSON.stringify(e)):e}function fu(e){(Array.isArray(e)?e:[e]).forEach(r=>r(ft))}var _e={},wi=!1;function du(e,t){if(wi||(_e=Be(_e),wi=!0),t===void 0)return _e[e];_e[e]=t,typeof t=="object"&&t!==null&&t.hasOwnProperty("init")&&typeof t.init=="function"&&_e[e].init(),Ui(_e[e])}function pu(){return _e}var yo={};function hu(e,t){let r=typeof t!="function"?()=>t:t;return e instanceof Element?xo(e,r()):(yo[e]=r,()=>{})}function mu(e){return Object.entries(yo).forEach(([t,r])=>{Object.defineProperty(e,t,{get(){return(...n)=>r(...n)}})}),e}function xo(e,t,r){let n=[];for(;n.length;)n.pop()();let i=Object.entries(t).map(([s,a])=>({name:s,value:a})),o=Ki(i);return i=i.map(s=>o.find(a=>a.name===s.name)?{name:`x-bind:${s.name}`,value:`"${s.value}"`}:s),Xr(e,i,r).map(s=>{n.push(s.runCleanups),s()}),()=>{for(;n.length;)n.pop()()}}var _o={};function gu(e,t){_o[e]=t}function vu(e,t){return Object.entries(_o).forEach(([r,n])=>{Object.defineProperty(e,r,{get(){return(...i)=>n.bind(t)(...i)},enumerable:!1})}),e}var bu={get reactive(){return Be},get release(){return Ue},get effect(){return Te},get raw(){return Li},version:"3.14.1",flushAndStopDeferringMutations:Sl,dontAutoEvaluateFunctions:qi,disableEffectScheduling:gl,startObservingMutations:Kr,stopObservingMutations:Di,setReactivityEngine:vl,onAttributeRemoved:Fi,onAttributesAdded:Ii,closestDataStack:$e,skipDuringClone:me,onlyDuringClone:Xl,addRootSelector:io,addInitSelector:oo,interceptClone:Dt,addScopeToNode:lt,deferMutations:_l,mapAttributes:Yr,evaluateLater:H,interceptInit:Ul,setEvaluator:Tl,mergeProxies:ut,extractProp:cu,findClosest:ct,onElRemoved:qr,closestRoot:Ft,destroyTree:ao,interceptor:Hi,transition:$r,setStyles:$t,mutateDom:B,directive:F,entangle:wo,throttle:bo,debounce:vo,evaluate:Ae,initTree:ie,nextTick:en,prefixed:He,prefix:Rl,plugin:fu,magic:Z,store:du,start:Dl,clone:Ql,cloneNode:Yl,bound:uu,$data:Bi,watch:Ni,walk:de,data:gu,bind:hu},ft=bu;function So(e,t){let r=Object.create(null),n=e.split(",");for(let i=0;i<n.length;i++)r[n[i]]=!0;return t?i=>!!r[i.toLowerCase()]:i=>!!r[i]}var wu="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Jd=So(wu+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected"),yu=Object.freeze({}),Gd=Object.freeze([]),xu=Object.prototype.hasOwnProperty,Bt=(e,t)=>xu.call(e,t),Ce=Array.isArray,st=e=>Eo(e)==="[object Map]",_u=e=>typeof e=="string",rn=e=>typeof e=="symbol",Ut=e=>e!==null&&typeof e=="object",Su=Object.prototype.toString,Eo=e=>Su.call(e),Ao=e=>Eo(e).slice(8,-1),nn=e=>_u(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ht=e=>{let t=Object.create(null);return r=>t[r]||(t[r]=e(r))},Eu=/-(\w)/g,Xd=Ht(e=>e.replace(Eu,(t,r)=>r?r.toUpperCase():"")),Au=/\B([A-Z])/g,Yd=Ht(e=>e.replace(Au,"-$1").toLowerCase()),Co=Ht(e=>e.charAt(0).toUpperCase()+e.slice(1)),Qd=Ht(e=>e?`on${Co(e)}`:""),Oo=(e,t)=>e!==t&&(e===e||t===t),Br=new WeakMap,nt=[],ee,Oe=Symbol("iterate"),Ur=Symbol("Map key iterate");function Cu(e){return e&&e._isEffect===!0}function Ou(e,t=yu){Cu(e)&&(e=e.raw);let r=Lu(e,t);return t.lazy||r(),r}function Tu(e){e.active&&(To(e),e.options.onStop&&e.options.onStop(),e.active=!1)}var ku=0;function Lu(e,t){let r=function(){if(!r.active)return e();if(!nt.includes(r)){To(r);try{return Ru(),nt.push(r),ee=r,e()}finally{nt.pop(),ko(),ee=nt[nt.length-1]}}};return r.id=ku++,r.allowRecurse=!!t.allowRecurse,r._isEffect=!0,r.active=!0,r.raw=e,r.deps=[],r.options=t,r}function To(e){let{deps:t}=e;if(t.length){for(let r=0;r<t.length;r++)t[r].delete(e);t.length=0}}var De=!0,on=[];function Nu(){on.push(De),De=!1}function Ru(){on.push(De),De=!0}function ko(){let e=on.pop();De=e===void 0?!0:e}function Q(e,t,r){if(!De||ee===void 0)return;let n=Br.get(e);n||Br.set(e,n=new Map);let i=n.get(r);i||n.set(r,i=new Set),i.has(ee)||(i.add(ee),ee.deps.push(i),ee.options.onTrack&&ee.options.onTrack({effect:ee,target:e,type:t,key:r}))}function he(e,t,r,n,i,o){let s=Br.get(e);if(!s)return;let a=new Set,l=f=>{f&&f.forEach(p=>{(p!==ee||p.allowRecurse)&&a.add(p)})};if(t==="clear")s.forEach(l);else if(r==="length"&&Ce(e))s.forEach((f,p)=>{(p==="length"||p>=n)&&l(f)});else switch(r!==void 0&&l(s.get(r)),t){case"add":Ce(e)?nn(r)&&l(s.get("length")):(l(s.get(Oe)),st(e)&&l(s.get(Ur)));break;case"delete":Ce(e)||(l(s.get(Oe)),st(e)&&l(s.get(Ur)));break;case"set":st(e)&&l(s.get(Oe));break}let u=f=>{f.options.onTrigger&&f.options.onTrigger({effect:f,target:e,key:r,type:t,newValue:n,oldValue:i,oldTarget:o}),f.options.scheduler?f.options.scheduler(f):f()};a.forEach(u)}var Pu=So("__proto__,__v_isRef,__isVue"),Lo=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(rn)),Mu=No(),Iu=No(!0),yi=Fu();function Fu(){let e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){let n=M(this);for(let o=0,s=this.length;o<s;o++)Q(n,"get",o+"");let i=n[t](...r);return i===-1||i===!1?n[t](...r.map(M)):i}}),["push","pop","shift","unshift","splice"].forEach(t=>{e[t]=function(...r){Nu();let n=M(this)[t].apply(this,r);return ko(),n}}),e}function No(e=!1,t=!1){return function(n,i,o){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_raw"&&o===(e?t?Qu:Io:t?Yu:Mo).get(n))return n;let s=Ce(n);if(!e&&s&&Bt(yi,i))return Reflect.get(yi,i,o);let a=Reflect.get(n,i,o);return(rn(i)?Lo.has(i):Pu(i))||(e||Q(n,"get",i),t)?a:Hr(a)?!s||!nn(i)?a.value:a:Ut(a)?e?Fo(a):un(a):a}}var $u=Du();function Du(e=!1){return function(r,n,i,o){let s=r[n];if(!e&&(i=M(i),s=M(s),!Ce(r)&&Hr(s)&&!Hr(i)))return s.value=i,!0;let a=Ce(r)&&nn(n)?Number(n)<r.length:Bt(r,n),l=Reflect.set(r,n,i,o);return r===M(o)&&(a?Oo(i,s)&&he(r,"set",n,i,s):he(r,"add",n,i)),l}}function Bu(e,t){let r=Bt(e,t),n=e[t],i=Reflect.deleteProperty(e,t);return i&&r&&he(e,"delete",t,void 0,n),i}function Uu(e,t){let r=Reflect.has(e,t);return(!rn(t)||!Lo.has(t))&&Q(e,"has",t),r}function Hu(e){return Q(e,"iterate",Ce(e)?"length":Oe),Reflect.ownKeys(e)}var ju={get:Mu,set:$u,deleteProperty:Bu,has:Uu,ownKeys:Hu},qu={get:Iu,set(e,t){return console.warn(`Set operation on key "${String(t)}" failed: target is readonly.`,e),!0},deleteProperty(e,t){return console.warn(`Delete operation on key "${String(t)}" failed: target is readonly.`,e),!0}},sn=e=>Ut(e)?un(e):e,an=e=>Ut(e)?Fo(e):e,ln=e=>e,jt=e=>Reflect.getPrototypeOf(e);function At(e,t,r=!1,n=!1){e=e.__v_raw;let i=M(e),o=M(t);t!==o&&!r&&Q(i,"get",t),!r&&Q(i,"get",o);let{has:s}=jt(i),a=n?ln:r?an:sn;if(s.call(i,t))return a(e.get(t));if(s.call(i,o))return a(e.get(o));e!==i&&e.get(t)}function Ct(e,t=!1){let r=this.__v_raw,n=M(r),i=M(e);return e!==i&&!t&&Q(n,"has",e),!t&&Q(n,"has",i),e===i?r.has(e):r.has(e)||r.has(i)}function Ot(e,t=!1){return e=e.__v_raw,!t&&Q(M(e),"iterate",Oe),Reflect.get(e,"size",e)}function xi(e){e=M(e);let t=M(this);return jt(t).has.call(t,e)||(t.add(e),he(t,"add",e,e)),this}function _i(e,t){t=M(t);let r=M(this),{has:n,get:i}=jt(r),o=n.call(r,e);o?Po(r,n,e):(e=M(e),o=n.call(r,e));let s=i.call(r,e);return r.set(e,t),o?Oo(t,s)&&he(r,"set",e,t,s):he(r,"add",e,t),this}function Si(e){let t=M(this),{has:r,get:n}=jt(t),i=r.call(t,e);i?Po(t,r,e):(e=M(e),i=r.call(t,e));let o=n?n.call(t,e):void 0,s=t.delete(e);return i&&he(t,"delete",e,void 0,o),s}function Ei(){let e=M(this),t=e.size!==0,r=st(e)?new Map(e):new Set(e),n=e.clear();return t&&he(e,"clear",void 0,void 0,r),n}function Tt(e,t){return function(n,i){let o=this,s=o.__v_raw,a=M(s),l=t?ln:e?an:sn;return!e&&Q(a,"iterate",Oe),s.forEach((u,f)=>n.call(i,l(u),l(f),o))}}function kt(e,t,r){return function(...n){let i=this.__v_raw,o=M(i),s=st(o),a=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,u=i[e](...n),f=r?ln:t?an:sn;return!t&&Q(o,"iterate",l?Ur:Oe),{next(){let{value:p,done:c}=u.next();return c?{value:p,done:c}:{value:a?[f(p[0]),f(p[1])]:f(p),done:c}},[Symbol.iterator](){return this}}}}function fe(e){return function(...t){{let r=t[0]?`on key "${t[0]}" `:"";console.warn(`${Co(e)} operation ${r}failed: target is readonly.`,M(this))}return e==="delete"?!1:this}}function Wu(){let e={get(o){return At(this,o)},get size(){return Ot(this)},has:Ct,add:xi,set:_i,delete:Si,clear:Ei,forEach:Tt(!1,!1)},t={get(o){return At(this,o,!1,!0)},get size(){return Ot(this)},has:Ct,add:xi,set:_i,delete:Si,clear:Ei,forEach:Tt(!1,!0)},r={get(o){return At(this,o,!0)},get size(){return Ot(this,!0)},has(o){return Ct.call(this,o,!0)},add:fe("add"),set:fe("set"),delete:fe("delete"),clear:fe("clear"),forEach:Tt(!0,!1)},n={get(o){return At(this,o,!0,!0)},get size(){return Ot(this,!0)},has(o){return Ct.call(this,o,!0)},add:fe("add"),set:fe("set"),delete:fe("delete"),clear:fe("clear"),forEach:Tt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=kt(o,!1,!1),r[o]=kt(o,!0,!1),t[o]=kt(o,!1,!0),n[o]=kt(o,!0,!0)}),[e,r,t,n]}var[zu,Ku,Vu,Ju]=Wu();function Ro(e,t){let r=t?e?Ju:Vu:e?Ku:zu;return(n,i,o)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(Bt(r,i)&&i in n?r:n,i,o)}var Gu={get:Ro(!1,!1)},Xu={get:Ro(!0,!1)};function Po(e,t,r){let n=M(r);if(n!==r&&t.call(e,n)){let i=Ao(e);console.warn(`Reactive ${i} contains both the raw and reactive versions of the same object${i==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}var Mo=new WeakMap,Yu=new WeakMap,Io=new WeakMap,Qu=new WeakMap;function Zu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ec(e){return e.__v_skip||!Object.isExtensible(e)?0:Zu(Ao(e))}function un(e){return e&&e.__v_isReadonly?e:$o(e,!1,ju,Gu,Mo)}function Fo(e){return $o(e,!0,qu,Xu,Io)}function $o(e,t,r,n,i){if(!Ut(e))return console.warn(`value cannot be made reactive: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=i.get(e);if(o)return o;let s=ec(e);if(s===0)return e;let a=new Proxy(e,s===2?n:r);return i.set(e,a),a}function M(e){return e&&M(e.__v_raw)||e}function Hr(e){return Boolean(e&&e.__v_isRef===!0)}Z("nextTick",()=>en);Z("dispatch",e=>ot.bind(ot,e));Z("watch",(e,{evaluateLater:t,cleanup:r})=>(n,i)=>{let o=t(n),a=Ni(()=>{let l;return o(u=>l=u),l},i);r(a)});Z("store",pu);Z("data",e=>Bi(e));Z("root",e=>Ft(e));Z("refs",e=>(e._x_refs_proxy||(e._x_refs_proxy=ut(tc(e))),e._x_refs_proxy));function tc(e){let t=[];return ct(e,r=>{r._x_refs&&t.push(r._x_refs)}),t}var Sr={};function Do(e){return Sr[e]||(Sr[e]=0),++Sr[e]}function rc(e,t){return ct(e,r=>{if(r._x_ids&&r._x_ids[t])return!0})}function nc(e,t){e._x_ids||(e._x_ids={}),e._x_ids[t]||(e._x_ids[t]=Do(t))}Z("id",(e,{cleanup:t})=>(r,n=null)=>{let i=`${r}${n?`-${n}`:""}`;return ic(e,i,t,()=>{let o=rc(e,r),s=o?o._x_ids[r]:Do(r);return n?`${r}-${s}-${n}`:`${r}-${s}`})});Dt((e,t)=>{e._x_id&&(t._x_id=e._x_id)});function ic(e,t,r,n){if(e._x_id||(e._x_id={}),e._x_id[t])return e._x_id[t];let i=n();return e._x_id[t]=i,r(()=>{delete e._x_id[t]}),i}Z("el",e=>e);Bo("Focus","focus","focus");Bo("Persist","persist","persist");function Bo(e,t,r){Z(t,n=>V(`You can't use [$${t}] without first installing the "${e}" plugin here: https://alpinejs.dev/plugins/${r}`,n))}F("modelable",(e,{expression:t},{effect:r,evaluateLater:n,cleanup:i})=>{let o=n(t),s=()=>{let f;return o(p=>f=p),f},a=n(`${t} = __placeholder`),l=f=>a(()=>{},{scope:{__placeholder:f}}),u=s();l(u),queueMicrotask(()=>{if(!e._x_model)return;e._x_removeModelListeners.default();let f=e._x_model.get,p=e._x_model.set,c=wo({get(){return f()},set(d){p(d)}},{get(){return s()},set(d){l(d)}});i(c)})});F("teleport",(e,{modifiers:t,expression:r},{cleanup:n})=>{e.tagName.toLowerCase()!=="template"&&V("x-teleport can only be used on a <template> tag",e);let i=Ai(r),o=e.content.cloneNode(!0).firstElementChild;e._x_teleport=o,o._x_teleportBack=e,e.setAttribute("data-teleport-template",!0),o.setAttribute("data-teleport-target",!0),e._x_forwardEvents&&e._x_forwardEvents.forEach(a=>{o.addEventListener(a,l=>{l.stopPropagation(),e.dispatchEvent(new l.constructor(l.type,l))})}),lt(o,{},e);let s=(a,l,u)=>{u.includes("prepend")?l.parentNode.insertBefore(a,l):u.includes("append")?l.parentNode.insertBefore(a,l.nextSibling):l.appendChild(a)};B(()=>{s(o,i,t),me(()=>{ie(o),o._x_ignore=!0})()}),e._x_teleportPutBack=()=>{let a=Ai(r);B(()=>{s(e._x_teleport,a,t)})},n(()=>o.remove())});var oc=document.createElement("div");function Ai(e){let t=me(()=>document.querySelector(e),()=>oc)();return t||V(`Cannot find x-teleport element for selector: "${e}"`),t}var Uo=()=>{};Uo.inline=(e,{modifiers:t},{cleanup:r})=>{t.includes("self")?e._x_ignoreSelf=!0:e._x_ignore=!0,r(()=>{t.includes("self")?delete e._x_ignoreSelf:delete e._x_ignore})};F("ignore",Uo);F("effect",me((e,{expression:t},{effect:r})=>{r(H(e,t))}));function jr(e,t,r,n){let i=e,o=l=>n(l),s={},a=(l,u)=>f=>u(l,f);if(r.includes("dot")&&(t=sc(t)),r.includes("camel")&&(t=ac(t)),r.includes("passive")&&(s.passive=!0),r.includes("capture")&&(s.capture=!0),r.includes("window")&&(i=window),r.includes("document")&&(i=document),r.includes("debounce")){let l=r[r.indexOf("debounce")+1]||"invalid-wait",u=It(l.split("ms")[0])?Number(l.split("ms")[0]):250;o=vo(o,u)}if(r.includes("throttle")){let l=r[r.indexOf("throttle")+1]||"invalid-wait",u=It(l.split("ms")[0])?Number(l.split("ms")[0]):250;o=bo(o,u)}return r.includes("prevent")&&(o=a(o,(l,u)=>{u.preventDefault(),l(u)})),r.includes("stop")&&(o=a(o,(l,u)=>{u.stopPropagation(),l(u)})),r.includes("once")&&(o=a(o,(l,u)=>{l(u),i.removeEventListener(t,o,s)})),(r.includes("away")||r.includes("outside"))&&(i=document,o=a(o,(l,u)=>{e.contains(u.target)||u.target.isConnected!==!1&&(e.offsetWidth<1&&e.offsetHeight<1||e._x_isShown!==!1&&l(u))})),r.includes("self")&&(o=a(o,(l,u)=>{u.target===e&&l(u)})),(uc(t)||Ho(t))&&(o=a(o,(l,u)=>{cc(u,r)||l(u)})),i.addEventListener(t,o,s),()=>{i.removeEventListener(t,o,s)}}function sc(e){return e.replace(/-/g,".")}function ac(e){return e.toLowerCase().replace(/-(\w)/g,(t,r)=>r.toUpperCase())}function It(e){return!Array.isArray(e)&&!isNaN(e)}function lc(e){return[" ","_"].includes(e)?e:e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]/,"-").toLowerCase()}function uc(e){return["keydown","keyup"].includes(e)}function Ho(e){return["contextmenu","click","mouse"].some(t=>e.includes(t))}function cc(e,t){let r=t.filter(o=>!["window","document","prevent","stop","once","capture","self","away","outside","passive"].includes(o));if(r.includes("debounce")){let o=r.indexOf("debounce");r.splice(o,It((r[o+1]||"invalid-wait").split("ms")[0])?2:1)}if(r.includes("throttle")){let o=r.indexOf("throttle");r.splice(o,It((r[o+1]||"invalid-wait").split("ms")[0])?2:1)}if(r.length===0||r.length===1&&Ci(e.key).includes(r[0]))return!1;let i=["ctrl","shift","alt","meta","cmd","super"].filter(o=>r.includes(o));return r=r.filter(o=>!i.includes(o)),!(i.length>0&&i.filter(s=>((s==="cmd"||s==="super")&&(s="meta"),e[`${s}Key`])).length===i.length&&(Ho(e.type)||Ci(e.key).includes(r[0])))}function Ci(e){if(!e)return[];e=lc(e);let t={ctrl:"control",slash:"/",space:" ",spacebar:" ",cmd:"meta",esc:"escape",up:"arrow-up",down:"arrow-down",left:"arrow-left",right:"arrow-right",period:".",comma:",",equal:"=",minus:"-",underscore:"_"};return t[e]=e,Object.keys(t).map(r=>{if(t[r]===e)return r}).filter(r=>r)}F("model",(e,{modifiers:t,expression:r},{effect:n,cleanup:i})=>{let o=e;t.includes("parent")&&(o=e.parentNode);let s=H(o,r),a;typeof r=="string"?a=H(o,`${r} = __placeholder`):typeof r=="function"&&typeof r()=="string"?a=H(o,`${r()} = __placeholder`):a=()=>{};let l=()=>{let c;return s(d=>c=d),Oi(c)?c.get():c},u=c=>{let d;s(m=>d=m),Oi(d)?d.set(c):a(()=>{},{scope:{__placeholder:c}})};typeof r=="string"&&e.type==="radio"&&B(()=>{e.hasAttribute("name")||e.setAttribute("name",r)});var f=e.tagName.toLowerCase()==="select"||["checkbox","radio"].includes(e.type)||t.includes("lazy")?"change":"input";let p=pe?()=>{}:jr(e,f,t,c=>{u(Er(e,t,c,l()))});if(t.includes("fill")&&([void 0,null,""].includes(l())||e.type==="checkbox"&&Array.isArray(l())||e.tagName.toLowerCase()==="select"&&e.multiple)&&u(Er(e,t,{target:e},l())),e._x_removeModelListeners||(e._x_removeModelListeners={}),e._x_removeModelListeners.default=p,i(()=>e._x_removeModelListeners.default()),e.form){let c=jr(e.form,"reset",[],d=>{en(()=>e._x_model&&e._x_model.set(Er(e,t,{target:e},l())))});i(()=>c())}e._x_model={get(){return l()},set(c){u(c)}},e._x_forceModelUpdate=c=>{c===void 0&&typeof r=="string"&&r.match(/\./)&&(c=""),window.fromModel=!0,B(()=>po(e,"value",c)),delete window.fromModel},n(()=>{let c=l();t.includes("unintrusive")&&document.activeElement.isSameNode(e)||e._x_forceModelUpdate(c)})});function Er(e,t,r,n){return B(()=>{if(r instanceof CustomEvent&&r.detail!==void 0)return r.detail!==null&&r.detail!==void 0?r.detail:r.target.value;if(e.type==="checkbox")if(Array.isArray(n)){let i=null;return t.includes("number")?i=Ar(r.target.value):t.includes("boolean")?i=Nt(r.target.value):i=r.target.value,r.target.checked?n.includes(i)?n:n.concat([i]):n.filter(o=>!fc(o,i))}else return r.target.checked;else{if(e.tagName.toLowerCase()==="select"&&e.multiple)return t.includes("number")?Array.from(r.target.selectedOptions).map(i=>{let o=i.value||i.text;return Ar(o)}):t.includes("boolean")?Array.from(r.target.selectedOptions).map(i=>{let o=i.value||i.text;return Nt(o)}):Array.from(r.target.selectedOptions).map(i=>i.value||i.text);{let i;return e.type==="radio"?r.target.checked?i=r.target.value:i=n:i=r.target.value,t.includes("number")?Ar(i):t.includes("boolean")?Nt(i):t.includes("trim")?i.trim():i}}})}function Ar(e){let t=e?parseFloat(e):null;return dc(t)?t:e}function fc(e,t){return e==t}function dc(e){return!Array.isArray(e)&&!isNaN(e)}function Oi(e){return e!==null&&typeof e=="object"&&typeof e.get=="function"&&typeof e.set=="function"}F("cloak",e=>queueMicrotask(()=>B(()=>e.removeAttribute(He("cloak")))));oo(()=>`[${He("init")}]`);F("init",me((e,{expression:t},{evaluate:r})=>typeof t=="string"?!!t.trim()&&r(t,{},!1):r(t,{},!1)));F("text",(e,{expression:t},{effect:r,evaluateLater:n})=>{let i=n(t);r(()=>{i(o=>{B(()=>{e.textContent=o})})})});F("html",(e,{expression:t},{effect:r,evaluateLater:n})=>{let i=n(t);r(()=>{i(o=>{B(()=>{e.innerHTML=o,e._x_ignoreSelf=!0,ie(e),delete e._x_ignoreSelf})})})});Yr(Gi(":",Xi(He("bind:"))));var jo=(e,{value:t,modifiers:r,expression:n,original:i},{effect:o,cleanup:s})=>{if(!t){let l={};mu(l),H(e,n)(f=>{xo(e,f,i)},{scope:l});return}if(t==="key")return pc(e,n);if(e._x_inlineBindings&&e._x_inlineBindings[t]&&e._x_inlineBindings[t].extract)return;let a=H(e,n);o(()=>a(l=>{l===void 0&&typeof n=="string"&&n.match(/\./)&&(l=""),B(()=>po(e,t,l,r))})),s(()=>{e._x_undoAddedClasses&&e._x_undoAddedClasses(),e._x_undoAddedStyles&&e._x_undoAddedStyles()})};jo.inline=(e,{value:t,modifiers:r,expression:n})=>{!t||(e._x_inlineBindings||(e._x_inlineBindings={}),e._x_inlineBindings[t]={expression:n,extract:!1})};F("bind",jo);function pc(e,t){e._x_keyExpression=t}io(()=>`[${He("data")}]`);F("data",(e,{expression:t},{cleanup:r})=>{if(hc(e))return;t=t===""?"{}":t;let n={};Nr(n,e);let i={};vu(i,n);let o=Ae(e,t,{scope:i});(o===void 0||o===!0)&&(o={}),Nr(o,e);let s=Be(o);Ui(s);let a=lt(e,s);s.init&&Ae(e,s.init),r(()=>{s.destroy&&Ae(e,s.destroy),a()})});Dt((e,t)=>{e._x_dataStack&&(t._x_dataStack=e._x_dataStack,t.setAttribute("data-has-alpine-state",!0))});function hc(e){return pe?Dr?!0:e.hasAttribute("data-has-alpine-state"):!1}F("show",(e,{modifiers:t,expression:r},{effect:n})=>{let i=H(e,r);e._x_doHide||(e._x_doHide=()=>{B(()=>{e.style.setProperty("display","none",t.includes("important")?"important":void 0)})}),e._x_doShow||(e._x_doShow=()=>{B(()=>{e.style.length===1&&e.style.display==="none"?e.removeAttribute("style"):e.style.removeProperty("display")})});let o=()=>{e._x_doHide(),e._x_isShown=!1},s=()=>{e._x_doShow(),e._x_isShown=!0},a=()=>setTimeout(s),l=Fr(p=>p?s():o(),p=>{typeof e._x_toggleAndCascadeWithTransitions=="function"?e._x_toggleAndCascadeWithTransitions(e,p,s,o):p?a():o()}),u,f=!0;n(()=>i(p=>{!f&&p===u||(t.includes("immediate")&&(p?a():o()),l(p),u=p,f=!1)}))});F("for",(e,{expression:t},{effect:r,cleanup:n})=>{let i=gc(t),o=H(e,i.items),s=H(e,e._x_keyExpression||"index");e._x_prevKeys=[],e._x_lookup={},r(()=>mc(e,i,o,s)),n(()=>{Object.values(e._x_lookup).forEach(a=>a.remove()),delete e._x_prevKeys,delete e._x_lookup})});function mc(e,t,r,n){let i=s=>typeof s=="object"&&!Array.isArray(s),o=e;r(s=>{vc(s)&&s>=0&&(s=Array.from(Array(s).keys(),g=>g+1)),s===void 0&&(s=[]);let a=e._x_lookup,l=e._x_prevKeys,u=[],f=[];if(i(s))s=Object.entries(s).map(([g,y])=>{let v=Ti(t,y,g,s);n(_=>{f.includes(_)&&V("Duplicate key on x-for",e),f.push(_)},{scope:{index:g,...v}}),u.push(v)});else for(let g=0;g<s.length;g++){let y=Ti(t,s[g],g,s);n(v=>{f.includes(v)&&V("Duplicate key on x-for",e),f.push(v)},{scope:{index:g,...y}}),u.push(y)}let p=[],c=[],d=[],m=[];for(let g=0;g<l.length;g++){let y=l[g];f.indexOf(y)===-1&&d.push(y)}l=l.filter(g=>!d.includes(g));let b="template";for(let g=0;g<f.length;g++){let y=f[g],v=l.indexOf(y);if(v===-1)l.splice(g,0,y),p.push([b,g]);else if(v!==g){let _=l.splice(g,1)[0],T=l.splice(v-1,1)[0];l.splice(g,0,T),l.splice(v,0,_),c.push([_,T])}else m.push(y);b=y}for(let g=0;g<d.length;g++){let y=d[g];a[y]._x_effects&&a[y]._x_effects.forEach(ki),a[y].remove(),a[y]=null,delete a[y]}for(let g=0;g<c.length;g++){let[y,v]=c[g],_=a[y],T=a[v],A=document.createElement("div");B(()=>{T||V('x-for ":key" is undefined or invalid',o,v,a),T.after(A),_.after(T),T._x_currentIfEl&&T.after(T._x_currentIfEl),A.before(_),_._x_currentIfEl&&_.after(_._x_currentIfEl),A.remove()}),T._x_refreshXForScope(u[f.indexOf(v)])}for(let g=0;g<p.length;g++){let[y,v]=p[g],_=y==="template"?o:a[y];_._x_currentIfEl&&(_=_._x_currentIfEl);let T=u[v],A=f[v],w=document.importNode(o.content,!0).firstElementChild,h=Be(T);lt(w,h,o),w._x_refreshXForScope=x=>{Object.entries(x).forEach(([O,L])=>{h[O]=L})},B(()=>{_.after(w),me(()=>ie(w))()}),typeof A=="object"&&V("x-for key cannot be an object, it must be a string or an integer",o),a[A]=w}for(let g=0;g<m.length;g++)a[m[g]]._x_refreshXForScope(u[f.indexOf(m[g])]);o._x_prevKeys=f})}function gc(e){let t=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,r=/^\s*\(|\)\s*$/g,n=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,i=e.match(n);if(!i)return;let o={};o.items=i[2].trim();let s=i[1].replace(r,"").trim(),a=s.match(t);return a?(o.item=s.replace(t,"").trim(),o.index=a[1].trim(),a[2]&&(o.collection=a[2].trim())):o.item=s,o}function Ti(e,t,r,n){let i={};return/^\[.*\]$/.test(e.item)&&Array.isArray(t)?e.item.replace("[","").replace("]","").split(",").map(s=>s.trim()).forEach((s,a)=>{i[s]=t[a]}):/^\{.*\}$/.test(e.item)&&!Array.isArray(t)&&typeof t=="object"?e.item.replace("{","").replace("}","").split(",").map(s=>s.trim()).forEach(s=>{i[s]=t[s]}):i[e.item]=t,e.index&&(i[e.index]=r),e.collection&&(i[e.collection]=n),i}function vc(e){return!Array.isArray(e)&&!isNaN(e)}function qo(){}qo.inline=(e,{expression:t},{cleanup:r})=>{let n=Ft(e);n._x_refs||(n._x_refs={}),n._x_refs[t]=e,r(()=>delete n._x_refs[t])};F("ref",qo);F("if",(e,{expression:t},{effect:r,cleanup:n})=>{e.tagName.toLowerCase()!=="template"&&V("x-if can only be used on a <template> tag",e);let i=H(e,t),o=()=>{if(e._x_currentIfEl)return e._x_currentIfEl;let a=e.content.cloneNode(!0).firstElementChild;return lt(a,{},e),B(()=>{e.after(a),me(()=>ie(a))()}),e._x_currentIfEl=a,e._x_undoIf=()=>{de(a,l=>{l._x_effects&&l._x_effects.forEach(ki)}),a.remove(),delete e._x_currentIfEl},a},s=()=>{!e._x_undoIf||(e._x_undoIf(),delete e._x_undoIf)};r(()=>i(a=>{a?o():s()})),n(()=>e._x_undoIf&&e._x_undoIf())});F("id",(e,{expression:t},{evaluate:r})=>{r(t).forEach(i=>nc(e,i))});Dt((e,t)=>{e._x_ids&&(t._x_ids=e._x_ids)});Yr(Gi("@",Xi(He("on:"))));F("on",me((e,{value:t,modifiers:r,expression:n},{cleanup:i})=>{let o=n?H(e,n):()=>{};e.tagName.toLowerCase()==="template"&&(e._x_forwardEvents||(e._x_forwardEvents=[]),e._x_forwardEvents.includes(t)||e._x_forwardEvents.push(t));let s=jr(e,t,r,a=>{o(()=>{},{scope:{$event:a},params:[a]})});i(()=>s())}));qt("Collapse","collapse","collapse");qt("Intersect","intersect","intersect");qt("Focus","trap","focus");qt("Mask","mask","mask");function qt(e,t,r){F(t,n=>V(`You can't use [x-${t}] without first installing the "${e}" plugin here: https://alpinejs.dev/plugins/${r}`,n))}ft.setEvaluator(zi);ft.setReactivityEngine({reactive:un,effect:Ou,release:Tu,raw:M});var bc=ft,S=bc;function cn(e,t){return t||(t=()=>{}),(r,n=!1)=>{let i=n,o=r,s=e.$wire,a=s.get(o);return S.interceptor((u,f,p,c,d)=>{if(typeof a>"u"){console.error(`Livewire Entangle Error: Livewire property ['${o}'] cannot be found on component: ['${e.name}']`);return}let m=S.entangle({get(){return s.get(r)},set(b){s.set(r,b,i)}},{get(){return f()},set(b){p(b)}});return t(()=>m()),wc(s.get(r))},u=>{Object.defineProperty(u,"live",{get(){return i=!0,u}})})(a)}}function wc(e){return typeof e=="object"?JSON.parse(JSON.stringify(e)):e}var ke=[];function k(e,t){return ke[e]||(ke[e]=[]),ke[e].push(t),()=>{ke[e]=ke[e].filter(r=>r!==t)}}function R(e,...t){let r=ke[e]||[],n=[];for(let i=0;i<r.length;i++){let o=r[i](...t);br(o)&&n.push(o)}return i=>Wo(n,i)}async function Wt(e,...t){let r=ke[e]||[],n=[];for(let i=0;i<r.length;i++){let o=await r[i](...t);br(o)&&n.push(o)}return i=>Wo(n,i)}function Wo(e,t){let r=t;for(let n=0;n<e.length;n++){let i=e[n](r);i!==void 0&&(r=i)}return r}function fn(e){let t=document.createElement("html");t.innerHTML=e,t.querySelectorAll("a").forEach(i=>i.setAttribute("target","_top"));let r=document.getElementById("livewire-error");typeof r<"u"&&r!=null?r.innerHTML="":(r=document.createElement("div"),r.id="livewire-error",r.style.position="fixed",r.style.width="100vw",r.style.height="100vh",r.style.padding="50px",r.style.backgroundColor="rgba(0, 0, 0, .6)",r.style.zIndex=2e5);let n=document.createElement("iframe");n.style.backgroundColor="#17161A",n.style.borderRadius="5px",n.style.width="100%",n.style.height="100%",r.appendChild(n),document.body.prepend(r),document.body.style.overflow="hidden",n.contentWindow.document.open(),n.contentWindow.document.write(t.outerHTML),n.contentWindow.document.close(),r.addEventListener("click",()=>zo(r)),r.setAttribute("tabindex",0),r.addEventListener("keydown",i=>{i.key==="Escape"&&zo(r)}),r.focus()}function zo(e){e.outerHTML="",document.body.style.overflow="visible"}var zt=class{constructor(){this.commits=new Set}add(t){this.commits.add(t)}delete(t){this.commits.delete(t)}hasCommitFor(t){return!!this.findCommitByComponent(t)}findCommitByComponent(t){for(let[r,n]of this.commits.entries())if(n.component===t)return n}shouldHoldCommit(t){return!t.isolate}empty(){return this.commits.size===0}async send(){this.prepare(),await Ko(this)}prepare(){this.commits.forEach(t=>t.prepare())}payload(){let t=[],r=[],n=[];return this.commits.forEach(s=>{let[a,l,u]=s.toRequestPayload();t.push(a),r.push(l),n.push(u)}),[t,s=>r.forEach(a=>a(s.shift())),()=>n.forEach(s=>s())]}};var Kt=class{constructor(t){this.component=t,this.isolate=!1,this.calls=[],this.receivers=[],this.resolvers=[]}addResolver(t){this.resolvers.push(t)}addCall(t,r,n){this.calls.push({path:"",method:t,params:r,handleReturn(i){n(i)}})}prepare(){R("commit.prepare",{component:this.component})}toRequestPayload(){let t=Qe(this.component.canonical,this.component.ephemeral),r=this.component.mergeQueuedUpdates(t),n={snapshot:this.component.snapshotEncoded,updates:r,calls:this.calls.map(d=>({path:d.path,method:d.method,params:d.params}))},i=[],o=[],s=[],a=d=>i.forEach(m=>m(d)),l=()=>o.forEach(d=>d()),u=()=>s.forEach(d=>d()),f=R("commit",{component:this.component,commit:n,succeed:d=>{i.push(d)},fail:d=>{o.push(d)},respond:d=>{s.push(d)}});return[n,d=>{let{snapshot:m,effects:b}=d;if(u(),this.component.mergeNewSnapshot(m,b,r),this.component.processEffects(this.component.effects),b.returns){let y=b.returns;this.calls.map(({handleReturn:_})=>_).forEach((_,T)=>{_(y[T])})}let g=JSON.parse(m);f({snapshot:g,effects:b}),this.resolvers.forEach(y=>y()),a(d)},()=>{u(),l()}]}};var Vt=class{constructor(){this.commits=new Set,this.pools=new Set}add(t){let r=this.findCommitOr(t,()=>{let n=new Kt(t);return this.commits.add(n),n});return yc(r,()=>{this.findPoolWithComponent(r.component)||this.createAndSendNewPool()}),r}findCommitOr(t,r){for(let[n,i]of this.commits.entries())if(i.component===t)return i;return r()}findPoolWithComponent(t){for(let[r,n]of this.pools.entries())if(n.hasCommitFor(t))return n}createAndSendNewPool(){R("commit.pooling",{commits:this.commits});let t=this.corraleCommitsIntoPools();this.commits.clear(),R("commit.pooled",{pools:t}),t.forEach(r=>{r.empty()||(this.pools.add(r),r.send().then(()=>{this.pools.delete(r),this.sendAnyQueuedCommits()}))})}corraleCommitsIntoPools(){let t=new Set;for(let[r,n]of this.commits.entries()){let i=!1;if(t.forEach(o=>{o.shouldHoldCommit(n)&&(o.add(n),i=!0)}),!i){let o=new zt;o.add(n),t.add(o)}}return t}sendAnyQueuedCommits(){this.commits.size>0&&this.createAndSendNewPool()}},dn=new WeakMap;function yc(e,t){dn.has(e)||dn.set(e,setTimeout(()=>{t(),dn.delete(e)},5))}var Vo=new Vt;async function pn(e){let t=Vo.add(e),r=new Promise(n=>{t.addResolver(n)});return r.commit=t,r}async function Jo(e,t,r){let n=Vo.add(e),i=new Promise(o=>{n.addCall(t,r,s=>o(s))});return i.commit=n,i}async function Ko(e){let[t,r,n]=e.payload(),i={method:"POST",body:JSON.stringify({_token:St(),components:t}),headers:{"Content-type":"application/json","X-Livewire":""}},o=[],s=[],a=[],l=v=>o.forEach(_=>_(v)),u=v=>s.forEach(_=>_(v)),f=v=>a.forEach(_=>_(v)),p=R("request.profile",i),c=li();R("request",{url:c,options:i,payload:i.body,respond:v=>a.push(v),succeed:v=>o.push(v),fail:v=>s.push(v)});let d;try{d=await fetch(c,i)}catch{p({content:"{}",failed:!0}),n(),u({status:503,content:null,preventDefault:()=>{}});return}let m={status:d.status,response:d};f(m),d=m.response;let b=await d.text();if(!d.ok){p({content:"{}",failed:!0});let v=!1;return n(),u({status:d.status,content:b,preventDefault:()=>v=!0}),v?void 0:(d.status===419&&xc(),_c(b))}if(d.redirected&&(window.location.href=d.url),Et(b)){let v;[v,b]=ui(b),fn(v),p({content:"{}",failed:!0})}else p({content:b,failed:!1});let{components:g,assets:y}=JSON.parse(b);await Wt("payload.intercept",{components:g,assets:y}),await r(g),l({status:d.status,json:JSON.parse(b)})}function xc(){confirm(`This page has expired. -Would you like to refresh the page?`)&&window.location.reload()}function _c(e){fn(e)}var mn={},Yo;function $(e,t,r=null){mn[e]=t}function Sc(e){Yo=e}var Go={on:"$on",el:"$el",id:"$id",get:"$get",set:"$set",call:"$call",commit:"$commit",watch:"$watch",entangle:"$entangle",dispatch:"$dispatch",dispatchTo:"$dispatchTo",dispatchSelf:"$dispatchSelf",upload:"$upload",uploadMultiple:"$uploadMultiple",removeUpload:"$removeUpload",cancelUpload:"$cancelUpload"};function Qo(e,t){return new Proxy({},{get(r,n){if(n==="__instance")return e;if(n in Go)return Xo(e,Go[n]);if(n in mn)return Xo(e,n);if(n in t)return t[n];if(!["then"].includes(n))return Ec(e)(n)},set(r,n,i){return n in t&&(t[n]=i),!0}})}function Xo(e,t){return mn[t](e)}function Ec(e){return Yo(e)}S.magic("wire",(e,{cleanup:t})=>{let r;return new Proxy({},{get(n,i){return r||(r=z(e)),["$entangle","entangle"].includes(i)?cn(r,t):r.$wire[i]},set(n,i,o){return r||(r=z(e)),r.$wire[i]=o,!0}})});$("__instance",e=>e);$("$get",e=>(t,r=!0)=>W(r?e.reactive:e.ephemeral,t));$("$el",e=>e.el);$("$id",e=>e.id);$("$set",e=>async(t,r,n=!0)=>(ye(e.reactive,t,r),n?(e.queueUpdate(t,r),await pn(e)):Promise.resolve()));$("$call",e=>async(t,...r)=>await e.$wire[t](...r));$("$entangle",e=>(t,r=!1)=>cn(e)(t,r));$("$toggle",e=>(t,r=!0)=>e.$wire.set(t,!e.$wire.get(t),r));$("$watch",e=>(t,r)=>{let n=()=>W(e.reactive,t),i=S.watch(n,r);e.addCleanup(i)});$("$refresh",e=>e.$wire.$commit);$("$commit",e=>async()=>await pn(e));$("$on",e=>(...t)=>es(e,...t));$("$dispatch",e=>(...t)=>Jt(e,...t));$("$dispatchSelf",e=>(...t)=>oe(e,...t));$("$dispatchTo",()=>(...e)=>qe(...e));$("$upload",e=>(...t)=>fi(e,...t));$("$uploadMultiple",e=>(...t)=>di(e,...t));$("$removeUpload",e=>(...t)=>pi(e,...t));$("$cancelUpload",e=>(...t)=>hi(e,...t));var hn=new WeakMap;$("$parent",e=>{if(hn.has(e))return hn.get(e).$wire;let t=e.parent;return hn.set(e,t),t.$wire});var je=new WeakMap;function Zo(e,t,r){je.has(e)||je.set(e,{});let n=je.get(e);n[t]=r,je.set(e,n)}Sc(e=>t=>async(...r)=>{if(r.length===1&&r[0]instanceof Event&&(r=[]),je.has(e)){let n=je.get(e);if(typeof n[t]=="function")return n[t](r)}return await Jo(e,t,r)});var Gt=class{constructor(t){if(t.__livewire)throw"Component already initialized";if(t.__livewire=this,this.el=t,this.id=t.getAttribute("wire:id"),this.__livewireId=this.id,this.snapshotEncoded=t.getAttribute("wire:snapshot"),this.snapshot=JSON.parse(this.snapshotEncoded),!this.snapshot)throw"Snapshot missing on Livewire component with id: "+this.id;this.name=this.snapshot.memo.name,this.effects=JSON.parse(t.getAttribute("wire:effects")),this.originalEffects=ce(this.effects),this.canonical=xe(ce(this.snapshot.data)),this.ephemeral=xe(ce(this.snapshot.data)),this.reactive=Alpine.reactive(this.ephemeral),this.queuedUpdates={},this.$wire=Qo(this,this.reactive),this.cleanups=[],this.processEffects(this.effects)}mergeNewSnapshot(t,r,n={}){let i=JSON.parse(t),o=ce(this.canonical),s=this.applyUpdates(o,n),a=xe(ce(i.data)),l=Qe(s,a);this.snapshotEncoded=t,this.snapshot=i,this.effects=r,this.canonical=xe(ce(i.data));let u=xe(ce(i.data));return Object.entries(l).forEach(([f,p])=>{let c=f.split(".")[0];this.reactive[c]=u[c]}),l}queueUpdate(t,r){this.queuedUpdates[t]=r}mergeQueuedUpdates(t){return Object.entries(this.queuedUpdates).forEach(([r,n])=>{Object.entries(t).forEach(([i,o])=>{i.startsWith(n)&&delete t[i]}),t[r]=n}),this.queuedUpdates=[],t}applyUpdates(t,r){for(let n in r)ye(t,n,r[n]);return t}replayUpdate(t,r){let n={...this.effects,html:r};this.mergeNewSnapshot(JSON.stringify(t),n),this.processEffects({html:r})}processEffects(t){R("effects",this,t),R("effect",{component:this,effects:t,cleanup:r=>this.addCleanup(r)})}get children(){let t=this.snapshot.memo;return Object.values(t.children).map(n=>n[1]).map(n=>ts(n))}get parent(){return z(this.el.parentElement)}inscribeSnapshotAndEffectsOnElement(){let t=this.el;t.setAttribute("wire:snapshot",this.snapshotEncoded);let r=this.originalEffects.listeners?{listeners:this.originalEffects.listeners}:{};this.originalEffects.url&&(r.url=this.originalEffects.url),this.originalEffects.scripts&&(r.scripts=this.originalEffects.scripts),t.setAttribute("wire:effects",JSON.stringify(r))}addCleanup(t){this.cleanups.push(t)}cleanup(){for(delete this.el.__livewire;this.cleanups.length>0;)this.cleanups.pop()()}};var se={};function rs(e){let t=new Gt(e);if(se[t.id])throw"Component already registered";return R("component.init",{component:t,cleanup:n=>t.addCleanup(n)}),se[t.id]=t,t}function ns(e){let t=se[e];!t||(t.cleanup(),delete se[e])}function ts(e){let t=se[e];if(!t)throw"Component not found: "+e;return t}function z(e,t=!0){let r=Alpine.findClosest(e,n=>n.__livewire);if(!r){if(t)throw"Could not find Livewire component in DOM tree";return}return r.__livewire}function gn(e){return Object.values(se).filter(t=>e==t.name)}function is(e){return gn(e).map(t=>t.$wire)}function os(e){let t=se[e];return t&&t.$wire}function ss(){return Object.values(se)[0].$wire}function as(){return Object.values(se)}function Jt(e,t,r){Xt(e.el,t,r)}function ls(e,t){Xt(window,e,t)}function oe(e,t,r){Xt(e.el,t,r,!1)}function qe(e,t,r){gn(e).forEach(i=>{Xt(i.el,t,r,!1)})}function es(e,t,r){e.el.addEventListener(t,n=>{r(n.detail)})}function us(e,t){let r=n=>{!n.__livewire||t(n.detail)};return window.addEventListener(e,r),()=>{window.removeEventListener(e,r)}}function Xt(e,t,r,n=!0){let i=new CustomEvent(t,{bubbles:n,detail:r});i.__livewire={name:t,params:r,receivedBy:[]},e.dispatchEvent(i)}var vn=new Set;function We(e){return e.match(new RegExp("wire:"))}function Yt(e,t){let[r,...n]=t.replace(new RegExp("wire:"),"").split(".");return new wn(r,n,t,e)}function I(e,t){vn.has(e)||(vn.add(e),k("directive.init",({el:r,component:n,directive:i,cleanup:o})=>{i.value===e&&t({el:r,directive:i,component:n,$wire:n.$wire,cleanup:o})}))}function ze(e){return new bn(e)}function cs(e){return vn.has(e)}var bn=class{constructor(t){this.el=t,this.directives=this.extractTypeModifiersAndValue()}all(){return this.directives}has(t){return this.directives.map(r=>r.value).includes(t)}missing(t){return!this.has(t)}get(t){return this.directives.find(r=>r.value===t)}extractTypeModifiersAndValue(){return Array.from(this.el.getAttributeNames().filter(t=>We(t)).map(t=>Yt(this.el,t)))}},wn=class{constructor(t,r,n,i){this.rawName=this.raw=n,this.el=i,this.eventContext,this.value=t,this.modifiers=r,this.expression=this.el.getAttribute(this.rawName)}get method(){let{method:t}=this.parseOutMethodAndParams(this.expression);return t}get params(){let{params:t}=this.parseOutMethodAndParams(this.expression);return t}parseOutMethodAndParams(t){let r=t,n=[],i=r.match(/(.*?)\((.*)\)/s);return i&&(r=i[1],n=new Function("$event",`return (function () { - for (var l=arguments.length, p=new Array(l), k=0; k<l; k++) { - p[k] = arguments[k]; - } - return [].concat(p); - })(${i[2]})`)(this.eventContext)),{method:r,params:n}}};function Ac(e){e.directive("collapse",t),t.inline=(r,{modifiers:n})=>{!n.includes("min")||(r._x_doShow=()=>{},r._x_doHide=()=>{})};function t(r,{modifiers:n}){let i=fs(n,"duration",250)/1e3,o=fs(n,"min",0),s=!n.includes("min");r._x_isShown||(r.style.height=`${o}px`),!r._x_isShown&&s&&(r.hidden=!0),r._x_isShown||(r.style.overflow="hidden");let a=(u,f)=>{let p=e.setStyles(u,f);return f.height?()=>{}:p},l={transitionProperty:"height",transitionDuration:`${i}s`,transitionTimingFunction:"cubic-bezier(0.4, 0.0, 0.2, 1)"};r._x_transition={in(u=()=>{},f=()=>{}){s&&(r.hidden=!1),s&&(r.style.display=null);let p=r.getBoundingClientRect().height;r.style.height="auto";let c=r.getBoundingClientRect().height;p===c&&(p=o),e.transition(r,e.setStyles,{during:l,start:{height:p+"px"},end:{height:c+"px"}},()=>r._x_isShown=!0,()=>{Math.abs(r.getBoundingClientRect().height-c)<1&&(r.style.overflow=null)})},out(u=()=>{},f=()=>{}){let p=r.getBoundingClientRect().height;e.transition(r,a,{during:l,start:{height:p+"px"},end:{height:o+"px"}},()=>r.style.overflow="hidden",()=>{r._x_isShown=!1,r.style.height==`${o}px`&&s&&(r.style.display="none",r.hidden=!0)})}}}}function fs(e,t,r){if(e.indexOf(t)===-1)return r;let n=e[e.indexOf(t)+1];if(!n)return r;if(t==="duration"){let i=n.match(/([0-9]+)ms/);if(i)return i[1]}if(t==="min"){let i=n.match(/([0-9]+)px/);if(i)return i[1]}return n}var ds=Ac;var ys=["input","select","textarea","a[href]","button","[tabindex]:not(slot)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"],tr=ys.join(","),xs=typeof Element>"u",Le=xs?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,yn=!xs&&Element.prototype.getRootNode?function(e){return e.getRootNode()}:function(e){return e.ownerDocument},_s=function(t,r,n){var i=Array.prototype.slice.apply(t.querySelectorAll(tr));return r&&Le.call(t,tr)&&i.unshift(t),i=i.filter(n),i},Ss=function e(t,r,n){for(var i=[],o=Array.from(t);o.length;){var s=o.shift();if(s.tagName==="SLOT"){var a=s.assignedElements(),l=a.length?a:s.children,u=e(l,!0,n);n.flatten?i.push.apply(i,u):i.push({scope:s,candidates:u})}else{var f=Le.call(s,tr);f&&n.filter(s)&&(r||!t.includes(s))&&i.push(s);var p=s.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(s),c=!n.shadowRootFilter||n.shadowRootFilter(s);if(p&&c){var d=e(p===!0?s.children:p.children,!0,n);n.flatten?i.push.apply(i,d):i.push({scope:s,candidates:d})}else o.unshift.apply(o,s.children)}}return i},Es=function(t,r){return t.tabIndex<0&&(r||/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||t.isContentEditable)&&isNaN(parseInt(t.getAttribute("tabindex"),10))?0:t.tabIndex},Cc=function(t,r){return t.tabIndex===r.tabIndex?t.documentOrder-r.documentOrder:t.tabIndex-r.tabIndex},As=function(t){return t.tagName==="INPUT"},Oc=function(t){return As(t)&&t.type==="hidden"},Tc=function(t){var r=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(n){return n.tagName==="SUMMARY"});return r},kc=function(t,r){for(var n=0;n<t.length;n++)if(t[n].checked&&t[n].form===r)return t[n]},Lc=function(t){if(!t.name)return!0;var r=t.form||yn(t),n=function(a){return r.querySelectorAll('input[type="radio"][name="'+a+'"]')},i;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")i=n(window.CSS.escape(t.name));else try{i=n(t.name)}catch(s){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",s.message),!1}var o=kc(i,t.form);return!o||o===t},Nc=function(t){return As(t)&&t.type==="radio"},Rc=function(t){return Nc(t)&&!Lc(t)},ps=function(t){var r=t.getBoundingClientRect(),n=r.width,i=r.height;return n===0&&i===0},Pc=function(t,r){var n=r.displayCheck,i=r.getShadowRoot;if(getComputedStyle(t).visibility==="hidden")return!0;var o=Le.call(t,"details>summary:first-of-type"),s=o?t.parentElement:t;if(Le.call(s,"details:not([open]) *"))return!0;var a=yn(t).host,l=a?.ownerDocument.contains(a)||t.ownerDocument.contains(t);if(!n||n==="full"){if(typeof i=="function"){for(var u=t;t;){var f=t.parentElement,p=yn(t);if(f&&!f.shadowRoot&&i(f)===!0)return ps(t);t.assignedSlot?t=t.assignedSlot:!f&&p!==t.ownerDocument?t=p.host:t=f}t=u}if(l)return!t.getClientRects().length}else if(n==="non-zero-area")return ps(t);return!1},Mc=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var r=t.parentElement;r;){if(r.tagName==="FIELDSET"&&r.disabled){for(var n=0;n<r.children.length;n++){var i=r.children.item(n);if(i.tagName==="LEGEND")return Le.call(r,"fieldset[disabled] *")?!0:!i.contains(t)}return!0}r=r.parentElement}return!1},rr=function(t,r){return!(r.disabled||Oc(r)||Pc(r,t)||Tc(r)||Mc(r))},xn=function(t,r){return!(Rc(r)||Es(r)<0||!rr(t,r))},Ic=function(t){var r=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(r)||r>=0)},Fc=function e(t){var r=[],n=[];return t.forEach(function(i,o){var s=!!i.scope,a=s?i.scope:i,l=Es(a,s),u=s?e(i.candidates):a;l===0?s?r.push.apply(r,u):r.push(a):n.push({documentOrder:o,tabIndex:l,item:i,isScope:s,content:u})}),n.sort(Cc).reduce(function(i,o){return o.isScope?i.push.apply(i,o.content):i.push(o.content),i},[]).concat(r)},$c=function(t,r){r=r||{};var n;return r.getShadowRoot?n=Ss([t],r.includeContainer,{filter:xn.bind(null,r),flatten:!1,getShadowRoot:r.getShadowRoot,shadowRootFilter:Ic}):n=_s(t,r.includeContainer,xn.bind(null,r)),Fc(n)},Cs=function(t,r){r=r||{};var n;return r.getShadowRoot?n=Ss([t],r.includeContainer,{filter:rr.bind(null,r),flatten:!0,getShadowRoot:r.getShadowRoot}):n=_s(t,r.includeContainer,rr.bind(null,r)),n},Qt=function(t,r){if(r=r||{},!t)throw new Error("No node provided");return Le.call(t,tr)===!1?!1:xn(r,t)},Dc=ys.concat("iframe").join(","),er=function(t,r){if(r=r||{},!t)throw new Error("No node provided");return Le.call(t,Dc)===!1?!1:rr(r,t)};function hs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ms(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?hs(Object(r),!0).forEach(function(n){Bc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):hs(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Bc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var gs=function(){var e=[];return{activateTrap:function(r){if(e.length>0){var n=e[e.length-1];n!==r&&n.pause()}var i=e.indexOf(r);i===-1||e.splice(i,1),e.push(r)},deactivateTrap:function(r){var n=e.indexOf(r);n!==-1&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()}}}(),Uc=function(t){return t.tagName&&t.tagName.toLowerCase()==="input"&&typeof t.select=="function"},Hc=function(t){return t.key==="Escape"||t.key==="Esc"||t.keyCode===27},jc=function(t){return t.key==="Tab"||t.keyCode===9},vs=function(t){return setTimeout(t,0)},bs=function(t,r){var n=-1;return t.every(function(i,o){return r(i)?(n=o,!1):!0}),n},dt=function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return typeof t=="function"?t.apply(void 0,n):t},Zt=function(t){return t.target.shadowRoot&&typeof t.composedPath=="function"?t.composedPath()[0]:t.target},qc=function(t,r){var n=r?.document||document,i=ms({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0},r),o={containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,delayInitialFocusTimer:void 0},s,a=function(w,h,x){return w&&w[h]!==void 0?w[h]:i[x||h]},l=function(w){return o.containerGroups.findIndex(function(h){var x=h.container,O=h.tabbableNodes;return x.contains(w)||O.find(function(L){return L===w})})},u=function(w){var h=i[w];if(typeof h=="function"){for(var x=arguments.length,O=new Array(x>1?x-1:0),L=1;L<x;L++)O[L-1]=arguments[L];h=h.apply(void 0,O)}if(h===!0&&(h=void 0),!h){if(h===void 0||h===!1)return h;throw new Error("`".concat(w,"` was specified but was not a node, or did not return a node"))}var C=h;if(typeof h=="string"&&(C=n.querySelector(h),!C))throw new Error("`".concat(w,"` as selector refers to no known node"));return C},f=function(){var w=u("initialFocus");if(w===!1)return!1;if(w===void 0)if(l(n.activeElement)>=0)w=n.activeElement;else{var h=o.tabbableGroups[0],x=h&&h.firstTabbableNode;w=x||u("fallbackFocus")}if(!w)throw new Error("Your focus-trap needs to have at least one focusable element");return w},p=function(){if(o.containerGroups=o.containers.map(function(w){var h=$c(w,i.tabbableOptions),x=Cs(w,i.tabbableOptions);return{container:w,tabbableNodes:h,focusableNodes:x,firstTabbableNode:h.length>0?h[0]:null,lastTabbableNode:h.length>0?h[h.length-1]:null,nextTabbableNode:function(L){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,E=x.findIndex(function(U){return U===L});if(!(E<0))return C?x.slice(E+1).find(function(U){return Qt(U,i.tabbableOptions)}):x.slice(0,E).reverse().find(function(U){return Qt(U,i.tabbableOptions)})}}}),o.tabbableGroups=o.containerGroups.filter(function(w){return w.tabbableNodes.length>0}),o.tabbableGroups.length<=0&&!u("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times")},c=function A(w){if(w!==!1&&w!==n.activeElement){if(!w||!w.focus){A(f());return}w.focus({preventScroll:!!i.preventScroll}),o.mostRecentlyFocusedNode=w,Uc(w)&&w.select()}},d=function(w){var h=u("setReturnFocus",w);return h||(h===!1?!1:w)},m=function(w){var h=Zt(w);if(!(l(h)>=0)){if(dt(i.clickOutsideDeactivates,w)){s.deactivate({returnFocus:i.returnFocusOnDeactivate&&!er(h,i.tabbableOptions)});return}dt(i.allowOutsideClick,w)||w.preventDefault()}},b=function(w){var h=Zt(w),x=l(h)>=0;x||h instanceof Document?x&&(o.mostRecentlyFocusedNode=h):(w.stopImmediatePropagation(),c(o.mostRecentlyFocusedNode||f()))},g=function(w){var h=Zt(w);p();var x=null;if(o.tabbableGroups.length>0){var O=l(h),L=O>=0?o.containerGroups[O]:void 0;if(O<0)w.shiftKey?x=o.tabbableGroups[o.tabbableGroups.length-1].lastTabbableNode:x=o.tabbableGroups[0].firstTabbableNode;else if(w.shiftKey){var C=bs(o.tabbableGroups,function(j){var we=j.firstTabbableNode;return h===we});if(C<0&&(L.container===h||er(h,i.tabbableOptions)&&!Qt(h,i.tabbableOptions)&&!L.nextTabbableNode(h,!1))&&(C=O),C>=0){var E=C===0?o.tabbableGroups.length-1:C-1,U=o.tabbableGroups[E];x=U.lastTabbableNode}}else{var P=bs(o.tabbableGroups,function(j){var we=j.lastTabbableNode;return h===we});if(P<0&&(L.container===h||er(h,i.tabbableOptions)&&!Qt(h,i.tabbableOptions)&&!L.nextTabbableNode(h))&&(P=O),P>=0){var D=P===o.tabbableGroups.length-1?0:P+1,q=o.tabbableGroups[D];x=q.firstTabbableNode}}}else x=u("fallbackFocus");x&&(w.preventDefault(),c(x))},y=function(w){if(Hc(w)&&dt(i.escapeDeactivates,w)!==!1){w.preventDefault(),s.deactivate();return}if(jc(w)){g(w);return}},v=function(w){var h=Zt(w);l(h)>=0||dt(i.clickOutsideDeactivates,w)||dt(i.allowOutsideClick,w)||(w.preventDefault(),w.stopImmediatePropagation())},_=function(){if(!!o.active)return gs.activateTrap(s),o.delayInitialFocusTimer=i.delayInitialFocus?vs(function(){c(f())}):c(f()),n.addEventListener("focusin",b,!0),n.addEventListener("mousedown",m,{capture:!0,passive:!1}),n.addEventListener("touchstart",m,{capture:!0,passive:!1}),n.addEventListener("click",v,{capture:!0,passive:!1}),n.addEventListener("keydown",y,{capture:!0,passive:!1}),s},T=function(){if(!!o.active)return n.removeEventListener("focusin",b,!0),n.removeEventListener("mousedown",m,!0),n.removeEventListener("touchstart",m,!0),n.removeEventListener("click",v,!0),n.removeEventListener("keydown",y,!0),s};return s={get active(){return o.active},get paused(){return o.paused},activate:function(w){if(o.active)return this;var h=a(w,"onActivate"),x=a(w,"onPostActivate"),O=a(w,"checkCanFocusTrap");O||p(),o.active=!0,o.paused=!1,o.nodeFocusedBeforeActivation=n.activeElement,h&&h();var L=function(){O&&p(),_(),x&&x()};return O?(O(o.containers.concat()).then(L,L),this):(L(),this)},deactivate:function(w){if(!o.active)return this;var h=ms({onDeactivate:i.onDeactivate,onPostDeactivate:i.onPostDeactivate,checkCanReturnFocus:i.checkCanReturnFocus},w);clearTimeout(o.delayInitialFocusTimer),o.delayInitialFocusTimer=void 0,T(),o.active=!1,o.paused=!1,gs.deactivateTrap(s);var x=a(h,"onDeactivate"),O=a(h,"onPostDeactivate"),L=a(h,"checkCanReturnFocus"),C=a(h,"returnFocus","returnFocusOnDeactivate");x&&x();var E=function(){vs(function(){C&&c(d(o.nodeFocusedBeforeActivation)),O&&O()})};return C&&L?(L(d(o.nodeFocusedBeforeActivation)).then(E,E),this):(E(),this)},pause:function(){return o.paused||!o.active?this:(o.paused=!0,T(),this)},unpause:function(){return!o.paused||!o.active?this:(o.paused=!1,p(),_(),this)},updateContainerElements:function(w){var h=[].concat(w).filter(Boolean);return o.containers=h.map(function(x){return typeof x=="string"?n.querySelector(x):x}),o.active&&p(),this}},s.updateContainerElements(t),s};function Wc(e){let t,r;window.addEventListener("focusin",()=>{t=r,r=document.activeElement}),e.magic("focus",n=>{let i=n;return{__noscroll:!1,__wrapAround:!1,within(o){return i=o,this},withoutScrolling(){return this.__noscroll=!0,this},noscroll(){return this.__noscroll=!0,this},withWrapAround(){return this.__wrapAround=!0,this},wrap(){return this.withWrapAround()},focusable(o){return er(o)},previouslyFocused(){return t},lastFocused(){return t},focused(){return r},focusables(){return Array.isArray(i)?i:Cs(i,{displayCheck:"none"})},all(){return this.focusables()},isFirst(o){let s=this.all();return s[0]&&s[0].isSameNode(o)},isLast(o){let s=this.all();return s.length&&s.slice(-1)[0].isSameNode(o)},getFirst(){return this.all()[0]},getLast(){return this.all().slice(-1)[0]},getNext(){let o=this.all(),s=document.activeElement;if(o.indexOf(s)!==-1)return this.__wrapAround&&o.indexOf(s)===o.length-1?o[0]:o[o.indexOf(s)+1]},getPrevious(){let o=this.all(),s=document.activeElement;if(o.indexOf(s)!==-1)return this.__wrapAround&&o.indexOf(s)===0?o.slice(-1)[0]:o[o.indexOf(s)-1]},first(){this.focus(this.getFirst())},last(){this.focus(this.getLast())},next(){this.focus(this.getNext())},previous(){this.focus(this.getPrevious())},prev(){return this.previous()},focus(o){!o||setTimeout(()=>{o.hasAttribute("tabindex")||o.setAttribute("tabindex","0"),o.focus({preventScroll:this.__noscroll})})}}}),e.directive("trap",e.skipDuringClone((n,{expression:i,modifiers:o},{effect:s,evaluateLater:a,cleanup:l})=>{let u=a(i),f=!1,p={escapeDeactivates:!1,allowOutsideClick:!0,fallbackFocus:()=>n};if(o.includes("noautofocus"))p.initialFocus=!1;else{let g=n.querySelector("[autofocus]");g&&(p.initialFocus=g)}let c=qc(n,p),d=()=>{},m=()=>{},b=()=>{d(),d=()=>{},m(),m=()=>{},c.deactivate({returnFocus:!o.includes("noreturn")})};s(()=>u(g=>{f!==g&&(g&&!f&&(o.includes("noscroll")&&(m=zc()),o.includes("inert")&&(d=ws(n)),setTimeout(()=>{c.activate()},15)),!g&&f&&b(),f=!!g)})),l(b)},(n,{expression:i,modifiers:o},{evaluate:s})=>{o.includes("inert")&&s(i)&&ws(n)}))}function ws(e){let t=[];return Os(e,r=>{let n=r.hasAttribute("aria-hidden");r.setAttribute("aria-hidden","true"),t.push(()=>n||r.removeAttribute("aria-hidden"))}),()=>{for(;t.length;)t.pop()()}}function Os(e,t){e.isSameNode(document.body)||!e.parentNode||Array.from(e.parentNode.children).forEach(r=>{r.isSameNode(e)?Os(e.parentNode,t):t(r)})}function zc(){let e=document.documentElement.style.overflow,t=document.documentElement.style.paddingRight,r=window.innerWidth-document.documentElement.clientWidth;return document.documentElement.style.overflow="hidden",document.documentElement.style.paddingRight=`${r}px`,()=>{document.documentElement.style.overflow=e,document.documentElement.style.paddingRight=t}}var Ts=Wc;function Kc(e){let t=()=>{let r,n;try{n=localStorage}catch(i){console.error(i),console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable.");let o=new Map;n={getItem:o.get.bind(o),setItem:o.set.bind(o)}}return e.interceptor((i,o,s,a,l)=>{let u=r||`_x_${a}`,f=ks(u,n)?Ls(u,n):i;return s(f),e.effect(()=>{let p=o();Ns(u,p,n),s(p)}),f},i=>{i.as=o=>(r=o,i),i.using=o=>(n=o,i)})};Object.defineProperty(e,"$persist",{get:()=>t()}),e.magic("persist",t),e.persist=(r,{get:n,set:i},o=localStorage)=>{let s=ks(r,o)?Ls(r,o):n();i(s),e.effect(()=>{let a=n();Ns(r,a,o),i(a)})}}function ks(e,t){return t.getItem(e)!==null}function Ls(e,t){let r=t.getItem(e,t);if(r!==void 0)return JSON.parse(r)}function Ns(e,t,r){r.setItem(e,JSON.stringify(t))}var Rs=Kc;function Vc(e){e.directive("intersect",e.skipDuringClone((t,{value:r,expression:n,modifiers:i},{evaluateLater:o,cleanup:s})=>{let a=o(n),l={rootMargin:Xc(i),threshold:Jc(i)},u=new IntersectionObserver(f=>{f.forEach(p=>{p.isIntersecting!==(r==="leave")&&(a(),i.includes("once")&&u.disconnect())})},l);u.observe(t),s(()=>{u.disconnect()})}))}function Jc(e){if(e.includes("full"))return .99;if(e.includes("half"))return .5;if(!e.includes("threshold"))return 0;let t=e[e.indexOf("threshold")+1];return t==="100"?1:t==="0"?0:Number(`.${t}`)}function Gc(e){let t=e.match(/^(-?[0-9]+)(px|%)?$/);return t?t[1]+(t[2]||"px"):void 0}function Xc(e){let t="margin",r="0px 0px 0px 0px",n=e.indexOf(t);if(n===-1)return r;let i=[];for(let o=1;o<5;o++)i.push(Gc(e[n+o]||""));return i=i.filter(o=>o!==void 0),i.length?i.join(" ").trim():r}var Ps=Vc;function Yc(e){e.directive("resize",e.skipDuringClone((t,{value:r,expression:n,modifiers:i},{evaluateLater:o,cleanup:s})=>{let a=o(n),l=(f,p)=>{a(()=>{},{scope:{$width:f,$height:p}})},u=i.includes("document")?Zc(l):Qc(t,l);s(()=>u())}))}function Qc(e,t){let r=new ResizeObserver(n=>{let[i,o]=Ms(n);t(i,o)});return r.observe(e),()=>r.disconnect()}var _n,Sn=new Set;function Zc(e){return Sn.add(e),_n||(_n=new ResizeObserver(t=>{let[r,n]=Ms(t);Sn.forEach(i=>i(r,n))}),_n.observe(document.documentElement)),()=>{Sn.delete(e)}}function Ms(e){let t,r;for(let n of e)t=n.borderBoxSize[0].inlineSize,r=n.borderBoxSize[0].blockSize;return[t,r]}var Is=Yc;var ir=Math.min,Ne=Math.max,or=Math.round,nr=Math.floor,ge=e=>({x:e,y:e}),ef={left:"right",right:"left",bottom:"top",top:"bottom"},tf={start:"end",end:"start"};function Fs(e,t,r){return Ne(e,ir(t,r))}function lr(e,t){return typeof e=="function"?e(t):e}function Re(e){return e.split("-")[0]}function ur(e){return e.split("-")[1]}function qs(e){return e==="x"?"y":"x"}function Ws(e){return e==="y"?"height":"width"}function cr(e){return["top","bottom"].includes(Re(e))?"y":"x"}function zs(e){return qs(cr(e))}function rf(e,t,r){r===void 0&&(r=!1);let n=ur(e),i=zs(e),o=Ws(i),s=i==="x"?n===(r?"end":"start")?"right":"left":n==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(s=sr(s)),[s,sr(s)]}function nf(e){let t=sr(e);return[En(e),t,En(t)]}function En(e){return e.replace(/start|end/g,t=>tf[t])}function of(e,t,r){let n=["left","right"],i=["right","left"],o=["top","bottom"],s=["bottom","top"];switch(e){case"top":case"bottom":return r?t?i:n:t?n:i;case"left":case"right":return t?o:s;default:return[]}}function sf(e,t,r,n){let i=ur(e),o=of(Re(e),r==="start",n);return i&&(o=o.map(s=>s+"-"+i),t&&(o=o.concat(o.map(En)))),o}function sr(e){return e.replace(/left|right|bottom|top/g,t=>ef[t])}function af(e){return{top:0,right:0,bottom:0,left:0,...e}}function lf(e){return typeof e!="number"?af(e):{top:e,right:e,bottom:e,left:e}}function ar(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function $s(e,t,r){let{reference:n,floating:i}=e,o=cr(t),s=zs(t),a=Ws(s),l=Re(t),u=o==="y",f=n.x+n.width/2-i.width/2,p=n.y+n.height/2-i.height/2,c=n[a]/2-i[a]/2,d;switch(l){case"top":d={x:f,y:n.y-i.height};break;case"bottom":d={x:f,y:n.y+n.height};break;case"right":d={x:n.x+n.width,y:p};break;case"left":d={x:n.x-i.width,y:p};break;default:d={x:n.x,y:n.y}}switch(ur(t)){case"start":d[s]-=c*(r&&u?-1:1);break;case"end":d[s]+=c*(r&&u?-1:1);break}return d}var uf=async(e,t,r)=>{let{placement:n="bottom",strategy:i="absolute",middleware:o=[],platform:s}=r,a=o.filter(Boolean),l=await(s.isRTL==null?void 0:s.isRTL(t)),u=await s.getElementRects({reference:e,floating:t,strategy:i}),{x:f,y:p}=$s(u,n,l),c=n,d={},m=0;for(let b=0;b<a.length;b++){let{name:g,fn:y}=a[b],{x:v,y:_,data:T,reset:A}=await y({x:f,y:p,initialPlacement:n,placement:c,strategy:i,middlewareData:d,rects:u,platform:s,elements:{reference:e,floating:t}});if(f=v??f,p=_??p,d={...d,[g]:{...d[g],...T}},A&&m<=50){m++,typeof A=="object"&&(A.placement&&(c=A.placement),A.rects&&(u=A.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:i}):A.rects),{x:f,y:p}=$s(u,c,l)),b=-1;continue}}return{x:f,y:p,placement:c,strategy:i,middlewareData:d}};async function Ks(e,t){var r;t===void 0&&(t={});let{x:n,y:i,platform:o,rects:s,elements:a,strategy:l}=e,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:p="floating",altBoundary:c=!1,padding:d=0}=lr(t,e),m=lf(d),g=a[c?p==="floating"?"reference":"floating":p],y=ar(await o.getClippingRect({element:(r=await(o.isElement==null?void 0:o.isElement(g)))==null||r?g:g.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(a.floating)),boundary:u,rootBoundary:f,strategy:l})),v=p==="floating"?{...s.floating,x:n,y:i}:s.reference,_=await(o.getOffsetParent==null?void 0:o.getOffsetParent(a.floating)),T=await(o.isElement==null?void 0:o.isElement(_))?await(o.getScale==null?void 0:o.getScale(_))||{x:1,y:1}:{x:1,y:1},A=ar(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({rect:v,offsetParent:_,strategy:l}):v);return{top:(y.top-A.top+m.top)/T.y,bottom:(A.bottom-y.bottom+m.bottom)/T.y,left:(y.left-A.left+m.left)/T.x,right:(A.right-y.right+m.right)/T.x}}var cf=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var r,n;let{placement:i,middlewareData:o,rects:s,initialPlacement:a,platform:l,elements:u}=t,{mainAxis:f=!0,crossAxis:p=!0,fallbackPlacements:c,fallbackStrategy:d="bestFit",fallbackAxisSideDirection:m="none",flipAlignment:b=!0,...g}=lr(e,t);if((r=o.arrow)!=null&&r.alignmentOffset)return{};let y=Re(i),v=Re(a)===a,_=await(l.isRTL==null?void 0:l.isRTL(u.floating)),T=c||(v||!b?[sr(a)]:nf(a));!c&&m!=="none"&&T.push(...sf(a,b,m,_));let A=[a,...T],w=await Ks(t,g),h=[],x=((n=o.flip)==null?void 0:n.overflows)||[];if(f&&h.push(w[y]),p){let E=rf(i,s,_);h.push(w[E[0]],w[E[1]])}if(x=[...x,{placement:i,overflows:h}],!h.every(E=>E<=0)){var O,L;let E=(((O=o.flip)==null?void 0:O.index)||0)+1,U=A[E];if(U)return{data:{index:E,overflows:x},reset:{placement:U}};let P=(L=x.filter(D=>D.overflows[0]<=0).sort((D,q)=>D.overflows[1]-q.overflows[1])[0])==null?void 0:L.placement;if(!P)switch(d){case"bestFit":{var C;let D=(C=x.map(q=>[q.placement,q.overflows.filter(j=>j>0).reduce((j,we)=>j+we,0)]).sort((q,j)=>q[1]-j[1])[0])==null?void 0:C[0];D&&(P=D);break}case"initialPlacement":P=a;break}if(i!==P)return{reset:{placement:P}}}return{}}}};async function ff(e,t){let{placement:r,platform:n,elements:i}=e,o=await(n.isRTL==null?void 0:n.isRTL(i.floating)),s=Re(r),a=ur(r),l=cr(r)==="y",u=["left","top"].includes(s)?-1:1,f=o&&l?-1:1,p=lr(t,e),{mainAxis:c,crossAxis:d,alignmentAxis:m}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...p};return a&&typeof m=="number"&&(d=a==="end"?m*-1:m),l?{x:d*f,y:c*u}:{x:c*u,y:d*f}}var df=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){let{x:r,y:n}=t,i=await ff(t,e);return{x:r+i.x,y:n+i.y,data:i}}}},pf=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:r,y:n,placement:i}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:a={fn:g=>{let{x:y,y:v}=g;return{x:y,y:v}}},...l}=lr(e,t),u={x:r,y:n},f=await Ks(t,l),p=cr(Re(i)),c=qs(p),d=u[c],m=u[p];if(o){let g=c==="y"?"top":"left",y=c==="y"?"bottom":"right",v=d+f[g],_=d-f[y];d=Fs(v,d,_)}if(s){let g=p==="y"?"top":"left",y=p==="y"?"bottom":"right",v=m+f[g],_=m-f[y];m=Fs(v,m,_)}let b=a.fn({...t,[c]:d,[p]:m});return{...b,data:{x:b.x-r,y:b.y-n}}}}};function ve(e){return Vs(e)?(e.nodeName||"").toLowerCase():"#document"}function K(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function le(e){var t;return(t=(Vs(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Vs(e){return e instanceof Node||e instanceof K(e).Node}function ae(e){return e instanceof Element||e instanceof K(e).Element}function te(e){return e instanceof HTMLElement||e instanceof K(e).HTMLElement}function Ds(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof K(e).ShadowRoot}function ht(e){let{overflow:t,overflowX:r,overflowY:n,display:i}=J(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!["inline","contents"].includes(i)}function hf(e){return["table","td","th"].includes(ve(e))}function An(e){let t=Cn(),r=J(e);return r.transform!=="none"||r.perspective!=="none"||(r.containerType?r.containerType!=="normal":!1)||!t&&(r.backdropFilter?r.backdropFilter!=="none":!1)||!t&&(r.filter?r.filter!=="none":!1)||["transform","perspective","filter"].some(n=>(r.willChange||"").includes(n))||["paint","layout","strict","content"].some(n=>(r.contain||"").includes(n))}function mf(e){let t=Ve(e);for(;te(t)&&!fr(t);){if(An(t))return t;t=Ve(t)}return null}function Cn(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function fr(e){return["html","body","#document"].includes(ve(e))}function J(e){return K(e).getComputedStyle(e)}function dr(e){return ae(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ve(e){if(ve(e)==="html")return e;let t=e.assignedSlot||e.parentNode||Ds(e)&&e.host||le(e);return Ds(t)?t.host:t}function Js(e){let t=Ve(e);return fr(t)?e.ownerDocument?e.ownerDocument.body:e.body:te(t)&&ht(t)?t:Js(t)}function pt(e,t,r){var n;t===void 0&&(t=[]),r===void 0&&(r=!0);let i=Js(e),o=i===((n=e.ownerDocument)==null?void 0:n.body),s=K(i);return o?t.concat(s,s.visualViewport||[],ht(i)?i:[],s.frameElement&&r?pt(s.frameElement):[]):t.concat(i,pt(i,[],r))}function Gs(e){let t=J(e),r=parseFloat(t.width)||0,n=parseFloat(t.height)||0,i=te(e),o=i?e.offsetWidth:r,s=i?e.offsetHeight:n,a=or(r)!==o||or(n)!==s;return a&&(r=o,n=s),{width:r,height:n,$:a}}function On(e){return ae(e)?e:e.contextElement}function Ke(e){let t=On(e);if(!te(t))return ge(1);let r=t.getBoundingClientRect(),{width:n,height:i,$:o}=Gs(t),s=(o?or(r.width):r.width)/n,a=(o?or(r.height):r.height)/i;return(!s||!Number.isFinite(s))&&(s=1),(!a||!Number.isFinite(a))&&(a=1),{x:s,y:a}}var gf=ge(0);function Xs(e){let t=K(e);return!Cn()||!t.visualViewport?gf:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function vf(e,t,r){return t===void 0&&(t=!1),!r||t&&r!==K(e)?!1:t}function Pe(e,t,r,n){t===void 0&&(t=!1),r===void 0&&(r=!1);let i=e.getBoundingClientRect(),o=On(e),s=ge(1);t&&(n?ae(n)&&(s=Ke(n)):s=Ke(e));let a=vf(o,r,n)?Xs(o):ge(0),l=(i.left+a.x)/s.x,u=(i.top+a.y)/s.y,f=i.width/s.x,p=i.height/s.y;if(o){let c=K(o),d=n&&ae(n)?K(n):n,m=c.frameElement;for(;m&&n&&d!==c;){let b=Ke(m),g=m.getBoundingClientRect(),y=J(m),v=g.left+(m.clientLeft+parseFloat(y.paddingLeft))*b.x,_=g.top+(m.clientTop+parseFloat(y.paddingTop))*b.y;l*=b.x,u*=b.y,f*=b.x,p*=b.y,l+=v,u+=_,m=K(m).frameElement}}return ar({width:f,height:p,x:l,y:u})}function bf(e){let{rect:t,offsetParent:r,strategy:n}=e,i=te(r),o=le(r);if(r===o)return t;let s={scrollLeft:0,scrollTop:0},a=ge(1),l=ge(0);if((i||!i&&n!=="fixed")&&((ve(r)!=="body"||ht(o))&&(s=dr(r)),te(r))){let u=Pe(r);a=Ke(r),l.x=u.x+r.clientLeft,l.y=u.y+r.clientTop}return{width:t.width*a.x,height:t.height*a.y,x:t.x*a.x-s.scrollLeft*a.x+l.x,y:t.y*a.y-s.scrollTop*a.y+l.y}}function wf(e){return Array.from(e.getClientRects())}function Ys(e){return Pe(le(e)).left+dr(e).scrollLeft}function yf(e){let t=le(e),r=dr(e),n=e.ownerDocument.body,i=Ne(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),o=Ne(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight),s=-r.scrollLeft+Ys(e),a=-r.scrollTop;return J(n).direction==="rtl"&&(s+=Ne(t.clientWidth,n.clientWidth)-i),{width:i,height:o,x:s,y:a}}function xf(e,t){let r=K(e),n=le(e),i=r.visualViewport,o=n.clientWidth,s=n.clientHeight,a=0,l=0;if(i){o=i.width,s=i.height;let u=Cn();(!u||u&&t==="fixed")&&(a=i.offsetLeft,l=i.offsetTop)}return{width:o,height:s,x:a,y:l}}function _f(e,t){let r=Pe(e,!0,t==="fixed"),n=r.top+e.clientTop,i=r.left+e.clientLeft,o=te(e)?Ke(e):ge(1),s=e.clientWidth*o.x,a=e.clientHeight*o.y,l=i*o.x,u=n*o.y;return{width:s,height:a,x:l,y:u}}function Bs(e,t,r){let n;if(t==="viewport")n=xf(e,r);else if(t==="document")n=yf(le(e));else if(ae(t))n=_f(t,r);else{let i=Xs(e);n={...t,x:t.x-i.x,y:t.y-i.y}}return ar(n)}function Qs(e,t){let r=Ve(e);return r===t||!ae(r)||fr(r)?!1:J(r).position==="fixed"||Qs(r,t)}function Sf(e,t){let r=t.get(e);if(r)return r;let n=pt(e,[],!1).filter(a=>ae(a)&&ve(a)!=="body"),i=null,o=J(e).position==="fixed",s=o?Ve(e):e;for(;ae(s)&&!fr(s);){let a=J(s),l=An(s);!l&&a.position==="fixed"&&(i=null),(o?!l&&!i:!l&&a.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||ht(s)&&!l&&Qs(e,s))?n=n.filter(f=>f!==s):i=a,s=Ve(s)}return t.set(e,n),n}function Ef(e){let{element:t,boundary:r,rootBoundary:n,strategy:i}=e,s=[...r==="clippingAncestors"?Sf(t,this._c):[].concat(r),n],a=s[0],l=s.reduce((u,f)=>{let p=Bs(t,f,i);return u.top=Ne(p.top,u.top),u.right=ir(p.right,u.right),u.bottom=ir(p.bottom,u.bottom),u.left=Ne(p.left,u.left),u},Bs(t,a,i));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function Af(e){return Gs(e)}function Cf(e,t,r){let n=te(t),i=le(t),o=r==="fixed",s=Pe(e,!0,o,t),a={scrollLeft:0,scrollTop:0},l=ge(0);if(n||!n&&!o)if((ve(t)!=="body"||ht(i))&&(a=dr(t)),n){let u=Pe(t,!0,o,t);l.x=u.x+t.clientLeft,l.y=u.y+t.clientTop}else i&&(l.x=Ys(i));return{x:s.left+a.scrollLeft-l.x,y:s.top+a.scrollTop-l.y,width:s.width,height:s.height}}function Us(e,t){return!te(e)||J(e).position==="fixed"?null:t?t(e):e.offsetParent}function Zs(e,t){let r=K(e);if(!te(e))return r;let n=Us(e,t);for(;n&&hf(n)&&J(n).position==="static";)n=Us(n,t);return n&&(ve(n)==="html"||ve(n)==="body"&&J(n).position==="static"&&!An(n))?r:n||mf(e)||r}var Of=async function(e){let{reference:t,floating:r,strategy:n}=e,i=this.getOffsetParent||Zs,o=this.getDimensions;return{reference:Cf(t,await i(r),n),floating:{x:0,y:0,...await o(r)}}};function Tf(e){return J(e).direction==="rtl"}var kf={convertOffsetParentRelativeRectToViewportRelativeRect:bf,getDocumentElement:le,getClippingRect:Ef,getOffsetParent:Zs,getElementRects:Of,getClientRects:wf,getDimensions:Af,getScale:Ke,isElement:ae,isRTL:Tf};function Lf(e,t){let r=null,n,i=le(e);function o(){clearTimeout(n),r&&r.disconnect(),r=null}function s(a,l){a===void 0&&(a=!1),l===void 0&&(l=1),o();let{left:u,top:f,width:p,height:c}=e.getBoundingClientRect();if(a||t(),!p||!c)return;let d=nr(f),m=nr(i.clientWidth-(u+p)),b=nr(i.clientHeight-(f+c)),g=nr(u),v={rootMargin:-d+"px "+-m+"px "+-b+"px "+-g+"px",threshold:Ne(0,ir(1,l))||1},_=!0;function T(A){let w=A[0].intersectionRatio;if(w!==l){if(!_)return s();w?s(!1,w):n=setTimeout(()=>{s(!1,1e-7)},100)}_=!1}try{r=new IntersectionObserver(T,{...v,root:i.ownerDocument})}catch{r=new IntersectionObserver(T,v)}r.observe(e)}return s(!0),o}function Nf(e,t,r,n){n===void 0&&(n={});let{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:a=typeof IntersectionObserver=="function",animationFrame:l=!1}=n,u=On(e),f=i||o?[...u?pt(u):[],...pt(t)]:[];f.forEach(y=>{i&&y.addEventListener("scroll",r,{passive:!0}),o&&y.addEventListener("resize",r)});let p=u&&a?Lf(u,r):null,c=-1,d=null;s&&(d=new ResizeObserver(y=>{let[v]=y;v&&v.target===u&&d&&(d.unobserve(t),cancelAnimationFrame(c),c=requestAnimationFrame(()=>{d&&d.observe(t)})),r()}),u&&!l&&d.observe(u),d.observe(t));let m,b=l?Pe(e):null;l&&g();function g(){let y=Pe(e);b&&(y.x!==b.x||y.y!==b.y||y.width!==b.width||y.height!==b.height)&&r(),b=y,m=requestAnimationFrame(g)}return r(),()=>{f.forEach(y=>{i&&y.removeEventListener("scroll",r),o&&y.removeEventListener("resize",r)}),p&&p(),d&&d.disconnect(),d=null,l&&cancelAnimationFrame(m)}}var Rf=(e,t,r)=>{let n=new Map,i={platform:kf,...r},o={...i.platform,_c:n};return uf(e,t,{...i,platform:o})};function Pf(e){e.magic("anchor",t=>{if(!t._x_anchor)throw"Alpine: No x-anchor directive found on element using $anchor...";return t._x_anchor}),e.interceptClone((t,r)=>{t&&t._x_anchor&&!r._x_anchor&&(r._x_anchor=t._x_anchor)}),e.directive("anchor",e.skipDuringClone((t,{expression:r,modifiers:n,value:i},{cleanup:o,evaluate:s})=>{let{placement:a,offsetValue:l,unstyled:u}=js(n);t._x_anchor=e.reactive({x:0,y:0});let f=s(r);if(!f)throw"Alpine: no element provided to x-anchor...";let p=()=>{let d;Rf(f,t,{placement:a,middleware:[cf(),pf({padding:5}),df(l)]}).then(({x:m,y:b})=>{u||Hs(t,m,b),JSON.stringify({x:m,y:b})!==d&&(t._x_anchor.x=m,t._x_anchor.y=b),d=JSON.stringify({x:m,y:b})})},c=Nf(f,t,()=>p());o(()=>c())},(t,{expression:r,modifiers:n,value:i},{cleanup:o,evaluate:s})=>{let{placement:a,offsetValue:l,unstyled:u}=js(n);t._x_anchor&&(u||Hs(t,t._x_anchor.x,t._x_anchor.y))}))}function Hs(e,t,r){Object.assign(e.style,{left:t+"px",top:r+"px",position:"absolute"})}function js(e){let r=["top","top-start","top-end","right","right-start","right-end","bottom","bottom-start","bottom-end","left","left-start","left-end"].find(o=>e.includes(o)),n=0;if(e.includes("offset")){let o=e.findIndex(s=>s==="offset");n=e[o+1]!==void 0?Number(e[o+1]):n}let i=e.includes("no-style");return{placement:r,offsetValue:n,unstyled:i}}var ea=Pf;var mt=class{constructor(t,r){this.url=t,this.html=r}},re={currentKey:null,currentUrl:null,keys:[],lookup:{},limit:10,has(e){return this.lookup[e]!==void 0},retrieve(e){let t=this.lookup[e];if(t===void 0)throw"No back button cache found for current location: "+e;return t},replace(e,t){this.has(e)?this.lookup[e]=t:this.push(e,t)},push(e,t){this.lookup[e]=t;let r=this.keys.indexOf(e);r>-1&&this.keys.splice(r,1),this.keys.unshift(e),this.trim()},trim(){for(let e of this.keys.splice(this.limit))delete this.lookup[e]}};function ta(){let e=new URL(window.location.href,document.baseURI);Tn(e,document.documentElement.outerHTML)}function ra(e,t){let r=document.documentElement.outerHTML;re.replace(e,new mt(t,r))}function na(e,t){let r;e(n=>r=n),window.addEventListener("popstate",n=>{let i=n.state||{},o=i.alpine||{};if(Object.keys(i).length!==0&&!!o.snapshotIdx)if(re.has(o.snapshotIdx)){let s=re.retrieve(o.snapshotIdx);t(s.html,s.url,re.currentUrl,re.currentKey)}else r(o.url)})}function ia(e,t){Mf(t,e)}function Mf(e,t){oa("pushState",e,t)}function Tn(e,t){oa("replaceState",e,t)}function oa(e,t,r){let n=t.toString()+"-"+Math.random();e==="pushState"?re.push(n,new mt(t,r)):re.replace(n=re.currentKey??n,new mt(t,r));let i=history.state||{};i.alpine||(i.alpine={}),i.alpine.snapshotIdx=n,i.alpine.url=t.toString();try{history[e](i,JSON.stringify(document.title),t),re.currentKey=n,re.currentUrl=t}catch(o){o instanceof DOMException&&o.name==="SecurityError"&&console.error("Livewire: You can't use wire:navigate with a link to a different root domain: "+t),console.error(o)}}function sa(e,t){let r=o=>!o.isTrusted,n=o=>o.which>1||o.altKey||o.ctrlKey||o.metaKey||o.shiftKey,i=o=>o.which!==13||o.altKey||o.ctrlKey||o.metaKey||o.shiftKey;e.addEventListener("click",o=>{if(r(o)){o.preventDefault(),t(s=>s());return}n(o)||o.preventDefault()}),e.addEventListener("mousedown",o=>{n(o)||(o.preventDefault(),t(s=>{let a=l=>{l.preventDefault(),s(),e.removeEventListener("mouseup",a)};e.addEventListener("mouseup",a)}))}),e.addEventListener("keydown",o=>{i(o)||(o.preventDefault(),t(s=>s()))})}function aa(e,t=60,r){e.addEventListener("mouseenter",n=>{let i=setTimeout(()=>{r(n)},t),o=()=>{clearTimeout(i),e.removeEventListener("mouseleave",o)};e.addEventListener("mouseleave",o)})}function kn(e){return be(e.getAttribute("href"))}function be(e){return e!==null&&new URL(e,document.baseURI)}function Je(e){return e.pathname+e.search+e.hash}function la(e,t){let r=Je(e);Ln(r,(n,i)=>{t(n,i)})}function Ln(e,t){let r={headers:{"X-Livewire-Navigate":""}};R("navigate.request",{url:e,options:r});let n;fetch(e,r).then(i=>{let o=be(e);return n=be(i.url),o.pathname+o.search===n.pathname+n.search&&(n.hash=o.hash),i.text()}).then(i=>{t(i,n)})}var G={};function Nn(e,t){let r=Je(e);G[r]||(G[r]={finished:!1,html:null,whenFinished:()=>{}},Ln(r,(n,i)=>{t(n,i)}))}function Rn(e,t,r){let n=G[Je(t)];n.html=e,n.finished=!0,n.finalDestination=r,n.whenFinished()}function ua(e,t,r){let n=Je(e);if(!G[n])return r();if(G[n].finished){let i=G[n].html,o=G[n].finalDestination;return delete G[n],t(i,o)}else G[n].whenFinished=()=>{let i=G[n].html,o=G[n].finalDestination;delete G[n],t(i,o)}}function Pn(e){S.mutateDom(()=>{e.querySelectorAll("[data-teleport-template]").forEach(t=>t._x_teleport.remove())})}function Mn(e){S.mutateDom(()=>{e.querySelectorAll("[data-teleport-target]").forEach(t=>t.remove())})}function In(e){S.walk(e,(t,r)=>{!t._x_teleport||(t._x_teleportPutBack(),r())})}function ca(e){return e.hasAttribute("data-teleport-target")}function Fn(){document.body.setAttribute("data-scroll-x",document.body.scrollLeft),document.body.setAttribute("data-scroll-y",document.body.scrollTop),document.querySelectorAll(["[x-navigate\\:scroll]","[wire\\:scroll]"]).forEach(e=>{e.setAttribute("data-scroll-x",e.scrollLeft),e.setAttribute("data-scroll-y",e.scrollTop)})}function $n(){let e=t=>{t.hasAttribute("data-scroll-x")?(t.scrollTo({top:Number(t.getAttribute("data-scroll-y")),left:Number(t.getAttribute("data-scroll-x")),behavior:"instant"}),t.removeAttribute("data-scroll-x"),t.removeAttribute("data-scroll-y")):window.scrollTo({top:0,left:0,behavior:"instant"})};queueMicrotask(()=>{e(document.body),document.querySelectorAll(["[x-navigate\\:scroll]","[wire\\:scroll]"]).forEach(e)})}var gt={};function Dn(e){gt={},document.querySelectorAll("[x-persist]").forEach(t=>{gt[t.getAttribute("x-persist")]=t,e(t),S.mutateDom(()=>{t.remove()})})}function Bn(e){let t=[];document.querySelectorAll("[x-persist]").forEach(r=>{let n=gt[r.getAttribute("x-persist")];!n||(t.push(r.getAttribute("x-persist")),n._x_wasPersisted=!0,e(n,r),S.mutateDom(()=>{r.replaceWith(n)}))}),Object.entries(gt).forEach(([r,n])=>{t.includes(r)||S.destroyTree(n)}),gt={}}function fa(e){return e.hasAttribute("x-persist")}var vt=fl(pa());vt.default.configure({minimum:.1,trickleSpeed:200,showSpinner:!1,parent:"body"});If();var Hn=!1;function ha(){Hn=!0,setTimeout(()=>{!Hn||vt.default.start()},150)}function ma(){Hn=!1,vt.default.done()}function ga(){vt.default.remove()}function If(){let e=document.createElement("style");e.innerHTML=`/* Make clicks pass-through */ +`:""}`,t),setTimeout(()=>{throw e},0)}var Wt=!0;function Ys(e){let t=Wt;Wt=!1;let r=e();return Wt=t,r}function wt(e,t,r={}){let n;return de(e,t)(i=>n=i,r),n}function de(...e){return Qs(...e)}var Qs=()=>{};function xd(e){Qs=e}var Zs;function Ed(e){Zs=e}function Sd(e,t){let r={};kr(r,e);let n=[r,...Et(e)],i=typeof t=="function"?Ad(n,t):Od(n,t,e);return yd.bind(null,e,t,i)}function Ad(e,t){return(r=()=>{},{scope:n={},params:i=[],context:o}={})=>{if(!Wt){Mr(r,t,St([n,...e]),i);return}let a=t.apply(St([n,...e]),i);Mr(r,a)}}var Yi={};function Cd(e,t){if(Yi[e])return Yi[e];let r=Object.getPrototypeOf(async function(){}).constructor,n=/^[\n\s]*if.*\(.*\)/.test(e.trim())||/^(let|const)\s/.test(e.trim())?`(async()=>{ ${e} })()`:e,o=(()=>{try{let a=new r(["__self","scope"],`with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`);return Object.defineProperty(a,"name",{value:`[Alpine] ${e}`}),a}catch(a){return Tr(a,t,e),Promise.resolve()}})();return Yi[e]=o,o}function Od(e,t,r){let n=Cd(t,r);return(i=()=>{},{scope:o={},params:a=[],context:s}={})=>{n.result=void 0,n.finished=!1;let l=St([o,...e]);if(typeof n=="function"){let u=n.call(s,n,l).catch(c=>Tr(c,r,t));n.finished?(Mr(i,n.result,l,a,r),n.result=void 0):u.then(c=>{Mr(i,c,l,a,r)}).catch(c=>Tr(c,r,t)).finally(()=>n.result=void 0)}}}function Mr(e,t,r,n,i){if(Wt&&typeof t=="function"){let o=t.apply(r,n);o instanceof Promise?o.then(a=>Mr(e,a,r,n)).catch(a=>Tr(a,i,t)):e(o)}else typeof t=="object"&&t instanceof Promise?t.then(o=>e(o)):e(t)}function kd(...e){return Zs(...e)}function Td(e,t,r={}){let n={};kr(n,e);let i=[n,...Et(e)],o=St([r.scope??{},...i]),a=r.params??[];if(t.includes("await")){let s=Object.getPrototypeOf(async function(){}).constructor,l=/^[\n\s]*if.*\(.*\)/.test(t.trim())||/^(let|const)\s/.test(t.trim())?`(async()=>{ ${t} })()`:t;return new s(["scope"],`with (scope) { let __result = ${l}; return __result }`).call(r.context,o)}else{let s=/^[\n\s]*if.*\(.*\)/.test(t.trim())||/^(let|const)\s/.test(t.trim())?`(()=>{ ${t} })()`:t,u=new Function(["scope"],`with (scope) { let __result = ${s}; return __result }`).call(r.context,o);return typeof u=="function"&&Wt?u.apply(o,a):u}}var Co="x-";function Jt(e=""){return Co+e}function Md(e){Co=e}var An={};function ee(e,t){return An[e]=t,{before(r){if(!An[r]){console.warn(String.raw`Cannot find directive \`${r}\`. \`${e}\` will use the default order of execution`);return}let n=bt.indexOf(r);bt.splice(n>=0?n:bt.indexOf("DEFAULT"),0,e)}}}function Nd(e){return Object.keys(An).includes(e)}function Oo(e,t,r){if(t=Array.from(t),e._x_virtualDirectives){let o=Object.entries(e._x_virtualDirectives).map(([s,l])=>({name:s,value:l})),a=el(o);o=o.map(s=>a.find(l=>l.name===s.name)?{name:`x-bind:${s.name}`,value:`"${s.value}"`}:s),t=t.concat(o)}let n={};return t.map(ol((o,a)=>n[o]=a)).filter(sl).map(Dd(n,r)).sort(Fd).map(o=>Id(e,o))}function el(e){return Array.from(e).map(ol()).filter(t=>!sl(t))}var ao=!1,Ar=new Map,tl=Symbol();function Pd(e){ao=!0;let t=Symbol();tl=t,Ar.set(t,[]);let r=()=>{for(;Ar.get(t).length;)Ar.get(t).shift()();Ar.delete(t)},n=()=>{ao=!1,r()};e(r),n()}function rl(e){let t=[],r=s=>t.push(s),[n,i]=ld(e);return t.push(i),[{Alpine:Xt,effect:n,cleanup:r,evaluateLater:de.bind(de,e),evaluate:wt.bind(wt,e)},()=>t.forEach(s=>s())]}function Id(e,t){let r=()=>{},n=An[t.type]||r,[i,o]=rl(e);qs(e,t.original,o);let a=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,i),n=n.bind(n,e,t,i),ao?Ar.get(tl).push(n):n())};return a.runCleanups=o,a}var nl=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),il=e=>e;function ol(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=al.reduce((o,a)=>a(o),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var al=[];function ko(e){al.push(e)}function sl({name:e}){return ll().test(e)}var ll=()=>new RegExp(`^${Co}([^:^.]+)\\b`);function Dd(e,t){return({name:r,value:n})=>{r===n&&(n="");let i=r.match(ll()),o=r.match(/:([a-zA-Z0-9\-_:]+)/),a=r.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],s=t||e[r]||r;return{type:i?i[1]:null,value:o?o[1]:null,modifiers:a.map(l=>l.replace(".","")),expression:n,original:s}}}var so="DEFAULT",bt=["ignore","ref","id","data","anchor","bind","init","for","model","modelable","transition","show","if",so,"teleport"];function Fd(e,t){let r=bt.indexOf(e.type)===-1?so:e.type,n=bt.indexOf(t.type)===-1?so:t.type;return bt.indexOf(r)-bt.indexOf(n)}function Cr(e,t,r={},n={}){return e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0,...n}))}function At(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>At(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)At(n,t,!1),n=n.nextElementSibling}function Ie(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var As=!1;function Rd(){As&&Ie("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),As=!0,document.body||Ie("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?"),Cr(document,"alpine:init"),Cr(document,"alpine:initializing"),xo(),cd(t=>He(t,At)),yo(t=>Gt(t)),Hs((t,r)=>{Oo(t,r).forEach(n=>n())});let e=t=>!kn(t.parentElement,!0);Array.from(document.querySelectorAll(fl().join(","))).filter(e).forEach(t=>{He(t)}),Cr(document,"alpine:initialized"),setTimeout(()=>{jd()})}var To=[],ul=[];function cl(){return To.map(e=>e())}function fl(){return To.concat(ul).map(e=>e())}function dl(e){To.push(e)}function pl(e){ul.push(e)}function kn(e,t=!1){return Ue(e,r=>{if((t?fl():cl()).some(i=>r.matches(i)))return!0})}function Ue(e,t){if(!!e){if(t(e))return e;if(e._x_teleportBack)return Ue(e._x_teleportBack,t);if(e.parentNode instanceof ShadowRoot)return Ue(e.parentNode.host,t);if(!!e.parentElement)return Ue(e.parentElement,t)}}function Ld(e){return cl().some(t=>e.matches(t))}var hl=[];function $d(e){hl.push(e)}var Bd=1;function He(e,t=At,r=()=>{}){Ue(e,n=>n._x_ignore)||Pd(()=>{t(e,(n,i)=>{n._x_marker||(r(n,i),hl.forEach(o=>o(n,i)),Oo(n,n.attributes).forEach(o=>o()),n._x_ignore||(n._x_marker=Bd++),n._x_ignore&&i())})})}function Gt(e,t=At){t(e,r=>{fd(r),Ws(r),delete r._x_marker})}function jd(){[["ui","dialog",["[x-dialog], [x-popover]"]],["anchor","anchor",["[x-anchor]"]],["sort","sort",["[x-sort]"]]].forEach(([t,r,n])=>{Nd(r)||n.some(i=>{if(document.querySelector(i))return Ie(`found "${i}", but missing ${t} plugin`),!0})})}var lo=[],Mo=!1;function No(e=()=>{}){return queueMicrotask(()=>{Mo||setTimeout(()=>{uo()})}),new Promise(t=>{lo.push(()=>{e(),t()})})}function uo(){for(Mo=!1;lo.length;)lo.shift()()}function Ud(){Mo=!0}function Po(e,t){return Array.isArray(t)?Cs(e,t.join(" ")):typeof t=="object"&&t!==null?Hd(e,t):typeof t=="function"?Po(e,t()):Cs(e,t)}function co(e){return e.split(/\s/).filter(Boolean)}function Cs(e,t){let r=i=>co(i).filter(o=>!e.classList.contains(o)).filter(Boolean),n=i=>(e.classList.add(...i),()=>{e.classList.remove(...i)});return t=t===!0?t="":t||"",n(r(t))}function Hd(e,t){let r=Object.entries(t).flatMap(([a,s])=>s?co(a):!1).filter(Boolean),n=Object.entries(t).flatMap(([a,s])=>s?!1:co(a)).filter(Boolean),i=[],o=[];return n.forEach(a=>{e.classList.contains(a)&&(e.classList.remove(a),o.push(a))}),r.forEach(a=>{e.classList.contains(a)||(e.classList.add(a),i.push(a))}),()=>{o.forEach(a=>e.classList.add(a)),i.forEach(a=>e.classList.remove(a))}}function Tn(e,t){return typeof t=="object"&&t!==null?qd(e,t):Wd(e,t)}function qd(e,t){let r={};return Object.entries(t).forEach(([n,i])=>{r[n]=e.style[n],n.startsWith("--")||(n=zd(n)),e.style.setProperty(n,i)}),setTimeout(()=>{e.style.length===0&&e.removeAttribute("style")}),()=>{Tn(e,r)}}function Wd(e,t){let r=e.getAttribute("style",t);return e.setAttribute("style",t),()=>{e.setAttribute("style",r||"")}}function zd(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function fo(e,t=()=>{}){let r=!1;return function(){r?t.apply(this,arguments):(r=!0,e.apply(this,arguments))}}ee("transition",(e,{value:t,modifiers:r,expression:n},{evaluate:i})=>{typeof n=="function"&&(n=i(n)),n!==!1&&(!n||typeof n=="boolean"?Vd(e,r,t):Kd(e,n,t))});function Kd(e,t,r){ml(e,Po,""),{enter:i=>{e._x_transition.enter.during=i},"enter-start":i=>{e._x_transition.enter.start=i},"enter-end":i=>{e._x_transition.enter.end=i},leave:i=>{e._x_transition.leave.during=i},"leave-start":i=>{e._x_transition.leave.start=i},"leave-end":i=>{e._x_transition.leave.end=i}}[r](t)}function Vd(e,t,r){ml(e,Tn);let n=!t.includes("in")&&!t.includes("out")&&!r,i=n||t.includes("in")||["enter"].includes(r),o=n||t.includes("out")||["leave"].includes(r);t.includes("in")&&!n&&(t=t.filter((y,w)=>w<t.indexOf("out"))),t.includes("out")&&!n&&(t=t.filter((y,w)=>w>t.indexOf("out")));let a=!t.includes("opacity")&&!t.includes("scale"),s=a||t.includes("opacity"),l=a||t.includes("scale"),u=s?0:1,c=l?Er(t,"scale",95)/100:1,f=Er(t,"delay",0)/1e3,d=Er(t,"origin","center"),p="opacity, transform",m=Er(t,"duration",150)/1e3,h=Er(t,"duration",75)/1e3,v="cubic-bezier(0.4, 0.0, 0.2, 1)";i&&(e._x_transition.enter.during={transformOrigin:d,transitionDelay:`${f}s`,transitionProperty:p,transitionDuration:`${m}s`,transitionTimingFunction:v},e._x_transition.enter.start={opacity:u,transform:`scale(${c})`},e._x_transition.enter.end={opacity:1,transform:"scale(1)"}),o&&(e._x_transition.leave.during={transformOrigin:d,transitionDelay:`${f}s`,transitionProperty:p,transitionDuration:`${h}s`,transitionTimingFunction:v},e._x_transition.leave.start={opacity:1,transform:"scale(1)"},e._x_transition.leave.end={opacity:u,transform:`scale(${c})`})}function ml(e,t,r={}){e._x_transition||(e._x_transition={enter:{during:r,start:r,end:r},leave:{during:r,start:r,end:r},in(n=()=>{},i=()=>{}){po(e,t,{during:this.enter.during,start:this.enter.start,end:this.enter.end},n,i)},out(n=()=>{},i=()=>{}){po(e,t,{during:this.leave.during,start:this.leave.start,end:this.leave.end},n,i)}})}window.Element.prototype._x_toggleAndCascadeWithTransitions=function(e,t,r,n){let i=document.visibilityState==="visible"?requestAnimationFrame:setTimeout,o=()=>i(r);if(t){e._x_transition&&(e._x_transition.enter||e._x_transition.leave)?e._x_transition.enter&&(Object.entries(e._x_transition.enter.during).length||Object.entries(e._x_transition.enter.start).length||Object.entries(e._x_transition.enter.end).length)?e._x_transition.in(r):o():e._x_transition?e._x_transition.in(r):o();return}e._x_hidePromise=e._x_transition?new Promise((a,s)=>{e._x_transition.out(()=>{},()=>a(n)),e._x_transitioning&&e._x_transitioning.beforeCancel(()=>s({isFromCancelledTransition:!0}))}):Promise.resolve(n),queueMicrotask(()=>{let a=gl(e);a?(a._x_hideChildren||(a._x_hideChildren=[]),a._x_hideChildren.push(e)):i(()=>{let s=l=>{let u=Promise.all([l._x_hidePromise,...(l._x_hideChildren||[]).map(s)]).then(([c])=>c?.());return delete l._x_hidePromise,delete l._x_hideChildren,u};s(e).catch(l=>{if(!l.isFromCancelledTransition)throw l})})})};function gl(e){let t=e.parentNode;if(!!t)return t._x_hidePromise?t:gl(t)}function po(e,t,{during:r,start:n,end:i}={},o=()=>{},a=()=>{}){if(e._x_transitioning&&e._x_transitioning.cancel(),Object.keys(r).length===0&&Object.keys(n).length===0&&Object.keys(i).length===0){o(),a();return}let s,l,u;Jd(e,{start(){s=t(e,n)},during(){l=t(e,r)},before:o,end(){s(),u=t(e,i)},after:a,cleanup(){l(),u()}})}function Jd(e,t){let r,n,i,o=fo(()=>{Q(()=>{r=!0,n||t.before(),i||(t.end(),uo()),t.after(),e.isConnected&&t.cleanup(),delete e._x_transitioning})});e._x_transitioning={beforeCancels:[],beforeCancel(a){this.beforeCancels.push(a)},cancel:fo(function(){for(;this.beforeCancels.length;)this.beforeCancels.shift()();o()}),finish:o},Q(()=>{t.start(),t.during()}),Ud(),requestAnimationFrame(()=>{if(r)return;let a=Number(getComputedStyle(e).transitionDuration.replace(/,.*/,"").replace("s",""))*1e3,s=Number(getComputedStyle(e).transitionDelay.replace(/,.*/,"").replace("s",""))*1e3;a===0&&(a=Number(getComputedStyle(e).animationDuration.replace("s",""))*1e3),Q(()=>{t.before()}),n=!0,requestAnimationFrame(()=>{r||(Q(()=>{t.end()}),uo(),setTimeout(e._x_transitioning.finish,a+s),i=!0)})})}function Er(e,t,r){if(e.indexOf(t)===-1)return r;let n=e[e.indexOf(t)+1];if(!n||t==="scale"&&isNaN(n))return r;if(t==="duration"||t==="delay"){let i=n.match(/([0-9]+)ms/);if(i)return i[1]}return t==="origin"&&["top","right","left","center","bottom"].includes(e[e.indexOf(t)+2])?[n,e[e.indexOf(t)+2]].join(" "):n}var it=!1;function at(e,t=()=>{}){return(...r)=>it?t(...r):e(...r)}function Gd(e){return(...t)=>it&&e(...t)}var vl=[];function Mn(e){vl.push(e)}function Xd(e,t){vl.forEach(r=>r(e,t)),it=!0,bl(()=>{He(t,(r,n)=>{n(r,()=>{})})}),it=!1}var ho=!1;function Yd(e,t){t._x_dataStack||(t._x_dataStack=e._x_dataStack),it=!0,ho=!0,bl(()=>{Qd(t)}),it=!1,ho=!1}function Qd(e){let t=!1;He(e,(n,i)=>{At(n,(o,a)=>{if(t&&Ld(o))return a();t=!0,i(o,a)})})}function bl(e){let t=Ct;Ss((r,n)=>{let i=t(r);return Vt(i),()=>{}}),e(),Ss(t)}function yl(e,t,r,n=[]){switch(e._x_bindings||(e._x_bindings=Kt({})),e._x_bindings[t]=r,t=n.includes("camel")?ap(t):t,t){case"value":Zd(e,r);break;case"style":tp(e,r);break;case"class":ep(e,r);break;case"selected":case"checked":rp(e,t,r);break;default:wl(e,t,r);break}}function Zd(e,t){if(Io(e))e.attributes.value===void 0&&(e.value=t);else if(Cn(e))Number.isInteger(t)?e.value=t:!Array.isArray(t)&&typeof t!="boolean"&&![null,void 0].includes(t)?e.value=String(t):Array.isArray(t)?e.checked=t.some(r=>sp(r,e.value)):e.checked=!!t;else if(e.tagName==="SELECT")op(e,t);else{if(e.value===t)return;e.value=t===void 0?"":t}}function ep(e,t){e._x_undoAddedClasses&&e._x_undoAddedClasses(),e._x_undoAddedClasses=Po(e,t)}function tp(e,t){e._x_undoAddedStyles&&e._x_undoAddedStyles(),e._x_undoAddedStyles=Tn(e,t)}function rp(e,t,r){wl(e,t,r),ip(e,t,r)}function wl(e,t,r){[null,void 0,!1].includes(r)&&up(t)?e.removeAttribute(t):(_l(t)&&(r=t),np(e,t,r))}function np(e,t,r){e.getAttribute(t)!=r&&e.setAttribute(t,r)}function ip(e,t,r){e[t]!==r&&(e[t]=r)}function op(e,t){let r=[].concat(t).map(n=>n+"");Array.from(e.options).forEach(n=>{n.selected=r.includes(n.value)})}function ap(e){return e.toLowerCase().replace(/-(\w)/g,(t,r)=>r.toUpperCase())}function sp(e,t){return e==t}function En(e){return[1,"1","true","on","yes",!0].includes(e)?!0:[0,"0","false","off","no",!1].includes(e)?!1:e?Boolean(e):null}var lp=new Set(["allowfullscreen","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","inert","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected","shadowrootclonable","shadowrootdelegatesfocus","shadowrootserializable"]);function _l(e){return lp.has(e)}function up(e){return!["aria-pressed","aria-checked","aria-expanded","aria-selected"].includes(e)}function cp(e,t,r){return e._x_bindings&&e._x_bindings[t]!==void 0?e._x_bindings[t]:xl(e,t,r)}function fp(e,t,r,n=!0){if(e._x_bindings&&e._x_bindings[t]!==void 0)return e._x_bindings[t];if(e._x_inlineBindings&&e._x_inlineBindings[t]!==void 0){let i=e._x_inlineBindings[t];return i.extract=n,Ys(()=>wt(e,i.expression))}return xl(e,t,r)}function xl(e,t,r){let n=e.getAttribute(t);return n===null?typeof r=="function"?r():r:n===""?!0:_l(t)?!![t,"true"].includes(n):n}function Cn(e){return e.type==="checkbox"||e.localName==="ui-checkbox"||e.localName==="ui-switch"}function Io(e){return e.type==="radio"||e.localName==="ui-radio"}function El(e,t){let r;return function(){let n=this,i=arguments,o=function(){r=null,e.apply(n,i)};clearTimeout(r),r=setTimeout(o,t)}}function Sl(e,t){let r;return function(){let n=this,i=arguments;r||(e.apply(n,i),r=!0,setTimeout(()=>r=!1,t))}}function Al({get:e,set:t},{get:r,set:n}){let i=!0,o,a,s=Ct(()=>{let l=e(),u=r();if(i)n(Qi(l)),i=!1;else{let c=JSON.stringify(l),f=JSON.stringify(u);c!==o?n(Qi(l)):c!==f&&t(Qi(u))}o=JSON.stringify(e()),a=JSON.stringify(r())});return()=>{Vt(s)}}function Qi(e){return typeof e=="object"?JSON.parse(JSON.stringify(e)):e}function dp(e){(Array.isArray(e)?e:[e]).forEach(r=>r(Xt))}var vt={},Os=!1;function pp(e,t){if(Os||(vt=Kt(vt),Os=!0),t===void 0)return vt[e];vt[e]=t,Ao(vt[e]),typeof t=="object"&&t!==null&&t.hasOwnProperty("init")&&typeof t.init=="function"&&vt[e].init()}function hp(){return vt}var Cl={};function mp(e,t){let r=typeof t!="function"?()=>t:t;return e instanceof Element?Ol(e,r()):(Cl[e]=r,()=>{})}function gp(e){return Object.entries(Cl).forEach(([t,r])=>{Object.defineProperty(e,t,{get(){return(...n)=>r(...n)}})}),e}function Ol(e,t,r){let n=[];for(;n.length;)n.pop()();let i=Object.entries(t).map(([a,s])=>({name:a,value:s})),o=el(i);return i=i.map(a=>o.find(s=>s.name===a.name)?{name:`x-bind:${a.name}`,value:`"${a.value}"`}:a),Oo(e,i,r).map(a=>{n.push(a.runCleanups),a()}),()=>{for(;n.length;)n.pop()()}}var kl={};function vp(e,t){kl[e]=t}function bp(e,t){return Object.entries(kl).forEach(([r,n])=>{Object.defineProperty(e,r,{get(){return(...i)=>n.bind(t)(...i)},enumerable:!1})}),e}var yp={get reactive(){return Kt},get release(){return Vt},get effect(){return Ct},get raw(){return Ls},get transaction(){return ud},version:"3.15.12",flushAndStopDeferringMutations:hd,dontAutoEvaluateFunctions:Ys,disableEffectScheduling:ad,startObservingMutations:xo,stopObservingMutations:zs,setReactivityEngine:sd,onAttributeRemoved:qs,onAttributesAdded:Hs,closestDataStack:Et,skipDuringClone:at,onlyDuringClone:Gd,addRootSelector:dl,addInitSelector:pl,setErrorHandler:wd,interceptClone:Mn,addScopeToNode:Nr,deferMutations:pd,mapAttributes:ko,evaluateLater:de,interceptInit:$d,initInterceptors:Ao,injectMagics:kr,setEvaluator:xd,setRawEvaluator:Ed,mergeProxies:St,extractProp:fp,findClosest:Ue,onElRemoved:yo,closestRoot:kn,destroyTree:Gt,interceptor:Js,transition:po,setStyles:Tn,mutateDom:Q,directive:ee,entangle:Al,throttle:Sl,debounce:El,evaluate:wt,evaluateRaw:kd,initTree:He,nextTick:No,prefixed:Jt,prefix:Md,plugin:dp,magic:Te,store:pp,start:Rd,clone:Yd,cloneNode:Xd,bound:cp,$data:Ks,watch:$s,walk:At,data:vp,bind:mp},Xt=yp;function Tl(e,t){let r=Object.create(null),n=e.split(",");for(let i=0;i<n.length;i++)r[n[i]]=!0;return t?i=>!!r[i.toLowerCase()]:i=>!!r[i]}var wp="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Gv=Tl(wp+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected"),_p=Object.freeze({}),Xv=Object.freeze([]),xp=Object.prototype.hasOwnProperty,Nn=(e,t)=>xp.call(e,t),_t=Array.isArray,Or=e=>Ml(e)==="[object Map]",Ep=e=>typeof e=="string",Do=e=>typeof e=="symbol",Pn=e=>e!==null&&typeof e=="object",Sp=Object.prototype.toString,Ml=e=>Sp.call(e),Nl=e=>Ml(e).slice(8,-1),Fo=e=>Ep(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,In=e=>{let t=Object.create(null);return r=>t[r]||(t[r]=e(r))},Ap=/-(\w)/g,Yv=In(e=>e.replace(Ap,(t,r)=>r?r.toUpperCase():"")),Cp=/\B([A-Z])/g,Qv=In(e=>e.replace(Cp,"-$1").toLowerCase()),Pl=In(e=>e.charAt(0).toUpperCase()+e.slice(1)),Zv=In(e=>e?`on${Pl(e)}`:""),Il=(e,t)=>e!==t&&(e===e||t===t),mo=new WeakMap,Sr=[],Pe,xt=Symbol("iterate"),go=Symbol("Map key iterate");function Op(e){return e&&e._isEffect===!0}function kp(e,t=_p){Op(e)&&(e=e.raw);let r=Np(e,t);return t.lazy||r(),r}function Tp(e){e.active&&(Dl(e),e.options.onStop&&e.options.onStop(),e.active=!1)}var Mp=0;function Np(e,t){let r=function(){if(!r.active)return e();if(!Sr.includes(r)){Dl(r);try{return Ip(),Sr.push(r),Pe=r,e()}finally{Sr.pop(),Fl(),Pe=Sr[Sr.length-1]}}};return r.id=Mp++,r.allowRecurse=!!t.allowRecurse,r._isEffect=!0,r.active=!0,r.raw=e,r.deps=[],r.options=t,r}function Dl(e){let{deps:t}=e;if(t.length){for(let r=0;r<t.length;r++)t[r].delete(e);t.length=0}}var zt=!0,Ro=[];function Pp(){Ro.push(zt),zt=!1}function Ip(){Ro.push(zt),zt=!0}function Fl(){let e=Ro.pop();zt=e===void 0?!0:e}function ke(e,t,r){if(!zt||Pe===void 0)return;let n=mo.get(e);n||mo.set(e,n=new Map);let i=n.get(r);i||n.set(r,i=new Set),i.has(Pe)||(i.add(Pe),Pe.deps.push(i),Pe.options.onTrack&&Pe.options.onTrack({effect:Pe,target:e,type:t,key:r}))}function ot(e,t,r,n,i,o){let a=mo.get(e);if(!a)return;let s=new Set,l=c=>{c&&c.forEach(f=>{(f!==Pe||f.allowRecurse)&&s.add(f)})};if(t==="clear")a.forEach(l);else if(r==="length"&&_t(e))a.forEach((c,f)=>{(f==="length"||f>=n)&&l(c)});else switch(r!==void 0&&l(a.get(r)),t){case"add":_t(e)?Fo(r)&&l(a.get("length")):(l(a.get(xt)),Or(e)&&l(a.get(go)));break;case"delete":_t(e)||(l(a.get(xt)),Or(e)&&l(a.get(go)));break;case"set":Or(e)&&l(a.get(xt));break}let u=c=>{c.options.onTrigger&&c.options.onTrigger({effect:c,target:e,key:r,type:t,newValue:n,oldValue:i,oldTarget:o}),c.options.scheduler?c.options.scheduler(c):c()};s.forEach(u)}var Dp=Tl("__proto__,__v_isRef,__isVue"),Rl=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(Do)),Fp=Ll(),Rp=Ll(!0),ks=Lp();function Lp(){let e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){let n=V(this);for(let o=0,a=this.length;o<a;o++)ke(n,"get",o+"");let i=n[t](...r);return i===-1||i===!1?n[t](...r.map(V)):i}}),["push","pop","shift","unshift","splice"].forEach(t=>{e[t]=function(...r){Pp();let n=V(this)[t].apply(this,r);return Fl(),n}}),e}function Ll(e=!1,t=!1){return function(n,i,o){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_raw"&&o===(e?t?Zp:Ul:t?Qp:jl).get(n))return n;let a=_t(n);if(!e&&a&&Nn(ks,i))return Reflect.get(ks,i,o);let s=Reflect.get(n,i,o);return(Do(i)?Rl.has(i):Dp(i))||(e||ke(n,"get",i),t)?s:vo(s)?!a||!Fo(i)?s.value:s:Pn(s)?e?Hl(s):jo(s):s}}var $p=Bp();function Bp(e=!1){return function(r,n,i,o){let a=r[n];if(!e&&(i=V(i),a=V(a),!_t(r)&&vo(a)&&!vo(i)))return a.value=i,!0;let s=_t(r)&&Fo(n)?Number(n)<r.length:Nn(r,n),l=Reflect.set(r,n,i,o);return r===V(o)&&(s?Il(i,a)&&ot(r,"set",n,i,a):ot(r,"add",n,i)),l}}function jp(e,t){let r=Nn(e,t),n=e[t],i=Reflect.deleteProperty(e,t);return i&&r&&ot(e,"delete",t,void 0,n),i}function Up(e,t){let r=Reflect.has(e,t);return(!Do(t)||!Rl.has(t))&&ke(e,"has",t),r}function Hp(e){return ke(e,"iterate",_t(e)?"length":xt),Reflect.ownKeys(e)}var qp={get:Fp,set:$p,deleteProperty:jp,has:Up,ownKeys:Hp},Wp={get:Rp,set(e,t){return console.warn(`Set operation on key "${String(t)}" failed: target is readonly.`,e),!0},deleteProperty(e,t){return console.warn(`Delete operation on key "${String(t)}" failed: target is readonly.`,e),!0}},Lo=e=>Pn(e)?jo(e):e,$o=e=>Pn(e)?Hl(e):e,Bo=e=>e,Dn=e=>Reflect.getPrototypeOf(e);function vn(e,t,r=!1,n=!1){e=e.__v_raw;let i=V(e),o=V(t);t!==o&&!r&&ke(i,"get",t),!r&&ke(i,"get",o);let{has:a}=Dn(i),s=n?Bo:r?$o:Lo;if(a.call(i,t))return s(e.get(t));if(a.call(i,o))return s(e.get(o));e!==i&&e.get(t)}function bn(e,t=!1){let r=this.__v_raw,n=V(r),i=V(e);return e!==i&&!t&&ke(n,"has",e),!t&&ke(n,"has",i),e===i?r.has(e):r.has(e)||r.has(i)}function yn(e,t=!1){return e=e.__v_raw,!t&&ke(V(e),"iterate",xt),Reflect.get(e,"size",e)}function Ts(e){e=V(e);let t=V(this);return Dn(t).has.call(t,e)||(t.add(e),ot(t,"add",e,e)),this}function Ms(e,t){t=V(t);let r=V(this),{has:n,get:i}=Dn(r),o=n.call(r,e);o?Bl(r,n,e):(e=V(e),o=n.call(r,e));let a=i.call(r,e);return r.set(e,t),o?Il(t,a)&&ot(r,"set",e,t,a):ot(r,"add",e,t),this}function Ns(e){let t=V(this),{has:r,get:n}=Dn(t),i=r.call(t,e);i?Bl(t,r,e):(e=V(e),i=r.call(t,e));let o=n?n.call(t,e):void 0,a=t.delete(e);return i&&ot(t,"delete",e,void 0,o),a}function Ps(){let e=V(this),t=e.size!==0,r=Or(e)?new Map(e):new Set(e),n=e.clear();return t&&ot(e,"clear",void 0,void 0,r),n}function wn(e,t){return function(n,i){let o=this,a=o.__v_raw,s=V(a),l=t?Bo:e?$o:Lo;return!e&&ke(s,"iterate",xt),a.forEach((u,c)=>n.call(i,l(u),l(c),o))}}function _n(e,t,r){return function(...n){let i=this.__v_raw,o=V(i),a=Or(o),s=e==="entries"||e===Symbol.iterator&&a,l=e==="keys"&&a,u=i[e](...n),c=r?Bo:t?$o:Lo;return!t&&ke(o,"iterate",l?go:xt),{next(){let{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:s?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function nt(e){return function(...t){{let r=t[0]?`on key "${t[0]}" `:"";console.warn(`${Pl(e)} operation ${r}failed: target is readonly.`,V(this))}return e==="delete"?!1:this}}function zp(){let e={get(o){return vn(this,o)},get size(){return yn(this)},has:bn,add:Ts,set:Ms,delete:Ns,clear:Ps,forEach:wn(!1,!1)},t={get(o){return vn(this,o,!1,!0)},get size(){return yn(this)},has:bn,add:Ts,set:Ms,delete:Ns,clear:Ps,forEach:wn(!1,!0)},r={get(o){return vn(this,o,!0)},get size(){return yn(this,!0)},has(o){return bn.call(this,o,!0)},add:nt("add"),set:nt("set"),delete:nt("delete"),clear:nt("clear"),forEach:wn(!0,!1)},n={get(o){return vn(this,o,!0,!0)},get size(){return yn(this,!0)},has(o){return bn.call(this,o,!0)},add:nt("add"),set:nt("set"),delete:nt("delete"),clear:nt("clear"),forEach:wn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=_n(o,!1,!1),r[o]=_n(o,!0,!1),t[o]=_n(o,!1,!0),n[o]=_n(o,!0,!0)}),[e,r,t,n]}var[Kp,Vp,Jp,Gp]=zp();function $l(e,t){let r=t?e?Gp:Jp:e?Vp:Kp;return(n,i,o)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(Nn(r,i)&&i in n?r:n,i,o)}var Xp={get:$l(!1,!1)},Yp={get:$l(!0,!1)};function Bl(e,t,r){let n=V(r);if(n!==r&&t.call(e,n)){let i=Nl(e);console.warn(`Reactive ${i} contains both the raw and reactive versions of the same object${i==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}var jl=new WeakMap,Qp=new WeakMap,Ul=new WeakMap,Zp=new WeakMap;function eh(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function th(e){return e.__v_skip||!Object.isExtensible(e)?0:eh(Nl(e))}function jo(e){return e&&e.__v_isReadonly?e:ql(e,!1,qp,Xp,jl)}function Hl(e){return ql(e,!0,Wp,Yp,Ul)}function ql(e,t,r,n,i){if(!Pn(e))return console.warn(`value cannot be made reactive: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=i.get(e);if(o)return o;let a=th(e);if(a===0)return e;let s=new Proxy(e,a===2?n:r);return i.set(e,s),s}function V(e){return e&&V(e.__v_raw)||e}function vo(e){return Boolean(e&&e.__v_isRef===!0)}Te("nextTick",()=>No);Te("dispatch",e=>Cr.bind(Cr,e));Te("watch",(e,{evaluateLater:t,cleanup:r})=>(n,i)=>{let o=t(n),s=$s(()=>{let l;return o(u=>l=u),l},i);r(s)});Te("store",hp);Te("data",e=>Ks(e));Te("root",e=>kn(e));Te("refs",e=>(e._x_refs_proxy||(e._x_refs_proxy=St(rh(e))),e._x_refs_proxy));function rh(e){let t=[];return Ue(e,r=>{r._x_refs&&t.push(r._x_refs)}),t}var Zi={};function Wl(e){return Zi[e]||(Zi[e]=0),++Zi[e]}function nh(e,t){return Ue(e,r=>{if(r._x_ids&&r._x_ids[t])return!0})}function ih(e,t){e._x_ids||(e._x_ids={}),e._x_ids[t]||(e._x_ids[t]=Wl(t))}Te("id",(e,{cleanup:t})=>(r,n=null)=>{let i=`${r}${n?`-${n}`:""}`;return oh(e,i,t,()=>{let o=nh(e,r),a=o?o._x_ids[r]:Wl(r);return n?`${r}-${a}-${n}`:`${r}-${a}`})});Mn((e,t)=>{e._x_id&&(t._x_id=e._x_id)});function oh(e,t,r,n){if(e._x_id||(e._x_id={}),e._x_id[t])return e._x_id[t];let i=n();return e._x_id[t]=i,r(()=>{delete e._x_id[t]}),i}Te("el",e=>e);zl("Focus","focus","focus");zl("Persist","persist","persist");function zl(e,t,r){Te(t,n=>Ie(`You can't use [$${t}] without first installing the "${e}" plugin here: https://alpinejs.dev/plugins/${r}`,n))}ee("modelable",(e,{expression:t},{effect:r,evaluateLater:n,cleanup:i})=>{let o=n(t),a=()=>{let c;return o(f=>c=f),c},s=n(`${t} = __placeholder`),l=c=>s(()=>{},{scope:{__placeholder:c}}),u=a();l(u),queueMicrotask(()=>{if(!e._x_model)return;e._x_removeModelListeners.default();let c=e._x_model.get,f=e._x_model.setWithModifiers,d=Al({get(){return c()},set(p){f(p)}},{get(){return a()},set(p){l(p)}});i(d)})});ee("teleport",(e,{modifiers:t,expression:r},{cleanup:n})=>{e.tagName.toLowerCase()!=="template"&&Ie("x-teleport can only be used on a <template> tag",e);let i=Is(r),o=e.content.cloneNode(!0).firstElementChild;e._x_teleport=o,o._x_teleportBack=e,e.setAttribute("data-teleport-template",!0),o.setAttribute("data-teleport-target",!0),e._x_forwardEvents&&e._x_forwardEvents.forEach(s=>{o.addEventListener(s,l=>{l.stopPropagation(),e.dispatchEvent(new l.constructor(l.type,l))})}),Nr(o,{},e);let a=(s,l,u)=>{u.includes("prepend")?l.parentNode.insertBefore(s,l):u.includes("append")?l.parentNode.insertBefore(s,l.nextSibling):l.appendChild(s)};Q(()=>{at(()=>{a(o,i,t),He(o)})()}),e._x_teleportPutBack=()=>{let s=Is(r);Q(()=>{a(e._x_teleport,s,t)})},n(()=>Q(()=>{o.remove(),Gt(o)}))});var ah=document.createElement("div");function Is(e){let t=at(()=>document.querySelector(e),()=>ah)();return t||Ie(`Cannot find x-teleport element for selector: "${e}"`),t}var Kl=()=>{};Kl.inline=(e,{modifiers:t},{cleanup:r})=>{t.includes("self")?e._x_ignoreSelf=!0:e._x_ignore=!0,r(()=>{t.includes("self")?delete e._x_ignoreSelf:delete e._x_ignore})};ee("ignore",Kl);ee("effect",at((e,{expression:t},{effect:r})=>{r(de(e,t))}));function qt(e,t,r,n){let i=e,o=l=>n(l),a={},s=(l,u)=>c=>u(l,c);return r.includes("dot")&&(t=sh(t)),r.includes("camel")&&(t=lh(t)),r.includes("capture")&&(a.capture=!0),r.includes("window")&&(i=window),r.includes("document")&&(i=document),r.includes("passive")&&(a.passive=r[r.indexOf("passive")+1]!=="false"),o=Vl(r,o),r.includes("prevent")&&(o=s(o,(l,u)=>{u.preventDefault(),l(u)})),r.includes("stop")&&(o=s(o,(l,u)=>{u.stopPropagation(),l(u)})),r.includes("once")&&(o=s(o,(l,u)=>{l(u),i.removeEventListener(t,o,a)})),(r.includes("away")||r.includes("outside"))&&(i=document,o=s(o,(l,u)=>{e.contains(u.target)||u.target.isConnected!==!1&&(e.offsetWidth<1&&e.offsetHeight<1||e._x_isShown!==!1&&l(u))})),r.includes("self")&&(o=s(o,(l,u)=>{u.target===e&&l(u)})),t==="submit"&&(o=s(o,(l,u)=>{u.target._x_pendingModelUpdates&&u.target._x_pendingModelUpdates.forEach(c=>c()),l(u)})),(ch(t)||Jl(t))&&(o=s(o,(l,u)=>{fh(u,r)||l(u)})),i.addEventListener(t,o,a),()=>{i.removeEventListener(t,o,a)}}function Vl(e,t){if(e.includes("debounce")){let r=e[e.indexOf("debounce")+1]||"invalid-wait",n=On(r.split("ms")[0])?Number(r.split("ms")[0]):250;t=El(t,n)}if(e.includes("throttle")){let r=e[e.indexOf("throttle")+1]||"invalid-wait",n=On(r.split("ms")[0])?Number(r.split("ms")[0]):250;t=Sl(t,n)}return t}function sh(e){return e.replace(/-/g,".")}function lh(e){return e.toLowerCase().replace(/-(\w)/g,(t,r)=>r.toUpperCase())}function On(e){return!Array.isArray(e)&&!isNaN(e)}function uh(e){return[" ","_"].includes(e)?e:e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]/,"-").toLowerCase()}function ch(e){return["keydown","keyup"].includes(e)}function Jl(e){return["contextmenu","click","mouse"].some(t=>e.includes(t))}function fh(e,t){let r=t.filter(o=>!["window","document","prevent","stop","once","capture","self","away","outside","passive","preserve-scroll","blur","change","lazy"].includes(o));if(r.includes("debounce")){let o=r.indexOf("debounce");r.splice(o,On((r[o+1]||"invalid-wait").split("ms")[0])?2:1)}if(r.includes("throttle")){let o=r.indexOf("throttle");r.splice(o,On((r[o+1]||"invalid-wait").split("ms")[0])?2:1)}if(r.length===0||r.length===1&&Ds(e.key).includes(r[0]))return!1;let i=["ctrl","shift","alt","meta","cmd","super"].filter(o=>r.includes(o));return r=r.filter(o=>!i.includes(o)),!(i.length>0&&i.filter(a=>((a==="cmd"||a==="super")&&(a="meta"),e[`${a}Key`])).length===i.length&&(Jl(e.type)||Ds(e.key).includes(r[0])))}function Ds(e){if(!e)return[];e=uh(e);let t={ctrl:"control",slash:"/",space:" ",spacebar:" ",cmd:"meta",esc:"escape",up:"arrow-up",down:"arrow-down",left:"arrow-left",right:"arrow-right",period:".",comma:",",equal:"=",minus:"-",underscore:"_"};return t[e]=e,Object.keys(t).map(r=>{if(t[r]===e)return r}).filter(r=>r)}ee("model",(e,{modifiers:t,expression:r},{effect:n,cleanup:i})=>{let o=e;t.includes("parent")&&(o=Ue(e,h=>h!==e));let a=de(o,r),s;typeof r=="string"?s=de(o,`${r} = __placeholder`):typeof r=="function"&&typeof r()=="string"?s=de(o,`${r()} = __placeholder`):s=()=>{};let l=()=>{let h;return a(v=>h=v),Fs(h)?h.get():h},u=h=>{let v;a(y=>v=y),Fs(v)?v.set(h):s(()=>{},{scope:{__placeholder:h}})};typeof r=="string"&&e.type==="radio"&&Q(()=>{e.hasAttribute("name")||e.setAttribute("name",r)});let c=t.includes("change")||t.includes("lazy"),f=t.includes("blur"),d=t.includes("enter"),p=c||f||d,m;if(it)m=()=>{};else if(p){let h=[],v=y=>u(xn(e,t,y,l()));if(c&&h.push(qt(e,"change",t,v)),f&&(h.push(qt(e,"blur",t,v)),e.form)){let y=e.form,w=()=>v({target:e});y._x_pendingModelUpdates||(y._x_pendingModelUpdates=[]),y._x_pendingModelUpdates.push(w),i(()=>{y._x_pendingModelUpdates&&y._x_pendingModelUpdates.splice(y._x_pendingModelUpdates.indexOf(w),1)})}d&&h.push(qt(e,"keydown",t,y=>{y.key==="Enter"&&v(y)})),m=()=>h.forEach(y=>y())}else{let h=e.tagName.toLowerCase()==="select"||["checkbox","radio"].includes(e.type)?"change":"input";m=qt(e,h,t,v=>{u(xn(e,t,v,l()))})}if(t.includes("fill")&&([void 0,null,""].includes(l())||Cn(e)&&Array.isArray(l())||e.tagName.toLowerCase()==="select"&&e.multiple)&&u(xn(e,t,{target:e},l())),e._x_removeModelListeners||(e._x_removeModelListeners={}),e._x_removeModelListeners.default=m,i(()=>e._x_removeModelListeners.default()),e.form){let h=qt(e.form,"reset",[],v=>{No(()=>e._x_model&&e._x_model.set(xn(e,t,{target:e},l())))});i(()=>h())}e._x_model={get(){return l()},set(h){u(h)},setWithModifiers:Vl(t,u)},e._x_forceModelUpdate=h=>{h===void 0&&typeof r=="string"&&r.match(/\./)&&(h=""),Q(()=>{Cn(e)?Array.isArray(h)?e.checked=h.some(v=>v==e.value):e.checked=!!h:Io(e)?typeof h=="boolean"?e.checked=En(e.value)===h:e.checked=e.value==h:yl(e,"value",h)})},n(()=>{let h=l();t.includes("unintrusive")&&document.activeElement.isSameNode(e)||e._x_forceModelUpdate(h)})});function xn(e,t,r,n){return Q(()=>{if(r instanceof CustomEvent&&r.detail!==void 0)return r.detail!==null&&r.detail!==void 0?r.detail:r.target.value;if(Cn(e))if(Array.isArray(n)){let i=null;return t.includes("number")?i=eo(r.target.value):t.includes("boolean")?i=En(r.target.value):i=r.target.value,r.target.checked?n.includes(i)?n:n.concat([i]):n.filter(o=>!dh(o,i))}else return r.target.checked;else{if(e.tagName.toLowerCase()==="select"&&e.multiple)return t.includes("number")?Array.from(r.target.selectedOptions).map(i=>{let o=i.value||i.text;return eo(o)}):t.includes("boolean")?Array.from(r.target.selectedOptions).map(i=>{let o=i.value||i.text;return En(o)}):Array.from(r.target.selectedOptions).map(i=>i.value||i.text);{let i;return Io(e)?r.target.checked?i=r.target.value:i=n:i=r.target.value,t.includes("number")?eo(i):t.includes("boolean")?En(i):t.includes("trim")?i.trim():i}}})}function eo(e){let t=e?parseFloat(e):null;return ph(t)?t:e}function dh(e,t){return e==t}function ph(e){return!Array.isArray(e)&&!isNaN(e)}function Fs(e){return e!==null&&typeof e=="object"&&typeof e.get=="function"&&typeof e.set=="function"}ee("cloak",e=>queueMicrotask(()=>Q(()=>e.removeAttribute(Jt("cloak")))));pl(()=>`[${Jt("init")}]`);ee("init",at((e,{expression:t},{evaluate:r})=>typeof t=="string"?!!t.trim()&&r(t,{},!1):r(t,{},!1)));ee("text",(e,{expression:t},{effect:r,evaluateLater:n})=>{let i=n(t);r(()=>{i(o=>{Q(()=>{e.textContent=o})})})});ee("html",(e,{expression:t},{effect:r,evaluateLater:n})=>{let i=n(t);r(()=>{i(o=>{Q(()=>{e.innerHTML=o??"",e._x_ignoreSelf=!0,He(e),delete e._x_ignoreSelf})})})});ko(nl(":",il(Jt("bind:"))));var Gl=(e,{value:t,modifiers:r,expression:n,original:i},{effect:o,cleanup:a})=>{if(!t){let l={};gp(l),de(e,n)(c=>{Ol(e,c,i)},{scope:l});return}if(t==="key")return hh(e,n);if(e._x_inlineBindings&&e._x_inlineBindings[t]&&e._x_inlineBindings[t].extract)return;let s=de(e,n);o(()=>s(l=>{l===void 0&&typeof n=="string"&&n.match(/\./)&&(l=""),Q(()=>yl(e,t,l,r))})),a(()=>{e._x_undoAddedClasses&&e._x_undoAddedClasses(),e._x_undoAddedStyles&&e._x_undoAddedStyles()})};Gl.inline=(e,{value:t,modifiers:r,expression:n})=>{!t||(e._x_inlineBindings||(e._x_inlineBindings={}),e._x_inlineBindings[t]={expression:n,extract:!1})};ee("bind",Gl);function hh(e,t){e._x_keyExpression=t}dl(()=>`[${Jt("data")}]`);ee("data",(e,{expression:t},{cleanup:r})=>{if(mh(e))return;t=t===""?"{}":t;let n={};kr(n,e);let i={};bp(i,n);let o=wt(e,t,{scope:i});(o===void 0||o===!0)&&(o={}),kr(o,e);let a=Kt(o);Ao(a);let s=Nr(e,a);a.init&&wt(e,a.init),r(()=>{a.destroy&&wt(e,a.destroy),s()})});Mn((e,t)=>{e._x_dataStack&&(t._x_dataStack=e._x_dataStack,t.setAttribute("data-has-alpine-state",!0))});function mh(e){return it?ho?!0:e.hasAttribute("data-has-alpine-state"):!1}ee("show",(e,{modifiers:t,expression:r},{effect:n})=>{let i=de(e,r);e._x_doHide||(e._x_doHide=()=>{Q(()=>{e.style.setProperty("display","none",t.includes("important")?"important":void 0)})}),e._x_doShow||(e._x_doShow=()=>{Q(()=>{e.style.length===1&&e.style.display==="none"?e.removeAttribute("style"):e.style.removeProperty("display")})});let o=()=>{e._x_doHide(),e._x_isShown=!1},a=()=>{e._x_doShow(),e._x_isShown=!0},s=()=>setTimeout(a),l=fo(f=>f?a():o(),f=>{typeof e._x_toggleAndCascadeWithTransitions=="function"?e._x_toggleAndCascadeWithTransitions(e,f,a,o):f?s():o()}),u,c=!0;n(()=>i(f=>{!c&&f===u||(t.includes("immediate")&&(f?s():o()),l(f),u=f,c=!1)}))});ee("for",(e,{expression:t},{effect:r,cleanup:n})=>{let i=bh(t),o=de(e,i.items),a=de(e,e._x_keyExpression||"index");e._x_lookup=new Map,r(()=>vh(e,i,o,a)),n(()=>{e._x_lookup.forEach(s=>Q(()=>{Gt(s),s.remove()})),delete e._x_lookup})});function gh(e){return t=>{Object.entries(t).forEach(([r,n])=>{e[r]=n})}}function vh(e,t,r,n){r(i=>{wh(i)&&(i=Array.from({length:i},(u,c)=>c+1)),i==null&&(i=[]),i instanceof Set&&(i=Array.from(i)),i instanceof Map&&(i=Array.from(i));let o=e._x_lookup,a=new Map;e._x_lookup=a;let s=_h(i),l=Object.entries(i).map(([u,c])=>{s||(u=parseInt(u));let f=yh(t,c,u,i),d;return n(p=>{typeof p=="object"&&Ie("x-for key cannot be an object, it must be a string or an integer",e),o.has(p)&&(a.set(p,o.get(p)),o.delete(p)),d=p},{scope:{index:u,...f}}),[d,f]});Q(()=>{o.forEach(f=>{Gt(f),f.remove()});let u=new Set,c=e;l.forEach(([f,d])=>{if(a.has(f)){let h=a.get(f);h._x_refreshXForScope(d),c.nextElementSibling!==h&&(c.nextElementSibling&&h.replaceWith(c.nextElementSibling),c.after(h)),c=h,h._x_currentIfEl&&(h.nextElementSibling!==h._x_currentIfEl&&c.after(h._x_currentIfEl),c=h._x_currentIfEl);return}e.content.children.length>1&&Ie("x-for templates require a single root element, additional elements will be ignored.",e);let p=document.importNode(e.content,!0).firstElementChild,m=Kt(d);Nr(p,m,e),p._x_refreshXForScope=gh(m),a.set(f,p),u.add(p),c.after(p),c=p}),at(()=>u.forEach(f=>He(f)))()})})}function bh(e){let t=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,r=/^\s*\(|\)\s*$/g,n=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,i=e.match(n);if(!i)return;let o={};o.items=i[2].trim();let a=i[1].replace(r,"").trim(),s=a.match(t);return s?(o.item=a.replace(t,"").trim(),o.index=s[1].trim(),s[2]&&(o.collection=s[2].trim())):o.item=a,o}function yh(e,t,r,n){let i={};return/^\[.*\]$/.test(e.item)&&Array.isArray(t)?e.item.replace("[","").replace("]","").split(",").map(a=>a.trim()).forEach((a,s)=>{i[a]=t[s]}):/^\{.*\}$/.test(e.item)&&!Array.isArray(t)&&typeof t=="object"?e.item.replace("{","").replace("}","").split(",").map(a=>a.trim()).forEach(a=>{i[a]=t[a]}):i[e.item]=t,e.index&&(i[e.index]=r),e.collection&&(i[e.collection]=n),i}function wh(e){return typeof e!="object"&&!isNaN(e)}function _h(e){return typeof e=="object"&&!Array.isArray(e)}function Xl(){}Xl.inline=(e,{expression:t},{cleanup:r})=>{let n=kn(e);!n||(n._x_refs||(n._x_refs={}),n._x_refs[t]=e,r(()=>delete n._x_refs[t]))};ee("ref",Xl);ee("if",(e,{expression:t},{effect:r,cleanup:n})=>{e.tagName.toLowerCase()!=="template"&&Ie("x-if can only be used on a <template> tag",e);let i=de(e,t),o=()=>{if(e._x_currentIfEl)return e._x_currentIfEl;let s=e.content.cloneNode(!0).firstElementChild;return Nr(s,{},e),Q(()=>{e.after(s),at(()=>He(s))()}),e._x_currentIfEl=s,e._x_undoIf=()=>{Q(()=>{Gt(s),s.remove()}),delete e._x_currentIfEl},s},a=()=>{!e._x_undoIf||(e._x_undoIf(),delete e._x_undoIf)};r(()=>i(s=>{s?o():a()})),n(()=>e._x_undoIf&&e._x_undoIf())});ee("id",(e,{expression:t},{evaluate:r})=>{r(t).forEach(i=>ih(e,i))});Mn((e,t)=>{e._x_ids&&(t._x_ids=e._x_ids)});ko(nl("@",il(Jt("on:"))));ee("on",at((e,{value:t,modifiers:r,expression:n},{cleanup:i})=>{let o=n?de(e,n):()=>{};e.tagName.toLowerCase()==="template"&&(e._x_forwardEvents||(e._x_forwardEvents=[]),e._x_forwardEvents.includes(t)||e._x_forwardEvents.push(t));let a=qt(e,t,r,s=>{o(()=>{},{scope:{$event:s},params:[s]})});i(()=>a())}));Fn("Collapse","collapse","collapse");Fn("Intersect","intersect","intersect");Fn("Focus","trap","focus");Fn("Mask","mask","mask");function Fn(e,t,r){ee(t,n=>Ie(`You can't use [x-${t}] without first installing the "${e}" plugin here: https://alpinejs.dev/plugins/${r}`,n))}Xt.setEvaluator(Sd);Xt.setRawEvaluator(Td);Xt.setReactivityEngine({reactive:jo,effect:kp,release:Tp,raw:V});var xh=Xt,_=xh;function Uo(e,t){return t||(t=()=>{}),(r,n=!1)=>{let i=n,o=r,a=e.$wire,s=a.get(o);return _.interceptor((u,c,f,d,p)=>{if(typeof s>"u"){console.error(`Livewire Entangle Error: Livewire property ['${o}'] cannot be found on component: ['${e.name}']`);return}let m=_.entangle({get(){return a.get(r)},set(h){a.set(r,h,i)}},{get(){return c()},set(h){f(h)}});return t(()=>m()),Eh(a.get(r))},u=>{Object.defineProperty(u,"live",{get(){return i=!0,u}})})(s)}}function Eh(e){return typeof e=="object"?JSON.parse(JSON.stringify(e)):e}var Ot=[];function R(e,t){return Ot[e]||(Ot[e]=[]),Ot[e].push(t),()=>{Ot[e]=Ot[e].filter(r=>r!==t)}}function z(e,...t){let r=Ot[e]||[],n=[];for(let i=0;i<r.length;i++){let o=r[i](...t);Ki(o)&&n.push(o)}return i=>Yl(n,i)}async function Rn(e,...t){let r=Ot[e]||[],n=[];for(let i=0;i<r.length;i++){let o=await r[i](...t);Ki(o)&&n.push(o)}return i=>Yl(n,i)}function Yl(e,t){let r=t;for(let n=0;n<e.length;n++){let i=e[n](r);i!==void 0&&(r=i)}return r}function Ql(e){Ln(({message:t,compileRequest:r})=>{!t.component.isIsolated||r([t])}),Ln(({message:t,compileRequest:r})=>{t.component.isLazy&&!t.component.hasBeenLazyLoaded&&t.component.isLazyIsolated&&r([t])}),Ln(({message:t,compileRequest:r})=>{let n=t.component,i=[];n.getDeepChildrenWithBindings(o=>{let a=Ho(o,"$commit"),s=qo(a);i.push(s)}),i.length>0&&r([t,...i])}),kt(({action:t})=>{t?.origin?.directive?.modifiers.includes("renderless")&&(t.metadata.renderless=!0);let n=e.activeMessageMatchingScope(t);if(n){if(n.isAsync()||t.isAsync())return;if(t.metadata.type==="poll")return t.cancel();if(Array.from(n.actions).every(i=>i.metadata.type==="poll"))return n.cancel();if(Array.from(n.actions).every(i=>i.metadata.type==="model.live")&&t.metadata.type==="model.live")return;t.defer(),n.addInterceptor(({onFinish:i})=>{i(()=>t.fire())})}})}var Pr=class{messages=new Set;controller=new AbortController;interceptors=[];cancelled=!1;uri=null;payload=null;options=null;addMessage(t){t.setRequest(this),this.messages.add(t)}getActiveMessages(){return new Set([...this.messages].filter(t=>!t.isCancelled()))}initInterceptors(t){this.interceptors=t.getRequestInterceptors(this),this.messages.forEach(r=>{let n=t.getMessageInterceptors(r);r.setInterceptors(n)}),this.interceptors.forEach(r=>r.init()),this.messages.forEach(r=>{r.getInterceptors().forEach(n=>n.init())})}cancel(){this.cancelled||(this.cancelled=!0,this.controller.abort(),this.messages.forEach(t=>{t.isCancelled()||t.cancel()}))}hasAllCancelledMessages(){return this.getActiveMessages().size===0}isCancelled(){return this.cancelled}invokeOnSend({responsePromise:t}){this.interceptors.forEach(r=>r.onSend({responsePromise:t})),this.messages.forEach(r=>r.invokeOnSend())}invokeOnCancel(){this.interceptors.forEach(t=>t.onCancel())}invokeOnFailure({error:t}){this.interceptors.forEach(r=>r.onFailure({error:t})),this.messages.forEach(r=>r.invokeOnFailure(t))}invokeOnResponse({response:t}){this.interceptors.forEach(r=>r.onResponse({response:t}))}invokeOnStream({response:t}){this.interceptors.forEach(r=>r.onStream({response:t}))}invokeOnParsed({response:t,body:r}){this.interceptors.forEach(n=>n.onParsed({response:t,body:r}))}invokeOnRedirect({url:t,preventDefault:r}){this.interceptors.forEach(n=>n.onRedirect({url:t,preventDefault:r}))}invokeOnDump({html:t,preventDefault:r}){this.interceptors.forEach(n=>n.onDump({html:t,preventDefault:r}))}invokeOnError({response:t,body:r,preventDefault:n}){this.interceptors.forEach(i=>i.onError({response:t,body:r,preventDefault:n})),this.messages.forEach(i=>i.invokeOnError({response:t,body:r,preventDefault:n}))}invokeOnSuccess({response:t,body:r,json:n}){this.interceptors.forEach(i=>i.onSuccess({response:t,body:r,json:n}))}invokeOnFinish(){this.interceptors.forEach(t=>t.onFinish())}},$n=class{controller=new AbortController;constructor(t){this.uri=t}cancel(){this.controller.abort()}isCancelled(){return this.controller.signal.aborted}};var Ir=class{onSend=()=>{};onCancel=()=>{};onFailure=()=>{};onError=()=>{};onStream=()=>{};onSuccess=()=>{};onSkipped=()=>{};onFinish=()=>{};onSync=()=>{};onEffect=()=>{};onMorph=async()=>{};onRender=()=>{};constructor(t,r){this.message=t,this.callback=r,this.callback({message:this.message,cancel:()=>{this.message.getInterceptors().includes(this)||this.onCancel(),this.message.cancel()},onSend:n=>this.onSend=n,onCancel:n=>this.onCancel=n,onFailure:n=>this.onFailure=n,onError:n=>this.onError=n,onStream:n=>this.onStream=n,onSuccess:n=>this.onSuccess=n,onSkipped:n=>this.onSkipped=n,onFinish:n=>this.onFinish=n})}init(){}},Wo=class{onSend=()=>{};onCancel=()=>{};onFailure=()=>{};onResponse=()=>{};onParsed=()=>{};onError=()=>{};onStream=()=>{};onRedirect=()=>{};onDump=()=>{};onSuccess=()=>{};onFinish=()=>{};constructor(t,r){this.request=t,this.callback=r,this.callback({request:this.request,onSend:n=>this.onSend=n,onCancel:n=>this.onCancel=n,onFailure:n=>this.onFailure=n,onResponse:n=>this.onResponse=n,onParsed:n=>this.onParsed=n,onError:n=>this.onError=n,onStream:n=>this.onStream=n,onRedirect:n=>this.onRedirect=n,onDump:n=>this.onDump=n,onSuccess:n=>this.onSuccess=n,onFinish:n=>this.onFinish=n})}init(){}},Bn=class{messageInterceptorCallbacks=[];messageInterceptorCallbacksByComponent=new tt;requestInterceptorCallbacks=[];addInterceptor(t,r){return this.messageInterceptorCallbacksByComponent.add(t,r),()=>{this.messageInterceptorCallbacksByComponent.delete(t,r)}}addMessageInterceptor(t){return this.messageInterceptorCallbacks.push(t),()=>{this.messageInterceptorCallbacks.splice(this.messageInterceptorCallbacks.indexOf(t),1)}}addRequestInterceptor(t){return this.requestInterceptorCallbacks.push(t),()=>{this.requestInterceptorCallbacks.splice(this.requestInterceptorCallbacks.indexOf(t),1)}}getMessageInterceptors(t){return[...this.messageInterceptorCallbacksByComponent.get(t.component),...this.messageInterceptorCallbacks].map(n=>new Ir(t,n))}getRequestInterceptors(t){return this.requestInterceptorCallbacks.map(r=>new Wo(t,r))}};function zo(e){let t=document.createElement("html");t.innerHTML=e,t.querySelectorAll("a").forEach(i=>i.setAttribute("target","_top"));let r=document.getElementById("livewire-error");typeof r<"u"&&r!=null?r.innerHTML="":(r=document.createElement("dialog"),r.id="livewire-error",r.style.margin="50px",r.style.width="calc(100% - 100px)",r.style.height="calc(100% - 100px)",r.style.borderRadius="5px",r.style.padding="0px");let n=document.createElement("iframe");n.style.backgroundColor="#17161A",n.style.borderRadius="5px",n.style.width="100%",n.style.height="100%",r.appendChild(n),document.body.prepend(r),document.body.style.overflow="hidden",n.contentWindow.document.open(),n.contentWindow.document.write(t.outerHTML),n.contentWindow.document.close(),r.addEventListener("click",()=>Sh(r)),r.addEventListener("close",()=>Ah(r)),r.showModal(),r.focus(),r.blur()}function Sh(e){e.close()}function Ah(e){e.outerHTML="",document.body.style.overflow="visible"}var Yt=new WeakMap,jn=new WeakMap;function Zl(e){let t=e.component;if(Array.from(e.actions).every(n=>n.metadata.island)){let n=Array.from(e.actions).map(o=>o.metadata.island.name).sort().join("|"),i=jn.get(t);return i||(i={[n]:Symbol()},jn.set(t,i)),i[n]||(i[n]=Symbol()),i[n]}return Yt.has(t)||Yt.set(t,Symbol()),Yt.get(t)}function Ko(e){let t=e.component;if(!!e.metadata.island){let n=e.metadata.island.name,i=jn.get(t);return i||(i={[n]:Symbol()},jn.set(t,i)),i[n]||(i[n]=Symbol()),i[n]}return Yt.has(t)||Yt.set(t,Symbol()),Yt.get(t)}var Un=class{pendingMessages=new Set;activeMessages=new Set;bufferingMessages=new Set;constructor(){}messageBuffer(t,r){this.bufferingMessages.has(t)||(this.bufferingMessages.add(t),setTimeout(()=>{r(),this.bufferingMessages.delete(t)},5))}addPendingMessage(t){this.pendingMessages.add(t)}clearPendingMessages(){this.pendingMessages.clear()}getPendingMessages(){return Array.from(this.pendingMessages)}addActiveMessage(t){this.activeMessages.add(t)}removeActiveMessage(t){this.activeMessages.delete(t)}findScopedPendingMessage(t){if(t.isAsync())return null;let r=Ko(t);return Array.from(this.pendingMessages).find(n=>n.component!==t.component?!1:Array.from(n.actions).some(i=>Ko(i)===r))}activeMessageMatchingScope(t){return Array.from(this.activeMessages).find(r=>this.matchesScope(r,t))}matchesScope(t,r){return t.scope===Ko(r)}allScopedMessages(t){return[...Array.from(this.activeMessages),...Array.from(this.pendingMessages)].filter(r=>this.matchesScope(r,t))}eachPendingMessage(t){Array.from(this.pendingMessages).forEach(t)}};var Dr=class{actions=new Set;snapshot=null;updates=null;calls=null;payload=null;responsePayload=null;pendingReturns=[];pendingReturnsMeta={};interceptors=[];cancelled=!1;skipped=!1;request=null;_scope=null;get scope(){if(!this._scope)throw new Error("Message scope has not been set yet");return this._scope}set scope(t){this._scope=t}constructor(t){this.component=t}addAction(t){let r=new Map;if(Array.from(this.actions).forEach(n=>{r.set(n.fingerprint,n)}),r.has(t.fingerprint)){r.get(t.fingerprint).addSquashedAction(t);return}t.message=this,this.actions.add(t)}removeAction(t){this.actions.delete(t),t.message=null,this.actions.size===0&&this.cancel()}getActions(){return Array.from(this.actions)}hasActionForIsland(t){return this.getActions().some(r=>r.metadata.island?.name===t.metadata.name)}hasActionForComponent(){return this.getActions().some(t=>t.metadata.island===void 0)}setInterceptors(t){this.interceptors=t}addInterceptor(t){let r=new Ir(this,t);this.interceptors.push(r),r.init()}setRequest(t){this.request=t}getInterceptors(){return this.interceptors}cancel(){this.cancelled||(this.cancelled=!0,this.invokeOnCancel(),this.request?.hasAllCancelledMessages()&&this.request.cancel())}isCancelled(){return this.cancelled}markSkipped(){this.skipped=!0}isSkipped(){return this.skipped}isAsync(){return Array.from(this.actions).every(t=>t.isAsync())}invokeOnSend(){this.interceptors.forEach(t=>t.onSend({payload:this.payload})),Array.from(this.actions).forEach((t,r)=>{let n=this.calls[r];t.invokeOnSend({call:n})})}invokeOnCancel(){this.interceptors.forEach(t=>t.onCancel()),this.rejectActionPromises({status:null,body:null,json:null,errors:null}),Array.from(this.actions).forEach(t=>t.invokeOnFinish()),this.invokeOnFinish()}invokeOnFailure(t){this.interceptors.forEach(r=>r.onFailure({error:t})),Array.from(this.actions).forEach(r=>r.invokeOnFailure({error:t})),this.rejectActionPromises({status:null,body:null,json:null,errors:null}),Array.from(this.actions).forEach(r=>r.invokeOnFinish()),this.invokeOnFinish()}invokeOnError({response:t,body:r,preventDefault:n}){this.interceptors.forEach(o=>o.onError({response:t,body:r,preventDefault:n})),Array.from(this.actions).forEach(o=>o.invokeOnError({response:t,body:r,preventDefault:n}));let i=null;try{i=JSON.parse(r)}catch{}this.rejectActionPromises({status:t.status,body:r,json:i,errors:null}),Array.from(this.actions).forEach(o=>o.invokeOnFinish()),this.invokeOnFinish()}invokeOnStream({json:t}){this.interceptors.forEach(r=>r.onStream({json:t}))}invokeOnSuccess(){this.interceptors.forEach(t=>{t.onSuccess({payload:this.responsePayload,onSync:r=>t.onSync=r,onEffect:r=>t.onEffect=r,onMorph:r=>t.onMorph=r,onRender:r=>t.onRender=r})}),this.pendingReturns=this.responsePayload.effects.returns||[],this.pendingReturnsMeta=this.responsePayload.effects.returnsMeta||{}}invokeOnSync(){this.interceptors.forEach(t=>t.onSync())}invokeOnEffect(){this.interceptors.forEach(t=>t.onEffect())}async invokeOnMorph(){await Promise.all(this.interceptors.map(t=>t.onMorph()))}invokeOnRender(){this.interceptors.forEach(t=>t.onRender())}invokeOnFinish(){this.interceptors.forEach(t=>t.onFinish())}invokeOnSkipped(){this.interceptors.forEach(t=>t.onSkipped()),Array.from(this.actions).forEach(t=>t.invokeOnFinish())}rejectActionPromises({status:t,body:r,json:n,errors:i}){Array.from(this.actions).forEach(o=>{o.rejectPromise({status:t,body:r,json:n,errors:i})})}resolveActionPromises(t,r){let n=new Set;t.forEach((i,o)=>{let a=Array.from(this.actions)[o];if(!a)return;let s=r[o];if(s?.errors){a.rejectPromise({status:422,body:null,json:null,errors:s.errors}),a.invokeOnFinish(),n.add(a);return}if(s?.status){a.rejectPromise({status:s.status,body:null,json:null,errors:null}),a.invokeOnFinish(),n.add(a);return}a.invokeOnSuccess(i),a.resolvePromise(i),a.invokeOnFinish(),n.add(a)}),Array.from(this.actions).forEach(i=>{n.has(i)||(i.invokeOnSuccess(void 0),i.resolvePromise(),i.invokeOnFinish())})}};var Fr=class{squashedActions=new Set;onSendCallbacks=[];onCancelCallbacks=[];onSuccessCallbacks=[];onErrorCallbacks=[];onFailureCallbacks=[];onFinishCallbacks=[];message=null;cancelled=!1;deferred=!1;_fire=null;constructor(t,r,n=[],i={},o=null){this.component=t,this.name=r,this.params=n,this.metadata=i,this.origin=o,this.promise=new Promise((a,s)=>{this.promiseResolution={resolve:a,reject:s}}),this.promise._livewireAction=this}cancel(){this.cancelled||(this.cancelled=!0,this.invokeOnCancel(),this.invokeOnFinish(),this.rejectPromise({status:null,body:null,json:null,errors:null}),this.squashedActions.forEach(t=>t.cancel()),this.message&&this.message.removeAction(this))}isCancelled(){return this.cancelled}defer(){this.deferred=!0}isDeferred(){return this.deferred}fire(){this._fire&&this._fire(this)}get fingerprint(){let t=this.component.id,r=this.name,n=JSON.stringify(this.params),i=JSON.stringify(this.metadata),o=new TextEncoder().encode(t+r+n+i),a="",s=8192;for(let l=0;l<o.length;l+=s)a+=String.fromCharCode(...o.subarray(l,l+s));return window.btoa(a)}isAsync(){let r=(this.component.snapshot.memo?.async||[]).includes(this.name),n=this.origin?.directive?.modifiers.includes("async")||!!this.metadata.async;return r||n}isJson(){return(this.component.snapshot.memo?.json||[]).includes(this.name)}addInterceptor(t){t({action:this,onSend:r=>this.onSendCallbacks.push(r),onCancel:r=>this.onCancelCallbacks.push(r),onSuccess:r=>this.onSuccessCallbacks.push(r),onError:r=>this.onErrorCallbacks.push(r),onFailure:r=>this.onFailureCallbacks.push(r),onFinish:r=>this.onFinishCallbacks.push(r)})}invokeOnSend({call:t}){this.onSendCallbacks.forEach(r=>r({call:t})),this.squashedActions.forEach(r=>r.invokeOnSend({call:t}))}invokeOnCancel(){this.onCancelCallbacks.forEach(t=>t()),this.squashedActions.forEach(t=>t.invokeOnCancel())}invokeOnSuccess(t){this.onSuccessCallbacks.forEach(r=>r(t)),this.squashedActions.forEach(r=>r.invokeOnSuccess(t))}invokeOnError({response:t,body:r,preventDefault:n}){this.onErrorCallbacks.forEach(i=>i({response:t,body:r,preventDefault:n})),this.squashedActions.forEach(i=>i.invokeOnError({response:t,body:r,preventDefault:n}))}invokeOnFailure({error:t}){this.onFailureCallbacks.forEach(r=>r({error:t})),this.squashedActions.forEach(r=>r.invokeOnFailure({error:t}))}invokeOnFinish(){this.onFinishCallbacks.forEach(t=>t()),this.squashedActions.forEach(t=>t.invokeOnFinish())}mergeMetadata(t){this.metadata={...this.metadata,...t}}rejectPromise(t){this.squashedActions.forEach(r=>r.rejectPromise(t)),this.promiseResolution.reject(t)}addSquashedAction(t){this.squashedActions.add(t)}resolvePromise(t){this.squashedActions.forEach(r=>r.resolvePromise(t)),this.promiseResolution.resolve(t)}};function eu(e,t){e(({request:r,onFailure:n,onResponse:i,onError:o,onSuccess:a})=>{let s=[],l=[],u=[];z("request",{url:r.uri,options:r.options,payload:r.options.body,respond:c=>s.push(c),succeed:c=>l.push(c),fail:c=>u.push(c)}),i(({response:c})=>{s.forEach(f=>f({status:c.status,response:c}))}),a(({response:c,json:f})=>{l.forEach(d=>d({status:c.status,json:f}))}),n(({error:c})=>{u.forEach(f=>f({status:503,content:null,preventDefault:()=>{}}))}),o(({response:c,body:f,preventDefault:d})=>{u.forEach(p=>p({status:c.status,content:f,preventDefault:d}))})}),t(({message:r,onCancel:n,onError:i,onSuccess:o,onFinish:a})=>{let s=[],l=[],u=[];z("commit",{component:r.component,commit:r.payload,respond:c=>{s.push(c)},succeed:c=>{l.push(c)},fail:c=>{u.push(c)}}),a(()=>{s.forEach(c=>c())}),o(({payload:c,onSync:f,onMorph:d,onRender:p})=>{p(()=>{l.forEach(m=>m({snapshot:c.snapshot,effects:c.effects}))})}),i(()=>{u.forEach(c=>c())}),n(()=>{u.forEach(c=>c())})})}var Vo=null,Jo={},Go=[],Wn=new Bn,qe=new Un,Hn=[],qn=[],Xo=!1;function ru(){return Xo}function we(e){Vo=e}function Qt(e){Jo=e}function nu(e){Go.push(e)}function kt(e){return Hn.push(e),()=>{Hn.splice(Hn.indexOf(e),1)}}function ae(e){return Wn.addMessageInterceptor(e)}function zn(e){return Wn.addRequestInterceptor(e)}function Ln(e){return qn.push(e),()=>{qn.splice(qn.indexOf(e),1)}}function Yo(e,t,r){let n=typeof t=="string"?t:null,i=n?r:t;return kt(({action:o,...a})=>{o.component===e&&(n&&o.name!==n||i({action:o,...a}))})}function Qo(e,t,r){let n=typeof t=="string"?t:null,i=n?r:t;return Wn.addInterceptor(e,({message:o,...a})=>{n&&!Array.from(o.actions).some(l=>l.name===n)||i({message:o,...a})})}function iu(e,t,r){let n=typeof t=="string"?t:null,i=n?r:t;return zn(({request:o,...a})=>{Array.from(o.messages).filter(l=>l.component!==e?!1:n?Array.from(l.actions).some(u=>u.name===n):!0).length!==0&&i({request:o,...a})})}ae(({message:e,onFinish:t})=>{qe.addActiveMessage(e),t(()=>qe.removeActiveMessage(e))});queueMicrotask(()=>{Ql(qe)});function Tt(e,t,r=[],n={}){e.__isWireProxy&&(e=e.__instance);let i=Ho(e,t,r,n);return Hn.forEach(o=>{o({action:i,onSend:a=>i.onSendCallbacks.push(a),onCancel:a=>i.onCancelCallbacks.push(a),onSuccess:a=>i.onSuccessCallbacks.push(a),onError:a=>i.onErrorCallbacks.push(a),onFailure:a=>i.onFailureCallbacks.push(a),onFinish:a=>i.onFinishCallbacks.push(a)})}),i.isCancelled()||i.isDeferred()?i.promise:ou(i)}function Ho(e,t,r,n){let i=Vo,o=Go;Vo=null,Go=[],n={...n,...Jo},Jo={};let a=new Fr(e,t,r,n,i);return a._fire=ou,o.forEach(s=>a.addInterceptor(s)),a}function ou(e){let t=qo(e);return qe.messageBuffer(t,()=>{Ch()}),e.promise}function qo(e){let t=qe.findScopedPendingMessage(e);return t||(t=new Dr(e.component)),t.addAction(e),qe.addPendingMessage(t),t}function Ch(){let e=new Set;qe.eachPendingMessage(r=>{qn.forEach(n=>{n({message:r,compileRequest:i=>{let o=Array.from(e).find(s=>i.some(l=>s.messages.has(l)));if(o)return i.forEach(s=>{o.messages.has(s)||o.addMessage(s)}),o;let a=new Pr;return i.forEach(s=>a.addMessage(s)),e.add(a),a}})})});let t=qe.getPendingMessages();qe.clearPendingMessages();for(let r of t){if(Array.from(e).some(i=>i.messages.has(r)))continue;let n=!1;if(e.forEach(i=>{if(!n){if(Array.from(i.messages).some(a=>a.component===r.component))return;i.addMessage(r),n=!0}}),!n){let i=new Pr;i.addMessage(r),e.add(i)}}e.forEach(r=>{r.messages.forEach(n=>{n.snapshot=n.component.getEncodedSnapshotWithLatestChildrenMergedIn(),n.updates=n.component.getUpdates(),n.calls=Array.from(n.actions).map(i=>({method:i.name,params:i.params,metadata:i.metadata})),n.payload={snapshot:n.snapshot,updates:n.updates,calls:n.calls}})}),e.forEach(r=>{r.messages.forEach(n=>{n.scope=Zl(n)})}),e.forEach(r=>{r.uri=hs(),Object.defineProperty(r,"payload",{get(){return{_token:mn(),components:Array.from(r.messages,i=>i.payload)}}});let n=null;Object.defineProperty(r,"options",{get(){return n||(n={method:"POST",body:JSON.stringify(r.payload),headers:{"Content-type":"application/json","X-Livewire":"1"},signal:r.controller.signal},n)}})}),e.forEach(r=>{r.initInterceptors(Wn),r.hasAllCancelledMessages()&&r.cancel(),Oh(r,{send:({responsePromise:n})=>{r.invokeOnSend({responsePromise:n})},failure:({error:n})=>{r.invokeOnFailure({error:n})},finish:()=>{r.invokeOnFinish()},response:({response:n})=>{r.invokeOnResponse({response:n})},stream:async({response:n})=>{r.invokeOnStream({response:n});let i="";try{i=await kh(n,o=>{let a=o.id;r.messages.forEach(s=>{s.component.id===a&&s.invokeOnStream({json:o})}),z("stream",o)})}catch(o){throw r.cancel(),o}return i},parsed:({response:n,responseBody:i})=>{r.invokeOnParsed({response:n,body:i})},error:({response:n,responseBody:i})=>{let o=!1;if(r.invokeOnError({response:n,body:i,preventDefault:()=>o=!0}),!o){if(n.status===419){if(Xo)return;Xo=!0,confirm(`This page has expired. +Would you like to refresh the page?`)&&window.location.reload();return}n.aborted||zo(i)}},redirect:n=>{let i=!1;r.invokeOnRedirect({url:n,preventDefault:()=>i=!0}),!i&&(window.location.href=n)},dump:n=>{let i=!1;r.invokeOnDump({html:n,preventDefault:()=>i=!0}),!i&&zo(n)},success:async({response:n,responseBody:i,responseJson:o})=>{r.invokeOnSuccess({response:n,body:i,json:o}),await Rn("payload.intercept",o);let a=o.components;r.messages.forEach(s=>{a.forEach(l=>{if(s.isCancelled())return;if(l.skip){l.id===s.component.id&&(s.responsePayload=l,s.markSkipped(),s.invokeOnSkipped(),s.resolveActionPromises([],[]),s.invokeOnFinish());return}let{snapshot:u,effects:c}=l,f=JSON.parse(u);if(f.memo.id===s.component.id){if(s.responsePayload={snapshot:f,effects:c},s.invokeOnSuccess(),s.isCancelled())return;Alpine.transaction(async()=>{s.component.mergeNewSnapshot(u,c,s.updates),s.invokeOnSync(),!s.isCancelled()&&(s.component.processEffects(c,r),s.invokeOnEffect(),!s.isCancelled()&&await s.invokeOnMorph())}).then(()=>{s.isCancelled()||(s.resolveActionPromises(s.pendingReturns,s.pendingReturnsMeta),s.invokeOnFinish()),requestAnimationFrame(()=>{s.isCancelled()||s.invokeOnRender()})})}})})}})})}async function Oh(e,t){let r;try{if(e.isCancelled())return;let o=fetch(e.uri,e.options);if(e.isCancelled())return;t.send({responsePromise:o}),r=await o}catch(o){if(e.isCancelled())return;t.failure({error:o}),t.finish();return}t.response({response:r});let n=null;if(r.headers.has("X-Livewire-Stream")?n=await t.stream({response:r}):n=await r.text(),e.isCancelled())return;if(t.parsed({response:r,responseBody:n}),!r.ok){t.error({response:r,responseBody:n}),t.finish();return}if(r.redirected&&t.redirect(r.url),ms(n)){let o;[o,n]=gs(n),t.dump(o)}let i=null;try{i=JSON.parse(n)}catch(o){console.error(o),t.error({response:r,responseBody:n}),t.finish();return}t.success({response:r,responseBody:n,responseJson:i}),t.finish()}async function kh(e,t){let r=e.body.getReader(),n="";for(;;){let{done:i,value:o}=await r.read(),s=new TextDecoder().decode(o),[l,u]=Th(n+s);if(l.forEach(c=>{t(c)}),n=u,i)return n}}function Th(e){let t=/({"stream":true.*?"endStream":true})/g,r=e.match(t),n=[];if(r)for(let o=0;o<r.length;o++)n.push(JSON.parse(r[o]).body);let i=e.replace(t,"");return[n,i]}async function au(e,t,r){let n=new $n(e),i={headers:{"X-Livewire-Navigate":"1"},signal:n.controller.signal};z("navigate.request",{uri:e,options:i});let o;try{o=await fetch(e,i);let a=Mh(e,o),s=await o.text(),l=o.status;t(s,a,l)}catch(a){throw r(a),a}}function Mh(e,t){let r=tu(e),n=tu(t.url);return r.pathname+r.search===n.pathname+n.search&&(n.hash=r.hash),n}function tu(e){return e!==null&&new URL(e,document.baseURI)}eu(zn,ae);function su(e){let t=e.__errorsState??=_.reactive({clientErrors:null});return e.__lastErrorsSnapshot??=e.snapshot,{messages(){return e.__lastErrorsSnapshot!==e.snapshot&&(t.clientErrors=null,e.__lastErrorsSnapshot=e.snapshot),t.clientErrors??=e.snapshot.memo.errors},keys(){return Object.keys(this.messages())},has(...r){if(this.isEmpty())return!1;if(r.length===0||r.length===1&&r[0]==null)return this.any();r.length===1&&Array.isArray(r[0])&&(r=r[0]);for(let n of r)if(this.first(n)==="")return!1;return!0},hasAny(r){if(this.isEmpty())return!1;r.length===1&&Array.isArray(r[0])&&(r=r[0]);for(let n of r)if(this.has(n))return!0;return!1},missing(...r){return r.length===1&&Array.isArray(r[0])&&(r=r[0]),!this.hasAny(r)},first(r=null){let n=r===null?this.all():this.get(r),i=n.length>0?n[0]:"";return Array.isArray(i)?i[0]:i},get(r){return this.messages()[r]||[]},all(){return Object.values(this.messages()).flat()},isEmpty(){return!this.any()},isNotEmpty(){return this.any()},any(){return Object.keys(this.messages()).length>0},count(){return Object.values(this.messages()).reduce((r,n)=>r+n.length,0)},clear(r=null){if(r===null)t.clientErrors={};else{let n={...t.clientErrors??e.snapshot.memo.errors};delete n[r],t.clientErrors=n}}}}function Zt(e,t){let r=e.el.querySelector(`[wire\\:ref="${t}"]`);return r||console.error(`Ref "${t}" not found in component "${e.id}"`)}var Rr=new Set;function st(e){return e.match(new RegExp("wire:"))}function De(e,t){let[r,...n]=t.replace(new RegExp("wire:"),"").split(".");return new ea(r,n,t,e)}function te(e,t){Rr.has(e)||(Rr.add(e),R("directive.init",({el:r,component:n,directive:i,cleanup:o})=>{i.value===e&&t({el:r,directive:i,component:n,$wire:n.$wire,cleanup:o})}))}function Kn(e,t){Rr.has(e)||(Rr.add(e),R("directive.global.init",({el:r,directive:n,cleanup:i})=>{n.value===e&&t({el:r,directive:n,cleanup:i})}))}function er(e){return new Zo(e)}function lu(e){return Rr.has(e)}var Zo=class{constructor(t){this.el=t,this.directives=this.extractTypeModifiersAndValue()}all(){return this.directives}has(t){return this.directives.map(r=>r.value).includes(t)}missing(t){return!this.has(t)}get(t){return this.directives.find(r=>r.value===t)}extractTypeModifiersAndValue(){return Array.from(this.el.getAttributeNames().filter(t=>st(t)).map(t=>De(this.el,t)))}},ea=class{constructor(t,r,n,i){this.rawName=this.raw=n,this.el=i,this.eventContext,this.wire,this.value=t,this.modifiers=r,this.expression=this.el.getAttribute(this.rawName)}get method(){return this.parseOutMethodsAndParams(this.expression)[0].method}get methods(){return this.parseOutMethodsAndParams(this.expression)}get params(){return this.parseOutMethodsAndParams(this.expression)[0].params}parseOutMethodsAndParams(t){let r=[],n=this.splitAndParseMethods(t);for(let{method:i,paramString:o}of n){let a=[];if(o.length>0){let s=function(){for(var l=arguments.length,u=new Array(l),c=0;c<l;c++)u[c]=arguments[c];return[].concat(u)};try{a=Alpine.evaluate(document,"argumentsToArray("+o+")",{scope:{argumentsToArray:s}})}catch(l){console.warn("Failed to parse parameters:",o,l),a=[]}}r.push({method:i,params:a})}return r}splitAndParseMethods(t){let r=[],n="",i=0,o=!1,a=null,s=t.trim();for(let l=0;l<s.length;l++){let u=s[l];o?(u===a&&s[l-1]!=="\\"&&(o=!1,a=null),n+=u):u==='"'||u==="'"?(o=!0,a=u,n+=u):u==="("?(i++,n+=u):u===")"?(i--,n+=u):u===","&&i===0?(r.push(this.parseMethodCall(n.trim())),n=""):n+=u}return n.trim().length>0&&r.push(this.parseMethodCall(n.trim())),r}parseMethodCall(t){let r=t.match(/^([^(]+)\(/);if(!r)return{method:t.trim(),paramString:""};let n=r[1].trim(),i=r[0].length-1,o=t.lastIndexOf(")");if(o===-1)throw new Error(`Missing closing parenthesis for method "${n}"`);let a=t.slice(i+1,o).trim();return{method:n,paramString:a}}};function Fe(e,t,r,n=null){if(r=t.modifiers.includes("remove")?!r:r,t.modifiers.includes("class")){let i=t.expression.split(" ").filter(String);r?e.classList.add(...i):e.classList.remove(...i)}else if(t.modifiers.includes("attr"))r?e.setAttribute(t.expression,!0):e.removeAttribute(t.expression);else{let i=n??window.getComputedStyle(e,null).getPropertyValue("display"),o=["inline","list-item","block","table","flex","grid","inline-flex"].filter(a=>t.modifiers.includes(a))[0]||"inline-block";o=t.modifiers.includes("remove")&&!r?i:o,e.style.display=r?o:"none"}}var uu=new tt;R("commit",({component:e,succeed:t})=>{t(()=>{setTimeout(()=>{uu.each(e,r=>r(!1))})})});te("dirty",({el:e,directive:t,component:r})=>{let n=Nh(e),i=!1,o=e.style.display,a=s=>{Fe(e,t,s,o),i=s};uu.add(r,a),Alpine.effect(()=>{let s=!1;s=Vn(r,n.length===0?void 0:n),i!==s&&a(s),i=s})});function Vn(e,t){let r=!1;if(t===void 0)r=JSON.stringify(e.canonical)!==JSON.stringify(e.reactive);else if(Array.isArray(t))for(let n=0;n<t.length&&!r;n++){let i=t[n];r=JSON.stringify(Z(e.canonical,i))!==JSON.stringify(Z(e.reactive,i))}else r=JSON.stringify(Z(e.canonical,t))!==JSON.stringify(Z(e.reactive,t));return r}function Nh(e){let t=er(e),r=[];return t.has("model")&&r.push(t.get("model").expression),t.has("target")&&(r=r.concat(t.get("target").expression.split(",").map(n=>n.trim()))),r}var Mt=new WeakMap;R("effect",({component:e,effects:t})=>{let r=t.scriptModule;if(r){let n=e.name.replace(/\./g,"--").replace(/::/g,"---").replace(/:/g,"----"),i=`${yr()}/js/${n}.js?v=${r}`;Mt.set(e,Alpine.reactive({loading:!0,afterLoaded:[]})),import(i).then(o=>{o.run.call(e.$wire,e.$wire,e.$wire.js),Mt.get(e).loading=!1,Mt.get(e).afterLoaded.forEach(a=>a()),Mt.delete(e)})}});function ta(e){return Mt.has(e)&&Mt.get(e).loading}function cu(e,t){ta(e)?Mt.get(e).afterLoaded.push(()=>t()):t()}var na={},pu;function U(e,t,r=null){na[e]=t}function Ph(e){pu=e}var fu={on:"$on",el:"$el",id:"$id",js:"$js",get:"$get",set:"$set",refs:"$refs",call:"$call",hook:"$hook",watch:"$watch",dirty:"$dirty",effect:"$effect",commit:"$commit",errors:"$errors",island:"$island",upload:"$upload",entangle:"$entangle",dispatch:"$dispatch",intercept:"$intercept",interceptAction:"$interceptAction",interceptMessage:"$interceptMessage",interceptRequest:"$interceptRequest",dispatchTo:"$dispatchTo",dispatchSelf:"$dispatchSelf",dispatchEl:"$dispatchEl",dispatchRef:"$dispatchRef",removeUpload:"$removeUpload",cancelUpload:"$cancelUpload",uploadMultiple:"$uploadMultiple"};function hu(e,t){let r=!1;return new Proxy({},{get(n,i){if(i==="__instance")return e;if(i in fu)return du(e,fu[i]);if(i in na)return du(e,i);if(i in t)return t[i];if(i==="toJSON")return()=>e.toJSON();if(!["then"].includes(i))return Ih(e)(i)},set(n,i,o){return i in t&&(t[i]=o),!0}})}function du(e,t){return na[t](e)}function Ih(e){return pu(e)}_.magic("wire",(e,{cleanup:t})=>{let r;return new Proxy({},{get(n,i){if(!r)try{r=oe(e)}catch{return()=>{}}return["$entangle","entangle"].includes(i)?Uo(r,t):r.$wire[i]},set(n,i,o){if(!r)try{r=oe(e)}catch{return!0}return r.$wire[i]=o,!0}})});U("__instance",e=>e);U("$get",e=>(t,r=!0)=>Z(r?e.reactive:e.ephemeral,t));U("$el",e=>e.el);U("$id",e=>e.id);U("$js",e=>{let t=e.addJsAction.bind(e),r=e.getJsActions();return Object.keys(r).forEach(n=>{t[n]=r[n]}),new Proxy(t,{set(n,i,o){return e.addJsAction(i,o),!0},get(n,i){if(ta(e)){let o=null,a=new Promise(s=>{o=s});return(...s)=>(cu(e,()=>{o(e.getJsAction(i)(...s))}),a)}return n[i]}})});U("$set",e=>async(t,r,n=!0)=>(mt(e.reactive,t,r),n?(e.queueUpdate(t,r),Tt(e,"$set")):Promise.resolve()));U("$refs",e=>{let t=r=>Zt(e,r);return new Proxy(t,{get(r,n){return n in r?r[n]:t(n)}})});U("$dirty",e=>t=>{let r=_.reactive({dirty:!1});return Qo(e,({onFinish:n})=>{n(()=>{queueMicrotask(()=>{r.dirty=Vn(e,t)})})}),_.effect(()=>{r.dirty=Vn(e,t)}),r.dirty});U("$intercept",e=>(t,r)=>Yo(e,t,r));U("$interceptAction",e=>(t,r)=>Yo(e,t,r));U("$interceptMessage",e=>(t,r)=>Qo(e,t,r));U("$interceptRequest",e=>(t,r)=>iu(e,t,r));U("$errors",e=>su(e));U("$call",e=>async(t,...r)=>await e.$wire[t](...r));U("$island",e=>(t,r={})=>(Qt({island:{name:t,mode:"morph",...r}}),e.$wire));U("$entangle",e=>(t,r=!1)=>Uo(e)(t,r));U("$toggle",e=>(t,r=!0)=>e.$wire.set(t,!e.$wire.get(t),r));U("$watch",e=>(t,r)=>{let n=()=>Z(e.reactive,t),i=_.watch(n,r);return e.addCleanup(i),i});U("$effect",e=>t=>{let r=_.effect(t);return e.addCleanup(r),r});U("$refresh",e=>async()=>Tt(e,"$refresh"));U("$commit",e=>async()=>Tt(e,"$commit"));U("$on",e=>(...t)=>gu(e,...t));U("$hook",e=>(t,r)=>{let n=R(t,({component:i,...o})=>{if(i===void 0)return r(o);if(i.id===e.id)return r({component:i,...o})});return e.addCleanup(n),n});U("$dispatch",e=>(...t)=>Jn(e,...t));U("$dispatchSelf",e=>(...t)=>We(e,...t));U("$dispatchTo",()=>(...e)=>rr(...e));U("$dispatchEl",e=>(...t)=>Gn(e,...t));U("$dispatchRef",e=>(...t)=>Xn(e,...t));U("$upload",e=>(...t)=>ws(e,...t));U("$uploadMultiple",e=>(...t)=>_s(e,...t));U("$removeUpload",e=>(...t)=>xs(e,...t));U("$cancelUpload",e=>(...t)=>Es(e,...t));var ra=new WeakMap;U("$parent",e=>{if(ra.has(e))return ra.get(e).$wire;let t=oe(e.el.parentElement,!1);if(!!t)return ra.set(e,t),t.$wire});var tr=new WeakMap;function mu(e,t,r){tr.has(e)||tr.set(e,{});let n=tr.get(e);n[t]=r,tr.set(e,n)}Ph(e=>t=>(...r)=>{if(r.length===1&&r[0]instanceof Event&&(r=[]),tr.has(e)){let n=tr.get(e);if(typeof n[t]=="function")return n[t](r)}return Tt(e,t,r)});var Yn=class{constructor(t){if(t.__livewire)throw"Component already initialized";if(t.__livewire=this,this.el=t,this.id=t.getAttribute("wire:id"),this.key=t.getAttribute("wire:key"),this.__livewireId=this.id,this.snapshotEncoded=t.getAttribute("wire:snapshot"),this.snapshot=JSON.parse(this.snapshotEncoded),!this.snapshot)throw"Snapshot missing on Livewire component with id: "+this.id;this.name=this.snapshot.memo.name,this.effects=JSON.parse(t.getAttribute("wire:effects")),this.originalEffects=rt(this.effects),this.canonical=gt(rt(this.snapshot.data)),this.ephemeral=gt(rt(this.snapshot.data)),this.reactive=Alpine.reactive(this.ephemeral),this.queuedUpdates={},this.jsActions={},this.$wire=hu(this,this.reactive),t.$wire=this.$wire,this.cleanups=[],this.processEffects(this.effects)}addActionContext(t){(t.el||t.directive)&&we({el:t.el,directive:t.directive})}intercept(t,r=null){return this.$wire.$intercept(t,r)}mergeNewSnapshot(t,r,n={}){let i=JSON.parse(t),o=rt(this.canonical),a=this.applyUpdates(o,n),s=gt(rt(i.data)),l=Vi(a,s);this.snapshotEncoded=t,this.snapshot=i,this.effects=r,this.canonical=gt(rt(i.data));let u=gt(rt(i.data));return Ji(a,u,this.reactive),l}queueUpdate(t,r){this.queuedUpdates[t]=r}mergeQueuedUpdates(t){return Object.entries(this.queuedUpdates).forEach(([r,n])=>{Object.entries(t).forEach(([i,o])=>{i.startsWith(r)&&delete t[i]}),t[r]=n}),this.queuedUpdates=[],t}getUpdates(){let t=ds(this.canonical,this.ephemeral);return this.mergeQueuedUpdates(t)}applyUpdates(t,r){for(let n in r)mt(t,n,r[n]);return t}replayUpdate(t,r){let n={...this.effects,html:r};this.mergeNewSnapshot(JSON.stringify(t),n),this.processEffects({html:r})}processEffects(t,r){z("effects",this,t),z("effect",{component:this,effects:t,cleanup:n=>this.addCleanup(n),request:r})}get children(){let t=this.el,r=[];return t.querySelectorAll("[wire\\:id]").forEach(n=>{if(n.parentElement.closest("[wire\\:id]")!==t)return;let o=n.__livewire;!o||r.push(o)}),r}get islands(){return this.snapshot.memo.islands}get parent(){return oe(this.el.parentElement)}get isIsolated(){return this.snapshot.memo.isolate}get isLazy(){return this.snapshot.memo.lazyLoaded!==void 0}get hasBeenLazyLoaded(){return this.snapshot.memo.lazyLoaded===!0}get isLazyIsolated(){return!!this.snapshot.memo.lazyIsolated}getDeepChildrenWithBindings(t){this.getDeepChildren(r=>{r.isLazy&&!r.hasBeenLazyLoaded||(r.hasReactiveProps()||r.hasWireModelableBindings())&&t(r)})}hasReactiveProps(){return!!this.snapshot.memo.props}hasWireModelableBindings(){return!!this.snapshot.memo.bindings}getDeepChildren(t){this.children.forEach(r=>{t(r),r.getDeepChildren(t)})}getEncodedSnapshotWithLatestChildrenMergedIn(){let{snapshotEncoded:t,children:r,snapshot:n}=this,i={};return r.forEach(o=>{i[o.key]=[o.el.tagName.toLowerCase(),o.id]}),t.replace(/"children":\{[^}]*\}/,`"children":${JSON.stringify(i)}`)}inscribeSnapshotAndEffectsOnElement(){let t=this.el;t.setAttribute("wire:snapshot",this.snapshotEncoded);let r=this.originalEffects.listeners?{listeners:this.originalEffects.listeners}:{};this.originalEffects.url&&(r.url=this.originalEffects.url),this.originalEffects.scripts&&(r.scripts=this.originalEffects.scripts),t.setAttribute("wire:effects",JSON.stringify(r)),t.setAttribute("wire:key",this.key)}addJsAction(t,r){this.jsActions[t]=r}hasJsAction(t){return this.jsActions[t]!==void 0}getJsAction(t){return this.jsActions[t].bind(this.$wire)}getJsActions(){let t={};for(let r of Object.keys(this.jsActions))t[r]=this.getJsAction(r);return t}toJSON(){return{id:this.id,name:this.name,key:this.key,data:Object.fromEntries(Object.entries(this.ephemeral))}}addCleanup(t){this.cleanups.push(t)}cleanup(){for(delete this.el.__livewire;this.cleanups.length>0;)this.cleanups.pop()()}};function vu(e,{isMatch:t,hasReachedBoundary:r}){r||(r=()=>!1);let n=e;for(;n;){let i=n.previousSibling,o=[];for(;i;){if(nr(i)&&o.push("a"),Nt(i))if(o.length>0)o.pop();else{let a=Re(i);if(t(a))return new Qn(i)}i=i.previousSibling}if(n=n.parentElement,n&&r({el:n}))break}return null}function Zn(e,{isMatch:t,hasReachedBoundary:r}){r||(r=()=>!1);let n=null,i=e;return bu(i,(o,{skip:a,stop:s})=>{if(o.hasAttribute&&o!==i&&r({el:o}))return a();Array.from(o.childNodes).forEach(l=>{if(Nt(l)){let u=Re(l);t(u)&&(n=l,s())}})}),n&&new Qn(n)}function Nt(e){return e.nodeType===8&&e.textContent.startsWith("[if FRAGMENT")}function nr(e){return e.nodeType===8&&e.textContent.startsWith("[if ENDFRAGMENT")}function bu(e,t){let r=!1,n=!1;t(e,{skip:()=>r=!0,stop:()=>n=!0}),!(r||n)&&Array.from(e.children).forEach(i=>{bu(i,t)})}var Qn=class{constructor(t){this.startMarkerNode=t,this.metadata=Re(t)}get endMarkerNode(){return Dh(this.startMarkerNode,this.metadata)}append(t,r){let n=document.createElement(t);n.innerHTML=r,Array.from(n.childNodes).forEach(i=>{this.endMarkerNode.before(i)})}prepend(t,r){let n=document.createElement(t);n.innerHTML=r,Array.from(n.childNodes).reverse().forEach(i=>{this.startMarkerNode.after(i)})}};function Dh(e,t){let r=e;for(;r;){if(nr(r)){let n=Re(r);if(Object.keys(t).every(i=>t[i]===n[i]))return r}r=r.nextSibling}return null}function ei(e){let t=/<!--\[if FRAGMENT\b.*?\]><!\[endif\]-->([\s\S]*)<!--\[if ENDFRAGMENT\b.*?\]><!\[endif\]-->/i,r=e.match(t);if(!r)throw new Error("Invalid fragment marker");let[n,i]=r;return i}function Lr(e){let t=/\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/,r=e.match(t);if(!r)throw new Error("Invalid fragment marker");let[n,i,o]=r;return yu(o)}function Re(e){let t=/\[if (FRAGMENT|ENDFRAGMENT):(.*?)\]/,r=e.textContent.match(t);if(!r)throw new Error("Invalid fragment marker");let[n,i,o]=r;return yu(o)}function yu(e){let t={};return e.split("|").forEach(n=>{let[i,o]=n.split("=");t[i]=o}),t}var Le={};function wu(e){let t=new Yn(e);if(Le[t.id])throw"Component already registered";return z("component.init",{component:t,cleanup:n=>t.addCleanup(n)}),Le[t.id]=t,t}function _u(e){let t=Le[e];!t||(t.cleanup(),delete Le[e])}function xu(e){return!!Le[e]}function $r(e,t=!0){let r=Le[e];if(!r){if(t)throw"Component not found: "+e;return}return r}function oe(e,t=!0){let r=vs(e,(i,{stop:o})=>{if(i.__livewire)return o(i.__livewire.id);let a=[],s=bs(i,(l,{stop:u})=>{if(nr(l)){if(Re(l).type!=="slot")return;a.push("a");return}if(Nt(l)){let c=Re(l);if(c.type!=="slot")return;if(a.length>0)a.pop();else return u(c.parent)}});if(s)return o(s)}),n=$r(r,t);if(!n){if(t)throw"Could not find Livewire component in DOM tree";return}return n}function ia(e){return Object.values(Le).filter(t=>e==t.name)}function Eu(e){return ia(e).map(t=>t.$wire)}function Su(e){let t=Le[e];return t&&t.$wire}function Au(){return Object.values(Le)[0].$wire}function Cu(){return Object.values(Le)}function Jn(e,t,r){ir(e.el,t,r)}function Ou(e,t){ir(window,e,t)}function We(e,t,r){ir(e.el,t,r,!1)}function Gn(e,t,r,n){e.el.querySelectorAll(t).forEach(o=>{ir(o,r,n,!1)})}function rr(e,t,r){ia(e).forEach(i=>{ir(i.el,t,r,!1)})}function Xn(e,t,r,n){let i=Zt(e,t);ir(i,r,n,!1)}function gu(e,t,r){e.el.addEventListener(t,n=>{r(n.detail)})}function ku(e,t){let r=n=>{!n.__livewire||t(n.detail)};return window.addEventListener(e,r),()=>{window.removeEventListener(e,r)}}function ir(e,t,r,n=!0){typeof r=="string"&&(r=[r]);let i=new CustomEvent(t,{bubbles:n,detail:r});i.__livewire={name:t,params:r,receivedBy:[]},e.dispatchEvent(i)}function Fh(e){e.directive("collapse",t),t.inline=(r,{modifiers:n})=>{!n.includes("min")||(r._x_doShow=()=>{},r._x_doHide=()=>{})};function t(r,{modifiers:n}){let i=Tu(n,"duration",250)/1e3,o=Tu(n,"min",0),a=!n.includes("min");r._x_isShown||(r.style.height=`${o}px`),!r._x_isShown&&a&&(r.hidden=!0),r._x_isShown||(r.style.overflow="hidden");let s=(u,c)=>{let f=e.setStyles(u,c);return c.height?()=>{}:f},l={transitionProperty:"height",transitionDuration:`${i}s`,transitionTimingFunction:"cubic-bezier(0.4, 0.0, 0.2, 1)"};r._x_transition={in(u=()=>{},c=()=>{}){a&&(r.hidden=!1),a&&(r.style.display=null);let f=r.getBoundingClientRect().height;r.style.height="auto";let d=r.getBoundingClientRect().height;f===d&&(f=o),e.transition(r,e.setStyles,{during:l,start:{height:f+"px"},end:{height:d+"px"}},()=>r._x_isShown=!0,()=>{Math.abs(r.getBoundingClientRect().height-d)<1&&(r.style.overflow=null)})},out(u=()=>{},c=()=>{}){let f=r.getBoundingClientRect().height;e.transition(r,s,{during:l,start:{height:f+"px"},end:{height:o+"px"}},()=>r.style.overflow="hidden",()=>{r._x_isShown=!1,r.style.height==`${o}px`&&a&&(r.style.display="none",r.hidden=!0)})}}}}function Tu(e,t,r){if(e.indexOf(t)===-1)return r;let n=e[e.indexOf(t)+1];if(!n)return r;if(t==="duration"){let i=n.match(/([0-9]+)ms/);if(i)return i[1]}if(t==="min"){let i=n.match(/([0-9]+)px/);if(i)return i[1]}return n}var Mu=Fh;var Bu=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],ni=Bu.join(","),ju=typeof Element>"u",It=ju?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,ii=!ju&&Element.prototype.getRootNode?function(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}:function(e){return e?.ownerDocument},oi=function(t,r){var n;r===void 0&&(r=!0);var i=t==null||(n=t.getAttribute)===null||n===void 0?void 0:n.call(t,"inert"),o=i===""||i==="true",a=o||r&&t&&(typeof t.closest=="function"?t.closest("[inert]"):oi(t.parentNode));return a},Rh=function(t){var r,n=t==null||(r=t.getAttribute)===null||r===void 0?void 0:r.call(t,"contenteditable");return n===""||n==="true"},Uu=function(t,r,n){if(oi(t))return[];var i=Array.prototype.slice.apply(t.querySelectorAll(ni));return r&&It.call(t,ni)&&i.unshift(t),i=i.filter(n),i},ai=function(t,r,n){for(var i=[],o=Array.from(t);o.length;){var a=o.shift();if(!oi(a,!1))if(a.tagName==="SLOT"){var s=a.assignedElements(),l=s.length?s:a.children,u=ai(l,!0,n);n.flatten?i.push.apply(i,u):i.push({scopeParent:a,candidates:u})}else{var c=It.call(a,ni);c&&n.filter(a)&&(r||!t.includes(a))&&i.push(a);var f=a.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(a),d=!oi(f,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(a));if(f&&d){var p=ai(f===!0?a.children:f.children,!0,n);n.flatten?i.push.apply(i,p):i.push({scopeParent:a,candidates:p})}else o.unshift.apply(o,a.children)}}return i},Hu=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},Pt=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||Rh(t))&&!Hu(t)?0:t.tabIndex},Lh=function(t,r){var n=Pt(t);return n<0&&r&&!Hu(t)?0:n},$h=function(t,r){return t.tabIndex===r.tabIndex?t.documentOrder-r.documentOrder:t.tabIndex-r.tabIndex},qu=function(t){return t.tagName==="INPUT"},Bh=function(t){return qu(t)&&t.type==="hidden"},jh=function(t){var r=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(n){return n.tagName==="SUMMARY"});return r},Uh=function(t,r){for(var n=0;n<t.length;n++)if(t[n].checked&&t[n].form===r)return t[n]},Hh=function(t){if(!t.name)return!0;var r=t.form||ii(t),n=function(s){return r.querySelectorAll('input[type="radio"][name="'+s+'"]')},i;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")i=n(window.CSS.escape(t.name));else try{i=n(t.name)}catch(a){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",a.message),!1}var o=Uh(i,t.form);return!o||o===t},qh=function(t){return qu(t)&&t.type==="radio"},Wh=function(t){return qh(t)&&!Hh(t)},zh=function(t){var r,n=t&&ii(t),i=(r=n)===null||r===void 0?void 0:r.host,o=!1;if(n&&n!==t){var a,s,l;for(o=!!((a=i)!==null&&a!==void 0&&(s=a.ownerDocument)!==null&&s!==void 0&&s.contains(i)||t!=null&&(l=t.ownerDocument)!==null&&l!==void 0&&l.contains(t));!o&&i;){var u,c,f;n=ii(i),i=(u=n)===null||u===void 0?void 0:u.host,o=!!((c=i)!==null&&c!==void 0&&(f=c.ownerDocument)!==null&&f!==void 0&&f.contains(i))}}return o},Nu=function(t){var r=t.getBoundingClientRect(),n=r.width,i=r.height;return n===0&&i===0},Kh=function(t,r){var n=r.displayCheck,i=r.getShadowRoot;if(n==="full-native"&&"checkVisibility"in t){var o=t.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});return!o}if(getComputedStyle(t).visibility==="hidden")return!0;var a=It.call(t,"details>summary:first-of-type"),s=a?t.parentElement:t;if(It.call(s,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof i=="function"){for(var l=t;t;){var u=t.parentElement,c=ii(t);if(u&&!u.shadowRoot&&i(u)===!0)return Nu(t);t.assignedSlot?t=t.assignedSlot:!u&&c!==t.ownerDocument?t=c.host:t=u}t=l}if(zh(t))return!t.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return Nu(t);return!1},Vh=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var r=t.parentElement;r;){if(r.tagName==="FIELDSET"&&r.disabled){for(var n=0;n<r.children.length;n++){var i=r.children.item(n);if(i.tagName==="LEGEND")return It.call(r,"fieldset[disabled] *")?!0:!i.contains(t)}return!0}r=r.parentElement}return!1},si=function(t,r){return!(r.disabled||Bh(r)||Kh(r,t)||jh(r)||Vh(r))},oa=function(t,r){return!(Wh(r)||Pt(r)<0||!si(t,r))},Jh=function(t){var r=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(r)||r>=0)},Wu=function(t){var r=[],n=[];return t.forEach(function(i,o){var a=!!i.scopeParent,s=a?i.scopeParent:i,l=Lh(s,a),u=a?Wu(i.candidates):s;l===0?a?r.push.apply(r,u):r.push(s):n.push({documentOrder:o,tabIndex:l,item:i,isScope:a,content:u})}),n.sort($h).reduce(function(i,o){return o.isScope?i.push.apply(i,o.content):i.push(o.content),i},[]).concat(r)},Gh=function(t,r){r=r||{};var n;return r.getShadowRoot?n=ai([t],r.includeContainer,{filter:oa.bind(null,r),flatten:!1,getShadowRoot:r.getShadowRoot,shadowRootFilter:Jh}):n=Uu(t,r.includeContainer,oa.bind(null,r)),Wu(n)},zu=function(t,r){r=r||{};var n;return r.getShadowRoot?n=ai([t],r.includeContainer,{filter:si.bind(null,r),flatten:!0,getShadowRoot:r.getShadowRoot}):n=Uu(t,r.includeContainer,si.bind(null,r)),n},or=function(t,r){if(r=r||{},!t)throw new Error("No node provided");return It.call(t,ni)===!1?!1:oa(r,t)},Xh=Bu.concat("iframe:not([inert]):not([inert] *)").join(","),ri=function(t,r){if(r=r||{},!t)throw new Error("No node provided");return It.call(t,Xh)===!1?!1:si(r,t)};function aa(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Yh(e){if(Array.isArray(e))return aa(e)}function Pu(e,t,r,n,i,o,a){try{var s=e[o](a),l=s.value}catch(u){return void r(u)}s.done?t(l):Promise.resolve(l).then(n,i)}function Iu(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var o=e.apply(t,r);function a(l){Pu(o,n,i,a,s,"next",l)}function s(l){Pu(o,n,i,a,s,"throw",l)}a(void 0)})}}function Du(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ku(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return a=l.done,l},e:function(l){s=!0,o=l},f:function(){try{a||r.return==null||r.return()}finally{if(s)throw o}}}}function Qh(e,t,r){return(t=nm(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Zh(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function em(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Fu(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ru(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Fu(Object(r),!0).forEach(function(n){Qh(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fu(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function jr(){var e,t,r=typeof Symbol=="function"?Symbol:{},n=r.iterator||"@@iterator",i=r.toStringTag||"@@toStringTag";function o(p,m,h,v){var y=m&&m.prototype instanceof s?m:s,w=Object.create(y.prototype);return _e(w,"_invoke",function(S,C,P){var O,k,j,K=0,se=P||[],X=!1,W={p:0,n:0,v:e,a:I,f:I.bind(e,4),d:function(g,b){return O=g,k=0,j=e,W.n=b,a}};function I(g,b){for(k=g,j=b,t=0;!X&&K&&!E&&t<se.length;t++){var E,A=se[t],T=W.p,L=A[2];g>3?(E=L===b)&&(j=A[(k=A[4])?5:(k=3,3)],A[4]=A[5]=e):A[0]<=T&&((E=g<2&&T<A[1])?(k=0,W.v=b,W.n=A[1]):T<L&&(E=g<3||A[0]>b||b>L)&&(A[4]=g,A[5]=b,W.n=L,k=0))}if(E||g>1)return a;throw X=!0,b}return function(g,b,E){if(K>1)throw TypeError("Generator is already running");for(X&&b===1&&I(b,E),k=b,j=E;(t=k<2?e:j)||!X;){O||(k?k<3?(k>1&&(W.n=-1),I(k,j)):W.n=j:W.v=j);try{if(K=2,O){if(k||(g="next"),t=O[g]){if(!(t=t.call(O,j)))throw TypeError("iterator result is not an object");if(!t.done)return t;j=t.value,k<2&&(k=0)}else k===1&&(t=O.return)&&t.call(O),k<2&&(j=TypeError("The iterator does not provide a '"+g+"' method"),k=1);O=e}else if((t=(X=W.n<0)?j:S.call(C,W))!==a)break}catch(A){O=e,k=1,j=A}finally{K=1}}return{value:t,done:X}}}(p,h,v),!0),w}var a={};function s(){}function l(){}function u(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(_e(t={},n,function(){return this}),t),f=u.prototype=s.prototype=Object.create(c);function d(p){return Object.setPrototypeOf?Object.setPrototypeOf(p,u):(p.__proto__=u,_e(p,i,"GeneratorFunction")),p.prototype=Object.create(f),p}return l.prototype=u,_e(f,"constructor",u),_e(u,"constructor",l),l.displayName="GeneratorFunction",_e(u,i,"GeneratorFunction"),_e(f),_e(f,i,"Generator"),_e(f,n,function(){return this}),_e(f,"toString",function(){return"[object Generator]"}),(jr=function(){return{w:o,m:d}})()}function _e(e,t,r,n){var i=Object.defineProperty;try{i({},"",{})}catch{i=0}_e=function(o,a,s,l){function u(c,f){_e(o,c,function(d){return this._invoke(c,f,d)})}a?i?i(o,a,{value:s,enumerable:!l,configurable:!l,writable:!l}):o[a]=s:(u("next",0),u("throw",1),u("return",2))},_e(e,t,r,n)}function tm(e){return Yh(e)||Zh(e)||Ku(e)||em()}function rm(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function nm(e){var t=rm(e,"string");return typeof t=="symbol"?t:t+""}function Ku(e,t){if(e){if(typeof e=="string")return aa(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?aa(e,t):void 0}}var ze={getActiveTrap:function(t){return t?.length>0?t[t.length-1]:null},activateTrap:function(t,r){var n=ze.getActiveTrap(t);r!==n&&ze.pauseTrap(t);var i=t.indexOf(r);i===-1||t.splice(i,1),t.push(r)},deactivateTrap:function(t,r){var n=t.indexOf(r);n!==-1&&t.splice(n,1),ze.unpauseTrap(t)},pauseTrap:function(t){var r=ze.getActiveTrap(t);r?._setPausedState(!0)},unpauseTrap:function(t){var r=ze.getActiveTrap(t);r&&!r._isManuallyPaused()&&r._setPausedState(!1)}},im=function(t){return t.tagName&&t.tagName.toLowerCase()==="input"&&typeof t.select=="function"},om=function(t){return t?.key==="Escape"||t?.key==="Esc"||t?.keyCode===27},Ur=function(t){return t?.key==="Tab"||t?.keyCode===9},am=function(t){return Ur(t)&&!t.shiftKey},sm=function(t){return Ur(t)&&t.shiftKey},Lu=function(t){return setTimeout(t,0)},Br=function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return typeof t=="function"?t.apply(void 0,n):t},ti=function(t){return t.target.shadowRoot&&typeof t.composedPath=="function"?t.composedPath()[0]:t.target},lm=[],um=function(t,r){var n=r?.document||document,i=r?.trapStack||lm,o=Ru({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isolateSubtrees:!1,isKeyForward:am,isKeyBackward:sm},r),a={containers:[],containerGroups:[],tabbableGroups:[],adjacentElements:new Set,alreadySilent:new Set,nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,manuallyPaused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},s,l=function(g,b,E){return g&&g[b]!==void 0?g[b]:o[E||b]},u=function(g,b){var E=typeof b?.composedPath=="function"?b.composedPath():void 0;return a.containerGroups.findIndex(function(A){var T=A.container,L=A.tabbableNodes;return T.contains(g)||E?.includes(T)||L.find(function(F){return F===g})})},c=function(g){var b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},E=b.hasFallback,A=E===void 0?!1:E,T=b.params,L=T===void 0?[]:T,F=o[g];if(typeof F=="function"&&(F=F.apply(void 0,tm(L))),F===!0&&(F=void 0),!F){if(F===void 0||F===!1)return F;throw new Error("`".concat(g,"` was specified but was not a node, or did not return a node"))}var $=F;if(typeof F=="string"){try{$=n.querySelector(F)}catch(B){throw new Error("`".concat(g,'` appears to be an invalid selector; error="').concat(B.message,'"'))}if(!$&&!A)throw new Error("`".concat(g,"` as selector refers to no known node"))}return $},f=function(){var g=c("initialFocus",{hasFallback:!0});if(g===!1)return!1;if(g===void 0||g&&!ri(g,o.tabbableOptions))if(u(n.activeElement)>=0)g=n.activeElement;else{var b=a.tabbableGroups[0],E=b&&b.firstTabbableNode;g=E||c("fallbackFocus")}else g===null&&(g=c("fallbackFocus"));if(!g)throw new Error("Your focus-trap needs to have at least one focusable element");return g},d=function(){if(a.containerGroups=a.containers.map(function(g){var b=Gh(g,o.tabbableOptions),E=zu(g,o.tabbableOptions),A=b.length>0?b[0]:void 0,T=b.length>0?b[b.length-1]:void 0,L=E.find(function(B){return or(B)}),F=E.slice().reverse().find(function(B){return or(B)}),$=!!b.find(function(B){return Pt(B)>0});return{container:g,tabbableNodes:b,focusableNodes:E,posTabIndexesFound:$,firstTabbableNode:A,lastTabbableNode:T,firstDomTabbableNode:L,lastDomTabbableNode:F,nextTabbableNode:function(ie){var ye=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,fe=b.indexOf(ie);return fe<0?ye?E.slice(E.indexOf(ie)+1).find(function(pt){return or(pt)}):E.slice(0,E.indexOf(ie)).reverse().find(function(pt){return or(pt)}):b[fe+(ye?1:-1)]}}}),a.tabbableGroups=a.containerGroups.filter(function(g){return g.tabbableNodes.length>0}),a.tabbableGroups.length<=0&&!c("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(a.containerGroups.find(function(g){return g.posTabIndexesFound})&&a.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},p=function(g){var b=g.activeElement;if(!!b)return b.shadowRoot&&b.shadowRoot.activeElement!==null?p(b.shadowRoot):b},m=function(g){if(g!==!1&&g!==p(document)){if(!g||!g.focus){m(f());return}g.focus({preventScroll:!!o.preventScroll}),a.mostRecentlyFocusedNode=g,im(g)&&g.select()}},h=function(g){var b=c("setReturnFocus",{params:[g]});return b||(b===!1?!1:g)},v=function(g){var b=g.target,E=g.event,A=g.isBackward,T=A===void 0?!1:A;b=b||ti(E),d();var L=null;if(a.tabbableGroups.length>0){var F=u(b,E),$=F>=0?a.containerGroups[F]:void 0;if(F<0)T?L=a.tabbableGroups[a.tabbableGroups.length-1].lastTabbableNode:L=a.tabbableGroups[0].firstTabbableNode;else if(T){var B=a.tabbableGroups.findIndex(function(Wi){var zi=Wi.firstTabbableNode;return b===zi});if(B<0&&($.container===b||ri(b,o.tabbableOptions)&&!or(b,o.tabbableOptions)&&!$.nextTabbableNode(b,!1))&&(B=F),B>=0){var ie=B===0?a.tabbableGroups.length-1:B-1,ye=a.tabbableGroups[ie];L=Pt(b)>=0?ye.lastTabbableNode:ye.lastDomTabbableNode}else Ur(E)||(L=$.nextTabbableNode(b,!1))}else{var fe=a.tabbableGroups.findIndex(function(Wi){var zi=Wi.lastTabbableNode;return b===zi});if(fe<0&&($.container===b||ri(b,o.tabbableOptions)&&!or(b,o.tabbableOptions)&&!$.nextTabbableNode(b))&&(fe=F),fe>=0){var pt=fe===a.tabbableGroups.length-1?0:fe+1,Ze=a.tabbableGroups[pt];L=Pt(b)>=0?Ze.firstTabbableNode:Ze.firstDomTabbableNode}else Ur(E)||(L=$.nextTabbableNode(b))}}else L=c("fallbackFocus");return L},y=function(g){var b=ti(g);if(!(u(b,g)>=0)){if(Br(o.clickOutsideDeactivates,g)){s.deactivate({returnFocus:o.returnFocusOnDeactivate});return}Br(o.allowOutsideClick,g)||g.preventDefault()}},w=function(g){var b=ti(g),E=u(b,g)>=0;if(E||b instanceof Document)E&&(a.mostRecentlyFocusedNode=b);else{g.stopImmediatePropagation();var A,T=!0;if(a.mostRecentlyFocusedNode)if(Pt(a.mostRecentlyFocusedNode)>0){var L=u(a.mostRecentlyFocusedNode),F=a.containerGroups[L].tabbableNodes;if(F.length>0){var $=F.findIndex(function(B){return B===a.mostRecentlyFocusedNode});$>=0&&(o.isKeyForward(a.recentNavEvent)?$+1<F.length&&(A=F[$+1],T=!1):$-1>=0&&(A=F[$-1],T=!1))}}else a.containerGroups.some(function(B){return B.tabbableNodes.some(function(ie){return Pt(ie)>0})})||(T=!1);else T=!1;T&&(A=v({target:a.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(a.recentNavEvent)})),m(A||a.mostRecentlyFocusedNode||f())}a.recentNavEvent=void 0},S=function(g){var b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;a.recentNavEvent=g;var E=v({event:g,isBackward:b});E&&(Ur(g)&&g.preventDefault(),m(E))},C=function(g){(o.isKeyForward(g)||o.isKeyBackward(g))&&S(g,o.isKeyBackward(g))},P=function(g){om(g)&&Br(o.escapeDeactivates,g)!==!1&&(g.preventDefault(),s.deactivate())},O=function(g){var b=ti(g);u(b,g)>=0||Br(o.clickOutsideDeactivates,g)||Br(o.allowOutsideClick,g)||(g.preventDefault(),g.stopImmediatePropagation())},k=function(){if(!a.active)return Promise.resolve();ze.activateTrap(i,s);var g;return o.delayInitialFocus?g=new Promise(function(b){a.delayInitialFocusTimer=Lu(function(){m(f()),b()})}):(g=Promise.resolve(),m(f())),n.addEventListener("focusin",w,!0),n.addEventListener("mousedown",y,{capture:!0,passive:!1}),n.addEventListener("touchstart",y,{capture:!0,passive:!1}),n.addEventListener("click",O,{capture:!0,passive:!1}),n.addEventListener("keydown",C,{capture:!0,passive:!1}),n.addEventListener("keydown",P),g},j=function(g){a.active&&!a.paused&&s._setSubtreeIsolation(!1),a.adjacentElements.clear(),a.alreadySilent.clear();var b=new Set,E=new Set,A=Du(g),T;try{for(A.s();!(T=A.n()).done;){var L=T.value;b.add(L);for(var F=typeof ShadowRoot<"u"&&L.getRootNode()instanceof ShadowRoot,$=L;$;){b.add($);var B=$.parentElement,ie=[];B?ie=B.children:!B&&F&&(ie=$.getRootNode().children,B=$.getRootNode().host,F=typeof ShadowRoot<"u"&&B.getRootNode()instanceof ShadowRoot);var ye=Du(ie),fe;try{for(ye.s();!(fe=ye.n()).done;){var pt=fe.value;E.add(pt)}}catch(Ze){ye.e(Ze)}finally{ye.f()}$=B}}}catch(Ze){A.e(Ze)}finally{A.f()}b.forEach(function(Ze){E.delete(Ze)}),a.adjacentElements=E},K=function(){if(!!a.active)return n.removeEventListener("focusin",w,!0),n.removeEventListener("mousedown",y,!0),n.removeEventListener("touchstart",y,!0),n.removeEventListener("click",O,!0),n.removeEventListener("keydown",C,!0),n.removeEventListener("keydown",P),s},se=function(g){var b=g.some(function(E){var A=Array.from(E.removedNodes);return A.some(function(T){return T===a.mostRecentlyFocusedNode})});b&&m(f())},X=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(se):void 0,W=function(){!X||(X.disconnect(),a.active&&!a.paused&&a.containers.map(function(g){X.observe(g,{subtree:!0,childList:!0})}))};return s={get active(){return a.active},get paused(){return a.paused},activate:function(g){if(a.active)return this;var b=l(g,"onActivate"),E=l(g,"onPostActivate"),A=l(g,"checkCanFocusTrap"),T=ze.getActiveTrap(i),L=!1;if(T&&!T.paused){var F;(F=T._setSubtreeIsolation)===null||F===void 0||F.call(T,!1),L=!0}try{A||d(),a.active=!0,a.paused=!1,a.nodeFocusedBeforeActivation=p(n),b?.();var $=function(){var ie=Iu(jr().m(function ye(){return jr().w(function(fe){for(;;)switch(fe.n){case 0:return A&&d(),fe.n=1,k();case 1:s._setSubtreeIsolation(!0),W(),E?.();case 2:return fe.a(2)}},ye)}));return function(){return ie.apply(this,arguments)}}();if(A)return A(a.containers.concat()).then($,$),this;$()}catch(ie){if(T===ze.getActiveTrap(i)&&L){var B;(B=T._setSubtreeIsolation)===null||B===void 0||B.call(T,!0)}throw ie}return this},deactivate:function(g){if(!a.active)return this;var b=Ru({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},g);clearTimeout(a.delayInitialFocusTimer),a.delayInitialFocusTimer=void 0,a.paused||s._setSubtreeIsolation(!1),a.alreadySilent.clear(),K(),a.active=!1,a.paused=!1,W(),ze.deactivateTrap(i,s);var E=l(b,"onDeactivate"),A=l(b,"onPostDeactivate"),T=l(b,"checkCanReturnFocus"),L=l(b,"returnFocus","returnFocusOnDeactivate");E?.();var F=function(){Lu(function(){L&&m(h(a.nodeFocusedBeforeActivation)),A?.()})};return L&&T?(T(h(a.nodeFocusedBeforeActivation)).then(F,F),this):(F(),this)},pause:function(g){return a.active?(a.manuallyPaused=!0,this._setPausedState(!0,g)):this},unpause:function(g){return a.active?(a.manuallyPaused=!1,i[i.length-1]!==this?this:this._setPausedState(!1,g)):this},updateContainerElements:function(g){var b=[].concat(g).filter(Boolean);return a.containers=b.map(function(E){return typeof E=="string"?n.querySelector(E):E}),o.isolateSubtrees&&j(a.containers),a.active&&(d(),a.paused||s._setSubtreeIsolation(!0)),W(),this}},Object.defineProperties(s,{_isManuallyPaused:{value:function(){return a.manuallyPaused}},_setPausedState:{value:function(g,b){if(a.paused===g)return this;if(a.paused=g,g){var E=l(b,"onPause"),A=l(b,"onPostPause");E?.(),K(),s._setSubtreeIsolation(!1),W(),A?.()}else{var T=l(b,"onUnpause"),L=l(b,"onPostUnpause");T?.();var F=function(){var $=Iu(jr().m(function B(){return jr().w(function(ie){for(;;)switch(ie.n){case 0:return d(),ie.n=1,k();case 1:s._setSubtreeIsolation(!0),W(),L?.();case 2:return ie.a(2)}},B)}));return function(){return $.apply(this,arguments)}}();F()}return this}},_setSubtreeIsolation:{value:function(g){o.isolateSubtrees&&a.adjacentElements.forEach(function(b){var E;if(g)switch(o.isolateSubtrees){case"aria-hidden":(b.ariaHidden==="true"||((E=b.getAttribute("aria-hidden"))===null||E===void 0?void 0:E.toLowerCase())==="true")&&a.alreadySilent.add(b),b.setAttribute("aria-hidden","true");break;default:(b.inert||b.hasAttribute("inert"))&&a.alreadySilent.add(b),b.setAttribute("inert",!0);break}else if(!a.alreadySilent.has(b))switch(o.isolateSubtrees){case"aria-hidden":b.removeAttribute("aria-hidden");break;default:b.removeAttribute("inert");break}})}}}),s.updateContainerElements(t),s};function cm(e){let t,r;window.addEventListener("focusin",()=>{t=r,r=document.activeElement}),e.magic("focus",n=>{let i=n;return{__noscroll:!1,__wrapAround:!1,within(o){return i=o,this},withoutScrolling(){return this.__noscroll=!0,this},noscroll(){return this.__noscroll=!0,this},withWrapAround(){return this.__wrapAround=!0,this},wrap(){return this.withWrapAround()},focusable(o){return ri(o)},previouslyFocused(){return t},lastFocused(){return t},focused(){return r},focusables(){return Array.isArray(i)?i:zu(i,{displayCheck:"none"})},all(){return this.focusables()},isFirst(o){let a=this.all();return a[0]&&a[0].isSameNode(o)},isLast(o){let a=this.all();return a.length&&a.slice(-1)[0].isSameNode(o)},getFirst(){return this.all()[0]},getLast(){return this.all().slice(-1)[0]},getNext(){let o=this.all(),a=document.activeElement;if(o.indexOf(a)!==-1)return this.__wrapAround&&o.indexOf(a)===o.length-1?o[0]:o[o.indexOf(a)+1]},getPrevious(){let o=this.all(),a=document.activeElement;if(o.indexOf(a)!==-1)return this.__wrapAround&&o.indexOf(a)===0?o.slice(-1)[0]:o[o.indexOf(a)-1]},first(){this.focus(this.getFirst())},last(){this.focus(this.getLast())},next(){this.focus(this.getNext())},previous(){this.focus(this.getPrevious())},prev(){return this.previous()},focus(o){!o||setTimeout(()=>{o.hasAttribute("tabindex")||o.setAttribute("tabindex","0"),o.focus({preventScroll:this.__noscroll})})}}}),e.directive("trap",e.skipDuringClone((n,{expression:i,modifiers:o},{effect:a,evaluateLater:s,cleanup:l})=>{let u=s(i),c=!1,f={escapeDeactivates:!1,allowOutsideClick:!0,fallbackFocus:()=>n},d=()=>{};if(o.includes("noautofocus"))f.initialFocus=!1;else{let v=n.querySelector("[autofocus]");v&&(f.initialFocus=v)}o.includes("inert")&&(f.onPostActivate=()=>{e.nextTick(()=>{d=$u(n)})});let p=um(n,f),m=()=>{},h=()=>{d(),d=()=>{},m(),m=()=>{},p.deactivate({returnFocus:!o.includes("noreturn")})};a(()=>u(v=>{c!==v&&(v&&!c&&(o.includes("noscroll")&&(m=fm()),setTimeout(()=>{p.activate()},15)),!v&&c&&h(),c=!!v)})),l(h)},(n,{expression:i,modifiers:o},{evaluate:a})=>{o.includes("inert")&&a(i)&&$u(n)}))}function $u(e){let t=[];return Vu(e,r=>{let n=r.hasAttribute("aria-hidden");r.setAttribute("aria-hidden","true"),t.push(()=>n||r.removeAttribute("aria-hidden"))}),()=>{for(;t.length;)t.pop()()}}function Vu(e,t){e.isSameNode(document.body)||!e.parentNode||Array.from(e.parentNode.children).forEach(r=>{r.isSameNode(e)?Vu(e.parentNode,t):t(r)})}function fm(){let e=document.documentElement.style.overflow,t=document.documentElement.style.paddingRight,r=window.innerWidth-document.documentElement.clientWidth,n=window.getComputedStyle(document.documentElement).scrollbarGutter;return document.documentElement.style.overflow="hidden",n&&n!=="auto"?()=>{document.documentElement.style.overflow=e}:(document.documentElement.style.paddingRight=`${r}px`,()=>{document.documentElement.style.overflow=e,document.documentElement.style.paddingRight=t})}var Ju=cm;function dm(e){let t=()=>{let r,n;try{n=localStorage}catch(i){console.error(i),console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable.");let o=new Map;n={getItem:o.get.bind(o),setItem:o.set.bind(o)}}return e.interceptor((i,o,a,s,l)=>{let u=r||`_x_${s}`,c=Gu(u,n)?Xu(u,n):i;return a(c),e.effect(()=>{let f=o();Yu(u,f,n),a(f)}),c},i=>{i.as=o=>(r=o,i),i.using=o=>(n=o,i)})};Object.defineProperty(e,"$persist",{get:()=>t()}),e.magic("persist",t),e.persist=(r,{get:n,set:i},o=localStorage)=>{let a=Gu(r,o)?Xu(r,o):n();i(a),e.effect(()=>{let s=n();Yu(r,s,o),i(s)})}}function Gu(e,t){return t.getItem(e)!==null}function Xu(e,t){let r=t.getItem(e);if(r!==void 0)return JSON.parse(r)}function Yu(e,t,r){r.setItem(e,JSON.stringify(t))}var Qu=dm;function pm(e){e.directive("intersect",e.skipDuringClone((t,{value:r,expression:n,modifiers:i},{evaluateLater:o,cleanup:a})=>{let s=o(n),l={rootMargin:gm(i),threshold:hm(i)},u=new IntersectionObserver(c=>{c.forEach(f=>{f.isIntersecting!==(r==="leave")&&(s(),i.includes("once")&&u.disconnect())})},l);u.observe(t),a(()=>{u.disconnect()})}))}function hm(e){if(e.includes("full"))return .99;if(e.includes("half"))return .5;if(!e.includes("threshold"))return 0;let t=e[e.indexOf("threshold")+1];return t==="100"?1:t==="0"?0:Number(`.${t}`)}function mm(e){let t=e.match(/^(-?[0-9]+)(px|%)?$/);return t?t[1]+(t[2]||"px"):void 0}function gm(e){let t="margin",r="0px 0px 0px 0px",n=e.indexOf(t);if(n===-1)return r;let i=[];for(let o=1;o<5;o++)i.push(mm(e[n+o]||""));return i=i.filter(o=>o!==void 0),i.length?i.join(" ").trim():r}var Zu=pm;function ec(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Be(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ec(Object(r),!0).forEach(function(n){vm(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ec(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function di(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?di=function(t){return typeof t}:di=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},di(e)}function vm(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ve(){return Ve=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ve.apply(this,arguments)}function bm(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,o;for(o=0;o<n.length;o++)i=n[o],!(t.indexOf(i)>=0)&&(r[i]=e[i]);return r}function ym(e,t){if(e==null)return{};var r=bm(e,t),n,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],!(t.indexOf(n)>=0)&&(!Object.prototype.propertyIsEnumerable.call(e,n)||(r[n]=e[n]))}return r}var wm="1.15.2";function Ke(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var Je=Ke(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Xr=Ke(/Edge/i),tc=Ke(/firefox/i),zr=Ke(/safari/i)&&!Ke(/chrome/i)&&!Ke(/android/i),uc=Ke(/iP(ad|od|hone)/i),cc=Ke(/chrome/i)&&Ke(/android/i),fc={capture:!1,passive:!1};function q(e,t,r){e.addEventListener(t,r,!Je&&fc)}function H(e,t,r){e.removeEventListener(t,r,!Je&&fc)}function vi(e,t){if(!!t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function _m(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function Ne(e,t,r,n){if(e){r=r||document;do{if(t!=null&&(t[0]===">"?e.parentNode===r&&vi(e,t):vi(e,t))||n&&e===r)return e;if(e===r)break}while(e=_m(e))}return null}var rc=/\s+/g;function xe(e,t,r){if(e&&t)if(e.classList)e.classList[r?"add":"remove"](t);else{var n=(" "+e.className+" ").replace(rc," ").replace(" "+t+" "," ");e.className=(n+(r?" "+t:"")).replace(rc," ")}}function M(e,t,r){var n=e&&e.style;if(n){if(r===void 0)return document.defaultView&&document.defaultView.getComputedStyle?r=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(r=e.currentStyle),t===void 0?r:r[t];!(t in n)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),n[t]=r+(typeof r=="string"?"":"px")}}function cr(e,t){var r="";if(typeof e=="string")r=e;else do{var n=M(e,"transform");n&&n!=="none"&&(r=n+" "+r)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(r)}function dc(e,t,r){if(e){var n=e.getElementsByTagName(t),i=0,o=n.length;if(r)for(;i<o;i++)r(n[i],i);return n}return[]}function $e(){var e=document.scrollingElement;return e||document.documentElement}function ne(e,t,r,n,i){if(!(!e.getBoundingClientRect&&e!==window)){var o,a,s,l,u,c,f;if(e!==window&&e.parentNode&&e!==$e()?(o=e.getBoundingClientRect(),a=o.top,s=o.left,l=o.bottom,u=o.right,c=o.height,f=o.width):(a=0,s=0,l=window.innerHeight,u=window.innerWidth,c=window.innerHeight,f=window.innerWidth),(t||r)&&e!==window&&(i=i||e.parentNode,!Je))do if(i&&i.getBoundingClientRect&&(M(i,"transform")!=="none"||r&&M(i,"position")!=="static")){var d=i.getBoundingClientRect();a-=d.top+parseInt(M(i,"border-top-width")),s-=d.left+parseInt(M(i,"border-left-width")),l=a+o.height,u=s+o.width;break}while(i=i.parentNode);if(n&&e!==window){var p=cr(i||e),m=p&&p.a,h=p&&p.d;p&&(a/=h,s/=m,f/=m,c/=h,l=a+c,u=s+f)}return{top:a,left:s,bottom:l,right:u,width:f,height:c}}}function nc(e,t,r){for(var n=ct(e,!0),i=ne(e)[t];n;){var o=ne(n)[r],a=void 0;if(r==="top"||r==="left"?a=i>=o:a=i<=o,!a)return n;if(n===$e())break;n=ct(n,!1)}return!1}function fr(e,t,r,n){for(var i=0,o=0,a=e.children;o<a.length;){if(a[o].style.display!=="none"&&a[o]!==N.ghost&&(n||a[o]!==N.dragged)&&Ne(a[o],r.draggable,e,!1)){if(i===t)return a[o];i++}o++}return null}function _a(e,t){for(var r=e.lastElementChild;r&&(r===N.ghost||M(r,"display")==="none"||t&&!vi(r,t));)r=r.previousElementSibling;return r||null}function Ce(e,t){var r=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)e.nodeName.toUpperCase()!=="TEMPLATE"&&e!==N.clone&&(!t||vi(e,t))&&r++;return r}function ic(e){var t=0,r=0,n=$e();if(e)do{var i=cr(e),o=i.a,a=i.d;t+=e.scrollLeft*o,r+=e.scrollTop*a}while(e!==n&&(e=e.parentNode));return[t,r]}function xm(e,t){for(var r in e)if(!!e.hasOwnProperty(r)){for(var n in t)if(t.hasOwnProperty(n)&&t[n]===e[r][n])return Number(r)}return-1}function ct(e,t){if(!e||!e.getBoundingClientRect)return $e();var r=e,n=!1;do if(r.clientWidth<r.scrollWidth||r.clientHeight<r.scrollHeight){var i=M(r);if(r.clientWidth<r.scrollWidth&&(i.overflowX=="auto"||i.overflowX=="scroll")||r.clientHeight<r.scrollHeight&&(i.overflowY=="auto"||i.overflowY=="scroll")){if(!r.getBoundingClientRect||r===document.body)return $e();if(n||t)return r;n=!0}}while(r=r.parentNode);return $e()}function Em(e,t){if(e&&t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function sa(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}var Kr;function pc(e,t){return function(){if(!Kr){var r=arguments,n=this;r.length===1?e.call(n,r[0]):e.apply(n,r),Kr=setTimeout(function(){Kr=void 0},t)}}}function Sm(){clearTimeout(Kr),Kr=void 0}function hc(e,t,r){e.scrollLeft+=t,e.scrollTop+=r}function mc(e){var t=window.Polymer,r=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):r?r(e).clone(!0)[0]:e.cloneNode(!0)}function gc(e,t,r){var n={};return Array.from(e.children).forEach(function(i){var o,a,s,l;if(!(!Ne(i,t.draggable,e,!1)||i.animated||i===r)){var u=ne(i);n.left=Math.min((o=n.left)!==null&&o!==void 0?o:1/0,u.left),n.top=Math.min((a=n.top)!==null&&a!==void 0?a:1/0,u.top),n.right=Math.max((s=n.right)!==null&&s!==void 0?s:-1/0,u.right),n.bottom=Math.max((l=n.bottom)!==null&&l!==void 0?l:-1/0,u.bottom)}}),n.width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n}var Se="Sortable"+new Date().getTime();function Am(){var e=[],t;return{captureAnimationState:function(){if(e=[],!!this.options.animation){var n=[].slice.call(this.el.children);n.forEach(function(i){if(!(M(i,"display")==="none"||i===N.ghost)){e.push({target:i,rect:ne(i)});var o=Be({},e[e.length-1].rect);if(i.thisAnimationDuration){var a=cr(i,!0);a&&(o.top-=a.f,o.left-=a.e)}i.fromRect=o}})}},addAnimationState:function(n){e.push(n)},removeAnimationState:function(n){e.splice(xm(e,{target:n}),1)},animateAll:function(n){var i=this;if(!this.options.animation){clearTimeout(t),typeof n=="function"&&n();return}var o=!1,a=0;e.forEach(function(s){var l=0,u=s.target,c=u.fromRect,f=ne(u),d=u.prevFromRect,p=u.prevToRect,m=s.rect,h=cr(u,!0);h&&(f.top-=h.f,f.left-=h.e),u.toRect=f,u.thisAnimationDuration&&sa(d,f)&&!sa(c,f)&&(m.top-f.top)/(m.left-f.left)===(c.top-f.top)/(c.left-f.left)&&(l=Om(m,d,p,i.options)),sa(f,c)||(u.prevFromRect=c,u.prevToRect=f,l||(l=i.options.animation),i.animate(u,m,f,l)),l&&(o=!0,a=Math.max(a,l),clearTimeout(u.animationResetTimer),u.animationResetTimer=setTimeout(function(){u.animationTime=0,u.prevFromRect=null,u.fromRect=null,u.prevToRect=null,u.thisAnimationDuration=null},l),u.thisAnimationDuration=l)}),clearTimeout(t),o?t=setTimeout(function(){typeof n=="function"&&n()},a):typeof n=="function"&&n(),e=[]},animate:function(n,i,o,a){if(a){M(n,"transition",""),M(n,"transform","");var s=cr(this.el),l=s&&s.a,u=s&&s.d,c=(i.left-o.left)/(l||1),f=(i.top-o.top)/(u||1);n.animatingX=!!c,n.animatingY=!!f,M(n,"transform","translate3d("+c+"px,"+f+"px,0)"),this.forRepaintDummy=Cm(n),M(n,"transition","transform "+a+"ms"+(this.options.easing?" "+this.options.easing:"")),M(n,"transform","translate3d(0,0,0)"),typeof n.animated=="number"&&clearTimeout(n.animated),n.animated=setTimeout(function(){M(n,"transition",""),M(n,"transform",""),n.animated=!1,n.animatingX=!1,n.animatingY=!1},a)}}}}function Cm(e){return e.offsetWidth}function Om(e,t,r,n){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-r.top,2)+Math.pow(t.left-r.left,2))*n.animation}var ar=[],la={initializeByDefault:!0},Yr={mount:function(t){for(var r in la)la.hasOwnProperty(r)&&!(r in t)&&(t[r]=la[r]);ar.forEach(function(n){if(n.pluginName===t.pluginName)throw"Sortable: Cannot mount plugin ".concat(t.pluginName," more than once")}),ar.push(t)},pluginEvent:function(t,r,n){var i=this;this.eventCanceled=!1,n.cancel=function(){i.eventCanceled=!0};var o=t+"Global";ar.forEach(function(a){!r[a.pluginName]||(r[a.pluginName][o]&&r[a.pluginName][o](Be({sortable:r},n)),r.options[a.pluginName]&&r[a.pluginName][t]&&r[a.pluginName][t](Be({sortable:r},n)))})},initializePlugins:function(t,r,n,i){ar.forEach(function(s){var l=s.pluginName;if(!(!t.options[l]&&!s.initializeByDefault)){var u=new s(t,r,t.options);u.sortable=t,u.options=t.options,t[l]=u,Ve(n,u.defaults)}});for(var o in t.options)if(!!t.options.hasOwnProperty(o)){var a=this.modifyOption(t,o,t.options[o]);typeof a<"u"&&(t.options[o]=a)}},getEventProperties:function(t,r){var n={};return ar.forEach(function(i){typeof i.eventProperties=="function"&&Ve(n,i.eventProperties.call(r[i.pluginName],t))}),n},modifyOption:function(t,r,n){var i;return ar.forEach(function(o){!t[o.pluginName]||o.optionListeners&&typeof o.optionListeners[r]=="function"&&(i=o.optionListeners[r].call(t[o.pluginName],n))}),i}};function km(e){var t=e.sortable,r=e.rootEl,n=e.name,i=e.targetEl,o=e.cloneEl,a=e.toEl,s=e.fromEl,l=e.oldIndex,u=e.newIndex,c=e.oldDraggableIndex,f=e.newDraggableIndex,d=e.originalEvent,p=e.putSortable,m=e.extraEventProperties;if(t=t||r&&r[Se],!!t){var h,v=t.options,y="on"+n.charAt(0).toUpperCase()+n.substr(1);window.CustomEvent&&!Je&&!Xr?h=new CustomEvent(n,{bubbles:!0,cancelable:!0}):(h=document.createEvent("Event"),h.initEvent(n,!0,!0)),h.to=a||r,h.from=s||r,h.item=i||r,h.clone=o,h.oldIndex=l,h.newIndex=u,h.oldDraggableIndex=c,h.newDraggableIndex=f,h.originalEvent=d,h.pullMode=p?p.lastPutMode:void 0;var w=Be(Be({},m),Yr.getEventProperties(n,t));for(var S in w)h[S]=w[S];r&&r.dispatchEvent(h),v[y]&&v[y].call(t,h)}}var Tm=["evt"],me=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=n.evt,o=ym(n,Tm);Yr.pluginEvent.bind(N)(t,r,Be({dragEl:x,parentEl:Y,ghostEl:D,rootEl:J,nextEl:Rt,lastDownEl:pi,cloneEl:G,cloneHidden:ut,dragStarted:Hr,putSortable:le,activeSortable:N.active,originalEvent:i,oldIndex:ur,oldDraggableIndex:Vr,newIndex:Ee,newDraggableIndex:lt,hideGhostForTarget:wc,unhideGhostForTarget:_c,cloneNowHidden:function(){ut=!0},cloneNowShown:function(){ut=!1},dispatchSortableEvent:function(s){pe({sortable:r,name:s,originalEvent:i})}},o))};function pe(e){km(Be({putSortable:le,cloneEl:G,targetEl:x,rootEl:J,oldIndex:ur,oldDraggableIndex:Vr,newIndex:Ee,newDraggableIndex:lt},e))}var x,Y,D,J,Rt,pi,G,ut,ur,Ee,Vr,lt,li,le,lr=!1,bi=!1,yi=[],Dt,Me,ua,ca,oc,ac,Hr,sr,Jr,Gr=!1,ui=!1,hi,ue,fa=[],ga=!1,wi=[],xi=typeof document<"u",ci=uc,sc=Xr||Je?"cssFloat":"float",Mm=xi&&!cc&&!uc&&"draggable"in document.createElement("div"),vc=function(){if(!!xi){if(Je)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),bc=function(t,r){var n=M(t),i=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=fr(t,0,r),a=fr(t,1,r),s=o&&M(o),l=a&&M(a),u=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+ne(o).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+ne(a).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&s.float&&s.float!=="none"){var f=s.float==="left"?"left":"right";return a&&(l.clear==="both"||l.clear===f)?"vertical":"horizontal"}return o&&(s.display==="block"||s.display==="flex"||s.display==="table"||s.display==="grid"||u>=i&&n[sc]==="none"||a&&n[sc]==="none"&&u+c>i)?"vertical":"horizontal"},Nm=function(t,r,n){var i=n?t.left:t.top,o=n?t.right:t.bottom,a=n?t.width:t.height,s=n?r.left:r.top,l=n?r.right:r.bottom,u=n?r.width:r.height;return i===s||o===l||i+a/2===s+u/2},Pm=function(t,r){var n;return yi.some(function(i){var o=i[Se].options.emptyInsertThreshold;if(!(!o||_a(i))){var a=ne(i),s=t>=a.left-o&&t<=a.right+o,l=r>=a.top-o&&r<=a.bottom+o;if(s&&l)return n=i}}),n},yc=function(t){function r(o,a){return function(s,l,u,c){var f=s.options.group.name&&l.options.group.name&&s.options.group.name===l.options.group.name;if(o==null&&(a||f))return!0;if(o==null||o===!1)return!1;if(a&&o==="clone")return o;if(typeof o=="function")return r(o(s,l,u,c),a)(s,l,u,c);var d=(a?s:l).options.group.name;return o===!0||typeof o=="string"&&o===d||o.join&&o.indexOf(d)>-1}}var n={},i=t.group;(!i||di(i)!="object")&&(i={name:i}),n.name=i.name,n.checkPull=r(i.pull,!0),n.checkPut=r(i.put),n.revertClone=i.revertClone,t.group=n},wc=function(){!vc&&D&&M(D,"display","none")},_c=function(){!vc&&D&&M(D,"display","")};xi&&!cc&&document.addEventListener("click",function(e){if(bi)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),bi=!1,!1},!0);var Ft=function(t){if(x){t=t.touches?t.touches[0]:t;var r=Pm(t.clientX,t.clientY);if(r){var n={};for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);n.target=n.rootEl=r,n.preventDefault=void 0,n.stopPropagation=void 0,r[Se]._onDragOver(n)}}},Im=function(t){x&&x.parentNode[Se]._isOutsideThisEl(t.target)};function N(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=Ve({},t),e[Se]=this;var r={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return bc(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(a,s){a.setData("Text",s.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:N.supportPointer!==!1&&"PointerEvent"in window&&!zr,emptyInsertThreshold:5};Yr.initializePlugins(this,e,r);for(var n in r)!(n in t)&&(t[n]=r[n]);yc(t);for(var i in this)i.charAt(0)==="_"&&typeof this[i]=="function"&&(this[i]=this[i].bind(this));this.nativeDraggable=t.forceFallback?!1:Mm,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?q(e,"pointerdown",this._onTapStart):(q(e,"mousedown",this._onTapStart),q(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(q(e,"dragover",this),q(e,"dragenter",this)),yi.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),Ve(this,Am())}N.prototype={constructor:N,_isOutsideThisEl:function(t){!this.el.contains(t)&&t!==this.el&&(sr=null)},_getDirection:function(t,r){return typeof this.options.direction=="function"?this.options.direction.call(this,t,r,x):this.options.direction},_onTapStart:function(t){if(!!t.cancelable){var r=this,n=this.el,i=this.options,o=i.preventOnFilter,a=t.type,s=t.touches&&t.touches[0]||t.pointerType&&t.pointerType==="touch"&&t,l=(s||t).target,u=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||l,c=i.filter;if(Um(n),!x&&!(/mousedown|pointerdown/.test(a)&&t.button!==0||i.disabled)&&!u.isContentEditable&&!(!this.nativeDraggable&&zr&&l&&l.tagName.toUpperCase()==="SELECT")&&(l=Ne(l,i.draggable,n,!1),!(l&&l.animated)&&pi!==l)){if(ur=Ce(l),Vr=Ce(l,i.draggable),typeof c=="function"){if(c.call(this,t,l,this)){pe({sortable:r,rootEl:u,name:"filter",targetEl:l,toEl:n,fromEl:n}),me("filter",r,{evt:t}),o&&t.cancelable&&t.preventDefault();return}}else if(c&&(c=c.split(",").some(function(f){if(f=Ne(u,f.trim(),n,!1),f)return pe({sortable:r,rootEl:f,name:"filter",targetEl:l,fromEl:n,toEl:n}),me("filter",r,{evt:t}),!0}),c)){o&&t.cancelable&&t.preventDefault();return}i.handle&&!Ne(u,i.handle,n,!1)||this._prepareDragStart(t,s,l)}}},_prepareDragStart:function(t,r,n){var i=this,o=i.el,a=i.options,s=o.ownerDocument,l;if(n&&!x&&n.parentNode===o){var u=ne(n);if(J=o,x=n,Y=x.parentNode,Rt=x.nextSibling,pi=n,li=a.group,N.dragged=x,Dt={target:x,clientX:(r||t).clientX,clientY:(r||t).clientY},oc=Dt.clientX-u.left,ac=Dt.clientY-u.top,this._lastX=(r||t).clientX,this._lastY=(r||t).clientY,x.style["will-change"]="all",l=function(){if(me("delayEnded",i,{evt:t}),N.eventCanceled){i._onDrop();return}i._disableDelayedDragEvents(),!tc&&i.nativeDraggable&&(x.draggable=!0),i._triggerDragStart(t,r),pe({sortable:i,name:"choose",originalEvent:t}),xe(x,a.chosenClass,!0)},a.ignore.split(",").forEach(function(c){dc(x,c.trim(),da)}),q(s,"dragover",Ft),q(s,"mousemove",Ft),q(s,"touchmove",Ft),q(s,"mouseup",i._onDrop),q(s,"touchend",i._onDrop),q(s,"touchcancel",i._onDrop),tc&&this.nativeDraggable&&(this.options.touchStartThreshold=4,x.draggable=!0),me("delayStart",this,{evt:t}),a.delay&&(!a.delayOnTouchOnly||r)&&(!this.nativeDraggable||!(Xr||Je))){if(N.eventCanceled){this._onDrop();return}q(s,"mouseup",i._disableDelayedDrag),q(s,"touchend",i._disableDelayedDrag),q(s,"touchcancel",i._disableDelayedDrag),q(s,"mousemove",i._delayedDragTouchMoveHandler),q(s,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&q(s,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(l,a.delay)}else l()}},_delayedDragTouchMoveHandler:function(t){var r=t.touches?t.touches[0]:t;Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){x&&da(x),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;H(t,"mouseup",this._disableDelayedDrag),H(t,"touchend",this._disableDelayedDrag),H(t,"touchcancel",this._disableDelayedDrag),H(t,"mousemove",this._delayedDragTouchMoveHandler),H(t,"touchmove",this._delayedDragTouchMoveHandler),H(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,r){r=r||t.pointerType=="touch"&&t,!this.nativeDraggable||r?this.options.supportPointer?q(document,"pointermove",this._onTouchMove):r?q(document,"touchmove",this._onTouchMove):q(document,"mousemove",this._onTouchMove):(q(x,"dragend",this),q(J,"dragstart",this._onDragStart));try{document.selection?mi(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(t,r){if(lr=!1,J&&x){me("dragStarted",this,{evt:r}),this.nativeDraggable&&q(document,"dragover",Im);var n=this.options;!t&&xe(x,n.dragClass,!1),xe(x,n.ghostClass,!0),N.active=this,t&&this._appendGhost(),pe({sortable:this,name:"start",originalEvent:r})}else this._nulling()},_emulateDragOver:function(){if(Me){this._lastX=Me.clientX,this._lastY=Me.clientY,wc();for(var t=document.elementFromPoint(Me.clientX,Me.clientY),r=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(Me.clientX,Me.clientY),t!==r);)r=t;if(x.parentNode[Se]._isOutsideThisEl(t),r)do{if(r[Se]){var n=void 0;if(n=r[Se]._onDragOver({clientX:Me.clientX,clientY:Me.clientY,target:t,rootEl:r}),n&&!this.options.dragoverBubble)break}t=r}while(r=r.parentNode);_c()}},_onTouchMove:function(t){if(Dt){var r=this.options,n=r.fallbackTolerance,i=r.fallbackOffset,o=t.touches?t.touches[0]:t,a=D&&cr(D,!0),s=D&&a&&a.a,l=D&&a&&a.d,u=ci&&ue&&ic(ue),c=(o.clientX-Dt.clientX+i.x)/(s||1)+(u?u[0]-fa[0]:0)/(s||1),f=(o.clientY-Dt.clientY+i.y)/(l||1)+(u?u[1]-fa[1]:0)/(l||1);if(!N.active&&!lr){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))<n)return;this._onDragStart(t,!0)}if(D){a?(a.e+=c-(ua||0),a.f+=f-(ca||0)):a={a:1,b:0,c:0,d:1,e:c,f};var d="matrix(".concat(a.a,",").concat(a.b,",").concat(a.c,",").concat(a.d,",").concat(a.e,",").concat(a.f,")");M(D,"webkitTransform",d),M(D,"mozTransform",d),M(D,"msTransform",d),M(D,"transform",d),ua=c,ca=f,Me=o}t.cancelable&&t.preventDefault()}},_appendGhost:function(){if(!D){var t=this.options.fallbackOnBody?document.body:J,r=ne(x,!0,ci,!0,t),n=this.options;if(ci){for(ue=t;M(ue,"position")==="static"&&M(ue,"transform")==="none"&&ue!==document;)ue=ue.parentNode;ue!==document.body&&ue!==document.documentElement?(ue===document&&(ue=$e()),r.top+=ue.scrollTop,r.left+=ue.scrollLeft):ue=$e(),fa=ic(ue)}D=x.cloneNode(!0),xe(D,n.ghostClass,!1),xe(D,n.fallbackClass,!0),xe(D,n.dragClass,!0),M(D,"transition",""),M(D,"transform",""),M(D,"box-sizing","border-box"),M(D,"margin",0),M(D,"top",r.top),M(D,"left",r.left),M(D,"width",r.width),M(D,"height",r.height),M(D,"opacity","0.8"),M(D,"position",ci?"absolute":"fixed"),M(D,"zIndex","100000"),M(D,"pointerEvents","none"),N.ghost=D,t.appendChild(D),M(D,"transform-origin",oc/parseInt(D.style.width)*100+"% "+ac/parseInt(D.style.height)*100+"%")}},_onDragStart:function(t,r){var n=this,i=t.dataTransfer,o=n.options;if(me("dragStart",this,{evt:t}),N.eventCanceled){this._onDrop();return}me("setupClone",this),N.eventCanceled||(G=mc(x),G.removeAttribute("id"),G.draggable=!1,G.style["will-change"]="",this._hideClone(),xe(G,this.options.chosenClass,!1),N.clone=G),n.cloneId=mi(function(){me("clone",n),!N.eventCanceled&&(n.options.removeCloneOnHide||J.insertBefore(G,x),n._hideClone(),pe({sortable:n,name:"clone"}))}),!r&&xe(x,o.dragClass,!0),r?(bi=!0,n._loopId=setInterval(n._emulateDragOver,50)):(H(document,"mouseup",n._onDrop),H(document,"touchend",n._onDrop),H(document,"touchcancel",n._onDrop),i&&(i.effectAllowed="move",o.setData&&o.setData.call(n,i,x)),q(document,"drop",n),M(x,"transform","translateZ(0)")),lr=!0,n._dragStartId=mi(n._dragStarted.bind(n,r,t)),q(document,"selectstart",n),Hr=!0,zr&&M(document.body,"user-select","none")},_onDragOver:function(t){var r=this.el,n=t.target,i,o,a,s=this.options,l=s.group,u=N.active,c=li===l,f=s.sort,d=le||u,p,m=this,h=!1;if(ga)return;function v(T,L){me(T,m,Be({evt:t,isOwner:c,axis:p?"vertical":"horizontal",revert:a,dragRect:i,targetRect:o,canSort:f,fromSortable:d,target:n,completed:w,onMove:function($,B){return fi(J,r,x,i,$,ne($),t,B)},changed:S},L))}function y(){v("dragOverAnimationCapture"),m.captureAnimationState(),m!==d&&d.captureAnimationState()}function w(T){return v("dragOverCompleted",{insertion:T}),T&&(c?u._hideClone():u._showClone(m),m!==d&&(xe(x,le?le.options.ghostClass:u.options.ghostClass,!1),xe(x,s.ghostClass,!0)),le!==m&&m!==N.active?le=m:m===N.active&&le&&(le=null),d===m&&(m._ignoreWhileAnimating=n),m.animateAll(function(){v("dragOverAnimationComplete"),m._ignoreWhileAnimating=null}),m!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===x&&!x.animated||n===r&&!n.animated)&&(sr=null),!s.dragoverBubble&&!t.rootEl&&n!==document&&(x.parentNode[Se]._isOutsideThisEl(t.target),!T&&Ft(t)),!s.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),h=!0}function S(){Ee=Ce(x),lt=Ce(x,s.draggable),pe({sortable:m,name:"change",toEl:r,newIndex:Ee,newDraggableIndex:lt,originalEvent:t})}if(t.preventDefault!==void 0&&t.cancelable&&t.preventDefault(),n=Ne(n,s.draggable,r,!0),v("dragOver"),N.eventCanceled)return h;if(x.contains(t.target)||n.animated&&n.animatingX&&n.animatingY||m._ignoreWhileAnimating===n)return w(!1);if(bi=!1,u&&!s.disabled&&(c?f||(a=Y!==J):le===this||(this.lastPutMode=li.checkPull(this,u,x,t))&&l.checkPut(this,u,x,t))){if(p=this._getDirection(t,n)==="vertical",i=ne(x),v("dragOverValid"),N.eventCanceled)return h;if(a)return Y=J,y(),this._hideClone(),v("revert"),N.eventCanceled||(Rt?J.insertBefore(x,Rt):J.appendChild(x)),w(!0);var C=_a(r,s.draggable);if(!C||Lm(t,p,this)&&!C.animated){if(C===x)return w(!1);if(C&&r===t.target&&(n=C),n&&(o=ne(n)),fi(J,r,x,i,n,o,t,!!n)!==!1)return y(),C&&C.nextSibling?r.insertBefore(x,C.nextSibling):r.appendChild(x),Y=r,S(),w(!0)}else if(C&&Rm(t,p,this)){var P=fr(r,0,s,!0);if(P===x)return w(!1);if(n=P,o=ne(n),fi(J,r,x,i,n,o,t,!1)!==!1)return y(),r.insertBefore(x,P),Y=r,S(),w(!0)}else if(n.parentNode===r){o=ne(n);var O=0,k,j=x.parentNode!==r,K=!Nm(x.animated&&x.toRect||i,n.animated&&n.toRect||o,p),se=p?"top":"left",X=nc(n,"top","top")||nc(x,"top","top"),W=X?X.scrollTop:void 0;sr!==n&&(k=o[se],Gr=!1,ui=!K&&s.invertSwap||j),O=$m(t,n,o,p,K?1:s.swapThreshold,s.invertedSwapThreshold==null?s.swapThreshold:s.invertedSwapThreshold,ui,sr===n);var I;if(O!==0){var g=Ce(x);do g-=O,I=Y.children[g];while(I&&(M(I,"display")==="none"||I===D))}if(O===0||I===n)return w(!1);sr=n,Jr=O;var b=n.nextElementSibling,E=!1;E=O===1;var A=fi(J,r,x,i,n,o,t,E);if(A!==!1)return(A===1||A===-1)&&(E=A===1),ga=!0,setTimeout(Fm,30),y(),E&&!b?r.appendChild(x):n.parentNode.insertBefore(x,E?b:n),X&&hc(X,0,W-X.scrollTop),Y=x.parentNode,k!==void 0&&!ui&&(hi=Math.abs(k-ne(n)[se])),S(),w(!0)}if(r.contains(x))return w(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){H(document,"mousemove",this._onTouchMove),H(document,"touchmove",this._onTouchMove),H(document,"pointermove",this._onTouchMove),H(document,"dragover",Ft),H(document,"mousemove",Ft),H(document,"touchmove",Ft)},_offUpEvents:function(){var t=this.el.ownerDocument;H(t,"mouseup",this._onDrop),H(t,"touchend",this._onDrop),H(t,"pointerup",this._onDrop),H(t,"touchcancel",this._onDrop),H(document,"selectstart",this)},_onDrop:function(t){var r=this.el,n=this.options;if(Ee=Ce(x),lt=Ce(x,n.draggable),me("drop",this,{evt:t}),Y=x&&x.parentNode,Ee=Ce(x),lt=Ce(x,n.draggable),N.eventCanceled){this._nulling();return}lr=!1,ui=!1,Gr=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),va(this.cloneId),va(this._dragStartId),this.nativeDraggable&&(H(document,"drop",this),H(r,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),zr&&M(document.body,"user-select",""),M(x,"transform",""),t&&(Hr&&(t.cancelable&&t.preventDefault(),!n.dropBubble&&t.stopPropagation()),D&&D.parentNode&&D.parentNode.removeChild(D),(J===Y||le&&le.lastPutMode!=="clone")&&G&&G.parentNode&&G.parentNode.removeChild(G),x&&(this.nativeDraggable&&H(x,"dragend",this),da(x),x.style["will-change"]="",Hr&&!lr&&xe(x,le?le.options.ghostClass:this.options.ghostClass,!1),xe(x,this.options.chosenClass,!1),pe({sortable:this,name:"unchoose",toEl:Y,newIndex:null,newDraggableIndex:null,originalEvent:t}),J!==Y?(Ee>=0&&(pe({rootEl:Y,name:"add",toEl:Y,fromEl:J,originalEvent:t}),pe({sortable:this,name:"remove",toEl:Y,originalEvent:t}),pe({rootEl:Y,name:"sort",toEl:Y,fromEl:J,originalEvent:t}),pe({sortable:this,name:"sort",toEl:Y,originalEvent:t})),le&&le.save()):Ee!==ur&&Ee>=0&&(pe({sortable:this,name:"update",toEl:Y,originalEvent:t}),pe({sortable:this,name:"sort",toEl:Y,originalEvent:t})),N.active&&((Ee==null||Ee===-1)&&(Ee=ur,lt=Vr),pe({sortable:this,name:"end",toEl:Y,originalEvent:t}),this.save()))),this._nulling()},_nulling:function(){me("nulling",this),J=x=Y=D=Rt=G=pi=ut=Dt=Me=Hr=Ee=lt=ur=Vr=sr=Jr=le=li=N.dragged=N.ghost=N.clone=N.active=null,wi.forEach(function(t){t.checked=!0}),wi.length=ua=ca=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":x&&(this._onDragOver(t),Dm(t));break;case"selectstart":t.preventDefault();break}},toArray:function(){for(var t=[],r,n=this.el.children,i=0,o=n.length,a=this.options;i<o;i++)r=n[i],Ne(r,a.draggable,this.el,!1)&&t.push(r.getAttribute(a.dataIdAttr)||jm(r));return t},sort:function(t,r){var n={},i=this.el;this.toArray().forEach(function(o,a){var s=i.children[a];Ne(s,this.options.draggable,i,!1)&&(n[o]=s)},this),r&&this.captureAnimationState(),t.forEach(function(o){n[o]&&(i.removeChild(n[o]),i.appendChild(n[o]))}),r&&this.animateAll()},save:function(){var t=this.options.store;t&&t.set&&t.set(this)},closest:function(t,r){return Ne(t,r||this.options.draggable,this.el,!1)},option:function(t,r){var n=this.options;if(r===void 0)return n[t];var i=Yr.modifyOption(this,t,r);typeof i<"u"?n[t]=i:n[t]=r,t==="group"&&yc(n)},destroy:function(){me("destroy",this);var t=this.el;t[Se]=null,H(t,"mousedown",this._onTapStart),H(t,"touchstart",this._onTapStart),H(t,"pointerdown",this._onTapStart),this.nativeDraggable&&(H(t,"dragover",this),H(t,"dragenter",this)),Array.prototype.forEach.call(t.querySelectorAll("[draggable]"),function(r){r.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),yi.splice(yi.indexOf(this.el),1),this.el=t=null},_hideClone:function(){if(!ut){if(me("hideClone",this),N.eventCanceled)return;M(G,"display","none"),this.options.removeCloneOnHide&&G.parentNode&&G.parentNode.removeChild(G),ut=!0}},_showClone:function(t){if(t.lastPutMode!=="clone"){this._hideClone();return}if(ut){if(me("showClone",this),N.eventCanceled)return;x.parentNode==J&&!this.options.group.revertClone?J.insertBefore(G,x):Rt?J.insertBefore(G,Rt):J.appendChild(G),this.options.group.revertClone&&this.animate(x,G),M(G,"display",""),ut=!1}}};function Dm(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}function fi(e,t,r,n,i,o,a,s){var l,u=e[Se],c=u.options.onMove,f;return window.CustomEvent&&!Je&&!Xr?l=new CustomEvent("move",{bubbles:!0,cancelable:!0}):(l=document.createEvent("Event"),l.initEvent("move",!0,!0)),l.to=t,l.from=e,l.dragged=r,l.draggedRect=n,l.related=i||t,l.relatedRect=o||ne(t),l.willInsertAfter=s,l.originalEvent=a,e.dispatchEvent(l),c&&(f=c.call(u,l,a)),f}function da(e){e.draggable=!1}function Fm(){ga=!1}function Rm(e,t,r){var n=ne(fr(r.el,0,r.options,!0)),i=gc(r.el,r.options,D),o=10;return t?e.clientX<i.left-o||e.clientY<n.top&&e.clientX<n.right:e.clientY<i.top-o||e.clientY<n.bottom&&e.clientX<n.left}function Lm(e,t,r){var n=ne(_a(r.el,r.options.draggable)),i=gc(r.el,r.options,D),o=10;return t?e.clientX>i.right+o||e.clientY>n.bottom&&e.clientX>n.left:e.clientY>i.bottom+o||e.clientX>n.right&&e.clientY>n.top}function $m(e,t,r,n,i,o,a,s){var l=n?e.clientY:e.clientX,u=n?r.height:r.width,c=n?r.top:r.left,f=n?r.bottom:r.right,d=!1;if(!a){if(s&&hi<u*i){if(!Gr&&(Jr===1?l>c+u*o/2:l<f-u*o/2)&&(Gr=!0),Gr)d=!0;else if(Jr===1?l<c+hi:l>f-hi)return-Jr}else if(l>c+u*(1-i)/2&&l<f-u*(1-i)/2)return Bm(t)}return d=d||a,d&&(l<c+u*o/2||l>f-u*o/2)?l>c+u/2?1:-1:0}function Bm(e){return Ce(x)<Ce(e)?1:-1}function jm(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,r=t.length,n=0;r--;)n+=t.charCodeAt(r);return n.toString(36)}function Um(e){wi.length=0;for(var t=e.getElementsByTagName("input"),r=t.length;r--;){var n=t[r];n.checked&&wi.push(n)}}function mi(e){return setTimeout(e,0)}function va(e){return clearTimeout(e)}xi&&q(document,"touchmove",function(e){(N.active||lr)&&e.cancelable&&e.preventDefault()});N.utils={on:q,off:H,css:M,find:dc,is:function(t,r){return!!Ne(t,r,t,!1)},extend:Em,throttle:pc,closest:Ne,toggleClass:xe,clone:mc,index:Ce,nextTick:mi,cancelNextTick:va,detectDirection:bc,getChild:fr};N.get=function(e){return e[Se]};N.mount=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];t[0].constructor===Array&&(t=t[0]),t.forEach(function(n){if(!n.prototype||!n.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(n));n.utils&&(N.utils=Be(Be({},N.utils),n.utils)),Yr.mount(n)})};N.create=function(e,t){return new N(e,t)};N.version=wm;var re=[],qr,ba,ya=!1,pa,ha,_i,Wr;function Hm(){function e(){this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0};for(var t in this)t.charAt(0)==="_"&&typeof this[t]=="function"&&(this[t]=this[t].bind(this))}return e.prototype={dragStarted:function(r){var n=r.originalEvent;this.sortable.nativeDraggable?q(document,"dragover",this._handleAutoScroll):this.options.supportPointer?q(document,"pointermove",this._handleFallbackAutoScroll):n.touches?q(document,"touchmove",this._handleFallbackAutoScroll):q(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(r){var n=r.originalEvent;!this.options.dragOverBubble&&!n.rootEl&&this._handleAutoScroll(n)},drop:function(){this.sortable.nativeDraggable?H(document,"dragover",this._handleAutoScroll):(H(document,"pointermove",this._handleFallbackAutoScroll),H(document,"touchmove",this._handleFallbackAutoScroll),H(document,"mousemove",this._handleFallbackAutoScroll)),lc(),gi(),Sm()},nulling:function(){_i=ba=qr=ya=Wr=pa=ha=null,re.length=0},_handleFallbackAutoScroll:function(r){this._handleAutoScroll(r,!0)},_handleAutoScroll:function(r,n){var i=this,o=(r.touches?r.touches[0]:r).clientX,a=(r.touches?r.touches[0]:r).clientY,s=document.elementFromPoint(o,a);if(_i=r,n||this.options.forceAutoScrollFallback||Xr||Je||zr){ma(r,this.options,s,n);var l=ct(s,!0);ya&&(!Wr||o!==pa||a!==ha)&&(Wr&&lc(),Wr=setInterval(function(){var u=ct(document.elementFromPoint(o,a),!0);u!==l&&(l=u,gi()),ma(r,i.options,u,n)},10),pa=o,ha=a)}else{if(!this.options.bubbleScroll||ct(s,!0)===$e()){gi();return}ma(r,this.options,ct(s,!1),!1)}}},Ve(e,{pluginName:"scroll",initializeByDefault:!0})}function gi(){re.forEach(function(e){clearInterval(e.pid)}),re=[]}function lc(){clearInterval(Wr)}var ma=pc(function(e,t,r,n){if(!!t.scroll){var i=(e.touches?e.touches[0]:e).clientX,o=(e.touches?e.touches[0]:e).clientY,a=t.scrollSensitivity,s=t.scrollSpeed,l=$e(),u=!1,c;ba!==r&&(ba=r,gi(),qr=t.scroll,c=t.scrollFn,qr===!0&&(qr=ct(r,!0)));var f=0,d=qr;do{var p=d,m=ne(p),h=m.top,v=m.bottom,y=m.left,w=m.right,S=m.width,C=m.height,P=void 0,O=void 0,k=p.scrollWidth,j=p.scrollHeight,K=M(p),se=p.scrollLeft,X=p.scrollTop;p===l?(P=S<k&&(K.overflowX==="auto"||K.overflowX==="scroll"||K.overflowX==="visible"),O=C<j&&(K.overflowY==="auto"||K.overflowY==="scroll"||K.overflowY==="visible")):(P=S<k&&(K.overflowX==="auto"||K.overflowX==="scroll"),O=C<j&&(K.overflowY==="auto"||K.overflowY==="scroll"));var W=P&&(Math.abs(w-i)<=a&&se+S<k)-(Math.abs(y-i)<=a&&!!se),I=O&&(Math.abs(v-o)<=a&&X+C<j)-(Math.abs(h-o)<=a&&!!X);if(!re[f])for(var g=0;g<=f;g++)re[g]||(re[g]={});(re[f].vx!=W||re[f].vy!=I||re[f].el!==p)&&(re[f].el=p,re[f].vx=W,re[f].vy=I,clearInterval(re[f].pid),(W!=0||I!=0)&&(u=!0,re[f].pid=setInterval(function(){n&&this.layer===0&&N.active._onTouchMove(_i);var b=re[this.layer].vy?re[this.layer].vy*s:0,E=re[this.layer].vx?re[this.layer].vx*s:0;typeof c=="function"&&c.call(N.dragged.parentNode[Se],E,b,e,_i,re[this.layer].el)!=="continue"||hc(re[this.layer].el,E,b)}.bind({layer:f}),24))),f++}while(t.bubbleScroll&&d!==l&&(d=ct(d,!1)));ya=u}},30),xc=function(t){var r=t.originalEvent,n=t.putSortable,i=t.dragEl,o=t.activeSortable,a=t.dispatchSortableEvent,s=t.hideGhostForTarget,l=t.unhideGhostForTarget;if(!!r){var u=n||o;s();var c=r.changedTouches&&r.changedTouches.length?r.changedTouches[0]:r,f=document.elementFromPoint(c.clientX,c.clientY);l(),u&&!u.el.contains(f)&&(a("spill"),this.onSpill({dragEl:i,putSortable:n}))}};function xa(){}xa.prototype={startIndex:null,dragStart:function(t){var r=t.oldDraggableIndex;this.startIndex=r},onSpill:function(t){var r=t.dragEl,n=t.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var i=fr(this.sortable.el,this.startIndex,this.options);i?this.sortable.el.insertBefore(r,i):this.sortable.el.appendChild(r),this.sortable.animateAll(),n&&n.animateAll()},drop:xc};Ve(xa,{pluginName:"revertOnSpill"});function Ea(){}Ea.prototype={onSpill:function(t){var r=t.dragEl,n=t.putSortable,i=n||this.sortable;i.captureAnimationState(),r.parentNode&&r.parentNode.removeChild(r),i.animateAll()},drop:xc};Ve(Ea,{pluginName:"removeOnSpill"});N.mount(new Hm);N.mount(Ea,xa);var qm=N;function wa(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>wa(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)wa(n,t,!1),n=n.nextElementSibling}function Wm(e){e.directive("sort",(t,{value:r,modifiers:n,expression:i},{effect:o,evaluate:a,cleanup:s})=>{if(r==="config"||r==="handle"||r==="group")return;if(r==="key"||r==="item"){if([void 0,null,""].includes(i))return;t._x_sort_key=a(i);return}let l="[x-sort\\:handle],[wire\\:sort\\:handle]",u={hideGhost:!n.includes("ghost"),useHandles:!!t.querySelector(l)||Array.from(t.querySelectorAll("template:not(svg template)")).some(p=>p.content?.querySelector(l)),group:Gm(t,n)},c=zm(i,a),f=Km(t,n,a),d=Vm(t,f,u,(p,m)=>{c(p,m)});s(()=>d.destroy())})}function zm(e,t){return[void 0,null,""].includes(e)?()=>{}:(r,n)=>{t(e,{scope:{$key:r,$item:r,$position:n},params:[r,n]})}}function Km(e,t,r){return e.hasAttribute("x-sort:config")?r(e.getAttribute("x-sort:config")):e.hasAttribute("wire:sort:config")?r(e.getAttribute("wire:sort:config")):{}}function Vm(e,t,r,n){let i,o={animation:150,handle:r.useHandles?"[x-sort\\:handle],[wire\\:sort\\:handle]":null,group:r.group,scroll:!0,forceAutoScrollFallback:!0,scrollSensitivity:50,preventOnFilter:!1,filter(a){return a.target.hasAttribute("x-sort:ignore")||a.target.hasAttribute("wire:sort:ignore")||a.target.closest("[x-sort\\:ignore]")||a.target.closest("[wire\\:sort\\:ignore]")?!0:e.querySelector("[x-sort\\:item],[wire\\:sort\\:item]")?!a.target.closest("[x-sort\\:item],[wire\\:sort\\:item]"):!1},onSort(a){if(a.from!==a.to&&a.to!==a.target)return;let s;wa(a.item,(u,c)=>{s===void 0&&u._x_sort_key&&(s=u._x_sort_key,c())});let l=a.newIndex;(s!==void 0||s!==null)&&n(s,l)},onStart(){document.body.classList.add("sorting"),i=document.querySelector(".sortable-ghost"),r.hideGhost&&i&&(i.style.opacity="0")},onEnd(){document.body.classList.remove("sorting"),r.hideGhost&&i&&(i.style.opacity="1"),i=void 0,Jm(e)}};return new qm(e,{...o,...t})}function Jm(e){let t=e.firstChild;for(;t.nextSibling;){if(t.textContent.trim()==="[if ENDBLOCK]><![endif]"){e.append(t);break}t=t.nextSibling}}function Gm(e,t){return e.hasAttribute("x-sort:group")?e.getAttribute("x-sort:group"):e.hasAttribute("wire:sort:group")?e.getAttribute("wire:sort:group"):t.indexOf("group")!==-1?t[t.indexOf("group")+1]:null}var Ec=Wm;function Xm(e){e.directive("resize",e.skipDuringClone((t,{value:r,expression:n,modifiers:i},{evaluateLater:o,cleanup:a})=>{let s=o(n),l=(c,f)=>{s(()=>{},{scope:{$width:c,$height:f}})},u=i.includes("document")?Qm(l):Ym(t,l);a(()=>u())}))}function Ym(e,t){let r=new ResizeObserver(n=>{let[i,o]=Sc(n);t(i,o)});return r.observe(e),()=>r.disconnect()}var Sa,Aa=new Set;function Qm(e){return Aa.add(e),Sa||(Sa=new ResizeObserver(t=>{let[r,n]=Sc(t);Aa.forEach(i=>i(r,n))}),Sa.observe(document.documentElement)),()=>{Aa.delete(e)}}function Sc(e){let t,r;for(let n of e)t=n.borderBoxSize[0].inlineSize,r=n.borderBoxSize[0].blockSize;return[t,r]}var Ac=Xm;var Si=Math.min,Lt=Math.max,Ai=Math.round,Ei=Math.floor,ft=e=>({x:e,y:e}),Zm={left:"right",right:"left",bottom:"top",top:"bottom"},eg={start:"end",end:"start"};function Cc(e,t,r){return Lt(e,Si(t,r))}function ki(e,t){return typeof e=="function"?e(t):e}function $t(e){return e.split("-")[0]}function Ti(e){return e.split("-")[1]}function Ic(e){return e==="x"?"y":"x"}function Dc(e){return e==="y"?"height":"width"}function Mi(e){return["top","bottom"].includes($t(e))?"y":"x"}function Fc(e){return Ic(Mi(e))}function tg(e,t,r){r===void 0&&(r=!1);let n=Ti(e),i=Fc(e),o=Dc(i),a=i==="x"?n===(r?"end":"start")?"right":"left":n==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=Ci(a)),[a,Ci(a)]}function rg(e){let t=Ci(e);return[Ca(e),t,Ca(t)]}function Ca(e){return e.replace(/start|end/g,t=>eg[t])}function ng(e,t,r){let n=["left","right"],i=["right","left"],o=["top","bottom"],a=["bottom","top"];switch(e){case"top":case"bottom":return r?t?i:n:t?n:i;case"left":case"right":return t?o:a;default:return[]}}function ig(e,t,r,n){let i=Ti(e),o=ng($t(e),r==="start",n);return i&&(o=o.map(a=>a+"-"+i),t&&(o=o.concat(o.map(Ca)))),o}function Ci(e){return e.replace(/left|right|bottom|top/g,t=>Zm[t])}function og(e){return{top:0,right:0,bottom:0,left:0,...e}}function ag(e){return typeof e!="number"?og(e):{top:e,right:e,bottom:e,left:e}}function Oi(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function Oc(e,t,r){let{reference:n,floating:i}=e,o=Mi(t),a=Fc(t),s=Dc(a),l=$t(t),u=o==="y",c=n.x+n.width/2-i.width/2,f=n.y+n.height/2-i.height/2,d=n[s]/2-i[s]/2,p;switch(l){case"top":p={x:c,y:n.y-i.height};break;case"bottom":p={x:c,y:n.y+n.height};break;case"right":p={x:n.x+n.width,y:f};break;case"left":p={x:n.x-i.width,y:f};break;default:p={x:n.x,y:n.y}}switch(Ti(t)){case"start":p[a]-=d*(r&&u?-1:1);break;case"end":p[a]+=d*(r&&u?-1:1);break}return p}var sg=async(e,t,r)=>{let{placement:n="bottom",strategy:i="absolute",middleware:o=[],platform:a}=r,s=o.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t)),u=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:c,y:f}=Oc(u,n,l),d=n,p={},m=0;for(let h=0;h<s.length;h++){let{name:v,fn:y}=s[h],{x:w,y:S,data:C,reset:P}=await y({x:c,y:f,initialPlacement:n,placement:d,strategy:i,middlewareData:p,rects:u,platform:a,elements:{reference:e,floating:t}});if(c=w??c,f=S??f,p={...p,[v]:{...p[v],...C}},P&&m<=50){m++,typeof P=="object"&&(P.placement&&(d=P.placement),P.rects&&(u=P.rects===!0?await a.getElementRects({reference:e,floating:t,strategy:i}):P.rects),{x:c,y:f}=Oc(u,d,l)),h=-1;continue}}return{x:c,y:f,placement:d,strategy:i,middlewareData:p}};async function Rc(e,t){var r;t===void 0&&(t={});let{x:n,y:i,platform:o,rects:a,elements:s,strategy:l}=e,{boundary:u="clippingAncestors",rootBoundary:c="viewport",elementContext:f="floating",altBoundary:d=!1,padding:p=0}=ki(t,e),m=ag(p),v=s[d?f==="floating"?"reference":"floating":f],y=Oi(await o.getClippingRect({element:(r=await(o.isElement==null?void 0:o.isElement(v)))==null||r?v:v.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(s.floating)),boundary:u,rootBoundary:c,strategy:l})),w=f==="floating"?{...a.floating,x:n,y:i}:a.reference,S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(s.floating)),C=await(o.isElement==null?void 0:o.isElement(S))?await(o.getScale==null?void 0:o.getScale(S))||{x:1,y:1}:{x:1,y:1},P=Oi(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({rect:w,offsetParent:S,strategy:l}):w);return{top:(y.top-P.top+m.top)/C.y,bottom:(P.bottom-y.bottom+m.bottom)/C.y,left:(y.left-P.left+m.left)/C.x,right:(P.right-y.right+m.right)/C.x}}var lg=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var r,n;let{placement:i,middlewareData:o,rects:a,initialPlacement:s,platform:l,elements:u}=t,{mainAxis:c=!0,crossAxis:f=!0,fallbackPlacements:d,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:m="none",flipAlignment:h=!0,...v}=ki(e,t);if((r=o.arrow)!=null&&r.alignmentOffset)return{};let y=$t(i),w=$t(s)===s,S=await(l.isRTL==null?void 0:l.isRTL(u.floating)),C=d||(w||!h?[Ci(s)]:rg(s));!d&&m!=="none"&&C.push(...ig(s,h,m,S));let P=[s,...C],O=await Rc(t,v),k=[],j=((n=o.flip)==null?void 0:n.overflows)||[];if(c&&k.push(O[y]),f){let W=tg(i,a,S);k.push(O[W[0]],O[W[1]])}if(j=[...j,{placement:i,overflows:k}],!k.every(W=>W<=0)){var K,se;let W=(((K=o.flip)==null?void 0:K.index)||0)+1,I=P[W];if(I)return{data:{index:W,overflows:j},reset:{placement:I}};let g=(se=j.filter(b=>b.overflows[0]<=0).sort((b,E)=>b.overflows[1]-E.overflows[1])[0])==null?void 0:se.placement;if(!g)switch(p){case"bestFit":{var X;let b=(X=j.map(E=>[E.placement,E.overflows.filter(A=>A>0).reduce((A,T)=>A+T,0)]).sort((E,A)=>E[1]-A[1])[0])==null?void 0:X[0];b&&(g=b);break}case"initialPlacement":g=s;break}if(i!==g)return{reset:{placement:g}}}return{}}}};async function ug(e,t){let{placement:r,platform:n,elements:i}=e,o=await(n.isRTL==null?void 0:n.isRTL(i.floating)),a=$t(r),s=Ti(r),l=Mi(r)==="y",u=["left","top"].includes(a)?-1:1,c=o&&l?-1:1,f=ki(t,e),{mainAxis:d,crossAxis:p,alignmentAxis:m}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...f};return s&&typeof m=="number"&&(p=s==="end"?m*-1:m),l?{x:p*c,y:d*u}:{x:d*u,y:p*c}}var cg=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){let{x:r,y:n}=t,i=await ug(t,e);return{x:r+i.x,y:n+i.y,data:i}}}},fg=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:r,y:n,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:v=>{let{x:y,y:w}=v;return{x:y,y:w}}},...l}=ki(e,t),u={x:r,y:n},c=await Rc(t,l),f=Mi($t(i)),d=Ic(f),p=u[d],m=u[f];if(o){let v=d==="y"?"top":"left",y=d==="y"?"bottom":"right",w=p+c[v],S=p-c[y];p=Cc(w,p,S)}if(a){let v=f==="y"?"top":"left",y=f==="y"?"bottom":"right",w=m+c[v],S=m-c[y];m=Cc(w,m,S)}let h=s.fn({...t,[d]:p,[f]:m});return{...h,data:{x:h.x-r,y:h.y-n}}}}};function dt(e){return Lc(e)?(e.nodeName||"").toLowerCase():"#document"}function Ae(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Xe(e){var t;return(t=(Lc(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Lc(e){return e instanceof Node||e instanceof Ae(e).Node}function Ge(e){return e instanceof Element||e instanceof Ae(e).Element}function je(e){return e instanceof HTMLElement||e instanceof Ae(e).HTMLElement}function kc(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Ae(e).ShadowRoot}function Zr(e){let{overflow:t,overflowX:r,overflowY:n,display:i}=Oe(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!["inline","contents"].includes(i)}function dg(e){return["table","td","th"].includes(dt(e))}function Oa(e){let t=ka(),r=Oe(e);return r.transform!=="none"||r.perspective!=="none"||(r.containerType?r.containerType!=="normal":!1)||!t&&(r.backdropFilter?r.backdropFilter!=="none":!1)||!t&&(r.filter?r.filter!=="none":!1)||["transform","perspective","filter"].some(n=>(r.willChange||"").includes(n))||["paint","layout","strict","content"].some(n=>(r.contain||"").includes(n))}function pg(e){let t=pr(e);for(;je(t)&&!Ni(t);){if(Oa(t))return t;t=pr(t)}return null}function ka(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function Ni(e){return["html","body","#document"].includes(dt(e))}function Oe(e){return Ae(e).getComputedStyle(e)}function Pi(e){return Ge(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function pr(e){if(dt(e)==="html")return e;let t=e.assignedSlot||e.parentNode||kc(e)&&e.host||Xe(e);return kc(t)?t.host:t}function $c(e){let t=pr(e);return Ni(t)?e.ownerDocument?e.ownerDocument.body:e.body:je(t)&&Zr(t)?t:$c(t)}function Qr(e,t,r){var n;t===void 0&&(t=[]),r===void 0&&(r=!0);let i=$c(e),o=i===((n=e.ownerDocument)==null?void 0:n.body),a=Ae(i);return o?t.concat(a,a.visualViewport||[],Zr(i)?i:[],a.frameElement&&r?Qr(a.frameElement):[]):t.concat(i,Qr(i,[],r))}function Bc(e){let t=Oe(e),r=parseFloat(t.width)||0,n=parseFloat(t.height)||0,i=je(e),o=i?e.offsetWidth:r,a=i?e.offsetHeight:n,s=Ai(r)!==o||Ai(n)!==a;return s&&(r=o,n=a),{width:r,height:n,$:s}}function Ta(e){return Ge(e)?e:e.contextElement}function dr(e){let t=Ta(e);if(!je(t))return ft(1);let r=t.getBoundingClientRect(),{width:n,height:i,$:o}=Bc(t),a=(o?Ai(r.width):r.width)/n,s=(o?Ai(r.height):r.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}var hg=ft(0);function jc(e){let t=Ae(e);return!ka()||!t.visualViewport?hg:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function mg(e,t,r){return t===void 0&&(t=!1),!r||t&&r!==Ae(e)?!1:t}function Bt(e,t,r,n){t===void 0&&(t=!1),r===void 0&&(r=!1);let i=e.getBoundingClientRect(),o=Ta(e),a=ft(1);t&&(n?Ge(n)&&(a=dr(n)):a=dr(e));let s=mg(o,r,n)?jc(o):ft(0),l=(i.left+s.x)/a.x,u=(i.top+s.y)/a.y,c=i.width/a.x,f=i.height/a.y;if(o){let d=Ae(o),p=n&&Ge(n)?Ae(n):n,m=d.frameElement;for(;m&&n&&p!==d;){let h=dr(m),v=m.getBoundingClientRect(),y=Oe(m),w=v.left+(m.clientLeft+parseFloat(y.paddingLeft))*h.x,S=v.top+(m.clientTop+parseFloat(y.paddingTop))*h.y;l*=h.x,u*=h.y,c*=h.x,f*=h.y,l+=w,u+=S,m=Ae(m).frameElement}}return Oi({width:c,height:f,x:l,y:u})}function gg(e){let{rect:t,offsetParent:r,strategy:n}=e,i=je(r),o=Xe(r);if(r===o)return t;let a={scrollLeft:0,scrollTop:0},s=ft(1),l=ft(0);if((i||!i&&n!=="fixed")&&((dt(r)!=="body"||Zr(o))&&(a=Pi(r)),je(r))){let u=Bt(r);s=dr(r),l.x=u.x+r.clientLeft,l.y=u.y+r.clientTop}return{width:t.width*s.x,height:t.height*s.y,x:t.x*s.x-a.scrollLeft*s.x+l.x,y:t.y*s.y-a.scrollTop*s.y+l.y}}function vg(e){return Array.from(e.getClientRects())}function Uc(e){return Bt(Xe(e)).left+Pi(e).scrollLeft}function bg(e){let t=Xe(e),r=Pi(e),n=e.ownerDocument.body,i=Lt(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),o=Lt(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight),a=-r.scrollLeft+Uc(e),s=-r.scrollTop;return Oe(n).direction==="rtl"&&(a+=Lt(t.clientWidth,n.clientWidth)-i),{width:i,height:o,x:a,y:s}}function yg(e,t){let r=Ae(e),n=Xe(e),i=r.visualViewport,o=n.clientWidth,a=n.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;let u=ka();(!u||u&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}return{width:o,height:a,x:s,y:l}}function wg(e,t){let r=Bt(e,!0,t==="fixed"),n=r.top+e.clientTop,i=r.left+e.clientLeft,o=je(e)?dr(e):ft(1),a=e.clientWidth*o.x,s=e.clientHeight*o.y,l=i*o.x,u=n*o.y;return{width:a,height:s,x:l,y:u}}function Tc(e,t,r){let n;if(t==="viewport")n=yg(e,r);else if(t==="document")n=bg(Xe(e));else if(Ge(t))n=wg(t,r);else{let i=jc(e);n={...t,x:t.x-i.x,y:t.y-i.y}}return Oi(n)}function Hc(e,t){let r=pr(e);return r===t||!Ge(r)||Ni(r)?!1:Oe(r).position==="fixed"||Hc(r,t)}function _g(e,t){let r=t.get(e);if(r)return r;let n=Qr(e,[],!1).filter(s=>Ge(s)&&dt(s)!=="body"),i=null,o=Oe(e).position==="fixed",a=o?pr(e):e;for(;Ge(a)&&!Ni(a);){let s=Oe(a),l=Oa(a);!l&&s.position==="fixed"&&(i=null),(o?!l&&!i:!l&&s.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||Zr(a)&&!l&&Hc(e,a))?n=n.filter(c=>c!==a):i=s,a=pr(a)}return t.set(e,n),n}function xg(e){let{element:t,boundary:r,rootBoundary:n,strategy:i}=e,a=[...r==="clippingAncestors"?_g(t,this._c):[].concat(r),n],s=a[0],l=a.reduce((u,c)=>{let f=Tc(t,c,i);return u.top=Lt(f.top,u.top),u.right=Si(f.right,u.right),u.bottom=Si(f.bottom,u.bottom),u.left=Lt(f.left,u.left),u},Tc(t,s,i));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function Eg(e){return Bc(e)}function Sg(e,t,r){let n=je(t),i=Xe(t),o=r==="fixed",a=Bt(e,!0,o,t),s={scrollLeft:0,scrollTop:0},l=ft(0);if(n||!n&&!o)if((dt(t)!=="body"||Zr(i))&&(s=Pi(t)),n){let u=Bt(t,!0,o,t);l.x=u.x+t.clientLeft,l.y=u.y+t.clientTop}else i&&(l.x=Uc(i));return{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function Mc(e,t){return!je(e)||Oe(e).position==="fixed"?null:t?t(e):e.offsetParent}function qc(e,t){let r=Ae(e);if(!je(e))return r;let n=Mc(e,t);for(;n&&dg(n)&&Oe(n).position==="static";)n=Mc(n,t);return n&&(dt(n)==="html"||dt(n)==="body"&&Oe(n).position==="static"&&!Oa(n))?r:n||pg(e)||r}var Ag=async function(e){let{reference:t,floating:r,strategy:n}=e,i=this.getOffsetParent||qc,o=this.getDimensions;return{reference:Sg(t,await i(r),n),floating:{x:0,y:0,...await o(r)}}};function Cg(e){return Oe(e).direction==="rtl"}var Og={convertOffsetParentRelativeRectToViewportRelativeRect:gg,getDocumentElement:Xe,getClippingRect:xg,getOffsetParent:qc,getElementRects:Ag,getClientRects:vg,getDimensions:Eg,getScale:dr,isElement:Ge,isRTL:Cg};function kg(e,t){let r=null,n,i=Xe(e);function o(){clearTimeout(n),r&&r.disconnect(),r=null}function a(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),o();let{left:u,top:c,width:f,height:d}=e.getBoundingClientRect();if(s||t(),!f||!d)return;let p=Ei(c),m=Ei(i.clientWidth-(u+f)),h=Ei(i.clientHeight-(c+d)),v=Ei(u),w={rootMargin:-p+"px "+-m+"px "+-h+"px "+-v+"px",threshold:Lt(0,Si(1,l))||1},S=!0;function C(P){let O=P[0].intersectionRatio;if(O!==l){if(!S)return a();O?a(!1,O):n=setTimeout(()=>{a(!1,1e-7)},100)}S=!1}try{r=new IntersectionObserver(C,{...w,root:i.ownerDocument})}catch{r=new IntersectionObserver(C,w)}r.observe(e)}return a(!0),o}function Tg(e,t,r,n){n===void 0&&(n={});let{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=n,u=Ta(e),c=i||o?[...u?Qr(u):[],...Qr(t)]:[];c.forEach(y=>{i&&y.addEventListener("scroll",r,{passive:!0}),o&&y.addEventListener("resize",r)});let f=u&&s?kg(u,r):null,d=-1,p=null;a&&(p=new ResizeObserver(y=>{let[w]=y;w&&w.target===u&&p&&(p.unobserve(t),cancelAnimationFrame(d),d=requestAnimationFrame(()=>{p&&p.observe(t)})),r()}),u&&!l&&p.observe(u),p.observe(t));let m,h=l?Bt(e):null;l&&v();function v(){let y=Bt(e);h&&(y.x!==h.x||y.y!==h.y||y.width!==h.width||y.height!==h.height)&&r(),h=y,m=requestAnimationFrame(v)}return r(),()=>{c.forEach(y=>{i&&y.removeEventListener("scroll",r),o&&y.removeEventListener("resize",r)}),f&&f(),p&&p.disconnect(),p=null,l&&cancelAnimationFrame(m)}}var Mg=(e,t,r)=>{let n=new Map,i={platform:Og,...r},o={...i.platform,_c:n};return sg(e,t,{...i,platform:o})};function Ng(e){e.magic("anchor",t=>{if(!t._x_anchor)throw"Alpine: No x-anchor directive found on element using $anchor...";return t._x_anchor}),e.interceptClone((t,r)=>{t&&t._x_anchor&&!r._x_anchor&&(r._x_anchor=t._x_anchor)}),e.directive("anchor",e.skipDuringClone((t,{expression:r,modifiers:n,value:i},{evaluate:o,effect:a,cleanup:s})=>{let{placement:l,offsetValue:u,unstyled:c,strategy:f,allowFlip:d}=Pc(n);t._x_anchor=e.reactive({x:0,y:0});let p=null,m=null;a(()=>{let h=o(r);if(!!h&&p!==h){m&&m(),p=h;let v=()=>{let y;Mg(h,t,{placement:l,strategy:f,middleware:[d&&lg(),fg({padding:5}),cg(u)]}).then(({x:w,y:S})=>{c||Nc(t,w,S,f),JSON.stringify({x:w,y:S})!==y&&(t._x_anchor.x=w,t._x_anchor.y=S),y=JSON.stringify({x:w,y:S})})};m=Tg(h,t,()=>v())}}),s(()=>{m&&m()})},(t,{expression:r,modifiers:n,value:i},{cleanup:o,evaluate:a})=>{let{placement:s,offsetValue:l,unstyled:u,strategy:c}=Pc(n);t._x_anchor&&(u||Nc(t,t._x_anchor.x,t._x_anchor.y,c))}))}function Nc(e,t,r,n="absolute"){Object.assign(e.style,{left:t+"px",top:r+"px",position:n})}function Pc(e){let r=["top","top-start","top-end","right","right-start","right-end","bottom","bottom-start","bottom-end","left","left-start","left-end"].find(s=>e.includes(s)),n=0;if(e.includes("offset")){let s=e.findIndex(l=>l==="offset");n=e[s+1]!==void 0?Number(e[s+1]):n}let i=e.includes("no-style"),o=!e.includes("noflip"),a=e.includes("fixed")?"fixed":"absolute";return{placement:r,offsetValue:n,unstyled:i,strategy:a,allowFlip:o}}var Wc=Ng;function en(e){if(e!==void 0)return JSON.parse(JSON.stringify(e))}function zc(e){let t={queued:!1,updates:{},add(r){Object.assign(t.updates,r),!t.queued&&(t.queued=!0,queueMicrotask(t.flush))},flush(){Object.keys(t.updates).length&&e(t.updates),t.queued=!1,t.updates={}}};return t}var Ma=class{constructor(){this.url=null,this.errorHandlers={},this.batch=zc(t=>{let r=this.getUrl();this.writeToHistory("replaceState",r,n=>(n.alpine={...n.alpine,...en(t)},n)),this.url=null})}addErrorHandler(t,r){this.errorHandlers[t]=r}getUrl(){return this.url?(this.url instanceof URL&&(this.url.hash=window.location.hash),this.url):new URL(window.location.href)}replaceState(t,r){this.url=t,this.batch.add(r)}pushState(t,r){this.batch.flush(),this.writeToHistory("pushState",t,n=>(n={alpine:{...n.alpine,...en(r)}},n))}writeToHistory(t,r,n){let i=window.history.state||{};i.alpine||(i.alpine={}),i=n(i);try{window.history[t](i,"",r.toString())}catch(o){Object.values(this.errorHandlers).forEach(a=>typeof a=="function"&&a(o,r)),this.errorHandlers={},console.error(o)}}},Pg=new Ma,Ye=Pg;var tn=class{constructor(t,r){this.url=t,this.html=r}},ge={currentKey:null,currentUrl:null,keys:[],lookup:{},limit:10,has(e){return this.lookup[e]!==void 0},retrieve(e){let t=this.lookup[e];if(t===void 0)throw"No back button cache found for current location: "+e;return t},replace(e,t){this.has(e)?this.lookup[e]=t:this.push(e,t)},push(e,t){this.lookup[e]=t;let r=this.keys.indexOf(e);r>-1&&this.keys.splice(r,1),this.keys.unshift(e),this.trim()},trim(){for(let e of this.keys.splice(this.limit))delete this.lookup[e]}},Ii=null;function Di(e){Ii=e}function Kc(){let e=Ye.getUrl();Na(e,document.documentElement.outerHTML)}function Vc(e,t){let r=document.documentElement.outerHTML;ge.replace(e,new tn(t,r))}function Jc(e,t){let r;e(n=>r=n),window.addEventListener("popstate",n=>{let i=n.state||{},o=i.alpine||{};if(Ii&&(Ii<200||Ii>=300))return window.location.href=o.url;if(Object.keys(i).length!==0&&!!o.snapshotIdx)if(ge.has(o.snapshotIdx)){let a=ge.retrieve(o.snapshotIdx);t(a.html,a.url,ge.currentUrl,ge.currentKey),ge.currentKey=o.snapshotIdx,ge.currentUrl=a.url}else ge.currentKey=null,ge.currentUrl=null,r(o.url)})}function Gc(e,t){Ig(t,e)}function Ig(e,t){Xc("pushState",e,t)}function Na(e,t){Xc("replaceState",e,t)}function Xc(e,t,r){let n=t.toString()+"-"+Math.random();e==="pushState"?ge.push(n,new tn(t,r)):ge.replace(n=ge.currentKey??n,new tn(t,r)),Ye.addErrorHandler("navigate",i=>{i instanceof DOMException&&i.name==="SecurityError"&&console.error("Livewire: You can't use wire:navigate with a link to a different root domain: "+t)}),Ye[e](t,{snapshotIdx:n,url:t.toString()}),ge.currentKey=n,ge.currentUrl=t}function Yc(e,t){let r=o=>!o.isTrusted,n=o=>o.which>1||o.altKey||o.ctrlKey||o.metaKey||o.shiftKey,i=o=>o.which!==13||o.altKey||o.ctrlKey||o.metaKey||o.shiftKey;e.addEventListener("click",o=>{if(r(o)){o.preventDefault(),t(a=>a());return}n(o)||o.preventDefault()}),e.addEventListener("mousedown",o=>{n(o)||(o.preventDefault(),t(a=>{let s=l=>{l.preventDefault(),requestAnimationFrame(()=>{a()}),e.removeEventListener("mouseup",s)};e.addEventListener("mouseup",s)}))}),e.addEventListener("keydown",o=>{i(o)||(o.preventDefault(),t(a=>a()))})}function Qc(e,t=60,r){e.addEventListener("mouseenter",n=>{let i=setTimeout(()=>{r(n)},t),o=()=>{clearTimeout(i),e.removeEventListener("mouseleave",o)};e.addEventListener("mouseleave",o)})}function Pa(e){return rn(e.getAttribute("href"))}function rn(e){return e!==null&&new URL(e,document.baseURI)}function hr(e){return e.pathname+e.search+e.hash}function Zc(e,t,r){let n=hr(e);Ia(n,(i,o,a)=>{Di(a),t(i,o)},r)}function Ia(e,t,r){au(e,t,r)}var ve={},Dg=3e4;function Da(e,t,r){let n=hr(e);ve[n]||(ve[n]={finished:!1,html:null,whenFinished:()=>setTimeout(()=>delete ve[n],Dg)},Ia(n,(i,o,a)=>{Di(a),t(i,o)},()=>{delete ve[n],r()}))}function Fa(e,t,r){let n=ve[hr(t)];n.html=e,n.finished=!0,n.finalDestination=r,n.whenFinished()}function ef(e,t,r){let n=hr(e);if(!ve[n])return r();if(ve[n].finished){let i=ve[n].html,o=ve[n].finalDestination;return delete ve[n],t(i,o)}else ve[n].whenFinished=()=>{let i=ve[n].html,o=ve[n].finalDestination;delete ve[n],t(i,o)}}function Ra(e){_.mutateDom(()=>{e.querySelectorAll("[data-teleport-template]").forEach(t=>t._x_teleport.remove())})}function La(e){_.mutateDom(()=>{e.querySelectorAll("[data-teleport-target]").forEach(t=>t.remove())})}function $a(e){_.walk(e,(t,r)=>{!t._x_teleport||(t._x_teleportPutBack(),r())})}function tf(e){return e.hasAttribute("data-teleport-target")}function Ba(){document.body.setAttribute("data-scroll-x",document.body.scrollLeft),document.body.setAttribute("data-scroll-y",document.body.scrollTop),document.querySelectorAll(["[x-navigate\\:scroll]","[wire\\:navigate\\:scroll]"]).forEach(e=>{e.setAttribute("data-scroll-x",e.scrollLeft),e.setAttribute("data-scroll-y",e.scrollTop)})}function ja(){let e=t=>{t.hasAttribute("data-scroll-x")?(t.scrollTo({top:Number(t.getAttribute("data-scroll-y")),left:Number(t.getAttribute("data-scroll-x")),behavior:"instant"}),t.removeAttribute("data-scroll-x"),t.removeAttribute("data-scroll-y")):window.scrollTo({top:0,left:0,behavior:"instant"})};queueMicrotask(()=>{queueMicrotask(()=>{e(document.body),document.querySelectorAll(["[x-navigate\\:scroll]","[wire\\:navigate\\:scroll]"]).forEach(e)})})}var nn={};function Ua(e){nn={},document.querySelectorAll("[x-persist]").forEach(t=>{nn[t.getAttribute("x-persist")]=t,e(t),_.mutateDom(()=>{t.remove()})})}function Ha(e){let t=[];document.querySelectorAll("[x-persist]").forEach(r=>{let n=nn[r.getAttribute("x-persist")];!n||(t.push(r.getAttribute("x-persist")),n._x_wasPersisted=!0,e(n,r),_.mutateDom(()=>{r.replaceWith(n)}))}),Object.entries(nn).forEach(([r,n])=>{t.includes(r)||_.destroyTree(n)}),nn={}}function rf(e){return e.hasAttribute("x-persist")}var on=Qf(of());on.default.configure({minimum:.1,trickleSpeed:200,showSpinner:!1,parent:"body"});Fg();var Wa=!1;function af(){Wa=!0,setTimeout(()=>{!Wa||on.default.start()},150)}function an(){Wa=!1,on.default.done()}function sf(){on.default.remove()}function Fg(){let e=document.createElement("style");e.innerHTML=`/* Make clicks pass-through */ #nprogress { pointer-events: none; @@ -82,22 +79,53 @@ Would you like to refresh the page?`)&&window.location.reload()}function _c(e){f 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } - `;let t=ai();t&&(e.nonce=t),document.head.appendChild(e)}var jn=[],wa=["data-csrf","aria-hidden"];function qn(e,t){let r=new DOMParser().parseFromString(e,"text/html"),n=document.adoptNode(r.body),i=document.adoptNode(r.head);jn=jn.concat(Array.from(document.body.querySelectorAll("script")).map(a=>Sa(Ea(a.outerHTML,wa))));let o=()=>{};$f(i).finally(()=>{o()}),Ff(n,jn);let s=document.body;document.body.replaceWith(n),Alpine.destroyTree(s),t(a=>o=a)}function Ff(e,t){e.querySelectorAll("script").forEach(r=>{if(r.hasAttribute("data-navigate-once")){let n=Sa(Ea(r.outerHTML,wa));if(t.includes(n))return}r.replaceWith(ya(r))})}function $f(e){let t=Array.from(document.head.children),r=t.map(s=>s.outerHTML),n=document.createDocumentFragment(),i=[],o=[];for(let s of Array.from(e.children))if(ba(s)){if(r.includes(s.outerHTML))n.appendChild(s);else if(xa(s)&&Bf(s,t)&&setTimeout(()=>window.location.reload()),_a(s))try{o.push(Df(ya(s)))}catch{}else document.head.appendChild(s);i.push(s)}for(let s of Array.from(document.head.children))ba(s)||s.remove();for(let s of Array.from(e.children))document.head.appendChild(s);return Promise.all(o)}async function Df(e){return new Promise((t,r)=>{e.src?(e.onload=()=>t(),e.onerror=()=>r()):t(),document.head.appendChild(e)})}function ya(e){let t=document.createElement("script");t.textContent=e.textContent,t.async=e.async;for(let r of e.attributes)t.setAttribute(r.name,r.value);return t}function xa(e){return e.hasAttribute("data-navigate-track")}function Bf(e,t){let[r,n]=va(e);return t.some(i=>{if(!xa(i))return!1;let[o,s]=va(i);if(o===r&&n!==s)return!0})}function va(e){return(_a(e)?e.src:e.href).split("?")}function ba(e){return e.tagName.toLowerCase()==="link"&&e.getAttribute("rel").toLowerCase()==="stylesheet"||e.tagName.toLowerCase()==="style"||e.tagName.toLowerCase()==="script"}function _a(e){return e.tagName.toLowerCase()==="script"}function Sa(e){return e.split("").reduce((t,r)=>(t=(t<<5)-t+r.charCodeAt(0),t&t),0)}function Ea(e,t){let r=e;return t.forEach(n=>{let i=new RegExp(`${n}="[^"]*"|${n}='[^']*'`,"g");r=r.replace(i,"")}),r=r.replaceAll(" ",""),r.trim()}var pr=!0,Wn=!0,Uf=!0,Aa=!1;function ka(e){e.navigate=r=>{let n=be(r);ue("alpine:navigate",{url:n,history:!1,cached:!1})||t(n)},e.navigate.disableProgressBar=()=>{Wn=!1},e.addInitSelector(()=>`[${e.prefixed("navigate")}]`),e.directive("navigate",(r,{modifiers:n})=>{n.includes("hover")&&aa(r,60,()=>{let o=kn(r);!o||Nn(o,(s,a)=>{Rn(s,o,a)})}),sa(r,o=>{let s=kn(r);!s||(Nn(s,(a,l)=>{Rn(a,s,l)}),o(()=>{ue("alpine:navigate",{url:s,history:!1,cached:!1})||t(s)}))})});function t(r,n=!0){Wn&&ha(),Hf(r,(i,o)=>{ue("alpine:navigating"),Uf&&Fn(),Wn&&ma(),jf(),ta(),Ca(e,s=>{pr&&Dn(a=>{Pn(a)}),n?ia(i,o):Tn(o,i),qn(i,a=>{Mn(document.body),pr&&Bn((l,u)=>{In(l)}),$n(),a(()=>{s(()=>{setTimeout(()=>{Aa&&Ta()}),Oa(e),ue("alpine:navigated")})})})})})}na(r=>{r(n=>{let i=be(n);if(ue("alpine:navigate",{url:i,history:!0,cached:!1}))return;t(i,!1)})},(r,n,i,o)=>{let s=be(n);ue("alpine:navigate",{url:s,history:!0,cached:!0})||(Fn(),ue("alpine:navigating"),ra(i,o),Ca(e,l=>{pr&&Dn(u=>{Pn(u)}),qn(r,()=>{ga(),Mn(document.body),pr&&Bn((u,f)=>{In(u)}),$n(),l(()=>{Aa&&Ta(),Oa(e),ue("alpine:navigated")})})}))}),setTimeout(()=>{ue("alpine:navigated")})}function Hf(e,t){ua(e,t,()=>{la(e,t)})}function Ca(e,t){e.stopObservingMutations(),t(r=>{e.startObservingMutations(),queueMicrotask(()=>{r()})})}function ue(e,t){let r=new CustomEvent(e,{cancelable:!0,bubbles:!0,detail:t});return document.dispatchEvent(r),r.defaultPrevented}function Oa(e){e.initTree(document.body,void 0,(t,r)=>{t._x_wasPersisted&&r()})}function Ta(){document.querySelector("[autofocus]")&&document.querySelector("[autofocus]").focus()}function jf(){let e=function(t,r){Alpine.walk(t,(n,i)=>{fa(n)&&i(),ca(n)?i():r(n,i)})};Alpine.destroyTree(document.body,e)}function zn(e){e.magic("queryString",(t,{interceptor:r})=>{let n,i=!1,o=!1;return r((s,a,l,u,f)=>{let p=n||u,{initial:c,replace:d,push:m,pop:b}=mr(p,s,i);return l(c),o?(e.effect(()=>m(a())),b(async g=>{l(g),await(()=>Promise.resolve())()})):e.effect(()=>d(a())),c},s=>{s.alwaysShow=()=>(i=!0,s),s.usePush=()=>(o=!0,s),s.as=a=>(n=a,s)})}),e.history={track:mr}}function mr(e,t,r=!1,n=null){let{has:i,get:o,set:s,remove:a}=Wf(),l=new URL(window.location.href),u=i(l,e),f=u?o(l,e):t,p=JSON.stringify(f),c=[!1,null,void 0].includes(n)?t:JSON.stringify(n),d=y=>JSON.stringify(y)===p,m=y=>JSON.stringify(y)===c;r&&(l=s(l,e,f)),La(l,e,{value:f});let b=!1,g=(y,v)=>{if(b)return;let _=new URL(window.location.href);!r&&!u&&d(v)||v===void 0||!r&&m(v)?_=a(_,e):_=s(_,e,v),y(_,e,{value:v})};return{initial:f,replace(y){g(La,y)},push(y){g(qf,y)},pop(y){let v=_=>{!_.state||!_.state.alpine||Object.entries(_.state.alpine).forEach(([T,{value:A}])=>{if(T!==e)return;b=!0;let w=y(A);w instanceof Promise?w.finally(()=>b=!1):b=!1})};return window.addEventListener("popstate",v),()=>window.removeEventListener("popstate",v)}}}function La(e,t,r){let n=window.history.state||{};n.alpine||(n.alpine={}),n.alpine[t]=Kn(r),window.history.replaceState(n,"",e.toString())}function qf(e,t,r){let n=window.history.state||{};n.alpine||(n.alpine={}),n={alpine:{...n.alpine,[t]:Kn(r)}},window.history.pushState(n,"",e.toString())}function Kn(e){if(e!==void 0)return JSON.parse(JSON.stringify(e))}function Wf(){return{has(e,t){let r=e.search;if(!r)return!1;let n=hr(r);return Object.keys(n).includes(t)},get(e,t){let r=e.search;return r?hr(r)[t]:!1},set(e,t,r){let n=hr(e.search);return n[t]=Ra(Kn(r)),e.search=Na(n),e},remove(e,t){let r=hr(e.search);return delete r[t],e.search=Na(r),e}}}function Ra(e){if(!_t(e))return e;for(let t in e)e[t]===null?delete e[t]:e[t]=Ra(e[t]);return e}function Na(e){let t=i=>typeof i=="object"&&i!==null,r=(i,o={},s="")=>(Object.entries(i).forEach(([a,l])=>{let u=s===""?a:`${s}[${a}]`;l===null?o[u]="":t(l)?o={...o,...r(l,o,u)}:o[u]=encodeURIComponent(l).replaceAll("%20","+").replaceAll("%2C",",")}),o),n=r(e);return Object.entries(n).map(([i,o])=>`${i}=${o}`).join("&")}function hr(e){if(e=e.replace("?",""),e==="")return{};let t=(i,o,s)=>{let[a,l,...u]=i.split(".");if(!l)return s[i]=o;s[a]===void 0&&(s[a]=isNaN(l)?{}:[]),t([l,...u].join("."),o,s[a])},r=e.split("&").map(i=>i.split("=")),n=Object.create(null);return r.forEach(([i,o])=>{if(!(typeof o>"u"))if(o=decodeURIComponent(o.replaceAll("+","%20")),!i.includes("["))n[i]=o;else{let s=i.replaceAll("[",".").replaceAll("]","");t(s,o,n)}}),n}function Jn(e,t,r){Vf();let n,i,o,s,a,l,u,f,p,c;function d(h={}){let x=L=>L.getAttribute("key"),O=()=>{};a=h.updating||O,l=h.updated||O,u=h.removing||O,f=h.removed||O,p=h.adding||O,c=h.added||O,o=h.key||x,s=h.lookahead||!1}function m(h,x){if(b(h,x))return g(h,x);let O=!1;if(!Ge(a,h,x,()=>O=!0)){if(h.nodeType===1&&window.Alpine&&(window.Alpine.cloneNode(h,x),h._x_teleport&&x._x_teleport&&m(h._x_teleport,x._x_teleport)),Kf(x)){y(h,x),l(h,x);return}O||v(h,x),l(h,x),_(h,x)}}function b(h,x){return h.nodeType!=x.nodeType||h.nodeName!=x.nodeName||T(h)!=T(x)}function g(h,x){if(Ge(u,h))return;let O=x.cloneNode(!0);Ge(p,O)||(h.replaceWith(O),f(h),c(O))}function y(h,x){let O=x.nodeValue;h.nodeValue!==O&&(h.nodeValue=O)}function v(h,x){if(h._x_transitioning||h._x_isShown&&!x._x_isShown||!h._x_isShown&&x._x_isShown)return;let O=Array.from(h.attributes),L=Array.from(x.attributes);for(let C=O.length-1;C>=0;C--){let E=O[C].name;x.hasAttribute(E)||h.removeAttribute(E)}for(let C=L.length-1;C>=0;C--){let E=L[C].name,U=L[C].value;h.getAttribute(E)!==U&&h.setAttribute(E,U)}}function _(h,x){let O=A(h.children),L={},C=Ma(x),E=Ma(h);for(;C;){Jf(C,E);let P=T(C),D=T(E);if(!E)if(P&&L[P]){let N=L[P];h.appendChild(N),E=N}else{if(!Ge(p,C)){let N=C.cloneNode(!0);h.appendChild(N),c(N)}C=X(x,C);continue}let q=N=>N&&N.nodeType===8&&N.textContent==="[if BLOCK]><![endif]",j=N=>N&&N.nodeType===8&&N.textContent==="[if ENDBLOCK]><![endif]";if(q(C)&&q(E)){let N=0,bt=E;for(;E;){let Y=X(h,E);if(q(Y))N++;else if(j(Y)&&N>0)N--;else if(j(Y)&&N===0){E=Y;break}E=Y}let Za=E;N=0;let el=C;for(;C;){let Y=X(x,C);if(q(Y))N++;else if(j(Y)&&N>0)N--;else if(j(Y)&&N===0){C=Y;break}C=Y}let tl=C,rl=new Vn(bt,Za),nl=new Vn(el,tl);_(rl,nl);continue}if(E.nodeType===1&&s&&!E.isEqualNode(C)){let N=X(x,C),bt=!1;for(;!bt&&N;)N.nodeType===1&&E.isEqualNode(N)&&(bt=!0,E=w(h,C,E),D=T(E)),N=X(x,N)}if(P!==D){if(!P&&D){L[D]=E,E=w(h,C,E),L[D].remove(),E=X(h,E),C=X(x,C);continue}if(P&&!D&&O[P]&&(E.replaceWith(O[P]),E=O[P]),P&&D){let N=O[P];if(N)L[D]=E,E.replaceWith(N),E=N;else{L[D]=E,E=w(h,C,E),L[D].remove(),E=X(h,E),C=X(x,C);continue}}}let we=E&&X(h,E);m(E,C),C=C&&X(x,C),E=we}let U=[];for(;E;)Ge(u,E)||U.push(E),E=X(h,E);for(;U.length;){let P=U.shift();P.remove(),f(P)}}function T(h){return h&&h.nodeType===1&&o(h)}function A(h){let x={};for(let O of h){let L=T(O);L&&(x[L]=O)}return x}function w(h,x,O){if(!Ge(p,x)){let L=x.cloneNode(!0);return h.insertBefore(L,O),c(L),L}return x}return d(r),n=e,i=typeof t=="string"?zf(t):t,window.Alpine&&window.Alpine.closestDataStack&&!e._x_dataStack&&(i._x_dataStack=window.Alpine.closestDataStack(e),i._x_dataStack&&window.Alpine.cloneNode(e,i)),m(e,i),n=void 0,i=void 0,e}Jn.step=()=>{};Jn.log=()=>{};function Ge(e,...t){let r=!1;return e(...t,()=>r=!0),r}var Pa=!1;function zf(e){let t=document.createElement("template");return t.innerHTML=e,t.content.firstElementChild}function Kf(e){return e.nodeType===3||e.nodeType===8}var Vn=class{constructor(e,t){this.startComment=e,this.endComment=t}get children(){let e=[],t=this.startComment.nextSibling;for(;t&&t!==this.endComment;)e.push(t),t=t.nextSibling;return e}appendChild(e){this.endComment.before(e)}get firstChild(){let e=this.startComment.nextSibling;if(e!==this.endComment)return e}nextNode(e){let t=e.nextSibling;if(t!==this.endComment)return t}insertBefore(e,t){return t.before(e),e}};function Ma(e){return e.firstChild}function X(e,t){let r;return e instanceof Vn?r=e.nextNode(t):r=t.nextSibling,r}function Vf(){if(Pa)return;Pa=!0;let e=Element.prototype.setAttribute,t=document.createElement("div");Element.prototype.setAttribute=function(n,i){if(!n.includes("@"))return e.call(this,n,i);t.innerHTML=`<span ${n}="${i}"></span>`;let o=t.firstElementChild.getAttributeNode(n);t.firstElementChild.removeAttributeNode(o),this.setAttributeNode(o)}}function Jf(e,t){let r=t&&t._x_bindings&&t._x_bindings.id;!r||(e.setAttribute("id",r),e.id=r)}function Gf(e){e.morph=Jn}var Ia=Gf;function Xf(e){e.directive("mask",(t,{value:r,expression:n},{effect:i,evaluateLater:o,cleanup:s})=>{let a=()=>n,l="";queueMicrotask(()=>{if(["function","dynamic"].includes(r)){let c=o(n);i(()=>{a=d=>{let m;return e.dontAutoEvaluateFunctions(()=>{c(b=>{m=typeof b=="function"?b(d):b},{scope:{$input:d,$money:Qf.bind({el:t})}})}),m},f(t,!1)})}else f(t,!1);t._x_model&&t._x_model.set(t.value)});let u=new AbortController;s(()=>{u.abort()}),t.addEventListener("input",()=>f(t),{signal:u.signal,capture:!0}),t.addEventListener("blur",()=>f(t,!1),{signal:u.signal});function f(c,d=!0){let m=c.value,b=a(m);if(!b||b==="false")return!1;if(l.length-c.value.length===1)return l=c.value;let g=()=>{l=c.value=p(m,b)};d?Yf(c,b,()=>{g()}):g()}function p(c,d){if(c==="")return"";let m=Fa(d,c);return $a(d,m)}}).before("model")}function Yf(e,t,r){let n=e.selectionStart,i=e.value;r();let o=i.slice(0,n),s=$a(t,Fa(t,o)).length;e.setSelectionRange(s,s)}function Fa(e,t){let r=t,n="",i={9:/[0-9]/,a:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},o="";for(let s=0;s<e.length;s++){if(["9","a","*"].includes(e[s])){o+=e[s];continue}for(let a=0;a<r.length;a++)if(r[a]===e[s]){r=r.slice(0,a)+r.slice(a+1);break}}for(let s=0;s<o.length;s++){let a=!1;for(let l=0;l<r.length;l++)if(i[o[s]].test(r[l])){n+=r[l],r=r.slice(0,l)+r.slice(l+1),a=!0;break}if(!a)break}return n}function $a(e,t){let r=Array.from(t),n="";for(let i=0;i<e.length;i++){if(!["9","a","*"].includes(e[i])){n+=e[i];continue}if(r.length===0)break;n+=r.shift()}return n}function Qf(e,t=".",r,n=2){if(e==="-")return"-";if(/^\D+$/.test(e))return"9";r==null&&(r=t===","?".":",");let i=(l,u)=>{let f="",p=0;for(let c=l.length-1;c>=0;c--)l[c]!==u&&(p===3?(f=l[c]+u+f,p=0):f=l[c]+f,p++);return f},o=e.startsWith("-")?"-":"",s=e.replaceAll(new RegExp(`[^0-9\\${t}]`,"g"),""),a=Array.from({length:s.split(t)[0].length}).fill("9").join("");return a=`${o}${i(a,r)}`,n>0&&e.includes(t)&&(a+=`${t}`+"9".repeat(n)),queueMicrotask(()=>{this.el.value.endsWith(t)||this.el.value[this.el.selectionStart-1]===t&&this.el.setSelectionRange(this.el.selectionStart-1,this.el.selectionStart-1)}),a}var Da=Xf;function Ba(){setTimeout(()=>Zf()),yt(document,"livewire:init"),yt(document,"livewire:initializing"),S.plugin(Ia),S.plugin(zn),S.plugin(Ps),S.plugin(Is),S.plugin(ds),S.plugin(ea),S.plugin(Ts),S.plugin(Rs),S.plugin(ka),S.plugin(Da),S.addRootSelector(()=>"[wire\\:id]"),S.onAttributesAdded((e,t)=>{if(!Array.from(t).some(n=>We(n.name)))return;let r=z(e,!1);!r||t.forEach(n=>{if(!We(n.name))return;let i=Yt(e,n.name);R("directive.init",{el:e,component:r,directive:i,cleanup:o=>{S.onAttributeRemoved(e,i.raw,o)}})})}),S.interceptInit(S.skipDuringClone(e=>{if(!Array.from(e.attributes).some(r=>We(r.name)))return;if(e.hasAttribute("wire:id")){let r=rs(e);S.onAttributeRemoved(e,"wire:id",()=>{ns(r.id)})}let t=z(e,!1);t&&(R("element.init",{el:e,component:t}),Array.from(e.getAttributeNames()).filter(n=>We(n)).map(n=>Yt(e,n)).forEach(n=>{R("directive.init",{el:e,component:t,directive:n,cleanup:i=>{S.onAttributeRemoved(e,n.raw,i)}})}))})),S.start(),setTimeout(()=>window.Livewire.initialRenderIsFinished=!0),yt(document,"livewire:initialized")}function Zf(){let e=document.querySelector("script[data-update-uri][data-csrf]");if(!e)return;let t=e.closest("[wire\\:id]");t&&console.warn("Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.",t)}k("effect",({component:e,effects:t})=>{ed(e,t.listeners||[])});function ed(e,t){t.forEach(r=>{let n=i=>{i.__livewire&&i.__livewire.receivedBy.push(e),e.$wire.call("__dispatch",r,i.detail||{})};window.addEventListener(r,n),e.addCleanup(()=>window.removeEventListener(r,n)),e.el.addEventListener(r,i=>{!i.__livewire||i.bubbles||(i.__livewire&&i.__livewire.receivedBy.push(e.id),e.$wire.call("__dispatch",r,i.detail||{}))})})}var Xe=new WeakMap,gr=new Set;k("payload.intercept",async({assets:e})=>{if(!!e)for(let[t,r]of Object.entries(e))await nd(t,async()=>{await id(r)})});k("component.init",({component:e})=>{let t=e.snapshot.memo.assets;t&&t.forEach(r=>{gr.has(r)||gr.add(r)})});k("effect",({component:e,effects:t})=>{let r=t.scripts;r&&Object.entries(r).forEach(([n,i])=>{td(e,n,()=>{let o=rd(i);S.dontAutoEvaluateFunctions(()=>{S.evaluate(e.el,o,{$wire:e.$wire})})})})});function td(e,t,r){if(Xe.has(e)&&Xe.get(e).includes(t))return;r(),Xe.has(e)||Xe.set(e,[]);let n=Xe.get(e);n.push(t),Xe.set(e,n)}function rd(e){let r=/<script\b[^>]*>([\s\S]*?)<\/script>/gm.exec(e);return r&&r[1]?r[1].trim():""}async function nd(e,t){gr.has(e)||(await t(),gr.add(e))}async function id(e){let t=new DOMParser().parseFromString(e,"text/html"),r=document.adoptNode(t.head);for(let n of r.children)try{await od(n)}catch{}}async function od(e){return new Promise((t,r)=>{if(sd(e)){let n=ad(e);n.src?(n.onload=()=>t(),n.onerror=()=>r()):t(),document.head.appendChild(n)}else document.head.appendChild(e),t()})}function sd(e){return e.tagName.toLowerCase()==="script"}function ad(e){let t=document.createElement("script");t.textContent=e.textContent,t.async=e.async;for(let r of e.attributes)t.setAttribute(r.name,r.value);return t}k("effect",({component:e,effects:t})=>{let r=t.js,n=t.xjs;r&&Object.entries(r).forEach(([i,o])=>{Zo(e,i,()=>{S.evaluate(e.el,o)})}),n&&n.forEach(i=>{S.evaluate(e.el,i)})});function Ha(e,t,r){let n=t.parentElement?t.parentElement.tagName.toLowerCase():"div",i=document.createElement(n);i.innerHTML=r;let o;try{o=z(t.parentElement)}catch{}o&&(i.__livewire=o);let s=i.firstElementChild;s.__livewire=e,R("morph",{el:t,toEl:s,component:e}),S.morph(t,s,{updating:(a,l,u,f)=>{if(!Ye(a)){if(R("morph.updating",{el:a,toEl:l,component:e,skip:f,childrenOnly:u}),a.__livewire_replace===!0&&(a.innerHTML=l.innerHTML),a.__livewire_replace_self===!0)return a.outerHTML=l.outerHTML,f();if(a.__livewire_ignore===!0||(a.__livewire_ignore_self===!0&&u(),Ua(a)&&a.getAttribute("wire:id")!==e.id))return f();Ua(a)&&(l.__livewire=e)}},updated:a=>{Ye(a)||R("morph.updated",{el:a,component:e})},removing:(a,l)=>{Ye(a)||R("morph.removing",{el:a,component:e,skip:l})},removed:a=>{Ye(a)||R("morph.removed",{el:a,component:e})},adding:a=>{R("morph.adding",{el:a,component:e})},added:a=>{if(Ye(a))return;let l=z(a).id;R("morph.added",{el:a})},key:a=>{if(!Ye(a))return a.hasAttribute("wire:key")?a.getAttribute("wire:key"):a.hasAttribute("wire:id")?a.getAttribute("wire:id"):a.id},lookahead:!1})}function Ye(e){return typeof e.hasAttribute!="function"}function Ua(e){return e.hasAttribute("wire:id")}k("effect",({component:e,effects:t})=>{let r=t.html;!r||queueMicrotask(()=>{queueMicrotask(()=>{Ha(e,e.el,r)})})});k("effect",({component:e,effects:t})=>{ld(e,t.dispatches||[])});function ld(e,t){t.forEach(({name:r,params:n={},self:i=!1,to:o})=>{i?oe(e,r,n):o?qe(o,r,n):Jt(e,r,n)})}var Gn=new wt;k("directive.init",({el:e,directive:t,cleanup:r,component:n})=>setTimeout(()=>{t.value==="submit"&&e.addEventListener("submit",()=>{let i=t.expression.startsWith("$parent")?n.parent.id:n.id,o=ud(e);Gn.add(i,o)})}));k("commit",({component:e,respond:t})=>{t(()=>{Gn.each(e.id,r=>r()),Gn.remove(e.id)})});function ud(e){let t=[];return S.walk(e,(r,n)=>{if(!!e.contains(r)){if(r.hasAttribute("wire:ignore"))return n();cd(r)?t.push(dd(r)):fd(r)&&t.push(pd(r))}}),()=>{for(;t.length>0;)t.shift()()}}function cd(e){let t=e.tagName.toLowerCase();return t==="select"||t==="button"&&e.type==="submit"||t==="input"&&(e.type==="checkbox"||e.type==="radio")}function fd(e){return["input","textarea"].includes(e.tagName.toLowerCase())}function dd(e){let t=e.disabled?()=>{}:()=>e.disabled=!1;return e.disabled=!0,t}function pd(e){let t=e.readOnly?()=>{}:()=>e.readOnly=!1;return e.readOnly=!0,t}k("commit.pooling",({commits:e})=>{e.forEach(t=>{let r=t.component;qa(r,n=>{n.$wire.$commit()})})});k("commit.pooled",({pools:e})=>{hd(e).forEach(r=>{let n=r.component;qa(n,i=>{md(e,n,i)})})});function hd(e){let t=[];return e.forEach(r=>{r.commits.forEach(n=>{t.push(n)})}),t}function md(e,t,r){let n=ja(e,t),i=ja(e,r),o=i.findCommitByComponent(r);i.delete(o),n.add(o),e.forEach(s=>{s.empty()&&e.delete(s)})}function ja(e,t){for(let[r,n]of e.entries())if(n.hasCommitFor(t))return n}function qa(e,t){Wa(e,r=>{(gd(r)||vd(r))&&t(r)})}function gd(e){return!!e.snapshot.memo.props}function vd(e){return!!e.snapshot.memo.bindings}function Wa(e,t){e.children.forEach(r=>{t(r),Wa(r,t)})}k("commit",({succeed:e})=>{e(({effects:t})=>{let r=t.download;if(!r)return;let n=window.webkitURL||window.URL,i=n.createObjectURL(bd(r.content,r.contentType)),o=document.createElement("a");o.style.display="none",o.href=i,o.download=r.name,document.body.appendChild(o),o.click(),setTimeout(function(){n.revokeObjectURL(i)},0)})});function bd(e,t="",r=512){let n=atob(e),i=[];t===null&&(t="");for(let o=0;o<n.length;o+=r){let s=n.slice(o,o+r),a=new Array(s.length);for(let u=0;u<s.length;u++)a[u]=s.charCodeAt(u);let l=new Uint8Array(a);i.push(l)}return new Blob(i,{type:t})}var Xn=new WeakSet,Yn=new WeakSet;k("component.init",({component:e})=>{let t=e.snapshot.memo;t.lazyLoaded!==void 0&&(Yn.add(e),t.lazyIsolated!==void 0&&t.lazyIsolated===!1&&Xn.add(e))});k("commit.pooling",({commits:e})=>{e.forEach(t=>{!Yn.has(t.component)||(Xn.has(t.component)?(t.isolate=!1,Xn.delete(t.component)):t.isolate=!0,Yn.delete(t.component))})});k("effect",({component:e,effects:t,cleanup:r})=>{let n=t.url;!n||Object.entries(n).forEach(([i,o])=>{let{name:s,as:a,use:l,alwaysShow:u,except:f}=wd(i,o);a||(a=s);let p=[!1,null,void 0].includes(f)?W(e.ephemeral,s):f,{replace:c,push:d,pop:m}=mr(a,p,u,f);if(l==="replace"){let b=S.effect(()=>{c(W(e.reactive,s))});r(()=>S.release(b))}else if(l==="push"){let b=k("commit",({component:y,succeed:v})=>{if(e!==y)return;let _=W(e.canonical,s);v(()=>{let T=W(e.canonical,s);JSON.stringify(_)!==JSON.stringify(T)&&d(T)})}),g=m(async y=>{await e.$wire.set(s,y),document.querySelectorAll("input").forEach(v=>{v._x_forceModelUpdate&&v._x_forceModelUpdate(v._x_model.get())})});r(()=>{b(),g()})}})});function wd(e,t){let r={use:"replace",alwaysShow:!1};return typeof t=="string"?{...r,name:t,as:t}:{...{...r,name:e,as:e},...t}}k("request",({options:e})=>{window.Echo&&(e.headers["X-Socket-ID"]=window.Echo.socketId())});k("effect",({component:e,effects:t})=>{(t.listeners||[]).forEach(n=>{if(n.startsWith("echo")){if(typeof window.Echo>"u"){console.warn("Laravel Echo cannot be found");return}let i=n.split(/(echo:|echo-)|:|,/);i[1]=="echo:"&&i.splice(2,0,"channel",void 0),i[2]=="notification"&&i.push(void 0,void 0);let[o,s,a,l,u,f,p]=i;if(["channel","private","encryptedPrivate"].includes(a)){let c=d=>oe(e,n,[d]);window.Echo[a](u).listen(p,c),e.addCleanup(()=>{window.Echo[a](u).stopListening(p,c)})}else if(a=="presence")if(["here","joining","leaving"].includes(p))window.Echo.join(u)[p](c=>{oe(e,n,[c])});else{let c=d=>oe(e,n,[d]);window.Echo.join(u).listen(p,c),e.addCleanup(()=>{window.Echo.leaveChannel(u)})}else a=="notification"?window.Echo.private(u).notification(c=>{oe(e,n,[c])}):console.warn("Echo channel type not yet supported")}})});var za=new WeakSet;k("component.init",({component:e})=>{e.snapshot.memo.isolate===!0&&za.add(e)});k("commit.pooling",({commits:e})=>{e.forEach(t=>{!za.has(t.component)||(t.isolate=!0)})});yd()&&Alpine.navigate.disableProgressBar();document.addEventListener("alpine:navigate",e=>Qn("livewire:navigate",e));document.addEventListener("alpine:navigating",e=>Qn("livewire:navigating",e));document.addEventListener("alpine:navigated",e=>Qn("livewire:navigated",e));function Qn(e,t){let r=new CustomEvent(e,{cancelable:!0,bubbles:!0,detail:t.detail});document.dispatchEvent(r),r.defaultPrevented&&t.preventDefault()}function Ka(e,t,r){e.redirectUsingNavigate?Alpine.navigate(t):r()}function yd(){return!!(document.querySelector("[data-no-progress-bar]")||window.livewireScriptConfig&&window.livewireScriptConfig.progressBar===!1)}k("effect",({effects:e})=>{if(!e.redirect)return;let t=e.redirect;Ka(e,t,()=>{window.location.href=t})});k("morph.added",({el:e})=>{e.__addedByMorph=!0});I("transition",({el:e,directive:t,component:r,cleanup:n})=>{let i=S.reactive({state:!e.__addedByMorph});S.bind(e,{[t.rawName.replace("wire:","x-")]:"","x-show"(){return i.state}}),e.__addedByMorph&&setTimeout(()=>i.state=!0);let o=[];o.push(k("morph.removing",({el:s,skip:a})=>{a(),s.addEventListener("transitionend",()=>{s.remove()}),i.state=!1,o.push(k("morph",({component:l})=>{l===r&&(s.remove(),o.forEach(u=>u()))}))})),n(()=>o.forEach(s=>s()))});var xd=new Fe;function Va(e,t){xd.each(e,r=>{r.callback(),r.callback=()=>{}}),t()}k("directive.init",({el:e,directive:t,cleanup:r,component:n})=>{if(["snapshot","effects","model","init","loading","poll","ignore","id","data","key","target","dirty"].includes(t.value)||cs(t.value))return;let i=t.rawName.replace("wire:","x-on:");t.value==="submit"&&!t.modifiers.includes("prevent")&&(i=i+".prevent");let o=S.bind(e,{[i](s){let a=()=>{Va(n,()=>{S.evaluate(e,"$wire."+t.expression,{scope:{$event:s}})})};e.__livewire_confirm?e.__livewire_confirm(()=>{a()},()=>{s.stopImmediatePropagation()}):a()}});r(o)});S.addInitSelector(()=>"[wire\\:navigate]");S.addInitSelector(()=>"[wire\\:navigate\\.hover]");S.interceptInit(S.skipDuringClone(e=>{e.hasAttribute("wire:navigate")?S.bind(e,{["x-navigate"]:!0}):e.hasAttribute("wire:navigate.hover")&&S.bind(e,{["x-navigate.hover"]:!0})}));document.addEventListener("alpine:navigating",()=>{Livewire.all().forEach(e=>{e.inscribeSnapshotAndEffectsOnElement()})});I("confirm",({el:e,directive:t})=>{let r=t.expression,n=t.modifiers.includes("prompt");r=r.replaceAll("\\n",` -`),r===""&&(r="Are you sure?"),e.__livewire_confirm=(i,o)=>{if(n){let[s,a]=r.split("|");a?prompt(s)===a?i():o():console.warn("Livewire: Must provide expectation with wire:confirm.prompt")}else confirm(r)?i():o()}});function ne(e,t,r,n=null){if(r=t.modifiers.includes("remove")?!r:r,t.modifiers.includes("class")){let i=t.expression.split(" ").filter(String);r?e.classList.add(...i):e.classList.remove(...i)}else if(t.modifiers.includes("attr"))r?e.setAttribute(t.expression,!0):e.removeAttribute(t.expression);else{let i=n??window.getComputedStyle(e,null).getPropertyValue("display"),o=["inline","block","table","flex","grid","inline-flex"].filter(s=>t.modifiers.includes(s))[0]||"inline-block";o=t.modifiers.includes("remove")&&!r?i:o,e.style.display=r?o:"none"}}var Zn=new Set,ei=new Set;window.addEventListener("offline",()=>Zn.forEach(e=>e()));window.addEventListener("online",()=>ei.forEach(e=>e()));I("offline",({el:e,directive:t,cleanup:r})=>{let n=()=>ne(e,t,!0),i=()=>ne(e,t,!1);Zn.add(n),ei.add(i),r(()=>{Zn.delete(n),ei.delete(i)})});I("loading",({el:e,directive:t,component:r,cleanup:n})=>{let{targets:i,inverted:o}=Cd(e),[s,a]=_d(t),l=Sd(r,i,o,[()=>s(()=>ne(e,t,!0)),()=>a(()=>ne(e,t,!1))]),u=Ed(r,i,[()=>s(()=>ne(e,t,!0)),()=>a(()=>ne(e,t,!1))]);n(()=>{l(),u()})});function _d(e){if(!e.modifiers.includes("delay")||e.modifiers.includes("none"))return[o=>o(),o=>o()];let t=200,r={shortest:50,shorter:100,short:150,default:200,long:300,longer:500,longest:1e3};Object.keys(r).some(o=>{if(e.modifiers.includes(o))return t=r[o],!0});let n,i=!1;return[o=>{n=setTimeout(()=>{o(),i=!0},t)},async o=>{i?(await o(),i=!1):clearTimeout(n)}]}function Sd(e,t,r,[n,i]){return k("commit",({component:o,commit:s,respond:a})=>{o===e&&(t.length>0&&Ad(s,t)===r||(n(),a(()=>{i()})))})}function Ed(e,t,[r,n]){let i=l=>{let{id:u,property:f}=l.detail;return u!==e.id||t.length>0&&!t.map(p=>p.target).includes(f)},o=xt(window,"livewire-upload-start",l=>{i(l)||r()}),s=xt(window,"livewire-upload-finish",l=>{i(l)||n()}),a=xt(window,"livewire-upload-error",l=>{i(l)||n()});return()=>{o(),s(),a()}}function Ad(e,t){let{updates:r,calls:n}=e;return t.some(({target:i,params:o})=>{if(o)return n.some(({method:a,params:l})=>i===a&&o===Ja(JSON.stringify(l)));if(Object.keys(r).some(a=>a.includes(".")&&a.split(".")[0]===i?!0:a===i)||n.map(a=>a.method).includes(i))return!0})}function Cd(e){let t=ze(e),r=[],n=!1;if(t.has("target")){let i=t.get("target"),o=i.expression;i.modifiers.includes("except")&&(n=!0),o.includes("(")&&o.includes(")")?r.push({target:i.method,params:Ja(JSON.stringify(i.params))}):o.includes(",")?o.split(",").map(s=>s.trim()).forEach(s=>{r.push({target:s})}):r.push({target:o})}else{let i=["init","dirty","offline","target","loading","poll","ignore","key","id"];t.all().filter(o=>!i.includes(o.value)).map(o=>o.expression.split("(")[0]).forEach(o=>r.push({target:o}))}return{targets:r,inverted:n}}function Ja(e){return btoa(encodeURIComponent(e))}I("stream",({el:e,directive:t,cleanup:r})=>{let{expression:n,modifiers:i}=t,o=k("stream",({name:s,content:a,replace:l})=>{s===n&&(i.includes("replace")||l?e.innerHTML=a:e.innerHTML=e.innerHTML+a)});r(o)});k("request",({respond:e})=>{e(t=>{let r=t.response;!r.headers.has("X-Livewire-Stream")||(t.response={ok:!0,redirected:!1,status:200,async text(){let n=await Od(r,i=>{R("stream",i)});return Et(n)&&(this.ok=!1),n}})})});async function Od(e,t){let r=e.body.getReader(),n="";for(;;){let{done:i,value:o}=await r.read(),a=new TextDecoder().decode(o),[l,u]=Td(n+a);if(l.forEach(f=>{t(f)}),n=u,i)return n}}function Td(e){let t=/({"stream":true.*?"endStream":true})/g,r=e.match(t),n=[];if(r)for(let o=0;o<r.length;o++)n.push(JSON.parse(r[o]).body);let i=e.replace(t,"");return[n,i]}I("replace",({el:e,directive:t})=>{t.modifiers.includes("self")?e.__livewire_replace_self=!0:e.__livewire_replace=!0});I("ignore",({el:e,directive:t})=>{t.modifiers.includes("self")?e.__livewire_ignore_self=!0:e.__livewire_ignore=!0});var Ga=new Fe;k("commit",({component:e,respond:t})=>{t(()=>{setTimeout(()=>{Ga.each(e,r=>r(!1))})})});I("dirty",({el:e,directive:t,component:r})=>{let n=kd(e),i=Alpine.reactive({state:!1}),o=!1,s=e.style.display,a=l=>{ne(e,t,l,s),o=l};Ga.add(r,a),Alpine.effect(()=>{let l=!1;if(n.length===0)l=JSON.stringify(r.canonical)!==JSON.stringify(r.reactive);else for(let u=0;u<n.length&&!l;u++){let f=n[u];l=JSON.stringify(W(r.canonical,f))!==JSON.stringify(W(r.reactive,f))}o!==l&&a(l),o=l})});function kd(e){let t=ze(e),r=[];return t.has("model")&&r.push(t.get("model").expression),t.has("target")&&(r=r.concat(t.get("target").expression.split(",").map(n=>n.trim()))),r}I("model",({el:e,directive:t,component:r,cleanup:n})=>{let{expression:i,modifiers:o}=t;if(!i)return console.warn("Livewire: [wire:model] is missing a value.",e);if(Xa(r,i))return console.warn('Livewire: [wire:model="'+i+'"] property does not exist on component: ['+r.name+"]",e);if(e.type&&e.type.toLowerCase()==="file")return ci(e,i,r,n);let s=o.includes("live"),a=o.includes("lazy")||o.includes("change"),l=o.includes("blur"),u=o.includes("debounce"),f=i.startsWith("$parent")?()=>r.$wire.$parent.$commit():()=>r.$wire.$commit(),p=Nd(e)&&!u&&s?Rd(f,150):f;S.bind(e,{["@change"](){a&&f()},["@blur"](){l&&f()},["x-model"+Ld(o)](){return{get(){return W(r.$wire,i)},set(c){ye(r.$wire,i,c),s&&!a&&!l&&p()}}}})});function Ld(e){return e=e.filter(t=>!["lazy","defer"].includes(t)),e.length===0?"":"."+e.join(".")}function Nd(e){return["INPUT","TEXTAREA"].includes(e.tagName.toUpperCase())&&!["checkbox","radio"].includes(e.type)}function Xa(e,t){if(t.startsWith("$parent")){let n=z(e.el.parentElement,!1);return n?Xa(n,t.split("$parent.")[1]):!0}let r=t.split(".")[0];return!Object.keys(e.canonical).includes(r)}function Rd(e,t){var r;return function(){var n=this,i=arguments,o=function(){r=null,e.apply(n,i)};clearTimeout(r),r=setTimeout(o,t)}}I("init",({el:e,directive:t})=>{let r=t.expression??"$refresh";S.evaluate(e,`$wire.${r}`)});I("poll",({el:e,directive:t})=>{let r=qd(t.modifiers,2e3),{start:n,pauseWhile:i,throttleWhile:o,stopWhen:s}=Md(()=>{Pd(e,t)},r);n(),o(()=>$d()&&Bd(t)),i(()=>Ud(t)&&Hd(e)),i(()=>Dd(e)),i(()=>Fd()),s(()=>jd(e))});function Pd(e,t){S.evaluate(e,t.expression?"$wire."+t.expression:"$wire.$commit()")}function Md(e,t=2e3){let r=[],n=[],i=[];return{start(){let o=Id(t,()=>{if(i.some(s=>s()))return o();r.some(s=>s())||n.some(s=>s())&&Math.random()<.95||e()})},pauseWhile(o){r.push(o)},throttleWhile(o){n.push(o)},stopWhen(o){i.push(o)}}}var Me=[];function Id(e,t){if(!Me[e]){let r={timer:setInterval(()=>r.callbacks.forEach(n=>n()),e),callbacks:new Set};Me[e]=r}return Me[e].callbacks.add(t),()=>{Me[e].callbacks.delete(t),Me[e].callbacks.size===0&&(clearInterval(Me[e].timer),delete Me[e])}}var ti=!1;window.addEventListener("offline",()=>ti=!0);window.addEventListener("online",()=>ti=!1);function Fd(){return ti}var Ya=!1;document.addEventListener("visibilitychange",()=>{Ya=document.hidden},!1);function $d(){return Ya}function Dd(e){return!ze(e).has("poll")}function Bd(e){return!e.modifiers.includes("keep-alive")}function Ud(e){return e.modifiers.includes("visible")}function Hd(e){let t=e.getBoundingClientRect();return!(t.top<(window.innerHeight||document.documentElement.clientHeight)&&t.left<(window.innerWidth||document.documentElement.clientWidth)&&t.bottom>0&&t.right>0)}function jd(e){return e.isConnected===!1}function qd(e,t){let r,n=e.find(o=>o.match(/([0-9]+)ms/)),i=e.find(o=>o.match(/([0-9]+)s/));return n?r=Number(n.replace("ms","")):i&&(r=Number(i.replace("s",""))*1e3),r||t}var Qa={directive:I,dispatchTo:qe,start:Ba,first:ss,find:os,getByName:is,all:as,hook:k,trigger:R,triggerAsync:Wt,dispatch:ls,on:us,get navigate(){return S.navigate}},ri=e=>console.warn(`Detected multiple instances of ${e} running`);window.Livewire&&ri("Livewire");window.Alpine&&ri("Alpine");window.Livewire=Qa;window.Alpine=S;window.livewireScriptConfig===void 0&&(window.Alpine.__fromLivewire=!0,document.addEventListener("DOMContentLoaded",()=>{window.Alpine.__fromLivewire===void 0&&ri("Alpine"),Qa.start()}));})(); + `;let t=Ht();t&&(e.nonce=t),document.head.appendChild(e)}function za(e){!lf()||e.querySelectorAll(":popover-open").forEach(t=>{t.setAttribute("data-navigate-popover-open","");let r=t.getAnimations();t._pausedAnimations=r.map(n=>({keyframes:n.effect.getKeyframes(),options:{duration:n.effect.getTiming().duration,easing:n.effect.getTiming().easing,fill:n.effect.getTiming().fill,iterations:n.effect.getTiming().iterations},currentTime:n.currentTime,playState:n.playState})),r.forEach(n=>n.pause())})}function Ka(e){!lf()||e.querySelectorAll("[data-navigate-popover-open]").forEach(t=>{t.removeAttribute("data-navigate-popover-open"),queueMicrotask(()=>{!t.isConnected||(t.showPopover(),t.getAnimations().forEach(r=>r.finish()),t._pausedAnimations&&(t._pausedAnimations.forEach(({keyframes:r,options:n,currentTime:i,now:o,playState:a})=>{let s=t.animate(r,n);s.currentTime=i}),delete t._pausedAnimations))})})}function lf(){return typeof document.createElement("div").showPopover=="function"}var Va=[],Fi=["data-csrf","nonce","aria-hidden"];function Ja(e,t){e=gn(e);let r=new DOMParser().parseFromString(e,"text/html"),n=r.documentElement,i=document.adoptNode(r.body),o=document.adoptNode(r.head);Va=Va.concat(Array.from(document.body.querySelectorAll("script")).map(l=>pf(Ri(l.outerHTML,Fi))));let a=()=>{};Lg(n),$g(o).finally(()=>{a()}),Rg(i,Va);let s=document.body;document.body.replaceWith(i),Alpine.destroyTree(s),t(l=>a=l)}function Rg(e,t){e.querySelectorAll("script").forEach(r=>{if(r.hasAttribute("data-navigate-once")){let n=pf(Ri(r.outerHTML,Fi));if(t.includes(n))return}r.replaceWith(br(r))})}function Lg(e){let t=document.documentElement;Array.from(e.attributes).forEach(r=>{let n=r.name,i=r.value;t.getAttribute(n)!==i&&t.setAttribute(n,i)}),Array.from(t.attributes).forEach(r=>{e.hasAttribute(r.name)||t.removeAttribute(r.name)})}function $g(e){let t=Array.from(document.head.children),r=t.map(a=>Ri(a.outerHTML,Fi)),n=document.createDocumentFragment(),i=[],o=[];for(let a of Array.from(e.children))if(cf(a)){let s=Ri(a.outerHTML,Fi);if(r.includes(s))n.appendChild(a);else if(ff(a)&&jg(a,t)&&setTimeout(()=>window.location.reload()),df(a))try{o.push(Bg(br(a)))}catch{}else document.head.appendChild(a);i.push(a)}for(let a of Array.from(document.head.children))cf(a)||a.remove();for(let a of Array.from(e.children))a.tagName.toLowerCase()!=="noscript"&&document.head.appendChild(a);return Promise.all(o)}async function Bg(e){return new Promise((t,r)=>{e.src?(e.onload=()=>t(),e.onerror=()=>r()):t(),document.head.appendChild(e)})}function ff(e){return e.hasAttribute("data-navigate-track")}function jg(e,t){let[r,n]=uf(e);return t.some(i=>{if(!ff(i))return!1;let[o,a]=uf(i);if(o===r&&n!==a)return!0})}function uf(e){return(df(e)?e.src:e.href).split("?")}function cf(e){return e.tagName.toLowerCase()==="link"&&e.getAttribute("rel").toLowerCase()==="stylesheet"||e.tagName.toLowerCase()==="style"||e.tagName.toLowerCase()==="script"}function df(e){return e.tagName.toLowerCase()==="script"}function pf(e){return e.split("").reduce((t,r)=>(t=(t<<5)-t+r.charCodeAt(0),t&t),0)}function Ri(e,t){let r=e;return t.forEach(n=>{let i=new RegExp(`${n}="[^"]*"|${n}='[^']*'`,"g");r=r.replace(i,"")}),r=r.replaceAll(" ",""),r.trim()}var Li=!0,mr=!0,Ug=!0,hf=!1;function bf(e){e.navigate=(r,n={})=>{let{preserveScroll:i=!1}=n,o=rn(r);Qe("alpine:navigate",{url:o,history:!1,cached:!1})||t(o,{preserveScroll:i})},e.navigate.disableProgressBar=()=>{mr=!1},e.addInitSelector(()=>`[${e.prefixed("navigate")}]`),e.directive("navigate",(r,{modifiers:n})=>{let i=n.includes("hover"),o=n.includes("preserve-scroll");i&&Qc(r,60,()=>{let a=Pa(r);!a||Da(a,(s,l)=>{Fa(s,a,l)},()=>{mr&&an()})}),Yc(r,a=>{let s=Pa(r);!s||(Da(s,(l,u)=>{Fa(l,s,u)},()=>{mr&&an()}),a(()=>{Qe("alpine:navigate",{url:s,history:!1,cached:!1})||t(s,{preserveScroll:o})}))})});function t(r,{preserveScroll:n=!1,shouldPushToHistoryState:i=!0}){mr&&af(),Hg(r,(o,a)=>{let s=[];Qe("alpine:navigating",{onSwap:l=>s.push(l)}),Ug&&Ba(),qg(),i&&Kc(),mf(e,l=>{Li&&Ua(u=>{Ra(u),za(u)}),i?Gc(o,a):Na(a,o),Ja(o,u=>{La(document.body),Li&&Ha((c,f)=>{$a(c),Ka(c)}),!n&&ja(),s.forEach(c=>c()),u(()=>{l(()=>{setTimeout(()=>{hf&&vf()}),gf(e),Qe("alpine:navigated"),mr&&an()})})})})},()=>{mr&&an()})}Jc(r=>{r(n=>{let i=rn(n);Qe("alpine:navigate",{url:i,history:!0,cached:!1})||t(i,{shouldPushToHistoryState:!1})})},(r,n,i,o)=>{let a=rn(n);if(Qe("alpine:navigate",{url:a,history:!0,cached:!0}))return;Ba();let l=[];Qe("alpine:navigating",{onSwap:u=>l.push(u)}),Vc(o,i),mf(e,u=>{Li&&Ua(c=>{Ra(c),za(c)}),Ja(r,()=>{sf(),La(document.body),Li&&Ha((c,f)=>{$a(c),Ka(c)}),ja(),l.forEach(c=>c()),u(()=>{hf&&vf(),gf(e),Qe("alpine:navigated")})})})}),setTimeout(()=>{Qe("alpine:navigated")})}function Hg(e,t,r){ef(e,t,()=>{Zc(e,t,r)})}function mf(e,t){e.stopObservingMutations(),t(r=>{e.startObservingMutations(),queueMicrotask(()=>{r()})})}function Qe(e,t){let r=new CustomEvent(e,{cancelable:!0,bubbles:!0,detail:t});return document.dispatchEvent(r),r.defaultPrevented}function gf(e){e.initTree(document.body,void 0,(t,r)=>{t._x_wasPersisted&&r()})}function vf(){document.querySelector("[autofocus]")&&document.querySelector("[autofocus]").focus()}function qg(){let e=function(t,r){Alpine.walk(t,(n,i)=>{rf(n)&&i(),tf(n)?i():r(n,i)})};Alpine.destroyTree(document.body,e)}function Ga(e){e.magic("queryString",(t,{interceptor:r})=>{let n,i=!1,o=!1;return r((a,s,l,u,c)=>{let f=n||u,{initial:d,replace:p,push:m,pop:h}=Bi(f,a,i);return l(d),o?(e.effect(()=>m(s())),h(async v=>{l(v),await(()=>Promise.resolve())()})):e.effect(()=>p(s())),d},a=>{a.alwaysShow=()=>(i=!0,a),a.usePush=()=>(o=!0,a),a.as=s=>(n=s,a)})}),e.history={track:Bi}}function Bi(e,t,r=!1,n=null){let{has:i,get:o,set:a,remove:s}=zg(),l=Ye.getUrl(),u=i(l,e),c=u?o(l,e):t,f=JSON.stringify(c),d=JSON.stringify(n),p=y=>JSON.stringify(y)===f,m=y=>JSON.stringify(y)===d;r&&(l=a(l,e,c)),yf(l,e,{value:c});let h=!1,v=(y,w)=>{if(h)return;let S=Ye.getUrl();!r&&!u&&p(w)||w===void 0||!r&&m(w)?S=s(S,e):S=a(S,e,w),y(S,e,{value:w})};return{initial:c,replace(y){v(yf,y)},push(y){v(Wg,y)},pop(y){let w=S=>{!S.state||!S.state.alpine||Object.entries(S.state.alpine).forEach(([C,{value:P}])=>{if(C!==e)return;h=!0;let O=y(P);O instanceof Promise?O.finally(()=>h=!1):h=!1})};return window.addEventListener("popstate",w),()=>window.removeEventListener("popstate",w)}}}function yf(e,t,r){Ye.replaceState(e,{[t]:r})}function Wg(e,t,r){Ye.pushState(e,{[t]:r})}function zg(){return{has(e,t){let r=e.search;if(!r)return!1;let n=$i(r,t);return Object.keys(n).includes(t)},get(e,t){let r=e.search;return r?$i(r,t)[t]:!1},set(e,t,r){let n=$i(e.search,t);return n[t]=_f(en(r)),e.search=wf(n),e},remove(e,t){let r=$i(e.search,t);return delete r[t],e.search=wf(r),e}}}function _f(e){if(!ht(e))return e;for(let t in e)e[t]===null?delete e[t]:e[t]=_f(e[t]);return e}function wf(e){let t=i=>typeof i=="object"&&i!==null,r=(i,o={},a="")=>(Object.entries(i).forEach(([s,l])=>{let u=a===""?s:`${a}[${s}]`;l===null?o[u]="":t(l)?o={...o,...r(l,o,u)}:o[u]=encodeURIComponent(l).replaceAll("%20","+").replaceAll("%2C",",")}),o),n=r(e);return Object.entries(n).map(([i,o])=>`${i}=${o}`).join("&")}function $i(e,t){if(e=e.replace("?",""),e==="")return{};let r=(o,a,s)=>{let[l,u,...c]=o.split(".");if(!u)return s[o]=a;s[l]===void 0&&(s[l]=isNaN(u)?{}:[]),r([u,...c].join("."),a,s[l])},n=e.split("&").map(o=>o.split("=")),i=Object.create(null);return n.forEach(([o,a])=>{if(typeof a>"u")return;a=decodeURIComponent(a.replaceAll("+","%20"));let s=decodeURIComponent(o);if(!(s.includes("[")&&s.startsWith(t)))i[o]=a;else{let u=s.replaceAll("[",".").replaceAll("]","");r(u,a,i)}}),i}function Xa(e,t,r){Af();let n=Sf(r),i=typeof t=="string"?Jg(t):t;return window.Alpine&&window.Alpine.closestDataStack&&!e._x_dataStack&&(i._x_dataStack=window.Alpine.closestDataStack(e),i._x_dataStack&&window.Alpine.cloneNode(e,i)),n.patch(e,i),e}function Kg(e,t,r,n={}){Af();let i=Sf(n),o=e.parentNode,a=new ln(e,t),s=typeof r=="string"?(()=>{let f=document.createElement("div");return f.insertAdjacentHTML("beforeend",r),f})():r,l=document.createComment("[morph-start]"),u=document.createComment("[morph-end]");s.insertBefore(l,s.firstChild),s.appendChild(u);let c=new ln(l,u);window.Alpine&&window.Alpine.closestDataStack&&(s._x_dataStack=window.Alpine.closestDataStack(o),s._x_dataStack&&window.Alpine.cloneNode(o,s)),i.patchChildren(a,c)}function Sf(e={}){let t=i=>i.getAttribute("key"),r=()=>{},n={key:e.key||t,lookahead:e.lookahead||!1,updating:e.updating||r,updated:e.updated||r,removing:e.removing||r,removed:e.removed||r,adding:e.adding||r,added:e.added||r};return n.patch=function(i,o){if(n.differentElementNamesTypesOrKeys(i,o))return n.swapElements(i,o);let a=!1,s=!1,l=u=>n.skipUntilCondition=u;if(!Vg(n.updating,()=>s=!0,l,i,o,()=>a=!0)){if(i.nodeType===1&&window.Alpine&&(window.Alpine.cloneNode(i,o),i._x_teleport&&o._x_teleport&&n.patch(i._x_teleport,o._x_teleport)),Gg(o)){n.patchNodeValue(i,o),n.updated(i,o);return}a||n.patchAttributes(i,o),n.updated(i,o),s||n.patchChildren(i,o)}},n.differentElementNamesTypesOrKeys=function(i,o){return i.nodeType!=o.nodeType||i.nodeName!=o.nodeName||n.getKey(i)!=n.getKey(o)},n.swapElements=function(i,o){if(sn(n.removing,i))return;let a=o.cloneNode(!0);sn(n.adding,a)||(i.replaceWith(a),n.removed(i),n.added(a))},n.patchNodeValue=function(i,o){let a=o.nodeValue;i.nodeValue!==a&&(i.nodeValue=a)},n.patchAttributes=function(i,o){if(i._x_transitioning||i._x_isShown&&!o._x_isShown||!i._x_isShown&&o._x_isShown)return;let a=Array.from(i.attributes),s=Array.from(o.attributes);for(let l=a.length-1;l>=0;l--){let u=a[l].name;o.hasAttribute(u)||(u==="open"&&i.nodeName==="DIALOG"&&i.open?i.close():i.removeAttribute(u))}for(let l=s.length-1;l>=0;l--){let u=s[l].name,c=s[l].value;i.getAttribute(u)!==c&&i.setAttribute(u,c)}},n.patchChildren=function(i,o){let a=n.keyToMap(i.children),s={},l=Ef(o),u=Ef(i);for(;l;){Xg(l,u);let f=n.getKey(l),d=n.getKey(u);if(n.skipUntilCondition){let v=!u||n.skipUntilCondition(u),y=!l||n.skipUntilCondition(l);if(v&&y)n.skipUntilCondition=null;else{v||(u=u&&be(i,u)),y||(l=l&&be(o,l));continue}}if(!u)if(f&&s[f]){let v=s[f];i.appendChild(v),u=v,d=n.getKey(u)}else{if(!sn(n.adding,l)){let v=l.cloneNode(!0);i.appendChild(v),n.added(v)}l=be(o,l);continue}let p=v=>v&&v.nodeType===8&&v.textContent==="[if BLOCK]><![endif]",m=v=>v&&v.nodeType===8&&v.textContent==="[if ENDBLOCK]><![endif]";if(p(l)&&p(u)){let v=0,y=u;for(;u;){let k=be(i,u);if(p(k))v++;else if(m(k)&&v>0)v--;else if(m(k)&&v===0){u=k;break}u=k}let w=u;v=0;let S=l;for(;l;){let k=be(o,l);if(p(k))v++;else if(m(k)&&v>0)v--;else if(m(k)&&v===0){l=k;break}l=k}let C=l,P=new ln(y,w),O=new ln(S,C);n.patchChildren(P,O);continue}if(u.nodeType===1&&n.lookahead&&!u.isEqualNode(l)){let v=be(o,l),y=!1;for(;!y&&v;)v.nodeType===1&&u.isEqualNode(v)&&(y=!0,u=n.addNodeBefore(i,l,u),d=n.getKey(u)),v=be(o,v)}if(f!==d){if(!f&&d){s[d]=u,u=n.addNodeBefore(i,l,u),s[d].remove(),u=be(i,u),l=be(o,l);continue}if(f&&!d&&a[f]&&(u.replaceWith(a[f]),u=a[f],d=n.getKey(u)),f&&d){let v=a[f];if(v)s[d]=u,u.replaceWith(v),u=v,d=n.getKey(u);else{s[d]=u,u=n.addNodeBefore(i,l,u),s[d].remove(),u=be(i,u),l=be(o,l);continue}}}let h=u&&be(i,u);n.patch(u,l),l=l&&be(o,l),u=h}let c=[];for(;u;)sn(n.removing,u)||c.push(u),u=be(i,u);for(;c.length;){let f=c.shift();f.remove(),n.removed(f)}},n.getKey=function(i){return i&&i.nodeType===1&&n.key(i)},n.keyToMap=function(i){let o={};for(let a of i){let s=n.getKey(a);s&&(o[s]=a)}return o},n.addNodeBefore=function(i,o,a){if(!sn(n.adding,o)){let s=o.cloneNode(!0);return i.insertBefore(s,a),n.added(s),s}return o},n}Xa.step=()=>{};Xa.log=()=>{};function sn(e,...t){let r=!1;return e(...t,()=>r=!0),r}function Vg(e,t,r,...n){let i=!1;return e(...n,()=>i=!0,t,r),i}var xf=!1;function Jg(e){let t=document.createElement("template");return t.innerHTML=e,t.content.firstElementChild}function Gg(e){return e.nodeType===3||e.nodeType===8}var ln=class{constructor(e,t){this.startComment=e,this.endComment=t}get children(){let e=[],t=this.startComment.nextSibling;for(;t&&t!==this.endComment;)e.push(t),t=t.nextSibling;return e}appendChild(e){this.endComment.before(e)}get firstChild(){let e=this.startComment.nextSibling;if(e!==this.endComment)return e}nextNode(e){let t=e.nextSibling;if(t!==this.endComment)return t}insertBefore(e,t){return t.before(e),e}};function Ef(e){return e.firstChild}function be(e,t){let r;return e instanceof ln?r=e.nextNode(t):r=t.nextSibling,r}function Af(){if(xf)return;xf=!0;let e=Element.prototype.setAttribute,t=document.createElement("div");Element.prototype.setAttribute=function(n,i){if(!n.includes("@"))return e.call(this,n,i);let o=i.replace(/&/g,"&").replace(/"/g,""");t.innerHTML=`<span ${n}="${o}"></span>`;let a=t.firstElementChild.getAttributeNode(n);t.firstElementChild.removeAttributeNode(a),this.setAttributeNode(a)}}function Xg(e,t){let r=t&&t._x_bindings&&t._x_bindings.id;!r||!e.setAttribute||(e.setAttribute("id",r),e.id=r)}function Yg(e){e.morph=Xa,e.morphBetween=Kg}var Cf=Yg;function Qg(e){e.directive("mask",(t,{value:r,expression:n},{effect:i,evaluateLater:o,cleanup:a})=>{let s=()=>n,l="";queueMicrotask(()=>{if(["function","dynamic"].includes(r)){let f=o(n);i(()=>{s=d=>{let p;return e.dontAutoEvaluateFunctions(()=>{f(m=>{p=typeof m=="function"?m(d):m},{scope:{$input:d,$money:ev.bind({el:t})}})}),p},c(t,!1)})}else c(t,!1);if(t._x_model){t._x_model.get()!==t.value&&(t._x_model.get()===null&&t.value===""||t._x_model.set(t.value));let f=t._x_forceModelUpdate;t._x_forceModelUpdate=d=>{d=String(d);let p=s(d);p&&p!=="false"&&(d=Ya(p,d)),l=d,f(d),t._x_model.set(d)}}});let u=new AbortController;a(()=>{u.abort()}),t.addEventListener("input",()=>c(t),{signal:u.signal,capture:!0}),t.addEventListener("blur",()=>c(t,!1),{signal:u.signal});function c(f,d=!0){let p=f.value,m=s(p);if(!m||m==="false")return!1;if(l.length-f.value.length===1)return l=f.value;let h=()=>{l=f.value=Ya(m,p)};d?Zg(f,m,()=>{h()}):h()}}).before("model")}function Zg(e,t,r){let n=e.selectionStart,i=e.value;r();let o=i.slice(0,n),a=Ya(t,o).length;e.setSelectionRange(a,a)}var Of={9:/[0-9]/,a:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/};function Ya(e,t){let r=0,n=0,i="";for(;r<e.length&&n<t.length;){let o=e[r],a=t[n];o in Of?(Of[o].test(a)&&(i+=a,r++),n++):(i+=o,r++,o===t[n]&&n++)}return i}function ev(e,t=".",r,n=2){if(e==="-")return"-";if(/^\D+$/.test(e))return"9";r==null&&(r=t===","?".":",");let i=(l,u)=>{let c="",f=0;for(let d=l.length-1;d>=0;d--)l[d]!==u&&(f===3?(c=l[d]+u+c,f=0):c=l[d]+c,f++);return c},o=e.startsWith("-")?"-":"",a=e.replaceAll(new RegExp(`[^0-9\\${t}]`,"g"),""),s=Array.from({length:a.split(t)[0].length}).fill("9").join("");return s=`${o}${i(s,r)}`,n>0&&e.includes(t)&&(s+=`${t}`+"9".repeat(n)),queueMicrotask(()=>{this.el.value.endsWith(t)||this.el.value[this.el.selectionStart-1]===t&&this.el.setSelectionRange(this.el.selectionStart-1,this.el.selectionStart-1)}),s}var kf=Qg;function Tf(){setTimeout(()=>tv()),pn(document,"livewire:init"),pn(document,"livewire:initializing"),_.plugin(Cf),_.plugin(Ga),_.plugin(Zu),_.plugin(Ec),_.plugin(Ac),_.plugin(Mu),_.plugin(Wc),_.plugin(Ju),_.plugin(Qu),_.plugin(bf),_.plugin(kf),_.addRootSelector(()=>"[wire\\:id]"),_.onAttributesAdded((e,t)=>{if(!Array.from(t).some(n=>st(n.name)))return;let r=oe(e,!1);!r||t.forEach(n=>{if(!st(n.name))return;let i=De(e,n.name);z("directive.init",{el:e,component:r,directive:i,cleanup:o=>{_.onAttributeRemoved(e,i.raw,o)}})})}),_.interceptInit(_.skipDuringClone(e=>{if(!Array.from(e.attributes).some(n=>st(n.name)))return;if(e.hasAttribute("wire:id")&&!e.__livewire&&!xu(e.getAttribute("wire:id"))){let n=wu(e);_.onAttributeRemoved(e,"wire:id",()=>{_u(n.id)})}let t=Array.from(e.getAttributeNames()).filter(n=>st(n)).map(n=>De(e,n));t.forEach(n=>{z("directive.global.init",{el:e,directive:n,cleanup:i=>{_.onAttributeRemoved(e,n.raw,i)}})});let r=oe(e,!1);r&&(z("element.init",{el:e,component:r}),t.forEach(n=>{z("directive.init",{el:e,component:r,directive:n,cleanup:i=>{_.onAttributeRemoved(e,n.raw,i)}})}))},e=>{if(!Array.from(e.attributes).some(r=>st(r.name)))return;Array.from(e.getAttributeNames()).filter(r=>st(r)).map(r=>De(e,r)).forEach(r=>{z("directive.global.init",{el:e,directive:r,cleanup:n=>{_.onAttributeRemoved(e,r.raw,n)}})})})),_.start(),setTimeout(()=>window.Livewire.initialRenderIsFinished=!0),pn(document,"livewire:initialized")}function tv(){let e=document.querySelector("script[data-update-uri][data-csrf]");if(!e)return;let t=e.closest("[wire\\:id]");t&&console.warn("Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.",t)}R("effect",({component:e,effects:t})=>{rv(e,t.listeners||[])});function rv(e,t){t.forEach(r=>{let n=i=>{e.isLazy&&!e.hasBeenLazyLoaded||(i.__livewire&&i.__livewire.receivedBy.push(e),e.$wire.call("__dispatch",r,i.detail||{}))};window.addEventListener(r,n),e.addCleanup(()=>window.removeEventListener(r,n)),e.el.addEventListener(r,i=>{e.isLazy&&!e.hasBeenLazyLoaded||!i.__livewire||i.bubbles||(i.__livewire&&i.__livewire.receivedBy.push(e.id),e.$wire.call("__dispatch",r,i.detail||{}))})})}function nv(e){let t=[],r=e;for(;r;){if(r._x_dataStack&&r._x_dataStack.length>0){let n=r._x_dataStack[0];for(let i of Object.keys(n))!t.includes(i)&&!i.startsWith("$")&&t.push(i)}if(r.hasAttribute&&r.hasAttribute("wire:id"))break;r=r.parentElement}return t}function un(e,t,r={}){if(!t||t.trim()==="")return;let n=_.evaluateRaw(e,t,r);return n instanceof Promise&&n.catch(()=>{}),n}function ce(e,t,r={}){if(!t||t.trim()==="")return;let n=iv(t,e);try{let i=_.evaluateRaw(e,n,r);return i instanceof Promise&&i._livewireAction&&i.catch(()=>{}),i}catch(i){console.warn(`Livewire Expression Error: ${i.message} + +${t?'Expression: "'+t+`" + +`:""}`,e),console.error(i)}}function iv(e,t){let r=["JSON","true","false","null","undefined","this","$wire","$event"];t&&r.push(...nv(t));let n=[],i=e.replace(/(["'`])(?:(?!\1)[^\\]|\\.)*\1/g,o=>(n.push(o),`___${n.length-1}___`));return i=i.replace(/(^|[^.\w$])(\$?[a-zA-Z_]\w*)/g,(o,a,s,l)=>r.includes(s)||/^___\d+___$/.test(s)||i[l+o.length]===":"?a+s:a+"$wire."+s),i.replace(/___(\d+)___/g,(o,a)=>n[a])}var gr=new WeakMap,ji=new Set;R("payload.intercept",async({assets:e})=>{if(!!e)for(let[t,r]of Object.entries(e))await sv(t,async()=>{await lv(r)})});R("component.init",({component:e})=>{let t=e.snapshot.memo.assets;t&&t.forEach(r=>{ji.has(r)||ji.add(r)})});R("effect",({component:e,effects:t})=>{let r=t.scripts;r&&Object.entries(r).forEach(([n,i])=>{ov(e,n,()=>{let o=av(i);o=o.includes("await")?`(async()=>{ ${o} })()`:`(()=>{ ${o} })()`,_.dontAutoEvaluateFunctions(()=>{un(e.el,o,{context:e.$wire,scope:{$wire:e.$wire,$js:e.$wire.js}})})})})});function ov(e,t,r){if(gr.has(e)&&gr.get(e).includes(t))return;r(),gr.has(e)||gr.set(e,[]);let n=gr.get(e);n.push(t),gr.set(e,n)}function av(e){let r=/<script\b[^>]*>([\s\S]*?)<\/script>/gm.exec(e);return r&&r[1]?r[1].trim():""}async function sv(e,t){ji.has(e)||(ji.add(e),await t())}async function lv(e){e=gn(e);let t=new DOMParser().parseFromString(e,"text/html"),r=document.adoptNode(t.head);for(let n of r.children)try{await uv(n)}catch{}}async function uv(e){return new Promise((t,r)=>{if(cv(e)){let n=br(e);n.src?(n.onload=()=>t(),n.onerror=()=>r()):t(),document.head.appendChild(n)}else document.head.appendChild(e),t()})}function cv(e){return e.tagName.toLowerCase()==="script"}_.magic("js",e=>oe(e).$wire.js);R("effect",({component:e,effects:t})=>{let r=t.js,n=t.xjs;r&&Object.entries(r).forEach(([i,o])=>{mu(e,i,()=>{un(e.el,o)})}),n&&n.forEach(({expression:i,params:o})=>{o=Object.values(o),un(e.el,i,{scope:e.getJsActions(),params:o})})});var fv="match-element";Kn("transition",({el:e,directive:t,cleanup:r})=>{});function Mf(e,t={}){e.querySelectorAll("[wire\\:transition]").forEach(r=>{if(r.style.viewTransitionName)return;let n=r.getAttribute("wire:transition");!n&&t.type||(r.style.viewTransitionName=n||fv)})}function dv(e){e.querySelectorAll("[wire\\:transition]").forEach(t=>{t.style.viewTransitionName=""})}async function Qa(e,t,r,n={}){if(n.skip||!e.querySelector("[wire\\:transition]")&&!t.querySelector("[wire\\:transition]")||typeof document.startViewTransition!="function"||document.querySelector("dialog:modal"))return r();Mf(e,n);let i=document.createElement("style");i.textContent=` + @media (prefers-reduced-motion: reduce) { + ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { + animation: none !important; + } + } + + ::view-transition-old(root) { + animation: none !important; + opacity: 0 !important; + } + + ::view-transition-new(root) { + animation: none !important; + opacity: 1 !important; + } + `,document.head.appendChild(i);let o=()=>{r(),Mf(e,n)},a={update:o};n.type&&(a.types=[n.type]);let s=()=>{i.remove(),dv(e)},l=u=>{let c=new MutationObserver(()=>{document.querySelector("dialog:modal")&&(u.skipTransition(),c.disconnect())});c.observe(document.documentElement,{attributes:!0,attributeFilter:["open"],subtree:!0}),u.finished.finally(()=>c.disconnect())};try{let u=document.startViewTransition(a);l(u),u.finished.finally(s),await u.updateCallbackDone}catch{let c=document.startViewTransition(o);l(c),c.finished.finally(s),await c.updateCallbackDone}}async function Pf(e,t,r){let n=cn(t.parentElement),i=document.createElement(n);i.innerHTML=r;let o;try{o=oe(t.parentElement)}catch{}o&&(i.__livewire=o);let a=i.firstElementChild;a.setAttribute("wire:snapshot",e.snapshotEncoded);let s={...e.effects};delete s.html,a.setAttribute("wire:effects",JSON.stringify(s)),a.__livewire=e,z("morph",{el:t,toEl:a,component:e});let l={};t.querySelectorAll("[wire\\:id]").forEach(c=>{l[c.getAttribute("wire:id")]=c}),a.querySelectorAll("[wire\\:id]").forEach(c=>{if(c.hasAttribute("wire:snapshot"))return;let f=c.getAttribute("wire:id"),d=l[f];d&&c.replaceWith(d.cloneNode(!0))});let u=e.effects.transition||{};await Qa(t,a,()=>{_.morph(t,a,If(e))},u),z("morphed",{el:t,component:e})}async function Ui(e,t,r,n){let i=t.parentElement,o=cn(i),a=document.createElement(o);a.innerHTML=n,a.__livewire=e;let s=e.el.parentElement,l=cn(s),u;try{u=s?oe(s):null}catch{}if(u){let m=document.createElement(l);m.appendChild(a),m.__livewire=u}z("island.morph",{startNode:t,endNode:r,component:e});let c=e.effects.transition||{},f=!1,d=t.nextSibling;for(;d&&d!==r;){if(d.nodeType===1&&(d.hasAttribute?.("wire:transition")||d.querySelector?.("[wire\\:transition]"))){f=!0;break}d=d.nextSibling}let p=f?i:document.createElement("div");await Qa(p,a,()=>{_.morphBetween(t,r,a,If(e))},c),z("island.morphed",{startNode:t,endNode:r,component:e})}function If(e){return{updating:(t,r,n,i,o,a)=>{if(Nt(t)&&Nt(r)){let s=Re(r);s.mode!=="morph"&&a(l=>nr(l)?Re(l).token===s.token:!1)}if(!vr(t)){if(z("morph.updating",{el:t,toEl:r,component:e,skip:i,childrenOnly:n,skipChildren:o,skipUntil:a}),t.__livewire_replace===!0&&(t.innerHTML=r.innerHTML),t.__livewire_replace_self===!0)return t.outerHTML=r.outerHTML,i();if(t.__livewire_ignore===!0)return i();if(t.__livewire_ignore_self===!0&&n(),t.__livewire_ignore_children===!0)return o();if(Nf(t)&&t.getAttribute("wire:id")!==e.id)return i();Nf(t)&&(r.__livewire=e)}},updated:t=>{vr(t)||z("morph.updated",{el:t,component:e})},removing:(t,r)=>{vr(t)||z("morph.removing",{el:t,component:e,skip:r})},removed:t=>{vr(t)||z("morph.removed",{el:t,component:e})},adding:t=>{z("morph.adding",{el:t,component:e})},added:t=>{vr(t)||z("morph.added",{el:t})},key:t=>{if(!vr(t))return t.hasAttribute("wire:id")?t.getAttribute("wire:id"):t.hasAttribute("wire:key")?t.getAttribute("wire:key"):t.id},lookahead:!1}}function vr(e){return typeof e.hasAttribute!="function"}function Nf(e){return e.hasAttribute("wire:id")}function cn(e){let t=e?e.tagName.toLowerCase():"div",r=customElements.get(t);return r?r.name:t}ae(({message:e,onSuccess:t})=>{t(({payload:r,onMorph:n})=>{n(async()=>{let i=r.effects.html;!i||await Pf(e.component,e.component.el,i)})})});R("effect",({component:e,effects:t})=>{queueMicrotask(()=>{queueMicrotask(()=>{queueMicrotask(()=>{pv(e,t.dispatches||[])})})})});function pv(e,t){t.forEach(({name:r,params:n={},self:i=!1,component:o,ref:a,el:s})=>{i?We(e,r,n):o?rr(o,r,n):a?Xn(e,a,r,n):s?Gn(e,s,r,n):Jn(e,r,n)})}var Za=new fn;R("directive.init",({el:e,directive:t,cleanup:r,component:n})=>setTimeout(()=>{t.value==="submit"&&e.addEventListener("submit",()=>{let i=t.expression.startsWith("$parent")?n.parent.id:n.id,o=hv(e);Za.add(i,o)})}));R("commit",({component:e,respond:t})=>{t(()=>{Za.each(e.id,r=>r()),Za.remove(e.id)})});function hv(e){let t=[];return _.walk(e,(r,n)=>{if(!!e.contains(r)){if(r.hasAttribute("wire:ignore"))return n();mv(r)?t.push(vv(r)):gv(r)&&t.push(bv(r))}}),()=>{for(;t.length>0;)t.shift()()}}function mv(e){let t=e.tagName.toLowerCase(),r=["hidden","range","color","checkbox","radio","file","submit","image","reset","button"];return!!(t==="select"||t==="button"&&e.type==="submit"||t==="input"&&r.includes(e.type))}function gv(e){return["input","textarea"].includes(e.tagName.toLowerCase())}function vv(e){let t=e.disabled?()=>{}:()=>e.disabled=!1;return e.disabled=!0,t}function bv(e){let t=e.readOnly?()=>{}:()=>e.readOnly=!1;return e.readOnly=!0,t}R("commit",({succeed:e})=>{e(({effects:t})=>{let r=t.download;if(!r)return;let n=window.webkitURL||window.URL,i=n.createObjectURL(yv(r.content,r.contentType)),o=document.createElement("a");o.style.display="none",o.href=i,o.download=r.name,document.body.appendChild(o),o.click(),setTimeout(function(){n.revokeObjectURL(i)},0)})});function yv(e,t="",r=512){let n=atob(e),i=[];t===null&&(t="");for(let o=0;o<n.length;o+=r){let a=n.slice(o,o+r),s=new Array(a.length);for(let u=0;u<a.length;u++)s[u]=a.charCodeAt(u);let l=new Uint8Array(s);i.push(l)}return new Blob(i,{type:t})}R("effect",({component:e,effects:t,cleanup:r})=>{let n=t.url;!n||Object.entries(n).forEach(([i,o])=>{let{name:a,as:s,use:l,alwaysShow:u,except:c}=wv(i,o);s||(s=a);let f=[!1,null,void 0].includes(c)?Z(e.ephemeral,a):c,{replace:d,push:p,pop:m}=Bi(s,f,u,c);if(l==="replace"){let h=_.effect(()=>{d(Z(e.reactive,a))});r(()=>_.release(h))}else if(l==="push"){let h=!1,v=R("commit",({component:S,succeed:C})=>{if(e!==S)return;let P=Z(e.canonical,a);C(()=>{let O=Z(e.canonical,a);JSON.stringify(P)!==JSON.stringify(O)&&(h?d(O):p(O))})}),y=m(async S=>{h=!0,await e.$wire.set(a,S),document.querySelectorAll("input").forEach(C=>{C._x_forceModelUpdate&&C._x_forceModelUpdate(C._x_model.get())}),requestAnimationFrame(()=>h=!1)}),w=Z(e.ephemeral,a);JSON.stringify(w)!==JSON.stringify(f)&&d(w),r(()=>{v(),y()})}})});function wv(e,t){let r={use:"replace",alwaysShow:!1};return typeof t=="string"?{...r,name:t,as:t}:{...{...r,name:e,as:e},...t}}R("request",({options:e})=>{window.Echo&&(e.headers["X-Socket-ID"]=window.Echo.socketId())});R("effect",({component:e,effects:t})=>{(t.listeners||[]).forEach(n=>{if(n.startsWith("echo")){if(typeof window.Echo>"u"){console.warn("Laravel Echo cannot be found");return}let i=n.split(/(echo:|echo-)|:|,/);i[1]=="echo:"&&i.splice(2,0,"channel",void 0),i[2]=="notification"&&i.push(void 0,void 0);let[o,a,s,l,u,c,f]=i;if(["channel","private","encryptedPrivate"].includes(s)){let d=p=>We(e,n,[p]);window.Echo[s](u).listen(f,d),e.addCleanup(()=>{window.Echo[s](u).stopListening(f,d)})}else if(s=="presence")if(["here","joining","leaving"].includes(f))window.Echo.join(u)[f](d=>{We(e,n,[d])}),e.addCleanup(()=>{window.Echo.leave(u)});else{let d=p=>We(e,n,[p]);window.Echo.join(u).listen(f,d),e.addCleanup(()=>{window.Echo.leave(u)})}else s=="notification"?(window.Echo.private(u).notification(d=>{We(e,n,[d])}),e.addCleanup(()=>{window.Echo.private(u).stopListening(".Illuminate\\Notifications\\Events\\BroadcastNotificationCreated")})):console.warn("Echo channel type not yet supported")}})});ae(({message:e,onStream:t})=>{t(({json:r})=>{let{id:n,type:i,name:o,el:a,ref:s,content:l,mode:u}=r;if(i==="island")return;let c=$r(n),f=null;if(i==="directive"){let d=c.el.querySelector(`[wire\\:stream\\.replace="${o}"]`);d?(f=d,u="replace"):f=c.el.querySelector(`[wire\\:stream="${o}"]`)}else i==="ref"?f=Zt(c,s):i==="element"&&(f=c.el.querySelector(a));!f||(u==="replace"?f.innerHTML=l:f.insertAdjacentHTML("beforeend",l))})});document.addEventListener("livewire:initialized",()=>{_v()&&Alpine.navigate.disableProgressBar()});document.addEventListener("alpine:navigate",e=>es("livewire:navigate",e));document.addEventListener("alpine:navigating",e=>es("livewire:navigating",e));document.addEventListener("alpine:navigated",e=>es("livewire:navigated",e));function es(e,t){let r=new CustomEvent(e,{cancelable:!0,bubbles:!0,detail:t.detail});document.dispatchEvent(r),r.defaultPrevented&&t.preventDefault()}function Df(e,t,r){e.redirectUsingNavigate?Alpine.navigate(t):r()}function _v(){return!!(document.querySelector("[data-no-progress-bar]")||window.livewireScriptConfig&&window.livewireScriptConfig.progressBar==="data-no-progress-bar")}R("effect",({effects:e,request:t})=>{if(!e.redirect)return;let r=!1;if(t.invokeOnRedirect({url:e.redirect,preventDefault:()=>r=!0}),r)return;let n=e.redirect;Df(e,n,()=>{window.location.href=n})});kt(({action:e})=>{let t=e.origin;if(!t)return;let{el:r,directive:n}=t,i=Array.from(r.attributes).find(a=>a.name.startsWith("wire:island"));if(i){let a=i.value,s=i.name.split("."),l=s.includes("prepend"),u=s.includes("append"),c=l?"prepend":u?"append":"morph";e.mergeMetadata({island:{name:a,mode:c}});return}let o=ts(t.el);!o||e.mergeMetadata({island:{name:o.metadata.name,mode:"morph"}})});ae(({message:e,onSuccess:t,onStream:r})=>{r(({json:n})=>{let{type:i,islandFragment:o}=n;i==="island"&&Ff(e.component,o)}),t(({payload:n,onMorph:i})=>{i(async()=>{(n.effects.islandFragments||[]).forEach(async a=>{await Ff(e.component,a)})})})});function ts(e){return vu(e,{isMatch:({type:t})=>t==="island"})}async function Ff(e,t){let r=Lr(t),n=Zn(e.el,{isMatch:({type:l,token:u})=>l===r.type&&u===r.token});if(!n)return;let i=Lr(t),o=ei(t),a=cn(n.startMarkerNode.parentElement),s=i.mode||"morph";s==="morph"?await Ui(e,n.startMarkerNode,n.endMarkerNode,o):s==="append"?n.append(a,o):s==="prepend"&&n.prepend(a,o)}ae(({message:e,onSuccess:t,onStream:r})=>{t(({payload:n,onMorph:i})=>{i(async()=>{(n.effects.slotFragments||[]).forEach(async a=>{await xv(e.component,a)})})})});async function xv(e,t){let r=Lr(t),n=$r(r.id),i=Zn(n.el,{isMatch:({name:a,token:s})=>a===r.name&&s===r.token});if(!i)return;let o=ei(t);await Ui(n,i.startMarkerNode,i.endMarkerNode,o)}ae(({message:e,onSend:t,onFinish:r})=>{let n=[];t(()=>{e.actions.forEach(i=>{let o=i.origin;if(!o)return;let a=o.hasOwnProperty("targetEl")?o.targetEl:o.el;!a||(a.setAttribute("data-loading","true"),n.push(()=>{a.removeAttribute("data-loading")}))})}),r(()=>n.forEach(i=>i()))});_.addInitSelector(()=>"[wire\\:current]");var rs=new Map;document.addEventListener("livewire:navigated",()=>{rs.forEach(e=>e(new URL(window.location.href)))});Kn("current",({el:e,directive:t,cleanup:r})=>{let n=t.expression,i={exact:t.modifiers.includes("exact"),strict:t.modifiers.includes("strict"),ignore:t.modifiers.includes("ignore")};if(i.ignore||n.startsWith("#")||!e.hasAttribute("href"))return;let o=e.getAttribute("href"),a=new URL(o,window.location.href),s=n.split(" ").filter(String),l=u=>{ns(a,u,i)?(e.classList.add(...s),e.setAttribute("data-current","")):(e.classList.remove(...s),e.removeAttribute("data-current"))};l(new URL(window.location.href)),rs.set(e,l),r(()=>rs.delete(e))});function ns(e,t,r={}){if(e.hostname!==t.hostname)return!1;let n=r.strict?e.pathname:e.pathname.replace(/\/+$/,""),i=r.strict?t.pathname:t.pathname.replace(/\/+$/,"");if(r.exact)return n===i;let o=n.split("/"),a=i.split("/");for(let s=0;s<o.length;s++)if(o[s]!==a[s])return!1;return!0}var Rf=["[wire\\:navigate]","[wire\\:navigate\\.hover]","[wire\\:navigate\\.preserve-scroll]","[wire\\:navigate\\.preserve-scroll\\.hover]","[wire\\:navigate\\.hover\\.preserve-scroll]"],Lf=Rf.join(", "),Ev={"wire:navigate":"x-navigate","wire:navigate.hover":"x-navigate.hover","wire:navigate.preserve-scroll":"x-navigate.preserve-scroll","wire:navigate.preserve-scroll.hover":"x-navigate.preserve-scroll.hover","wire:navigate.hover.preserve-scroll":"x-navigate.hover.preserve-scroll"};Rf.forEach(e=>{_.addInitSelector(()=>e)});_.interceptInit(_.skipDuringClone(e=>{for(let[t,r]of Object.entries(Ev))if(e.hasAttribute(t)){_.bind(e,{[r]:!0});break}}));document.addEventListener("alpine:navigating",()=>{Livewire.all().forEach(e=>{e.inscribeSnapshotAndEffectsOnElement()})});document.addEventListener("livewire:navigated",()=>{$f()});document.addEventListener("DOMContentLoaded",()=>{$f()});function $f(){let e=new URL(window.location.href),t={exact:!0};document.querySelectorAll(Lf).forEach(r=>{if(Array.from(r.attributes).some(i=>i.name.startsWith("wire:current")))return;let n=r.getAttribute("href");if(!(!n||n.startsWith("#")))try{let i=new URL(n,window.location.href);ns(i,e,t)?r.setAttribute("data-current",""):r.removeAttribute("data-current")}catch{}})}ae(({message:e,onSuccess:t})=>{t(({onSync:r,onMorph:n,onRender:i})=>{e.actions.forEach(o=>{let a=o.origin;if(!a||!a.directive||!a.directive.modifiers.includes("preserve-scroll"))return;let l,u;r(()=>{l=document.body.scrollHeight,u=window.scrollY}),n(async()=>{let c=document.body.scrollHeight-l;window.scrollTo(0,u+c),l=null,u=null})})})});_.interceptInit(e=>{for(let t=0;t<e.attributes.length;t++)if(e.attributes[t].name.startsWith("wire:intersect")){let{name:r,value:n}=e.attributes[t],i=De(e,r),o=r.split("wire:intersect")[1],a=n.trim();_.bind(e,{["x-intersect"+o](s){i.eventContext=s;let l=oe(e,!1);!l||(l.addActionContext({el:e,directive:i}),ce(e,a))}})}});_.interceptInit(e=>{for(let t=0;t<e.attributes.length;t++)if(e.attributes[t].name.startsWith("wire:sort:item")){let r=De(e,e.attributes[t].name),n=r.modifiers.join("."),i=r.expression;_.bind(e,{["x-sort:item"+n](){return i}})}else{if(e.attributes[t].name.startsWith("wire:sort:group-id"))continue;if(e.attributes[t].name.startsWith("wire:sort:group"))return;if(e.attributes[t].name.startsWith("wire:sort")){let r=De(e,e.attributes[t].name),n=r.rawName.replace("wire:","x-");r.modifiers.includes("async")&&(n=n.replace(".async","")),r.modifiers.includes("renderless")&&(n=n.replace(".renderless","")),r.modifiers.includes("prepend")&&(n=n.replace(".prepend","")),r.modifiers.includes("append")&&(n=n.replace(".append",""));let i=r.expression;_.bind(e,{[n](){we({el:e,directive:r});let a=Array.from(e.children).filter(f=>f.hasAttribute("x-sort:item")||f.hasAttribute("wire:sort:item")).findIndex(f=>f._x_sort_key===this.$item),s=a!==-1?a:this.$position,l=[this.$item,s],u={$item:this.$item,$position:s},c=e.getAttribute("wire:sort:group-id");c!==null&&(l.push(c),u.$id=c),ce(e,i,{scope:u,params:l})}})}}});var Hi=new Set;R("effect",({component:e,effects:t})=>{if(t.styleModule){let r=e.name.replace(/\./g,"--").replace(/::/g,"---").replace(/:/g,"----"),n=`${yr()}/css/${r}.css?v=${t.styleModule}`;Hi.has(n)||(Hi.add(n),Bf(n))}if(t.globalStyleModule){let r=e.name.replace(/\./g,"--").replace(/::/g,"---").replace(/:/g,"----"),n=`${yr()}/css/${r}.global.css?v=${t.globalStyleModule}`;Hi.has(n)||(Hi.add(n),Bf(n))}});function Bf(e){let t=document.createElement("link");t.rel="stylesheet",t.href=e;let r=Ht();r&&(t.nonce=r),document.head.appendChild(t)}var Sv=new tt;function jf(e,t){Sv.each(e,r=>{r.callback(),r.callback=()=>{}}),t()}R("directive.init",({el:e,directive:t,cleanup:r,component:n})=>{if(["snapshot","effects","model","init","loading","poll","ignore","id","data","key","target","dirty","sort"].includes(t.value)||lu(t.value))return;let i=t.rawName.replace("wire:","x-on:");t.value==="submit"&&!t.modifiers.includes("prevent")&&(i=i+".prevent"),t.modifiers.includes("async")&&(i=i.replace(".async","")),t.modifiers.includes("renderless")&&(i=i.replace(".renderless","")),t.modifiers.includes("prepend")&&(i=i.replace(".prepend","")),t.modifiers.includes("append")&&(i=i.replace(".append",""));let o=_.bind(e,{[i](a){t.eventContext=a,t.wire=n.$wire;let s=()=>{jf(n,()=>{if(t.value==="submit"){let c=a.submitter||e.querySelector('button[type="submit"], input[type="submit"]');we({el:e,directive:t,targetEl:c})}else we({el:e,directive:t});let l=a.detail?.livewire;l?.interceptAction&&nu(l.interceptAction);let u=t.expression;if(l?.defaultParams!==void 0&&!u.includes("(")){let c=Array.isArray(l.defaultParams)?l.defaultParams:[l.defaultParams];u=u+"("+c.map(f=>JSON.stringify(f)).join(", ")+")"}ce(e,u,{scope:{$event:a}})})};e.__livewire_confirm?e.__livewire_confirm(()=>{s()},()=>{a.stopImmediatePropagation()}):s()}});r(o)});te("confirm",({el:e,directive:t})=>{let r=t.expression,n=t.modifiers.includes("prompt");r=r.replaceAll("\\n",` +`),r===""&&(r="Are you sure?"),e.__livewire_confirm=(i,o)=>{if(n){let[a,s]=r.split("|");s?prompt(a)===s?i():o():console.warn("Livewire: Must provide expectation with wire:confirm.prompt")}else confirm(r)?i():o()}});var is=new Set,os=new Set;window.addEventListener("offline",()=>is.forEach(e=>e()));window.addEventListener("online",()=>os.forEach(e=>e()));te("offline",({el:e,directive:t,cleanup:r})=>{let n=()=>Fe(e,t,!0),i=()=>Fe(e,t,!1);is.add(n),os.add(i),r(()=>{is.delete(n),os.delete(i)})});te("loading",({el:e,directive:t,component:r,cleanup:n})=>{let{targets:i,inverted:o}=Tv(e),[a,s]=Av(t),l=Cv(r,e,i,o,[()=>a(()=>Fe(e,t,!0)),()=>s(()=>Fe(e,t,!1))]),u=Ov(r,i,[()=>a(()=>Fe(e,t,!0)),()=>s(()=>Fe(e,t,!1))]);n(()=>{l(),u()})});function Av(e){if(!e.modifiers.includes("delay")||e.modifiers.includes("none"))return[o=>o(),o=>o()];let t=200,r={shortest:50,shorter:100,short:150,default:200,long:300,longer:500,longest:1e3};Object.keys(r).some(o=>{if(e.modifiers.includes(o))return t=r[o],!0});let n,i=!1;return[o=>{n=setTimeout(()=>{o(),i=!0},t)},async o=>{i?(await o(),i=!1):clearTimeout(n)}]}function Cv(e,t,r,n,[i,o]){return ae(({message:a,onSend:s,onSuccess:l,onFinish:u})=>{if(e!==a.component)return;if(r.length===0){let d=ts(t);if(d&&!a.hasActionForIsland(d)||!d&&!a.hasActionForComponent())return}let c=!0,f=!1;s(({payload:d})=>{r.length>0&&kv(d,r)===n&&(c=!1),c&&i()}),l(({onEffect:d})=>{d(()=>{c&&!f&&(o(),f=!0)})}),u(()=>{c&&!f&&(o(),f=!0)})})}function Ov(e,t,[r,n]){let i=l=>{let{id:u,property:c}=l.detail;return u!==e.id||t.length>0&&!t.map(f=>f.target).includes(c)},o=hn(window,"livewire-upload-start",l=>{i(l)||r()}),a=hn(window,"livewire-upload-finish",l=>{i(l)||n()}),s=hn(window,"livewire-upload-error",l=>{i(l)||n()});return()=>{o(),a(),s()}}function kv(e,t){let{updates:r,calls:n}=e;return t.some(({target:i,params:o})=>{if(o)return n.some(({method:s,params:l})=>i===s&&o===Uf(JSON.stringify(l)));if(Object.keys(r).some(s=>s.includes(".")&&s.split(".")[0]===i?!0:s===i)||n.map(s=>s.method).includes(i))return!0})}function Tv(e){let t=er(e),r=[],n=!1;if(t.has("target")){let i=t.get("target");i.modifiers.includes("except")&&(n=!0),i.methods.forEach(({method:o,params:a})=>{r.push({target:o,params:a&&a.length>0?Uf(JSON.stringify(a)):void 0})})}else{let i=["init","dirty","offline","navigate","target","loading","poll","ignore","key","id"];t.all().filter(o=>!i.includes(o.value)).map(o=>o.expression.split("(")[0]).forEach(o=>r.push({target:o}))}return{targets:r,inverted:n}}function Uf(e){return btoa(encodeURIComponent(e))}te("replace",({el:e,directive:t})=>{t.modifiers.includes("self")?e.__livewire_replace_self=!0:e.__livewire_replace=!0});te("ignore",({el:e,directive:t})=>{t.modifiers.includes("self")?e.__livewire_ignore_self=!0:t.modifiers.includes("children")?e.__livewire_ignore_children=!0:e.__livewire_ignore=!0});_.interceptInit(e=>{e.hasAttribute("wire:cloak")&&_.mutateDom(()=>e.removeAttribute("wire:cloak"))});te("model",({el:e,directive:t,component:r,cleanup:n})=>{r=oe(e);let{expression:i,modifiers:o}=t;if(!i)return console.warn("Livewire: [wire:model] is missing a value.",e);if(Hf(r,i))return console.warn('Livewire: [wire:model="'+i+'"] property does not exist on component: ['+r.name+"]",e);if(e.type&&e.type.toLowerCase()==="file")return ys(e,i,r,n);let a=o.indexOf("live"),s=a!==-1,l=o.includes("lazy")&&!s,u=s||l,c=s&&!l?o.slice(0,a):o.slice(),f=s&&!l?o.slice(a+1):[];l&&(c=c.filter(se=>se!=="lazy"),f.push("change")),c.includes("deep")||f.includes("deep")||c.includes("self")||c.push("self");let d=c.includes("blur"),p=c.includes("change")||c.includes("lazy"),m=c.includes("enter"),h=d||p||m,v=f.includes("blur"),y=f.includes("change")||f.includes("lazy"),w=f.includes("enter"),S=v||y||w,C=f.includes("debounce"),P=f.includes("throttle"),O=()=>{we({el:e,directive:t}),(s||C)&&Qt({type:"model.live"}),i.startsWith("$parent")?r.$wire.$parent.$commit():r.$wire.$commit()},k=O;(u&&!S&&Nv(e)||C)&&(k=Pv(k,qi(f,"debounce")||150)),P&&(k=Iv(k,qi(f,"throttle")||150));let j={};u&&v&&(j["@blur"]=()=>O()),u&&y&&(j["@change"]=()=>O()),u&&w&&(j["@keydown.enter"]=()=>O());let K=Mv(c);j["x-model"+K]=()=>({get(){return Z(r.$wire,i)},set(se){mt(r.$wire,i,se),u&&!S&&k()}}),_.bind(e,j)});function Mv(e){if(e=e.filter(t=>!["defer","live"].includes(t)),e.includes("debounce")){let t=e.indexOf("debounce"),r=qi(e,"debounce")!==void 0;e.splice(t,r?2:1)}if(e.includes("throttle")){let t=e.indexOf("throttle"),r=qi(e,"throttle")!==void 0;e.splice(t,r?2:1)}return e.length===0?"":"."+e.join(".")}function Nv(e){return["INPUT","TEXTAREA"].includes(e.tagName.toUpperCase())&&!["checkbox","radio"].includes(e.type)||e.tagName.toUpperCase()==="UI-SLIDER"||e.tagName.toUpperCase()==="UI-COMPOSER"}function Hf(e,t){if(t.startsWith("$parent")){let i=oe(e.el.parentElement,!1);return i?Hf(i,t.slice(7).replace(/^\./,"")):!0}let n=(t.match(/^\[['"]?([^\]'"]+)['"]?\]/)||t.match(/^([^.\[]+)/))[1];return!Object.keys(e.canonical).includes(n)}function Pv(e,t){var r;return function(){var n=this,i=arguments,o=function(){r=null,e.apply(n,i)};clearTimeout(r),r=setTimeout(o,t)}}function Iv(e,t){let r;return function(){let n=this,i=arguments;r||(e.apply(n,i),r=!0,setTimeout(()=>r=!1,t))}}function qi(e,t){if(e.indexOf(t)===-1)return;let i=(e[e.indexOf(t)+1]||"invalid-wait").split("ms")[0];return isNaN(i)?void 0:i}te("init",({component:e,el:t,directive:r})=>{let n=r.expression?r.expression:"$refresh";we({el:t,directive:r}),ce(t,n)});te("poll",({el:e,directive:t,component:r})=>{let n=Wv(t.modifiers,2e3),{start:i,pauseWhile:o,throttleWhile:a,stopWhen:s}=Fv(()=>{Dv(e,t,r)},n);i(),a(()=>$v()&&jv(t)),o(()=>Uv(t)&&Hv(e)),o(()=>Bv(e)),o(()=>Lv()),o(()=>ru()),s(()=>qv(e))});function Dv(e,t,r){we({el:e,directive:t,targetEl:null}),Qt({type:"poll"});let n=t.expression?t.expression:"$refresh";ce(e,n)}function Fv(e,t=2e3){let r=[],n=[],i=[];return{start(){let o=Rv(t,()=>{if(i.some(a=>a()))return o();r.some(a=>a())||n.some(a=>a())&&Math.random()<.95||e()})},pauseWhile(o){r.push(o)},throttleWhile(o){n.push(o)},stopWhen(o){i.push(o)}}}var jt=[];function Rv(e,t){if(!jt[e]){let r={timer:setInterval(()=>r.callbacks.forEach(n=>n()),e),callbacks:new Set};jt[e]=r}return jt[e].callbacks.add(t),()=>{jt[e].callbacks.delete(t),jt[e].callbacks.size===0&&(clearInterval(jt[e].timer),delete jt[e])}}var as=!1;window.addEventListener("offline",()=>as=!0);window.addEventListener("online",()=>as=!1);function Lv(){return as}var qf=!1;document.addEventListener("visibilitychange",()=>{qf=document.hidden},!1);function $v(){return qf}function Bv(e){return!er(e).has("poll")}function jv(e){return!e.modifiers.includes("keep-alive")}function Uv(e){return e.modifiers.includes("visible")}function Hv(e){let t=e.getBoundingClientRect();return!(t.top<(window.innerHeight||document.documentElement.clientHeight)&&t.left<(window.innerWidth||document.documentElement.clientWidth)&&t.bottom>0&&t.right>0)}function qv(e){return e.isConnected===!1}function Wv(e,t){let r,n=e.find(o=>o.match(/([0-9]+)ms/)),i=e.find(o=>o.match(/([0-9]+)s/));return n?r=Number(n.replace("ms","")):i&&(r=Number(i.replace("s",""))*1e3),r||t}_.interceptInit(e=>{for(let t=0;t<e.attributes.length;t++)if(e.attributes[t].name.startsWith("wire:show")){let{name:r,value:n}=e.attributes[t],i=r.split("wire:show")[1],o=n.trim();_.bind(e,{["x-show"+i](){return ce(e,o)}})}});_.interceptInit(e=>{for(let t=0;t<e.attributes.length;t++)if(e.attributes[t].name.startsWith("wire:text")){let{name:r,value:n}=e.attributes[t],i=r.split("wire:text")[1],o=n.trim();_.bind(e,{["x-text"+i](){return ce(e,o)}})}});_.interceptInit(e=>{for(let t=0;t<e.attributes.length;t++)if(e.attributes[t].name.startsWith("wire:bind:")){let{name:r,value:n}=e.attributes[t],i=r.split("wire:bind")[1],o=n.trim();_.bind(e,{["x-bind"+i](){return ce(e,o)}})}});var Wf={directive:te,dispatchTo:rr,interceptAction:e=>kt(e),interceptMessage:e=>ae(e),interceptRequest:e=>zn(e),fireAction:(e,t,r=[],n={})=>Tt(e,t,r,n),start:Tf,first:Au,find:Su,getByName:Eu,all:Cu,hook:R,trigger:z,triggerAsync:Rn,dispatch:Ou,on:ku,get navigate(){return _.navigate}},ss=e=>console.warn(`Detected multiple instances of ${e} running`);window.Livewire&&ss("Livewire");window.Alpine&&ss("Alpine");window.Livewire=Wf;window.Alpine=_;window.livewireScriptConfig===void 0&&(window.Alpine.__fromLivewire=!0,document.addEventListener("DOMContentLoaded",()=>{window.Alpine.__fromLivewire===void 0&&ss("Alpine"),Wf.start()}));})(); /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress * @license MIT */ /*! Bundled license information: +sortablejs/modular/sortable.esm.js: + (**! + * Sortable 1.15.2 + * @author RubaXa <trash@rubaxa.org> + * @author owenm <owen23355@gmail.com> + * @license MIT + *) +*/ +/*! Bundled license information: + tabbable/dist/index.esm.js: (*! - * tabbable 5.3.3 + * tabbable 6.4.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE *) focus-trap/dist/focus-trap.esm.js: (*! - * focus-trap 6.9.4 + * focus-trap 8.0.0 * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE *) + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *) */ //# sourceMappingURL=livewire.min.js.map diff --git a/admin/public/vendor/livewire/livewire.min.js.map b/admin/public/vendor/livewire/livewire.min.js.map index b4c8fe98..f5a7665f 100644 --- a/admin/public/vendor/livewire/livewire.min.js.map +++ b/admin/public/vendor/livewire/livewire.min.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../node_modules/nprogress/nprogress.js", "../js/utils.js", "../js/features/supportFileUploads.js", "../node_modules/alpinejs/dist/module.esm.js", "../js/features/supportEntangle.js", "../js/hooks.js", "../js/request/modal.js", "../js/request/pool.js", "../js/request/commit.js", "../js/request/bus.js", "../js/request/index.js", "../js/$wire.js", "../js/component.js", "../js/store.js", "../js/events.js", "../js/directives.js", "../node_modules/@alpinejs/collapse/dist/module.esm.js", "../node_modules/@alpinejs/focus/dist/module.esm.js", "../node_modules/@alpinejs/persist/dist/module.esm.js", "../node_modules/@alpinejs/intersect/dist/module.esm.js", "../node_modules/@alpinejs/resize/dist/module.esm.js", "../node_modules/@alpinejs/anchor/dist/module.esm.js", "../js/plugins/navigate/history.js", "../js/plugins/navigate/links.js", "../js/plugins/navigate/fetch.js", "../js/plugins/navigate/prefetch.js", "../js/plugins/navigate/teleport.js", "../js/plugins/navigate/scroll.js", "../js/plugins/navigate/persist.js", "../js/plugins/navigate/bar.js", "../js/plugins/navigate/page.js", "../js/plugins/navigate/index.js", "../js/plugins/history/index.js", "../node_modules/@alpinejs/morph/dist/module.esm.js", "../node_modules/@alpinejs/mask/dist/module.esm.js", "../js/lifecycle.js", "../js/features/supportListeners.js", "../js/features/supportScriptsAndAssets.js", "../js/features/supportJsEvaluation.js", "../js/morph.js", "../js/features/supportMorphDom.js", "../js/features/supportDispatches.js", "../js/features/supportDisablingFormsDuringRequest.js", "../js/features/supportPropsAndModelables.js", "../js/features/supportFileDownloads.js", "../js/features/supportLazyLoading.js", "../js/features/supportQueryString.js", "../js/features/supportLaravelEcho.js", "../js/features/supportIsolating.js", "../js/features/supportNavigate.js", "../js/features/supportRedirects.js", "../js/directives/wire-transition.js", "../js/debounce.js", "../js/directives/wire-wildcard.js", "../js/directives/wire-navigate.js", "../js/directives/wire-confirm.js", "../js/directives/shared.js", "../js/directives/wire-offline.js", "../js/directives/wire-loading.js", "../js/directives/wire-stream.js", "../js/directives/wire-replace.js", "../js/directives/wire-ignore.js", "../js/directives/wire-dirty.js", "../js/directives/wire-model.js", "../js/directives/wire-init.js", "../js/directives/wire-poll.js", "../js/index.js"], - "sourcesContent": ["/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n", "\nexport class Bag {\n constructor() { this.arrays = {} }\n\n add(key, value) {\n if (! this.arrays[key]) this.arrays[key] = []\n this.arrays[key].push(value)\n }\n\n remove(key) {\n if (this.arrays[key]) delete this.arrays[key]\n }\n\n get(key) { return this.arrays[key] || [] }\n\n each(key, callback) { return this.get(key).forEach(callback) }\n}\n\nexport class WeakBag {\n constructor() { this.arrays = new WeakMap }\n\n add(key, value) {\n if (! this.arrays.has(key)) this.arrays.set(key, [])\n this.arrays.get(key).push(value)\n }\n\n remove(key) {\n if (this.arrays.has(key)) this.arrays.delete(key, [])\n }\n\n get(key) { return this.arrays.has(key) ? this.arrays.get(key) : [] }\n\n each(key, callback) { return this.get(key).forEach(callback) }\n}\n\nexport function dispatch(target, name, detail = {}, bubbles = true) {\n target.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true,\n })\n )\n}\n\nexport function listen(target, name, handler) {\n target.addEventListener(name, handler)\n\n return () => target.removeEventListener(name, handler)\n}\n\n/**\n * Type-checking in JS is weird and annoying, these are better.\n */\nexport function isObjecty(subject) { return (typeof subject === 'object' && subject !== null) }\nexport function isObject(subject) { return (isObjecty(subject) && ! isArray(subject)) }\nexport function isArray(subject) { return Array.isArray(subject) }\nexport function isFunction(subject) { return typeof subject === 'function' }\nexport function isPrimitive(subject) { return typeof subject !== 'object' || subject === null }\n\n/**\n * Clone an object deeply to wipe out any shared references.\n */\nexport function deepClone(obj) { return JSON.parse(JSON.stringify(obj)) }\n\n/**\n * Determine if two objects take the exact same shape.\n */\nexport function deeplyEqual(a, b) { return JSON.stringify(a) === JSON.stringify(b) }\n\n/**\n * An easy way to loop through arrays and objects.\n */\nexport function each(subject, callback) {\n Object.entries(subject).forEach(([key, value]) => callback(key, value))\n}\n\n/**\n * Get a property from an object with support for dot-notation.\n */\nexport function dataGet(object, key) {\n if (key === '') return object\n\n return key.split('.').reduce((carry, i) => {\n if (carry === undefined) return undefined\n\n return carry[i]\n }, object)\n}\n\n/**\n * Set a property on an object with support for dot-notation.\n */\nexport function dataSet(object, key, value) {\n let segments = key.split('.')\n\n if (segments.length === 1) {\n return object[key] = value\n }\n\n let firstSegment = segments.shift()\n let restOfSegments = segments.join('.')\n\n if (object[firstSegment] === undefined) {\n object[firstSegment] = {}\n }\n\n dataSet(object[firstSegment], restOfSegments, value)\n}\n\n/**\n * Create a flat, dot-notated diff of two obejcts.\n */\nexport function diff(left, right, diffs = {}, path = '') {\n // Are they the same?\n if (left === right) return diffs\n\n // Are they COMPLETELY different?\n if (typeof left !== typeof right || (isObject(left) && isArray(right)) || (isArray(left) && isObject(right))) {\n diffs[path] = right;\n return diffs\n }\n\n // Is the right or left side a primitive value (a leaf node)?\n if (isPrimitive(left) || isPrimitive(right)) {\n diffs[path] = right\n return diffs\n }\n\n // We now know both are objects...\n let leftKeys = Object.keys(left)\n\n // Recursively diff the object's properties...\n Object.entries(right).forEach(([key, value]) => {\n diffs = {...diffs, ...diff(left[key], right[key], diffs, path === '' ? key : `${path}.${key}`)}\n leftKeys = leftKeys.filter(i => i !== key)\n })\n\n // Mark any items for removal...\n leftKeys.forEach(key => {\n diffs[`${path}.${key}`] = '__rm__'\n })\n\n return diffs\n}\n\n/**\n * The data that's passed between the browser and server is in the form of\n * nested tuples consisting of the schema: [rawValue, metadata]. In this\n * method we're extracting the plain JS object of only the raw values.\n */\nexport function extractData(payload) {\n let value = isSynthetic(payload) ? payload[0] : payload\n let meta = isSynthetic(payload) ? payload[1] : undefined\n\n if (isObjecty(value)) {\n Object.entries(value).forEach(([key, iValue]) => {\n value[key] = extractData(iValue)\n })\n }\n\n return value\n}\n\n/**\n * Determine if the variable passed in is a node in a nested metadata\n * tuple tree. (Meaning it takes the form of: [rawData, metadata])\n */\nexport function isSynthetic(subject) {\n return Array.isArray(subject)\n && subject.length === 2\n && typeof subject[1] === 'object'\n && Object.keys(subject[1]).includes('s')\n}\n\n/**\n * Post requests in Laravel require a csrf token to be passed\n * along with the payload. Here, we'll try and locate one.\n */\nexport function getCsrfToken() {\n // Purposely not caching. Fetching it fresh every time ensures we're\n // not depending on a stale session's CSRF token...\n\n if (document.querySelector('meta[name=\"csrf-token\"]')) {\n return document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content')\n }\n\n if (document.querySelector('[data-csrf]')) {\n return document.querySelector('[data-csrf]').getAttribute('data-csrf')\n }\n\n if (window.livewireScriptConfig['csrf'] ?? false) {\n return window.livewireScriptConfig['csrf']\n }\n\n throw 'Livewire: No CSRF token detected'\n}\n\nlet nonce;\n\nexport function getNonce() {\n if (nonce) return nonce\n\n\n if (window.livewireScriptConfig && (window.livewireScriptConfig['nonce'] ?? false)) {\n nonce = window.livewireScriptConfig['nonce']\n\n return nonce\n }\n\n const elWithNonce = document.querySelector('style[data-livewire-style][nonce]')\n\n if (elWithNonce) {\n nonce = elWithNonce.nonce\n\n return nonce\n }\n\n return null\n}\n\n/**\n * Livewire's update URI. This is configurable via Livewire::setUpdateRoute(...)\n */\nexport function getUpdateUri() {\n return document.querySelector('[data-update-uri]')?.getAttribute('data-update-uri') ?? window.livewireScriptConfig['uri'] ?? null\n}\n\nexport function contentIsFromDump(content) {\n return !! content.match(/<script>Sfdump\\(\".+\"\\)<\\/script>/)\n}\n\nexport function splitDumpFromContent(content) {\n let dump = content.match(/.*<script>Sfdump\\(\".+\"\\)<\\/script>/s)\n\n return [dump, content.replace(dump, '')]\n}\n", "import { getCsrfToken } from '@/utils';\n\nlet uploadManagers = new WeakMap\n\nfunction getUploadManager(component) {\n if (! uploadManagers.has(component)) {\n let manager = new UploadManager(component)\n\n uploadManagers.set(component, manager)\n\n manager.registerListeners()\n }\n\n return uploadManagers.get(component)\n}\n\nexport function handleFileUpload(el, property, component, cleanup) {\n let manager = getUploadManager(component)\n\n let start = () => el.dispatchEvent(new CustomEvent('livewire-upload-start', { bubbles: true, detail: { id: component.id, property} }))\n let finish = () => el.dispatchEvent(new CustomEvent('livewire-upload-finish', { bubbles: true, detail: { id: component.id, property} }))\n let error = () => el.dispatchEvent(new CustomEvent('livewire-upload-error', { bubbles: true, detail: { id: component.id, property} }))\n let cancel = () => el.dispatchEvent(new CustomEvent('livewire-upload-cancel', { bubbles: true, detail: { id: component.id, property} }))\n let progress = (progressEvent) => {\n var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total )\n\n el.dispatchEvent(\n new CustomEvent('livewire-upload-progress', {\n bubbles: true, detail: { progress: percentCompleted }\n })\n )\n }\n\n let eventHandler = e => {\n if (e.target.files.length === 0) return\n\n start()\n\n if (e.target.multiple) {\n manager.uploadMultiple(property, e.target.files, finish, error, progress, cancel)\n } else {\n manager.upload(property, e.target.files[0], finish, error, progress, cancel)\n }\n }\n\n el.addEventListener('change', eventHandler)\n\n // If the Livewire property has changed to null or an empty string, then reset the input...\n component.$wire.$watch(property, (value) => {\n // This watch will only be released when the component is removed. However, the\n // actual file-upload element may be removed from the DOM withou the entire\n // component being removed. In this case, let's just bail early on this.\n if (! el.isConnected) return\n\n if (value === null || value === '') {\n el.value = ''\n }\n })\n\n // There's a bug in browsers where selecting a file, removing it,\n // then re-adding it doesn't fire the change event. This fixes it.\n // Reference: https://stackoverflow.com/questions/12030686/html-input-file-selection-event-not-firing-upon-selecting-the-same-file\n let clearFileInputValue = () => { el.value = null }\n el.addEventListener('click', clearFileInputValue)\n\n // Clear the input if the uploaded is cancelled...\n el.addEventListener('livewire-upload-cancel', clearFileInputValue)\n\n cleanup(() => {\n el.removeEventListener('change', eventHandler)\n el.removeEventListener('click', clearFileInputValue)\n })\n}\n\nclass UploadManager {\n constructor(component) {\n this.component = component\n this.uploadBag = new MessageBag\n this.removeBag = new MessageBag\n }\n\n registerListeners() {\n this.component.$wire.$on('upload:generatedSignedUrl', ({ name, url }) => {\n // We have to add reduntant \"setLoading\" calls because the dom-patch\n // from the first response will clear the setUploadLoading call\n // from the first upload call.\n setUploadLoading(this.component, name)\n\n this.handleSignedUrl(name, url)\n })\n\n this.component.$wire.$on('upload:generatedSignedUrlForS3', ({ name, payload }) => {\n setUploadLoading(this.component, name)\n\n this.handleS3PreSignedUrl(name, payload)\n })\n\n this.component.$wire.$on('upload:finished', ({ name, tmpFilenames }) => this.markUploadFinished(name, tmpFilenames))\n this.component.$wire.$on('upload:errored', ({ name }) => this.markUploadErrored(name))\n this.component.$wire.$on('upload:removed', ({ name, tmpFilename }) => this.removeBag.shift(name).finishCallback(tmpFilename))\n }\n\n upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback) {\n this.setUpload(name, {\n files: [file],\n multiple: false,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n })\n }\n\n uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback) {\n this.setUpload(name, {\n files: Array.from(files),\n multiple: true,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n })\n }\n\n removeUpload(name, tmpFilename, finishCallback) {\n this.removeBag.push(name, {\n tmpFilename, finishCallback\n })\n\n this.component.$wire.call('_removeUpload', name, tmpFilename);\n }\n\n setUpload(name, uploadObject) {\n this.uploadBag.add(name, uploadObject)\n\n if (this.uploadBag.get(name).length === 1) {\n this.startUpload(name, uploadObject)\n }\n }\n\n handleSignedUrl(name, url) {\n let formData = new FormData()\n Array.from(this.uploadBag.first(name).files).forEach(file => formData.append('files[]', file, file.name))\n\n let headers = {\n 'Accept': 'application/json',\n }\n\n let csrfToken = getCsrfToken()\n\n if (csrfToken) headers['X-CSRF-TOKEN'] = csrfToken\n\n this.makeRequest(name, formData, 'post', url, headers, response => {\n return response.paths\n })\n }\n\n handleS3PreSignedUrl(name, payload) {\n let formData = this.uploadBag.first(name).files[0]\n\n let headers = payload.headers\n if ('Host' in headers) delete headers.Host\n let url = payload.url\n\n this.makeRequest(name, formData, 'put', url, headers, response => {\n return [payload.path]\n })\n }\n\n makeRequest(name, formData, method, url, headers, retrievePaths) {\n let request = new XMLHttpRequest()\n\n request.open(method, url)\n\n Object.entries(headers).forEach(([key, value]) => {\n request.setRequestHeader(key, value)\n })\n\n request.upload.addEventListener('progress', e => {\n e.detail = {}\n e.detail.progress = Math.floor((e.loaded * 100) / e.total)\n\n this.uploadBag.first(name).progressCallback(e)\n })\n\n request.addEventListener('load', () => {\n if ((request.status+'')[0] === '2') {\n let paths = retrievePaths(request.response && JSON.parse(request.response))\n\n this.component.$wire.call('_finishUpload', name, paths, this.uploadBag.first(name).multiple)\n\n return\n }\n\n let errors = null\n\n if (request.status === 422) {\n errors = request.response\n }\n\n this.component.$wire.call('_uploadErrored', name, errors, this.uploadBag.first(name).multiple)\n })\n\n this.uploadBag.first(name).request = request\n\n request.send(formData)\n }\n\n startUpload(name, uploadObject) {\n let fileInfos = uploadObject.files.map(file => {\n return { name: file.name, size: file.size, type: file.type }\n })\n\n this.component.$wire.call('_startUpload', name, fileInfos, uploadObject.multiple);\n\n setUploadLoading(this.component, name)\n }\n\n markUploadFinished(name, tmpFilenames) {\n unsetUploadLoading(this.component)\n\n let uploadObject = this.uploadBag.shift(name)\n uploadObject.finishCallback(uploadObject.multiple ? tmpFilenames : tmpFilenames[0])\n\n if (this.uploadBag.get(name).length > 0) this.startUpload(name, this.uploadBag.last(name))\n }\n\n markUploadErrored(name) {\n unsetUploadLoading(this.component)\n\n this.uploadBag.shift(name).errorCallback()\n\n if (this.uploadBag.get(name).length > 0) this.startUpload(name, this.uploadBag.last(name))\n }\n\n cancelUpload(name, cancelledCallback = null) {\n unsetUploadLoading(this.component)\n\n let uploadItem = this.uploadBag.first(name);\n\n if (uploadItem) {\n if (uploadItem.request) {\n uploadItem.request.abort();\n }\n\n this.uploadBag.shift(name).cancelledCallback();\n\n if (cancelledCallback) cancelledCallback()\n }\n }\n}\n\nexport default class MessageBag {\n constructor() {\n this.bag = {}\n }\n\n add(name, thing) {\n if (! this.bag[name]) {\n this.bag[name] = []\n }\n\n this.bag[name].push(thing)\n }\n\n push(name, thing) {\n this.add(name, thing)\n }\n\n first(name) {\n if (! this.bag[name]) return null\n\n return this.bag[name][0]\n }\n\n last(name) {\n return this.bag[name].slice(-1)[0]\n }\n\n get(name) {\n return this.bag[name]\n }\n\n shift(name) {\n return this.bag[name].shift()\n }\n\n call(name, ...params) {\n (this.listeners[name] || []).forEach(callback => {\n callback(...params)\n })\n }\n\n has(name) {\n return Object.keys(this.listeners).includes(name)\n }\n}\n\nfunction setUploadLoading() {\n // @todo\n}\n\nfunction unsetUploadLoading() {\n // @todo\n}\n\nexport function upload(\n component,\n name,\n file,\n finishCallback = () => { },\n errorCallback = () => { },\n progressCallback = () => { },\n cancelledCallback = () => { },\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.upload(\n name,\n file,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n )\n}\n\nexport function uploadMultiple(\n component,\n name,\n files,\n finishCallback = () => { },\n errorCallback = () => { },\n progressCallback = () => { },\n cancelledCallback = () => { },\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.uploadMultiple(\n name,\n files,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n )\n}\n\nexport function removeUpload(\n component,\n name,\n tmpFilename,\n finishCallback = () => { },\n errorCallback = () => { }\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.removeUpload(\n name,\n tmpFilename,\n finishCallback,\n errorCallback\n )\n}\n\nexport function cancelUpload(\n component,\n name,\n cancelledCallback = () => { }\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.cancelUpload(\n name,\n cancelledCallback\n )\n}\n", "// packages/alpinejs/src/scheduler.js\nvar flushPending = false;\nvar flushing = false;\nvar queue = [];\nvar lastFlushedIndex = -1;\nfunction scheduler(callback) {\n queueJob(callback);\n}\nfunction queueJob(job) {\n if (!queue.includes(job))\n queue.push(job);\n queueFlush();\n}\nfunction dequeueJob(job) {\n let index = queue.indexOf(job);\n if (index !== -1 && index > lastFlushedIndex)\n queue.splice(index, 1);\n}\nfunction queueFlush() {\n if (!flushing && !flushPending) {\n flushPending = true;\n queueMicrotask(flushJobs);\n }\n}\nfunction flushJobs() {\n flushPending = false;\n flushing = true;\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n lastFlushedIndex = i;\n }\n queue.length = 0;\n lastFlushedIndex = -1;\n flushing = false;\n}\n\n// packages/alpinejs/src/reactivity.js\nvar reactive;\nvar effect;\nvar release;\nvar raw;\nvar shouldSchedule = true;\nfunction disableEffectScheduling(callback) {\n shouldSchedule = false;\n callback();\n shouldSchedule = true;\n}\nfunction setReactivityEngine(engine) {\n reactive = engine.reactive;\n release = engine.release;\n effect = (callback) => engine.effect(callback, { scheduler: (task) => {\n if (shouldSchedule) {\n scheduler(task);\n } else {\n task();\n }\n } });\n raw = engine.raw;\n}\nfunction overrideEffect(override) {\n effect = override;\n}\nfunction elementBoundEffect(el) {\n let cleanup2 = () => {\n };\n let wrappedEffect = (callback) => {\n let effectReference = effect(callback);\n if (!el._x_effects) {\n el._x_effects = /* @__PURE__ */ new Set();\n el._x_runEffects = () => {\n el._x_effects.forEach((i) => i());\n };\n }\n el._x_effects.add(effectReference);\n cleanup2 = () => {\n if (effectReference === void 0)\n return;\n el._x_effects.delete(effectReference);\n release(effectReference);\n };\n return effectReference;\n };\n return [wrappedEffect, () => {\n cleanup2();\n }];\n}\nfunction watch(getter, callback) {\n let firstTime = true;\n let oldValue;\n let effectReference = effect(() => {\n let value = getter();\n JSON.stringify(value);\n if (!firstTime) {\n queueMicrotask(() => {\n callback(value, oldValue);\n oldValue = value;\n });\n } else {\n oldValue = value;\n }\n firstTime = false;\n });\n return () => release(effectReference);\n}\n\n// packages/alpinejs/src/mutation.js\nvar onAttributeAddeds = [];\nvar onElRemoveds = [];\nvar onElAddeds = [];\nfunction onElAdded(callback) {\n onElAddeds.push(callback);\n}\nfunction onElRemoved(el, callback) {\n if (typeof callback === \"function\") {\n if (!el._x_cleanups)\n el._x_cleanups = [];\n el._x_cleanups.push(callback);\n } else {\n callback = el;\n onElRemoveds.push(callback);\n }\n}\nfunction onAttributesAdded(callback) {\n onAttributeAddeds.push(callback);\n}\nfunction onAttributeRemoved(el, name, callback) {\n if (!el._x_attributeCleanups)\n el._x_attributeCleanups = {};\n if (!el._x_attributeCleanups[name])\n el._x_attributeCleanups[name] = [];\n el._x_attributeCleanups[name].push(callback);\n}\nfunction cleanupAttributes(el, names) {\n if (!el._x_attributeCleanups)\n return;\n Object.entries(el._x_attributeCleanups).forEach(([name, value]) => {\n if (names === void 0 || names.includes(name)) {\n value.forEach((i) => i());\n delete el._x_attributeCleanups[name];\n }\n });\n}\nfunction cleanupElement(el) {\n if (el._x_cleanups) {\n while (el._x_cleanups.length)\n el._x_cleanups.pop()();\n }\n}\nvar observer = new MutationObserver(onMutate);\nvar currentlyObserving = false;\nfunction startObservingMutations() {\n observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });\n currentlyObserving = true;\n}\nfunction stopObservingMutations() {\n flushObserver();\n observer.disconnect();\n currentlyObserving = false;\n}\nvar queuedMutations = [];\nfunction flushObserver() {\n let records = observer.takeRecords();\n queuedMutations.push(() => records.length > 0 && onMutate(records));\n let queueLengthWhenTriggered = queuedMutations.length;\n queueMicrotask(() => {\n if (queuedMutations.length === queueLengthWhenTriggered) {\n while (queuedMutations.length > 0)\n queuedMutations.shift()();\n }\n });\n}\nfunction mutateDom(callback) {\n if (!currentlyObserving)\n return callback();\n stopObservingMutations();\n let result = callback();\n startObservingMutations();\n return result;\n}\nvar isCollecting = false;\nvar deferredMutations = [];\nfunction deferMutations() {\n isCollecting = true;\n}\nfunction flushAndStopDeferringMutations() {\n isCollecting = false;\n onMutate(deferredMutations);\n deferredMutations = [];\n}\nfunction onMutate(mutations) {\n if (isCollecting) {\n deferredMutations = deferredMutations.concat(mutations);\n return;\n }\n let addedNodes = /* @__PURE__ */ new Set();\n let removedNodes = /* @__PURE__ */ new Set();\n let addedAttributes = /* @__PURE__ */ new Map();\n let removedAttributes = /* @__PURE__ */ new Map();\n for (let i = 0; i < mutations.length; i++) {\n if (mutations[i].target._x_ignoreMutationObserver)\n continue;\n if (mutations[i].type === \"childList\") {\n mutations[i].addedNodes.forEach((node) => node.nodeType === 1 && addedNodes.add(node));\n mutations[i].removedNodes.forEach((node) => node.nodeType === 1 && removedNodes.add(node));\n }\n if (mutations[i].type === \"attributes\") {\n let el = mutations[i].target;\n let name = mutations[i].attributeName;\n let oldValue = mutations[i].oldValue;\n let add2 = () => {\n if (!addedAttributes.has(el))\n addedAttributes.set(el, []);\n addedAttributes.get(el).push({ name, value: el.getAttribute(name) });\n };\n let remove = () => {\n if (!removedAttributes.has(el))\n removedAttributes.set(el, []);\n removedAttributes.get(el).push(name);\n };\n if (el.hasAttribute(name) && oldValue === null) {\n add2();\n } else if (el.hasAttribute(name)) {\n remove();\n add2();\n } else {\n remove();\n }\n }\n }\n removedAttributes.forEach((attrs, el) => {\n cleanupAttributes(el, attrs);\n });\n addedAttributes.forEach((attrs, el) => {\n onAttributeAddeds.forEach((i) => i(el, attrs));\n });\n for (let node of removedNodes) {\n if (addedNodes.has(node))\n continue;\n onElRemoveds.forEach((i) => i(node));\n }\n addedNodes.forEach((node) => {\n node._x_ignoreSelf = true;\n node._x_ignore = true;\n });\n for (let node of addedNodes) {\n if (removedNodes.has(node))\n continue;\n if (!node.isConnected)\n continue;\n delete node._x_ignoreSelf;\n delete node._x_ignore;\n onElAddeds.forEach((i) => i(node));\n node._x_ignore = true;\n node._x_ignoreSelf = true;\n }\n addedNodes.forEach((node) => {\n delete node._x_ignoreSelf;\n delete node._x_ignore;\n });\n addedNodes = null;\n removedNodes = null;\n addedAttributes = null;\n removedAttributes = null;\n}\n\n// packages/alpinejs/src/scope.js\nfunction scope(node) {\n return mergeProxies(closestDataStack(node));\n}\nfunction addScopeToNode(node, data2, referenceNode) {\n node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)];\n return () => {\n node._x_dataStack = node._x_dataStack.filter((i) => i !== data2);\n };\n}\nfunction closestDataStack(node) {\n if (node._x_dataStack)\n return node._x_dataStack;\n if (typeof ShadowRoot === \"function\" && node instanceof ShadowRoot) {\n return closestDataStack(node.host);\n }\n if (!node.parentNode) {\n return [];\n }\n return closestDataStack(node.parentNode);\n}\nfunction mergeProxies(objects) {\n return new Proxy({ objects }, mergeProxyTrap);\n}\nvar mergeProxyTrap = {\n ownKeys({ objects }) {\n return Array.from(\n new Set(objects.flatMap((i) => Object.keys(i)))\n );\n },\n has({ objects }, name) {\n if (name == Symbol.unscopables)\n return false;\n return objects.some(\n (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name)\n );\n },\n get({ objects }, name, thisProxy) {\n if (name == \"toJSON\")\n return collapseProxies;\n return Reflect.get(\n objects.find(\n (obj) => Reflect.has(obj, name)\n ) || {},\n name,\n thisProxy\n );\n },\n set({ objects }, name, value, thisProxy) {\n const target = objects.find(\n (obj) => Object.prototype.hasOwnProperty.call(obj, name)\n ) || objects[objects.length - 1];\n const descriptor = Object.getOwnPropertyDescriptor(target, name);\n if (descriptor?.set && descriptor?.get)\n return descriptor.set.call(thisProxy, value) || true;\n return Reflect.set(target, name, value);\n }\n};\nfunction collapseProxies() {\n let keys = Reflect.ownKeys(this);\n return keys.reduce((acc, key) => {\n acc[key] = Reflect.get(this, key);\n return acc;\n }, {});\n}\n\n// packages/alpinejs/src/interceptor.js\nfunction initInterceptors(data2) {\n let isObject2 = (val) => typeof val === \"object\" && !Array.isArray(val) && val !== null;\n let recurse = (obj, basePath = \"\") => {\n Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {\n if (enumerable === false || value === void 0)\n return;\n if (typeof value === \"object\" && value !== null && value.__v_skip)\n return;\n let path = basePath === \"\" ? key : `${basePath}.${key}`;\n if (typeof value === \"object\" && value !== null && value._x_interceptor) {\n obj[key] = value.initialize(data2, path, key);\n } else {\n if (isObject2(value) && value !== obj && !(value instanceof Element)) {\n recurse(value, path);\n }\n }\n });\n };\n return recurse(data2);\n}\nfunction interceptor(callback, mutateObj = () => {\n}) {\n let obj = {\n initialValue: void 0,\n _x_interceptor: true,\n initialize(data2, path, key) {\n return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key);\n }\n };\n mutateObj(obj);\n return (initialValue) => {\n if (typeof initialValue === \"object\" && initialValue !== null && initialValue._x_interceptor) {\n let initialize = obj.initialize.bind(obj);\n obj.initialize = (data2, path, key) => {\n let innerValue = initialValue.initialize(data2, path, key);\n obj.initialValue = innerValue;\n return initialize(data2, path, key);\n };\n } else {\n obj.initialValue = initialValue;\n }\n return obj;\n };\n}\nfunction get(obj, path) {\n return path.split(\".\").reduce((carry, segment) => carry[segment], obj);\n}\nfunction set(obj, path, value) {\n if (typeof path === \"string\")\n path = path.split(\".\");\n if (path.length === 1)\n obj[path[0]] = value;\n else if (path.length === 0)\n throw error;\n else {\n if (obj[path[0]])\n return set(obj[path[0]], path.slice(1), value);\n else {\n obj[path[0]] = {};\n return set(obj[path[0]], path.slice(1), value);\n }\n }\n}\n\n// packages/alpinejs/src/magics.js\nvar magics = {};\nfunction magic(name, callback) {\n magics[name] = callback;\n}\nfunction injectMagics(obj, el) {\n Object.entries(magics).forEach(([name, callback]) => {\n let memoizedUtilities = null;\n function getUtilities() {\n if (memoizedUtilities) {\n return memoizedUtilities;\n } else {\n let [utilities, cleanup2] = getElementBoundUtilities(el);\n memoizedUtilities = { interceptor, ...utilities };\n onElRemoved(el, cleanup2);\n return memoizedUtilities;\n }\n }\n Object.defineProperty(obj, `$${name}`, {\n get() {\n return callback(el, getUtilities());\n },\n enumerable: false\n });\n });\n return obj;\n}\n\n// packages/alpinejs/src/utils/error.js\nfunction tryCatch(el, expression, callback, ...args) {\n try {\n return callback(...args);\n } catch (e) {\n handleError(e, el, expression);\n }\n}\nfunction handleError(error2, el, expression = void 0) {\n error2 = Object.assign(\n error2 ?? { message: \"No error message given.\" },\n { el, expression }\n );\n console.warn(`Alpine Expression Error: ${error2.message}\n\n${expression ? 'Expression: \"' + expression + '\"\\n\\n' : \"\"}`, el);\n setTimeout(() => {\n throw error2;\n }, 0);\n}\n\n// packages/alpinejs/src/evaluator.js\nvar shouldAutoEvaluateFunctions = true;\nfunction dontAutoEvaluateFunctions(callback) {\n let cache = shouldAutoEvaluateFunctions;\n shouldAutoEvaluateFunctions = false;\n let result = callback();\n shouldAutoEvaluateFunctions = cache;\n return result;\n}\nfunction evaluate(el, expression, extras = {}) {\n let result;\n evaluateLater(el, expression)((value) => result = value, extras);\n return result;\n}\nfunction evaluateLater(...args) {\n return theEvaluatorFunction(...args);\n}\nvar theEvaluatorFunction = normalEvaluator;\nfunction setEvaluator(newEvaluator) {\n theEvaluatorFunction = newEvaluator;\n}\nfunction normalEvaluator(el, expression) {\n let overriddenMagics = {};\n injectMagics(overriddenMagics, el);\n let dataStack = [overriddenMagics, ...closestDataStack(el)];\n let evaluator = typeof expression === \"function\" ? generateEvaluatorFromFunction(dataStack, expression) : generateEvaluatorFromString(dataStack, expression, el);\n return tryCatch.bind(null, el, expression, evaluator);\n}\nfunction generateEvaluatorFromFunction(dataStack, func) {\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [] } = {}) => {\n let result = func.apply(mergeProxies([scope2, ...dataStack]), params);\n runIfTypeOfFunction(receiver, result);\n };\n}\nvar evaluatorMemo = {};\nfunction generateFunctionFromString(expression, el) {\n if (evaluatorMemo[expression]) {\n return evaluatorMemo[expression];\n }\n let AsyncFunction = Object.getPrototypeOf(async function() {\n }).constructor;\n let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;\n const safeAsyncFunction = () => {\n try {\n let func2 = new AsyncFunction(\n [\"__self\", \"scope\"],\n `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`\n );\n Object.defineProperty(func2, \"name\", {\n value: `[Alpine] ${expression}`\n });\n return func2;\n } catch (error2) {\n handleError(error2, el, expression);\n return Promise.resolve();\n }\n };\n let func = safeAsyncFunction();\n evaluatorMemo[expression] = func;\n return func;\n}\nfunction generateEvaluatorFromString(dataStack, expression, el) {\n let func = generateFunctionFromString(expression, el);\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [] } = {}) => {\n func.result = void 0;\n func.finished = false;\n let completeScope = mergeProxies([scope2, ...dataStack]);\n if (typeof func === \"function\") {\n let promise = func(func, completeScope).catch((error2) => handleError(error2, el, expression));\n if (func.finished) {\n runIfTypeOfFunction(receiver, func.result, completeScope, params, el);\n func.result = void 0;\n } else {\n promise.then((result) => {\n runIfTypeOfFunction(receiver, result, completeScope, params, el);\n }).catch((error2) => handleError(error2, el, expression)).finally(() => func.result = void 0);\n }\n }\n };\n}\nfunction runIfTypeOfFunction(receiver, value, scope2, params, el) {\n if (shouldAutoEvaluateFunctions && typeof value === \"function\") {\n let result = value.apply(scope2, params);\n if (result instanceof Promise) {\n result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value));\n } else {\n receiver(result);\n }\n } else if (typeof value === \"object\" && value instanceof Promise) {\n value.then((i) => receiver(i));\n } else {\n receiver(value);\n }\n}\n\n// packages/alpinejs/src/directives.js\nvar prefixAsString = \"x-\";\nfunction prefix(subject = \"\") {\n return prefixAsString + subject;\n}\nfunction setPrefix(newPrefix) {\n prefixAsString = newPrefix;\n}\nvar directiveHandlers = {};\nfunction directive(name, callback) {\n directiveHandlers[name] = callback;\n return {\n before(directive2) {\n if (!directiveHandlers[directive2]) {\n console.warn(String.raw`Cannot find directive \\`${directive2}\\`. \\`${name}\\` will use the default order of execution`);\n return;\n }\n const pos = directiveOrder.indexOf(directive2);\n directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf(\"DEFAULT\"), 0, name);\n }\n };\n}\nfunction directiveExists(name) {\n return Object.keys(directiveHandlers).includes(name);\n}\nfunction directives(el, attributes, originalAttributeOverride) {\n attributes = Array.from(attributes);\n if (el._x_virtualDirectives) {\n let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(vAttributes);\n vAttributes = vAttributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n attributes = attributes.concat(vAttributes);\n }\n let transformedAttributeMap = {};\n let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority);\n return directives2.map((directive2) => {\n return getDirectiveHandler(el, directive2);\n });\n}\nfunction attributesOnly(attributes) {\n return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr));\n}\nvar isDeferringHandlers = false;\nvar directiveHandlerStacks = /* @__PURE__ */ new Map();\nvar currentHandlerStackKey = Symbol();\nfunction deferHandlingDirectives(callback) {\n isDeferringHandlers = true;\n let key = Symbol();\n currentHandlerStackKey = key;\n directiveHandlerStacks.set(key, []);\n let flushHandlers = () => {\n while (directiveHandlerStacks.get(key).length)\n directiveHandlerStacks.get(key).shift()();\n directiveHandlerStacks.delete(key);\n };\n let stopDeferring = () => {\n isDeferringHandlers = false;\n flushHandlers();\n };\n callback(flushHandlers);\n stopDeferring();\n}\nfunction getElementBoundUtilities(el) {\n let cleanups = [];\n let cleanup2 = (callback) => cleanups.push(callback);\n let [effect3, cleanupEffect] = elementBoundEffect(el);\n cleanups.push(cleanupEffect);\n let utilities = {\n Alpine: alpine_default,\n effect: effect3,\n cleanup: cleanup2,\n evaluateLater: evaluateLater.bind(evaluateLater, el),\n evaluate: evaluate.bind(evaluate, el)\n };\n let doCleanup = () => cleanups.forEach((i) => i());\n return [utilities, doCleanup];\n}\nfunction getDirectiveHandler(el, directive2) {\n let noop = () => {\n };\n let handler4 = directiveHandlers[directive2.type] || noop;\n let [utilities, cleanup2] = getElementBoundUtilities(el);\n onAttributeRemoved(el, directive2.original, cleanup2);\n let fullHandler = () => {\n if (el._x_ignore || el._x_ignoreSelf)\n return;\n handler4.inline && handler4.inline(el, directive2, utilities);\n handler4 = handler4.bind(handler4, el, directive2, utilities);\n isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4();\n };\n fullHandler.runCleanups = cleanup2;\n return fullHandler;\n}\nvar startingWith = (subject, replacement) => ({ name, value }) => {\n if (name.startsWith(subject))\n name = name.replace(subject, replacement);\n return { name, value };\n};\nvar into = (i) => i;\nfunction toTransformedAttributes(callback = () => {\n}) {\n return ({ name, value }) => {\n let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => {\n return transform(carry);\n }, { name, value });\n if (newName !== name)\n callback(newName, name);\n return { name: newName, value: newValue };\n };\n}\nvar attributeTransformers = [];\nfunction mapAttributes(callback) {\n attributeTransformers.push(callback);\n}\nfunction outNonAlpineAttributes({ name }) {\n return alpineAttributeRegex().test(name);\n}\nvar alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\\\b`);\nfunction toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {\n return ({ name, value }) => {\n let typeMatch = name.match(alpineAttributeRegex());\n let valueMatch = name.match(/:([a-zA-Z0-9\\-_:]+)/);\n let modifiers = name.match(/\\.[^.\\]]+(?=[^\\]]*$)/g) || [];\n let original = originalAttributeOverride || transformedAttributeMap[name] || name;\n return {\n type: typeMatch ? typeMatch[1] : null,\n value: valueMatch ? valueMatch[1] : null,\n modifiers: modifiers.map((i) => i.replace(\".\", \"\")),\n expression: value,\n original\n };\n };\n}\nvar DEFAULT = \"DEFAULT\";\nvar directiveOrder = [\n \"ignore\",\n \"ref\",\n \"data\",\n \"id\",\n \"anchor\",\n \"bind\",\n \"init\",\n \"for\",\n \"model\",\n \"modelable\",\n \"transition\",\n \"show\",\n \"if\",\n DEFAULT,\n \"teleport\"\n];\nfunction byPriority(a, b) {\n let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type;\n let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type;\n return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);\n}\n\n// packages/alpinejs/src/utils/dispatch.js\nfunction dispatch(el, name, detail = {}) {\n el.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles: true,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true\n })\n );\n}\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/alpinejs/src/utils/warn.js\nfunction warn(message, ...args) {\n console.warn(`Alpine Warning: ${message}`, ...args);\n}\n\n// packages/alpinejs/src/lifecycle.js\nvar started = false;\nfunction start() {\n if (started)\n warn(\"Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.\");\n started = true;\n if (!document.body)\n warn(\"Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?\");\n dispatch(document, \"alpine:init\");\n dispatch(document, \"alpine:initializing\");\n startObservingMutations();\n onElAdded((el) => initTree(el, walk));\n onElRemoved((el) => destroyTree(el));\n onAttributesAdded((el, attrs) => {\n directives(el, attrs).forEach((handle) => handle());\n });\n let outNestedComponents = (el) => !closestRoot(el.parentElement, true);\n Array.from(document.querySelectorAll(allSelectors().join(\",\"))).filter(outNestedComponents).forEach((el) => {\n initTree(el);\n });\n dispatch(document, \"alpine:initialized\");\n setTimeout(() => {\n warnAboutMissingPlugins();\n });\n}\nvar rootSelectorCallbacks = [];\nvar initSelectorCallbacks = [];\nfunction rootSelectors() {\n return rootSelectorCallbacks.map((fn) => fn());\n}\nfunction allSelectors() {\n return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn());\n}\nfunction addRootSelector(selectorCallback) {\n rootSelectorCallbacks.push(selectorCallback);\n}\nfunction addInitSelector(selectorCallback) {\n initSelectorCallbacks.push(selectorCallback);\n}\nfunction closestRoot(el, includeInitSelectors = false) {\n return findClosest(el, (element) => {\n const selectors = includeInitSelectors ? allSelectors() : rootSelectors();\n if (selectors.some((selector) => element.matches(selector)))\n return true;\n });\n}\nfunction findClosest(el, callback) {\n if (!el)\n return;\n if (callback(el))\n return el;\n if (el._x_teleportBack)\n el = el._x_teleportBack;\n if (!el.parentElement)\n return;\n return findClosest(el.parentElement, callback);\n}\nfunction isRoot(el) {\n return rootSelectors().some((selector) => el.matches(selector));\n}\nvar initInterceptors2 = [];\nfunction interceptInit(callback) {\n initInterceptors2.push(callback);\n}\nfunction initTree(el, walker = walk, intercept = () => {\n}) {\n deferHandlingDirectives(() => {\n walker(el, (el2, skip) => {\n intercept(el2, skip);\n initInterceptors2.forEach((i) => i(el2, skip));\n directives(el2, el2.attributes).forEach((handle) => handle());\n el2._x_ignore && skip();\n });\n });\n}\nfunction destroyTree(root, walker = walk) {\n walker(root, (el) => {\n cleanupAttributes(el);\n cleanupElement(el);\n });\n}\nfunction warnAboutMissingPlugins() {\n let pluginDirectives = [\n [\"ui\", \"dialog\", [\"[x-dialog], [x-popover]\"]],\n [\"anchor\", \"anchor\", [\"[x-anchor]\"]],\n [\"sort\", \"sort\", [\"[x-sort]\"]]\n ];\n pluginDirectives.forEach(([plugin2, directive2, selectors]) => {\n if (directiveExists(directive2))\n return;\n selectors.some((selector) => {\n if (document.querySelector(selector)) {\n warn(`found \"${selector}\", but missing ${plugin2} plugin`);\n return true;\n }\n });\n });\n}\n\n// packages/alpinejs/src/nextTick.js\nvar tickStack = [];\nvar isHolding = false;\nfunction nextTick(callback = () => {\n}) {\n queueMicrotask(() => {\n isHolding || setTimeout(() => {\n releaseNextTicks();\n });\n });\n return new Promise((res) => {\n tickStack.push(() => {\n callback();\n res();\n });\n });\n}\nfunction releaseNextTicks() {\n isHolding = false;\n while (tickStack.length)\n tickStack.shift()();\n}\nfunction holdNextTicks() {\n isHolding = true;\n}\n\n// packages/alpinejs/src/utils/classes.js\nfunction setClasses(el, value) {\n if (Array.isArray(value)) {\n return setClassesFromString(el, value.join(\" \"));\n } else if (typeof value === \"object\" && value !== null) {\n return setClassesFromObject(el, value);\n } else if (typeof value === \"function\") {\n return setClasses(el, value());\n }\n return setClassesFromString(el, value);\n}\nfunction setClassesFromString(el, classString) {\n let split = (classString2) => classString2.split(\" \").filter(Boolean);\n let missingClasses = (classString2) => classString2.split(\" \").filter((i) => !el.classList.contains(i)).filter(Boolean);\n let addClassesAndReturnUndo = (classes) => {\n el.classList.add(...classes);\n return () => {\n el.classList.remove(...classes);\n };\n };\n classString = classString === true ? classString = \"\" : classString || \"\";\n return addClassesAndReturnUndo(missingClasses(classString));\n}\nfunction setClassesFromObject(el, classObject) {\n let split = (classString) => classString.split(\" \").filter(Boolean);\n let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? split(classString) : false).filter(Boolean);\n let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? split(classString) : false).filter(Boolean);\n let added = [];\n let removed = [];\n forRemove.forEach((i) => {\n if (el.classList.contains(i)) {\n el.classList.remove(i);\n removed.push(i);\n }\n });\n forAdd.forEach((i) => {\n if (!el.classList.contains(i)) {\n el.classList.add(i);\n added.push(i);\n }\n });\n return () => {\n removed.forEach((i) => el.classList.add(i));\n added.forEach((i) => el.classList.remove(i));\n };\n}\n\n// packages/alpinejs/src/utils/styles.js\nfunction setStyles(el, value) {\n if (typeof value === \"object\" && value !== null) {\n return setStylesFromObject(el, value);\n }\n return setStylesFromString(el, value);\n}\nfunction setStylesFromObject(el, value) {\n let previousStyles = {};\n Object.entries(value).forEach(([key, value2]) => {\n previousStyles[key] = el.style[key];\n if (!key.startsWith(\"--\")) {\n key = kebabCase(key);\n }\n el.style.setProperty(key, value2);\n });\n setTimeout(() => {\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n });\n return () => {\n setStyles(el, previousStyles);\n };\n}\nfunction setStylesFromString(el, value) {\n let cache = el.getAttribute(\"style\", value);\n el.setAttribute(\"style\", value);\n return () => {\n el.setAttribute(\"style\", cache || \"\");\n };\n}\nfunction kebabCase(subject) {\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\n// packages/alpinejs/src/utils/once.js\nfunction once(callback, fallback = () => {\n}) {\n let called = false;\n return function() {\n if (!called) {\n called = true;\n callback.apply(this, arguments);\n } else {\n fallback.apply(this, arguments);\n }\n };\n}\n\n// packages/alpinejs/src/directives/x-transition.js\ndirective(\"transition\", (el, { value, modifiers, expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"function\")\n expression = evaluate2(expression);\n if (expression === false)\n return;\n if (!expression || typeof expression === \"boolean\") {\n registerTransitionsFromHelper(el, modifiers, value);\n } else {\n registerTransitionsFromClassString(el, expression, value);\n }\n});\nfunction registerTransitionsFromClassString(el, classString, stage) {\n registerTransitionObject(el, setClasses, \"\");\n let directiveStorageMap = {\n \"enter\": (classes) => {\n el._x_transition.enter.during = classes;\n },\n \"enter-start\": (classes) => {\n el._x_transition.enter.start = classes;\n },\n \"enter-end\": (classes) => {\n el._x_transition.enter.end = classes;\n },\n \"leave\": (classes) => {\n el._x_transition.leave.during = classes;\n },\n \"leave-start\": (classes) => {\n el._x_transition.leave.start = classes;\n },\n \"leave-end\": (classes) => {\n el._x_transition.leave.end = classes;\n }\n };\n directiveStorageMap[stage](classString);\n}\nfunction registerTransitionsFromHelper(el, modifiers, stage) {\n registerTransitionObject(el, setStyles);\n let doesntSpecify = !modifiers.includes(\"in\") && !modifiers.includes(\"out\") && !stage;\n let transitioningIn = doesntSpecify || modifiers.includes(\"in\") || [\"enter\"].includes(stage);\n let transitioningOut = doesntSpecify || modifiers.includes(\"out\") || [\"leave\"].includes(stage);\n if (modifiers.includes(\"in\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index < modifiers.indexOf(\"out\"));\n }\n if (modifiers.includes(\"out\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index > modifiers.indexOf(\"out\"));\n }\n let wantsAll = !modifiers.includes(\"opacity\") && !modifiers.includes(\"scale\");\n let wantsOpacity = wantsAll || modifiers.includes(\"opacity\");\n let wantsScale = wantsAll || modifiers.includes(\"scale\");\n let opacityValue = wantsOpacity ? 0 : 1;\n let scaleValue = wantsScale ? modifierValue(modifiers, \"scale\", 95) / 100 : 1;\n let delay = modifierValue(modifiers, \"delay\", 0) / 1e3;\n let origin = modifierValue(modifiers, \"origin\", \"center\");\n let property = \"opacity, transform\";\n let durationIn = modifierValue(modifiers, \"duration\", 150) / 1e3;\n let durationOut = modifierValue(modifiers, \"duration\", 75) / 1e3;\n let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`;\n if (transitioningIn) {\n el._x_transition.enter.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationIn}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.enter.start = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n el._x_transition.enter.end = {\n opacity: 1,\n transform: `scale(1)`\n };\n }\n if (transitioningOut) {\n el._x_transition.leave.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationOut}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.leave.start = {\n opacity: 1,\n transform: `scale(1)`\n };\n el._x_transition.leave.end = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n }\n}\nfunction registerTransitionObject(el, setFunction, defaultValue = {}) {\n if (!el._x_transition)\n el._x_transition = {\n enter: { during: defaultValue, start: defaultValue, end: defaultValue },\n leave: { during: defaultValue, start: defaultValue, end: defaultValue },\n in(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.enter.during,\n start: this.enter.start,\n end: this.enter.end\n }, before, after);\n },\n out(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.leave.during,\n start: this.leave.start,\n end: this.leave.end\n }, before, after);\n }\n };\n}\nwindow.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) {\n const nextTick2 = document.visibilityState === \"visible\" ? requestAnimationFrame : setTimeout;\n let clickAwayCompatibleShow = () => nextTick2(show);\n if (value) {\n if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) {\n el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow();\n } else {\n el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();\n }\n return;\n }\n el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => {\n el._x_transition.out(() => {\n }, () => resolve(hide));\n el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true }));\n }) : Promise.resolve(hide);\n queueMicrotask(() => {\n let closest = closestHide(el);\n if (closest) {\n if (!closest._x_hideChildren)\n closest._x_hideChildren = [];\n closest._x_hideChildren.push(el);\n } else {\n nextTick2(() => {\n let hideAfterChildren = (el2) => {\n let carry = Promise.all([\n el2._x_hidePromise,\n ...(el2._x_hideChildren || []).map(hideAfterChildren)\n ]).then(([i]) => i?.());\n delete el2._x_hidePromise;\n delete el2._x_hideChildren;\n return carry;\n };\n hideAfterChildren(el).catch((e) => {\n if (!e.isFromCancelledTransition)\n throw e;\n });\n });\n }\n });\n};\nfunction closestHide(el) {\n let parent = el.parentNode;\n if (!parent)\n return;\n return parent._x_hidePromise ? parent : closestHide(parent);\n}\nfunction transition(el, setFunction, { during, start: start2, end } = {}, before = () => {\n}, after = () => {\n}) {\n if (el._x_transitioning)\n el._x_transitioning.cancel();\n if (Object.keys(during).length === 0 && Object.keys(start2).length === 0 && Object.keys(end).length === 0) {\n before();\n after();\n return;\n }\n let undoStart, undoDuring, undoEnd;\n performTransition(el, {\n start() {\n undoStart = setFunction(el, start2);\n },\n during() {\n undoDuring = setFunction(el, during);\n },\n before,\n end() {\n undoStart();\n undoEnd = setFunction(el, end);\n },\n after,\n cleanup() {\n undoDuring();\n undoEnd();\n }\n });\n}\nfunction performTransition(el, stages) {\n let interrupted, reachedBefore, reachedEnd;\n let finish = once(() => {\n mutateDom(() => {\n interrupted = true;\n if (!reachedBefore)\n stages.before();\n if (!reachedEnd) {\n stages.end();\n releaseNextTicks();\n }\n stages.after();\n if (el.isConnected)\n stages.cleanup();\n delete el._x_transitioning;\n });\n });\n el._x_transitioning = {\n beforeCancels: [],\n beforeCancel(callback) {\n this.beforeCancels.push(callback);\n },\n cancel: once(function() {\n while (this.beforeCancels.length) {\n this.beforeCancels.shift()();\n }\n ;\n finish();\n }),\n finish\n };\n mutateDom(() => {\n stages.start();\n stages.during();\n });\n holdNextTicks();\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n let delay = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n if (duration === 0)\n duration = Number(getComputedStyle(el).animationDuration.replace(\"s\", \"\")) * 1e3;\n mutateDom(() => {\n stages.before();\n });\n reachedBefore = true;\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n mutateDom(() => {\n stages.end();\n });\n releaseNextTicks();\n setTimeout(el._x_transitioning.finish, duration + delay);\n reachedEnd = true;\n });\n });\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"scale\") {\n if (isNaN(rawValue))\n return fallback;\n }\n if (key === \"duration\" || key === \"delay\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"origin\") {\n if ([\"top\", \"right\", \"left\", \"center\", \"bottom\"].includes(modifiers[modifiers.indexOf(key) + 2])) {\n return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(\" \");\n }\n }\n return rawValue;\n}\n\n// packages/alpinejs/src/clone.js\nvar isCloning = false;\nfunction skipDuringClone(callback, fallback = () => {\n}) {\n return (...args) => isCloning ? fallback(...args) : callback(...args);\n}\nfunction onlyDuringClone(callback) {\n return (...args) => isCloning && callback(...args);\n}\nvar interceptors = [];\nfunction interceptClone(callback) {\n interceptors.push(callback);\n}\nfunction cloneNode(from, to) {\n interceptors.forEach((i) => i(from, to));\n isCloning = true;\n dontRegisterReactiveSideEffects(() => {\n initTree(to, (el, callback) => {\n callback(el, () => {\n });\n });\n });\n isCloning = false;\n}\nvar isCloningLegacy = false;\nfunction clone(oldEl, newEl) {\n if (!newEl._x_dataStack)\n newEl._x_dataStack = oldEl._x_dataStack;\n isCloning = true;\n isCloningLegacy = true;\n dontRegisterReactiveSideEffects(() => {\n cloneTree(newEl);\n });\n isCloning = false;\n isCloningLegacy = false;\n}\nfunction cloneTree(el) {\n let hasRunThroughFirstEl = false;\n let shallowWalker = (el2, callback) => {\n walk(el2, (el3, skip) => {\n if (hasRunThroughFirstEl && isRoot(el3))\n return skip();\n hasRunThroughFirstEl = true;\n callback(el3, skip);\n });\n };\n initTree(el, shallowWalker);\n}\nfunction dontRegisterReactiveSideEffects(callback) {\n let cache = effect;\n overrideEffect((callback2, el) => {\n let storedEffect = cache(callback2);\n release(storedEffect);\n return () => {\n };\n });\n callback();\n overrideEffect(cache);\n}\n\n// packages/alpinejs/src/utils/bind.js\nfunction bind(el, name, value, modifiers = []) {\n if (!el._x_bindings)\n el._x_bindings = reactive({});\n el._x_bindings[name] = value;\n name = modifiers.includes(\"camel\") ? camelCase(name) : name;\n switch (name) {\n case \"value\":\n bindInputValue(el, value);\n break;\n case \"style\":\n bindStyles(el, value);\n break;\n case \"class\":\n bindClasses(el, value);\n break;\n case \"selected\":\n case \"checked\":\n bindAttributeAndProperty(el, name, value);\n break;\n default:\n bindAttribute(el, name, value);\n break;\n }\n}\nfunction bindInputValue(el, value) {\n if (el.type === \"radio\") {\n if (el.attributes.value === void 0) {\n el.value = value;\n }\n if (window.fromModel) {\n if (typeof value === \"boolean\") {\n el.checked = safeParseBoolean(el.value) === value;\n } else {\n el.checked = checkedAttrLooseCompare(el.value, value);\n }\n }\n } else if (el.type === \"checkbox\") {\n if (Number.isInteger(value)) {\n el.value = value;\n } else if (!Array.isArray(value) && typeof value !== \"boolean\" && ![null, void 0].includes(value)) {\n el.value = String(value);\n } else {\n if (Array.isArray(value)) {\n el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value));\n } else {\n el.checked = !!value;\n }\n }\n } else if (el.tagName === \"SELECT\") {\n updateSelect(el, value);\n } else {\n if (el.value === value)\n return;\n el.value = value === void 0 ? \"\" : value;\n }\n}\nfunction bindClasses(el, value) {\n if (el._x_undoAddedClasses)\n el._x_undoAddedClasses();\n el._x_undoAddedClasses = setClasses(el, value);\n}\nfunction bindStyles(el, value) {\n if (el._x_undoAddedStyles)\n el._x_undoAddedStyles();\n el._x_undoAddedStyles = setStyles(el, value);\n}\nfunction bindAttributeAndProperty(el, name, value) {\n bindAttribute(el, name, value);\n setPropertyIfChanged(el, name, value);\n}\nfunction bindAttribute(el, name, value) {\n if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) {\n el.removeAttribute(name);\n } else {\n if (isBooleanAttr(name))\n value = name;\n setIfChanged(el, name, value);\n }\n}\nfunction setIfChanged(el, attrName, value) {\n if (el.getAttribute(attrName) != value) {\n el.setAttribute(attrName, value);\n }\n}\nfunction setPropertyIfChanged(el, propName, value) {\n if (el[propName] !== value) {\n el[propName] = value;\n }\n}\nfunction updateSelect(el, value) {\n const arrayWrappedValue = [].concat(value).map((value2) => {\n return value2 + \"\";\n });\n Array.from(el.options).forEach((option) => {\n option.selected = arrayWrappedValue.includes(option.value);\n });\n}\nfunction camelCase(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction checkedAttrLooseCompare(valueA, valueB) {\n return valueA == valueB;\n}\nfunction safeParseBoolean(rawValue) {\n if ([1, \"1\", \"true\", \"on\", \"yes\", true].includes(rawValue)) {\n return true;\n }\n if ([0, \"0\", \"false\", \"off\", \"no\", false].includes(rawValue)) {\n return false;\n }\n return rawValue ? Boolean(rawValue) : null;\n}\nfunction isBooleanAttr(attrName) {\n const booleanAttributes = [\n \"disabled\",\n \"checked\",\n \"required\",\n \"readonly\",\n \"open\",\n \"selected\",\n \"autofocus\",\n \"itemscope\",\n \"multiple\",\n \"novalidate\",\n \"allowfullscreen\",\n \"allowpaymentrequest\",\n \"formnovalidate\",\n \"autoplay\",\n \"controls\",\n \"loop\",\n \"muted\",\n \"playsinline\",\n \"default\",\n \"ismap\",\n \"reversed\",\n \"async\",\n \"defer\",\n \"nomodule\"\n ];\n return booleanAttributes.includes(attrName);\n}\nfunction attributeShouldntBePreservedIfFalsy(name) {\n return ![\"aria-pressed\", \"aria-checked\", \"aria-expanded\", \"aria-selected\"].includes(name);\n}\nfunction getBinding(el, name, fallback) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n return getAttributeBinding(el, name, fallback);\n}\nfunction extractProp(el, name, fallback, extract = true) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) {\n let binding = el._x_inlineBindings[name];\n binding.extract = extract;\n return dontAutoEvaluateFunctions(() => {\n return evaluate(el, binding.expression);\n });\n }\n return getAttributeBinding(el, name, fallback);\n}\nfunction getAttributeBinding(el, name, fallback) {\n let attr = el.getAttribute(name);\n if (attr === null)\n return typeof fallback === \"function\" ? fallback() : fallback;\n if (attr === \"\")\n return true;\n if (isBooleanAttr(name)) {\n return !![name, \"true\"].includes(attr);\n }\n return attr;\n}\n\n// packages/alpinejs/src/utils/debounce.js\nfunction debounce(func, wait) {\n var timeout;\n return function() {\n var context = this, args = arguments;\n var later = function() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n// packages/alpinejs/src/utils/throttle.js\nfunction throttle(func, limit) {\n let inThrottle;\n return function() {\n let context = this, args = arguments;\n if (!inThrottle) {\n func.apply(context, args);\n inThrottle = true;\n setTimeout(() => inThrottle = false, limit);\n }\n };\n}\n\n// packages/alpinejs/src/entangle.js\nfunction entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {\n let firstRun = true;\n let outerHash;\n let innerHash;\n let reference = effect(() => {\n let outer = outerGet();\n let inner = innerGet();\n if (firstRun) {\n innerSet(cloneIfObject(outer));\n firstRun = false;\n } else {\n let outerHashLatest = JSON.stringify(outer);\n let innerHashLatest = JSON.stringify(inner);\n if (outerHashLatest !== outerHash) {\n innerSet(cloneIfObject(outer));\n } else if (outerHashLatest !== innerHashLatest) {\n outerSet(cloneIfObject(inner));\n } else {\n }\n }\n outerHash = JSON.stringify(outerGet());\n innerHash = JSON.stringify(innerGet());\n });\n return () => {\n release(reference);\n };\n}\nfunction cloneIfObject(value) {\n return typeof value === \"object\" ? JSON.parse(JSON.stringify(value)) : value;\n}\n\n// packages/alpinejs/src/plugin.js\nfunction plugin(callback) {\n let callbacks = Array.isArray(callback) ? callback : [callback];\n callbacks.forEach((i) => i(alpine_default));\n}\n\n// packages/alpinejs/src/store.js\nvar stores = {};\nvar isReactive = false;\nfunction store(name, value) {\n if (!isReactive) {\n stores = reactive(stores);\n isReactive = true;\n }\n if (value === void 0) {\n return stores[name];\n }\n stores[name] = value;\n if (typeof value === \"object\" && value !== null && value.hasOwnProperty(\"init\") && typeof value.init === \"function\") {\n stores[name].init();\n }\n initInterceptors(stores[name]);\n}\nfunction getStores() {\n return stores;\n}\n\n// packages/alpinejs/src/binds.js\nvar binds = {};\nfunction bind2(name, bindings) {\n let getBindings = typeof bindings !== \"function\" ? () => bindings : bindings;\n if (name instanceof Element) {\n return applyBindingsObject(name, getBindings());\n } else {\n binds[name] = getBindings;\n }\n return () => {\n };\n}\nfunction injectBindingProviders(obj) {\n Object.entries(binds).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback(...args);\n };\n }\n });\n });\n return obj;\n}\nfunction applyBindingsObject(el, obj, original) {\n let cleanupRunners = [];\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n let attributes = Object.entries(obj).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(attributes);\n attributes = attributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n directives(el, attributes, original).map((handle) => {\n cleanupRunners.push(handle.runCleanups);\n handle();\n });\n return () => {\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n };\n}\n\n// packages/alpinejs/src/datas.js\nvar datas = {};\nfunction data(name, callback) {\n datas[name] = callback;\n}\nfunction injectDataProviders(obj, context) {\n Object.entries(datas).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback.bind(context)(...args);\n };\n },\n enumerable: false\n });\n });\n return obj;\n}\n\n// packages/alpinejs/src/alpine.js\nvar Alpine = {\n get reactive() {\n return reactive;\n },\n get release() {\n return release;\n },\n get effect() {\n return effect;\n },\n get raw() {\n return raw;\n },\n version: \"3.14.1\",\n flushAndStopDeferringMutations,\n dontAutoEvaluateFunctions,\n disableEffectScheduling,\n startObservingMutations,\n stopObservingMutations,\n setReactivityEngine,\n onAttributeRemoved,\n onAttributesAdded,\n closestDataStack,\n skipDuringClone,\n onlyDuringClone,\n addRootSelector,\n addInitSelector,\n interceptClone,\n addScopeToNode,\n deferMutations,\n mapAttributes,\n evaluateLater,\n interceptInit,\n setEvaluator,\n mergeProxies,\n extractProp,\n findClosest,\n onElRemoved,\n closestRoot,\n destroyTree,\n interceptor,\n // INTERNAL: not public API and is subject to change without major release.\n transition,\n // INTERNAL\n setStyles,\n // INTERNAL\n mutateDom,\n directive,\n entangle,\n throttle,\n debounce,\n evaluate,\n initTree,\n nextTick,\n prefixed: prefix,\n prefix: setPrefix,\n plugin,\n magic,\n store,\n start,\n clone,\n // INTERNAL\n cloneNode,\n // INTERNAL\n bound: getBinding,\n $data: scope,\n watch,\n walk,\n data,\n bind: bind2\n};\nvar alpine_default = Alpine;\n\n// node_modules/@vue/shared/dist/shared.esm-bundler.js\nfunction makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nvar specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nvar isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`);\nvar EMPTY_OBJ = true ? Object.freeze({}) : {};\nvar EMPTY_ARR = true ? Object.freeze([]) : [];\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar hasOwn = (val, key) => hasOwnProperty.call(val, key);\nvar isArray = Array.isArray;\nvar isMap = (val) => toTypeString(val) === \"[object Map]\";\nvar isString = (val) => typeof val === \"string\";\nvar isSymbol = (val) => typeof val === \"symbol\";\nvar isObject = (val) => val !== null && typeof val === \"object\";\nvar objectToString = Object.prototype.toString;\nvar toTypeString = (value) => objectToString.call(value);\nvar toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nvar isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nvar cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nvar capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\nvar toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\nvar hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue);\n\n// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js\nvar targetMap = /* @__PURE__ */ new WeakMap();\nvar effectStack = [];\nvar activeEffect;\nvar ITERATE_KEY = Symbol(true ? \"iterate\" : \"\");\nvar MAP_KEY_ITERATE_KEY = Symbol(true ? \"Map key iterate\" : \"\");\nfunction isEffect(fn) {\n return fn && fn._isEffect === true;\n}\nfunction effect2(fn, options = EMPTY_OBJ) {\n if (isEffect(fn)) {\n fn = fn.raw;\n }\n const effect3 = createReactiveEffect(fn, options);\n if (!options.lazy) {\n effect3();\n }\n return effect3;\n}\nfunction stop(effect3) {\n if (effect3.active) {\n cleanup(effect3);\n if (effect3.options.onStop) {\n effect3.options.onStop();\n }\n effect3.active = false;\n }\n}\nvar uid = 0;\nfunction createReactiveEffect(fn, options) {\n const effect3 = function reactiveEffect() {\n if (!effect3.active) {\n return fn();\n }\n if (!effectStack.includes(effect3)) {\n cleanup(effect3);\n try {\n enableTracking();\n effectStack.push(effect3);\n activeEffect = effect3;\n return fn();\n } finally {\n effectStack.pop();\n resetTracking();\n activeEffect = effectStack[effectStack.length - 1];\n }\n }\n };\n effect3.id = uid++;\n effect3.allowRecurse = !!options.allowRecurse;\n effect3._isEffect = true;\n effect3.active = true;\n effect3.raw = fn;\n effect3.deps = [];\n effect3.options = options;\n return effect3;\n}\nfunction cleanup(effect3) {\n const { deps } = effect3;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect3);\n }\n deps.length = 0;\n }\n}\nvar shouldTrack = true;\nvar trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (!shouldTrack || activeEffect === void 0) {\n return;\n }\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = /* @__PURE__ */ new Set());\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (activeEffect.options.onTrack) {\n activeEffect.options.onTrack({\n effect: activeEffect,\n target,\n type,\n key\n });\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n const effects = /* @__PURE__ */ new Set();\n const add2 = (effectsToAdd) => {\n if (effectsToAdd) {\n effectsToAdd.forEach((effect3) => {\n if (effect3 !== activeEffect || effect3.allowRecurse) {\n effects.add(effect3);\n }\n });\n }\n };\n if (type === \"clear\") {\n depsMap.forEach(add2);\n } else if (key === \"length\" && isArray(target)) {\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newValue) {\n add2(dep);\n }\n });\n } else {\n if (key !== void 0) {\n add2(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n add2(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n add2(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const run = (effect3) => {\n if (effect3.options.onTrigger) {\n effect3.options.onTrigger({\n effect: effect3,\n target,\n key,\n type,\n newValue,\n oldValue,\n oldTarget\n });\n }\n if (effect3.options.scheduler) {\n effect3.options.scheduler(effect3);\n } else {\n effect3();\n }\n };\n effects.forEach(run);\n}\nvar isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nvar builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(isSymbol));\nvar get2 = /* @__PURE__ */ createGetter();\nvar readonlyGet = /* @__PURE__ */ createGetter(true);\nvar arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n return function get3(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\" && receiver === (isReadonly ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\n return shouldUnwrap ? res.value : res;\n }\n if (isObject(res)) {\n return isReadonly ? readonly(res) : reactive2(res);\n }\n return res;\n };\n}\nvar set2 = /* @__PURE__ */ createSetter();\nfunction createSetter(shallow = false) {\n return function set3(target, key, value, receiver) {\n let oldValue = target[key];\n if (!shallow) {\n value = toRaw(value);\n oldValue = toRaw(oldValue);\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\", isArray(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nvar mutableHandlers = {\n get: get2,\n set: set2,\n deleteProperty,\n has,\n ownKeys\n};\nvar readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if (true) {\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n if (true) {\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n};\nvar toReactive = (value) => isObject(value) ? reactive2(value) : value;\nvar toReadonly = (value) => isObject(value) ? readonly(value) : value;\nvar toShallow = (value) => value;\nvar getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (key !== rawKey) {\n !isReadonly && track(rawTarget, \"get\", key);\n }\n !isReadonly && track(rawTarget, \"get\", rawKey);\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (key !== rawKey) {\n !isReadonly && track(rawTarget, \"has\", key);\n }\n !isReadonly && track(rawTarget, \"has\", rawKey);\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (true) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (true) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3 ? get3.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (true) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n }\n return type === \"delete\" ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nvar [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n };\n}\nvar mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nvar readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`);\n }\n}\nvar reactiveMap = /* @__PURE__ */ new WeakMap();\nvar shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nvar readonlyMap = /* @__PURE__ */ new WeakMap();\nvar shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getTargetType(value) {\n return value[\n \"__v_skip\"\n /* SKIP */\n ] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));\n}\nfunction reactive2(target) {\n if (target && target[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ]) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (true) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\n \"__v_raw\"\n /* RAW */\n ] && !(isReadonly && target[\n \"__v_isReactive\"\n /* IS_REACTIVE */\n ])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction toRaw(observed) {\n return observed && toRaw(observed[\n \"__v_raw\"\n /* RAW */\n ]) || observed;\n}\nfunction isRef(r) {\n return Boolean(r && r.__v_isRef === true);\n}\n\n// packages/alpinejs/src/magics/$nextTick.js\nmagic(\"nextTick\", () => nextTick);\n\n// packages/alpinejs/src/magics/$dispatch.js\nmagic(\"dispatch\", (el) => dispatch.bind(dispatch, el));\n\n// packages/alpinejs/src/magics/$watch.js\nmagic(\"watch\", (el, { evaluateLater: evaluateLater2, cleanup: cleanup2 }) => (key, callback) => {\n let evaluate2 = evaluateLater2(key);\n let getter = () => {\n let value;\n evaluate2((i) => value = i);\n return value;\n };\n let unwatch = watch(getter, callback);\n cleanup2(unwatch);\n});\n\n// packages/alpinejs/src/magics/$store.js\nmagic(\"store\", getStores);\n\n// packages/alpinejs/src/magics/$data.js\nmagic(\"data\", (el) => scope(el));\n\n// packages/alpinejs/src/magics/$root.js\nmagic(\"root\", (el) => closestRoot(el));\n\n// packages/alpinejs/src/magics/$refs.js\nmagic(\"refs\", (el) => {\n if (el._x_refs_proxy)\n return el._x_refs_proxy;\n el._x_refs_proxy = mergeProxies(getArrayOfRefObject(el));\n return el._x_refs_proxy;\n});\nfunction getArrayOfRefObject(el) {\n let refObjects = [];\n findClosest(el, (i) => {\n if (i._x_refs)\n refObjects.push(i._x_refs);\n });\n return refObjects;\n}\n\n// packages/alpinejs/src/ids.js\nvar globalIdMemo = {};\nfunction findAndIncrementId(name) {\n if (!globalIdMemo[name])\n globalIdMemo[name] = 0;\n return ++globalIdMemo[name];\n}\nfunction closestIdRoot(el, name) {\n return findClosest(el, (element) => {\n if (element._x_ids && element._x_ids[name])\n return true;\n });\n}\nfunction setIdRoot(el, name) {\n if (!el._x_ids)\n el._x_ids = {};\n if (!el._x_ids[name])\n el._x_ids[name] = findAndIncrementId(name);\n}\n\n// packages/alpinejs/src/magics/$id.js\nmagic(\"id\", (el, { cleanup: cleanup2 }) => (name, key = null) => {\n let cacheKey = `${name}${key ? `-${key}` : \"\"}`;\n return cacheIdByNameOnElement(el, cacheKey, cleanup2, () => {\n let root = closestIdRoot(el, name);\n let id = root ? root._x_ids[name] : findAndIncrementId(name);\n return key ? `${name}-${id}-${key}` : `${name}-${id}`;\n });\n});\ninterceptClone((from, to) => {\n if (from._x_id) {\n to._x_id = from._x_id;\n }\n});\nfunction cacheIdByNameOnElement(el, cacheKey, cleanup2, callback) {\n if (!el._x_id)\n el._x_id = {};\n if (el._x_id[cacheKey])\n return el._x_id[cacheKey];\n let output = callback();\n el._x_id[cacheKey] = output;\n cleanup2(() => {\n delete el._x_id[cacheKey];\n });\n return output;\n}\n\n// packages/alpinejs/src/magics/$el.js\nmagic(\"el\", (el) => el);\n\n// packages/alpinejs/src/magics/index.js\nwarnMissingPluginMagic(\"Focus\", \"focus\", \"focus\");\nwarnMissingPluginMagic(\"Persist\", \"persist\", \"persist\");\nfunction warnMissingPluginMagic(name, magicName, slug) {\n magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/directives/x-modelable.js\ndirective(\"modelable\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup: cleanup2 }) => {\n let func = evaluateLater2(expression);\n let innerGet = () => {\n let result;\n func((i) => result = i);\n return result;\n };\n let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`);\n let innerSet = (val) => evaluateInnerSet(() => {\n }, { scope: { \"__placeholder\": val } });\n let initialValue = innerGet();\n innerSet(initialValue);\n queueMicrotask(() => {\n if (!el._x_model)\n return;\n el._x_removeModelListeners[\"default\"]();\n let outerGet = el._x_model.get;\n let outerSet = el._x_model.set;\n let releaseEntanglement = entangle(\n {\n get() {\n return outerGet();\n },\n set(value) {\n outerSet(value);\n }\n },\n {\n get() {\n return innerGet();\n },\n set(value) {\n innerSet(value);\n }\n }\n );\n cleanup2(releaseEntanglement);\n });\n});\n\n// packages/alpinejs/src/directives/x-teleport.js\ndirective(\"teleport\", (el, { modifiers, expression }, { cleanup: cleanup2 }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-teleport can only be used on a <template> tag\", el);\n let target = getTarget(expression);\n let clone2 = el.content.cloneNode(true).firstElementChild;\n el._x_teleport = clone2;\n clone2._x_teleportBack = el;\n el.setAttribute(\"data-teleport-template\", true);\n clone2.setAttribute(\"data-teleport-target\", true);\n if (el._x_forwardEvents) {\n el._x_forwardEvents.forEach((eventName) => {\n clone2.addEventListener(eventName, (e) => {\n e.stopPropagation();\n el.dispatchEvent(new e.constructor(e.type, e));\n });\n });\n }\n addScopeToNode(clone2, {}, el);\n let placeInDom = (clone3, target2, modifiers2) => {\n if (modifiers2.includes(\"prepend\")) {\n target2.parentNode.insertBefore(clone3, target2);\n } else if (modifiers2.includes(\"append\")) {\n target2.parentNode.insertBefore(clone3, target2.nextSibling);\n } else {\n target2.appendChild(clone3);\n }\n };\n mutateDom(() => {\n placeInDom(clone2, target, modifiers);\n skipDuringClone(() => {\n initTree(clone2);\n clone2._x_ignore = true;\n })();\n });\n el._x_teleportPutBack = () => {\n let target2 = getTarget(expression);\n mutateDom(() => {\n placeInDom(el._x_teleport, target2, modifiers);\n });\n };\n cleanup2(() => clone2.remove());\n});\nvar teleportContainerDuringClone = document.createElement(\"div\");\nfunction getTarget(expression) {\n let target = skipDuringClone(() => {\n return document.querySelector(expression);\n }, () => {\n return teleportContainerDuringClone;\n })();\n if (!target)\n warn(`Cannot find x-teleport element for selector: \"${expression}\"`);\n return target;\n}\n\n// packages/alpinejs/src/directives/x-ignore.js\nvar handler = () => {\n};\nhandler.inline = (el, { modifiers }, { cleanup: cleanup2 }) => {\n modifiers.includes(\"self\") ? el._x_ignoreSelf = true : el._x_ignore = true;\n cleanup2(() => {\n modifiers.includes(\"self\") ? delete el._x_ignoreSelf : delete el._x_ignore;\n });\n};\ndirective(\"ignore\", handler);\n\n// packages/alpinejs/src/directives/x-effect.js\ndirective(\"effect\", skipDuringClone((el, { expression }, { effect: effect3 }) => {\n effect3(evaluateLater(el, expression));\n}));\n\n// packages/alpinejs/src/utils/on.js\nfunction on(el, event, modifiers, callback) {\n let listenerTarget = el;\n let handler4 = (e) => callback(e);\n let options = {};\n let wrapHandler = (callback2, wrapper) => (e) => wrapper(callback2, e);\n if (modifiers.includes(\"dot\"))\n event = dotSyntax(event);\n if (modifiers.includes(\"camel\"))\n event = camelCase2(event);\n if (modifiers.includes(\"passive\"))\n options.passive = true;\n if (modifiers.includes(\"capture\"))\n options.capture = true;\n if (modifiers.includes(\"window\"))\n listenerTarget = window;\n if (modifiers.includes(\"document\"))\n listenerTarget = document;\n if (modifiers.includes(\"debounce\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"debounce\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = debounce(handler4, wait);\n }\n if (modifiers.includes(\"throttle\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"throttle\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = throttle(handler4, wait);\n }\n if (modifiers.includes(\"prevent\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.preventDefault();\n next(e);\n });\n if (modifiers.includes(\"stop\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.stopPropagation();\n next(e);\n });\n if (modifiers.includes(\"once\")) {\n handler4 = wrapHandler(handler4, (next, e) => {\n next(e);\n listenerTarget.removeEventListener(event, handler4, options);\n });\n }\n if (modifiers.includes(\"away\") || modifiers.includes(\"outside\")) {\n listenerTarget = document;\n handler4 = wrapHandler(handler4, (next, e) => {\n if (el.contains(e.target))\n return;\n if (e.target.isConnected === false)\n return;\n if (el.offsetWidth < 1 && el.offsetHeight < 1)\n return;\n if (el._x_isShown === false)\n return;\n next(e);\n });\n }\n if (modifiers.includes(\"self\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.target === el && next(e);\n });\n if (isKeyEvent(event) || isClickEvent(event)) {\n handler4 = wrapHandler(handler4, (next, e) => {\n if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) {\n return;\n }\n next(e);\n });\n }\n listenerTarget.addEventListener(event, handler4, options);\n return () => {\n listenerTarget.removeEventListener(event, handler4, options);\n };\n}\nfunction dotSyntax(subject) {\n return subject.replace(/-/g, \".\");\n}\nfunction camelCase2(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction isNumeric(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction kebabCase2(subject) {\n if ([\" \", \"_\"].includes(\n subject\n ))\n return subject;\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[_\\s]/, \"-\").toLowerCase();\n}\nfunction isKeyEvent(event) {\n return [\"keydown\", \"keyup\"].includes(event);\n}\nfunction isClickEvent(event) {\n return [\"contextmenu\", \"click\", \"mouse\"].some((i) => event.includes(i));\n}\nfunction isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) {\n let keyModifiers = modifiers.filter((i) => {\n return ![\"window\", \"document\", \"prevent\", \"stop\", \"once\", \"capture\", \"self\", \"away\", \"outside\", \"passive\"].includes(i);\n });\n if (keyModifiers.includes(\"debounce\")) {\n let debounceIndex = keyModifiers.indexOf(\"debounce\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.includes(\"throttle\")) {\n let debounceIndex = keyModifiers.indexOf(\"throttle\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.length === 0)\n return false;\n if (keyModifiers.length === 1 && keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n const systemKeyModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\", \"cmd\", \"super\"];\n const selectedSystemKeyModifiers = systemKeyModifiers.filter((modifier) => keyModifiers.includes(modifier));\n keyModifiers = keyModifiers.filter((i) => !selectedSystemKeyModifiers.includes(i));\n if (selectedSystemKeyModifiers.length > 0) {\n const activelyPressedKeyModifiers = selectedSystemKeyModifiers.filter((modifier) => {\n if (modifier === \"cmd\" || modifier === \"super\")\n modifier = \"meta\";\n return e[`${modifier}Key`];\n });\n if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) {\n if (isClickEvent(e.type))\n return false;\n if (keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n }\n }\n return true;\n}\nfunction keyToModifiers(key) {\n if (!key)\n return [];\n key = kebabCase2(key);\n let modifierToKeyMap = {\n \"ctrl\": \"control\",\n \"slash\": \"/\",\n \"space\": \" \",\n \"spacebar\": \" \",\n \"cmd\": \"meta\",\n \"esc\": \"escape\",\n \"up\": \"arrow-up\",\n \"down\": \"arrow-down\",\n \"left\": \"arrow-left\",\n \"right\": \"arrow-right\",\n \"period\": \".\",\n \"comma\": \",\",\n \"equal\": \"=\",\n \"minus\": \"-\",\n \"underscore\": \"_\"\n };\n modifierToKeyMap[key] = key;\n return Object.keys(modifierToKeyMap).map((modifier) => {\n if (modifierToKeyMap[modifier] === key)\n return modifier;\n }).filter((modifier) => modifier);\n}\n\n// packages/alpinejs/src/directives/x-model.js\ndirective(\"model\", (el, { modifiers, expression }, { effect: effect3, cleanup: cleanup2 }) => {\n let scopeTarget = el;\n if (modifiers.includes(\"parent\")) {\n scopeTarget = el.parentNode;\n }\n let evaluateGet = evaluateLater(scopeTarget, expression);\n let evaluateSet;\n if (typeof expression === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`);\n } else if (typeof expression === \"function\" && typeof expression() === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`);\n } else {\n evaluateSet = () => {\n };\n }\n let getValue = () => {\n let result;\n evaluateGet((value) => result = value);\n return isGetterSetter(result) ? result.get() : result;\n };\n let setValue = (value) => {\n let result;\n evaluateGet((value2) => result = value2);\n if (isGetterSetter(result)) {\n result.set(value);\n } else {\n evaluateSet(() => {\n }, {\n scope: { \"__placeholder\": value }\n });\n }\n };\n if (typeof expression === \"string\" && el.type === \"radio\") {\n mutateDom(() => {\n if (!el.hasAttribute(\"name\"))\n el.setAttribute(\"name\", expression);\n });\n }\n var event = el.tagName.toLowerCase() === \"select\" || [\"checkbox\", \"radio\"].includes(el.type) || modifiers.includes(\"lazy\") ? \"change\" : \"input\";\n let removeListener = isCloning ? () => {\n } : on(el, event, modifiers, (e) => {\n setValue(getInputValue(el, modifiers, e, getValue()));\n });\n if (modifiers.includes(\"fill\")) {\n if ([void 0, null, \"\"].includes(getValue()) || el.type === \"checkbox\" && Array.isArray(getValue()) || el.tagName.toLowerCase() === \"select\" && el.multiple) {\n setValue(\n getInputValue(el, modifiers, { target: el }, getValue())\n );\n }\n }\n if (!el._x_removeModelListeners)\n el._x_removeModelListeners = {};\n el._x_removeModelListeners[\"default\"] = removeListener;\n cleanup2(() => el._x_removeModelListeners[\"default\"]());\n if (el.form) {\n let removeResetListener = on(el.form, \"reset\", [], (e) => {\n nextTick(() => el._x_model && el._x_model.set(getInputValue(el, modifiers, { target: el }, getValue())));\n });\n cleanup2(() => removeResetListener());\n }\n el._x_model = {\n get() {\n return getValue();\n },\n set(value) {\n setValue(value);\n }\n };\n el._x_forceModelUpdate = (value) => {\n if (value === void 0 && typeof expression === \"string\" && expression.match(/\\./))\n value = \"\";\n window.fromModel = true;\n mutateDom(() => bind(el, \"value\", value));\n delete window.fromModel;\n };\n effect3(() => {\n let value = getValue();\n if (modifiers.includes(\"unintrusive\") && document.activeElement.isSameNode(el))\n return;\n el._x_forceModelUpdate(value);\n });\n});\nfunction getInputValue(el, modifiers, event, currentValue) {\n return mutateDom(() => {\n if (event instanceof CustomEvent && event.detail !== void 0)\n return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value;\n else if (el.type === \"checkbox\") {\n if (Array.isArray(currentValue)) {\n let newValue = null;\n if (modifiers.includes(\"number\")) {\n newValue = safeParseNumber(event.target.value);\n } else if (modifiers.includes(\"boolean\")) {\n newValue = safeParseBoolean(event.target.value);\n } else {\n newValue = event.target.value;\n }\n return event.target.checked ? currentValue.includes(newValue) ? currentValue : currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));\n } else {\n return event.target.checked;\n }\n } else if (el.tagName.toLowerCase() === \"select\" && el.multiple) {\n if (modifiers.includes(\"number\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseNumber(rawValue);\n });\n } else if (modifiers.includes(\"boolean\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseBoolean(rawValue);\n });\n }\n return Array.from(event.target.selectedOptions).map((option) => {\n return option.value || option.text;\n });\n } else {\n let newValue;\n if (el.type === \"radio\") {\n if (event.target.checked) {\n newValue = event.target.value;\n } else {\n newValue = currentValue;\n }\n } else {\n newValue = event.target.value;\n }\n if (modifiers.includes(\"number\")) {\n return safeParseNumber(newValue);\n } else if (modifiers.includes(\"boolean\")) {\n return safeParseBoolean(newValue);\n } else if (modifiers.includes(\"trim\")) {\n return newValue.trim();\n } else {\n return newValue;\n }\n }\n });\n}\nfunction safeParseNumber(rawValue) {\n let number = rawValue ? parseFloat(rawValue) : null;\n return isNumeric2(number) ? number : rawValue;\n}\nfunction checkedAttrLooseCompare2(valueA, valueB) {\n return valueA == valueB;\n}\nfunction isNumeric2(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction isGetterSetter(value) {\n return value !== null && typeof value === \"object\" && typeof value.get === \"function\" && typeof value.set === \"function\";\n}\n\n// packages/alpinejs/src/directives/x-cloak.js\ndirective(\"cloak\", (el) => queueMicrotask(() => mutateDom(() => el.removeAttribute(prefix(\"cloak\")))));\n\n// packages/alpinejs/src/directives/x-init.js\naddInitSelector(() => `[${prefix(\"init\")}]`);\ndirective(\"init\", skipDuringClone((el, { expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"string\") {\n return !!expression.trim() && evaluate2(expression, {}, false);\n }\n return evaluate2(expression, {}, false);\n}));\n\n// packages/alpinejs/src/directives/x-text.js\ndirective(\"text\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.textContent = value;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-html.js\ndirective(\"html\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.innerHTML = value;\n el._x_ignoreSelf = true;\n initTree(el);\n delete el._x_ignoreSelf;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-bind.js\nmapAttributes(startingWith(\":\", into(prefix(\"bind:\"))));\nvar handler2 = (el, { value, modifiers, expression, original }, { effect: effect3, cleanup: cleanup2 }) => {\n if (!value) {\n let bindingProviders = {};\n injectBindingProviders(bindingProviders);\n let getBindings = evaluateLater(el, expression);\n getBindings((bindings) => {\n applyBindingsObject(el, bindings, original);\n }, { scope: bindingProviders });\n return;\n }\n if (value === \"key\")\n return storeKeyForXFor(el, expression);\n if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) {\n return;\n }\n let evaluate2 = evaluateLater(el, expression);\n effect3(() => evaluate2((result) => {\n if (result === void 0 && typeof expression === \"string\" && expression.match(/\\./)) {\n result = \"\";\n }\n mutateDom(() => bind(el, value, result, modifiers));\n }));\n cleanup2(() => {\n el._x_undoAddedClasses && el._x_undoAddedClasses();\n el._x_undoAddedStyles && el._x_undoAddedStyles();\n });\n};\nhandler2.inline = (el, { value, modifiers, expression }) => {\n if (!value)\n return;\n if (!el._x_inlineBindings)\n el._x_inlineBindings = {};\n el._x_inlineBindings[value] = { expression, extract: false };\n};\ndirective(\"bind\", handler2);\nfunction storeKeyForXFor(el, expression) {\n el._x_keyExpression = expression;\n}\n\n// packages/alpinejs/src/directives/x-data.js\naddRootSelector(() => `[${prefix(\"data\")}]`);\ndirective(\"data\", (el, { expression }, { cleanup: cleanup2 }) => {\n if (shouldSkipRegisteringDataDuringClone(el))\n return;\n expression = expression === \"\" ? \"{}\" : expression;\n let magicContext = {};\n injectMagics(magicContext, el);\n let dataProviderContext = {};\n injectDataProviders(dataProviderContext, magicContext);\n let data2 = evaluate(el, expression, { scope: dataProviderContext });\n if (data2 === void 0 || data2 === true)\n data2 = {};\n injectMagics(data2, el);\n let reactiveData = reactive(data2);\n initInterceptors(reactiveData);\n let undo = addScopeToNode(el, reactiveData);\n reactiveData[\"init\"] && evaluate(el, reactiveData[\"init\"]);\n cleanup2(() => {\n reactiveData[\"destroy\"] && evaluate(el, reactiveData[\"destroy\"]);\n undo();\n });\n});\ninterceptClone((from, to) => {\n if (from._x_dataStack) {\n to._x_dataStack = from._x_dataStack;\n to.setAttribute(\"data-has-alpine-state\", true);\n }\n});\nfunction shouldSkipRegisteringDataDuringClone(el) {\n if (!isCloning)\n return false;\n if (isCloningLegacy)\n return true;\n return el.hasAttribute(\"data-has-alpine-state\");\n}\n\n// packages/alpinejs/src/directives/x-show.js\ndirective(\"show\", (el, { modifiers, expression }, { effect: effect3 }) => {\n let evaluate2 = evaluateLater(el, expression);\n if (!el._x_doHide)\n el._x_doHide = () => {\n mutateDom(() => {\n el.style.setProperty(\"display\", \"none\", modifiers.includes(\"important\") ? \"important\" : void 0);\n });\n };\n if (!el._x_doShow)\n el._x_doShow = () => {\n mutateDom(() => {\n if (el.style.length === 1 && el.style.display === \"none\") {\n el.removeAttribute(\"style\");\n } else {\n el.style.removeProperty(\"display\");\n }\n });\n };\n let hide = () => {\n el._x_doHide();\n el._x_isShown = false;\n };\n let show = () => {\n el._x_doShow();\n el._x_isShown = true;\n };\n let clickAwayCompatibleShow = () => setTimeout(show);\n let toggle = once(\n (value) => value ? show() : hide(),\n (value) => {\n if (typeof el._x_toggleAndCascadeWithTransitions === \"function\") {\n el._x_toggleAndCascadeWithTransitions(el, value, show, hide);\n } else {\n value ? clickAwayCompatibleShow() : hide();\n }\n }\n );\n let oldValue;\n let firstTime = true;\n effect3(() => evaluate2((value) => {\n if (!firstTime && value === oldValue)\n return;\n if (modifiers.includes(\"immediate\"))\n value ? clickAwayCompatibleShow() : hide();\n toggle(value);\n oldValue = value;\n firstTime = false;\n }));\n});\n\n// packages/alpinejs/src/directives/x-for.js\ndirective(\"for\", (el, { expression }, { effect: effect3, cleanup: cleanup2 }) => {\n let iteratorNames = parseForExpression(expression);\n let evaluateItems = evaluateLater(el, iteratorNames.items);\n let evaluateKey = evaluateLater(\n el,\n // the x-bind:key expression is stored for our use instead of evaluated.\n el._x_keyExpression || \"index\"\n );\n el._x_prevKeys = [];\n el._x_lookup = {};\n effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey));\n cleanup2(() => {\n Object.values(el._x_lookup).forEach((el2) => el2.remove());\n delete el._x_prevKeys;\n delete el._x_lookup;\n });\n});\nfunction loop(el, iteratorNames, evaluateItems, evaluateKey) {\n let isObject2 = (i) => typeof i === \"object\" && !Array.isArray(i);\n let templateEl = el;\n evaluateItems((items) => {\n if (isNumeric3(items) && items >= 0) {\n items = Array.from(Array(items).keys(), (i) => i + 1);\n }\n if (items === void 0)\n items = [];\n let lookup = el._x_lookup;\n let prevKeys = el._x_prevKeys;\n let scopes = [];\n let keys = [];\n if (isObject2(items)) {\n items = Object.entries(items).map(([key, value]) => {\n let scope2 = getIterationScopeVariables(iteratorNames, value, key, items);\n evaluateKey((value2) => {\n if (keys.includes(value2))\n warn(\"Duplicate key on x-for\", el);\n keys.push(value2);\n }, { scope: { index: key, ...scope2 } });\n scopes.push(scope2);\n });\n } else {\n for (let i = 0; i < items.length; i++) {\n let scope2 = getIterationScopeVariables(iteratorNames, items[i], i, items);\n evaluateKey((value) => {\n if (keys.includes(value))\n warn(\"Duplicate key on x-for\", el);\n keys.push(value);\n }, { scope: { index: i, ...scope2 } });\n scopes.push(scope2);\n }\n }\n let adds = [];\n let moves = [];\n let removes = [];\n let sames = [];\n for (let i = 0; i < prevKeys.length; i++) {\n let key = prevKeys[i];\n if (keys.indexOf(key) === -1)\n removes.push(key);\n }\n prevKeys = prevKeys.filter((key) => !removes.includes(key));\n let lastKey = \"template\";\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n let prevIndex = prevKeys.indexOf(key);\n if (prevIndex === -1) {\n prevKeys.splice(i, 0, key);\n adds.push([lastKey, i]);\n } else if (prevIndex !== i) {\n let keyInSpot = prevKeys.splice(i, 1)[0];\n let keyForSpot = prevKeys.splice(prevIndex - 1, 1)[0];\n prevKeys.splice(i, 0, keyForSpot);\n prevKeys.splice(prevIndex, 0, keyInSpot);\n moves.push([keyInSpot, keyForSpot]);\n } else {\n sames.push(key);\n }\n lastKey = key;\n }\n for (let i = 0; i < removes.length; i++) {\n let key = removes[i];\n if (!!lookup[key]._x_effects) {\n lookup[key]._x_effects.forEach(dequeueJob);\n }\n lookup[key].remove();\n lookup[key] = null;\n delete lookup[key];\n }\n for (let i = 0; i < moves.length; i++) {\n let [keyInSpot, keyForSpot] = moves[i];\n let elInSpot = lookup[keyInSpot];\n let elForSpot = lookup[keyForSpot];\n let marker = document.createElement(\"div\");\n mutateDom(() => {\n if (!elForSpot)\n warn(`x-for \":key\" is undefined or invalid`, templateEl, keyForSpot, lookup);\n elForSpot.after(marker);\n elInSpot.after(elForSpot);\n elForSpot._x_currentIfEl && elForSpot.after(elForSpot._x_currentIfEl);\n marker.before(elInSpot);\n elInSpot._x_currentIfEl && elInSpot.after(elInSpot._x_currentIfEl);\n marker.remove();\n });\n elForSpot._x_refreshXForScope(scopes[keys.indexOf(keyForSpot)]);\n }\n for (let i = 0; i < adds.length; i++) {\n let [lastKey2, index] = adds[i];\n let lastEl = lastKey2 === \"template\" ? templateEl : lookup[lastKey2];\n if (lastEl._x_currentIfEl)\n lastEl = lastEl._x_currentIfEl;\n let scope2 = scopes[index];\n let key = keys[index];\n let clone2 = document.importNode(templateEl.content, true).firstElementChild;\n let reactiveScope = reactive(scope2);\n addScopeToNode(clone2, reactiveScope, templateEl);\n clone2._x_refreshXForScope = (newScope) => {\n Object.entries(newScope).forEach(([key2, value]) => {\n reactiveScope[key2] = value;\n });\n };\n mutateDom(() => {\n lastEl.after(clone2);\n skipDuringClone(() => initTree(clone2))();\n });\n if (typeof key === \"object\") {\n warn(\"x-for key cannot be an object, it must be a string or an integer\", templateEl);\n }\n lookup[key] = clone2;\n }\n for (let i = 0; i < sames.length; i++) {\n lookup[sames[i]]._x_refreshXForScope(scopes[keys.indexOf(sames[i])]);\n }\n templateEl._x_prevKeys = keys;\n });\n}\nfunction parseForExpression(expression) {\n let forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\n let stripParensRE = /^\\s*\\(|\\)\\s*$/g;\n let forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\n let inMatch = expression.match(forAliasRE);\n if (!inMatch)\n return;\n let res = {};\n res.items = inMatch[2].trim();\n let item = inMatch[1].replace(stripParensRE, \"\").trim();\n let iteratorMatch = item.match(forIteratorRE);\n if (iteratorMatch) {\n res.item = item.replace(forIteratorRE, \"\").trim();\n res.index = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.collection = iteratorMatch[2].trim();\n }\n } else {\n res.item = item;\n }\n return res;\n}\nfunction getIterationScopeVariables(iteratorNames, item, index, items) {\n let scopeVariables = {};\n if (/^\\[.*\\]$/.test(iteratorNames.item) && Array.isArray(item)) {\n let names = iteratorNames.item.replace(\"[\", \"\").replace(\"]\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name, i) => {\n scopeVariables[name] = item[i];\n });\n } else if (/^\\{.*\\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === \"object\") {\n let names = iteratorNames.item.replace(\"{\", \"\").replace(\"}\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name) => {\n scopeVariables[name] = item[name];\n });\n } else {\n scopeVariables[iteratorNames.item] = item;\n }\n if (iteratorNames.index)\n scopeVariables[iteratorNames.index] = index;\n if (iteratorNames.collection)\n scopeVariables[iteratorNames.collection] = items;\n return scopeVariables;\n}\nfunction isNumeric3(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\n\n// packages/alpinejs/src/directives/x-ref.js\nfunction handler3() {\n}\nhandler3.inline = (el, { expression }, { cleanup: cleanup2 }) => {\n let root = closestRoot(el);\n if (!root._x_refs)\n root._x_refs = {};\n root._x_refs[expression] = el;\n cleanup2(() => delete root._x_refs[expression]);\n};\ndirective(\"ref\", handler3);\n\n// packages/alpinejs/src/directives/x-if.js\ndirective(\"if\", (el, { expression }, { effect: effect3, cleanup: cleanup2 }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-if can only be used on a <template> tag\", el);\n let evaluate2 = evaluateLater(el, expression);\n let show = () => {\n if (el._x_currentIfEl)\n return el._x_currentIfEl;\n let clone2 = el.content.cloneNode(true).firstElementChild;\n addScopeToNode(clone2, {}, el);\n mutateDom(() => {\n el.after(clone2);\n skipDuringClone(() => initTree(clone2))();\n });\n el._x_currentIfEl = clone2;\n el._x_undoIf = () => {\n walk(clone2, (node) => {\n if (!!node._x_effects) {\n node._x_effects.forEach(dequeueJob);\n }\n });\n clone2.remove();\n delete el._x_currentIfEl;\n };\n return clone2;\n };\n let hide = () => {\n if (!el._x_undoIf)\n return;\n el._x_undoIf();\n delete el._x_undoIf;\n };\n effect3(() => evaluate2((value) => {\n value ? show() : hide();\n }));\n cleanup2(() => el._x_undoIf && el._x_undoIf());\n});\n\n// packages/alpinejs/src/directives/x-id.js\ndirective(\"id\", (el, { expression }, { evaluate: evaluate2 }) => {\n let names = evaluate2(expression);\n names.forEach((name) => setIdRoot(el, name));\n});\ninterceptClone((from, to) => {\n if (from._x_ids) {\n to._x_ids = from._x_ids;\n }\n});\n\n// packages/alpinejs/src/directives/x-on.js\nmapAttributes(startingWith(\"@\", into(prefix(\"on:\"))));\ndirective(\"on\", skipDuringClone((el, { value, modifiers, expression }, { cleanup: cleanup2 }) => {\n let evaluate2 = expression ? evaluateLater(el, expression) : () => {\n };\n if (el.tagName.toLowerCase() === \"template\") {\n if (!el._x_forwardEvents)\n el._x_forwardEvents = [];\n if (!el._x_forwardEvents.includes(value))\n el._x_forwardEvents.push(value);\n }\n let removeListener = on(el, value, modifiers, (e) => {\n evaluate2(() => {\n }, { scope: { \"$event\": e }, params: [e] });\n });\n cleanup2(() => removeListener());\n}));\n\n// packages/alpinejs/src/directives/index.js\nwarnMissingPluginDirective(\"Collapse\", \"collapse\", \"collapse\");\nwarnMissingPluginDirective(\"Intersect\", \"intersect\", \"intersect\");\nwarnMissingPluginDirective(\"Focus\", \"trap\", \"focus\");\nwarnMissingPluginDirective(\"Mask\", \"mask\", \"mask\");\nfunction warnMissingPluginDirective(name, directiveName, slug) {\n directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/index.js\nalpine_default.setEvaluator(normalEvaluator);\nalpine_default.setReactivityEngine({ reactive: reactive2, effect: effect2, release: stop, raw: toRaw });\nvar src_default = alpine_default;\n\n// packages/alpinejs/builds/module.js\nvar module_default = src_default;\nexport {\n src_default as Alpine,\n module_default as default\n};\n", "import Alpine from 'alpinejs'\n\nexport function generateEntangleFunction(component, cleanup) {\n if (! cleanup) cleanup = () => {}\n\n return (name, live = false) => {\n let isLive = live\n let livewireProperty = name\n let livewireComponent = component.$wire\n let livewirePropertyValue = livewireComponent.get(livewireProperty)\n\n let interceptor = Alpine.interceptor((initialValue, getter, setter, path, key) => {\n // Check to see if the Livewire property exists and if not log a console error\n // and return so everything else keeps running.\n if (typeof livewirePropertyValue === 'undefined') {\n console.error(`Livewire Entangle Error: Livewire property ['${livewireProperty}'] cannot be found on component: ['${component.name}']`)\n return\n }\n\n let release = Alpine.entangle({\n // Outer scope...\n get() {\n return livewireComponent.get(name)\n },\n set(value) {\n livewireComponent.set(name, value, isLive)\n }\n }, {\n // Inner scope...\n get() {\n return getter()\n },\n set(value) {\n setter(value)\n }\n })\n\n cleanup(() => release())\n\n return cloneIfObject(livewireComponent.get(name))\n }, obj => {\n Object.defineProperty(obj, 'live', {\n get() {\n isLive = true\n\n return obj\n }\n })\n })\n\n return interceptor(livewirePropertyValue)\n }\n}\n\nfunction cloneIfObject(value) {\n return typeof value === 'object'\n ? JSON.parse(JSON.stringify(value))\n : value\n}\n", "import { isFunction } from '@/utils'\n\n/**\n * Our internal event listener bus...\n */\nlet listeners = []\n\n/**\n * Register a callback to run when an event is triggered...\n */\nexport function on(name, callback) {\n if (! listeners[name]) listeners[name] = []\n\n listeners[name].push(callback)\n\n // Return an \"off\" callback to remove the listener...\n return () => {\n listeners[name] = listeners[name].filter(i => i !== callback)\n }\n}\n\n/**\n * In addition to triggering an event, this method allows you to\n * defer running callbacks returned from listeners and pass a\n * value through each one so they can act like middleware.\n *\n * An example of using this combination to the fullest:\n *\n * // First let's look at the triggering phase:\n * let finish = trigger([event name], ...[event params])\n *\n * return finish([pass-through value])\n *\n * // Now, let's look at the \"listening\" phase:\n * on([event name], (...[event params]) => {\n * // The contents of this callback will be run immediately on trigger.\n *\n * return ([pass-through value]) => {\n * // This callback will be run when \"finish()\" is called.\n *\n * // The [pass-through value] can be mutated and must\n * // be returned for the next callback to process.\n * return [pass-through value]\n * }\n * })\n */\nexport function trigger(name, ...params) {\n let callbacks = listeners[name] || []\n\n let finishers = []\n\n for (let i = 0; i < callbacks.length; i++) {\n let finisher = callbacks[i](...params)\n\n if (isFunction(finisher)) finishers.push(finisher)\n }\n\n return (result) => {\n return runFinishers(finishers, result)\n }\n}\n\nexport async function triggerAsync(name, ...params) {\n let callbacks = listeners[name] || []\n\n let finishers = []\n\n for (let i = 0; i < callbacks.length; i++) {\n let finisher = await callbacks[i](...params)\n\n if (isFunction(finisher)) finishers.push(finisher)\n }\n\n return (result) => {\n return runFinishers(finishers, result)\n }\n}\n\nexport function runFinishers(finishers, result)\n{\n let latest = result\n\n for (let i = 0; i < finishers.length; i++) {\n let iResult = finishers[i](latest)\n\n if (iResult !== undefined) {\n latest = iResult\n }\n }\n\n return latest\n}\n", "\n// This code and concept is all Jonathan Reinink - thanks main!\nexport function showHtmlModal(html) {\n let page = document.createElement('html')\n page.innerHTML = html\n page.querySelectorAll('a').forEach(a =>\n a.setAttribute('target', '_top')\n )\n\n let modal = document.getElementById('livewire-error')\n\n if (typeof modal != 'undefined' && modal != null) {\n // Modal already exists.\n modal.innerHTML = ''\n } else {\n modal = document.createElement('div')\n modal.id = 'livewire-error'\n modal.style.position = 'fixed'\n modal.style.width = '100vw'\n modal.style.height = '100vh'\n modal.style.padding = '50px'\n modal.style.backgroundColor = 'rgba(0, 0, 0, .6)'\n modal.style.zIndex = 200000\n }\n\n let iframe = document.createElement('iframe')\n iframe.style.backgroundColor = '#17161A'\n iframe.style.borderRadius = '5px'\n iframe.style.width = '100%'\n iframe.style.height = '100%'\n modal.appendChild(iframe)\n\n document.body.prepend(modal)\n document.body.style.overflow = 'hidden'\n iframe.contentWindow.document.open()\n iframe.contentWindow.document.write(page.outerHTML)\n iframe.contentWindow.document.close()\n\n // Close on click.\n modal.addEventListener('click', () => hideHtmlModal(modal))\n\n // Close on escape key press.\n modal.setAttribute('tabindex', 0)\n modal.addEventListener('keydown', e => {\n if (e.key === 'Escape') hideHtmlModal(modal)\n })\n modal.focus()\n}\n\nexport function hideHtmlModal(modal) {\n modal.outerHTML = ''\n document.body.style.overflow = 'visible'\n}\n", "import { sendRequest } from \"@/request\"\n\n/**\n * The RequestPool contains a list of commits to be sent to the server...\n */\nexport class RequestPool {\n constructor() {\n this.commits = new Set\n }\n\n add(commit) {\n this.commits.add(commit)\n }\n\n delete(commit) {\n this.commits.delete(commit)\n }\n\n hasCommitFor(component) {\n return !! this.findCommitByComponent(component)\n }\n\n findCommitByComponent(component) {\n // Determine if this pool already has a commit for this component...\n for (let [idx, commit] of this.commits.entries()) {\n if (commit.component === component) return commit\n }\n }\n\n // Determine if a commit should be added to this pool or isolated into its own...\n shouldHoldCommit(commit) {\n return ! commit.isolate\n }\n\n empty() {\n return this.commits.size === 0\n }\n\n async send() {\n this.prepare()\n\n // Send this pool of commits to the server and let the commits\n // Manage their own response actions...\n await sendRequest(this)\n }\n\n prepare() {\n // Give each commit a chance to do any last-minute prep\n // before being sent to the server.\n this.commits.forEach(i => i.prepare())\n }\n\n payload() {\n // Extract a request payload from each of the commits in this pool...\n let commitPayloads = []\n\n // Collect success and failure callbacks to be used inside aggregated callbacks...\n let successReceivers = []\n let failureReceivers = []\n\n this.commits.forEach(commit => {\n let [payload, succeed, fail] = commit.toRequestPayload()\n\n commitPayloads.push(payload)\n successReceivers.push(succeed)\n failureReceivers.push(fail)\n })\n\n // Aggregate the success and failure callbacks for individual commits\n // into something that can be called singularly...\n let succeed = components => successReceivers.forEach(receiver => receiver(components.shift()))\n\n let fail = () => failureReceivers.forEach(receiver => receiver())\n\n return [ commitPayloads, succeed, fail ]\n }\n}\n", "import { diff } from '@/utils'\nimport { on, trigger } from '@/hooks'\n\n/**\n * A commit represents an individual component updating itself server-side...\n */\nexport class Commit {\n constructor(component) {\n this.component = component\n this.isolate = false\n this.calls = []\n this.receivers = []\n this.resolvers = []\n }\n\n // Add a new resolver to be resolved when a commit is returned from the server...\n addResolver(resolver) {\n this.resolvers.push(resolver)\n }\n\n // Add a new action \"call\" to the commit payload...\n addCall(method, params, receiver) {\n this.calls.push({\n path: '', method, params,\n handleReturn(value) {\n receiver(value)\n },\n })\n }\n\n prepare() {\n trigger('commit.prepare', { component: this.component })\n }\n\n // Generate a JSON-friendly server-request payload...\n toRequestPayload() {\n // Generate a \"diff\" of the current last known server-side state, and\n // the new front-end state so that we can update the server atomically...\n let propertiesDiff = diff(this.component.canonical, this.component.ephemeral)\n\n let updates = this.component.mergeQueuedUpdates(propertiesDiff)\n\n let payload = {\n snapshot: this.component.snapshotEncoded,\n updates: updates,\n calls: this.calls.map(i => ({\n path: i.path,\n method: i.method,\n params: i.params,\n }))\n }\n\n // Store success and failure hooks from commit listeners\n // so they can be aggregated into a singular callback later...\n let succeedCallbacks = []\n let failCallbacks = []\n let respondCallbacks = []\n\n let succeed = (fwd) => succeedCallbacks.forEach(i => i(fwd))\n let fail = () => failCallbacks.forEach(i => i())\n let respond = () => respondCallbacks.forEach(i => i())\n\n // Allow other areas of the codebase to hook into the lifecycle\n // of an individual commit...\n let finishTarget = trigger('commit', {\n component: this.component,\n commit: payload,\n succeed: (callback) => {\n succeedCallbacks.push(callback)\n },\n fail: (callback) => {\n failCallbacks.push(callback)\n },\n respond: (callback) => {\n respondCallbacks.push(callback)\n },\n })\n\n // Handle the response payload for a commit...\n let handleResponse = (response) => {\n let { snapshot, effects } = response\n\n respond()\n\n // Take the new snapshot and merge it into the existing one...\n this.component.mergeNewSnapshot(snapshot, effects, updates)\n\n // Trigger any side effects from the payload like \"morph\" and \"dispatch event\"...\n this.component.processEffects(this.component.effects)\n\n if (effects['returns']) {\n let returns = effects['returns']\n\n // Here we'll match up returned values with their method call handlers. We need to build up\n // two \"stacks\" of the same length and walk through them together to handle them properly...\n let returnHandlerStack = this.calls.map(({ handleReturn }) => (handleReturn))\n\n returnHandlerStack.forEach((handleReturn, index) => {\n handleReturn(returns[index])\n })\n }\n\n let parsedSnapshot = JSON.parse(snapshot)\n\n finishTarget({ snapshot: parsedSnapshot, effects })\n\n this.resolvers.forEach(i => i())\n\n succeed(response)\n }\n\n let handleFailure = () => {\n respond()\n\n fail()\n }\n\n return [payload, handleResponse, handleFailure]\n }\n}\n", "import { trigger } from '@/hooks'\nimport { RequestPool } from './pool'\nimport { Commit } from './commit'\n\n/**\n * This bus manages the pooling of multiple commits and sending\n * those pools of commits to the server...\n */\nexport class CommitBus {\n constructor() {\n // A list of loose, un-pooled, commits ready to be pooled and sent to the server...\n this.commits = new Set\n\n // A list of commit pools currently out to the server...\n this.pools = new Set\n }\n\n add(component) {\n // If this component already has a commit, leave it, otherwise,\n // create a new commit and add it to the list...\n let commit = this.findCommitOr(component, () => {\n let newCommit = new Commit(component)\n\n this.commits.add(newCommit)\n\n return newCommit\n })\n\n // Buffer the sending of a pool for 5ms to account for UI interactions\n // that will trigger multiple events within a few milliseconds of each other.\n // For example, clicking on a button that both unfocuses a field and registers a mousedown...\n bufferPoolingForFiveMs(commit, () => {\n // If this commit is already in a pool, leave it be...\n let pool = this.findPoolWithComponent(commit.component)\n\n if (! pool) {\n // If it's not, create a new pool or add it to an existing one and trigger a network request...\n this.createAndSendNewPool()\n }\n })\n\n return commit\n }\n\n findCommitOr(component, callback) {\n for (let [idx, commit] of this.commits.entries()) {\n if (commit.component === component) {\n return commit\n }\n }\n\n return callback()\n }\n\n findPoolWithComponent(component) {\n for (let [idx, pool] of this.pools.entries()) {\n if (pool.hasCommitFor(component)) return pool\n }\n }\n\n createAndSendNewPool() {\n // Allow features like \"reactive properties\" to initiate associated\n // commits before those commits are pooled for a network request...\n trigger('commit.pooling', { commits: this.commits })\n\n // Split commits up across one or multiple pools to be sent as seperate network requests...\n let pools = this.corraleCommitsIntoPools()\n\n // Clear all commits in the queue now that they're in pools...\n this.commits.clear()\n\n trigger('commit.pooled', { pools })\n\n // Go through each pool and...\n pools.forEach(pool => {\n // Ignore empty pools (if other parts of the system have moved commits around different pools)...\n if (pool.empty()) return\n\n // Add it to the list of pending pools...\n this.pools.add(pool)\n\n // Send it's payload along to the server...\n pool.send().then(() => {\n // When it comes back, remove it from the list...\n this.pools.delete(pool)\n\n // Trigger another pooling phase in case commits have\n // been added while the current request was out...\n this.sendAnyQueuedCommits()\n })\n })\n }\n\n corraleCommitsIntoPools() {\n let pools = new Set\n\n // Go through each commit and assess wether it should be bundled\n // with other commits or sperated into it's own pool (network request)...\n for (let [idx, commit] of this.commits.entries()) {\n let hasFoundPool = false\n\n // If an existing pool wants to claim a commit, let it...\n pools.forEach(pool => {\n if (pool.shouldHoldCommit(commit)) {\n pool.add(commit)\n\n hasFoundPool = true\n }\n })\n\n // Otherwise, create a new pool and seed it with this commit...\n if (! hasFoundPool) {\n let newPool = new RequestPool\n\n newPool.add(commit)\n\n pools.add(newPool)\n }\n }\n\n return pools\n }\n\n sendAnyQueuedCommits() {\n if (this.commits.size > 0) {\n this.createAndSendNewPool()\n }\n }\n}\n\nlet buffersByCommit = new WeakMap\n\nfunction bufferPoolingForFiveMs(commit, callback) {\n if (buffersByCommit.has(commit)) return\n\n buffersByCommit.set(commit, setTimeout(() => {\n callback()\n\n buffersByCommit.delete(commit)\n }, 5))\n}\n", "import { getCsrfToken, contentIsFromDump, splitDumpFromContent, getUpdateUri } from '@/utils'\nimport { trigger, triggerAsync } from '@/hooks'\nimport { showHtmlModal } from './modal'\nimport { CommitBus } from './bus'\n\n/**\n * This is the bus that manages pooling and sending\n * commits to the server as network requests...\n */\nlet commitBus = new CommitBus\n\n/**\n * Create a commit and trigger a network request...\n */\nexport async function requestCommit(component) {\n let commit = commitBus.add(component)\n\n let promise = new Promise((resolve) => {\n commit.addResolver(resolve)\n })\n\n promise.commit = commit\n\n return promise\n}\n\n/**\n * Create a commit with an \"action\" call and trigger a network request...\n */\nexport async function requestCall(component, method, params) {\n let commit = commitBus.add(component)\n\n let promise = new Promise((resolve) => {\n commit.addCall(method, params, value => resolve(value))\n })\n\n promise.commit = commit\n\n return promise\n}\n\n/**\n * Send a pool of commits to the server over HTTP...\n */\nexport async function sendRequest(pool) {\n let [payload, handleSuccess, handleFailure] = pool.payload()\n\n let options = {\n method: 'POST',\n body: JSON.stringify({\n _token: getCsrfToken(),\n components: payload,\n }),\n headers: {\n 'Content-type': 'application/json',\n 'X-Livewire': '',\n },\n }\n\n let succeedCallbacks = []\n let failCallbacks = []\n let respondCallbacks = []\n\n let succeed = (fwd) => succeedCallbacks.forEach(i => i(fwd))\n let fail = (fwd) => failCallbacks.forEach(i => i(fwd))\n let respond = (fwd) => respondCallbacks.forEach(i => i(fwd))\n\n let finishProfile = trigger('request.profile', options)\n\n let updateUri = getUpdateUri()\n\n trigger('request', {\n url: updateUri,\n options,\n payload: options.body,\n respond: i => respondCallbacks.push(i),\n succeed: i => succeedCallbacks.push(i),\n fail: i => failCallbacks.push(i),\n })\n\n let response\n\n try {\n response = await fetch(updateUri, options)\n } catch (e) {\n // If something went wrong with the fetch (particularly\n // this would happen if the connection went offline)\n // fail with a 503 and allow Livewire to clean up\n\n finishProfile({ content: '{}', failed: true })\n\n handleFailure()\n\n fail({\n status: 503,\n content: null,\n preventDefault: () => {},\n })\n\n return\n }\n\n let mutableObject = {\n status: response.status,\n response,\n }\n\n respond(mutableObject)\n\n response = mutableObject.response\n\n let content = await response.text()\n\n // Handle error response...\n if (! response.ok) {\n finishProfile({ content: '{}', failed: true })\n\n let preventDefault = false\n\n handleFailure()\n\n fail({\n status: response.status,\n content,\n preventDefault: () => preventDefault = true,\n })\n\n if (preventDefault) return\n\n if (response.status === 419) {\n handlePageExpiry()\n }\n\n return showFailureModal(content)\n }\n\n /**\n * Sometimes a redirect happens on the backend outside of Livewire's control,\n * for example to a login page from a middleware, so we will just redirect\n * to that page.\n */\n if (response.redirected) {\n window.location.href = response.url\n }\n\n /**\n * Sometimes a response will be prepended with html to render a dump, so we\n * will seperate the dump html from Livewire's JSON response content and\n * render the dump in a modal and allow Livewire to continue with the\n * request.\n */\n if (contentIsFromDump(content)) {\n let dump\n [dump, content] = splitDumpFromContent(content)\n\n showHtmlModal(dump)\n\n finishProfile({ content: '{}', failed: true })\n } else {\n finishProfile({ content, failed: false })\n }\n\n let { components, assets } = JSON.parse(content)\n\n await triggerAsync('payload.intercept', { components, assets })\n\n await handleSuccess(components)\n\n succeed({ status: response.status, json: JSON.parse(content) })\n}\n\nfunction handlePageExpiry() {\n confirm(\n 'This page has expired.\\nWould you like to refresh the page?'\n ) && window.location.reload()\n}\n\nfunction showFailureModal(content) {\n let html = content\n\n showHtmlModal(html)\n}\n", "import { cancelUpload, removeUpload, upload, uploadMultiple } from './features/supportFileUploads'\nimport { dispatch, dispatchSelf, dispatchTo, listen } from '@/events'\nimport { generateEntangleFunction } from '@/features/supportEntangle'\nimport { closestComponent } from '@/store'\nimport { requestCommit, requestCall } from '@/request'\nimport { dataGet, dataSet } from '@/utils'\nimport Alpine from 'alpinejs'\n\nlet properties = {}\nlet fallback\n\nfunction wireProperty(name, callback, component = null) {\n properties[name] = callback\n}\n\nfunction wireFallback(callback) {\n fallback = callback\n}\n\n// For V2 backwards compatibility...\n// And I actually like both depending on the scenario...\nlet aliases = {\n 'on': '$on',\n 'el': '$el',\n 'id': '$id',\n 'get': '$get',\n 'set': '$set',\n 'call': '$call',\n 'commit': '$commit',\n 'watch': '$watch',\n 'entangle': '$entangle',\n 'dispatch': '$dispatch',\n 'dispatchTo': '$dispatchTo',\n 'dispatchSelf': '$dispatchSelf',\n 'upload': '$upload',\n 'uploadMultiple': '$uploadMultiple',\n 'removeUpload': '$removeUpload',\n 'cancelUpload': '$cancelUpload',\n}\n\nexport function generateWireObject(component, state) {\n return new Proxy({}, {\n get(target, property) {\n if (property === '__instance') return component\n\n if (property in aliases) {\n return getProperty(component, aliases[property])\n } else if (property in properties) {\n return getProperty(component, property)\n } else if (property in state) {\n return state[property]\n } else if (! ['then'].includes(property)) {\n return getFallback(component)(property)\n }\n },\n\n set(target, property, value) {\n if (property in state) {\n state[property] = value\n }\n\n return true\n },\n })\n}\n\nfunction getProperty(component, name) {\n return properties[name](component)\n}\n\nfunction getFallback(component) {\n return fallback(component)\n}\n\nAlpine.magic('wire', (el, { cleanup }) => {\n // Purposely initializing an empty variable here is a \"memo\"\n // so that a component is lazy-loaded when using $wire from Alpine...\n let component\n\n // Override $wire methods that need to be cleaned up when\n // and element is removed. For example, `x-data=\"{ foo: $wire.entangle(...) }\"`:\n // we would want the entangle effect freed if the element was removed from the DOM...\n return new Proxy({}, {\n get(target, property) {\n if (! component) component = closestComponent(el)\n\n if (['$entangle', 'entangle'].includes(property)) {\n return generateEntangleFunction(component, cleanup)\n }\n\n return component.$wire[property]\n },\n\n set(target, property, value) {\n if (! component) component = closestComponent(el)\n\n component.$wire[property] = value\n\n return true\n },\n })\n})\n\nwireProperty('__instance', (component) => component)\n\nwireProperty('$get', (component) => (property, reactive = true) => dataGet(reactive ? component.reactive : component.ephemeral, property))\n\nwireProperty('$el', (component) => {\n return component.el\n})\n\nwireProperty('$id', (component) => {\n return component.id\n})\n\nwireProperty('$set', (component) => async (property, value, live = true) => {\n dataSet(component.reactive, property, value)\n\n // If \"live\", send a request, queueing the property update to happen first\n // on the server, then trickle back down to the client and get merged...\n if (live) {\n component.queueUpdate(property, value)\n\n return await requestCommit(component)\n }\n\n return Promise.resolve()\n})\n\nwireProperty('$call', (component) => async (method, ...params) => {\n return await component.$wire[method](...params)\n})\n\nwireProperty('$entangle', (component) => (name, live = false) => {\n return generateEntangleFunction(component)(name, live)\n})\n\nwireProperty('$toggle', (component) => (name, live = true) => {\n return component.$wire.set(name, ! component.$wire.get(name), live)\n})\n\nwireProperty('$watch', (component) => (path, callback) => {\n let getter = () => {\n return dataGet(component.reactive, path)\n }\n\n let unwatch = Alpine.watch(getter, callback)\n\n component.addCleanup(unwatch)\n})\n\nwireProperty('$refresh', (component) => component.$wire.$commit)\nwireProperty('$commit', (component) => async () => await requestCommit(component))\n\nwireProperty('$on', (component) => (...params) => listen(component, ...params))\n\nwireProperty('$dispatch', (component) => (...params) => dispatch(component, ...params))\nwireProperty('$dispatchSelf', (component) => (...params) => dispatchSelf(component, ...params))\nwireProperty('$dispatchTo', () => (...params) => dispatchTo(...params))\nwireProperty('$upload', (component) => (...params) => upload(component, ...params))\nwireProperty('$uploadMultiple', (component) => (...params) => uploadMultiple(component, ...params))\nwireProperty('$removeUpload', (component) => (...params) => removeUpload(component, ...params))\nwireProperty('$cancelUpload', (component) => (...params) => cancelUpload(component, ...params))\n\nlet parentMemo = new WeakMap\n\nwireProperty('$parent', component => {\n if (parentMemo.has(component)) return parentMemo.get(component).$wire\n\n let parent = component.parent\n\n parentMemo.set(component, parent)\n\n return parent.$wire\n})\n\nlet overriddenMethods = new WeakMap\n\nexport function overrideMethod(component, method, callback) {\n if (! overriddenMethods.has(component)) {\n overriddenMethods.set(component, {})\n }\n\n let obj = overriddenMethods.get(component)\n\n obj[method] = callback\n\n overriddenMethods.set(component, obj)\n}\n\nwireFallback((component) => (property) => async (...params) => {\n // If this method is passed directly to a Vue or Alpine\n // event listener (@click=\"someMethod\") without using\n // parens, strip out the automatically added event.\n if (params.length === 1 && params[0] instanceof Event) {\n params = []\n }\n\n if (overriddenMethods.has(component)) {\n let overrides = overriddenMethods.get(component)\n\n if (typeof overrides[property] === 'function') {\n return overrides[property](params)\n }\n }\n\n return await requestCall(component, property, params)\n})\n", "import { dataSet, deepClone, diff, extractData} from '@/utils'\nimport { generateWireObject } from '@/$wire'\nimport { closestComponent, findComponent } from '@/store'\nimport { trigger } from '@/hooks'\n\nexport class Component {\n constructor(el) {\n if (el.__livewire) throw 'Component already initialized';\n\n el.__livewire = this\n\n this.el = el\n\n this.id = el.getAttribute('wire:id')\n\n this.__livewireId = this.id // @legacy\n\n this.snapshotEncoded = el.getAttribute('wire:snapshot')\n\n this.snapshot = JSON.parse(this.snapshotEncoded)\n\n if (! this.snapshot) {\n throw `Snapshot missing on Livewire component with id: ` + this.id\n }\n\n this.name = this.snapshot.memo.name\n\n this.effects = JSON.parse(el.getAttribute('wire:effects'))\n this.originalEffects = deepClone(this.effects)\n\n // \"canonical\" data represents the last known server state.\n this.canonical = extractData(deepClone(this.snapshot.data))\n // \"ephemeral\" represents the most current state. (This can be freely manipulated by end users)\n this.ephemeral = extractData(deepClone(this.snapshot.data))\n // \"reactive\" is just ephemeral, except when you mutate it, front-ends like Vue react.\n this.reactive = Alpine.reactive(this.ephemeral)\n\n this.queuedUpdates = {}\n\n // this.$wire = this.reactive\n this.$wire = generateWireObject(this, this.reactive)\n\n this.cleanups = []\n\n // Effects will be processed after every request, but we'll also handle them on initialization.\n this.processEffects(this.effects)\n }\n\n mergeNewSnapshot(snapshotEncoded, effects, updates = {}) {\n let snapshot = JSON.parse(snapshotEncoded)\n\n let oldCanonical = deepClone(this.canonical)\n let updatedOldCanonical = this.applyUpdates(oldCanonical, updates)\n\n let newCanonical = extractData(deepClone(snapshot.data))\n\n let dirty = diff(updatedOldCanonical, newCanonical)\n\n this.snapshotEncoded = snapshotEncoded\n\n this.snapshot = snapshot\n\n this.effects = effects\n\n this.canonical = extractData(deepClone(snapshot.data))\n\n let newData = extractData(deepClone(snapshot.data))\n\n Object.entries(dirty).forEach(([key, value]) => {\n let rootKey = key.split('.')[0]\n this.reactive[rootKey] = newData[rootKey]\n })\n // Object.entries(this.ephemeral).forEach(([key, value]) => {\n // if (! deeplyEqual(this.ephemeral[key], newData[key])) {\n // this.reactive[key] = newData[key]\n // }\n // })\n\n return dirty\n }\n\n queueUpdate(propertyName, value) {\n // These updates will be applied first on the server\n // on the next request, then trickle back to the\n // client on the next request that gets sent.\n this.queuedUpdates[propertyName] = value\n }\n\n mergeQueuedUpdates(diff) {\n // Before adding queuedUpdates into the diff list, we will remove any diffs\n // that will be overriden by the queued update. Queued updates will take\n // priority against ephemeral updates that have happend since them...\n Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => {\n Object.entries(diff).forEach(([diffKey, diffValue]) => {\n if (diffKey.startsWith(updateValue)) {\n delete diff[diffKey]\n }\n })\n\n diff[updateKey] = updateValue\n })\n\n this.queuedUpdates = []\n\n return diff\n }\n\n applyUpdates(object, updates) {\n for (let key in updates) {\n dataSet(object, key, updates[key])\n }\n\n return object\n }\n\n replayUpdate(snapshot, html) {\n let effects = { ...this.effects, html}\n\n this.mergeNewSnapshot(JSON.stringify(snapshot), effects)\n\n this.processEffects({ html })\n }\n\n /**\n * Here we'll take the new state and side effects from the\n * server and use them to update the existing data that\n * users interact with, triggering reactive effects.\n */\n processEffects(effects) {\n // This is for BC.\n trigger('effects', this, effects)\n\n trigger('effect', {\n component: this,\n effects,\n cleanup: i => this.addCleanup(i)\n })\n }\n\n get children() {\n let meta = this.snapshot.memo\n let childIds = Object.values(meta.children).map(i => i[1])\n\n return childIds.map(id => findComponent(id))\n }\n\n get parent() {\n return closestComponent(this.el.parentElement)\n }\n\n inscribeSnapshotAndEffectsOnElement() {\n let el = this.el\n\n el.setAttribute('wire:snapshot', this.snapshotEncoded)\n\n // We need to re-register any event listeners that were originally registered...\n let effects = this.originalEffects.listeners\n ? { listeners: this.originalEffects.listeners }\n : {}\n\n // We need to re-register any url/query-string bindings...\n if (this.originalEffects.url) {\n effects.url = this.originalEffects.url\n }\n\n // We need to re-register any scripts that were originally registered...\n if (this.originalEffects.scripts) {\n effects.scripts = this.originalEffects.scripts;\n }\n\n el.setAttribute('wire:effects', JSON.stringify(effects))\n }\n\n addCleanup(cleanup) {\n this.cleanups.push(cleanup)\n }\n\n cleanup() {\n delete this.el.__livewire\n\n while (this.cleanups.length > 0) {\n this.cleanups.pop()()\n }\n }\n}\n", "import { Component } from \"@/component\";\nimport { trigger } from \"@/hooks\";\n\nlet components = {}\n\nexport function initComponent(el) {\n let component = new Component(el)\n\n if (components[component.id]) throw 'Component already registered'\n\n let cleanup = (i) => component.addCleanup(i)\n\n trigger('component.init', { component, cleanup })\n\n components[component.id] = component\n\n return component\n}\n\nexport function destroyComponent(id) {\n let component = components[id]\n\n if (! component) return\n\n component.cleanup()\n\n delete components[id]\n}\n\nexport function hasComponent(id) {\n return !! components[id]\n}\n\nexport function findComponent(id) {\n let component = components[id]\n\n if (! component) throw 'Component not found: ' + id\n\n return component\n}\n\nexport function closestComponent(el, strict = true) {\n let closestRoot = Alpine.findClosest(el, i => i.__livewire)\n\n if (! closestRoot) {\n if (strict) throw \"Could not find Livewire component in DOM tree\"\n\n return\n }\n\n return closestRoot.__livewire\n}\n\nexport function componentsByName(name) {\n return Object.values(components).filter(component => {\n return name == component.name\n })\n}\n\nexport function getByName(name) {\n return componentsByName(name).map(i => i.$wire)\n}\n\nexport function find(id) {\n let component = components[id]\n\n return component && component.$wire\n}\n\nexport function first() {\n return Object.values(components)[0].$wire\n}\n\nexport function all() {\n return Object.values(components)\n}\n", "import { componentsByName } from \"@/store\"\n\nexport function dispatch(component, name, params) {\n dispatchEvent(component.el, name, params)\n}\n\nexport function dispatchGlobal(name, params) {\n dispatchEvent(window, name, params)\n}\n\nexport function dispatchSelf(component, name, params) {\n dispatchEvent(component.el, name, params, false)\n}\n\nexport function dispatchTo(componentName, name, params) {\n let targets = componentsByName(componentName)\n\n targets.forEach(target => {\n dispatchEvent(target.el, name, params, false)\n })\n}\n\nexport function listen(component, name, callback) {\n component.el.addEventListener(name, e => {\n callback(e.detail)\n })\n}\n\nexport function on(eventName, callback) {\n let handler = (e) => {\n // Implemented for backwards compatibility...\n if (! e.__livewire) return\n\n callback(e.detail)\n }\n\n window.addEventListener(eventName, handler)\n\n return () => {\n window.removeEventListener(eventName, handler)\n }\n}\n\nfunction dispatchEvent(target, name, params, bubbles = true) {\n let e = new CustomEvent(name, { bubbles, detail: params })\n\n e.__livewire = { name, params, receivedBy: [] }\n\n target.dispatchEvent(e)\n}\n", "import { on } from './hooks'\n\nlet customDirectiveNames = new Set\n\nexport function matchesForLivewireDirective(attributeName) {\n return attributeName.match(new RegExp('wire:'))\n}\n\nexport function extractDirective(el, name) {\n let [value, ...modifiers] = name.replace(new RegExp('wire:'), '').split('.')\n\n return new Directive(value, modifiers, name, el)\n}\n\nexport function directive(name, callback) {\n // Prevent the same directive from registering multiple initialization listeners...\n if (customDirectiveNames.has(name)) return\n\n customDirectiveNames.add(name)\n\n on('directive.init', ({ el, component, directive, cleanup }) => {\n if (directive.value === name) {\n callback({\n el, directive, component, $wire: component.$wire, cleanup\n })\n }\n })\n}\n\nexport function getDirectives(el) {\n return new DirectiveManager(el)\n}\n\nexport function customDirectiveHasBeenRegistered(name) {\n return customDirectiveNames.has(name)\n}\n\nclass DirectiveManager {\n constructor(el) {\n this.el = el\n this.directives = this.extractTypeModifiersAndValue()\n }\n\n all() {\n return this.directives\n }\n\n has(value) {\n return this.directives.map(directive => directive.value).includes(value)\n }\n\n missing(value) {\n return ! this.has(value)\n }\n\n get(value) {\n return this.directives.find(directive => directive.value === value)\n }\n\n extractTypeModifiersAndValue() {\n return Array.from(this.el.getAttributeNames()\n // Filter only the livewire directives.\n .filter(name => matchesForLivewireDirective(name))\n // Parse out the type, modifiers, and value from it.\n .map(name => extractDirective(this.el, name)))\n }\n}\n\nexport class Directive {\n constructor(value, modifiers, rawName, el) {\n this.rawName = this.raw = rawName\n this.el = el\n this.eventContext\n\n this.value = value\n this.modifiers = modifiers\n this.expression = this.el.getAttribute(this.rawName)\n }\n\n get method() {\n const { method } = this.parseOutMethodAndParams(this.expression)\n\n return method\n }\n\n get params() {\n const { params } = this.parseOutMethodAndParams(this.expression)\n\n return params\n }\n\n parseOutMethodAndParams(rawMethod) {\n let method = rawMethod\n let params = []\n const methodAndParamString = method.match(/(.*?)\\((.*)\\)/s)\n\n if (methodAndParamString) {\n method = methodAndParamString[1]\n\n // Use a function that returns it's arguments to parse and eval all params\n // This \"$event\" is for use inside the livewire event handler.\n let func = new Function('$event', `return (function () {\n for (var l=arguments.length, p=new Array(l), k=0; k<l; k++) {\n p[k] = arguments[k];\n }\n return [].concat(p);\n })(${methodAndParamString[2]})`)\n\n params = func(this.eventContext)\n }\n\n return { method, params }\n }\n}\n", "// packages/collapse/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"collapse\", collapse);\n collapse.inline = (el, { modifiers }) => {\n if (!modifiers.includes(\"min\"))\n return;\n el._x_doShow = () => {\n };\n el._x_doHide = () => {\n };\n };\n function collapse(el, { modifiers }) {\n let duration = modifierValue(modifiers, \"duration\", 250) / 1e3;\n let floor = modifierValue(modifiers, \"min\", 0);\n let fullyHide = !modifiers.includes(\"min\");\n if (!el._x_isShown)\n el.style.height = `${floor}px`;\n if (!el._x_isShown && fullyHide)\n el.hidden = true;\n if (!el._x_isShown)\n el.style.overflow = \"hidden\";\n let setFunction = (el2, styles) => {\n let revertFunction = Alpine.setStyles(el2, styles);\n return styles.height ? () => {\n } : revertFunction;\n };\n let transitionStyles = {\n transitionProperty: \"height\",\n transitionDuration: `${duration}s`,\n transitionTimingFunction: \"cubic-bezier(0.4, 0.0, 0.2, 1)\"\n };\n el._x_transition = {\n in(before = () => {\n }, after = () => {\n }) {\n if (fullyHide)\n el.hidden = false;\n if (fullyHide)\n el.style.display = null;\n let current = el.getBoundingClientRect().height;\n el.style.height = \"auto\";\n let full = el.getBoundingClientRect().height;\n if (current === full) {\n current = floor;\n }\n Alpine.transition(el, Alpine.setStyles, {\n during: transitionStyles,\n start: { height: current + \"px\" },\n end: { height: full + \"px\" }\n }, () => el._x_isShown = true, () => {\n if (Math.abs(el.getBoundingClientRect().height - full) < 1) {\n el.style.overflow = null;\n }\n });\n },\n out(before = () => {\n }, after = () => {\n }) {\n let full = el.getBoundingClientRect().height;\n Alpine.transition(el, setFunction, {\n during: transitionStyles,\n start: { height: full + \"px\" },\n end: { height: floor + \"px\" }\n }, () => el.style.overflow = \"hidden\", () => {\n el._x_isShown = false;\n if (el.style.height == `${floor}px` && fullyHide) {\n el.style.display = \"none\";\n el.hidden = true;\n }\n });\n }\n };\n }\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"duration\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"min\") {\n let match = rawValue.match(/([0-9]+)px/);\n if (match)\n return match[1];\n }\n return rawValue;\n}\n\n// packages/collapse/builds/module.js\nvar module_default = src_default;\nexport {\n src_default as collapse,\n module_default as default\n};\n", "// node_modules/tabbable/dist/index.esm.js\nvar candidateSelectors = [\"input\", \"select\", \"textarea\", \"a[href]\", \"button\", \"[tabindex]:not(slot)\", \"audio[controls]\", \"video[controls]\", '[contenteditable]:not([contenteditable=\"false\"])', \"details>summary:first-of-type\", \"details\"];\nvar candidateSelector = /* @__PURE__ */ candidateSelectors.join(\",\");\nvar NoElement = typeof Element === \"undefined\";\nvar matches = NoElement ? function() {\n} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) {\n return element.getRootNode();\n} : function(element) {\n return element.ownerDocument;\n};\nvar getCandidates = function getCandidates2(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\nvar getCandidatesIteratively = function getCandidatesIteratively2(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (element.tagName === \"SLOT\") {\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively2(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === \"function\" && options.getShadowRoot(element);\n var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);\n if (shadowRoot && validShadowRoot) {\n var _nestedCandidates = getCandidatesIteratively2(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\nvar getTabindex = function getTabindex2(node, isScope) {\n if (node.tabIndex < 0) {\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute(\"tabindex\"), 10))) {\n return 0;\n }\n }\n return node.tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables2(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput2(node) {\n return node.tagName === \"INPUT\";\n};\nvar isHiddenInput = function isHiddenInput2(node) {\n return isInput(node) && node.type === \"hidden\";\n};\nvar isDetailsWithSummary = function isDetailsWithSummary2(node) {\n var r = node.tagName === \"DETAILS\" && Array.prototype.slice.apply(node.children).some(function(child) {\n return child.tagName === \"SUMMARY\";\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio2(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio2(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios2(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== \"undefined\" && typeof window.CSS !== \"undefined\" && typeof window.CSS.escape === \"function\") {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\", err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio2(node) {\n return isInput(node) && node.type === \"radio\";\n};\nvar isNonTabbableRadio = function isNonTabbableRadio2(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\nvar isZeroArea = function isZeroArea2(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden2(node, _ref) {\n var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot;\n if (getComputedStyle(node).visibility === \"hidden\") {\n return true;\n }\n var isDirectSummary = matches.call(node, \"details>summary:first-of-type\");\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, \"details:not([open]) *\")) {\n return true;\n }\n var nodeRootHost = getRootNode(node).host;\n var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node);\n if (!displayCheck || displayCheck === \"full\") {\n if (typeof getShadowRoot === \"function\") {\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) {\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n node = rootNode.host;\n } else {\n node = parentElement;\n }\n }\n node = originalNode;\n }\n if (nodeIsAttached) {\n return !node.getClientRects().length;\n }\n } else if (displayCheck === \"non-zero-area\") {\n return isZeroArea(node);\n }\n return false;\n};\nvar isDisabledFromFieldset = function isDisabledFromFieldset2(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n while (parentNode) {\n if (parentNode.tagName === \"FIELDSET\" && parentNode.disabled) {\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n if (child.tagName === \"LEGEND\") {\n return matches.call(parentNode, \"fieldset[disabled] *\") ? true : !child.contains(node);\n }\n }\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable2(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute(\"tabindex\"), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n return false;\n};\nvar sortByOrder = function sortByOrder2(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function(item, i) {\n var isScope = !!item.scope;\n var element = isScope ? item.scope : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder2(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item,\n isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable2(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable2(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable2(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat(\"iframe\").join(\",\");\nvar isFocusable = function isFocusable2(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\n// node_modules/focus-trap/dist/focus-trap.esm.js\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar activeFocusTraps = function() {\n var trapQueue = [];\n return {\n activateTrap: function activateTrap(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n}();\nvar isSelectableInput = function isSelectableInput2(node) {\n return node.tagName && node.tagName.toLowerCase() === \"input\" && typeof node.select === \"function\";\n};\nvar isEscapeEvent = function isEscapeEvent2(e) {\n return e.key === \"Escape\" || e.key === \"Esc\" || e.keyCode === 27;\n};\nvar isTabEvent = function isTabEvent2(e) {\n return e.key === \"Tab\" || e.keyCode === 9;\n};\nvar delay = function delay2(fn) {\n return setTimeout(fn, 0);\n};\nvar findIndex = function findIndex2(arr, fn) {\n var idx = -1;\n arr.every(function(value, i) {\n if (fn(value)) {\n idx = i;\n return false;\n }\n return true;\n });\n return idx;\n};\nvar valueOrHandler = function valueOrHandler2(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === \"function\" ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget2(event) {\n return event.target.shadowRoot && typeof event.composedPath === \"function\" ? event.composedPath()[0] : event.target;\n};\nvar createFocusTrap = function createFocusTrap2(elements, userOptions) {\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: void 0\n };\n var trap;\n var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n var findContainerIndex = function findContainerIndex2(element) {\n return state.containerGroups.findIndex(function(_ref) {\n var container = _ref.container, tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n tabbableNodes.find(function(node) {\n return node === element;\n });\n });\n };\n var getNodeForOption = function getNodeForOption2(optionName) {\n var optionValue = config[optionName];\n if (typeof optionValue === \"function\") {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n optionValue = optionValue.apply(void 0, params);\n }\n if (optionValue === true) {\n optionValue = void 0;\n }\n if (!optionValue) {\n if (optionValue === void 0 || optionValue === false) {\n return optionValue;\n }\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue;\n if (typeof optionValue === \"string\") {\n node = doc.querySelector(optionValue);\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode2() {\n var node = getNodeForOption(\"initialFocus\");\n if (node === false) {\n return false;\n }\n if (node === void 0) {\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n node = firstTabbableNode || getNodeForOption(\"fallbackFocus\");\n }\n }\n if (!node) {\n throw new Error(\"Your focus-trap needs to have at least one focusable element\");\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes2() {\n state.containerGroups = state.containers.map(function(container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n var focusableNodes = focusable(container, config.tabbableOptions);\n return {\n container,\n tabbableNodes,\n focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n var nodeIdx = focusableNodes.findIndex(function(n) {\n return n === node;\n });\n if (nodeIdx < 0) {\n return void 0;\n }\n if (forward) {\n return focusableNodes.slice(nodeIdx + 1).find(function(n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n return focusableNodes.slice(0, nodeIdx).reverse().find(function(n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function(group) {\n return group.tabbableNodes.length > 0;\n });\n if (state.tabbableGroups.length <= 0 && !getNodeForOption(\"fallbackFocus\")) {\n throw new Error(\"Your focus-trap must have at least one container with at least one tabbable node in it at all times\");\n }\n };\n var tryFocus = function tryFocus2(node) {\n if (node === false) {\n return;\n }\n if (node === doc.activeElement) {\n return;\n }\n if (!node || !node.focus) {\n tryFocus2(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) {\n var node = getNodeForOption(\"setReturnFocus\", previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n };\n var checkPointerDown = function checkPointerDown2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n trap.deactivate({\n // if, on deactivation, we should return focus to the node originally-focused\n // when the trap was activated (or the configured `setReturnFocus` node),\n // then assume it's also OK to return focus to the outside node that was\n // just clicked, causing deactivation, as long as that node is focusable;\n // if it isn't focusable, then return focus to the original node focused\n // on activation (or the configured `setReturnFocus` node)\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked, whether it's focusable or not; by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node)\n returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions)\n });\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n };\n var checkFocusIn = function checkFocusIn2(e) {\n var target = getActualTarget(e);\n var targetContained = findContainerIndex(target) >= 0;\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n };\n var checkTab = function checkTab2(e) {\n var target = getActualTarget(e);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n var containerIndex = findContainerIndex(target);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0;\n if (containerIndex < 0) {\n if (e.shiftKey) {\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (e.shiftKey) {\n var startOfGroupIndex = findIndex(state.tabbableGroups, function(_ref2) {\n var firstTabbableNode = _ref2.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n }\n } else {\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function(_ref3) {\n var lastTabbableNode = _ref3.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = _destinationGroup.firstTabbableNode;\n }\n }\n } else {\n destinationNode = getNodeForOption(\"fallbackFocus\");\n }\n if (destinationNode) {\n e.preventDefault();\n tryFocus(destinationNode);\n }\n };\n var checkKey = function checkKey2(e) {\n if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) {\n e.preventDefault();\n trap.deactivate();\n return;\n }\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n };\n var checkClick = function checkClick2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n var addListeners = function addListeners2() {\n if (!state.active) {\n return;\n }\n activeFocusTraps.activateTrap(trap);\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function() {\n tryFocus(getInitialFocusNode());\n }) : tryFocus(getInitialFocusNode());\n doc.addEventListener(\"focusin\", checkFocusIn, true);\n doc.addEventListener(\"mousedown\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"touchstart\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"click\", checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkKey, {\n capture: true,\n passive: false\n });\n return trap;\n };\n var removeListeners = function removeListeners2() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener(\"focusin\", checkFocusIn, true);\n doc.removeEventListener(\"mousedown\", checkPointerDown, true);\n doc.removeEventListener(\"touchstart\", checkPointerDown, true);\n doc.removeEventListener(\"click\", checkClick, true);\n doc.removeEventListener(\"keydown\", checkKey, true);\n return trap;\n };\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, \"onActivate\");\n var onPostActivate = getOption(activateOptions, \"onPostActivate\");\n var checkCanFocusTrap = getOption(activateOptions, \"checkCanFocusTrap\");\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n if (onActivate) {\n onActivate();\n }\n var finishActivation = function finishActivation2() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n if (onPostActivate) {\n onPostActivate();\n }\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer);\n state.delayInitialFocusTimer = void 0;\n removeListeners();\n state.active = false;\n state.paused = false;\n activeFocusTraps.deactivateTrap(trap);\n var onDeactivate = getOption(options, \"onDeactivate\");\n var onPostDeactivate = getOption(options, \"onPostDeactivate\");\n var checkCanReturnFocus = getOption(options, \"checkCanReturnFocus\");\n var returnFocus = getOption(options, \"returnFocus\", \"returnFocusOnDeactivate\");\n if (onDeactivate) {\n onDeactivate();\n }\n var finishDeactivation = function finishDeactivation2() {\n delay(function() {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n if (onPostDeactivate) {\n onPostDeactivate();\n }\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause() {\n if (state.paused || !state.active) {\n return this;\n }\n state.paused = true;\n removeListeners();\n return this;\n },\n unpause: function unpause() {\n if (!state.paused || !state.active) {\n return this;\n }\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function(element) {\n return typeof element === \"string\" ? doc.querySelector(element) : element;\n });\n if (state.active) {\n updateTabbableNodes();\n }\n return this;\n }\n };\n trap.updateContainerElements(elements);\n return trap;\n};\n\n// packages/focus/src/index.js\nfunction src_default(Alpine) {\n let lastFocused;\n let currentFocused;\n window.addEventListener(\"focusin\", () => {\n lastFocused = currentFocused;\n currentFocused = document.activeElement;\n });\n Alpine.magic(\"focus\", (el) => {\n let within = el;\n return {\n __noscroll: false,\n __wrapAround: false,\n within(el2) {\n within = el2;\n return this;\n },\n withoutScrolling() {\n this.__noscroll = true;\n return this;\n },\n noscroll() {\n this.__noscroll = true;\n return this;\n },\n withWrapAround() {\n this.__wrapAround = true;\n return this;\n },\n wrap() {\n return this.withWrapAround();\n },\n focusable(el2) {\n return isFocusable(el2);\n },\n previouslyFocused() {\n return lastFocused;\n },\n lastFocused() {\n return lastFocused;\n },\n focused() {\n return currentFocused;\n },\n focusables() {\n if (Array.isArray(within))\n return within;\n return focusable(within, { displayCheck: \"none\" });\n },\n all() {\n return this.focusables();\n },\n isFirst(el2) {\n let els = this.all();\n return els[0] && els[0].isSameNode(el2);\n },\n isLast(el2) {\n let els = this.all();\n return els.length && els.slice(-1)[0].isSameNode(el2);\n },\n getFirst() {\n return this.all()[0];\n },\n getLast() {\n return this.all().slice(-1)[0];\n },\n getNext() {\n let list = this.all();\n let current = document.activeElement;\n if (list.indexOf(current) === -1)\n return;\n if (this.__wrapAround && list.indexOf(current) === list.length - 1) {\n return list[0];\n }\n return list[list.indexOf(current) + 1];\n },\n getPrevious() {\n let list = this.all();\n let current = document.activeElement;\n if (list.indexOf(current) === -1)\n return;\n if (this.__wrapAround && list.indexOf(current) === 0) {\n return list.slice(-1)[0];\n }\n return list[list.indexOf(current) - 1];\n },\n first() {\n this.focus(this.getFirst());\n },\n last() {\n this.focus(this.getLast());\n },\n next() {\n this.focus(this.getNext());\n },\n previous() {\n this.focus(this.getPrevious());\n },\n prev() {\n return this.previous();\n },\n focus(el2) {\n if (!el2)\n return;\n setTimeout(() => {\n if (!el2.hasAttribute(\"tabindex\"))\n el2.setAttribute(\"tabindex\", \"0\");\n el2.focus({ preventScroll: this.__noscroll });\n });\n }\n };\n });\n Alpine.directive(\"trap\", Alpine.skipDuringClone(\n (el, { expression, modifiers }, { effect, evaluateLater, cleanup }) => {\n let evaluator = evaluateLater(expression);\n let oldValue = false;\n let options = {\n escapeDeactivates: false,\n allowOutsideClick: true,\n fallbackFocus: () => el\n };\n if (modifiers.includes(\"noautofocus\")) {\n options.initialFocus = false;\n } else {\n let autofocusEl = el.querySelector(\"[autofocus]\");\n if (autofocusEl)\n options.initialFocus = autofocusEl;\n }\n let trap = createFocusTrap(el, options);\n let undoInert = () => {\n };\n let undoDisableScrolling = () => {\n };\n const releaseFocus = () => {\n undoInert();\n undoInert = () => {\n };\n undoDisableScrolling();\n undoDisableScrolling = () => {\n };\n trap.deactivate({\n returnFocus: !modifiers.includes(\"noreturn\")\n });\n };\n effect(() => evaluator((value) => {\n if (oldValue === value)\n return;\n if (value && !oldValue) {\n if (modifiers.includes(\"noscroll\"))\n undoDisableScrolling = disableScrolling();\n if (modifiers.includes(\"inert\"))\n undoInert = setInert(el);\n setTimeout(() => {\n trap.activate();\n }, 15);\n }\n if (!value && oldValue) {\n releaseFocus();\n }\n oldValue = !!value;\n }));\n cleanup(releaseFocus);\n },\n // When cloning, we only want to add aria-hidden attributes to the\n // DOM and not try to actually trap, as trapping can mess with the\n // live DOM and isn't just isolated to the cloned DOM.\n (el, { expression, modifiers }, { evaluate }) => {\n if (modifiers.includes(\"inert\") && evaluate(expression))\n setInert(el);\n }\n ));\n}\nfunction setInert(el) {\n let undos = [];\n crawlSiblingsUp(el, (sibling) => {\n let cache = sibling.hasAttribute(\"aria-hidden\");\n sibling.setAttribute(\"aria-hidden\", \"true\");\n undos.push(() => cache || sibling.removeAttribute(\"aria-hidden\"));\n });\n return () => {\n while (undos.length)\n undos.pop()();\n };\n}\nfunction crawlSiblingsUp(el, callback) {\n if (el.isSameNode(document.body) || !el.parentNode)\n return;\n Array.from(el.parentNode.children).forEach((sibling) => {\n if (sibling.isSameNode(el)) {\n crawlSiblingsUp(el.parentNode, callback);\n } else {\n callback(sibling);\n }\n });\n}\nfunction disableScrolling() {\n let overflow = document.documentElement.style.overflow;\n let paddingRight = document.documentElement.style.paddingRight;\n let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n document.documentElement.style.overflow = \"hidden\";\n document.documentElement.style.paddingRight = `${scrollbarWidth}px`;\n return () => {\n document.documentElement.style.overflow = overflow;\n document.documentElement.style.paddingRight = paddingRight;\n };\n}\n\n// packages/focus/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as focus\n};\n/*! Bundled license information:\n\ntabbable/dist/index.esm.js:\n (*!\n * tabbable 5.3.3\n * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n *)\n\nfocus-trap/dist/focus-trap.esm.js:\n (*!\n * focus-trap 6.9.4\n * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n *)\n*/\n", "// packages/persist/src/index.js\nfunction src_default(Alpine) {\n let persist = () => {\n let alias;\n let storage;\n try {\n storage = localStorage;\n } catch (e) {\n console.error(e);\n console.warn(\"Alpine: $persist is using temporary storage since localStorage is unavailable.\");\n let dummy = /* @__PURE__ */ new Map();\n storage = {\n getItem: dummy.get.bind(dummy),\n setItem: dummy.set.bind(dummy)\n };\n }\n return Alpine.interceptor((initialValue, getter, setter, path, key) => {\n let lookup = alias || `_x_${path}`;\n let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue;\n setter(initial);\n Alpine.effect(() => {\n let value = getter();\n storageSet(lookup, value, storage);\n setter(value);\n });\n return initial;\n }, (func) => {\n func.as = (key) => {\n alias = key;\n return func;\n }, func.using = (target) => {\n storage = target;\n return func;\n };\n });\n };\n Object.defineProperty(Alpine, \"$persist\", { get: () => persist() });\n Alpine.magic(\"persist\", persist);\n Alpine.persist = (key, { get, set }, storage = localStorage) => {\n let initial = storageHas(key, storage) ? storageGet(key, storage) : get();\n set(initial);\n Alpine.effect(() => {\n let value = get();\n storageSet(key, value, storage);\n set(value);\n });\n };\n}\nfunction storageHas(key, storage) {\n return storage.getItem(key) !== null;\n}\nfunction storageGet(key, storage) {\n let value = storage.getItem(key, storage);\n if (value === void 0)\n return;\n return JSON.parse(value);\n}\nfunction storageSet(key, value, storage) {\n storage.setItem(key, JSON.stringify(value));\n}\n\n// packages/persist/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as persist\n};\n", "// packages/intersect/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"intersect\", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {\n let evaluate = evaluateLater(expression);\n let options = {\n rootMargin: getRootMargin(modifiers),\n threshold: getThreshold(modifiers)\n };\n let observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting === (value === \"leave\"))\n return;\n evaluate();\n modifiers.includes(\"once\") && observer.disconnect();\n });\n }, options);\n observer.observe(el);\n cleanup(() => {\n observer.disconnect();\n });\n }));\n}\nfunction getThreshold(modifiers) {\n if (modifiers.includes(\"full\"))\n return 0.99;\n if (modifiers.includes(\"half\"))\n return 0.5;\n if (!modifiers.includes(\"threshold\"))\n return 0;\n let threshold = modifiers[modifiers.indexOf(\"threshold\") + 1];\n if (threshold === \"100\")\n return 1;\n if (threshold === \"0\")\n return 0;\n return Number(`.${threshold}`);\n}\nfunction getLengthValue(rawValue) {\n let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);\n return match ? match[1] + (match[2] || \"px\") : void 0;\n}\nfunction getRootMargin(modifiers) {\n const key = \"margin\";\n const fallback = \"0px 0px 0px 0px\";\n const index = modifiers.indexOf(key);\n if (index === -1)\n return fallback;\n let values = [];\n for (let i = 1; i < 5; i++) {\n values.push(getLengthValue(modifiers[index + i] || \"\"));\n }\n values = values.filter((v) => v !== void 0);\n return values.length ? values.join(\" \").trim() : fallback;\n}\n\n// packages/intersect/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as intersect\n};\n", "// packages/resize/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"resize\", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {\n let evaluator = evaluateLater(expression);\n let evaluate = (width, height) => {\n evaluator(() => {\n }, { scope: { \"$width\": width, \"$height\": height } });\n };\n let off = modifiers.includes(\"document\") ? onDocumentResize(evaluate) : onElResize(el, evaluate);\n cleanup(() => off());\n }));\n}\nfunction onElResize(el, callback) {\n let observer = new ResizeObserver((entries) => {\n let [width, height] = dimensions(entries);\n callback(width, height);\n });\n observer.observe(el);\n return () => observer.disconnect();\n}\nvar documentResizeObserver;\nvar documentResizeObserverCallbacks = /* @__PURE__ */ new Set();\nfunction onDocumentResize(callback) {\n documentResizeObserverCallbacks.add(callback);\n if (!documentResizeObserver) {\n documentResizeObserver = new ResizeObserver((entries) => {\n let [width, height] = dimensions(entries);\n documentResizeObserverCallbacks.forEach((i) => i(width, height));\n });\n documentResizeObserver.observe(document.documentElement);\n }\n return () => {\n documentResizeObserverCallbacks.delete(callback);\n };\n}\nfunction dimensions(entries) {\n let width, height;\n for (let entry of entries) {\n width = entry.borderBoxSize[0].inlineSize;\n height = entry.borderBoxSize[0].blockSize;\n }\n return [width, height];\n}\n\n// packages/resize/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as resize\n};\n", "// node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\nvar min = Math.min;\nvar max = Math.max;\nvar round = Math.round;\nvar floor = Math.floor;\nvar createCoords = (v) => ({\n x: v,\n y: v\n});\nvar oppositeSideMap = {\n left: \"right\",\n right: \"left\",\n bottom: \"top\",\n top: \"bottom\"\n};\nvar oppositeAlignmentMap = {\n start: \"end\",\n end: \"start\"\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === \"function\" ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split(\"-\")[0];\n}\nfunction getAlignment(placement) {\n return placement.split(\"-\")[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === \"x\" ? \"y\" : \"x\";\n}\nfunction getAxisLength(axis) {\n return axis === \"y\" ? \"height\" : \"width\";\n}\nfunction getSideAxis(placement) {\n return [\"top\", \"bottom\"].includes(getSide(placement)) ? \"y\" : \"x\";\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === \"x\" ? alignment === (rtl ? \"end\" : \"start\") ? \"right\" : \"left\" : alignment === \"start\" ? \"bottom\" : \"top\";\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = [\"left\", \"right\"];\n const rl = [\"right\", \"left\"];\n const tb = [\"top\", \"bottom\"];\n const bt = [\"bottom\", \"top\"];\n switch (side) {\n case \"top\":\n case \"bottom\":\n if (rtl)\n return isStart ? rl : lr;\n return isStart ? lr : rl;\n case \"left\":\n case \"right\":\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === \"start\", rtl);\n if (alignment) {\n list = list.map((side) => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== \"number\" ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n// node_modules/@floating-ui/core/dist/floating-ui.core.mjs\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === \"y\";\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case \"top\":\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case \"bottom\":\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case \"right\":\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case \"left\":\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case \"start\":\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case \"end\":\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\nvar computePosition = async (reference, floating, config) => {\n const {\n placement = \"bottom\",\n strategy = \"absolute\",\n middleware = [],\n platform: platform2\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));\n let rects = await platform2.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platform2,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === \"object\") {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform2.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform: platform2,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = \"clippingAncestors\",\n rootBoundary = \"viewport\",\n elementContext = \"floating\",\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === \"floating\" ? \"reference\" : \"floating\";\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform2.getClippingRect({\n element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === \"floating\" ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));\n const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\nvar flip = function(options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: \"flip\",\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform: platform2,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = \"bestFit\",\n fallbackAxisSideDirection = \"none\",\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== \"none\") {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements2 = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides2 = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides2[0]], overflow[sides2[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n if (!overflows.every((side2) => side2 <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements2[nextIndex];\n if (nextPlacement) {\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case \"bestFit\": {\n var _overflowsData$map$so;\n const placement2 = (_overflowsData$map$so = overflowsData.map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement2) {\n resetPlacement = placement2;\n }\n break;\n }\n case \"initialPlacement\":\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform: platform2,\n elements\n } = state;\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === \"y\";\n const mainAxisMulti = [\"left\", \"top\"].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === \"number\" ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === \"number\") {\n crossAxis = alignment === \"end\" ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\nvar offset = function(options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: \"offset\",\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\nvar shift = function(options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: \"shift\",\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: (_ref) => {\n let {\n x: x2,\n y: y2\n } = _ref;\n return {\n x: x2,\n y: y2\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === \"y\" ? \"top\" : \"left\";\n const maxSide = mainAxis === \"y\" ? \"bottom\" : \"right\";\n const min2 = mainAxisCoord + overflow[minSide];\n const max2 = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min2, mainAxisCoord, max2);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === \"y\" ? \"top\" : \"left\";\n const maxSide = crossAxis === \"y\" ? \"bottom\" : \"right\";\n const min2 = crossAxisCoord + overflow[minSide];\n const max2 = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min2, crossAxisCoord, max2);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n\n// node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || \"\").toLowerCase();\n }\n return \"#document\";\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (typeof ShadowRoot === \"undefined\") {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && ![\"inline\", \"contents\"].includes(display);\n}\nfunction isTableElement(element) {\n return [\"table\", \"td\", \"th\"].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n return css.transform !== \"none\" || css.perspective !== \"none\" || (css.containerType ? css.containerType !== \"normal\" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== \"none\" : false) || !webkit && (css.filter ? css.filter !== \"none\" : false) || [\"transform\", \"perspective\", \"filter\"].some((value) => (css.willChange || \"\").includes(value)) || [\"paint\", \"layout\", \"strict\", \"content\"].some((value) => (css.contain || \"\").includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === \"undefined\" || !CSS.supports)\n return false;\n return CSS.supports(\"-webkit-backdrop-filter\", \"none\");\n}\nfunction isLastTraversableNode(node) {\n return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === \"html\") {\n return node;\n }\n const result = (\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot || // DOM Element detected.\n node.parentNode || // ShadowRoot detected.\n isShadowRoot(node) && node.host || // Fallback.\n getDocumentElement(node)\n );\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\n// node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\nvar noOffsets = /* @__PURE__ */ createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== \"fixed\") {\n if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\nfunction getWindowScrollBarX(element) {\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === \"rtl\") {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === \"fixed\") {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === \"fixed\");\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === \"viewport\") {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === \"document\") {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === \"fixed\" || hasFixedPositionAncestor(parentNode, stopNode);\n}\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== \"body\");\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === \"fixed\";\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === \"fixed\") {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === \"static\" && !!currentContainingBlockComputedStyle && [\"absolute\", \"fixed\"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n result = result.filter((ancestor) => ancestor !== currentNode);\n } else {\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === \"clippingAncestors\" ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === \"fixed\";\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === \"fixed\") {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getOffsetParent(element, polyfill) {\n const window2 = getWindow(element);\n if (!isHTMLElement(element)) {\n return window2;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === \"static\") {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === \"html\" || getNodeName(offsetParent) === \"body\" && getComputedStyle(offsetParent).position === \"static\" && !isContainingBlock(offsetParent))) {\n return window2;\n }\n return offsetParent || getContainingBlock(element) || window2;\n}\nvar getElementRects = async function(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...await getDimensionsFn(floating)\n }\n };\n};\nfunction isRTL(element) {\n return getComputedStyle(element).direction === \"rtl\";\n}\nvar platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === \"function\",\n layoutShift = typeof IntersectionObserver === \"function\",\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];\n ancestors.forEach((ancestor) => {\n ancestorScroll && ancestor.addEventListener(\"scroll\", update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener(\"resize\", update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver((_ref) => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach((ancestor) => {\n ancestorScroll && ancestor.removeEventListener(\"scroll\", update);\n ancestorResize && ancestor.removeEventListener(\"resize\", update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\nvar computePosition2 = (reference, floating, options) => {\n const cache = /* @__PURE__ */ new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\n// packages/anchor/src/index.js\nfunction src_default(Alpine) {\n Alpine.magic(\"anchor\", (el) => {\n if (!el._x_anchor)\n throw \"Alpine: No x-anchor directive found on element using $anchor...\";\n return el._x_anchor;\n });\n Alpine.interceptClone((from, to) => {\n if (from && from._x_anchor && !to._x_anchor) {\n to._x_anchor = from._x_anchor;\n }\n });\n Alpine.directive(\"anchor\", Alpine.skipDuringClone(\n (el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => {\n let { placement, offsetValue, unstyled } = getOptions(modifiers);\n el._x_anchor = Alpine.reactive({ x: 0, y: 0 });\n let reference = evaluate2(expression);\n if (!reference)\n throw \"Alpine: no element provided to x-anchor...\";\n let compute = () => {\n let previousValue;\n computePosition2(reference, el, {\n placement,\n middleware: [flip(), shift({ padding: 5 }), offset(offsetValue)]\n }).then(({ x, y }) => {\n unstyled || setStyles(el, x, y);\n if (JSON.stringify({ x, y }) !== previousValue) {\n el._x_anchor.x = x;\n el._x_anchor.y = y;\n }\n previousValue = JSON.stringify({ x, y });\n });\n };\n let release = autoUpdate(reference, el, () => compute());\n cleanup(() => release());\n },\n // When cloning (or \"morphing\"), we will graft the style and position data from the live tree...\n (el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => {\n let { placement, offsetValue, unstyled } = getOptions(modifiers);\n if (el._x_anchor) {\n unstyled || setStyles(el, el._x_anchor.x, el._x_anchor.y);\n }\n }\n ));\n}\nfunction setStyles(el, x, y) {\n Object.assign(el.style, {\n left: x + \"px\",\n top: y + \"px\",\n position: \"absolute\"\n });\n}\nfunction getOptions(modifiers) {\n let positions = [\"top\", \"top-start\", \"top-end\", \"right\", \"right-start\", \"right-end\", \"bottom\", \"bottom-start\", \"bottom-end\", \"left\", \"left-start\", \"left-end\"];\n let placement = positions.find((i) => modifiers.includes(i));\n let offsetValue = 0;\n if (modifiers.includes(\"offset\")) {\n let idx = modifiers.findIndex((i) => i === \"offset\");\n offsetValue = modifiers[idx + 1] !== void 0 ? Number(modifiers[idx + 1]) : offsetValue;\n }\n let unstyled = modifiers.includes(\"no-style\");\n return { placement, offsetValue, unstyled };\n}\n\n// packages/anchor/builds/module.js\nvar module_default = src_default;\nexport {\n src_default as anchor,\n module_default as default\n};\n", "\nclass Snapshot {\n constructor(url, html) {\n this.url = url\n this.html = html\n }\n}\n\nlet snapshotCache = {\n currentKey: null,\n currentUrl: null,\n keys: [],\n lookup: {},\n\n limit: 10,\n\n has(location) {\n return this.lookup[location] !== undefined\n },\n\n retrieve(location) {\n let snapshot = this.lookup[location]\n\n if (snapshot === undefined)\n throw (\n 'No back button cache found for current location: ' +\n location\n )\n\n return snapshot\n },\n\n replace(key, snapshot) {\n if (this.has(key)) {\n this.lookup[key] = snapshot\n } else {\n this.push(key, snapshot)\n }\n },\n\n push(key, snapshot) {\n this.lookup[key] = snapshot\n\n let index = this.keys.indexOf(key)\n\n if (index > -1) this.keys.splice(index, 1)\n\n this.keys.unshift(key)\n\n this.trim()\n },\n\n trim() {\n for (let key of this.keys.splice(this.limit)) {\n delete this.lookup[key]\n }\n }\n}\n\nexport function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() {\n // Create a history state entry for the initial page load.\n // (This is so later hitting back can restore this page).\n let url = new URL(window.location.href, document.baseURI)\n\n replaceUrl(url, document.documentElement.outerHTML)\n}\n\nexport function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(key, url) {\n let html = document.documentElement.outerHTML\n\n snapshotCache.replace(key, new Snapshot(url, html))\n}\n\nexport function whenTheBackOrForwardButtonIsClicked(\n registerFallback,\n handleHtml\n) {\n let fallback\n\n registerFallback(i => (fallback = i))\n\n window.addEventListener('popstate', e => {\n let state = e.state || {}\n\n let alpine = state.alpine || {}\n\n // If state is an empty object, then the popstate has probably been triggered\n // by anchor tags `#my-heading`, so we don't want to handle them.\n if (Object.keys(state).length === 0) return\n\n if (! alpine.snapshotIdx) return\n\n if (snapshotCache.has(alpine.snapshotIdx)) {\n let snapshot = snapshotCache.retrieve(alpine.snapshotIdx)\n\n handleHtml(snapshot.html, snapshot.url, snapshotCache.currentUrl, snapshotCache.currentKey)\n } else {\n fallback(alpine.url)\n }\n })\n}\n\nexport function updateUrlAndStoreLatestHtmlForFutureBackButtons(\n html,\n destination\n) {\n pushUrl(destination, html)\n}\n\nexport function pushUrl(url, html) {\n updateUrl('pushState', url, html)\n}\n\nexport function replaceUrl(url, html) {\n updateUrl('replaceState', url, html)\n}\n\nfunction updateUrl(method, url, html) {\n let key = url.toString() + '-' + Math.random()\n\n method === 'pushState'\n ? snapshotCache.push(key, new Snapshot(url, html))\n : snapshotCache.replace(key = (snapshotCache.currentKey ?? key), new Snapshot(url, html))\n\n let state = history.state || {}\n\n if (!state.alpine) state.alpine = {}\n\n state.alpine.snapshotIdx = key\n state.alpine.url = url.toString()\n\n try {\n // 640k character limit:\n history[method](state, JSON.stringify(document.title), url)\n\n snapshotCache.currentKey = key\n snapshotCache.currentUrl = url\n } catch (error) {\n if (error instanceof DOMException && error.name === 'SecurityError') {\n console.error(\n \"Livewire: You can't use wire:navigate with a link to a different root domain: \" +\n url\n )\n }\n\n console.error(error)\n }\n}\n", "\nexport function whenThisLinkIsPressed(el, callback) {\n let isProgrammaticClick = e => ! e.isTrusted\n let isNotPlainLeftClick = e => (e.which > 1) || (e.altKey) || (e.ctrlKey) || (e.metaKey) || (e.shiftKey)\n let isNotPlainEnterKey = (e) => (e.which !== 13) || (e.altKey) || (e.ctrlKey) || (e.metaKey) || (e.shiftKey)\n\n el.addEventListener('click', e => {\n // This allows programmatic clicking of links via: `$0.click()`...\n if (isProgrammaticClick(e)) {\n e.preventDefault()\n\n callback(whenReleased => whenReleased())\n\n return\n }\n\n // This allows cmd+click and such to still work as expected...\n if (isNotPlainLeftClick(e)) return;\n\n // If it's a plain left click, we want to prevent \"click\" and let \"mouseup\" do its thing...\n e.preventDefault()\n })\n\n el.addEventListener('mousedown', e => {\n // We only care about left clicks for wire:navigate...\n if (isNotPlainLeftClick(e)) return;\n\n e.preventDefault()\n\n callback((whenReleased) => {\n let handler = e => {\n e.preventDefault()\n\n whenReleased()\n\n el.removeEventListener('mouseup', handler)\n }\n\n el.addEventListener('mouseup', handler)\n })\n })\n\n el.addEventListener(\"keydown\", e => {\n // We only care about the enter key...\n if (isNotPlainEnterKey(e)) return;\n\n e.preventDefault()\n\n callback(whenReleased => whenReleased())\n })\n}\n\nexport function whenThisLinkIsHoveredFor(el, ms = 60, callback) {\n el.addEventListener('mouseenter', e => {\n let timeout = setTimeout(() => {\n callback(e)\n }, ms)\n\n let handler = () => {\n clearTimeout(timeout)\n el.removeEventListener('mouseleave', handler)\n }\n\n el.addEventListener('mouseleave', handler)\n })\n}\n\nexport function extractDestinationFromLink(linkEl) {\n return createUrlObjectFromString(linkEl.getAttribute('href'))\n}\n\nexport function createUrlObjectFromString(urlString) {\n return urlString !== null && new URL(urlString, document.baseURI)\n}\n\nexport function getUriStringFromUrlObject(urlObject) {\n return urlObject.pathname + urlObject.search + urlObject.hash\n}\n", "import { trigger } from \"@/hooks\"\nimport { createUrlObjectFromString, getUriStringFromUrlObject } from \"./links\"\n\nexport function fetchHtml(destination, callback) {\n let uri = getUriStringFromUrlObject(destination)\n\n performFetch(uri, (html, finalDestination) => {\n callback(html, finalDestination)\n })\n}\n\nexport function performFetch(uri, callback) {\n let options = {\n headers: {\n 'X-Livewire-Navigate': ''\n }\n }\n\n trigger('navigate.request', {\n url: uri,\n options,\n })\n\n let finalDestination\n\n fetch(uri, options).then(response => {\n let destination = createUrlObjectFromString(uri)\n finalDestination = createUrlObjectFromString(response.url)\n\n // If there was no redirect triggered by the URL that was fetched...\n if ((destination.pathname + destination.search) === (finalDestination.pathname + finalDestination.search)) {\n // Then let's cary over any \"hash\" entries on the URL.\n // We have to do this because hashes aren't sent to\n // the server by \"fetch\", so it needs to get added\n finalDestination.hash = destination.hash\n }\n\n return response.text()\n }).then(html => {\n callback(html, finalDestination)\n });\n}\n", "import { performFetch } from \"@/plugins/navigate/fetch\";\nimport { getUriStringFromUrlObject } from \"./links\";\n\n// Warning: this could cause some memory leaks\nlet prefetches = {}\n\nexport function prefetchHtml(destination, callback) {\n let uri = getUriStringFromUrlObject(destination)\n\n if (prefetches[uri]) return\n\n prefetches[uri] = { finished: false, html: null, whenFinished: () => {} }\n\n performFetch(uri, (html, routedUri) => {\n callback(html, routedUri)\n })\n}\n\nexport function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination) {\n let state = prefetches[getUriStringFromUrlObject(destination)]\n state.html = html\n state.finished = true\n state.finalDestination = finalDestination\n state.whenFinished()\n}\n\nexport function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) {\n let uri = getUriStringFromUrlObject(destination)\n\n if (! prefetches[uri]) return ifNoPrefetchExists()\n\n if (prefetches[uri].finished) {\n let html = prefetches[uri].html\n let finalDestination = prefetches[uri].finalDestination\n\n delete prefetches[uri]\n\n return receive(html, finalDestination)\n } else {\n prefetches[uri].whenFinished = () => {\n let html = prefetches[uri].html\n let finalDestination = prefetches[uri].finalDestination\n\n delete prefetches[uri]\n\n receive(html, finalDestination)\n }\n }\n}\n\n", "import Alpine from \"alpinejs\"\n\nexport function packUpPersistedTeleports(persistedEl) {\n // Persisted elements get removed from the DOM and then re-added later. We need to do the same\n // with any `x-teleport`ed elements...\n Alpine.mutateDom(() => {\n persistedEl.querySelectorAll('[data-teleport-template]').forEach(i => i._x_teleport.remove())\n })\n}\n\nexport function removeAnyLeftOverStaleTeleportTargets(body) {\n // We need to remove any left-over teleported elements form the page\n // as they are stale and will be re-initialized when Alpine boots up on this page...\n Alpine.mutateDom(() => {\n body.querySelectorAll('[data-teleport-target]').forEach(i => i.remove())\n })\n}\n\nexport function unPackPersistedTeleports(persistedEl) {\n // Before we put back any persisted elements, we're going to\n // find any \"x-teleports\" and put their targets back on the page...\n Alpine.walk(persistedEl, (el, skip) => {\n if (! el._x_teleport) return;\n\n el._x_teleportPutBack()\n\n skip()\n })\n}\n\nexport function isTeleportTarget(el) {\n return el.hasAttribute('data-teleport-target')\n}\n", "\nexport function storeScrollInformationInHtmlBeforeNavigatingAway() {\n document.body.setAttribute('data-scroll-x', document.body.scrollLeft)\n document.body.setAttribute('data-scroll-y', document.body.scrollTop)\n\n document.querySelectorAll(['[x-navigate\\\\:scroll]', '[wire\\\\:scroll]']).forEach(el => {\n el.setAttribute('data-scroll-x', el.scrollLeft)\n el.setAttribute('data-scroll-y', el.scrollTop)\n })\n}\n\nexport function restoreScrollPositionOrScrollToTop() {\n let scroll = el => {\n if (! el.hasAttribute('data-scroll-x')) {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' })\n } else {\n el.scrollTo({\n top: Number(el.getAttribute('data-scroll-y')),\n left: Number(el.getAttribute('data-scroll-x')),\n behavior: 'instant',\n })\n el.removeAttribute('data-scroll-x')\n el.removeAttribute('data-scroll-y')\n }\n }\n\n queueMicrotask(() => {\n scroll(document.body)\n\n document.querySelectorAll(['[x-navigate\\\\:scroll]', '[wire\\\\:scroll]']).forEach(scroll)\n })\n}\n", "import Alpine from 'alpinejs'\n\nlet els = {}\n\nexport function storePersistantElementsForLater(callback) {\n els = {}\n\n document.querySelectorAll('[x-persist]').forEach(i => {\n els[i.getAttribute('x-persist')] = i\n\n callback(i)\n\n Alpine.mutateDom(() => {\n i.remove()\n })\n })\n}\n\nexport function putPersistantElementsBack(callback) {\n let usedPersists = []\n\n document.querySelectorAll('[x-persist]').forEach(i => {\n let old = els[i.getAttribute('x-persist')]\n\n // There might be a brand new x-persist element...\n if (! old) return\n\n usedPersists.push(i.getAttribute('x-persist'))\n\n old._x_wasPersisted = true\n\n callback(old, i)\n\n Alpine.mutateDom(() => {\n i.replaceWith(old)\n })\n })\n\n Object.entries(els).forEach(([key, el]) => {\n if (usedPersists.includes(key)) return\n\n // Destory the un-used persist DOM trees before releasing them...\n Alpine.destroyTree(el)\n })\n\n // Release unused persists for garbage collection...\n els = {}\n}\n\nexport function isPersistedElement(el) {\n return el.hasAttribute('x-persist')\n}\n", "import NProgress from 'nprogress'\nimport { getNonce } from '@/utils'\n\nNProgress.configure({\n minimum: 0.1,\n trickleSpeed: 200,\n showSpinner: false,\n parent: 'body',\n})\n\ninjectStyles()\n\nlet inProgress = false\n\nexport function showAndStartProgressBar() {\n inProgress = true\n\n // Only show progress bar if it's been a little bit...\n setTimeout(() => {\n if (! inProgress) return\n\n NProgress.start()\n }, 150)\n}\n\nexport function finishAndHideProgressBar() {\n inProgress = false\n\n NProgress.done()\n}\n\nexport function removeAnyLeftOverStaleProgressBars() {\n NProgress.remove()\n}\n\nfunction injectStyles() {\n let style = document.createElement('style')\n\n style.innerHTML = `/* Make clicks pass-through */\n\n #nprogress {\n pointer-events: none;\n }\n\n #nprogress .bar {\n background: var(--livewire-progress-bar-color, #29d);\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n }\n\n /* Fancy blur effect */\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px var(--livewire-progress-bar-color, #29d), 0 0 5px var(--livewire-progress-bar-color, #29d);\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n\n /* Remove these to get rid of the spinner */\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n\n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: var(--livewire-progress-bar-color, #29d);\n border-left-color: var(--livewire-progress-bar-color, #29d);\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n\n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n\n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n\n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `\n\n let nonce = getNonce()\n\n if (nonce) style.nonce = nonce\n\n document.head.appendChild(style)\n}\n", "let oldBodyScriptTagHashes = []\n\nlet attributesExemptFromScriptTagHashing = [\n 'data-csrf',\n 'aria-hidden',\n]\n\nexport function swapCurrentPageWithNewHtml(html, andThen) {\n let newDocument = (new DOMParser()).parseFromString(html, \"text/html\")\n let newBody = document.adoptNode(newDocument.body)\n let newHead = document.adoptNode(newDocument.head)\n\n oldBodyScriptTagHashes = oldBodyScriptTagHashes.concat(Array.from(document.body.querySelectorAll('script')).map(i => {\n return simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing))\n }))\n\n let afterRemoteScriptsHaveLoaded = () => {}\n\n mergeNewHead(newHead).finally(() => {\n afterRemoteScriptsHaveLoaded()\n })\n\n prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes)\n\n let oldBody = document.body\n\n document.body.replaceWith(newBody)\n\n Alpine.destroyTree(oldBody)\n\n andThen(i => afterRemoteScriptsHaveLoaded = i)\n}\n\nfunction prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes) {\n newBody.querySelectorAll('script').forEach(i => {\n // We don't want to re-run script tags marked as \"data-navigate-once\"...\n if (i.hasAttribute('data-navigate-once')) {\n // However, if they didn't exist on the previous page, we do.\n // Therefore, we'll check the \"old body script hashes\" to\n // see if it was already there before skipping it...\n\n let hash = simpleHash(\n ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)\n )\n\n if (oldBodyScriptTagHashes.includes(hash)) return\n }\n\n i.replaceWith(cloneScriptTag(i))\n })\n}\n\nfunction mergeNewHead(newHead) {\n let children = Array.from(document.head.children)\n let headChildrenHtmlLookup = children.map(i => i.outerHTML)\n\n // Only add scripts and styles that aren't already loaded on the page.\n let garbageCollector = document.createDocumentFragment()\n\n let touchedHeadElements = []\n\n let remoteScriptsPromises = []\n\n for (let child of Array.from(newHead.children)) {\n if (isAsset(child)) {\n if (! headChildrenHtmlLookup.includes(child.outerHTML)) {\n if (isTracked(child)) {\n if (ifTheQueryStringChangedSinceLastRequest(child, children)) {\n setTimeout(() => window.location.reload())\n }\n }\n\n if (isScript(child)) {\n try {\n remoteScriptsPromises.push(\n injectScriptTagAndWaitForItToFullyLoad(\n cloneScriptTag(child)\n )\n )\n } catch (error) {\n // Let's eat any promise rejects so that we don't\n // break the rest of the Alpine intializing...\n // Any errors triggered by adding the script tag to the page\n // will still be thrown...\n }\n } else {\n document.head.appendChild(child)\n }\n } else {\n garbageCollector.appendChild(child)\n }\n\n touchedHeadElements.push(child)\n }\n }\n\n // Remove any assets that aren't on the new page...\n // @todo: Re-enable this code and find a better way to managed injected stylesheets. See livewire/livewire#6824\n // for (let child of Array.from(document.head.children)) {\n // if (isAsset(child)) {\n // if (! touchedHeadElements.some(i => i.outerHTML === child.outerHTML)) {\n // child.remove()\n // }\n // }\n // }\n\n // How to free up the garbage collector?\n\n // Remove existing non-asset elements like meta, base, title, template.\n for (let child of Array.from(document.head.children)) {\n if (! isAsset(child)) child.remove()\n }\n\n // Add new non-asset elements left over in the new head element.\n for (let child of Array.from(newHead.children)) {\n document.head.appendChild(child)\n }\n\n return Promise.all(remoteScriptsPromises)\n}\n\nasync function injectScriptTagAndWaitForItToFullyLoad(script) {\n return new Promise((resolve, reject) => {\n // Script assets need to be loaded synchronously so that scripts have\n // their global variables available...\n if (script.src) {\n script.onload = () => resolve()\n script.onerror = () => reject()\n } else {\n resolve()\n }\n\n document.head.appendChild(script)\n })\n}\n\nfunction cloneScriptTag(el) {\n let script = document.createElement('script')\n\n script.textContent = el.textContent\n script.async = el.async\n\n for (let attr of el.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n\n return script\n}\n\nfunction isTracked(el) {\n return el.hasAttribute('data-navigate-track')\n}\n\nfunction ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) {\n let [uri, queryString] = extractUriAndQueryString(el)\n\n return currentHeadChildren.some(child => {\n if (! isTracked(child)) return false\n\n let [currentUri, currentQueryString] = extractUriAndQueryString(child)\n\n // Only consider a data-navigate-track element changed if the query string has changed (not the URI)...\n if (currentUri === uri && queryString !== currentQueryString) return true\n })\n}\n\nfunction extractUriAndQueryString(el) {\n let url = isScript(el) ? el.src : el.href\n\n return url.split('?')\n}\n\nfunction isAsset(el) {\n return (el.tagName.toLowerCase() === 'link' && el.getAttribute('rel').toLowerCase() === 'stylesheet')\n || el.tagName.toLowerCase() === 'style'\n || el.tagName.toLowerCase() === 'script'\n}\n\nfunction isScript(el) {\n return el.tagName.toLowerCase() === 'script'\n}\n\nfunction simpleHash(str) {\n return str.split('').reduce((a, b) => {\n a = ((a << 5) - a) + b.charCodeAt(0)\n\n return a & a\n }, 0);\n}\n\nfunction ignoreAttributes(subject, attributesToRemove) {\n let result = subject\n\n attributesToRemove.forEach(attr => {\n // Create a regex pattern to match the attribute and its value.\n // The regex handles attributes that have values surrounded by either single or double quotes.\n const regex = new RegExp(`${attr}=\"[^\"]*\"|${attr}='[^']*'`, 'g')\n\n result = result.replace(regex, '')\n })\n\n // Remove all whitespace to make things less flaky...\n result = result.replaceAll(' ', '')\n\n return result.trim()\n}\n", "import { replaceUrl, updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks, updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks, updateUrlAndStoreLatestHtmlForFutureBackButtons, whenTheBackOrForwardButtonIsClicked } from \"./history\"\nimport { getPretchedHtmlOr, prefetchHtml, storeThePrefetchedHtmlForWhenALinkIsClicked } from \"./prefetch\"\nimport { createUrlObjectFromString, extractDestinationFromLink, whenThisLinkIsHoveredFor, whenThisLinkIsPressed } from \"./links\"\nimport { isTeleportTarget, packUpPersistedTeleports, removeAnyLeftOverStaleTeleportTargets, unPackPersistedTeleports } from \"./teleport\"\nimport { restoreScrollPositionOrScrollToTop, storeScrollInformationInHtmlBeforeNavigatingAway } from \"./scroll\"\nimport { isPersistedElement, putPersistantElementsBack, storePersistantElementsForLater } from \"./persist\"\nimport { finishAndHideProgressBar, removeAnyLeftOverStaleProgressBars, showAndStartProgressBar } from \"./bar\"\nimport { swapCurrentPageWithNewHtml } from \"./page\"\nimport { fetchHtml } from \"./fetch\"\n\nlet enablePersist = true\nlet showProgressBar = true\nlet restoreScroll = true\nlet autofocus = false\n\nexport default function (Alpine) {\n\n Alpine.navigate = (url) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibariesToHookInto('alpine:navigate', {\n url: destination, history: false, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination)\n }\n\n Alpine.navigate.disableProgressBar = () => {\n showProgressBar = false\n }\n\n Alpine.addInitSelector(() => `[${Alpine.prefixed('navigate')}]`)\n\n Alpine.directive('navigate', (el, { modifiers }) => {\n let shouldPrefetchOnHover = modifiers.includes('hover')\n\n shouldPrefetchOnHover && whenThisLinkIsHoveredFor(el, 60, () => {\n let destination = extractDestinationFromLink(el)\n\n if (! destination) return\n\n prefetchHtml(destination, (html, finalDestination) => {\n storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination)\n })\n })\n\n whenThisLinkIsPressed(el, (whenItIsReleased) => {\n let destination = extractDestinationFromLink(el)\n\n if (! destination) return\n\n prefetchHtml(destination, (html, finalDestination) => {\n storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination)\n })\n\n whenItIsReleased(() => {\n let prevented = fireEventForOtherLibariesToHookInto('alpine:navigate', {\n url: destination, history: false, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination);\n })\n })\n })\n\n function navigateTo(destination, shouldPushToHistoryState = true) {\n showProgressBar && showAndStartProgressBar()\n\n fetchHtmlOrUsePrefetchedHtml(destination, (html, finalDestination) => {\n fireEventForOtherLibariesToHookInto('alpine:navigating')\n\n restoreScroll && storeScrollInformationInHtmlBeforeNavigatingAway()\n\n showProgressBar && finishAndHideProgressBar()\n\n cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement()\n\n updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks()\n\n preventAlpineFromPickingUpDomChanges(Alpine, andAfterAllThis => {\n enablePersist && storePersistantElementsForLater(persistedEl => {\n packUpPersistedTeleports(persistedEl)\n })\n\n if (shouldPushToHistoryState) {\n updateUrlAndStoreLatestHtmlForFutureBackButtons(html, finalDestination)\n } else {\n replaceUrl(finalDestination, html)\n }\n\n swapCurrentPageWithNewHtml(html, (afterNewScriptsAreDoneLoading) => {\n removeAnyLeftOverStaleTeleportTargets(document.body)\n\n enablePersist && putPersistantElementsBack((persistedEl, newStub) => {\n unPackPersistedTeleports(persistedEl)\n })\n\n restoreScrollPositionOrScrollToTop()\n\n afterNewScriptsAreDoneLoading(() => {\n andAfterAllThis(() => {\n setTimeout(() => {\n autofocus && autofocusElementsWithTheAutofocusAttribute()\n })\n\n nowInitializeAlpineOnTheNewPage(Alpine)\n\n fireEventForOtherLibariesToHookInto('alpine:navigated')\n })\n })\n })\n })\n })\n }\n\n whenTheBackOrForwardButtonIsClicked(\n (ifThePageBeingVisitedHasntBeenCached) => {\n ifThePageBeingVisitedHasntBeenCached((url) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibariesToHookInto('alpine:navigate', {\n url: destination, history: true, cached: false,\n })\n\n if (prevented) return\n\n let shouldPushToHistoryState = false\n\n navigateTo(destination, shouldPushToHistoryState)\n })\n },\n (html, url, currentPageUrl, currentPageKey) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibariesToHookInto('alpine:navigate', {\n url: destination, history: true, cached: true,\n })\n\n if (prevented) return\n\n // @todo: see if there's a way to update the current HTML BEFORE\n // the back button is hit, and not AFTER:\n storeScrollInformationInHtmlBeforeNavigatingAway()\n\n // This ensures the current HTML has the latest snapshot\n fireEventForOtherLibariesToHookInto('alpine:navigating')\n\n // Only update the snapshot and not the history state as the history state\n // has already changed to the new page due to the popstate event\n updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageUrl, currentPageKey)\n\n preventAlpineFromPickingUpDomChanges(Alpine, andAfterAllThis => {\n enablePersist && storePersistantElementsForLater(persistedEl => {\n packUpPersistedTeleports(persistedEl)\n })\n\n swapCurrentPageWithNewHtml(html, () => {\n removeAnyLeftOverStaleProgressBars()\n\n removeAnyLeftOverStaleTeleportTargets(document.body)\n\n enablePersist && putPersistantElementsBack((persistedEl, newStub) => {\n unPackPersistedTeleports(persistedEl)\n })\n\n restoreScrollPositionOrScrollToTop()\n\n andAfterAllThis(() => {\n autofocus && autofocusElementsWithTheAutofocusAttribute()\n\n nowInitializeAlpineOnTheNewPage(Alpine)\n\n fireEventForOtherLibariesToHookInto('alpine:navigated')\n })\n })\n })\n },\n )\n\n // Because DOMContentLoaded is fired on first load,\n // we should fire alpine:navigated as a replacement as well...\n setTimeout(() => {\n fireEventForOtherLibariesToHookInto('alpine:navigated')\n })\n}\n\nfunction fetchHtmlOrUsePrefetchedHtml(fromDestination, callback) {\n getPretchedHtmlOr(fromDestination, callback, () => {\n fetchHtml(fromDestination, callback)\n })\n}\n\nfunction preventAlpineFromPickingUpDomChanges(Alpine, callback) {\n Alpine.stopObservingMutations()\n\n callback((afterAllThis) => {\n Alpine.startObservingMutations()\n\n queueMicrotask(() => {\n afterAllThis()\n })\n })\n}\n\nfunction fireEventForOtherLibariesToHookInto(name, detail) {\n let event = new CustomEvent(name, {\n cancelable: true,\n bubbles: true,\n detail,\n })\n\n document.dispatchEvent(event)\n\n return event.defaultPrevented\n}\n\nfunction nowInitializeAlpineOnTheNewPage(Alpine) {\n Alpine.initTree(document.body, undefined, (el, skip) => {\n if (el._x_wasPersisted) skip()\n })\n}\n\nfunction autofocusElementsWithTheAutofocusAttribute() {\n document.querySelector('[autofocus]') && document.querySelector('[autofocus]').focus()\n}\n\nfunction cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() {\n // Create a new tree walker that skips persisted elements...\n let walker = function (root, callback) {\n Alpine.walk(root, (el, skip) => {\n if (isPersistedElement(el)) skip()\n if (isTeleportTarget(el)) skip()\n else callback(el, skip)\n })\n }\n\n // Set Alpine in motion to destroy itself on the page. If this proves\n // to be a performance issue at some point (walking the DOM tree),\n // we can be more surgical about cleaning up x-for/if instead...\n Alpine.destroyTree(document.body, walker)\n}\n", "import { isObjecty } from \"@/utils\"\n\nexport default function history(Alpine) {\n Alpine.magic('queryString', (el, { interceptor }) => {\n let alias\n let alwaysShow = false\n let usePush = false\n\n return interceptor((initialSeedValue, getter, setter, path, key) => {\n let queryKey = alias || path\n\n let { initial, replace, push, pop } = track(queryKey, initialSeedValue, alwaysShow)\n\n setter(initial)\n\n if (! usePush) {\n Alpine.effect(() => replace(getter()))\n } else {\n Alpine.effect(() => push(getter()))\n\n pop(async newValue => {\n setter(newValue)\n\n let tillTheEndOfTheMicrotaskQueue = () => Promise.resolve()\n\n await tillTheEndOfTheMicrotaskQueue() // ...so that we preserve the internal lock...\n })\n }\n\n return initial\n }, func => {\n func.alwaysShow = () => { alwaysShow = true; return func }\n func.usePush = () => { usePush = true; return func }\n func.as = key => { alias = key; return func }\n })\n })\n\n Alpine.history = { track }\n}\n\nexport function track(name, initialSeedValue, alwaysShow = false, except = null) {\n let { has, get, set, remove } = queryStringUtils()\n\n let url = new URL(window.location.href)\n let isInitiallyPresentInUrl = has(url, name)\n let initialValue = isInitiallyPresentInUrl ? get(url, name) : initialSeedValue\n let initialValueMemo = JSON.stringify(initialValue)\n let exceptValueMemo = [false, null, undefined].includes(except) ? initialSeedValue : JSON.stringify(except)\n\n let hasReturnedToInitialValue = (newValue) => JSON.stringify(newValue) === initialValueMemo\n let hasReturnedToExceptValue = (newValue) => JSON.stringify(newValue) === exceptValueMemo\n\n if (alwaysShow) url = set(url, name, initialValue)\n\n replace(url, name, { value: initialValue })\n\n let lock = false\n\n let update = (strategy, newValue) => {\n if (lock) return\n\n let url = new URL(window.location.href)\n\n // This block of code is what needs to be changed for this failing test to pass:\n if (! alwaysShow && ! isInitiallyPresentInUrl && hasReturnedToInitialValue(newValue)) {\n url = remove(url, name)\n // This is so that when deeply nested values are tracked, but their parent array/object\n // is removed, we can handle it gracefully by removing the entry from the URL instead\n // of letting it get set to `?someKey=undefined` which causes issues on refresh...\n } else if (newValue === undefined) {\n url = remove(url, name)\n } else if (! alwaysShow && hasReturnedToExceptValue(newValue)) {\n url = remove(url, name)\n } else {\n url = set(url, name, newValue)\n }\n\n // Right now, the above block, checks a few conditions and updates/removes an entry from the query string.\n // The new strategy needs to be something like:\n // - If \"alwaysShow\" is toggled on, then just \"set\" the whole thing with no deep diff\n // - Otherwise, run a deep comparison callback (given the original value and new value).\n // - The callback recieves two params (leaf name and value)\n // - Check leaf name and value for existance in the original URL from page load. If it's there, just call \"set\"\n // - Check leaf name and value for equivelance to original name and value, if equal, call \"remove\", otherwise, \"set\"\n\n // That code will look something like this:\n\n // if (alwaysShow) {\n // set(url, name, newValue)\n // } else {\n // deepCompare(name, newValue, originalValue, (leafName, leafValue) => {\n // // ....\n // })\n // }\n\n strategy(url, name, { value: newValue})\n }\n\n return {\n initial: initialValue,\n\n replace(newValue) { // Update via replaceState...\n update(replace, newValue)\n },\n\n push(newValue) { // Update via pushState...\n update(push, newValue)\n },\n\n pop(receiver) { // \"popstate\" handler...\n let handler = (e) => {\n if (! e.state || ! e.state.alpine) return\n\n Object.entries(e.state.alpine).forEach(([iName, { value: newValue }]) => {\n if (iName !== name) return\n\n lock = true\n\n // Allow the \"receiver\" to be an async function in case a non-syncronous\n // operation (like an ajax) requests needs to happen while preserving\n // the \"locking\" mechanism (\"lock = true\" in this case)...\n let result = receiver(newValue)\n\n if (result instanceof Promise) {\n result.finally(() => lock = false)\n } else {\n lock = false\n }\n })\n }\n\n window.addEventListener('popstate', handler)\n\n return () => window.removeEventListener('popstate', handler)\n }\n }\n}\n\nfunction replace(url, key, object) {\n let state = window.history.state || {}\n\n if (! state.alpine) state.alpine = {}\n\n state.alpine[key] = unwrap(object)\n\n window.history.replaceState(state, '', url.toString())\n}\n\nfunction push(url, key, object) {\n let state = window.history.state || {}\n\n if (! state.alpine) state.alpine = {}\n\n state = { alpine: {...state.alpine, ...{[key]: unwrap(object)}} }\n\n window.history.pushState(state, '', url.toString())\n}\n\nfunction unwrap(object) {\n if (object === undefined) return undefined\n\n return JSON.parse(JSON.stringify(object))\n}\n\nfunction queryStringUtils() {\n return {\n has(url, key) {\n let search = url.search\n\n if (! search) return false\n\n let data = fromQueryString(search)\n\n return Object.keys(data).includes(key)\n },\n get(url, key) {\n let search = url.search\n\n if (! search) return false\n\n let data = fromQueryString(search)\n\n return data[key]\n },\n set(url, key, value) {\n let data = fromQueryString(url.search)\n\n data[key] = stripNulls(unwrap(value))\n\n url.search = toQueryString(data)\n\n return url\n },\n remove(url, key) {\n let data = fromQueryString(url.search)\n\n delete data[key]\n\n url.search = toQueryString(data)\n\n return url\n },\n }\n}\n\nfunction stripNulls(value) {\n if (! isObjecty(value)) return value\n\n for (let key in value) {\n if (value[key] === null) delete value[key]\n else value[key] = stripNulls(value[key])\n }\n\n return value\n}\n\n// This function converts JavaScript data to bracketed query string notation...\n// { items: [['foo']] } -> \"items[0][0]=foo\"\nfunction toQueryString(data) {\n let isObjecty = (subject) => typeof subject === 'object' && subject !== null\n\n let buildQueryStringEntries = (data, entries = {}, baseKey = '') => {\n Object.entries(data).forEach(([iKey, iValue]) => {\n let key = baseKey === '' ? iKey : `${baseKey}[${iKey}]`\n\n if (iValue === null) {\n entries[key] = '';\n } else if (! isObjecty(iValue)) {\n entries[key] = encodeURIComponent(iValue)\n .replaceAll('%20', '+') // Conform to RFC1738\n .replaceAll('%2C', ',')\n } else {\n entries = {...entries, ...buildQueryStringEntries(iValue, entries, key)}\n }\n })\n\n return entries\n }\n\n let entries = buildQueryStringEntries(data)\n\n return Object.entries(entries).map(([key, value]) => `${key}=${value}`).join('&')\n}\n\n// This function converts bracketed query string notation back to JS data...\n// \"items[0][0]=foo\" -> { items: [['foo']] }\nfunction fromQueryString(search) {\n search = search.replace('?', '')\n\n if (search === '') return {}\n\n let insertDotNotatedValueIntoData = (key, value, data) => {\n let [first, second, ...rest] = key.split('.')\n\n // We're at a leaf node, let's make the assigment...\n if (! second) return data[key] = value\n\n // This is where we fill in empty arrays/objects allong the way to the assigment...\n if (data[first] === undefined) {\n data[first] = isNaN(second) ? {} : []\n }\n\n // Keep deferring assignment until the full key is built up...\n insertDotNotatedValueIntoData([second, ...rest].join('.'), value, data[first])\n }\n\n let entries = search.split('&').map(i => i.split('='))\n\n // let data = {} creates a security (XSS) vulnerability here. We need to use\n // Object.create(null) instead so that we have a \"pure\" object that doesnt\n // inherit Object.prototype and expose the js internals to manipulation.\n let data = Object.create(null)\n\n entries.forEach(([key, value]) => {\n // Query string params don't always have values... (`?foo=`)\n if ( typeof value == 'undefined' ) return;\n\n value = decodeURIComponent(value.replaceAll('+', '%20'))\n\n if (! key.includes('[')) {\n data[key] = value\n } else {\n // Convert to dot notation because it's easier...\n let dotNotatedKey = key.replaceAll('[', '.').replaceAll(']', '')\n\n insertDotNotatedValueIntoData(dotNotatedKey, value, data)\n }\n })\n\n return data\n}\n", "// packages/morph/src/morph.js\nfunction morph(from, toHtml, options) {\n monkeyPatchDomSetAttributeToAllowAtSymbols();\n let fromEl;\n let toEl;\n let key, lookahead, updating, updated, removing, removed, adding, added;\n function assignOptions(options2 = {}) {\n let defaultGetKey = (el) => el.getAttribute(\"key\");\n let noop = () => {\n };\n updating = options2.updating || noop;\n updated = options2.updated || noop;\n removing = options2.removing || noop;\n removed = options2.removed || noop;\n adding = options2.adding || noop;\n added = options2.added || noop;\n key = options2.key || defaultGetKey;\n lookahead = options2.lookahead || false;\n }\n function patch(from2, to) {\n if (differentElementNamesTypesOrKeys(from2, to)) {\n return swapElements(from2, to);\n }\n let updateChildrenOnly = false;\n if (shouldSkip(updating, from2, to, () => updateChildrenOnly = true))\n return;\n if (from2.nodeType === 1 && window.Alpine) {\n window.Alpine.cloneNode(from2, to);\n if (from2._x_teleport && to._x_teleport) {\n patch(from2._x_teleport, to._x_teleport);\n }\n }\n if (textOrComment(to)) {\n patchNodeValue(from2, to);\n updated(from2, to);\n return;\n }\n if (!updateChildrenOnly) {\n patchAttributes(from2, to);\n }\n updated(from2, to);\n patchChildren(from2, to);\n }\n function differentElementNamesTypesOrKeys(from2, to) {\n return from2.nodeType != to.nodeType || from2.nodeName != to.nodeName || getKey(from2) != getKey(to);\n }\n function swapElements(from2, to) {\n if (shouldSkip(removing, from2))\n return;\n let toCloned = to.cloneNode(true);\n if (shouldSkip(adding, toCloned))\n return;\n from2.replaceWith(toCloned);\n removed(from2);\n added(toCloned);\n }\n function patchNodeValue(from2, to) {\n let value = to.nodeValue;\n if (from2.nodeValue !== value) {\n from2.nodeValue = value;\n }\n }\n function patchAttributes(from2, to) {\n if (from2._x_transitioning)\n return;\n if (from2._x_isShown && !to._x_isShown) {\n return;\n }\n if (!from2._x_isShown && to._x_isShown) {\n return;\n }\n let domAttributes = Array.from(from2.attributes);\n let toAttributes = Array.from(to.attributes);\n for (let i = domAttributes.length - 1; i >= 0; i--) {\n let name = domAttributes[i].name;\n if (!to.hasAttribute(name)) {\n from2.removeAttribute(name);\n }\n }\n for (let i = toAttributes.length - 1; i >= 0; i--) {\n let name = toAttributes[i].name;\n let value = toAttributes[i].value;\n if (from2.getAttribute(name) !== value) {\n from2.setAttribute(name, value);\n }\n }\n }\n function patchChildren(from2, to) {\n let fromKeys = keyToMap(from2.children);\n let fromKeyHoldovers = {};\n let currentTo = getFirstNode(to);\n let currentFrom = getFirstNode(from2);\n while (currentTo) {\n seedingMatchingId(currentTo, currentFrom);\n let toKey = getKey(currentTo);\n let fromKey = getKey(currentFrom);\n if (!currentFrom) {\n if (toKey && fromKeyHoldovers[toKey]) {\n let holdover = fromKeyHoldovers[toKey];\n from2.appendChild(holdover);\n currentFrom = holdover;\n } else {\n if (!shouldSkip(adding, currentTo)) {\n let clone = currentTo.cloneNode(true);\n from2.appendChild(clone);\n added(clone);\n }\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n }\n let isIf = (node) => node && node.nodeType === 8 && node.textContent === \"[if BLOCK]><![endif]\";\n let isEnd = (node) => node && node.nodeType === 8 && node.textContent === \"[if ENDBLOCK]><![endif]\";\n if (isIf(currentTo) && isIf(currentFrom)) {\n let nestedIfCount = 0;\n let fromBlockStart = currentFrom;\n while (currentFrom) {\n let next = getNextSibling(from2, currentFrom);\n if (isIf(next)) {\n nestedIfCount++;\n } else if (isEnd(next) && nestedIfCount > 0) {\n nestedIfCount--;\n } else if (isEnd(next) && nestedIfCount === 0) {\n currentFrom = next;\n break;\n }\n currentFrom = next;\n }\n let fromBlockEnd = currentFrom;\n nestedIfCount = 0;\n let toBlockStart = currentTo;\n while (currentTo) {\n let next = getNextSibling(to, currentTo);\n if (isIf(next)) {\n nestedIfCount++;\n } else if (isEnd(next) && nestedIfCount > 0) {\n nestedIfCount--;\n } else if (isEnd(next) && nestedIfCount === 0) {\n currentTo = next;\n break;\n }\n currentTo = next;\n }\n let toBlockEnd = currentTo;\n let fromBlock = new Block(fromBlockStart, fromBlockEnd);\n let toBlock = new Block(toBlockStart, toBlockEnd);\n patchChildren(fromBlock, toBlock);\n continue;\n }\n if (currentFrom.nodeType === 1 && lookahead && !currentFrom.isEqualNode(currentTo)) {\n let nextToElementSibling = getNextSibling(to, currentTo);\n let found = false;\n while (!found && nextToElementSibling) {\n if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) {\n found = true;\n currentFrom = addNodeBefore(from2, currentTo, currentFrom);\n fromKey = getKey(currentFrom);\n }\n nextToElementSibling = getNextSibling(to, nextToElementSibling);\n }\n }\n if (toKey !== fromKey) {\n if (!toKey && fromKey) {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom = addNodeBefore(from2, currentTo, currentFrom);\n fromKeyHoldovers[fromKey].remove();\n currentFrom = getNextSibling(from2, currentFrom);\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n if (toKey && !fromKey) {\n if (fromKeys[toKey]) {\n currentFrom.replaceWith(fromKeys[toKey]);\n currentFrom = fromKeys[toKey];\n }\n }\n if (toKey && fromKey) {\n let fromKeyNode = fromKeys[toKey];\n if (fromKeyNode) {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom.replaceWith(fromKeyNode);\n currentFrom = fromKeyNode;\n } else {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom = addNodeBefore(from2, currentTo, currentFrom);\n fromKeyHoldovers[fromKey].remove();\n currentFrom = getNextSibling(from2, currentFrom);\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n }\n }\n let currentFromNext = currentFrom && getNextSibling(from2, currentFrom);\n patch(currentFrom, currentTo);\n currentTo = currentTo && getNextSibling(to, currentTo);\n currentFrom = currentFromNext;\n }\n let removals = [];\n while (currentFrom) {\n if (!shouldSkip(removing, currentFrom))\n removals.push(currentFrom);\n currentFrom = getNextSibling(from2, currentFrom);\n }\n while (removals.length) {\n let domForRemoval = removals.shift();\n domForRemoval.remove();\n removed(domForRemoval);\n }\n }\n function getKey(el) {\n return el && el.nodeType === 1 && key(el);\n }\n function keyToMap(els) {\n let map = {};\n for (let el of els) {\n let theKey = getKey(el);\n if (theKey) {\n map[theKey] = el;\n }\n }\n return map;\n }\n function addNodeBefore(parent, node, beforeMe) {\n if (!shouldSkip(adding, node)) {\n let clone = node.cloneNode(true);\n parent.insertBefore(clone, beforeMe);\n added(clone);\n return clone;\n }\n return node;\n }\n assignOptions(options);\n fromEl = from;\n toEl = typeof toHtml === \"string\" ? createElement(toHtml) : toHtml;\n if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) {\n toEl._x_dataStack = window.Alpine.closestDataStack(from);\n toEl._x_dataStack && window.Alpine.cloneNode(from, toEl);\n }\n patch(from, toEl);\n fromEl = void 0;\n toEl = void 0;\n return from;\n}\nmorph.step = () => {\n};\nmorph.log = () => {\n};\nfunction shouldSkip(hook, ...args) {\n let skip = false;\n hook(...args, () => skip = true);\n return skip;\n}\nvar patched = false;\nfunction createElement(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content.firstElementChild;\n}\nfunction textOrComment(el) {\n return el.nodeType === 3 || el.nodeType === 8;\n}\nvar Block = class {\n constructor(start, end) {\n this.startComment = start;\n this.endComment = end;\n }\n get children() {\n let children = [];\n let currentNode = this.startComment.nextSibling;\n while (currentNode && currentNode !== this.endComment) {\n children.push(currentNode);\n currentNode = currentNode.nextSibling;\n }\n return children;\n }\n appendChild(child) {\n this.endComment.before(child);\n }\n get firstChild() {\n let first = this.startComment.nextSibling;\n if (first === this.endComment)\n return;\n return first;\n }\n nextNode(reference) {\n let next = reference.nextSibling;\n if (next === this.endComment)\n return;\n return next;\n }\n insertBefore(newNode, reference) {\n reference.before(newNode);\n return newNode;\n }\n};\nfunction getFirstNode(parent) {\n return parent.firstChild;\n}\nfunction getNextSibling(parent, reference) {\n let next;\n if (parent instanceof Block) {\n next = parent.nextNode(reference);\n } else {\n next = reference.nextSibling;\n }\n return next;\n}\nfunction monkeyPatchDomSetAttributeToAllowAtSymbols() {\n if (patched)\n return;\n patched = true;\n let original = Element.prototype.setAttribute;\n let hostDiv = document.createElement(\"div\");\n Element.prototype.setAttribute = function newSetAttribute(name, value) {\n if (!name.includes(\"@\")) {\n return original.call(this, name, value);\n }\n hostDiv.innerHTML = `<span ${name}=\"${value}\"></span>`;\n let attr = hostDiv.firstElementChild.getAttributeNode(name);\n hostDiv.firstElementChild.removeAttributeNode(attr);\n this.setAttributeNode(attr);\n };\n}\nfunction seedingMatchingId(to, from) {\n let fromId = from && from._x_bindings && from._x_bindings.id;\n if (!fromId)\n return;\n to.setAttribute(\"id\", fromId);\n to.id = fromId;\n}\n\n// packages/morph/src/index.js\nfunction src_default(Alpine) {\n Alpine.morph = morph;\n}\n\n// packages/morph/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as morph\n};\n", "// packages/mask/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"mask\", (el, { value, expression }, { effect, evaluateLater, cleanup }) => {\n let templateFn = () => expression;\n let lastInputValue = \"\";\n queueMicrotask(() => {\n if ([\"function\", \"dynamic\"].includes(value)) {\n let evaluator = evaluateLater(expression);\n effect(() => {\n templateFn = (input) => {\n let result;\n Alpine.dontAutoEvaluateFunctions(() => {\n evaluator((value2) => {\n result = typeof value2 === \"function\" ? value2(input) : value2;\n }, { scope: {\n // These are \"magics\" we'll make available to the x-mask:function:\n \"$input\": input,\n \"$money\": formatMoney.bind({ el })\n } });\n });\n return result;\n };\n processInputValue(el, false);\n });\n } else {\n processInputValue(el, false);\n }\n if (el._x_model)\n el._x_model.set(el.value);\n });\n const controller = new AbortController();\n cleanup(() => {\n controller.abort();\n });\n el.addEventListener(\"input\", () => processInputValue(el), {\n signal: controller.signal,\n // Setting this as a capture phase listener to ensure it runs\n // before wire:model or x-model added as a latent binding...\n capture: true\n });\n el.addEventListener(\"blur\", () => processInputValue(el, false), { signal: controller.signal });\n function processInputValue(el2, shouldRestoreCursor = true) {\n let input = el2.value;\n let template = templateFn(input);\n if (!template || template === \"false\")\n return false;\n if (lastInputValue.length - el2.value.length === 1) {\n return lastInputValue = el2.value;\n }\n let setInput = () => {\n lastInputValue = el2.value = formatInput(input, template);\n };\n if (shouldRestoreCursor) {\n restoreCursorPosition(el2, template, () => {\n setInput();\n });\n } else {\n setInput();\n }\n }\n function formatInput(input, template) {\n if (input === \"\")\n return \"\";\n let strippedDownInput = stripDown(template, input);\n let rebuiltInput = buildUp(template, strippedDownInput);\n return rebuiltInput;\n }\n }).before(\"model\");\n}\nfunction restoreCursorPosition(el, template, callback) {\n let cursorPosition = el.selectionStart;\n let unformattedValue = el.value;\n callback();\n let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition);\n let newPosition = buildUp(\n template,\n stripDown(\n template,\n beforeLeftOfCursorBeforeFormatting\n )\n ).length;\n el.setSelectionRange(newPosition, newPosition);\n}\nfunction stripDown(template, input) {\n let inputToBeStripped = input;\n let output = \"\";\n let regexes = {\n \"9\": /[0-9]/,\n \"a\": /[a-zA-Z]/,\n \"*\": /[a-zA-Z0-9]/\n };\n let wildcardTemplate = \"\";\n for (let i = 0; i < template.length; i++) {\n if ([\"9\", \"a\", \"*\"].includes(template[i])) {\n wildcardTemplate += template[i];\n continue;\n }\n for (let j = 0; j < inputToBeStripped.length; j++) {\n if (inputToBeStripped[j] === template[i]) {\n inputToBeStripped = inputToBeStripped.slice(0, j) + inputToBeStripped.slice(j + 1);\n break;\n }\n }\n }\n for (let i = 0; i < wildcardTemplate.length; i++) {\n let found = false;\n for (let j = 0; j < inputToBeStripped.length; j++) {\n if (regexes[wildcardTemplate[i]].test(inputToBeStripped[j])) {\n output += inputToBeStripped[j];\n inputToBeStripped = inputToBeStripped.slice(0, j) + inputToBeStripped.slice(j + 1);\n found = true;\n break;\n }\n }\n if (!found)\n break;\n }\n return output;\n}\nfunction buildUp(template, input) {\n let clean = Array.from(input);\n let output = \"\";\n for (let i = 0; i < template.length; i++) {\n if (![\"9\", \"a\", \"*\"].includes(template[i])) {\n output += template[i];\n continue;\n }\n if (clean.length === 0)\n break;\n output += clean.shift();\n }\n return output;\n}\nfunction formatMoney(input, delimiter = \".\", thousands, precision = 2) {\n if (input === \"-\")\n return \"-\";\n if (/^\\D+$/.test(input))\n return \"9\";\n if (thousands === null || thousands === void 0) {\n thousands = delimiter === \",\" ? \".\" : \",\";\n }\n let addThousands = (input2, thousands2) => {\n let output = \"\";\n let counter = 0;\n for (let i = input2.length - 1; i >= 0; i--) {\n if (input2[i] === thousands2)\n continue;\n if (counter === 3) {\n output = input2[i] + thousands2 + output;\n counter = 0;\n } else {\n output = input2[i] + output;\n }\n counter++;\n }\n return output;\n };\n let minus = input.startsWith(\"-\") ? \"-\" : \"\";\n let strippedInput = input.replaceAll(new RegExp(`[^0-9\\\\${delimiter}]`, \"g\"), \"\");\n let template = Array.from({ length: strippedInput.split(delimiter)[0].length }).fill(\"9\").join(\"\");\n template = `${minus}${addThousands(template, thousands)}`;\n if (precision > 0 && input.includes(delimiter))\n template += `${delimiter}` + \"9\".repeat(precision);\n queueMicrotask(() => {\n if (this.el.value.endsWith(delimiter))\n return;\n if (this.el.value[this.el.selectionStart - 1] === delimiter) {\n this.el.setSelectionRange(this.el.selectionStart - 1, this.el.selectionStart - 1);\n }\n });\n return template;\n}\n\n// packages/mask/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as mask,\n stripDown\n};\n", "import { closestComponent, destroyComponent, initComponent } from './store'\nimport { matchesForLivewireDirective, extractDirective } from './directives'\nimport { trigger } from './hooks'\nimport collapse from '@alpinejs/collapse'\nimport focus from '@alpinejs/focus'\nimport persist from '@alpinejs/persist'\nimport intersect from '@alpinejs/intersect'\nimport resize from '@alpinejs/resize'\nimport anchor from '@alpinejs/anchor'\nimport navigate from './plugins/navigate'\nimport history from './plugins/history'\nimport morph from '@alpinejs/morph'\nimport mask from '@alpinejs/mask'\nimport Alpine from 'alpinejs'\nimport { dispatch } from './utils'\n\nexport function start() {\n setTimeout(() => ensureLivewireScriptIsntMisplaced())\n\n dispatch(document, 'livewire:init')\n dispatch(document, 'livewire:initializing')\n\n Alpine.plugin(morph)\n Alpine.plugin(history)\n Alpine.plugin(intersect)\n Alpine.plugin(resize)\n Alpine.plugin(collapse)\n Alpine.plugin(anchor)\n Alpine.plugin(focus)\n Alpine.plugin(persist)\n Alpine.plugin(navigate)\n Alpine.plugin(mask)\n\n Alpine.addRootSelector(() => '[wire\\\\:id]')\n\n Alpine.onAttributesAdded((el, attributes) => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n let component = closestComponent(el, false)\n\n if (! component) return\n\n attributes.forEach(attribute => {\n if (! matchesForLivewireDirective(attribute.name)) return;\n\n let directive = extractDirective(el, attribute.name)\n\n trigger('directive.init', { el, component, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n })\n\n Alpine.interceptInit(\n Alpine.skipDuringClone(el => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(el.attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n if (el.hasAttribute('wire:id')) {\n let component = initComponent(el)\n\n Alpine.onAttributeRemoved(el, 'wire:id', () => {\n destroyComponent(component.id)\n })\n }\n\n let component = closestComponent(el, false)\n\n if (component) {\n trigger('element.init', { el, component })\n\n let directives = Array.from(el.getAttributeNames())\n .filter(name => matchesForLivewireDirective(name))\n .map(name => extractDirective(el, name))\n\n directives.forEach(directive => {\n trigger('directive.init', { el, component, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n }\n })\n )\n\n Alpine.start()\n\n setTimeout(() => window.Livewire.initialRenderIsFinished = true)\n\n dispatch(document, 'livewire:initialized')\n}\n\nfunction ensureLivewireScriptIsntMisplaced() {\n let el = document.querySelector('script[data-update-uri][data-csrf]')\n\n // If there is no Livewire-injected script on the page, move on...\n if (! el) return\n\n // If there is, let's ensure it's at the top-level. If it's nested\n // inside a normal element, that probably means that a closing\n // tag was missing in the template and Chrome moved the tag.\n\n // We're only checking for \"div\" here because it's quick and useful...\n let livewireEl = el.closest('[wire\\\\:id]')\n\n if (livewireEl) {\n console.warn('Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.', livewireEl)\n }\n}\n", "import { on as hook } from '@/hooks'\n\nhook('effect', ({ component, effects }) => {\n registerListeners(component, effects.listeners || [])\n})\n\nfunction registerListeners(component, listeners) {\n listeners.forEach(name => {\n // Register a global listener...\n let handler = (e) => {\n if (e.__livewire) e.__livewire.receivedBy.push(component)\n\n component.$wire.call('__dispatch', name, e.detail || {})\n }\n\n window.addEventListener(name, handler)\n\n component.addCleanup(() => window.removeEventListener(name, handler))\n\n // Register a listener for when \"to\" or \"self\"\n component.el.addEventListener(name, (e) => {\n // We don't care about non-Livewire dispatches...\n if (! e.__livewire) return\n\n // We don't care about Livewire bubbling dispatches (only \"to\" and \"self\")...\n if (e.bubbles) return\n\n if (e.__livewire) e.__livewire.receivedBy.push(component.id)\n\n component.$wire.call('__dispatch', name, e.detail || {})\n })\n })\n}\n\n\n", "import { on } from '@/hooks'\nimport Alpine from 'alpinejs'\n\nlet executedScripts = new WeakMap\n\nlet executedAssets = new Set\n\non('payload.intercept', async ({ assets }) => {\n if(! assets) return\n\n for (let [key, asset] of Object.entries(assets)) {\n await onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, async () => {\n await addAssetsToHeadTagOfPage(asset)\n })\n }\n})\n\n// Assets that were injected into the HTML need to be registered so that\n// they aren't loaded again...\non('component.init', ({ component }) => {\n let assets = component.snapshot.memo.assets\n\n if (assets) {\n assets.forEach((key) => {\n if (executedAssets.has(key)) return\n executedAssets.add(key)\n })\n }\n})\n\non('effect', ({ component, effects }) => {\n let scripts = effects.scripts\n\n if (scripts) {\n Object.entries(scripts).forEach(([key, content]) => {\n onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, () => {\n let scriptContent = extractScriptTagContent(content)\n\n Alpine.dontAutoEvaluateFunctions(() => {\n Alpine.evaluate(component.el, scriptContent, { '$wire': component.$wire })\n })\n })\n })\n }\n})\n\nfunction onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, callback) {\n if (executedScripts.has(component)) {\n let alreadyRunKeys = executedScripts.get(component)\n\n if (alreadyRunKeys.includes(key)) return\n }\n\n callback()\n\n if (! executedScripts.has(component)) executedScripts.set(component, [])\n\n let alreadyRunKeys = executedScripts.get(component)\n\n alreadyRunKeys.push(key)\n\n executedScripts.set(component, alreadyRunKeys)\n}\n\nfunction extractScriptTagContent(rawHtml) {\n let scriptRegex = /<script\\b[^>]*>([\\s\\S]*?)<\\/script>/gm\n let matches = scriptRegex.exec(rawHtml)\n let innards = matches && matches[1] ? matches[1].trim() : ''\n\n return innards\n}\n\nasync function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callback) {\n if (executedAssets.has(key)) return\n\n await callback()\n\n executedAssets.add(key)\n}\n\nasync function addAssetsToHeadTagOfPage(rawHtml) {\n let newDocument = (new DOMParser()).parseFromString(rawHtml, \"text/html\")\n let newHead = document.adoptNode(newDocument.head)\n\n for (let child of newHead.children) {\n try {\n await runAssetSynchronously(child)\n } catch (error) {\n // Let's eat any promise rejects so that we don't\n // break the rest of Livewire's handling of the response...\n // Any errors triggered by adding the script tag to the page\n // will still be thrown...\n }\n }\n}\n\nasync function runAssetSynchronously(child) {\n return new Promise((resolve, reject) => {\n if (isScript(child)) {\n let script = cloneScriptTag(child)\n\n // Script assets need to be loaded synchronously so that scripts have\n // their global variables available...\n if (script.src) {\n script.onload = () => resolve()\n script.onerror = () => reject()\n } else {\n resolve()\n }\n\n document.head.appendChild(script)\n } else {\n document.head.appendChild(child)\n\n resolve()\n }\n })\n}\n\nfunction isScript(el) {\n return el.tagName.toLowerCase() === 'script'\n}\n\nfunction cloneScriptTag(el) {\n let script = document.createElement('script')\n\n script.textContent = el.textContent\n script.async = el.async\n\n for (let attr of el.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n\n return script\n}\n", "import { overrideMethod } from '@/$wire'\nimport { on } from '@/hooks'\nimport Alpine from 'alpinejs'\n\non('effect', ({ component, effects }) => {\n let js = effects.js\n let xjs = effects.xjs\n\n if (js) {\n Object.entries(js).forEach(([method, body]) => {\n overrideMethod(component, method, () => {\n Alpine.evaluate(component.el, body)\n })\n })\n }\n\n if (xjs) {\n xjs.forEach(expression => {\n Alpine.evaluate(component.el, expression)\n })\n }\n})\n\n", "import { trigger } from \"@/hooks\"\nimport { closestComponent } from \"@/store\"\nimport Alpine from 'alpinejs'\n\nexport function morph(component, el, html) {\n let wrapperTag = el.parentElement\n // If the root element is a \"tr\", we need the wrapper to be a \"table\"...\n ? el.parentElement.tagName.toLowerCase()\n : 'div'\n\n let wrapper = document.createElement(wrapperTag)\n\n wrapper.innerHTML = html\n let parentComponent\n\n try {\n parentComponent = closestComponent(el.parentElement)\n } catch (e) {}\n\n parentComponent && (wrapper.__livewire = parentComponent)\n\n let to = wrapper.firstElementChild\n\n to.__livewire = component\n\n trigger('morph', { el, toEl: to, component })\n\n Alpine.morph(el, to, {\n updating: (el, toEl, childrenOnly, skip) => {\n if (isntElement(el)) return\n\n trigger('morph.updating', { el, toEl, component, skip, childrenOnly })\n\n // bypass DOM diffing for children by overwriting the content\n if (el.__livewire_replace === true) el.innerHTML = toEl.innerHTML;\n // completely bypass DOM diffing for this element and all children\n if (el.__livewire_replace_self === true) { el.outerHTML = toEl.outerHTML; return skip(); }\n\n if (el.__livewire_ignore === true) return skip()\n if (el.__livewire_ignore_self === true) childrenOnly()\n\n // Children will update themselves.\n if (isComponentRootEl(el) && el.getAttribute('wire:id') !== component.id) return skip()\n\n // Give the root Livewire \"to\" element, the same object reference as the \"from\"\n // element. This ensures new Alpine magics like $wire and @entangle can\n // initialize in the context of a real Livewire component object.\n if (isComponentRootEl(el)) toEl.__livewire = component\n },\n\n updated: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.updated', { el, component })\n },\n\n removing: (el, skip) => {\n if (isntElement(el)) return\n\n trigger('morph.removing', { el, component, skip })\n },\n\n removed: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.removed', { el, component })\n },\n\n adding: (el) => {\n trigger('morph.adding', { el, component })\n },\n\n added: (el) => {\n if (isntElement(el)) return\n\n const closestComponentId = closestComponent(el).id\n\n trigger('morph.added', { el })\n },\n\n key: (el) => {\n if (isntElement(el)) return\n\n return el.hasAttribute(`wire:key`)\n ? el.getAttribute(`wire:key`)\n : // If no \"key\", then first check for \"wire:id\", then \"id\"\n el.hasAttribute(`wire:id`)\n ? el.getAttribute(`wire:id`)\n : el.id\n },\n\n lookahead: false,\n })\n}\n\nfunction isntElement(el) {\n return typeof el.hasAttribute !== 'function'\n}\n\nfunction isComponentRootEl(el) {\n return el.hasAttribute('wire:id')\n}\n", "import { morph } from '@/morph'\nimport { on } from '@/hooks'\n\non('effect', ({ component, effects }) => {\n let html = effects.html\n if (! html) return\n\n // Wrapping this in a double queueMicrotask. The first one puts it after all\n // other \"effect\" hooks, and the second one puts it after all reactive\n // Alpine effects (that are processed via flushJobs in scheduler).\n queueMicrotask(() => {\n queueMicrotask(() => {\n morph(component, component.el, html)\n })\n })\n})\n", "import { dispatch, dispatchSelf, dispatchTo } from '@/events'\nimport { on } from '@/hooks'\n\non('effect', ({ component, effects }) => {\n dispatchEvents(component, effects.dispatches || [])\n})\n\nfunction dispatchEvents(component, dispatches) {\n dispatches.forEach(({ name, params = {}, self = false, to }) => {\n if (self) dispatchSelf(component, name, params)\n else if (to) dispatchTo(to, name, params)\n else dispatch(component, name, params)\n })\n}\n\n\n", "import { getDirectives } from '@/directives'\nimport { on } from '@/hooks'\nimport { Bag } from '@/utils'\nimport Alpine from 'alpinejs'\n\nlet cleanups = new Bag\n\n// Adding a setTimeout here so that these event listeners are\n// registered AFTER most other event listenrs, this way, we\n// can call \"stopPropagation\" for things like wire:confirm\non('directive.init', ({ el, directive, cleanup, component }) => setTimeout(() => {\n if (directive.value !== 'submit') return\n\n // Livewire will clean it all up automatically when the form\n // submission returns and the new DOM lacks these additions...\n el.addEventListener('submit', () => {\n // If using wire:submit=\"$parent...\", we will need to use\n // the parent ID as a reference for undoing because it's\n // the ID that will come back from the network request.\n let componentId = directive.expression.startsWith('$parent')\n ? component.parent.id\n : component.id\n\n let cleanup = disableForm(el)\n\n cleanups.add(componentId, cleanup)\n })\n}))\n\non('commit', ({ component, respond }) => {\n respond(() => {\n cleanups.each(component.id, i => i())\n cleanups.remove(component.id)\n })\n})\n\nfunction disableForm(formEl) {\n let undos = []\n\n Alpine.walk(formEl, (el, skip) => {\n if (! formEl.contains(el)) return\n\n if (el.hasAttribute('wire:ignore')) return skip()\n\n if (shouldMarkDisabled(el)) {\n undos.push(markDisabled(el))\n } else if (shouldMarkReadOnly(el)) {\n undos.push(markReadOnly(el))\n }\n })\n\n return () => {\n while (undos.length > 0) undos.shift()()\n }\n}\n\nfunction shouldMarkDisabled(el) {\n let tag = el.tagName.toLowerCase()\n\n if (tag === 'select') return true\n if (tag === 'button' && el.type === 'submit') return true\n if (tag === 'input' && (el.type === 'checkbox' || el.type === 'radio')) return true\n\n return false\n}\n\nfunction shouldMarkReadOnly(el) {\n return ['input', 'textarea'].includes(el.tagName.toLowerCase())\n}\n\nfunction markDisabled(el) {\n let undo = el.disabled\n ? () => {}\n : () => el.disabled = false\n\n el.disabled = true\n\n return undo\n}\n\nfunction markReadOnly(el) {\n let undo = el.readOnly\n ? () => {}\n : () => el.readOnly = false\n\n el.readOnly = true\n\n return undo\n}\n", "import { on } from '@/hooks'\n\n// Ensure that all child components with reactive props (even deeply nested)\n// are included in the network request...\non('commit.pooling', ({ commits }) => {\n commits.forEach(commit => {\n let component = commit.component\n\n getDeepChildrenWithBindings(component, child => {\n child.$wire.$commit()\n })\n })\n})\n\n// Ensure that related components are pooled together, even if they chose\n// to be isolated normally...\non('commit.pooled', ({ pools }) => {\n let commits = getPooledCommits(pools)\n\n commits.forEach(commit => {\n let component = commit.component\n\n getDeepChildrenWithBindings(component, child => {\n colocateCommitsByComponent(pools, component, child)\n })\n })\n})\n\nfunction getPooledCommits(pools) {\n let commits = []\n\n pools.forEach(pool => {\n pool.commits.forEach(commit => {\n commits.push(commit)\n })\n })\n\n return commits\n}\n\nfunction colocateCommitsByComponent(pools, component, foreignComponent) {\n let pool = findPoolWithComponent(pools, component)\n\n let foreignPool = findPoolWithComponent(pools, foreignComponent)\n\n let foreignCommit = foreignPool.findCommitByComponent(foreignComponent)\n\n // Delete needs to come before add in case there are the same pool...\n foreignPool.delete(foreignCommit)\n\n pool.add(foreignCommit)\n\n // Cleanup empty pools...\n pools.forEach(pool => {\n if (pool.empty()) pools.delete(pool)\n })\n}\n\nfunction findPoolWithComponent(pools, component) {\n for (let [idx, pool] of pools.entries()) {\n if (pool.hasCommitFor(component)) return pool\n }\n}\n\nfunction getDeepChildrenWithBindings(component, callback) {\n getDeepChildren(component, child => {\n if (hasReactiveProps(child) || hasWireModelableBindings(child)) {\n callback(child)\n }\n })\n}\n\nfunction hasReactiveProps(component) {\n let meta = component.snapshot.memo\n let props = meta.props\n\n return !! props\n}\n\nfunction hasWireModelableBindings(component) {\n let meta = component.snapshot.memo\n let bindings = meta.bindings\n\n return !! bindings\n}\n\nfunction getDeepChildren(component, callback) {\n component.children.forEach(child => {\n callback(child)\n\n getDeepChildren(child, callback)\n })\n}\n", "import { on } from '@/hooks'\n\non('commit', ({ succeed }) => {\n succeed(({ effects }) => {\n let download = effects.download\n\n if (! download) return\n\n // We need to use window.webkitURL so downloads work on iOS Safari.\n let urlObject = window.webkitURL || window.URL\n\n let url = urlObject.createObjectURL(\n base64toBlob(download.content, download.contentType)\n )\n\n let invisibleLink = document.createElement('a')\n\n invisibleLink.style.display = 'none'\n invisibleLink.href = url\n invisibleLink.download = download.name\n\n document.body.appendChild(invisibleLink)\n\n invisibleLink.click()\n\n setTimeout(function() {\n urlObject.revokeObjectURL(url)\n }, 0);\n })\n})\n\nfunction base64toBlob(b64Data, contentType = '', sliceSize = 512) {\n const byteCharacters = atob(b64Data)\n const byteArrays = []\n\n if (contentType === null) contentType = ''\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n let slice = byteCharacters.slice(offset, offset + sliceSize)\n\n let byteNumbers = new Array(slice.length)\n\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i)\n }\n\n let byteArray = new Uint8Array(byteNumbers)\n\n byteArrays.push(byteArray)\n }\n\n return new Blob(byteArrays, { type: contentType });\n}\n", "import { on } from '@/hooks'\n\nlet componentsThatWantToBeBundled = new WeakSet\n\nlet componentsThatAreLazy = new WeakSet\n\non('component.init', ({ component }) => {\n let memo = component.snapshot.memo\n\n // We only care about lazy components...\n if (memo.lazyLoaded === undefined) return\n\n componentsThatAreLazy.add(component)\n\n // The component doesn't want its lazy load to be an isolated request\n // then we'll mark it to detect at \"pool\" time to make sure it gets bundled...\n if (memo.lazyIsolated !== undefined && memo.lazyIsolated === false) {\n componentsThatWantToBeBundled.add(component)\n }\n})\n\non('commit.pooling', ({ commits }) => {\n commits.forEach(commit => {\n // We only care about lazy components...\n if (! componentsThatAreLazy.has(commit.component)) return\n\n if (componentsThatWantToBeBundled.has(commit.component)) {\n commit.isolate = false\n\n componentsThatWantToBeBundled.delete(commit.component)\n } else {\n commit.isolate = true\n }\n\n // Component is no longer lazy after the first full request, so remove it...\n componentsThatAreLazy.delete(commit.component)\n })\n})\n", "import { on } from '@/hooks'\nimport { dataGet } from '@/utils'\nimport Alpine from 'alpinejs'\nimport { track } from '@/plugins/history'\n\non('effect', ({ component, effects, cleanup }) => {\n let queryString = effects['url']\n\n if (! queryString) return\n\n Object.entries(queryString).forEach(([key, value]) => {\n let { name, as, use, alwaysShow, except } = normalizeQueryStringEntry(key, value)\n\n if (! as) as = name\n\n let initialValue = [false, null, undefined].includes(except) ? dataGet(component.ephemeral, name) : except\n\n let { replace, push, pop } = track(as, initialValue, alwaysShow, except)\n\n if (use === 'replace') {\n let effectReference = Alpine.effect(() => {\n replace(dataGet(component.reactive, name))\n })\n\n cleanup(() => Alpine.release(effectReference))\n } else if (use === 'push') {\n let forgetCommitHandler = on('commit', ({ component: commitComponent, succeed }) => {\n if (component !== commitComponent) return\n\n let beforeValue = dataGet(component.canonical, name)\n\n succeed(() => {\n let afterValue = dataGet(component.canonical, name)\n\n if (JSON.stringify(beforeValue) === JSON.stringify(afterValue)) return\n\n push(afterValue)\n })\n })\n\n let forgetPopHandler = pop(async newValue => {\n await component.$wire.set(name, newValue)\n\n // @todo: this is the absolute worst thing ever I'm so sorry this needs to be refactored stat:\n document.querySelectorAll('input').forEach(el => {\n el._x_forceModelUpdate && el._x_forceModelUpdate(el._x_model.get())\n })\n })\n\n cleanup(() => {\n forgetCommitHandler()\n forgetPopHandler()\n })\n }\n })\n})\n\nfunction normalizeQueryStringEntry(key, value) {\n let defaults = { use: 'replace', alwaysShow: false }\n\n if (typeof value === 'string') {\n return {...defaults, name: value, as: value }\n } else {\n let fullerDefaults = {...defaults, name: key, as: key }\n\n return {...fullerDefaults, ...value }\n }\n}\n", "import { on } from '@/hooks'\nimport { dispatchSelf } from '@/events'\n\non('request', ({ options }) => {\n if (window.Echo) {\n options.headers['X-Socket-ID'] = window.Echo.socketId()\n }\n})\n\non('effect', ({ component, effects }) => {\n let listeners = effects.listeners || []\n\n listeners.forEach(event => {\n if (event.startsWith('echo')) {\n if (typeof window.Echo === 'undefined') {\n console.warn('Laravel Echo cannot be found')\n\n return\n }\n\n let event_parts = event.split(/(echo:|echo-)|:|,/)\n\n if (event_parts[1] == 'echo:') {\n event_parts.splice(2, 0, 'channel', undefined)\n }\n\n if (event_parts[2] == 'notification') {\n event_parts.push(undefined, undefined)\n }\n\n let [\n s1,\n signature,\n channel_type,\n s2,\n channel,\n s3,\n event_name,\n ] = event_parts\n\n if (['channel', 'private', 'encryptedPrivate'].includes(channel_type)) {\n let handler = e => dispatchSelf(component, event, [e])\n\n window.Echo[channel_type](channel).listen(event_name, handler)\n\n component.addCleanup(() => {\n window.Echo[channel_type](channel).stopListening(event_name, handler)\n })\n } else if (channel_type == 'presence') {\n if (['here', 'joining', 'leaving'].includes(event_name)) {\n window.Echo.join(channel)[event_name](e => {\n dispatchSelf(component, event, [e])\n })\n\n // @todo: add listener cleanup...\n } else{\n let handler = e => dispatchSelf(component, event, [e])\n\n window.Echo.join(channel).listen(event_name, handler)\n\n component.addCleanup(() => {\n window.Echo.leaveChannel(channel)\n })\n }\n } else if (channel_type == 'notification') {\n window.Echo.private(channel).notification(notification => {\n dispatchSelf(component, event, [notification])\n })\n\n // @todo: add listener cleanup...\n } else {\n console.warn('Echo channel type not yet supported')\n }\n }\n })\n})\n", "import { on } from '@/hooks'\n\nlet componentsThatAreIsolated = new WeakSet\n\non('component.init', ({ component }) => {\n let memo = component.snapshot.memo\n\n // We only care about isolated components...\n if (memo.isolate !== true) return\n\n componentsThatAreIsolated.add(component)\n})\n\non('commit.pooling', ({ commits }) => {\n commits.forEach(commit => {\n // We only care about isolated components...\n if (! componentsThatAreIsolated.has(commit.component)) return\n\n commit.isolate = true\n })\n})\n", "\nshouldHideProgressBar() && Alpine.navigate.disableProgressBar()\n\ndocument.addEventListener('alpine:navigate', e => forwardEvent('livewire:navigate', e))\ndocument.addEventListener('alpine:navigating', e => forwardEvent('livewire:navigating', e))\ndocument.addEventListener('alpine:navigated', e => forwardEvent('livewire:navigated', e))\n\nfunction forwardEvent(name, original) {\n let event = new CustomEvent(name, { cancelable: true, bubbles: true, detail: original.detail })\n\n document.dispatchEvent(event)\n\n if (event.defaultPrevented) {\n original.preventDefault()\n }\n}\n\nexport function shouldRedirectUsingNavigateOr(effects, url, or) {\n let forceNavigate = effects.redirectUsingNavigate\n\n if (forceNavigate) {\n Alpine.navigate(url)\n } else {\n or()\n }\n}\n\nfunction shouldHideProgressBar() {\n if (!! document.querySelector('[data-no-progress-bar]')) return true\n\n if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === false) return true\n\n return false\n}\n", "import { on } from \"@/hooks\"\nimport { shouldRedirectUsingNavigateOr } from \"./supportNavigate\"\n\non('effect', ({ effects }) => {\n if (! effects['redirect']) return\n\n let url = effects['redirect']\n\n shouldRedirectUsingNavigateOr(effects, url, () => {\n window.location.href = url\n })\n})\n", "import { directive } from \"@/directives\"\nimport { on } from '@/hooks'\nimport Alpine from 'alpinejs'\n\non('morph.added', ({ el }) => {\n el.__addedByMorph = true\n})\n\ndirective('transition', ({ el, directive, component, cleanup }) => {\n let visibility = Alpine.reactive({ state: el.__addedByMorph ? false : true })\n\n // We're going to control the element's transition with Alpine transitions...\n Alpine.bind(el, {\n [directive.rawName.replace('wire:', 'x-')]: '',\n 'x-show'() { return visibility.state },\n })\n\n // If it's not the initial page load, transition the element in...\n el.__addedByMorph && setTimeout(() => visibility.state = true)\n\n let cleanups = []\n\n cleanups.push(on('morph.removing', ({ el, skip }) => {\n // Here we interupt morphdom from removing an element...\n skip()\n\n // When the transition ends...\n el.addEventListener('transitionend', () => {\n // We can actually remove the element and all the listeners along with it...\n el.remove()\n })\n\n // Now we can trigger a transition:\n visibility.state = false\n\n cleanups.push(on('morph', ({ component: morphComponent }) => {\n if (morphComponent !== component) return\n\n // While this element is transitioning out, a new morph is about to occur.\n // Let's expidite this one and clean it up so it doesn't interfere...\n el.remove()\n\n cleanups.forEach(i => i())\n }))\n }))\n\n cleanup(() => cleanups.forEach(i => i()))\n})\n\n\n\n", "import { WeakBag } from './utils'\n\nlet callbacksByComponent = new WeakBag\n\nexport function debounceByComponent(component, callback, time) {\n // Prepare yourself for what's happening here.\n // Any text input with wire:model on it should be \"debounced\" by ~150ms by default.\n // We can't use a simple debounce function because we need a way to clear all the pending\n // debounces if a user submits a form or performs some other action.\n // This is a modified debounce function that acts just like a debounce, except it stores\n // the pending callbacks in a global property so we can \"clear them\" on command instead\n // of waiting for their setTimeouts to expire. I know.\n\n // This is a \"null\" callback. Each wire:model will resister one of these upon initialization.\n let callbackRegister = { callback: () => { } }\n callbacksByComponent.add(component, callbackRegister)\n\n // This is a normal \"timeout\" for a debounce function.\n var timeout\n\n return e => {\n clearTimeout(timeout)\n\n timeout = setTimeout(() => {\n callback(e)\n timeout = undefined\n\n // Because we just called the callback, let's return the\n // callback register to it's normal \"null\" state.\n callbackRegister.callback = () => { }\n }, time)\n\n // Register the current callback in the register as a kind-of \"escape-hatch\".\n callbackRegister.callback = () => {\n clearTimeout(timeout)\n callback(e)\n }\n }\n}\n\nexport function callAndClearComponentDebounces(component, callback) {\n // This is to protect against the following scenario:\n // A user is typing into a debounced input, and hits the enter key.\n // If the enter key submits a form or something, the submission\n // will happen BEFORE the model input finishes syncing because\n // of the debounce. This makes sure to clear anything in the debounce queue.\n\n callbacksByComponent.each(component, callbackRegister => {\n callbackRegister.callback()\n callbackRegister.callback = () => { }\n })\n\n callback()\n}\n", "import { callAndClearComponentDebounces } from '@/debounce'\nimport { customDirectiveHasBeenRegistered } from '@/directives'\nimport { on } from '@/hooks'\nimport Alpine from 'alpinejs'\n\non('directive.init', ({ el, directive, cleanup, component }) => {\n if (['snapshot', 'effects', 'model', 'init', 'loading', 'poll', 'ignore', 'id', 'data', 'key', 'target', 'dirty'].includes(directive.value)) return\n if (customDirectiveHasBeenRegistered(directive.value)) return\n\n let attribute = directive.rawName.replace('wire:', 'x-on:')\n\n // Automatically add .prevent to wire:submit, if they didn't add it themselves...\n if (directive.value === 'submit' && ! directive.modifiers.includes('prevent')) {\n attribute = attribute + '.prevent'\n }\n\n let cleanupBinding = Alpine.bind(el, {\n [attribute](e) {\n let execute = () => {\n callAndClearComponentDebounces(component, () => {\n // Forward these calls directly to $wire. Let them handle firing the request.\n Alpine.evaluate(el, '$wire.'+directive.expression, { scope: { $event: e }})\n })\n }\n\n // Account for the existance of wire:confirm=\"...\" on the action...\n if (el.__livewire_confirm) {\n el.__livewire_confirm(() => {\n execute()\n }, () => {\n e.stopImmediatePropagation()\n })\n } else {\n execute()\n }\n }\n })\n\n cleanup(cleanupBinding)\n})\n", "import Alpine from 'alpinejs'\n\nAlpine.addInitSelector(() => `[wire\\\\:navigate]`)\nAlpine.addInitSelector(() => `[wire\\\\:navigate\\\\.hover]`)\n\nAlpine.interceptInit(\n Alpine.skipDuringClone(el => {\n if (el.hasAttribute('wire:navigate')) {\n Alpine.bind(el, { ['x-navigate']: true })\n } else if (el.hasAttribute('wire:navigate.hover')) {\n Alpine.bind(el, { ['x-navigate.hover']: true })\n }\n })\n)\n\ndocument.addEventListener('alpine:navigating', () => {\n // Before navigating away, we'll inscribe the latest state of each component\n // in their HTML so that upon return, they will have the latest state...\n Livewire.all().forEach(component => {\n component.inscribeSnapshotAndEffectsOnElement()\n })\n})\n", "import { directive } from \"@/directives\"\n\ndirective('confirm', ({ el, directive }) => {\n let message = directive.expression\n let shouldPrompt = directive.modifiers.includes('prompt')\n\n // Convert sanitized linebreaks (\"\\n\") to real line breaks...\n message = message.replaceAll('\\\\n', '\\n')\n\n if (message === '') message = 'Are you sure?'\n\n el.__livewire_confirm = (action, instead) => {\n if (shouldPrompt) {\n let [question, expected] = message.split('|')\n\n if (! expected) {\n console.warn('Livewire: Must provide expectation with wire:confirm.prompt')\n } else {\n let input = prompt(question)\n\n if (input === expected) {\n action()\n } else {\n instead()\n }\n }\n } else {\n if (confirm(message)) action()\n else instead()\n }\n }\n})\n", "\nexport function toggleBooleanStateDirective(el, directive, isTruthy, cachedDisplay = null) {\n isTruthy = directive.modifiers.includes('remove') ? ! isTruthy : isTruthy\n\n if (directive.modifiers.includes('class')) {\n let classes = directive.expression.split(' ').filter(String)\n\n if (isTruthy) {\n el.classList.add(...classes)\n } else {\n el.classList.remove(...classes)\n }\n } else if (directive.modifiers.includes('attr')) {\n if (isTruthy) {\n el.setAttribute(directive.expression, true)\n } else {\n el.removeAttribute(directive.expression)\n }\n } else {\n let cache = cachedDisplay ?? window\n .getComputedStyle(el, null)\n .getPropertyValue('display')\n\n let display = (['inline', 'block', 'table', 'flex', 'grid', 'inline-flex']\n .filter(i => directive.modifiers.includes(i))[0] || 'inline-block')\n\n // If element is to be removed, set display to its current value...\n // display = (directive.modifiers.includes('remove') && ! isTruthy)\n display = (directive.modifiers.includes('remove') && ! isTruthy)\n ? cache : display\n\n el.style.display = isTruthy ? display : 'none'\n }\n}\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive } from '@/directives'\n\nlet offlineHandlers = new Set\nlet onlineHandlers = new Set\n\nwindow.addEventListener('offline', () => offlineHandlers.forEach(i => i()))\nwindow.addEventListener('online', () => onlineHandlers.forEach(i => i()))\n\ndirective('offline', ({ el, directive, cleanup }) => {\n let setOffline = () => toggleBooleanStateDirective(el, directive, true)\n let setOnline = () => toggleBooleanStateDirective(el, directive, false)\n\n offlineHandlers.add(setOffline)\n onlineHandlers.add(setOnline)\n\n cleanup(() => {\n offlineHandlers.delete(setOffline)\n onlineHandlers.delete(setOnline)\n })\n})\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive, getDirectives } from \"@/directives\"\nimport { on } from '@/hooks'\nimport { listen } from '@/utils'\n\ndirective('loading', ({ el, directive, component, cleanup }) => {\n let { targets, inverted } = getTargets(el)\n\n let [delay, abortDelay] = applyDelay(directive)\n\n let cleanupA = whenTargetsArePartOfRequest(component, targets, inverted, [\n () => delay(() => toggleBooleanStateDirective(el, directive, true)),\n () => abortDelay(() => toggleBooleanStateDirective(el, directive, false)),\n ])\n\n let cleanupB = whenTargetsArePartOfFileUpload(component, targets, [\n () => delay(() => toggleBooleanStateDirective(el, directive, true)),\n () => abortDelay(() => toggleBooleanStateDirective(el, directive, false)),\n ])\n\n cleanup(() => {\n cleanupA()\n cleanupB()\n })\n})\n\nfunction applyDelay(directive) {\n if (! directive.modifiers.includes('delay') || directive.modifiers.includes('none')) return [i => i(), i => i()]\n\n let duration = 200\n\n let delayModifiers = {\n 'shortest': 50,\n 'shorter': 100,\n 'short': 150,\n 'default': 200,\n 'long': 300,\n 'longer': 500,\n 'longest': 1000,\n }\n\n Object.keys(delayModifiers).some(key => {\n if (directive.modifiers.includes(key)) {\n duration = delayModifiers[key]\n\n return true\n }\n })\n\n let timeout\n let started = false\n\n return [\n (callback) => { // Initiate delay...\n timeout = setTimeout(() => {\n callback()\n\n started = true\n }, duration)\n },\n async (callback) => { // Execute or abort...\n if (started) {\n await callback()\n started = false\n } else {\n clearTimeout(timeout)\n }\n },\n ]\n}\n\nfunction whenTargetsArePartOfRequest(component, targets, inverted, [ startLoading, endLoading ]) {\n return on('commit', ({ component: iComponent, commit: payload, respond }) => {\n if (iComponent !== component) return\n\n if (targets.length > 0 && containsTargets(payload, targets) === inverted) return\n\n startLoading()\n\n respond(() => {\n endLoading()\n })\n })\n}\n\nfunction whenTargetsArePartOfFileUpload(component, targets, [ startLoading, endLoading ]) {\n let eventMismatch = e => {\n let { id, property } = e.detail\n\n if (id !== component.id) return true\n if (targets.length > 0 && ! targets.map(i => i.target).includes(property)) return true\n\n return false\n }\n\n let cleanupA = listen(window, 'livewire-upload-start', e => {\n if (eventMismatch(e)) return\n\n startLoading()\n })\n\n let cleanupB = listen(window, 'livewire-upload-finish', e => {\n if (eventMismatch(e)) return\n\n endLoading()\n })\n\n let cleanupC = listen(window, 'livewire-upload-error', e => {\n if (eventMismatch(e)) return\n\n endLoading()\n })\n\n return () => {\n cleanupA()\n cleanupB()\n cleanupC()\n }\n}\n\nfunction containsTargets(payload, targets) {\n let { updates, calls } = payload\n\n return targets.some(({ target, params }) => {\n if (params) {\n return calls.some(({ method, params: methodParams }) => {\n return target === method\n && params === quickHash(JSON.stringify(methodParams))\n })\n }\n\n let hasMatchingUpdate = Object.keys(updates).some(property => {\n // If the property is nested, like `foo.bar`, we need to check if the root `foo` is the target.\n if (property.includes('.')) {\n let propertyRoot = property.split('.')[0]\n\n if (propertyRoot === target) return true\n }\n\n return property === target\n })\n\n if (hasMatchingUpdate) return true\n\n if (calls.map(i => i.method).includes(target)) return true\n })\n}\n\nfunction getTargets(el) {\n let directives = getDirectives(el)\n\n let targets = []\n\n let inverted = false\n\n if (directives.has('target')) {\n let directive = directives.get('target')\n\n let raw = directive.expression\n\n if (directive.modifiers.includes(\"except\")) inverted = true\n\n if (raw.includes('(') && raw.includes(')')) {\n targets.push({ target: directive.method, params: quickHash(JSON.stringify(directive.params)) })\n } else if (raw.includes(',')) {\n raw.split(',').map(i => i.trim()).forEach(target => {\n targets.push({ target })\n })\n } else {\n targets.push({ target: raw })\n }\n } else {\n // If there is no wire:target, let's check for the existance of a wire:click=\"foo\" or something,\n // and automatically scope this loading directive to that action.\n let nonActionOrModelLivewireDirectives = [ 'init', 'dirty', 'offline', 'target', 'loading', 'poll', 'ignore', 'key', 'id' ]\n\n directives\n .all()\n .filter(i => ! nonActionOrModelLivewireDirectives.includes(i.value))\n .map(i => i.expression.split('(')[0])\n .forEach(target => targets.push({ target }))\n }\n\n return { targets, inverted }\n}\n\nfunction quickHash(subject) {\n return btoa(encodeURIComponent(subject))\n}\n", "import { contentIsFromDump } from '@/utils'\nimport { directive } from '@/directives'\nimport { on, trigger } from '@/hooks'\n\ndirective('stream', ({el, directive, cleanup }) => {\n let { expression, modifiers } = directive\n\n let off = on('stream', ({ name, content, replace }) => {\n if (name !== expression) return\n\n if (modifiers.includes('replace') || replace) {\n el.innerHTML = content\n } else {\n el.innerHTML = el.innerHTML + content\n }\n })\n\n cleanup(off)\n})\n\non('request', ({ respond }) => {\n respond(mutableObject => {\n let response = mutableObject.response\n\n if (! response.headers.has('X-Livewire-Stream')) return\n\n mutableObject.response = {\n ok: true,\n redirected: false,\n status: 200,\n\n async text() {\n let finalResponse = await interceptStreamAndReturnFinalResponse(response, streamed => {\n trigger('stream', streamed)\n })\n\n if (contentIsFromDump(finalResponse)) {\n this.ok = false\n }\n\n return finalResponse\n }\n }\n })\n})\n\nasync function interceptStreamAndReturnFinalResponse(response, callback) {\n let reader = response.body.getReader()\n let remainingResponse = ''\n\n while (true) {\n let { done, value: chunk } = await reader.read()\n\n let decoder = new TextDecoder\n let output = decoder.decode(chunk)\n\n let [ streams, remaining ] = extractStreamObjects(remainingResponse + output)\n\n streams.forEach(stream => {\n callback(stream)\n })\n\n remainingResponse = remaining\n\n if (done) return remainingResponse\n }\n}\n\nfunction extractStreamObjects(raw) {\n let regex = /({\"stream\":true.*?\"endStream\":true})/g\n\n let matches = raw.match(regex)\n\n let parsed = []\n\n if (matches) {\n for (let i = 0; i < matches.length; i++) {\n parsed.push(JSON.parse(matches[i]).body)\n }\n }\n\n let remaining = raw.replace(regex, '');\n\n return [ parsed, remaining ];\n}\n", "import { directive } from \"@/directives\"\n\ndirective('replace', ({ el, directive }) => {\n if (directive.modifiers.includes('self')) {\n el.__livewire_replace_self = true\n } else {\n el.__livewire_replace = true\n }\n})\n", "import { directive } from \"@/directives\"\n\ndirective('ignore', ({ el, directive }) => {\n if (directive.modifiers.includes('self')) {\n el.__livewire_ignore_self = true\n } else {\n el.__livewire_ignore = true\n }\n})\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive, getDirectives } from '@/directives'\nimport { dataGet, WeakBag } from '@/utils'\nimport { on } from '@/hooks'\n\nlet refreshDirtyStatesByComponent = new WeakBag\n\non('commit', ({ component, respond }) => {\n respond(() => {\n setTimeout(() => { // Doing a \"setTimeout\" to let morphdom do its thing first...\n refreshDirtyStatesByComponent.each(component, i => i(false))\n })\n })\n})\n\ndirective('dirty', ({ el, directive, component }) => {\n let targets = dirtyTargets(el)\n\n let dirty = Alpine.reactive({ state: false })\n\n let oldIsDirty = false\n\n let initialDisplay = el.style.display\n\n let refreshDirtyState = (isDirty) => {\n toggleBooleanStateDirective(el, directive, isDirty, initialDisplay)\n\n oldIsDirty = isDirty\n }\n\n refreshDirtyStatesByComponent.add(component, refreshDirtyState)\n\n Alpine.effect(() => {\n let isDirty = false\n\n if (targets.length === 0) {\n isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive)\n } else {\n for (let i = 0; i < targets.length; i++) {\n if (isDirty) break;\n\n let target = targets[i]\n\n isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target))\n }\n }\n\n if (oldIsDirty !== isDirty) {\n refreshDirtyState(isDirty)\n }\n\n oldIsDirty = isDirty\n })\n})\n\nfunction dirtyTargets(el) {\n let directives = getDirectives(el)\n let targets = []\n\n if (directives.has('model')) {\n targets.push(directives.get('model').expression)\n }\n\n if (directives.has('target')) {\n targets = targets.concat(\n directives\n .get('target')\n .expression.split(',')\n .map(s => s.trim())\n )\n }\n\n return targets\n}\n", "import { directive } from '@/directives'\nimport { handleFileUpload } from '@/features/supportFileUploads'\nimport { closestComponent } from '@/store'\nimport { dataGet, dataSet } from '@/utils'\nimport Alpine from 'alpinejs'\n\ndirective('model', ({ el, directive, component, cleanup }) => {\n let { expression, modifiers } = directive\n\n if (! expression) {\n return console.warn('Livewire: [wire:model] is missing a value.', el)\n }\n\n if (componentIsMissingProperty(component, expression)) {\n return console.warn('Livewire: [wire:model=\"'+expression+'\"] property does not exist on component: ['+component.name+']', el)\n }\n\n // Handle file uploads differently...\n if (el.type && el.type.toLowerCase() === 'file') {\n return handleFileUpload(el, expression, component, cleanup)\n }\n\n let isLive = modifiers.includes('live')\n let isLazy = modifiers.includes('lazy') || modifiers.includes('change')\n let onBlur = modifiers.includes('blur')\n let isDebounced = modifiers.includes('debounce')\n\n // Trigger a network request (only if .live or .lazy is added to wire:model)...\n let update = expression.startsWith('$parent')\n ? () => component.$wire.$parent.$commit()\n : () => component.$wire.$commit()\n\n // If a plain wire:model is added to a text input, debounce the\n // trigerring of network requests.\n let debouncedUpdate = isTextInput(el) && ! isDebounced && isLive\n ? debounce(update, 150)\n : update\n\n Alpine.bind(el, {\n ['@change']() {\n isLazy && update()\n },\n ['@blur']() {\n onBlur && update()\n },\n ['x-model' + getModifierTail(modifiers)]() {\n return {\n get() {\n return dataGet(component.$wire, expression)\n },\n set(value) {\n dataSet(component.$wire, expression, value)\n\n isLive && (! isLazy) && (! onBlur) && debouncedUpdate()\n },\n }\n }\n })\n})\n\nfunction getModifierTail(modifiers) {\n modifiers = modifiers.filter(i => ! [\n 'lazy', 'defer'\n ].includes(i))\n\n if (modifiers.length === 0) return ''\n\n return '.' + modifiers.join('.')\n}\n\nfunction isTextInput(el) {\n return (\n ['INPUT', 'TEXTAREA'].includes(el.tagName.toUpperCase()) &&\n !['checkbox', 'radio'].includes(el.type)\n )\n}\n\nfunction isDirty(subject, dirty) {\n // Check for exact match: wire:model=\"bob\" in ['bob']\n if (dirty.includes(subject)) return true\n\n // Check case of parent: wire:model=\"bob.1\" in ['bob']\n return dirty.some(i => subject.startsWith(i))\n}\n\nfunction componentIsMissingProperty(component, property) {\n if (property.startsWith('$parent')) {\n let parent = closestComponent(component.el.parentElement, false)\n\n if (! parent) return true\n\n return componentIsMissingProperty(parent, property.split('$parent.')[1])\n }\n\n let baseProperty = property.split('.')[0]\n\n return ! Object.keys(component.canonical).includes(baseProperty)\n}\n\nfunction debounce(func, wait) {\n var timeout;\n\n return function() {\n var context = this, args = arguments;\n\n var later = function() {\n timeout = null\n\n func.apply(context, args)\n }\n\n clearTimeout(timeout)\n\n timeout = setTimeout(later, wait)\n }\n}\n", "import { directive } from \"@/directives\"\nimport Alpine from 'alpinejs'\n\ndirective('init', ({ el, directive }) => {\n let fullMethod = directive.expression ?? '$refresh'\n\n Alpine.evaluate(el, `$wire.${fullMethod}`)\n})\n\n", "import { directive, getDirectives } from \"@/directives\"\nimport Alpine from 'alpinejs'\n\ndirective('poll', ({ el, directive }) => {\n let interval = extractDurationFrom(directive.modifiers, 2000)\n\n let { start, pauseWhile, throttleWhile, stopWhen } = poll(() => {\n triggerComponentRequest(el, directive)\n }, interval)\n\n start()\n\n throttleWhile(() => theTabIsInTheBackground() && theDirectiveIsMissingKeepAlive(directive))\n pauseWhile(() => theDirectiveHasVisible(directive) && theElementIsNotInTheViewport(el))\n pauseWhile(() => theDirectiveIsOffTheElement(el))\n pauseWhile(() => livewireIsOffline())\n stopWhen(() => theElementIsDisconnected(el))\n})\n\nfunction triggerComponentRequest(el, directive) {\n Alpine.evaluate(el,\n directive.expression ? '$wire.' + directive.expression : '$wire.$commit()'\n )\n}\n\nfunction poll(callback, interval = 2000) {\n let pauseConditions = []\n let throttleConditions = []\n let stopConditions = []\n\n return {\n start() {\n let clear = syncronizedInterval(interval, () => {\n if (stopConditions.some(i => i())) return clear()\n if (pauseConditions.some(i => i())) return\n if (throttleConditions.some(i => i()) && Math.random() < .95) return\n\n callback()\n })\n },\n pauseWhile(condition) {\n pauseConditions.push(condition)\n },\n throttleWhile(condition) {\n throttleConditions.push(condition)\n },\n stopWhen(condition) {\n stopConditions.push(condition)\n }\n }\n}\n\nlet clocks = []\n\nfunction syncronizedInterval(ms, callback) {\n if (! clocks[ms]) {\n let clock = {\n timer: setInterval(() => clock.callbacks.forEach(i => i()), ms),\n callbacks: new Set,\n }\n\n clocks[ms] = clock\n }\n\n clocks[ms].callbacks.add(callback)\n\n return () => {\n clocks[ms].callbacks.delete(callback)\n\n if (clocks[ms].callbacks.size === 0) {\n clearInterval(clocks[ms].timer)\n delete clocks[ms]\n }\n }\n}\n\nlet isOffline = false\n\nwindow.addEventListener('offline', () => isOffline = true)\nwindow.addEventListener('online', () => isOffline = false)\n\nfunction livewireIsOffline() {\n return isOffline\n}\n\nlet inBackground = false\n\ndocument.addEventListener('visibilitychange', () => { inBackground = document.hidden }, false)\n\nfunction theTabIsInTheBackground() {\n return inBackground\n}\n\nfunction theDirectiveIsOffTheElement(el) {\n return ! getDirectives(el).has('poll')\n}\n\nfunction theDirectiveIsMissingKeepAlive(directive) {\n return ! directive.modifiers.includes('keep-alive')\n}\n\nfunction theDirectiveHasVisible(directive) {\n return directive.modifiers.includes('visible')\n}\n\nfunction theElementIsNotInTheViewport(el) {\n let bounding = el.getBoundingClientRect()\n\n return ! (\n bounding.top < (window.innerHeight || document.documentElement.clientHeight) &&\n bounding.left < (window.innerWidth || document.documentElement.clientWidth) &&\n bounding.bottom > 0 &&\n bounding.right > 0\n )\n}\n\nfunction theElementIsDisconnected(el) {\n return el.isConnected === false\n}\n\nfunction extractDurationFrom(modifiers, defaultDuration) {\n let durationInMilliSeconds\n let durationInMilliSecondsString = modifiers.find(mod => mod.match(/([0-9]+)ms/))\n let durationInSecondsString = modifiers.find(mod => mod.match(/([0-9]+)s/))\n\n if (durationInMilliSecondsString) {\n durationInMilliSeconds = Number(durationInMilliSecondsString.replace('ms', ''))\n } else if (durationInSecondsString) {\n durationInMilliSeconds = Number(durationInSecondsString.replace('s', '')) * 1000\n }\n\n return durationInMilliSeconds || defaultDuration\n}\n", "import { dispatchGlobal as dispatch, dispatchTo, on } from './events'\nimport { find, first, getByName, all } from './store'\nimport { start } from './lifecycle'\nimport { on as hook, trigger, triggerAsync } from './hooks'\nimport { directive } from './directives'\nimport Alpine from 'alpinejs'\n\nlet Livewire = {\n directive,\n dispatchTo,\n start,\n first,\n find,\n getByName,\n all,\n hook,\n trigger,\n triggerAsync,\n dispatch,\n on,\n get navigate() {\n return Alpine.navigate\n }\n}\n\nlet warnAboutMultipleInstancesOf = entity => console.warn(`Detected multiple instances of ${entity} running`)\n\nif (window.Livewire) warnAboutMultipleInstancesOf('Livewire')\nif (window.Alpine) warnAboutMultipleInstancesOf('Alpine')\n\n// Register features...\nimport './features/index'\n\n// Register directives...\nimport './directives/index'\n\n// Make globals...\nwindow.Livewire = Livewire\nwindow.Alpine = Alpine\n\nif (window.livewireScriptConfig === undefined) {\n window.Alpine.__fromLivewire = true\n\n document.addEventListener('DOMContentLoaded', () => {\n if (window.Alpine.__fromLivewire === undefined) {\n // If this is undefined, we know that an outside Alpine bundle\n // has been included on the page and will cause problems...\n warnAboutMultipleInstancesOf('Alpine')\n }\n\n // Start Livewire...\n Livewire.start()\n })\n}\n\nexport { Livewire, Alpine }\n"], - "mappings": "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", - "names": [] + "sources": ["../node_modules/nprogress/nprogress.js", "../js/utils.js", "../js/features/supportFileUploads.js", "../node_modules/alpinejs/dist/module.esm.js", "../js/features/supportEntangle.js", "../js/hooks.js", "../js/request/interactions.js", "../js/request/request.js", "../js/request/interceptor.js", "../js/utils/modal.js", "../js/request/messageBus.js", "../js/request/message.js", "../js/request/action.js", "../js/request/legacy.js", "../js/request/index.js", "../js/features/supportErrors.js", "../js/features/supportRefs.js", "../js/directives.js", "../js/directives/shared.js", "../js/directives/wire-dirty.js", "../js/features/supportJsModules.js", "../js/$wire.js", "../js/component.js", "../js/fragment.js", "../js/store.js", "../js/events.js", "../node_modules/@alpinejs/collapse/dist/module.esm.js", "../node_modules/@alpinejs/focus/dist/module.esm.js", "../node_modules/@alpinejs/persist/dist/module.esm.js", "../node_modules/@alpinejs/intersect/dist/module.esm.js", "../node_modules/@alpinejs/sort/dist/module.esm.js", "../node_modules/@alpinejs/resize/dist/module.esm.js", "../node_modules/@alpinejs/anchor/dist/module.esm.js", "../js/plugins/history/utils.js", "../js/plugins/history/coordinator.js", "../js/plugins/navigate/history.js", "../js/plugins/navigate/links.js", "../js/plugins/navigate/fetch.js", "../js/plugins/navigate/prefetch.js", "../js/plugins/navigate/teleport.js", "../js/plugins/navigate/scroll.js", "../js/plugins/navigate/persist.js", "../js/plugins/navigate/bar.js", "../js/plugins/navigate/popover.js", "../js/plugins/navigate/page.js", "../js/plugins/navigate/index.js", "../js/plugins/history/index.js", "../node_modules/@alpinejs/morph/dist/module.esm.js", "../node_modules/@alpinejs/mask/dist/module.esm.js", "../js/lifecycle.js", "../js/features/supportListeners.js", "../js/evaluator.js", "../js/features/supportScriptsAndAssets.js", "../js/features/supportJsEvaluation.js", "../js/directives/wire-transition.js", "../js/morph.js", "../js/features/supportMorphDom.js", "../js/features/supportDispatches.js", "../js/features/supportDisablingFormsDuringRequest.js", "../js/features/supportFileDownloads.js", "../js/features/supportQueryString.js", "../js/features/supportLaravelEcho.js", "../js/features/supportStreaming.js", "../js/features/supportNavigate.js", "../js/features/supportRedirects.js", "../js/features/supportIslands.js", "../js/features/supportSlots.js", "../js/features/supportDataLoading.js", "../js/directives/wire-current.js", "../js/directives/wire-navigate.js", "../js/features/supportDataCurrent.js", "../js/features/supportPreserveScroll.js", "../js/features/supportWireIntersect.js", "../js/features/supportWireSort.js", "../js/features/supportCssModules.js", "../js/debounce.js", "../js/directives/wire-wildcard.js", "../js/directives/wire-confirm.js", "../js/directives/wire-offline.js", "../js/directives/wire-loading.js", "../js/directives/wire-replace.js", "../js/directives/wire-ignore.js", "../js/directives/wire-cloak.js", "../js/directives/wire-model.js", "../js/directives/wire-init.js", "../js/directives/wire-poll.js", "../js/directives/wire-show.js", "../js/directives/wire-text.js", "../js/directives/wire-bind.js", "../js/index.js"], + "sourcesContent": ["/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n", "\nexport class Bag {\n constructor() { this.arrays = {} }\n\n add(key, value) {\n if (! this.arrays[key]) this.arrays[key] = []\n this.arrays[key].push(value)\n }\n\n remove(key) {\n if (this.arrays[key]) delete this.arrays[key]\n }\n\n get(key) { return this.arrays[key] || [] }\n\n each(key, callback) { return this.get(key).forEach(callback) }\n}\n\nexport class WeakBag {\n constructor() { this.arrays = new WeakMap }\n\n add(key, value) {\n if (! this.arrays.has(key)) this.arrays.set(key, [])\n this.arrays.get(key).push(value)\n }\n\n remove(key) {\n if (this.arrays.has(key)) this.arrays.delete(key, [])\n }\n\n get(key) { return this.arrays.has(key) ? this.arrays.get(key) : [] }\n\n each(key, callback) { return this.get(key).forEach(callback) }\n}\n\nexport function dispatch(target, name, detail = {}, bubbles = true) {\n target.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true,\n })\n )\n}\n\nexport function listen(target, name, handler) {\n target.addEventListener(name, handler)\n\n return () => target.removeEventListener(name, handler)\n}\n\n/**\n * Type-checking in JS is weird and annoying, these are better.\n */\nexport function isObjecty(subject) { return (typeof subject === 'object' && subject !== null) }\nexport function isObject(subject) { return (isObjecty(subject) && ! isArray(subject)) }\nexport function isArray(subject) { return Array.isArray(subject) }\nexport function isFunction(subject) { return typeof subject === 'function' }\nexport function isPrimitive(subject) { return typeof subject !== 'object' || subject === null }\n\n/**\n * Clone an object deeply to wipe out any shared references.\n */\nexport function deepClone(obj) { return JSON.parse(JSON.stringify(obj)) }\n\n/**\n * Determine if two objects take the exact same shape.\n */\nexport function deeplyEqual(a, b) { return JSON.stringify(a) === JSON.stringify(b) }\n\n/**\n * An easy way to loop through arrays and objects.\n */\nexport function each(subject, callback) {\n Object.entries(subject).forEach(([key, value]) => callback(key, value))\n}\n\n/**\n * Parse a path string into segments, supporting dot and bracket notation.\n * e.g. \"foo.bar\", \"foo[0].bar\", \"foo['hey'].baz\"\n */\nfunction parsePathSegments(path) {\n if (path === '') return []\n\n return path\n .replace(/\\[(['\"]?)(.+?)\\1\\]/g, '.$2') // Convert brackets to dots: foo['bar'] \u2192 foo.bar, foo[0] \u2192 foo.0\n .replace(/^\\./, '') // Remove leading dot if present\n .split('.')\n}\n\n/**\n * Get a property from an object with support for dot-notation and bracket-notation.\n */\nexport function dataGet(object, key) {\n if (key === '') return object\n\n return parsePathSegments(key).reduce((carry, i) => {\n return carry?.[i]\n }, object)\n}\n\n/**\n * Set a property on an object with support for dot-notation and bracket-notation.\n */\nexport function dataSet(object, key, value) {\n let segments = parsePathSegments(key)\n\n if (segments.length === 1) {\n return object[segments[0]] = value\n }\n\n let firstSegment = segments.shift()\n let restOfSegments = segments.join('.')\n let nextSegment = segments[0]\n\n if (object[firstSegment] === undefined) {\n object[firstSegment] = {}\n }\n\n // If we're about to set a numeric key that would create null gaps, convert to object.\n // This prevents JavaScript from filling intermediate indices with nulls\n // (e.g., arr[1000] = true creates 1000 null entries in a JS array).\n // We only convert when the key would create gaps (key > length), not when appending.\n if (isArray(object[firstSegment]) && isNumeric(nextSegment) && parseInt(nextSegment) > object[firstSegment].length) {\n object[firstSegment] = { ...object[firstSegment] }\n }\n\n dataSet(object[firstSegment], restOfSegments, value)\n}\n\nfunction isNumeric(subject) {\n return ! isNaN(parseInt(subject))\n}\n\n/**\n * Delete a property from an object with support for dot-notation and bracket-notation.\n */\nexport function dataDelete(object, key) {\n let segments = parsePathSegments(key)\n\n if (segments.length === 1) {\n if (Array.isArray(object)) {\n object.splice(segments[0], 1)\n } else {\n delete object[segments[0]]\n }\n return\n }\n\n let firstSegment = segments.shift()\n let restOfSegments = segments.join('.')\n\n if (object[firstSegment] !== undefined) {\n dataDelete(object[firstSegment], restOfSegments)\n }\n}\n\n/**\n * Create a flat, dot-notated diff of two objects.\n * @deprecated Use diffAndConsolidate instead for smarter update consolidation\n */\nexport function diff(left, right, diffs = {}, path = '') {\n // Are they the same?\n if (left === right) return diffs\n\n // Are they COMPLETELY different?\n if (typeof left !== typeof right || (isObject(left) && isArray(right)) || (isArray(left) && isObject(right))) {\n diffs[path] = right;\n return diffs\n }\n\n // Is the right or left side a primitive value (a leaf node)?\n if (isPrimitive(left) || isPrimitive(right)) {\n diffs[path] = right\n return diffs\n }\n\n // We now know both are objects...\n let leftKeys = Object.keys(left)\n let rightKeys = Object.keys(right)\n\n // Did the key order change? (includes insertions that shift existing keys)\n if (isObject(left) && leftKeys.some((key, i) => key !== rightKeys[i])) {\n diffs[path] = right\n return diffs\n }\n\n // Recursively diff the object's properties...\n Object.entries(right).forEach(([key, value]) => {\n diffs = {...diffs, ...diff(left[key], right[key], diffs, path === '' ? key : `${path}.${key}`)}\n leftKeys = leftKeys.filter(i => i !== key)\n })\n\n // Mark any items for removal...\n leftKeys.forEach(key => {\n diffs[`${path}.${key}`] = '__rm__'\n })\n\n return diffs\n}\n\n/**\n * Create a flat, dot-notated diff of two objects with automatic consolidation.\n * When multiple items in an array/object change or the size changes,\n * the diff is consolidated to the parent level instead of individual items.\n */\nexport function diffAndConsolidate(left, right) {\n let diffs = {}\n\n diffRecursive(left, right, '', diffs, left, right)\n\n return diffs\n}\n\nfunction diffRecursive(left, right, path, diffs, rootLeft, rootRight) {\n // Are they the same?\n if (left === right) return { changed: false, consolidated: false }\n\n // Track if we're doing a type conversion from empty array/null/undefined to object\n // In this case, we want granular diffs, not consolidation\n let convertedToObject = false\n\n // Helper to check if an array has non-numeric (string) keys\n // Arrays with string keys need granular diffs because JSON.stringify ignores them\n let hasNonNumericKeys = (arr) => {\n return isArray(arr) && Object.keys(arr).some(k => isNaN(parseInt(k)))\n }\n\n // Are they COMPLETELY different types?\n if (typeof left !== typeof right || (isObject(left) && isArray(right)) || (isArray(left) && isObject(right))) {\n // Special case: if left is an empty array and right is an object,\n // treat the empty array as an empty object so we get granular diffs.\n // This handles the case where wire:model.live=\"tableFilters.filter_1.value\"\n // updates tableFilters from [] to { filter_1: { value: 'foo' } }\n if (isArray(left) && left.length === 0 && isObject(right)) {\n left = {}\n convertedToObject = true\n // Fall through to continue with object comparison below\n }\n // Special case: if left is undefined/null and right is an object,\n // treat left as an empty object to get granular diffs for new properties\n else if ((left === undefined || left === null) && isObject(right)) {\n left = {}\n convertedToObject = true\n // Fall through to continue with object comparison below\n } else {\n diffs[path] = right\n return { changed: true, consolidated: false }\n }\n }\n\n // Special case: if both are arrays but right has non-numeric keys,\n // we need granular diffs because JSON.stringify ignores string keys on arrays.\n // Treat both as objects to properly diff the string keys.\n if (isArray(left) && isArray(right) && hasNonNumericKeys(right)) {\n // Treat the arrays as objects for comparison\n // If left was empty, mark as converted to object to prevent consolidation\n if (Object.keys(left).length === 0) {\n convertedToObject = true\n }\n }\n\n // Is either side a primitive value (a leaf node)?\n if (isPrimitive(left) || isPrimitive(right)) {\n diffs[path] = right\n return { changed: true, consolidated: false }\n }\n\n // Both are objects/arrays - check if we should consolidate at this level\n let leftKeys = Object.keys(left)\n let rightKeys = Object.keys(right)\n\n // If the size changed, consolidate at this level\n // BUT if we converted to object, don't consolidate - we're adding new items\n // and should produce granular diffs for query string handling\n if (leftKeys.length !== rightKeys.length && !convertedToObject) {\n // For root level, we can't consolidate to a single key, so diff each root property\n if (path === '') {\n Object.keys(right).forEach(key => {\n if (!deeplyEqual(left[key], right[key])) {\n diffs[key] = right[key]\n }\n })\n return { changed: true, consolidated: true }\n }\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n\n // Did the key order change?\n if (isObject(left) && leftKeys.length === rightKeys.length && leftKeys.some((key, i) => key !== rightKeys[i])) {\n if (path !== '') {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n }\n\n // Check if all keys are the same (no additions/removals)\n let keysMatch = leftKeys.every(k => rightKeys.includes(k))\n\n if (!keysMatch && !convertedToObject) {\n // Keys differ (some added, some removed) - consolidate\n if (path !== '') {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n }\n\n // Recursively diff children\n let childDiffs = {}\n let changedCount = 0\n let consolidatedCount = 0\n let totalChildren = rightKeys.length\n\n rightKeys.forEach(key => {\n let childPath = path === '' ? key : `${path}.${key}`\n let result = diffRecursive(left[key], right[key], childPath, childDiffs, rootLeft, rootRight)\n if (result.changed) changedCount++\n if (result.consolidated) consolidatedCount++\n })\n\n // If all children changed AND none of them were already consolidated, consolidate to this level\n // (unless we're at root). This prevents double-consolidation up the tree.\n // ALSO skip consolidation if we converted to object - we're adding new items, not replacing\n // Only consolidate if there are MULTIPLE children - single property changes should remain granular\n // for wire:target to work correctly (e.g., wire:target=\"form.text\" needs \"form.text\" not \"form\")\n if (path !== '' && totalChildren > 1 && changedCount === totalChildren && consolidatedCount === 0 && !convertedToObject) {\n diffs[path] = dataGet(rootRight, path)\n return { changed: true, consolidated: true }\n }\n\n // Otherwise, add individual child diffs\n Object.assign(diffs, childDiffs)\n\n // If any child was consolidated, bubble that up to prevent further consolidation\n // Also bubble up convertedToObject to prevent parent consolidation from\n // JSON-serializing arrays with non-numeric keys (which JSON.stringify ignores)\n return { changed: changedCount > 0, consolidated: consolidatedCount > 0 || convertedToObject }\n}\n\n/**\n * Diff two object trees (left = old, right = new) and patch the differences\n * onto a target object. Walks the trees directly via object key access,\n * avoiding dot-notated path strings which break when object keys contain dots.\n */\nexport function diffAndPatchRecursive(left, right, target) {\n let leftKeys = new Set(Object.keys(left || {}))\n let rightKeys = Object.keys(right)\n\n // If existing keys shifted position in an object (e.g. a key was inserted\n // in the middle), we can't patch key-by-key because new keys would be\n // appended at the end. Replace all keys on the target to preserve order.\n if (!isArray(target) && [...leftKeys].some((key, i) => key !== rightKeys[i])) {\n for (let key of Object.keys(target)) delete target[key]\n for (let key of rightKeys) target[key] = right[key]\n return\n }\n\n rightKeys.forEach(key => {\n leftKeys.delete(key)\n\n if (deeplyEqual(left?.[key], right[key])) return\n\n if (isObjecty(left?.[key]) && isObjecty(right[key]) && isObjecty(target[key])\n && isArray(right[key]) === isArray(target[key])) {\n diffAndPatchRecursive(left[key], right[key], target[key])\n } else {\n target[key] = right[key]\n }\n })\n\n // Handle removals \u2014 keys present in left but not in right.\n // Sort in reverse numeric order so array splice indices stay valid.\n let removedKeys = [...leftKeys]\n\n removedKeys.sort((a, b) => {\n let aNum = parseInt(a) || 0\n let bNum = parseInt(b) || 0\n return bNum - aNum\n }).forEach(key => {\n if (isArray(target)) {\n target.splice(parseInt(key), 1)\n } else {\n delete target[key]\n }\n })\n}\n\n/**\n * The data that's passed between the browser and server is in the form of\n * nested tuples consisting of the schema: [rawValue, metadata]. In this\n * method we're extracting the plain JS object of only the raw values.\n */\nexport function extractData(payload) {\n let value = isSynthetic(payload) ? payload[0] : payload\n let meta = isSynthetic(payload) ? payload[1] : undefined\n\n if (isObjecty(value)) {\n Object.entries(value).forEach(([key, iValue]) => {\n value[key] = extractData(iValue)\n })\n }\n\n return value\n}\n\n/**\n * Determine if the variable passed in is a node in a nested metadata\n * tuple tree. (Meaning it takes the form of: [rawData, metadata])\n */\nexport function isSynthetic(subject) {\n return Array.isArray(subject)\n && subject.length === 2\n && typeof subject[1] === 'object'\n && Object.keys(subject[1]).includes('s')\n}\n\n/**\n * Post requests in Laravel require a csrf token to be passed\n * along with the payload. Here, we'll try and locate one.\n */\nexport function getCsrfToken() {\n // Purposely not caching. Fetching it fresh every time ensures we're\n // not depending on a stale session's CSRF token...\n\n if (document.querySelector('meta[name=\"csrf-token\"]')) {\n return document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content')\n }\n\n if (document.querySelector('[data-csrf]')) {\n return document.querySelector('[data-csrf]').getAttribute('data-csrf')\n }\n\n if (window.livewireScriptConfig['csrf'] ?? false) {\n return window.livewireScriptConfig['csrf']\n }\n\n throw 'Livewire: No CSRF token detected'\n}\n\nlet nonce;\n\nexport function getNonce() {\n if (nonce) return nonce\n\n\n if (window.livewireScriptConfig && (window.livewireScriptConfig['nonce'] ?? false)) {\n nonce = window.livewireScriptConfig['nonce']\n\n return nonce\n }\n\n let elWithNonce = document.querySelector('style[data-livewire-style][nonce]')\n\n if (elWithNonce) {\n nonce = elWithNonce.nonce\n\n return nonce\n }\n\n return null\n}\n\nexport function replaceNoncesInHtml(html) {\n let nonce = getNonce()\n if (! nonce) return html\n\n let nonceMatch = html.match(/nonce=\"([^\"]+)\"/)\n if (! nonceMatch) return html\n\n let newNonce = nonceMatch[1]\n if (newNonce === nonce) return html\n\n return html.replaceAll(`nonce=\"${newNonce}\"`, `nonce=\"${nonce}\"`)\n}\n\nexport function cloneScriptTag(el) {\n let script = document.createElement('script')\n\n script.textContent = el.textContent\n script.async = el.async\n\n for (let attr of el.attributes) {\n if (attr.name === 'nonce') {\n // Browsers clear .nonce from DOMParser-parsed elements,\n // so fall back to the page's original nonce...\n script.nonce = getNonce() || el.nonce\n } else {\n script.setAttribute(attr.name, attr.value)\n }\n }\n\n return script\n}\n\n/**\n * Livewire's base URL for loading JS/CSS modules.\n * Returns a full URL including origin, generated by PHP's url() helper.\n */\nexport function getModuleUrl() {\n return document.querySelector('[data-module-url]')?.getAttribute('data-module-url') ?? window.livewireScriptConfig['moduleUrl'] ?? null\n}\n\n/**\n * Livewire's update URI. This is configurable via Livewire::setUpdateRoute(...)\n */\nexport function getUpdateUri() {\n return document.querySelector('[data-update-uri]')?.getAttribute('data-update-uri') ?? window.livewireScriptConfig['uri'] ?? null\n}\n\nexport function contentIsFromDump(content) {\n return !! content.match(/<script>Sfdump\\(\".+\"\\)<\\/script>/)\n}\n\nexport function splitDumpFromContent(content) {\n let dump = content.match(/.*<script>Sfdump\\(\".+\"\\)<\\/script>/s)\n\n return [dump, content.replace(dump, '')]\n}\n\nexport function walkUpwards(el, callback) {\n let current = el\n\n while (current) {\n let stop = undefined\n\n callback(current, { stop: (value) => value === undefined ? stop = current : stop = value })\n\n if (stop !== undefined) return stop\n\n if (current._x_teleportBack) current = current._x_teleportBack\n\n current = current.parentElement\n }\n}\n\nexport function walkBackwards(el, callback) {\n let current = el\n\n while (current) {\n let stop = undefined\n\n callback(current, { stop: (value) => value === undefined ? stop = current : stop = value })\n\n if (stop !== undefined) return stop\n\n current = current.previousSibling\n }\n}\n", "import { getCsrfToken } from '@/utils';\n\nlet uploadManagers = new WeakMap\n\nfunction getUploadManager(component) {\n if (! uploadManagers.has(component)) {\n let manager = new UploadManager(component)\n\n uploadManagers.set(component, manager)\n\n manager.registerListeners()\n }\n\n return uploadManagers.get(component)\n}\n\nexport function handleFileUpload(el, property, component, cleanup) {\n let manager = getUploadManager(component)\n\n let start = () => el.dispatchEvent(new CustomEvent('livewire-upload-start', { bubbles: true, detail: { id: component.id, property} }))\n let finish = () => el.dispatchEvent(new CustomEvent('livewire-upload-finish', { bubbles: true, detail: { id: component.id, property} }))\n let error = () => el.dispatchEvent(new CustomEvent('livewire-upload-error', { bubbles: true, detail: { id: component.id, property} }))\n let cancel = () => el.dispatchEvent(new CustomEvent('livewire-upload-cancel', { bubbles: true, detail: { id: component.id, property} }))\n let progress = (progressEvent) => {\n var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total )\n\n el.dispatchEvent(\n new CustomEvent('livewire-upload-progress', {\n bubbles: true, detail: { progress: percentCompleted }\n })\n )\n }\n\n let eventHandler = e => {\n if (e.target.files.length === 0) return\n\n start()\n\n if (e.target.multiple) {\n manager.uploadMultiple(property, e.target.files, finish, error, progress, cancel)\n } else {\n manager.upload(property, e.target.files[0], finish, error, progress, cancel)\n }\n }\n\n el.addEventListener('change', eventHandler)\n\n // If the Livewire property has changed to null or an empty string, then reset the input...\n component.$wire.$watch(property, (value) => {\n // This watch will only be released when the component is removed. However, the\n // actual file-upload element may be removed from the DOM withou the entire\n // component being removed. In this case, let's just bail early on this.\n if (! el.isConnected) return\n\n if (value === null || value === '') {\n el.value = ''\n }\n \n // If the file input is a multiple file input and the value has been reset to an empty array, then reset the input...\n if (el.multiple && Array.isArray(value) && value.length === 0) {\n el.value = ''\n }\n })\n\n // There's a bug in browsers where selecting a file, removing it,\n // then re-adding it doesn't fire the change event. This fixes it.\n // Reference: https://stackoverflow.com/questions/12030686/html-input-file-selection-event-not-firing-upon-selecting-the-same-file\n let clearFileInputValue = () => { el.value = null }\n el.addEventListener('click', clearFileInputValue)\n\n // Clear the input if the uploaded is cancelled...\n el.addEventListener('livewire-upload-cancel', clearFileInputValue)\n\n cleanup(() => {\n el.removeEventListener('change', eventHandler)\n el.removeEventListener('click', clearFileInputValue)\n })\n}\n\nclass UploadManager {\n constructor(component) {\n this.component = component\n this.uploadBag = new MessageBag\n this.removeBag = new MessageBag\n }\n\n registerListeners() {\n this.component.$wire.$on('upload:generatedSignedUrl', ({ name, url }) => {\n // We have to add reduntant \"setLoading\" calls because the dom-patch\n // from the first response will clear the setUploadLoading call\n // from the first upload call.\n setUploadLoading(this.component, name)\n\n this.handleSignedUrl(name, url)\n })\n\n this.component.$wire.$on('upload:generatedSignedUrlForS3', ({ name, payload }) => {\n setUploadLoading(this.component, name)\n\n this.handleS3PreSignedUrl(name, payload)\n })\n\n this.component.$wire.$on('upload:finished', ({ name, tmpFilenames }) => this.markUploadFinished(name, tmpFilenames))\n this.component.$wire.$on('upload:errored', ({ name }) => this.markUploadErrored(name))\n this.component.$wire.$on('upload:removed', ({ name, tmpFilename }) => this.removeBag.shift(name).finishCallback(tmpFilename))\n }\n\n upload(name, file, finishCallback, errorCallback, progressCallback, cancelledCallback) {\n this.setUpload(name, {\n files: [file],\n multiple: false,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append: false,\n })\n }\n\n uploadMultiple(name, files, finishCallback, errorCallback, progressCallback, cancelledCallback, append = true) {\n this.setUpload(name, {\n files: Array.from(files),\n multiple: true,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append,\n })\n }\n\n removeUpload(name, tmpFilename, finishCallback) {\n this.removeBag.push(name, {\n tmpFilename, finishCallback\n })\n\n this.component.$wire.call('_removeUpload', name, tmpFilename);\n }\n\n setUpload(name, uploadObject) {\n this.uploadBag.add(name, uploadObject)\n\n if (this.uploadBag.get(name).length === 1) {\n this.startUpload(name, uploadObject)\n }\n }\n\n handleSignedUrl(name, url) {\n let formData = new FormData()\n Array.from(this.uploadBag.first(name).files).forEach(file => formData.append('files[]', file, file.name))\n\n let headers = {\n 'Accept': 'application/json',\n }\n\n let csrfToken = getCsrfToken()\n\n if (csrfToken) headers['X-CSRF-TOKEN'] = csrfToken\n\n this.makeRequest(name, formData, 'post', url, headers, response => {\n return response.paths\n })\n }\n\n handleS3PreSignedUrl(name, payload) {\n let formData = this.uploadBag.first(name).files[0]\n\n let headers = payload.headers\n if ('Host' in headers) delete headers.Host\n let url = payload.url\n\n this.makeRequest(name, formData, 'put', url, headers, response => {\n return [payload.path]\n })\n }\n\n makeRequest(name, formData, method, url, headers, retrievePaths) {\n let request = new XMLHttpRequest()\n\n request.open(method, url)\n\n Object.entries(headers).forEach(([key, value]) => {\n request.setRequestHeader(key, value)\n })\n\n request.upload.addEventListener('progress', e => {\n e.detail = {}\n e.detail.progress = Math.floor((e.loaded * 100) / e.total)\n\n this.uploadBag.first(name).progressCallback(e)\n })\n\n request.addEventListener('load', () => {\n if ((request.status+'')[0] === '2') {\n let paths = retrievePaths(request.response && JSON.parse(request.response))\n\n this.component.$wire.call('_finishUpload', name, paths, this.uploadBag.first(name).multiple, this.uploadBag.first(name).append)\n\n return\n }\n\n let errors = null\n\n if (request.status === 422) {\n errors = request.response\n }\n\n this.component.$wire.call('_uploadErrored', name, errors, this.uploadBag.first(name).multiple)\n })\n\n request.addEventListener('error', () => {\n this.component.$wire.call('_uploadErrored', name, null, this.uploadBag.first(name).multiple)\n })\n\n this.uploadBag.first(name).request = request\n\n request.send(formData)\n }\n\n startUpload(name, uploadObject) {\n let fileInfos = uploadObject.files.map(file => {\n return { name: file.name, size: file.size, type: file.type }\n })\n\n this.component.$wire.call('_startUpload', name, fileInfos, uploadObject.multiple);\n\n setUploadLoading(this.component, name)\n }\n\n markUploadFinished(name, tmpFilenames) {\n unsetUploadLoading(this.component)\n\n let uploadObject = this.uploadBag.shift(name)\n uploadObject.finishCallback(uploadObject.multiple ? tmpFilenames : tmpFilenames[0])\n\n if (this.uploadBag.get(name).length > 0) this.startUpload(name, this.uploadBag.last(name))\n }\n\n markUploadErrored(name) {\n unsetUploadLoading(this.component)\n\n this.uploadBag.shift(name).errorCallback()\n\n if (this.uploadBag.get(name).length > 0) this.startUpload(name, this.uploadBag.last(name))\n }\n\n cancelUpload(name, cancelledCallback = null) {\n unsetUploadLoading(this.component)\n\n let uploadItem = this.uploadBag.first(name);\n\n if (uploadItem) {\n if (uploadItem.request) {\n uploadItem.request.abort();\n }\n\n this.uploadBag.shift(name).cancelledCallback();\n\n if (cancelledCallback) cancelledCallback()\n }\n }\n}\n\nexport default class MessageBag {\n constructor() {\n this.bag = {}\n }\n\n add(name, thing) {\n if (! this.bag[name]) {\n this.bag[name] = []\n }\n\n this.bag[name].push(thing)\n }\n\n push(name, thing) {\n this.add(name, thing)\n }\n\n first(name) {\n if (! this.bag[name]) return null\n\n return this.bag[name][0]\n }\n\n last(name) {\n return this.bag[name].slice(-1)[0]\n }\n\n get(name) {\n return this.bag[name]\n }\n\n shift(name) {\n return this.bag[name].shift()\n }\n\n call(name, ...params) {\n (this.listeners[name] || []).forEach(callback => {\n callback(...params)\n })\n }\n\n has(name) {\n return Object.keys(this.listeners).includes(name)\n }\n}\n\nfunction setUploadLoading() {\n // @todo\n}\n\nfunction unsetUploadLoading() {\n // @todo\n}\n\nexport function upload(\n component,\n name,\n file,\n finishCallback = () => { },\n errorCallback = () => { },\n progressCallback = () => { },\n cancelledCallback = () => { },\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.upload(\n name,\n file,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n )\n}\n\nexport function uploadMultiple(\n component,\n name,\n files,\n finishCallback = () => { },\n errorCallback = () => { },\n progressCallback = () => { },\n cancelledCallback = () => { },\n append = true,\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.uploadMultiple(\n name,\n files,\n finishCallback,\n errorCallback,\n progressCallback,\n cancelledCallback,\n append,\n )\n}\n\nexport function removeUpload(\n component,\n name,\n tmpFilename,\n finishCallback = () => { },\n errorCallback = () => { }\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.removeUpload(\n name,\n tmpFilename,\n finishCallback,\n errorCallback\n )\n}\n\nexport function cancelUpload(\n component,\n name,\n cancelledCallback = () => { }\n) {\n let uploadManager = getUploadManager(component)\n\n uploadManager.cancelUpload(\n name,\n cancelledCallback\n )\n}\n", "// packages/alpinejs/src/scheduler.js\nvar flushPending = false;\nvar flushing = false;\nvar queue = [];\nvar lastFlushedIndex = -1;\nvar transactionActive = false;\nfunction scheduler(callback) {\n queueJob(callback);\n}\nfunction startTransaction() {\n transactionActive = true;\n}\nfunction commitTransaction() {\n transactionActive = false;\n queueFlush();\n}\nfunction queueJob(job) {\n if (!queue.includes(job))\n queue.push(job);\n queueFlush();\n}\nfunction dequeueJob(job) {\n let index = queue.indexOf(job);\n if (index !== -1 && index > lastFlushedIndex)\n queue.splice(index, 1);\n}\nfunction queueFlush() {\n if (!flushing && !flushPending) {\n if (transactionActive)\n return;\n flushPending = true;\n queueMicrotask(flushJobs);\n }\n}\nfunction flushJobs() {\n flushPending = false;\n flushing = true;\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n lastFlushedIndex = i;\n }\n queue.length = 0;\n lastFlushedIndex = -1;\n flushing = false;\n}\n\n// packages/alpinejs/src/reactivity.js\nvar reactive;\nvar effect;\nvar release;\nvar raw;\nvar shouldSchedule = true;\nfunction disableEffectScheduling(callback) {\n shouldSchedule = false;\n callback();\n shouldSchedule = true;\n}\nfunction setReactivityEngine(engine) {\n reactive = engine.reactive;\n release = engine.release;\n effect = (callback) => engine.effect(callback, { scheduler: (task) => {\n if (shouldSchedule) {\n scheduler(task);\n } else {\n task();\n }\n } });\n raw = engine.raw;\n}\nfunction overrideEffect(override) {\n effect = override;\n}\nfunction elementBoundEffect(el) {\n let cleanup2 = () => {\n };\n let wrappedEffect = (callback) => {\n let effectReference = effect(callback);\n if (!el._x_effects) {\n el._x_effects = /* @__PURE__ */ new Set();\n el._x_runEffects = () => {\n el._x_effects.forEach((i) => i());\n };\n }\n el._x_effects.add(effectReference);\n cleanup2 = () => {\n if (effectReference === void 0)\n return;\n el._x_effects.delete(effectReference);\n release(effectReference);\n };\n return effectReference;\n };\n return [wrappedEffect, () => {\n cleanup2();\n }];\n}\nfunction watch(getter, callback) {\n let firstTime = true;\n let oldValue;\n let oldValueJSON;\n let effectReference = effect(() => {\n let value = getter();\n let newJSON = JSON.stringify(value);\n if (!firstTime) {\n if (typeof value === \"object\" || value !== oldValue) {\n let previousValue = typeof oldValue === \"object\" ? JSON.parse(oldValueJSON) : oldValue;\n queueMicrotask(() => {\n callback(value, previousValue);\n });\n }\n }\n oldValue = value;\n oldValueJSON = newJSON;\n firstTime = false;\n });\n return () => release(effectReference);\n}\nasync function transaction(callback) {\n startTransaction();\n try {\n await callback();\n await Promise.resolve();\n } finally {\n commitTransaction();\n }\n}\n\n// packages/alpinejs/src/mutation.js\nvar onAttributeAddeds = [];\nvar onElRemoveds = [];\nvar onElAddeds = [];\nfunction onElAdded(callback) {\n onElAddeds.push(callback);\n}\nfunction onElRemoved(el, callback) {\n if (typeof callback === \"function\") {\n if (!el._x_cleanups)\n el._x_cleanups = [];\n el._x_cleanups.push(callback);\n } else {\n callback = el;\n onElRemoveds.push(callback);\n }\n}\nfunction onAttributesAdded(callback) {\n onAttributeAddeds.push(callback);\n}\nfunction onAttributeRemoved(el, name, callback) {\n if (!el._x_attributeCleanups)\n el._x_attributeCleanups = {};\n if (!el._x_attributeCleanups[name])\n el._x_attributeCleanups[name] = [];\n el._x_attributeCleanups[name].push(callback);\n}\nfunction cleanupAttributes(el, names) {\n if (!el._x_attributeCleanups)\n return;\n Object.entries(el._x_attributeCleanups).forEach(([name, value]) => {\n if (names === void 0 || names.includes(name)) {\n value.forEach((i) => i());\n delete el._x_attributeCleanups[name];\n }\n });\n}\nfunction cleanupElement(el) {\n el._x_effects?.forEach(dequeueJob);\n while (el._x_cleanups?.length)\n el._x_cleanups.pop()();\n}\nvar observer = new MutationObserver(onMutate);\nvar currentlyObserving = false;\nfunction startObservingMutations() {\n observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });\n currentlyObserving = true;\n}\nfunction stopObservingMutations() {\n flushObserver();\n observer.disconnect();\n currentlyObserving = false;\n}\nvar queuedMutations = [];\nfunction flushObserver() {\n let records = observer.takeRecords();\n queuedMutations.push(() => records.length > 0 && onMutate(records));\n let queueLengthWhenTriggered = queuedMutations.length;\n queueMicrotask(() => {\n if (queuedMutations.length === queueLengthWhenTriggered) {\n while (queuedMutations.length > 0)\n queuedMutations.shift()();\n }\n });\n}\nfunction mutateDom(callback) {\n if (!currentlyObserving)\n return callback();\n stopObservingMutations();\n let result = callback();\n startObservingMutations();\n return result;\n}\nvar isCollecting = false;\nvar deferredMutations = [];\nfunction deferMutations() {\n isCollecting = true;\n}\nfunction flushAndStopDeferringMutations() {\n isCollecting = false;\n onMutate(deferredMutations);\n deferredMutations = [];\n}\nfunction onMutate(mutations) {\n if (isCollecting) {\n deferredMutations = deferredMutations.concat(mutations);\n return;\n }\n let addedNodes = [];\n let removedNodes = /* @__PURE__ */ new Set();\n let addedAttributes = /* @__PURE__ */ new Map();\n let removedAttributes = /* @__PURE__ */ new Map();\n for (let i = 0; i < mutations.length; i++) {\n if (mutations[i].target._x_ignoreMutationObserver)\n continue;\n if (mutations[i].type === \"childList\") {\n mutations[i].removedNodes.forEach((node) => {\n if (node.nodeType !== 1)\n return;\n if (!node._x_marker)\n return;\n removedNodes.add(node);\n });\n mutations[i].addedNodes.forEach((node) => {\n if (node.nodeType !== 1)\n return;\n if (removedNodes.has(node)) {\n removedNodes.delete(node);\n return;\n }\n if (node._x_marker)\n return;\n addedNodes.push(node);\n });\n }\n if (mutations[i].type === \"attributes\") {\n let el = mutations[i].target;\n let name = mutations[i].attributeName;\n let oldValue = mutations[i].oldValue;\n let add2 = () => {\n if (!addedAttributes.has(el))\n addedAttributes.set(el, []);\n addedAttributes.get(el).push({ name, value: el.getAttribute(name) });\n };\n let remove = () => {\n if (!removedAttributes.has(el))\n removedAttributes.set(el, []);\n removedAttributes.get(el).push(name);\n };\n if (el.hasAttribute(name) && oldValue === null) {\n add2();\n } else if (el.hasAttribute(name)) {\n remove();\n add2();\n } else {\n remove();\n }\n }\n }\n removedAttributes.forEach((attrs, el) => {\n cleanupAttributes(el, attrs);\n });\n addedAttributes.forEach((attrs, el) => {\n onAttributeAddeds.forEach((i) => i(el, attrs));\n });\n for (let node of removedNodes) {\n if (addedNodes.some((i) => i.contains(node)))\n continue;\n onElRemoveds.forEach((i) => i(node));\n }\n for (let node of addedNodes) {\n if (!node.isConnected)\n continue;\n onElAddeds.forEach((i) => i(node));\n }\n addedNodes = null;\n removedNodes = null;\n addedAttributes = null;\n removedAttributes = null;\n}\n\n// packages/alpinejs/src/scope.js\nfunction scope(node) {\n return mergeProxies(closestDataStack(node));\n}\nfunction addScopeToNode(node, data2, referenceNode) {\n node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)];\n return () => {\n node._x_dataStack = node._x_dataStack.filter((i) => i !== data2);\n };\n}\nfunction closestDataStack(node) {\n if (node._x_dataStack)\n return node._x_dataStack;\n if (typeof ShadowRoot === \"function\" && node instanceof ShadowRoot) {\n return closestDataStack(node.host);\n }\n if (!node.parentNode) {\n return [];\n }\n return closestDataStack(node.parentNode);\n}\nfunction mergeProxies(objects) {\n return new Proxy({ objects }, mergeProxyTrap);\n}\nfunction keyInPrototypeChain(obj, key) {\n if (obj === null || obj === Object.prototype)\n return null;\n if (Object.prototype.hasOwnProperty.call(obj, key))\n return obj;\n return keyInPrototypeChain(Object.getPrototypeOf(obj), key);\n}\nvar mergeProxyTrap = {\n ownKeys({ objects }) {\n return Array.from(\n new Set(objects.flatMap((i) => Object.keys(i)))\n );\n },\n has({ objects }, name) {\n if (name == Symbol.unscopables)\n return false;\n return objects.some(\n (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name)\n );\n },\n get({ objects }, name, thisProxy) {\n if (name == \"toJSON\")\n return collapseProxies;\n return Reflect.get(\n objects.find(\n (obj) => Reflect.has(obj, name)\n ) || {},\n name,\n thisProxy\n );\n },\n set({ objects }, name, value, thisProxy) {\n let target;\n for (const obj of objects) {\n target = keyInPrototypeChain(obj, name);\n if (target)\n break;\n }\n if (!target)\n target = objects[objects.length - 1];\n const descriptor = Object.getOwnPropertyDescriptor(target, name);\n if (descriptor?.set && descriptor?.get)\n return descriptor.set.call(thisProxy, value) || true;\n return Reflect.set(target, name, value);\n }\n};\nfunction collapseProxies() {\n let keys = Reflect.ownKeys(this);\n return keys.reduce((acc, key) => {\n acc[key] = Reflect.get(this, key);\n return acc;\n }, {});\n}\n\n// packages/alpinejs/src/interceptor.js\nfunction initInterceptors(data2) {\n let isObject3 = (val) => typeof val === \"object\" && !Array.isArray(val) && val !== null;\n let recurse = (obj, basePath = \"\") => {\n Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {\n if (enumerable === false || value === void 0)\n return;\n if (typeof value === \"object\" && value !== null && value.__v_skip)\n return;\n let path = basePath === \"\" ? key : `${basePath}.${key}`;\n if (typeof value === \"object\" && value !== null && value._x_interceptor) {\n obj[key] = value.initialize(data2, path, key);\n } else {\n if (isObject3(value) && value !== obj && !(value instanceof Element)) {\n recurse(value, path);\n }\n }\n });\n };\n return recurse(data2);\n}\nfunction interceptor(callback, mutateObj = () => {\n}) {\n let obj = {\n initialValue: void 0,\n _x_interceptor: true,\n initialize(data2, path, key) {\n return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key);\n }\n };\n mutateObj(obj);\n return (initialValue) => {\n if (typeof initialValue === \"object\" && initialValue !== null && initialValue._x_interceptor) {\n let initialize = obj.initialize.bind(obj);\n obj.initialize = (data2, path, key) => {\n let innerValue = initialValue.initialize(data2, path, key);\n obj.initialValue = innerValue;\n return initialize(data2, path, key);\n };\n } else {\n obj.initialValue = initialValue;\n }\n return obj;\n };\n}\nfunction get(obj, path) {\n return path.split(\".\").reduce((carry, segment) => carry[segment], obj);\n}\nfunction set(obj, path, value) {\n if (typeof path === \"string\")\n path = path.split(\".\");\n if (path.length === 1)\n obj[path[0]] = value;\n else if (path.length === 0)\n throw error;\n else {\n if (obj[path[0]])\n return set(obj[path[0]], path.slice(1), value);\n else {\n obj[path[0]] = {};\n return set(obj[path[0]], path.slice(1), value);\n }\n }\n}\n\n// packages/alpinejs/src/magics.js\nvar magics = {};\nfunction magic(name, callback) {\n magics[name] = callback;\n}\nfunction injectMagics(obj, el) {\n let memoizedUtilities = getUtilities(el);\n Object.entries(magics).forEach(([name, callback]) => {\n Object.defineProperty(obj, `$${name}`, {\n get() {\n return callback(el, memoizedUtilities);\n },\n enumerable: false\n });\n });\n return obj;\n}\nfunction getUtilities(el) {\n let [utilities, cleanup2] = getElementBoundUtilities(el);\n let utils = { interceptor, ...utilities };\n onElRemoved(el, cleanup2);\n return utils;\n}\n\n// packages/alpinejs/src/utils/error.js\nfunction tryCatch(el, expression, callback, ...args) {\n try {\n return callback(...args);\n } catch (e) {\n handleError(e, el, expression);\n }\n}\nfunction handleError(...args) {\n return errorHandler(...args);\n}\nvar errorHandler = normalErrorHandler;\nfunction setErrorHandler(handler4) {\n errorHandler = handler4;\n}\nfunction normalErrorHandler(error2, el, expression = void 0) {\n error2 = Object.assign(\n error2 ?? { message: \"No error message given.\" },\n { el, expression }\n );\n console.warn(`Alpine Expression Error: ${error2.message}\n\n${expression ? 'Expression: \"' + expression + '\"\\n\\n' : \"\"}`, el);\n setTimeout(() => {\n throw error2;\n }, 0);\n}\n\n// packages/alpinejs/src/evaluator.js\nvar shouldAutoEvaluateFunctions = true;\nfunction dontAutoEvaluateFunctions(callback) {\n let cache = shouldAutoEvaluateFunctions;\n shouldAutoEvaluateFunctions = false;\n let result = callback();\n shouldAutoEvaluateFunctions = cache;\n return result;\n}\nfunction evaluate(el, expression, extras = {}) {\n let result;\n evaluateLater(el, expression)((value) => result = value, extras);\n return result;\n}\nfunction evaluateLater(...args) {\n return theEvaluatorFunction(...args);\n}\nvar theEvaluatorFunction = () => {\n};\nfunction setEvaluator(newEvaluator) {\n theEvaluatorFunction = newEvaluator;\n}\nvar theRawEvaluatorFunction;\nfunction setRawEvaluator(newEvaluator) {\n theRawEvaluatorFunction = newEvaluator;\n}\nfunction normalEvaluator(el, expression) {\n let overriddenMagics = {};\n injectMagics(overriddenMagics, el);\n let dataStack = [overriddenMagics, ...closestDataStack(el)];\n let evaluator = typeof expression === \"function\" ? generateEvaluatorFromFunction(dataStack, expression) : generateEvaluatorFromString(dataStack, expression, el);\n return tryCatch.bind(null, el, expression, evaluator);\n}\nfunction generateEvaluatorFromFunction(dataStack, func) {\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [], context } = {}) => {\n if (!shouldAutoEvaluateFunctions) {\n runIfTypeOfFunction(receiver, func, mergeProxies([scope2, ...dataStack]), params);\n return;\n }\n let result = func.apply(mergeProxies([scope2, ...dataStack]), params);\n runIfTypeOfFunction(receiver, result);\n };\n}\nvar evaluatorMemo = {};\nfunction generateFunctionFromString(expression, el) {\n if (evaluatorMemo[expression]) {\n return evaluatorMemo[expression];\n }\n let AsyncFunction = Object.getPrototypeOf(async function() {\n }).constructor;\n let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;\n const safeAsyncFunction = () => {\n try {\n let func2 = new AsyncFunction(\n [\"__self\", \"scope\"],\n `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`\n );\n Object.defineProperty(func2, \"name\", {\n value: `[Alpine] ${expression}`\n });\n return func2;\n } catch (error2) {\n handleError(error2, el, expression);\n return Promise.resolve();\n }\n };\n let func = safeAsyncFunction();\n evaluatorMemo[expression] = func;\n return func;\n}\nfunction generateEvaluatorFromString(dataStack, expression, el) {\n let func = generateFunctionFromString(expression, el);\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [], context } = {}) => {\n func.result = void 0;\n func.finished = false;\n let completeScope = mergeProxies([scope2, ...dataStack]);\n if (typeof func === \"function\") {\n let promise = func.call(context, func, completeScope).catch((error2) => handleError(error2, el, expression));\n if (func.finished) {\n runIfTypeOfFunction(receiver, func.result, completeScope, params, el);\n func.result = void 0;\n } else {\n promise.then((result) => {\n runIfTypeOfFunction(receiver, result, completeScope, params, el);\n }).catch((error2) => handleError(error2, el, expression)).finally(() => func.result = void 0);\n }\n }\n };\n}\nfunction runIfTypeOfFunction(receiver, value, scope2, params, el) {\n if (shouldAutoEvaluateFunctions && typeof value === \"function\") {\n let result = value.apply(scope2, params);\n if (result instanceof Promise) {\n result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value));\n } else {\n receiver(result);\n }\n } else if (typeof value === \"object\" && value instanceof Promise) {\n value.then((i) => receiver(i));\n } else {\n receiver(value);\n }\n}\nfunction evaluateRaw(...args) {\n return theRawEvaluatorFunction(...args);\n}\nfunction normalRawEvaluator(el, expression, extras = {}) {\n let overriddenMagics = {};\n injectMagics(overriddenMagics, el);\n let dataStack = [overriddenMagics, ...closestDataStack(el)];\n let scope2 = mergeProxies([extras.scope ?? {}, ...dataStack]);\n let params = extras.params ?? [];\n if (expression.includes(\"await\")) {\n let AsyncFunction = Object.getPrototypeOf(async function() {\n }).constructor;\n let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;\n let func = new AsyncFunction(\n [\"scope\"],\n `with (scope) { let __result = ${rightSideSafeExpression}; return __result }`\n );\n let result = func.call(extras.context, scope2);\n return result;\n } else {\n let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(()=>{ ${expression} })()` : expression;\n let func = new Function(\n [\"scope\"],\n `with (scope) { let __result = ${rightSideSafeExpression}; return __result }`\n );\n let result = func.call(extras.context, scope2);\n if (typeof result === \"function\" && shouldAutoEvaluateFunctions) {\n return result.apply(scope2, params);\n }\n return result;\n }\n}\n\n// packages/alpinejs/src/directives.js\nvar prefixAsString = \"x-\";\nfunction prefix(subject = \"\") {\n return prefixAsString + subject;\n}\nfunction setPrefix(newPrefix) {\n prefixAsString = newPrefix;\n}\nvar directiveHandlers = {};\nfunction directive(name, callback) {\n directiveHandlers[name] = callback;\n return {\n before(directive2) {\n if (!directiveHandlers[directive2]) {\n console.warn(String.raw`Cannot find directive \\`${directive2}\\`. \\`${name}\\` will use the default order of execution`);\n return;\n }\n const pos = directiveOrder.indexOf(directive2);\n directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf(\"DEFAULT\"), 0, name);\n }\n };\n}\nfunction directiveExists(name) {\n return Object.keys(directiveHandlers).includes(name);\n}\nfunction directives(el, attributes, originalAttributeOverride) {\n attributes = Array.from(attributes);\n if (el._x_virtualDirectives) {\n let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(vAttributes);\n vAttributes = vAttributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n attributes = attributes.concat(vAttributes);\n }\n let transformedAttributeMap = {};\n let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority);\n return directives2.map((directive2) => {\n return getDirectiveHandler(el, directive2);\n });\n}\nfunction attributesOnly(attributes) {\n return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr));\n}\nvar isDeferringHandlers = false;\nvar directiveHandlerStacks = /* @__PURE__ */ new Map();\nvar currentHandlerStackKey = Symbol();\nfunction deferHandlingDirectives(callback) {\n isDeferringHandlers = true;\n let key = Symbol();\n currentHandlerStackKey = key;\n directiveHandlerStacks.set(key, []);\n let flushHandlers = () => {\n while (directiveHandlerStacks.get(key).length)\n directiveHandlerStacks.get(key).shift()();\n directiveHandlerStacks.delete(key);\n };\n let stopDeferring = () => {\n isDeferringHandlers = false;\n flushHandlers();\n };\n callback(flushHandlers);\n stopDeferring();\n}\nfunction getElementBoundUtilities(el) {\n let cleanups = [];\n let cleanup2 = (callback) => cleanups.push(callback);\n let [effect3, cleanupEffect] = elementBoundEffect(el);\n cleanups.push(cleanupEffect);\n let utilities = {\n Alpine: alpine_default,\n effect: effect3,\n cleanup: cleanup2,\n evaluateLater: evaluateLater.bind(evaluateLater, el),\n evaluate: evaluate.bind(evaluate, el)\n };\n let doCleanup = () => cleanups.forEach((i) => i());\n return [utilities, doCleanup];\n}\nfunction getDirectiveHandler(el, directive2) {\n let noop = () => {\n };\n let handler4 = directiveHandlers[directive2.type] || noop;\n let [utilities, cleanup2] = getElementBoundUtilities(el);\n onAttributeRemoved(el, directive2.original, cleanup2);\n let fullHandler = () => {\n if (el._x_ignore || el._x_ignoreSelf)\n return;\n handler4.inline && handler4.inline(el, directive2, utilities);\n handler4 = handler4.bind(handler4, el, directive2, utilities);\n isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4();\n };\n fullHandler.runCleanups = cleanup2;\n return fullHandler;\n}\nvar startingWith = (subject, replacement) => ({ name, value }) => {\n if (name.startsWith(subject))\n name = name.replace(subject, replacement);\n return { name, value };\n};\nvar into = (i) => i;\nfunction toTransformedAttributes(callback = () => {\n}) {\n return ({ name, value }) => {\n let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => {\n return transform(carry);\n }, { name, value });\n if (newName !== name)\n callback(newName, name);\n return { name: newName, value: newValue };\n };\n}\nvar attributeTransformers = [];\nfunction mapAttributes(callback) {\n attributeTransformers.push(callback);\n}\nfunction outNonAlpineAttributes({ name }) {\n return alpineAttributeRegex().test(name);\n}\nvar alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\\\b`);\nfunction toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {\n return ({ name, value }) => {\n if (name === value)\n value = \"\";\n let typeMatch = name.match(alpineAttributeRegex());\n let valueMatch = name.match(/:([a-zA-Z0-9\\-_:]+)/);\n let modifiers = name.match(/\\.[^.\\]]+(?=[^\\]]*$)/g) || [];\n let original = originalAttributeOverride || transformedAttributeMap[name] || name;\n return {\n type: typeMatch ? typeMatch[1] : null,\n value: valueMatch ? valueMatch[1] : null,\n modifiers: modifiers.map((i) => i.replace(\".\", \"\")),\n expression: value,\n original\n };\n };\n}\nvar DEFAULT = \"DEFAULT\";\nvar directiveOrder = [\n \"ignore\",\n \"ref\",\n \"id\",\n \"data\",\n \"anchor\",\n \"bind\",\n \"init\",\n \"for\",\n \"model\",\n \"modelable\",\n \"transition\",\n \"show\",\n \"if\",\n DEFAULT,\n \"teleport\"\n];\nfunction byPriority(a, b) {\n let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type;\n let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type;\n return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);\n}\n\n// packages/alpinejs/src/utils/dispatch.js\nfunction dispatch(el, name, detail = {}, options = {}) {\n return el.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles: true,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true,\n // Allows overriding the default event options.\n ...options\n })\n );\n}\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/alpinejs/src/utils/warn.js\nfunction warn(message, ...args) {\n console.warn(`Alpine Warning: ${message}`, ...args);\n}\n\n// packages/alpinejs/src/lifecycle.js\nvar started = false;\nfunction start() {\n if (started)\n warn(\"Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.\");\n started = true;\n if (!document.body)\n warn(\"Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?\");\n dispatch(document, \"alpine:init\");\n dispatch(document, \"alpine:initializing\");\n startObservingMutations();\n onElAdded((el) => initTree(el, walk));\n onElRemoved((el) => destroyTree(el));\n onAttributesAdded((el, attrs) => {\n directives(el, attrs).forEach((handle) => handle());\n });\n let outNestedComponents = (el) => !closestRoot(el.parentElement, true);\n Array.from(document.querySelectorAll(allSelectors().join(\",\"))).filter(outNestedComponents).forEach((el) => {\n initTree(el);\n });\n dispatch(document, \"alpine:initialized\");\n setTimeout(() => {\n warnAboutMissingPlugins();\n });\n}\nvar rootSelectorCallbacks = [];\nvar initSelectorCallbacks = [];\nfunction rootSelectors() {\n return rootSelectorCallbacks.map((fn) => fn());\n}\nfunction allSelectors() {\n return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn());\n}\nfunction addRootSelector(selectorCallback) {\n rootSelectorCallbacks.push(selectorCallback);\n}\nfunction addInitSelector(selectorCallback) {\n initSelectorCallbacks.push(selectorCallback);\n}\nfunction closestRoot(el, includeInitSelectors = false) {\n return findClosest(el, (element) => {\n const selectors = includeInitSelectors ? allSelectors() : rootSelectors();\n if (selectors.some((selector) => element.matches(selector)))\n return true;\n });\n}\nfunction findClosest(el, callback) {\n if (!el)\n return;\n if (callback(el))\n return el;\n if (el._x_teleportBack)\n return findClosest(el._x_teleportBack, callback);\n if (el.parentNode instanceof ShadowRoot) {\n return findClosest(el.parentNode.host, callback);\n }\n if (!el.parentElement)\n return;\n return findClosest(el.parentElement, callback);\n}\nfunction isRoot(el) {\n return rootSelectors().some((selector) => el.matches(selector));\n}\nvar initInterceptors2 = [];\nfunction interceptInit(callback) {\n initInterceptors2.push(callback);\n}\nvar markerDispenser = 1;\nfunction initTree(el, walker = walk, intercept = () => {\n}) {\n if (findClosest(el, (i) => i._x_ignore))\n return;\n deferHandlingDirectives(() => {\n walker(el, (el2, skip) => {\n if (el2._x_marker)\n return;\n intercept(el2, skip);\n initInterceptors2.forEach((i) => i(el2, skip));\n directives(el2, el2.attributes).forEach((handle) => handle());\n if (!el2._x_ignore)\n el2._x_marker = markerDispenser++;\n el2._x_ignore && skip();\n });\n });\n}\nfunction destroyTree(root, walker = walk) {\n walker(root, (el) => {\n cleanupElement(el);\n cleanupAttributes(el);\n delete el._x_marker;\n });\n}\nfunction warnAboutMissingPlugins() {\n let pluginDirectives = [\n [\"ui\", \"dialog\", [\"[x-dialog], [x-popover]\"]],\n [\"anchor\", \"anchor\", [\"[x-anchor]\"]],\n [\"sort\", \"sort\", [\"[x-sort]\"]]\n ];\n pluginDirectives.forEach(([plugin2, directive2, selectors]) => {\n if (directiveExists(directive2))\n return;\n selectors.some((selector) => {\n if (document.querySelector(selector)) {\n warn(`found \"${selector}\", but missing ${plugin2} plugin`);\n return true;\n }\n });\n });\n}\n\n// packages/alpinejs/src/nextTick.js\nvar tickStack = [];\nvar isHolding = false;\nfunction nextTick(callback = () => {\n}) {\n queueMicrotask(() => {\n isHolding || setTimeout(() => {\n releaseNextTicks();\n });\n });\n return new Promise((res) => {\n tickStack.push(() => {\n callback();\n res();\n });\n });\n}\nfunction releaseNextTicks() {\n isHolding = false;\n while (tickStack.length)\n tickStack.shift()();\n}\nfunction holdNextTicks() {\n isHolding = true;\n}\n\n// packages/alpinejs/src/utils/classes.js\nfunction setClasses(el, value) {\n if (Array.isArray(value)) {\n return setClassesFromString(el, value.join(\" \"));\n } else if (typeof value === \"object\" && value !== null) {\n return setClassesFromObject(el, value);\n } else if (typeof value === \"function\") {\n return setClasses(el, value());\n }\n return setClassesFromString(el, value);\n}\nfunction splitClasses(classString) {\n return classString.split(/\\s/).filter(Boolean);\n}\nfunction setClassesFromString(el, classString) {\n let missingClasses = (classString2) => splitClasses(classString2).filter((i) => !el.classList.contains(i)).filter(Boolean);\n let addClassesAndReturnUndo = (classes) => {\n el.classList.add(...classes);\n return () => {\n el.classList.remove(...classes);\n };\n };\n classString = classString === true ? classString = \"\" : classString || \"\";\n return addClassesAndReturnUndo(missingClasses(classString));\n}\nfunction setClassesFromObject(el, classObject) {\n let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? splitClasses(classString) : false).filter(Boolean);\n let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? splitClasses(classString) : false).filter(Boolean);\n let added = [];\n let removed = [];\n forRemove.forEach((i) => {\n if (el.classList.contains(i)) {\n el.classList.remove(i);\n removed.push(i);\n }\n });\n forAdd.forEach((i) => {\n if (!el.classList.contains(i)) {\n el.classList.add(i);\n added.push(i);\n }\n });\n return () => {\n removed.forEach((i) => el.classList.add(i));\n added.forEach((i) => el.classList.remove(i));\n };\n}\n\n// packages/alpinejs/src/utils/styles.js\nfunction setStyles(el, value) {\n if (typeof value === \"object\" && value !== null) {\n return setStylesFromObject(el, value);\n }\n return setStylesFromString(el, value);\n}\nfunction setStylesFromObject(el, value) {\n let previousStyles = {};\n Object.entries(value).forEach(([key, value2]) => {\n previousStyles[key] = el.style[key];\n if (!key.startsWith(\"--\")) {\n key = kebabCase(key);\n }\n el.style.setProperty(key, value2);\n });\n setTimeout(() => {\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n });\n return () => {\n setStyles(el, previousStyles);\n };\n}\nfunction setStylesFromString(el, value) {\n let cache = el.getAttribute(\"style\", value);\n el.setAttribute(\"style\", value);\n return () => {\n el.setAttribute(\"style\", cache || \"\");\n };\n}\nfunction kebabCase(subject) {\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\n// packages/alpinejs/src/utils/once.js\nfunction once(callback, fallback = () => {\n}) {\n let called = false;\n return function() {\n if (!called) {\n called = true;\n callback.apply(this, arguments);\n } else {\n fallback.apply(this, arguments);\n }\n };\n}\n\n// packages/alpinejs/src/directives/x-transition.js\ndirective(\"transition\", (el, { value, modifiers, expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"function\")\n expression = evaluate2(expression);\n if (expression === false)\n return;\n if (!expression || typeof expression === \"boolean\") {\n registerTransitionsFromHelper(el, modifiers, value);\n } else {\n registerTransitionsFromClassString(el, expression, value);\n }\n});\nfunction registerTransitionsFromClassString(el, classString, stage) {\n registerTransitionObject(el, setClasses, \"\");\n let directiveStorageMap = {\n \"enter\": (classes) => {\n el._x_transition.enter.during = classes;\n },\n \"enter-start\": (classes) => {\n el._x_transition.enter.start = classes;\n },\n \"enter-end\": (classes) => {\n el._x_transition.enter.end = classes;\n },\n \"leave\": (classes) => {\n el._x_transition.leave.during = classes;\n },\n \"leave-start\": (classes) => {\n el._x_transition.leave.start = classes;\n },\n \"leave-end\": (classes) => {\n el._x_transition.leave.end = classes;\n }\n };\n directiveStorageMap[stage](classString);\n}\nfunction registerTransitionsFromHelper(el, modifiers, stage) {\n registerTransitionObject(el, setStyles);\n let doesntSpecify = !modifiers.includes(\"in\") && !modifiers.includes(\"out\") && !stage;\n let transitioningIn = doesntSpecify || modifiers.includes(\"in\") || [\"enter\"].includes(stage);\n let transitioningOut = doesntSpecify || modifiers.includes(\"out\") || [\"leave\"].includes(stage);\n if (modifiers.includes(\"in\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index < modifiers.indexOf(\"out\"));\n }\n if (modifiers.includes(\"out\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index > modifiers.indexOf(\"out\"));\n }\n let wantsAll = !modifiers.includes(\"opacity\") && !modifiers.includes(\"scale\");\n let wantsOpacity = wantsAll || modifiers.includes(\"opacity\");\n let wantsScale = wantsAll || modifiers.includes(\"scale\");\n let opacityValue = wantsOpacity ? 0 : 1;\n let scaleValue = wantsScale ? modifierValue(modifiers, \"scale\", 95) / 100 : 1;\n let delay = modifierValue(modifiers, \"delay\", 0) / 1e3;\n let origin = modifierValue(modifiers, \"origin\", \"center\");\n let property = \"opacity, transform\";\n let durationIn = modifierValue(modifiers, \"duration\", 150) / 1e3;\n let durationOut = modifierValue(modifiers, \"duration\", 75) / 1e3;\n let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`;\n if (transitioningIn) {\n el._x_transition.enter.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationIn}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.enter.start = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n el._x_transition.enter.end = {\n opacity: 1,\n transform: `scale(1)`\n };\n }\n if (transitioningOut) {\n el._x_transition.leave.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationOut}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.leave.start = {\n opacity: 1,\n transform: `scale(1)`\n };\n el._x_transition.leave.end = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n }\n}\nfunction registerTransitionObject(el, setFunction, defaultValue = {}) {\n if (!el._x_transition)\n el._x_transition = {\n enter: { during: defaultValue, start: defaultValue, end: defaultValue },\n leave: { during: defaultValue, start: defaultValue, end: defaultValue },\n in(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.enter.during,\n start: this.enter.start,\n end: this.enter.end\n }, before, after);\n },\n out(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.leave.during,\n start: this.leave.start,\n end: this.leave.end\n }, before, after);\n }\n };\n}\nwindow.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) {\n const nextTick2 = document.visibilityState === \"visible\" ? requestAnimationFrame : setTimeout;\n let clickAwayCompatibleShow = () => nextTick2(show);\n if (value) {\n if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) {\n el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow();\n } else {\n el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();\n }\n return;\n }\n el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => {\n el._x_transition.out(() => {\n }, () => resolve(hide));\n el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true }));\n }) : Promise.resolve(hide);\n queueMicrotask(() => {\n let closest = closestHide(el);\n if (closest) {\n if (!closest._x_hideChildren)\n closest._x_hideChildren = [];\n closest._x_hideChildren.push(el);\n } else {\n nextTick2(() => {\n let hideAfterChildren = (el2) => {\n let carry = Promise.all([\n el2._x_hidePromise,\n ...(el2._x_hideChildren || []).map(hideAfterChildren)\n ]).then(([i]) => i?.());\n delete el2._x_hidePromise;\n delete el2._x_hideChildren;\n return carry;\n };\n hideAfterChildren(el).catch((e) => {\n if (!e.isFromCancelledTransition)\n throw e;\n });\n });\n }\n });\n};\nfunction closestHide(el) {\n let parent = el.parentNode;\n if (!parent)\n return;\n return parent._x_hidePromise ? parent : closestHide(parent);\n}\nfunction transition(el, setFunction, { during, start: start2, end } = {}, before = () => {\n}, after = () => {\n}) {\n if (el._x_transitioning)\n el._x_transitioning.cancel();\n if (Object.keys(during).length === 0 && Object.keys(start2).length === 0 && Object.keys(end).length === 0) {\n before();\n after();\n return;\n }\n let undoStart, undoDuring, undoEnd;\n performTransition(el, {\n start() {\n undoStart = setFunction(el, start2);\n },\n during() {\n undoDuring = setFunction(el, during);\n },\n before,\n end() {\n undoStart();\n undoEnd = setFunction(el, end);\n },\n after,\n cleanup() {\n undoDuring();\n undoEnd();\n }\n });\n}\nfunction performTransition(el, stages) {\n let interrupted, reachedBefore, reachedEnd;\n let finish = once(() => {\n mutateDom(() => {\n interrupted = true;\n if (!reachedBefore)\n stages.before();\n if (!reachedEnd) {\n stages.end();\n releaseNextTicks();\n }\n stages.after();\n if (el.isConnected)\n stages.cleanup();\n delete el._x_transitioning;\n });\n });\n el._x_transitioning = {\n beforeCancels: [],\n beforeCancel(callback) {\n this.beforeCancels.push(callback);\n },\n cancel: once(function() {\n while (this.beforeCancels.length) {\n this.beforeCancels.shift()();\n }\n ;\n finish();\n }),\n finish\n };\n mutateDom(() => {\n stages.start();\n stages.during();\n });\n holdNextTicks();\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n let delay = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n if (duration === 0)\n duration = Number(getComputedStyle(el).animationDuration.replace(\"s\", \"\")) * 1e3;\n mutateDom(() => {\n stages.before();\n });\n reachedBefore = true;\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n mutateDom(() => {\n stages.end();\n });\n releaseNextTicks();\n setTimeout(el._x_transitioning.finish, duration + delay);\n reachedEnd = true;\n });\n });\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"scale\") {\n if (isNaN(rawValue))\n return fallback;\n }\n if (key === \"duration\" || key === \"delay\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"origin\") {\n if ([\"top\", \"right\", \"left\", \"center\", \"bottom\"].includes(modifiers[modifiers.indexOf(key) + 2])) {\n return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(\" \");\n }\n }\n return rawValue;\n}\n\n// packages/alpinejs/src/clone.js\nvar isCloning = false;\nfunction skipDuringClone(callback, fallback = () => {\n}) {\n return (...args) => isCloning ? fallback(...args) : callback(...args);\n}\nfunction onlyDuringClone(callback) {\n return (...args) => isCloning && callback(...args);\n}\nvar interceptors = [];\nfunction interceptClone(callback) {\n interceptors.push(callback);\n}\nfunction cloneNode(from, to) {\n interceptors.forEach((i) => i(from, to));\n isCloning = true;\n dontRegisterReactiveSideEffects(() => {\n initTree(to, (el, callback) => {\n callback(el, () => {\n });\n });\n });\n isCloning = false;\n}\nvar isCloningLegacy = false;\nfunction clone(oldEl, newEl) {\n if (!newEl._x_dataStack)\n newEl._x_dataStack = oldEl._x_dataStack;\n isCloning = true;\n isCloningLegacy = true;\n dontRegisterReactiveSideEffects(() => {\n cloneTree(newEl);\n });\n isCloning = false;\n isCloningLegacy = false;\n}\nfunction cloneTree(el) {\n let hasRunThroughFirstEl = false;\n let shallowWalker = (el2, callback) => {\n walk(el2, (el3, skip) => {\n if (hasRunThroughFirstEl && isRoot(el3))\n return skip();\n hasRunThroughFirstEl = true;\n callback(el3, skip);\n });\n };\n initTree(el, shallowWalker);\n}\nfunction dontRegisterReactiveSideEffects(callback) {\n let cache = effect;\n overrideEffect((callback2, el) => {\n let storedEffect = cache(callback2);\n release(storedEffect);\n return () => {\n };\n });\n callback();\n overrideEffect(cache);\n}\n\n// packages/alpinejs/src/utils/bind.js\nfunction bind(el, name, value, modifiers = []) {\n if (!el._x_bindings)\n el._x_bindings = reactive({});\n el._x_bindings[name] = value;\n name = modifiers.includes(\"camel\") ? camelCase(name) : name;\n switch (name) {\n case \"value\":\n bindInputValue(el, value);\n break;\n case \"style\":\n bindStyles(el, value);\n break;\n case \"class\":\n bindClasses(el, value);\n break;\n case \"selected\":\n case \"checked\":\n bindAttributeAndProperty(el, name, value);\n break;\n default:\n bindAttribute(el, name, value);\n break;\n }\n}\nfunction bindInputValue(el, value) {\n if (isRadio(el)) {\n if (el.attributes.value === void 0) {\n el.value = value;\n }\n } else if (isCheckbox(el)) {\n if (Number.isInteger(value)) {\n el.value = value;\n } else if (!Array.isArray(value) && typeof value !== \"boolean\" && ![null, void 0].includes(value)) {\n el.value = String(value);\n } else {\n if (Array.isArray(value)) {\n el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value));\n } else {\n el.checked = !!value;\n }\n }\n } else if (el.tagName === \"SELECT\") {\n updateSelect(el, value);\n } else {\n if (el.value === value)\n return;\n el.value = value === void 0 ? \"\" : value;\n }\n}\nfunction bindClasses(el, value) {\n if (el._x_undoAddedClasses)\n el._x_undoAddedClasses();\n el._x_undoAddedClasses = setClasses(el, value);\n}\nfunction bindStyles(el, value) {\n if (el._x_undoAddedStyles)\n el._x_undoAddedStyles();\n el._x_undoAddedStyles = setStyles(el, value);\n}\nfunction bindAttributeAndProperty(el, name, value) {\n bindAttribute(el, name, value);\n setPropertyIfChanged(el, name, value);\n}\nfunction bindAttribute(el, name, value) {\n if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) {\n el.removeAttribute(name);\n } else {\n if (isBooleanAttr(name))\n value = name;\n setIfChanged(el, name, value);\n }\n}\nfunction setIfChanged(el, attrName, value) {\n if (el.getAttribute(attrName) != value) {\n el.setAttribute(attrName, value);\n }\n}\nfunction setPropertyIfChanged(el, propName, value) {\n if (el[propName] !== value) {\n el[propName] = value;\n }\n}\nfunction updateSelect(el, value) {\n const arrayWrappedValue = [].concat(value).map((value2) => {\n return value2 + \"\";\n });\n Array.from(el.options).forEach((option) => {\n option.selected = arrayWrappedValue.includes(option.value);\n });\n}\nfunction camelCase(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction checkedAttrLooseCompare(valueA, valueB) {\n return valueA == valueB;\n}\nfunction safeParseBoolean(rawValue) {\n if ([1, \"1\", \"true\", \"on\", \"yes\", true].includes(rawValue)) {\n return true;\n }\n if ([0, \"0\", \"false\", \"off\", \"no\", false].includes(rawValue)) {\n return false;\n }\n return rawValue ? Boolean(rawValue) : null;\n}\nvar booleanAttributes = /* @__PURE__ */ new Set([\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"defer\",\n \"disabled\",\n \"formnovalidate\",\n \"inert\",\n \"ismap\",\n \"itemscope\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"selected\",\n \"shadowrootclonable\",\n \"shadowrootdelegatesfocus\",\n \"shadowrootserializable\"\n]);\nfunction isBooleanAttr(attrName) {\n return booleanAttributes.has(attrName);\n}\nfunction attributeShouldntBePreservedIfFalsy(name) {\n return ![\"aria-pressed\", \"aria-checked\", \"aria-expanded\", \"aria-selected\"].includes(name);\n}\nfunction getBinding(el, name, fallback) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n return getAttributeBinding(el, name, fallback);\n}\nfunction extractProp(el, name, fallback, extract = true) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) {\n let binding = el._x_inlineBindings[name];\n binding.extract = extract;\n return dontAutoEvaluateFunctions(() => {\n return evaluate(el, binding.expression);\n });\n }\n return getAttributeBinding(el, name, fallback);\n}\nfunction getAttributeBinding(el, name, fallback) {\n let attr = el.getAttribute(name);\n if (attr === null)\n return typeof fallback === \"function\" ? fallback() : fallback;\n if (attr === \"\")\n return true;\n if (isBooleanAttr(name)) {\n return !![name, \"true\"].includes(attr);\n }\n return attr;\n}\nfunction isCheckbox(el) {\n return el.type === \"checkbox\" || el.localName === \"ui-checkbox\" || el.localName === \"ui-switch\";\n}\nfunction isRadio(el) {\n return el.type === \"radio\" || el.localName === \"ui-radio\";\n}\n\n// packages/alpinejs/src/utils/debounce.js\nfunction debounce(func, wait) {\n let timeout;\n return function() {\n const context = this, args = arguments;\n const later = function() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n// packages/alpinejs/src/utils/throttle.js\nfunction throttle(func, limit) {\n let inThrottle;\n return function() {\n let context = this, args = arguments;\n if (!inThrottle) {\n func.apply(context, args);\n inThrottle = true;\n setTimeout(() => inThrottle = false, limit);\n }\n };\n}\n\n// packages/alpinejs/src/entangle.js\nfunction entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {\n let firstRun = true;\n let outerHash;\n let innerHash;\n let reference = effect(() => {\n let outer = outerGet();\n let inner = innerGet();\n if (firstRun) {\n innerSet(cloneIfObject(outer));\n firstRun = false;\n } else {\n let outerHashLatest = JSON.stringify(outer);\n let innerHashLatest = JSON.stringify(inner);\n if (outerHashLatest !== outerHash) {\n innerSet(cloneIfObject(outer));\n } else if (outerHashLatest !== innerHashLatest) {\n outerSet(cloneIfObject(inner));\n } else {\n }\n }\n outerHash = JSON.stringify(outerGet());\n innerHash = JSON.stringify(innerGet());\n });\n return () => {\n release(reference);\n };\n}\nfunction cloneIfObject(value) {\n return typeof value === \"object\" ? JSON.parse(JSON.stringify(value)) : value;\n}\n\n// packages/alpinejs/src/plugin.js\nfunction plugin(callback) {\n let callbacks = Array.isArray(callback) ? callback : [callback];\n callbacks.forEach((i) => i(alpine_default));\n}\n\n// packages/alpinejs/src/store.js\nvar stores = {};\nvar isReactive = false;\nfunction store(name, value) {\n if (!isReactive) {\n stores = reactive(stores);\n isReactive = true;\n }\n if (value === void 0) {\n return stores[name];\n }\n stores[name] = value;\n initInterceptors(stores[name]);\n if (typeof value === \"object\" && value !== null && value.hasOwnProperty(\"init\") && typeof value.init === \"function\") {\n stores[name].init();\n }\n}\nfunction getStores() {\n return stores;\n}\n\n// packages/alpinejs/src/binds.js\nvar binds = {};\nfunction bind2(name, bindings) {\n let getBindings = typeof bindings !== \"function\" ? () => bindings : bindings;\n if (name instanceof Element) {\n return applyBindingsObject(name, getBindings());\n } else {\n binds[name] = getBindings;\n }\n return () => {\n };\n}\nfunction injectBindingProviders(obj) {\n Object.entries(binds).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback(...args);\n };\n }\n });\n });\n return obj;\n}\nfunction applyBindingsObject(el, obj, original) {\n let cleanupRunners = [];\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n let attributes = Object.entries(obj).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(attributes);\n attributes = attributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n directives(el, attributes, original).map((handle) => {\n cleanupRunners.push(handle.runCleanups);\n handle();\n });\n return () => {\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n };\n}\n\n// packages/alpinejs/src/datas.js\nvar datas = {};\nfunction data(name, callback) {\n datas[name] = callback;\n}\nfunction injectDataProviders(obj, context) {\n Object.entries(datas).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback.bind(context)(...args);\n };\n },\n enumerable: false\n });\n });\n return obj;\n}\n\n// packages/alpinejs/src/alpine.js\nvar Alpine = {\n get reactive() {\n return reactive;\n },\n get release() {\n return release;\n },\n get effect() {\n return effect;\n },\n get raw() {\n return raw;\n },\n get transaction() {\n return transaction;\n },\n version: \"3.15.12\",\n flushAndStopDeferringMutations,\n dontAutoEvaluateFunctions,\n disableEffectScheduling,\n startObservingMutations,\n stopObservingMutations,\n setReactivityEngine,\n onAttributeRemoved,\n onAttributesAdded,\n closestDataStack,\n skipDuringClone,\n onlyDuringClone,\n addRootSelector,\n addInitSelector,\n setErrorHandler,\n interceptClone,\n addScopeToNode,\n deferMutations,\n mapAttributes,\n evaluateLater,\n interceptInit,\n initInterceptors,\n injectMagics,\n setEvaluator,\n setRawEvaluator,\n mergeProxies,\n extractProp,\n findClosest,\n onElRemoved,\n closestRoot,\n destroyTree,\n interceptor,\n // INTERNAL: not public API and is subject to change without major release.\n transition,\n // INTERNAL\n setStyles,\n // INTERNAL\n mutateDom,\n directive,\n entangle,\n throttle,\n debounce,\n evaluate,\n evaluateRaw,\n initTree,\n nextTick,\n prefixed: prefix,\n prefix: setPrefix,\n plugin,\n magic,\n store,\n start,\n clone,\n // INTERNAL\n cloneNode,\n // INTERNAL\n bound: getBinding,\n $data: scope,\n watch,\n walk,\n data,\n bind: bind2\n};\nvar alpine_default = Alpine;\n\n// node_modules/@vue/shared/dist/shared.esm-bundler.js\nfunction makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nvar specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nvar isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`);\nvar EMPTY_OBJ = true ? Object.freeze({}) : {};\nvar EMPTY_ARR = true ? Object.freeze([]) : [];\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar hasOwn = (val, key) => hasOwnProperty.call(val, key);\nvar isArray = Array.isArray;\nvar isMap = (val) => toTypeString(val) === \"[object Map]\";\nvar isString = (val) => typeof val === \"string\";\nvar isSymbol = (val) => typeof val === \"symbol\";\nvar isObject = (val) => val !== null && typeof val === \"object\";\nvar objectToString = Object.prototype.toString;\nvar toTypeString = (value) => objectToString.call(value);\nvar toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nvar isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nvar cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nvar capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\nvar toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\nvar hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue);\n\n// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js\nvar targetMap = /* @__PURE__ */ new WeakMap();\nvar effectStack = [];\nvar activeEffect;\nvar ITERATE_KEY = Symbol(true ? \"iterate\" : \"\");\nvar MAP_KEY_ITERATE_KEY = Symbol(true ? \"Map key iterate\" : \"\");\nfunction isEffect(fn) {\n return fn && fn._isEffect === true;\n}\nfunction effect2(fn, options = EMPTY_OBJ) {\n if (isEffect(fn)) {\n fn = fn.raw;\n }\n const effect3 = createReactiveEffect(fn, options);\n if (!options.lazy) {\n effect3();\n }\n return effect3;\n}\nfunction stop(effect3) {\n if (effect3.active) {\n cleanup(effect3);\n if (effect3.options.onStop) {\n effect3.options.onStop();\n }\n effect3.active = false;\n }\n}\nvar uid = 0;\nfunction createReactiveEffect(fn, options) {\n const effect3 = function reactiveEffect() {\n if (!effect3.active) {\n return fn();\n }\n if (!effectStack.includes(effect3)) {\n cleanup(effect3);\n try {\n enableTracking();\n effectStack.push(effect3);\n activeEffect = effect3;\n return fn();\n } finally {\n effectStack.pop();\n resetTracking();\n activeEffect = effectStack[effectStack.length - 1];\n }\n }\n };\n effect3.id = uid++;\n effect3.allowRecurse = !!options.allowRecurse;\n effect3._isEffect = true;\n effect3.active = true;\n effect3.raw = fn;\n effect3.deps = [];\n effect3.options = options;\n return effect3;\n}\nfunction cleanup(effect3) {\n const { deps } = effect3;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect3);\n }\n deps.length = 0;\n }\n}\nvar shouldTrack = true;\nvar trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (!shouldTrack || activeEffect === void 0) {\n return;\n }\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = /* @__PURE__ */ new Set());\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (activeEffect.options.onTrack) {\n activeEffect.options.onTrack({\n effect: activeEffect,\n target,\n type,\n key\n });\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n const effects = /* @__PURE__ */ new Set();\n const add2 = (effectsToAdd) => {\n if (effectsToAdd) {\n effectsToAdd.forEach((effect3) => {\n if (effect3 !== activeEffect || effect3.allowRecurse) {\n effects.add(effect3);\n }\n });\n }\n };\n if (type === \"clear\") {\n depsMap.forEach(add2);\n } else if (key === \"length\" && isArray(target)) {\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newValue) {\n add2(dep);\n }\n });\n } else {\n if (key !== void 0) {\n add2(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n add2(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n add2(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const run = (effect3) => {\n if (effect3.options.onTrigger) {\n effect3.options.onTrigger({\n effect: effect3,\n target,\n key,\n type,\n newValue,\n oldValue,\n oldTarget\n });\n }\n if (effect3.options.scheduler) {\n effect3.options.scheduler(effect3);\n } else {\n effect3();\n }\n };\n effects.forEach(run);\n}\nvar isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nvar builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(isSymbol));\nvar get2 = /* @__PURE__ */ createGetter();\nvar readonlyGet = /* @__PURE__ */ createGetter(true);\nvar arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n return function get3(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\" && receiver === (isReadonly ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\n return shouldUnwrap ? res.value : res;\n }\n if (isObject(res)) {\n return isReadonly ? readonly(res) : reactive2(res);\n }\n return res;\n };\n}\nvar set2 = /* @__PURE__ */ createSetter();\nfunction createSetter(shallow = false) {\n return function set3(target, key, value, receiver) {\n let oldValue = target[key];\n if (!shallow) {\n value = toRaw(value);\n oldValue = toRaw(oldValue);\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\", isArray(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nvar mutableHandlers = {\n get: get2,\n set: set2,\n deleteProperty,\n has,\n ownKeys\n};\nvar readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if (true) {\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n if (true) {\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n};\nvar toReactive = (value) => isObject(value) ? reactive2(value) : value;\nvar toReadonly = (value) => isObject(value) ? readonly(value) : value;\nvar toShallow = (value) => value;\nvar getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (key !== rawKey) {\n !isReadonly && track(rawTarget, \"get\", key);\n }\n !isReadonly && track(rawTarget, \"get\", rawKey);\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (key !== rawKey) {\n !isReadonly && track(rawTarget, \"has\", key);\n }\n !isReadonly && track(rawTarget, \"has\", rawKey);\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (true) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (true) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3 ? get3.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (true) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n }\n return type === \"delete\" ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nvar [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n };\n}\nvar mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nvar readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`);\n }\n}\nvar reactiveMap = /* @__PURE__ */ new WeakMap();\nvar shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nvar readonlyMap = /* @__PURE__ */ new WeakMap();\nvar shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getTargetType(value) {\n return value[\n \"__v_skip\"\n /* SKIP */\n ] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));\n}\nfunction reactive2(target) {\n if (target && target[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ]) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (true) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\n \"__v_raw\"\n /* RAW */\n ] && !(isReadonly && target[\n \"__v_isReactive\"\n /* IS_REACTIVE */\n ])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction toRaw(observed) {\n return observed && toRaw(observed[\n \"__v_raw\"\n /* RAW */\n ]) || observed;\n}\nfunction isRef(r) {\n return Boolean(r && r.__v_isRef === true);\n}\n\n// packages/alpinejs/src/magics/$nextTick.js\nmagic(\"nextTick\", () => nextTick);\n\n// packages/alpinejs/src/magics/$dispatch.js\nmagic(\"dispatch\", (el) => dispatch.bind(dispatch, el));\n\n// packages/alpinejs/src/magics/$watch.js\nmagic(\"watch\", (el, { evaluateLater: evaluateLater2, cleanup: cleanup2 }) => (key, callback) => {\n let evaluate2 = evaluateLater2(key);\n let getter = () => {\n let value;\n evaluate2((i) => value = i);\n return value;\n };\n let unwatch = watch(getter, callback);\n cleanup2(unwatch);\n});\n\n// packages/alpinejs/src/magics/$store.js\nmagic(\"store\", getStores);\n\n// packages/alpinejs/src/magics/$data.js\nmagic(\"data\", (el) => scope(el));\n\n// packages/alpinejs/src/magics/$root.js\nmagic(\"root\", (el) => closestRoot(el));\n\n// packages/alpinejs/src/magics/$refs.js\nmagic(\"refs\", (el) => {\n if (el._x_refs_proxy)\n return el._x_refs_proxy;\n el._x_refs_proxy = mergeProxies(getArrayOfRefObject(el));\n return el._x_refs_proxy;\n});\nfunction getArrayOfRefObject(el) {\n let refObjects = [];\n findClosest(el, (i) => {\n if (i._x_refs)\n refObjects.push(i._x_refs);\n });\n return refObjects;\n}\n\n// packages/alpinejs/src/ids.js\nvar globalIdMemo = {};\nfunction findAndIncrementId(name) {\n if (!globalIdMemo[name])\n globalIdMemo[name] = 0;\n return ++globalIdMemo[name];\n}\nfunction closestIdRoot(el, name) {\n return findClosest(el, (element) => {\n if (element._x_ids && element._x_ids[name])\n return true;\n });\n}\nfunction setIdRoot(el, name) {\n if (!el._x_ids)\n el._x_ids = {};\n if (!el._x_ids[name])\n el._x_ids[name] = findAndIncrementId(name);\n}\n\n// packages/alpinejs/src/magics/$id.js\nmagic(\"id\", (el, { cleanup: cleanup2 }) => (name, key = null) => {\n let cacheKey = `${name}${key ? `-${key}` : \"\"}`;\n return cacheIdByNameOnElement(el, cacheKey, cleanup2, () => {\n let root = closestIdRoot(el, name);\n let id = root ? root._x_ids[name] : findAndIncrementId(name);\n return key ? `${name}-${id}-${key}` : `${name}-${id}`;\n });\n});\ninterceptClone((from, to) => {\n if (from._x_id) {\n to._x_id = from._x_id;\n }\n});\nfunction cacheIdByNameOnElement(el, cacheKey, cleanup2, callback) {\n if (!el._x_id)\n el._x_id = {};\n if (el._x_id[cacheKey])\n return el._x_id[cacheKey];\n let output = callback();\n el._x_id[cacheKey] = output;\n cleanup2(() => {\n delete el._x_id[cacheKey];\n });\n return output;\n}\n\n// packages/alpinejs/src/magics/$el.js\nmagic(\"el\", (el) => el);\n\n// packages/alpinejs/src/magics/index.js\nwarnMissingPluginMagic(\"Focus\", \"focus\", \"focus\");\nwarnMissingPluginMagic(\"Persist\", \"persist\", \"persist\");\nfunction warnMissingPluginMagic(name, magicName, slug) {\n magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/directives/x-modelable.js\ndirective(\"modelable\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup: cleanup2 }) => {\n let func = evaluateLater2(expression);\n let innerGet = () => {\n let result;\n func((i) => result = i);\n return result;\n };\n let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`);\n let innerSet = (val) => evaluateInnerSet(() => {\n }, { scope: { \"__placeholder\": val } });\n let initialValue = innerGet();\n innerSet(initialValue);\n queueMicrotask(() => {\n if (!el._x_model)\n return;\n el._x_removeModelListeners[\"default\"]();\n let outerGet = el._x_model.get;\n let outerSet = el._x_model.setWithModifiers;\n let releaseEntanglement = entangle(\n {\n get() {\n return outerGet();\n },\n set(value) {\n outerSet(value);\n }\n },\n {\n get() {\n return innerGet();\n },\n set(value) {\n innerSet(value);\n }\n }\n );\n cleanup2(releaseEntanglement);\n });\n});\n\n// packages/alpinejs/src/directives/x-teleport.js\ndirective(\"teleport\", (el, { modifiers, expression }, { cleanup: cleanup2 }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-teleport can only be used on a <template> tag\", el);\n let target = getTarget(expression);\n let clone2 = el.content.cloneNode(true).firstElementChild;\n el._x_teleport = clone2;\n clone2._x_teleportBack = el;\n el.setAttribute(\"data-teleport-template\", true);\n clone2.setAttribute(\"data-teleport-target\", true);\n if (el._x_forwardEvents) {\n el._x_forwardEvents.forEach((eventName) => {\n clone2.addEventListener(eventName, (e) => {\n e.stopPropagation();\n el.dispatchEvent(new e.constructor(e.type, e));\n });\n });\n }\n addScopeToNode(clone2, {}, el);\n let placeInDom = (clone3, target2, modifiers2) => {\n if (modifiers2.includes(\"prepend\")) {\n target2.parentNode.insertBefore(clone3, target2);\n } else if (modifiers2.includes(\"append\")) {\n target2.parentNode.insertBefore(clone3, target2.nextSibling);\n } else {\n target2.appendChild(clone3);\n }\n };\n mutateDom(() => {\n skipDuringClone(() => {\n placeInDom(clone2, target, modifiers);\n initTree(clone2);\n })();\n });\n el._x_teleportPutBack = () => {\n let target2 = getTarget(expression);\n mutateDom(() => {\n placeInDom(el._x_teleport, target2, modifiers);\n });\n };\n cleanup2(\n () => mutateDom(() => {\n clone2.remove();\n destroyTree(clone2);\n })\n );\n});\nvar teleportContainerDuringClone = document.createElement(\"div\");\nfunction getTarget(expression) {\n let target = skipDuringClone(() => {\n return document.querySelector(expression);\n }, () => {\n return teleportContainerDuringClone;\n })();\n if (!target)\n warn(`Cannot find x-teleport element for selector: \"${expression}\"`);\n return target;\n}\n\n// packages/alpinejs/src/directives/x-ignore.js\nvar handler = () => {\n};\nhandler.inline = (el, { modifiers }, { cleanup: cleanup2 }) => {\n modifiers.includes(\"self\") ? el._x_ignoreSelf = true : el._x_ignore = true;\n cleanup2(() => {\n modifiers.includes(\"self\") ? delete el._x_ignoreSelf : delete el._x_ignore;\n });\n};\ndirective(\"ignore\", handler);\n\n// packages/alpinejs/src/directives/x-effect.js\ndirective(\"effect\", skipDuringClone((el, { expression }, { effect: effect3 }) => {\n effect3(evaluateLater(el, expression));\n}));\n\n// packages/alpinejs/src/utils/on.js\nfunction on(el, event, modifiers, callback) {\n let listenerTarget = el;\n let handler4 = (e) => callback(e);\n let options = {};\n let wrapHandler = (callback2, wrapper) => (e) => wrapper(callback2, e);\n if (modifiers.includes(\"dot\"))\n event = dotSyntax(event);\n if (modifiers.includes(\"camel\"))\n event = camelCase2(event);\n if (modifiers.includes(\"capture\"))\n options.capture = true;\n if (modifiers.includes(\"window\"))\n listenerTarget = window;\n if (modifiers.includes(\"document\"))\n listenerTarget = document;\n if (modifiers.includes(\"passive\")) {\n options.passive = modifiers[modifiers.indexOf(\"passive\") + 1] !== \"false\";\n }\n handler4 = addDebounceOrThrottle(modifiers, handler4);\n if (modifiers.includes(\"prevent\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.preventDefault();\n next(e);\n });\n if (modifiers.includes(\"stop\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.stopPropagation();\n next(e);\n });\n if (modifiers.includes(\"once\")) {\n handler4 = wrapHandler(handler4, (next, e) => {\n next(e);\n listenerTarget.removeEventListener(event, handler4, options);\n });\n }\n if (modifiers.includes(\"away\") || modifiers.includes(\"outside\")) {\n listenerTarget = document;\n handler4 = wrapHandler(handler4, (next, e) => {\n if (el.contains(e.target))\n return;\n if (e.target.isConnected === false)\n return;\n if (el.offsetWidth < 1 && el.offsetHeight < 1)\n return;\n if (el._x_isShown === false)\n return;\n next(e);\n });\n }\n if (modifiers.includes(\"self\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.target === el && next(e);\n });\n if (event === \"submit\") {\n handler4 = wrapHandler(handler4, (next, e) => {\n if (e.target._x_pendingModelUpdates) {\n e.target._x_pendingModelUpdates.forEach((fn) => fn());\n }\n next(e);\n });\n }\n if (isKeyEvent(event) || isClickEvent(event)) {\n handler4 = wrapHandler(handler4, (next, e) => {\n if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) {\n return;\n }\n next(e);\n });\n }\n listenerTarget.addEventListener(event, handler4, options);\n return () => {\n listenerTarget.removeEventListener(event, handler4, options);\n };\n}\nfunction addDebounceOrThrottle(modifiers, handler4) {\n if (modifiers.includes(\"debounce\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"debounce\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = debounce(handler4, wait);\n }\n if (modifiers.includes(\"throttle\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"throttle\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = throttle(handler4, wait);\n }\n return handler4;\n}\nfunction dotSyntax(subject) {\n return subject.replace(/-/g, \".\");\n}\nfunction camelCase2(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction isNumeric(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction kebabCase2(subject) {\n if ([\" \", \"_\"].includes(\n subject\n ))\n return subject;\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[_\\s]/, \"-\").toLowerCase();\n}\nfunction isKeyEvent(event) {\n return [\"keydown\", \"keyup\"].includes(event);\n}\nfunction isClickEvent(event) {\n return [\"contextmenu\", \"click\", \"mouse\"].some((i) => event.includes(i));\n}\nfunction isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) {\n let keyModifiers = modifiers.filter((i) => {\n return ![\"window\", \"document\", \"prevent\", \"stop\", \"once\", \"capture\", \"self\", \"away\", \"outside\", \"passive\", \"preserve-scroll\", \"blur\", \"change\", \"lazy\"].includes(i);\n });\n if (keyModifiers.includes(\"debounce\")) {\n let debounceIndex = keyModifiers.indexOf(\"debounce\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.includes(\"throttle\")) {\n let debounceIndex = keyModifiers.indexOf(\"throttle\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.length === 0)\n return false;\n if (keyModifiers.length === 1 && keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n const systemKeyModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\", \"cmd\", \"super\"];\n const selectedSystemKeyModifiers = systemKeyModifiers.filter((modifier) => keyModifiers.includes(modifier));\n keyModifiers = keyModifiers.filter((i) => !selectedSystemKeyModifiers.includes(i));\n if (selectedSystemKeyModifiers.length > 0) {\n const activelyPressedKeyModifiers = selectedSystemKeyModifiers.filter((modifier) => {\n if (modifier === \"cmd\" || modifier === \"super\")\n modifier = \"meta\";\n return e[`${modifier}Key`];\n });\n if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) {\n if (isClickEvent(e.type))\n return false;\n if (keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n }\n }\n return true;\n}\nfunction keyToModifiers(key) {\n if (!key)\n return [];\n key = kebabCase2(key);\n let modifierToKeyMap = {\n \"ctrl\": \"control\",\n \"slash\": \"/\",\n \"space\": \" \",\n \"spacebar\": \" \",\n \"cmd\": \"meta\",\n \"esc\": \"escape\",\n \"up\": \"arrow-up\",\n \"down\": \"arrow-down\",\n \"left\": \"arrow-left\",\n \"right\": \"arrow-right\",\n \"period\": \".\",\n \"comma\": \",\",\n \"equal\": \"=\",\n \"minus\": \"-\",\n \"underscore\": \"_\"\n };\n modifierToKeyMap[key] = key;\n return Object.keys(modifierToKeyMap).map((modifier) => {\n if (modifierToKeyMap[modifier] === key)\n return modifier;\n }).filter((modifier) => modifier);\n}\n\n// packages/alpinejs/src/directives/x-model.js\ndirective(\"model\", (el, { modifiers, expression }, { effect: effect3, cleanup: cleanup2 }) => {\n let scopeTarget = el;\n if (modifiers.includes(\"parent\")) {\n scopeTarget = findClosest(el, (element) => element !== el);\n }\n let evaluateGet = evaluateLater(scopeTarget, expression);\n let evaluateSet;\n if (typeof expression === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`);\n } else if (typeof expression === \"function\" && typeof expression() === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`);\n } else {\n evaluateSet = () => {\n };\n }\n let getValue = () => {\n let result;\n evaluateGet((value) => result = value);\n return isGetterSetter(result) ? result.get() : result;\n };\n let setValue = (value) => {\n let result;\n evaluateGet((value2) => result = value2);\n if (isGetterSetter(result)) {\n result.set(value);\n } else {\n evaluateSet(() => {\n }, {\n scope: { \"__placeholder\": value }\n });\n }\n };\n if (typeof expression === \"string\" && el.type === \"radio\") {\n mutateDom(() => {\n if (!el.hasAttribute(\"name\"))\n el.setAttribute(\"name\", expression);\n });\n }\n let hasChangeModifier = modifiers.includes(\"change\") || modifiers.includes(\"lazy\");\n let hasBlurModifier = modifiers.includes(\"blur\");\n let hasEnterModifier = modifiers.includes(\"enter\");\n let hasExplicitEventModifiers = hasChangeModifier || hasBlurModifier || hasEnterModifier;\n let removeListener;\n if (isCloning) {\n removeListener = () => {\n };\n } else if (hasExplicitEventModifiers) {\n let listeners = [];\n let syncValue = (e) => setValue(getInputValue(el, modifiers, e, getValue()));\n if (hasChangeModifier) {\n listeners.push(on(el, \"change\", modifiers, syncValue));\n }\n if (hasBlurModifier) {\n listeners.push(on(el, \"blur\", modifiers, syncValue));\n if (el.form) {\n let form = el.form;\n let syncCallback = () => syncValue({ target: el });\n if (!form._x_pendingModelUpdates)\n form._x_pendingModelUpdates = [];\n form._x_pendingModelUpdates.push(syncCallback);\n cleanup2(() => {\n if (form._x_pendingModelUpdates) {\n form._x_pendingModelUpdates.splice(form._x_pendingModelUpdates.indexOf(syncCallback), 1);\n }\n });\n }\n }\n if (hasEnterModifier) {\n listeners.push(on(el, \"keydown\", modifiers, (e) => {\n if (e.key === \"Enter\")\n syncValue(e);\n }));\n }\n removeListener = () => listeners.forEach((remove) => remove());\n } else {\n let event = el.tagName.toLowerCase() === \"select\" || [\"checkbox\", \"radio\"].includes(el.type) ? \"change\" : \"input\";\n removeListener = on(el, event, modifiers, (e) => {\n setValue(getInputValue(el, modifiers, e, getValue()));\n });\n }\n if (modifiers.includes(\"fill\")) {\n if ([void 0, null, \"\"].includes(getValue()) || isCheckbox(el) && Array.isArray(getValue()) || el.tagName.toLowerCase() === \"select\" && el.multiple) {\n setValue(\n getInputValue(el, modifiers, { target: el }, getValue())\n );\n }\n }\n if (!el._x_removeModelListeners)\n el._x_removeModelListeners = {};\n el._x_removeModelListeners[\"default\"] = removeListener;\n cleanup2(() => el._x_removeModelListeners[\"default\"]());\n if (el.form) {\n let removeResetListener = on(el.form, \"reset\", [], (e) => {\n nextTick(() => el._x_model && el._x_model.set(getInputValue(el, modifiers, { target: el }, getValue())));\n });\n cleanup2(() => removeResetListener());\n }\n el._x_model = {\n get() {\n return getValue();\n },\n set(value) {\n setValue(value);\n },\n setWithModifiers: addDebounceOrThrottle(modifiers, setValue)\n };\n el._x_forceModelUpdate = (value) => {\n if (value === void 0 && typeof expression === \"string\" && expression.match(/\\./))\n value = \"\";\n mutateDom(() => {\n if (isCheckbox(el)) {\n if (Array.isArray(value)) {\n el.checked = value.some((val) => val == el.value);\n } else {\n el.checked = !!value;\n }\n } else if (isRadio(el)) {\n if (typeof value === \"boolean\") {\n el.checked = safeParseBoolean(el.value) === value;\n } else {\n el.checked = el.value == value;\n }\n } else {\n bind(el, \"value\", value);\n }\n });\n };\n effect3(() => {\n let value = getValue();\n if (modifiers.includes(\"unintrusive\") && document.activeElement.isSameNode(el))\n return;\n el._x_forceModelUpdate(value);\n });\n});\nfunction getInputValue(el, modifiers, event, currentValue) {\n return mutateDom(() => {\n if (event instanceof CustomEvent && event.detail !== void 0)\n return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value;\n else if (isCheckbox(el)) {\n if (Array.isArray(currentValue)) {\n let newValue = null;\n if (modifiers.includes(\"number\")) {\n newValue = safeParseNumber(event.target.value);\n } else if (modifiers.includes(\"boolean\")) {\n newValue = safeParseBoolean(event.target.value);\n } else {\n newValue = event.target.value;\n }\n return event.target.checked ? currentValue.includes(newValue) ? currentValue : currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));\n } else {\n return event.target.checked;\n }\n } else if (el.tagName.toLowerCase() === \"select\" && el.multiple) {\n if (modifiers.includes(\"number\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseNumber(rawValue);\n });\n } else if (modifiers.includes(\"boolean\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseBoolean(rawValue);\n });\n }\n return Array.from(event.target.selectedOptions).map((option) => {\n return option.value || option.text;\n });\n } else {\n let newValue;\n if (isRadio(el)) {\n if (event.target.checked) {\n newValue = event.target.value;\n } else {\n newValue = currentValue;\n }\n } else {\n newValue = event.target.value;\n }\n if (modifiers.includes(\"number\")) {\n return safeParseNumber(newValue);\n } else if (modifiers.includes(\"boolean\")) {\n return safeParseBoolean(newValue);\n } else if (modifiers.includes(\"trim\")) {\n return newValue.trim();\n } else {\n return newValue;\n }\n }\n });\n}\nfunction safeParseNumber(rawValue) {\n let number = rawValue ? parseFloat(rawValue) : null;\n return isNumeric2(number) ? number : rawValue;\n}\nfunction checkedAttrLooseCompare2(valueA, valueB) {\n return valueA == valueB;\n}\nfunction isNumeric2(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction isGetterSetter(value) {\n return value !== null && typeof value === \"object\" && typeof value.get === \"function\" && typeof value.set === \"function\";\n}\n\n// packages/alpinejs/src/directives/x-cloak.js\ndirective(\"cloak\", (el) => queueMicrotask(() => mutateDom(() => el.removeAttribute(prefix(\"cloak\")))));\n\n// packages/alpinejs/src/directives/x-init.js\naddInitSelector(() => `[${prefix(\"init\")}]`);\ndirective(\"init\", skipDuringClone((el, { expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"string\") {\n return !!expression.trim() && evaluate2(expression, {}, false);\n }\n return evaluate2(expression, {}, false);\n}));\n\n// packages/alpinejs/src/directives/x-text.js\ndirective(\"text\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.textContent = value;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-html.js\ndirective(\"html\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.innerHTML = value ?? \"\";\n el._x_ignoreSelf = true;\n initTree(el);\n delete el._x_ignoreSelf;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-bind.js\nmapAttributes(startingWith(\":\", into(prefix(\"bind:\"))));\nvar handler2 = (el, { value, modifiers, expression, original }, { effect: effect3, cleanup: cleanup2 }) => {\n if (!value) {\n let bindingProviders = {};\n injectBindingProviders(bindingProviders);\n let getBindings = evaluateLater(el, expression);\n getBindings((bindings) => {\n applyBindingsObject(el, bindings, original);\n }, { scope: bindingProviders });\n return;\n }\n if (value === \"key\")\n return storeKeyForXFor(el, expression);\n if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) {\n return;\n }\n let evaluate2 = evaluateLater(el, expression);\n effect3(() => evaluate2((result) => {\n if (result === void 0 && typeof expression === \"string\" && expression.match(/\\./)) {\n result = \"\";\n }\n mutateDom(() => bind(el, value, result, modifiers));\n }));\n cleanup2(() => {\n el._x_undoAddedClasses && el._x_undoAddedClasses();\n el._x_undoAddedStyles && el._x_undoAddedStyles();\n });\n};\nhandler2.inline = (el, { value, modifiers, expression }) => {\n if (!value)\n return;\n if (!el._x_inlineBindings)\n el._x_inlineBindings = {};\n el._x_inlineBindings[value] = { expression, extract: false };\n};\ndirective(\"bind\", handler2);\nfunction storeKeyForXFor(el, expression) {\n el._x_keyExpression = expression;\n}\n\n// packages/alpinejs/src/directives/x-data.js\naddRootSelector(() => `[${prefix(\"data\")}]`);\ndirective(\"data\", (el, { expression }, { cleanup: cleanup2 }) => {\n if (shouldSkipRegisteringDataDuringClone(el))\n return;\n expression = expression === \"\" ? \"{}\" : expression;\n let magicContext = {};\n injectMagics(magicContext, el);\n let dataProviderContext = {};\n injectDataProviders(dataProviderContext, magicContext);\n let data2 = evaluate(el, expression, { scope: dataProviderContext });\n if (data2 === void 0 || data2 === true)\n data2 = {};\n injectMagics(data2, el);\n let reactiveData = reactive(data2);\n initInterceptors(reactiveData);\n let undo = addScopeToNode(el, reactiveData);\n reactiveData[\"init\"] && evaluate(el, reactiveData[\"init\"]);\n cleanup2(() => {\n reactiveData[\"destroy\"] && evaluate(el, reactiveData[\"destroy\"]);\n undo();\n });\n});\ninterceptClone((from, to) => {\n if (from._x_dataStack) {\n to._x_dataStack = from._x_dataStack;\n to.setAttribute(\"data-has-alpine-state\", true);\n }\n});\nfunction shouldSkipRegisteringDataDuringClone(el) {\n if (!isCloning)\n return false;\n if (isCloningLegacy)\n return true;\n return el.hasAttribute(\"data-has-alpine-state\");\n}\n\n// packages/alpinejs/src/directives/x-show.js\ndirective(\"show\", (el, { modifiers, expression }, { effect: effect3 }) => {\n let evaluate2 = evaluateLater(el, expression);\n if (!el._x_doHide)\n el._x_doHide = () => {\n mutateDom(() => {\n el.style.setProperty(\"display\", \"none\", modifiers.includes(\"important\") ? \"important\" : void 0);\n });\n };\n if (!el._x_doShow)\n el._x_doShow = () => {\n mutateDom(() => {\n if (el.style.length === 1 && el.style.display === \"none\") {\n el.removeAttribute(\"style\");\n } else {\n el.style.removeProperty(\"display\");\n }\n });\n };\n let hide = () => {\n el._x_doHide();\n el._x_isShown = false;\n };\n let show = () => {\n el._x_doShow();\n el._x_isShown = true;\n };\n let clickAwayCompatibleShow = () => setTimeout(show);\n let toggle = once(\n (value) => value ? show() : hide(),\n (value) => {\n if (typeof el._x_toggleAndCascadeWithTransitions === \"function\") {\n el._x_toggleAndCascadeWithTransitions(el, value, show, hide);\n } else {\n value ? clickAwayCompatibleShow() : hide();\n }\n }\n );\n let oldValue;\n let firstTime = true;\n effect3(() => evaluate2((value) => {\n if (!firstTime && value === oldValue)\n return;\n if (modifiers.includes(\"immediate\"))\n value ? clickAwayCompatibleShow() : hide();\n toggle(value);\n oldValue = value;\n firstTime = false;\n }));\n});\n\n// packages/alpinejs/src/directives/x-for.js\ndirective(\"for\", (el, { expression }, { effect: effect3, cleanup: cleanup2 }) => {\n let iteratorNames = parseForExpression(expression);\n let evaluateItems = evaluateLater(el, iteratorNames.items);\n let evaluateKey = evaluateLater(\n el,\n // the x-bind:key expression is stored for our use instead of evaluated.\n el._x_keyExpression || \"index\"\n );\n el._x_lookup = /* @__PURE__ */ new Map();\n effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey));\n cleanup2(() => {\n el._x_lookup.forEach(\n (el2) => mutateDom(() => {\n destroyTree(el2);\n el2.remove();\n })\n );\n delete el._x_lookup;\n });\n});\nfunction refreshScope(scope2) {\n return (newScope) => {\n Object.entries(newScope).forEach(([key, value]) => {\n scope2[key] = value;\n });\n };\n}\nfunction loop(templateEl, iteratorNames, evaluateItems, evaluateKey) {\n evaluateItems((items) => {\n if (isNumeric3(items))\n items = Array.from({ length: items }, (_, i) => i + 1);\n if (items === void 0 || items === null)\n items = [];\n if (items instanceof Set)\n items = Array.from(items);\n if (items instanceof Map)\n items = Array.from(items);\n let oldLookup = templateEl._x_lookup;\n let lookup = /* @__PURE__ */ new Map();\n templateEl._x_lookup = lookup;\n let hasStringKeys = isObject2(items);\n let scopeEntries = Object.entries(items).map(([index, item]) => {\n if (!hasStringKeys)\n index = parseInt(index);\n let scope2 = getIterationScopeVariables(iteratorNames, item, index, items);\n let key;\n evaluateKey((innerKey) => {\n if (typeof innerKey === \"object\")\n warn(\"x-for key cannot be an object, it must be a string or an integer\", templateEl);\n if (oldLookup.has(innerKey)) {\n lookup.set(innerKey, oldLookup.get(innerKey));\n oldLookup.delete(innerKey);\n }\n key = innerKey;\n }, { scope: { index, ...scope2 } });\n return [key, scope2];\n });\n mutateDom(() => {\n oldLookup.forEach((el) => {\n destroyTree(el);\n el.remove();\n });\n let added = /* @__PURE__ */ new Set();\n let prev = templateEl;\n scopeEntries.forEach(([key, scope2]) => {\n if (lookup.has(key)) {\n let el = lookup.get(key);\n el._x_refreshXForScope(scope2);\n if (prev.nextElementSibling !== el) {\n if (prev.nextElementSibling)\n el.replaceWith(prev.nextElementSibling);\n prev.after(el);\n }\n prev = el;\n if (el._x_currentIfEl) {\n if (el.nextElementSibling !== el._x_currentIfEl)\n prev.after(el._x_currentIfEl);\n prev = el._x_currentIfEl;\n }\n return;\n }\n if (templateEl.content.children.length > 1)\n warn(\"x-for templates require a single root element, additional elements will be ignored.\", templateEl);\n let clone2 = document.importNode(templateEl.content, true).firstElementChild;\n let reactiveScope = reactive(scope2);\n addScopeToNode(clone2, reactiveScope, templateEl);\n clone2._x_refreshXForScope = refreshScope(reactiveScope);\n lookup.set(key, clone2);\n added.add(clone2);\n prev.after(clone2);\n prev = clone2;\n });\n skipDuringClone(() => added.forEach((clone2) => initTree(clone2)))();\n });\n });\n}\nfunction parseForExpression(expression) {\n let forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\n let stripParensRE = /^\\s*\\(|\\)\\s*$/g;\n let forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\n let inMatch = expression.match(forAliasRE);\n if (!inMatch)\n return;\n let res = {};\n res.items = inMatch[2].trim();\n let item = inMatch[1].replace(stripParensRE, \"\").trim();\n let iteratorMatch = item.match(forIteratorRE);\n if (iteratorMatch) {\n res.item = item.replace(forIteratorRE, \"\").trim();\n res.index = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.collection = iteratorMatch[2].trim();\n }\n } else {\n res.item = item;\n }\n return res;\n}\nfunction getIterationScopeVariables(iteratorNames, item, index, items) {\n let scopeVariables = {};\n if (/^\\[.*\\]$/.test(iteratorNames.item) && Array.isArray(item)) {\n let names = iteratorNames.item.replace(\"[\", \"\").replace(\"]\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name, i) => {\n scopeVariables[name] = item[i];\n });\n } else if (/^\\{.*\\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === \"object\") {\n let names = iteratorNames.item.replace(\"{\", \"\").replace(\"}\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name) => {\n scopeVariables[name] = item[name];\n });\n } else {\n scopeVariables[iteratorNames.item] = item;\n }\n if (iteratorNames.index)\n scopeVariables[iteratorNames.index] = index;\n if (iteratorNames.collection)\n scopeVariables[iteratorNames.collection] = items;\n return scopeVariables;\n}\nfunction isNumeric3(subject) {\n return typeof subject !== \"object\" && !isNaN(subject);\n}\nfunction isObject2(subject) {\n return typeof subject === \"object\" && !Array.isArray(subject);\n}\n\n// packages/alpinejs/src/directives/x-ref.js\nfunction handler3() {\n}\nhandler3.inline = (el, { expression }, { cleanup: cleanup2 }) => {\n let root = closestRoot(el);\n if (!root)\n return;\n if (!root._x_refs)\n root._x_refs = {};\n root._x_refs[expression] = el;\n cleanup2(() => delete root._x_refs[expression]);\n};\ndirective(\"ref\", handler3);\n\n// packages/alpinejs/src/directives/x-if.js\ndirective(\"if\", (el, { expression }, { effect: effect3, cleanup: cleanup2 }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-if can only be used on a <template> tag\", el);\n let evaluate2 = evaluateLater(el, expression);\n let show = () => {\n if (el._x_currentIfEl)\n return el._x_currentIfEl;\n let clone2 = el.content.cloneNode(true).firstElementChild;\n addScopeToNode(clone2, {}, el);\n mutateDom(() => {\n el.after(clone2);\n skipDuringClone(() => initTree(clone2))();\n });\n el._x_currentIfEl = clone2;\n el._x_undoIf = () => {\n mutateDom(() => {\n destroyTree(clone2);\n clone2.remove();\n });\n delete el._x_currentIfEl;\n };\n return clone2;\n };\n let hide = () => {\n if (!el._x_undoIf)\n return;\n el._x_undoIf();\n delete el._x_undoIf;\n };\n effect3(() => evaluate2((value) => {\n value ? show() : hide();\n }));\n cleanup2(() => el._x_undoIf && el._x_undoIf());\n});\n\n// packages/alpinejs/src/directives/x-id.js\ndirective(\"id\", (el, { expression }, { evaluate: evaluate2 }) => {\n let names = evaluate2(expression);\n names.forEach((name) => setIdRoot(el, name));\n});\ninterceptClone((from, to) => {\n if (from._x_ids) {\n to._x_ids = from._x_ids;\n }\n});\n\n// packages/alpinejs/src/directives/x-on.js\nmapAttributes(startingWith(\"@\", into(prefix(\"on:\"))));\ndirective(\"on\", skipDuringClone((el, { value, modifiers, expression }, { cleanup: cleanup2 }) => {\n let evaluate2 = expression ? evaluateLater(el, expression) : () => {\n };\n if (el.tagName.toLowerCase() === \"template\") {\n if (!el._x_forwardEvents)\n el._x_forwardEvents = [];\n if (!el._x_forwardEvents.includes(value))\n el._x_forwardEvents.push(value);\n }\n let removeListener = on(el, value, modifiers, (e) => {\n evaluate2(() => {\n }, { scope: { \"$event\": e }, params: [e] });\n });\n cleanup2(() => removeListener());\n}));\n\n// packages/alpinejs/src/directives/index.js\nwarnMissingPluginDirective(\"Collapse\", \"collapse\", \"collapse\");\nwarnMissingPluginDirective(\"Intersect\", \"intersect\", \"intersect\");\nwarnMissingPluginDirective(\"Focus\", \"trap\", \"focus\");\nwarnMissingPluginDirective(\"Mask\", \"mask\", \"mask\");\nfunction warnMissingPluginDirective(name, directiveName, slug) {\n directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/index.js\nalpine_default.setEvaluator(normalEvaluator);\nalpine_default.setRawEvaluator(normalRawEvaluator);\nalpine_default.setReactivityEngine({ reactive: reactive2, effect: effect2, release: stop, raw: toRaw });\nvar src_default = alpine_default;\n\n// packages/alpinejs/builds/module.js\nvar module_default = src_default;\nexport {\n src_default as Alpine,\n module_default as default\n};\n", "import Alpine from 'alpinejs'\n\nexport function generateEntangleFunction(component, cleanup) {\n if (! cleanup) cleanup = () => {}\n\n return (name, live = false) => {\n let isLive = live\n let livewireProperty = name\n let livewireComponent = component.$wire\n let livewirePropertyValue = livewireComponent.get(livewireProperty)\n\n let interceptor = Alpine.interceptor((initialValue, getter, setter, path, key) => {\n // Check to see if the Livewire property exists and if not log a console error\n // and return so everything else keeps running.\n if (typeof livewirePropertyValue === 'undefined') {\n console.error(`Livewire Entangle Error: Livewire property ['${livewireProperty}'] cannot be found on component: ['${component.name}']`)\n return\n }\n\n let release = Alpine.entangle({\n // Outer scope...\n get() {\n return livewireComponent.get(name)\n },\n set(value) {\n livewireComponent.set(name, value, isLive)\n }\n }, {\n // Inner scope...\n get() {\n return getter()\n },\n set(value) {\n setter(value)\n }\n })\n\n cleanup(() => release())\n\n return cloneIfObject(livewireComponent.get(name))\n }, obj => {\n Object.defineProperty(obj, 'live', {\n get() {\n isLive = true\n\n return obj\n }\n })\n })\n\n return interceptor(livewirePropertyValue)\n }\n}\n\nfunction cloneIfObject(value) {\n return typeof value === 'object'\n ? JSON.parse(JSON.stringify(value))\n : value\n}\n", "import { isFunction } from '@/utils'\n\n/**\n * Our internal event listener bus...\n */\nlet listeners = []\n\n/**\n * Register a callback to run when an event is triggered...\n */\nexport function on(name, callback) {\n if (! listeners[name]) listeners[name] = []\n\n listeners[name].push(callback)\n\n // Return an \"off\" callback to remove the listener...\n return () => {\n listeners[name] = listeners[name].filter(i => i !== callback)\n }\n}\n\n/**\n * In addition to triggering an event, this method allows you to\n * defer running callbacks returned from listeners and pass a\n * value through each one so they can act like middleware.\n *\n * An example of using this combination to the fullest:\n *\n * // First let's look at the triggering phase:\n * let finish = trigger([event name], ...[event params])\n *\n * return finish([pass-through value])\n *\n * // Now, let's look at the \"listening\" phase:\n * on([event name], (...[event params]) => {\n * // The contents of this callback will be run immediately on trigger.\n *\n * return ([pass-through value]) => {\n * // This callback will be run when \"finish()\" is called.\n *\n * // The [pass-through value] can be mutated and must\n * // be returned for the next callback to process.\n * return [pass-through value]\n * }\n * })\n */\nexport function trigger(name, ...params) {\n let callbacks = listeners[name] || []\n\n let finishers = []\n\n for (let i = 0; i < callbacks.length; i++) {\n let finisher = callbacks[i](...params)\n\n if (isFunction(finisher)) finishers.push(finisher)\n }\n\n return (result) => {\n return runFinishers(finishers, result)\n }\n}\n\nexport async function triggerAsync(name, ...params) {\n let callbacks = listeners[name] || []\n\n let finishers = []\n\n for (let i = 0; i < callbacks.length; i++) {\n let finisher = await callbacks[i](...params)\n\n if (isFunction(finisher)) finishers.push(finisher)\n }\n\n return (result) => {\n return runFinishers(finishers, result)\n }\n}\n\nexport function runFinishers(finishers, result)\n{\n let latest = result\n\n for (let i = 0; i < finishers.length; i++) {\n let iResult = finishers[i](latest)\n\n if (iResult !== undefined) {\n latest = iResult\n }\n }\n\n return latest\n}\n", "import { constructAction, createOrAddToOutstandingMessage, interceptAction, interceptPartition } from '@/request'\n\nexport function coordinateNetworkInteractions(messageBus) {\n // Handle isolated components...\n interceptPartition(({ message, compileRequest }) => {\n if (! message.component.isIsolated) return\n\n compileRequest([message])\n })\n\n // Handle lazy components...\n interceptPartition(({ message, compileRequest }) => {\n if (\n message.component.isLazy &&\n ! message.component.hasBeenLazyLoaded &&\n message.component.isLazyIsolated\n ) {\n compileRequest([message])\n }\n })\n\n // Handle modelable/reactive components...\n interceptPartition(({ message, compileRequest }) => {\n let component = message.component\n\n let bundledMessages = []\n\n component.getDeepChildrenWithBindings(child => {\n let action = constructAction(child, '$commit')\n let message = createOrAddToOutstandingMessage(action)\n\n bundledMessages.push(message)\n })\n\n if (bundledMessages.length > 0) {\n compileRequest([message, ...bundledMessages])\n }\n })\n\n // If a request is in-flight, queue up the action to fire after the in-flight request has finished...\n interceptAction(({ action }) => {\n // Wire:click.renderless\n let isRenderless = action?.origin?.directive?.modifiers.includes('renderless')\n if (isRenderless) {\n action.metadata.renderless = true\n }\n\n let message = messageBus.activeMessageMatchingScope(action)\n\n if (message) {\n // Wire:click.async:\n // - allow async actions incoming to pass through...\n // - if active message actions are async, allow the incoming async action to pass through as well...\n if (message.isAsync() || action.isAsync()) return\n\n // Wire:poll:\n // - Throw away new polls if a request of any kind is in-flight...\n if (action.metadata.type === 'poll') {\n return action.cancel()\n }\n\n // Wire:poll:\n // - Cancel in-flight polls to prioritize the new poll...\n if (Array.from(message.actions).every(action => action.metadata.type === 'poll')) {\n return message.cancel()\n }\n\n // Wire:model.live:\n // - If both incoming and outgoing requests are model.live, let them run in parallel...\n if (Array.from(message.actions).every(action => action.metadata.type === 'model.live')) {\n if (action.metadata.type === 'model.live') {\n return\n }\n }\n\n action.defer()\n\n message.addInterceptor(({ onFinish }) => {\n onFinish(() => action.fire())\n })\n }\n })\n}\n", "\nexport class MessageRequest {\n messages = new Set()\n controller = new AbortController()\n interceptors = []\n cancelled = false\n uri = null\n payload = null\n options = null\n\n addMessage(message) {\n message.setRequest(this)\n\n this.messages.add(message)\n }\n\n getActiveMessages() {\n return new Set([...this.messages].filter(message => ! message.isCancelled()))\n }\n\n initInterceptors(interceptorRegistry) {\n this.interceptors = interceptorRegistry.getRequestInterceptors(this)\n\n this.messages.forEach(message => {\n let messageInterceptors = interceptorRegistry.getMessageInterceptors(message)\n\n message.setInterceptors(messageInterceptors)\n })\n\n this.interceptors.forEach(interceptor => interceptor.init())\n\n this.messages.forEach(message => {\n message.getInterceptors().forEach(interceptor => interceptor.init())\n })\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.controller.abort()\n\n this.messages.forEach(message => {\n if (message.isCancelled()) return\n\n message.cancel()\n })\n }\n\n hasAllCancelledMessages() {\n return this.getActiveMessages().size === 0\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n /**\n * Lifecycle methods\n */\n invokeOnSend({ responsePromise }) {\n this.interceptors.forEach(interceptor => interceptor.onSend({ responsePromise }))\n\n this.messages.forEach(message => message.invokeOnSend())\n }\n\n invokeOnCancel() {\n this.interceptors.forEach(interceptor => interceptor.onCancel())\n }\n\n invokeOnFailure({ error }) {\n this.interceptors.forEach(interceptor => interceptor.onFailure({ error }))\n\n this.messages.forEach(message => message.invokeOnFailure(error))\n }\n\n invokeOnResponse({ response }) {\n this.interceptors.forEach(interceptor => interceptor.onResponse({ response }))\n }\n\n invokeOnStream({ response }) {\n this.interceptors.forEach(interceptor => interceptor.onStream({ response }))\n }\n\n invokeOnParsed({ response, body }) {\n this.interceptors.forEach(interceptor => interceptor.onParsed({ response, body }))\n }\n\n\n invokeOnRedirect({ url, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onRedirect({ url, preventDefault }))\n }\n\n invokeOnDump({ html, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onDump({ html, preventDefault }))\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onError({ response, body, preventDefault }))\n\n this.messages.forEach(message => message.invokeOnError({ response, body, preventDefault }))\n }\n\n invokeOnSuccess({ response, body, json }) {\n this.interceptors.forEach(interceptor => interceptor.onSuccess({ response, body, json }))\n }\n\n invokeOnFinish() {\n this.interceptors.forEach(interceptor => interceptor.onFinish())\n }\n}\n\nexport class PageRequest {\n controller = new AbortController()\n\n constructor(uri) {\n this.uri = uri\n }\n\n cancel() {\n this.controller.abort()\n }\n\n isCancelled() {\n return this.controller.signal.aborted\n }\n}\n", "import { WeakBag } from \"@/utils\"\n\nexport class MessageInterceptor {\n onSend = () => {}\n onCancel = () => {}\n onFailure = () => {}\n onError = () => {}\n onStream = () => {}\n onSuccess = () => {}\n onSkipped = () => {}\n onFinish = () => {}\n onSync = () => {}\n onEffect = () => {}\n onMorph = async () => {}\n onRender = () => {}\n\n constructor(message, callback) {\n this.message = message\n this.callback = callback\n\n this.callback({\n message: this.message,\n cancel: () => {\n // If we're not yet attached to the message's interceptors,\n // call our own onCancel since message.invokeOnCancel() won't reach us\n let attachedToMessage = this.message.getInterceptors().includes(this)\n\n if (!attachedToMessage) {\n this.onCancel()\n }\n\n this.message.cancel()\n },\n onSend: (callback) => this.onSend = callback,\n onCancel: (callback) => this.onCancel = callback,\n onFailure: (callback) => this.onFailure = callback,\n onError: (callback) => this.onError = callback,\n onStream: (callback) => this.onStream = callback,\n onSuccess: (callback) => this.onSuccess = callback,\n onSkipped: (callback) => this.onSkipped = callback,\n onFinish: (callback) => this.onFinish = callback,\n })\n }\n\n init() {\n // Reserved for future use\n }\n}\n\nexport class RequestInterceptor {\n onSend = () => {}\n onCancel = () => {}\n onFailure = () => {}\n onResponse = () => {}\n onParsed = () => {}\n onError = () => {}\n onStream = () => {}\n onRedirect = () => {}\n onDump = () => {}\n onSuccess = () => {}\n onFinish = () => {}\n\n constructor(request, callback) {\n this.request = request\n this.callback = callback\n\n this.callback({\n request: this.request,\n onSend: (callback) => this.onSend = callback,\n onCancel: (callback) => this.onCancel = callback,\n onFailure: (callback) => this.onFailure = callback,\n onResponse: (callback) => this.onResponse = callback,\n onParsed: (callback) => this.onParsed = callback,\n onError: (callback) => this.onError = callback,\n onStream: (callback) => this.onStream = callback,\n onRedirect: (callback) => this.onRedirect = callback,\n onDump: (callback) => this.onDump = callback,\n onSuccess: (callback) => this.onSuccess = callback,\n onFinish: (callback) => this.onFinish = callback,\n })\n }\n\n init() {\n // Reserved for future use\n }\n}\n\nexport class InterceptorRegistry {\n messageInterceptorCallbacks = []\n messageInterceptorCallbacksByComponent = new WeakBag\n requestInterceptorCallbacks = []\n\n addInterceptor(component, callback) {\n this.messageInterceptorCallbacksByComponent.add(component, callback)\n\n return () => {\n this.messageInterceptorCallbacksByComponent.delete(component, callback)\n }\n }\n\n addMessageInterceptor(callback) {\n this.messageInterceptorCallbacks.push(callback)\n\n return () => {\n this.messageInterceptorCallbacks.splice(this.messageInterceptorCallbacks.indexOf(callback), 1)\n }\n }\n\n addRequestInterceptor(callback) {\n this.requestInterceptorCallbacks.push(callback)\n\n return () => {\n this.requestInterceptorCallbacks.splice(this.requestInterceptorCallbacks.indexOf(callback), 1)\n }\n }\n\n getMessageInterceptors(message) {\n let callbacks = [\n ...this.messageInterceptorCallbacksByComponent.get(message.component),\n ...this.messageInterceptorCallbacks,\n ]\n\n return callbacks.map(callback => {\n return new MessageInterceptor(message, callback)\n })\n }\n\n getRequestInterceptors(request) {\n return this.requestInterceptorCallbacks.map(callback => {\n return new RequestInterceptor(request, callback)\n })\n }\n}", "\n// This code and concept is all Jonathan Reinink - thanks man!\nexport function showHtmlModal(html) {\n let page = document.createElement('html')\n page.innerHTML = html\n page.querySelectorAll('a').forEach(a =>\n a.setAttribute('target', '_top')\n )\n\n let modal = document.getElementById('livewire-error')\n\n if (typeof modal != 'undefined' && modal != null) {\n // Modal already exists.\n modal.innerHTML = ''\n } else {\n modal = document.createElement('dialog')\n modal.id = 'livewire-error'\n modal.style.margin = '50px'\n modal.style.width = 'calc(100% - 100px)'\n modal.style.height = 'calc(100% - 100px)'\n modal.style.borderRadius = '5px'\n modal.style.padding = '0px'\n // Background color is set on the ::backdrop in Livewire's styles...\n }\n\n let iframe = document.createElement('iframe')\n iframe.style.backgroundColor = '#17161A'\n iframe.style.borderRadius = '5px'\n iframe.style.width = '100%'\n iframe.style.height = '100%'\n modal.appendChild(iframe)\n\n document.body.prepend(modal)\n document.body.style.overflow = 'hidden'\n iframe.contentWindow.document.open()\n iframe.contentWindow.document.write(page.outerHTML)\n iframe.contentWindow.document.close()\n\n // Close on click...\n modal.addEventListener('click', () => hideHtmlModal(modal))\n\n // Clean up on dialog close. This ensures that the modal dialog captures the escape\n // event first, so that dialog elements below it do not capture the event, before\n // we clean up and remove the modal from the DOM...\n modal.addEventListener('close', () => cleanupModal(modal))\n\n // Show the modal and focus it to ensure that the escape key works, otherwise it'll \n // be captured by the iframe, then blur so the modal focus ring isn't visible...\n modal.showModal()\n modal.focus()\n modal.blur()\n}\n\n// We don't want to clean up in here anymore because we're using the close \n// event to trigger the cleanup. This function is kept here to maintain \n// backwards compatibility as it is an exported function...\nexport function hideHtmlModal(modal) {\n modal.close()\n}\n\nfunction cleanupModal(modal) {\n modal.outerHTML = ''\n document.body.style.overflow = 'visible'\n}\n", "\nlet componentSymbols = new WeakMap\nlet componentIslandSymbols = new WeakMap\n\nexport function scopeSymbolFromMessage(message) {\n let component = message.component\n\n let hasAllIslands = Array.from(message.actions).every(action => action.metadata.island)\n\n if (hasAllIslands) {\n let islandName = Array.from(message.actions).map(action => action.metadata.island.name).sort().join('|')\n\n let islandSymbols = componentIslandSymbols.get(component)\n\n if (! islandSymbols) {\n islandSymbols = { [islandName]: Symbol() }\n\n componentIslandSymbols.set(component, islandSymbols)\n }\n\n if (! islandSymbols[islandName]) {\n islandSymbols[islandName] = Symbol()\n }\n\n return islandSymbols[islandName]\n }\n\n if (! componentSymbols.has(component)) {\n componentSymbols.set(component, Symbol())\n }\n\n return componentSymbols.get(component)\n}\n\nexport function scopeSymbolFromAction(action) {\n let component = action.component\n\n let isIsland = !! action.metadata.island\n\n if (isIsland) {\n let islandName = action.metadata.island.name\n\n let islandSymbols = componentIslandSymbols.get(component)\n\n if (! islandSymbols) {\n islandSymbols = { [islandName]: Symbol() }\n\n componentIslandSymbols.set(component, islandSymbols)\n }\n\n if (! islandSymbols[islandName]) {\n islandSymbols[islandName] = Symbol()\n }\n\n return islandSymbols[islandName]\n }\n\n if (! componentSymbols.has(component)) {\n componentSymbols.set(component, Symbol())\n }\n\n return componentSymbols.get(component)\n}\n\nexport class MessageBus {\n pendingMessages = new Set\n activeMessages = new Set\n bufferingMessages = new Set\n\n constructor() {\n //\n }\n\n messageBuffer(message, callback) {\n if (this.bufferingMessages.has(message)) {\n return\n }\n\n this.bufferingMessages.add(message)\n\n setTimeout(() => { // Buffer for 5ms to allow other areas of the codebase to hook into the lifecycle of an individual commit...\n callback()\n\n this.bufferingMessages.delete(message)\n }, 5)\n }\n\n addPendingMessage(message) {\n this.pendingMessages.add(message)\n }\n\n clearPendingMessages() {\n this.pendingMessages.clear()\n }\n\n getPendingMessages() {\n return Array.from(this.pendingMessages)\n }\n\n addActiveMessage(message) {\n this.activeMessages.add(message)\n }\n\n removeActiveMessage(message) {\n this.activeMessages.delete(message)\n }\n\n findScopedPendingMessage(action) {\n if (action.isAsync()) return null\n\n let actionScope = scopeSymbolFromAction(action)\n\n return Array.from(this.pendingMessages).find(message => {\n if (message.component !== action.component) return false\n\n // Check if any action in the message has the same scope\n return Array.from(message.actions).some(existingAction =>\n scopeSymbolFromAction(existingAction) === actionScope\n )\n })\n }\n\n activeMessageMatchingScope(action) {\n return Array.from(this.activeMessages).find(message => this.matchesScope(message, action))\n }\n\n matchesScope(message, action) {\n return message.scope === scopeSymbolFromAction(action)\n }\n\n allScopedMessages(action) {\n return [...Array.from(this.activeMessages), ...Array.from(this.pendingMessages)].filter(message => {\n return this.matchesScope(message, action)\n })\n }\n\n eachPendingMessage(callback) {\n Array.from(this.pendingMessages).forEach(callback)\n }\n}", "import { MessageInterceptor } from \"./interceptor\"\n\nexport default class Message {\n actions = new Set()\n snapshot = null\n updates = null\n calls = null\n payload = null\n responsePayload = null\n pendingReturns = []\n pendingReturnsMeta = {}\n interceptors = []\n cancelled = false\n skipped = false\n request = null\n _scope = null\n\n // Ensure scope isn't accessed until it's been set...\n get scope() {\n if (! this._scope) {\n throw new Error('Message scope has not been set yet')\n }\n\n return this._scope\n }\n\n set scope(scope) {\n this._scope = scope\n }\n\n constructor(component) {\n this.component = component\n }\n\n addAction(action) {\n let actionsByFingerprint = new Map()\n\n Array.from(this.actions).forEach(action => {\n actionsByFingerprint.set(action.fingerprint, action)\n })\n\n if (actionsByFingerprint.has(action.fingerprint)) {\n actionsByFingerprint.get(action.fingerprint).addSquashedAction(action)\n\n return\n }\n\n action.message = this\n this.actions.add(action)\n }\n\n removeAction(action) {\n this.actions.delete(action)\n action.message = null\n\n // If no actions remain, cancel the message\n if (this.actions.size === 0) {\n this.cancel()\n }\n }\n\n getActions() {\n return Array.from(this.actions)\n }\n\n hasActionForIsland(island) {\n return this.getActions().some(action => {\n return action.metadata.island?.name === island.metadata.name\n })\n }\n\n hasActionForComponent() {\n return this.getActions().some(action => {\n return action.metadata.island === undefined\n })\n }\n\n setInterceptors(interceptors) {\n this.interceptors = interceptors\n }\n\n addInterceptor(callback) {\n let interceptor = new MessageInterceptor(this, callback)\n\n this.interceptors.push(interceptor)\n\n interceptor.init()\n }\n\n setRequest(request) {\n this.request = request\n }\n\n getInterceptors() {\n return this.interceptors\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.invokeOnCancel()\n\n if (this.request?.hasAllCancelledMessages()) {\n this.request.cancel()\n }\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n markSkipped() {\n this.skipped = true\n }\n\n isSkipped() {\n return this.skipped\n }\n\n isAsync() {\n return Array.from(this.actions).every(action => action.isAsync())\n }\n\n /**\n * Lifecycle methods...\n */\n\n invokeOnSend() {\n this.interceptors.forEach(interceptor => interceptor.onSend({\n payload: this.payload\n }))\n\n // Invoke action-level onSend callbacks\n Array.from(this.actions).forEach((action, index) => {\n let call = this.calls[index]\n action.invokeOnSend({ call })\n })\n }\n\n invokeOnCancel() {\n this.interceptors.forEach(interceptor => interceptor.onCancel())\n\n this.rejectActionPromises({ status: null, body: null, json: null, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnFailure(error) {\n this.interceptors.forEach(interceptor => interceptor.onFailure({ error }))\n\n // Invoke action-level onFailure callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFailure({ error }))\n\n this.rejectActionPromises({ status: null, body: null, json: null, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.interceptors.forEach(interceptor => interceptor.onError({\n response,\n body,\n preventDefault\n }))\n\n // Invoke action-level onError callbacks\n Array.from(this.actions).forEach(action => action.invokeOnError({ response, body, preventDefault }))\n\n // Try to parse body as JSON for the rejection payload\n let json = null\n try { json = JSON.parse(body) } catch (e) {}\n\n this.rejectActionPromises({ status: response.status, body, json, errors: null })\n\n // Invoke action-level onFinish callbacks\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n\n this.invokeOnFinish()\n }\n\n invokeOnStream({ json }) {\n this.interceptors.forEach(interceptor => interceptor.onStream({ json }))\n }\n\n invokeOnSuccess() {\n this.interceptors.forEach(interceptor => {\n interceptor.onSuccess({\n payload: this.responsePayload,\n onSync: callback => interceptor.onSync = callback,\n onEffect: callback => interceptor.onEffect = callback,\n onMorph: callback => interceptor.onMorph = callback,\n onRender: callback => interceptor.onRender = callback\n })\n })\n\n // Store returns for later resolution (after morph)\n this.pendingReturns = this.responsePayload.effects['returns'] || []\n this.pendingReturnsMeta = this.responsePayload.effects['returnsMeta'] || {}\n }\n\n invokeOnSync() {\n this.interceptors.forEach(interceptor => interceptor.onSync())\n }\n\n invokeOnEffect() {\n this.interceptors.forEach(interceptor => interceptor.onEffect())\n }\n\n async invokeOnMorph() {\n await Promise.all(\n this.interceptors.map(interceptor => interceptor.onMorph())\n )\n }\n\n invokeOnRender() {\n this.interceptors.forEach(interceptor => interceptor.onRender())\n }\n\n invokeOnFinish() {\n this.interceptors.forEach(interceptor => interceptor.onFinish())\n }\n\n invokeOnSkipped() {\n this.interceptors.forEach(interceptor => interceptor.onSkipped())\n\n Array.from(this.actions).forEach(action => action.invokeOnFinish())\n }\n\n rejectActionPromises({ status, body, json, errors }) {\n Array.from(this.actions).forEach(action => {\n action.rejectPromise({ status, body, json, errors })\n })\n }\n\n resolveActionPromises(returns, returnsMeta) {\n let resolvedActions = new Set()\n\n returns.forEach((value, index) => {\n let action = Array.from(this.actions)[index]\n\n if (! action) return;\n\n // Check for errors in returnsMeta\n let meta = returnsMeta[index]\n if (meta?.errors) {\n action.rejectPromise({ status: 422, body: null, json: null, errors: meta.errors })\n action.invokeOnFinish()\n resolvedActions.add(action)\n return\n }\n\n if (meta?.status) {\n action.rejectPromise({ status: meta.status, body: null, json: null, errors: null })\n action.invokeOnFinish()\n resolvedActions.add(action)\n return\n }\n\n // Invoke action-level onSuccess callback with the return value\n action.invokeOnSuccess(value)\n\n action.resolvePromise(value)\n\n // Invoke action-level onFinish callback\n action.invokeOnFinish()\n\n resolvedActions.add(action)\n })\n\n Array.from(this.actions).forEach(action => {\n if (resolvedActions.has(action)) return\n\n // Invoke action-level onSuccess callback (undefined return)\n action.invokeOnSuccess(undefined)\n\n action.resolvePromise()\n\n // Invoke action-level onFinish callback\n action.invokeOnFinish()\n })\n }\n}\n", "\nexport default class Action {\n squashedActions = new Set()\n\n // Interceptor callbacks\n onSendCallbacks = []\n onCancelCallbacks = []\n onSuccessCallbacks = []\n onErrorCallbacks = []\n onFailureCallbacks = []\n onFinishCallbacks = []\n\n // Reference to the message this action belongs to (set by message.addAction)\n message = null\n cancelled = false\n deferred = false\n\n // Set by constructAction() to avoid circular dependency\n _fire = null\n\n constructor(component, name, params = [], metadata = {}, origin = null) {\n this.component = component\n this.name = name\n this.params = params\n this.metadata = metadata\n this.origin = origin\n\n this.promise = new Promise((resolve, reject) => {\n this.promiseResolution = { resolve, reject }\n })\n\n this.promise._livewireAction = this\n }\n\n cancel() {\n if (this.cancelled) return\n\n this.cancelled = true\n\n this.invokeOnCancel()\n this.invokeOnFinish()\n this.rejectPromise({ status: null, body: null, json: null, errors: null })\n\n // Also cancel squashed actions\n this.squashedActions.forEach(action => action.cancel())\n\n // Remove from message if attached\n if (this.message) {\n this.message.removeAction(this)\n }\n }\n\n isCancelled() {\n return this.cancelled\n }\n\n defer() {\n this.deferred = true\n }\n\n isDeferred() {\n return this.deferred\n }\n\n fire() {\n if (this._fire) {\n this._fire(this)\n }\n }\n\n get fingerprint() {\n let componentId = this.component.id\n let name = this.name\n let params = JSON.stringify(this.params)\n let metadata = JSON.stringify(this.metadata)\n\n // btoa only supports Latin-1 characters, not UTF-8, so we need to encode the string first...\n let bytes = new TextEncoder().encode(componentId + name + params + metadata)\n\n // Process in chunks to avoid \"Maximum call stack size exceeded\" with large payloads\n // (e.g., 300KB+ base64 images). The spread operator in String.fromCharCode(...array)\n // fails when array length exceeds JS engine's argument limit (~125k elements).\n let binary = ''\n let chunkSize = 8192\n for (let i = 0; i < bytes.length; i += chunkSize) {\n binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize))\n }\n\n return window.btoa(binary)\n }\n\n isAsync() {\n let asyncMethods = this.component.snapshot.memo?.async || []\n\n let methodIsMarkedAsync = asyncMethods.includes(this.name)\n\n let actionIsAsync = this.origin?.directive?.modifiers.includes('async') || (!! this.metadata.async)\n\n return methodIsMarkedAsync || actionIsAsync\n }\n\n isJson() {\n let jsonMethods = this.component.snapshot.memo?.json || []\n\n return jsonMethods.includes(this.name)\n }\n\n addInterceptor(callback) {\n callback({\n action: this,\n onSend: (cb) => this.onSendCallbacks.push(cb),\n onCancel: (cb) => this.onCancelCallbacks.push(cb),\n onSuccess: (cb) => this.onSuccessCallbacks.push(cb),\n onError: (cb) => this.onErrorCallbacks.push(cb),\n onFailure: (cb) => this.onFailureCallbacks.push(cb),\n onFinish: (cb) => this.onFinishCallbacks.push(cb),\n })\n }\n\n // Lifecycle invocations\n invokeOnSend({ call }) {\n this.onSendCallbacks.forEach(cb => cb({ call }))\n this.squashedActions.forEach(action => action.invokeOnSend({ call }))\n }\n\n invokeOnCancel() {\n this.onCancelCallbacks.forEach(cb => cb())\n this.squashedActions.forEach(action => action.invokeOnCancel())\n }\n\n invokeOnSuccess(result) {\n this.onSuccessCallbacks.forEach(cb => cb(result))\n this.squashedActions.forEach(action => action.invokeOnSuccess(result))\n }\n\n invokeOnError({ response, body, preventDefault }) {\n this.onErrorCallbacks.forEach(cb => cb({ response, body, preventDefault }))\n this.squashedActions.forEach(action => action.invokeOnError({ response, body, preventDefault }))\n }\n\n invokeOnFailure({ error }) {\n this.onFailureCallbacks.forEach(cb => cb({ error }))\n this.squashedActions.forEach(action => action.invokeOnFailure({ error }))\n }\n\n invokeOnFinish() {\n this.onFinishCallbacks.forEach(cb => cb())\n this.squashedActions.forEach(action => action.invokeOnFinish())\n }\n\n mergeMetadata(metadata) {\n this.metadata = { ...this.metadata, ...metadata }\n }\n\n rejectPromise(error) {\n this.squashedActions.forEach(action => action.rejectPromise(error))\n\n this.promiseResolution.reject(error)\n }\n\n addSquashedAction(action) {\n this.squashedActions.add(action)\n }\n\n resolvePromise(value) {\n this.squashedActions.forEach(action => action.resolvePromise(value))\n this.promiseResolution.resolve(value)\n }\n}\n", "import { trigger } from '@/hooks.js'\n\nexport function registerLegacyEventSupport(interceptRequest, interceptMessage) {\n\n// Support legacy 'request' event...\ninterceptRequest(({\n request,\n onFailure,\n onResponse,\n onError,\n onSuccess,\n}) => {\n let respondCallbacks = []\n let succeedCallbacks = []\n let failCallbacks = []\n\n trigger('request', {\n url: request.uri,\n options: request.options,\n payload: request.options.body,\n respond: i => respondCallbacks.push(i),\n succeed: i => succeedCallbacks.push(i),\n fail: i => failCallbacks.push(i),\n })\n\n onResponse(({ response }) => {\n respondCallbacks.forEach(callback => callback({\n status: response.status,\n response,\n }))\n })\n\n onSuccess(({ response, json }) => {\n succeedCallbacks.forEach(callback => callback({\n status: response.status,\n json,\n }))\n })\n\n onFailure(({ error }) => {\n failCallbacks.forEach(callback => callback({\n status: 503,\n content: null,\n preventDefault: () => {},\n }))\n })\n\n onError(({ response, body, preventDefault }) => {\n failCallbacks.forEach(callback => callback({\n status: response.status,\n content: body,\n preventDefault,\n }))\n })\n})\n\n// Support legacy 'commit' event...\ninterceptMessage(({\n message,\n onCancel,\n onError,\n onSuccess,\n onFinish,\n}) => {\n // Allow other areas of the codebase to hook into the lifecycle\n // of an individual commit...\n let respondCallbacks = []\n let succeedCallbacks = []\n let failCallbacks = []\n\n trigger('commit', {\n component: message.component,\n commit: message.payload,\n respond: (callback) => {\n respondCallbacks.push(callback)\n },\n succeed: (callback) => {\n succeedCallbacks.push(callback)\n },\n fail: (callback) => {\n failCallbacks.push(callback)\n },\n })\n\n onFinish(() => {\n respondCallbacks.forEach(callback => callback())\n })\n\n onSuccess(({ payload, onSync, onMorph, onRender }) => {\n onRender(() => {\n succeedCallbacks.forEach(callback => callback({\n snapshot: payload.snapshot,\n effects: payload.effects,\n }))\n })\n })\n\n onError(() => {\n failCallbacks.forEach(callback => callback())\n })\n\n onCancel(() => {\n failCallbacks.forEach(callback => callback())\n })\n})\n\n}\n", "import { getCsrfToken, contentIsFromDump, splitDumpFromContent, getUpdateUri } from '@/utils'\nimport { coordinateNetworkInteractions } from './interactions.js'\nimport { MessageRequest, PageRequest } from './request.js'\nimport { InterceptorRegistry } from './interceptor.js'\nimport { trigger, triggerAsync } from '@/hooks.js'\nimport { showHtmlModal } from '@/utils/modal.js'\nimport { MessageBus, scopeSymbolFromMessage } from './messageBus.js'\nimport Message from './message.js'\nimport Action from './action.js'\n\nlet outstandingActionOrigin = null\nlet outstandingActionMetadata = {}\nlet outstandingActionInterceptors = []\nlet interceptors = new InterceptorRegistry\nlet messageBus = new MessageBus()\nlet actionInterceptors = []\nlet partitionInterceptors = []\nlet sessionExpired = false\n\nexport function sessionIsExpired() {\n return sessionExpired\n}\n\nexport function setNextActionOrigin(origin) {\n outstandingActionOrigin = origin\n}\n\nexport function setNextActionMetadata(metadata) {\n outstandingActionMetadata = metadata\n}\n\nexport function setNextActionInterceptor(callback) {\n outstandingActionInterceptors.push(callback)\n}\n\nexport function interceptAction(callback) {\n actionInterceptors.push(callback)\n\n return () => {\n actionInterceptors.splice(actionInterceptors.indexOf(callback), 1)\n }\n}\n\nexport function interceptMessage(callback) {\n return interceptors.addMessageInterceptor(callback)\n}\n\nexport function interceptRequest(callback) {\n return interceptors.addRequestInterceptor(callback)\n}\n\nexport function interceptPartition(callback) {\n partitionInterceptors.push(callback)\n\n return () => {\n partitionInterceptors.splice(partitionInterceptors.indexOf(callback), 1)\n }\n}\n\n// Component-scoped interceptors...\n\nexport function interceptComponentAction(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptAction(({ action, ...rest }) => {\n if (action.component !== component) return\n if (actionName && action.name !== actionName) return\n\n callback({ action, ...rest })\n })\n}\n\nexport function interceptComponentMessage(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptors.addInterceptor(component, ({ message, ...rest }) => {\n if (actionName) {\n let hasAction = Array.from(message.actions).some(a => a.name === actionName)\n\n if (! hasAction) return\n }\n\n callback({ message, ...rest })\n })\n}\n\nexport function interceptComponentRequest(component, actionNameOrCallback, maybeCallback) {\n let actionName = typeof actionNameOrCallback === 'string' ? actionNameOrCallback : null\n let callback = actionName ? maybeCallback : actionNameOrCallback\n\n return interceptRequest(({ request, ...rest }) => {\n let matchingMessages = Array.from(request.messages).filter(m => {\n if (m.component !== component) return false\n\n if (actionName) {\n return Array.from(m.actions).some(a => a.name === actionName)\n }\n\n return true\n })\n\n if (matchingMessages.length === 0) return\n\n callback({ request, ...rest })\n })\n}\n\ninterceptMessage(({ message, onFinish }) => {\n messageBus.addActiveMessage(message)\n\n onFinish(() => messageBus.removeActiveMessage(message))\n})\n\n// Ensure that other parts of the codebase are able to intercept actions before the default handling...\nqueueMicrotask(() => {\n coordinateNetworkInteractions(messageBus)\n})\n\nexport function fireAction(component, method, params = [], metadata = {}) {\n if (component.__isWireProxy) component = component.__instance\n\n let action = constructAction(component, method, params, metadata)\n\n actionInterceptors.forEach(callback => {\n callback({\n action,\n onSend: (cb) => action.onSendCallbacks.push(cb),\n onCancel: (cb) => action.onCancelCallbacks.push(cb),\n onSuccess: (cb) => action.onSuccessCallbacks.push(cb),\n onError: (cb) => action.onErrorCallbacks.push(cb),\n onFailure: (cb) => action.onFailureCallbacks.push(cb),\n onFinish: (cb) => action.onFinishCallbacks.push(cb),\n })\n })\n\n if (action.isCancelled() || action.isDeferred()) return action.promise\n\n return fireActionInstance(action)\n}\n\nexport function constructAction(component, method, params, metadata) {\n let origin = outstandingActionOrigin\n let pendingInterceptors = outstandingActionInterceptors\n\n outstandingActionOrigin = null\n outstandingActionInterceptors = []\n\n metadata = {\n ...metadata,\n ...outstandingActionMetadata,\n }\n\n outstandingActionMetadata = {}\n\n let action = new Action(component, method, params, metadata, origin)\n\n // Set fire function to avoid circular dependency\n action._fire = fireActionInstance\n\n // Attach any per-action interceptors (from event.detail.livewire.interceptAction)\n pendingInterceptors.forEach(callback => action.addInterceptor(callback))\n\n return action\n}\n\nexport function fireActionInstance(action) {\n let message = createOrAddToOutstandingMessage(action)\n\n messageBus.messageBuffer(message, () => {\n sendMessages()\n })\n\n return action.promise\n}\n\nexport function createOrAddToOutstandingMessage(action) {\n let message = messageBus.findScopedPendingMessage(action)\n\n if (! message) message = new Message(action.component)\n\n message.addAction(action)\n\n messageBus.addPendingMessage(message)\n\n return message\n}\n\nfunction sendMessages() {\n let requests = new Set()\n\n messageBus.eachPendingMessage(message => {\n partitionInterceptors.forEach(callback => {\n callback({\n message,\n compileRequest: (messages) => {\n // When multiple components in a hierarchy listen to the same event and one\n // has a modelable child, the partition interceptor may try to bundle the\n // same child message into multiple requests. For example: Parent and Child\n // both listen to 'foo', and Child has a modelable grandchild. Parent's\n // interceptor bundles [Parent, Grandchild] into Request 1. Then Child's\n // interceptor tries to bundle [Child, Grandchild], but Grandchild is already\n // in Request 1. Rather than throwing an error, we merge Child into Request 1\n // so all related components are sent together, maintaining data consistency.\n let existingRequest = Array.from(requests).find(request =>\n messages.some(message => request.messages.has(message))\n )\n\n if (existingRequest) {\n // Add any new messages to the existing request\n messages.forEach(message => {\n if (!existingRequest.messages.has(message)) {\n existingRequest.addMessage(message)\n }\n })\n return existingRequest\n }\n\n // No overlap, create a new request\n let request = new MessageRequest()\n\n messages.forEach(message => request.addMessage(message))\n\n requests.add(request)\n\n return request\n },\n })\n })\n })\n\n let messages = messageBus.getPendingMessages()\n\n messageBus.clearPendingMessages()\n\n for (let message of messages) {\n if (Array.from(requests).some(request => request.messages.has(message))) {\n continue\n }\n\n let hasFoundRequest = false\n\n requests.forEach(request => {\n if (! hasFoundRequest) {\n // Don't add to a request that already has a message for the same component\n let hasMessageForSameComponent = Array.from(request.messages).some(m => m.component === message.component)\n\n if (hasMessageForSameComponent) return\n\n request.addMessage(message)\n\n hasFoundRequest = true\n }\n })\n\n if (! hasFoundRequest) {\n let request = new MessageRequest()\n\n request.addMessage(message)\n\n requests.add(request)\n }\n }\n\n requests.forEach(request => {\n request.messages.forEach(message => {\n message.snapshot = message.component.getEncodedSnapshotWithLatestChildrenMergedIn()\n message.updates = message.component.getUpdates()\n message.calls = Array.from(message.actions).map(i => ({\n method: i.name,\n params: i.params,\n metadata: i.metadata,\n }))\n\n message.payload = {\n snapshot: message.snapshot,\n updates: message.updates,\n calls: message.calls,\n }\n })\n })\n\n // Assign scope symbols to messages...\n requests.forEach(request => {\n request.messages.forEach(message => {\n message.scope = scopeSymbolFromMessage(message)\n })\n })\n\n requests.forEach(request => {\n request.uri = getUpdateUri()\n\n Object.defineProperty(request, 'payload', {\n get() {\n return {\n _token: getCsrfToken(),\n components: Array.from(request.messages, i => i.payload)\n }\n }\n })\n\n let cachedOptions = null\n\n Object.defineProperty(request, 'options', {\n get() {\n if (cachedOptions) return cachedOptions\n\n cachedOptions = {\n method: 'POST',\n body: JSON.stringify(request.payload),\n headers: {\n 'Content-type': 'application/json',\n 'X-Livewire': '1', // This '1' value means nothing, but it stops Cloudflare from stripping the header...\n },\n signal: request.controller.signal,\n }\n\n return cachedOptions\n }\n })\n })\n\n requests.forEach(request => {\n request.initInterceptors(interceptors)\n\n if (request.hasAllCancelledMessages()) {\n request.cancel()\n }\n\n sendRequest(request, {\n send: ({ responsePromise }) => {\n request.invokeOnSend({ responsePromise })\n },\n failure: ({ error }) => {\n request.invokeOnFailure({ error })\n },\n finish: () => {\n request.invokeOnFinish()\n },\n response: ({ response }) => {\n request.invokeOnResponse({ response })\n },\n stream: async ({ response }) => {\n request.invokeOnStream({ response })\n\n let finalResponse = ''\n\n try {\n finalResponse = await interceptStreamAndReturnFinalResponse(response, json => {\n let componentId = json.id\n\n request.messages.forEach(message => {\n if (message.component.id === componentId) {\n message.invokeOnStream({ json })\n }\n })\n\n trigger('stream', json)\n })\n } catch (e) {\n request.cancel()\n\n throw e\n }\n\n return finalResponse\n },\n parsed: ({ response, responseBody }) => {\n request.invokeOnParsed({ response, body: responseBody })\n },\n error: ({ response, responseBody }) => {\n let preventDefault = false\n\n request.invokeOnError({ response, body: responseBody, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n if (response.status === 419) {\n if (sessionExpired) return\n\n sessionExpired = true\n\n confirm(\n 'This page has expired.\\nWould you like to refresh the page?'\n ) && window.location.reload()\n\n return\n }\n\n if (response.aborted) return\n\n showHtmlModal(responseBody)\n },\n redirect: (url) => {\n let preventDefault = false\n\n request.invokeOnRedirect({ url, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n window.location.href = url\n },\n dump: (html) => {\n let preventDefault = false\n\n request.invokeOnDump({ html, preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n showHtmlModal(html)\n },\n success: async ({ response, responseBody, responseJson }) => {\n request.invokeOnSuccess({ response, body: responseBody, json: responseJson })\n\n await triggerAsync('payload.intercept', responseJson)\n\n let messageResponsePayloads = responseJson.components\n\n request.messages.forEach(message => {\n messageResponsePayloads.forEach(payload => {\n if (message.isCancelled()) return\n\n // Server skipped this child (unchanged reactive props)...\n if (payload.skip) {\n if (payload.id === message.component.id) {\n message.responsePayload = payload\n message.markSkipped()\n message.invokeOnSkipped()\n message.resolveActionPromises([], [])\n message.invokeOnFinish()\n }\n\n return\n }\n\n let { snapshot: snapshotEncoded, effects } = payload\n let snapshot = JSON.parse(snapshotEncoded)\n\n if (snapshot.memo.id === message.component.id) {\n message.responsePayload = { snapshot, effects }\n\n message.invokeOnSuccess()\n if (message.isCancelled()) return\n\n // Use Alpine.transaction to batch data updates and DOM morphing\n // This prevents effects from firing before the morph cleanup runs\n Alpine.transaction(async () => {\n message.component.mergeNewSnapshot(snapshotEncoded, effects, message.updates)\n\n message.invokeOnSync()\n if (message.isCancelled()) return\n\n // Trigger any side effects from the payload like \"morph\" and \"dispatch event\"...\n message.component.processEffects(effects, request)\n\n message.invokeOnEffect()\n if (message.isCancelled()) return\n\n await message.invokeOnMorph()\n }).then(() => {\n // Resolve promises & finish AFTER morph completes\n if (! message.isCancelled()) {\n message.resolveActionPromises(\n message.pendingReturns,\n message.pendingReturnsMeta\n )\n message.invokeOnFinish()\n }\n\n requestAnimationFrame(() => {\n if (message.isCancelled()) return\n\n message.invokeOnRender()\n })\n })\n }\n })\n })\n },\n })\n })\n}\n\nasync function sendRequest(request, handlers) {\n let response\n\n try {\n if (request.isCancelled()) return\n\n let responsePromise = fetch(request.uri, request.options)\n\n if (request.isCancelled()) return\n handlers.send({ responsePromise })\n\n response = await responsePromise\n } catch (e) {\n if (request.isCancelled()) return\n\n handlers.failure({ error: e })\n handlers.finish()\n\n return\n }\n\n handlers.response({ response })\n\n let responseBody = null\n\n if (response.headers.has('X-Livewire-Stream')) {\n responseBody = await handlers.stream({ response })\n } else {\n responseBody = await response.text()\n }\n\n if (request.isCancelled()) return\n\n handlers.parsed({ response, responseBody })\n\n // Handle error response...\n if (! response.ok) {\n handlers.error({ response, responseBody })\n handlers.finish()\n\n return\n }\n\n if (response.redirected) {\n handlers.redirect(response.url)\n }\n\n /**\n * Sometimes a response will be prepended with html to render a dump, so we\n * will separate the dump html from Livewire's JSON response content and\n * render the dump in a modal and allow Livewire to continue with the\n * request.\n */\n if (contentIsFromDump(responseBody)) {\n let dump\n\n [dump, responseBody] = splitDumpFromContent(responseBody)\n\n handlers.dump(dump)\n }\n\n let responseJson = null\n\n try {\n responseJson = JSON.parse(responseBody)\n } catch (e) {\n console.error(e)\n\n // When a stream is started, the headers are already sent,\n // so if an error occurs, the responseBody won't be JSON,\n // and we can treat it like an error response...\n handlers.error({ response, responseBody })\n handlers.finish()\n\n return\n }\n\n handlers.success({ response, responseBody, responseJson })\n handlers.finish()\n}\n\nasync function interceptStreamAndReturnFinalResponse(response, callback) {\n let reader = response.body.getReader()\n let remainingResponse = ''\n\n while (true) {\n let { done, value: chunk } = await reader.read()\n\n let decoder = new TextDecoder\n let output = decoder.decode(chunk)\n\n let [ streams, remaining ] = extractStreamObjects(remainingResponse + output)\n\n streams.forEach(stream => {\n callback(stream)\n })\n\n remainingResponse = remaining\n\n if (done) return remainingResponse\n }\n}\n\nfunction extractStreamObjects(raw) {\n let regex = /({\"stream\":true.*?\"endStream\":true})/g\n\n let matches = raw.match(regex)\n\n let parsed = []\n\n if (matches) {\n for (let i = 0; i < matches.length; i++) {\n parsed.push(JSON.parse(matches[i]).body)\n }\n }\n\n let remaining = raw.replace(regex, '');\n\n return [ parsed, remaining ];\n}\n\nexport async function sendNavigateRequest(uri, callback, errorCallback) {\n let request = new PageRequest(uri)\n\n let options = {\n // method: 'GET',\n headers: {\n 'X-Livewire-Navigate': '1', // This '1' value means nothing, but it stops Cloudflare from stripping the header...\n },\n signal: request.controller.signal,\n }\n\n trigger('navigate.request', {\n uri,\n options,\n })\n\n let response\n\n try {\n response = await fetch(uri, options)\n\n let destination = getDestination(uri, response)\n\n let html = await response.text()\n\n let status = response.status\n\n callback(html, destination, status)\n } catch (error) {\n errorCallback(error)\n\n throw error\n }\n}\n\nfunction getDestination(uri, response) {\n let destination = createUrlObjectFromString(uri)\n let finalDestination = createUrlObjectFromString(response.url)\n\n // If there was no redirect triggered by the URL that was fetched...\n if ((destination.pathname + destination.search) === (finalDestination.pathname + finalDestination.search)) {\n // Then let's carry over any \"hash\" entries on the URL.\n // We have to do this because hashes aren't sent to\n // the server by \"fetch\", so it needs to get added\n finalDestination.hash = destination.hash\n }\n\n return finalDestination\n}\n\nfunction createUrlObjectFromString(urlString) {\n return urlString !== null && new URL(urlString, document.baseURI)\n}\n\n// Load legacy event support ('request' and 'commit' events)\nimport { registerLegacyEventSupport } from './legacy.js'\nregisterLegacyEventSupport(interceptRequest, interceptMessage)\n", "// This errors object has the most common methods from \\Illuminate\\Support\\MessageBag class on the backend...\nimport Alpine from 'alpinejs'\n\nexport function getErrorsObject(component) {\n let state = component.__errorsState ??= Alpine.reactive({\n clientErrors: null,\n })\n\n // Store lastSnapshot outside reactive state to avoid Proxy wrapping breaking identity comparison...\n component.__lastErrorsSnapshot ??= component.snapshot\n\n return {\n messages() {\n // If the snapshot changed (server responded), reset client overrides...\n if (component.__lastErrorsSnapshot !== component.snapshot) {\n state.clientErrors = null\n component.__lastErrorsSnapshot = component.snapshot\n }\n\n // Assign into reactive state so Alpine can track changes...\n return state.clientErrors ??= component.snapshot.memo.errors\n },\n\n keys() {\n return Object.keys(this.messages())\n },\n\n has(...keys) {\n if (this.isEmpty()) return false\n\n if (keys.length === 0 || (keys.length === 1 && keys[0] == null)) return this.any()\n\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n for (let key of keys) {\n if (this.first(key) === '') return false\n }\n\n return true\n },\n\n hasAny(keys) {\n if (this.isEmpty()) return false\n\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n for (let key of keys) {\n if (this.has(key)) return true\n }\n\n return false\n },\n\n missing(...keys) {\n if (keys.length === 1 && Array.isArray(keys[0])) keys = keys[0]\n\n return ! this.hasAny(keys)\n },\n\n first(key = null) {\n let messages = key === null ? this.all() : this.get(key)\n\n let firstMessage = messages.length > 0 ? messages[0] : ''\n\n return Array.isArray(firstMessage) ? firstMessage[0] : firstMessage\n },\n\n get(key) {\n return this.messages()[key] || []\n },\n\n all() {\n return Object.values(this.messages()).flat()\n },\n\n isEmpty() {\n return ! this.any()\n },\n\n isNotEmpty() {\n return this.any()\n },\n\n any() {\n return Object.keys(this.messages()).length > 0\n },\n\n count() {\n return Object.values(this.messages()).reduce((total, array) => {\n return total + array.length;\n }, 0);\n },\n\n clear(field = null) {\n if (field === null) {\n state.clientErrors = {}\n } else {\n let errors = { ...(state.clientErrors ?? component.snapshot.memo.errors) }\n delete errors[field]\n state.clientErrors = errors\n }\n },\n }\n}\n", "\nexport function findRefEl(component, name) {\n let refEl = component.el.querySelector(`[wire\\\\:ref=\"${name}\"]`)\n\n if (! refEl) return console.error(`Ref \"${name}\" not found in component \"${component.id}\"`)\n\n return refEl\n}\n", "import { on } from './hooks'\n\nlet customDirectiveNames = new Set\n\nexport function matchesForLivewireDirective(attributeName) {\n return attributeName.match(new RegExp('wire:'))\n}\n\nexport function extractDirective(el, name) {\n let [value, ...modifiers] = name.replace(new RegExp('wire:'), '').split('.')\n\n return new Directive(value, modifiers, name, el)\n}\n\nexport function directive(name, callback) {\n // Prevent the same directive from registering multiple initialization listeners...\n if (customDirectiveNames.has(name)) return\n\n customDirectiveNames.add(name)\n\n on('directive.init', ({ el, component, directive, cleanup }) => {\n if (directive.value === name) {\n callback({\n el, directive, component, $wire: component.$wire, cleanup\n })\n }\n })\n}\n\nexport function globalDirective(name, callback) {\n // Prevent the same directive from registering multiple initialization listeners...\n if (customDirectiveNames.has(name)) return\n\n customDirectiveNames.add(name)\n\n on('directive.global.init', ({ el, directive, cleanup }) => {\n if (directive.value === name) {\n callback({ el, directive, cleanup })\n }\n })\n}\n\nexport function getDirectives(el) {\n return new DirectiveManager(el)\n}\n\nexport function customDirectiveHasBeenRegistered(name) {\n return customDirectiveNames.has(name)\n}\n\nclass DirectiveManager {\n constructor(el) {\n this.el = el\n this.directives = this.extractTypeModifiersAndValue()\n }\n\n all() {\n return this.directives\n }\n\n has(value) {\n return this.directives.map(directive => directive.value).includes(value)\n }\n\n missing(value) {\n return ! this.has(value)\n }\n\n get(value) {\n return this.directives.find(directive => directive.value === value)\n }\n\n extractTypeModifiersAndValue() {\n return Array.from(this.el.getAttributeNames()\n // Filter only the livewire directives.\n .filter(name => matchesForLivewireDirective(name))\n // Parse out the type, modifiers, and value from it.\n .map(name => extractDirective(this.el, name)))\n }\n}\n\nexport class Directive {\n constructor(value, modifiers, rawName, el) {\n this.rawName = this.raw = rawName\n this.el = el\n this.eventContext\n this.wire\n\n this.value = value\n this.modifiers = modifiers\n this.expression = this.el.getAttribute(this.rawName)\n }\n\n get method() {\n const methods = this.parseOutMethodsAndParams(this.expression)\n\n return methods[0].method\n }\n\n get methods() {\n return this.parseOutMethodsAndParams(this.expression)\n }\n\n get params() {\n const methods = this.parseOutMethodsAndParams(this.expression)\n\n return methods[0].params\n }\n\n parseOutMethodsAndParams(rawMethod) {\n let methods = []\n\n // Split methods string into individual methods and their parameters\n let parsedMethods = this.splitAndParseMethods(rawMethod)\n\n // Evaluate parameters for each method and build the methods array\n for (let { method, paramString } of parsedMethods) {\n let params = []\n\n if (paramString.length > 0) {\n function argumentsToArray() {\n for (var l=arguments.length, p=new Array(l), k=0; k<l; k++) {\n p[k] = arguments[k]\n }\n return [].concat(p)\n }\n\n try {\n params = Alpine.evaluate(\n document,\n 'argumentsToArray(' + paramString + ')',\n {\n scope: { argumentsToArray },\n },\n )\n } catch (error) {\n console.warn('Failed to parse parameters:', paramString, error)\n params = []\n }\n }\n\n methods.push({ method, params })\n }\n\n return methods\n }\n\n splitAndParseMethods(methodExpression) {\n let methods = []\n let current = ''\n let parenCount = 0\n let inString = false\n let stringChar = null\n\n let trimmedExpression = methodExpression.trim()\n\n // Parse the expression character by character, splitting on commas only at the top level\n // This handles nested parentheses and strings correctly: foo(bar(1,2), 'hello, world')\n for (let i = 0; i < trimmedExpression.length; i++) {\n let char = trimmedExpression[i]\n\n if (!inString) {\n if (char === '\"' || char === \"'\") {\n inString = true\n stringChar = char\n current += char\n } else if (char === '(') {\n parenCount++\n current += char\n } else if (char === ')') {\n parenCount--\n current += char\n } else if (char === ',' && parenCount === 0) {\n // Found a comma at the top level - parse and add this method\n methods.push(this.parseMethodCall(current.trim()))\n current = ''\n } else {\n current += char\n }\n } else {\n // Inside a string - only exit on matching quote that's not escaped\n if (char === stringChar && trimmedExpression[i-1] !== '\\\\') {\n inString = false\n stringChar = null\n }\n current += char\n }\n }\n\n // Add the last method if there's anything left\n if (current.trim().length > 0) {\n methods.push(this.parseMethodCall(current.trim()))\n }\n\n return methods\n }\n\n parseMethodCall(methodString) {\n // Find the method name - everything before the first opening parenthesis\n let methodMatch = methodString.match(/^([^(]+)\\(/)\n if (!methodMatch) {\n // No parentheses found, treat as method with no params\n return {\n method: methodString.trim(),\n paramString: ''\n }\n }\n\n let method = methodMatch[1].trim()\n let paramStart = methodMatch[0].length - 1 // Position of opening parenthesis\n\n // Since splitAndParseMethods already validated balanced parentheses,\n // we can safely find the last closing parenthesis in the string\n let lastParenIndex = methodString.lastIndexOf(')')\n if (lastParenIndex === -1) {\n throw new Error(`Missing closing parenthesis for method \"${method}\"`)\n }\n\n let paramString = methodString.slice(paramStart + 1, lastParenIndex).trim()\n\n return {\n method,\n paramString\n }\n }\n}\n", "\nexport function toggleBooleanStateDirective(el, directive, isTruthy, cachedDisplay = null) {\n isTruthy = directive.modifiers.includes('remove') ? ! isTruthy : isTruthy\n\n if (directive.modifiers.includes('class')) {\n let classes = directive.expression.split(' ').filter(String)\n\n if (isTruthy) {\n el.classList.add(...classes)\n } else {\n el.classList.remove(...classes)\n }\n } else if (directive.modifiers.includes('attr')) {\n if (isTruthy) {\n el.setAttribute(directive.expression, true)\n } else {\n el.removeAttribute(directive.expression)\n }\n } else {\n let cache = cachedDisplay ?? window\n .getComputedStyle(el, null)\n .getPropertyValue('display')\n\n let display = (['inline', 'list-item', 'block', 'table', 'flex', 'grid', 'inline-flex']\n .filter(i => directive.modifiers.includes(i))[0] || 'inline-block')\n\n // If element is to be removed, set display to its current value...\n // display = (directive.modifiers.includes('remove') && ! isTruthy)\n display = (directive.modifiers.includes('remove') && ! isTruthy)\n ? cache : display\n\n el.style.display = isTruthy ? display : 'none'\n }\n}\n", "import { directive, getDirectives } from '@/directives'\nimport { toggleBooleanStateDirective } from './shared'\nimport { dataGet, WeakBag } from '@/utils'\nimport { on } from '@/hooks'\n\nlet refreshDirtyStatesByComponent = new WeakBag\n\non('commit', ({ component, succeed }) => {\n succeed(() => {\n setTimeout(() => { // Doing a \"setTimeout\" to let morphdom do its thing first...\n refreshDirtyStatesByComponent.each(component, i => i(false))\n })\n })\n})\n\ndirective('dirty', ({ el, directive, component }) => {\n let targets = dirtyTargets(el)\n\n let oldIsDirty = false\n\n let initialDisplay = el.style.display\n\n let refreshDirtyState = (isDirty) => {\n toggleBooleanStateDirective(el, directive, isDirty, initialDisplay)\n\n oldIsDirty = isDirty\n }\n\n refreshDirtyStatesByComponent.add(component, refreshDirtyState)\n\n Alpine.effect(() => {\n let isDirty = false\n\n isDirty = checkDirty(component, targets.length === 0 ? undefined : targets)\n\n if (oldIsDirty !== isDirty) {\n refreshDirtyState(isDirty)\n }\n\n oldIsDirty = isDirty\n })\n})\n\nexport function checkDirty(component, targets) {\n let isDirty = false\n\n if (targets === undefined) {\n isDirty = JSON.stringify(component.canonical) !== JSON.stringify(component.reactive)\n } else if (Array.isArray(targets)) {\n for (let i = 0; i < targets.length; i++) {\n if (isDirty) break;\n\n let target = targets[i]\n\n isDirty = JSON.stringify(dataGet(component.canonical, target)) !== JSON.stringify(dataGet(component.reactive, target))\n }\n } else {\n isDirty = JSON.stringify(dataGet(component.canonical, targets)) !== JSON.stringify(dataGet(component.reactive, targets))\n }\n\n return isDirty\n}\n\nfunction dirtyTargets(el) {\n let directives = getDirectives(el)\n let targets = []\n\n if (directives.has('model')) {\n targets.push(directives.get('model').expression)\n }\n\n if (directives.has('target')) {\n targets = targets.concat(\n directives\n .get('target')\n .expression.split(',')\n .map(s => s.trim())\n )\n }\n\n return targets\n}\n", "import { on } from '@/hooks'\nimport { getModuleUrl } from '@/utils'\n\nlet pendingComponentAssets = new WeakMap()\n\non('effect', ({ component, effects }) => {\n let scriptModuleHash = effects.scriptModule\n\n if (scriptModuleHash) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/js/${encodedName}.js?v=${scriptModuleHash}`\n\n pendingComponentAssets.set(component, Alpine.reactive({\n loading: true,\n afterLoaded: [],\n }))\n\n import(/* @vite-ignore */ path).then(module => {\n module.run.call(component.$wire, component.$wire, component.$wire.js);\n\n pendingComponentAssets.get(component).loading = false\n pendingComponentAssets.get(component).afterLoaded.forEach(callback => callback())\n pendingComponentAssets.delete(component)\n });\n }\n})\n\nexport function assetIsPendingFor(component) {\n return pendingComponentAssets.has(component) && pendingComponentAssets.get(component).loading\n}\n\nexport function runAfterAssetIsLoadedFor(component, callback) {\n if (assetIsPendingFor(component)) {\n pendingComponentAssets.get(component).afterLoaded.push(() => callback())\n } else {\n callback()\n }\n}", "import { cancelUpload, removeUpload, upload, uploadMultiple } from './features/supportFileUploads'\nimport { dispatch, dispatchEl, dispatchRef, dispatchSelf, dispatchTo, listen } from '@/events'\nimport { generateEntangleFunction } from '@/features/supportEntangle'\nimport { findComponentByEl } from '@/store'\nimport { dataGet, dataSet } from '@/utils'\nimport Alpine from 'alpinejs'\nimport { on as hook } from './hooks'\nimport { fireAction, setNextActionMetadata, interceptComponentAction, interceptComponentMessage, interceptComponentRequest } from '@/request'\nimport { getErrorsObject } from '@/features/supportErrors'\nimport { findRefEl } from '@/features/supportRefs'\nimport { checkDirty } from './directives/wire-dirty'\nimport { assetIsPendingFor, runAfterAssetIsLoadedFor } from './features/supportJsModules'\n\nlet properties = {}\nlet fallback\n\nfunction wireProperty(name, callback, component = null) {\n properties[name] = callback\n}\n\nfunction wireFallback(callback) {\n fallback = callback\n}\n\n// For V2 backwards compatibility...\n// And I actually like both depending on the scenario...\nlet aliases = {\n 'on': '$on',\n 'el': '$el',\n 'id': '$id',\n 'js': '$js',\n 'get': '$get',\n 'set': '$set',\n 'refs': '$refs',\n 'call': '$call',\n 'hook': '$hook',\n 'watch': '$watch',\n 'dirty': '$dirty',\n 'effect': '$effect',\n 'commit': '$commit',\n 'errors': '$errors',\n 'island': '$island',\n 'upload': '$upload',\n 'entangle': '$entangle',\n 'dispatch': '$dispatch',\n 'intercept': '$intercept',\n 'interceptAction': '$interceptAction',\n 'interceptMessage': '$interceptMessage',\n 'interceptRequest': '$interceptRequest',\n 'dispatchTo': '$dispatchTo',\n 'dispatchSelf': '$dispatchSelf',\n 'dispatchEl': '$dispatchEl',\n 'dispatchRef': '$dispatchRef',\n 'removeUpload': '$removeUpload',\n 'cancelUpload': '$cancelUpload',\n 'uploadMultiple': '$uploadMultiple',\n}\n\nexport function generateWireObject(component, state) {\n let isScoped = false\n\n return new Proxy({}, {\n get(target, property) {\n if (property === '__instance') return component\n\n if (property in aliases) {\n return getProperty(component, aliases[property])\n } else if (property in properties) {\n return getProperty(component, property)\n } else if (property in state) {\n return state[property]\n } else if (property === 'toJSON') {\n // Tools like Laravel Boost call JSON.stringify() on objects\n // (e.g. for browser console logging). Without this, the Proxy\n // fallback would send \"toJSON\" as a server-side method call,\n // throwing a MethodNotFoundException.\n return () => component.toJSON()\n } else if (! ['then'].includes(property)) {\n return getFallback(component)(property)\n }\n },\n\n set(target, property, value) {\n if (property in state) {\n state[property] = value\n }\n\n return true\n },\n })\n}\n\nfunction getProperty(component, name) {\n return properties[name](component)\n}\n\nfunction getFallback(component) {\n return fallback(component)\n}\n\nAlpine.magic('wire', (el, { cleanup }) => {\n // Purposely initializing an empty variable here is a \"memo\"\n // so that a component is lazy-loaded when using $wire from Alpine...\n let component\n\n // Override $wire methods that need to be cleaned up when\n // and element is removed. For example, `x-data=\"{ foo: $wire.entangle(...) }\"`:\n // we would want the entangle effect freed if the element was removed from the DOM...\n return new Proxy({}, {\n get(target, property) {\n if (! component) {\n try {\n component = findComponentByEl(el)\n } catch (e) {\n return () => {}\n }\n }\n\n if (['$entangle', 'entangle'].includes(property)) {\n return generateEntangleFunction(component, cleanup)\n }\n\n return component.$wire[property]\n },\n\n set(target, property, value) {\n if (! component) {\n try {\n component = findComponentByEl(el)\n } catch (e) {\n return true\n }\n }\n\n component.$wire[property] = value\n\n return true\n },\n })\n})\n\nwireProperty('__instance', (component) => component)\n\nwireProperty('$get', (component) => (property, reactive = true) => dataGet(reactive ? component.reactive : component.ephemeral, property))\n\nwireProperty('$el', (component) => {\n return component.el\n})\n\nwireProperty('$id', (component) => {\n return component.id\n})\n\nwireProperty('$js', (component) => {\n let fn = component.addJsAction.bind(component)\n\n let jsActions = component.getJsActions()\n\n Object.keys(jsActions).forEach((name) => {\n fn[name] = jsActions[name]\n })\n\n return new Proxy(fn, {\n set(target, property, value) {\n component.addJsAction(property, value)\n\n return true\n },\n get(target, property) {\n // Scripts in view-based components are imported dynamically,\n // which means they run asynchronously. This causes issues with\n // things like wire:text=\"$js.foo()\" not being available on page load.\n // To patch this, we return a promise that resolves the $js action\n // after the script is fully imported and executed...\n if (assetIsPendingFor(component)) {\n let resolver = null\n\n let promise = new Promise((resolve) => {\n resolver = resolve\n })\n\n return (...params) => {\n runAfterAssetIsLoadedFor(component, () => {\n resolver(component.getJsAction(property)(...params))\n })\n\n return promise\n }\n }\n\n return target[property]\n }\n })\n})\n\nwireProperty('$set', (component) => async (property, value, live = true) => {\n dataSet(component.reactive, property, value)\n\n // If \"live\", send a request, queueing the property update to happen first\n // on the server, then trickle back down to the client and get merged...\n if (live) {\n component.queueUpdate(property, value)\n\n return fireAction(component, '$set')\n }\n\n return Promise.resolve()\n})\n\nwireProperty('$refs', (component) => {\n let fn = (name) => findRefEl(component, name)\n\n return new Proxy(fn, {\n get(target, property) {\n if (property in target) {\n return target[property]\n }\n\n return fn(property)\n }\n })\n})\n\nwireProperty('$dirty', (component) => (property) => {\n let reactive = Alpine.reactive({ dirty: false })\n\n interceptComponentMessage(component, ({ onFinish }) => {\n onFinish(() => {\n queueMicrotask(() => {\n reactive.dirty = checkDirty(component, property)\n })\n })\n })\n\n Alpine.effect(() => {\n reactive.dirty = checkDirty(component, property)\n })\n\n return reactive.dirty\n})\n\nwireProperty('$intercept', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentAction(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptAction', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentAction(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptMessage', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentMessage(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$interceptRequest', (component) => (actionNameOrCallback, maybeCallback) => {\n return interceptComponentRequest(component, actionNameOrCallback, maybeCallback)\n})\n\nwireProperty('$errors', (component) => getErrorsObject(component))\n\nwireProperty('$call', (component) => async (method, ...params) => {\n return await component.$wire[method](...params)\n})\n\nwireProperty('$island', (component) => (name, options = {}) => {\n setNextActionMetadata({ island: { name, mode: 'morph', ...options } })\n\n return component.$wire\n})\n\nwireProperty('$entangle', (component) => (name, live = false) => {\n return generateEntangleFunction(component)(name, live)\n})\n\nwireProperty('$toggle', (component) => (name, live = true) => {\n return component.$wire.set(name, ! component.$wire.get(name), live)\n})\n\nwireProperty('$watch', (component) => (path, callback) => {\n let getter = () => {\n return dataGet(component.reactive, path)\n }\n\n let unwatch = Alpine.watch(getter, callback)\n\n component.addCleanup(unwatch)\n\n return unwatch\n})\n\nwireProperty('$effect', (component) => (callback) => {\n let effect = Alpine.effect(callback)\n\n component.addCleanup(effect)\n\n return effect\n})\n\nwireProperty('$refresh', (component) => async () => {\n return fireAction(component, '$refresh')\n})\n\nwireProperty('$commit', (component) => async () => {\n return fireAction(component, '$commit')\n})\n\nwireProperty('$on', (component) => (...params) => listen(component, ...params))\n\nwireProperty('$hook', (component) => (name, callback) => {\n let unhook = hook(name, ({component: hookComponent, ...params}) => {\n // Request level hooks don't have a component, so just run the callback\n if (hookComponent === undefined) return callback(params)\n\n // Run the callback if the component in the hook matches the $wire component\n if (hookComponent.id === component.id) return callback({component: hookComponent, ...params})\n })\n\n component.addCleanup(unhook)\n\n // Return the unhook function so it can be called manually if needed\n return unhook\n})\n\nwireProperty('$dispatch', (component) => (...params) => dispatch(component, ...params))\nwireProperty('$dispatchSelf', (component) => (...params) => dispatchSelf(component, ...params))\nwireProperty('$dispatchTo', () => (...params) => dispatchTo(...params))\nwireProperty('$dispatchEl', (component) => (...params) => dispatchEl(component, ...params))\nwireProperty('$dispatchRef', (component) => (...params) => dispatchRef(component, ...params))\nwireProperty('$upload', (component) => (...params) => upload(component, ...params))\nwireProperty('$uploadMultiple', (component) => (...params) => uploadMultiple(component, ...params))\nwireProperty('$removeUpload', (component) => (...params) => removeUpload(component, ...params))\nwireProperty('$cancelUpload', (component) => (...params) => cancelUpload(component, ...params))\n\nlet parentMemo = new WeakMap\n\nwireProperty('$parent', component => {\n if (parentMemo.has(component)) return parentMemo.get(component).$wire\n\n let parent = findComponentByEl(component.el.parentElement, false)\n\n if (! parent) return\n\n parentMemo.set(component, parent)\n\n return parent.$wire\n})\n\nlet overriddenMethods = new WeakMap\n\nexport function overrideMethod(component, method, callback) {\n if (! overriddenMethods.has(component)) {\n overriddenMethods.set(component, {})\n }\n\n let obj = overriddenMethods.get(component)\n\n obj[method] = callback\n\n overriddenMethods.set(component, obj)\n}\n\nwireFallback((component) => (property) => (...params) => {\n // If this method is passed directly to a Vue or Alpine\n // event listener (@click=\"someMethod\") without using\n // parens, strip out the automatically added event.\n if (params.length === 1 && params[0] instanceof Event) {\n params = []\n }\n\n if (overriddenMethods.has(component)) {\n let overrides = overriddenMethods.get(component)\n\n if (typeof overrides[property] === 'function') {\n return overrides[property](params)\n }\n }\n\n return fireAction(component, property, params)\n})\n", "import { dataSet, deepClone, diff, diffAndConsolidate, diffAndPatchRecursive, extractData} from '@/utils'\nimport { generateWireObject } from '@/$wire'\nimport { findComponentByEl, findComponent, hasComponent } from '@/store'\nimport { trigger } from '@/hooks'\nimport { setNextActionOrigin } from '@/request'\n\nexport class Component {\n constructor(el) {\n if (el.__livewire) throw 'Component already initialized';\n\n el.__livewire = this\n\n this.el = el\n\n this.id = el.getAttribute('wire:id')\n\n this.key = el.getAttribute('wire:key')\n\n this.__livewireId = this.id // @legacy\n\n this.snapshotEncoded = el.getAttribute('wire:snapshot')\n\n this.snapshot = JSON.parse(this.snapshotEncoded)\n\n if (! this.snapshot) {\n throw `Snapshot missing on Livewire component with id: ` + this.id\n }\n\n this.name = this.snapshot.memo.name\n\n this.effects = JSON.parse(el.getAttribute('wire:effects'))\n this.originalEffects = deepClone(this.effects)\n\n // \"canonical\" data represents the last known server state.\n this.canonical = extractData(deepClone(this.snapshot.data))\n // \"ephemeral\" represents the most current state. (This can be freely manipulated by end users)\n this.ephemeral = extractData(deepClone(this.snapshot.data))\n // \"reactive\" is just ephemeral, except when you mutate it, front-ends like Vue react.\n this.reactive = Alpine.reactive(this.ephemeral)\n\n this.queuedUpdates = {}\n\n this.jsActions = {}\n\n // this.$wire = this.reactive\n this.$wire = generateWireObject(this, this.reactive)\n\n // Set the $wire property on the root element...\n el.$wire = this.$wire\n\n this.cleanups = []\n\n // Effects will be processed after every request, but we'll also handle them on initialization.\n this.processEffects(this.effects)\n }\n\n addActionContext(context) {\n // New system: just set the origin for next action\n if (context.el || context.directive) {\n setNextActionOrigin({\n el: context.el,\n directive: context.directive\n })\n }\n\n // Note: Non-origin metadata should be passed directly to fireAction\n // This method is kept for backwards compatibility but simplified\n }\n\n intercept(action, callback = null) {\n return this.$wire.$intercept(action, callback)\n }\n\n mergeNewSnapshot(snapshotEncoded, effects, updates = {}) {\n let snapshot = JSON.parse(snapshotEncoded)\n\n let oldCanonical = deepClone(this.canonical)\n let updatedOldCanonical = this.applyUpdates(oldCanonical, updates)\n\n let newCanonical = extractData(deepClone(snapshot.data))\n\n let dirty = diff(updatedOldCanonical, newCanonical)\n\n this.snapshotEncoded = snapshotEncoded\n\n this.snapshot = snapshot\n\n this.effects = effects\n\n this.canonical = extractData(deepClone(snapshot.data))\n\n let newData = extractData(deepClone(snapshot.data))\n\n // Diff old vs new and patch differences onto the reactive proxy. Walks\n // the trees directly, avoiding dot-notated paths which break when\n // object keys contain dots.\n diffAndPatchRecursive(updatedOldCanonical, newData, this.reactive)\n\n return dirty\n }\n\n queueUpdate(propertyName, value) {\n // These updates will be applied first on the server\n // on the next request, then trickle back to the\n // client on the next request that gets sent.\n this.queuedUpdates[propertyName] = value\n }\n\n mergeQueuedUpdates(diff) {\n // Before adding queuedUpdates into the diff list, we will remove any diffs\n // that will be overriden by the queued update. Queued updates will take\n // priority against ephemeral updates that have happend since them...\n Object.entries(this.queuedUpdates).forEach(([updateKey, updateValue]) => {\n Object.entries(diff).forEach(([diffKey, diffValue]) => {\n if (diffKey.startsWith(updateKey)) {\n delete diff[diffKey]\n }\n })\n\n diff[updateKey] = updateValue\n })\n\n this.queuedUpdates = []\n\n return diff\n }\n\n getUpdates() {\n let propertiesDiff = diffAndConsolidate(this.canonical, this.ephemeral)\n\n return this.mergeQueuedUpdates(propertiesDiff)\n }\n\n applyUpdates(object, updates) {\n for (let key in updates) {\n dataSet(object, key, updates[key])\n }\n\n return object\n }\n\n replayUpdate(snapshot, html) {\n let effects = { ...this.effects, html}\n\n this.mergeNewSnapshot(JSON.stringify(snapshot), effects)\n\n this.processEffects({ html })\n }\n\n /**\n * Here we'll take the new state and side effects from the\n * server and use them to update the existing data that\n * users interact with, triggering reactive effects.\n */\n processEffects(effects, request) {\n // This is for BC.\n trigger('effects', this, effects)\n\n trigger('effect', {\n component: this,\n effects,\n cleanup: i => this.addCleanup(i),\n request,\n })\n }\n\n get children() {\n let componentEl = this.el\n\n let children = []\n\n componentEl.querySelectorAll('[wire\\\\:id]').forEach(el => {\n let parentComponentEl = el.parentElement.closest('[wire\\\\:id]')\n\n if (parentComponentEl !== componentEl) return\n\n let componentInstance = el.__livewire\n\n if (! componentInstance) return\n\n children.push(componentInstance)\n })\n\n return children\n }\n\n get islands() {\n let islands = this.snapshot.memo.islands\n\n return islands\n }\n\n get parent() {\n return findComponentByEl(this.el.parentElement)\n }\n\n get isIsolated() {\n return this.snapshot.memo.isolate\n }\n\n get isLazy() {\n return this.snapshot.memo.lazyLoaded !== undefined\n }\n\n get hasBeenLazyLoaded() {\n return this.snapshot.memo.lazyLoaded === true\n }\n\n get isLazyIsolated() {\n return !! this.snapshot.memo.lazyIsolated\n }\n\n getDeepChildrenWithBindings(callback) {\n this.getDeepChildren(child => {\n if (child.isLazy && ! child.hasBeenLazyLoaded) return\n\n if (child.hasReactiveProps() || child.hasWireModelableBindings()) {\n callback(child)\n }\n })\n }\n\n hasReactiveProps() {\n let meta = this.snapshot.memo\n let props = meta.props\n\n return !! props\n }\n\n hasWireModelableBindings() {\n let meta = this.snapshot.memo\n let bindings = meta.bindings\n\n return !! bindings\n }\n\n getDeepChildren(callback) {\n this.children.forEach(child => {\n callback(child)\n\n child.getDeepChildren(callback)\n })\n }\n\n getEncodedSnapshotWithLatestChildrenMergedIn() {\n let { snapshotEncoded, children, snapshot } = this\n\n let childrenMemo = {}\n\n children.forEach(child => {\n childrenMemo[child.key] = [child.el.tagName.toLowerCase(), child.id]\n })\n\n return snapshotEncoded.replace(\n /\"children\":\\{[^}]*\\}/,\n `\"children\":${JSON.stringify(childrenMemo)}`\n )\n }\n\n inscribeSnapshotAndEffectsOnElement() {\n let el = this.el\n\n el.setAttribute('wire:snapshot', this.snapshotEncoded)\n\n // We need to re-register any event listeners that were originally registered...\n let effects = this.originalEffects.listeners\n ? { listeners: this.originalEffects.listeners }\n : {}\n\n // We need to re-register any url/query-string bindings...\n if (this.originalEffects.url) {\n effects.url = this.originalEffects.url\n }\n\n // We need to re-register any scripts that were originally registered...\n if (this.originalEffects.scripts) {\n effects.scripts = this.originalEffects.scripts;\n }\n\n el.setAttribute('wire:effects', JSON.stringify(effects))\n\n el.setAttribute('wire:key', this.key)\n }\n\n addJsAction(name, action) {\n this.jsActions[name] = action\n }\n\n hasJsAction(name) {\n return this.jsActions[name] !== undefined\n }\n\n getJsAction(name) {\n return this.jsActions[name].bind(this.$wire)\n }\n\n getJsActions() {\n let actions = {}\n for (let key of Object.keys(this.jsActions)) {\n actions[key] = this.getJsAction(key)\n }\n return actions\n }\n\n // Called by JSON.stringify() on both $wire (via the Proxy) and the\n // Component instance directly. Without this, stringifying a Component\n // throws a circular reference error (el <-> component). Tools like\n // Laravel Boost trigger this when logging objects to the browser console.\n toJSON() {\n return {\n id: this.id,\n name: this.name,\n key: this.key,\n data: Object.fromEntries(Object.entries(this.ephemeral)),\n }\n }\n\n addCleanup(cleanup) {\n this.cleanups.push(cleanup)\n }\n\n cleanup() {\n delete this.el.__livewire\n\n while (this.cleanups.length > 0) {\n this.cleanups.pop()()\n }\n }\n}\n", "\nexport function closestFragment(el, { isMatch, hasReachedBoundary }) {\n if (! hasReachedBoundary) hasReachedBoundary = () => false\n\n let current = el\n\n while (current) {\n // Check previous siblings\n let sibling = current.previousSibling;\n\n let foundEndMarker = []\n\n while (sibling) {\n if (isEndFragmentMarker(sibling)) {\n // Keep iterating up until we find the start marker and skip it...\n foundEndMarker.push('a')\n }\n\n if (isStartFragmentMarker(sibling)) {\n if (foundEndMarker.length > 0) {\n foundEndMarker.pop()\n } else {\n let metadata = extractFragmentMetadataFromMarkerNode(sibling)\n\n if (isMatch(metadata)) {\n return new Fragment(sibling)\n }\n }\n }\n\n sibling = sibling.previousSibling;\n }\n\n // No start marker found at this level or found end marker\n // Go up to parent unless we've hit the component root\n current = current.parentElement;\n\n if (current && hasReachedBoundary({ el: current })) {\n break; // Stop at component root\n }\n }\n\n return null;\n}\n\nexport function findFragment(el, { isMatch, hasReachedBoundary }) {\n if (! hasReachedBoundary) hasReachedBoundary = () => false\n\n let startNode = null\n\n let rootEl = el\n\n walkElements(rootEl, (el, { skip, stop }) => {\n // Skip nested Livewire components\n if (el.hasAttribute && el !== rootEl && hasReachedBoundary({ el })) {\n return skip()\n }\n\n // Check all child nodes (including text and comment nodes)\n Array.from(el.childNodes).forEach(node => {\n if (isStartFragmentMarker(node)) {\n let metadata = extractFragmentMetadataFromMarkerNode(node)\n\n if (isMatch(metadata)) {\n startNode = node\n\n stop()\n }\n }\n })\n })\n\n return startNode && new Fragment(startNode)\n}\n\nexport function isStartFragmentMarker(el) {\n return el.nodeType === 8 && el.textContent.startsWith('[if FRAGMENT')\n}\n\nexport function isEndFragmentMarker(el) {\n return el.nodeType === 8 && el.textContent.startsWith('[if ENDFRAGMENT')\n}\n\nfunction walkElements(el, callback) {\n let skip = false\n let stop = false\n\n callback(el, { skip: () => skip = true, stop: () => stop = true })\n\n if (skip || stop) return\n\n Array.from(el.children).forEach(child => {\n walkElements(child, callback)\n\n if (stop) return\n })\n}\n\nexport class Fragment {\n constructor(startMarkerNode) {\n this.startMarkerNode = startMarkerNode\n\n this.metadata = extractFragmentMetadataFromMarkerNode(startMarkerNode)\n }\n\n get endMarkerNode() {\n return findMatchingEndMarkerNode(this.startMarkerNode, this.metadata)\n }\n\n append(mountContainerTagName, html) {\n let container = document.createElement(mountContainerTagName)\n\n container.innerHTML = html\n\n Array.from(container.childNodes).forEach(node => {\n this.endMarkerNode.before(node)\n })\n }\n\n prepend(mountContainerTagName, html) {\n let container = document.createElement(mountContainerTagName)\n\n container.innerHTML = html\n\n Array.from(container.childNodes)\n .reverse()\n .forEach(node => {\n this.startMarkerNode.after(node)\n })\n }\n}\n\nexport function findMatchingEndMarkerNode(startMarkerNode, metadata) {\n let current = startMarkerNode\n\n while (current) {\n if (isEndFragmentMarker(current)) {\n let currentMetadata = extractFragmentMetadataFromMarkerNode(current)\n\n if (Object.keys(metadata).every(key => metadata[key] === currentMetadata[key])) {\n return current\n }\n }\n\n current = current.nextSibling\n }\n\n return null\n}\n\nexport function extractInnerHtmlFromFragmentHtml(fragmentHtml) {\n let regex = /<!--\\[if FRAGMENT\\b.*?\\]><!\\[endif\\]-->([\\s\\S]*)<!--\\[if ENDFRAGMENT\\b.*?\\]><!\\[endif\\]-->/i;\n\n let match = fragmentHtml.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, html] = match\n\n return html\n}\n\nexport function extractFragmentMetadataFromHtml(fragmentHtml) {\n let regex = /\\[if (FRAGMENT|ENDFRAGMENT):(.*?)\\]/\n\n let match = fragmentHtml.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, __, encodedMetadata] = match\n\n return decodeMetadata(encodedMetadata)\n}\n\nexport function extractFragmentMetadataFromMarkerNode(startMarkerNode) {\n let regex = /\\[if (FRAGMENT|ENDFRAGMENT):(.*?)\\]/\n\n let match = startMarkerNode.textContent.match(regex)\n\n if (! match) throw new Error('Invalid fragment marker')\n\n let [_, __, encodedMetadata] = match\n\n return decodeMetadata(encodedMetadata)\n}\n\nexport function decodeMetadata(encodedMetadata) {\n let metadata = {}\n\n // Split by pipe character to get key=value pairs\n let pairs = encodedMetadata.split('|')\n\n pairs.forEach(pair => {\n // Split each pair by = to get key and value\n let [key, value] = pair.split('=')\n metadata[key] = value\n })\n\n return metadata\n}\n", "import { Component } from \"@/component\";\nimport { trigger } from \"@/hooks\";\nimport { walkBackwards, walkUpwards } from \"./utils\";\nimport { extractFragmentMetadataFromMarkerNode, isEndFragmentMarker, isStartFragmentMarker } from \"./fragment\";\n\nlet components = {}\n\nexport function initComponent(el) {\n let component = new Component(el)\n\n if (components[component.id]) throw 'Component already registered'\n\n let cleanup = (i) => component.addCleanup(i)\n\n trigger('component.init', { component, cleanup })\n\n components[component.id] = component\n\n return component\n}\n\nexport function destroyComponent(id) {\n let component = components[id]\n\n if (! component) return\n\n component.cleanup()\n\n delete components[id]\n}\n\nexport function hasComponent(id) {\n return !! components[id]\n}\n\nexport function findComponent(id, strict = true) {\n let component = components[id]\n\n if (! component) {\n if (strict) throw 'Component not found: ' + id\n\n return\n }\n\n return component\n}\n\nexport function findComponentByEl(el, strict = true) {\n let componentId = walkUpwards(el, (node, { stop }) => {\n if (node.__livewire) return stop(node.__livewire.id)\n\n let endMarkers = []\n\n let slotParentId = walkBackwards(node, (siblingNode, { stop }) => {\n if (isEndFragmentMarker(siblingNode)) {\n let metadata = extractFragmentMetadataFromMarkerNode(siblingNode)\n\n if (metadata.type !== 'slot') return\n\n endMarkers.push('a')\n\n return\n }\n\n if (isStartFragmentMarker(siblingNode)) {\n let metadata = extractFragmentMetadataFromMarkerNode(siblingNode)\n\n if (metadata.type !== 'slot') return\n\n\n if (endMarkers.length > 0) {\n endMarkers.pop()\n } else {\n return stop(metadata.parent)\n }\n }\n })\n\n if (slotParentId) return stop(slotParentId)\n })\n\n let component = findComponent(componentId, strict)\n\n if (! component) {\n if (strict) throw \"Could not find Livewire component in DOM tree\"\n\n return\n }\n\n return component\n}\n\nexport function componentsByName(name) {\n return Object.values(components).filter(component => {\n return name == component.name\n })\n}\n\nexport function getByName(name) {\n return componentsByName(name).map(i => i.$wire)\n}\n\nexport function find(id) {\n let component = components[id]\n\n return component && component.$wire\n}\n\nexport function first() {\n return Object.values(components)[0].$wire\n}\n\nexport function all() {\n return Object.values(components)\n}\n", "import { componentsByName } from \"@/store\"\nimport { findRefEl } from \"@/features/supportRefs\"\n\nexport function dispatch(component, name, params) {\n dispatchEvent(component.el, name, params)\n}\n\nexport function dispatchGlobal(name, params) {\n dispatchEvent(window, name, params)\n}\n\nexport function dispatchSelf(component, name, params) {\n dispatchEvent(component.el, name, params, false)\n}\n\nexport function dispatchEl(component, selector, name, params) {\n let targets = component.el.querySelectorAll(selector)\n\n targets.forEach(target => {\n dispatchEvent(target, name, params, false)\n })\n}\n\nexport function dispatchTo(componentName, name, params) {\n let targets = componentsByName(componentName)\n\n targets.forEach(target => {\n dispatchEvent(target.el, name, params, false)\n })\n}\n\nexport function dispatchRef(component, ref, name, params) {\n let el = findRefEl(component, ref)\n\n dispatchEvent(el, name, params, false)\n}\n\nexport function listen(component, name, callback) {\n component.el.addEventListener(name, e => {\n callback(e.detail)\n })\n}\n\nexport function on(eventName, callback) {\n let handler = (e) => {\n // Implemented for backwards compatibility...\n if (! e.__livewire) return\n\n callback(e.detail)\n }\n\n window.addEventListener(eventName, handler)\n\n return () => {\n window.removeEventListener(eventName, handler)\n }\n}\n\nfunction dispatchEvent(target, name, params, bubbles = true) {\n // We need to ensure the params are an array (or object), so we need to wrap them if they're not already...\n if (typeof params === 'string') {\n params = [params]\n }\n\n let e = new CustomEvent(name, { bubbles, detail: params })\n\n e.__livewire = { name, params, receivedBy: [] }\n\n target.dispatchEvent(e)\n}\n", "// packages/collapse/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"collapse\", collapse);\n collapse.inline = (el, { modifiers }) => {\n if (!modifiers.includes(\"min\"))\n return;\n el._x_doShow = () => {\n };\n el._x_doHide = () => {\n };\n };\n function collapse(el, { modifiers }) {\n let duration = modifierValue(modifiers, \"duration\", 250) / 1e3;\n let floor = modifierValue(modifiers, \"min\", 0);\n let fullyHide = !modifiers.includes(\"min\");\n if (!el._x_isShown)\n el.style.height = `${floor}px`;\n if (!el._x_isShown && fullyHide)\n el.hidden = true;\n if (!el._x_isShown)\n el.style.overflow = \"hidden\";\n let setFunction = (el2, styles) => {\n let revertFunction = Alpine.setStyles(el2, styles);\n return styles.height ? () => {\n } : revertFunction;\n };\n let transitionStyles = {\n transitionProperty: \"height\",\n transitionDuration: `${duration}s`,\n transitionTimingFunction: \"cubic-bezier(0.4, 0.0, 0.2, 1)\"\n };\n el._x_transition = {\n in(before = () => {\n }, after = () => {\n }) {\n if (fullyHide)\n el.hidden = false;\n if (fullyHide)\n el.style.display = null;\n let current = el.getBoundingClientRect().height;\n el.style.height = \"auto\";\n let full = el.getBoundingClientRect().height;\n if (current === full) {\n current = floor;\n }\n Alpine.transition(el, Alpine.setStyles, {\n during: transitionStyles,\n start: { height: current + \"px\" },\n end: { height: full + \"px\" }\n }, () => el._x_isShown = true, () => {\n if (Math.abs(el.getBoundingClientRect().height - full) < 1) {\n el.style.overflow = null;\n }\n });\n },\n out(before = () => {\n }, after = () => {\n }) {\n let full = el.getBoundingClientRect().height;\n Alpine.transition(el, setFunction, {\n during: transitionStyles,\n start: { height: full + \"px\" },\n end: { height: floor + \"px\" }\n }, () => el.style.overflow = \"hidden\", () => {\n el._x_isShown = false;\n if (el.style.height == `${floor}px` && fullyHide) {\n el.style.display = \"none\";\n el.hidden = true;\n }\n });\n }\n };\n }\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"duration\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"min\") {\n let match = rawValue.match(/([0-9]+)px/);\n if (match)\n return match[1];\n }\n return rawValue;\n}\n\n// packages/collapse/builds/module.js\nvar module_default = src_default;\nexport {\n src_default as collapse,\n module_default as default\n};\n", "// node_modules/tabbable/dist/index.esm.js\nvar candidateSelectors = [\"input:not([inert]):not([inert] *)\", \"select:not([inert]):not([inert] *)\", \"textarea:not([inert]):not([inert] *)\", \"a[href]:not([inert]):not([inert] *)\", \"button:not([inert]):not([inert] *)\", \"[tabindex]:not(slot):not([inert]):not([inert] *)\", \"audio[controls]:not([inert]):not([inert] *)\", \"video[controls]:not([inert]):not([inert] *)\", '[contenteditable]:not([contenteditable=\"false\"]):not([inert]):not([inert] *)', \"details>summary:first-of-type:not([inert]):not([inert] *)\", \"details:not([inert]):not([inert] *)\"];\nvar candidateSelector = /* @__PURE__ */ candidateSelectors.join(\",\");\nvar NoElement = typeof Element === \"undefined\";\nvar matches = NoElement ? function() {\n} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function(element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\nvar _isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, \"inert\");\n var inert = inertAtt === \"\" || inertAtt === \"true\";\n var result = inert || lookUp && node && // closest does not exist on shadow roots, so we fall back to a manual\n // lookup upward, in case it is not defined.\n (typeof node.closest === \"function\" ? node.closest(\"[inert]\") : _isInert(node.parentNode));\n return result;\n};\nvar isContentEditable = function isContentEditable2(node) {\n var _node$getAttribute2;\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, \"contenteditable\");\n return attValue === \"\" || attValue === \"true\";\n};\nvar getCandidates = function getCandidates2(el, includeContainer, filter) {\n if (_isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\nvar _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (_isInert(element, false)) {\n continue;\n }\n if (element.tagName === \"SLOT\") {\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = _getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === \"function\" && options.getShadowRoot(element);\n var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\nvar hasTabIndex = function hasTabIndex2(node) {\n return !isNaN(parseInt(node.getAttribute(\"tabindex\"), 10));\n};\nvar getTabIndex = function getTabIndex2(node) {\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (node.tabIndex < 0) {\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\nvar getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables2(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput2(node) {\n return node.tagName === \"INPUT\";\n};\nvar isHiddenInput = function isHiddenInput2(node) {\n return isInput(node) && node.type === \"hidden\";\n};\nvar isDetailsWithSummary = function isDetailsWithSummary2(node) {\n var r = node.tagName === \"DETAILS\" && Array.prototype.slice.apply(node.children).some(function(child) {\n return child.tagName === \"SUMMARY\";\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio2(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio2(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios2(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== \"undefined\" && typeof window.CSS !== \"undefined\" && typeof window.CSS.escape === \"function\") {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\", err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio2(node) {\n return isInput(node) && node.type === \"radio\";\n};\nvar isNonTabbableRadio = function isNonTabbableRadio2(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\nvar isNodeAttached = function isNodeAttached2(node) {\n var _nodeRoot;\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea2(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden2(node, _ref) {\n var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot;\n if (displayCheck === \"full-native\") {\n if (\"checkVisibility\" in node) {\n var visible = node.checkVisibility({\n // Checking opacity might be desirable for some use cases, but natively,\n // opacity zero elements _are_ focusable and tabbable.\n checkOpacity: false,\n opacityProperty: false,\n contentVisibilityAuto: true,\n visibilityProperty: true,\n // This is an alias for `visibilityProperty`. Contemporary browsers\n // support both. However, this alias has wider browser support (Chrome\n // >= 105 and Firefox >= 106, vs. Chrome >= 121 and Firefox >= 122), so\n // we include it anyway.\n checkVisibilityCSS: true\n });\n return !visible;\n }\n }\n if (getComputedStyle(node).visibility === \"hidden\") {\n return true;\n }\n var isDirectSummary = matches.call(node, \"details>summary:first-of-type\");\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, \"details:not([open]) *\")) {\n return true;\n }\n if (!displayCheck || displayCheck === \"full\" || // full-native can run this branch when it falls through in case\n // Element#checkVisibility is unsupported\n displayCheck === \"full-native\" || displayCheck === \"legacy-full\") {\n if (typeof getShadowRoot === \"function\") {\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) {\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n node = rootNode.host;\n } else {\n node = parentElement;\n }\n }\n node = originalNode;\n }\n if (isNodeAttached(node)) {\n return !node.getClientRects().length;\n }\n if (displayCheck !== \"legacy-full\") {\n return true;\n }\n } else if (displayCheck === \"non-zero-area\") {\n return isZeroArea(node);\n }\n return false;\n};\nvar isDisabledFromFieldset = function isDisabledFromFieldset2(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n while (parentNode) {\n if (parentNode.tagName === \"FIELDSET\" && parentNode.disabled) {\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n if (child.tagName === \"LEGEND\") {\n return matches.call(parentNode, \"fieldset[disabled] *\") ? true : !child.contains(node);\n }\n }\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isShadowRootTabbable = function isShadowRootTabbable2(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute(\"tabindex\"), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n return false;\n};\nvar _sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function(item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? _sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item,\n isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable2(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return _sortByOrder(candidates);\n};\nvar focusable = function focusable2(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable2(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat(\"iframe:not([inert]):not([inert] *)\").join(\",\");\nvar isFocusable = function isFocusable2(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\n// node_modules/focus-trap/dist/focus-trap.esm.js\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++)\n n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r))\n return _arrayLikeToArray(r);\n}\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c), u = i.value;\n } catch (n2) {\n return void e(n2);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function() {\n var t = this, e = arguments;\n return new Promise(function(r, o) {\n var a = n.apply(t, e);\n function _next(n2) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n2);\n }\n function _throw(n2) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n2);\n }\n _next(void 0);\n });\n };\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {\n t && (r = t);\n var n = 0, F = function() {\n };\n return {\n s: F,\n n: function() {\n return n >= r.length ? {\n done: true\n } : {\n done: false,\n value: r[n++]\n };\n },\n e: function(r2) {\n throw r2;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o, a = true, u = false;\n return {\n s: function() {\n t = t.call(r);\n },\n n: function() {\n var r2 = t.next();\n return a = r2.done, r2;\n },\n e: function(r2) {\n u = true, o = r2;\n },\n f: function() {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u)\n throw o;\n }\n }\n };\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"])\n return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function(r2) {\n return Object.getOwnPropertyDescriptor(e, r2).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {\n _defineProperty(e, r2, t[r2]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {\n Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));\n });\n }\n return e;\n}\nfunction _regenerator() {\n var e, t, r = \"function\" == typeof Symbol ? Symbol : {}, n = r.iterator || \"@@iterator\", o = r.toStringTag || \"@@toStringTag\";\n function i(r2, n2, o2, i2) {\n var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype);\n return _regeneratorDefine(u2, \"_invoke\", function(r3, n3, o3) {\n var i3, c3, u3, f2 = 0, p = o3 || [], y = false, G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function(t2, r4) {\n return i3 = t2, c3 = 0, u3 = e, G.n = r4, a;\n }\n };\n function d(r4, n4) {\n for (c3 = r4, u3 = n4, t = 0; !y && f2 && !o4 && t < p.length; t++) {\n var o4, i4 = p[t], d2 = G.p, l = i4[2];\n r4 > 3 ? (o4 = l === n4) && (u3 = i4[(c3 = i4[4]) ? 5 : (c3 = 3, 3)], i4[4] = i4[5] = e) : i4[0] <= d2 && ((o4 = r4 < 2 && d2 < i4[1]) ? (c3 = 0, G.v = n4, G.n = i4[1]) : d2 < l && (o4 = r4 < 3 || i4[0] > n4 || n4 > l) && (i4[4] = r4, i4[5] = n4, G.n = l, c3 = 0));\n }\n if (o4 || r4 > 1)\n return a;\n throw y = true, n4;\n }\n return function(o4, p2, l) {\n if (f2 > 1)\n throw TypeError(\"Generator is already running\");\n for (y && 1 === p2 && d(p2, l), c3 = p2, u3 = l; (t = c3 < 2 ? e : u3) || !y; ) {\n i3 || (c3 ? c3 < 3 ? (c3 > 1 && (G.n = -1), d(c3, u3)) : G.n = u3 : G.v = u3);\n try {\n if (f2 = 2, i3) {\n if (c3 || (o4 = \"next\"), t = i3[o4]) {\n if (!(t = t.call(i3, u3)))\n throw TypeError(\"iterator result is not an object\");\n if (!t.done)\n return t;\n u3 = t.value, c3 < 2 && (c3 = 0);\n } else\n 1 === c3 && (t = i3.return) && t.call(i3), c3 < 2 && (u3 = TypeError(\"The iterator does not provide a '\" + o4 + \"' method\"), c3 = 1);\n i3 = e;\n } else if ((t = (y = G.n < 0) ? u3 : r3.call(n3, G)) !== a)\n break;\n } catch (t2) {\n i3 = e, c3 = 1, u3 = t2;\n } finally {\n f2 = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r2, o2, i2), true), u2;\n }\n var a = {};\n function Generator() {\n }\n function GeneratorFunction() {\n }\n function GeneratorFunctionPrototype() {\n }\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function() {\n return this;\n }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e2) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e2, GeneratorFunctionPrototype) : (e2.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e2, o, \"GeneratorFunction\")), e2.prototype = Object.create(u), e2;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", _regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), _regeneratorDefine(u), _regeneratorDefine(u, o, \"Generator\"), _regeneratorDefine(u, n, function() {\n return this;\n }), _regeneratorDefine(u, \"toString\", function() {\n return \"[object Generator]\";\n }), (_regenerator = function() {\n return {\n w: i,\n m: f\n };\n })();\n}\nfunction _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e2) {\n i = 0;\n }\n _regeneratorDefine = function(e2, r2, n2, t2) {\n function o(r3, n3) {\n _regeneratorDefine(e2, r3, function(e3) {\n return this._invoke(r3, n3, e3);\n });\n }\n r2 ? i ? i(e2, r2, {\n value: n2,\n enumerable: !t2,\n configurable: !t2,\n writable: !t2\n }) : e2[r2] = n2 : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, _regeneratorDefine(e, r, n, t);\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t)\n return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i)\n return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r)\n return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\nvar activeFocusTraps = {\n // Returns the trap from the top of the stack.\n getActiveTrap: function getActiveTrap(trapStack) {\n if ((trapStack === null || trapStack === void 0 ? void 0 : trapStack.length) > 0) {\n return trapStack[trapStack.length - 1];\n }\n return null;\n },\n // Pauses the currently active trap, then adds a new trap to the stack.\n activateTrap: function activateTrap(trapStack, trap) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (trap !== activeTrap) {\n activeFocusTraps.pauseTrap(trapStack);\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n // Removes the trap from the top of the stack, then unpauses the next trap down.\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n activeFocusTraps.unpauseTrap(trapStack);\n },\n // Pauses the trap at the top of the stack.\n pauseTrap: function pauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n activeTrap === null || activeTrap === void 0 || activeTrap._setPausedState(true);\n },\n // Unpauses the trap at the top of the stack.\n unpauseTrap: function unpauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (activeTrap && !activeTrap._isManuallyPaused()) {\n activeTrap._setPausedState(false);\n }\n }\n};\nvar isSelectableInput = function isSelectableInput2(node) {\n return node.tagName && node.tagName.toLowerCase() === \"input\" && typeof node.select === \"function\";\n};\nvar isEscapeEvent = function isEscapeEvent2(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === \"Escape\" || (e === null || e === void 0 ? void 0 : e.key) === \"Esc\" || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n};\nvar isTabEvent = function isTabEvent2(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === \"Tab\" || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n};\nvar isKeyForward = function isKeyForward2(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\nvar isKeyBackward = function isKeyBackward2(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay2(fn) {\n return setTimeout(fn, 0);\n};\nvar valueOrHandler = function valueOrHandler2(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === \"function\" ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget2(event) {\n return event.target.shadowRoot && typeof event.composedPath === \"function\" ? event.composedPath()[0] : event.target;\n};\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap2(elements, userOptions) {\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isolateSubtrees: false,\n isKeyForward,\n isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n /** @type {Array<HTMLElement>} */\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n /** @type {Array<{\n * container: HTMLElement,\n * tabbableNodes: Array<HTMLElement>, // empty if none\n * focusableNodes: Array<HTMLElement>, // empty if none\n * posTabIndexesFound: boolean,\n * firstTabbableNode: HTMLElement|undefined,\n * lastTabbableNode: HTMLElement|undefined,\n * firstDomTabbableNode: HTMLElement|undefined,\n * lastDomTabbableNode: HTMLElement|undefined,\n * nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n * }>}\n */\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n // references to nodes that are siblings to the ancestors of this trap's containers.\n /** @type {Set<HTMLElement>} */\n adjacentElements: /* @__PURE__ */ new Set(),\n // references to nodes that were inert or aria-hidden before the trap was activated.\n /** @type {Set<HTMLElement>} */\n alreadySilent: /* @__PURE__ */ new Set(),\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n manuallyPaused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: void 0,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: void 0\n };\n var trap;\n var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n var findContainerIndex = function findContainerIndex2(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === \"function\" ? event.composedPath() : void 0;\n return state.containerGroups.findIndex(function(_ref) {\n var container = _ref.container, tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n (composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function(node) {\n return node === element;\n });\n });\n };\n var getNodeForOption = function getNodeForOption2(optionName) {\n var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$hasFallback = _ref2.hasFallback, hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback, _ref2$params = _ref2.params, params = _ref2$params === void 0 ? [] : _ref2$params;\n var optionValue = config[optionName];\n if (typeof optionValue === \"function\") {\n optionValue = optionValue.apply(void 0, _toConsumableArray(params));\n }\n if (optionValue === true) {\n optionValue = void 0;\n }\n if (!optionValue) {\n if (optionValue === void 0 || optionValue === false) {\n return optionValue;\n }\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue;\n if (typeof optionValue === \"string\") {\n try {\n node = doc.querySelector(optionValue);\n } catch (err) {\n throw new Error(\"`\".concat(optionName, '` appears to be an invalid selector; error=\"').concat(err.message, '\"'));\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode2() {\n var node = getNodeForOption(\"initialFocus\", {\n hasFallback: true\n });\n if (node === false) {\n return false;\n }\n if (node === void 0 || node && !isFocusable(node, config.tabbableOptions)) {\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n node = firstTabbableNode || getNodeForOption(\"fallbackFocus\");\n }\n } else if (node === null) {\n node = getNodeForOption(\"fallbackFocus\");\n }\n if (!node) {\n throw new Error(\"Your focus-trap needs to have at least one focusable element\");\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes2() {\n state.containerGroups = state.containers.map(function(container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n var focusableNodes = focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0;\n var firstDomTabbableNode = focusableNodes.find(function(node) {\n return isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function(node) {\n return isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function(node) {\n return getTabIndex(node) > 0;\n });\n return {\n container,\n tabbableNodes,\n focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function(el) {\n return isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function(el) {\n return isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function(group) {\n return group.tabbableNodes.length > 0;\n });\n if (state.tabbableGroups.length <= 0 && !getNodeForOption(\"fallbackFocus\")) {\n throw new Error(\"Your focus-trap must have at least one container with at least one tabbable node in it at all times\");\n }\n if (state.containerGroups.find(function(g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n var _getActiveElement = function getActiveElement(el) {\n var activeElement = el.activeElement;\n if (!activeElement) {\n return;\n }\n if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {\n return _getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n };\n var _tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === _getActiveElement(document)) {\n return;\n }\n if (!node || !node.focus) {\n _tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) {\n var node = getNodeForOption(\"setReturnFocus\", {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n };\n var findNextNavNode = function findNextNavNode2(_ref3) {\n var target = _ref3.target, event = _ref3.event, _ref3$isBackward = _ref3.isBackward, isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0;\n if (containerIndex < 0) {\n if (isBackward) {\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n var startOfGroupIndex = state.tabbableGroups.findIndex(function(_ref4) {\n var firstTabbableNode = _ref4.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n var lastOfGroupIndex = state.tabbableGroups.findIndex(function(_ref5) {\n var lastTabbableNode = _ref5.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n destinationNode = getNodeForOption(\"fallbackFocus\");\n }\n return destinationNode;\n };\n var checkPointerDown = function checkPointerDown2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n };\n var checkFocusIn = function checkFocusIn2(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n event.stopImmediatePropagation();\n var nextNode;\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n var mruTabIdx = tabbableNodes.findIndex(function(node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n }\n }\n }\n } else {\n if (!state.containerGroups.some(function(g) {\n return g.tabbableNodes.some(function(n) {\n return getTabIndex(n) > 0;\n });\n })) {\n navAcrossContainers = false;\n }\n }\n } else {\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n _tryFocus(nextNode);\n } else {\n _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = void 0;\n };\n var checkKeyNav = function checkKeyNav2(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event,\n isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n event.preventDefault();\n }\n _tryFocus(destinationNode);\n }\n };\n var checkTabKey = function checkTabKey2(event) {\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n var checkEscapeKey = function checkEscapeKey2(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n }\n };\n var checkClick = function checkClick2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n var addListeners = function addListeners2() {\n if (!state.active) {\n return Promise.resolve();\n }\n activeFocusTraps.activateTrap(trapStack, trap);\n var promise;\n if (config.delayInitialFocus) {\n promise = new Promise(function(resolve) {\n state.delayInitialFocusTimer = delay(function() {\n _tryFocus(getInitialFocusNode());\n resolve();\n });\n });\n } else {\n promise = Promise.resolve();\n _tryFocus(getInitialFocusNode());\n }\n doc.addEventListener(\"focusin\", checkFocusIn, true);\n doc.addEventListener(\"mousedown\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"touchstart\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"click\", checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkTabKey, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkEscapeKey);\n return promise;\n };\n var collectAdjacentElements = function collectAdjacentElements2(containers) {\n if (state.active && !state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.adjacentElements.clear();\n state.alreadySilent.clear();\n var containerAncestors = /* @__PURE__ */ new Set();\n var adjacentElements = /* @__PURE__ */ new Set();\n var _iterator = _createForOfIteratorHelper(containers), _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done; ) {\n var container = _step.value;\n containerAncestors.add(container);\n var insideShadowRoot = typeof ShadowRoot !== \"undefined\" && container.getRootNode() instanceof ShadowRoot;\n var current = container;\n while (current) {\n containerAncestors.add(current);\n var parent = current.parentElement;\n var siblings = [];\n if (parent) {\n siblings = parent.children;\n } else if (!parent && insideShadowRoot) {\n siblings = current.getRootNode().children;\n parent = current.getRootNode().host;\n insideShadowRoot = typeof ShadowRoot !== \"undefined\" && parent.getRootNode() instanceof ShadowRoot;\n }\n var _iterator2 = _createForOfIteratorHelper(siblings), _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {\n var child = _step2.value;\n adjacentElements.add(child);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n current = parent;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n containerAncestors.forEach(function(el) {\n adjacentElements[\"delete\"](el);\n });\n state.adjacentElements = adjacentElements;\n };\n var removeListeners = function removeListeners2() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener(\"focusin\", checkFocusIn, true);\n doc.removeEventListener(\"mousedown\", checkPointerDown, true);\n doc.removeEventListener(\"touchstart\", checkPointerDown, true);\n doc.removeEventListener(\"click\", checkClick, true);\n doc.removeEventListener(\"keydown\", checkTabKey, true);\n doc.removeEventListener(\"keydown\", checkEscapeKey);\n return trap;\n };\n var checkDomRemoval = function checkDomRemoval2(mutations) {\n var isFocusedNodeRemoved = mutations.some(function(mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function(node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n if (isFocusedNodeRemoved) {\n _tryFocus(getInitialFocusNode());\n }\n };\n var mutationObserver = typeof window !== \"undefined\" && \"MutationObserver\" in window ? new MutationObserver(checkDomRemoval) : void 0;\n var updateObservedNodes = function updateObservedNodes2() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function(container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, \"onActivate\");\n var onPostActivate = getOption(activateOptions, \"onPostActivate\");\n var checkCanFocusTrap = getOption(activateOptions, \"checkCanFocusTrap\");\n var preexistingTrap = activeFocusTraps.getActiveTrap(trapStack);\n var revertState = false;\n if (preexistingTrap && !preexistingTrap.paused) {\n var _preexistingTrap$_set;\n (_preexistingTrap$_set = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set === void 0 || _preexistingTrap$_set.call(preexistingTrap, false);\n revertState = true;\n }\n try {\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = _getActiveElement(doc);\n onActivate === null || onActivate === void 0 || onActivate();\n var finishActivation = /* @__PURE__ */ function() {\n var _ref6 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee() {\n return _regenerator().w(function(_context) {\n while (1)\n switch (_context.n) {\n case 0:\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n _context.n = 1;\n return addListeners();\n case 1:\n trap._setSubtreeIsolation(true);\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 || onPostActivate();\n case 2:\n return _context.a(2);\n }\n }, _callee);\n }));\n return function finishActivation2() {\n return _ref6.apply(this, arguments);\n };\n }();\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n } catch (error) {\n if (preexistingTrap === activeFocusTraps.getActiveTrap(trapStack) && revertState) {\n var _preexistingTrap$_set2;\n (_preexistingTrap$_set2 = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set2 === void 0 || _preexistingTrap$_set2.call(preexistingTrap, true);\n }\n throw error;\n }\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer);\n state.delayInitialFocusTimer = void 0;\n if (!state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.alreadySilent.clear();\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, \"onDeactivate\");\n var onPostDeactivate = getOption(options, \"onPostDeactivate\");\n var checkCanReturnFocus = getOption(options, \"checkCanReturnFocus\");\n var returnFocus = getOption(options, \"returnFocus\", \"returnFocusOnDeactivate\");\n onDeactivate === null || onDeactivate === void 0 || onDeactivate();\n var finishDeactivation = function finishDeactivation2() {\n delay(function() {\n if (returnFocus) {\n _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = true;\n return this._setPausedState(true, pauseOptions);\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = false;\n if (trapStack[trapStack.length - 1] !== this) {\n return this;\n }\n return this._setPausedState(false, unpauseOptions);\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function(element) {\n return typeof element === \"string\" ? doc.querySelector(element) : element;\n });\n if (config.isolateSubtrees) {\n collectAdjacentElements(state.containers);\n }\n if (state.active) {\n updateTabbableNodes();\n if (!state.paused) {\n trap._setSubtreeIsolation(true);\n }\n }\n updateObservedNodes();\n return this;\n }\n };\n Object.defineProperties(trap, {\n _isManuallyPaused: {\n value: function value() {\n return state.manuallyPaused;\n }\n },\n _setPausedState: {\n value: function value(paused, options) {\n if (state.paused === paused) {\n return this;\n }\n state.paused = paused;\n if (paused) {\n var onPause = getOption(options, \"onPause\");\n var onPostPause = getOption(options, \"onPostPause\");\n onPause === null || onPause === void 0 || onPause();\n removeListeners();\n trap._setSubtreeIsolation(false);\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 || onPostPause();\n } else {\n var onUnpause = getOption(options, \"onUnpause\");\n var onPostUnpause = getOption(options, \"onPostUnpause\");\n onUnpause === null || onUnpause === void 0 || onUnpause();\n var finishUnpause = /* @__PURE__ */ function() {\n var _ref7 = _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee2() {\n return _regenerator().w(function(_context2) {\n while (1)\n switch (_context2.n) {\n case 0:\n updateTabbableNodes();\n _context2.n = 1;\n return addListeners();\n case 1:\n trap._setSubtreeIsolation(true);\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();\n case 2:\n return _context2.a(2);\n }\n }, _callee2);\n }));\n return function finishUnpause2() {\n return _ref7.apply(this, arguments);\n };\n }();\n finishUnpause();\n }\n return this;\n }\n },\n _setSubtreeIsolation: {\n value: function value(isEnabled) {\n if (config.isolateSubtrees) {\n state.adjacentElements.forEach(function(el) {\n var _el$getAttribute;\n if (isEnabled) {\n switch (config.isolateSubtrees) {\n case \"aria-hidden\":\n if (el.ariaHidden === \"true\" || ((_el$getAttribute = el.getAttribute(\"aria-hidden\")) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.toLowerCase()) === \"true\") {\n state.alreadySilent.add(el);\n }\n el.setAttribute(\"aria-hidden\", \"true\");\n break;\n default:\n if (el.inert || el.hasAttribute(\"inert\")) {\n state.alreadySilent.add(el);\n }\n el.setAttribute(\"inert\", true);\n break;\n }\n } else {\n if (state.alreadySilent.has(el))\n ;\n else {\n switch (config.isolateSubtrees) {\n case \"aria-hidden\":\n el.removeAttribute(\"aria-hidden\");\n break;\n default:\n el.removeAttribute(\"inert\");\n break;\n }\n }\n }\n });\n }\n }\n }\n });\n trap.updateContainerElements(elements);\n return trap;\n};\n\n// packages/focus/src/index.js\nfunction src_default(Alpine) {\n let lastFocused;\n let currentFocused;\n window.addEventListener(\"focusin\", () => {\n lastFocused = currentFocused;\n currentFocused = document.activeElement;\n });\n Alpine.magic(\"focus\", (el) => {\n let within = el;\n return {\n __noscroll: false,\n __wrapAround: false,\n within(el2) {\n within = el2;\n return this;\n },\n withoutScrolling() {\n this.__noscroll = true;\n return this;\n },\n noscroll() {\n this.__noscroll = true;\n return this;\n },\n withWrapAround() {\n this.__wrapAround = true;\n return this;\n },\n wrap() {\n return this.withWrapAround();\n },\n focusable(el2) {\n return isFocusable(el2);\n },\n previouslyFocused() {\n return lastFocused;\n },\n lastFocused() {\n return lastFocused;\n },\n focused() {\n return currentFocused;\n },\n focusables() {\n if (Array.isArray(within))\n return within;\n return focusable(within, { displayCheck: \"none\" });\n },\n all() {\n return this.focusables();\n },\n isFirst(el2) {\n let els = this.all();\n return els[0] && els[0].isSameNode(el2);\n },\n isLast(el2) {\n let els = this.all();\n return els.length && els.slice(-1)[0].isSameNode(el2);\n },\n getFirst() {\n return this.all()[0];\n },\n getLast() {\n return this.all().slice(-1)[0];\n },\n getNext() {\n let list = this.all();\n let current = document.activeElement;\n if (list.indexOf(current) === -1)\n return;\n if (this.__wrapAround && list.indexOf(current) === list.length - 1) {\n return list[0];\n }\n return list[list.indexOf(current) + 1];\n },\n getPrevious() {\n let list = this.all();\n let current = document.activeElement;\n if (list.indexOf(current) === -1)\n return;\n if (this.__wrapAround && list.indexOf(current) === 0) {\n return list.slice(-1)[0];\n }\n return list[list.indexOf(current) - 1];\n },\n first() {\n this.focus(this.getFirst());\n },\n last() {\n this.focus(this.getLast());\n },\n next() {\n this.focus(this.getNext());\n },\n previous() {\n this.focus(this.getPrevious());\n },\n prev() {\n return this.previous();\n },\n focus(el2) {\n if (!el2)\n return;\n setTimeout(() => {\n if (!el2.hasAttribute(\"tabindex\"))\n el2.setAttribute(\"tabindex\", \"0\");\n el2.focus({ preventScroll: this.__noscroll });\n });\n }\n };\n });\n Alpine.directive(\"trap\", Alpine.skipDuringClone(\n (el, { expression, modifiers }, { effect, evaluateLater, cleanup }) => {\n let evaluator = evaluateLater(expression);\n let oldValue = false;\n let options = {\n escapeDeactivates: false,\n allowOutsideClick: true,\n fallbackFocus: () => el\n };\n let undoInert = () => {\n };\n if (modifiers.includes(\"noautofocus\")) {\n options.initialFocus = false;\n } else {\n let autofocusEl = el.querySelector(\"[autofocus]\");\n if (autofocusEl)\n options.initialFocus = autofocusEl;\n }\n if (modifiers.includes(\"inert\")) {\n options.onPostActivate = () => {\n Alpine.nextTick(() => {\n undoInert = setInert(el);\n });\n };\n }\n let trap = createFocusTrap(el, options);\n let undoDisableScrolling = () => {\n };\n const releaseFocus = () => {\n undoInert();\n undoInert = () => {\n };\n undoDisableScrolling();\n undoDisableScrolling = () => {\n };\n trap.deactivate({\n returnFocus: !modifiers.includes(\"noreturn\")\n });\n };\n effect(() => evaluator((value) => {\n if (oldValue === value)\n return;\n if (value && !oldValue) {\n if (modifiers.includes(\"noscroll\"))\n undoDisableScrolling = disableScrolling();\n setTimeout(() => {\n trap.activate();\n }, 15);\n }\n if (!value && oldValue) {\n releaseFocus();\n }\n oldValue = !!value;\n }));\n cleanup(releaseFocus);\n },\n // When cloning, we only want to add aria-hidden attributes to the\n // DOM and not try to actually trap, as trapping can mess with the\n // live DOM and isn't just isolated to the cloned DOM.\n (el, { expression, modifiers }, { evaluate }) => {\n if (modifiers.includes(\"inert\") && evaluate(expression))\n setInert(el);\n }\n ));\n}\nfunction setInert(el) {\n let undos = [];\n crawlSiblingsUp(el, (sibling) => {\n let cache = sibling.hasAttribute(\"aria-hidden\");\n sibling.setAttribute(\"aria-hidden\", \"true\");\n undos.push(() => cache || sibling.removeAttribute(\"aria-hidden\"));\n });\n return () => {\n while (undos.length)\n undos.pop()();\n };\n}\nfunction crawlSiblingsUp(el, callback) {\n if (el.isSameNode(document.body) || !el.parentNode)\n return;\n Array.from(el.parentNode.children).forEach((sibling) => {\n if (sibling.isSameNode(el)) {\n crawlSiblingsUp(el.parentNode, callback);\n } else {\n callback(sibling);\n }\n });\n}\nfunction disableScrolling() {\n let overflow = document.documentElement.style.overflow;\n let paddingRight = document.documentElement.style.paddingRight;\n let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n let scrollbarGutter = window.getComputedStyle(document.documentElement).scrollbarGutter;\n document.documentElement.style.overflow = \"hidden\";\n if (scrollbarGutter && scrollbarGutter !== \"auto\") {\n return () => {\n document.documentElement.style.overflow = overflow;\n };\n }\n document.documentElement.style.paddingRight = `${scrollbarWidth}px`;\n return () => {\n document.documentElement.style.overflow = overflow;\n document.documentElement.style.paddingRight = paddingRight;\n };\n}\n\n// packages/focus/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as focus\n};\n/*! Bundled license information:\n\ntabbable/dist/index.esm.js:\n (*!\n * tabbable 6.4.0\n * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n *)\n\nfocus-trap/dist/focus-trap.esm.js:\n (*!\n * focus-trap 8.0.0\n * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n *)\n (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *)\n*/\n", "// packages/persist/src/index.js\nfunction src_default(Alpine) {\n let persist = () => {\n let alias;\n let storage;\n try {\n storage = localStorage;\n } catch (e) {\n console.error(e);\n console.warn(\"Alpine: $persist is using temporary storage since localStorage is unavailable.\");\n let dummy = /* @__PURE__ */ new Map();\n storage = {\n getItem: dummy.get.bind(dummy),\n setItem: dummy.set.bind(dummy)\n };\n }\n return Alpine.interceptor((initialValue, getter, setter, path, key) => {\n let lookup = alias || `_x_${path}`;\n let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue;\n setter(initial);\n Alpine.effect(() => {\n let value = getter();\n storageSet(lookup, value, storage);\n setter(value);\n });\n return initial;\n }, (func) => {\n func.as = (key) => {\n alias = key;\n return func;\n }, func.using = (target) => {\n storage = target;\n return func;\n };\n });\n };\n Object.defineProperty(Alpine, \"$persist\", { get: () => persist() });\n Alpine.magic(\"persist\", persist);\n Alpine.persist = (key, { get, set }, storage = localStorage) => {\n let initial = storageHas(key, storage) ? storageGet(key, storage) : get();\n set(initial);\n Alpine.effect(() => {\n let value = get();\n storageSet(key, value, storage);\n set(value);\n });\n };\n}\nfunction storageHas(key, storage) {\n return storage.getItem(key) !== null;\n}\nfunction storageGet(key, storage) {\n let value = storage.getItem(key);\n if (value === void 0)\n return;\n return JSON.parse(value);\n}\nfunction storageSet(key, value, storage) {\n storage.setItem(key, JSON.stringify(value));\n}\n\n// packages/persist/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as persist\n};\n", "// packages/intersect/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"intersect\", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {\n let evaluate = evaluateLater(expression);\n let options = {\n rootMargin: getRootMargin(modifiers),\n threshold: getThreshold(modifiers)\n };\n let observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting === (value === \"leave\"))\n return;\n evaluate();\n modifiers.includes(\"once\") && observer.disconnect();\n });\n }, options);\n observer.observe(el);\n cleanup(() => {\n observer.disconnect();\n });\n }));\n}\nfunction getThreshold(modifiers) {\n if (modifiers.includes(\"full\"))\n return 0.99;\n if (modifiers.includes(\"half\"))\n return 0.5;\n if (!modifiers.includes(\"threshold\"))\n return 0;\n let threshold = modifiers[modifiers.indexOf(\"threshold\") + 1];\n if (threshold === \"100\")\n return 1;\n if (threshold === \"0\")\n return 0;\n return Number(`.${threshold}`);\n}\nfunction getLengthValue(rawValue) {\n let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);\n return match ? match[1] + (match[2] || \"px\") : void 0;\n}\nfunction getRootMargin(modifiers) {\n const key = \"margin\";\n const fallback = \"0px 0px 0px 0px\";\n const index = modifiers.indexOf(key);\n if (index === -1)\n return fallback;\n let values = [];\n for (let i = 1; i < 5; i++) {\n values.push(getLengthValue(modifiers[index + i] || \"\"));\n }\n values = values.filter((v) => v !== void 0);\n return values.length ? values.join(\" \").trim() : fallback;\n}\n\n// packages/intersect/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as intersect\n};\n", "// node_modules/sortablejs/modular/sortable.esm.js\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function(obj2) {\n return typeof obj2;\n };\n } else {\n _typeof = function(obj2) {\n return obj2 && typeof Symbol === \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n };\n }\n return _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null)\n return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0)\n continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null)\n return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0)\n continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key))\n continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nvar version = \"1.15.2\";\nfunction userAgent(pattern) {\n if (typeof window !== \"undefined\" && window.navigator) {\n return !!/* @__PURE__ */ navigator.userAgent.match(pattern);\n }\n}\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\nvar captureMode = {\n capture: false,\n passive: false\n};\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction matches(el, selector) {\n if (!selector)\n return;\n selector[0] === \">\" && (selector = selector.substring(1));\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n return false;\n}\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\nfunction closest(el, selector, ctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n do {\n if (selector != null && (selector[0] === \">\" ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n if (el === ctx)\n break;\n } while (el = getParentOrHost(el));\n }\n return null;\n}\nvar R_SPACE = /\\s+/g;\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? \"add\" : \"remove\"](name);\n } else {\n var className = (\" \" + el.className + \" \").replace(R_SPACE, \" \").replace(\" \" + name + \" \", \" \");\n el.className = (className + (state ? \" \" + name : \"\")).replace(R_SPACE, \" \");\n }\n }\n}\nfunction css(el, prop, val) {\n var style = el && el.style;\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, \"\");\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf(\"webkit\") === -1) {\n prop = \"-webkit-\" + prop;\n }\n style[prop] = val + (typeof val === \"string\" ? \"\" : \"px\");\n }\n }\n}\nfunction matrix(el, selfOnly) {\n var appliedTransforms = \"\";\n if (typeof el === \"string\") {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, \"transform\");\n if (transform && transform !== \"none\") {\n appliedTransforms = transform + \" \" + appliedTransforms;\n }\n } while (!selfOnly && (el = el.parentNode));\n }\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n return matrixFn && new matrixFn(appliedTransforms);\n}\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName), i = 0, n = list.length;\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n return list;\n }\n return [];\n}\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window)\n return;\n var elRect, top, left, bottom, right, height, width;\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n container = container || el.parentNode;\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, \"transform\") !== \"none\" || relativeToNonStaticParent && css(container, \"position\") !== \"static\")) {\n var containerRect = container.getBoundingClientRect();\n top -= containerRect.top + parseInt(css(container, \"border-top-width\"));\n left -= containerRect.left + parseInt(css(container, \"border-left-width\"));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n } while (container = container.parentNode);\n }\n }\n if (undoScale && el !== window) {\n var elMatrix = matrix(container || el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d;\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n return {\n top,\n left,\n bottom,\n right,\n width,\n height\n };\n}\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true), elSideVal = getRect(el)[elSide];\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide], visible = void 0;\n if (parentSide === \"top\" || parentSide === \"left\") {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n if (!visible)\n return parent;\n if (parent === getWindowScrollingElement())\n break;\n parent = getParentAutoScrollElement(parent, false);\n }\n return false;\n}\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0, i = 0, children = el.children;\n while (i < children.length) {\n if (children[i].style.display !== \"none\" && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n currentChild++;\n }\n i++;\n }\n return null;\n}\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n while (last && (last === Sortable.ghost || css(last, \"display\") === \"none\" || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n return last || null;\n}\nfunction index(el, selector) {\n var index2 = 0;\n if (!el || !el.parentNode) {\n return -1;\n }\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== \"TEMPLATE\" && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index2++;\n }\n }\n return index2;\n}\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0, offsetTop = 0, winScroller = getWindowScrollingElement();\n if (el) {\n do {\n var elMatrix = matrix(el), scaleX = elMatrix.a, scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n return [offsetLeft, offsetTop];\n}\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i))\n continue;\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key])\n return Number(i);\n }\n }\n return -1;\n}\nfunction getParentAutoScrollElement(el, includeSelf) {\n if (!el || !el.getBoundingClientRect)\n return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n do {\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == \"auto\" || elemCSS.overflowX == \"scroll\") || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == \"auto\" || elemCSS.overflowY == \"scroll\")) {\n if (!elem.getBoundingClientRect || elem === document.body)\n return getWindowScrollingElement();\n if (gotSelf || includeSelf)\n return elem;\n gotSelf = true;\n }\n }\n } while (elem = elem.parentNode);\n return getWindowScrollingElement();\n}\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n return dst;\n}\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\nvar _throttleTimeout;\nfunction throttle(callback, ms) {\n return function() {\n if (!_throttleTimeout) {\n var args = arguments, _this = this;\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n _throttleTimeout = setTimeout(function() {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\nfunction getChildContainingRectFromElement(container, options, ghostEl2) {\n var rect = {};\n Array.from(container.children).forEach(function(child) {\n var _rect$left, _rect$top, _rect$right, _rect$bottom;\n if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl2)\n return;\n var childRect = getRect(child);\n rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left);\n rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top);\n rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right);\n rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom);\n });\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\nvar expando = \"Sortable\" + new Date().getTime();\nfunction AnimationStateManager() {\n var animationStates = [], animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation)\n return;\n var children = [].slice.call(this.el.children);\n children.forEach(function(child) {\n if (css(child, \"display\") === \"none\" || child === Sortable.ghost)\n return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect);\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === \"function\")\n callback();\n return;\n }\n var animating = false, animationTime = 0;\n animationStates.forEach(function(state) {\n var time = 0, target = state.target, fromRect = target.fromRect, toRect = getRect(target), prevFromRect = target.prevFromRect, prevToRect = target.prevToRect, animatingRect = state.rect, targetMatrix = matrix(target, true);\n if (targetMatrix) {\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n target.toRect = toRect;\n if (target.thisAnimationDuration) {\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n }\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n if (!time) {\n time = _this.options.animation;\n }\n _this.animate(target, animatingRect, toRect, time);\n }\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function() {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n if (!animating) {\n if (typeof callback === \"function\")\n callback();\n } else {\n animationCallbackId = setTimeout(function() {\n if (typeof callback === \"function\")\n callback();\n }, animationTime);\n }\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, \"transition\", \"\");\n css(target, \"transform\", \"\");\n var elMatrix = matrix(this.el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d, translateX = (currentRect.left - toRect.left) / (scaleX || 1), translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, \"transform\", \"translate3d(\" + translateX + \"px,\" + translateY + \"px,0)\");\n this.forRepaintDummy = repaint(target);\n css(target, \"transition\", \"transform \" + duration + \"ms\" + (this.options.easing ? \" \" + this.options.easing : \"\"));\n css(target, \"transform\", \"translate3d(0,0,0)\");\n typeof target.animated === \"number\" && clearTimeout(target.animated);\n target.animated = setTimeout(function() {\n css(target, \"transition\", \"\");\n css(target, \"transform\", \"\");\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\nfunction repaint(target) {\n return target.offsetWidth;\n}\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n for (var option2 in defaults) {\n if (defaults.hasOwnProperty(option2) && !(option2 in plugin)) {\n plugin[option2] = defaults[option2];\n }\n }\n plugins.forEach(function(p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n this.eventCanceled = false;\n evt.cancel = function() {\n _this.eventCanceled = true;\n };\n var eventNameGlobal = eventName + \"Global\";\n plugins.forEach(function(plugin) {\n if (!sortable[plugin.pluginName])\n return;\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable\n }, evt));\n }\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults2, options) {\n plugins.forEach(function(plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault)\n return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized;\n _extends(defaults2, initialized.defaults);\n });\n for (var option2 in sortable.options) {\n if (!sortable.options.hasOwnProperty(option2))\n continue;\n var modified = this.modifyOption(sortable, option2, sortable.options[option2]);\n if (typeof modified !== \"undefined\") {\n sortable.options[option2] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function(plugin) {\n if (typeof plugin.eventProperties !== \"function\")\n return;\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function(plugin) {\n if (!sortable[plugin.pluginName])\n return;\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === \"function\") {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable, rootEl2 = _ref.rootEl, name = _ref.name, targetEl = _ref.targetEl, cloneEl2 = _ref.cloneEl, toEl = _ref.toEl, fromEl = _ref.fromEl, oldIndex2 = _ref.oldIndex, newIndex2 = _ref.newIndex, oldDraggableIndex2 = _ref.oldDraggableIndex, newDraggableIndex2 = _ref.newDraggableIndex, originalEvent = _ref.originalEvent, putSortable2 = _ref.putSortable, extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl2 && rootEl2[expando];\n if (!sortable)\n return;\n var evt, options = sortable.options, onName = \"on\" + name.charAt(0).toUpperCase() + name.substr(1);\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent(\"Event\");\n evt.initEvent(name, true, true);\n }\n evt.to = toEl || rootEl2;\n evt.from = fromEl || rootEl2;\n evt.item = targetEl || rootEl2;\n evt.clone = cloneEl2;\n evt.oldIndex = oldIndex2;\n evt.newIndex = newIndex2;\n evt.oldDraggableIndex = oldDraggableIndex2;\n evt.newDraggableIndex = newDraggableIndex2;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable2 ? putSortable2.lastPutMode : void 0;\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n for (var option2 in allEventProperties) {\n evt[option2] = allEventProperties[option2];\n }\n if (rootEl2) {\n rootEl2.dispatchEvent(evt);\n }\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\nvar _excluded = [\"evt\"];\nvar pluginEvent2 = function pluginEvent3(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, originalEvent = _ref.evt, data = _objectWithoutProperties(_ref, _excluded);\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n dragStarted: moved,\n putSortable,\n activeSortable: Sortable.active,\n originalEvent,\n oldIndex,\n oldDraggableIndex,\n newIndex,\n newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable,\n name,\n originalEvent\n });\n }\n }, data));\n};\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable,\n cloneEl,\n targetEl: dragEl,\n rootEl,\n oldIndex,\n oldDraggableIndex,\n newIndex,\n newDraggableIndex\n }, info));\n}\nvar dragEl;\nvar parentEl;\nvar ghostEl;\nvar rootEl;\nvar nextEl;\nvar lastDownEl;\nvar cloneEl;\nvar cloneHidden;\nvar oldIndex;\nvar newIndex;\nvar oldDraggableIndex;\nvar newDraggableIndex;\nvar activeGroup;\nvar putSortable;\nvar awaitingDragStarted = false;\nvar ignoreNextClick = false;\nvar sortables = [];\nvar tapEvt;\nvar touchEvt;\nvar lastDx;\nvar lastDy;\nvar tapDistanceLeft;\nvar tapDistanceTop;\nvar moved;\nvar lastTarget;\nvar lastDirection;\nvar pastFirstInvertThresh = false;\nvar isCircumstantialInvert = false;\nvar targetMoveDistance;\nvar ghostRelativeParent;\nvar ghostRelativeParentInitialScroll = [];\nvar _silent = false;\nvar savedInputChecked = [];\nvar documentExists = typeof document !== \"undefined\";\nvar PositionGhostAbsolutely = IOS;\nvar CSSFloatProperty = Edge || IE11OrLess ? \"cssFloat\" : \"float\";\nvar supportDraggable = documentExists && !ChromeForAndroid && !IOS && \"draggable\" in document.createElement(\"div\");\nvar supportCssPointerEvents = function() {\n if (!documentExists)\n return;\n if (IE11OrLess) {\n return false;\n }\n var el = document.createElement(\"x\");\n el.style.cssText = \"pointer-events:auto\";\n return el.style.pointerEvents === \"auto\";\n}();\nvar _detectDirection = function _detectDirection2(el, options) {\n var elCSS = css(el), elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth), child1 = getChild(el, 0, options), child2 = getChild(el, 1, options), firstChildCSS = child1 && css(child1), secondChildCSS = child2 && css(child2), firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width, secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n if (elCSS.display === \"flex\") {\n return elCSS.flexDirection === \"column\" || elCSS.flexDirection === \"column-reverse\" ? \"vertical\" : \"horizontal\";\n }\n if (elCSS.display === \"grid\") {\n return elCSS.gridTemplateColumns.split(\" \").length <= 1 ? \"vertical\" : \"horizontal\";\n }\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== \"none\") {\n var touchingSideChild2 = firstChildCSS[\"float\"] === \"left\" ? \"left\" : \"right\";\n return child2 && (secondChildCSS.clear === \"both\" || secondChildCSS.clear === touchingSideChild2) ? \"vertical\" : \"horizontal\";\n }\n return child1 && (firstChildCSS.display === \"block\" || firstChildCSS.display === \"flex\" || firstChildCSS.display === \"table\" || firstChildCSS.display === \"grid\" || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === \"none\" || child2 && elCSS[CSSFloatProperty] === \"none\" && firstChildWidth + secondChildWidth > elWidth) ? \"vertical\" : \"horizontal\";\n};\nvar _dragElInRowColumn = function _dragElInRowColumn2(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top, dragElS2Opp = vertical ? dragRect.right : dragRect.bottom, dragElOppLength = vertical ? dragRect.width : dragRect.height, targetS1Opp = vertical ? targetRect.left : targetRect.top, targetS2Opp = vertical ? targetRect.right : targetRect.bottom, targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n};\nvar _detectNearestEmptySortable = function _detectNearestEmptySortable2(x, y) {\n var ret;\n sortables.some(function(sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable))\n return;\n var rect = getRect(sortable), insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold, insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n};\nvar _prepareGroup = function _prepareGroup2(options) {\n function toFn(value, pull) {\n return function(to, from, dragEl2, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n if (value == null && (pull || sameGroup)) {\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === \"clone\") {\n return value;\n } else if (typeof value === \"function\") {\n return toFn(value(to, from, dragEl2, evt), pull)(to, from, dragEl2, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === \"string\" && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n var group = {};\n var originalGroup = options.group;\n if (!originalGroup || _typeof(originalGroup) != \"object\") {\n originalGroup = {\n name: originalGroup\n };\n }\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n};\nvar _hideGhostForTarget = function _hideGhostForTarget2() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, \"display\", \"none\");\n }\n};\nvar _unhideGhostForTarget = function _unhideGhostForTarget2() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, \"display\", \"\");\n }\n};\nif (documentExists && !ChromeForAndroid) {\n document.addEventListener(\"click\", function(evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent2(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n if (nearest) {\n var event = {};\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n nearest[expando]._onDragOver(event);\n }\n }\n};\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl2(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n this.el = el;\n this.options = options = _extends({}, options);\n el[expando] = this;\n var defaults2 = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? \">li\" : \">*\",\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: \"sortable-ghost\",\n chosenClass: \"sortable-chosen\",\n dragClass: \"sortable-drag\",\n ignore: \"a, img\",\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl2) {\n dataTransfer.setData(\"Text\", dragEl2.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: \"data-id\",\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: \"sortable-fallback\",\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && \"PointerEvent\" in window && !Safari,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults2);\n for (var name in defaults2) {\n !(name in options) && (options[name] = defaults2[name]);\n }\n _prepareGroup(options);\n for (var fn in this) {\n if (fn.charAt(0) === \"_\" && typeof this[fn] === \"function\") {\n this[fn] = this[fn].bind(this);\n }\n }\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n if (this.nativeDraggable) {\n this.options.touchStartThreshold = 1;\n }\n if (options.supportPointer) {\n on(el, \"pointerdown\", this._onTapStart);\n } else {\n on(el, \"mousedown\", this._onTapStart);\n on(el, \"touchstart\", this._onTapStart);\n }\n if (this.nativeDraggable) {\n on(el, \"dragover\", this);\n on(el, \"dragenter\", this);\n }\n sortables.push(this.el);\n options.store && options.store.get && this.sort(options.store.get(this) || []);\n _extends(this, AnimationStateManager());\n}\nSortable.prototype = /** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === \"function\" ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(evt) {\n if (!evt.cancelable)\n return;\n var _this = this, el = this.el, options = this.options, preventOnFilter = options.preventOnFilter, type = evt.type, touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === \"touch\" && evt, target = (touch || evt).target, originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target, filter = options.filter;\n _saveInputCheckedState(el);\n if (dragEl) {\n return;\n }\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return;\n }\n if (originalTarget.isContentEditable) {\n return;\n }\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === \"SELECT\") {\n return;\n }\n target = closest(target, options.draggable, el, false);\n if (target && target.animated) {\n return;\n }\n if (lastDownEl === target) {\n return;\n }\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable);\n if (typeof filter === \"function\") {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: \"filter\",\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n pluginEvent2(\"filter\", _this, {\n evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return;\n }\n } else if (filter) {\n filter = filter.split(\",\").some(function(criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: \"filter\",\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n pluginEvent2(\"filter\", _this, {\n evt\n });\n return true;\n }\n });\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return;\n }\n }\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n }\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(evt, touch, target) {\n var _this = this, el = _this.el, options = _this.options, ownerDocument = el.ownerDocument, dragStartFn;\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style[\"will-change\"] = \"all\";\n dragStartFn = function dragStartFn2() {\n pluginEvent2(\"delayEnded\", _this, {\n evt\n });\n if (Sortable.eventCanceled) {\n _this._onDrop();\n return;\n }\n _this._disableDelayedDragEvents();\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n }\n _this._triggerDragStart(evt, touch);\n _dispatchEvent({\n sortable: _this,\n name: \"choose\",\n originalEvent: evt\n });\n toggleClass(dragEl, options.chosenClass, true);\n };\n options.ignore.split(\",\").forEach(function(criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, \"dragover\", nearestEmptyInsertDetectEvent);\n on(ownerDocument, \"mousemove\", nearestEmptyInsertDetectEvent);\n on(ownerDocument, \"touchmove\", nearestEmptyInsertDetectEvent);\n on(ownerDocument, \"mouseup\", _this._onDrop);\n on(ownerDocument, \"touchend\", _this._onDrop);\n on(ownerDocument, \"touchcancel\", _this._onDrop);\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n pluginEvent2(\"delayStart\", this, {\n evt\n });\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n on(ownerDocument, \"mouseup\", _this._disableDelayedDrag);\n on(ownerDocument, \"touchend\", _this._disableDelayedDrag);\n on(ownerDocument, \"touchcancel\", _this._disableDelayedDrag);\n on(ownerDocument, \"mousemove\", _this._delayedDragTouchMoveHandler);\n on(ownerDocument, \"touchmove\", _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, \"pointermove\", _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(e) {\n var touch = e.touches ? e.touches[0] : e;\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, \"mouseup\", this._disableDelayedDrag);\n off(ownerDocument, \"touchend\", this._disableDelayedDrag);\n off(ownerDocument, \"touchcancel\", this._disableDelayedDrag);\n off(ownerDocument, \"mousemove\", this._delayedDragTouchMoveHandler);\n off(ownerDocument, \"touchmove\", this._delayedDragTouchMoveHandler);\n off(ownerDocument, \"pointermove\", this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(evt, touch) {\n touch = touch || evt.pointerType == \"touch\" && evt;\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, \"pointermove\", this._onTouchMove);\n } else if (touch) {\n on(document, \"touchmove\", this._onTouchMove);\n } else {\n on(document, \"mousemove\", this._onTouchMove);\n }\n } else {\n on(dragEl, \"dragend\", this);\n on(rootEl, \"dragstart\", this._onDragStart);\n }\n try {\n if (document.selection) {\n _nextTick(function() {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {\n }\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n awaitingDragStarted = false;\n if (rootEl && dragEl) {\n pluginEvent2(\"dragStarted\", this, {\n evt\n });\n if (this.nativeDraggable) {\n on(document, \"dragover\", _checkOutsideTargetEl);\n }\n var options = this.options;\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost();\n _dispatchEvent({\n sortable: this,\n name: \"start\",\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n _hideGhostForTarget();\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent)\n break;\n parent = target;\n }\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target,\n rootEl: parent\n });\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n target = parent;\n } while (parent = parent.parentNode);\n }\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(evt) {\n if (tapEvt) {\n var options = this.options, fallbackTolerance = options.fallbackTolerance, fallbackOffset = options.fallbackOffset, touch = evt.touches ? evt.touches[0] : evt, ghostMatrix = ghostEl && matrix(ghostEl, true), scaleX = ghostEl && ghostMatrix && ghostMatrix.a, scaleY = ghostEl && ghostMatrix && ghostMatrix.d, relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent), dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1), dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1);\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n this._onDragStart(evt, true);\n }\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, \"webkitTransform\", cssMatrix);\n css(ghostEl, \"mozTransform\", cssMatrix);\n css(ghostEl, \"msTransform\", cssMatrix);\n css(ghostEl, \"transform\", cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl, rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container), options = this.options;\n if (PositionGhostAbsolutely) {\n ghostRelativeParent = container;\n while (css(ghostRelativeParent, \"position\") === \"static\" && css(ghostRelativeParent, \"transform\") === \"none\" && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document)\n ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, \"transition\", \"\");\n css(ghostEl, \"transform\", \"\");\n css(ghostEl, \"box-sizing\", \"border-box\");\n css(ghostEl, \"margin\", 0);\n css(ghostEl, \"top\", rect.top);\n css(ghostEl, \"left\", rect.left);\n css(ghostEl, \"width\", rect.width);\n css(ghostEl, \"height\", rect.height);\n css(ghostEl, \"opacity\", \"0.8\");\n css(ghostEl, \"position\", PositionGhostAbsolutely ? \"absolute\" : \"fixed\");\n css(ghostEl, \"zIndex\", \"100000\");\n css(ghostEl, \"pointerEvents\", \"none\");\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl);\n css(ghostEl, \"transform-origin\", tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + \"% \" + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + \"%\");\n }\n },\n _onDragStart: function _onDragStart(evt, fallback) {\n var _this = this;\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent2(\"dragStart\", this, {\n evt\n });\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n pluginEvent2(\"setupClone\", this);\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.removeAttribute(\"id\");\n cloneEl.draggable = false;\n cloneEl.style[\"will-change\"] = \"\";\n this._hideClone();\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n }\n _this.cloneId = _nextTick(function() {\n pluginEvent2(\"clone\", _this);\n if (Sortable.eventCanceled)\n return;\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n _this._hideClone();\n _dispatchEvent({\n sortable: _this,\n name: \"clone\"\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true);\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n off(document, \"mouseup\", _this._onDrop);\n off(document, \"touchend\", _this._onDrop);\n off(document, \"touchcancel\", _this._onDrop);\n if (dataTransfer) {\n dataTransfer.effectAllowed = \"move\";\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n on(document, \"drop\", _this);\n css(dragEl, \"transform\", \"translateZ(0)\");\n }\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, \"selectstart\", _this);\n moved = true;\n if (Safari) {\n css(document.body, \"user-select\", \"none\");\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(evt) {\n var el = this.el, target = evt.target, dragRect, targetRect, revert, options = this.options, group = options.group, activeSortable = Sortable.active, isOwner = activeGroup === group, canSort = options.sort, fromSortable = putSortable || activeSortable, vertical, _this = this, completedFired = false;\n if (_silent)\n return;\n function dragOverEvent(name, extra) {\n pluginEvent2(name, _this, _objectSpread2({\n evt,\n isOwner,\n axis: vertical ? \"vertical\" : \"horizontal\",\n revert,\n dragRect,\n targetRect,\n canSort,\n fromSortable,\n target,\n completed,\n onMove: function onMove(target2, after2) {\n return _onMove(rootEl, el, dragEl, dragRect, target2, getRect(target2), evt, after2);\n },\n changed\n }, extra));\n }\n function capture() {\n dragOverEvent(\"dragOverAnimationCapture\");\n _this.captureAnimationState();\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n }\n function completed(insertion) {\n dragOverEvent(\"dragOverCompleted\", {\n insertion\n });\n if (insertion) {\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n if (_this !== fromSortable) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n }\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n _this.animateAll(function() {\n dragOverEvent(\"dragOverAnimationComplete\");\n _this._ignoreWhileAnimating = null;\n });\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n }\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n }\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n }\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n _dispatchEvent({\n sortable: _this,\n name: \"change\",\n toEl: el,\n newIndex,\n newDraggableIndex,\n originalEvent: evt\n });\n }\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n target = closest(target, options.draggable, el, true);\n dragOverEvent(\"dragOver\");\n if (Sortable.eventCanceled)\n return completedFired;\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n ignoreNextClick = false;\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === \"vertical\";\n dragRect = getRect(dragEl);\n dragOverEvent(\"dragOverValid\");\n if (Sortable.eventCanceled)\n return completedFired;\n if (revert) {\n parentEl = rootEl;\n capture();\n this._hideClone();\n dragOverEvent(\"revert\");\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n return completed(true);\n }\n var elLastChild = lastChild(el, options.draggable);\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n if (elLastChild === dragEl) {\n return completed(false);\n }\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n if (target) {\n targetRect = getRect(target);\n }\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n if (elLastChild && elLastChild.nextSibling) {\n el.insertBefore(dragEl, elLastChild.nextSibling);\n } else {\n el.appendChild(dragEl);\n }\n parentEl = el;\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n var firstChild = getChild(el, 0, options, true);\n if (firstChild === dragEl) {\n return completed(false);\n }\n target = firstChild;\n targetRect = getRect(target);\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el;\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0, targetBeforeFirstSwap, differentLevel = dragEl.parentNode !== el, differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical), side1 = vertical ? \"top\" : \"left\", scrolledPastTop = isScrolledPast(target, \"top\", \"top\") || isScrolledPast(dragEl, \"top\", \"top\"), scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n if (direction !== 0) {\n var dragIndex = index(dragEl);\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, \"display\") === \"none\" || sibling === ghostEl));\n }\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling, after = false;\n after = direction === 1;\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n }\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n parentEl = dragEl.parentNode;\n if (targetBeforeFirstSwap !== void 0 && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n changed();\n return completed(true);\n }\n }\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, \"mousemove\", this._onTouchMove);\n off(document, \"touchmove\", this._onTouchMove);\n off(document, \"pointermove\", this._onTouchMove);\n off(document, \"dragover\", nearestEmptyInsertDetectEvent);\n off(document, \"mousemove\", nearestEmptyInsertDetectEvent);\n off(document, \"touchmove\", nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, \"mouseup\", this._onDrop);\n off(ownerDocument, \"touchend\", this._onDrop);\n off(ownerDocument, \"pointerup\", this._onDrop);\n off(ownerDocument, \"touchcancel\", this._onDrop);\n off(document, \"selectstart\", this);\n },\n _onDrop: function _onDrop(evt) {\n var el = this.el, options = this.options;\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent2(\"drop\", this, {\n evt\n });\n parentEl = dragEl && dragEl.parentNode;\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n if (Sortable.eventCanceled) {\n this._nulling();\n return;\n }\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n _cancelNextTick(this.cloneId);\n _cancelNextTick(this._dragStartId);\n if (this.nativeDraggable) {\n off(document, \"drop\", this);\n off(el, \"dragstart\", this._onDragStart);\n }\n this._offMoveEvents();\n this._offUpEvents();\n if (Safari) {\n css(document.body, \"user-select\", \"\");\n }\n css(dragEl, \"transform\", \"\");\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== \"clone\") {\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, \"dragend\", this);\n }\n _disableDraggable(dragEl);\n dragEl.style[\"will-change\"] = \"\";\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n toggleClass(dragEl, this.options.chosenClass, false);\n _dispatchEvent({\n sortable: this,\n name: \"unchoose\",\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n _dispatchEvent({\n rootEl: parentEl,\n name: \"add\",\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: \"remove\",\n toEl: parentEl,\n originalEvent: evt\n });\n _dispatchEvent({\n rootEl: parentEl,\n name: \"sort\",\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: \"sort\",\n toEl: parentEl,\n originalEvent: evt\n });\n }\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n _dispatchEvent({\n sortable: this,\n name: \"update\",\n toEl: parentEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: \"sort\",\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n if (Sortable.active) {\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n _dispatchEvent({\n sortable: this,\n name: \"end\",\n toEl: parentEl,\n originalEvent: evt\n });\n this.save();\n }\n }\n }\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent2(\"nulling\", this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function(el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(evt) {\n switch (evt.type) {\n case \"drop\":\n case \"dragend\":\n this._onDrop(evt);\n break;\n case \"dragenter\":\n case \"dragover\":\n if (dragEl) {\n this._onDragOver(evt);\n _globalDragOver(evt);\n }\n break;\n case \"selectstart\":\n evt.preventDefault();\n break;\n }\n },\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [], el, children = this.el.children, i = 0, n = children.length, options = this.options;\n for (; i < n; i++) {\n el = children[i];\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n return order;\n },\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order, useAnimation) {\n var items = {}, rootEl2 = this.el;\n this.toArray().forEach(function(id, i) {\n var el = rootEl2.children[i];\n if (closest(el, this.options.draggable, rootEl2, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function(id) {\n if (items[id]) {\n rootEl2.removeChild(items[id]);\n rootEl2.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n if (typeof modifiedValue !== \"undefined\") {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n if (name === \"group\") {\n _prepareGroup(options);\n }\n }\n },\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent2(\"destroy\", this);\n var el = this.el;\n el[expando] = null;\n off(el, \"mousedown\", this._onTapStart);\n off(el, \"touchstart\", this._onTapStart);\n off(el, \"pointerdown\", this._onTapStart);\n if (this.nativeDraggable) {\n off(el, \"dragover\", this);\n off(el, \"dragenter\", this);\n }\n Array.prototype.forEach.call(el.querySelectorAll(\"[draggable]\"), function(el2) {\n el2.removeAttribute(\"draggable\");\n });\n this._onDrop();\n this._disableDelayedDragEvents();\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent2(\"hideClone\", this);\n if (Sortable.eventCanceled)\n return;\n css(cloneEl, \"display\", \"none\");\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable2) {\n if (putSortable2.lastPutMode !== \"clone\") {\n this._hideClone();\n return;\n }\n if (cloneHidden) {\n pluginEvent2(\"showClone\", this);\n if (Sortable.eventCanceled)\n return;\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n css(cloneEl, \"display\", \"\");\n cloneHidden = false;\n }\n }\n};\nfunction _globalDragOver(evt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = \"move\";\n }\n evt.cancelable && evt.preventDefault();\n}\nfunction _onMove(fromEl, toEl, dragEl2, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt, sortable = fromEl[expando], onMoveFn = sortable.options.onMove, retVal;\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(\"move\", {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent(\"Event\");\n evt.initEvent(\"move\", true, true);\n }\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl2;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n return retVal;\n}\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\nfunction _unsilent() {\n _silent = false;\n}\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left;\n}\nfunction _ghostIsLast(evt, vertical, sortable) {\n var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top;\n}\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX, targetLength = vertical ? targetRect.height : targetRect.width, targetS1 = vertical ? targetRect.top : targetRect.left, targetS2 = vertical ? targetRect.bottom : targetRect.right, invert = false;\n if (!invertSwap) {\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n pastFirstInvertThresh = true;\n }\n if (!pastFirstInvertThresh) {\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n invert = invert || invertSwap;\n if (invert) {\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n return 0;\n}\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent, i = str.length, sum = 0;\n while (i--) {\n sum += str.charCodeAt(i);\n }\n return sum.toString(36);\n}\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName(\"input\");\n var idx = inputs.length;\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n}\nif (documentExists) {\n on(document, \"touchmove\", function(evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n}\nSortable.utils = {\n on,\n off,\n css,\n find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend,\n throttle,\n closest,\n toggleClass,\n clone,\n index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild\n};\nSortable.get = function(element) {\n return element[expando];\n};\nSortable.mount = function() {\n for (var _len = arguments.length, plugins2 = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins2[_key] = arguments[_key];\n }\n if (plugins2[0].constructor === Array)\n plugins2 = plugins2[0];\n plugins2.forEach(function(plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n if (plugin.utils)\n Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\nSortable.create = function(el, options) {\n return new Sortable(el, options);\n};\nSortable.version = version;\nvar autoScrolls = [];\nvar scrollEl;\nvar scrollRootEl;\nvar scrolling = false;\nvar lastAutoScrollX;\nvar lastAutoScrollY;\nvar touchEvt$1;\nvar pointerElemChangedInterval;\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n };\n for (var fn in this) {\n if (fn.charAt(0) === \"_\" && typeof this[fn] === \"function\") {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n if (this.sortable.nativeDraggable) {\n on(document, \"dragover\", this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, \"pointermove\", this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, \"touchmove\", this._handleFallbackAutoScroll);\n } else {\n on(document, \"mousemove\", this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop3() {\n if (this.sortable.nativeDraggable) {\n off(document, \"dragover\", this._handleAutoScroll);\n } else {\n off(document, \"pointermove\", this._handleFallbackAutoScroll);\n off(document, \"touchmove\", this._handleFallbackAutoScroll);\n off(document, \"mousemove\", this._handleFallbackAutoScroll);\n }\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt;\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback);\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval();\n pointerElemChangedInterval = setInterval(function() {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: \"scroll\",\n initializeByDefault: true\n });\n}\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function(autoScroll2) {\n clearInterval(autoScroll2.pid);\n });\n autoScrolls = [];\n}\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\nvar autoScroll = throttle(function(evt, options, rootEl2, isFallback) {\n if (!options.scroll)\n return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, sens = options.scrollSensitivity, speed = options.scrollSpeed, winScroller = getWindowScrollingElement();\n var scrollThisInstance = false, scrollCustomFn;\n if (scrollRootEl !== rootEl2) {\n scrollRootEl = rootEl2;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl2, true);\n }\n }\n var layersOut = 0;\n var currentParent = scrollEl;\n do {\n var el = currentParent, rect = getRect(el), top = rect.top, bottom = rect.bottom, left = rect.left, right = rect.right, width = rect.width, height = rect.height, canScrollX = void 0, canScrollY = void 0, scrollWidth = el.scrollWidth, scrollHeight = el.scrollHeight, elCSS = css(el), scrollPosX = el.scrollLeft, scrollPosY = el.scrollTop;\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === \"auto\" || elCSS.overflowX === \"scroll\" || elCSS.overflowX === \"visible\");\n canScrollY = height < scrollHeight && (elCSS.overflowY === \"auto\" || elCSS.overflowY === \"scroll\" || elCSS.overflowY === \"visible\");\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === \"auto\" || elCSS.overflowX === \"scroll\");\n canScrollY = height < scrollHeight && (elCSS.overflowY === \"auto\" || elCSS.overflowY === \"scroll\");\n }\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n autoScrolls[layersOut].pid = setInterval(function() {\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1);\n }\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n if (typeof scrollCustomFn === \"function\") {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== \"continue\") {\n return;\n }\n }\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n scrolling = scrollThisInstance;\n}, 30);\nvar drop = function drop2(_ref) {\n var originalEvent = _ref.originalEvent, putSortable2 = _ref.putSortable, dragEl2 = _ref.dragEl, activeSortable = _ref.activeSortable, dispatchSortableEvent = _ref.dispatchSortableEvent, hideGhostForTarget = _ref.hideGhostForTarget, unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent)\n return;\n var toSortable = putSortable2 || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent(\"spill\");\n this.onSpill({\n dragEl: dragEl2,\n putSortable: putSortable2\n });\n }\n};\nfunction Revert() {\n}\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex2 = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex2;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl2 = _ref3.dragEl, putSortable2 = _ref3.putSortable;\n this.sortable.captureAnimationState();\n if (putSortable2) {\n putSortable2.captureAnimationState();\n }\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl2, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl2);\n }\n this.sortable.animateAll();\n if (putSortable2) {\n putSortable2.animateAll();\n }\n },\n drop\n};\n_extends(Revert, {\n pluginName: \"revertOnSpill\"\n});\nfunction Remove() {\n}\nRemove.prototype = {\n onSpill: function onSpill2(_ref4) {\n var dragEl2 = _ref4.dragEl, putSortable2 = _ref4.putSortable;\n var parentSortable = putSortable2 || this.sortable;\n parentSortable.captureAnimationState();\n dragEl2.parentNode && dragEl2.parentNode.removeChild(dragEl2);\n parentSortable.animateAll();\n },\n drop\n};\n_extends(Remove, {\n pluginName: \"removeOnSpill\"\n});\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\nvar sortable_esm_default = Sortable;\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/sort/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"sort\", (el, { value, modifiers, expression }, { effect, evaluate, cleanup }) => {\n if (value === \"config\") {\n return;\n }\n if (value === \"handle\") {\n return;\n }\n if (value === \"group\") {\n return;\n }\n if (value === \"key\" || value === \"item\") {\n if ([void 0, null, \"\"].includes(expression))\n return;\n el._x_sort_key = evaluate(expression);\n return;\n }\n let handleSelector = \"[x-sort\\\\:handle],[wire\\\\:sort\\\\:handle]\";\n let preferences = {\n hideGhost: !modifiers.includes(\"ghost\"),\n useHandles: !!el.querySelector(handleSelector) || Array.from(el.querySelectorAll(\"template:not(svg template)\")).some((tmpl) => tmpl.content?.querySelector(handleSelector)),\n group: getGroupName(el, modifiers)\n };\n let handleSort = generateSortHandler(expression, evaluate);\n let config = getConfigurationOverrides(el, modifiers, evaluate);\n let sortable = initSortable(el, config, preferences, (key, position) => {\n handleSort(key, position);\n });\n cleanup(() => sortable.destroy());\n });\n}\nfunction generateSortHandler(expression, evaluate) {\n if ([void 0, null, \"\"].includes(expression))\n return () => {\n };\n return (key, position) => {\n evaluate(expression, { scope: {\n // Supporting both `$item` AND `$key` ($key for BC)...\n $key: key,\n $item: key,\n $position: position\n }, params: [\n key,\n position\n ] });\n };\n}\nfunction getConfigurationOverrides(el, modifiers, evaluate) {\n if (el.hasAttribute(\"x-sort:config\")) {\n return evaluate(el.getAttribute(\"x-sort:config\"));\n }\n if (el.hasAttribute(\"wire:sort:config\")) {\n return evaluate(el.getAttribute(\"wire:sort:config\"));\n }\n return {};\n}\nfunction initSortable(el, config, preferences, handle) {\n let ghostRef;\n let options = {\n animation: 150,\n handle: preferences.useHandles ? \"[x-sort\\\\:handle],[wire\\\\:sort\\\\:handle]\" : null,\n group: preferences.group,\n scroll: true,\n forceAutoScrollFallback: true,\n scrollSensitivity: 50,\n // This is here so that if a div containing inputs or buttons has x-sort:ignore, it will not prevent interaction...\n preventOnFilter: false,\n filter(e) {\n if (e.target.hasAttribute(\"x-sort:ignore\") || e.target.hasAttribute(\"wire:sort:ignore\"))\n return true;\n if (e.target.closest(\"[x-sort\\\\:ignore]\") || e.target.closest(\"[wire\\\\:sort\\\\:ignore]\"))\n return true;\n if (!el.querySelector(\"[x-sort\\\\:item],[wire\\\\:sort\\\\:item]\"))\n return false;\n let itemHasAttribute = e.target.closest(\"[x-sort\\\\:item],[wire\\\\:sort\\\\:item]\");\n return itemHasAttribute ? false : true;\n },\n onSort(e) {\n if (e.from !== e.to) {\n if (e.to !== e.target) {\n return;\n }\n }\n let key = void 0;\n walk(e.item, (el2, skip) => {\n if (key !== void 0)\n return;\n if (el2._x_sort_key) {\n key = el2._x_sort_key;\n skip();\n }\n });\n let position = e.newIndex;\n if (key !== void 0 || key !== null) {\n handle(key, position);\n }\n },\n onStart() {\n document.body.classList.add(\"sorting\");\n ghostRef = document.querySelector(\".sortable-ghost\");\n if (preferences.hideGhost && ghostRef)\n ghostRef.style.opacity = \"0\";\n },\n onEnd() {\n document.body.classList.remove(\"sorting\");\n if (preferences.hideGhost && ghostRef)\n ghostRef.style.opacity = \"1\";\n ghostRef = void 0;\n keepElementsWithinMorphMarkers(el);\n }\n };\n return new sortable_esm_default(el, { ...options, ...config });\n}\nfunction keepElementsWithinMorphMarkers(el) {\n let cursor = el.firstChild;\n while (cursor.nextSibling) {\n if (cursor.textContent.trim() === \"[if ENDBLOCK]><![endif]\") {\n el.append(cursor);\n break;\n }\n cursor = cursor.nextSibling;\n }\n}\nfunction getGroupName(el, modifiers) {\n if (el.hasAttribute(\"x-sort:group\")) {\n return el.getAttribute(\"x-sort:group\");\n }\n if (el.hasAttribute(\"wire:sort:group\")) {\n return el.getAttribute(\"wire:sort:group\");\n }\n return modifiers.indexOf(\"group\") !== -1 ? modifiers[modifiers.indexOf(\"group\") + 1] : null;\n}\n\n// packages/sort/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as sort\n};\n/*! Bundled license information:\n\nsortablejs/modular/sortable.esm.js:\n (**!\n * Sortable 1.15.2\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n *)\n*/\n", "// packages/resize/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"resize\", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {\n let evaluator = evaluateLater(expression);\n let evaluate = (width, height) => {\n evaluator(() => {\n }, { scope: { \"$width\": width, \"$height\": height } });\n };\n let off = modifiers.includes(\"document\") ? onDocumentResize(evaluate) : onElResize(el, evaluate);\n cleanup(() => off());\n }));\n}\nfunction onElResize(el, callback) {\n let observer = new ResizeObserver((entries) => {\n let [width, height] = dimensions(entries);\n callback(width, height);\n });\n observer.observe(el);\n return () => observer.disconnect();\n}\nvar documentResizeObserver;\nvar documentResizeObserverCallbacks = /* @__PURE__ */ new Set();\nfunction onDocumentResize(callback) {\n documentResizeObserverCallbacks.add(callback);\n if (!documentResizeObserver) {\n documentResizeObserver = new ResizeObserver((entries) => {\n let [width, height] = dimensions(entries);\n documentResizeObserverCallbacks.forEach((i) => i(width, height));\n });\n documentResizeObserver.observe(document.documentElement);\n }\n return () => {\n documentResizeObserverCallbacks.delete(callback);\n };\n}\nfunction dimensions(entries) {\n let width, height;\n for (let entry of entries) {\n width = entry.borderBoxSize[0].inlineSize;\n height = entry.borderBoxSize[0].blockSize;\n }\n return [width, height];\n}\n\n// packages/resize/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as resize\n};\n", "// node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\nvar min = Math.min;\nvar max = Math.max;\nvar round = Math.round;\nvar floor = Math.floor;\nvar createCoords = (v) => ({\n x: v,\n y: v\n});\nvar oppositeSideMap = {\n left: \"right\",\n right: \"left\",\n bottom: \"top\",\n top: \"bottom\"\n};\nvar oppositeAlignmentMap = {\n start: \"end\",\n end: \"start\"\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === \"function\" ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split(\"-\")[0];\n}\nfunction getAlignment(placement) {\n return placement.split(\"-\")[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === \"x\" ? \"y\" : \"x\";\n}\nfunction getAxisLength(axis) {\n return axis === \"y\" ? \"height\" : \"width\";\n}\nfunction getSideAxis(placement) {\n return [\"top\", \"bottom\"].includes(getSide(placement)) ? \"y\" : \"x\";\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === \"x\" ? alignment === (rtl ? \"end\" : \"start\") ? \"right\" : \"left\" : alignment === \"start\" ? \"bottom\" : \"top\";\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = [\"left\", \"right\"];\n const rl = [\"right\", \"left\"];\n const tb = [\"top\", \"bottom\"];\n const bt = [\"bottom\", \"top\"];\n switch (side) {\n case \"top\":\n case \"bottom\":\n if (rtl)\n return isStart ? rl : lr;\n return isStart ? lr : rl;\n case \"left\":\n case \"right\":\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === \"start\", rtl);\n if (alignment) {\n list = list.map((side) => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== \"number\" ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n// node_modules/@floating-ui/core/dist/floating-ui.core.mjs\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === \"y\";\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case \"top\":\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case \"bottom\":\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case \"right\":\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case \"left\":\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case \"start\":\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case \"end\":\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\nvar computePosition = async (reference, floating, config) => {\n const {\n placement = \"bottom\",\n strategy = \"absolute\",\n middleware = [],\n platform: platform2\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));\n let rects = await platform2.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platform2,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === \"object\") {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform2.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform: platform2,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = \"clippingAncestors\",\n rootBoundary = \"viewport\",\n elementContext = \"floating\",\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === \"floating\" ? \"reference\" : \"floating\";\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform2.getClippingRect({\n element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === \"floating\" ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));\n const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\nvar flip = function(options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: \"flip\",\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform: platform2,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = \"bestFit\",\n fallbackAxisSideDirection = \"none\",\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== \"none\") {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements2 = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides2 = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides2[0]], overflow[sides2[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n if (!overflows.every((side2) => side2 <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements2[nextIndex];\n if (nextPlacement) {\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case \"bestFit\": {\n var _overflowsData$map$so;\n const placement2 = (_overflowsData$map$so = overflowsData.map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement2) {\n resetPlacement = placement2;\n }\n break;\n }\n case \"initialPlacement\":\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform: platform2,\n elements\n } = state;\n const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === \"y\";\n const mainAxisMulti = [\"left\", \"top\"].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === \"number\" ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === \"number\") {\n crossAxis = alignment === \"end\" ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\nvar offset = function(options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: \"offset\",\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\nvar shift = function(options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: \"shift\",\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: (_ref) => {\n let {\n x: x2,\n y: y2\n } = _ref;\n return {\n x: x2,\n y: y2\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === \"y\" ? \"top\" : \"left\";\n const maxSide = mainAxis === \"y\" ? \"bottom\" : \"right\";\n const min2 = mainAxisCoord + overflow[minSide];\n const max2 = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min2, mainAxisCoord, max2);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === \"y\" ? \"top\" : \"left\";\n const maxSide = crossAxis === \"y\" ? \"bottom\" : \"right\";\n const min2 = crossAxisCoord + overflow[minSide];\n const max2 = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min2, crossAxisCoord, max2);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n\n// node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || \"\").toLowerCase();\n }\n return \"#document\";\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (typeof ShadowRoot === \"undefined\") {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && ![\"inline\", \"contents\"].includes(display);\n}\nfunction isTableElement(element) {\n return [\"table\", \"td\", \"th\"].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n return css.transform !== \"none\" || css.perspective !== \"none\" || (css.containerType ? css.containerType !== \"normal\" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== \"none\" : false) || !webkit && (css.filter ? css.filter !== \"none\" : false) || [\"transform\", \"perspective\", \"filter\"].some((value) => (css.willChange || \"\").includes(value)) || [\"paint\", \"layout\", \"strict\", \"content\"].some((value) => (css.contain || \"\").includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === \"undefined\" || !CSS.supports)\n return false;\n return CSS.supports(\"-webkit-backdrop-filter\", \"none\");\n}\nfunction isLastTraversableNode(node) {\n return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === \"html\") {\n return node;\n }\n const result = (\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot || // DOM Element detected.\n node.parentNode || // ShadowRoot detected.\n isShadowRoot(node) && node.host || // Fallback.\n getDocumentElement(node)\n );\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\n// node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\nvar noOffsets = /* @__PURE__ */ createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== \"fixed\") {\n if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\nfunction getWindowScrollBarX(element) {\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === \"rtl\") {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === \"fixed\") {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === \"fixed\");\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === \"viewport\") {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === \"document\") {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === \"fixed\" || hasFixedPositionAncestor(parentNode, stopNode);\n}\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== \"body\");\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === \"fixed\";\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === \"fixed\") {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === \"static\" && !!currentContainingBlockComputedStyle && [\"absolute\", \"fixed\"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n result = result.filter((ancestor) => ancestor !== currentNode);\n } else {\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === \"clippingAncestors\" ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === \"fixed\";\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === \"fixed\") {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getOffsetParent(element, polyfill) {\n const window2 = getWindow(element);\n if (!isHTMLElement(element)) {\n return window2;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === \"static\") {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === \"html\" || getNodeName(offsetParent) === \"body\" && getComputedStyle(offsetParent).position === \"static\" && !isContainingBlock(offsetParent))) {\n return window2;\n }\n return offsetParent || getContainingBlock(element) || window2;\n}\nvar getElementRects = async function(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...await getDimensionsFn(floating)\n }\n };\n};\nfunction isRTL(element) {\n return getComputedStyle(element).direction === \"rtl\";\n}\nvar platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === \"function\",\n layoutShift = typeof IntersectionObserver === \"function\",\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];\n ancestors.forEach((ancestor) => {\n ancestorScroll && ancestor.addEventListener(\"scroll\", update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener(\"resize\", update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver((_ref) => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach((ancestor) => {\n ancestorScroll && ancestor.removeEventListener(\"scroll\", update);\n ancestorResize && ancestor.removeEventListener(\"resize\", update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\nvar computePosition2 = (reference, floating, options) => {\n const cache = /* @__PURE__ */ new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\n// packages/anchor/src/index.js\nfunction src_default(Alpine) {\n Alpine.magic(\"anchor\", (el) => {\n if (!el._x_anchor)\n throw \"Alpine: No x-anchor directive found on element using $anchor...\";\n return el._x_anchor;\n });\n Alpine.interceptClone((from, to) => {\n if (from && from._x_anchor && !to._x_anchor) {\n to._x_anchor = from._x_anchor;\n }\n });\n Alpine.directive(\"anchor\", Alpine.skipDuringClone(\n (el, { expression, modifiers, value }, { evaluate: evaluate2, effect, cleanup }) => {\n let { placement, offsetValue, unstyled, strategy, allowFlip } = getOptions(modifiers);\n el._x_anchor = Alpine.reactive({ x: 0, y: 0 });\n let previousReference = null;\n let release = null;\n effect(() => {\n let reference = evaluate2(expression);\n if (!reference)\n return;\n if (previousReference !== reference) {\n if (release)\n release();\n previousReference = reference;\n let compute = () => {\n let previousValue;\n computePosition2(reference, el, {\n placement,\n strategy,\n middleware: [allowFlip && flip(), shift({ padding: 5 }), offset(offsetValue)]\n }).then(({ x, y }) => {\n unstyled || setStyles(el, x, y, strategy);\n if (JSON.stringify({ x, y }) !== previousValue) {\n el._x_anchor.x = x;\n el._x_anchor.y = y;\n }\n previousValue = JSON.stringify({ x, y });\n });\n };\n release = autoUpdate(reference, el, () => compute());\n }\n });\n cleanup(() => {\n if (release)\n release();\n });\n },\n // When cloning (or \"morphing\"), we will graft the style and position data from the live tree...\n (el, { expression, modifiers, value }, { cleanup, evaluate: evaluate2 }) => {\n let { placement, offsetValue, unstyled, strategy } = getOptions(modifiers);\n if (el._x_anchor) {\n unstyled || setStyles(el, el._x_anchor.x, el._x_anchor.y, strategy);\n }\n }\n ));\n}\nfunction setStyles(el, x, y, strategy = \"absolute\") {\n Object.assign(el.style, {\n left: x + \"px\",\n top: y + \"px\",\n position: strategy\n });\n}\nfunction getOptions(modifiers) {\n let positions = [\"top\", \"top-start\", \"top-end\", \"right\", \"right-start\", \"right-end\", \"bottom\", \"bottom-start\", \"bottom-end\", \"left\", \"left-start\", \"left-end\"];\n let placement = positions.find((i) => modifiers.includes(i));\n let offsetValue = 0;\n if (modifiers.includes(\"offset\")) {\n let idx = modifiers.findIndex((i) => i === \"offset\");\n offsetValue = modifiers[idx + 1] !== void 0 ? Number(modifiers[idx + 1]) : offsetValue;\n }\n let unstyled = modifiers.includes(\"no-style\");\n let allowFlip = !modifiers.includes(\"noflip\");\n let strategy = modifiers.includes(\"fixed\") ? \"fixed\" : \"absolute\";\n return { placement, offsetValue, unstyled, strategy, allowFlip };\n}\n\n// packages/anchor/builds/module.js\nvar module_default = src_default;\nexport {\n src_default as anchor,\n module_default as default\n};\n", "export function unwrap(object) {\n if (object === undefined) return undefined\n\n return JSON.parse(JSON.stringify(object))\n}\n\nexport function batch(callback) {\n let batch = {\n queued: false,\n updates: {},\n add(updates) {\n Object.assign(batch.updates, updates)\n\n if (batch.queued) return\n\n batch.queued = true\n\n queueMicrotask(batch.flush)\n },\n\n flush() {\n if (Object.keys(batch.updates).length) {\n callback(batch.updates)\n }\n\n batch.queued = false\n batch.updates = {}\n },\n }\n\n return batch\n}\n", "import { batch, unwrap } from \"./utils\"\n\nclass HistoryCoordinator {\n constructor() {\n this.url = null\n this.errorHandlers = {}\n\n this.batch = batch((updates) => {\n let url = this.getUrl()\n\n this.writeToHistory('replaceState', url, (state) => {\n // Only update state.alpine as we are merging...\n state.alpine = { ...state.alpine, ...unwrap(updates) }\n\n return state\n })\n\n this.url = null\n })\n }\n\n addErrorHandler(key, callback) {\n this.errorHandlers[key] = callback\n }\n\n getUrl() {\n // If the querystring has started changing the URL before the batch has been flushed, use the URL that was passed in...\n if (this.url) {\n // Always pick up the current hash from the browser, since Livewire only manages query strings\n // and the hash may have been changed externally (e.g. during Alpine init)...\n if (this.url instanceof URL) this.url.hash = window.location.hash\n return this.url\n }\n\n return new URL(window.location.href)\n }\n\n replaceState(url, updates) {\n this.url = url\n this.batch.add(updates)\n }\n\n pushState(url, updates) {\n // Flush any pending replaces first...\n this.batch.flush()\n\n this.writeToHistory('pushState', url, (state) => {\n // Replace the entire state as we are pushing...\n state = { alpine: { ...state.alpine, ...unwrap(updates) } }\n\n return state\n })\n }\n\n writeToHistory(method, url, callback) {\n let state = window.history.state || {}\n if (!state.alpine) state.alpine = {}\n\n // Process the state using the callback...\n state = callback(state)\n\n try {\n // 640k character limit:\n window.history[method](state, '', url.toString())\n } catch (error) {\n Object.values(this.errorHandlers).forEach(\n handler => typeof handler === 'function' && handler(error, url)\n )\n\n // Remove error handlers after processing as they could be different depending on what is calling the method...\n this.errorHandlers = {}\n\n console.error(error)\n }\n }\n}\n\nlet historyCoordinator = new HistoryCoordinator()\n\nexport default historyCoordinator\n", "import historyCoordinator from \"@/plugins/history/coordinator\"\n\nclass Snapshot {\n constructor(url, html) {\n this.url = url\n this.html = html\n }\n}\n\nlet snapshotCache = {\n currentKey: null,\n currentUrl: null,\n keys: [],\n lookup: {},\n\n limit: 10,\n\n has(location) {\n return this.lookup[location] !== undefined\n },\n\n retrieve(location) {\n let snapshot = this.lookup[location]\n\n if (snapshot === undefined)\n throw (\n 'No back button cache found for current location: ' +\n location\n )\n\n return snapshot\n },\n\n replace(key, snapshot) {\n if (this.has(key)) {\n this.lookup[key] = snapshot\n } else {\n this.push(key, snapshot)\n }\n },\n\n push(key, snapshot) {\n this.lookup[key] = snapshot\n\n let index = this.keys.indexOf(key)\n\n if (index > -1) this.keys.splice(index, 1)\n\n this.keys.unshift(key)\n\n this.trim()\n },\n\n trim() {\n for (let key of this.keys.splice(this.limit)) {\n delete this.lookup[key]\n }\n }\n}\n\nlet currentPageStatus = null\n\nexport function storeCurrentPageStatus(status) {\n currentPageStatus = status\n}\n\nexport function updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks() {\n // Get the URL with all querystring changes...\n let url = historyCoordinator.getUrl()\n \n // Create a history state entry for the initial page load.\n // (This is so later hitting back can restore this page).\n replaceUrl(url, document.documentElement.outerHTML)\n}\n\nexport function updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(key, url) {\n let html = document.documentElement.outerHTML\n\n snapshotCache.replace(key, new Snapshot(url, html))\n}\n\nexport function whenTheBackOrForwardButtonIsClicked(\n registerFallback,\n handleHtml\n) {\n let fallback\n\n registerFallback(i => (fallback = i))\n\n window.addEventListener('popstate', e => {\n let state = e.state || {}\n\n let alpine = state.alpine || {}\n\n // If the current page is not a 2xx status code, then we want to force a full page refresh to ensure that the error page assets aren't kept in the DOM...\n if (currentPageStatus && (currentPageStatus < 200 || currentPageStatus >= 300)) {\n return window.location.href = alpine.url\n }\n\n // If state is an empty object, then the popstate has probably been triggered\n // by anchor tags `#my-heading`, so we don't want to handle them.\n if (Object.keys(state).length === 0) return\n\n if (! alpine.snapshotIdx) return\n\n if (snapshotCache.has(alpine.snapshotIdx)) {\n let snapshot = snapshotCache.retrieve(alpine.snapshotIdx)\n\n handleHtml(snapshot.html, snapshot.url, snapshotCache.currentUrl, snapshotCache.currentKey)\n\n snapshotCache.currentKey = alpine.snapshotIdx\n snapshotCache.currentUrl = snapshot.url\n } else {\n snapshotCache.currentKey = null\n snapshotCache.currentUrl = null\n\n fallback(alpine.url)\n }\n })\n}\n\nexport function updateUrlAndStoreLatestHtmlForFutureBackButtons(\n html,\n destination\n) {\n pushUrl(destination, html)\n}\n\nexport function pushUrl(url, html) {\n updateUrl('pushState', url, html)\n}\n\nexport function replaceUrl(url, html) {\n updateUrl('replaceState', url, html)\n}\n\nfunction updateUrl(method, url, html) {\n let key = url.toString() + '-' + Math.random()\n\n method === 'pushState'\n ? snapshotCache.push(key, new Snapshot(url, html))\n : snapshotCache.replace(key = (snapshotCache.currentKey ?? key), new Snapshot(url, html))\n\n historyCoordinator.addErrorHandler('navigate', error => {\n if (error instanceof DOMException && error.name === 'SecurityError') {\n console.error(\n \"Livewire: You can't use wire:navigate with a link to a different root domain: \" +\n url\n )\n }\n })\n\n historyCoordinator[method](url, { snapshotIdx: key, url: url.toString() })\n\n snapshotCache.currentKey = key\n snapshotCache.currentUrl = url\n}\n", "\nexport function whenThisLinkIsPressed(el, callback) {\n let isProgrammaticClick = e => ! e.isTrusted\n let isNotPlainLeftClick = e => (e.which > 1) || (e.altKey) || (e.ctrlKey) || (e.metaKey) || (e.shiftKey)\n let isNotPlainEnterKey = (e) => (e.which !== 13) || (e.altKey) || (e.ctrlKey) || (e.metaKey) || (e.shiftKey)\n\n el.addEventListener('click', e => {\n // This allows programmatic clicking of links via: `$0.click()`...\n if (isProgrammaticClick(e)) {\n e.preventDefault()\n\n callback(whenReleased => whenReleased())\n\n return\n }\n\n // This allows cmd+click and such to still work as expected...\n if (isNotPlainLeftClick(e)) return;\n\n // If it's a plain left click, we want to prevent \"click\" and let \"mouseup\" do its thing...\n e.preventDefault()\n })\n\n el.addEventListener('mousedown', e => {\n // We only care about left clicks for wire:navigate...\n if (isNotPlainLeftClick(e)) return;\n\n e.preventDefault()\n\n callback((whenReleased) => {\n let handler = e => {\n e.preventDefault()\n\n requestAnimationFrame(() => {\n whenReleased()\n })\n\n el.removeEventListener('mouseup', handler)\n }\n\n el.addEventListener('mouseup', handler)\n })\n })\n\n el.addEventListener(\"keydown\", e => {\n // We only care about the enter key...\n if (isNotPlainEnterKey(e)) return;\n\n e.preventDefault()\n\n callback(whenReleased => whenReleased())\n })\n}\n\nexport function whenThisLinkIsHoveredFor(el, ms = 60, callback) {\n el.addEventListener('mouseenter', e => {\n let timeout = setTimeout(() => {\n callback(e)\n }, ms)\n\n let handler = () => {\n clearTimeout(timeout)\n el.removeEventListener('mouseleave', handler)\n }\n\n el.addEventListener('mouseleave', handler)\n })\n}\n\nexport function extractDestinationFromLink(linkEl) {\n return createUrlObjectFromString(linkEl.getAttribute('href'))\n}\n\nexport function createUrlObjectFromString(urlString) {\n return urlString !== null && new URL(urlString, document.baseURI)\n}\n\nexport function getUriStringFromUrlObject(urlObject) {\n return urlObject.pathname + urlObject.search + urlObject.hash\n}\n", "import { getUriStringFromUrlObject } from \"./links\"\nimport { sendNavigateRequest } from \"@/request\"\nimport { storeCurrentPageStatus } from \"./history\"\n\nexport function fetchHtml(destination, callback, errorCallback) {\n let uri = getUriStringFromUrlObject(destination)\n\n performFetch(uri, (html, finalDestination, status) => {\n storeCurrentPageStatus(status)\n\n callback(html, finalDestination)\n }, errorCallback)\n}\n\nexport function performFetch(uri, callback, errorCallback) {\n sendNavigateRequest(uri, callback, errorCallback)\n}\n", "import { performFetch } from \"@/plugins/navigate/fetch\";\nimport { getUriStringFromUrlObject } from \"./links\";\nimport { storeCurrentPageStatus } from \"./history\";\n\n// Warning: this could cause some memory leaks\nlet prefetches = {}\n\n// Default prefetch cache duration is 30 seconds...\nlet cacheDuration = 30000\n\nexport function prefetchHtml(destination, callback, errorCallback) {\n let uri = getUriStringFromUrlObject(destination)\n\n if (prefetches[uri]) return\n\n prefetches[uri] = { finished: false, html: null, whenFinished: () => setTimeout(() => delete prefetches[uri], cacheDuration) }\n\n performFetch(uri, (html, routedUri, status) => {\n storeCurrentPageStatus(status)\n\n callback(html, routedUri)\n }, () => {\n // If the fetch failed, remove the prefetch so it gets attempted again...\n delete prefetches[uri]\n\n errorCallback()\n })\n}\n\nexport function storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination) {\n let state = prefetches[getUriStringFromUrlObject(destination)]\n state.html = html\n state.finished = true\n state.finalDestination = finalDestination\n state.whenFinished()\n}\n\nexport function getPretchedHtmlOr(destination, receive, ifNoPrefetchExists) {\n let uri = getUriStringFromUrlObject(destination)\n\n if (! prefetches[uri]) return ifNoPrefetchExists()\n\n if (prefetches[uri].finished) {\n let html = prefetches[uri].html\n let finalDestination = prefetches[uri].finalDestination\n\n delete prefetches[uri]\n\n return receive(html, finalDestination)\n } else {\n prefetches[uri].whenFinished = () => {\n let html = prefetches[uri].html\n let finalDestination = prefetches[uri].finalDestination\n\n delete prefetches[uri]\n\n receive(html, finalDestination)\n }\n }\n}\n\n", "import Alpine from \"alpinejs\"\n\nexport function packUpPersistedTeleports(persistedEl) {\n // Persisted elements get removed from the DOM and then re-added later. We need to do the same\n // with any `x-teleport`ed elements...\n Alpine.mutateDom(() => {\n persistedEl.querySelectorAll('[data-teleport-template]').forEach(i => i._x_teleport.remove())\n })\n}\n\nexport function removeAnyLeftOverStaleTeleportTargets(body) {\n // We need to remove any left-over teleported elements form the page\n // as they are stale and will be re-initialized when Alpine boots up on this page...\n Alpine.mutateDom(() => {\n body.querySelectorAll('[data-teleport-target]').forEach(i => i.remove())\n })\n}\n\nexport function unPackPersistedTeleports(persistedEl) {\n // Before we put back any persisted elements, we're going to\n // find any \"x-teleports\" and put their targets back on the page...\n Alpine.walk(persistedEl, (el, skip) => {\n if (! el._x_teleport) return;\n\n el._x_teleportPutBack()\n\n skip()\n })\n}\n\nexport function isTeleportTarget(el) {\n return el.hasAttribute('data-teleport-target')\n}\n", "\nexport function storeScrollInformationInHtmlBeforeNavigatingAway() {\n document.body.setAttribute('data-scroll-x', document.body.scrollLeft)\n document.body.setAttribute('data-scroll-y', document.body.scrollTop)\n\n document.querySelectorAll(['[x-navigate\\\\:scroll]', '[wire\\\\:navigate\\\\:scroll]']).forEach(el => {\n el.setAttribute('data-scroll-x', el.scrollLeft)\n el.setAttribute('data-scroll-y', el.scrollTop)\n })\n}\n\nexport function restoreScrollPositionOrScrollToTop() {\n let scroll = el => {\n if (! el.hasAttribute('data-scroll-x')) {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' })\n } else {\n el.scrollTo({\n top: Number(el.getAttribute('data-scroll-y')),\n left: Number(el.getAttribute('data-scroll-x')),\n behavior: 'instant',\n })\n el.removeAttribute('data-scroll-x')\n el.removeAttribute('data-scroll-y')\n }\n }\n\n queueMicrotask(() => {\n queueMicrotask(() => { // Double microtask here to make sure scrolling restoration is the LAST thing to happen. (Even after Alpine's x-init functions)...\n scroll(document.body)\n\n document.querySelectorAll(['[x-navigate\\\\:scroll]', '[wire\\\\:navigate\\\\:scroll]']).forEach(scroll)\n })\n })\n}\n", "import Alpine from 'alpinejs'\n\nlet els = {}\n\nexport function storePersistantElementsForLater(callback) {\n els = {}\n\n document.querySelectorAll('[x-persist]').forEach(i => {\n els[i.getAttribute('x-persist')] = i\n\n callback(i)\n\n Alpine.mutateDom(() => {\n i.remove()\n })\n })\n}\n\nexport function putPersistantElementsBack(callback) {\n let usedPersists = []\n\n document.querySelectorAll('[x-persist]').forEach(i => {\n let old = els[i.getAttribute('x-persist')]\n\n // There might be a brand new x-persist element...\n if (! old) return\n\n usedPersists.push(i.getAttribute('x-persist'))\n\n old._x_wasPersisted = true\n\n callback(old, i)\n\n Alpine.mutateDom(() => {\n i.replaceWith(old)\n })\n })\n\n Object.entries(els).forEach(([key, el]) => {\n if (usedPersists.includes(key)) return\n\n // Destory the un-used persist DOM trees before releasing them...\n Alpine.destroyTree(el)\n })\n\n // Release unused persists for garbage collection...\n els = {}\n}\n\nexport function isPersistedElement(el) {\n return el.hasAttribute('x-persist')\n}\n", "import NProgress from 'nprogress'\nimport { getNonce } from '@/utils'\n\nNProgress.configure({\n minimum: 0.1,\n trickleSpeed: 200,\n showSpinner: false,\n parent: 'body',\n})\n\ninjectStyles()\n\nlet inProgress = false\n\nexport function showAndStartProgressBar() {\n inProgress = true\n\n // Only show progress bar if it's been a little bit...\n setTimeout(() => {\n if (! inProgress) return\n\n NProgress.start()\n }, 150)\n}\n\nexport function finishAndHideProgressBar() {\n inProgress = false\n\n NProgress.done()\n}\n\nexport function removeAnyLeftOverStaleProgressBars() {\n NProgress.remove()\n}\n\nfunction injectStyles() {\n let style = document.createElement('style')\n\n style.innerHTML = `/* Make clicks pass-through */\n\n #nprogress {\n pointer-events: none;\n }\n\n #nprogress .bar {\n background: var(--livewire-progress-bar-color, #29d);\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n }\n\n /* Fancy blur effect */\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px var(--livewire-progress-bar-color, #29d), 0 0 5px var(--livewire-progress-bar-color, #29d);\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n\n /* Remove these to get rid of the spinner */\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n\n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: var(--livewire-progress-bar-color, #29d);\n border-left-color: var(--livewire-progress-bar-color, #29d);\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n\n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n\n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n\n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `\n\n let nonce = getNonce()\n\n if (nonce) style.nonce = nonce\n\n document.head.appendChild(style)\n}\n", "\nexport function packUpPersistedPopovers(persistedEl) {\n if (!isPopoverSupported()) return;\n\n persistedEl.querySelectorAll(':popover-open').forEach(el => {\n el.setAttribute('data-navigate-popover-open', '')\n\n let animations = el.getAnimations()\n\n // Gather any in-progress animations, serialize them, and pause them, for later re-triggering...\n el._pausedAnimations = animations.map(animation => ({\n keyframes: animation.effect.getKeyframes(),\n options: {\n duration: animation.effect.getTiming().duration,\n easing: animation.effect.getTiming().easing,\n fill: animation.effect.getTiming().fill,\n iterations: animation.effect.getTiming().iterations\n },\n currentTime: animation.currentTime,\n playState: animation.playState\n }))\n\n animations.forEach(i => i.pause())\n })\n}\n\nexport function unPackPersistedPopovers(persistedEl) {\n if (!isPopoverSupported()) return;\n\n persistedEl.querySelectorAll('[data-navigate-popover-open]').forEach(el => {\n el.removeAttribute('data-navigate-popover-open')\n\n // Wait for the popovers to be fully connected to the DOM...\n queueMicrotask(() => {\n if (! el.isConnected) return\n\n // Show them because disconnected popovers are force-hidden...\n el.showPopover()\n\n // End the out-of-the-box animations...\n el.getAnimations().forEach(i => i.finish())\n\n // If there are any paused animations, we need to re-trigger them...\n if (el._pausedAnimations) {\n el._pausedAnimations.forEach(({keyframes, options, currentTime, now, playState}) => {\n let animation = el.animate(keyframes, options);\n\n animation.currentTime = currentTime;\n })\n\n delete el._pausedAnimations\n }\n })\n })\n}\n\nfunction isPopoverSupported() {\n return typeof document.createElement('div').showPopover === 'function';\n}\n", "import { replaceNoncesInHtml, cloneScriptTag } from '@/utils'\n\nlet oldBodyScriptTagHashes = []\n\nlet attributesExemptFromScriptTagHashing = [\n 'data-csrf',\n 'nonce',\n 'aria-hidden',\n]\n\nexport function swapCurrentPageWithNewHtml(html, andThen) {\n // Rewrite nonces in the fetched HTML to match the original page's nonce\n // before parsing, so DOMParser doesn't trigger CSP violations...\n html = replaceNoncesInHtml(html)\n\n let newDocument = (new DOMParser()).parseFromString(html, \"text/html\")\n let newHtml = newDocument.documentElement\n let newBody = document.adoptNode(newDocument.body)\n let newHead = document.adoptNode(newDocument.head)\n\n oldBodyScriptTagHashes = oldBodyScriptTagHashes.concat(Array.from(document.body.querySelectorAll('script')).map(i => {\n return simpleHash(ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing))\n }))\n\n let afterRemoteScriptsHaveLoaded = () => {}\n\n replaceHtmlAttributes(newHtml)\n\n mergeNewHead(newHead).finally(() => {\n afterRemoteScriptsHaveLoaded()\n })\n\n prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes)\n\n let oldBody = document.body\n\n document.body.replaceWith(newBody)\n\n Alpine.destroyTree(oldBody)\n\n andThen(i => afterRemoteScriptsHaveLoaded = i)\n}\n\nfunction prepNewBodyScriptTagsToRun(newBody, oldBodyScriptTagHashes) {\n newBody.querySelectorAll('script').forEach(i => {\n // We don't want to re-run script tags marked as \"data-navigate-once\"...\n if (i.hasAttribute('data-navigate-once')) {\n // However, if they didn't exist on the previous page, we do.\n // Therefore, we'll check the \"old body script hashes\" to\n // see if it was already there before skipping it...\n\n let hash = simpleHash(\n ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)\n )\n\n if (oldBodyScriptTagHashes.includes(hash)) return\n }\n\n i.replaceWith(cloneScriptTag(i))\n })\n}\n\nfunction replaceHtmlAttributes(newHtmlElement) {\n let currentHtmlElement = document.documentElement\n\n // Process attributes that are in the new element...\n Array.from(newHtmlElement.attributes).forEach(attr => {\n const name = attr.name\n const value = attr.value\n\n if (currentHtmlElement.getAttribute(name) !== value) {\n // Add or update attribute if the value differs...\n currentHtmlElement.setAttribute(name, value)\n }\n })\n\n // Remove remaining attributes that are not in the new element...\n Array.from(currentHtmlElement.attributes).forEach(attr => {\n if (!newHtmlElement.hasAttribute(attr.name)) {\n currentHtmlElement.removeAttribute(attr.name)\n }\n })\n}\n\nfunction mergeNewHead(newHead) {\n let children = Array.from(document.head.children)\n\n // Compare head assets ignoring nonces so that identical assets\n // with different nonces aren't treated as \"new\"...\n let headChildrenHtmlLookup = children.map(i =>\n ignoreAttributes(i.outerHTML, attributesExemptFromScriptTagHashing)\n )\n\n // Only add scripts and styles that aren't already loaded on the page.\n let garbageCollector = document.createDocumentFragment()\n\n let touchedHeadElements = []\n\n let remoteScriptsPromises = []\n\n for (let child of Array.from(newHead.children)) {\n if (isAsset(child)) {\n let childHtml = ignoreAttributes(child.outerHTML, attributesExemptFromScriptTagHashing)\n\n if (! headChildrenHtmlLookup.includes(childHtml)) {\n if (isTracked(child)) {\n if (ifTheQueryStringChangedSinceLastRequest(child, children)) {\n setTimeout(() => window.location.reload())\n }\n }\n\n if (isScript(child)) {\n try {\n remoteScriptsPromises.push(\n injectScriptTagAndWaitForItToFullyLoad(\n cloneScriptTag(child)\n )\n )\n } catch (error) {\n // Let's eat any promise rejects so that we don't\n // break the rest of the Alpine intializing...\n // Any errors triggered by adding the script tag to the page\n // will still be thrown...\n }\n } else {\n document.head.appendChild(child)\n }\n } else {\n garbageCollector.appendChild(child)\n }\n\n touchedHeadElements.push(child)\n }\n }\n\n // Remove any assets that aren't on the new page...\n // @todo: Re-enable this code and find a better way to managed injected stylesheets. See livewire/livewire#6824\n // for (let child of Array.from(document.head.children)) {\n // if (isAsset(child)) {\n // if (! touchedHeadElements.some(i => i.outerHTML === child.outerHTML)) {\n // child.remove()\n // }\n // }\n // }\n\n // How to free up the garbage collector?\n\n // Remove existing non-asset elements like meta, base, title, template.\n for (let child of Array.from(document.head.children)) {\n if (! isAsset(child)) child.remove()\n }\n\n // Add new non-asset elements left over in the new head element.\n for (let child of Array.from(newHead.children)) {\n if (child.tagName.toLowerCase() === 'noscript') continue\n\n document.head.appendChild(child)\n }\n\n return Promise.all(remoteScriptsPromises)\n}\n\nasync function injectScriptTagAndWaitForItToFullyLoad(script) {\n return new Promise((resolve, reject) => {\n // Script assets need to be loaded synchronously so that scripts have\n // their global variables available...\n if (script.src) {\n script.onload = () => resolve()\n script.onerror = () => reject()\n } else {\n resolve()\n }\n\n document.head.appendChild(script)\n })\n}\n\nfunction isTracked(el) {\n return el.hasAttribute('data-navigate-track')\n}\n\nfunction ifTheQueryStringChangedSinceLastRequest(el, currentHeadChildren) {\n let [uri, queryString] = extractUriAndQueryString(el)\n\n return currentHeadChildren.some(child => {\n if (! isTracked(child)) return false\n\n let [currentUri, currentQueryString] = extractUriAndQueryString(child)\n\n // Only consider a data-navigate-track element changed if the query string has changed (not the URI)...\n if (currentUri === uri && queryString !== currentQueryString) return true\n })\n}\n\nfunction extractUriAndQueryString(el) {\n let url = isScript(el) ? el.src : el.href\n\n return url.split('?')\n}\n\nfunction isAsset(el) {\n return (el.tagName.toLowerCase() === 'link' && el.getAttribute('rel').toLowerCase() === 'stylesheet')\n || el.tagName.toLowerCase() === 'style'\n || el.tagName.toLowerCase() === 'script'\n}\n\nfunction isScript(el) {\n return el.tagName.toLowerCase() === 'script'\n}\n\nfunction simpleHash(str) {\n return str.split('').reduce((a, b) => {\n a = ((a << 5) - a) + b.charCodeAt(0)\n\n return a & a\n }, 0);\n}\n\nfunction ignoreAttributes(subject, attributesToRemove) {\n let result = subject\n\n attributesToRemove.forEach(attr => {\n // Create a regex pattern to match the attribute and its value.\n // The regex handles attributes that have values surrounded by either single or double quotes.\n const regex = new RegExp(`${attr}=\"[^\"]*\"|${attr}='[^']*'`, 'g')\n\n result = result.replace(regex, '')\n })\n\n // Remove all whitespace to make things less flaky...\n result = result.replaceAll(' ', '')\n\n return result.trim()\n}\n", "import { replaceUrl, updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks, updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks, updateUrlAndStoreLatestHtmlForFutureBackButtons, whenTheBackOrForwardButtonIsClicked } from \"./history\"\nimport { getPretchedHtmlOr, prefetchHtml, storeThePrefetchedHtmlForWhenALinkIsClicked } from \"./prefetch\"\nimport { createUrlObjectFromString, extractDestinationFromLink, whenThisLinkIsHoveredFor, whenThisLinkIsPressed } from \"./links\"\nimport { isTeleportTarget, packUpPersistedTeleports, removeAnyLeftOverStaleTeleportTargets, unPackPersistedTeleports } from \"./teleport\"\nimport { restoreScrollPositionOrScrollToTop, storeScrollInformationInHtmlBeforeNavigatingAway } from \"./scroll\"\nimport { isPersistedElement, putPersistantElementsBack, storePersistantElementsForLater } from \"./persist\"\nimport { finishAndHideProgressBar, removeAnyLeftOverStaleProgressBars, showAndStartProgressBar } from \"./bar\"\nimport { packUpPersistedPopovers, unPackPersistedPopovers } from \"./popover\"\nimport { swapCurrentPageWithNewHtml } from \"./page\"\nimport { fetchHtml } from \"./fetch\"\n\nlet enablePersist = true\nlet showProgressBar = true\nlet restoreScroll = true\nlet autofocus = false\n\nexport default function (Alpine) {\n\n Alpine.navigate = (url, options = {}) => {\n let { preserveScroll = false } = options\n\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: false, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { preserveScroll })\n }\n\n Alpine.navigate.disableProgressBar = () => {\n showProgressBar = false\n }\n\n Alpine.addInitSelector(() => `[${Alpine.prefixed('navigate')}]`)\n\n Alpine.directive('navigate', (el, { modifiers }) => {\n let shouldPrefetchOnHover = modifiers.includes('hover')\n\n let preserveScroll = modifiers.includes('preserve-scroll')\n\n shouldPrefetchOnHover && whenThisLinkIsHoveredFor(el, 60, () => {\n let destination = extractDestinationFromLink(el)\n\n if (! destination) return\n\n prefetchHtml(destination, (html, finalDestination) => {\n storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination)\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n })\n\n whenThisLinkIsPressed(el, (whenItIsReleased) => {\n let destination = extractDestinationFromLink(el)\n\n if (! destination) return\n\n prefetchHtml(destination, (html, finalDestination) => {\n storeThePrefetchedHtmlForWhenALinkIsClicked(html, destination, finalDestination)\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n\n whenItIsReleased(() => {\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: false, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { preserveScroll })\n })\n })\n })\n\n function navigateTo(destination, { preserveScroll = false, shouldPushToHistoryState = true }) {\n showProgressBar && showAndStartProgressBar()\n\n fetchHtmlOrUsePrefetchedHtml(destination, (html, finalDestination) => {\n // Fire the navigating event, allowing listeners to register onSwap callbacks\n let swapCallbacks = []\n\n fireEventForOtherLibrariesToHookInto('alpine:navigating', {\n onSwap: (callback) => swapCallbacks.push(callback)\n })\n\n restoreScroll && storeScrollInformationInHtmlBeforeNavigatingAway()\n\n cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement()\n\n // Only update the current page's history state if we're pushing to history.\n // For popstate-triggered navigations (shouldPushToHistoryState = false),\n // the history state has already changed and we shouldn't overwrite it.\n shouldPushToHistoryState && updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks()\n\n preventAlpineFromPickingUpDomChanges(Alpine, andAfterAllThis => {\n enablePersist && storePersistantElementsForLater(persistedEl => {\n packUpPersistedTeleports(persistedEl)\n packUpPersistedPopovers(persistedEl)\n })\n\n if (shouldPushToHistoryState) {\n updateUrlAndStoreLatestHtmlForFutureBackButtons(html, finalDestination)\n } else {\n replaceUrl(finalDestination, html)\n }\n\n swapCurrentPageWithNewHtml(html, (afterNewScriptsAreDoneLoading) => {\n removeAnyLeftOverStaleTeleportTargets(document.body)\n\n enablePersist && putPersistantElementsBack((persistedEl, newStub) => {\n unPackPersistedTeleports(persistedEl)\n unPackPersistedPopovers(persistedEl)\n })\n\n !preserveScroll && restoreScrollPositionOrScrollToTop()\n\n // Invoke any callbacks registered via onSwap during the navigating event\n swapCallbacks.forEach(callback => callback())\n\n afterNewScriptsAreDoneLoading(() => {\n andAfterAllThis(() => {\n setTimeout(() => {\n autofocus && autofocusElementsWithTheAutofocusAttribute()\n })\n\n nowInitializeAlpineOnTheNewPage(Alpine)\n\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n showProgressBar && finishAndHideProgressBar()\n })\n })\n })\n })\n }, () => {\n showProgressBar && finishAndHideProgressBar()\n })\n }\n\n whenTheBackOrForwardButtonIsClicked(\n (ifThePageBeingVisitedHasntBeenCached) => {\n ifThePageBeingVisitedHasntBeenCached((url) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: true, cached: false,\n })\n\n if (prevented) return\n\n navigateTo(destination, { shouldPushToHistoryState: false })\n })\n },\n (html, url, currentPageUrl, currentPageKey) => {\n let destination = createUrlObjectFromString(url)\n\n let prevented = fireEventForOtherLibrariesToHookInto('alpine:navigate', {\n url: destination, history: true, cached: true,\n })\n\n if (prevented) return\n\n // @todo: see if there's a way to update the current HTML BEFORE\n // the back button is hit, and not AFTER:\n storeScrollInformationInHtmlBeforeNavigatingAway()\n\n // Fire the navigating event, allowing listeners to register onSwap callbacks\n let swapCallbacks = []\n\n fireEventForOtherLibrariesToHookInto('alpine:navigating', {\n onSwap: (callback) => swapCallbacks.push(callback)\n })\n\n // Update the snapshot (not the history state, as the history state has\n // already changed to the new page due to the popstate event).\n // This ensures the current HTML has the latest snapshot.\n updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks(currentPageKey, currentPageUrl)\n\n preventAlpineFromPickingUpDomChanges(Alpine, andAfterAllThis => {\n enablePersist && storePersistantElementsForLater(persistedEl => {\n packUpPersistedTeleports(persistedEl)\n packUpPersistedPopovers(persistedEl)\n })\n\n swapCurrentPageWithNewHtml(html, () => {\n removeAnyLeftOverStaleProgressBars()\n\n removeAnyLeftOverStaleTeleportTargets(document.body)\n\n enablePersist && putPersistantElementsBack((persistedEl, newStub) => {\n unPackPersistedTeleports(persistedEl)\n unPackPersistedPopovers(persistedEl)\n })\n\n restoreScrollPositionOrScrollToTop()\n\n // Invoke any callbacks registered via onSwap during the navigating event\n swapCallbacks.forEach(callback => callback())\n\n andAfterAllThis(() => {\n autofocus && autofocusElementsWithTheAutofocusAttribute()\n\n nowInitializeAlpineOnTheNewPage(Alpine)\n\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n })\n })\n })\n },\n )\n\n // Because DOMContentLoaded is fired on first load,\n // we should fire alpine:navigated as a replacement as well...\n setTimeout(() => {\n fireEventForOtherLibrariesToHookInto('alpine:navigated')\n })\n}\n\nfunction fetchHtmlOrUsePrefetchedHtml(fromDestination, callback, errorCallback) {\n getPretchedHtmlOr(fromDestination, callback, () => {\n fetchHtml(fromDestination, callback, errorCallback)\n })\n}\n\nfunction preventAlpineFromPickingUpDomChanges(Alpine, callback) {\n Alpine.stopObservingMutations()\n\n callback((afterAllThis) => {\n Alpine.startObservingMutations()\n\n queueMicrotask(() => {\n afterAllThis()\n })\n })\n}\n\nfunction fireEventForOtherLibrariesToHookInto(name, detail) {\n let event = new CustomEvent(name, {\n cancelable: true,\n bubbles: true,\n detail,\n })\n\n document.dispatchEvent(event)\n\n return event.defaultPrevented\n}\n\nfunction nowInitializeAlpineOnTheNewPage(Alpine) {\n Alpine.initTree(document.body, undefined, (el, skip) => {\n if (el._x_wasPersisted) skip()\n })\n}\n\nfunction autofocusElementsWithTheAutofocusAttribute() {\n document.querySelector('[autofocus]') && document.querySelector('[autofocus]').focus()\n}\n\nfunction cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement() {\n // Create a new tree walker that skips persisted elements...\n let walker = function (root, callback) {\n Alpine.walk(root, (el, skip) => {\n if (isPersistedElement(el)) skip()\n if (isTeleportTarget(el)) skip()\n else callback(el, skip)\n })\n }\n\n // Set Alpine in motion to destroy itself on the page. If this proves\n // to be a performance issue at some point (walking the DOM tree),\n // we can be more surgical about cleaning up x-for/if instead...\n Alpine.destroyTree(document.body, walker)\n}\n", "import { isObjecty } from \"@/utils\"\nimport historyCoordinator from \"./coordinator\"\nimport { unwrap } from \"./utils\"\n\nexport default function history(Alpine) {\n Alpine.magic('queryString', (el, { interceptor }) => {\n let alias\n let alwaysShow = false\n let usePush = false\n\n return interceptor((initialSeedValue, getter, setter, path, key) => {\n let queryKey = alias || path\n\n let { initial, replace, push, pop } = track(queryKey, initialSeedValue, alwaysShow)\n\n setter(initial)\n\n if (! usePush) {\n Alpine.effect(() => replace(getter()))\n } else {\n Alpine.effect(() => push(getter()))\n\n pop(async newValue => {\n setter(newValue)\n\n let tillTheEndOfTheMicrotaskQueue = () => Promise.resolve()\n\n await tillTheEndOfTheMicrotaskQueue() // ...so that we preserve the internal lock...\n })\n }\n\n return initial\n }, func => {\n func.alwaysShow = () => { alwaysShow = true; return func }\n func.usePush = () => { usePush = true; return func }\n func.as = key => { alias = key; return func }\n })\n })\n\n Alpine.history = { track }\n}\n\nexport function track(name, initialSeedValue, alwaysShow = false, except = null) {\n let { has, get, set, remove } = queryStringUtils()\n\n let url = historyCoordinator.getUrl()\n let isInitiallyPresentInUrl = has(url, name)\n let initialValue = isInitiallyPresentInUrl ? get(url, name) : initialSeedValue\n let initialValueMemo = JSON.stringify(initialValue)\n let exceptValueMemo = JSON.stringify(except)\n\n let hasReturnedToInitialValue = (newValue) => JSON.stringify(newValue) === initialValueMemo\n let hasReturnedToExceptValue = (newValue) => JSON.stringify(newValue) === exceptValueMemo\n\n if (alwaysShow) url = set(url, name, initialValue)\n\n replace(url, name, { value: initialValue })\n\n let lock = false\n\n let update = (strategy, newValue) => {\n if (lock) return\n\n let url = historyCoordinator.getUrl()\n\n // This block of code is what needs to be changed for this failing test to pass:\n if (! alwaysShow && ! isInitiallyPresentInUrl && hasReturnedToInitialValue(newValue)) {\n url = remove(url, name)\n // This is so that when deeply nested values are tracked, but their parent array/object\n // is removed, we can handle it gracefully by removing the entry from the URL instead\n // of letting it get set to `?someKey=undefined` which causes issues on refresh...\n } else if (newValue === undefined) {\n url = remove(url, name)\n } else if (! alwaysShow && hasReturnedToExceptValue(newValue)) {\n url = remove(url, name)\n } else {\n url = set(url, name, newValue)\n }\n\n // Right now, the above block, checks a few conditions and updates/removes an entry from the query string.\n // The new strategy needs to be something like:\n // - If \"alwaysShow\" is toggled on, then just \"set\" the whole thing with no deep diff\n // - Otherwise, run a deep comparison callback (given the original value and new value).\n // - The callback recieves two params (leaf name and value)\n // - Check leaf name and value for existance in the original URL from page load. If it's there, just call \"set\"\n // - Check leaf name and value for equivelance to original name and value, if equal, call \"remove\", otherwise, \"set\"\n\n // That code will look something like this:\n\n // if (alwaysShow) {\n // set(url, name, newValue)\n // } else {\n // deepCompare(name, newValue, originalValue, (leafName, leafValue) => {\n // // ....\n // })\n // }\n\n strategy(url, name, { value: newValue})\n }\n\n return {\n initial: initialValue,\n\n replace(newValue) { // Update via replaceState...\n update(replace, newValue)\n },\n\n push(newValue) { // Update via pushState...\n update(push, newValue)\n },\n\n pop(receiver) { // \"popstate\" handler...\n let handler = (e) => {\n if (! e.state || ! e.state.alpine) return\n\n Object.entries(e.state.alpine).forEach(([iName, { value: newValue }]) => {\n if (iName !== name) return\n\n lock = true\n\n // Allow the \"receiver\" to be an async function in case a non-syncronous\n // operation (like an ajax) requests needs to happen while preserving\n // the \"locking\" mechanism (\"lock = true\" in this case)...\n let result = receiver(newValue)\n\n if (result instanceof Promise) {\n result.finally(() => lock = false)\n } else {\n lock = false\n }\n })\n }\n\n window.addEventListener('popstate', handler)\n\n return () => window.removeEventListener('popstate', handler)\n }\n }\n}\n\nfunction replace(url, key, object) {\n historyCoordinator.replaceState(url, { [key]: object })\n}\n\nfunction push(url, key, object) {\n historyCoordinator.pushState(url, { [key]: object })\n}\n\nfunction queryStringUtils() {\n return {\n has(url, key) {\n let search = url.search\n\n if (! search) return false\n\n let data = fromQueryString(search, key)\n\n return Object.keys(data).includes(key)\n },\n get(url, key) {\n let search = url.search\n\n if (! search) return false\n\n let data = fromQueryString(search, key)\n\n return data[key]\n },\n set(url, key, value) {\n let data = fromQueryString(url.search, key)\n\n data[key] = stripNulls(unwrap(value))\n\n url.search = toQueryString(data)\n\n return url\n },\n remove(url, key) {\n let data = fromQueryString(url.search, key)\n\n delete data[key]\n\n url.search = toQueryString(data)\n\n return url\n },\n }\n}\n\nfunction stripNulls(value) {\n if (! isObjecty(value)) return value\n\n for (let key in value) {\n if (value[key] === null) delete value[key]\n else value[key] = stripNulls(value[key])\n }\n\n return value\n}\n\n// This function converts JavaScript data to bracketed query string notation...\n// { items: [['foo']] } -> \"items[0][0]=foo\"\nfunction toQueryString(data) {\n let isObjecty = (subject) => typeof subject === 'object' && subject !== null\n\n let buildQueryStringEntries = (data, entries = {}, baseKey = '') => {\n Object.entries(data).forEach(([iKey, iValue]) => {\n let key = baseKey === '' ? iKey : `${baseKey}[${iKey}]`\n\n if (iValue === null) {\n entries[key] = '';\n } else if (! isObjecty(iValue)) {\n entries[key] = encodeURIComponent(iValue)\n .replaceAll('%20', '+') // Conform to RFC1738\n .replaceAll('%2C', ',')\n } else {\n entries = {...entries, ...buildQueryStringEntries(iValue, entries, key)}\n }\n })\n\n return entries\n }\n\n let entries = buildQueryStringEntries(data)\n\n return Object.entries(entries).map(([key, value]) => `${key}=${value}`).join('&')\n}\n\n// This function converts bracketed query string notation back to JS data...\n// \"items[0][0]=foo\" -> { items: [['foo']] }\nfunction fromQueryString(search, queryKey) {\n search = search.replace('?', '')\n\n if (search === '') return {}\n\n let insertDotNotatedValueIntoData = (key, value, data) => {\n let [first, second, ...rest] = key.split('.')\n\n // We're at a leaf node, let's make the assigment...\n if (! second) return data[key] = value\n\n // This is where we fill in empty arrays/objects allong the way to the assigment...\n if (data[first] === undefined) {\n data[first] = isNaN(second) ? {} : []\n }\n\n // Keep deferring assignment until the full key is built up...\n insertDotNotatedValueIntoData([second, ...rest].join('.'), value, data[first])\n }\n\n let entries = search.split('&').map(i => i.split('='))\n\n // let data = {} creates a security (XSS) vulnerability here. We need to use\n // Object.create(null) instead so that we have a \"pure\" object that doesnt\n // inherit Object.prototype and expose the js internals to manipulation.\n let data = Object.create(null)\n\n entries.forEach(([key, value]) => {\n // Query string params don't always have values... (`?foo=`)\n if ( typeof value == 'undefined' ) return;\n\n value = decodeURIComponent(value.replaceAll('+', '%20'))\n\n let decodedKey = decodeURIComponent(key)\n\n let shouldBeHandledAsArray = decodedKey.includes('[') && decodedKey.startsWith(queryKey)\n\n if (!shouldBeHandledAsArray) {\n data[key] = value\n } else {\n // Convert to dot notation because it's easier...\n let dotNotatedKey = decodedKey.replaceAll('[', '.').replaceAll(']', '')\n\n insertDotNotatedValueIntoData(dotNotatedKey, value, data)\n }\n })\n\n return data\n}\n", "// packages/morph/src/morph.js\nfunction morph(from, toHtml, options) {\n monkeyPatchDomSetAttributeToAllowAtSymbols();\n let context = createMorphContext(options);\n let toEl = typeof toHtml === \"string\" ? createElement(toHtml) : toHtml;\n if (window.Alpine && window.Alpine.closestDataStack && !from._x_dataStack) {\n toEl._x_dataStack = window.Alpine.closestDataStack(from);\n toEl._x_dataStack && window.Alpine.cloneNode(from, toEl);\n }\n context.patch(from, toEl);\n return from;\n}\nfunction morphBetween(startMarker, endMarker, toHtml, options = {}) {\n monkeyPatchDomSetAttributeToAllowAtSymbols();\n let context = createMorphContext(options);\n let fromContainer = startMarker.parentNode;\n let fromBlock = new Block(startMarker, endMarker);\n let toContainer = typeof toHtml === \"string\" ? (() => {\n let container = document.createElement(\"div\");\n container.insertAdjacentHTML(\"beforeend\", toHtml);\n return container;\n })() : toHtml;\n let toStartMarker = document.createComment(\"[morph-start]\");\n let toEndMarker = document.createComment(\"[morph-end]\");\n toContainer.insertBefore(toStartMarker, toContainer.firstChild);\n toContainer.appendChild(toEndMarker);\n let toBlock = new Block(toStartMarker, toEndMarker);\n if (window.Alpine && window.Alpine.closestDataStack) {\n toContainer._x_dataStack = window.Alpine.closestDataStack(fromContainer);\n toContainer._x_dataStack && window.Alpine.cloneNode(fromContainer, toContainer);\n }\n context.patchChildren(fromBlock, toBlock);\n}\nfunction createMorphContext(options = {}) {\n let defaultGetKey = (el) => el.getAttribute(\"key\");\n let noop = () => {\n };\n let context = {\n key: options.key || defaultGetKey,\n lookahead: options.lookahead || false,\n updating: options.updating || noop,\n updated: options.updated || noop,\n removing: options.removing || noop,\n removed: options.removed || noop,\n adding: options.adding || noop,\n added: options.added || noop\n };\n context.patch = function(from, to) {\n if (context.differentElementNamesTypesOrKeys(from, to)) {\n return context.swapElements(from, to);\n }\n let updateChildrenOnly = false;\n let skipChildren = false;\n let skipUntil = (predicate) => context.skipUntilCondition = predicate;\n if (shouldSkipChildren(context.updating, () => skipChildren = true, skipUntil, from, to, () => updateChildrenOnly = true))\n return;\n if (from.nodeType === 1 && window.Alpine) {\n window.Alpine.cloneNode(from, to);\n if (from._x_teleport && to._x_teleport) {\n context.patch(from._x_teleport, to._x_teleport);\n }\n }\n if (textOrComment(to)) {\n context.patchNodeValue(from, to);\n context.updated(from, to);\n return;\n }\n if (!updateChildrenOnly) {\n context.patchAttributes(from, to);\n }\n context.updated(from, to);\n if (!skipChildren) {\n context.patchChildren(from, to);\n }\n };\n context.differentElementNamesTypesOrKeys = function(from, to) {\n return from.nodeType != to.nodeType || from.nodeName != to.nodeName || context.getKey(from) != context.getKey(to);\n };\n context.swapElements = function(from, to) {\n if (shouldSkip(context.removing, from))\n return;\n let toCloned = to.cloneNode(true);\n if (shouldSkip(context.adding, toCloned))\n return;\n from.replaceWith(toCloned);\n context.removed(from);\n context.added(toCloned);\n };\n context.patchNodeValue = function(from, to) {\n let value = to.nodeValue;\n if (from.nodeValue !== value) {\n from.nodeValue = value;\n }\n };\n context.patchAttributes = function(from, to) {\n if (from._x_transitioning)\n return;\n if (from._x_isShown && !to._x_isShown) {\n return;\n }\n if (!from._x_isShown && to._x_isShown) {\n return;\n }\n let domAttributes = Array.from(from.attributes);\n let toAttributes = Array.from(to.attributes);\n for (let i = domAttributes.length - 1; i >= 0; i--) {\n let name = domAttributes[i].name;\n if (!to.hasAttribute(name)) {\n if (name === \"open\" && from.nodeName === \"DIALOG\" && from.open) {\n from.close();\n } else {\n from.removeAttribute(name);\n }\n }\n }\n for (let i = toAttributes.length - 1; i >= 0; i--) {\n let name = toAttributes[i].name;\n let value = toAttributes[i].value;\n if (from.getAttribute(name) !== value) {\n from.setAttribute(name, value);\n }\n }\n };\n context.patchChildren = function(from, to) {\n let fromKeys = context.keyToMap(from.children);\n let fromKeyHoldovers = {};\n let currentTo = getFirstNode(to);\n let currentFrom = getFirstNode(from);\n while (currentTo) {\n seedingMatchingId(currentTo, currentFrom);\n let toKey = context.getKey(currentTo);\n let fromKey = context.getKey(currentFrom);\n if (context.skipUntilCondition) {\n let fromDone = !currentFrom || context.skipUntilCondition(currentFrom);\n let toDone = !currentTo || context.skipUntilCondition(currentTo);\n if (fromDone && toDone) {\n context.skipUntilCondition = null;\n } else {\n if (!fromDone)\n currentFrom = currentFrom && getNextSibling(from, currentFrom);\n if (!toDone)\n currentTo = currentTo && getNextSibling(to, currentTo);\n continue;\n }\n }\n if (!currentFrom) {\n if (toKey && fromKeyHoldovers[toKey]) {\n let holdover = fromKeyHoldovers[toKey];\n from.appendChild(holdover);\n currentFrom = holdover;\n fromKey = context.getKey(currentFrom);\n } else {\n if (!shouldSkip(context.adding, currentTo)) {\n let clone = currentTo.cloneNode(true);\n from.appendChild(clone);\n context.added(clone);\n }\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n }\n let isIf = (node) => node && node.nodeType === 8 && node.textContent === \"[if BLOCK]><![endif]\";\n let isEnd = (node) => node && node.nodeType === 8 && node.textContent === \"[if ENDBLOCK]><![endif]\";\n if (isIf(currentTo) && isIf(currentFrom)) {\n let nestedIfCount = 0;\n let fromBlockStart = currentFrom;\n while (currentFrom) {\n let next = getNextSibling(from, currentFrom);\n if (isIf(next)) {\n nestedIfCount++;\n } else if (isEnd(next) && nestedIfCount > 0) {\n nestedIfCount--;\n } else if (isEnd(next) && nestedIfCount === 0) {\n currentFrom = next;\n break;\n }\n currentFrom = next;\n }\n let fromBlockEnd = currentFrom;\n nestedIfCount = 0;\n let toBlockStart = currentTo;\n while (currentTo) {\n let next = getNextSibling(to, currentTo);\n if (isIf(next)) {\n nestedIfCount++;\n } else if (isEnd(next) && nestedIfCount > 0) {\n nestedIfCount--;\n } else if (isEnd(next) && nestedIfCount === 0) {\n currentTo = next;\n break;\n }\n currentTo = next;\n }\n let toBlockEnd = currentTo;\n let fromBlock = new Block(fromBlockStart, fromBlockEnd);\n let toBlock = new Block(toBlockStart, toBlockEnd);\n context.patchChildren(fromBlock, toBlock);\n continue;\n }\n if (currentFrom.nodeType === 1 && context.lookahead && !currentFrom.isEqualNode(currentTo)) {\n let nextToElementSibling = getNextSibling(to, currentTo);\n let found = false;\n while (!found && nextToElementSibling) {\n if (nextToElementSibling.nodeType === 1 && currentFrom.isEqualNode(nextToElementSibling)) {\n found = true;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKey = context.getKey(currentFrom);\n }\n nextToElementSibling = getNextSibling(to, nextToElementSibling);\n }\n }\n if (toKey !== fromKey) {\n if (!toKey && fromKey) {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKeyHoldovers[fromKey].remove();\n currentFrom = getNextSibling(from, currentFrom);\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n if (toKey && !fromKey) {\n if (fromKeys[toKey]) {\n currentFrom.replaceWith(fromKeys[toKey]);\n currentFrom = fromKeys[toKey];\n fromKey = context.getKey(currentFrom);\n }\n }\n if (toKey && fromKey) {\n let fromKeyNode = fromKeys[toKey];\n if (fromKeyNode) {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom.replaceWith(fromKeyNode);\n currentFrom = fromKeyNode;\n fromKey = context.getKey(currentFrom);\n } else {\n fromKeyHoldovers[fromKey] = currentFrom;\n currentFrom = context.addNodeBefore(from, currentTo, currentFrom);\n fromKeyHoldovers[fromKey].remove();\n currentFrom = getNextSibling(from, currentFrom);\n currentTo = getNextSibling(to, currentTo);\n continue;\n }\n }\n }\n let currentFromNext = currentFrom && getNextSibling(from, currentFrom);\n context.patch(currentFrom, currentTo);\n currentTo = currentTo && getNextSibling(to, currentTo);\n currentFrom = currentFromNext;\n }\n let removals = [];\n while (currentFrom) {\n if (!shouldSkip(context.removing, currentFrom))\n removals.push(currentFrom);\n currentFrom = getNextSibling(from, currentFrom);\n }\n while (removals.length) {\n let domForRemoval = removals.shift();\n domForRemoval.remove();\n context.removed(domForRemoval);\n }\n };\n context.getKey = function(el) {\n return el && el.nodeType === 1 && context.key(el);\n };\n context.keyToMap = function(els) {\n let map = {};\n for (let el of els) {\n let theKey = context.getKey(el);\n if (theKey) {\n map[theKey] = el;\n }\n }\n return map;\n };\n context.addNodeBefore = function(parent, node, beforeMe) {\n if (!shouldSkip(context.adding, node)) {\n let clone = node.cloneNode(true);\n parent.insertBefore(clone, beforeMe);\n context.added(clone);\n return clone;\n }\n return node;\n };\n return context;\n}\nmorph.step = () => {\n};\nmorph.log = () => {\n};\nfunction shouldSkip(hook, ...args) {\n let skip = false;\n hook(...args, () => skip = true);\n return skip;\n}\nfunction shouldSkipChildren(hook, skipChildren, skipUntil, ...args) {\n let skip = false;\n hook(...args, () => skip = true, skipChildren, skipUntil);\n return skip;\n}\nvar patched = false;\nfunction createElement(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content.firstElementChild;\n}\nfunction textOrComment(el) {\n return el.nodeType === 3 || el.nodeType === 8;\n}\nvar Block = class {\n constructor(start, end) {\n this.startComment = start;\n this.endComment = end;\n }\n get children() {\n let children = [];\n let currentNode = this.startComment.nextSibling;\n while (currentNode && currentNode !== this.endComment) {\n children.push(currentNode);\n currentNode = currentNode.nextSibling;\n }\n return children;\n }\n appendChild(child) {\n this.endComment.before(child);\n }\n get firstChild() {\n let first = this.startComment.nextSibling;\n if (first === this.endComment)\n return;\n return first;\n }\n nextNode(reference) {\n let next = reference.nextSibling;\n if (next === this.endComment)\n return;\n return next;\n }\n insertBefore(newNode, reference) {\n reference.before(newNode);\n return newNode;\n }\n};\nfunction getFirstNode(parent) {\n return parent.firstChild;\n}\nfunction getNextSibling(parent, reference) {\n let next;\n if (parent instanceof Block) {\n next = parent.nextNode(reference);\n } else {\n next = reference.nextSibling;\n }\n return next;\n}\nfunction monkeyPatchDomSetAttributeToAllowAtSymbols() {\n if (patched)\n return;\n patched = true;\n let original = Element.prototype.setAttribute;\n let hostDiv = document.createElement(\"div\");\n Element.prototype.setAttribute = function newSetAttribute(name, value) {\n if (!name.includes(\"@\")) {\n return original.call(this, name, value);\n }\n let escapedValue = value.replace(/&/g, \"&\").replace(/\"/g, \""\");\n hostDiv.innerHTML = `<span ${name}=\"${escapedValue}\"></span>`;\n let attr = hostDiv.firstElementChild.getAttributeNode(name);\n hostDiv.firstElementChild.removeAttributeNode(attr);\n this.setAttributeNode(attr);\n };\n}\nfunction seedingMatchingId(to, from) {\n let fromId = from && from._x_bindings && from._x_bindings.id;\n if (!fromId)\n return;\n if (!to.setAttribute)\n return;\n to.setAttribute(\"id\", fromId);\n to.id = fromId;\n}\n\n// packages/morph/src/index.js\nfunction src_default(Alpine) {\n Alpine.morph = morph;\n Alpine.morphBetween = morphBetween;\n}\n\n// packages/morph/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n src_default as morph\n};\n", "// packages/mask/src/index.js\nfunction src_default(Alpine) {\n Alpine.directive(\"mask\", (el, { value, expression }, { effect, evaluateLater, cleanup }) => {\n let templateFn = () => expression;\n let lastInputValue = \"\";\n queueMicrotask(() => {\n if ([\"function\", \"dynamic\"].includes(value)) {\n let evaluator = evaluateLater(expression);\n effect(() => {\n templateFn = (input) => {\n let result;\n Alpine.dontAutoEvaluateFunctions(() => {\n evaluator((value2) => {\n result = typeof value2 === \"function\" ? value2(input) : value2;\n }, { scope: {\n // These are \"magics\" we'll make available to the x-mask:function:\n \"$input\": input,\n \"$money\": formatMoney.bind({ el })\n } });\n });\n return result;\n };\n processInputValue(el, false);\n });\n } else {\n processInputValue(el, false);\n }\n if (el._x_model) {\n if (el._x_model.get() !== el.value) {\n if (!(el._x_model.get() === null && el.value === \"\")) {\n el._x_model.set(el.value);\n }\n }\n let updater = el._x_forceModelUpdate;\n el._x_forceModelUpdate = (value2) => {\n value2 = String(value2);\n let template = templateFn(value2);\n if (template && template !== \"false\") {\n value2 = formatInput(template, value2);\n }\n lastInputValue = value2;\n updater(value2);\n el._x_model.set(value2);\n };\n }\n });\n const controller = new AbortController();\n cleanup(() => {\n controller.abort();\n });\n el.addEventListener(\"input\", () => processInputValue(el), {\n signal: controller.signal,\n // Setting this as a capture phase listener to ensure it runs\n // before wire:model or x-model added as a latent binding...\n capture: true\n });\n el.addEventListener(\"blur\", () => processInputValue(el, false), { signal: controller.signal });\n function processInputValue(el2, shouldRestoreCursor = true) {\n let input = el2.value;\n let template = templateFn(input);\n if (!template || template === \"false\")\n return false;\n if (lastInputValue.length - el2.value.length === 1) {\n return lastInputValue = el2.value;\n }\n let setInput = () => {\n lastInputValue = el2.value = formatInput(template, input);\n };\n if (shouldRestoreCursor) {\n restoreCursorPosition(el2, template, () => {\n setInput();\n });\n } else {\n setInput();\n }\n }\n }).before(\"model\");\n}\nfunction restoreCursorPosition(el, template, callback) {\n let cursorPosition = el.selectionStart;\n let unformattedValue = el.value;\n callback();\n let beforeLeftOfCursorBeforeFormatting = unformattedValue.slice(0, cursorPosition);\n let newPosition = formatInput(\n template,\n beforeLeftOfCursorBeforeFormatting\n ).length;\n el.setSelectionRange(newPosition, newPosition);\n}\nvar regexes = {\n \"9\": /[0-9]/,\n \"a\": /[a-zA-Z]/,\n \"*\": /[a-zA-Z0-9]/\n};\nfunction formatInput(template, input) {\n let templateMark = 0;\n let inputMark = 0;\n let output = \"\";\n while (templateMark < template.length && inputMark < input.length) {\n let templateChar = template[templateMark];\n let inputChar = input[inputMark];\n if (templateChar in regexes) {\n if (regexes[templateChar].test(inputChar)) {\n output += inputChar;\n templateMark++;\n }\n inputMark++;\n } else {\n output += templateChar;\n templateMark++;\n if (templateChar === input[inputMark])\n inputMark++;\n }\n }\n return output;\n}\nfunction formatMoney(input, delimiter = \".\", thousands, precision = 2) {\n if (input === \"-\")\n return \"-\";\n if (/^\\D+$/.test(input))\n return \"9\";\n if (thousands === null || thousands === void 0) {\n thousands = delimiter === \",\" ? \".\" : \",\";\n }\n let addThousands = (input2, thousands2) => {\n let output = \"\";\n let counter = 0;\n for (let i = input2.length - 1; i >= 0; i--) {\n if (input2[i] === thousands2)\n continue;\n if (counter === 3) {\n output = input2[i] + thousands2 + output;\n counter = 0;\n } else {\n output = input2[i] + output;\n }\n counter++;\n }\n return output;\n };\n let minus = input.startsWith(\"-\") ? \"-\" : \"\";\n let strippedInput = input.replaceAll(new RegExp(`[^0-9\\\\${delimiter}]`, \"g\"), \"\");\n let template = Array.from({ length: strippedInput.split(delimiter)[0].length }).fill(\"9\").join(\"\");\n template = `${minus}${addThousands(template, thousands)}`;\n if (precision > 0 && input.includes(delimiter))\n template += `${delimiter}` + \"9\".repeat(precision);\n queueMicrotask(() => {\n if (this.el.value.endsWith(delimiter))\n return;\n if (this.el.value[this.el.selectionStart - 1] === delimiter) {\n this.el.setSelectionRange(this.el.selectionStart - 1, this.el.selectionStart - 1);\n }\n });\n return template;\n}\n\n// packages/mask/builds/module.js\nvar module_default = src_default;\nexport {\n module_default as default,\n formatInput,\n src_default as mask\n};\n", "import { findComponentByEl, destroyComponent, initComponent, hasComponent } from './store'\nimport { matchesForLivewireDirective, extractDirective } from './directives'\nimport { trigger } from './hooks'\nimport collapse from '@alpinejs/collapse'\nimport focus from '@alpinejs/focus'\nimport persist from '@alpinejs/persist'\nimport intersect from '@alpinejs/intersect'\nimport sort from '@alpinejs/sort'\nimport resize from '@alpinejs/resize'\nimport anchor from '@alpinejs/anchor'\nimport navigate from './plugins/navigate'\nimport history from './plugins/history'\nimport morph from '@alpinejs/morph'\nimport mask from '@alpinejs/mask'\nimport Alpine from 'alpinejs'\nimport { dispatch } from './utils'\n\nexport function start() {\n setTimeout(() => ensureLivewireScriptIsntMisplaced())\n\n dispatch(document, 'livewire:init')\n dispatch(document, 'livewire:initializing')\n\n Alpine.plugin(morph)\n Alpine.plugin(history)\n Alpine.plugin(intersect)\n Alpine.plugin(sort)\n Alpine.plugin(resize)\n Alpine.plugin(collapse)\n Alpine.plugin(anchor)\n Alpine.plugin(focus)\n Alpine.plugin(persist)\n Alpine.plugin(navigate)\n Alpine.plugin(mask)\n\n Alpine.addRootSelector(() => '[wire\\\\:id]')\n\n Alpine.onAttributesAdded((el, attributes) => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n let component = findComponentByEl(el, false)\n\n if (! component) return\n\n attributes.forEach(attribute => {\n if (! matchesForLivewireDirective(attribute.name)) return;\n\n let directive = extractDirective(el, attribute.name)\n\n trigger('directive.init', { el, component, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n })\n\n Alpine.interceptInit(\n Alpine.skipDuringClone(el => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(el.attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n if (el.hasAttribute('wire:id') && ! el.__livewire && ! hasComponent(el.getAttribute('wire:id'))) {\n let component = initComponent(el)\n\n Alpine.onAttributeRemoved(el, 'wire:id', () => {\n destroyComponent(component.id)\n })\n }\n\n let directives = Array.from(el.getAttributeNames())\n .filter(name => matchesForLivewireDirective(name))\n .map(name => extractDirective(el, name))\n\n directives.forEach(directive => {\n trigger('directive.global.init', { el, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n\n let component = findComponentByEl(el, false)\n\n if (component) {\n trigger('element.init', { el, component })\n\n directives.forEach(directive => {\n trigger('directive.init', { el, component, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n }\n },\n // We still want global directives to be processed during cloning, so we can do that in this fallback callback...\n el => {\n // if there are no \"wire:\" directives we don't need to process this element any further.\n // This prevents Livewire from causing general slowness for other Alpine elements on the page...\n if (! Array.from(el.attributes).some(attribute => matchesForLivewireDirective(attribute.name))) return\n\n let directives = Array.from(el.getAttributeNames())\n .filter(name => matchesForLivewireDirective(name))\n .map(name => extractDirective(el, name))\n\n directives.forEach(directive => {\n trigger('directive.global.init', { el, directive, cleanup: (callback) => {\n Alpine.onAttributeRemoved(el, directive.raw, callback)\n } })\n })\n })\n )\n\n Alpine.start()\n\n setTimeout(() => window.Livewire.initialRenderIsFinished = true)\n\n dispatch(document, 'livewire:initialized')\n}\n\nfunction ensureLivewireScriptIsntMisplaced() {\n let el = document.querySelector('script[data-update-uri][data-csrf]')\n\n // If there is no Livewire-injected script on the page, move on...\n if (! el) return\n\n // If there is, let's ensure it's at the top-level. If it's nested\n // inside a normal element, that probably means that a closing\n // tag was missing in the template and Chrome moved the tag.\n\n // We're only checking for \"div\" here because it's quick and useful...\n let livewireEl = el.closest('[wire\\\\:id]')\n\n if (livewireEl) {\n console.warn('Livewire: missing closing tags found. Ensure your template elements contain matching closing tags.', livewireEl)\n }\n}\n", "import { on as hook } from '@/hooks'\n\nhook('effect', ({ component, effects }) => {\n registerListeners(component, effects.listeners || [])\n})\n\nfunction registerListeners(component, listeners) {\n listeners.forEach(name => {\n // Register a global listener...\n let handler = (e) => {\n if (component.isLazy && ! component.hasBeenLazyLoaded) return\n\n if (e.__livewire) e.__livewire.receivedBy.push(component)\n\n component.$wire.call('__dispatch', name, e.detail || {})\n }\n\n window.addEventListener(name, handler)\n\n component.addCleanup(() => window.removeEventListener(name, handler))\n\n // Register a listener for when \"to\" or \"self\"\n component.el.addEventListener(name, (e) => {\n if (component.isLazy && ! component.hasBeenLazyLoaded) return\n\n // We don't care about non-Livewire dispatches...\n if (! e.__livewire) return\n\n // We don't care about Livewire bubbling dispatches (only \"to\" and \"self\")...\n if (e.bubbles) return\n\n if (e.__livewire) e.__livewire.receivedBy.push(component.id)\n\n component.$wire.call('__dispatch', name, e.detail || {})\n })\n })\n}\n\n\n", "import Alpine from 'alpinejs'\n\nfunction getAlpineScopeKeys(el) {\n let keys = []\n let currentEl = el\n\n while (currentEl) {\n if (currentEl._x_dataStack && currentEl._x_dataStack.length > 0) {\n // Only read the first scope object -- this is the element's OWN\n // data, not inherited parent scopes. Alpine's addScopeToNode()\n // always puts the element's own data at index 0, followed by\n // the parent chain. Reading all entries would leak parent Alpine\n // scope keys across the Livewire component boundary.\n let ownScope = currentEl._x_dataStack[0]\n\n for (let key of Object.keys(ownScope)) {\n if (! keys.includes(key) && ! key.startsWith('$')) keys.push(key)\n }\n }\n\n // Stop at the Livewire component root element...\n if (currentEl.hasAttribute && currentEl.hasAttribute('wire:id')) break\n\n currentEl = currentEl.parentElement\n }\n\n return keys\n}\n\nexport function evaluateExpression(el, expression, options = {}) {\n if (! expression || expression.trim() === '') return\n\n let result = Alpine.evaluateRaw(el, expression, options)\n\n if (result instanceof Promise) {\n result.catch(() => {})\n }\n\n return result\n}\n\nexport function evaluateActionExpression(el, expression, options = {}) {\n if (! expression || expression.trim() === '') return\n\n let contextualExpression = contextualizeExpression(expression, el)\n\n try {\n let result = Alpine.evaluateRaw(el, contextualExpression, options)\n\n // Silently catch Livewire request failures. These are handled by\n // Livewire at the request level...\n if (result instanceof Promise && result._livewireAction) {\n result.catch(() => {})\n }\n\n return result\n } catch (error) {\n console.warn(`Livewire Expression Error: ${error.message}\\n\\n${ expression ? 'Expression: \\\"' + expression + '\\\"\\n\\n' : '' }`, el)\n\n console.error(error)\n }\n}\n\nexport function contextualizeExpression(expression, el) {\n let SKIP = ['JSON', 'true', 'false', 'null', 'undefined', 'this', '$wire', '$event']\n\n // If an element is provided, collect Alpine scope keys between\n // this element and the Livewire component root so they don't\n // get incorrectly prefixed with $wire.\n if (el) {\n SKIP.push(...getAlpineScopeKeys(el))\n }\n let strings = []\n\n // 1. Yank out string literals so we don't touch them\n let result = expression.replace(/([\"'`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/g, (m) => {\n strings.push(m)\n return `___${strings.length - 1}___`\n })\n\n // 2. Prefix identifiers not after a dot (skip placeholders from step 1)\n // Also skip object keys (identifiers immediately followed by colon)\n result = result.replace(/(^|[^.\\w$])(\\$?[a-zA-Z_]\\w*)/g, (m, pre, ident, offset) => {\n if (SKIP.includes(ident) || /^___\\d+___$/.test(ident)) return pre + ident\n if (result[offset + m.length] === ':') return pre + ident\n return pre + '$wire.' + ident\n })\n\n // 3. Restore strings\n return result.replace(/___(\\d+)___/g, (m, i) => strings[i])\n}\n", "import { on } from '@/hooks'\nimport Alpine from 'alpinejs'\nimport { evaluateExpression } from '../evaluator'\nimport { replaceNoncesInHtml, cloneScriptTag } from '../utils'\n\nlet executedScripts = new WeakMap\n\nlet executedAssets = new Set\n\non('payload.intercept', async ({ assets }) => {\n if(! assets) return\n\n for (let [key, asset] of Object.entries(assets)) {\n await onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, async () => {\n await addAssetsToHeadTagOfPage(asset)\n })\n }\n})\n\n// Assets that were injected into the HTML need to be registered so that\n// they aren't loaded again...\non('component.init', ({ component }) => {\n let assets = component.snapshot.memo.assets\n\n if (assets) {\n assets.forEach((key) => {\n if (executedAssets.has(key)) return\n executedAssets.add(key)\n })\n }\n})\n\non('effect', ({ component, effects }) => {\n let scripts = effects.scripts\n\n if (scripts) {\n Object.entries(scripts).forEach(([key, content]) => {\n onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, () => {\n let scriptContent = extractScriptTagContent(content)\n\n // Always wrap @script content in an IIFE since it's multi-statement code.\n // Alpine's evaluator tries to detect let/const at the start, but doesn't\n // account for leading comments which causes syntax errors.\n scriptContent = scriptContent.includes('await')\n ? `(async()=>{ ${scriptContent} })()`\n : `(()=>{ ${scriptContent} })()`\n\n Alpine.dontAutoEvaluateFunctions(() => {\n evaluateExpression(component.el, scriptContent, {\n context: component.$wire,\n scope: {\n '$wire': component.$wire,\n '$js': component.$wire.js,\n },\n })\n })\n })\n })\n }\n})\n\nfunction onlyIfScriptHasntBeenRunAlreadyForThisComponent(component, key, callback) {\n if (executedScripts.has(component)) {\n let alreadyRunKeys = executedScripts.get(component)\n\n if (alreadyRunKeys.includes(key)) return\n }\n\n callback()\n\n if (! executedScripts.has(component)) executedScripts.set(component, [])\n\n let alreadyRunKeys = executedScripts.get(component)\n\n alreadyRunKeys.push(key)\n\n executedScripts.set(component, alreadyRunKeys)\n}\n\nfunction extractScriptTagContent(rawHtml) {\n let scriptRegex = /<script\\b[^>]*>([\\s\\S]*?)<\\/script>/gm\n let matches = scriptRegex.exec(rawHtml)\n let innards = matches && matches[1] ? matches[1].trim() : ''\n\n return innards\n}\n\nasync function onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage(key, callback) {\n if (executedAssets.has(key)) return\n\n executedAssets.add(key)\n\n await callback()\n}\n\nasync function addAssetsToHeadTagOfPage(rawHtml) {\n // Rewrite nonces in the asset HTML to match the initial page's nonce.\n // Assets from Livewire update requests have a new nonce, but the browser\n // still enforces the original page's CSP header...\n rawHtml = replaceNoncesInHtml(rawHtml)\n\n let newDocument = (new DOMParser()).parseFromString(rawHtml, \"text/html\")\n let newHead = document.adoptNode(newDocument.head)\n\n for (let child of newHead.children) {\n try {\n await runAssetSynchronously(child)\n } catch (error) {\n // Let's eat any promise rejects so that we don't\n // break the rest of Livewire's handling of the response...\n // Any errors triggered by adding the script tag to the page\n // will still be thrown...\n }\n }\n}\n\nasync function runAssetSynchronously(child) {\n return new Promise((resolve, reject) => {\n if (isScript(child)) {\n let script = cloneScriptTag(child)\n\n // Script assets need to be loaded synchronously so that scripts have\n // their global variables available...\n if (script.src) {\n script.onload = () => resolve()\n script.onerror = () => reject()\n } else {\n resolve()\n }\n\n document.head.appendChild(script)\n } else {\n document.head.appendChild(child)\n\n resolve()\n }\n })\n}\n\nfunction isScript(el) {\n return el.tagName.toLowerCase() === 'script'\n}\n\n", "import { evaluateExpression } from '../evaluator'\nimport { findComponentByEl } from '@/store'\nimport { overrideMethod } from '@/$wire'\nimport { on } from '@/hooks'\nimport Alpine from 'alpinejs'\n\nAlpine.magic('js', el => {\n let component = findComponentByEl(el)\n\n return component.$wire.js\n})\n\non('effect', ({ component, effects }) => {\n let js = effects.js\n let xjs = effects.xjs\n\n if (js) {\n Object.entries(js).forEach(([method, body]) => {\n overrideMethod(component, method, () => {\n evaluateExpression(component.el, body)\n })\n })\n }\n\n if (xjs) {\n xjs.forEach(({ expression, params }) => {\n params = Object.values(params)\n\n evaluateExpression(component.el, expression, { scope: component.getJsActions(), params })\n })\n }\n})\n", "import { globalDirective } from \"@/directives\"\n\nlet defaultName = 'match-element'\n\n// No-op \u2014 viewTransitionName is now set dynamically by transitionDomMutation()\n// to avoid creating permanent stacking contexts...\nglobalDirective('transition', ({ el, directive, cleanup }) => {\n //\n})\n\nfunction setTransitionNames(root, options = {}) {\n root.querySelectorAll('[wire\\\\:transition]').forEach(el => {\n if (el.style.viewTransitionName) return\n\n let name = el.getAttribute('wire:transition')\n\n // When the developer orchestrates a typed swap (e.g. #[Transition('forward')]),\n // unnamed wire:transition elements stay unnamed so they ride with the parent's\n // snapshot instead of becoming independent groups with the browser's default fade...\n if (! name && options.type) return\n\n el.style.viewTransitionName = name || defaultName\n })\n}\n\nfunction clearTransitionNames(root) {\n root.querySelectorAll('[wire\\\\:transition]').forEach(el => {\n el.style.viewTransitionName = ''\n })\n}\n\nexport async function transitionDomMutation(fromEl, toEl, callback, options = {}) {\n // Skip transitions entirely if requested...\n if (options.skip) return callback()\n\n // Only transition if there is a [wire:transition] element within either the from or to elements...\n if (! fromEl.querySelector('[wire\\\\:transition]') && ! toEl.querySelector('[wire\\\\:transition]')) return callback()\n\n // Check if View Transitions API is supported...\n if (typeof document.startViewTransition !== 'function') {\n return callback()\n }\n\n // Skip entirely if a modal dialog is already open (transitions behind\n // a dialog are invisible to the user and the ::view-transition pseudo-\n // elements would paint above the dialog during animation)...\n if (document.querySelector('dialog:modal')) return callback()\n\n // Set transition names right before the transition starts (not permanently)...\n setTransitionNames(fromEl, options)\n\n // Disable root transitions for the page...\n let style = document.createElement('style')\n\n style.textContent = `\n @media (prefers-reduced-motion: reduce) {\n ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) {\n animation: none !important;\n }\n }\n\n ::view-transition-old(root) {\n animation: none !important;\n opacity: 0 !important;\n }\n\n ::view-transition-new(root) {\n animation: none !important;\n opacity: 1 !important;\n }\n `\n\n document.head.appendChild(style)\n\n let update = () => {\n callback()\n\n // After a morph, newly added wire:transition elements need their viewTransitionName\n // set synchronously. Alpine's MutationObserver would normally handle this, but its\n // internal queueMicrotask batching delays processing by one microtask hop \u2014 and the\n // View Transitions API's \"activate\" step captures the new DOM state in between,\n // before Alpine has a chance to initialize the directive...\n setTransitionNames(fromEl, options)\n }\n\n let transitionConfig = { update }\n\n // Add transition types if provided...\n if (options.type) {\n transitionConfig.types = [options.type]\n }\n\n let cleanup = () => {\n style.remove()\n clearTransitionNames(fromEl)\n }\n\n // Watch for modal dialogs opening during the transition (e.g., via Alpine x-effect).\n // ::view-transition pseudo-elements paint above the top layer, so elements with\n // wire:transition would visually appear above dialog modals during animation.\n // This observer catches showModal() the instant it sets the `open` attribute\n // and skips the transition before the browser paints a frame...\n let skipOnDialog = (transition) => {\n let observer = new MutationObserver(() => {\n if (document.querySelector('dialog:modal')) {\n transition.skipTransition()\n observer.disconnect()\n }\n })\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['open'],\n subtree: true,\n })\n\n transition.finished.finally(() => observer.disconnect())\n }\n\n try {\n let transition = document.startViewTransition(transitionConfig)\n\n skipOnDialog(transition)\n\n transition.finished.finally(cleanup)\n\n await transition.updateCallbackDone\n } catch (e) {\n // Firefox 144+ supports View Transitions but only with a callback, not a config object (no transition types support)\n let transition = document.startViewTransition(update)\n\n skipOnDialog(transition)\n\n transition.finished.finally(cleanup)\n\n await transition.updateCallbackDone\n }\n}\n", "import { trigger } from \"@/hooks\"\nimport { findComponentByEl } from \"@/store\"\nimport Alpine from 'alpinejs'\nimport { extractFragmentMetadataFromMarkerNode, isEndFragmentMarker, isStartFragmentMarker } from \"./fragment\"\nimport { transitionDomMutation } from \"./directives/wire-transition\"\n\nexport async function morph(component, el, html) {\n let wrapperTag = getTagName(el.parentElement)\n\n let wrapper = document.createElement(wrapperTag)\n\n wrapper.innerHTML = html\n let parentComponent\n\n try {\n parentComponent = findComponentByEl(el.parentElement)\n } catch (e) {}\n\n parentComponent && (wrapper.__livewire = parentComponent)\n\n let to = wrapper.firstElementChild\n\n // Set the snapshot and effects on the `to` element that way if there's a\n // mismatch or problem the component will able to be re-initialized...\n to.setAttribute('wire:snapshot', component.snapshotEncoded)\n\n // Remove the 'html' key from the effects as the html will be morphed...\n let effects = { ...component.effects }\n delete effects.html\n to.setAttribute('wire:effects', JSON.stringify(effects))\n\n to.__livewire = component\n\n trigger('morph', { el, toEl: to, component })\n\n // Let's first do a lookup of all the child components to see if the component already\n // exists and if so we'll clone it and replace the child component with the clone.\n // This is to ensure that components don't loose state even if there might be a\n // `wire:key` missing from elements within a loop around the component...\n let existingComponentsMap = {}\n\n el.querySelectorAll('[wire\\\\:id]').forEach(component => {\n existingComponentsMap[component.getAttribute('wire:id')] = component\n })\n\n to.querySelectorAll('[wire\\\\:id]').forEach(child => {\n // If the child has a `wire:snapshot` it means it's new, so we don't need to find it...\n if (child.hasAttribute('wire:snapshot')) return\n\n let wireId = child.getAttribute('wire:id')\n let existingComponent = existingComponentsMap[wireId]\n\n if (existingComponent) {\n child.replaceWith(existingComponent.cloneNode(true))\n }\n })\n\n let transitionOptions = component.effects.transition || {}\n\n await transitionDomMutation(el, to, () => {\n Alpine.morph(el, to, getMorphConfig(component))\n }, transitionOptions)\n\n trigger('morphed', { el, component })\n}\n\nexport async function morphFragment(component, startNode, endNode, toHTML) {\n let fromContainer = startNode.parentElement\n let fromContainerTag = getTagName(fromContainer)\n\n let toContainer = document.createElement(fromContainerTag)\n toContainer.innerHTML = toHTML\n toContainer.__livewire = component\n\n // Add the parent component reference to an outer wrapper if it exists...\n let parentElement = component.el.parentElement\n let parentElementTag = getTagName(parentElement)\n\n let parentComponent\n\n try {\n parentComponent = parentElement ? findComponentByEl(parentElement) : null\n } catch (e) {}\n\n if (parentComponent) {\n let parentProviderWrapper = document.createElement(parentElementTag)\n parentProviderWrapper.appendChild(toContainer)\n parentProviderWrapper.__livewire = parentComponent\n }\n\n trigger('island.morph', { startNode, endNode, component })\n\n let transitionOptions = component.effects.transition || {}\n\n // Check if the island's own content has [wire:transition] elements.\n // Without this, the parent element (which contains everything) would be\n // passed to transitionDomMutation, causing it to find [wire:transition]\n // elements outside the island and trigger spurious view transitions...\n let islandHasTransition = false\n let node = startNode.nextSibling\n while (node && node !== endNode) {\n if (node.nodeType === 1 && (node.hasAttribute?.('wire:transition') || node.querySelector?.('[wire\\\\:transition]'))) {\n islandHasTransition = true\n break\n }\n node = node.nextSibling\n }\n\n let fromEl = islandHasTransition ? fromContainer : document.createElement('div')\n\n await transitionDomMutation(fromEl, toContainer, () => {\n Alpine.morphBetween(startNode, endNode, toContainer, getMorphConfig(component))\n }, transitionOptions)\n\n trigger('island.morphed', { startNode, endNode, component })\n}\n\nfunction getMorphConfig(component) {\n return {\n updating: (el, toEl, childrenOnly, skip, skipChildren, skipUntil) => {\n // Skip fragments...\n if (isStartFragmentMarker(el) && isStartFragmentMarker(toEl)) {\n let metadata = extractFragmentMetadataFromMarkerNode(toEl)\n\n if (metadata.mode !== 'morph') {\n skipUntil(node => {\n if (isEndFragmentMarker(node)) {\n let endMarkerMetadata = extractFragmentMetadataFromMarkerNode(node)\n\n return endMarkerMetadata.token === metadata.token\n }\n\n return false\n })\n }\n }\n\n if (isntElement(el)) return\n\n trigger('morph.updating', { el, toEl, component, skip, childrenOnly, skipChildren, skipUntil })\n\n // bypass DOM diffing for children by overwriting the content\n if (el.__livewire_replace === true) el.innerHTML = toEl.innerHTML;\n // completely bypass DOM diffing for this element and all children\n if (el.__livewire_replace_self === true) { el.outerHTML = toEl.outerHTML; return skip(); }\n\n if (el.__livewire_ignore === true) return skip()\n if (el.__livewire_ignore_self === true) childrenOnly()\n if (el.__livewire_ignore_children === true) return skipChildren()\n\n // Children will update themselves.\n if (isComponentRootEl(el) && el.getAttribute('wire:id') !== component.id) return skip()\n\n // Give the root Livewire \"to\" element, the same object reference as the \"from\"\n // element. This ensures new Alpine magics like $wire and @entangle can\n // initialize in the context of a real Livewire component object.\n if (isComponentRootEl(el)) toEl.__livewire = component\n },\n\n updated: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.updated', { el, component })\n },\n\n removing: (el, skip) => {\n if (isntElement(el)) return\n\n trigger('morph.removing', { el, component, skip })\n },\n\n removed: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.removed', { el, component })\n },\n\n adding: (el) => {\n trigger('morph.adding', { el, component })\n },\n\n added: (el) => {\n if (isntElement(el)) return\n\n trigger('morph.added', { el })\n },\n\n key: (el) => {\n if (isntElement(el)) return\n\n return el.hasAttribute(`wire:id`)\n ? el.getAttribute(`wire:id`)\n : // If no component \"id\", then first check for \"wire:key\", then \"id\"\n el.hasAttribute(`wire:key`)\n ? el.getAttribute(`wire:key`)\n : el.id\n },\n\n lookahead: false,\n }\n}\n\nfunction isntElement(el) {\n return typeof el.hasAttribute !== 'function'\n}\n\nfunction isComponentRootEl(el) {\n return el.hasAttribute('wire:id')\n}\n\nexport function getTagName(el) {\n // If the root element is a \"tr\", we need the wrapper to be a \"table\"...\n let tag = el ? el.tagName.toLowerCase() : 'div'\n\n // If the tag is a custom element, we can't instantiate it using the hyphenated\n // tag name, so we need to get the name off the custom element instead...\n let customElement = customElements.get(tag)\n\n return customElement ? customElement.name : tag\n}", "import { morph } from \"@/morph\";\nimport { interceptMessage } from \"@/request\";\n\ninterceptMessage(({ message, onSuccess }) => {\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let html = payload.effects.html\n\n if (! html) return\n\n await morph(message.component, message.component.el, html)\n })\n })\n})\n", "import { dispatch, dispatchEl, dispatchRef, dispatchSelf, dispatchTo } from '@/events'\nimport { on } from '@/hooks'\n\non('effect', ({ component, effects }) => {\n // Wrapping this in a triple queueMicrotask...\n // The first one puts it after all other \"effect\" hooks...\n // The second one puts it after all reactive Alpine effects\n // (that are processed via flushJobs in scheduler)...\n // The third one puts it after morph changes have been applied...\n queueMicrotask(() => {\n queueMicrotask(() => {\n queueMicrotask(() => {\n dispatchEvents(component, effects.dispatches || [])\n })\n })\n })\n})\n\nfunction dispatchEvents(component, dispatches) {\n dispatches.forEach(({ name, params = {}, self = false, component: componentName, ref, el }) => {\n if (self) dispatchSelf(component, name, params)\n else if (componentName) dispatchTo(componentName, name, params)\n else if (ref) dispatchRef(component, ref, name, params)\n else if (el) dispatchEl(component, el, name, params)\n else dispatch(component, name, params)\n })\n}\n", "import { getDirectives } from '@/directives'\nimport { on } from '@/hooks'\nimport { Bag } from '@/utils'\nimport Alpine from 'alpinejs'\n\nlet cleanups = new Bag\n\n// Adding a setTimeout here so that these event listeners are\n// registered AFTER most other event listenrs, this way, we\n// can call \"stopPropagation\" for things like wire:confirm\non('directive.init', ({ el, directive, cleanup, component }) => setTimeout(() => {\n if (directive.value !== 'submit') return\n\n // Livewire will clean it all up automatically when the form\n // submission returns and the new DOM lacks these additions...\n el.addEventListener('submit', () => {\n // If using wire:submit=\"$parent...\", we will need to use\n // the parent ID as a reference for undoing because it's\n // the ID that will come back from the network request.\n let componentId = directive.expression.startsWith('$parent')\n ? component.parent.id\n : component.id\n\n let cleanup = disableForm(el)\n\n cleanups.add(componentId, cleanup)\n })\n}))\n\non('commit', ({ component, respond }) => {\n respond(() => {\n cleanups.each(component.id, i => i())\n cleanups.remove(component.id)\n })\n})\n\nfunction disableForm(formEl) {\n let undos = []\n\n Alpine.walk(formEl, (el, skip) => {\n if (! formEl.contains(el)) return\n\n if (el.hasAttribute('wire:ignore')) return skip()\n\n if (shouldMarkDisabled(el)) {\n undos.push(markDisabled(el))\n } else if (shouldMarkReadOnly(el)) {\n undos.push(markReadOnly(el))\n }\n })\n\n return () => {\n while (undos.length > 0) undos.shift()()\n }\n}\n\nfunction shouldMarkDisabled(el) {\n let tag = el.tagName.toLowerCase()\n let inputTypesThatDontSupportReadonly = [\n 'hidden', 'range', 'color', 'checkbox', 'radio',\n 'file', 'submit', 'image', 'reset', 'button'\n ]\n\n if (tag === 'select') return true\n if (tag === 'button' && el.type === 'submit') return true\n if (tag === 'input' && inputTypesThatDontSupportReadonly.includes(el.type)) return true\n\n return false\n}\n\nfunction shouldMarkReadOnly(el) {\n return ['input', 'textarea'].includes(el.tagName.toLowerCase())\n}\n\nfunction markDisabled(el) {\n let undo = el.disabled\n ? () => {}\n : () => el.disabled = false\n\n el.disabled = true\n\n return undo\n}\n\nfunction markReadOnly(el) {\n let undo = el.readOnly\n ? () => {}\n : () => el.readOnly = false\n\n el.readOnly = true\n\n return undo\n}\n", "import { on } from '@/hooks'\n\non('commit', ({ succeed }) => {\n succeed(({ effects }) => {\n let download = effects.download\n\n if (! download) return\n\n // We need to use window.webkitURL so downloads work on iOS Safari.\n let urlObject = window.webkitURL || window.URL\n\n let url = urlObject.createObjectURL(\n base64toBlob(download.content, download.contentType)\n )\n\n let invisibleLink = document.createElement('a')\n\n invisibleLink.style.display = 'none'\n invisibleLink.href = url\n invisibleLink.download = download.name\n\n document.body.appendChild(invisibleLink)\n\n invisibleLink.click()\n\n setTimeout(function() {\n urlObject.revokeObjectURL(url)\n }, 0);\n })\n})\n\nfunction base64toBlob(b64Data, contentType = '', sliceSize = 512) {\n const byteCharacters = atob(b64Data)\n const byteArrays = []\n\n if (contentType === null) contentType = ''\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n let slice = byteCharacters.slice(offset, offset + sliceSize)\n\n let byteNumbers = new Array(slice.length)\n\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i)\n }\n\n let byteArray = new Uint8Array(byteNumbers)\n\n byteArrays.push(byteArray)\n }\n\n return new Blob(byteArrays, { type: contentType });\n}\n", "import { on } from '@/hooks'\nimport { dataGet } from '@/utils'\nimport Alpine from 'alpinejs'\nimport { track } from '@/plugins/history'\n\non('effect', ({ component, effects, cleanup }) => {\n let queryString = effects['url']\n\n if (! queryString) return\n\n Object.entries(queryString).forEach(([key, value]) => {\n let { name, as, use, alwaysShow, except } = normalizeQueryStringEntry(key, value)\n\n if (! as) as = name\n\n let initialValue = [false, null, undefined].includes(except) ? dataGet(component.ephemeral, name) : except\n\n let { replace, push, pop } = track(as, initialValue, alwaysShow, except)\n\n if (use === 'replace') {\n let effectReference = Alpine.effect(() => {\n replace(dataGet(component.reactive, name))\n })\n\n cleanup(() => Alpine.release(effectReference))\n } else if (use === 'push') {\n let popNavigating = false\n\n let forgetCommitHandler = on('commit', ({ component: commitComponent, succeed }) => {\n if (component !== commitComponent) return\n\n let beforeValue = dataGet(component.canonical, name)\n\n succeed(() => {\n let afterValue = dataGet(component.canonical, name)\n\n if (JSON.stringify(beforeValue) === JSON.stringify(afterValue)) return\n\n // If we're handling a popstate (back/forward navigation), use\n // replaceState instead of pushState so we don't wipe out the\n // forward history entries...\n if (popNavigating) {\n replace(afterValue)\n } else {\n push(afterValue)\n }\n })\n })\n\n let forgetPopHandler = pop(async newValue => {\n popNavigating = true\n\n await component.$wire.set(name, newValue)\n\n // @todo: this is the absolute worst thing ever I'm so sorry this needs to be refactored stat:\n document.querySelectorAll('input').forEach(el => {\n el._x_forceModelUpdate && el._x_forceModelUpdate(el._x_model.get())\n })\n\n // Use requestAnimationFrame to ensure the flag stays true through\n // the succeed callback which fires in a requestAnimationFrame...\n requestAnimationFrame(() => popNavigating = false)\n })\n\n // If the current property value differs from the initial value\n // (e.g. restored from session), sync the URL via replaceState...\n let currentValue = dataGet(component.ephemeral, name)\n\n if (JSON.stringify(currentValue) !== JSON.stringify(initialValue)) {\n replace(currentValue)\n }\n\n cleanup(() => {\n forgetCommitHandler()\n forgetPopHandler()\n })\n }\n })\n})\n\nfunction normalizeQueryStringEntry(key, value) {\n let defaults = { use: 'replace', alwaysShow: false }\n\n if (typeof value === 'string') {\n return {...defaults, name: value, as: value }\n } else {\n let fullerDefaults = {...defaults, name: key, as: key }\n\n return {...fullerDefaults, ...value }\n }\n}\n", "import { on } from '@/hooks'\nimport { dispatchSelf } from '@/events'\n\non('request', ({ options }) => {\n if (window.Echo) {\n options.headers['X-Socket-ID'] = window.Echo.socketId()\n }\n})\n\non('effect', ({ component, effects }) => {\n let listeners = effects.listeners || []\n\n listeners.forEach(event => {\n if (event.startsWith('echo')) {\n if (typeof window.Echo === 'undefined') {\n console.warn('Laravel Echo cannot be found')\n\n return\n }\n\n let event_parts = event.split(/(echo:|echo-)|:|,/)\n\n if (event_parts[1] == 'echo:') {\n event_parts.splice(2, 0, 'channel', undefined)\n }\n\n if (event_parts[2] == 'notification') {\n event_parts.push(undefined, undefined)\n }\n\n let [\n s1,\n signature,\n channel_type,\n s2,\n channel,\n s3,\n event_name,\n ] = event_parts\n\n if (['channel', 'private', 'encryptedPrivate'].includes(channel_type)) {\n let handler = e => dispatchSelf(component, event, [e])\n\n window.Echo[channel_type](channel).listen(event_name, handler)\n\n component.addCleanup(() => {\n window.Echo[channel_type](channel).stopListening(event_name, handler)\n })\n } else if (channel_type == 'presence') {\n if (['here', 'joining', 'leaving'].includes(event_name)) {\n window.Echo.join(channel)[event_name](e => {\n dispatchSelf(component, event, [e])\n })\n\n component.addCleanup(() => {\n window.Echo.leave(channel)\n })\n } else{\n let handler = e => dispatchSelf(component, event, [e])\n\n window.Echo.join(channel).listen(event_name, handler)\n\n component.addCleanup(() => {\n window.Echo.leave(channel)\n })\n }\n } else if (channel_type == 'notification') {\n window.Echo.private(channel).notification(notification => {\n dispatchSelf(component, event, [notification])\n })\n\n component.addCleanup(() => {\n window.Echo.private(channel).stopListening('.Illuminate\\\\Notifications\\\\Events\\\\BroadcastNotificationCreated')\n })\n } else {\n console.warn('Echo channel type not yet supported')\n }\n }\n })\n})\n", "import { findRefEl } from '@/features/supportRefs'\nimport { interceptMessage } from '@/request'\nimport { findComponent } from '@/store'\n\ninterceptMessage(({ message, onStream }) => {\n onStream(({ json }) => {\n let { id, type, name, el, ref, content, mode } = json\n\n // Early return for islands because they are handled by the islands feature...\n if (type === 'island') return\n\n let component = findComponent(id)\n\n let targetEl = null\n\n if (type === 'directive') {\n const replaceEl = component.el.querySelector(`[wire\\\\:stream\\\\.replace=\"${name}\"]`)\n\n if (replaceEl) {\n targetEl = replaceEl\n mode = 'replace'\n } else {\n targetEl = component.el.querySelector(`[wire\\\\:stream=\"${name}\"]`)\n }\n } else if (type === 'ref') {\n targetEl = findRefEl(component, ref)\n } else if (type === 'element') {\n targetEl = component.el.querySelector(el)\n }\n\n if (! targetEl) return // Noop...\n\n if (mode === 'replace') {\n targetEl.innerHTML = content\n } else {\n targetEl.insertAdjacentHTML('beforeend', content)\n }\n })\n})\n", "document.addEventListener('livewire:initialized', () => {\n shouldHideProgressBar() && Alpine.navigate.disableProgressBar()\n})\n\ndocument.addEventListener('alpine:navigate', e => forwardEvent('livewire:navigate', e))\ndocument.addEventListener('alpine:navigating', e => forwardEvent('livewire:navigating', e))\ndocument.addEventListener('alpine:navigated', e => forwardEvent('livewire:navigated', e))\n\nfunction forwardEvent(name, original) {\n let event = new CustomEvent(name, { cancelable: true, bubbles: true, detail: original.detail })\n\n document.dispatchEvent(event)\n\n if (event.defaultPrevented) {\n original.preventDefault()\n }\n}\n\nexport function shouldRedirectUsingNavigateOr(effects, url, or) {\n let forceNavigate = effects.redirectUsingNavigate\n\n if (forceNavigate) {\n Alpine.navigate(url)\n } else {\n or()\n }\n}\n\nfunction shouldHideProgressBar() {\n if (!! document.querySelector('[data-no-progress-bar]')) return true\n\n if (window.livewireScriptConfig && window.livewireScriptConfig.progressBar === 'data-no-progress-bar') return true\n\n return false\n}\n", "import { on } from \"@/hooks\"\nimport { shouldRedirectUsingNavigateOr } from \"./supportNavigate\"\n\non('effect', ({ effects, request }) => {\n if (! effects['redirect']) return\n\n let preventDefault = false\n\n request.invokeOnRedirect({ url: effects['redirect'], preventDefault: () => preventDefault = true })\n\n if (preventDefault) return\n\n let url = effects['redirect']\n\n shouldRedirectUsingNavigateOr(effects, url, () => {\n window.location.href = url\n })\n})\n", "import { closestFragment, extractFragmentMetadataFromHtml, extractInnerHtmlFromFragmentHtml, findFragment } from '@/fragment'\nimport { interceptAction, interceptMessage } from '@/request'\nimport { morphFragment, getTagName } from '@/morph'\n\ninterceptAction(({ action }) => {\n let origin = action.origin\n\n if (! origin) return\n\n let { el, directive } = origin\n\n // Check for wire:island with modifiers (e.g., wire:island.append=\"foo\")\n let islandAttr = Array.from(el.attributes).find(attr => attr.name.startsWith('wire:island'))\n\n if (islandAttr) {\n let islandName = islandAttr.value\n\n // Parse modifiers from attribute name (e.g., \"wire:island.append\" -> [\"append\"])\n let attrParts = islandAttr.name.split('.')\n let isPrepend = attrParts.includes('prepend')\n let isAppend = attrParts.includes('append')\n\n let mode = isPrepend ? 'prepend' : (isAppend ? 'append' : 'morph')\n\n action.mergeMetadata({\n island: {\n name: islandName,\n mode: mode,\n }\n })\n\n return\n }\n\n let fragment = closestIsland(origin.el)\n\n if (! fragment) return\n\n action.mergeMetadata({\n island: {\n name: fragment.metadata.name,\n mode: 'morph',\n }\n })\n})\n\ninterceptMessage(({ message, onSuccess, onStream }) => {\n onStream(({ json }) => {\n let { type, islandFragment } = json\n\n if (type !== 'island') return\n\n renderIsland(message.component, islandFragment)\n })\n\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let fragments = payload.effects.islandFragments || []\n\n fragments.forEach(async fragmentHtml => {\n await renderIsland(message.component, fragmentHtml)\n })\n })\n })\n})\n\nexport function closestIsland(el) {\n return closestFragment(el, {\n isMatch: ({ type }) => {\n return type === 'island'\n },\n })\n}\n\nexport async function renderIsland(component, islandHtml) {\n let metadata = extractFragmentMetadataFromHtml(islandHtml)\n\n let fragment = findFragment(component.el, {\n isMatch: ({ type, token }) => {\n return type === metadata.type && token === metadata.token\n },\n })\n\n if (! fragment) return\n\n let incomingMetadata = extractFragmentMetadataFromHtml(islandHtml)\n let strippedContent = extractInnerHtmlFromFragmentHtml(islandHtml)\n\n let parentElementTag = getTagName(fragment.startMarkerNode.parentElement)\n\n let mode = incomingMetadata.mode || 'morph'\n\n if (mode === 'morph') {\n await morphFragment(component, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent)\n } else if (mode === 'append') {\n fragment.append(parentElementTag, strippedContent)\n } else if (mode === 'prepend') {\n fragment.prepend(parentElementTag, strippedContent)\n }\n}\n", "import { extractFragmentMetadataFromHtml, extractInnerHtmlFromFragmentHtml, findFragment } from '@/fragment'\nimport { interceptMessage } from '@/request'\nimport { findComponent } from '@/store'\nimport { morphFragment } from '@/morph'\n\ninterceptMessage(({ message, onSuccess, onStream }) => {\n onSuccess(({ payload, onMorph }) => {\n onMorph(async () => {\n let fragments = payload.effects.slotFragments || []\n\n fragments.forEach(async fragmentHtml => {\n await renderSlot(message.component, fragmentHtml)\n })\n })\n })\n})\n\nexport async function renderSlot(component, fragmentHtml) {\n let metadata = extractFragmentMetadataFromHtml(fragmentHtml)\n\n let targetComponent = findComponent(metadata.id)\n\n let fragment = findFragment(targetComponent.el, {\n isMatch: ({ name, token }) => {\n return name === metadata.name && token === metadata.token\n },\n })\n\n if (! fragment) return\n\n let strippedContent = extractInnerHtmlFromFragmentHtml(fragmentHtml)\n\n await morphFragment(targetComponent, fragment.startMarkerNode, fragment.endMarkerNode, strippedContent)\n}\n", "import { interceptMessage } from '@/request'\n\ninterceptMessage(({ message, onSend, onFinish }) => {\n let undos = []\n\n onSend(() => {\n message.actions.forEach(action => {\n let origin = action.origin\n\n if (! origin) return\n\n // Use targetEl if explicitly set (can be null to skip data-loading entirely)\n let el = origin.hasOwnProperty('targetEl') ? origin.targetEl : origin.el\n\n // Skip if no element to apply data-loading to\n if (! el) return\n\n el.setAttribute('data-loading', 'true')\n\n undos.push(() => {\n el.removeAttribute('data-loading')\n })\n })\n })\n\n onFinish(() => undos.forEach(undo => undo()))\n})\n", "import { globalDirective } from \"@/directives\"\nimport Alpine from 'alpinejs'\n\nAlpine.addInitSelector(() => `[wire\\\\:current]`)\n\nlet onPageChanges = new Map\n\ndocument.addEventListener('livewire:navigated', () => {\n onPageChanges.forEach(i => i(new URL(window.location.href)))\n})\n\nglobalDirective('current', ({ el, directive, cleanup }) => {\n let expression = directive.expression\n\n let options = {\n exact: directive.modifiers.includes('exact'),\n strict: directive.modifiers.includes('strict'),\n ignore: directive.modifiers.includes('ignore'),\n }\n\n if (options.ignore) return\n\n // Fragment hrefs aren't supported as of yet...\n if (expression.startsWith('#')) return\n\n // If there is no href, let's not do anything...\n if (! el.hasAttribute('href')) return\n\n let href = el.getAttribute('href')\n\n let hrefUrl = new URL(href, window.location.href)\n\n let classes = expression.split(' ').filter(String)\n\n let refreshCurrent = url => {\n if (pathMatches(hrefUrl, url, options)) {\n el.classList.add(...classes)\n el.setAttribute('data-current', '')\n } else {\n el.classList.remove(...classes)\n el.removeAttribute('data-current')\n }\n }\n\n refreshCurrent(new URL(window.location.href))\n\n onPageChanges.set(el, refreshCurrent)\n\n cleanup(() => onPageChanges.delete(el))\n})\n\nexport function pathMatches(hrefUrl, actualUrl, options = {}) {\n // If the domains/hostnames don't match, we are not going to match...\n if (hrefUrl.hostname !== actualUrl.hostname) return false\n\n // Remove trailing slashes for consistency (if not .strict)...\n let hrefPath = options.strict ? hrefUrl.pathname : hrefUrl.pathname.replace(/\\/+$/, '')\n let actualPath = options.strict ? actualUrl.pathname : actualUrl.pathname.replace(/\\/+$/, '')\n\n if (options.exact) {\n return hrefPath === actualPath\n }\n\n let hrefPathSegments = hrefPath.split('/')\n let actualPathSegments = actualPath.split('/')\n\n\n for (let i = 0; i < hrefPathSegments.length; i++) {\n if (hrefPathSegments[i] !== actualPathSegments[i]) return false\n }\n\n return true\n}\n", "import Alpine from 'alpinejs'\n\n// Export all wire:navigate variations for use in other files\nexport let wireNavigateSelectors = [\n '[wire\\\\:navigate]',\n '[wire\\\\:navigate\\\\.hover]',\n '[wire\\\\:navigate\\\\.preserve-scroll]',\n '[wire\\\\:navigate\\\\.preserve-scroll\\\\.hover]',\n '[wire\\\\:navigate\\\\.hover\\\\.preserve-scroll]',\n]\n\n// Combined selector for querying all wire:navigate elements\nexport let wireNavigateSelector = wireNavigateSelectors.join(', ')\n\n// Attribute to Alpine directive mapping\nlet attributeMap = {\n 'wire:navigate': 'x-navigate',\n 'wire:navigate.hover': 'x-navigate.hover',\n 'wire:navigate.preserve-scroll': 'x-navigate.preserve-scroll',\n 'wire:navigate.preserve-scroll.hover': 'x-navigate.preserve-scroll.hover',\n 'wire:navigate.hover.preserve-scroll': 'x-navigate.hover.preserve-scroll',\n}\n\n// Register all selectors with Alpine\nwireNavigateSelectors.forEach(selector => {\n Alpine.addInitSelector(() => selector)\n})\n\nAlpine.interceptInit(\n Alpine.skipDuringClone(el => {\n // Find which wire:navigate attribute this element has\n for (let [wireAttr, alpineDirective] of Object.entries(attributeMap)) {\n if (el.hasAttribute(wireAttr)) {\n Alpine.bind(el, { [alpineDirective]: true })\n break\n }\n }\n })\n)\n\ndocument.addEventListener('alpine:navigating', () => {\n // Before navigating away, we'll inscribe the latest state of each component\n // in their HTML so that upon return, they will have the latest state...\n Livewire.all().forEach(component => {\n component.inscribeSnapshotAndEffectsOnElement()\n })\n})\n", "import { pathMatches } from '@/directives/wire-current'\nimport { wireNavigateSelector } from '@/directives/wire-navigate'\n\ndocument.addEventListener('livewire:navigated', () => {\n updateNavigateLinks()\n})\n\n// Also run on initial page load\ndocument.addEventListener('DOMContentLoaded', () => {\n updateNavigateLinks()\n})\n\nfunction updateNavigateLinks() {\n let currentUrl = new URL(window.location.href)\n let options = {\n exact: true,\n }\n\n // Find all links with any wire:navigate variation\n document.querySelectorAll(wireNavigateSelector).forEach(el => {\n // If the element has `wire:current` then the user might want to specify strict or \n // exact matching, so we will just return early so we don't override that...\n if (Array.from(el.attributes).some(attr => attr.name.startsWith('wire:current'))) return\n\n // Fragment hrefs aren't supported...\n let href = el.getAttribute('href')\n\n if (! href || href.startsWith('#')) return\n\n try {\n let hrefUrl = new URL(href, window.location.href)\n\n // Check if this link matches the current URL (using default partial matching)\n if (pathMatches(hrefUrl, currentUrl, options)) {\n el.setAttribute('data-current', '')\n } else {\n el.removeAttribute('data-current')\n }\n } catch (e) {\n // Invalid URL, skip\n }\n })\n}\n", "import { interceptMessage } from '@/request'\n\ninterceptMessage(({ message, onSuccess }) => {\n onSuccess(({ onSync, onMorph, onRender }) => {\n message.actions.forEach(action => {\n let origin = action.origin\n\n if (! origin || ! origin.directive) return\n\n let directive = origin.directive\n\n if (! directive.modifiers.includes('preserve-scroll')) return\n\n let oldHeight\n let oldScroll\n\n onSync(() => {\n oldHeight = document.body.scrollHeight\n oldScroll = window.scrollY\n })\n\n onMorph(async () => {\n let heightDiff = document.body.scrollHeight - oldHeight\n window.scrollTo(0, oldScroll + heightDiff)\n\n oldHeight = null\n oldScroll = null\n })\n })\n })\n})\n", "import Alpine from 'alpinejs'\nimport { extractDirective } from '@/directives'\nimport { evaluateActionExpression } from '@/evaluator'\nimport { findComponentByEl } from '@/store'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:intersect')) {\n let { name, value } = el.attributes[i]\n\n let directive = extractDirective(el, name)\n\n let modifierString = name.split('wire:intersect')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-intersect' + modifierString](e) {\n directive.eventContext = e\n\n let component = findComponentByEl(el, false)\n\n if (! component) return\n\n component.addActionContext({\n el,\n directive,\n })\n\n evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n", "import { setNextActionOrigin } from '@/request'\nimport { evaluateActionExpression } from '../evaluator'\nimport Alpine from 'alpinejs'\nimport { extractDirective } from '@/directives'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:sort:item')) {\n let directive = extractDirective(el, el.attributes[i].name)\n\n let modifierString = directive.modifiers.join('.')\n\n let expression = directive.expression\n\n Alpine.bind(el, {\n ['x-sort:item' + modifierString]() {\n return expression\n }\n })\n } else if (el.attributes[i].name.startsWith('wire:sort:group-id')) {\n // This will get read by the wire:sort handler below...\n continue\n } else if (el.attributes[i].name.startsWith('wire:sort:group')) {\n // This will get picked up by Alpine's x-sort source...\n return\n } else if (el.attributes[i].name.startsWith('wire:sort')) {\n let directive = extractDirective(el, el.attributes[i].name)\n\n let attribute = directive.rawName.replace('wire:', 'x-')\n\n // Strip .async from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('async')) {\n attribute = attribute.replace('.async', '')\n }\n\n // Strip .renderless from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('renderless')) {\n attribute = attribute.replace('.renderless', '')\n }\n\n // Strip .prepend from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('prepend')) {\n attribute = attribute.replace('.prepend', '')\n }\n\n // Strip .append from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('append')) {\n attribute = attribute.replace('.append', '')\n }\n\n let expression = directive.expression\n\n Alpine.bind(el, {\n [attribute]() {\n setNextActionOrigin({ el, directive })\n\n // Alpine's x-sort provides $position as the raw DOM index (e.newIndex\n // from SortableJS), which counts ALL children including non-sortable\n // siblings like wire:sort:ignore / x-sort:ignore elements. Recalculate\n // as the index among only sortable items (wire:sort:item / x-sort:item).\n let sortableChildren = Array.from(el.children).filter(child =>\n child.hasAttribute('x-sort:item') || child.hasAttribute('wire:sort:item')\n )\n let itemPosition = sortableChildren.findIndex(child => child._x_sort_key === this.$item)\n let position = itemPosition !== -1 ? itemPosition : this.$position\n\n let params = [this.$item, position]\n let scope = { $item: this.$item, $position: position }\n\n let sortId = el.getAttribute('wire:sort:group-id')\n\n if (sortId !== null) {\n params.push(sortId)\n scope.$id = sortId\n }\n\n evaluateActionExpression(el, expression, { scope, params })\n }\n })\n }\n }\n})", "import { on } from '@/hooks'\nimport { getModuleUrl, getNonce } from '@/utils'\n\nlet loadedStyles = new Set()\n\non('effect', ({ component, effects }) => {\n // Handle scoped styles\n if (effects.styleModule) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/css/${encodedName}.css?v=${effects.styleModule}`\n\n if (!loadedStyles.has(path)) {\n loadedStyles.add(path)\n injectStylesheet(path)\n }\n }\n\n // Handle global styles\n if (effects.globalStyleModule) {\n let encodedName = component.name.replace(/\\./g, '--').replace(/::/g, '---').replace(/:/g, '----')\n let path = `${getModuleUrl()}/css/${encodedName}.global.css?v=${effects.globalStyleModule}`\n\n if (!loadedStyles.has(path)) {\n loadedStyles.add(path)\n injectStylesheet(path)\n }\n }\n})\n\nfunction injectStylesheet(href) {\n let link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = href\n\n let nonce = getNonce()\n if (nonce) link.nonce = nonce\n\n document.head.appendChild(link)\n}\n", "import { WeakBag } from './utils'\n\nlet callbacksByComponent = new WeakBag\n\nexport function debounceByComponent(component, callback, time) {\n // Prepare yourself for what's happening here.\n // Any text input with wire:model on it should be \"debounced\" by ~150ms by default.\n // We can't use a simple debounce function because we need a way to clear all the pending\n // debounces if a user submits a form or performs some other action.\n // This is a modified debounce function that acts just like a debounce, except it stores\n // the pending callbacks in a global property so we can \"clear them\" on command instead\n // of waiting for their setTimeouts to expire. I know.\n\n // This is a \"null\" callback. Each wire:model will resister one of these upon initialization.\n let callbackRegister = { callback: () => { } }\n callbacksByComponent.add(component, callbackRegister)\n\n // This is a normal \"timeout\" for a debounce function.\n var timeout\n\n return e => {\n clearTimeout(timeout)\n\n timeout = setTimeout(() => {\n callback(e)\n timeout = undefined\n\n // Because we just called the callback, let's return the\n // callback register to it's normal \"null\" state.\n callbackRegister.callback = () => { }\n }, time)\n\n // Register the current callback in the register as a kind-of \"escape-hatch\".\n callbackRegister.callback = () => {\n clearTimeout(timeout)\n callback(e)\n }\n }\n}\n\nexport function callAndClearComponentDebounces(component, callback) {\n // This is to protect against the following scenario:\n // A user is typing into a debounced input, and hits the enter key.\n // If the enter key submits a form or something, the submission\n // will happen BEFORE the model input finishes syncing because\n // of the debounce. This makes sure to clear anything in the debounce queue.\n\n callbacksByComponent.each(component, callbackRegister => {\n callbackRegister.callback()\n callbackRegister.callback = () => { }\n })\n\n callback()\n}\n", "import { callAndClearComponentDebounces } from '@/debounce'\nimport { customDirectiveHasBeenRegistered } from '@/directives'\nimport { on } from '@/hooks'\nimport { setNextActionOrigin, setNextActionInterceptor } from '@/request'\nimport Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\non('directive.init', ({ el, directive, cleanup, component }) => {\n if (['snapshot', 'effects', 'model', 'init', 'loading', 'poll', 'ignore', 'id', 'data', 'key', 'target', 'dirty', 'sort'].includes(directive.value)) return\n if (customDirectiveHasBeenRegistered(directive.value)) return\n\n let attribute = directive.rawName.replace('wire:', 'x-on:')\n\n // Automatically add .prevent to wire:submit, if they didn't add it themselves...\n if (directive.value === 'submit' && ! directive.modifiers.includes('prevent')) {\n attribute = attribute + '.prevent'\n }\n\n // Strip .async from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('async')) {\n attribute = attribute.replace('.async', '')\n }\n\n // Strip .renderless from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('renderless')) {\n attribute = attribute.replace('.renderless', '')\n }\n\n // Strip .prepend from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('prepend')) {\n attribute = attribute.replace('.prepend', '')\n }\n\n // Strip .append from Alpine expression because it only concerns Livewire and trips up Alpine...\n if (directive.modifiers.includes('append')) {\n attribute = attribute.replace('.append', '')\n }\n\n let cleanupBinding = Alpine.bind(el, {\n [attribute](e) {\n directive.eventContext = e\n directive.wire = component.$wire\n\n let execute = () => {\n callAndClearComponentDebounces(component, () => {\n // For wire:submit, apply data-loading to the submit button, not the form\n if (directive.value === 'submit') {\n let submitButton = e.submitter || el.querySelector('button[type=\"submit\"], input[type=\"submit\"]')\n setNextActionOrigin({ el, directive, targetEl: submitButton })\n } else {\n setNextActionOrigin({ el, directive })\n }\n\n // Check for Livewire event options in $event.detail.livewire\n let livewireOptions = e.detail?.livewire\n\n if (livewireOptions?.interceptAction) {\n setNextActionInterceptor(livewireOptions.interceptAction)\n }\n\n let expression = directive.expression\n\n // Handle defaultParams - if expression has no parentheses, append the default params\n // This uses a simple heuristic: if the expression contains '(', we assume params\n // are already provided. This works for common cases like \"someMethod\" but will\n // skip adding params for edge cases like \"someMethod.bind(this)\" or \"obj['method()']\"\n if (livewireOptions?.defaultParams !== undefined && !expression.includes('(')) {\n let params = Array.isArray(livewireOptions.defaultParams)\n ? livewireOptions.defaultParams\n : [livewireOptions.defaultParams]\n expression = expression + '(' + params.map((p) => JSON.stringify(p)).join(', ') + ')'\n }\n\n evaluateActionExpression(el, expression, { scope: { $event: e } })\n })\n }\n\n // Account for the existance of wire:confirm=\"...\" on the action...\n if (el.__livewire_confirm) {\n el.__livewire_confirm(() => {\n execute()\n }, () => {\n e.stopImmediatePropagation()\n })\n } else {\n execute()\n }\n }\n })\n\n cleanup(cleanupBinding)\n})\n", "import { directive } from \"@/directives\"\n\ndirective('confirm', ({ el, directive }) => {\n let message = directive.expression\n let shouldPrompt = directive.modifiers.includes('prompt')\n\n // Convert sanitized linebreaks (\"\\n\") to real line breaks...\n message = message.replaceAll('\\\\n', '\\n')\n\n if (message === '') message = 'Are you sure?'\n\n el.__livewire_confirm = (action, instead) => {\n if (shouldPrompt) {\n let [question, expected] = message.split('|')\n\n if (! expected) {\n console.warn('Livewire: Must provide expectation with wire:confirm.prompt')\n } else {\n let input = prompt(question)\n\n if (input === expected) {\n action()\n } else {\n instead()\n }\n }\n } else {\n if (confirm(message)) action()\n else instead()\n }\n }\n})\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive } from '@/directives'\n\nlet offlineHandlers = new Set\nlet onlineHandlers = new Set\n\nwindow.addEventListener('offline', () => offlineHandlers.forEach(i => i()))\nwindow.addEventListener('online', () => onlineHandlers.forEach(i => i()))\n\ndirective('offline', ({ el, directive, cleanup }) => {\n let setOffline = () => toggleBooleanStateDirective(el, directive, true)\n let setOnline = () => toggleBooleanStateDirective(el, directive, false)\n\n offlineHandlers.add(setOffline)\n onlineHandlers.add(setOnline)\n\n cleanup(() => {\n offlineHandlers.delete(setOffline)\n onlineHandlers.delete(setOnline)\n })\n})\n", "import { toggleBooleanStateDirective } from './shared'\nimport { directive, getDirectives } from \"@/directives\"\nimport { closestIsland } from '@/features/supportIslands'\nimport { interceptMessage } from '@/request'\nimport { listen } from '@/utils'\n\ndirective('loading', ({ el, directive, component, cleanup }) => {\n let { targets, inverted } = getTargets(el)\n\n let [delay, abortDelay] = applyDelay(directive)\n\n let cleanupA = whenTargetsArePartOfRequest(component, el, targets, inverted, [\n () => delay(() => toggleBooleanStateDirective(el, directive, true)),\n () => abortDelay(() => toggleBooleanStateDirective(el, directive, false)),\n ])\n\n let cleanupB = whenTargetsArePartOfFileUpload(component, targets, [\n () => delay(() => toggleBooleanStateDirective(el, directive, true)),\n () => abortDelay(() => toggleBooleanStateDirective(el, directive, false)),\n ])\n\n cleanup(() => {\n cleanupA()\n cleanupB()\n })\n})\n\nfunction applyDelay(directive) {\n if (! directive.modifiers.includes('delay') || directive.modifiers.includes('none')) return [i => i(), i => i()]\n\n let duration = 200\n\n let delayModifiers = {\n 'shortest': 50,\n 'shorter': 100,\n 'short': 150,\n 'default': 200,\n 'long': 300,\n 'longer': 500,\n 'longest': 1000,\n }\n\n Object.keys(delayModifiers).some(key => {\n if (directive.modifiers.includes(key)) {\n duration = delayModifiers[key]\n\n return true\n }\n })\n\n let timeout\n let started = false\n\n return [\n (callback) => { // Initiate delay...\n timeout = setTimeout(() => {\n callback()\n\n started = true\n }, duration)\n },\n async (callback) => { // Execute or abort...\n if (started) {\n await callback()\n started = false\n } else {\n clearTimeout(timeout)\n }\n },\n ]\n}\n\nfunction whenTargetsArePartOfRequest(component, el, targets, inverted, [ startLoading, endLoading ]) {\n return interceptMessage(({ message, onSend, onSuccess, onFinish }) => {\n if (component !== message.component) return\n\n // When explicit targets are set via wire:target, skip island scope filtering\n // and let the target matching handle scoping. This allows wire:loading to\n // respond to any request containing the target, regardless of island boundaries...\n if (targets.length === 0) {\n let island = closestIsland(el)\n\n // If an island is found, see if the message has an action for the island and return if not...\n if (island && ! message.hasActionForIsland(island)) {\n return\n }\n\n // If no island is found, see if the message has an action for the component and return if not...\n if (! island && ! message.hasActionForComponent()) {\n return\n }\n }\n\n let matches = true\n let cleared = false\n\n onSend(({ payload }) => {\n if (targets.length > 0 && containsTargets(payload, targets) === inverted) {\n matches = false\n }\n\n matches && startLoading()\n })\n\n // Clear loading before morph on success\n onSuccess(({ onEffect }) => {\n onEffect(() => {\n if (matches && ! cleared) {\n endLoading()\n cleared = true\n }\n })\n })\n\n // Clear loading on cancel/error/failure (onFinish fires immediately on these paths)\n onFinish(() => {\n if (matches && ! cleared) {\n endLoading()\n cleared = true\n }\n })\n })\n}\n\nfunction whenTargetsArePartOfFileUpload(component, targets, [ startLoading, endLoading ]) {\n let eventMismatch = e => {\n let { id, property } = e.detail\n\n if (id !== component.id) return true\n if (targets.length > 0 && ! targets.map(i => i.target).includes(property)) return true\n\n return false\n }\n\n let cleanupA = listen(window, 'livewire-upload-start', e => {\n if (eventMismatch(e)) return\n\n startLoading()\n })\n\n let cleanupB = listen(window, 'livewire-upload-finish', e => {\n if (eventMismatch(e)) return\n\n endLoading()\n })\n\n let cleanupC = listen(window, 'livewire-upload-error', e => {\n if (eventMismatch(e)) return\n\n endLoading()\n })\n\n return () => {\n cleanupA()\n cleanupB()\n cleanupC()\n }\n}\n\nfunction containsTargets(payload, targets) {\n let { updates, calls } = payload\n\n return targets.some(({ target, params }) => {\n if (params) {\n return calls.some(({ method, params: methodParams }) => {\n return target === method\n && params === quickHash(JSON.stringify(methodParams))\n })\n }\n\n let hasMatchingUpdate = Object.keys(updates).some(property => {\n // If the property is nested, like `foo.bar`, we need to check if the root `foo` is the target.\n if (property.includes('.')) {\n let propertyRoot = property.split('.')[0]\n\n if (propertyRoot === target) return true\n }\n\n return property === target\n })\n\n if (hasMatchingUpdate) return true\n\n if (calls.map(i => i.method).includes(target)) return true\n })\n}\n\nfunction getTargets(el) {\n let directives = getDirectives(el)\n\n let targets = []\n\n let inverted = false\n\n if (directives.has('target')) {\n let directive = directives.get('target')\n\n if (directive.modifiers.includes(\"except\")) inverted = true\n\n directive.methods.forEach(({ method, params }) => {\n targets.push({\n target: method,\n params: params && params.length > 0 ? quickHash(JSON.stringify(params)) : undefined\n })\n })\n } else {\n // If there is no wire:target, let's check for the existance of a wire:click=\"foo\" or something,\n // and automatically scope this loading directive to that action.\n let nonActionOrModelLivewireDirectives = [ 'init', 'dirty', 'offline', 'navigate', 'target', 'loading', 'poll', 'ignore', 'key', 'id' ]\n\n directives\n .all()\n .filter(i => ! nonActionOrModelLivewireDirectives.includes(i.value))\n .map(i => i.expression.split('(')[0])\n .forEach(target => targets.push({ target }))\n }\n\n return { targets, inverted }\n}\n\nfunction quickHash(subject) {\n return btoa(encodeURIComponent(subject))\n}\n", "import { directive } from \"@/directives\"\n\ndirective('replace', ({ el, directive }) => {\n if (directive.modifiers.includes('self')) {\n el.__livewire_replace_self = true\n } else {\n el.__livewire_replace = true\n }\n})\n", "import { directive } from \"@/directives\"\n\ndirective('ignore', ({ el, directive }) => {\n if (directive.modifiers.includes('self')) {\n el.__livewire_ignore_self = true\n } else if (directive.modifiers.includes('children')) {\n el.__livewire_ignore_children = true\n } else {\n el.__livewire_ignore = true\n }\n})\n", "import Alpine from 'alpinejs'\n\nAlpine.interceptInit(el => {\n if (el.hasAttribute('wire:cloak')) {\n Alpine.mutateDom(() => el.removeAttribute('wire:cloak'))\n }\n})\n", "import { directive } from '@/directives'\nimport { handleFileUpload } from '@/features/supportFileUploads'\nimport { findComponentByEl } from '@/store'\nimport { dataGet, dataSet } from '@/utils'\nimport { setNextActionMetadata, setNextActionOrigin } from '@/request'\nimport Alpine from 'alpinejs'\n\ndirective('model', ({ el, directive, component, cleanup }) => {\n // @todo: will need to probaby do this further upstream i just don't want to bog down the entire lifecycle right now...\n // this is to support slots properly...\n component = findComponentByEl(el)\n\n let { expression, modifiers } = directive\n\n if (! expression) {\n return console.warn('Livewire: [wire:model] is missing a value.', el)\n }\n\n if (componentIsMissingProperty(component, expression)) {\n return console.warn('Livewire: [wire:model=\"'+expression+'\"] property does not exist on component: ['+component.name+']', el)\n }\n\n // Handle file uploads differently...\n if (el.type && el.type.toLowerCase() === 'file') {\n return handleFileUpload(el, expression, component, cleanup)\n }\n\n // Split modifiers at .live boundary\n // Modifiers BEFORE .live control client-side (x-model) sync timing\n // Modifiers AFTER .live control network request timing\n let liveIndex = modifiers.indexOf('live')\n let isLive = liveIndex !== -1\n\n // Backwards compatibility: .lazy without .live implies .change.live\n let hasLazyWithoutLive = modifiers.includes('lazy') && ! isLive\n let shouldSendNetwork = isLive || hasLazyWithoutLive\n\n let ephemeralModifiers = isLive && ! hasLazyWithoutLive ? modifiers.slice(0, liveIndex) : modifiers.slice()\n let networkModifiers = isLive && ! hasLazyWithoutLive ? modifiers.slice(liveIndex + 1) : []\n\n // For .lazy backwards compat, trigger network on change\n if (hasLazyWithoutLive) {\n // Remove 'lazy' from ephemeralModifiers for .lazy backwards compat\n ephemeralModifiers = ephemeralModifiers.filter(m => m !== 'lazy')\n networkModifiers.push('change')\n }\n\n // Add self/deep modifier for event propagation control\n if (! (ephemeralModifiers.includes('deep') || networkModifiers.includes('deep'))) {\n if (! ephemeralModifiers.includes('self')) {\n ephemeralModifiers.push('self')\n }\n }\n\n // Extract ephemeral trigger modifiers (these control when x-model syncs)\n let ephemeralOnBlur = ephemeralModifiers.includes('blur')\n let ephemeralOnChange = ephemeralModifiers.includes('change') || ephemeralModifiers.includes('lazy')\n let ephemeralOnEnter = ephemeralModifiers.includes('enter')\n let hasEphemeralTriggers = ephemeralOnBlur || ephemeralOnChange || ephemeralOnEnter\n\n // Extract network trigger modifiers\n let networkOnBlur = networkModifiers.includes('blur')\n let networkOnChange = networkModifiers.includes('change') || networkModifiers.includes('lazy')\n let networkOnEnter = networkModifiers.includes('enter')\n let hasNetworkTriggers = networkOnBlur || networkOnChange || networkOnEnter\n let isDebounced = networkModifiers.includes('debounce')\n let isThrottled = networkModifiers.includes('throttle')\n\n // Trigger a network request\n let update = () => {\n setNextActionOrigin({ el, directive })\n\n if (isLive || isDebounced) {\n setNextActionMetadata({ type: 'model.live' })\n }\n\n expression.startsWith('$parent')\n ? component.$wire.$parent.$commit()\n : component.$wire.$commit()\n }\n\n let debouncedUpdate = update\n\n // Apply debounce/throttle from network modifiers\n if ((shouldSendNetwork && ! hasNetworkTriggers && isRealtimeInput(el)) || isDebounced) {\n debouncedUpdate = debounce(debouncedUpdate, parseModifierDuration(networkModifiers, 'debounce') || 150)\n }\n\n if (isThrottled) {\n debouncedUpdate = throttle(debouncedUpdate, parseModifierDuration(networkModifiers, 'throttle') || 150)\n }\n\n // Build the bindings object\n let bindings = {}\n\n // Network event listeners (for modifiers after .live, or .lazy backwards compat)\n if (shouldSendNetwork && networkOnBlur) {\n bindings['@blur'] = () => update()\n }\n\n if (shouldSendNetwork && networkOnChange) {\n bindings['@change'] = () => update()\n }\n\n if (shouldSendNetwork && networkOnEnter) {\n bindings['@keydown.enter'] = () => update()\n }\n\n // Build x-model modifier tail from ephemeral modifiers\n let xModelTail = getModifierTail(ephemeralModifiers)\n\n bindings['x-model' + xModelTail] = () => {\n return {\n get() {\n return dataGet(component.$wire, expression)\n },\n set(value) {\n dataSet(component.$wire, expression, value)\n\n // If .live is present and no specific network triggers, fire on every ephemeral sync\n if (shouldSendNetwork && ! hasNetworkTriggers) {\n debouncedUpdate()\n }\n },\n }\n }\n\n Alpine.bind(el, bindings)\n})\n\nfunction getModifierTail(modifiers) {\n // Filter out Livewire-specific modifiers that shouldn't go to x-model\n // Keep: blur, change, lazy, enter, self, deep, number, boolean, trim, fill\n // Remove: defer, live, debounce, throttle (and their durations)\n modifiers = modifiers.filter(i => ! [\n 'defer', 'live'\n ].includes(i))\n\n if (modifiers.includes('debounce')) {\n let index = modifiers.indexOf('debounce')\n let hasDuration = parseModifierDuration(modifiers, 'debounce') !== undefined\n\n // Delete the subsequent modifier if it's a duration...\n modifiers.splice(index, hasDuration ? 2 : 1)\n }\n\n if (modifiers.includes('throttle')) {\n let index = modifiers.indexOf('throttle')\n let hasDuration = parseModifierDuration(modifiers, 'throttle') !== undefined\n\n // Delete the subsequent modifier if it's a duration...\n modifiers.splice(index, hasDuration ? 2 : 1)\n }\n\n if (modifiers.length === 0) return ''\n\n return '.' + modifiers.join('.')\n}\n\nfunction isRealtimeInput(el) {\n return (\n ['INPUT', 'TEXTAREA'].includes(el.tagName.toUpperCase()) &&\n !['checkbox', 'radio'].includes(el.type)\n )\n || el.tagName.toUpperCase() === 'UI-SLIDER' // Flux UI\n || el.tagName.toUpperCase() === 'UI-COMPOSER' // Flux UI\n}\n\nfunction isDirty(subject, dirty) {\n // Check for exact match: wire:model=\"bob\" in ['bob']\n if (dirty.includes(subject)) return true\n\n // Check case of parent: wire:model=\"bob.1\" in ['bob']\n return dirty.some(i => subject.startsWith(i))\n}\n\nfunction componentIsMissingProperty(component, property) {\n if (property.startsWith('$parent')) {\n let parent = findComponentByEl(component.el.parentElement, false)\n\n if (! parent) return true\n\n return componentIsMissingProperty(parent, property.slice(7).replace(/^\\./, ''))\n }\n\n // Extract base property, handling both \"foo.bar\" and \"['foo'].bar\"\n let match = property.match(/^\\[['\"]?([^\\]'\"]+)['\"]?\\]/) || property.match(/^([^.\\[]+)/)\n let baseProperty = match[1]\n\n return ! Object.keys(component.canonical).includes(baseProperty)\n}\n\nfunction debounce(func, wait) {\n var timeout;\n\n return function() {\n var context = this, args = arguments;\n\n var later = function() {\n timeout = null\n\n func.apply(context, args)\n }\n\n clearTimeout(timeout)\n\n timeout = setTimeout(later, wait)\n }\n}\n\nfunction throttle(func, limit) {\n let inThrottle\n\n return function() {\n let context = this, args = arguments\n\n if (! inThrottle) {\n func.apply(context, args)\n\n inThrottle = true\n\n setTimeout(() => inThrottle = false, limit)\n }\n }\n}\n\nfunction parseModifierDuration(modifiers, key) {\n let index = modifiers.indexOf(key)\n if (index === -1) return undefined\n\n let nextModifier = modifiers[modifiers.indexOf(key)+1] || 'invalid-wait'\n let duration = nextModifier.split('ms')[0]\n\n return ! isNaN(duration) ? duration : undefined\n}", "import { directive } from \"@/directives\"\nimport { evaluateActionExpression } from '../evaluator'\nimport { setNextActionOrigin } from \"@/request\"\n\ndirective('init', ({ component, el, directive }) => {\n let fullMethod = directive.expression ? directive.expression : '$refresh'\n\n setNextActionOrigin({ el, directive })\n\n evaluateActionExpression(el, fullMethod)\n})\n", "import { directive, getDirectives } from \"@/directives\"\nimport { setNextActionMetadata, setNextActionOrigin, sessionIsExpired } from '@/request'\nimport { evaluateActionExpression } from '../evaluator'\n\ndirective('poll', ({ el, directive, component }) => {\n let interval = extractDurationFrom(directive.modifiers, 2000)\n\n let { start, pauseWhile, throttleWhile, stopWhen } = poll(() => {\n triggerComponentRequest(el, directive, component)\n }, interval)\n\n start()\n\n throttleWhile(() => theTabIsInTheBackground() && theDirectiveIsMissingKeepAlive(directive))\n pauseWhile(() => theDirectiveHasVisible(directive) && theElementIsNotInTheViewport(el))\n pauseWhile(() => theDirectiveIsOffTheElement(el))\n pauseWhile(() => livewireIsOffline())\n pauseWhile(() => sessionIsExpired())\n stopWhen(() => theElementIsDisconnected(el))\n})\n\nfunction triggerComponentRequest(el, directive, component) {\n // Set targetEl to null to prevent data-loading on poll actions\n setNextActionOrigin({ el, directive, targetEl: null })\n setNextActionMetadata({ type: 'poll' })\n\n let fullMethod = directive.expression ? directive.expression : '$refresh'\n\n evaluateActionExpression(el, fullMethod)\n}\n\nexport function poll(callback, interval = 2000) {\n let pauseConditions = []\n let throttleConditions = []\n let stopConditions = []\n\n return {\n start() {\n let clear = syncronizedInterval(interval, () => {\n if (stopConditions.some(i => i())) return clear()\n if (pauseConditions.some(i => i())) return\n if (throttleConditions.some(i => i()) && Math.random() < .95) return\n\n callback()\n })\n },\n pauseWhile(condition) {\n pauseConditions.push(condition)\n },\n throttleWhile(condition) {\n throttleConditions.push(condition)\n },\n stopWhen(condition) {\n stopConditions.push(condition)\n }\n }\n}\n\nlet clocks = []\n\nfunction syncronizedInterval(ms, callback) {\n if (! clocks[ms]) {\n let clock = {\n timer: setInterval(() => clock.callbacks.forEach(i => i()), ms),\n callbacks: new Set,\n }\n\n clocks[ms] = clock\n }\n\n clocks[ms].callbacks.add(callback)\n\n return () => {\n clocks[ms].callbacks.delete(callback)\n\n if (clocks[ms].callbacks.size === 0) {\n clearInterval(clocks[ms].timer)\n delete clocks[ms]\n }\n }\n}\n\nlet isOffline = false\n\nwindow.addEventListener('offline', () => isOffline = true)\nwindow.addEventListener('online', () => isOffline = false)\n\nexport function livewireIsOffline() {\n return isOffline\n}\n\nlet inBackground = false\n\ndocument.addEventListener('visibilitychange', () => { inBackground = document.hidden }, false)\n\nfunction theTabIsInTheBackground() {\n return inBackground\n}\n\nfunction theDirectiveIsOffTheElement(el) {\n return ! getDirectives(el).has('poll')\n}\n\nfunction theDirectiveIsMissingKeepAlive(directive) {\n return ! directive.modifiers.includes('keep-alive')\n}\n\nfunction theDirectiveHasVisible(directive) {\n return directive.modifiers.includes('visible')\n}\n\nfunction theElementIsNotInTheViewport(el) {\n let bounding = el.getBoundingClientRect()\n\n return ! (\n bounding.top < (window.innerHeight || document.documentElement.clientHeight) &&\n bounding.left < (window.innerWidth || document.documentElement.clientWidth) &&\n bounding.bottom > 0 &&\n bounding.right > 0\n )\n}\n\nexport function theElementIsDisconnected(el) {\n return el.isConnected === false\n}\n\nexport function extractDurationFrom(modifiers, defaultDuration) {\n let durationInMilliSeconds\n let durationInMilliSecondsString = modifiers.find(mod => mod.match(/([0-9]+)ms/))\n let durationInSecondsString = modifiers.find(mod => mod.match(/([0-9]+)s/))\n\n if (durationInMilliSecondsString) {\n durationInMilliSeconds = Number(durationInMilliSecondsString.replace('ms', ''))\n } else if (durationInSecondsString) {\n durationInMilliSeconds = Number(durationInSecondsString.replace('s', '')) * 1000\n }\n\n return durationInMilliSeconds || defaultDuration\n}\n", "import { evaluateActionExpression } from '../evaluator'\nimport Alpine from 'alpinejs'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:show')) {\n let { name, value } = el.attributes[i]\n\n let modifierString = name.split('wire:show')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-show' + modifierString]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})", "import Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:text')) {\n let { name, value } = el.attributes[i]\n\n let modifierString = name.split('wire:text')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-text' + modifierString]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n", "import Alpine from 'alpinejs'\nimport { evaluateActionExpression } from '../evaluator'\n\nAlpine.interceptInit(el => {\n for (let i = 0; i < el.attributes.length; i++) {\n if (el.attributes[i].name.startsWith('wire:bind:')) {\n let { name, value } = el.attributes[i]\n\n let remainder = name.split('wire:bind')[1]\n\n let expression = value.trim()\n\n Alpine.bind(el, {\n ['x-bind' + remainder]() {\n return evaluateActionExpression(el, expression)\n }\n })\n }\n }\n})\n", "import { dispatchGlobal as dispatch, dispatchTo, on } from './events'\nimport { find, first, getByName, all } from './store'\nimport { start } from './lifecycle'\nimport { on as hook, trigger, triggerAsync } from './hooks'\nimport { directive } from './directives'\nimport Alpine from 'alpinejs'\nimport { fireAction, interceptAction, interceptMessage, interceptRequest } from '@/request'\n\nlet Livewire = {\n directive,\n dispatchTo,\n // @todo: See if this can be injected from a v4 feature...\n interceptAction: (callback) => interceptAction(callback),\n interceptMessage: (callback) => interceptMessage(callback),\n interceptRequest: (callback) => interceptRequest(callback),\n fireAction: (component, method, params = [], metadata = {}) => fireAction(component, method, params, metadata),\n start,\n first,\n find,\n getByName,\n all,\n hook,\n trigger,\n triggerAsync,\n dispatch,\n on,\n get navigate() {\n return Alpine.navigate\n }\n}\n\nlet warnAboutMultipleInstancesOf = entity => console.warn(`Detected multiple instances of ${entity} running`)\n\nif (window.Livewire) warnAboutMultipleInstancesOf('Livewire')\nif (window.Alpine) warnAboutMultipleInstancesOf('Alpine')\n\n// Register features...\nimport './features/index'\n\n// Register directives...\nimport './directives/index'\n\n// Make globals...\nwindow.Livewire = Livewire\nwindow.Alpine = Alpine\n\nif (window.livewireScriptConfig === undefined) {\n window.Alpine.__fromLivewire = true\n\n document.addEventListener('DOMContentLoaded', () => {\n if (window.Alpine.__fromLivewire === undefined) {\n // If this is undefined, we know that an outside Alpine bundle\n // has been included on the page and will cause problems...\n warnAboutMultipleInstancesOf('Alpine')\n }\n\n // Start Livewire...\n Livewire.start()\n })\n}\n\nexport { Livewire, Alpine }\n"], + "mappings": "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", + "names": ["require_nprogress", "__commonJSMin", "exports", "module", "root", "factory", "NProgress", "Settings", "options", "key", "value", "n", "started", "clamp", "progress", "bar", "speed", "ease", "queue", "next", "css", "barPositionCSS", "work", "force", "amount", "initial", "current", "$promise", "fromStart", "addClass", "perc", "toBarPerc", "parent", "spinner", "removeElement", "removeClass", "bodyStyle", "vendorPrefix", "min", "max", "barCSS", "pending", "fn", "cssPrefixes", "cssProps", "camelCase", "string", "match", "letter", "getVendorProp", "name", "style", "i", "capName", "vendorName", "getStyleProp", "applyCss", "element", "prop", "properties", "args", "hasClass", "list", "classList", "oldList", "newList", "Bag", "key", "value", "callback", "WeakBag", "dispatch", "target", "name", "detail", "bubbles", "listen", "handler", "isObjecty", "subject", "isObject", "isArray", "isFunction", "isPrimitive", "deepClone", "obj", "deeplyEqual", "a", "b", "parsePathSegments", "path", "dataGet", "object", "key", "carry", "i", "dataSet", "value", "segments", "firstSegment", "restOfSegments", "nextSegment", "isArray", "isNumeric", "subject", "diff", "left", "right", "diffs", "path", "isObject", "isArray", "isPrimitive", "leftKeys", "rightKeys", "key", "i", "value", "diffAndConsolidate", "diffRecursive", "rootLeft", "rootRight", "convertedToObject", "hasNonNumericKeys", "arr", "k", "deeplyEqual", "dataGet", "childDiffs", "changedCount", "consolidatedCount", "totalChildren", "childPath", "result", "diffAndPatchRecursive", "target", "isObjecty", "b", "aNum", "extractData", "payload", "isSynthetic", "meta", "iValue", "subject", "getCsrfToken", "nonce", "getNonce", "elWithNonce", "replaceNoncesInHtml", "html", "nonceMatch", "newNonce", "cloneScriptTag", "el", "script", "attr", "getModuleUrl", "getUpdateUri", "contentIsFromDump", "content", "splitDumpFromContent", "dump", "walkUpwards", "callback", "current", "stop", "walkBackwards", "uploadManagers", "getUploadManager", "component", "manager", "UploadManager", "handleFileUpload", "el", "property", "cleanup", "start", "finish", "error", "cancel", "progress", "progressEvent", "percentCompleted", "eventHandler", "e", "value", "clearFileInputValue", "MessageBag", "name", "url", "payload", "tmpFilenames", "tmpFilename", "file", "finishCallback", "errorCallback", "progressCallback", "cancelledCallback", "files", "append", "uploadObject", "formData", "headers", "csrfToken", "getCsrfToken", "response", "method", "retrievePaths", "request", "key", "paths", "errors", "fileInfos", "uploadItem", "thing", "params", "callback", "upload", "component", "name", "file", "finishCallback", "errorCallback", "progressCallback", "cancelledCallback", "getUploadManager", "uploadMultiple", "files", "append", "removeUpload", "tmpFilename", "cancelUpload", "flushPending", "flushing", "queue", "lastFlushedIndex", "transactionActive", "scheduler", "callback", "queueJob", "startTransaction", "commitTransaction", "queueFlush", "job", "dequeueJob", "index", "flushJobs", "i", "reactive", "effect", "release", "raw", "shouldSchedule", "disableEffectScheduling", "setReactivityEngine", "engine", "task", "overrideEffect", "override", "elementBoundEffect", "el", "cleanup2", "effectReference", "watch", "getter", "firstTime", "oldValue", "oldValueJSON", "value", "newJSON", "previousValue", "transaction", "onAttributeAddeds", "onElRemoveds", "onElAddeds", "onElAdded", "onElRemoved", "onAttributesAdded", "onAttributeRemoved", "name", "cleanupAttributes", "names", "cleanupElement", "observer", "onMutate", "currentlyObserving", "startObservingMutations", "stopObservingMutations", "flushObserver", "queuedMutations", "records", "queueLengthWhenTriggered", "mutateDom", "result", "isCollecting", "deferredMutations", "deferMutations", "flushAndStopDeferringMutations", "mutations", "addedNodes", "removedNodes", "addedAttributes", "removedAttributes", "node", "add2", "remove", "attrs", "scope", "mergeProxies", "closestDataStack", "addScopeToNode", "data2", "referenceNode", "objects", "mergeProxyTrap", "keyInPrototypeChain", "obj", "key", "thisProxy", "collapseProxies", "target", "descriptor", "acc", "initInterceptors", "isObject3", "val", "recurse", "basePath", "enumerable", "path", "interceptor", "mutateObj", "get", "set", "initialValue", "initialize", "innerValue", "carry", "segment", "magics", "magic", "injectMagics", "memoizedUtilities", "getUtilities", "utilities", "getElementBoundUtilities", "utils", "tryCatch", "expression", "args", "e", "handleError", "errorHandler", "normalErrorHandler", "setErrorHandler", "handler4", "error2", "shouldAutoEvaluateFunctions", "dontAutoEvaluateFunctions", "cache", "evaluate", "extras", "evaluateLater", "theEvaluatorFunction", "setEvaluator", "newEvaluator", "theRawEvaluatorFunction", "setRawEvaluator", "normalEvaluator", "overriddenMagics", "dataStack", "evaluator", "generateEvaluatorFromFunction", "generateEvaluatorFromString", "func", "receiver", "scope2", "params", "context", "runIfTypeOfFunction", "evaluatorMemo", "generateFunctionFromString", "AsyncFunction", "rightSideSafeExpression", "func2", "completeScope", "promise", "evaluateRaw", "normalRawEvaluator", "prefixAsString", "prefix", "subject", "setPrefix", "newPrefix", "directiveHandlers", "directive", "directive2", "pos", "directiveOrder", "directiveExists", "directives", "attributes", "originalAttributeOverride", "vAttributes", "staticAttributes", "attributesOnly", "attribute", "attr", "transformedAttributeMap", "toTransformedAttributes", "newName", "oldName", "outNonAlpineAttributes", "toParsedDirectives", "byPriority", "getDirectiveHandler", "isDeferringHandlers", "directiveHandlerStacks", "currentHandlerStackKey", "deferHandlingDirectives", "flushHandlers", "stopDeferring", "cleanups", "effect3", "cleanupEffect", "alpine_default", "noop", "fullHandler", "startingWith", "replacement", "into", "newValue", "attributeTransformers", "transform", "mapAttributes", "alpineAttributeRegex", "typeMatch", "valueMatch", "modifiers", "original", "DEFAULT", "a", "b", "typeA", "typeB", "dispatch", "detail", "options", "walk", "el2", "skip", "warn", "message", "started", "start", "initTree", "destroyTree", "handle", "outNestedComponents", "closestRoot", "allSelectors", "warnAboutMissingPlugins", "rootSelectorCallbacks", "initSelectorCallbacks", "rootSelectors", "fn", "addRootSelector", "selectorCallback", "addInitSelector", "includeInitSelectors", "findClosest", "element", "selector", "isRoot", "initInterceptors2", "interceptInit", "markerDispenser", "walker", "intercept", "root", "plugin2", "selectors", "tickStack", "isHolding", "nextTick", "releaseNextTicks", "res", "holdNextTicks", "setClasses", "setClassesFromString", "setClassesFromObject", "splitClasses", "classString", "missingClasses", "classString2", "addClassesAndReturnUndo", "classes", "classObject", "forAdd", "bool", "forRemove", "added", "removed", "setStyles", "setStylesFromObject", "setStylesFromString", "previousStyles", "value2", "kebabCase", "once", "fallback", "called", "evaluate2", "registerTransitionsFromHelper", "registerTransitionsFromClassString", "stage", "registerTransitionObject", "doesntSpecify", "transitioningIn", "transitioningOut", "wantsAll", "wantsOpacity", "wantsScale", "opacityValue", "scaleValue", "modifierValue", "delay", "origin", "property", "durationIn", "durationOut", "easing", "setFunction", "defaultValue", "before", "after", "transition", "show", "hide", "nextTick2", "clickAwayCompatibleShow", "resolve", "reject", "closest", "closestHide", "hideAfterChildren", "parent", "during", "start2", "end", "undoStart", "undoDuring", "undoEnd", "performTransition", "stages", "interrupted", "reachedBefore", "reachedEnd", "finish", "duration", "rawValue", "match", "isCloning", "skipDuringClone", "onlyDuringClone", "interceptors", "interceptClone", "cloneNode", "from", "to", "dontRegisterReactiveSideEffects", "isCloningLegacy", "clone", "oldEl", "newEl", "cloneTree", "hasRunThroughFirstEl", "el3", "callback2", "storedEffect", "bind", "camelCase", "bindInputValue", "bindStyles", "bindClasses", "bindAttributeAndProperty", "bindAttribute", "isRadio", "isCheckbox", "checkedAttrLooseCompare", "updateSelect", "setPropertyIfChanged", "attributeShouldntBePreservedIfFalsy", "isBooleanAttr", "setIfChanged", "attrName", "propName", "arrayWrappedValue", "option", "char", "valueA", "valueB", "safeParseBoolean", "booleanAttributes", "getBinding", "getAttributeBinding", "extractProp", "extract", "binding", "debounce", "wait", "timeout", "later", "throttle", "limit", "inThrottle", "entangle", "outerGet", "outerSet", "innerGet", "innerSet", "firstRun", "outerHash", "innerHash", "reference", "outer", "inner", "cloneIfObject", "outerHashLatest", "innerHashLatest", "plugin", "stores", "isReactive", "store", "getStores", "binds", "bind2", "bindings", "getBindings", "applyBindingsObject", "injectBindingProviders", "cleanupRunners", "datas", "data", "injectDataProviders", "Alpine", "makeMap", "str", "expectsLowerCase", "map", "list", "specialBooleanAttrs", "isBooleanAttr2", "EMPTY_OBJ", "EMPTY_ARR", "hasOwnProperty", "hasOwn", "isArray", "isMap", "toTypeString", "isString", "isSymbol", "isObject", "objectToString", "toRawType", "isIntegerKey", "cacheStringFunction", "camelizeRE", "camelize", "_", "c", "hyphenateRE", "hyphenate", "capitalize", "toHandlerKey", "hasChanged", "targetMap", "effectStack", "activeEffect", "ITERATE_KEY", "MAP_KEY_ITERATE_KEY", "isEffect", "effect2", "createReactiveEffect", "stop", "cleanup", "uid", "enableTracking", "resetTracking", "deps", "shouldTrack", "trackStack", "pauseTracking", "last", "track", "type", "depsMap", "dep", "trigger", "oldTarget", "effects", "effectsToAdd", "key2", "run", "isNonTrackableKeys", "builtInSymbols", "get2", "createGetter", "readonlyGet", "arrayInstrumentations", "createArrayInstrumentations", "instrumentations", "arr", "toRaw", "l", "isReadonly", "shallow", "shallowReadonlyMap", "readonlyMap", "shallowReactiveMap", "reactiveMap", "targetIsArray", "isRef", "readonly", "reactive2", "set2", "createSetter", "hadKey", "deleteProperty", "has", "ownKeys", "mutableHandlers", "readonlyHandlers", "toReactive", "toReadonly", "toShallow", "getProto", "v", "get$1", "isShallow", "rawTarget", "rawKey", "has2", "wrap", "has$1", "size", "add", "set$1", "get3", "checkIdentityKeys", "deleteEntry", "clear", "hadItems", "createForEach", "thisArg", "observed", "createIterableMethod", "method", "targetIsMap", "isPair", "isKeyOnly", "innerIterator", "done", "createReadonlyMethod", "createInstrumentations", "mutableInstrumentations2", "shallowInstrumentations2", "readonlyInstrumentations2", "shallowReadonlyInstrumentations2", "mutableInstrumentations", "readonlyInstrumentations", "shallowInstrumentations", "shallowReadonlyInstrumentations", "createInstrumentationGetter", "mutableCollectionHandlers", "readonlyCollectionHandlers", "targetTypeMap", "rawType", "getTargetType", "createReactiveObject", "baseHandlers", "collectionHandlers", "proxyMap", "existingProxy", "targetType", "proxy", "r", "evaluateLater2", "unwatch", "getArrayOfRefObject", "refObjects", "globalIdMemo", "findAndIncrementId", "closestIdRoot", "setIdRoot", "cacheKey", "cacheIdByNameOnElement", "id", "output", "warnMissingPluginMagic", "magicName", "slug", "evaluateInnerSet", "releaseEntanglement", "getTarget", "clone2", "eventName", "placeInDom", "clone3", "target2", "modifiers2", "teleportContainerDuringClone", "handler", "on", "event", "listenerTarget", "wrapHandler", "wrapper", "dotSyntax", "camelCase2", "addDebounceOrThrottle", "next", "isKeyEvent", "isClickEvent", "isListeningForASpecificKeyThatHasntBeenPressed", "nextModifier", "isNumeric", "kebabCase2", "keyModifiers", "debounceIndex", "keyToModifiers", "selectedSystemKeyModifiers", "modifier", "modifierToKeyMap", "scopeTarget", "evaluateGet", "evaluateSet", "getValue", "isGetterSetter", "setValue", "hasChangeModifier", "hasBlurModifier", "hasEnterModifier", "hasExplicitEventModifiers", "removeListener", "listeners", "syncValue", "getInputValue", "form", "syncCallback", "removeResetListener", "currentValue", "safeParseNumber", "checkedAttrLooseCompare2", "number", "isNumeric2", "handler2", "bindingProviders", "storeKeyForXFor", "shouldSkipRegisteringDataDuringClone", "magicContext", "dataProviderContext", "reactiveData", "undo", "toggle", "iteratorNames", "parseForExpression", "evaluateItems", "evaluateKey", "loop", "refreshScope", "newScope", "templateEl", "items", "isNumeric3", "oldLookup", "lookup", "hasStringKeys", "isObject2", "scopeEntries", "item", "getIterationScopeVariables", "innerKey", "prev", "reactiveScope", "forIteratorRE", "stripParensRE", "forAliasRE", "inMatch", "iteratorMatch", "scopeVariables", "handler3", "warnMissingPluginDirective", "directiveName", "src_default", "module_default", "generateEntangleFunction", "component", "cleanup", "name", "live", "isLive", "livewireProperty", "livewireComponent", "livewirePropertyValue", "module_default", "initialValue", "getter", "setter", "path", "key", "release", "value", "cloneIfObject", "obj", "listeners", "on", "name", "callback", "i", "trigger", "params", "callbacks", "finishers", "finisher", "isFunction", "result", "runFinishers", "triggerAsync", "latest", "iResult", "coordinateNetworkInteractions", "messageBus", "interceptPartition", "message", "compileRequest", "component", "bundledMessages", "child", "action", "constructAction", "createOrAddToOutstandingMessage", "interceptAction", "onFinish", "MessageRequest", "message", "interceptorRegistry", "messageInterceptors", "interceptor", "responsePromise", "error", "response", "body", "url", "preventDefault", "html", "json", "PageRequest", "uri", "MessageInterceptor", "message", "callback", "RequestInterceptor", "request", "InterceptorRegistry", "WeakBag", "component", "showHtmlModal", "html", "page", "a", "modal", "iframe", "hideHtmlModal", "cleanupModal", "componentSymbols", "componentIslandSymbols", "scopeSymbolFromMessage", "message", "component", "action", "islandName", "islandSymbols", "scopeSymbolFromAction", "MessageBus", "callback", "actionScope", "existingAction", "Message", "scope", "component", "action", "actionsByFingerprint", "island", "interceptors", "callback", "interceptor", "MessageInterceptor", "request", "index", "call", "error", "response", "body", "preventDefault", "json", "status", "errors", "returns", "returnsMeta", "resolvedActions", "value", "meta", "Action", "component", "name", "params", "metadata", "origin", "resolve", "reject", "action", "componentId", "bytes", "binary", "chunkSize", "i", "methodIsMarkedAsync", "actionIsAsync", "callback", "cb", "call", "result", "response", "body", "preventDefault", "error", "value", "registerLegacyEventSupport", "interceptRequest", "interceptMessage", "request", "onFailure", "onResponse", "onError", "onSuccess", "respondCallbacks", "succeedCallbacks", "failCallbacks", "trigger", "i", "response", "callback", "json", "error", "body", "preventDefault", "message", "onCancel", "onFinish", "payload", "onSync", "onMorph", "onRender", "outstandingActionOrigin", "outstandingActionMetadata", "outstandingActionInterceptors", "interceptors", "InterceptorRegistry", "messageBus", "MessageBus", "actionInterceptors", "partitionInterceptors", "sessionExpired", "sessionIsExpired", "setNextActionOrigin", "origin", "setNextActionMetadata", "metadata", "setNextActionInterceptor", "callback", "interceptAction", "interceptMessage", "interceptRequest", "interceptPartition", "interceptComponentAction", "component", "actionNameOrCallback", "maybeCallback", "actionName", "action", "rest", "interceptComponentMessage", "message", "a", "interceptComponentRequest", "request", "m", "onFinish", "coordinateNetworkInteractions", "fireAction", "method", "params", "constructAction", "cb", "fireActionInstance", "pendingInterceptors", "Action", "createOrAddToOutstandingMessage", "sendMessages", "Message", "requests", "messages", "existingRequest", "MessageRequest", "hasFoundRequest", "scopeSymbolFromMessage", "getUpdateUri", "getCsrfToken", "cachedOptions", "sendRequest", "responsePromise", "error", "response", "finalResponse", "interceptStreamAndReturnFinalResponse", "json", "componentId", "trigger", "e", "responseBody", "preventDefault", "showHtmlModal", "url", "html", "responseJson", "triggerAsync", "messageResponsePayloads", "payload", "snapshotEncoded", "effects", "snapshot", "handlers", "contentIsFromDump", "dump", "splitDumpFromContent", "reader", "remainingResponse", "done", "chunk", "output", "streams", "remaining", "extractStreamObjects", "stream", "raw", "regex", "matches", "parsed", "i", "sendNavigateRequest", "uri", "errorCallback", "PageRequest", "options", "destination", "getDestination", "status", "createUrlObjectFromString", "finalDestination", "urlString", "registerLegacyEventSupport", "getErrorsObject", "component", "state", "module_default", "keys", "key", "messages", "firstMessage", "total", "array", "field", "errors", "findRefEl", "component", "name", "refEl", "customDirectiveNames", "matchesForLivewireDirective", "attributeName", "extractDirective", "el", "name", "value", "modifiers", "Directive", "directive", "callback", "on", "component", "cleanup", "globalDirective", "getDirectives", "DirectiveManager", "customDirectiveHasBeenRegistered", "rawName", "rawMethod", "methods", "parsedMethods", "method", "paramString", "params", "argumentsToArray", "p", "k", "error", "methodExpression", "current", "parenCount", "inString", "stringChar", "trimmedExpression", "i", "char", "methodString", "methodMatch", "paramStart", "lastParenIndex", "toggleBooleanStateDirective", "el", "directive", "isTruthy", "cachedDisplay", "classes", "cache", "display", "i", "refreshDirtyStatesByComponent", "WeakBag", "on", "component", "succeed", "i", "directive", "el", "targets", "dirtyTargets", "oldIsDirty", "initialDisplay", "refreshDirtyState", "isDirty", "toggleBooleanStateDirective", "checkDirty", "target", "dataGet", "directives", "getDirectives", "s", "pendingComponentAssets", "on", "component", "effects", "scriptModuleHash", "encodedName", "path", "getModuleUrl", "module", "callback", "assetIsPendingFor", "runAfterAssetIsLoadedFor", "properties", "fallback", "wireProperty", "name", "callback", "component", "wireFallback", "aliases", "generateWireObject", "state", "isScoped", "target", "property", "getProperty", "getFallback", "value", "module_default", "el", "cleanup", "findComponentByEl", "generateEntangleFunction", "reactive", "dataGet", "fn", "jsActions", "assetIsPendingFor", "resolver", "promise", "resolve", "params", "runAfterAssetIsLoadedFor", "live", "dataSet", "fireAction", "findRefEl", "interceptComponentMessage", "onFinish", "checkDirty", "actionNameOrCallback", "maybeCallback", "interceptComponentAction", "interceptComponentRequest", "getErrorsObject", "method", "options", "setNextActionMetadata", "path", "getter", "unwatch", "effect", "listen", "unhook", "on", "hookComponent", "dispatch", "dispatchSelf", "dispatchTo", "dispatchEl", "dispatchRef", "upload", "uploadMultiple", "removeUpload", "cancelUpload", "parentMemo", "parent", "overriddenMethods", "overrideMethod", "obj", "overrides", "Component", "el", "deepClone", "extractData", "generateWireObject", "context", "setNextActionOrigin", "action", "callback", "snapshotEncoded", "effects", "updates", "snapshot", "oldCanonical", "updatedOldCanonical", "newCanonical", "dirty", "diff", "newData", "diffAndPatchRecursive", "propertyName", "value", "updateKey", "updateValue", "diffKey", "diffValue", "propertiesDiff", "diffAndConsolidate", "object", "key", "dataSet", "html", "request", "trigger", "i", "componentEl", "children", "componentInstance", "findComponentByEl", "child", "childrenMemo", "name", "actions", "cleanup", "closestFragment", "el", "isMatch", "hasReachedBoundary", "current", "sibling", "foundEndMarker", "isEndFragmentMarker", "isStartFragmentMarker", "metadata", "extractFragmentMetadataFromMarkerNode", "Fragment", "findFragment", "startNode", "rootEl", "walkElements", "skip", "stop", "node", "callback", "child", "startMarkerNode", "findMatchingEndMarkerNode", "mountContainerTagName", "html", "container", "currentMetadata", "key", "extractInnerHtmlFromFragmentHtml", "fragmentHtml", "regex", "match", "_", "extractFragmentMetadataFromHtml", "__", "encodedMetadata", "decodeMetadata", "pair", "value", "components", "initComponent", "el", "component", "Component", "trigger", "i", "destroyComponent", "id", "hasComponent", "findComponent", "strict", "findComponentByEl", "componentId", "walkUpwards", "node", "stop", "endMarkers", "slotParentId", "walkBackwards", "siblingNode", "isEndFragmentMarker", "extractFragmentMetadataFromMarkerNode", "isStartFragmentMarker", "metadata", "componentsByName", "name", "getByName", "find", "first", "all", "dispatch", "component", "name", "params", "dispatchEvent", "dispatchGlobal", "dispatchSelf", "dispatchEl", "selector", "target", "dispatchTo", "componentName", "componentsByName", "dispatchRef", "ref", "el", "findRefEl", "listen", "callback", "e", "on", "eventName", "handler", "bubbles", "src_default", "Alpine", "collapse", "el", "modifiers", "duration", "modifierValue", "floor", "fullyHide", "setFunction", "el2", "styles", "revertFunction", "transitionStyles", "before", "after", "current", "full", "key", "fallback", "rawValue", "match", "module_default", "candidateSelectors", "candidateSelector", "NoElement", "matches", "getRootNode", "element", "_element$getRootNode", "_isInert", "node", "lookUp", "_node$getAttribute", "inertAtt", "inert", "result", "isContentEditable", "_node$getAttribute2", "attValue", "getCandidates", "el", "includeContainer", "filter", "candidates", "_getCandidatesIteratively", "elements", "options", "elementsToCheck", "assigned", "content", "nestedCandidates", "validCandidate", "shadowRoot", "validShadowRoot", "_nestedCandidates", "hasTabIndex", "getTabIndex", "getSortOrderTabIndex", "isScope", "tabIndex", "sortOrderedTabbables", "a", "b", "isInput", "isHiddenInput", "isDetailsWithSummary", "child", "getCheckedRadio", "nodes", "form", "i", "isTabbableRadio", "radioScope", "queryRadios", "name", "radioSet", "err", "checked", "isRadio", "isNonTabbableRadio", "isNodeAttached", "_nodeRoot", "nodeRoot", "nodeRootHost", "attached", "_nodeRootHost", "_nodeRootHost$ownerDo", "_node$ownerDocument", "_nodeRoot2", "_nodeRootHost2", "_nodeRootHost2$ownerD", "isZeroArea", "_node$getBoundingClie", "width", "height", "isHidden", "_ref", "displayCheck", "getShadowRoot", "visible", "isDirectSummary", "nodeUnderDetails", "originalNode", "parentElement", "rootNode", "isDisabledFromFieldset", "parentNode", "isNodeMatchingSelectorFocusable", "isNodeMatchingSelectorTabbable", "isShadowRootTabbable", "shadowHostNode", "_sortByOrder", "regularTabbables", "orderedTabbables", "item", "candidateTabindex", "acc", "sortable", "tabbable", "container", "focusable", "isTabbable", "focusableCandidateSelector", "isFocusable", "_arrayLikeToArray", "r", "e", "_arrayWithoutHoles", "asyncGeneratorStep", "n", "o", "c", "u", "n2", "_asyncToGenerator", "_next", "_throw", "_createForOfIteratorHelper", "t", "_unsupportedIterableToArray", "F", "r2", "_defineProperty", "_toPropertyKey", "_iterableToArray", "_nonIterableSpread", "ownKeys", "_objectSpread2", "_regenerator", "o2", "i2", "c2", "Generator", "u2", "_regeneratorDefine", "r3", "n3", "o3", "i3", "c3", "u3", "f2", "p", "y", "G", "d", "t2", "r4", "n4", "o4", "i4", "d2", "l", "p2", "GeneratorFunction", "GeneratorFunctionPrototype", "f", "e2", "e3", "_toConsumableArray", "_toPrimitive", "activeFocusTraps", "trapStack", "trap", "activeTrap", "trapIndex", "isSelectableInput", "isEscapeEvent", "isTabEvent", "isKeyForward", "isKeyBackward", "delay", "fn", "valueOrHandler", "value", "_len", "params", "_key", "getActualTarget", "event", "internalTrapStack", "createFocusTrap", "userOptions", "doc", "config", "state", "getOption", "configOverrideOptions", "optionName", "configOptionName", "findContainerIndex", "composedPath", "tabbableNodes", "getNodeForOption", "_ref2", "_ref2$hasFallback", "hasFallback", "_ref2$params", "optionValue", "getInitialFocusNode", "firstTabbableGroup", "firstTabbableNode", "updateTabbableNodes", "focusableNodes", "lastTabbableNode", "firstDomTabbableNode", "lastDomTabbableNode", "posTabIndexesFound", "forward", "nodeIdx", "group", "_getActiveElement", "activeElement", "_tryFocus", "getReturnFocusNode", "previousActiveElement", "findNextNavNode", "_ref3", "target", "_ref3$isBackward", "isBackward", "destinationNode", "containerIndex", "containerGroup", "startOfGroupIndex", "_ref4", "destinationGroupIndex", "destinationGroup", "lastOfGroupIndex", "_ref5", "_destinationGroupIndex", "_destinationGroup", "checkPointerDown", "checkFocusIn", "targetContained", "nextNode", "navAcrossContainers", "mruContainerIdx", "mruTabIdx", "g", "checkKeyNav", "checkTabKey", "checkEscapeKey", "checkClick", "addListeners", "promise", "resolve", "collectAdjacentElements", "containers", "containerAncestors", "adjacentElements", "_iterator", "_step", "insideShadowRoot", "current", "parent", "siblings", "_iterator2", "_step2", "removeListeners", "checkDomRemoval", "mutations", "isFocusedNodeRemoved", "mutation", "removedNodes", "mutationObserver", "updateObservedNodes", "activateOptions", "onActivate", "onPostActivate", "checkCanFocusTrap", "preexistingTrap", "revertState", "_preexistingTrap$_set", "finishActivation", "_ref6", "_callee", "_context", "error", "_preexistingTrap$_set2", "deactivateOptions", "onDeactivate", "onPostDeactivate", "checkCanReturnFocus", "returnFocus", "finishDeactivation", "pauseOptions", "unpauseOptions", "containerElements", "elementsAsArray", "paused", "onPause", "onPostPause", "onUnpause", "onPostUnpause", "finishUnpause", "_ref7", "_callee2", "_context2", "isEnabled", "_el$getAttribute", "src_default", "Alpine", "lastFocused", "currentFocused", "within", "el2", "els", "list", "expression", "modifiers", "effect", "evaluateLater", "cleanup", "evaluator", "oldValue", "undoInert", "autofocusEl", "setInert", "undoDisableScrolling", "releaseFocus", "disableScrolling", "evaluate", "undos", "crawlSiblingsUp", "sibling", "cache", "callback", "overflow", "paddingRight", "scrollbarWidth", "scrollbarGutter", "module_default", "src_default", "Alpine", "persist", "alias", "storage", "e", "dummy", "initialValue", "getter", "setter", "path", "key", "lookup", "initial", "storageHas", "storageGet", "value", "storageSet", "func", "target", "get", "set", "module_default", "src_default", "Alpine", "el", "value", "expression", "modifiers", "evaluateLater", "cleanup", "evaluate", "options", "getRootMargin", "getThreshold", "observer", "entries", "entry", "threshold", "getLengthValue", "rawValue", "match", "key", "fallback", "index", "values", "i", "v", "module_default", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread2", "target", "i", "source", "key", "_defineProperty", "_typeof", "obj", "obj2", "value", "_extends", "_objectWithoutPropertiesLoose", "excluded", "sourceKeys", "_objectWithoutProperties", "sourceSymbolKeys", "version", "userAgent", "pattern", "IE11OrLess", "Edge", "FireFox", "Safari", "IOS", "ChromeForAndroid", "captureMode", "on", "el", "event", "fn", "off", "matches", "selector", "getParentOrHost", "closest", "ctx", "includeCTX", "R_SPACE", "toggleClass", "name", "state", "className", "css", "prop", "val", "style", "matrix", "selfOnly", "appliedTransforms", "transform", "matrixFn", "find", "tagName", "iterator", "list", "n", "getWindowScrollingElement", "scrollingElement", "getRect", "relativeToContainingBlock", "relativeToNonStaticParent", "undoScale", "container", "elRect", "top", "left", "bottom", "right", "height", "width", "containerRect", "elMatrix", "scaleX", "scaleY", "isScrolledPast", "elSide", "parentSide", "parent", "getParentAutoScrollElement", "elSideVal", "parentSideVal", "visible", "getChild", "childNum", "options", "includeDragEl", "currentChild", "children", "Sortable", "lastChild", "last", "index", "index2", "getRelativeScrollOffset", "offsetLeft", "offsetTop", "winScroller", "indexOfObject", "arr", "includeSelf", "elem", "gotSelf", "elemCSS", "extend", "dst", "src", "isRectEqual", "rect1", "rect2", "_throttleTimeout", "throttle", "callback", "ms", "args", "_this", "cancelThrottle", "scrollBy", "x", "y", "clone", "Polymer", "$", "getChildContainingRectFromElement", "ghostEl2", "rect", "child", "_rect$left", "_rect$top", "_rect$right", "_rect$bottom", "childRect", "expando", "AnimationStateManager", "animationStates", "animationCallbackId", "fromRect", "childMatrix", "animating", "animationTime", "time", "toRect", "prevFromRect", "prevToRect", "animatingRect", "targetMatrix", "calculateRealTime", "currentRect", "duration", "translateX", "translateY", "repaint", "plugins", "defaults", "PluginManager", "plugin", "option2", "p", "eventName", "sortable", "evt", "eventNameGlobal", "defaults2", "pluginName", "initialized", "modified", "eventProperties", "modifiedValue", "dispatchEvent", "_ref", "rootEl2", "targetEl", "cloneEl2", "toEl", "fromEl", "oldIndex2", "newIndex2", "oldDraggableIndex2", "newDraggableIndex2", "originalEvent", "putSortable2", "extraEventProperties", "onName", "allEventProperties", "_excluded", "pluginEvent2", "data", "dragEl", "parentEl", "ghostEl", "rootEl", "nextEl", "lastDownEl", "cloneEl", "cloneHidden", "moved", "putSortable", "oldIndex", "oldDraggableIndex", "newIndex", "newDraggableIndex", "_hideGhostForTarget", "_unhideGhostForTarget", "_dispatchEvent", "info", "activeGroup", "awaitingDragStarted", "ignoreNextClick", "sortables", "tapEvt", "touchEvt", "lastDx", "lastDy", "tapDistanceLeft", "tapDistanceTop", "lastTarget", "lastDirection", "pastFirstInvertThresh", "isCircumstantialInvert", "targetMoveDistance", "ghostRelativeParent", "ghostRelativeParentInitialScroll", "_silent", "savedInputChecked", "documentExists", "PositionGhostAbsolutely", "CSSFloatProperty", "supportDraggable", "supportCssPointerEvents", "_detectDirection", "elCSS", "elWidth", "child1", "child2", "firstChildCSS", "secondChildCSS", "firstChildWidth", "secondChildWidth", "touchingSideChild2", "_dragElInRowColumn", "dragRect", "targetRect", "vertical", "dragElS1Opp", "dragElS2Opp", "dragElOppLength", "targetS1Opp", "targetS2Opp", "targetOppLength", "_detectNearestEmptySortable", "ret", "threshold", "insideHorizontally", "insideVertically", "_prepareGroup", "toFn", "pull", "to", "from", "dragEl2", "sameGroup", "otherGroup", "group", "originalGroup", "nearestEmptyInsertDetectEvent", "nearest", "_checkOutsideTargetEl", "dataTransfer", "preventOnFilter", "type", "touch", "originalTarget", "filter", "_saveInputCheckedState", "criteria", "ownerDocument", "dragStartFn", "_disableDraggable", "e", "_nextTick", "fallback", "inserted", "fallbackTolerance", "fallbackOffset", "ghostMatrix", "relativeScrollOffset", "dx", "dy", "cssMatrix", "revert", "activeSortable", "isOwner", "canSort", "fromSortable", "completedFired", "dragOverEvent", "extra", "completed", "target2", "after2", "_onMove", "changed", "capture", "insertion", "elLastChild", "_ghostIsLast", "_ghostIsFirst", "firstChild", "direction", "targetBeforeFirstSwap", "differentLevel", "differentRowCol", "side1", "scrolledPastTop", "scrollBefore", "_getSwapDirection", "sibling", "dragIndex", "nextSibling", "after", "moveVector", "_unsilent", "_cancelNextTick", "_globalDragOver", "order", "_generateId", "useAnimation", "items", "id", "store", "el2", "willInsertAfter", "onMoveFn", "retVal", "firstElRect", "childContainingRect", "spacer", "lastElRect", "swapThreshold", "invertedSwapThreshold", "invertSwap", "isLastTarget", "mouseOnAxis", "targetLength", "targetS1", "targetS2", "invert", "_getInsertDirection", "str", "sum", "root", "inputs", "idx", "element", "_len", "plugins2", "_key", "autoScrolls", "scrollEl", "scrollRootEl", "scrolling", "lastAutoScrollX", "lastAutoScrollY", "touchEvt$1", "pointerElemChangedInterval", "AutoScrollPlugin", "AutoScroll", "_ref2", "clearPointerElemChangedInterval", "clearAutoScrolls", "autoScroll", "ogElemScroller", "newElem", "autoScroll2", "isFallback", "sens", "speed", "scrollThisInstance", "scrollCustomFn", "layersOut", "currentParent", "canScrollX", "canScrollY", "scrollWidth", "scrollHeight", "scrollPosX", "scrollPosY", "vx", "vy", "scrollOffsetY", "scrollOffsetX", "drop", "dispatchSortableEvent", "hideGhostForTarget", "unhideGhostForTarget", "toSortable", "Revert", "_ref3", "Remove", "_ref4", "parentSortable", "sortable_esm_default", "walk", "skip", "node", "src_default", "Alpine", "modifiers", "expression", "effect", "evaluate", "cleanup", "handleSelector", "preferences", "tmpl", "getGroupName", "handleSort", "generateSortHandler", "config", "getConfigurationOverrides", "initSortable", "position", "handle", "ghostRef", "keepElementsWithinMorphMarkers", "cursor", "module_default", "src_default", "Alpine", "el", "value", "expression", "modifiers", "evaluateLater", "cleanup", "evaluator", "evaluate", "width", "height", "off", "onDocumentResize", "onElResize", "callback", "observer", "entries", "dimensions", "documentResizeObserver", "documentResizeObserverCallbacks", "entry", "module_default", "min", "max", "round", "floor", "createCoords", "v", "oppositeSideMap", "oppositeAlignmentMap", "clamp", "start", "value", "end", "evaluate", "param", "getSide", "placement", "getAlignment", "getOppositeAxis", "axis", "getAxisLength", "getSideAxis", "getAlignmentAxis", "getAlignmentSides", "rects", "rtl", "alignment", "alignmentAxis", "length", "mainAlignmentSide", "getOppositePlacement", "getExpandedPlacements", "oppositePlacement", "getOppositeAlignmentPlacement", "getSideList", "side", "isStart", "lr", "rl", "tb", "bt", "getOppositeAxisPlacements", "flipAlignment", "direction", "list", "expandPaddingObject", "padding", "getPaddingObject", "rectToClientRect", "rect", "computeCoordsFromPlacement", "_ref", "reference", "floating", "sideAxis", "alignLength", "isVertical", "commonX", "commonY", "commonAlign", "coords", "computePosition", "config", "strategy", "middleware", "platform2", "validMiddleware", "x", "y", "statefulPlacement", "middlewareData", "resetCount", "i", "name", "fn", "nextX", "nextY", "data", "reset", "detectOverflow", "state", "options", "_await$platform$isEle", "elements", "boundary", "rootBoundary", "elementContext", "altBoundary", "paddingObject", "element", "clippingClientRect", "offsetParent", "offsetScale", "elementClientRect", "flip", "_middlewareData$arrow", "_middlewareData$flip", "initialPlacement", "checkMainAxis", "checkCrossAxis", "specifiedFallbackPlacements", "fallbackStrategy", "fallbackAxisSideDirection", "detectOverflowOptions", "isBasePlacement", "fallbackPlacements", "placements2", "overflow", "overflows", "overflowsData", "sides2", "side2", "_middlewareData$flip2", "_overflowsData$filter", "nextIndex", "nextPlacement", "resetPlacement", "d", "a", "b", "_overflowsData$map$so", "placement2", "overflow2", "acc", "convertValueToCoords", "mainAxisMulti", "crossAxisMulti", "rawValue", "mainAxis", "crossAxis", "offset", "diffCoords", "shift", "limiter", "x2", "y2", "mainAxisCoord", "crossAxisCoord", "minSide", "maxSide", "min2", "max2", "limitedCoords", "getNodeName", "node", "isNode", "getWindow", "_node$ownerDocument", "getDocumentElement", "isElement", "isHTMLElement", "isShadowRoot", "isOverflowElement", "overflowX", "overflowY", "display", "getComputedStyle", "isTableElement", "isContainingBlock", "webkit", "isWebKit", "css", "getContainingBlock", "currentNode", "getParentNode", "isLastTraversableNode", "getNodeScroll", "result", "getNearestOverflowAncestor", "parentNode", "getOverflowAncestors", "traverseIframes", "_node$ownerDocument2", "scrollableAncestor", "isBody", "win", "getCssDimensions", "width", "height", "hasOffset", "offsetWidth", "offsetHeight", "shouldFallback", "unwrapElement", "getScale", "domElement", "$", "noOffsets", "getVisualOffsets", "shouldAddVisualOffsets", "isFixed", "floatingOffsetParent", "getBoundingClientRect", "includeScale", "isFixedStrategy", "clientRect", "scale", "visualOffsets", "offsetWin", "currentIFrame", "iframeScale", "iframeRect", "left", "top", "convertOffsetParentRelativeRectToViewportRelativeRect", "isOffsetParentAnElement", "documentElement", "scroll", "offsets", "offsetRect", "getClientRects", "getWindowScrollBarX", "getDocumentRect", "html", "body", "getViewportRect", "visualViewport", "visualViewportBased", "getInnerBoundingClientRect", "getClientRectFromClippingAncestor", "clippingAncestor", "hasFixedPositionAncestor", "stopNode", "getClippingElementAncestors", "cache", "cachedResult", "el", "currentContainingBlockComputedStyle", "elementIsFixed", "computedStyle", "currentNodeIsContaining", "ancestor", "getClippingRect", "clippingAncestors", "firstClippingAncestor", "clippingRect", "accRect", "getDimensions", "getRectRelativeToOffsetParent", "getTrueOffsetParent", "polyfill", "getOffsetParent", "window2", "getElementRects", "getOffsetParentFn", "getDimensionsFn", "isRTL", "platform", "observeMove", "onMove", "io", "timeoutId", "root", "cleanup", "refresh", "skip", "threshold", "insetTop", "insetRight", "insetBottom", "insetLeft", "isFirstUpdate", "handleObserve", "entries", "ratio", "autoUpdate", "update", "ancestorScroll", "ancestorResize", "elementResize", "layoutShift", "animationFrame", "referenceEl", "ancestors", "cleanupIo", "reobserveFrame", "resizeObserver", "firstEntry", "frameId", "prevRefRect", "frameLoop", "nextRefRect", "computePosition2", "mergedOptions", "platformWithCache", "src_default", "Alpine", "from", "to", "expression", "modifiers", "evaluate2", "effect", "offsetValue", "unstyled", "allowFlip", "getOptions", "previousReference", "release", "compute", "previousValue", "setStyles", "idx", "module_default", "unwrap", "object", "batch", "callback", "updates", "HistoryCoordinator", "batch", "updates", "url", "state", "unwrap", "key", "callback", "method", "error", "handler", "historyCoordinator", "coordinator_default", "Snapshot", "url", "html", "snapshotCache", "location", "snapshot", "key", "index", "currentPageStatus", "storeCurrentPageStatus", "status", "updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks", "coordinator_default", "replaceUrl", "updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks", "whenTheBackOrForwardButtonIsClicked", "registerFallback", "handleHtml", "fallback", "i", "e", "state", "alpine", "updateUrlAndStoreLatestHtmlForFutureBackButtons", "destination", "pushUrl", "updateUrl", "method", "error", "whenThisLinkIsPressed", "el", "callback", "isProgrammaticClick", "e", "isNotPlainLeftClick", "isNotPlainEnterKey", "whenReleased", "handler", "whenThisLinkIsHoveredFor", "ms", "timeout", "extractDestinationFromLink", "linkEl", "createUrlObjectFromString", "urlString", "getUriStringFromUrlObject", "urlObject", "fetchHtml", "destination", "callback", "errorCallback", "uri", "getUriStringFromUrlObject", "performFetch", "html", "finalDestination", "status", "storeCurrentPageStatus", "sendNavigateRequest", "prefetches", "cacheDuration", "prefetchHtml", "destination", "callback", "errorCallback", "uri", "getUriStringFromUrlObject", "performFetch", "html", "routedUri", "status", "storeCurrentPageStatus", "storeThePrefetchedHtmlForWhenALinkIsClicked", "finalDestination", "state", "getPretchedHtmlOr", "receive", "ifNoPrefetchExists", "packUpPersistedTeleports", "persistedEl", "module_default", "i", "removeAnyLeftOverStaleTeleportTargets", "body", "unPackPersistedTeleports", "el", "skip", "isTeleportTarget", "storeScrollInformationInHtmlBeforeNavigatingAway", "el", "restoreScrollPositionOrScrollToTop", "scroll", "els", "storePersistantElementsForLater", "callback", "i", "module_default", "putPersistantElementsBack", "usedPersists", "old", "key", "el", "isPersistedElement", "import_nprogress", "NProgress", "injectStyles", "inProgress", "showAndStartProgressBar", "finishAndHideProgressBar", "removeAnyLeftOverStaleProgressBars", "style", "nonce", "getNonce", "packUpPersistedPopovers", "persistedEl", "isPopoverSupported", "el", "animations", "animation", "i", "unPackPersistedPopovers", "keyframes", "options", "currentTime", "now", "playState", "oldBodyScriptTagHashes", "attributesExemptFromScriptTagHashing", "swapCurrentPageWithNewHtml", "html", "andThen", "replaceNoncesInHtml", "newDocument", "newHtml", "newBody", "newHead", "i", "simpleHash", "ignoreAttributes", "afterRemoteScriptsHaveLoaded", "replaceHtmlAttributes", "mergeNewHead", "prepNewBodyScriptTagsToRun", "oldBody", "hash", "cloneScriptTag", "newHtmlElement", "currentHtmlElement", "attr", "name", "value", "children", "headChildrenHtmlLookup", "garbageCollector", "touchedHeadElements", "remoteScriptsPromises", "child", "isAsset", "childHtml", "isTracked", "ifTheQueryStringChangedSinceLastRequest", "isScript", "injectScriptTagAndWaitForItToFullyLoad", "script", "resolve", "reject", "el", "currentHeadChildren", "uri", "queryString", "extractUriAndQueryString", "currentUri", "currentQueryString", "str", "a", "b", "subject", "attributesToRemove", "result", "regex", "enablePersist", "showProgressBar", "restoreScroll", "autofocus", "navigate_default", "Alpine", "url", "options", "preserveScroll", "destination", "createUrlObjectFromString", "fireEventForOtherLibrariesToHookInto", "navigateTo", "el", "modifiers", "shouldPrefetchOnHover", "whenThisLinkIsHoveredFor", "extractDestinationFromLink", "prefetchHtml", "html", "finalDestination", "storeThePrefetchedHtmlForWhenALinkIsClicked", "finishAndHideProgressBar", "whenThisLinkIsPressed", "whenItIsReleased", "shouldPushToHistoryState", "showAndStartProgressBar", "fetchHtmlOrUsePrefetchedHtml", "swapCallbacks", "callback", "storeScrollInformationInHtmlBeforeNavigatingAway", "cleanupAlpineElementsOnThePageThatArentInsideAPersistedElement", "updateCurrentPageHtmlInHistoryStateForLaterBackButtonClicks", "preventAlpineFromPickingUpDomChanges", "andAfterAllThis", "storePersistantElementsForLater", "persistedEl", "packUpPersistedTeleports", "packUpPersistedPopovers", "updateUrlAndStoreLatestHtmlForFutureBackButtons", "replaceUrl", "swapCurrentPageWithNewHtml", "afterNewScriptsAreDoneLoading", "removeAnyLeftOverStaleTeleportTargets", "putPersistantElementsBack", "newStub", "unPackPersistedTeleports", "unPackPersistedPopovers", "restoreScrollPositionOrScrollToTop", "autofocusElementsWithTheAutofocusAttribute", "nowInitializeAlpineOnTheNewPage", "whenTheBackOrForwardButtonIsClicked", "ifThePageBeingVisitedHasntBeenCached", "currentPageUrl", "currentPageKey", "updateCurrentPageHtmlInSnapshotCacheForLaterBackButtonClicks", "removeAnyLeftOverStaleProgressBars", "fromDestination", "errorCallback", "getPretchedHtmlOr", "fetchHtml", "afterAllThis", "name", "detail", "event", "skip", "walker", "root", "isPersistedElement", "isTeleportTarget", "history", "Alpine", "el", "interceptor", "alias", "alwaysShow", "usePush", "initialSeedValue", "getter", "setter", "path", "key", "queryKey", "initial", "replace", "push", "pop", "track", "newValue", "func", "name", "except", "has", "get", "set", "remove", "queryStringUtils", "url", "coordinator_default", "isInitiallyPresentInUrl", "initialValue", "initialValueMemo", "exceptValueMemo", "hasReturnedToInitialValue", "hasReturnedToExceptValue", "lock", "update", "strategy", "receiver", "handler", "e", "iName", "result", "object", "search", "data", "fromQueryString", "value", "stripNulls", "unwrap", "toQueryString", "isObjecty", "subject", "buildQueryStringEntries", "entries", "baseKey", "iKey", "iValue", "insertDotNotatedValueIntoData", "first", "second", "rest", "i", "decodedKey", "dotNotatedKey", "morph", "from", "toHtml", "options", "monkeyPatchDomSetAttributeToAllowAtSymbols", "context", "createMorphContext", "toEl", "createElement", "morphBetween", "startMarker", "endMarker", "fromContainer", "fromBlock", "Block", "toContainer", "container", "toStartMarker", "toEndMarker", "toBlock", "defaultGetKey", "el", "noop", "to", "updateChildrenOnly", "skipChildren", "skipUntil", "predicate", "shouldSkipChildren", "textOrComment", "shouldSkip", "toCloned", "value", "domAttributes", "toAttributes", "i", "name", "fromKeys", "fromKeyHoldovers", "currentTo", "getFirstNode", "currentFrom", "seedingMatchingId", "toKey", "fromKey", "fromDone", "toDone", "getNextSibling", "holdover", "clone", "isIf", "node", "isEnd", "nestedIfCount", "fromBlockStart", "next", "fromBlockEnd", "toBlockStart", "toBlockEnd", "nextToElementSibling", "found", "fromKeyNode", "currentFromNext", "removals", "domForRemoval", "els", "map", "theKey", "parent", "beforeMe", "hook", "args", "skip", "patched", "html", "template", "start", "end", "children", "currentNode", "child", "first", "reference", "newNode", "original", "hostDiv", "escapedValue", "attr", "fromId", "src_default", "Alpine", "module_default", "src_default", "Alpine", "el", "value", "expression", "effect", "evaluateLater", "cleanup", "templateFn", "lastInputValue", "evaluator", "input", "result", "value2", "formatMoney", "processInputValue", "updater", "template", "formatInput", "controller", "el2", "shouldRestoreCursor", "setInput", "restoreCursorPosition", "callback", "cursorPosition", "unformattedValue", "beforeLeftOfCursorBeforeFormatting", "newPosition", "regexes", "templateMark", "inputMark", "output", "templateChar", "inputChar", "delimiter", "thousands", "precision", "addThousands", "input2", "thousands2", "counter", "i", "minus", "strippedInput", "module_default", "start", "ensureLivewireScriptIsntMisplaced", "dispatch", "module_default", "history", "navigate_default", "el", "attributes", "attribute", "matchesForLivewireDirective", "component", "findComponentByEl", "directive", "extractDirective", "trigger", "callback", "hasComponent", "initComponent", "destroyComponent", "directives", "name", "livewireEl", "on", "component", "effects", "registerListeners", "listeners", "name", "handler", "e", "getAlpineScopeKeys", "el", "keys", "currentEl", "ownScope", "key", "evaluateExpression", "expression", "options", "result", "module_default", "evaluateActionExpression", "contextualExpression", "contextualizeExpression", "error", "SKIP", "strings", "m", "pre", "ident", "offset", "i", "executedScripts", "executedAssets", "on", "assets", "key", "asset", "onlyIfAssetsHaventBeenLoadedAlreadyOnThisPage", "addAssetsToHeadTagOfPage", "component", "effects", "scripts", "content", "onlyIfScriptHasntBeenRunAlreadyForThisComponent", "scriptContent", "extractScriptTagContent", "module_default", "evaluateExpression", "callback", "alreadyRunKeys", "rawHtml", "matches", "replaceNoncesInHtml", "newDocument", "newHead", "child", "runAssetSynchronously", "resolve", "reject", "isScript", "script", "cloneScriptTag", "el", "module_default", "el", "findComponentByEl", "on", "component", "effects", "js", "xjs", "method", "body", "overrideMethod", "evaluateExpression", "expression", "params", "defaultName", "globalDirective", "el", "directive", "cleanup", "setTransitionNames", "root", "options", "name", "clearTransitionNames", "transitionDomMutation", "fromEl", "toEl", "callback", "style", "update", "transitionConfig", "skipOnDialog", "transition", "observer", "morph", "component", "el", "html", "wrapperTag", "getTagName", "wrapper", "parentComponent", "findComponentByEl", "to", "effects", "trigger", "existingComponentsMap", "child", "wireId", "existingComponent", "transitionOptions", "transitionDomMutation", "module_default", "getMorphConfig", "morphFragment", "startNode", "endNode", "toHTML", "fromContainer", "fromContainerTag", "toContainer", "parentElement", "parentElementTag", "parentProviderWrapper", "islandHasTransition", "node", "fromEl", "toEl", "childrenOnly", "skip", "skipChildren", "skipUntil", "isStartFragmentMarker", "metadata", "extractFragmentMetadataFromMarkerNode", "isEndFragmentMarker", "isntElement", "isComponentRootEl", "tag", "customElement", "interceptMessage", "message", "onSuccess", "payload", "onMorph", "html", "morph", "on", "component", "effects", "dispatchEvents", "dispatches", "name", "params", "self", "componentName", "ref", "el", "dispatchSelf", "dispatchTo", "dispatchRef", "dispatchEl", "dispatch", "cleanups", "Bag", "on", "el", "directive", "cleanup", "component", "componentId", "disableForm", "respond", "i", "formEl", "undos", "module_default", "skip", "shouldMarkDisabled", "markDisabled", "shouldMarkReadOnly", "markReadOnly", "tag", "inputTypesThatDontSupportReadonly", "undo", "on", "succeed", "effects", "download", "urlObject", "url", "base64toBlob", "invisibleLink", "b64Data", "contentType", "sliceSize", "byteCharacters", "byteArrays", "offset", "slice", "byteNumbers", "i", "byteArray", "on", "component", "effects", "cleanup", "queryString", "key", "value", "name", "as", "use", "alwaysShow", "except", "normalizeQueryStringEntry", "initialValue", "dataGet", "replace", "push", "pop", "track", "effectReference", "module_default", "popNavigating", "forgetCommitHandler", "commitComponent", "succeed", "beforeValue", "afterValue", "forgetPopHandler", "newValue", "el", "currentValue", "defaults", "on", "options", "component", "effects", "event", "event_parts", "s1", "signature", "channel_type", "s2", "channel", "s3", "event_name", "handler", "e", "dispatchSelf", "notification", "interceptMessage", "message", "onStream", "json", "id", "type", "name", "el", "ref", "content", "mode", "component", "findComponent", "targetEl", "replaceEl", "findRefEl", "shouldHideProgressBar", "forwardEvent", "name", "original", "event", "shouldRedirectUsingNavigateOr", "effects", "url", "or", "on", "effects", "request", "preventDefault", "url", "shouldRedirectUsingNavigateOr", "interceptAction", "action", "origin", "el", "directive", "islandAttr", "attr", "islandName", "attrParts", "isPrepend", "isAppend", "mode", "fragment", "closestIsland", "interceptMessage", "message", "onSuccess", "onStream", "json", "type", "islandFragment", "renderIsland", "payload", "onMorph", "fragmentHtml", "closestFragment", "component", "islandHtml", "metadata", "extractFragmentMetadataFromHtml", "findFragment", "token", "incomingMetadata", "strippedContent", "extractInnerHtmlFromFragmentHtml", "parentElementTag", "getTagName", "morphFragment", "interceptMessage", "message", "onSuccess", "onStream", "payload", "onMorph", "fragmentHtml", "renderSlot", "component", "metadata", "extractFragmentMetadataFromHtml", "targetComponent", "findComponent", "fragment", "findFragment", "name", "token", "strippedContent", "extractInnerHtmlFromFragmentHtml", "morphFragment", "interceptMessage", "message", "onSend", "onFinish", "undos", "action", "origin", "el", "undo", "module_default", "onPageChanges", "i", "globalDirective", "el", "directive", "cleanup", "expression", "options", "href", "hrefUrl", "classes", "refreshCurrent", "url", "pathMatches", "actualUrl", "hrefPath", "actualPath", "hrefPathSegments", "actualPathSegments", "wireNavigateSelectors", "wireNavigateSelector", "attributeMap", "selector", "module_default", "el", "wireAttr", "alpineDirective", "component", "updateNavigateLinks", "currentUrl", "options", "wireNavigateSelector", "el", "attr", "href", "hrefUrl", "pathMatches", "interceptMessage", "message", "onSuccess", "onSync", "onMorph", "onRender", "action", "origin", "oldHeight", "oldScroll", "heightDiff", "module_default", "el", "i", "name", "value", "directive", "extractDirective", "modifierString", "expression", "e", "component", "findComponentByEl", "evaluateActionExpression", "module_default", "el", "i", "directive", "extractDirective", "modifierString", "expression", "attribute", "setNextActionOrigin", "itemPosition", "child", "position", "params", "scope", "sortId", "evaluateActionExpression", "loadedStyles", "on", "component", "effects", "encodedName", "path", "getModuleUrl", "injectStylesheet", "href", "link", "nonce", "getNonce", "callbacksByComponent", "WeakBag", "callAndClearComponentDebounces", "component", "callback", "callbacksByComponent", "callbackRegister", "on", "el", "directive", "cleanup", "component", "customDirectiveHasBeenRegistered", "attribute", "cleanupBinding", "module_default", "e", "execute", "callAndClearComponentDebounces", "submitButton", "setNextActionOrigin", "livewireOptions", "setNextActionInterceptor", "expression", "params", "p", "evaluateActionExpression", "directive", "el", "message", "shouldPrompt", "action", "instead", "question", "expected", "offlineHandlers", "onlineHandlers", "i", "directive", "el", "cleanup", "setOffline", "toggleBooleanStateDirective", "setOnline", "directive", "el", "component", "cleanup", "targets", "inverted", "getTargets", "delay", "abortDelay", "applyDelay", "cleanupA", "whenTargetsArePartOfRequest", "toggleBooleanStateDirective", "cleanupB", "whenTargetsArePartOfFileUpload", "i", "duration", "delayModifiers", "key", "timeout", "started", "callback", "startLoading", "endLoading", "interceptMessage", "message", "onSend", "onSuccess", "onFinish", "island", "closestIsland", "matches", "cleared", "payload", "containsTargets", "onEffect", "eventMismatch", "e", "id", "property", "listen", "cleanupC", "updates", "calls", "target", "params", "method", "methodParams", "quickHash", "directives", "getDirectives", "nonActionOrModelLivewireDirectives", "subject", "directive", "el", "directive", "el", "module_default", "el", "directive", "el", "component", "cleanup", "findComponentByEl", "expression", "modifiers", "componentIsMissingProperty", "handleFileUpload", "liveIndex", "isLive", "hasLazyWithoutLive", "shouldSendNetwork", "ephemeralModifiers", "networkModifiers", "m", "ephemeralOnBlur", "ephemeralOnChange", "ephemeralOnEnter", "hasEphemeralTriggers", "networkOnBlur", "networkOnChange", "networkOnEnter", "hasNetworkTriggers", "isDebounced", "isThrottled", "update", "setNextActionOrigin", "setNextActionMetadata", "debouncedUpdate", "isRealtimeInput", "debounce", "parseModifierDuration", "throttle", "bindings", "xModelTail", "getModifierTail", "dataGet", "value", "dataSet", "module_default", "i", "index", "hasDuration", "componentIsMissingProperty", "component", "property", "parent", "findComponentByEl", "baseProperty", "debounce", "func", "wait", "timeout", "context", "args", "later", "throttle", "limit", "inThrottle", "parseModifierDuration", "modifiers", "key", "duration", "directive", "component", "el", "fullMethod", "setNextActionOrigin", "evaluateActionExpression", "directive", "el", "component", "interval", "extractDurationFrom", "start", "pauseWhile", "throttleWhile", "stopWhen", "poll", "triggerComponentRequest", "theTabIsInTheBackground", "theDirectiveIsMissingKeepAlive", "theDirectiveHasVisible", "theElementIsNotInTheViewport", "theDirectiveIsOffTheElement", "livewireIsOffline", "sessionIsExpired", "theElementIsDisconnected", "setNextActionOrigin", "setNextActionMetadata", "fullMethod", "evaluateActionExpression", "callback", "pauseConditions", "throttleConditions", "stopConditions", "clear", "syncronizedInterval", "i", "condition", "clocks", "ms", "clock", "isOffline", "inBackground", "getDirectives", "bounding", "modifiers", "defaultDuration", "durationInMilliSeconds", "durationInMilliSecondsString", "mod", "durationInSecondsString", "module_default", "el", "i", "name", "value", "modifierString", "expression", "evaluateActionExpression", "module_default", "el", "i", "name", "value", "modifierString", "expression", "evaluateActionExpression", "module_default", "el", "i", "name", "value", "remainder", "expression", "evaluateActionExpression", "Livewire", "directive", "dispatchTo", "callback", "interceptAction", "interceptMessage", "interceptRequest", "component", "method", "params", "metadata", "fireAction", "start", "first", "find", "getByName", "all", "on", "trigger", "triggerAsync", "dispatchGlobal", "module_default", "warnAboutMultipleInstancesOf", "entity"] } diff --git a/admin/public/vendor/livewire/manifest.json b/admin/public/vendor/livewire/manifest.json index f1e92333..dbf640d3 100644 --- a/admin/public/vendor/livewire/manifest.json +++ b/admin/public/vendor/livewire/manifest.json @@ -1,2 +1,2 @@ -{"/livewire.js":"cc800bf4"} +{"/livewire.js":"4735e441"} diff --git a/admin/resources/views/vendor/livewire/simple-tailwind.blade.php b/admin/resources/views/vendor/livewire/simple-tailwind.blade.php index 10303611..d7f2560d 100644 --- a/admin/resources/views/vendor/livewire/simple-tailwind.blade.php +++ b/admin/resources/views/vendor/livewire/simple-tailwind.blade.php @@ -46,7 +46,7 @@ </button> @endif @else - <span class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md"> + <span class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md dark:text-gray-600 dark:bg-gray-800 dark:border-gray-600"> {!! __('pagination.next') !!} </span> @endif diff --git a/admin/resources/views/vendor/livewire/tailwind.blade.php b/admin/resources/views/vendor/livewire/tailwind.blade.php index 14962d3b..9ad7f28a 100644 --- a/admin/resources/views/vendor/livewire/tailwind.blade.php +++ b/admin/resources/views/vendor/livewire/tailwind.blade.php @@ -78,7 +78,7 @@ {{-- "Three Dots" Separator --}} @if (is_string($element)) <span aria-disabled="true"> - <span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 cursor-default leading-5 dark:bg-gray-800 dark:border-gray-600 dark:bg-gray-800 dark:border-gray-600">{{ $element }}</span> + <span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 cursor-default leading-5 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300">{{ $element }}</span> </span> @endif diff --git a/admin/tests/Feature/Filament/Resource/BannerResourceTest.php b/admin/tests/Feature/Filament/Resource/BannerResourceTest.php new file mode 100644 index 00000000..c906b44f --- /dev/null +++ b/admin/tests/Feature/Filament/Resource/BannerResourceTest.php @@ -0,0 +1,92 @@ +<?php + +declare(strict_types=1); + +use App\Filament\Resources\BannerResource; +use App\Models\Banner; +use Filament\Actions\DeleteAction; + +use function Pest\Laravel\get; +use function Pest\Livewire\livewire; + +beforeEach(function () { + login(); +}); + +it('can render index page of the banner resource.', function () { + get(BannerResource::getUrl())->assertOk(); +}); + +it('can list banners in the table.', function () { + $banners = Banner::factory()->count(5)->create(); + + livewire(BannerResource\Pages\ListBanners::class) + ->assertCanSeeTableRecords($banners); +}); + +it('can render edit banner page.', function () { + $banner = Banner::factory()->create(); + + get(BannerResource::getUrl('edit', [ + 'record' => $banner, + ]))->assertOk(); +}); + +it('can update banner model.', function () { + $banner = Banner::factory()->create(); + $newBanner = Banner::factory()->make(); + + livewire(BannerResource\Pages\EditBanner::class, [ + 'record' => $banner->getRouteKey(), + ]) + ->fillForm([ + 'position' => $newBanner->position, + 'heading' => $newBanner->heading, + 'url' => $newBanner->url, + 'sort' => $newBanner->sort, + 'status' => $newBanner->status->value, + ]) + ->call('save') + ->assertHasNoFormErrors(); + + expect($banner->refresh()) + ->position->toBe($newBanner->position) + ->heading->toBe($newBanner->heading) + ->url->toBe($newBanner->url) + ->sort->toBe($newBanner->sort) + ->status->toBe($newBanner->status); +}); + +it('can create banner model.', function () { + $newBanner = Banner::factory()->make(); + + livewire(BannerResource\Pages\CreateBanner::class) + ->fillForm([ + 'position' => $newBanner->position, + 'heading' => $newBanner->heading, + 'url' => $newBanner->url, + 'sort' => $newBanner->sort, + 'status' => $newBanner->status->value, + ]) + ->call('create') + ->assertHasNoFormErrors(); + + $this->assertDatabaseHas(Banner::class, [ + 'position' => $newBanner->position, + 'heading' => $newBanner->heading, + 'url' => $newBanner->url, + 'sort' => $newBanner->sort, + 'status' => $newBanner->status->value, + ]); +}); + +it('can delete banner model.', function () { + $banner = Banner::factory()->create(); + + livewire(BannerResource\Pages\EditBanner::class, [ + 'record' => $banner->getRouteKey(), + ]) + ->callAction(DeleteAction::class); + + $this->assertModelMissing($banner); +}); diff --git a/admin/tests/Feature/Filament/Resource/ProductResourceTest.php b/admin/tests/Feature/Filament/Resource/ProductResourceTest.php index 38bf0062..c9352dad 100644 --- a/admin/tests/Feature/Filament/Resource/ProductResourceTest.php +++ b/admin/tests/Feature/Filament/Resource/ProductResourceTest.php @@ -3,6 +3,9 @@ declare(strict_types=1); use App\Filament\Resources\ProductResource; +use App\Models\Attribute; +use App\Models\AttributeGroup; +use App\Models\AttributeGroupCategory; use App\Models\Image; use App\Models\Product; use App\Models\Variety; @@ -13,7 +16,7 @@ use function Pest\Livewire\livewire; beforeEach(function () { - login(); // You have login() helper, keep it here + login(); }); it('can render index page of the product resource.', function () { @@ -37,8 +40,6 @@ $product = Product::factory()->create(); $newProduct = Product::factory()->make(); - $file = UploadedFile::fake()->image('image.png', 500); - livewire(ProductResource\Pages\EditProduct::class, [ 'record' => $product->getRouteKey(), ]) @@ -59,7 +60,6 @@ 'step' => $newProduct->step, 'profit_percent' => $newProduct->profit_percent, 'has_stock' => $newProduct->has_stock, - 'variety_counts' => 1, 'weight' => $newProduct->weight, 'length' => $newProduct->length, 'width' => $newProduct->width, @@ -67,43 +67,18 @@ 'status' => $newProduct->status->value, 'seen' => $newProduct->seen, ]) - ->set('data.images.0.path', [$file->getClientOriginalName()]) // you may adjust this based on your form - ->set('data.images.0.is_featured', false) ->call('save') ->assertHasNoFormErrors(); expect($product->refresh()) ->heading->toBe($newProduct->heading) - ->slug->toBe($newProduct->slug) ->price->toBe($newProduct->price) - ->content->toBe($newProduct->content ? $newProduct->content : null) ->title->toBe($newProduct->title) - ->description->toBe($newProduct->description) ->no_index->toBe($newProduct->no_index) - ->canonical->toBe($newProduct->canonical) - ->attribute_group_id->toBe($newProduct->attribute_group_id) ->category_id->toBe($newProduct->category_id) ->brand_id->toBe($newProduct->brand_id) - ->minimum->toBe($newProduct->minimum) - ->maximum->toBe($newProduct->maximum) - ->step->toBe($newProduct->step) - ->profit_percent->toBe($newProduct->profit_percent) - ->has_stock->toBe($newProduct->has_stock) - ->variety_counts->toBe($newProduct->variety_counts) - ->weight->toBe($newProduct->weight) - ->length->toBe($newProduct->length) - ->width->toBe($newProduct->width) - ->height->toBe($newProduct->height) ->status->toBe($newProduct->status) ->seen->toBe($newProduct->seen); - - $product = Product::query()->where('slug', $newProduct->slug)->first(); - - $this->assertDatabaseHas(Image::class, [ - 'path' => $file->getClientOriginalName(), - 'imageable_id' => $product->id, - 'imageable_type' => Product::class, - ]); }); it('can create product model.', function () { @@ -129,7 +104,6 @@ 'step' => $newProduct->step, 'profit_percent' => $newProduct->profit_percent, 'has_stock' => $newProduct->has_stock, - 'variety_counts' => 1, 'weight' => $newProduct->weight, 'length' => $newProduct->length, 'width' => $newProduct->width, @@ -145,8 +119,6 @@ ]) ->set('data.varieties', [ [ - 'attribute_value' => $variety->attribute_value, - 'color' => $variety->color, 'price' => $variety->price, 'sale_price' => $variety->sale_price, 'inventory' => $variety->inventory, @@ -160,27 +132,7 @@ $this->assertDatabaseHas(Product::class, [ 'heading' => $newProduct->heading, 'slug' => $newProduct->slug, - 'price' => $newProduct->price, - 'content' => $newProduct->content ? $newProduct->content : null, - 'title' => $newProduct->title, - 'description' => $newProduct->description, - 'no_index' => $newProduct->no_index, - 'canonical' => $newProduct->canonical, - 'attribute_group_id' => $newProduct->attribute_group_id, - 'category_id' => $newProduct->category_id, - 'brand_id' => $newProduct->brand_id, - 'minimum' => $newProduct->minimum, - 'maximum' => $newProduct->maximum, - 'step' => $newProduct->step, - 'profit_percent' => $newProduct->profit_percent, - 'has_stock' => $newProduct->has_stock, - 'variety_counts' => 1, - 'weight' => $newProduct->weight, - 'length' => $newProduct->length, - 'width' => $newProduct->width, - 'height' => $newProduct->height, 'status' => $newProduct->status->value, - 'seen' => $newProduct->seen, ]); $product = Product::query()->where('slug', $newProduct->slug)->first(); @@ -191,14 +143,11 @@ 'imageable_type' => Product::class, 'is_featured' => true, ]); + $this->assertDatabaseHas(Variety::class, [ - 'attribute_value' => $variety->attribute_value, - 'color' => $variety->color, + 'product_id' => $product->id, 'price' => $variety->price, - 'sale_price' => $variety->sale_price, 'inventory' => $variety->inventory, - 'has_stock' => (int) $variety->has_stock, - 'status' => $variety->status, ]); }); @@ -211,3 +160,69 @@ $this->assertModelMissing($product); }); + +it('syncs attributes to the pivot table when saving a product.', function () { + $product = Product::factory()->create(); + $attribute = Attribute::factory()->create(); + + livewire(ProductResource\Pages\EditProduct::class, [ + 'record' => $product->getRouteKey(), + ]) + ->set('data.attributes', [ + [ + 'attribute_id' => $attribute->id, + 'pivot' => ['is_highlight' => true], + ], + ]) + ->call('save') + ->assertHasNoFormErrors(); + + $this->assertDatabaseHas('product_attribute', [ + 'product_id' => $product->id, + 'attribute_id' => $attribute->id, + 'is_highlight' => true, + ]); +}); + +it('blocks saving when required attribute groups are missing.', function () { + $attributeGroup = AttributeGroup::factory()->create(); + $category = AttributeGroupCategory::factory()->create([ + 'attribute_group_id' => $attributeGroup->id, + 'required' => true, + ]); + $newProduct = Product::factory()->make(['category_id' => $category->category_id]); + + livewire(ProductResource\Pages\CreateProduct::class) + ->fillForm([ + 'heading' => $newProduct->heading, + 'slug' => $newProduct->slug, + 'price' => $newProduct->price, + 'content' => $newProduct->content, + 'title' => $newProduct->title, + 'description' => $newProduct->description, + 'no_index' => $newProduct->no_index, + 'attribute_group_id' => $newProduct->attribute_group_id, + 'category_id' => $category->category_id, + 'brand_id' => $newProduct->brand_id, + 'minimum' => $newProduct->minimum, + 'step' => $newProduct->step, + 'profit_percent' => $newProduct->profit_percent, + 'has_stock' => $newProduct->has_stock, + 'status' => $newProduct->status->value, + 'seen' => $newProduct->seen, + ]) + ->call('create'); + + $this->assertDatabaseMissing(Product::class, ['heading' => $newProduct->heading]); +}); + +it('auto-syncs variety_counts on product when a variety is deleted.', function () { + $product = Product::factory()->create(); + $variety = Variety::factory()->for($product)->create(); + + expect($product->refresh())->variety_counts->toBe(1); + + $variety->delete(); + + expect($product->refresh())->variety_counts->toBe(0); +}); diff --git a/admin/tests/Feature/Filament/Resource/VarietyResourceTest.php b/admin/tests/Feature/Filament/Resource/VarietyResourceTest.php index 33f1ae32..c7f96f92 100644 --- a/admin/tests/Feature/Filament/Resource/VarietyResourceTest.php +++ b/admin/tests/Feature/Filament/Resource/VarietyResourceTest.php @@ -3,6 +3,7 @@ declare(strict_types=1); use App\Filament\Resources\VarietyResource; +use App\Models\Attribute; use App\Models\Product; use App\Models\Variety; use Filament\Actions\DeleteAction; @@ -44,8 +45,6 @@ ]) ->fillForm([ 'product_id' => $product->id, - 'attribute_value' => $newVariety->attribute_value, - 'color' => $newVariety->color, 'price' => $newVariety->price, 'sale_price' => $newVariety->sale_price, 'inventory' => $newVariety->inventory, @@ -57,8 +56,6 @@ expect($variety->refresh()) ->product_id->toBe($product->id) - ->attribute_value->toBe($newVariety->attribute_value) - ->color->toBe($newVariety->color) ->price->toBe($newVariety->price) ->sale_price->toBe($newVariety->sale_price) ->inventory->toBe($newVariety->inventory) @@ -73,8 +70,6 @@ livewire(VarietyResource\Pages\CreateVariety::class) ->fillForm([ 'product_id' => $product->id, - 'attribute_value' => $newVariety->attribute_value, - 'color' => $newVariety->color, 'price' => $newVariety->price, 'sale_price' => $newVariety->sale_price, 'inventory' => $newVariety->inventory, @@ -86,8 +81,6 @@ $this->assertDatabaseHas(Variety::class, [ 'product_id' => $product->id, - 'attribute_value' => $newVariety->attribute_value, - 'color' => $newVariety->color, 'price' => $newVariety->price, 'sale_price' => $newVariety->sale_price, 'inventory' => $newVariety->inventory, @@ -106,3 +99,47 @@ $this->assertModelMissing($variety); }); + +it('auto-fills attribute_value and color from attribute when attribute_id is set.', function () { + $attribute = Attribute::factory()->create(['value' => 'Red', 'color' => '#ff0000']); + $variety = Variety::factory()->withAttribute($attribute)->create(); + + expect($variety->refresh()) + ->attribute_value->toBe('Red') + ->color->toBe('#ff0000'); +}); + +it('auto-syncs variety_counts on product when a variety is created.', function () { + $product = Product::factory()->create(); + + expect($product->refresh())->variety_counts->toBe(0); + + Variety::factory()->for($product)->create(); + + expect($product->refresh())->variety_counts->toBe(1); +}); + +it('auto-syncs variety_counts on product when a variety is deleted.', function () { + $product = Product::factory()->create(); + $variety = Variety::factory()->for($product)->create(); + + expect($product->refresh())->variety_counts->toBe(1); + + $variety->delete(); + + expect($product->refresh())->variety_counts->toBe(0); +}); + +it('auto-syncs variety_counts on product when a variety is deleted via the resource.', function () { + $product = Product::factory()->create(); + $variety = Variety::factory()->for($product)->create(); + + expect($product->refresh())->variety_counts->toBe(1); + + livewire(VarietyResource\Pages\EditVariety::class, [ + 'record' => $variety->getRouteKey(), + ])->callAction(DeleteAction::class); + + $this->assertModelMissing($variety); + expect($product->refresh())->variety_counts->toBe(0); +});