Compare commits

...
51 Commits
Author SHA1 Message Date
Gani Georgiev 8a08a4764d [#166] fixed api preview examples 2022-07-19 19:41:03 +03:00
Gani Georgiev 66b317f01c run tests before goreleaser 2022-07-19 17:24:58 +03:00
Gani Georgiev ab5a770346 updated tests 2022-07-19 17:23:34 +03:00
Gani Georgiev 65697add43 temporary skip tests in the release action until the async email hooks get fixed 2022-07-19 14:46:02 +03:00
Gani Georgiev 841415f0ff move field delete in a dropdown to prevent accidental clicks 2022-07-19 14:36:35 +03:00
Gani Georgiev f295ce9403 run added password reset and verification sent hooks tests 2022-07-19 14:20:28 +03:00
Gani Georgiev 383b2a1279 [#160] support expand query parameter for create and update requests 2022-07-19 13:31:52 +03:00
Gani Georgiev 73fb12c2bc [#156] added forcePathStyle to the s3 config 2022-07-19 10:45:38 +03:00
Kenneth Lee 571c4dcc8d [#163] fixed migrate down cmd 2022-07-18 23:00:54 +03:00
Gani Georgiev f56adf26f4 added the app name in the document title and fixed the double initial load on records list 2022-07-18 19:44:10 +03:00
Gani Georgiev f8f3ca25ee updated duplicated field name error 2022-07-18 18:10:30 +03:00
Gani Georgiev e01f76d37b allow switching schema field names when renaming fields 2022-07-18 16:26:37 +03:00
Gani Georgiev 47fc9b1066 normalized null handling in search filters 2022-07-18 14:07:25 +03:00
Gani Georgiev eaf08a5c15 [#151] updated the tests to ensure that the cascaded record files are also deleted 2022-07-18 13:19:07 +03:00
Gani Georgiev 8ef3d4e966 [#151] remove files on cascade deletion 2022-07-18 12:04:27 +03:00
Gani Georgiev 04e0cec32c updated ui/dist 2022-07-18 01:06:55 +03:00
Gani Georgiev 9a231ba7b3 applied some of the changes from #149 2022-07-18 01:03:09 +03:00
Gani Georgiev 7f959011b8 moved field option btns inside the panel 2022-07-18 00:55:53 +03:00
Gani Georgiev 994761b728 normalized the caster to return always non-null value and fixed minor ui issues 2022-07-18 00:16:09 +03:00
Gani Georgiev f19b9e3552 commented golangci-lint action as it is not go1.18+ ready 2022-07-17 22:25:28 +03:00
Gani Georgiev 36783b8f04 added golangci-lint action 2022-07-17 22:20:40 +03:00
Gani Georgiev a076cc906f [#147] added CONTRIBUTING.md 2022-07-17 20:33:12 +03:00
Gani Georgiev b1a30f4050 fixed figure tag typo 2022-07-16 11:57:31 +03:00
Gani Georgiev 4506fb17e9 adding video presets to the file options 2022-07-16 11:54:54 +03:00
Gani Georgiev 72f72bc84f added invalid form-group styles 2022-07-16 10:40:04 +03:00
Gani Georgiev 7fd5102fb5 updated EmailOptions domain input tooltips 2022-07-16 10:39:19 +03:00
Gani Georgiev d6bdc51009 changed the storage slide panel transition to local 2022-07-16 10:38:47 +03:00
Gani Georgiev 789373d15d [#100] resets the initial loadList results 2022-07-15 19:37:30 +03:00
Gani Georgiev 2dc000da65 improve error reporting on OAuth2 user profile fetch 2022-07-15 18:52:37 +03:00
Simon Krauter 1095637bcd [#116] fix BaseModel.RefreshUpdated comment 2022-07-14 23:17:53 +03:00
Gani Georgiev c4fcba5210 [#109] prealocated handlers and replaced OnRecordBeforeDeleteRequest with OnModelBeforeDelete 2022-07-14 22:35:57 +03:00
Gani Georgiev d8c8289269 added odd default circle icon size for better visual vertical alignment in firefox 2022-07-14 21:21:47 +03:00
Gani Georgiev dbbfa243bc added new lines for readability and consistency 2022-07-14 20:01:53 +03:00
Valley a16b0c9004 [#114] simplified some code by returning early and added cap for slices 2022-07-14 19:26:08 +03:00
Gani Georgiev 03a7bafa66 use the original vite2 default port and bump the min js-sdk to v0.2.1 2022-07-14 17:09:08 +03:00
Gani Georgiev d129959098 added store.RemoveAll() helper method 2022-07-14 16:39:42 +03:00
Gani Georgiev 6749559a22 log the response error not the handler one 2022-07-14 11:52:35 +03:00
Gani Georgiev 28bc2678e9 minor ui improvements and upgraded dependencies 2022-07-14 09:58:53 +03:00
Gani Georgiev d4202e696b [#99] fix AutoExpandTextArea scrolling 2022-07-13 22:44:59 +03:00
Gani Georgiev 9de3cc99a0 updated api preview body params col sizes 2022-07-13 08:48:38 +03:00
Franco Profeti 111bc59472 [#93] improved the README for no golang devs 2022-07-13 08:12:25 +03:00
Gani Georgiev b2647ebca9 synced refresh button js timeout with the css animation 2022-07-12 20:03:13 +03:00
Gani Georgiev ef226cf9c1 added refresh button to the other listing pages 2022-07-12 19:56:22 +03:00
Valley 63d5a8d633 [#89] simplified some code by returning early and reducing local variable scopes 2022-07-12 19:52:09 +03:00
Gani Georgiev d71c3cd19c updated ui/dist 2022-07-12 18:11:50 +03:00
Cornelius Müller 240bd6790a [#83] added refresh button to page records view 2022-07-12 18:08:57 +03:00
Gani Georgiev 05a4071eba [#80] fixed before hooks data and added optional interceptor to upsert submit 2022-07-12 13:42:06 +03:00
Valley ce857985be [#82] removed version cmd and make use of cobra.Version 2022-07-12 07:57:36 +03:00
Gani Georgiev 320d1482a4 [#77] add warning on storage type change 2022-07-11 22:23:22 +03:00
Gani Georgiev 46399dddac [#78] enable fully qualified URIs for S3 endpoints and improved error reporting when uploading or deleting files 2022-07-11 21:00:17 +03:00
Gani Georgiev 52c288d9db added linter skip comments and removed the Presentator specific inflector.Usernamify 2022-07-11 16:16:01 +03:00
130 changed files with 2631 additions and 1923 deletions

No files matched your search

+8
View File
@@ -29,6 +29,14 @@ jobs:
- name: Build Admin dashboard UI
run: npm --prefix=./ui ci && npm --prefix=./ui run build
# The prebuilt golangci-lint doesn't support go 1.18+ yet
# https://github.com/golangci/golangci-lint/issues/2649
# - name: Run linter
# uses: golangci/golangci-lint-action@v3
- name: Run tests
run: go test ./...
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v3
with:
+80
View File
@@ -0,0 +1,80 @@
Contributing to PocketBase
======================================================================
Thanks for taking the time to improve PocketBase!
This document describes how to prepare a PR for a change in the main repository.
- [Prerequisites](#prerequisites)
- [Making changes in the Go code](#making-changes-in-the-go-code)
- [Making changes in the Admin UI](#making-changes-in-the-admin-ui)
## Prerequisites
- Go 1.18+ (for making changes in the Go code)
- Node 16+ (for making changes in the Admin UI)
If you haven't already, you can fork the main repository and clone your fork so that you can work locally:
```
git clone https://github.com/your_username/pocketbase.git
```
> It is recommended to create a new branch from master for each of your bugfixes and features.
> This is required if you are planning to submit multiple PRs in order to keep the changes separate for review until they eventually get merged.
## Making changes in the Go code
PocketBase is a Go package, which means that in order to run the project you'll have to create a Go `main` program that imports the package.
The repository already includes such program, located in `/examples/base`, that is also used for the prebuilt executables.
So, let's assume that you already done some changes in the PocketBase Go code and you want now to run them:
1. Navigate to `examples/base`
2. Run `go run main.go serve`
This will start a web server on `http://localhost:8090` with the embedded prebuilt Admin UI from `ui/dist`. And that's it!
**Before making a PR to the main repository, it is a good idea to:**
- Add unit/integration tests for your changes (we are using the standard `testing` go package).
To run the tests, you could execute (while in the root project directory):
```sh
go test ./...
# or using the Makefile
make test
```
- Run the linter - **golangci** ([see how to install](https://golangci-lint.run/usage/install/#local-installation)):
```sh
golangci-lint run -c ./golangci.yml ./...
# or using the Makefile
make lint
```
## Making changes in the Admin UI
PocketBase Admin UI is a single-page application (SPA) built with Svelte and Vite.
To start the Admin UI:
1. Navigate to the `ui` project directory
2. Run `npm install` to install the node dependencies
3. Start vite's dev server
```sh
npm run dev
```
You could open the browser and access the running Admin UI at `http://localhost:3000`.
Since the Admin UI is just a client-side application, you need to have the PocketBase backend server also running in the background (either manually running the `examples/base/main.go` or download a prebuilt executable).
> By default, the Admin UI is expecting the backend server to be started at `http://localhost:8090`, but you could change that by creating a new `ui/.env.development.local` file with `PB_BACKEND_URL = YOUR_ADDRESS` variable inside it.
Every change you make in the Admin UI should be automatically reflected in the browser at `http://localhost:3000` without reloading the page.
Once you are done with your changes, you have to build the Admin UI with `npm run build`, so that it can be embedded in the go package. And that's it - you can make your PR to the main PocketBase repository.
+6 -3
View File
@@ -91,10 +91,12 @@ Running/building the application is the same as for any other Go program, aka. j
**PocketBase embeds SQLite, but doesn't require CGO.**
If CGO is enabled, it will use [mattn/go-sqlite3](https://pkg.go.dev/github.com/mattn/go-sqlite3) driver, otherwise - [modernc.org/sqlite](https://pkg.go.dev/modernc.org/sqlite).
If CGO is enabled, it will use [mattn/go-sqlite3](https://pkg.go.dev/github.com/mattn/go-sqlite3) driver, otherwise - [modernc.org/sqlite](https://pkg.go.dev/modernc.org/sqlite). You can enable and disable CGO by setting the `CGO_ENABLED` enviroment variable to `1` or `0` respectively.
Enable CGO only if you really need to squeeze the read/write query performance at the expense of complicating cross compilation.
To build the minimal standalone executable, like the prebuilt ones in the releases page, you can simply run `go build` inside the `examples/base` directory.
### Testing
PocketBase comes with mixed bag of unit and integration tests.
@@ -118,8 +120,9 @@ PocketBase is free and open source project licensed under the [MIT License](LICE
You could help continuing its development by:
- [Suggest new features, report issues and fix bugs](https://github.com/pocketbase/pocketbase/issues)
- [Contribute to the source code](CONTRIBUTING.md)
- [Suggest new features and report issues](https://github.com/pocketbase/pocketbase/issues)
- [Donate a small amount](https://pocketbase.io/support-us)
> Please also note that PocketBase was initially created to serve as a new backend for my other open source project - [Presentator](https://presentator.io) (see [#183](https://github.com/presentator/presentator/issues/183)),
> Please note that PocketBase was initially created to serve as a new backend for my other open source project - [Presentator](https://presentator.io) (see [#183](https://github.com/presentator/presentator/issues/183)),
so all feature requests will be first aligned with what we need for Presentator v3.
+26 -18
View File
@@ -166,7 +166,7 @@ func (api *adminApi) create(c echo.Context) error {
// load request
if err := c.Bind(form); err != nil {
return rest.NewBadRequestError("Failed to read the submitted data due to invalid formatting.", err)
return rest.NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err)
}
event := &core.AdminCreateEvent{
@@ -174,20 +174,24 @@ func (api *adminApi) create(c echo.Context) error {
Admin: admin,
}
handlerErr := api.app.OnAdminBeforeCreateRequest().Trigger(event, func(e *core.AdminCreateEvent) error {
// create the admin
if err := form.Submit(); err != nil {
return rest.NewBadRequestError("Failed to create admin.", err)
}
// create the admin
submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
return api.app.OnAdminBeforeCreateRequest().Trigger(event, func(e *core.AdminCreateEvent) error {
if err := next(); err != nil {
return rest.NewBadRequestError("Failed to create admin.", err)
}
return e.HttpContext.JSON(http.StatusOK, e.Admin)
return e.HttpContext.JSON(http.StatusOK, e.Admin)
})
}
})
if handlerErr == nil {
if submitErr == nil {
api.app.OnAdminAfterCreateRequest().Trigger(event)
}
return handlerErr
return submitErr
}
func (api *adminApi) update(c echo.Context) error {
@@ -205,7 +209,7 @@ func (api *adminApi) update(c echo.Context) error {
// load request
if err := c.Bind(form); err != nil {
return rest.NewBadRequestError("Failed to read the submitted data due to invalid formatting.", err)
return rest.NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err)
}
event := &core.AdminUpdateEvent{
@@ -213,20 +217,24 @@ func (api *adminApi) update(c echo.Context) error {
Admin: admin,
}
handlerErr := api.app.OnAdminBeforeUpdateRequest().Trigger(event, func(e *core.AdminUpdateEvent) error {
// update the admin
if err := form.Submit(); err != nil {
return rest.NewBadRequestError("Failed to update admin.", err)
}
// update the admin
submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
return api.app.OnAdminBeforeUpdateRequest().Trigger(event, func(e *core.AdminUpdateEvent) error {
if err := next(); err != nil {
return rest.NewBadRequestError("Failed to update admin.", err)
}
return e.HttpContext.JSON(http.StatusOK, e.Admin)
return e.HttpContext.JSON(http.StatusOK, e.Admin)
})
}
})
if handlerErr == nil {
if submitErr == nil {
api.app.OnAdminAfterUpdateRequest().Trigger(event)
}
return handlerErr
return submitErr
}
func (api *adminApi) delete(c echo.Context) error {
+24 -17
View File
@@ -4,11 +4,14 @@ import (
"net/http"
"strings"
"testing"
"time"
"github.com/labstack/echo/v5"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/daos"
"github.com/pocketbase/pocketbase/models"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/types"
)
func TestAdminAuth(t *testing.T) {
@@ -92,6 +95,7 @@ func TestAdminRequestPasswordReset(t *testing.T) {
Method: http.MethodPost,
Url: "/api/admins/request-password-reset",
Body: strings.NewReader(`{"email":"missing@example.com"}`),
Delay: 100 * time.Millisecond,
ExpectedStatus: 204,
},
{
@@ -99,22 +103,34 @@ func TestAdminRequestPasswordReset(t *testing.T) {
Method: http.MethodPost,
Url: "/api/admins/request-password-reset",
Body: strings.NewReader(`{"email":"test@example.com"}`),
Delay: 100 * time.Millisecond,
ExpectedStatus: 204,
// usually this events are fired but since the submit is
// executed in a separate go routine they are fired async
// ExpectedEvents: map[string]int{
// "OnModelBeforeUpdate": 1,
// "OnModelAfterUpdate": 1,
// "OnMailerBeforeUserResetPasswordSend:1": 1,
// "OnMailerAfterUserResetPasswordSend:1": 1,
// },
ExpectedEvents: map[string]int{
"OnModelBeforeUpdate": 1,
"OnModelAfterUpdate": 1,
"OnMailerBeforeAdminResetPasswordSend": 1,
"OnMailerAfterAdminResetPasswordSend": 1,
},
},
{
Name: "existing admin (after already sent)",
Method: http.MethodPost,
Url: "/api/admins/request-password-reset",
Body: strings.NewReader(`{"email":"test@example.com"}`),
Delay: 100 * time.Millisecond,
ExpectedStatus: 204,
BeforeFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) {
// simulate recent password request
admin, err := app.Dao().FindAdminByEmail("test@example.com")
if err != nil {
t.Fatal(err)
}
admin.LastResetSentAt = types.NowDateTime()
dao := daos.New(app.Dao().DB()) // new dao to ignore hooks
if err := dao.Save(admin); err != nil {
t.Fatal(err)
}
},
},
}
@@ -507,9 +523,6 @@ func TestAdminCreate(t *testing.T) {
},
ExpectedStatus: 400,
ExpectedContent: []string{`"data":{"email":{"code":"validation_required","message":"Cannot be blank."},"password":{"code":"validation_required","message":"Cannot be blank."}}`},
ExpectedEvents: map[string]int{
"OnAdminBeforeCreateRequest": 1,
},
},
{
Name: "authorized as admin + invalid data format",
@@ -532,9 +545,6 @@ func TestAdminCreate(t *testing.T) {
},
ExpectedStatus: 400,
ExpectedContent: []string{`"data":{"avatar":{"code":"validation_max_less_equal_than_required","message":"Must be no greater than 9."},"email":{"code":"validation_admin_email_exists","message":"Admin email already exists."},"password":{"code":"validation_length_out_of_range","message":"The length must be between 10 and 100."},"passwordConfirm":{"code":"validation_values_mismatch","message":"Values don't match."}}`},
ExpectedEvents: map[string]int{
"OnAdminBeforeCreateRequest": 1,
},
},
{
Name: "authorized as admin + valid data",
@@ -647,9 +657,6 @@ func TestAdminUpdate(t *testing.T) {
},
ExpectedStatus: 400,
ExpectedContent: []string{`"data":{"avatar":{"code":"validation_max_less_equal_than_required","message":"Must be no greater than 9."},"email":{"code":"validation_admin_email_exists","message":"Admin email already exists."},"password":{"code":"validation_length_out_of_range","message":"The length must be between 10 and 100."},"passwordConfirm":{"code":"validation_values_mismatch","message":"Values don't match."}}`},
ExpectedEvents: map[string]int{
"OnAdminBeforeUpdateRequest": 1,
},
},
{
Method: http.MethodPatch,
+1 -1
View File
@@ -68,7 +68,7 @@ func InitApi(app core.App) (*echo.Echo, error) {
// truly rare case; eg. client already disconnected
if cErr != nil && app.IsDebug() {
log.Println(err)
log.Println(cErr)
}
}
+28 -44
View File
@@ -1,8 +1,6 @@
package apis
import (
"errors"
"log"
"net/http"
"github.com/labstack/echo/v5"
@@ -76,9 +74,9 @@ func (api *collectionApi) create(c echo.Context) error {
form := forms.NewCollectionUpsert(api.app, collection)
// read
// load request
if err := c.Bind(form); err != nil {
return rest.NewBadRequestError("Failed to read the submitted data due to invalid formatting.", err)
return rest.NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err)
}
event := &core.CollectionCreateEvent{
@@ -86,20 +84,24 @@ func (api *collectionApi) create(c echo.Context) error {
Collection: collection,
}
handlerErr := api.app.OnCollectionBeforeCreateRequest().Trigger(event, func(e *core.CollectionCreateEvent) error {
// submit
if err := form.Submit(); err != nil {
return rest.NewBadRequestError("Failed to create the collection.", err)
}
// create the collection
submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
return api.app.OnCollectionBeforeCreateRequest().Trigger(event, func(e *core.CollectionCreateEvent) error {
if err := next(); err != nil {
return rest.NewBadRequestError("Failed to create the collection.", err)
}
return e.HttpContext.JSON(http.StatusOK, e.Collection)
return e.HttpContext.JSON(http.StatusOK, e.Collection)
})
}
})
if handlerErr == nil {
if submitErr == nil {
api.app.OnCollectionAfterCreateRequest().Trigger(event)
}
return handlerErr
return submitErr
}
func (api *collectionApi) update(c echo.Context) error {
@@ -110,9 +112,9 @@ func (api *collectionApi) update(c echo.Context) error {
form := forms.NewCollectionUpsert(api.app, collection)
// read
// load request
if err := c.Bind(form); err != nil {
return rest.NewBadRequestError("Failed to read the submitted data due to invalid formatting.", err)
return rest.NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err)
}
event := &core.CollectionUpdateEvent{
@@ -120,20 +122,24 @@ func (api *collectionApi) update(c echo.Context) error {
Collection: collection,
}
handlerErr := api.app.OnCollectionBeforeUpdateRequest().Trigger(event, func(e *core.CollectionUpdateEvent) error {
// submit
if err := form.Submit(); err != nil {
return rest.NewBadRequestError("Failed to update the collection.", err)
}
// update the collection
submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
return api.app.OnCollectionBeforeUpdateRequest().Trigger(event, func(e *core.CollectionUpdateEvent) error {
if err := next(); err != nil {
return rest.NewBadRequestError("Failed to update the collection.", err)
}
return e.HttpContext.JSON(http.StatusOK, e.Collection)
return e.HttpContext.JSON(http.StatusOK, e.Collection)
})
}
})
if handlerErr == nil {
if submitErr == nil {
api.app.OnCollectionAfterUpdateRequest().Trigger(event)
}
return handlerErr
return submitErr
}
func (api *collectionApi) delete(c echo.Context) error {
@@ -152,13 +158,6 @@ func (api *collectionApi) delete(c echo.Context) error {
return rest.NewBadRequestError("Failed to delete collection. Make sure that the collection is not referenced by other collections.", err)
}
// try to delete the collection files
if err := api.deleteCollectionFiles(e.Collection); err != nil && api.app.IsDebug() {
// non critical error - only log for debug
// (usually could happen because of S3 api limits)
log.Println(err)
}
return e.HttpContext.NoContent(http.StatusNoContent)
})
@@ -168,18 +167,3 @@ func (api *collectionApi) delete(c echo.Context) error {
return handlerErr
}
func (api *collectionApi) deleteCollectionFiles(collection *models.Collection) error {
fs, err := api.app.NewFilesystem()
if err != nil {
return err
}
defer fs.Close()
failed := fs.DeletePrefix(collection.BaseFilesPath())
if len(failed) > 0 {
return errors.New("Failed to delete all record files.")
}
return nil
}
-9
View File
@@ -297,9 +297,6 @@ func TestCollectionCreate(t *testing.T) {
`"name":{"code":"validation_required"`,
`"schema":{"code":"validation_required"`,
},
ExpectedEvents: map[string]int{
"OnCollectionBeforeCreateRequest": 1,
},
},
{
Name: "authorized as admin + invalid data (eg. existing name)",
@@ -315,9 +312,6 @@ func TestCollectionCreate(t *testing.T) {
`"name":{"code":"validation_collection_name_exists"`,
`"schema":{"0":{"name":{"code":"validation_required"`,
},
ExpectedEvents: map[string]int{
"OnCollectionBeforeCreateRequest": 1,
},
},
{
Name: "authorized as admin + valid data",
@@ -399,9 +393,6 @@ func TestCollectionUpdate(t *testing.T) {
`"data":{`,
`"name":{"code":"validation_collection_name_exists"`,
},
ExpectedEvents: map[string]int{
"OnCollectionBeforeUpdateRequest": 1,
},
},
{
Name: "authorized as admin + valid data",
+1 -1
View File
@@ -77,7 +77,7 @@ func RequireAdminAuth() echo.MiddlewareFunc {
}
}
// RequireAdminAuthIfAny middleware requires a request to have
// RequireAdminAuthOnlyIfAny middleware requires a request to have
// a valid admin Authorization header set (aka. `Authorization: Admin ...`)
// ONLY if the application has at least 1 existing Admin model.
func RequireAdminAuthOnlyIfAny(app core.App) echo.MiddlewareFunc {
+28 -21
View File
@@ -159,8 +159,8 @@ func (api *realtimeApi) bindEvents() {
adminTable := (&models.Admin{}).TableName()
// update user/admin auth state
api.app.OnModelAfterUpdate().Add(func(data *core.ModelEvent) error {
modelTable := data.Model.TableName()
api.app.OnModelAfterUpdate().Add(func(e *core.ModelEvent) error {
modelTable := e.Model.TableName()
var contextKey string
switch modelTable {
@@ -174,8 +174,8 @@ func (api *realtimeApi) bindEvents() {
for _, client := range api.app.SubscriptionsBroker().Clients() {
model, _ := client.Get(contextKey).(models.Model)
if model != nil && model.GetId() == data.Model.GetId() {
client.Set(contextKey, data.Model)
if model != nil && model.GetId() == e.Model.GetId() {
client.Set(contextKey, e.Model)
}
}
@@ -183,8 +183,8 @@ func (api *realtimeApi) bindEvents() {
})
// remove user/admin client(s)
api.app.OnModelAfterDelete().Add(func(data *core.ModelEvent) error {
modelTable := data.Model.TableName()
api.app.OnModelAfterDelete().Add(func(e *core.ModelEvent) error {
modelTable := e.Model.TableName()
var contextKey string
switch modelTable {
@@ -198,7 +198,7 @@ func (api *realtimeApi) bindEvents() {
for _, client := range api.app.SubscriptionsBroker().Clients() {
model, _ := client.Get(contextKey).(models.Model)
if model != nil && model.GetId() == data.Model.GetId() {
if model != nil && model.GetId() == e.Model.GetId() {
api.app.SubscriptionsBroker().Unregister(client.Id())
}
}
@@ -206,18 +206,20 @@ func (api *realtimeApi) bindEvents() {
return nil
})
api.app.OnRecordAfterCreateRequest().Add(func(data *core.RecordCreateEvent) error {
api.broadcastRecord("create", data.Record)
api.app.OnRecordAfterCreateRequest().Add(func(e *core.RecordCreateEvent) error {
api.broadcastRecord("create", e.Record)
return nil
})
api.app.OnRecordAfterUpdateRequest().Add(func(data *core.RecordUpdateEvent) error {
api.broadcastRecord("update", data.Record)
api.app.OnRecordAfterUpdateRequest().Add(func(e *core.RecordUpdateEvent) error {
api.broadcastRecord("update", e.Record)
return nil
})
api.app.OnRecordAfterDeleteRequest().Add(func(data *core.RecordDeleteEvent) error {
api.broadcastRecord("delete", data.Record)
api.app.OnModelBeforeDelete().Add(func(e *core.ModelEvent) error {
if record, ok := e.Model.(*models.Record); ok {
api.broadcastRecord("delete", record)
}
return nil
})
}
@@ -286,19 +288,24 @@ func (api *realtimeApi) broadcastRecord(action string, record *models.Record) er
return nil // no subscribers
}
// remove the expand from the broadcasted record because we don't
// know if the clients have access to view the expanded records
cleanRecord := *record
cleanRecord.SetExpand(nil)
subscriptionRuleMap := map[string]*string{
(collection.Name + "/" + record.Id): collection.ViewRule,
(collection.Id + "/" + record.Id): collection.ViewRule,
collection.Name: collection.ListRule,
collection.Id: collection.ListRule,
(collection.Name + "/" + cleanRecord.Id): collection.ViewRule,
(collection.Id + "/" + cleanRecord.Id): collection.ViewRule,
collection.Name: collection.ListRule,
collection.Id: collection.ListRule,
}
recordData := &recordData{
data := &recordData{
Action: action,
Record: record,
Record: &cleanRecord,
}
serializedData, err := json.Marshal(recordData)
serializedData, err := json.Marshal(data)
if err != nil {
if api.app.IsDebug() {
log.Println(err)
@@ -312,7 +319,7 @@ func (api *realtimeApi) broadcastRecord(action string, record *models.Record) er
continue
}
if !api.canAccessRecord(client, record, rule) {
if !api.canAccessRecord(client, data.Record, rule) {
continue
}
+58 -54
View File
@@ -80,13 +80,13 @@ func (api *recordApi) list(c echo.Context) error {
// expand records relations
expands := strings.Split(c.QueryParam(expandQueryParam), ",")
if len(expands) > 0 {
expandErr := api.app.Dao().ExpandRecords(
failed := api.app.Dao().ExpandRecords(
records,
expands,
api.expandFunc(c, requestData),
)
if expandErr != nil && api.app.IsDebug() {
log.Println("Failed to expand relations: ", expandErr)
if len(failed) > 0 && api.app.IsDebug() {
log.Println("Failed to expand relations: ", failed)
}
}
@@ -141,16 +141,14 @@ func (api *recordApi) view(c echo.Context) error {
return rest.NewNotFoundError("", fetchErr)
}
expands := strings.Split(c.QueryParam(expandQueryParam), ",")
if len(expands) > 0 {
expandErr := api.app.Dao().ExpandRecord(
record,
expands,
api.expandFunc(c, requestData),
)
if expandErr != nil && api.app.IsDebug() {
log.Println("Failed to expand relations: ", expandErr)
}
// expand record relations
failed := api.app.Dao().ExpandRecord(
record,
strings.Split(c.QueryParam(expandQueryParam), ","),
api.expandFunc(c, requestData),
)
if len(failed) > 0 && api.app.IsDebug() {
log.Println("Failed to expand relations: ", failed)
}
event := &core.RecordViewEvent{
@@ -193,7 +191,7 @@ func (api *recordApi) create(c echo.Context) error {
testRecord := models.NewRecord(collection)
testForm := forms.NewRecordUpsert(api.app, testRecord)
if err := testForm.LoadData(c.Request()); err != nil {
return rest.NewBadRequestError("Failed to read the submitted data due to invalid formatting.", err)
return rest.NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err)
}
testErr := testForm.DrySubmit(func(txDao *daos.Dao) error {
@@ -210,7 +208,7 @@ func (api *recordApi) create(c echo.Context) error {
// load request
if err := form.LoadData(c.Request()); err != nil {
return rest.NewBadRequestError("Failed to read the submitted data due to invalid formatting.", err)
return rest.NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err)
}
event := &core.RecordCreateEvent{
@@ -218,20 +216,34 @@ func (api *recordApi) create(c echo.Context) error {
Record: record,
}
handlerErr := api.app.OnRecordBeforeCreateRequest().Trigger(event, func(e *core.RecordCreateEvent) error {
// create the record
if err := form.Submit(); err != nil {
return rest.NewBadRequestError("Failed to create record.", err)
}
// create the record
submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
return api.app.OnRecordBeforeCreateRequest().Trigger(event, func(e *core.RecordCreateEvent) error {
if err := next(); err != nil {
return rest.NewBadRequestError("Failed to create record.", err)
}
return e.HttpContext.JSON(http.StatusOK, e.Record)
// expand record relations
failed := api.app.Dao().ExpandRecord(
e.Record,
strings.Split(e.HttpContext.QueryParam(expandQueryParam), ","),
api.expandFunc(e.HttpContext, requestData),
)
if len(failed) > 0 && api.app.IsDebug() {
log.Println("Failed to expand relations: ", failed)
}
return e.HttpContext.JSON(http.StatusOK, e.Record)
})
}
})
if handlerErr == nil {
if submitErr == nil {
api.app.OnRecordAfterCreateRequest().Trigger(event)
}
return handlerErr
return submitErr
}
func (api *recordApi) update(c echo.Context) error {
@@ -276,7 +288,7 @@ func (api *recordApi) update(c echo.Context) error {
// load request
if err := form.LoadData(c.Request()); err != nil {
return rest.NewBadRequestError("Failed to read the submitted data due to invalid formatting.", err)
return rest.NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err)
}
event := &core.RecordUpdateEvent{
@@ -284,20 +296,34 @@ func (api *recordApi) update(c echo.Context) error {
Record: record,
}
handlerErr := api.app.OnRecordBeforeUpdateRequest().Trigger(event, func(e *core.RecordUpdateEvent) error {
// update the record
if err := form.Submit(); err != nil {
return rest.NewBadRequestError("Failed to update record.", err)
}
// update the record
submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
return api.app.OnRecordBeforeUpdateRequest().Trigger(event, func(e *core.RecordUpdateEvent) error {
if err := next(); err != nil {
return rest.NewBadRequestError("Failed to update record.", err)
}
return e.HttpContext.JSON(http.StatusOK, e.Record)
// expand record relations
failed := api.app.Dao().ExpandRecord(
e.Record,
strings.Split(e.HttpContext.QueryParam(expandQueryParam), ","),
api.expandFunc(e.HttpContext, requestData),
)
if len(failed) > 0 && api.app.IsDebug() {
log.Println("Failed to expand relations: ", failed)
}
return e.HttpContext.JSON(http.StatusOK, e.Record)
})
}
})
if handlerErr == nil {
if submitErr == nil {
api.app.OnRecordAfterUpdateRequest().Trigger(event)
}
return handlerErr
return submitErr
}
func (api *recordApi) delete(c echo.Context) error {
@@ -348,13 +374,6 @@ func (api *recordApi) delete(c echo.Context) error {
return rest.NewBadRequestError("Failed to delete record. Make sure that the record is not part of a required relation reference.", err)
}
// try to delete the record files
if err := api.deleteRecordFiles(e.Record); err != nil && api.app.IsDebug() {
// non critical error - only log for debug
// (usually could happen due to S3 api limits)
log.Println(err)
}
return e.HttpContext.NoContent(http.StatusNoContent)
})
@@ -365,21 +384,6 @@ func (api *recordApi) delete(c echo.Context) error {
return handlerErr
}
func (api *recordApi) deleteRecordFiles(record *models.Record) error {
fs, err := api.app.NewFilesystem()
if err != nil {
return err
}
defer fs.Close()
failed := fs.DeletePrefix(record.BaseFilesPath())
if len(failed) > 0 {
return fmt.Errorf("Failed to delete %d record files.", len(failed))
}
return nil
}
func (api *recordApi) exportRequestData(c echo.Context) map[string]any {
result := map[string]any{}
queryParams := map[string]any{}
+114 -32
View File
@@ -127,7 +127,7 @@ func TestRecordsList(t *testing.T) {
ExpectedContent: []string{`"data":{}`},
},
{
Name: "expand",
Name: "expand relations",
Method: http.MethodGet,
Url: "/api/collections/demo2/records?expand=manyrels,onerel&perPage=2&sort=created",
RequestHeaders: map[string]string{
@@ -139,17 +139,17 @@ func TestRecordsList(t *testing.T) {
`"perPage":2`,
`"totalItems":2`,
`"items":[{`,
`"@expand":{`,
`"id":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"id":"848a1dea-5ddd-42d6-a00d-030547bffcfe"`,
`"manyrels":[{`,
`"manyrels":[]`,
`"rel_cascade":"`,
`"rel_cascade":null`,
`"cascaderel":"`,
`"onerel":{"@collectionId":"3f2888f8-075d-49fe-9d09-ea7e951000dc","@collectionName":"demo",`,
`"json":[1,2,3]`,
`"select":["a","b"]`,
`"select":[]`,
`"user":null`,
`"user":""`,
`"bool":true`,
`"number":456`,
`"user":"97cc3d3d-6ba2-383f-b42a-7bc84d27410c"`,
@@ -357,6 +357,7 @@ func TestRecordView(t *testing.T) {
`"@collectionId":"2c1010aa-b8fe-41d9-a980-99534ca8a167"`,
`"@collectionName":"demo2"`,
`"id":"63c2ab80-84ab-4057-a592-4604a731f78f"`,
`"@expand":{`,
`"manyrels":[{`,
`"onerel":{`,
`"@collectionId":"3f2888f8-075d-49fe-9d09-ea7e951000dc"`,
@@ -455,11 +456,13 @@ func TestRecordDelete(t *testing.T) {
"OnRecordAfterDeleteRequest": 1,
"OnModelAfterUpdate": 1, // nullify related record
"OnModelBeforeUpdate": 1, // nullify related record
"OnModelBeforeDelete": 2, // +1 cascade delete related record
"OnModelAfterDelete": 2, // +1 cascade delete related record
"OnModelBeforeDelete": 3, // +2 cascade delete related records
"OnModelAfterDelete": 3, // +2 cascade delete related records
},
AfterFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) {
ensureDeletedFiles(app, "3f2888f8-075d-49fe-9d09-ea7e951000dc", "577bd676-aacb-4072-b7da-99d00ee210a4")
ensureDeletedFiles(app, "2c1010aa-b8fe-41d9-a980-99534ca8a167", "94568ca2-0bee-49d7-b749-06cb97956fd9")
ensureDeletedFiles(app, "2c1010aa-b8fe-41d9-a980-99534ca8a167", "63c2ab80-84ab-4057-a592-4604a731f78f")
},
},
{
@@ -475,11 +478,13 @@ func TestRecordDelete(t *testing.T) {
"OnRecordAfterDeleteRequest": 1,
"OnModelAfterUpdate": 1, // nullify related record
"OnModelBeforeUpdate": 1, // nullify related record
"OnModelBeforeDelete": 2, // +1 cascade delete related record
"OnModelAfterDelete": 2, // +1 cascade delete related record
"OnModelBeforeDelete": 3, // +2 cascade delete related records
"OnModelAfterDelete": 3, // +2 cascade delete related records
},
AfterFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) {
ensureDeletedFiles(app, "3f2888f8-075d-49fe-9d09-ea7e951000dc", "577bd676-aacb-4072-b7da-99d00ee210a4")
ensureDeletedFiles(app, "2c1010aa-b8fe-41d9-a980-99534ca8a167", "94568ca2-0bee-49d7-b749-06cb97956fd9")
ensureDeletedFiles(app, "2c1010aa-b8fe-41d9-a980-99534ca8a167", "63c2ab80-84ab-4057-a592-4604a731f78f")
},
},
{
@@ -554,8 +559,8 @@ func TestRecordDelete(t *testing.T) {
"OnRecordAfterDeleteRequest": 1,
"OnModelBeforeUpdate": 1,
"OnModelAfterUpdate": 1,
"OnModelBeforeDelete": 2,
"OnModelAfterDelete": 2,
"OnModelBeforeDelete": 3,
"OnModelAfterDelete": 3,
},
AfterFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) {
recId := "63c2ab80-84ab-4057-a592-4604a731f78f"
@@ -565,6 +570,7 @@ func TestRecordDelete(t *testing.T) {
t.Errorf("Expected record %s to be cascade deleted", recId)
}
ensureDeletedFiles(app, "3f2888f8-075d-49fe-9d09-ea7e951000dc", "577bd676-aacb-4072-b7da-99d00ee210a4")
ensureDeletedFiles(app, "2c1010aa-b8fe-41d9-a980-99534ca8a167", "94568ca2-0bee-49d7-b749-06cb97956fd9")
ensureDeletedFiles(app, "2c1010aa-b8fe-41d9-a980-99534ca8a167", "63c2ab80-84ab-4057-a592-4604a731f78f")
},
},
@@ -646,11 +652,12 @@ func TestRecordCreate(t *testing.T) {
Method: http.MethodPost,
Url: "/api/collections/demo2/records",
Body: strings.NewReader(`{
"rel_cascade": "577bd676-aacb-4072-b7da-99d00ee210a4",
"cascaderel": "577bd676-aacb-4072-b7da-99d00ee210a4",
"onerel": "577bd676-aacb-4072-b7da-99d00ee210a4",
"manyrels": ["577bd676-aacb-4072-b7da-99d00ee210a4"],
"text": "test123",
"bool": "false"
"bool": "false",
"number": 1
}`),
RequestHeaders: map[string]string{
// test@example.com
@@ -660,15 +667,17 @@ func TestRecordCreate(t *testing.T) {
ExpectedContent: []string{`"data":{}`},
},
{
Name: "user submit in restricted collection (rule pass check)",
Name: "user submit in restricted collection (rule pass check) + expand relations",
Method: http.MethodPost,
Url: "/api/collections/demo2/records",
Url: "/api/collections/demo2/records?expand=missing,onerel,manyrels,selfrel",
Body: strings.NewReader(`{
"rel_cascade":"577bd676-aacb-4072-b7da-99d00ee210a4",
"cascaderel":"577bd676-aacb-4072-b7da-99d00ee210a4",
"onerel":"577bd676-aacb-4072-b7da-99d00ee210a4",
"manyrels":["577bd676-aacb-4072-b7da-99d00ee210a4"],
"selfrel":"63c2ab80-84ab-4057-a592-4604a731f78f",
"text":"test123",
"bool":true
"bool":true,
"number":1
}`),
RequestHeaders: map[string]string{
// test3@example.com
@@ -677,11 +686,21 @@ func TestRecordCreate(t *testing.T) {
ExpectedStatus: 200,
ExpectedContent: []string{
`"id":`,
`"rel_cascade":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"cascaderel":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"onerel":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"manyrels":["577bd676-aacb-4072-b7da-99d00ee210a4"]`,
`"selfrel":"63c2ab80-84ab-4057-a592-4604a731f78f"`,
`"text":"test123"`,
`"bool":true`,
`"number":1`,
`"@expand":{`,
`"selfrel":{`,
`"id":"63c2ab80-84ab-4057-a592-4604a731f78f"`,
},
NotExpectedContent: []string{
// user don't have access to view the below expands
`"manyrels":[{`,
`"onerel":{`,
},
ExpectedEvents: map[string]int{
"OnRecordBeforeCreateRequest": 1,
@@ -691,15 +710,17 @@ func TestRecordCreate(t *testing.T) {
},
},
{
Name: "admin submit in restricted collection (rule skip check)",
Name: "admin submit in restricted collection (rule skip check) + expand relations",
Method: http.MethodPost,
Url: "/api/collections/demo2/records",
Url: "/api/collections/demo2/records?expand=missing,onerel,manyrels,selfrel",
Body: strings.NewReader(`{
"rel_cascade":"577bd676-aacb-4072-b7da-99d00ee210a4",
"onerel":"577bd676-aacb-4072-b7da-99d00ee210a4",
"cascaderel": "577bd676-aacb-4072-b7da-99d00ee210a4",
"onerel": "577bd676-aacb-4072-b7da-99d00ee210a4",
"manyrels":["577bd676-aacb-4072-b7da-99d00ee210a4"],
"text":"test123",
"bool":false
"selfrel":"94568ca2-0bee-49d7-b749-06cb97956fd9",
"text": "test123",
"bool": false,
"number": 1
}`),
RequestHeaders: map[string]string{
"Authorization": "Admin eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJiNGE5N2NjLTNmODMtNGQwMS1hMjZiLTNkNzdiYzg0MmQzYyIsInR5cGUiOiJhZG1pbiIsImV4cCI6MTg3MzQ2Mjc5Mn0.AtRtXR6FHBrCUGkj5OffhmxLbSZaQ4L_Qgw4gfoHyfo",
@@ -707,11 +728,20 @@ func TestRecordCreate(t *testing.T) {
ExpectedStatus: 200,
ExpectedContent: []string{
`"id":`,
`"rel_cascade":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"cascaderel":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"onerel":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"manyrels":["577bd676-aacb-4072-b7da-99d00ee210a4"]`,
`"text":"test123"`,
`"bool":false`,
`"number":1`,
`"@expand":{`,
`"manyrels":[{`,
`"onerel":{`,
`"selfrel":{`,
`"@collectionId":"3f2888f8-075d-49fe-9d09-ea7e951000dc"`,
`"@collectionName":"demo"`,
`"id":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"id":"94568ca2-0bee-49d7-b749-06cb97956fd9"`,
},
ExpectedEvents: map[string]int{
"OnRecordBeforeCreateRequest": 1,
@@ -835,12 +865,13 @@ func TestRecordUpdate(t *testing.T) {
ExpectedContent: []string{`"data":{}`},
},
{
Name: "user submit in restricted collection (rule pass check)",
Name: "user submit in restricted collection (rule pass check) + expand relations",
Method: http.MethodPatch,
Url: "/api/collections/demo2/records/63c2ab80-84ab-4057-a592-4604a731f78f",
Url: "/api/collections/demo2/records/63c2ab80-84ab-4057-a592-4604a731f78f?expand=missing,onerel,manyrels,selfrel",
Body: strings.NewReader(`{
"text":"test_new",
"bool":false
"selfrel":"63c2ab80-84ab-4057-a592-4604a731f78f",
"bool":true
}`),
RequestHeaders: map[string]string{
// test3@example.com
@@ -849,11 +880,19 @@ func TestRecordUpdate(t *testing.T) {
ExpectedStatus: 200,
ExpectedContent: []string{
`"id":"63c2ab80-84ab-4057-a592-4604a731f78f"`,
`"rel_cascade":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"cascaderel":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"onerel":"848a1dea-5ddd-42d6-a00d-030547bffcfe"`,
`"manyrels":["848a1dea-5ddd-42d6-a00d-030547bffcfe","577bd676-aacb-4072-b7da-99d00ee210a4"]`,
`"bool":false`,
`"bool":true`,
`"text":"test_new"`,
`"selfrel":"63c2ab80-84ab-4057-a592-4604a731f78f"`,
`"@expand":{`,
`"selfrel":{`,
},
NotExpectedContent: []string{
// user don't have access to view the below expands
`"manyrels":[{`,
`"onerel":{`,
},
ExpectedEvents: map[string]int{
"OnRecordBeforeUpdateRequest": 1,
@@ -863,11 +902,44 @@ func TestRecordUpdate(t *testing.T) {
},
},
{
Name: "admin submit in restricted collection (rule skip check)",
Name: "user submit in restricted collection (rule pass check) + expand relations (no view rule access when bool is false)",
Method: http.MethodPatch,
Url: "/api/collections/demo2/records/63c2ab80-84ab-4057-a592-4604a731f78f",
Url: "/api/collections/demo2/records/63c2ab80-84ab-4057-a592-4604a731f78f?expand=missing,onerel,manyrels,selfrel",
Body: strings.NewReader(`{
"text":"test_new"
"selfrel":"63c2ab80-84ab-4057-a592-4604a731f78f",
"bool":false
}`),
RequestHeaders: map[string]string{
// test3@example.com
"Authorization": "User eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoidXNlciIsImVtYWlsIjoidGVzdDNAZXhhbXBsZS5jb20iLCJpZCI6Ijk3Y2MzZDNkLTZiYTItMzgzZi1iNDJhLTdiYzg0ZDI3NDEwYyIsImV4cCI6MTg5MzUxNTU3Nn0.Q965uvlTxxOsZbACXSgJQNXykYK0TKZ87nyPzemvN4E",
},
ExpectedStatus: 200,
ExpectedContent: []string{
`"id":"63c2ab80-84ab-4057-a592-4604a731f78f"`,
`"bool":false`,
`"selfrel":"63c2ab80-84ab-4057-a592-4604a731f78f"`,
},
NotExpectedContent: []string{
`"@expand":{`,
`"manyrels":[{`, // admin only
`"onerel":{`, // admin only
`"selfrel":{`, // bool=true view rule
},
ExpectedEvents: map[string]int{
"OnRecordBeforeUpdateRequest": 1,
"OnRecordAfterUpdateRequest": 1,
"OnModelBeforeUpdate": 1,
"OnModelAfterUpdate": 1,
},
},
{
Name: "admin submit in restricted collection (rule skip check) + expand relations",
Method: http.MethodPatch,
Url: "/api/collections/demo2/records/63c2ab80-84ab-4057-a592-4604a731f78f?expand=onerel,manyrels,selfrel,missing",
Body: strings.NewReader(`{
"text":"test_new",
"number":1,
"selfrel":"94568ca2-0bee-49d7-b749-06cb97956fd9"
}`),
RequestHeaders: map[string]string{
"Authorization": "Admin eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJiNGE5N2NjLTNmODMtNGQwMS1hMjZiLTNkNzdiYzg0MmQzYyIsInR5cGUiOiJhZG1pbiIsImV4cCI6MTg3MzQ2Mjc5Mn0.AtRtXR6FHBrCUGkj5OffhmxLbSZaQ4L_Qgw4gfoHyfo",
@@ -876,6 +948,16 @@ func TestRecordUpdate(t *testing.T) {
ExpectedContent: []string{
`"id":"63c2ab80-84ab-4057-a592-4604a731f78f"`,
`"text":"test_new"`,
`"number":1`,
`"@expand":{`,
`"manyrels":[{`,
`"onerel":{`,
`"selfrel":{`,
`"@collectionId":"3f2888f8-075d-49fe-9d09-ea7e951000dc"`,
`"@collectionName":"demo"`,
`"id":"848a1dea-5ddd-42d6-a00d-030547bffcfe"`,
`"id":"577bd676-aacb-4072-b7da-99d00ee210a4"`,
`"id":"94568ca2-0bee-49d7-b749-06cb97956fd9"`,
},
ExpectedEvents: map[string]int{
"OnRecordBeforeUpdateRequest": 1,
+18 -11
View File
@@ -40,6 +40,8 @@ func (api *settingsApi) list(c echo.Context) error {
func (api *settingsApi) set(c echo.Context) error {
form := forms.NewSettingsUpsert(api.app)
// load request
if err := c.Bind(form); err != nil {
return rest.NewBadRequestError("An error occurred while reading the submitted data.", err)
}
@@ -50,22 +52,27 @@ func (api *settingsApi) set(c echo.Context) error {
NewSettings: form.Settings,
}
handlerErr := api.app.OnSettingsBeforeUpdateRequest().Trigger(event, func(e *core.SettingsUpdateEvent) error {
if err := form.Submit(); err != nil {
return rest.NewBadRequestError("An error occurred while submitting the form.", err)
}
// update the settings
submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
return api.app.OnSettingsBeforeUpdateRequest().Trigger(event, func(e *core.SettingsUpdateEvent) error {
if err := next(); err != nil {
return rest.NewBadRequestError("An error occurred while submitting the form.", err)
}
redactedSettings, err := api.app.Settings().RedactClone()
if err != nil {
return rest.NewBadRequestError("", err)
}
redactedSettings, err := api.app.Settings().RedactClone()
if err != nil {
return rest.NewBadRequestError("", err)
}
return e.HttpContext.JSON(http.StatusOK, redactedSettings)
return e.HttpContext.JSON(http.StatusOK, redactedSettings)
})
}
})
if handlerErr == nil {
if submitErr == nil {
api.app.OnSettingsAfterUpdateRequest().Trigger(event)
}
return handlerErr
return submitErr
}
-3
View File
@@ -139,9 +139,6 @@ func TestSettingsSet(t *testing.T) {
`"emailAuth":{"minPasswordLength":{"code":"validation_min_greater_equal_than_required","message":"Must be no less than 5."}}`,
`"meta":{"appName":{"code":"validation_required","message":"Cannot be blank."}}`,
},
ExpectedEvents: map[string]int{
"OnSettingsBeforeUpdateRequest": 1,
},
},
{
Name: "authorized as admin submitting valid data",
+26 -18
View File
@@ -348,7 +348,7 @@ func (api *userApi) create(c echo.Context) error {
// load request
if err := c.Bind(form); err != nil {
return rest.NewBadRequestError("Failed to read the submitted data due to invalid formatting.", err)
return rest.NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err)
}
event := &core.UserCreateEvent{
@@ -356,20 +356,24 @@ func (api *userApi) create(c echo.Context) error {
User: user,
}
handlerErr := api.app.OnUserBeforeCreateRequest().Trigger(event, func(e *core.UserCreateEvent) error {
// create the user
if err := form.Submit(); err != nil {
return rest.NewBadRequestError("Failed to create user.", err)
}
// create the user
submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
return api.app.OnUserBeforeCreateRequest().Trigger(event, func(e *core.UserCreateEvent) error {
if err := next(); err != nil {
return rest.NewBadRequestError("Failed to create user.", err)
}
return e.HttpContext.JSON(http.StatusOK, e.User)
return e.HttpContext.JSON(http.StatusOK, e.User)
})
}
})
if handlerErr == nil {
if submitErr == nil {
api.app.OnUserAfterCreateRequest().Trigger(event)
}
return handlerErr
return submitErr
}
func (api *userApi) update(c echo.Context) error {
@@ -387,7 +391,7 @@ func (api *userApi) update(c echo.Context) error {
// load request
if err := c.Bind(form); err != nil {
return rest.NewBadRequestError("Failed to read the submitted data due to invalid formatting.", err)
return rest.NewBadRequestError("Failed to load the submitted data due to invalid formatting.", err)
}
event := &core.UserUpdateEvent{
@@ -395,20 +399,24 @@ func (api *userApi) update(c echo.Context) error {
User: user,
}
handlerErr := api.app.OnUserBeforeUpdateRequest().Trigger(event, func(e *core.UserUpdateEvent) error {
// update the user
if err := form.Submit(); err != nil {
return rest.NewBadRequestError("Failed to update user.", err)
}
// update the user
submitErr := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
return api.app.OnUserBeforeUpdateRequest().Trigger(event, func(e *core.UserUpdateEvent) error {
if err := next(); err != nil {
return rest.NewBadRequestError("Failed to update user.", err)
}
return e.HttpContext.JSON(http.StatusOK, e.User)
return e.HttpContext.JSON(http.StatusOK, e.User)
})
}
})
if handlerErr == nil {
if submitErr == nil {
api.app.OnUserAfterUpdateRequest().Trigger(event)
}
return handlerErr
return submitErr
}
func (api *userApi) delete(c echo.Context) error {
+58 -30
View File
@@ -4,9 +4,12 @@ import (
"net/http"
"strings"
"testing"
"time"
"github.com/labstack/echo/v5"
"github.com/pocketbase/pocketbase/daos"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/types"
)
func TestUsersAuthMethods(t *testing.T) {
@@ -132,6 +135,7 @@ func TestUserRequestPasswordReset(t *testing.T) {
Method: http.MethodPost,
Url: "/api/users/request-password-reset",
Body: strings.NewReader(`{"email":"missing@example.com"}`),
Delay: 100 * time.Millisecond,
ExpectedStatus: 204,
},
{
@@ -139,22 +143,34 @@ func TestUserRequestPasswordReset(t *testing.T) {
Method: http.MethodPost,
Url: "/api/users/request-password-reset",
Body: strings.NewReader(`{"email":"test@example.com"}`),
Delay: 100 * time.Millisecond,
ExpectedStatus: 204,
// usually this events are fired but since the submit is
// executed in a separate go routine they are fired async
// ExpectedEvents: map[string]int{
// "OnModelBeforeUpdate": 1,
// "OnModelAfterUpdate": 1,
// "OnMailerBeforeUserResetPasswordSend": 1,
// "OnMailerAfterUserResetPasswordSend": 1,
// },
ExpectedEvents: map[string]int{
"OnModelBeforeUpdate": 1,
"OnModelAfterUpdate": 1,
"OnMailerBeforeUserResetPasswordSend": 1,
"OnMailerAfterUserResetPasswordSend": 1,
},
},
{
Name: "existing user (after already sent)",
Method: http.MethodPost,
Url: "/api/users/request-password-reset",
Body: strings.NewReader(`{"email":"test@example.com"}`),
Delay: 100 * time.Millisecond,
ExpectedStatus: 204,
BeforeFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) {
// simulate recent password request
user, err := app.Dao().FindUserByEmail("test@example.com")
if err != nil {
t.Fatal(err)
}
user.LastResetSentAt = types.NowDateTime()
dao := daos.New(app.Dao().DB()) // new dao to ignore hooks
if err := dao.Save(user); err != nil {
t.Fatal(err)
}
},
},
}
@@ -216,50 +232,71 @@ func TestUserConfirmPasswordReset(t *testing.T) {
func TestUserRequestVerification(t *testing.T) {
scenarios := []tests.ApiScenario{
// empty data
{
Name: "empty data",
Method: http.MethodPost,
Url: "/api/users/request-verification",
Body: strings.NewReader(``),
ExpectedStatus: 400,
ExpectedContent: []string{`"data":{"email":{"code":"validation_required","message":"Cannot be blank."}}`},
},
// invalid data
{
Name: "invalid data",
Method: http.MethodPost,
Url: "/api/users/request-verification",
Body: strings.NewReader(`{"email`),
ExpectedStatus: 400,
ExpectedContent: []string{`"data":{}`},
},
// missing user
{
Name: "missing user",
Method: http.MethodPost,
Url: "/api/users/request-verification",
Body: strings.NewReader(`{"email":"missing@example.com"}`),
Delay: 100 * time.Millisecond,
ExpectedStatus: 204,
},
// existing already verified user
{
Name: "existing already verified user",
Method: http.MethodPost,
Url: "/api/users/request-verification",
Body: strings.NewReader(`{"email":"test@example.com"}`),
Delay: 100 * time.Millisecond,
ExpectedStatus: 204,
},
// existing unverified user
{
Name: "existing unverified user",
Method: http.MethodPost,
Url: "/api/users/request-verification",
Body: strings.NewReader(`{"email":"test2@example.com"}`),
Delay: 100 * time.Millisecond,
ExpectedStatus: 204,
// usually this events are fired but since the submit is
// executed in a separate go routine they are fired async
// ExpectedEvents: map[string]int{
// "OnModelBeforeUpdate": 1,
// "OnModelAfterUpdate": 1,
// "OnMailerBeforeUserVerificationSend": 1,
// "OnMailerAfterUserVerificationSend": 1,
// },
ExpectedEvents: map[string]int{
"OnModelBeforeUpdate": 1,
"OnModelAfterUpdate": 1,
"OnMailerBeforeUserVerificationSend": 1,
"OnMailerAfterUserVerificationSend": 1,
},
},
{
Name: "existing unverified user (after already sent)",
Method: http.MethodPost,
Url: "/api/users/request-verification",
Body: strings.NewReader(`{"email":"test2@example.com"}`),
Delay: 100 * time.Millisecond,
ExpectedStatus: 204,
BeforeFunc: func(t *testing.T, app *tests.TestApp, e *echo.Echo) {
// simulate recent verification sent
user, err := app.Dao().FindUserByEmail("test2@example.com")
if err != nil {
t.Fatal(err)
}
user.LastVerificationSentAt = types.NowDateTime()
dao := daos.New(app.Dao().DB()) // new dao to ignore hooks
if err := dao.Save(user); err != nil {
t.Fatal(err)
}
},
},
}
@@ -748,9 +785,6 @@ func TestUserCreate(t *testing.T) {
`"email":{"code":"validation_required"`,
`"password":{"code":"validation_required"`,
},
ExpectedEvents: map[string]int{
"OnUserBeforeCreateRequest": 1,
},
},
{
Name: "invalid data",
@@ -764,9 +798,6 @@ func TestUserCreate(t *testing.T) {
`"password":{"code":"validation_length_out_of_range"`,
`"passwordConfirm":{"code":"validation_values_mismatch"`,
},
ExpectedEvents: map[string]int{
"OnUserBeforeCreateRequest": 1,
},
},
{
Name: "valid data but with disabled email/pass auth",
@@ -868,9 +899,6 @@ func TestUserUpdate(t *testing.T) {
`"data":{`,
`"email":{"code":"validation_user_email_exists"`,
},
ExpectedEvents: map[string]int{
"OnUserBeforeUpdateRequest": 1,
},
},
{
Name: "authorized as admin - valid data",
-21
View File
@@ -1,21 +0,0 @@
// Package cmd implements various PocketBase system commands.
package cmd
import (
"fmt"
"github.com/pocketbase/pocketbase/core"
"github.com/spf13/cobra"
)
// NewVersionCommand creates and returns new command that prints
// the current PocketBase version.
func NewVersionCommand(app core.App, version string) *cobra.Command {
return &cobra.Command{
Use: "version",
Short: "Prints the current PocketBase app version",
Run: func(command *cobra.Command, args []string) {
fmt.Printf("PocketBase %s\n", version)
},
}
}
+37 -1
View File
@@ -5,6 +5,7 @@ import (
"database/sql"
"encoding/json"
"errors"
"log"
"os"
"path/filepath"
"time"
@@ -123,7 +124,7 @@ type BaseApp struct {
//
// To initialize the app, you need to call `app.Bootsrap()`.
func NewBaseApp(dataDir string, encryptionEnv string, isDebug bool) *BaseApp {
return &BaseApp{
app := &BaseApp{
dataDir: dataDir,
isDebug: isDebug,
encryptionEnv: encryptionEnv,
@@ -209,6 +210,10 @@ func NewBaseApp(dataDir string, encryptionEnv string, isDebug bool) *BaseApp {
onCollectionBeforeDeleteRequest: &hook.Hook[*CollectionDeleteEvent]{},
onCollectionAfterDeleteRequest: &hook.Hook[*CollectionDeleteEvent]{},
}
app.registerDefaultHooks()
return app
}
// Bootstrap initializes the application
@@ -342,6 +347,7 @@ func (app *BaseApp) NewFilesystem() (*filesystem.System, error) {
app.settings.S3.Endpoint,
app.settings.S3.AccessKey,
app.settings.S3.Secret,
app.settings.S3.ForcePathStyle,
)
}
@@ -750,3 +756,33 @@ func (app *BaseApp) createDao(db dbx.Builder) *daos.Dao {
return dao
}
func (app *BaseApp) registerDefaultHooks() {
deletePrefix := func(prefix string) error {
fs, err := app.NewFilesystem()
if err != nil {
return err
}
defer fs.Close()
failed := fs.DeletePrefix(prefix)
if len(failed) > 0 {
return errors.New("Failed to delete the files at " + prefix)
}
return nil
}
// delete storage files from deleted Collection, Records, etc.
app.OnModelAfterDelete().Add(func(e *ModelEvent) error {
if m, ok := e.Model.(models.FilesManager); ok && m.BaseFilesPath() != "" {
if err := deletePrefix(m.BaseFilesPath()); err != nil && app.IsDebug() {
// non critical error - only log for debug
// (usually could happen because of S3 api limits)
log.Println(err)
}
}
return nil
})
}
+8 -7
View File
@@ -244,18 +244,19 @@ func (c SmtpConfig) Validate() error {
// -------------------------------------------------------------------
type S3Config struct {
Enabled bool `form:"enabled" json:"enabled"`
Bucket string `form:"bucket" json:"bucket"`
Region string `form:"region" json:"region"`
Endpoint string `form:"endpoint" json:"endpoint"`
AccessKey string `form:"accessKey" json:"accessKey"`
Secret string `form:"secret" json:"secret"`
Enabled bool `form:"enabled" json:"enabled"`
Bucket string `form:"bucket" json:"bucket"`
Region string `form:"region" json:"region"`
Endpoint string `form:"endpoint" json:"endpoint"`
AccessKey string `form:"accessKey" json:"accessKey"`
Secret string `form:"secret" json:"secret"`
ForcePathStyle bool `form:"forcePathStyle" json:"forcePathStyle"`
}
// Validate makes S3Config validatable by implementing [validation.Validatable] interface.
func (c S3Config) Validate() error {
return validation.ValidateStruct(&c,
validation.Field(&c.Endpoint, is.Host, validation.When(c.Enabled, validation.Required)),
validation.Field(&c.Endpoint, is.URL, validation.When(c.Enabled, validation.Required)),
validation.Field(&c.Bucket, validation.When(c.Enabled, validation.Required)),
validation.Field(&c.Region, validation.When(c.Enabled, validation.Required)),
validation.Field(&c.AccessKey, validation.When(c.Enabled, validation.Required)),
+14 -2
View File
@@ -172,7 +172,7 @@ func TestSettingsRedactClone(t *testing.T) {
t.Fatal(err)
}
expected := `{"meta":{"appName":"test123","appUrl":"http://localhost:8090","senderName":"Support","senderAddress":"support@example.com","userVerificationUrl":"%APP_URL%/_/#/users/confirm-verification/%TOKEN%","userResetPasswordUrl":"%APP_URL%/_/#/users/confirm-password-reset/%TOKEN%","userConfirmEmailChangeUrl":"%APP_URL%/_/#/users/confirm-email-change/%TOKEN%"},"logs":{"maxDays":7},"smtp":{"enabled":false,"host":"smtp.example.com","port":587,"username":"","password":"******","tls":true},"s3":{"enabled":false,"bucket":"","region":"","endpoint":"","accessKey":"","secret":"******"},"adminAuthToken":{"secret":"******","duration":1209600},"adminPasswordResetToken":{"secret":"******","duration":1800},"userAuthToken":{"secret":"******","duration":1209600},"userPasswordResetToken":{"secret":"******","duration":1800},"userEmailChangeToken":{"secret":"******","duration":1800},"userVerificationToken":{"secret":"******","duration":604800},"emailAuth":{"enabled":true,"exceptDomains":null,"onlyDomains":null,"minPasswordLength":8},"googleAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"facebookAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"githubAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"gitlabAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"}}`
expected := `{"meta":{"appName":"test123","appUrl":"http://localhost:8090","senderName":"Support","senderAddress":"support@example.com","userVerificationUrl":"%APP_URL%/_/#/users/confirm-verification/%TOKEN%","userResetPasswordUrl":"%APP_URL%/_/#/users/confirm-password-reset/%TOKEN%","userConfirmEmailChangeUrl":"%APP_URL%/_/#/users/confirm-email-change/%TOKEN%"},"logs":{"maxDays":7},"smtp":{"enabled":false,"host":"smtp.example.com","port":587,"username":"","password":"******","tls":true},"s3":{"enabled":false,"bucket":"","region":"","endpoint":"","accessKey":"","secret":"******","forcePathStyle":false},"adminAuthToken":{"secret":"******","duration":1209600},"adminPasswordResetToken":{"secret":"******","duration":1800},"userAuthToken":{"secret":"******","duration":1209600},"userPasswordResetToken":{"secret":"******","duration":1800},"userEmailChangeToken":{"secret":"******","duration":1800},"userVerificationToken":{"secret":"******","duration":604800},"emailAuth":{"enabled":true,"exceptDomains":null,"onlyDomains":null,"minPasswordLength":8},"googleAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"facebookAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"githubAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"},"gitlabAuth":{"enabled":false,"allowRegistrations":true,"clientSecret":"******"}}`
if encodedStr := string(encoded); encodedStr != expected {
t.Fatalf("Expected %v, got \n%v", expected, encodedStr)
@@ -315,7 +315,19 @@ func TestS3ConfigValidate(t *testing.T) {
},
true,
},
// valid data
// valid data (url endpoint)
{
core.S3Config{
Enabled: true,
Endpoint: "https://localhost:8090",
Bucket: "test",
Region: "test",
AccessKey: "test",
Secret: "test",
},
false,
},
// valid data (hostname endpoint)
{
core.S3Config{
Enabled: true,
+4 -7
View File
@@ -115,9 +115,8 @@ func (dao *Dao) Delete(m models.Model) error {
}
}
deleteErr := dao.db.Model(m).Delete()
if deleteErr != nil {
return deleteErr
if err := dao.db.Model(m).Delete(); err != nil {
return err
}
if dao.AfterDeleteFunc != nil {
@@ -162,8 +161,7 @@ func (dao *Dao) update(m models.Model) error {
return err
}
} else {
err := dao.db.Model(m).Update()
if err != nil {
if err := dao.db.Model(m).Update(); err != nil {
return err
}
}
@@ -203,8 +201,7 @@ func (dao *Dao) create(m models.Model) error {
return err
}
} else {
err := dao.db.Model(m).Insert()
if err != nil {
if err := dao.db.Model(m).Insert(); err != nil {
return err
}
}
+1 -1
View File
@@ -113,7 +113,7 @@ func TestFindCollectionReferences(t *testing.T) {
t.Fatalf("Expected 1 collection, got %d: %v", len(result), result)
}
expectedFields := []string{"onerel", "manyrels", "rel_cascade"}
expectedFields := []string{"onerel", "manyrels", "cascaderel"}
for col, fields := range result {
if col.Name != "demo2" {
+1 -3
View File
@@ -40,7 +40,7 @@ func (dao *Dao) SaveParam(key string, value any, optEncryptionKey ...string) err
param = &models.Param{Key: key}
}
var normalizedValue any
normalizedValue := value
// encrypt if optEncryptionKey is set
if len(optEncryptionKey) > 0 && optEncryptionKey[0] != "" {
@@ -55,8 +55,6 @@ func (dao *Dao) SaveParam(key string, value any, optEncryptionKey ...string) err
}
normalizedValue = encryptVal
} else {
normalizedValue = value
}
encodedValue := types.JsonRaw{}
+32 -6
View File
@@ -9,6 +9,7 @@ import (
"github.com/pocketbase/pocketbase/models"
"github.com/pocketbase/pocketbase/models/schema"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/pocketbase/pocketbase/tools/types"
)
@@ -149,6 +150,10 @@ func (dao *Dao) IsRecordValueUnique(
// FindUserRelatedRecords returns all records that has a reference
// to the provided User model (via the user shema field).
func (dao *Dao) FindUserRelatedRecords(user *models.User) ([]*models.Record, error) {
if user.Id == "" {
return []*models.Record{}, nil
}
collections, err := dao.FindCollectionsWithUserFields()
if err != nil {
return nil, err
@@ -329,23 +334,44 @@ func (dao *Dao) SyncRecordTableSchema(newCollection *models.Collection, oldColle
}
// check for new or renamed columns
toRename := map[string]string{}
for _, field := range newSchema.Fields() {
oldField := oldSchema.GetFieldById(field.Id)
if oldField != nil {
// rename
_, err := txDao.DB().RenameColumn(newTableName, oldField.Name, field.Name).Execute()
// Note:
// We are using a temporary column name when adding or renaming columns
// to ensure that there are no name collisions in case there is
// names switch/reuse of existing columns (eg. name, title -> title, name).
// This way we are always doing 1 more rename operation but it provides better dev experience.
if oldField == nil {
tempName := field.Name + security.RandomString(5)
toRename[tempName] = field.Name
// add
_, err := txDao.DB().AddColumn(newTableName, tempName, field.ColDefinition()).Execute()
if err != nil {
return err
}
} else {
// add
_, err := txDao.DB().AddColumn(newTableName, field.Name, field.ColDefinition()).Execute()
} else if oldField.Name != field.Name {
tempName := field.Name + security.RandomString(5)
toRename[tempName] = field.Name
// rename
_, err := txDao.DB().RenameColumn(newTableName, oldField.Name, tempName).Execute()
if err != nil {
return err
}
}
}
// set the actual columns name
for tempName, actualName := range toRename {
_, err := txDao.DB().RenameColumn(newTableName, tempName, actualName).Execute()
if err != nil {
return err
}
}
return nil
})
}
+18 -14
View File
@@ -17,21 +17,27 @@ const MaxExpandDepth = 6
type ExpandFetchFunc func(relCollection *models.Collection, relIds []string) ([]*models.Record, error)
// ExpandRecord expands the relations of a single Record model.
func (dao *Dao) ExpandRecord(record *models.Record, expands []string, fetchFunc ExpandFetchFunc) error {
//
// Returns a map with the failed expand parameters and their errors.
func (dao *Dao) ExpandRecord(record *models.Record, expands []string, fetchFunc ExpandFetchFunc) map[string]error {
return dao.ExpandRecords([]*models.Record{record}, expands, fetchFunc)
}
// ExpandRecords expands the relations of the provided Record models list.
func (dao *Dao) ExpandRecords(records []*models.Record, expands []string, fetchFunc ExpandFetchFunc) error {
//
// Returns a map with the failed expand parameters and their errors.
func (dao *Dao) ExpandRecords(records []*models.Record, expands []string, fetchFunc ExpandFetchFunc) map[string]error {
normalized := normalizeExpands(expands)
failed := map[string]error{}
for _, expand := range normalized {
if err := dao.expandRecords(records, expand, fetchFunc, 1); err != nil {
return err
failed[expand] = err
}
}
return nil
return failed
}
// notes:
@@ -64,7 +70,7 @@ func (dao *Dao) expandRecords(records []*models.Record, expandPath string, fetch
}
// extract the id of the relations to expand
relIds := []string{}
relIds := make([]string, 0, len(records))
for _, record := range records {
relIds = append(relIds, record.GetStringSliceDataValue(relField.Name)...)
}
@@ -92,7 +98,7 @@ func (dao *Dao) expandRecords(records []*models.Record, expandPath string, fetch
for _, model := range records {
relIds := model.GetStringSliceDataValue(relField.Name)
validRels := []*models.Record{}
validRels := make([]*models.Record, 0, len(relIds))
for _, id := range relIds {
if rel, ok := indexedRels[id]; ok {
validRels = append(validRels, rel)
@@ -120,20 +126,18 @@ func (dao *Dao) expandRecords(records []*models.Record, expandPath string, fetch
// normalizeExpands normalizes expand strings and merges self containing paths
// (eg. ["a.b.c", "a.b", " test ", " ", "test"] -> ["a.b.c", "test"]).
func normalizeExpands(paths []string) []string {
result := []string{}
// normalize paths
normalized := []string{}
normalized := make([]string, 0, len(paths))
for _, p := range paths {
p := strings.ReplaceAll(p, " ", "") // replace spaces
p = strings.Trim(p, ".") // trim incomplete paths
if p == "" {
continue
p = strings.ReplaceAll(p, " ", "") // replace spaces
p = strings.Trim(p, ".") // trim incomplete paths
if p != "" {
normalized = append(normalized, p)
}
normalized = append(normalized, p)
}
// merge containing paths
result := make([]string, 0, len(normalized))
for i, p1 := range normalized {
var skip bool
for j, p2 := range normalized {
+35 -37
View File
@@ -19,11 +19,11 @@ func TestExpandRecords(t *testing.T) {
col, _ := app.Dao().FindCollectionByNameOrId("demo4")
scenarios := []struct {
recordIds []string
expands []string
fetchFunc daos.ExpandFetchFunc
expectExpandProps int
expectError bool
recordIds []string
expands []string
fetchFunc daos.ExpandFetchFunc
expectExpandProps int
expectExpandFailures int
}{
// empty records
{
@@ -33,7 +33,7 @@ func TestExpandRecords(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
0,
false,
0,
},
// empty expand
{
@@ -43,7 +43,7 @@ func TestExpandRecords(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
0,
false,
0,
},
// empty fetchFunc
{
@@ -51,7 +51,7 @@ func TestExpandRecords(t *testing.T) {
[]string{"onerel", "manyrels.onerel.manyrels"},
nil,
0,
true,
2,
},
// fetchFunc with error
{
@@ -61,7 +61,7 @@ func TestExpandRecords(t *testing.T) {
return nil, errors.New("test error")
},
0,
true,
2,
},
// invalid missing first level expand
{
@@ -71,7 +71,7 @@ func TestExpandRecords(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
0,
true,
1,
},
// invalid missing second level expand
{
@@ -81,7 +81,7 @@ func TestExpandRecords(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
0,
true,
1,
},
// expand normalizations
{
@@ -96,7 +96,7 @@ func TestExpandRecords(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
9,
false,
0,
},
// single expand
{
@@ -111,7 +111,7 @@ func TestExpandRecords(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
2,
false,
0,
},
// maxExpandDepth reached
{
@@ -121,18 +121,17 @@ func TestExpandRecords(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
6,
false,
0,
},
}
for i, s := range scenarios {
ids := list.ToUniqueStringSlice(s.recordIds)
records, _ := app.Dao().FindRecordsByIds(col, ids, nil)
err := app.Dao().ExpandRecords(records, s.expands, s.fetchFunc)
failed := app.Dao().ExpandRecords(records, s.expands, s.fetchFunc)
hasErr := err != nil
if hasErr != s.expectError {
t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err)
if len(failed) != s.expectExpandFailures {
t.Errorf("(%d) Expected %d failures, got %d: \n%v", i, s.expectExpandFailures, len(failed), failed)
}
encoded, _ := json.Marshal(records)
@@ -140,7 +139,7 @@ func TestExpandRecords(t *testing.T) {
totalExpandProps := strings.Count(encodedStr, "@expand")
if s.expectExpandProps != totalExpandProps {
t.Errorf("(%d) Expected %d @expand props in %v, got %d", i, s.expectExpandProps, encodedStr, totalExpandProps)
t.Errorf("(%d) Expected %d @expand props, got %d: \n%v", i, s.expectExpandProps, totalExpandProps, encodedStr)
}
}
}
@@ -152,11 +151,11 @@ func TestExpandRecord(t *testing.T) {
col, _ := app.Dao().FindCollectionByNameOrId("demo4")
scenarios := []struct {
recordId string
expands []string
fetchFunc daos.ExpandFetchFunc
expectExpandProps int
expectError bool
recordId string
expands []string
fetchFunc daos.ExpandFetchFunc
expectExpandProps int
expectExpandFailures int
}{
// empty expand
{
@@ -166,7 +165,7 @@ func TestExpandRecord(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
0,
false,
0,
},
// empty fetchFunc
{
@@ -174,7 +173,7 @@ func TestExpandRecord(t *testing.T) {
[]string{"onerel", "manyrels.onerel.manyrels"},
nil,
0,
true,
2,
},
// fetchFunc with error
{
@@ -184,7 +183,7 @@ func TestExpandRecord(t *testing.T) {
return nil, errors.New("test error")
},
0,
true,
2,
},
// invalid missing first level expand
{
@@ -194,7 +193,7 @@ func TestExpandRecord(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
0,
true,
1,
},
// invalid missing second level expand
{
@@ -204,7 +203,7 @@ func TestExpandRecord(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
0,
true,
1,
},
// expand normalizations
{
@@ -214,7 +213,7 @@ func TestExpandRecord(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
3,
false,
0,
},
// single expand
{
@@ -224,7 +223,7 @@ func TestExpandRecord(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
1,
false,
0,
},
// maxExpandDepth reached
{
@@ -234,17 +233,16 @@ func TestExpandRecord(t *testing.T) {
return app.Dao().FindRecordsByIds(c, ids, nil)
},
6,
false,
0,
},
}
for i, s := range scenarios {
record, _ := app.Dao().FindFirstRecordByData(col, "id", s.recordId)
err := app.Dao().ExpandRecord(record, s.expands, s.fetchFunc)
failed := app.Dao().ExpandRecord(record, s.expands, s.fetchFunc)
hasErr := err != nil
if hasErr != s.expectError {
t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err)
if len(failed) != s.expectExpandFailures {
t.Errorf("(%d) Expected %d failures, got %d: \n%v", i, s.expectExpandFailures, len(failed), failed)
}
encoded, _ := json.Marshal(record)
@@ -252,7 +250,7 @@ func TestExpandRecord(t *testing.T) {
totalExpandProps := strings.Count(encodedStr, "@expand")
if s.expectExpandProps != totalExpandProps {
t.Errorf("(%d) Expected %d @expand props in %v, got %d", i, s.expectExpandProps, encodedStr, totalExpandProps)
t.Errorf("(%d) Expected %d @expand props, got %d: \n%v", i, s.expectExpandProps, totalExpandProps, encodedStr)
}
}
}
+1
View File
@@ -298,6 +298,7 @@ func TestFindUserRelatedRecords(t *testing.T) {
}
if len(records) != len(scenario.expectedIds) {
fmt.Println(records[0])
t.Errorf("(%d) Expected %d records, got %d (%v)", i, len(scenario.expectedIds), len(records), records)
continue
}
+3 -3
View File
@@ -43,10 +43,10 @@ func (dao *Dao) LoadProfiles(users []*models.User) error {
}
// extract user ids
ids := []string{}
ids := make([]string, len(users))
usersMap := map[string]*models.User{}
for _, user := range users {
ids = append(ids, user.Id)
for i, user := range users {
ids[i] = user.Id
usersMap[user.Id] = user
}
+8 -3
View File
@@ -74,8 +74,11 @@ func (form *AdminUpsert) checkUniqueEmail(value any) error {
return validation.NewError("validation_admin_email_exists", "Admin email already exists.")
}
// Submit validates the form and upserts the form's admin model.
func (form *AdminUpsert) Submit() error {
// Submit validates the form and upserts the form admin model.
//
// You can optionally provide a list of InterceptorFunc to further
// modify the form behavior before persisting it.
func (form *AdminUpsert) Submit(interceptors ...InterceptorFunc) error {
if err := form.Validate(); err != nil {
return err
}
@@ -87,5 +90,7 @@ func (form *AdminUpsert) Submit() error {
form.admin.SetPassword(form.Password)
}
return form.app.Dao().SaveAdmin(form.admin)
return runInterceptors(func() error {
return form.app.Dao().SaveAdmin(form.admin)
}, interceptors...)
}
+65 -1
View File
@@ -2,6 +2,7 @@ package forms_test
import (
"encoding/json"
"errors"
"testing"
validation "github.com/go-ozzo/ozzo-validation/v4"
@@ -252,7 +253,14 @@ func TestAdminUpsertSubmit(t *testing.T) {
continue
}
err := form.Submit()
interceptorCalls := 0
err := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptorCalls++
return next()
}
})
hasErr := err != nil
if hasErr != s.expectError {
@@ -266,6 +274,14 @@ func TestAdminUpsertSubmit(t *testing.T) {
continue
}
expectInterceptorCall := 1
if s.expectError {
expectInterceptorCall = 0
}
if interceptorCalls != expectInterceptorCall {
t.Errorf("(%d) Expected interceptor to be called %d, got %d", i, expectInterceptorCall, interceptorCalls)
}
if s.expectError {
continue // skip persistence check
}
@@ -283,3 +299,51 @@ func TestAdminUpsertSubmit(t *testing.T) {
}
}
}
func TestAdminUpsertSubmitInterceptors(t *testing.T) {
app, _ := tests.NewTestApp()
defer app.Cleanup()
admin := &models.Admin{}
form := forms.NewAdminUpsert(app, admin)
form.Email = "test_new@example.com"
form.Password = "1234567890"
form.PasswordConfirm = form.Password
testErr := errors.New("test_error")
interceptorAdminEmail := ""
interceptor1Called := false
interceptor1 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptor1Called = true
return next()
}
}
interceptor2Called := false
interceptor2 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptorAdminEmail = admin.Email // to check if the record was filled
interceptor2Called = true
return testErr
}
}
err := form.Submit(interceptor1, interceptor2)
if err != testErr {
t.Fatalf("Expected error %v, got %v", testErr, err)
}
if !interceptor1Called {
t.Fatalf("Expected interceptor1 to be called")
}
if !interceptor2Called {
t.Fatalf("Expected interceptor2 to be called")
}
if interceptorAdminEmail != form.Email {
t.Fatalf("Expected the form model to be filled before calling the interceptors")
}
}
+19
View File
@@ -0,0 +1,19 @@
// Package models implements various services used for request data
// validation and applying changes to existing DB models through the app Dao.
package forms
// InterceptorNextFunc is a interceptor handler function.
// Usually used in combination with InterceptorFunc.
type InterceptorNextFunc = func() error
// InterceptorFunc defines a single interceptor function that will execute the provided next func handler.
type InterceptorFunc func(next InterceptorNextFunc) InterceptorNextFunc
// runInterceptors executes the provided list of interceptors.
func runInterceptors(next InterceptorNextFunc, interceptors ...InterceptorFunc) error {
for i := len(interceptors) - 1; i >= 0; i-- {
next = interceptors[i](next)
}
return next()
}
+7 -17
View File
@@ -78,7 +78,6 @@ func (form *CollectionUpsert) Validate() error {
&form.Schema,
validation.By(form.ensureNoSystemFieldsChange),
validation.By(form.ensureNoFieldsTypeChange),
validation.By(form.ensureNoFieldsNameReuse),
),
validation.Field(&form.ListRule, validation.By(form.checkRule)),
validation.Field(&form.ViewRule, validation.By(form.checkRule)),
@@ -154,20 +153,6 @@ func (form *CollectionUpsert) ensureNoSystemFieldsChange(value any) error {
return nil
}
func (form *CollectionUpsert) ensureNoFieldsNameReuse(value any) error {
v, _ := value.(schema.Schema)
for _, field := range v.Fields() {
oldField := form.collection.Schema.GetFieldByName(field.Name)
if oldField != nil && oldField.Id != field.Id {
return validation.NewError("validation_field_old_field_exist", "Cannot use existing schema field names when renaming fields.")
}
}
return nil
}
func (form *CollectionUpsert) checkRule(value any) error {
v, _ := value.(*string)
@@ -189,7 +174,10 @@ func (form *CollectionUpsert) checkRule(value any) error {
// Submit validates the form and upserts the form's Collection model.
//
// On success the related record table schema will be auto updated.
func (form *CollectionUpsert) Submit() error {
//
// You can optionally provide a list of InterceptorFunc to further
// modify the form behavior before persisting it.
func (form *CollectionUpsert) Submit(interceptors ...InterceptorFunc) error {
if err := form.Validate(); err != nil {
return err
}
@@ -211,5 +199,7 @@ func (form *CollectionUpsert) Submit() error {
form.collection.UpdateRule = form.UpdateRule
form.collection.DeleteRule = form.DeleteRule
return form.app.Dao().SaveCollection(form.collection)
return runInterceptors(func() error {
return form.app.Dao().SaveCollection(form.collection)
}, interceptors...)
}
+71 -3
View File
@@ -2,6 +2,7 @@ package forms_test
import (
"encoding/json"
"errors"
"testing"
validation "github.com/go-ozzo/ozzo-validation/v4"
@@ -260,7 +261,7 @@ func TestCollectionUpsertSubmit(t *testing.T) {
}`,
[]string{"schema"},
},
// update failure - rename fields to existing field names (aka. reusing field names)
// update success - rename fields to existing field names (aka. reusing field names)
{
"test_new",
`{
@@ -269,7 +270,7 @@ func TestCollectionUpsertSubmit(t *testing.T) {
{"id":"b123456","name":"test1","type":"email"}
]
}`,
[]string{"schema"},
[]string{},
},
// update failure - existing name
{
@@ -387,14 +388,31 @@ func TestCollectionUpsertSubmit(t *testing.T) {
continue
}
interceptorCalls := 0
interceptor := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptorCalls++
return next()
}
}
// parse errors
result := form.Submit()
result := form.Submit(interceptor)
errs, ok := result.(validation.Errors)
if !ok && result != nil {
t.Errorf("(%d) Failed to parse errors %v", i, result)
continue
}
// check interceptor calls
expectInterceptorCall := 1
if len(s.expectedErrors) > 0 {
expectInterceptorCall = 0
}
if interceptorCalls != expectInterceptorCall {
t.Errorf("(%d) Expected interceptor to be called %d, got %d", i, expectInterceptorCall, interceptorCalls)
}
// check errors
if len(errs) > len(s.expectedErrors) {
t.Errorf("(%d) Expected error keys %v, got %v", i, s.expectedErrors, errs)
@@ -450,3 +468,53 @@ func TestCollectionUpsertSubmit(t *testing.T) {
}
}
}
func TestCollectionUpsertSubmitInterceptors(t *testing.T) {
app, _ := tests.NewTestApp()
defer app.Cleanup()
collection, err := app.Dao().FindCollectionByNameOrId("demo")
if err != nil {
t.Fatal(err)
}
form := forms.NewCollectionUpsert(app, collection)
form.Name = "test_new"
testErr := errors.New("test_error")
interceptorCollectionName := ""
interceptor1Called := false
interceptor1 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptor1Called = true
return next()
}
}
interceptor2Called := false
interceptor2 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptorCollectionName = collection.Name // to check if the record was filled
interceptor2Called = true
return testErr
}
}
submitErr := form.Submit(interceptor1, interceptor2)
if submitErr != testErr {
t.Fatalf("Expected submitError %v, got %v", testErr, submitErr)
}
if !interceptor1Called {
t.Fatalf("Expected interceptor1 to be called")
}
if !interceptor2Called {
t.Fatalf("Expected interceptor2 to be called")
}
if interceptorCollectionName != form.Name {
t.Fatalf("Expected the form model to be filled before calling the interceptors")
}
}
+98 -81
View File
@@ -3,6 +3,7 @@ package forms
import (
"encoding/json"
"errors"
"fmt"
"net/http"
"regexp"
"strconv"
@@ -149,76 +150,77 @@ func (form *RecordUpsert) LoadData(r *http.Request) error {
value := extendedData[key]
value = field.PrepareValue(value)
if field.Type == schema.FieldTypeFile {
options, _ := field.Options.(*schema.FileOptions)
oldNames := list.ToUniqueStringSlice(form.Data[key])
if field.Type != schema.FieldTypeFile {
form.Data[key] = value
continue
}
// delete previously uploaded file(s)
if options.MaxSelect == 1 {
// search for unset zero indexed key as a fallback
indexedKeyValue, hasIndexedKey := extendedData[key+".0"]
options, _ := field.Options.(*schema.FileOptions)
oldNames := list.ToUniqueStringSlice(form.Data[key])
if cast.ToString(value) == "" || (hasIndexedKey && cast.ToString(indexedKeyValue) == "") {
if len(oldNames) > 0 {
form.filesToDelete = append(form.filesToDelete, oldNames...)
}
form.Data[key] = nil
// delete previously uploaded file(s)
if options.MaxSelect == 1 {
// search for unset zero indexed key as a fallback
indexedKeyValue, hasIndexedKey := extendedData[key+".0"]
if cast.ToString(value) == "" || (hasIndexedKey && cast.ToString(indexedKeyValue) == "") {
if len(oldNames) > 0 {
form.filesToDelete = append(form.filesToDelete, oldNames...)
}
} else if options.MaxSelect > 1 {
// search for individual file index to delete (eg. "file.0")
keyExp, _ := regexp.Compile(`^` + regexp.QuoteMeta(key) + `\.\d+$`)
indexesToDelete := []int{}
for indexedKey := range extendedData {
if keyExp.MatchString(indexedKey) && cast.ToString(extendedData[indexedKey]) == "" {
index, indexErr := strconv.Atoi(indexedKey[len(key)+1:])
if indexErr != nil || index >= len(oldNames) {
continue
}
indexesToDelete = append(indexesToDelete, index)
}
}
// slice to fill only with the non-deleted indexes
nonDeleted := []string{}
for i, name := range oldNames {
// not marked for deletion
if !list.ExistInSlice(i, indexesToDelete) {
nonDeleted = append(nonDeleted, name)
form.Data[key] = ""
}
} else if options.MaxSelect > 1 {
// search for individual file index to delete (eg. "file.0")
keyExp, _ := regexp.Compile(`^` + regexp.QuoteMeta(key) + `\.\d+$`)
indexesToDelete := make([]int, 0, len(extendedData))
for indexedKey := range extendedData {
if keyExp.MatchString(indexedKey) && cast.ToString(extendedData[indexedKey]) == "" {
index, indexErr := strconv.Atoi(indexedKey[len(key)+1:])
if indexErr != nil || index >= len(oldNames) {
continue
}
// store the id to actually delete the file later
form.filesToDelete = append(form.filesToDelete, name)
indexesToDelete = append(indexesToDelete, index)
}
form.Data[key] = nonDeleted
}
// check if there are any new uploaded form files
files, err := rest.FindUploadedFiles(r, key)
if err != nil {
continue // skip invalid or missing file(s)
}
// refresh oldNames list
oldNames = list.ToUniqueStringSlice(form.Data[key])
if options.MaxSelect == 1 {
// delete previous file(s) before replacing
if len(oldNames) > 0 {
form.filesToDelete = list.ToUniqueStringSlice(append(form.filesToDelete, oldNames...))
// slice to fill only with the non-deleted indexes
nonDeleted := make([]string, 0, len(oldNames))
for i, name := range oldNames {
// not marked for deletion
if !list.ExistInSlice(i, indexesToDelete) {
nonDeleted = append(nonDeleted, name)
continue
}
form.filesToUpload = append(form.filesToUpload, files[0])
form.Data[key] = files[0].Name()
} else if options.MaxSelect > 1 {
// append the id of each uploaded file instance
form.filesToUpload = append(form.filesToUpload, files...)
for _, file := range files {
oldNames = append(oldNames, file.Name())
}
form.Data[key] = oldNames
// store the id to actually delete the file later
form.filesToDelete = append(form.filesToDelete, name)
}
} else {
form.Data[key] = value
form.Data[key] = nonDeleted
}
// check if there are any new uploaded form files
files, err := rest.FindUploadedFiles(r, key)
if err != nil {
continue // skip invalid or missing file(s)
}
// refresh oldNames list
oldNames = list.ToUniqueStringSlice(form.Data[key])
if options.MaxSelect == 1 {
// delete previous file(s) before replacing
if len(oldNames) > 0 {
form.filesToDelete = list.ToUniqueStringSlice(append(form.filesToDelete, oldNames...))
}
form.filesToUpload = append(form.filesToUpload, files[0])
form.Data[key] = files[0].Name()
} else if options.MaxSelect > 1 {
// append the id of each uploaded file instance
form.filesToUpload = append(form.filesToUpload, files...)
for _, file := range files {
oldNames = append(oldNames, file.Name())
}
form.Data[key] = oldNames
}
}
@@ -270,7 +272,10 @@ func (form *RecordUpsert) DrySubmit(callback func(txDao *daos.Dao) error) error
}
// Submit validates the form and upserts the form Record model.
func (form *RecordUpsert) Submit() error {
//
// You can optionally provide a list of InterceptorFunc to further
// modify the form behavior before persisting it.
func (form *RecordUpsert) Submit(interceptors ...InterceptorFunc) error {
if err := form.Validate(); err != nil {
return err
}
@@ -280,25 +285,27 @@ func (form *RecordUpsert) Submit() error {
return err
}
return form.app.Dao().RunInTransaction(func(txDao *daos.Dao) error {
// persist record model
if err := txDao.SaveRecord(form.record); err != nil {
return err
}
return runInterceptors(func() error {
return form.app.Dao().RunInTransaction(func(txDao *daos.Dao) error {
// persist record model
if err := txDao.SaveRecord(form.record); err != nil {
return err
}
// upload new files (if any)
if err := form.processFilesToUpload(); err != nil {
return err
}
// upload new files (if any)
if err := form.processFilesToUpload(); err != nil {
return err
}
// delete old files (if any)
if err := form.processFilesToDelete(); err != nil {
// for now fail silently to avoid reupload when `form.Submit()`
// is called manually (aka. not from an api request)...
}
// delete old files (if any)
if err := form.processFilesToDelete(); err != nil { //nolint:staticcheck
// for now fail silently to avoid reupload when `form.Submit()`
// is called manually (aka. not from an api request)...
}
return nil
})
return nil
})
}, interceptors...)
}
func (form *RecordUpsert) processFilesToUpload() error {
@@ -316,17 +323,22 @@ func (form *RecordUpsert) processFilesToUpload() error {
}
defer fs.Close()
var uploadErrors []error
for i := len(form.filesToUpload) - 1; i >= 0; i-- {
file := form.filesToUpload[i]
path := form.record.BaseFilesPath() + "/" + file.Name()
if err := fs.Upload(file.Bytes(), path); err == nil {
// remove the uploaded file from the list
form.filesToUpload = append(form.filesToUpload[:i], form.filesToUpload[i+1:]...)
} else {
// store the upload error
uploadErrors = append(uploadErrors, fmt.Errorf("File %d: %v", i, err))
}
}
if len(form.filesToUpload) > 0 {
return errors.New("Failed to upload all files.")
if len(uploadErrors) > 0 {
return fmt.Errorf("Failed to upload all files: %v", uploadErrors)
}
return nil
@@ -347,20 +359,25 @@ func (form *RecordUpsert) processFilesToDelete() error {
}
defer fs.Close()
var deleteErrors []error
for i := len(form.filesToDelete) - 1; i >= 0; i-- {
filename := form.filesToDelete[i]
path := form.record.BaseFilesPath() + "/" + filename
if err := fs.Delete(path); err == nil {
// remove the deleted file from the list
form.filesToDelete = append(form.filesToDelete[:i], form.filesToDelete[i+1:]...)
} else {
// store the delete error
deleteErrors = append(deleteErrors, fmt.Errorf("File %d: %v", i, err))
}
// try to delete the related file thumbs (if any)
fs.DeletePrefix(form.record.BaseFilesPath() + "/thumbs_" + filename + "/")
}
if len(form.filesToDelete) > 0 {
return errors.New("Failed to delete all files.")
if len(deleteErrors) > 0 {
return fmt.Errorf("Failed to delete all files: %v", deleteErrors)
}
return nil
+86 -6
View File
@@ -3,6 +3,7 @@ package forms_test
import (
"bytes"
"encoding/json"
"errors"
"net/http"
"net/http/httptest"
"path/filepath"
@@ -97,8 +98,8 @@ func TestRecordUpsertLoadDataJson(t *testing.T) {
if !ok {
t.Fatal("Expect onefile field to be set")
}
if onefile != nil {
t.Fatalf("Expect onefile field to be nil, got %v", onefile)
if onefile != "" {
t.Fatalf("Expect onefile field to be empty string, got %v", onefile)
}
manyfiles, ok := form.Data["manyfiles"]
@@ -165,8 +166,8 @@ func TestRecordUpsertLoadDataMultipart(t *testing.T) {
if !ok {
t.Fatal("Expect onefile field to be set")
}
if onefile != nil {
t.Fatalf("Expect onefile field to be nil, got %v", onefile)
if onefile != "" {
t.Fatalf("Expect onefile field to be empty string, got %v", onefile)
}
manyfiles, ok := form.Data["manyfiles"]
@@ -400,13 +401,27 @@ func TestRecordUpsertSubmitFailure(t *testing.T) {
req.Header.Set(echo.HeaderContentType, mp.FormDataContentType())
form.LoadData(req)
interceptorCalls := 0
interceptor := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptorCalls++
return next()
}
}
// ensure that validate is triggered
// ---
result := form.Submit()
result := form.Submit(interceptor)
if result == nil {
t.Fatal("Expected error, got nil")
}
// check interceptor calls
// ---
if interceptorCalls != 0 {
t.Fatalf("Expected interceptor to be called 0 times, got %d", interceptorCalls)
}
// ensure that the record changes weren't persisted
// ---
recordAfter, err := app.Dao().FindFirstRecordByData(collection, "id", recordBefore.Id)
@@ -451,11 +466,25 @@ func TestRecordUpsertSubmitSuccess(t *testing.T) {
req.Header.Set(echo.HeaderContentType, mp.FormDataContentType())
form.LoadData(req)
result := form.Submit()
interceptorCalls := 0
interceptor := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptorCalls++
return next()
}
}
result := form.Submit(interceptor)
if result != nil {
t.Fatalf("Expected nil, got error %v", result)
}
// check interceptor calls
// ---
if interceptorCalls != 1 {
t.Fatalf("Expected interceptor to be called 1 time, got %d", interceptorCalls)
}
// ensure that the record changes were persisted
// ---
recordAfter, err := app.Dao().FindFirstRecordByData(collection, "id", recordBefore.Id)
@@ -482,6 +511,57 @@ func TestRecordUpsertSubmitSuccess(t *testing.T) {
}
}
func TestRecordUpsertSubmitInterceptors(t *testing.T) {
app, _ := tests.NewTestApp()
defer app.Cleanup()
collection, _ := app.Dao().FindCollectionByNameOrId("demo4")
record, err := app.Dao().FindFirstRecordByData(collection, "id", "054f9f24-0a0a-4e09-87b1-bc7ff2b336a2")
if err != nil {
t.Fatal(err)
}
form := forms.NewRecordUpsert(app, record)
form.Data["title"] = "test_new"
testErr := errors.New("test_error")
interceptorRecordTitle := ""
interceptor1Called := false
interceptor1 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptor1Called = true
return next()
}
}
interceptor2Called := false
interceptor2 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptorRecordTitle = record.GetStringDataValue("title") // to check if the record was filled
interceptor2Called = true
return testErr
}
}
submitErr := form.Submit(interceptor1, interceptor2)
if submitErr != testErr {
t.Fatalf("Expected submitError %v, got %v", testErr, submitErr)
}
if !interceptor1Called {
t.Fatalf("Expected interceptor1 to be called")
}
if !interceptor2Called {
t.Fatalf("Expected interceptor2 to be called")
}
if interceptorRecordTitle != form.Data["title"].(string) {
t.Fatalf("Expected the form model to be filled before calling the interceptors")
}
}
func hasRecordFile(app core.App, record *models.Record, filename string) bool {
fs, _ := app.NewFilesystem()
defer fs.Close()
+20 -15
View File
@@ -33,27 +33,32 @@ func (form *SettingsUpsert) Validate() error {
// Submit validates the form and upserts the loaded settings.
//
// On success the app settings will be refreshed with the form ones.
func (form *SettingsUpsert) Submit() error {
//
// You can optionally provide a list of InterceptorFunc to further
// modify the form behavior before persisting it.
func (form *SettingsUpsert) Submit(interceptors ...InterceptorFunc) error {
if err := form.Validate(); err != nil {
return err
}
encryptionKey := os.Getenv(form.app.EncryptionEnv())
saveErr := form.app.Dao().SaveParam(
models.ParamAppSettings,
form.Settings,
encryptionKey,
)
if saveErr != nil {
return saveErr
}
return runInterceptors(func() error {
saveErr := form.app.Dao().SaveParam(
models.ParamAppSettings,
form.Settings,
encryptionKey,
)
if saveErr != nil {
return saveErr
}
// explicitly trigger old logs deletion
form.app.LogsDao().DeleteOldRequests(
time.Now().AddDate(0, 0, -1*form.Settings.Logs.MaxDays),
)
// explicitly trigger old logs deletion
form.app.LogsDao().DeleteOldRequests(
time.Now().AddDate(0, 0, -1*form.Settings.Logs.MaxDays),
)
// merge the application settings with the form ones
return form.app.Settings().Merge(form.Settings)
// merge the application settings with the form ones
return form.app.Settings().Merge(form.Settings)
}, interceptors...)
}
+58 -1
View File
@@ -2,6 +2,7 @@ package forms_test
import (
"encoding/json"
"errors"
"os"
"testing"
@@ -98,14 +99,31 @@ func TestSettingsUpsertSubmit(t *testing.T) {
continue
}
interceptorCalls := 0
interceptor := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptorCalls++
return next()
}
}
// parse errors
result := form.Submit()
result := form.Submit(interceptor)
errs, ok := result.(validation.Errors)
if !ok && result != nil {
t.Errorf("(%d) Failed to parse errors %v", i, result)
continue
}
// check interceptor calls
expectInterceptorCall := 1
if len(s.expectedErrors) > 0 {
expectInterceptorCall = 0
}
if interceptorCalls != expectInterceptorCall {
t.Errorf("(%d) Expected interceptor to be called %d, got %d", i, expectInterceptorCall, interceptorCalls)
}
// check errors
if len(errs) > len(s.expectedErrors) {
t.Errorf("(%d) Expected error keys %v, got %v", i, s.expectedErrors, errs)
@@ -128,3 +146,42 @@ func TestSettingsUpsertSubmit(t *testing.T) {
}
}
}
func TestSettingsUpsertSubmitInterceptors(t *testing.T) {
app, _ := tests.NewTestApp()
defer app.Cleanup()
form := forms.NewSettingsUpsert(app)
form.Meta.AppName = "test_new"
testErr := errors.New("test_error")
interceptor1Called := false
interceptor1 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptor1Called = true
return next()
}
}
interceptor2Called := false
interceptor2 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptor2Called = true
return testErr
}
}
submitErr := form.Submit(interceptor1, interceptor2)
if submitErr != testErr {
t.Fatalf("Expected submitError %v, got %v", testErr, submitErr)
}
if !interceptor1Called {
t.Fatalf("Expected interceptor1 to be called")
}
if !interceptor2Called {
t.Fatalf("Expected interceptor2 to be called")
}
}
+25 -24
View File
@@ -98,35 +98,36 @@ func (form *UserOauth2Login) Submit() (*models.User, *auth.AuthUser, error) {
return nil, authData, err
}
}
} else {
if !config.AllowRegistrations {
// registration of new users is not allowed via the Oauth2 provider
return nil, authData, errors.New("Cannot find user with the authorized email.")
}
return user, authData, nil
}
// create new user
user = &models.User{Verified: true}
upsertForm := NewUserUpsert(form.app, user)
upsertForm.Email = authData.Email
upsertForm.Password = security.RandomString(30)
upsertForm.PasswordConfirm = upsertForm.Password
if !config.AllowRegistrations {
// registration of new users is not allowed via the Oauth2 provider
return nil, authData, errors.New("Cannot find user with the authorized email.")
}
event := &core.UserOauth2RegisterEvent{
User: user,
AuthData: authData,
}
// create new user
user = &models.User{Verified: true}
upsertForm := NewUserUpsert(form.app, user)
upsertForm.Email = authData.Email
upsertForm.Password = security.RandomString(30)
upsertForm.PasswordConfirm = upsertForm.Password
if err := form.app.OnUserBeforeOauth2Register().Trigger(event); err != nil {
return nil, authData, err
}
event := &core.UserOauth2RegisterEvent{
User: user,
AuthData: authData,
}
if err := upsertForm.Submit(); err != nil {
return nil, authData, err
}
if err := form.app.OnUserBeforeOauth2Register().Trigger(event); err != nil {
return nil, authData, err
}
if err := form.app.OnUserAfterOauth2Register().Trigger(event); err != nil {
return nil, authData, err
}
if err := upsertForm.Submit(); err != nil {
return nil, authData, err
}
if err := form.app.OnUserAfterOauth2Register().Trigger(event); err != nil {
return nil, authData, err
}
return user, authData, nil
+7 -2
View File
@@ -98,7 +98,10 @@ func (form *UserUpsert) checkEmailDomain(value any) error {
}
// Submit validates the form and upserts the form user model.
func (form *UserUpsert) Submit() error {
//
// You can optionally provide a list of InterceptorFunc to further
// modify the form behavior before persisting it.
func (form *UserUpsert) Submit(interceptors ...InterceptorFunc) error {
if err := form.Validate(); err != nil {
return err
}
@@ -114,5 +117,7 @@ func (form *UserUpsert) Submit() error {
form.user.Email = form.Email
return form.app.Dao().SaveUser(form.user)
return runInterceptors(func() error {
return form.app.Dao().SaveUser(form.user)
}, interceptors...)
}
+65 -1
View File
@@ -2,6 +2,7 @@ package forms_test
import (
"encoding/json"
"errors"
"testing"
validation "github.com/go-ozzo/ozzo-validation/v4"
@@ -212,13 +213,28 @@ func TestUserUpsertSubmit(t *testing.T) {
continue
}
err := form.Submit()
interceptorCalls := 0
err := form.Submit(func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptorCalls++
return next()
}
})
hasErr := err != nil
if hasErr != s.expectError {
t.Errorf("(%d) Expected hasErr to be %v, got %v (%v)", i, s.expectError, hasErr, err)
}
expectInterceptorCall := 1
if s.expectError {
expectInterceptorCall = 0
}
if interceptorCalls != expectInterceptorCall {
t.Errorf("(%d) Expected interceptor to be called %d, got %d", i, expectInterceptorCall, interceptorCalls)
}
if s.expectError {
continue
}
@@ -240,3 +256,51 @@ func TestUserUpsertSubmit(t *testing.T) {
}
}
}
func TestUserUpsertSubmitInterceptors(t *testing.T) {
app, _ := tests.NewTestApp()
defer app.Cleanup()
user := &models.User{}
form := forms.NewUserUpsert(app, user)
form.Email = "test_new@example.com"
form.Password = "1234567890"
form.PasswordConfirm = form.Password
testErr := errors.New("test_error")
interceptorUserEmail := ""
interceptor1Called := false
interceptor1 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptor1Called = true
return next()
}
}
interceptor2Called := false
interceptor2 := func(next forms.InterceptorNextFunc) forms.InterceptorNextFunc {
return func() error {
interceptorUserEmail = user.Email // to check if the record was filled
interceptor2Called = true
return testErr
}
}
err := form.Submit(interceptor1, interceptor2)
if err != testErr {
t.Fatalf("Expected error %v, got %v", testErr, err)
}
if !interceptor1Called {
t.Fatalf("Expected interceptor1 to be called")
}
if !interceptor2Called {
t.Fatalf("Expected interceptor2 to be called")
}
if interceptorUserEmail != form.Email {
t.Fatalf("Expected the form model to be filled before calling the interceptors")
}
}
+18 -32
View File
@@ -240,7 +240,6 @@ func (validator *RecordDataValidator) checkUrlValue(field *schema.SchemaField, v
func (validator *RecordDataValidator) checkDateValue(field *schema.SchemaField, value any) error {
val, _ := value.(types.DateTime)
if val.IsZero() {
if field.Required {
return requiredErr
@@ -268,6 +267,9 @@ func (validator *RecordDataValidator) checkDateValue(field *schema.SchemaField,
func (validator *RecordDataValidator) checkSelectValue(field *schema.SchemaField, value any) error {
normalizedVal := list.ToUniqueStringSlice(value)
if len(normalizedVal) == 0 {
if field.Required {
return requiredErr
}
return nil // nothing to check
}
@@ -302,13 +304,9 @@ func (validator *RecordDataValidator) checkJsonValue(field *schema.SchemaField,
}
func (validator *RecordDataValidator) checkFileValue(field *schema.SchemaField, value any) error {
// normalize value access
var names []string
switch v := value.(type) {
case []string:
names = v
case string:
names = []string{v}
names := list.ToUniqueStringSlice(value)
if len(names) == 0 && field.Required {
return requiredErr
}
options, _ := field.Options.(*schema.FileOptions)
@@ -318,12 +316,10 @@ func (validator *RecordDataValidator) checkFileValue(field *schema.SchemaField,
}
// extract the uploaded files
files := []*rest.UploadedFile{}
if len(validator.uploadedFiles) > 0 {
for _, file := range validator.uploadedFiles {
if list.ExistInSlice(file.Name(), names) {
files = append(files, file)
}
files := make([]*rest.UploadedFile, 0, len(validator.uploadedFiles))
for _, file := range validator.uploadedFiles {
if list.ExistInSlice(file.Name(), names) {
files = append(files, file)
}
}
@@ -345,16 +341,11 @@ func (validator *RecordDataValidator) checkFileValue(field *schema.SchemaField,
}
func (validator *RecordDataValidator) checkRelationValue(field *schema.SchemaField, value any) error {
// normalize value access
var ids []string
switch v := value.(type) {
case []string:
ids = v
case string:
ids = []string{v}
}
ids := list.ToUniqueStringSlice(value)
if len(ids) == 0 {
if field.Required {
return requiredErr
}
return nil // nothing to check
}
@@ -385,16 +376,11 @@ func (validator *RecordDataValidator) checkRelationValue(field *schema.SchemaFie
}
func (validator *RecordDataValidator) checkUserValue(field *schema.SchemaField, value any) error {
// normalize value access
var ids []string
switch v := value.(type) {
case []string:
ids = v
case string:
ids = []string{v}
}
ids := list.ToUniqueStringSlice(value)
if len(ids) == 0 {
if field.Required {
return requiredErr
}
return nil // nothing to check
}
+62 -62
View File
@@ -89,7 +89,7 @@ func TestRecordDataValidatorValidateText(t *testing.T) {
scenarios := []testDataFieldScenario{
{
"check required constraint",
"(text) check required constraint",
map[string]any{
"field1": nil,
"field2": nil,
@@ -99,7 +99,7 @@ func TestRecordDataValidatorValidateText(t *testing.T) {
[]string{"field2"},
},
{
"check unique constraint",
"(text) check unique constraint",
map[string]any{
"field1": "test",
"field2": "test",
@@ -109,7 +109,7 @@ func TestRecordDataValidatorValidateText(t *testing.T) {
[]string{"field3"},
},
{
"check min constraint",
"(text) check min constraint",
map[string]any{
"field1": "test",
"field2": "test",
@@ -119,7 +119,7 @@ func TestRecordDataValidatorValidateText(t *testing.T) {
[]string{"field3"},
},
{
"check max constraint",
"(text) check max constraint",
map[string]any{
"field1": "test",
"field2": "test",
@@ -129,7 +129,7 @@ func TestRecordDataValidatorValidateText(t *testing.T) {
[]string{"field3"},
},
{
"check pattern constraint",
"(text) check pattern constraint",
map[string]any{
"field1": nil,
"field2": "test",
@@ -139,7 +139,7 @@ func TestRecordDataValidatorValidateText(t *testing.T) {
[]string{"field3"},
},
{
"valid data (only required)",
"(text) valid data (only required)",
map[string]any{
"field2": "test",
},
@@ -147,7 +147,7 @@ func TestRecordDataValidatorValidateText(t *testing.T) {
[]string{},
},
{
"valid data (all)",
"(text) valid data (all)",
map[string]any{
"field1": "test",
"field2": 12345, // test value cast
@@ -168,7 +168,7 @@ func TestRecordDataValidatorValidateNumber(t *testing.T) {
// create new test collection
collection := &models.Collection{}
collection.Name = "validate_test"
min := 1.0
min := 0.0
max := 150.0
collection.Schema = schema.NewSchema(
&schema.SchemaField{
@@ -205,7 +205,7 @@ func TestRecordDataValidatorValidateNumber(t *testing.T) {
scenarios := []testDataFieldScenario{
{
"check required constraint",
"(number) check required constraint",
map[string]any{
"field1": nil,
"field2": nil,
@@ -215,17 +215,17 @@ func TestRecordDataValidatorValidateNumber(t *testing.T) {
[]string{"field2"},
},
{
"check required constraint + casting",
"(number) check required constraint + casting",
map[string]any{
"field1": "invalid",
"field2": "invalid",
"field3": "invalid",
},
nil,
[]string{"field2", "field3"},
[]string{"field2"},
},
{
"check unique constraint",
"(number) check unique constraint",
map[string]any{
"field1": 123,
"field2": 123,
@@ -235,7 +235,7 @@ func TestRecordDataValidatorValidateNumber(t *testing.T) {
[]string{"field3"},
},
{
"check min constraint",
"(number) check min constraint",
map[string]any{
"field1": 0.5,
"field2": 1,
@@ -245,7 +245,7 @@ func TestRecordDataValidatorValidateNumber(t *testing.T) {
[]string{"field3"},
},
{
"check max constraint",
"(number) check max constraint",
map[string]any{
"field1": nil,
"field2": max,
@@ -255,7 +255,7 @@ func TestRecordDataValidatorValidateNumber(t *testing.T) {
[]string{"field3"},
},
{
"valid data (only required)",
"(number) valid data (only required)",
map[string]any{
"field2": 1,
},
@@ -263,7 +263,7 @@ func TestRecordDataValidatorValidateNumber(t *testing.T) {
[]string{},
},
{
"valid data (all)",
"(number) valid data (all)",
map[string]any{
"field1": nil,
"field2": 123, // test value cast
@@ -316,7 +316,7 @@ func TestRecordDataValidatorValidateBool(t *testing.T) {
scenarios := []testDataFieldScenario{
{
"check required constraint",
"(bool) check required constraint",
map[string]any{
"field1": nil,
"field2": nil,
@@ -326,7 +326,7 @@ func TestRecordDataValidatorValidateBool(t *testing.T) {
[]string{"field2"},
},
{
"check required constraint + casting",
"(bool) check required constraint + casting",
map[string]any{
"field1": "invalid",
"field2": "invalid",
@@ -336,7 +336,7 @@ func TestRecordDataValidatorValidateBool(t *testing.T) {
[]string{"field2"},
},
{
"check unique constraint",
"(bool) check unique constraint",
map[string]any{
"field1": true,
"field2": true,
@@ -346,7 +346,7 @@ func TestRecordDataValidatorValidateBool(t *testing.T) {
[]string{"field3"},
},
{
"valid data (only required)",
"(bool) valid data (only required)",
map[string]any{
"field2": 1,
},
@@ -354,7 +354,7 @@ func TestRecordDataValidatorValidateBool(t *testing.T) {
[]string{},
},
{
"valid data (all)",
"(bool) valid data (all)",
map[string]any{
"field1": false,
"field2": true,
@@ -412,7 +412,7 @@ func TestRecordDataValidatorValidateEmail(t *testing.T) {
scenarios := []testDataFieldScenario{
{
"check required constraint",
"(email) check required constraint",
map[string]any{
"field1": nil,
"field2": nil,
@@ -422,7 +422,7 @@ func TestRecordDataValidatorValidateEmail(t *testing.T) {
[]string{"field2"},
},
{
"check email format validator",
"(email) check email format validator",
map[string]any{
"field1": "test",
"field2": "test.com",
@@ -432,7 +432,7 @@ func TestRecordDataValidatorValidateEmail(t *testing.T) {
[]string{"field1", "field2", "field3"},
},
{
"check unique constraint",
"(email) check unique constraint",
map[string]any{
"field1": "test@example.com",
"field2": "test@test.com",
@@ -442,7 +442,7 @@ func TestRecordDataValidatorValidateEmail(t *testing.T) {
[]string{"field3"},
},
{
"check ExceptDomains constraint",
"(email) check ExceptDomains constraint",
map[string]any{
"field1": "test@example.com",
"field2": "test@example.com",
@@ -452,7 +452,7 @@ func TestRecordDataValidatorValidateEmail(t *testing.T) {
[]string{"field2"},
},
{
"check OnlyDomains constraint",
"(email) check OnlyDomains constraint",
map[string]any{
"field1": "test@test.com",
"field2": "test@test.com",
@@ -462,7 +462,7 @@ func TestRecordDataValidatorValidateEmail(t *testing.T) {
[]string{"field3"},
},
{
"valid data (only required)",
"(email) valid data (only required)",
map[string]any{
"field2": "test@test.com",
},
@@ -470,7 +470,7 @@ func TestRecordDataValidatorValidateEmail(t *testing.T) {
[]string{},
},
{
"valid data (all)",
"(email) valid data (all)",
map[string]any{
"field1": "123@example.com",
"field2": "test@test.com",
@@ -528,7 +528,7 @@ func TestRecordDataValidatorValidateUrl(t *testing.T) {
scenarios := []testDataFieldScenario{
{
"check required constraint",
"(url) check required constraint",
map[string]any{
"field1": nil,
"field2": nil,
@@ -538,7 +538,7 @@ func TestRecordDataValidatorValidateUrl(t *testing.T) {
[]string{"field2"},
},
{
"check url format validator",
"(url) check url format validator",
map[string]any{
"field1": "/abc",
"field2": "test.com", // valid
@@ -548,7 +548,7 @@ func TestRecordDataValidatorValidateUrl(t *testing.T) {
[]string{"field1", "field3"},
},
{
"check unique constraint",
"(url) check unique constraint",
map[string]any{
"field1": "http://example.com",
"field2": "http://test.com",
@@ -558,7 +558,7 @@ func TestRecordDataValidatorValidateUrl(t *testing.T) {
[]string{"field3"},
},
{
"check ExceptDomains constraint",
"(url) check ExceptDomains constraint",
map[string]any{
"field1": "http://example.com",
"field2": "http://example.com",
@@ -568,7 +568,7 @@ func TestRecordDataValidatorValidateUrl(t *testing.T) {
[]string{"field2"},
},
{
"check OnlyDomains constraint",
"(url) check OnlyDomains constraint",
map[string]any{
"field1": "http://test.com/abc",
"field2": "http://test.com/abc",
@@ -578,7 +578,7 @@ func TestRecordDataValidatorValidateUrl(t *testing.T) {
[]string{"field3"},
},
{
"check subdomains constraint",
"(url) check subdomains constraint",
map[string]any{
"field1": "http://test.test.com",
"field2": "http://test.example.com",
@@ -588,7 +588,7 @@ func TestRecordDataValidatorValidateUrl(t *testing.T) {
[]string{"field3"},
},
{
"valid data (only required)",
"(url) valid data (only required)",
map[string]any{
"field2": "http://sub.test.com/abc",
},
@@ -596,7 +596,7 @@ func TestRecordDataValidatorValidateUrl(t *testing.T) {
[]string{},
},
{
"valid data (all)",
"(url) valid data (all)",
map[string]any{
"field1": "http://example.com/123",
"field2": "http://test.com/",
@@ -656,7 +656,7 @@ func TestRecordDataValidatorValidateDate(t *testing.T) {
scenarios := []testDataFieldScenario{
{
"check required constraint",
"(date) check required constraint",
map[string]any{
"field1": nil,
"field2": nil,
@@ -666,7 +666,7 @@ func TestRecordDataValidatorValidateDate(t *testing.T) {
[]string{"field2"},
},
{
"check required constraint + cast",
"(date) check required constraint + cast",
map[string]any{
"field1": "invalid",
"field2": "invalid",
@@ -676,7 +676,7 @@ func TestRecordDataValidatorValidateDate(t *testing.T) {
[]string{"field2"},
},
{
"check required constraint + zero datetime",
"(date) check required constraint + zero datetime",
map[string]any{
"field1": "January 1, year 1, 00:00:00 UTC",
"field2": "0001-01-01 00:00:00",
@@ -686,7 +686,7 @@ func TestRecordDataValidatorValidateDate(t *testing.T) {
[]string{"field2"},
},
{
"check unique constraint",
"(date) check unique constraint",
map[string]any{
"field1": "2029-01-01 01:01:01.123",
"field2": "2029-01-01 01:01:01.123",
@@ -696,7 +696,7 @@ func TestRecordDataValidatorValidateDate(t *testing.T) {
[]string{"field3"},
},
{
"check min date constraint",
"(date) check min date constraint",
map[string]any{
"field1": "2021-01-01 01:01:01",
"field2": "2021-01-01 01:01:01",
@@ -706,7 +706,7 @@ func TestRecordDataValidatorValidateDate(t *testing.T) {
[]string{"field2"},
},
{
"check max date constraint",
"(date) check max date constraint",
map[string]any{
"field1": "2030-02-01 01:01:01",
"field2": "2030-02-01 01:01:01",
@@ -716,7 +716,7 @@ func TestRecordDataValidatorValidateDate(t *testing.T) {
[]string{"field3"},
},
{
"valid data (only required)",
"(date) valid data (only required)",
map[string]any{
"field2": "2029-01-01 01:01:01",
},
@@ -724,7 +724,7 @@ func TestRecordDataValidatorValidateDate(t *testing.T) {
[]string{},
},
{
"valid data (all)",
"(date) valid data (all)",
map[string]any{
"field1": "2029-01-01 01:01:01.000",
"field2": "2029-01-01 01:01:01",
@@ -788,7 +788,7 @@ func TestRecordDataValidatorValidateSelect(t *testing.T) {
scenarios := []testDataFieldScenario{
{
"check required constraint",
"(select) check required constraint",
map[string]any{
"field1": nil,
"field2": nil,
@@ -798,7 +798,7 @@ func TestRecordDataValidatorValidateSelect(t *testing.T) {
[]string{"field2"},
},
{
"check required constraint - empty values",
"(select) check required constraint - empty values",
map[string]any{
"field1": "",
"field2": "",
@@ -808,7 +808,7 @@ func TestRecordDataValidatorValidateSelect(t *testing.T) {
[]string{"field2"},
},
{
"check required constraint - multiple select cast",
"(select) check required constraint - multiple select cast",
map[string]any{
"field1": "a",
"field2": "a",
@@ -818,7 +818,7 @@ func TestRecordDataValidatorValidateSelect(t *testing.T) {
[]string{},
},
{
"check unique constraint",
"(select) check unique constraint",
map[string]any{
"field1": "a",
"field2": "b",
@@ -828,7 +828,7 @@ func TestRecordDataValidatorValidateSelect(t *testing.T) {
[]string{"field3"},
},
{
"check unique constraint - same elements but different order",
"(select) check unique constraint - same elements but different order",
map[string]any{
"field1": "a",
"field2": "b",
@@ -838,7 +838,7 @@ func TestRecordDataValidatorValidateSelect(t *testing.T) {
[]string{},
},
{
"check Values constraint",
"(select) check Values constraint",
map[string]any{
"field1": 1,
"field2": "d",
@@ -848,7 +848,7 @@ func TestRecordDataValidatorValidateSelect(t *testing.T) {
[]string{"field2", "field3"},
},
{
"check MaxSelect constraint",
"(select) check MaxSelect constraint",
map[string]any{
"field1": []string{"a", "b"}, // this will be normalized to a single string value
"field2": []string{"a", "b", "c"},
@@ -858,7 +858,7 @@ func TestRecordDataValidatorValidateSelect(t *testing.T) {
[]string{"field2"},
},
{
"valid data - only required fields",
"(select) valid data - only required fields",
map[string]any{
"field2": []string{"a", "b"},
},
@@ -866,7 +866,7 @@ func TestRecordDataValidatorValidateSelect(t *testing.T) {
[]string{},
},
{
"valid data - all fields with normalizations",
"(select) valid data - all fields with normalizations",
map[string]any{
"field1": "a",
"field2": []string{"a", "b", "b"}, // will be collapsed
@@ -918,7 +918,7 @@ func TestRecordDataValidatorValidateJson(t *testing.T) {
scenarios := []testDataFieldScenario{
{
"check required constraint - nil",
"(json) check required constraint - nil",
map[string]any{
"field1": nil,
"field2": nil,
@@ -928,7 +928,7 @@ func TestRecordDataValidatorValidateJson(t *testing.T) {
[]string{"field2"},
},
{
"check required constraint - zero string",
"(json) check required constraint - zero string",
map[string]any{
"field1": "",
"field2": "",
@@ -938,7 +938,7 @@ func TestRecordDataValidatorValidateJson(t *testing.T) {
[]string{"field2"},
},
{
"check required constraint - zero number",
"(json) check required constraint - zero number",
map[string]any{
"field1": 0,
"field2": 0,
@@ -948,7 +948,7 @@ func TestRecordDataValidatorValidateJson(t *testing.T) {
[]string{},
},
{
"check required constraint - zero slice",
"(json) check required constraint - zero slice",
map[string]any{
"field1": []string{},
"field2": []string{},
@@ -958,7 +958,7 @@ func TestRecordDataValidatorValidateJson(t *testing.T) {
[]string{},
},
{
"check required constraint - zero map",
"(json) check required constraint - zero map",
map[string]any{
"field1": map[string]string{},
"field2": map[string]string{},
@@ -968,7 +968,7 @@ func TestRecordDataValidatorValidateJson(t *testing.T) {
[]string{},
},
{
"check unique constraint",
"(json) check unique constraint",
map[string]any{
"field1": `{"test":123}`,
"field2": `{"test":123}`,
@@ -978,7 +978,7 @@ func TestRecordDataValidatorValidateJson(t *testing.T) {
[]string{"field3"},
},
{
"check json text validator",
"(json) check json text validator",
map[string]any{
"field1": `[1, 2, 3`,
"field2": `invalid`,
@@ -988,7 +988,7 @@ func TestRecordDataValidatorValidateJson(t *testing.T) {
[]string{"field1", "field2"},
},
{
"valid data - only required fields",
"(json) valid data - only required fields",
map[string]any{
"field2": `{"test":123}`,
},
@@ -996,7 +996,7 @@ func TestRecordDataValidatorValidateJson(t *testing.T) {
[]string{},
},
{
"valid data - all fields with normalizations",
"(json) valid data - all fields with normalizations",
map[string]any{
"field1": []string{"a", "b", "c"},
"field2": 123,
+7 -1
View File
@@ -15,6 +15,12 @@ type ColumnValueMapper interface {
ColumnValueMap() map[string]any
}
// FilesManager defines an interface with common methods that files manager models should implement.
type FilesManager interface {
// BaseFilesPath returns the storage dir path used by the interface instance.
BaseFilesPath() string
}
// Model defines an interface with common methods that all db models should have.
type Model interface {
TableName() string
@@ -71,7 +77,7 @@ func (m *BaseModel) RefreshCreated() {
m.Created = types.NowDateTime()
}
// RefreshUpdated updates the model's Created field with the current datetime.
// RefreshUpdated updates the model's Updated field with the current datetime.
func (m *BaseModel) RefreshUpdated() {
m.Updated = types.NowDateTime()
}
+1
View File
@@ -3,6 +3,7 @@ package models
import "github.com/pocketbase/pocketbase/models/schema"
var _ Model = (*Collection)(nil)
var _ FilesManager = (*Collection)(nil)
type Collection struct {
BaseModel
+4 -3
View File
@@ -16,6 +16,7 @@ import (
var _ Model = (*Record)(nil)
var _ ColumnValueMapper = (*Record)(nil)
var _ FilesManager = (*Record)(nil)
type Record struct {
BaseModel
@@ -68,10 +69,10 @@ func NewRecordFromNullStringMap(collection *Collection, data dbx.NullStringMap)
// NewRecordsFromNullStringMaps initializes a new Record model for
// each row in the provided NullStringMap slice.
func NewRecordsFromNullStringMaps(collection *Collection, rows []dbx.NullStringMap) []*Record {
result := []*Record{}
result := make([]*Record, len(rows))
for _, row := range rows {
result = append(result, NewRecordFromNullStringMap(collection, row))
for i, row := range rows {
result[i] = NewRecordFromNullStringMap(collection, row)
}
return result
+3 -3
View File
@@ -118,7 +118,7 @@ func TestNewRecordFromNullStringMap(t *testing.T) {
t.Fatal(err)
}
expected := `{"@collectionId":"","@collectionName":"test","created":"2022-01-01 10:00:00.123","field1":"test","field2":null,"field3":true,"field4":123.123,"field5":"test1","field6":["test"],"id":"c23eb053-d07e-4fbe-86b3-b8ac31982e9a","updated":"2022-01-01 10:00:00.456"}`
expected := `{"@collectionId":"","@collectionName":"test","created":"2022-01-01 10:00:00.123","field1":"test","field2":"","field3":true,"field4":123.123,"field5":"test1","field6":["test"],"id":"c23eb053-d07e-4fbe-86b3-b8ac31982e9a","updated":"2022-01-01 10:00:00.456"}`
if string(encoded) != expected {
t.Fatalf("Expected %v, got \n%v", expected, string(encoded))
@@ -185,10 +185,10 @@ func TestNewRecordsFromNullStringMaps(t *testing.T) {
t.Fatal(err)
}
expected := `[{"@collectionId":"","@collectionName":"test","created":"2022-01-01 10:00:00.123","field1":"test1","field2":null,"id":"11111111-d07e-4fbe-86b3-b8ac31982e9a","updated":"2022-01-01 10:00:00.456"},{"@collectionId":"","@collectionName":"test","created":"","field1":"test2","field2":123,"id":"22222222-d07e-4fbe-86b3-b8ac31982e9a","updated":""}]`
expected := `[{"@collectionId":"","@collectionName":"test","created":"2022-01-01 10:00:00.123","field1":"test1","field2":0,"id":"11111111-d07e-4fbe-86b3-b8ac31982e9a","updated":"2022-01-01 10:00:00.456"},{"@collectionId":"","@collectionName":"test","created":"","field1":"test2","field2":123,"id":"22222222-d07e-4fbe-86b3-b8ac31982e9a","updated":""}]`
if string(encoded) != expected {
t.Fatalf("Expected %v, got \n%v", expected, string(encoded))
t.Fatalf("Expected \n%v, got \n%v", expected, string(encoded))
}
}
+13 -25
View File
@@ -218,31 +218,19 @@ func (f *SchemaField) PrepareValue(value any) any {
f.InitOptions()
switch f.Type {
case FieldTypeText, FieldTypeEmail, FieldTypeUrl: // string
if value == nil {
return nil
}
case FieldTypeText, FieldTypeEmail, FieldTypeUrl:
return cast.ToString(value)
case FieldTypeJson: // string
if value == nil {
return nil
}
case FieldTypeJson:
val, _ := types.ParseJsonRaw(value)
return val
case FieldTypeNumber: // nil, int or float
if value == nil {
return nil
}
case FieldTypeNumber:
return cast.ToFloat64(value)
case FieldTypeBool: // bool
case FieldTypeBool:
return cast.ToBool(value)
case FieldTypeDate: // string, DateTime or time.Time
if value == nil {
return nil
}
case FieldTypeDate:
val, _ := types.ParseDateTime(value)
return val
case FieldTypeSelect: // nil, string or slice of strings
case FieldTypeSelect:
val := list.ToUniqueStringSlice(value)
options, _ := f.Options.(*SelectOptions)
@@ -250,11 +238,11 @@ func (f *SchemaField) PrepareValue(value any) any {
if len(val) > 0 {
return val[0]
}
return nil
return ""
}
return val
case FieldTypeFile: // nil, string or slice of strings
case FieldTypeFile:
val := list.ToUniqueStringSlice(value)
options, _ := f.Options.(*FileOptions)
@@ -262,11 +250,11 @@ func (f *SchemaField) PrepareValue(value any) any {
if len(val) > 0 {
return val[0]
}
return nil
return ""
}
return val
case FieldTypeRelation: // nil, string or slice of strings
case FieldTypeRelation:
ids := list.ToUniqueStringSlice(value)
options, _ := f.Options.(*RelationOptions)
@@ -274,11 +262,11 @@ func (f *SchemaField) PrepareValue(value any) any {
if len(ids) > 0 {
return ids[0]
}
return nil
return ""
}
return ids
case FieldTypeUser: // nil, string or slice of strings
case FieldTypeUser:
ids := list.ToUniqueStringSlice(value)
options, _ := f.Options.(*UserOptions)
@@ -286,7 +274,7 @@ func (f *SchemaField) PrepareValue(value any) any {
if len(ids) > 0 {
return ids[0]
}
return nil
return ""
}
return ids
+20 -13
View File
@@ -498,19 +498,22 @@ func TestSchemaFieldPrepareValue(t *testing.T) {
{schema.SchemaField{Type: "unknown"}, []int{1, 2, 1}, "[1,2,1]"},
// text
{schema.SchemaField{Type: schema.FieldTypeText}, nil, `null`},
{schema.SchemaField{Type: schema.FieldTypeText}, nil, `""`},
{schema.SchemaField{Type: schema.FieldTypeText}, "", `""`},
{schema.SchemaField{Type: schema.FieldTypeText}, []int{1, 2}, `""`},
{schema.SchemaField{Type: schema.FieldTypeText}, "test", `"test"`},
{schema.SchemaField{Type: schema.FieldTypeText}, 123, `"123"`},
// email
{schema.SchemaField{Type: schema.FieldTypeEmail}, nil, `null`},
{schema.SchemaField{Type: schema.FieldTypeEmail}, nil, `""`},
{schema.SchemaField{Type: schema.FieldTypeEmail}, "", `""`},
{schema.SchemaField{Type: schema.FieldTypeEmail}, []int{1, 2}, `""`},
{schema.SchemaField{Type: schema.FieldTypeEmail}, "test", `"test"`},
{schema.SchemaField{Type: schema.FieldTypeEmail}, 123, `"123"`},
// url
{schema.SchemaField{Type: schema.FieldTypeUrl}, nil, `null`},
{schema.SchemaField{Type: schema.FieldTypeUrl}, nil, `""`},
{schema.SchemaField{Type: schema.FieldTypeUrl}, "", `""`},
{schema.SchemaField{Type: schema.FieldTypeUrl}, []int{1, 2}, `""`},
{schema.SchemaField{Type: schema.FieldTypeUrl}, "test", `"test"`},
{schema.SchemaField{Type: schema.FieldTypeUrl}, 123, `"123"`},
@@ -523,7 +526,9 @@ func TestSchemaFieldPrepareValue(t *testing.T) {
{schema.SchemaField{Type: schema.FieldTypeJson}, []int{1, 2, 1}, `[1,2,1]`},
// number
{schema.SchemaField{Type: schema.FieldTypeNumber}, nil, "null"},
{schema.SchemaField{Type: schema.FieldTypeNumber}, nil, "0"},
{schema.SchemaField{Type: schema.FieldTypeNumber}, "", "0"},
{schema.SchemaField{Type: schema.FieldTypeNumber}, "test", "0"},
{schema.SchemaField{Type: schema.FieldTypeNumber}, 1, "1"},
{schema.SchemaField{Type: schema.FieldTypeNumber}, 1.5, "1.5"},
{schema.SchemaField{Type: schema.FieldTypeNumber}, "1.5", "1.5"},
@@ -533,22 +538,24 @@ func TestSchemaFieldPrepareValue(t *testing.T) {
{schema.SchemaField{Type: schema.FieldTypeBool}, 1, "true"},
{schema.SchemaField{Type: schema.FieldTypeBool}, 0, "false"},
{schema.SchemaField{Type: schema.FieldTypeBool}, "", "false"},
{schema.SchemaField{Type: schema.FieldTypeBool}, "test", "false"},
{schema.SchemaField{Type: schema.FieldTypeBool}, "false", "false"},
{schema.SchemaField{Type: schema.FieldTypeBool}, "true", "true"},
{schema.SchemaField{Type: schema.FieldTypeBool}, false, "false"},
{schema.SchemaField{Type: schema.FieldTypeBool}, true, "true"},
// date
{schema.SchemaField{Type: schema.FieldTypeDate}, nil, "null"},
{schema.SchemaField{Type: schema.FieldTypeDate}, nil, `""`},
{schema.SchemaField{Type: schema.FieldTypeDate}, "", `""`},
{schema.SchemaField{Type: schema.FieldTypeDate}, "test", `""`},
{schema.SchemaField{Type: schema.FieldTypeDate}, 1641024040, `"2022-01-01 08:00:40.000"`},
{schema.SchemaField{Type: schema.FieldTypeDate}, "2022-01-01 11:27:10.123", `"2022-01-01 11:27:10.123"`},
{schema.SchemaField{Type: schema.FieldTypeDate}, types.DateTime{}, `""`},
{schema.SchemaField{Type: schema.FieldTypeDate}, time.Time{}, `""`},
// select (single)
{schema.SchemaField{Type: schema.FieldTypeSelect}, nil, `null`},
{schema.SchemaField{Type: schema.FieldTypeSelect}, "", `null`},
{schema.SchemaField{Type: schema.FieldTypeSelect}, nil, `""`},
{schema.SchemaField{Type: schema.FieldTypeSelect}, "", `""`},
{schema.SchemaField{Type: schema.FieldTypeSelect}, 123, `"123"`},
{schema.SchemaField{Type: schema.FieldTypeSelect}, "test", `"test"`},
{schema.SchemaField{Type: schema.FieldTypeSelect}, []string{"test1", "test2"}, `"test1"`},
@@ -624,8 +631,8 @@ func TestSchemaFieldPrepareValue(t *testing.T) {
},
// file (single)
{schema.SchemaField{Type: schema.FieldTypeFile}, nil, `null`},
{schema.SchemaField{Type: schema.FieldTypeFile}, "", `null`},
{schema.SchemaField{Type: schema.FieldTypeFile}, nil, `""`},
{schema.SchemaField{Type: schema.FieldTypeFile}, "", `""`},
{schema.SchemaField{Type: schema.FieldTypeFile}, 123, `"123"`},
{schema.SchemaField{Type: schema.FieldTypeFile}, "test", `"test"`},
{schema.SchemaField{Type: schema.FieldTypeFile}, []string{"test1", "test2"}, `"test1"`},
@@ -690,8 +697,8 @@ func TestSchemaFieldPrepareValue(t *testing.T) {
},
// relation (single)
{schema.SchemaField{Type: schema.FieldTypeRelation}, nil, `null`},
{schema.SchemaField{Type: schema.FieldTypeRelation}, "", `null`},
{schema.SchemaField{Type: schema.FieldTypeRelation}, nil, `""`},
{schema.SchemaField{Type: schema.FieldTypeRelation}, "", `""`},
{schema.SchemaField{Type: schema.FieldTypeRelation}, 123, `"123"`},
{schema.SchemaField{Type: schema.FieldTypeRelation}, "abc", `"abc"`},
{schema.SchemaField{Type: schema.FieldTypeRelation}, "1ba88b4f-e9da-42f0-9764-9a55c953e724", `"1ba88b4f-e9da-42f0-9764-9a55c953e724"`},
@@ -761,8 +768,8 @@ func TestSchemaFieldPrepareValue(t *testing.T) {
},
// user (single)
{schema.SchemaField{Type: schema.FieldTypeUser}, nil, `null`},
{schema.SchemaField{Type: schema.FieldTypeUser}, "", `null`},
{schema.SchemaField{Type: schema.FieldTypeUser}, nil, `""`},
{schema.SchemaField{Type: schema.FieldTypeUser}, "", `""`},
{schema.SchemaField{Type: schema.FieldTypeUser}, 123, `"123"`},
{schema.SchemaField{Type: schema.FieldTypeUser}, "1ba88b4f-e9da-42f0-9764-9a55c953e724", `"1ba88b4f-e9da-42f0-9764-9a55c953e724"`},
{
+2 -2
View File
@@ -9,10 +9,10 @@ import (
var _ Model = (*User)(nil)
const (
// The name of the system user profiles collection.
// ProfileCollectionName is the name of the system user profiles collection.
ProfileCollectionName = "profiles"
// The name of the user field from the system user profiles collection.
// ProfileCollectionUserFieldName is the name of the user field from the system user profiles collection.
ProfileCollectionUserFieldName = "userId"
)
+7 -6
View File
@@ -73,11 +73,16 @@ func New() *PocketBase {
pb := &PocketBase{
RootCmd: &cobra.Command{
Use: "pocketbase",
Short: "PocketBase CLI",
Use: "pocketbase",
Short: "PocketBase CLI",
Version: Version,
FParseErrWhitelist: cobra.FParseErrWhitelist{
UnknownFlags: true,
},
// no need to provide the default cobra completion command
CompletionOptions: cobra.CompletionOptions{
DisableDefaultCmd: true,
},
},
defaultDebug: withGoRun,
defaultDataDir: defaultDir,
@@ -85,9 +90,6 @@ func New() *PocketBase {
showStartBanner: true,
}
// no need to provide the default cobra completion command
pb.RootCmd.CompletionOptions.DisableDefaultCmd = true
// parse base flags
// (errors are ignored, since the full flags parsing happens on Execute())
pb.eagerParseFlags()
@@ -130,7 +132,6 @@ func (pb *PocketBase) ShowStartBanner(val bool) *PocketBase {
func (pb *PocketBase) Start() error {
// register system commands
pb.RootCmd.AddCommand(cmd.NewServeCommand(pb, pb.showStartBanner))
pb.RootCmd.AddCommand(cmd.NewVersionCommand(pb, Version))
pb.RootCmd.AddCommand(cmd.NewMigrateCommand(pb))
return pb.Execute()
+1 -1
View File
@@ -168,7 +168,7 @@ func (r *RecordFieldResolver) Resolve(fieldName string) (resultName string, plac
return "", nil, fmt.Errorf("Failed to find field %q collection.", prop)
}
newCollectionName := relCollection.Name
newTableAlias := (currentTableAlias + "_" + field.Name)
newTableAlias := currentTableAlias + "_" + field.Name
r.addJoin(
newCollectionName,
+28 -8
View File
@@ -22,11 +22,20 @@ type ApiScenario struct {
Url string
Body io.Reader
RequestHeaders map[string]string
// Delay adds a delay before checking the expectations usually
// to ensure that all fired non-awaited go routines have finished
Delay time.Duration
// expectations
ExpectedStatus int
ExpectedContent []string
ExpectedEvents map[string]int
// test events
// ---
ExpectedStatus int
ExpectedContent []string
NotExpectedContent []string
ExpectedEvents map[string]int
// test hooks
// ---
BeforeFunc func(t *testing.T, app *TestApp, e *echo.Echo)
AfterFunc func(t *testing.T, app *TestApp, e *echo.Echo)
}
@@ -48,7 +57,7 @@ func (scenario *ApiScenario) Test(t *testing.T) {
recorder := httptest.NewRecorder()
req := httptest.NewRequest(scenario.Method, scenario.Url, scenario.Body)
// add middeware to timeout long running requests (eg. keep-alive routes)
// add middleware to timeout long-running requests (eg. keep-alive routes)
e.Pre(func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
ctx, cancelFunc := context.WithTimeout(c.Request().Context(), 100*time.Millisecond)
@@ -80,9 +89,13 @@ func (scenario *ApiScenario) Test(t *testing.T) {
t.Errorf("[%s] Expected status code %d, got %d", prefix, scenario.ExpectedStatus, res.StatusCode)
}
if len(scenario.ExpectedContent) == 0 {
if scenario.Delay > 0 {
time.Sleep(scenario.Delay)
}
if len(scenario.ExpectedContent) == 0 && len(scenario.NotExpectedContent) == 0 {
if len(recorder.Body.Bytes()) != 0 {
t.Errorf("[%s] Expected empty body, got %v", prefix, recorder.Body.String())
t.Errorf("[%s] Expected empty body, got \n%v", prefix, recorder.Body.String())
}
} else {
// normalize json response format
@@ -98,7 +111,14 @@ func (scenario *ApiScenario) Test(t *testing.T) {
for _, item := range scenario.ExpectedContent {
if !strings.Contains(normalizedBody, item) {
t.Errorf("[%s] Cannot find %v in response body %v", prefix, item, normalizedBody)
t.Errorf("[%s] Cannot find %v in response body \n%v", prefix, item, normalizedBody)
break
}
}
for _, item := range scenario.NotExpectedContent {
if strings.Contains(normalizedBody, item) {
t.Errorf("[%s] Didn't expect %v in response body \n%v", prefix, item, normalizedBody)
break
}
}
Binary file not shown.
+11
View File
@@ -3,6 +3,7 @@ package auth
import (
"context"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
@@ -120,6 +121,16 @@ func (p *baseProvider) FetchRawUserData(token *oauth2.Token, result any) error {
return err
}
// http.Client.Get doesn't treat non 2xx responses as error
if response.StatusCode >= 400 {
return fmt.Errorf(
"Failed to fetch OAuth2 user profile via %s (%d):\n%s",
p.userApiUrl,
response.StatusCode,
string(content),
)
}
return json.Unmarshal(content, &result)
}
+6 -4
View File
@@ -35,15 +35,17 @@ func NewS3(
endpoint string,
accessKey string,
secretKey string,
s3ForcePathStyle bool,
) (*System, error) {
ctx := context.Background() // default context
cred := credentials.NewStaticCredentials(accessKey, secretKey, "")
sess, err := session.NewSession(&aws.Config{
Region: aws.String(region),
Endpoint: aws.String(endpoint),
Credentials: cred,
Region: aws.String(region),
Endpoint: aws.String(endpoint),
Credentials: cred,
S3ForcePathStyle: aws.Bool(s3ForcePathStyle),
})
if err != nil {
return nil, err
@@ -153,7 +155,7 @@ func (s *System) DeletePrefix(prefix string) []error {
// (this operation usually is optional and there is no need to strictly check the result)
// ---
// fill dirs slice
dirs := []string{}
dirs := make([]string, 0, len(dirsMap))
for d := range dirsMap {
dirs = append(dirs, d)
}
+5 -2
View File
@@ -44,8 +44,11 @@ func (h *Hook[T]) Reset() {
// - any non-nil error is returned in one of the handlers
func (h *Hook[T]) Trigger(data T, oneOffHandlers ...Handler[T]) error {
h.mux.Lock()
handlers := append(h.handlers, oneOffHandlers...)
h.mux.Unlock() // unlock is not deferred to avoid deadlocks when Trigger is called recursive in the handlers
handlers := make([]Handler[T], 0, len(h.handlers)+len(oneOffHandlers))
handlers = append(handlers, h.handlers...)
handlers = append(handlers, oneOffHandlers...)
// unlock is not deferred to avoid deadlocks when Trigger is called recursive by the handlers
h.mux.Unlock()
for _, fn := range handlers {
err := fn(data)
+4 -37
View File
@@ -8,7 +8,6 @@ import (
var columnifyRemoveRegex = regexp.MustCompile(`[^\w\.\*\-\_\@\#]+`)
var snakecaseSplitRegex = regexp.MustCompile(`[\W_]+`)
var usernamifySplitRegex = regexp.MustCompile(`\W+`)
// UcFirst converts the first character of a string into uppercase.
func UcFirst(str string) string {
@@ -33,15 +32,14 @@ func Sentenize(str string) string {
return ""
}
s := []rune(str)
sentence := string(unicode.ToUpper(s[0])) + string(s[1:])
str = UcFirst(str)
lastChar := string(s[len(s)-1:])
lastChar := str[len(str)-1:]
if lastChar != "." && lastChar != "?" && lastChar != "!" {
return sentence + "."
return str + "."
}
return sentence
return str
}
// Sanitize sanitizes `str` by removing all characters satisfying `removePattern`.
@@ -85,34 +83,3 @@ func Snakecase(str string) string {
return strings.ToLower(result.String())
}
// Usernamify generates a properly formatted username from the provided string.
// Returns "unknown" if `str` is empty or contains only non word characters.
//
// ```go
// Usernamify("John Doe, hello") // "john.doe.hello"
// ```
func Usernamify(str string) string {
// split at any non word character
words := usernamifySplitRegex.Split(strings.ToLower(str), -1)
// concatenate any non empty word with a dot
var result strings.Builder
for _, word := range words {
if word == "" {
continue
}
if result.Len() > 0 {
result.WriteString(".")
}
result.WriteString(word)
}
if result.Len() == 0 {
return "unknown"
}
return result.String()
}
+4 -23
View File
@@ -12,6 +12,7 @@ func TestUcFirst(t *testing.T) {
expected string
}{
{"", ""},
{" ", " "},
{"Test", "Test"},
{"test", "Test"},
{"test test2", "Test test2"},
@@ -55,6 +56,9 @@ func TestSentenize(t *testing.T) {
}{
{"", ""},
{" ", ""},
{".", "."},
{"?", "?"},
{"!", "!"},
{"Test", "Test."},
{" test ", "Test."},
{"hello world", "Hello world."},
@@ -128,26 +132,3 @@ func TestSnakecase(t *testing.T) {
}
}
}
func TestUsernamify(t *testing.T) {
scenarios := []struct {
val string
expected string
}{
{"", "unknown"},
{" ", "unknown"},
{"!@#$%^", "unknown"},
{"...", "unknown"},
{"_", "_"}, // underscore is valid word character
{"John Doe", "john.doe"},
{"John_Doe", "john_doe"},
{".a!b@c#d$e%123. ", "a.b.c.d.e.123"},
{"Hello, world", "hello.world"},
}
for i, scenario := range scenarios {
if result := inflector.Usernamify(scenario.val); result != scenario.expected {
t.Errorf("(%d) Expected %q, got %q", i, scenario.expected, result)
}
}
}
+29 -28
View File
@@ -38,21 +38,23 @@ func ExistInSliceWithRegex(str string, list []string) bool {
if str == field {
return true
}
} else {
// check for regex match
pattern, ok := cachedPatterns[field]
if !ok {
var patternErr error
pattern, patternErr = regexp.Compile(field)
if patternErr != nil {
continue
}
// "cache" the pattern to avoid compiling it every time
cachedPatterns[field] = pattern
}
if pattern != nil && pattern.MatchString(str) {
return true
continue
}
// check for regex match
pattern, ok := cachedPatterns[field]
if !ok {
var err error
pattern, err = regexp.Compile(field)
if err != nil {
continue
}
// "cache" the pattern to avoid compiling it every time
cachedPatterns[field] = pattern
}
if pattern != nil && pattern.MatchString(str) {
return true
}
}
@@ -72,46 +74,45 @@ func ToInterfaceSlice[T any](list []T) []any {
// NonzeroUniques returns only the nonzero unique values from a slice.
func NonzeroUniques[T comparable](list []T) []T {
result := []T{}
existMap := map[T]bool{}
result := make([]T, 0, len(list))
existMap := make(map[T]struct{}, len(list))
var zeroVal T
for _, val := range list {
if !existMap[val] && val != zeroVal {
existMap[val] = true
result = append(result, val)
if _, ok := existMap[val]; ok || val == zeroVal {
continue
}
existMap[val] = struct{}{}
result = append(result, val)
}
return result
}
// ToUniqueStringSlice casts `value` to a slice of non-zero unique strings.
func ToUniqueStringSlice(value any) []string {
strings := []string{}
func ToUniqueStringSlice(value any) (result []string) {
switch val := value.(type) {
case nil:
// nothing to cast
case []string:
strings = val
result = val
case string:
if val == "" {
break
}
// check if it is a json encoded array of strings
if err := json.Unmarshal([]byte(val), &strings); err != nil {
if err := json.Unmarshal([]byte(val), &result); err != nil {
// not a json array, just add the string as single array element
strings = append(strings, val)
result = append(result, val)
}
case json.Marshaler: // eg. JsonArray
raw, _ := val.MarshalJSON()
json.Unmarshal(raw, &strings)
_ = json.Unmarshal(raw, &result)
default:
strings = cast.ToStringSlice(value)
result = cast.ToStringSlice(value)
}
return NonzeroUniques(strings)
return NonzeroUniques(result)
}
+4 -6
View File
@@ -194,11 +194,9 @@ func (r *Runner) Up() ([]string, error) {
//
// On success returns list with the reverted migrations file names.
func (r *Runner) Down(toRevertCount int) ([]string, error) {
applied := []string{}
reverted := make([]string, 0, toRevertCount)
err := r.db.Transactional(func(tx *dbx.Tx) error {
totalReverted := 0
for i := len(r.migrationsList.Items()) - 1; i >= 0; i-- {
m := r.migrationsList.Item(i)
@@ -208,7 +206,7 @@ func (r *Runner) Down(toRevertCount int) ([]string, error) {
}
// revert limit reached
if toRevertCount-totalReverted <= 0 {
if toRevertCount-len(reverted) <= 0 {
break
}
@@ -220,7 +218,7 @@ func (r *Runner) Down(toRevertCount int) ([]string, error) {
return fmt.Errorf("Failed to save reverted migration info for %s: %w", m.file, err)
}
applied = append(applied, m.file)
reverted = append(reverted, m.file)
}
return nil
@@ -229,7 +227,7 @@ func (r *Runner) Down(toRevertCount int) ([]string, error) {
if err != nil {
return nil, err
}
return applied, nil
return reverted, nil
}
func (r *Runner) createMigrationsTable() error {
+8 -3
View File
@@ -104,7 +104,8 @@ func TestRunnerUpAndDown(t *testing.T) {
// Down()
// ---
if _, err := r.Down(2); err != nil {
// revert one migration
if _, err := r.Down(1); err != nil {
t.Fatal(err)
}
@@ -112,8 +113,12 @@ func TestRunnerUpAndDown(t *testing.T) {
t.Fatal("Didn't expect 3_test to be reverted.")
}
if !test1DownCalled || !test2DownCalled {
t.Fatalf("Expected 1_test and 2_test to be reverted, got %v and %v", test1DownCalled, test2DownCalled)
if !test2DownCalled {
t.Fatal("Expected 2_test to be reverted.")
}
if test1DownCalled {
t.Fatal("Didn't expect 1_test to be reverted.")
}
}
+27 -52
View File
@@ -27,21 +27,16 @@ var parsedFilterData = store.New(make(map[string][]fexpr.ExprGroup, 50))
// BuildExpr parses the current filter data and returns a new db WHERE expression.
func (f FilterData) BuildExpr(fieldResolver FieldResolver) (dbx.Expression, error) {
raw := string(f)
var data []fexpr.ExprGroup
if parsedFilterData.Has(raw) {
data = parsedFilterData.Get(raw)
} else {
var err error
data, err = fexpr.Parse(raw)
if err != nil {
return nil, err
}
// store in cache
// (the limit size is arbitrary and it is there to prevent the cache growing too big)
parsedFilterData.SetIfLessThanLimit(raw, data, 500)
return f.build(parsedFilterData.Get(raw), fieldResolver)
}
data, err := fexpr.Parse(raw)
if err != nil {
return nil, err
}
// store in cache
// (the limit size is arbitrary and it is there to prevent the cache growing too big)
parsedFilterData.SetIfLessThanLimit(raw, data, 500)
return f.build(data, fieldResolver)
}
@@ -94,30 +89,18 @@ func (f FilterData) resolveTokenizedExpr(expr fexpr.Expr, fieldResolver FieldRes
// merge both operands parameters (if any)
params := dbx.Params{}
if len(lParams) > 0 {
for k, v := range lParams {
params[k] = v
}
for k, v := range lParams {
params[k] = v
}
if len(rParams) > 0 {
for k, v := range rParams {
params[k] = v
}
for k, v := range rParams {
params[k] = v
}
switch expr.Op {
case fexpr.SignEq:
op := "="
if strings.ToLower(lName) == "null" || strings.ToLower(rName) == "null" {
op = "IS"
}
return dbx.NewExp(fmt.Sprintf("%s %s %s", lName, op, rName), params), nil
return dbx.NewExp(fmt.Sprintf("COALESCE(%s, '') = COALESCE(%s, '')", lName, rName), params), nil
case fexpr.SignNeq:
op := "!="
if strings.ToLower(lName) == "null" || strings.ToLower(rName) == "null" {
op = "IS NOT"
}
return dbx.NewExp(fmt.Sprintf("%s %s %s", lName, op, rName), params), nil
return dbx.NewExp(fmt.Sprintf("COALESCE(%s, '') != COALESCE(%s, '')", lName, rName), params), nil
case fexpr.SignLike:
// normalize operands and switch sides if the left operand is a number or text
if len(lParams) > 0 {
@@ -144,35 +127,31 @@ func (f FilterData) resolveTokenizedExpr(expr fexpr.Expr, fieldResolver FieldRes
}
func (f FilterData) resolveToken(token fexpr.Token, fieldResolver FieldResolver) (name string, params dbx.Params, err error) {
if token.Type == fexpr.TokenIdentifier {
switch token.Type {
case fexpr.TokenIdentifier:
name, params, err := fieldResolver.Resolve(token.Literal)
if name == "" || err != nil {
// if `null` field is missing, treat `null` identifier as NULL token
if strings.ToLower(token.Literal) == "null" {
return "NULL", nil, nil
m := map[string]string{
// if `null` field is missing, treat `null` identifier as NULL token
"null": "NULL",
// if `true` field is missing, treat `true` identifier as TRUE token
"true": "1",
// if `false` field is missing, treat `false` identifier as FALSE token
"false": "0",
}
// if `true` field is missing, treat `true` identifier as TRUE token
if strings.ToLower(token.Literal) == "true" {
return "1", nil, nil
if v, ok := m[strings.ToLower(token.Literal)]; ok {
return v, nil, nil
}
// if `false` field is missing, treat `false` identifier as FALSE token
if strings.ToLower(token.Literal) == "false" {
return "0", nil, nil
}
return "", nil, err
}
return name, params, err
}
if token.Type == fexpr.TokenNumber || token.Type == fexpr.TokenText {
case fexpr.TokenNumber, fexpr.TokenText:
placeholder := "t" + security.RandomString(7)
name := fmt.Sprintf("{:%s}", placeholder)
params := dbx.Params{placeholder: token.Literal}
return name, params, nil
}
@@ -182,10 +161,6 @@ func (f FilterData) resolveToken(token fexpr.Token, fieldResolver FieldResolver)
func (f FilterData) normalizeLikeParams(params dbx.Params) dbx.Params {
result := dbx.Params{}
if len(params) == 0 {
return result
}
for k, v := range params {
vStr := cast.ToString(v)
if !strings.Contains(vStr, "%") {
+5 -5
View File
@@ -39,25 +39,25 @@ func TestFilterDataBuildExpr(t *testing.T) {
"^" +
regexp.QuoteMeta("((([[test1]] > {:") +
".+" +
regexp.QuoteMeta("}) OR ([[test2]] != {:") +
regexp.QuoteMeta("}) OR (COALESCE([[test2]], '') != COALESCE({:") +
".+" +
regexp.QuoteMeta("})) AND ([[test3]] LIKE {:") +
regexp.QuoteMeta("}, ''))) AND ([[test3]] LIKE {:") +
".+" +
regexp.QuoteMeta("})) AND ([[test4.sub]] IS NULL)") +
regexp.QuoteMeta("})) AND (COALESCE([[test4.sub]], '') = COALESCE(NULL, ''))") +
"$",
},
// combination of special literals (null, true, false)
{
"test1=true && test2 != false && test3 = null || test4.sub != null",
false,
"^" + regexp.QuoteMeta("((([[test1]] = 1) AND ([[test2]] != 0)) AND ([[test3]] IS NULL)) OR ([[test4.sub]] IS NOT NULL)") + "$",
"^" + regexp.QuoteMeta("(((COALESCE([[test1]], '') = COALESCE(1, '')) AND (COALESCE([[test2]], '') != COALESCE(0, ''))) AND (COALESCE([[test3]], '') = COALESCE(NULL, ''))) OR (COALESCE([[test4.sub]], '') != COALESCE(NULL, ''))") + "$",
},
// all operators
{
"(test1 = test2 || test2 != test3) && (test2 ~ 'example' || test2 !~ '%%abc') && 'switch1%%' ~ test1 && 'switch2' !~ test2 && test3 > 1 && test3 >= 0 && test3 <= 4 && 2 < 5",
false,
"^" +
regexp.QuoteMeta("(((((((([[test1]] = [[test2]]) OR ([[test2]] != [[test3]])) AND (([[test2]] LIKE {:") +
regexp.QuoteMeta("((((((((COALESCE([[test1]], '') = COALESCE([[test2]], '')) OR (COALESCE([[test2]], '') != COALESCE([[test3]], ''))) AND (([[test2]] LIKE {:") +
".+" +
regexp.QuoteMeta("}) OR ([[test2]] NOT LIKE {:") +
".+" +
+20 -29
View File
@@ -121,8 +121,7 @@ func (s *Provider) Parse(urlQuery string) error {
return err
}
rawPage := params.Get(PageQueryParam)
if rawPage != "" {
if rawPage := params.Get(PageQueryParam); rawPage != "" {
page, err := strconv.Atoi(rawPage)
if err != nil {
return err
@@ -130,8 +129,7 @@ func (s *Provider) Parse(urlQuery string) error {
s.Page(page)
}
rawPerPage := params.Get(PerPageQueryParam)
if rawPerPage != "" {
if rawPerPage := params.Get(PerPageQueryParam); rawPerPage != "" {
perPage, err := strconv.Atoi(rawPerPage)
if err != nil {
return err
@@ -139,15 +137,13 @@ func (s *Provider) Parse(urlQuery string) error {
s.PerPage(perPage)
}
rawSort := params.Get(SortQueryParam)
if rawSort != "" {
if rawSort := params.Get(SortQueryParam); rawSort != "" {
for _, sortField := range ParseSortFromString(rawSort) {
s.AddSort(sortField)
}
}
rawFilter := params.Get(FilterQueryParam)
if rawFilter != "" {
if rawFilter := params.Get(FilterQueryParam); rawFilter != "" {
s.AddFilter(FilterData(rawFilter))
}
@@ -165,35 +161,30 @@ func (s *Provider) Exec(items any) (*Result, error) {
modelsQuery := *s.query
// apply filters
if len(s.filter) > 0 {
for _, f := range s.filter {
expr, err := f.BuildExpr(s.fieldResolver)
if err != nil {
return nil, err
}
if expr != nil {
modelsQuery.AndWhere(expr)
}
for _, f := range s.filter {
expr, err := f.BuildExpr(s.fieldResolver)
if err != nil {
return nil, err
}
if expr != nil {
modelsQuery.AndWhere(expr)
}
}
// apply sorting
if len(s.sort) > 0 {
for _, sortField := range s.sort {
expr, err := sortField.BuildExpr(s.fieldResolver)
if err != nil {
return nil, err
}
if expr != "" {
modelsQuery.AndOrderBy(expr)
}
for _, sortField := range s.sort {
expr, err := sortField.BuildExpr(s.fieldResolver)
if err != nil {
return nil, err
}
if expr != "" {
modelsQuery.AndOrderBy(expr)
}
}
// apply field resolver query modifications (if any)
updateQueryErr := s.fieldResolver.UpdateQuery(&modelsQuery)
if updateQueryErr != nil {
return nil, updateQueryErr
if err := s.fieldResolver.UpdateQuery(&modelsQuery); err != nil {
return nil, err
}
// count
+5 -5
View File
@@ -273,8 +273,8 @@ func TestProviderExecNonEmptyQuery(t *testing.T) {
false,
`{"page":1,"perPage":` + fmt.Sprint(MaxPerPage) + `,"totalItems":1,"items":[{"test1":2,"test2":"test2.2","test3":""}]}`,
[]string{
"SELECT count(*) FROM `test` WHERE ((NOT (`test1` IS NULL)) AND (test2 IS NOT null)) AND (test1 >= '2') ORDER BY `test1` ASC, `test2` DESC",
"SELECT * FROM `test` WHERE ((NOT (`test1` IS NULL)) AND (test2 IS NOT null)) AND (test1 >= '2') ORDER BY `test1` ASC, `test2` DESC LIMIT 200",
"SELECT count(*) FROM `test` WHERE ((NOT (`test1` IS NULL)) AND (COALESCE(test2, '') != COALESCE(null, ''))) AND (test1 >= '2') ORDER BY `test1` ASC, `test2` DESC",
"SELECT * FROM `test` WHERE ((NOT (`test1` IS NULL)) AND (COALESCE(test2, '') != COALESCE(null, ''))) AND (test1 >= '2') ORDER BY `test1` ASC, `test2` DESC LIMIT 200",
},
},
// valid sort and filter fields (zero results)
@@ -286,8 +286,8 @@ func TestProviderExecNonEmptyQuery(t *testing.T) {
false,
`{"page":1,"perPage":10,"totalItems":0,"items":[]}`,
[]string{
"SELECT count(*) FROM `test` WHERE (NOT (`test1` IS NULL)) AND (test3 != '') ORDER BY `test1` ASC, `test3` ASC",
"SELECT * FROM `test` WHERE (NOT (`test1` IS NULL)) AND (test3 != '') ORDER BY `test1` ASC, `test3` ASC LIMIT 10",
"SELECT count(*) FROM `test` WHERE (NOT (`test1` IS NULL)) AND (COALESCE(test3, '') != COALESCE('', '')) ORDER BY `test1` ASC, `test3` ASC",
"SELECT * FROM `test` WHERE (NOT (`test1` IS NULL)) AND (COALESCE(test3, '') != COALESCE('', '')) ORDER BY `test1` ASC, `test3` ASC LIMIT 10",
},
},
// pagination test
@@ -344,7 +344,7 @@ func TestProviderExecNonEmptyQuery(t *testing.T) {
for _, q := range testDB.CalledQueries {
if !list.ExistInSliceWithRegex(q, s.expectQueries) {
t.Errorf("(%d) Didn't expect query %v", i, q)
t.Errorf("(%d) Didn't expect query \n%v", i, q)
}
}
}
+4 -12
View File
@@ -34,26 +34,18 @@ func (s *SortField) BuildExpr(fieldResolver FieldResolver) (string, error) {
//
// Example:
// fields := search.ParseSortFromString("-name,+created")
func ParseSortFromString(str string) []SortField {
result := []SortField{}
func ParseSortFromString(str string) (fields []SortField) {
data := strings.Split(str, ",")
for _, field := range data {
// trim whitespaces
field = strings.TrimSpace(field)
var dir string
if strings.HasPrefix(field, "-") {
dir = SortDesc
field = strings.TrimPrefix(field, "-")
fields = append(fields, SortField{strings.TrimPrefix(field, "-"), SortDesc})
} else {
dir = SortAsc
field = strings.TrimPrefix(field, "+")
fields = append(fields, SortField{strings.TrimPrefix(field, "+"), SortAsc})
}
result = append(result, SortField{field, dir})
}
return result
return
}
+1 -6
View File
@@ -66,10 +66,5 @@ func Decrypt(cipherText string, key string) ([]byte, error) {
}
nonce, cipherByteClean := cipherByte[:nonceSize], cipherByte[nonceSize:]
plainData, err := gcm.Open(nil, nonce, cipherByteClean, nil)
if err != nil {
return nil, err
}
return plainData, nil
return gcm.Open(nil, nonce, cipherByteClean, nil)
}
+3 -7
View File
@@ -24,9 +24,7 @@ func ParseUnverifiedJWT(token string) (jwt.MapClaims, error) {
// ParseJWT verifies and parses JWT token and returns its claims.
func ParseJWT(token string, verificationKey string) (jwt.MapClaims, error) {
parser := &jwt.Parser{
ValidMethods: []string{"HS256"},
}
parser := jwt.NewParser(jwt.WithValidMethods([]string{"HS256"}))
parsedToken, err := parser.Parse(token, func(t *jwt.Token) (any, error) {
return []byte(verificationKey), nil
@@ -50,10 +48,8 @@ func NewToken(payload jwt.MapClaims, signingKey string, secondsDuration int64) (
"exp": time.Now().Add(seconds).Unix(),
}
if len(payload) > 0 {
for k, v := range payload {
claims[k] = v
}
for k, v := range payload {
claims[k] = v
}
return jwt.NewWithClaims(jwt.SigningMethodHS256, claims).SignedString([]byte(signingKey))
+8
View File
@@ -13,6 +13,14 @@ func New[T any](data map[string]T) *Store[T] {
return &Store[T]{data: data}
}
// RemoveAll removes all the existing store entries.
func (s *Store[T]) RemoveAll() {
s.mux.Lock()
defer s.mux.Unlock()
s.data = make(map[string]T)
}
// Remove removes a single entry from the store.
//
// Remove does nothing if key doesn't exist in the store.
+14
View File
@@ -14,6 +14,20 @@ func TestNew(t *testing.T) {
}
}
func TestRemoveAll(t *testing.T) {
s := store.New(map[string]bool{"test1": true, "test2": true})
keys := []string{"test1", "test2"}
s.RemoveAll()
for i, key := range keys {
if s.Has(key) {
t.Errorf("(%d) Expected %q to be removed", i, key)
}
}
}
func TestRemove(t *testing.T) {
s := store.New(map[string]bool{"test": true})
@@ -1,12 +1,12 @@
import{S as Sa,i as va,s as Ca,e as Aa,f as Ma,g as Da,y as xn,o as Oa,G as Ta,H as Ba,I as Ra,P as Pa,J as La,C as kn,K as Ea}from"./index.6f2d3c23.js";class z{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ve.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let i=[];return this.decompose(e,t,i,0),Ve.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Zt(this),r=new Zt(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new Zt(this,e)}iterRange(e,t=this.length){return new zo(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new qo(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?z.empty:e.length<=32?new Q(e):Ve.from(Q.split(e,[]))}}class Q extends z{constructor(e,t=Ia(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new Na(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new Q(hr(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Pi(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new Q(l,o.length+r.length));else{let h=l.length>>1;i.push(new Q(l.slice(0,h)),new Q(l.slice(h)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof Q))return super.replace(e,t,i);let s=Pi(this.text,Pi(i.text,hr(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new Q(s,r):Ve.from(Q.split(s,[]),r)}sliceString(e,t=this.length,i=`
import{S as Sa,i as va,s as Ca,e as Aa,f as Ma,g as Da,y as xn,o as Oa,G as Ta,H as Ba,I as Ra,J as Pa,K as La,C as kn,L as Ea}from"./index.f5b1cef3.js";class z{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ve.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let i=[];return this.decompose(e,t,i,0),Ve.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Zt(this),r=new Zt(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new Zt(this,e)}iterRange(e,t=this.length){return new zo(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new qo(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?z.empty:e.length<=32?new Q(e):Ve.from(Q.split(e,[]))}}class Q extends z{constructor(e,t=Ia(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new Na(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new Q(hr(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Pi(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new Q(l,o.length+r.length));else{let h=l.length>>1;i.push(new Q(l.slice(0,h)),new Q(l.slice(h)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof Q))return super.replace(e,t,i);let s=Pi(this.text,Pi(i.text,hr(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new Q(s,r):Ve.from(Q.split(s,[]),r)}sliceString(e,t=this.length,i=`
`){let s="";for(let r=0,o=0;r<=t&&o<this.text.length;o++){let l=this.text[o],h=r+l.length;r>e&&o&&(s+=i),e<h&&t>r&&(s+=l.slice(Math.max(0,e-r),t-r)),r=h+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],s=-1;for(let r of e)i.push(r),s+=r.length+1,i.length==32&&(t.push(new Q(i,s)),i=[],s=-1);return s>-1&&t.push(new Q(i,s)),t}}class Ve extends z{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.children[r],l=s+o.length,h=i+o.lines-1;if((t?h:l)>=e)return o.lineInner(e,t,i,s);s=l+1,i=h+1}}decompose(e,t,i,s){for(let r=0,o=0;o<=t&&r<this.children.length;r++){let l=this.children[r],h=o+l.length;if(e<=h&&t>=o){let a=s&((o<=e?1:0)|(h>=t?2:0));o>=e&&h<=t&&!a?i.push(l):l.decompose(e-o,t-o,i,a)}o=h+1}}replace(e,t,i){if(i.lines<this.lines)for(let s=0,r=0;s<this.children.length;s++){let o=this.children[s],l=r+o.length;if(e>=r&&t<=l){let h=o.replace(e-r,t-r,i),a=this.lines-o.lines+h.lines;if(h.lines<a>>5-1&&h.lines>a>>5+1){let c=this.children.slice();return c[s]=h,new Ve(c,this.length-(t-e)+i.length)}return super.replace(r,l,h)}r=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=`
`){let s="";for(let r=0,o=0;r<this.children.length&&o<=t;r++){let l=this.children[r],h=o+l.length;o>e&&r&&(s+=i),e<h&&t>o&&(s+=l.sliceString(e-o,t-o,i)),o=h+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Ve))return 0;let i=0,[s,r,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,r+=t){if(s==o||r==l)return i;let h=this.children[s],a=e.children[r];if(h!=a)return i+h.scanIdentical(a,t);i+=h.length+1}}static from(e,t=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let p of e)p.flatten(d);return new Q(d,t)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,l=[],h=0,a=-1,c=[];function f(d){let p;if(d.lines>r&&d instanceof Ve)for(let g of d.children)f(g);else d.lines>o&&(h>o||!h)?(u(),l.push(d)):d instanceof Q&&h&&(p=c[c.length-1])instanceof Q&&d.lines+p.lines<=32?(h+=d.lines,a+=d.length+1,c[c.length-1]=new Q(p.text.concat(d.text),p.length+1+d.length)):(h+d.lines>s&&u(),h+=d.lines,a+=d.length+1,c.push(d))}function u(){h!=0&&(l.push(c.length==1?c[0]:Ve.from(c,a)),a=-1,h=c.length=0)}for(let d of e)f(d);return u(),l.length==1?l[0]:new Ve(l,t)}}z.empty=new Q([""],0);function Ia(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Pi(n,e,t=0,i=1e9){for(let s=0,r=0,o=!0;r<n.length&&s<=i;r++){let l=n[r],h=s+l.length;h>=t&&(h>i&&(l=l.slice(0,i-s)),s<t&&(l=l.slice(t-s)),o?(e[e.length-1]+=l,o=!1):e.push(l)),s=h+1}return e}function hr(n,e,t){return Pi(n,[""],e,t)}class Zt{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof Q?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,l=s instanceof Q?s.text.length:s.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=`
`,this;e--}else if(s instanceof Q){let h=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,h.length>Math.max(0,e))return this.value=e==0?h:t>0?h.slice(e):h.slice(0,h.length-e),this;e-=h.length}else{let h=s.children[o+(t<0?-1:0)];e>h.length?(e-=h.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(h),this.offsets.push(t>0?1:(h instanceof Q?h.text.length:h.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class zo{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new Zt(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class qo{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol!="undefined"&&(z.prototype[Symbol.iterator]=function(){return this.iter()},Zt.prototype[Symbol.iterator]=zo.prototype[Symbol.iterator]=qo.prototype[Symbol.iterator]=function(){return this});class Na{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}}let Dt="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(n=>n?parseInt(n,36):1);for(let n=1;n<Dt.length;n++)Dt[n]+=Dt[n-1];function Va(n){for(let e=1;e<Dt.length;e+=2)if(Dt[e]>n)return Dt[e-1]<=n;return!1}function ar(n){return n>=127462&&n<=127487}const cr=8205;function Ae(n,e,t=!0,i=!0){return(t?Ko:Fa)(n,e,i)}function Ko(n,e,t){if(e==n.length)return e;e&&Uo(n.charCodeAt(e))&&jo(n.charCodeAt(e-1))&&e--;let i=re(n,e);for(e+=ve(i);e<n.length;){let s=re(n,e);if(i==cr||s==cr||t&&Va(s))e+=ve(s),i=s;else if(ar(s)){let r=0,o=e-2;for(;o>=0&&ar(re(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function Fa(n,e,t){for(;e>0;){let i=Ko(n,e-2,t);if(i<e)return i;e--}return 0}function Uo(n){return n>=56320&&n<57344}function jo(n){return n>=55296&&n<56320}function re(n,e){let t=n.charCodeAt(e);if(!jo(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return Uo(i)?(t-55296<<10)+(i-56320)+65536:t}function Rs(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function ve(n){return n<65536?1:2}const Kn=/\r\n?|\n/;var me=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(me||(me={}));class We{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t+1];e+=i<0?this.sections[t]:i}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,i=0,s=0;t<this.sections.length;){let r=this.sections[t++],o=this.sections[t++];o<0?(e(i,s,r),s+=r):s+=o,i+=r}}iterChangedRanges(e,t=!1){Un(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let i=this.sections[t++],s=this.sections[t++];s<0?e.push(i,s) Line truncated
`}get readOnly(){return this.facet(tl)}phrase(e,...t){for(let i of this.facet(V.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,s)=>{if(s=="$")return"$";let r=+(s||1);return!r||r>t.length?i:t[r-1]})),e}languageDataAt(e,t,i=-1){let s=[];for(let r of this.facet(Xo))for(let o of r(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){return Xa(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:s}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-i,l=e-i;for(;o>0;){let h=Ae(t,o,!1);if(r(t.slice(h,o))!=ce.Word)break;o=h}for(;l<s;){let h=Ae(t,l);if(r(t.slice(l,h))!=ce.Word)break;l=h}return o==l?null:m.range(o+i,l+i)}}V.allowMultipleSelections=Yo;V.tabSize=T.define({combine:n=>n.length?n[0]:4});V.lineSeparator=_o;V.readOnly=tl;V.phrases=T.define({compare(n,e){let t=Object.keys(n),i=Object.keys(e);return t.length==i.length&&t.every(s=>n[s]==e[s])}});V.languageData=Xo;V.changeFilter=Qo;V.transactionFilter=Zo;V.transactionExtender=el;_e.reconfigure=H.define();function zt(n,e,t={}){let i={};for(let s of n)for(let r of Object.keys(s)){let o=s[r],l=i[r];if(l===void 0)i[r]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(t,r))i[r]=t[r](l,o);else throw new Error("Config merge conflict for field "+r)}for(let s in e)i[s]===void 0&&(i[s]=e[s]);return i}class pt{eq(e){return this==e}range(e,t=e){return ri.create(e,t,this)}}pt.prototype.startSide=pt.prototype.endSide=0;pt.prototype.point=!1;pt.prototype.mapMode=me.TrackDel;class ri{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new ri(e,t,i)}}function Yn(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}class Es{constructor(e,t,i,s){this.from=e,this.to=t,this.value=i,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,s=0){let r=i?this.to:this.from;for(let o=s,l=r.length;;){if(o==l)return o;let h=o+l>>1,a=r[h]-e||(i?this.value[h].endSide:this.value[h].startSide)-t;if(h==o)return a>=0?o:l;a>=0?l=h:o=h+1}}between(e,t,i,s){for(let r=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,r);r<o;r++)if(s(this.from[r]+e,this.to[r]+e,this.value[r])===!1)return!1}map(e,t){let i=[],s=[],r=[],o=-1,l=-1;for(let h=0;h<this.value.length;h++){let a=this.value[h],c=this.from[h]+e,f=this.to[h]+e,u,d;if(c==f){let p=t.mapPos(c,a.startSide,a.mapMode);if(p==null||(u=d=p,a.startSide!=a.endSide&&(d=t.mapPos(c,a.endSide),d<u)))continue}else if(u=t.mapPos(c,a.startSide),d=t.mapPos(f,a.endSide),u>d||u==d&&a.startSide>0&&a.endSide<=0)continue;(d-u||a.endSide-a.startSide)<0||(o<0&&(o=u),a.point&&(l=Math.max(l,d-u)),i.push(a),s.push(u-o),r.push(d-o))}return{mapped:i.length?new Es(s,r,i,l):null,pos:o}}}class Y{constructor(e,t,i,s){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=s}static create(e,t,i,s){return new Y(e,t,i,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:s=0,filterTo:r=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(i&&(t=t.slice().sort(Yn)),this.isEmpty)return t.length?Y.of(t):this;let l=new sl(this,null,-1).goto(0),h=0,a=[],c=new gt;for(;l.value||h<t.length;)if(h<t.length&&(l.from-t[h].from||l.startSide-t[h].value.startSide)>=0){let f=t[h++];c.addInner(f.from,f.to,f.value)||a.push(f)}else l.rangeIndex==1&&l.chunkIndex<this.chunk.length&&(h==t.length||this.chunkEnd(l.chunkIndex)<t[h].from)&&(!o||s>this.chunkEnd(l.chunkIndex)||r<this.chunkPos[l.chunkIndex])&&c.addChunk(this.chunkPos[l.chunkIndex],this.chunk[l.chunkIndex])?l.nextChunk():((!o||s>l.to||r<l.from||o(l.from,l.to,l.value))&&(c.addInner(l.from,l.to,l.value)||a.push(ri.create(l.from,l.to,l.value))),l.next());return c.finishInner(this.nextLayer.isEmpty&&!a.length?Y.empty:this.nextLayer.update({add:a,filter:o,filterFrom:s,filterTo:r}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],i=[],s=-1;for(let o=0;o<this.chunk.length;o++){let l=this.chunkPos[o],h=this.chunk[o],a=e.touchesRange(l,l+h.length);if(a===!1)s=Math.max(s,h.maxPoint),t.push(h),i.push(e.mapPos(l));else if(a===!0){let{mapped:c,pos:f}=h.map(l,e);c&&(s=Math.max(s,c.maxPoint),t.push(c),i.push(f))}}let r=this.nextLayer.map(e);return t.length==0?r:new Y(i,t,r||Y.empty,s)}between(e,t,i){if(!this.isEmpty){for(let s=0;s<this.chunk.length;s++){let r=this.chunkPos[s],o=this.chunk[s];if(t>=r&&e<=r+o.length&&o.between(r,e-r,t-r,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return oi.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return oi.from(e).goto(t)}static compare(e,t,i,s,r=-1){let o=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=r),l=t.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=r),h=dr(o,l,i),a=new Ut(o,h,r),c=new Ut(l Line truncated
`)}static newName(){let e=yr[mr]||1;return yr[mr]=e+1,Zn+e.toString(36)}static mount(e,t){(e[es]||new _a(e)).mount(Array.isArray(t)?t:[t])}}let bi=null;class _a{constructor(e){if(!e.head&&e.adoptedStyleSheets&&typeof CSSStyleSheet!="undefined"){if(bi)return e.adoptedStyleSheets=[bi.sheet].concat(e.adoptedStyleSheets),e[es]=bi;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),bi=this}else{this.styleTag=(e.ownerDocument||e).createElement("style");let t=e.head||e;t.insertBefore(this.styleTag,t.firstChild)}this.modules=[],e[es]=this}mount(e){let t=this.sheet,i=0,s=0;for(let r=0;r<e.length;r++){let o=e[r],l=this.modules.indexOf(o);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,o),t)for(let h=0;h<o.rules.length;h++)t.insertRule(o.rules[h],i++)}else{for(;s<l;)i+=this.modules[s++].rules.length;i+=o.rules.length,s++}}if(!t){let r="";for(let o=0;o<this.modules.length;o++)r+=this.modules[o].getRules()+`
`;this.styleTag.textContent=r}}}var rt={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",229:"q"},Rt={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},br=typeof navigator!="undefined"&&/Chrome\/(\d+)/.exec(navigator.userAgent),Qa=typeof navigator!="undefined"&&/Apple Computer/.test(navigator.vendor),Za=typeof navigator!="undefined"&&/Gecko\/\d+/.test(navigator.userAgent),wr=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),ec=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),tc=br&&(wr||+br[1]<57)||Za&&wr;for(var oe=0;oe<10;oe++)rt[48+oe]=rt[96+oe]=String(oe);for(var oe=1;oe<=24;oe++)rt[oe+111]="F"+oe;for(var oe=65;oe<=90;oe++)rt[oe]=String.fromCharCode(oe+32),Rt[oe]=String.fromCharCode(oe);for(var vn in rt)Rt.hasOwnProperty(vn)||(Rt[vn]=rt[vn]);function ic(n){var e=tc&&(n.ctrlKey||n.altKey||n.metaKey)||(Qa||ec)&&n.shiftKey&&n.key&&n.key.length==1,t=!e&&n.key||(n.shiftKey?Rt:rt)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function Hi(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function Pt(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}function nc(){let n=document.activeElement;for(;n&&n.shadowRoot;)n=n.shadowRoot.activeElement;return n}function ts(n,e){if(!e.anchorNode)return!1;try{return Pt(n,e.anchorNode)}catch{return!1}}function li(n){return n.nodeType==3?Lt(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function Wi(n,e,t,i){return t?xr(n,e,t,i,-1)||xr(n,e,t,i,1):!1}function is(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function xr(n,e,t,i,s){for(;;){if(n==t&&e==i)return!0;if(e==(s<0?0:zi(n))){if(n.nodeName=="DIV")return!1;let r=n.parentNode;if(!r||r.nodeType!=1)return!1;e=is(n)+(s<0?0:1),n=r}else if(n.nodeType==1){if(n=n.childNodes[e+(s<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=s<0?zi(n):0}else return!1}}function zi(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}const rl={left:0,right:0,top:0,bottom:0};function on(n,e){let t=e?n.left:n.right;return{left:t,right:t,top:n.top,bottom:n.bottom}}function sc(n){return{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function rc(n,e,t,i,s,r,o,l){let h=n.ownerDocument,a=h.defaultView;for(let c=n;c;)if(c.nodeType==1){let f,u=c==h.body;if(u)f=sc(a);else{if(c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.parentNode;continue}let g=c.getBoundingClientRect();f={left:g.left,right:g.left+c.clientWidth,top:g.top,bottom:g.top+c.clientHeight}}let d=0,p=0;if(s=="nearest")e.top<f.top?(p=-(f.top-e.top+o),t>0&&e.bottom>f.bottom+p&&(p=e.bottom-f.bottom+p+o)):e.bottom>f.bottom&&(p=e.bottom-f.bottom+o,t<0&&e.top-p<f.top&&(p=-(f.top+p-e.top+o)));else{let g=e.bottom-e.top,y=f.bottom-f.top;p=(s=="center"&&g<=y?e.top+g/2-y/2:s=="start"||s=="center"&&t<0?e.top-o:e.bottom-y+o)-f.top}if(i=="nearest"?e.left<f.left?(d=-(f.left-e.left+r),t>0&&e.right>f.right+d&&(d=e.right-f.right+d+r)):e.right>f.right&&(d=e.right-f.right+r,t<0&&e.left<f.left+d&&(d=-(f.left+d-e.left+r))):d=(i=="center"?e.left+(e.right-e.left)/2-(f.right-f.left)/2:i=="start"==l?e.left-r:e.right-(f.right-f.left)+r)-f.left,d||p)if(u)a.scrollBy(d,p);else{if(p){let g=c.scrollTop;c.scrollTop+=p,p=c.scrollTop-g}if(d){let g=c.scrollLeft;c.scrollLeft+=d,d=c.scrollLeft-g}e={left:e.left-d,top:e.top-p,right:e.right-d,bottom:e.bottom-p}}if(u)break;c=c.assignedSlot||c.parentNode,i=s="nearest"}else if(c.nodeType==11)c=c.host;else break}class oc{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,t,i,s){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=s}}let vt=null;function ol(n){if(n.setActive)return n.setActive();if(vt)return n.focus(vt);let e=[];for(let t=n;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(n.focus(vt==null?{get preventScroll(){return vt={preventScroll:!0},!0}}:void 0),!vt){vt=!1;for(let t=0;t<e.length;){let iLine truncated
`,this;e--}else if(s instanceof Q){let h=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,h.length>Math.max(0,e))return this.value=e==0?h:t>0?h.slice(e):h.slice(0,h.length-e),this;e-=h.length}else{let h=s.children[o+(t<0?-1:0)];e>h.length?(e-=h.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(h),this.offsets.push(t>0?1:(h instanceof Q?h.text.length:h.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class zo{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new Zt(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class qo{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(z.prototype[Symbol.iterator]=function(){return this.iter()},Zt.prototype[Symbol.iterator]=zo.prototype[Symbol.iterator]=qo.prototype[Symbol.iterator]=function(){return this});class Na{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}}let Dt="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(n=>n?parseInt(n,36):1);for(let n=1;n<Dt.length;n++)Dt[n]+=Dt[n-1];function Va(n){for(let e=1;e<Dt.length;e+=2)if(Dt[e]>n)return Dt[e-1]<=n;return!1}function ar(n){return n>=127462&&n<=127487}const cr=8205;function Ae(n,e,t=!0,i=!0){return(t?Ko:Fa)(n,e,i)}function Ko(n,e,t){if(e==n.length)return e;e&&Uo(n.charCodeAt(e))&&jo(n.charCodeAt(e-1))&&e--;let i=re(n,e);for(e+=ve(i);e<n.length;){let s=re(n,e);if(i==cr||s==cr||t&&Va(s))e+=ve(s),i=s;else if(ar(s)){let r=0,o=e-2;for(;o>=0&&ar(re(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function Fa(n,e,t){for(;e>0;){let i=Ko(n,e-2,t);if(i<e)return i;e--}return 0}function Uo(n){return n>=56320&&n<57344}function jo(n){return n>=55296&&n<56320}function re(n,e){let t=n.charCodeAt(e);if(!jo(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return Uo(i)?(t-55296<<10)+(i-56320)+65536:t}function Rs(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function ve(n){return n<65536?1:2}const Kn=/\r\n?|\n/;var me=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(me||(me={}));class We{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t+1];e+=i<0?this.sections[t]:i}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,i=0,s=0;t<this.sections.length;){let r=this.sections[t++],o=this.sections[t++];o<0?(e(i,s,r),s+=r):s+=o,i+=r}}iterChangedRanges(e,t=!1){Un(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let i=this.sections[t++],s=this.sections[t++];s<0?e.push(i,s):e.push(s Line truncated
`}get readOnly(){return this.facet(tl)}phrase(e,...t){for(let i of this.facet(V.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,s)=>{if(s=="$")return"$";let r=+(s||1);return!r||r>t.length?i:t[r-1]})),e}languageDataAt(e,t,i=-1){let s=[];for(let r of this.facet(Xo))for(let o of r(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){return Xa(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:s}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-i,l=e-i;for(;o>0;){let h=Ae(t,o,!1);if(r(t.slice(h,o))!=ce.Word)break;o=h}for(;l<s;){let h=Ae(t,l);if(r(t.slice(l,h))!=ce.Word)break;l=h}return o==l?null:m.range(o+i,l+i)}}V.allowMultipleSelections=Yo;V.tabSize=T.define({combine:n=>n.length?n[0]:4});V.lineSeparator=_o;V.readOnly=tl;V.phrases=T.define({compare(n,e){let t=Object.keys(n),i=Object.keys(e);return t.length==i.length&&t.every(s=>n[s]==e[s])}});V.languageData=Xo;V.changeFilter=Qo;V.transactionFilter=Zo;V.transactionExtender=el;_e.reconfigure=H.define();function zt(n,e,t={}){let i={};for(let s of n)for(let r of Object.keys(s)){let o=s[r],l=i[r];if(l===void 0)i[r]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(t,r))i[r]=t[r](l,o);else throw new Error("Config merge conflict for field "+r)}for(let s in e)i[s]===void 0&&(i[s]=e[s]);return i}class pt{eq(e){return this==e}range(e,t=e){return ri.create(e,t,this)}}pt.prototype.startSide=pt.prototype.endSide=0;pt.prototype.point=!1;pt.prototype.mapMode=me.TrackDel;class ri{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new ri(e,t,i)}}function Yn(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}class Es{constructor(e,t,i,s){this.from=e,this.to=t,this.value=i,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,s=0){let r=i?this.to:this.from;for(let o=s,l=r.length;;){if(o==l)return o;let h=o+l>>1,a=r[h]-e||(i?this.value[h].endSide:this.value[h].startSide)-t;if(h==o)return a>=0?o:l;a>=0?l=h:o=h+1}}between(e,t,i,s){for(let r=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,r);r<o;r++)if(s(this.from[r]+e,this.to[r]+e,this.value[r])===!1)return!1}map(e,t){let i=[],s=[],r=[],o=-1,l=-1;for(let h=0;h<this.value.length;h++){let a=this.value[h],c=this.from[h]+e,f=this.to[h]+e,u,d;if(c==f){let p=t.mapPos(c,a.startSide,a.mapMode);if(p==null||(u=d=p,a.startSide!=a.endSide&&(d=t.mapPos(c,a.endSide),d<u)))continue}else if(u=t.mapPos(c,a.startSide),d=t.mapPos(f,a.endSide),u>d||u==d&&a.startSide>0&&a.endSide<=0)continue;(d-u||a.endSide-a.startSide)<0||(o<0&&(o=u),a.point&&(l=Math.max(l,d-u)),i.push(a),s.push(u-o),r.push(d-o))}return{mapped:i.length?new Es(s,r,i,l):null,pos:o}}}class Y{constructor(e,t,i,s){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=s}static create(e,t,i,s){return new Y(e,t,i,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:s=0,filterTo:r=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(i&&(t=t.slice().sort(Yn)),this.isEmpty)return t.length?Y.of(t):this;let l=new sl(this,null,-1).goto(0),h=0,a=[],c=new gt;for(;l.value||h<t.length;)if(h<t.length&&(l.from-t[h].from||l.startSide-t[h].value.startSide)>=0){let f=t[h++];c.addInner(f.from,f.to,f.value)||a.push(f)}else l.rangeIndex==1&&l.chunkIndex<this.chunk.length&&(h==t.length||this.chunkEnd(l.chunkIndex)<t[h].from)&&(!o||s>this.chunkEnd(l.chunkIndex)||r<this.chunkPos[l.chunkIndex])&&c.addChunk(this.chunkPos[l.chunkIndex],this.chunk[l.chunkIndex])?l.nextChunk():((!o||s>l.to||r<l.from||o(l.from,l.to,l.value))&&(c.addInner(l.from,l.to,l.value)||a.push(ri.create(l.from,l.to,l.value))),l.next());return c.finishInner(this.nextLayer.isEmpty&&!a.length?Y.empty:this.nextLayer.update({add:a,filter:o,filterFrom:s,filterTo:r}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],i=[],s=-1;for(let o=0;o<this.chunk.length;o++){let l=this.chunkPos[o],h=this.chunk[o],a=e.touchesRange(l,l+h.length);if(a===!1)s=Math.max(s,h.maxPoint),t.push(h),i.push(e.mapPos(l));else if(a===!0){let{mapped:c,pos:f}=h.map(l,e);c&&(s=Math.max(s,c.maxPoint),t.push(c),i.push(f))}}let r=this.nextLayer.map(e);return t.length==0?r:new Y(i,t,r||Y.empty,s)}between(e,t,i){if(!this.isEmpty){for(let s=0;s<this.chunk.length;s++){let r=this.chunkPos[s],o=this.chunk[s];if(t>=r&&e<=r+o.length&&o.between(r,e-r,t-r,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return oi.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return oi.from(e).goto(t)}static compare(e,t,i,s,r=-1){let o=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=r),l=t.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=r),h=dr(o,l,i),a=new Ut(o,h,r),c=new Ut(l Line truncated
`)}static newName(){let e=yr[mr]||1;return yr[mr]=e+1,Zn+e.toString(36)}static mount(e,t){(e[es]||new _a(e)).mount(Array.isArray(t)?t:[t])}}let bi=null;class _a{constructor(e){if(!e.head&&e.adoptedStyleSheets&&typeof CSSStyleSheet<"u"){if(bi)return e.adoptedStyleSheets=[bi.sheet].concat(e.adoptedStyleSheets),e[es]=bi;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),bi=this}else{this.styleTag=(e.ownerDocument||e).createElement("style");let t=e.head||e;t.insertBefore(this.styleTag,t.firstChild)}this.modules=[],e[es]=this}mount(e){let t=this.sheet,i=0,s=0;for(let r=0;r<e.length;r++){let o=e[r],l=this.modules.indexOf(o);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,o),t)for(let h=0;h<o.rules.length;h++)t.insertRule(o.rules[h],i++)}else{for(;s<l;)i+=this.modules[s++].rules.length;i+=o.rules.length,s++}}if(!t){let r="";for(let o=0;o<this.modules.length;o++)r+=this.modules[o].getRules()+`
`;this.styleTag.textContent=r}}}var rt={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",229:"q"},Rt={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},br=typeof navigator<"u"&&/Chrome\/(\d+)/.exec(navigator.userAgent),Qa=typeof navigator<"u"&&/Apple Computer/.test(navigator.vendor),Za=typeof navigator<"u"&&/Gecko\/\d+/.test(navigator.userAgent),wr=typeof navigator<"u"&&/Mac/.test(navigator.platform),ec=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),tc=br&&(wr||+br[1]<57)||Za&&wr;for(var oe=0;oe<10;oe++)rt[48+oe]=rt[96+oe]=String(oe);for(var oe=1;oe<=24;oe++)rt[oe+111]="F"+oe;for(var oe=65;oe<=90;oe++)rt[oe]=String.fromCharCode(oe+32),Rt[oe]=String.fromCharCode(oe);for(var vn in rt)Rt.hasOwnProperty(vn)||(Rt[vn]=rt[vn]);function ic(n){var e=tc&&(n.ctrlKey||n.altKey||n.metaKey)||(Qa||ec)&&n.shiftKey&&n.key&&n.key.length==1,t=!e&&n.key||(n.shiftKey?Rt:rt)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function Hi(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function Pt(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}function nc(){let n=document.activeElement;for(;n&&n.shadowRoot;)n=n.shadowRoot.activeElement;return n}function ts(n,e){if(!e.anchorNode)return!1;try{return Pt(n,e.anchorNode)}catch{return!1}}function li(n){return n.nodeType==3?Lt(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function Wi(n,e,t,i){return t?xr(n,e,t,i,-1)||xr(n,e,t,i,1):!1}function is(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function xr(n,e,t,i,s){for(;;){if(n==t&&e==i)return!0;if(e==(s<0?0:zi(n))){if(n.nodeName=="DIV")return!1;let r=n.parentNode;if(!r||r.nodeType!=1)return!1;e=is(n)+(s<0?0:1),n=r}else if(n.nodeType==1){if(n=n.childNodes[e+(s<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=s<0?zi(n):0}else return!1}}function zi(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}const rl={left:0,right:0,top:0,bottom:0};function on(n,e){let t=e?n.left:n.right;return{left:t,right:t,top:n.top,bottom:n.bottom}}function sc(n){return{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function rc(n,e,t,i,s,r,o,l){let h=n.ownerDocument,a=h.defaultView;for(let c=n;c;)if(c.nodeType==1){let f,u=c==h.body;if(u)f=sc(a);else{if(c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.parentNode;continue}let g=c.getBoundingClientRect();f={left:g.left,right:g.left+c.clientWidth,top:g.top,bottom:g.top+c.clientHeight}}let d=0,p=0;if(s=="nearest")e.top<f.top?(p=-(f.top-e.top+o),t>0&&e.bottom>f.bottom+p&&(p=e.bottom-f.bottom+p+o)):e.bottom>f.bottom&&(p=e.bottom-f.bottom+o,t<0&&e.top-p<f.top&&(p=-(f.top+p-e.top+o)));else{let g=e.bottom-e.top,y=f.bottom-f.top;p=(s=="center"&&g<=y?e.top+g/2-y/2:s=="start"||s=="center"&&t<0?e.top-o:e.bottom-y+o)-f.top}if(i=="nearest"?e.left<f.left?(d=-(f.left-e.left+r),t>0&&e.right>f.right+d&&(d=e.right-f.right+d+r)):e.right>f.right&&(d=e.right-f.right+r,t<0&&e.left<f.left+d&&(d=-(f.left+d-e.left+r))):d=(i=="center"?e.left+(e.right-e.left)/2-(f.right-f.left)/2:i=="start"==l?e.left-r:e.right-(f.right-f.left)+r)-f.left,d||p)if(u)a.scrollBy(d,p);else{if(p){let g=c.scrollTop;c.scrollTop+=p,p=c.scrollTop-g}if(d){let g=c.scrollLeft;c.scrollLeft+=d,d=c.scrollLeft-g}e={left:e.left-d,top:e.top-p,right:e.right-d,bottom:e.bottom-p}}if(u)break;c=c.assignedSlot||c.parentNode,i=s="nearest"}else if(c.nodeType==11)c=c.host;else break}class oc{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,t,i,s){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=s}}let vt=null;function ol(n){if(n.setActive)return n.setActive();if(vt)return n.focus(vt);let e=[];for(let t=n;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(n.focus(vt==null?{get preventScroll(){return vt={preventScroll:!0},!0}}:void 0),!vt){vt=!1;for(let t=0;t<e.length;){let i=e[t++],s=e[t++],r=e[t++];i.scrollTop!=s&&(i.Line truncated
`,s=n.state.doc.line(s.number+(t?1:-1)),r=n.bidiSpans(s),a=m.cursor(t?s.from:s.to)}if(h){if(!h(c))return l}else{if(!i)return a;h=i(c)}l=a}}function Pc(n,e,t){let i=n.state.charCategorizer(e),s=i(t);return r=>{let o=i(r);return s==ce.Space&&(s=o),s==o}}function Lc(n,e,t,i){let s=e.head,r=t?1:-1;if(s==(t?n.state.doc.length:0))return m.cursor(s,e.assoc);let o=e.goalColumn,l,h=n.contentDOM.getBoundingClientRect(),a=n.coordsAtPos(s),c=n.documentTop;if(a)o==null&&(o=a.left-h.left),l=r<0?a.top:a.bottom;else{let d=n.viewState.lineBlockAt(s);o==null&&(o=Math.min(h.right-h.left,n.defaultCharacterWidth*(s-d.from))),l=(r<0?d.top:d.bottom)+c}let f=h.left+o,u=i!=null?i:n.defaultLineHeight>>1;for(let d=0;;d+=10){let p=l+(u+d)*r,g=Il(n,{x:f,y:p},!1,r);if(p<h.top||p>h.bottom||(r<0?g<s:g>s))return m.cursor(g,e.assoc,void 0,o)}}function Dn(n,e,t){let i=n.state.facet(Dl).map(s=>s(n));for(;;){let s=!1;for(let r of i)r.between(t.from-1,t.from+1,(o,l,h)=>{t.from>o&&t.from<l&&(t=e.from>t.from?m.cursor(o,1):m.cursor(l,-1),s=!0)});if(!s)return t}}class Ec{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;for(let t in ie){let i=ie[t];e.contentDOM.addEventListener(t,s=>{!Vr(e,s)||this.ignoreDuringComposition(s)||t=="keydown"&&this.keydown(e,s)||(this.mustFlushObserver(s)&&e.observer.forceFlush(),this.runCustomHandlers(t,e,s)?s.preventDefault():i(e,s))}),this.registeredEvents.push(t)}M.chrome&&M.chrome_version>=102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,M.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,t){var i;let s;this.customHandlers=[];for(let r of t)if(s=(i=r.update(e).spec)===null||i===void 0?void 0:i.domEventHandlers){this.customHandlers.push({plugin:r.value,handlers:s});for(let o in s)this.registeredEvents.indexOf(o)<0&&o!="scroll"&&(this.registeredEvents.push(o),e.contentDOM.addEventListener(o,l=>{!Vr(e,l)||this.runCustomHandlers(o,e,l)&&l.preventDefault()}))}}runCustomHandlers(e,t,i){for(let s of this.customHandlers){let r=s.handlers[e];if(r)try{if(r.call(s.plugin,i,t)||i.defaultPrevented)return!0}catch(o){Re(t.state,o)}}return!1}runScrollHandlers(e,t){for(let i of this.customHandlers){let s=i.handlers.scroll;if(s)try{s.call(i.plugin,t,e)}catch(r){Re(e.state,r)}}}keydown(e,t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&Date.now()<this.lastEscPress+2e3)return!0;if(M.android&&M.chrome&&!t.synthetic&&(t.keyCode==13||t.keyCode==8))return e.observer.delayAndroidKey(t.key,t.keyCode),!0;let i;return M.ios&&(i=Nl.find(s=>s.keyCode==t.keyCode))&&!(t.ctrlKey||t.altKey||t.metaKey)&&!t.synthetic?(this.pendingIOSKey=i,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let t=this.pendingIOSKey;return t?(this.pendingIOSKey=void 0,ti(e.contentDOM,t.key,t.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:M.safari&&Date.now()-this.compositionEndedAt<100?(this.compositionEndedAt=0,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229||e.type=="compositionend"&&!M.ios}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const Nl=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Vl=[16,17,18,20,91,92,224,225];class Ic{constructor(e,t,i,s){this.view=e,this.style=i,this.mustSelect=s,this.lastEvent=t;let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(V.allowMultipleSelections)&&Nc(e,t),this.dragMove=Vc(e,t),this.dragging=Fc(e,t)&&Fs(t)==1?null:!1,this.dragging===!1&&(t.preventDefault(),this.select(t))}move(e){if(e.buttons==0)return this.destroy();this.dragging===!1&&this.select(this.lastEvent=e)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.i Line truncated
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\uFEFF\uFFF9-\uFFFC]`,ws),Bf={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Bn=null;function Rf(){var n;if(Bn==null&&typeof document!="undefined"&&document.body){let e=document.body.style;Bn=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return Bn||!1}const Ii=T.define({combine(n){let e=zt(n,{render:null,specialChars:Tf,addSpecialChars:null});return(e.replaceTabs=!Rf())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,ws)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,ws)),e}});function Pf(n={}){return[Ii.of(n),Lf()]}let so=null;function Lf(){return so||(so=ue.fromClass(class{constructor(n){this.view=n,this.decorations=R.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(Ii)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new Of({regexp:n.specialChars,decoration:(e,t,i)=>{let{doc:s}=t.state,r=re(e[0],0);if(r==9){let o=s.lineAt(i),l=t.state.tabSize,h=ui(o.text,l,i-o.from);return R.replace({widget:new Vf((l-h%l)*this.view.defaultCharacterWidth)})}return this.decorationCache[r]||(this.decorationCache[r]=R.replace({widget:new Nf(n,r)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(Ii);n.startState.facet(Ii)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}const Ef="\u2022";function If(n){return n>=32?Ef:n==10?"\u2424":String.fromCharCode(9216+n)}class Nf extends xt{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=If(this.code),i=e.state.phrase("Control character")+" "+(Bf[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,i,t);if(s)return s;let r=document.createElement("span");return r.textContent=t,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class Vf extends xt{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}class Ff extends xt{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}ignoreEvent(){return!1}}function ro(n){return ue.fromClass(class{constructor(e){this.view=e,this.placeholder=R.set([R.widget({widget:new Ff(n),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?R.none:this.placeholder}},{decorations:e=>e.decorations})}const xs=2e3;function Hf(n,e,t){let i=Math.min(e.line,t.line),s=Math.max(e.line,t.line),r=[];if(e.off>xs||t.off>xs||e.col<0||t.col<0){let o=Math.min(e.off,t.off),l=Math.max(e.off,t.off);for(let h=i;h<=s;h++){let a=n.doc.line(h);a.length<=l&&r.push(m.range(a.from+o,a.to+l))}}else{let o=Math.min(e.col,t.col),l=Math.max(e.col,t.col);for(let h=i;h<=s;h++){let a=n.doc.line(h),c=Qn(a.text,o,n.tabSize,!0);if(c>-1){let f=Qn(a.text,l,n.tabSize);r.push(m.range(a.from+c,a.from+f))}}}return r}function Wf(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function oo(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),i=n.state.doc.lineAt(t),s=t-i.from,r=s>xs?-1:s==i.length?Wf(n,e.clientX):ui(i.text,n.state.tabSize,t-i.from);return{line:i.number,col:r,off:s}}function zf(n,e){let t=oo(n,e),i=n.state.selection;return t?{update(s){if(s.docChanged){let r=s.changes.mapPos(s.startState.doc.line(t.line).from),o=s.state.doc.lineAt(r);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},i=i.map(s.changes)}},get(s,r,o){let l=oo(n,s);if(!l)return i;let h=Hf(n.state,t,l);return h.length?o?m.create(h.concat(i.ranges)):m.create(h):i}}:null}function qf(n){let e=(n==null?void 0:n.eventFilter)||(t=>t.altKey&&t.button==0);return O.mouseSelectionStyle.of((t,i)=>e(i)?zf(t,i):null)}const Rn="-10000px";class Kf{constructor(e,t,i){this.facet=t,this.createTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter(s=>s),this.tooltipViews=this.tooltips.map(i)}update(e){let t=e.state.facet(this.facet),i=t.filter(r=>r);if(t===this.input){for(let r of this.tooltipViews)r.update&&r.update(e);return!1}let s=[] Line truncated
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\uFEFF\uFFF9-\uFFFC]`,ws),Bf={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Bn=null;function Rf(){var n;if(Bn==null&&typeof document<"u"&&document.body){let e=document.body.style;Bn=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return Bn||!1}const Ii=T.define({combine(n){let e=zt(n,{render:null,specialChars:Tf,addSpecialChars:null});return(e.replaceTabs=!Rf())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,ws)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,ws)),e}});function Pf(n={}){return[Ii.of(n),Lf()]}let so=null;function Lf(){return so||(so=ue.fromClass(class{constructor(n){this.view=n,this.decorations=R.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(Ii)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new Of({regexp:n.specialChars,decoration:(e,t,i)=>{let{doc:s}=t.state,r=re(e[0],0);if(r==9){let o=s.lineAt(i),l=t.state.tabSize,h=ui(o.text,l,i-o.from);return R.replace({widget:new Vf((l-h%l)*this.view.defaultCharacterWidth)})}return this.decorationCache[r]||(this.decorationCache[r]=R.replace({widget:new Nf(n,r)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(Ii);n.startState.facet(Ii)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}const Ef="\u2022";function If(n){return n>=32?Ef:n==10?"\u2424":String.fromCharCode(9216+n)}class Nf extends xt{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=If(this.code),i=e.state.phrase("Control character")+" "+(Bf[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,i,t);if(s)return s;let r=document.createElement("span");return r.textContent=t,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class Vf extends xt{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}class Ff extends xt{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}ignoreEvent(){return!1}}function ro(n){return ue.fromClass(class{constructor(e){this.view=e,this.placeholder=R.set([R.widget({widget:new Ff(n),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?R.none:this.placeholder}},{decorations:e=>e.decorations})}const xs=2e3;function Hf(n,e,t){let i=Math.min(e.line,t.line),s=Math.max(e.line,t.line),r=[];if(e.off>xs||t.off>xs||e.col<0||t.col<0){let o=Math.min(e.off,t.off),l=Math.max(e.off,t.off);for(let h=i;h<=s;h++){let a=n.doc.line(h);a.length<=l&&r.push(m.range(a.from+o,a.to+l))}}else{let o=Math.min(e.col,t.col),l=Math.max(e.col,t.col);for(let h=i;h<=s;h++){let a=n.doc.line(h),c=Qn(a.text,o,n.tabSize,!0);if(c>-1){let f=Qn(a.text,l,n.tabSize);r.push(m.range(a.from+c,a.from+f))}}}return r}function Wf(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function oo(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),i=n.state.doc.lineAt(t),s=t-i.from,r=s>xs?-1:s==i.length?Wf(n,e.clientX):ui(i.text,n.state.tabSize,t-i.from);return{line:i.number,col:r,off:s}}function zf(n,e){let t=oo(n,e),i=n.state.selection;return t?{update(s){if(s.docChanged){let r=s.changes.mapPos(s.startState.doc.line(t.line).from),o=s.state.doc.lineAt(r);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},i=i.map(s.changes)}},get(s,r,o){let l=oo(n,s);if(!l)return i;let h=Hf(n.state,t,l);return h.length?o?m.create(h.concat(i.ranges)):m.create(h):i}}:null}function qf(n){let e=(n==null?void 0:n.eventFilter)||(t=>t.altKey&&t.button==0);return O.mouseSelectionStyle.of((t,i)=>e(i)?zf(t,i):null)}const Rn="-10000px";class Kf{constructor(e,t,i){this.facet=t,this.createTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter(s=>s),this.tooltipViews=this.tooltips.map(i)}update(e){let t=e.state.facet(this.facet),i=t.filter(r=>r);if(t===this.input){for(let r of this.tooltipViews)r.update&&r.update(e);return!1}let s=[];for(let Line truncated
`&&(t="");else{let i=t.indexOf(`
`);i>-1&&(t=t.slice(0,i))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),i=e+t.length;for(let s=this.rangeIndex;;){let r=this.ranges[s].to;if(r>=i||(t=t.slice(0,r-(i-t.length)),s++,s==this.ranges.length))break;let o=this.ranges[s].from,l=this.lineAfter(o);t+=l,i=o+l.length}return{line:t,end:i}}skipGapsTo(e,t,i){for(;;){let s=this.ranges[this.rangeIndex].to,r=e+t;if(i>0?s>r:s>=r)break;t+=this.ranges[++this.rangeIndex].from-s}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,t,i,s,r){if(this.ranges.length>1){r=this.skipGapsTo(t,r,1),t+=r;let o=this.chunk.length;r=this.skipGapsTo(i,r,-1),i+=r,s+=this.chunk.length-o}return this.chunk.push(e,t,i,s),r}parseLine(e){let{line:t,end:i}=this.nextLine(),s=0,{streamParser:r}=this.lang,o=new bh(t,e?e.state.tabSize:4,e?bt(e.state):2);if(o.eol())r.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=xh(r.token,o,this.state);if(l&&(s=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,4,s)),o.start>1e4)break}this.parsedPos=i,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=_.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:Wu,topID:0,maxBufferLength:2048,reused:this.chunkReused});e=new _(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new _(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function xh(n,e,t){e.start=e.pos;for(let i=0;i<10;i++){let s=n(e,t);if(e.pos>e.start)return s}throw new Error("Stream parser failed to advance stream.")}const Xs=Object.create(null),ci=[we.none],Wu=new zs(ci),yo=[],kh=Object.create(null);for(let[n,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])kh[n]=vh(Xs,e);class Sh{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),kh)}resolve(e){return e?this.table[e]||(this.table[e]=vh(this.extra,e)):0}}const zu=new Sh(Xs);function Fn(n,e){yo.indexOf(n)>-1||(yo.push(n),console.warn(e))}function vh(n,e){let t=null;for(let r of e.split(".")){let o=n[r]||k[r];o?typeof o=="function"?t?t=o(t):Fn(r,`Modifier ${r} used at start of tag`):t?Fn(r,`Tag ${r} used as modifier`):t=o:Fn(r,`Unknown highlighting tag ${r}`)}if(!t)return 0;let i=e.replace(/ /g,"_"),s=we.define({id:ci.length,name:i,props:[lu({[i]:t})]});return ci.push(s),s.id}function qu(n){let e=we.define({id:ci.length,name:"Document",props:[ai.add(()=>n)]});return ci.push(e),e}const Ku=n=>{let e=_s(n.state);return e.line?Uu(n):e.block?Gu(n):!1};function Ys(n,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let s=n(e,t);return s?(i(t.update(s)),!0):!1}}const Uu=Ys(Xu,0),ju=Ys(Ch,0),Gu=Ys((n,e)=>Ch(n,e,$u(e)),0);function _s(n,e=n.selection.main.head){let t=n.languageDataAt("commentTokens",e);return t.length?t[0]:{}}const Jt=50;function Ju(n,{open:e,close:t},i,s){let r=n.sliceDoc(i-Jt,i),o=n.sliceDoc(s,s+Jt),l=/\s*$/.exec(r)[0].length,h=/^\s*/.exec(o)[0].length,a=r.length-l;if(r.slice(a-e.length,a)==e&&o.slice(h,h+t.length)==t)return{open:{pos:i-l,margin:l&&1},close:{pos:s+h,margin:h&&1}};let c,f;s-i<=2*Jt?c=f=n.sliceDoc(i,s):(c=n.sliceDoc(i,i+Jt),f=n.sliceDoc(s-Jt,s));let u=/^\s*/.exec(c)[0].length,d=/\s*$/.exec(f)[0].length,p=f.length-d-t.length;return c.slice(u,u+e.length)==e&&f.slice(p,p+t.length)==t?{open:{pos:i+u+e.length,margin:/\s/.test(c.charAt(u+e.length))?1:0},close:{pos:s-d-t.length,margin:/\s/.test(f.charAt(p-1))?1:0}}:null}function $u(n){let e=[];for(let t of n.selection.ranges){let i=n.doc.lineAt(t.from),s=t.to<=i.to?i:n.doc.lineAt(t.to),r=e.length-1;r>=0&&e[r].to>i.from?e[r].to=s.to:e.push({from:i.from,to:s.to})}return e}function Ch(n,e,t=e.selection.ranges){let i=t.map(r=>_s(e,r.from).block);if(!i.every(r=>r))return null;let s=t.map((r,o)=>Ju(e,i[o],r.from,r.to));if(n!=2&&!s.every(r=>r))return{changes:e.changes(t.map((r,o)=>s[o]?[]:[{from:r.from,insert:i[o].open+" "},{from:r.to,insert:" "+i[o].close}]))};if(n!=1&&s.some(r=>r)){let r=[];for(let o=0,l;o<s.length;o++)if(l=s[o]){let h=i[o],{open:a,close:c}=l;r.push({from:a.pos-h.open.length,to:a.pos+a.margin},{from:c.pos-c.margin,to:c.pos+h.close.length})}return{changes:r}}return null}function Xu(n,e,t=e.selection.ranges){let i=[],s=-1;for(let{from:r,to:o}of t){let l=i.length,h=1e9;for(let a=r;a<=o;){let c=e.doc.lineAt(a);if(c.from>s&&(r==o||o>c.from)){s=c.from;let f=_s(e,a).line;if(!f)continue;let u=/^\s*/.exec(c.text)[0].length,d=u==c Line truncated
`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp}create(){return this.regexp?new op(this):new rp(this)}getCursor(e,t=0,i=e.length){return this.regexp?Mt(this,e,t,i):At(this,e,t,i)}}class la{constructor(e){this.spec=e}}function At(n,e,t,i){return new Ht(e,n.unquoted,t,i,n.caseSensitive?void 0:s=>s.toLowerCase())}class rp extends la{constructor(e){super(e)}nextMatch(e,t,i){let s=At(this.spec,e,i,e.length).nextOverlapping();return s.done&&(s=At(this.spec,e,0,t).nextOverlapping()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=i;;){let r=Math.max(t,s-1e4-this.spec.unquoted.length),o=At(this.spec,e,r,s),l=null;for(;!o.nextOverlapping().done;)l=o.value;if(l)return l;if(r==t)return null;s-=1e4}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.length)}getReplacement(e){return this.spec.replace}matchAll(e,t){let i=At(this.spec,e,0,e.length),s=[];for(;!i.next().done;){if(s.length>=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=At(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}function Mt(n,e,t,i){return new na(e,n.search,n.caseSensitive?void 0:{ignoreCase:!0},t,i)}class op extends la{nextMatch(e,t,i){let s=Mt(this.spec,e,i,e.length).next();return s.done&&(s=Mt(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=1;;s++){let r=Math.max(t,i-s*1e4),o=Mt(this.spec,e,r,i),l=null;for(;!o.next().done;)l=o.value;if(l&&(r==t||l.from>r+10))return l;if(r==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.length)}getReplacement(e){return this.spec.replace.replace(/\$([$&\d+])/g,(t,i)=>i=="$"?"$":i=="&"?e.match[0]:i!="0"&&+i<e.match.length?e.match[i]:t)}matchAll(e,t){let i=Mt(this.spec,e,0,e.length),s=[];for(;!i.next().done;){if(s.length>=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=Mt(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}const fi=H.define(),tr=H.define(),it=ke.define({create(n){return new zn(Ts(n).create(),null)},update(n,e){for(let t of e.effects)t.is(fi)?n=new zn(t.value.create(),n.panel):t.is(tr)&&(n=new zn(n.query,t.value?ir:null));return n},provide:n=>Gi.from(n,e=>e.panel)});class zn{constructor(e,t){this.query=e,this.panel=t}}const lp=R.mark({class:"cm-searchMatch"}),hp=R.mark({class:"cm-searchMatch cm-searchMatch-selected"}),ap=ue.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(it))}update(n){let e=n.state.field(it);(e!=n.startState.field(it)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return R.none;let{view:t}=this,i=new gt;for(let s=0,r=t.visibleRanges,o=r.length;s<o;s++){let{from:l,to:h}=r[s];for(;s<o-1&&h>r[s+1].from-2*250;)h=r[++s].to;n.highlight(t.state.doc,l,h,(a,c)=>{let f=t.state.selection.ranges.some(u=>u.from==a&&u.to==c);i.add(a,c,f?hp:lp)})}return i.finish()}},{decorations:n=>n.decorations});function pi(n){return e=>{let t=e.state.field(it,!1);return t&&t.query.spec.valid?n(e,t):ha(e)}}const en=pi((n,{query:e})=>{let{from:t,to:i}=n.state.selection.main,s=e.nextMatch(n.state.doc,t,i);return!s||s.from==t&&s.to==i?!1:(n.dispatch({selection:{anchor:s.from,head:s.to},scrollIntoView:!0,effects:nr(n,s),userEvent:"select.search"}),!0)}),tn=pi((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main,r=e.prevMatch(t.doc,i,s);return r?(n.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:nr(n,r),userEvent:"select.search"}),!0):!1}),cp=pi((n,{query:e})=>{let t=e.matchAll(n.state.doc,1e3);return!t||!t.length?!1:(n.dispatch({selection:m.create(t.map(i=>m.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),fp=({state:n,dispatch:e})=>{let t=n.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:s}=t.main,r=[],o=0;for(let l=new Ht(n.doc,n.sliceDoc(i,s));!l.next().done;){if(r.length>1e3)return!1;l.value.from==i&&(o=r.length),r.push(m.range(l.value.from,l.value.to))}return e(n.update({selection:m.create(r,o),userEvent:"select.search.matches"})),!0},Po=pi((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t.doc,i,i);if(!r)return!1;let o=[],l,h,a=[];if(r.from==i&&r.to==s&&(h=t.toText(e.getReplacement(r)),o.push({from:r.from,to:r.to,insert:h}),r=e.nextMatch(t.doc,r.from,r.to),a.push(O.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+"."))),r){let c=o.length==0||o[0].from>=r.to?0:r.to-r.from-h.length;l={anchor:r.from-c,head:r.to-c},a.push(nr(n,r))}return n.dispatch({changes:o,selection:l,scrollIntoView:!!l,effects:a,userEvent:"input.replace"}),!0}),up=pi((n,{query:e})=>{if(n.state.readOnly)return!1;let t=e.matchAll(n.state.doc,1e9).map(s=>{let{from:r,to:o}=s;re Line truncated
`);i>-1&&(t=t.slice(0,i))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),i=e+t.length;for(let s=this.rangeIndex;;){let r=this.ranges[s].to;if(r>=i||(t=t.slice(0,r-(i-t.length)),s++,s==this.ranges.length))break;let o=this.ranges[s].from,l=this.lineAfter(o);t+=l,i=o+l.length}return{line:t,end:i}}skipGapsTo(e,t,i){for(;;){let s=this.ranges[this.rangeIndex].to,r=e+t;if(i>0?s>r:s>=r)break;t+=this.ranges[++this.rangeIndex].from-s}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,t,i,s,r){if(this.ranges.length>1){r=this.skipGapsTo(t,r,1),t+=r;let o=this.chunk.length;r=this.skipGapsTo(i,r,-1),i+=r,s+=this.chunk.length-o}return this.chunk.push(e,t,i,s),r}parseLine(e){let{line:t,end:i}=this.nextLine(),s=0,{streamParser:r}=this.lang,o=new bh(t,e?e.state.tabSize:4,e?bt(e.state):2);if(o.eol())r.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=xh(r.token,o,this.state);if(l&&(s=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,4,s)),o.start>1e4)break}this.parsedPos=i,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=_.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:Wu,topID:0,maxBufferLength:2048,reused:this.chunkReused});e=new _(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new _(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function xh(n,e,t){e.start=e.pos;for(let i=0;i<10;i++){let s=n(e,t);if(e.pos>e.start)return s}throw new Error("Stream parser failed to advance stream.")}const Xs=Object.create(null),ci=[we.none],Wu=new zs(ci),yo=[],kh=Object.create(null);for(let[n,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])kh[n]=vh(Xs,e);class Sh{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),kh)}resolve(e){return e?this.table[e]||(this.table[e]=vh(this.extra,e)):0}}const zu=new Sh(Xs);function Fn(n,e){yo.indexOf(n)>-1||(yo.push(n),console.warn(e))}function vh(n,e){let t=null;for(let r of e.split(".")){let o=n[r]||k[r];o?typeof o=="function"?t?t=o(t):Fn(r,`Modifier ${r} used at start of tag`):t?Fn(r,`Tag ${r} used as modifier`):t=o:Fn(r,`Unknown highlighting tag ${r}`)}if(!t)return 0;let i=e.replace(/ /g,"_"),s=we.define({id:ci.length,name:i,props:[lu({[i]:t})]});return ci.push(s),s.id}function qu(n){let e=we.define({id:ci.length,name:"Document",props:[ai.add(()=>n)]});return ci.push(e),e}const Ku=n=>{let e=_s(n.state);return e.line?Uu(n):e.block?Gu(n):!1};function Ys(n,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let s=n(e,t);return s?(i(t.update(s)),!0):!1}}const Uu=Ys(Xu,0),ju=Ys(Ch,0),Gu=Ys((n,e)=>Ch(n,e,$u(e)),0);function _s(n,e=n.selection.main.head){let t=n.languageDataAt("commentTokens",e);return t.length?t[0]:{}}const Jt=50;function Ju(n,{open:e,close:t},i,s){let r=n.sliceDoc(i-Jt,i),o=n.sliceDoc(s,s+Jt),l=/\s*$/.exec(r)[0].length,h=/^\s*/.exec(o)[0].length,a=r.length-l;if(r.slice(a-e.length,a)==e&&o.slice(h,h+t.length)==t)return{open:{pos:i-l,margin:l&&1},close:{pos:s+h,margin:h&&1}};let c,f;s-i<=2*Jt?c=f=n.sliceDoc(i,s):(c=n.sliceDoc(i,i+Jt),f=n.sliceDoc(s-Jt,s));let u=/^\s*/.exec(c)[0].length,d=/\s*$/.exec(f)[0].length,p=f.length-d-t.length;return c.slice(u,u+e.length)==e&&f.slice(p,p+t.length)==t?{open:{pos:i+u+e.length,margin:/\s/.test(c.charAt(u+e.length))?1:0},close:{pos:s-d-t.length,margin:/\s/.test(f.charAt(p-1))?1:0}}:null}function $u(n){let e=[];for(let t of n.selection.ranges){let i=n.doc.lineAt(t.from),s=t.to<=i.to?i:n.doc.lineAt(t.to),r=e.length-1;r>=0&&e[r].to>i.from?e[r].to=s.to:e.push({from:i.from,to:s.to})}return e}function Ch(n,e,t=e.selection.ranges){let i=t.map(r=>_s(e,r.from).block);if(!i.every(r=>r))return null;let s=t.map((r,o)=>Ju(e,i[o],r.from,r.to));if(n!=2&&!s.every(r=>r))return{changes:e.changes(t.map((r,o)=>s[o]?[]:[{from:r.from,insert:i[o].open+" "},{from:r.to,insert:" "+i[o].close}]))};if(n!=1&&s.some(r=>r)){let r=[];for(let o=0,l;o<s.length;o++)if(l=s[o]){let h=i[o],{open:a,close:c}=l;r.push({from:a.pos-h.open.length,to:a.pos+a.margin},{from:c.pos-c.margin,to:c.pos+h.close.length})}return{changes:r}}return null}function Xu(n,e,t=e.selection.ranges){let i=[],s=-1;for(let{from:r,to:o}of t){let l=i.length,h=1e9;for(let a=r;a<=o;){let c=e.doc.lineAt(a);if(c.from>s&&(r==o||o>c.from)){s=c.from;let f=_s(e,a).line;if(!f)continue;let u=/^\s*/.exec(c.text)[0].length,d=u==c Line truncated
`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp}create(){return this.regexp?new op(this):new rp(this)}getCursor(e,t=0,i=e.length){return this.regexp?Mt(this,e,t,i):At(this,e,t,i)}}class la{constructor(e){this.spec=e}}function At(n,e,t,i){return new Ht(e,n.unquoted,t,i,n.caseSensitive?void 0:s=>s.toLowerCase())}class rp extends la{constructor(e){super(e)}nextMatch(e,t,i){let s=At(this.spec,e,i,e.length).nextOverlapping();return s.done&&(s=At(this.spec,e,0,t).nextOverlapping()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=i;;){let r=Math.max(t,s-1e4-this.spec.unquoted.length),o=At(this.spec,e,r,s),l=null;for(;!o.nextOverlapping().done;)l=o.value;if(l)return l;if(r==t)return null;s-=1e4}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.length)}getReplacement(e){return this.spec.replace}matchAll(e,t){let i=At(this.spec,e,0,e.length),s=[];for(;!i.next().done;){if(s.length>=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=At(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}function Mt(n,e,t,i){return new na(e,n.search,n.caseSensitive?void 0:{ignoreCase:!0},t,i)}class op extends la{nextMatch(e,t,i){let s=Mt(this.spec,e,i,e.length).next();return s.done&&(s=Mt(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=1;;s++){let r=Math.max(t,i-s*1e4),o=Mt(this.spec,e,r,i),l=null;for(;!o.next().done;)l=o.value;if(l&&(r==t||l.from>r+10))return l;if(r==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.length)}getReplacement(e){return this.spec.replace.replace(/\$([$&\d+])/g,(t,i)=>i=="$"?"$":i=="&"?e.match[0]:i!="0"&&+i<e.match.length?e.match[i]:t)}matchAll(e,t){let i=Mt(this.spec,e,0,e.length),s=[];for(;!i.next().done;){if(s.length>=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=Mt(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}const fi=H.define(),tr=H.define(),it=ke.define({create(n){return new zn(Ts(n).create(),null)},update(n,e){for(let t of e.effects)t.is(fi)?n=new zn(t.value.create(),n.panel):t.is(tr)&&(n=new zn(n.query,t.value?ir:null));return n},provide:n=>Gi.from(n,e=>e.panel)});class zn{constructor(e,t){this.query=e,this.panel=t}}const lp=R.mark({class:"cm-searchMatch"}),hp=R.mark({class:"cm-searchMatch cm-searchMatch-selected"}),ap=ue.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(it))}update(n){let e=n.state.field(it);(e!=n.startState.field(it)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return R.none;let{view:t}=this,i=new gt;for(let s=0,r=t.visibleRanges,o=r.length;s<o;s++){let{from:l,to:h}=r[s];for(;s<o-1&&h>r[s+1].from-2*250;)h=r[++s].to;n.highlight(t.state.doc,l,h,(a,c)=>{let f=t.state.selection.ranges.some(u=>u.from==a&&u.to==c);i.add(a,c,f?hp:lp)})}return i.finish()}},{decorations:n=>n.decorations});function pi(n){return e=>{let t=e.state.field(it,!1);return t&&t.query.spec.valid?n(e,t):ha(e)}}const en=pi((n,{query:e})=>{let{from:t,to:i}=n.state.selection.main,s=e.nextMatch(n.state.doc,t,i);return!s||s.from==t&&s.to==i?!1:(n.dispatch({selection:{anchor:s.from,head:s.to},scrollIntoView:!0,effects:nr(n,s),userEvent:"select.search"}),!0)}),tn=pi((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main,r=e.prevMatch(t.doc,i,s);return r?(n.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:nr(n,r),userEvent:"select.search"}),!0):!1}),cp=pi((n,{query:e})=>{let t=e.matchAll(n.state.doc,1e3);return!t||!t.length?!1:(n.dispatch({selection:m.create(t.map(i=>m.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),fp=({state:n,dispatch:e})=>{let t=n.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:s}=t.main,r=[],o=0;for(let l=new Ht(n.doc,n.sliceDoc(i,s));!l.next().done;){if(r.length>1e3)return!1;l.value.from==i&&(o=r.length),r.push(m.range(l.value.from,l.value.to))}return e(n.update({selection:m.create(r,o),userEvent:"select.search.matches"})),!0},Po=pi((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t.doc,i,i);if(!r)return!1;let o=[],l,h,a=[];if(r.from==i&&r.to==s&&(h=t.toText(e.getReplacement(r)),o.push({from:r.from,to:r.to,insert:h}),r=e.nextMatch(t.doc,r.from,r.to),a.push(O.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+"."))),r){let c=o.length==0||o[0].from>=r.to?0:r.to-r.from-h.length;l={anchor:r.from-c,head:r.to-c},a.push(nr(n,r))}return n.dispatch({changes:o,selection:l,scrollIntoView:!!l,effects:a,userEvent:"input.replace"}),!0}),up=pi((n,{query:e})=>{if(n.state.readOnly)return!1;let t=e.matchAll(n.state.doc,1e9).map(s=>{let{from:r,to:o}=s;re Line truncated
@@ -1,2 +1,2 @@
import{S as E,i as G,s as I,F as K,c as F,m as B,t as H,a as N,d as T,C as M,w as q,e as c,f as u,g as b,h as _,x as O,o as w,q as J,b as k,r as L,u as h,v as Q,j as U,l as V,A as X,p as W,B as Y,D as Z,z as S}from"./index.6f2d3c23.js";function y(f){let e,o,s;return{c(){e=q("for "),o=c("strong"),s=q(f[3]),u(o,"class","txt-nowrap")},m(l,t){b(l,e,t),b(l,o,t),_(o,s)},p(l,t){t&8&&O(s,l[3])},d(l){l&&w(e),l&&w(o)}}}function x(f){let e,o,s,l,t,r,p,d;return{c(){e=c("label"),o=q("New password"),l=k(),t=c("input"),u(e,"for",s=f[8]),u(t,"type","password"),u(t,"id",r=f[8]),t.required=!0,t.autofocus=!0},m(n,i){b(n,e,i),_(e,o),b(n,l,i),b(n,t,i),S(t,f[0]),t.focus(),p||(d=h(t,"input",f[6]),p=!0)},p(n,i){i&256&&s!==(s=n[8])&&u(e,"for",s),i&256&&r!==(r=n[8])&&u(t,"id",r),i&1&&t.value!==n[0]&&S(t,n[0])},d(n){n&&w(e),n&&w(l),n&&w(t),p=!1,d()}}}function ee(f){let e,o,s,l,t,r,p,d;return{c(){e=c("label"),o=q("New password confirm"),l=k(),t=c("input"),u(e,"for",s=f[8]),u(t,"type","password"),u(t,"id",r=f[8]),t.required=!0},m(n,i){b(n,e,i),_(e,o),b(n,l,i),b(n,t,i),S(t,f[1]),p||(d=h(t,"input",f[7]),p=!0)},p(n,i){i&256&&s!==(s=n[8])&&u(e,"for",s),i&256&&r!==(r=n[8])&&u(t,"id",r),i&2&&t.value!==n[1]&&S(t,n[1])},d(n){n&&w(e),n&&w(l),n&&w(t),p=!1,d()}}}function te(f){let e,o,s,l,t,r,p,d,n,i,g,R,C,v,P,A,j,m=f[3]&&y(f);return r=new J({props:{class:"form-field required",name:"password",$$slots:{default:[x,({uniqueId:a})=>({8:a}),({uniqueId:a})=>a?256:0]},$$scope:{ctx:f}}}),d=new J({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[ee,({uniqueId:a})=>({8:a}),({uniqueId:a})=>a?256:0]},$$scope:{ctx:f}}}),{c(){e=c("form"),o=c("div"),s=c("h4"),l=q(`Reset your admin password
`),m&&m.c(),t=k(),F(r.$$.fragment),p=k(),F(d.$$.fragment),n=k(),i=c("button"),g=c("span"),g.textContent="Set new password",R=k(),C=c("div"),v=c("a"),v.textContent="Back to login",u(s,"class","m-b-xs"),u(o,"class","content txt-center m-b-sm"),u(g,"class","txt"),u(i,"type","submit"),u(i,"class","btn btn-lg btn-block"),i.disabled=f[2],L(i,"btn-loading",f[2]),u(e,"class","m-b-base"),u(v,"href","/login"),u(v,"class","link-hint"),u(C,"class","content txt-center")},m(a,$){b(a,e,$),_(e,o),_(o,s),_(s,l),m&&m.m(s,null),_(e,t),B(r,e,null),_(e,p),B(d,e,null),_(e,n),_(e,i),_(i,g),b(a,R,$),b(a,C,$),_(C,v),P=!0,A||(j=[h(e,"submit",Q(f[4])),U(V.call(null,v))],A=!0)},p(a,$){a[3]?m?m.p(a,$):(m=y(a),m.c(),m.m(s,null)):m&&(m.d(1),m=null);const z={};$&769&&(z.$$scope={dirty:$,ctx:a}),r.$set(z);const D={};$&770&&(D.$$scope={dirty:$,ctx:a}),d.$set(D),(!P||$&4)&&(i.disabled=a[2]),$&4&&L(i,"btn-loading",a[2])},i(a){P||(H(r.$$.fragment,a),H(d.$$.fragment,a),P=!0)},o(a){N(r.$$.fragment,a),N(d.$$.fragment,a),P=!1},d(a){a&&w(e),m&&m.d(),T(r),T(d),a&&w(R),a&&w(C),A=!1,X(j)}}}function se(f){let e,o;return e=new K({props:{$$slots:{default:[te]},$$scope:{ctx:f}}}),{c(){F(e.$$.fragment)},m(s,l){B(e,s,l),o=!0},p(s,[l]){const t={};l&527&&(t.$$scope={dirty:l,ctx:s}),e.$set(t)},i(s){o||(H(e.$$.fragment,s),o=!0)},o(s){N(e.$$.fragment,s),o=!1},d(s){T(e,s)}}}function le(f,e,o){let s,{params:l}=e,t="",r="",p=!1;async function d(){if(!p){o(2,p=!0);try{await W.Admins.confirmPasswordReset(l==null?void 0:l.token,t,r),Y("Successfully set a new admin password."),Z("/")}catch(g){W.errorResponseHandler(g)}o(2,p=!1)}}function n(){t=this.value,o(0,t)}function i(){r=this.value,o(1,r)}return f.$$set=g=>{"params"in g&&o(5,l=g.params)},f.$$.update=()=>{f.$$.dirty&32&&o(3,s=M.getJWTPayload(l==null?void 0:l.token).email||"")},[t,r,p,s,d,l,n,i]}class ae extends E{constructor(e){super(),G(this,e,le,se,I,{params:5})}}export{ae as default};
import{S as E,i as G,s as I,F as K,c as F,m as B,t as H,a as N,d as T,C as M,q as J,e as c,w as q,b as k,f as u,r as L,g as b,h as _,u as h,v as O,j as Q,l as U,o as w,A as V,p as W,B as X,D as Y,x as Z,z as S}from"./index.f5b1cef3.js";function y(f){let e,o,s;return{c(){e=q("for "),o=c("strong"),s=q(f[3]),u(o,"class","txt-nowrap")},m(l,t){b(l,e,t),b(l,o,t),_(o,s)},p(l,t){t&8&&Z(s,l[3])},d(l){l&&w(e),l&&w(o)}}}function x(f){let e,o,s,l,t,r,p,d;return{c(){e=c("label"),o=q("New password"),l=k(),t=c("input"),u(e,"for",s=f[8]),u(t,"type","password"),u(t,"id",r=f[8]),t.required=!0,t.autofocus=!0},m(n,i){b(n,e,i),_(e,o),b(n,l,i),b(n,t,i),S(t,f[0]),t.focus(),p||(d=h(t,"input",f[6]),p=!0)},p(n,i){i&256&&s!==(s=n[8])&&u(e,"for",s),i&256&&r!==(r=n[8])&&u(t,"id",r),i&1&&t.value!==n[0]&&S(t,n[0])},d(n){n&&w(e),n&&w(l),n&&w(t),p=!1,d()}}}function ee(f){let e,o,s,l,t,r,p,d;return{c(){e=c("label"),o=q("New password confirm"),l=k(),t=c("input"),u(e,"for",s=f[8]),u(t,"type","password"),u(t,"id",r=f[8]),t.required=!0},m(n,i){b(n,e,i),_(e,o),b(n,l,i),b(n,t,i),S(t,f[1]),p||(d=h(t,"input",f[7]),p=!0)},p(n,i){i&256&&s!==(s=n[8])&&u(e,"for",s),i&256&&r!==(r=n[8])&&u(t,"id",r),i&2&&t.value!==n[1]&&S(t,n[1])},d(n){n&&w(e),n&&w(l),n&&w(t),p=!1,d()}}}function te(f){let e,o,s,l,t,r,p,d,n,i,g,R,C,v,P,A,j,m=f[3]&&y(f);return r=new J({props:{class:"form-field required",name:"password",$$slots:{default:[x,({uniqueId:a})=>({8:a}),({uniqueId:a})=>a?256:0]},$$scope:{ctx:f}}}),d=new J({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[ee,({uniqueId:a})=>({8:a}),({uniqueId:a})=>a?256:0]},$$scope:{ctx:f}}}),{c(){e=c("form"),o=c("div"),s=c("h4"),l=q(`Reset your admin password
`),m&&m.c(),t=k(),F(r.$$.fragment),p=k(),F(d.$$.fragment),n=k(),i=c("button"),g=c("span"),g.textContent="Set new password",R=k(),C=c("div"),v=c("a"),v.textContent="Back to login",u(s,"class","m-b-xs"),u(o,"class","content txt-center m-b-sm"),u(g,"class","txt"),u(i,"type","submit"),u(i,"class","btn btn-lg btn-block"),i.disabled=f[2],L(i,"btn-loading",f[2]),u(e,"class","m-b-base"),u(v,"href","/login"),u(v,"class","link-hint"),u(C,"class","content txt-center")},m(a,$){b(a,e,$),_(e,o),_(o,s),_(s,l),m&&m.m(s,null),_(e,t),B(r,e,null),_(e,p),B(d,e,null),_(e,n),_(e,i),_(i,g),b(a,R,$),b(a,C,$),_(C,v),P=!0,A||(j=[h(e,"submit",O(f[4])),Q(U.call(null,v))],A=!0)},p(a,$){a[3]?m?m.p(a,$):(m=y(a),m.c(),m.m(s,null)):m&&(m.d(1),m=null);const z={};$&769&&(z.$$scope={dirty:$,ctx:a}),r.$set(z);const D={};$&770&&(D.$$scope={dirty:$,ctx:a}),d.$set(D),(!P||$&4)&&(i.disabled=a[2]),$&4&&L(i,"btn-loading",a[2])},i(a){P||(H(r.$$.fragment,a),H(d.$$.fragment,a),P=!0)},o(a){N(r.$$.fragment,a),N(d.$$.fragment,a),P=!1},d(a){a&&w(e),m&&m.d(),T(r),T(d),a&&w(R),a&&w(C),A=!1,V(j)}}}function se(f){let e,o;return e=new K({props:{$$slots:{default:[te]},$$scope:{ctx:f}}}),{c(){F(e.$$.fragment)},m(s,l){B(e,s,l),o=!0},p(s,[l]){const t={};l&527&&(t.$$scope={dirty:l,ctx:s}),e.$set(t)},i(s){o||(H(e.$$.fragment,s),o=!0)},o(s){N(e.$$.fragment,s),o=!1},d(s){T(e,s)}}}function le(f,e,o){let s,{params:l}=e,t="",r="",p=!1;async function d(){if(!p){o(2,p=!0);try{await W.Admins.confirmPasswordReset(l==null?void 0:l.token,t,r),X("Successfully set a new admin password."),Y("/")}catch(g){W.errorResponseHandler(g)}o(2,p=!1)}}function n(){t=this.value,o(0,t)}function i(){r=this.value,o(1,r)}return f.$$set=g=>{"params"in g&&o(5,l=g.params)},f.$$.update=()=>{f.$$.dirty&32&&o(3,s=M.getJWTPayload(l==null?void 0:l.token).email||"")},[t,r,p,s,d,l,n,i]}class ae extends E{constructor(e){super(),G(this,e,le,se,I,{params:5})}}export{ae as default};
@@ -1,2 +1,2 @@
import{S as E,i as M,s as T,F as j,c as H,m as L,t as w,a as y,d as S,b as g,e as _,f as p,g as k,h as d,j as z,l as B,k as N,n as D,o as v,p as C,q as G,r as F,u as A,v as I,w as h,x as J,y as P,z as R}from"./index.6f2d3c23.js";function K(c){let e,s,n,l,t,o,f,m,i,a,b,u;return l=new G({props:{class:"form-field required",name:"email",$$slots:{default:[Q,({uniqueId:r})=>({5:r}),({uniqueId:r})=>r?32:0]},$$scope:{ctx:c}}}),{c(){e=_("form"),s=_("div"),s.innerHTML=`<h4 class="m-b-xs">Forgotten admin password</h4>
import{S as E,i as M,s as T,F as j,c as H,m as L,t as w,a as y,d as S,b as g,e as _,f as p,g as k,h as d,j as z,l as B,k as N,n as D,o as v,p as C,q as G,r as F,u as A,v as I,w as h,x as J,y as P,z as R}from"./index.f5b1cef3.js";function K(c){let e,s,n,l,t,o,f,m,i,a,b,u;return l=new G({props:{class:"form-field required",name:"email",$$slots:{default:[Q,({uniqueId:r})=>({5:r}),({uniqueId:r})=>r?32:0]},$$scope:{ctx:c}}}),{c(){e=_("form"),s=_("div"),s.innerHTML=`<h4 class="m-b-xs">Forgotten admin password</h4>
<p>Enter the email associated with your account and we\u2019ll send you a recovery link:</p>`,n=g(),H(l.$$.fragment),t=g(),o=_("button"),f=_("i"),m=g(),i=_("span"),i.textContent="Send recovery link",p(s,"class","content txt-center m-b-sm"),p(f,"class","ri-mail-send-line"),p(i,"class","txt"),p(o,"type","submit"),p(o,"class","btn btn-lg btn-block"),o.disabled=c[1],F(o,"btn-loading",c[1]),p(e,"class","m-b-base")},m(r,$){k(r,e,$),d(e,s),d(e,n),L(l,e,null),d(e,t),d(e,o),d(o,f),d(o,m),d(o,i),a=!0,b||(u=A(e,"submit",I(c[3])),b=!0)},p(r,$){const q={};$&97&&(q.$$scope={dirty:$,ctx:r}),l.$set(q),(!a||$&2)&&(o.disabled=r[1]),$&2&&F(o,"btn-loading",r[1])},i(r){a||(w(l.$$.fragment,r),a=!0)},o(r){y(l.$$.fragment,r),a=!1},d(r){r&&v(e),S(l),b=!1,u()}}}function O(c){let e,s,n,l,t,o,f,m,i;return{c(){e=_("div"),s=_("div"),s.innerHTML='<i class="ri-checkbox-circle-line"></i>',n=g(),l=_("div"),t=_("p"),o=h("Check "),f=_("strong"),m=h(c[0]),i=h(" for the recovery link."),p(s,"class","icon"),p(f,"class","txt-nowrap"),p(l,"class","content"),p(e,"class","alert alert-success")},m(a,b){k(a,e,b),d(e,s),d(e,n),d(e,l),d(l,t),d(t,o),d(t,f),d(f,m),d(t,i)},p(a,b){b&1&&J(m,a[0])},i:P,o:P,d(a){a&&v(e)}}}function Q(c){let e,s,n,l,t,o,f,m;return{c(){e=_("label"),s=h("Email"),l=g(),t=_("input"),p(e,"for",n=c[5]),p(t,"type","email"),p(t,"id",o=c[5]),t.required=!0,t.autofocus=!0},m(i,a){k(i,e,a),d(e,s),k(i,l,a),k(i,t,a),R(t,c[0]),t.focus(),f||(m=A(t,"input",c[4]),f=!0)},p(i,a){a&32&&n!==(n=i[5])&&p(e,"for",n),a&32&&o!==(o=i[5])&&p(t,"id",o),a&1&&t.value!==i[0]&&R(t,i[0])},d(i){i&&v(e),i&&v(l),i&&v(t),f=!1,m()}}}function U(c){let e,s,n,l,t,o,f,m;const i=[O,K],a=[];function b(u,r){return u[2]?0:1}return e=b(c),s=a[e]=i[e](c),{c(){s.c(),n=g(),l=_("div"),t=_("a"),t.textContent="Back to login",p(t,"href","/login"),p(t,"class","link-hint"),p(l,"class","content txt-center")},m(u,r){a[e].m(u,r),k(u,n,r),k(u,l,r),d(l,t),o=!0,f||(m=z(B.call(null,t)),f=!0)},p(u,r){let $=e;e=b(u),e===$?a[e].p(u,r):(N(),y(a[$],1,1,()=>{a[$]=null}),D(),s=a[e],s?s.p(u,r):(s=a[e]=i[e](u),s.c()),w(s,1),s.m(n.parentNode,n))},i(u){o||(w(s),o=!0)},o(u){y(s),o=!1},d(u){a[e].d(u),u&&v(n),u&&v(l),f=!1,m()}}}function V(c){let e,s;return e=new j({props:{$$slots:{default:[U]},$$scope:{ctx:c}}}),{c(){H(e.$$.fragment)},m(n,l){L(e,n,l),s=!0},p(n,[l]){const t={};l&71&&(t.$$scope={dirty:l,ctx:n}),e.$set(t)},i(n){s||(w(e.$$.fragment,n),s=!0)},o(n){y(e.$$.fragment,n),s=!1},d(n){S(e,n)}}}function W(c,e,s){let n="",l=!1,t=!1;async function o(){if(!l){s(1,l=!0);try{await C.Admins.requestPasswordReset(n),s(2,t=!0)}catch(m){C.errorResponseHandler(m)}s(1,l=!1)}}function f(){n=this.value,s(0,n)}return[n,l,t,o,f]}class Y extends E{constructor(e){super(),M(this,e,W,V,T,{})}}export{Y as default};
@@ -1,4 +1,4 @@
import{S as J,i as M,s as N,F as R,c as S,m as U,t as $,a as v,d as z,C as W,E as Y,g as _,k as j,n as A,o as b,p as F,w as y,e as m,f as d,h as k,x as B,q as D,b as C,r as H,u as E,v as G,y as h,z as T}from"./index.6f2d3c23.js";function I(r){let e,s,t,l,n,o,c,a,i,u,g,q,p=r[3]&&L(r);return o=new D({props:{class:"form-field required",name:"password",$$slots:{default:[O,({uniqueId:f})=>({8:f}),({uniqueId:f})=>f?256:0]},$$scope:{ctx:r}}}),{c(){e=m("form"),s=m("div"),t=m("h4"),l=y(`Type your password to confirm changing your email address
`),p&&p.c(),n=C(),S(o.$$.fragment),c=C(),a=m("button"),i=m("span"),i.textContent="Confirm new email",d(t,"class","m-b-xs"),d(s,"class","content txt-center m-b-sm"),d(i,"class","txt"),d(a,"type","submit"),d(a,"class","btn btn-lg btn-block"),a.disabled=r[1],H(a,"btn-loading",r[1])},m(f,w){_(f,e,w),k(e,s),k(s,t),k(t,l),p&&p.m(t,null),k(e,n),U(o,e,null),k(e,c),k(e,a),k(a,i),u=!0,g||(q=E(e,"submit",G(r[4])),g=!0)},p(f,w){f[3]?p?p.p(f,w):(p=L(f),p.c(),p.m(t,null)):p&&(p.d(1),p=null);const P={};w&769&&(P.$$scope={dirty:w,ctx:f}),o.$set(P),(!u||w&2)&&(a.disabled=f[1]),w&2&&H(a,"btn-loading",f[1])},i(f){u||($(o.$$.fragment,f),u=!0)},o(f){v(o.$$.fragment,f),u=!1},d(f){f&&b(e),p&&p.d(),z(o),g=!1,q()}}}function K(r){let e,s,t,l,n;return{c(){e=m("div"),e.innerHTML=`<div class="icon"><i class="ri-checkbox-circle-line"></i></div>
import{S as J,i as M,s as N,F as R,c as S,m as U,t as $,a as v,d as z,C as W,E as Y,g as _,k as j,n as A,o as b,p as F,q as B,e as m,w as y,b as C,f as d,r as H,h as k,u as E,v as D,y as h,x as G,z as T}from"./index.f5b1cef3.js";function I(r){let e,s,t,l,n,o,c,a,i,u,g,q,p=r[3]&&L(r);return o=new B({props:{class:"form-field required",name:"password",$$slots:{default:[O,({uniqueId:f})=>({8:f}),({uniqueId:f})=>f?256:0]},$$scope:{ctx:r}}}),{c(){e=m("form"),s=m("div"),t=m("h4"),l=y(`Type your password to confirm changing your email address
`),p&&p.c(),n=C(),S(o.$$.fragment),c=C(),a=m("button"),i=m("span"),i.textContent="Confirm new email",d(t,"class","m-b-xs"),d(s,"class","content txt-center m-b-sm"),d(i,"class","txt"),d(a,"type","submit"),d(a,"class","btn btn-lg btn-block"),a.disabled=r[1],H(a,"btn-loading",r[1])},m(f,w){_(f,e,w),k(e,s),k(s,t),k(t,l),p&&p.m(t,null),k(e,n),U(o,e,null),k(e,c),k(e,a),k(a,i),u=!0,g||(q=E(e,"submit",D(r[4])),g=!0)},p(f,w){f[3]?p?p.p(f,w):(p=L(f),p.c(),p.m(t,null)):p&&(p.d(1),p=null);const P={};w&769&&(P.$$scope={dirty:w,ctx:f}),o.$set(P),(!u||w&2)&&(a.disabled=f[1]),w&2&&H(a,"btn-loading",f[1])},i(f){u||($(o.$$.fragment,f),u=!0)},o(f){v(o.$$.fragment,f),u=!1},d(f){f&&b(e),p&&p.d(),z(o),g=!1,q()}}}function K(r){let e,s,t,l,n;return{c(){e=m("div"),e.innerHTML=`<div class="icon"><i class="ri-checkbox-circle-line"></i></div>
<div class="content txt-bold"><p>Email address changed</p>
<p>You can now sign in with your new email address.</p></div>`,s=C(),t=m("button"),t.textContent="Close",d(e,"class","alert alert-success"),d(t,"type","button"),d(t,"class","btn btn-secondary btn-block")},m(o,c){_(o,e,c),_(o,s,c),_(o,t,c),l||(n=E(t,"click",r[6]),l=!0)},p:h,i:h,o:h,d(o){o&&b(e),o&&b(s),o&&b(t),l=!1,n()}}}function L(r){let e,s,t;return{c(){e=y("to "),s=m("strong"),t=y(r[3]),d(s,"class","txt-nowrap")},m(l,n){_(l,e,n),_(l,s,n),k(s,t)},p(l,n){n&8&&B(t,l[3])},d(l){l&&b(e),l&&b(s)}}}function O(r){let e,s,t,l,n,o,c,a;return{c(){e=m("label"),s=y("Password"),l=C(),n=m("input"),d(e,"for",t=r[8]),d(n,"type","password"),d(n,"id",o=r[8]),n.required=!0,n.autofocus=!0},m(i,u){_(i,e,u),k(e,s),_(i,l,u),_(i,n,u),T(n,r[0]),n.focus(),c||(a=E(n,"input",r[7]),c=!0)},p(i,u){u&256&&t!==(t=i[8])&&d(e,"for",t),u&256&&o!==(o=i[8])&&d(n,"id",o),u&1&&n.value!==i[0]&&T(n,i[0])},d(i){i&&b(e),i&&b(l),i&&b(n),c=!1,a()}}}function Q(r){let e,s,t,l;const n=[K,I],o=[];function c(a,i){return a[2]?0:1}return e=c(r),s=o[e]=n[e](r),{c(){s.c(),t=Y()},m(a,i){o[e].m(a,i),_(a,t,i),l=!0},p(a,i){let u=e;e=c(a),e===u?o[e].p(a,i):(j(),v(o[u],1,1,()=>{o[u]=null}),A(),s=o[e],s?s.p(a,i):(s=o[e]=n[e](a),s.c()),$(s,1),s.m(t.parentNode,t))},i(a){l||($(s),l=!0)},o(a){v(s),l=!1},d(a){o[e].d(a),a&&b(t)}}}function V(r){let e,s;return e=new R({props:{nobranding:!0,$$slots:{default:[Q]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(t,l){U(e,t,l),s=!0},p(t,[l]){const n={};l&527&&(n.$$scope={dirty:l,ctx:t}),e.$set(n)},i(t){s||($(e.$$.fragment,t),s=!0)},o(t){v(e.$$.fragment,t),s=!1},d(t){z(e,t)}}}function X(r,e,s){let t,{params:l}=e,n="",o=!1,c=!1;async function a(){if(!o){s(1,o=!0);try{await F.Users.confirmEmailChange(l==null?void 0:l.token,n),s(2,c=!0)}catch(g){F.errorResponseHandler(g)}s(1,o=!1)}}const i=()=>window.close();function u(){n=this.value,s(0,n)}return r.$$set=g=>{"params"in g&&s(5,l=g.params)},r.$$.update=()=>{r.$$.dirty&32&&s(3,t=W.getJWTPayload(l==null?void 0:l.token).newEmail||"")},[n,o,c,t,a,l,i,u]}class x extends J{constructor(e){super(),M(this,e,X,V,N,{params:5})}}export{x as default};
<p>You can now sign in with your new email address.</p></div>`,s=C(),t=m("button"),t.textContent="Close",d(e,"class","alert alert-success"),d(t,"type","button"),d(t,"class","btn btn-secondary btn-block")},m(o,c){_(o,e,c),_(o,s,c),_(o,t,c),l||(n=E(t,"click",r[6]),l=!0)},p:h,i:h,o:h,d(o){o&&b(e),o&&b(s),o&&b(t),l=!1,n()}}}function L(r){let e,s,t;return{c(){e=y("to "),s=m("strong"),t=y(r[3]),d(s,"class","txt-nowrap")},m(l,n){_(l,e,n),_(l,s,n),k(s,t)},p(l,n){n&8&&G(t,l[3])},d(l){l&&b(e),l&&b(s)}}}function O(r){let e,s,t,l,n,o,c,a;return{c(){e=m("label"),s=y("Password"),l=C(),n=m("input"),d(e,"for",t=r[8]),d(n,"type","password"),d(n,"id",o=r[8]),n.required=!0,n.autofocus=!0},m(i,u){_(i,e,u),k(e,s),_(i,l,u),_(i,n,u),T(n,r[0]),n.focus(),c||(a=E(n,"input",r[7]),c=!0)},p(i,u){u&256&&t!==(t=i[8])&&d(e,"for",t),u&256&&o!==(o=i[8])&&d(n,"id",o),u&1&&n.value!==i[0]&&T(n,i[0])},d(i){i&&b(e),i&&b(l),i&&b(n),c=!1,a()}}}function Q(r){let e,s,t,l;const n=[K,I],o=[];function c(a,i){return a[2]?0:1}return e=c(r),s=o[e]=n[e](r),{c(){s.c(),t=Y()},m(a,i){o[e].m(a,i),_(a,t,i),l=!0},p(a,i){let u=e;e=c(a),e===u?o[e].p(a,i):(j(),v(o[u],1,1,()=>{o[u]=null}),A(),s=o[e],s?s.p(a,i):(s=o[e]=n[e](a),s.c()),$(s,1),s.m(t.parentNode,t))},i(a){l||($(s),l=!0)},o(a){v(s),l=!1},d(a){o[e].d(a),a&&b(t)}}}function V(r){let e,s;return e=new R({props:{nobranding:!0,$$slots:{default:[Q]},$$scope:{ctx:r}}}),{c(){S(e.$$.fragment)},m(t,l){U(e,t,l),s=!0},p(t,[l]){const n={};l&527&&(n.$$scope={dirty:l,ctx:t}),e.$set(n)},i(t){s||($(e.$$.fragment,t),s=!0)},o(t){v(e.$$.fragment,t),s=!1},d(t){z(e,t)}}}function X(r,e,s){let t,{params:l}=e,n="",o=!1,c=!1;async function a(){if(!o){s(1,o=!0);try{await F.Users.confirmEmailChange(l==null?void 0:l.token,n),s(2,c=!0)}catch(g){F.errorResponseHandler(g)}s(1,o=!1)}}const i=()=>window.close();function u(){n=this.value,s(0,n)}return r.$$set=g=>{"params"in g&&s(5,l=g.params)},r.$$.update=()=>{r.$$.dirty&32&&s(3,t=W.getJWTPayload(l==null?void 0:l.token).newEmail||"")},[n,o,c,t,a,l,i,u]}class x extends J{constructor(e){super(),M(this,e,X,V,N,{params:5})}}export{x as default};
@@ -1,4 +1,4 @@
import{S as W,i as Y,s as j,F as A,c as H,m as N,t as P,a as q,d as S,C as B,E as D,g as _,k as G,n as I,o as m,p as z,w as y,e as b,h as w,x as K,q as E,b as C,f as c,r as J,u as h,v as O,y as F,z as R}from"./index.6f2d3c23.js";function Q(i){let e,l,t,n,s,o,p,a,r,u,v,g,k,L,d=i[4]&&M(i);return o=new E({props:{class:"form-field required",name:"password",$$slots:{default:[X,({uniqueId:f})=>({10:f}),({uniqueId:f})=>f?1024:0]},$$scope:{ctx:i}}}),a=new E({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[Z,({uniqueId:f})=>({10:f}),({uniqueId:f})=>f?1024:0]},$$scope:{ctx:i}}}),{c(){e=b("form"),l=b("div"),t=b("h4"),n=y(`Reset your user password
`),d&&d.c(),s=C(),H(o.$$.fragment),p=C(),H(a.$$.fragment),r=C(),u=b("button"),v=b("span"),v.textContent="Set new password",c(t,"class","m-b-xs"),c(l,"class","content txt-center m-b-sm"),c(v,"class","txt"),c(u,"type","submit"),c(u,"class","btn btn-lg btn-block"),u.disabled=i[2],J(u,"btn-loading",i[2])},m(f,$){_(f,e,$),w(e,l),w(l,t),w(t,n),d&&d.m(t,null),w(e,s),N(o,e,null),w(e,p),N(a,e,null),w(e,r),w(e,u),w(u,v),g=!0,k||(L=h(e,"submit",O(i[5])),k=!0)},p(f,$){f[4]?d?d.p(f,$):(d=M(f),d.c(),d.m(t,null)):d&&(d.d(1),d=null);const T={};$&3073&&(T.$$scope={dirty:$,ctx:f}),o.$set(T);const U={};$&3074&&(U.$$scope={dirty:$,ctx:f}),a.$set(U),(!g||$&4)&&(u.disabled=f[2]),$&4&&J(u,"btn-loading",f[2])},i(f){g||(P(o.$$.fragment,f),P(a.$$.fragment,f),g=!0)},o(f){q(o.$$.fragment,f),q(a.$$.fragment,f),g=!1},d(f){f&&m(e),d&&d.d(),S(o),S(a),k=!1,L()}}}function V(i){let e,l,t,n,s;return{c(){e=b("div"),e.innerHTML=`<div class="icon"><i class="ri-checkbox-circle-line"></i></div>
import{S as W,i as Y,s as j,F as A,c as H,m as N,t as P,a as q,d as S,C as B,E as D,g as _,k as G,n as I,o as m,p as z,q as E,e as b,w as y,b as C,f as c,r as J,h as w,u as h,v as K,y as F,x as O,z as R}from"./index.f5b1cef3.js";function Q(i){let e,l,t,n,s,o,p,a,r,u,v,g,k,L,d=i[4]&&M(i);return o=new E({props:{class:"form-field required",name:"password",$$slots:{default:[X,({uniqueId:f})=>({10:f}),({uniqueId:f})=>f?1024:0]},$$scope:{ctx:i}}}),a=new E({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[Z,({uniqueId:f})=>({10:f}),({uniqueId:f})=>f?1024:0]},$$scope:{ctx:i}}}),{c(){e=b("form"),l=b("div"),t=b("h4"),n=y(`Reset your user password
`),d&&d.c(),s=C(),H(o.$$.fragment),p=C(),H(a.$$.fragment),r=C(),u=b("button"),v=b("span"),v.textContent="Set new password",c(t,"class","m-b-xs"),c(l,"class","content txt-center m-b-sm"),c(v,"class","txt"),c(u,"type","submit"),c(u,"class","btn btn-lg btn-block"),u.disabled=i[2],J(u,"btn-loading",i[2])},m(f,$){_(f,e,$),w(e,l),w(l,t),w(t,n),d&&d.m(t,null),w(e,s),N(o,e,null),w(e,p),N(a,e,null),w(e,r),w(e,u),w(u,v),g=!0,k||(L=h(e,"submit",K(i[5])),k=!0)},p(f,$){f[4]?d?d.p(f,$):(d=M(f),d.c(),d.m(t,null)):d&&(d.d(1),d=null);const T={};$&3073&&(T.$$scope={dirty:$,ctx:f}),o.$set(T);const U={};$&3074&&(U.$$scope={dirty:$,ctx:f}),a.$set(U),(!g||$&4)&&(u.disabled=f[2]),$&4&&J(u,"btn-loading",f[2])},i(f){g||(P(o.$$.fragment,f),P(a.$$.fragment,f),g=!0)},o(f){q(o.$$.fragment,f),q(a.$$.fragment,f),g=!1},d(f){f&&m(e),d&&d.d(),S(o),S(a),k=!1,L()}}}function V(i){let e,l,t,n,s;return{c(){e=b("div"),e.innerHTML=`<div class="icon"><i class="ri-checkbox-circle-line"></i></div>
<div class="content txt-bold"><p>Password changed</p>
<p>You can now sign in with your new password.</p></div>`,l=C(),t=b("button"),t.textContent="Close",c(e,"class","alert alert-success"),c(t,"type","button"),c(t,"class","btn btn-secondary btn-block")},m(o,p){_(o,e,p),_(o,l,p),_(o,t,p),n||(s=h(t,"click",i[7]),n=!0)},p:F,i:F,o:F,d(o){o&&m(e),o&&m(l),o&&m(t),n=!1,s()}}}function M(i){let e,l,t;return{c(){e=y("for "),l=b("strong"),t=y(i[4])},m(n,s){_(n,e,s),_(n,l,s),w(l,t)},p(n,s){s&16&&K(t,n[4])},d(n){n&&m(e),n&&m(l)}}}function X(i){let e,l,t,n,s,o,p,a;return{c(){e=b("label"),l=y("New password"),n=C(),s=b("input"),c(e,"for",t=i[10]),c(s,"type","password"),c(s,"id",o=i[10]),s.required=!0,s.autofocus=!0},m(r,u){_(r,e,u),w(e,l),_(r,n,u),_(r,s,u),R(s,i[0]),s.focus(),p||(a=h(s,"input",i[8]),p=!0)},p(r,u){u&1024&&t!==(t=r[10])&&c(e,"for",t),u&1024&&o!==(o=r[10])&&c(s,"id",o),u&1&&s.value!==r[0]&&R(s,r[0])},d(r){r&&m(e),r&&m(n),r&&m(s),p=!1,a()}}}function Z(i){let e,l,t,n,s,o,p,a;return{c(){e=b("label"),l=y("New password confirm"),n=C(),s=b("input"),c(e,"for",t=i[10]),c(s,"type","password"),c(s,"id",o=i[10]),s.required=!0},m(r,u){_(r,e,u),w(e,l),_(r,n,u),_(r,s,u),R(s,i[1]),p||(a=h(s,"input",i[9]),p=!0)},p(r,u){u&1024&&t!==(t=r[10])&&c(e,"for",t),u&1024&&o!==(o=r[10])&&c(s,"id",o),u&2&&s.value!==r[1]&&R(s,r[1])},d(r){r&&m(e),r&&m(n),r&&m(s),p=!1,a()}}}function x(i){let e,l,t,n;const s=[V,Q],o=[];function p(a,r){return a[3]?0:1}return e=p(i),l=o[e]=s[e](i),{c(){l.c(),t=D()},m(a,r){o[e].m(a,r),_(a,t,r),n=!0},p(a,r){let u=e;e=p(a),e===u?o[e].p(a,r):(G(),q(o[u],1,1,()=>{o[u]=null}),I(),l=o[e],l?l.p(a,r):(l=o[e]=s[e](a),l.c()),P(l,1),l.m(t.parentNode,t))},i(a){n||(P(l),n=!0)},o(a){q(l),n=!1},d(a){o[e].d(a),a&&m(t)}}}function ee(i){let e,l;return e=new A({props:{nobranding:!0,$$slots:{default:[x]},$$scope:{ctx:i}}}),{c(){H(e.$$.fragment)},m(t,n){N(e,t,n),l=!0},p(t,[n]){const s={};n&2079&&(s.$$scope={dirty:n,ctx:t}),e.$set(s)},i(t){l||(P(e.$$.fragment,t),l=!0)},o(t){q(e.$$.fragment,t),l=!1},d(t){S(e,t)}}}function te(i,e,l){let t,{params:n}=e,s="",o="",p=!1,a=!1;async function r(){if(!p){l(2,p=!0);try{await z.Users.confirmPasswordReset(n==null?void 0:n.token,s,o),l(3,a=!0)}catch(k){z.errorResponseHandler(k)}l(2,p=!1)}}const u=()=>window.close();function v(){s=this.value,l(0,s)}function g(){o=this.value,l(1,o)}return i.$$set=k=>{"params"in k&&l(6,n=k.params)},i.$$.update=()=>{i.$$.dirty&64&&l(4,t=B.getJWTPayload(n==null?void 0:n.token).email||"")},[s,o,p,a,t,r,n,u,v,g]}class le extends W{constructor(e){super(),Y(this,e,te,ee,j,{params:6})}}export{le as default};
<p>You can now sign in with your new password.</p></div>`,l=C(),t=b("button"),t.textContent="Close",c(e,"class","alert alert-success"),c(t,"type","button"),c(t,"class","btn btn-secondary btn-block")},m(o,p){_(o,e,p),_(o,l,p),_(o,t,p),n||(s=h(t,"click",i[7]),n=!0)},p:F,i:F,o:F,d(o){o&&m(e),o&&m(l),o&&m(t),n=!1,s()}}}function M(i){let e,l,t;return{c(){e=y("for "),l=b("strong"),t=y(i[4])},m(n,s){_(n,e,s),_(n,l,s),w(l,t)},p(n,s){s&16&&O(t,n[4])},d(n){n&&m(e),n&&m(l)}}}function X(i){let e,l,t,n,s,o,p,a;return{c(){e=b("label"),l=y("New password"),n=C(),s=b("input"),c(e,"for",t=i[10]),c(s,"type","password"),c(s,"id",o=i[10]),s.required=!0,s.autofocus=!0},m(r,u){_(r,e,u),w(e,l),_(r,n,u),_(r,s,u),R(s,i[0]),s.focus(),p||(a=h(s,"input",i[8]),p=!0)},p(r,u){u&1024&&t!==(t=r[10])&&c(e,"for",t),u&1024&&o!==(o=r[10])&&c(s,"id",o),u&1&&s.value!==r[0]&&R(s,r[0])},d(r){r&&m(e),r&&m(n),r&&m(s),p=!1,a()}}}function Z(i){let e,l,t,n,s,o,p,a;return{c(){e=b("label"),l=y("New password confirm"),n=C(),s=b("input"),c(e,"for",t=i[10]),c(s,"type","password"),c(s,"id",o=i[10]),s.required=!0},m(r,u){_(r,e,u),w(e,l),_(r,n,u),_(r,s,u),R(s,i[1]),p||(a=h(s,"input",i[9]),p=!0)},p(r,u){u&1024&&t!==(t=r[10])&&c(e,"for",t),u&1024&&o!==(o=r[10])&&c(s,"id",o),u&2&&s.value!==r[1]&&R(s,r[1])},d(r){r&&m(e),r&&m(n),r&&m(s),p=!1,a()}}}function x(i){let e,l,t,n;const s=[V,Q],o=[];function p(a,r){return a[3]?0:1}return e=p(i),l=o[e]=s[e](i),{c(){l.c(),t=D()},m(a,r){o[e].m(a,r),_(a,t,r),n=!0},p(a,r){let u=e;e=p(a),e===u?o[e].p(a,r):(G(),q(o[u],1,1,()=>{o[u]=null}),I(),l=o[e],l?l.p(a,r):(l=o[e]=s[e](a),l.c()),P(l,1),l.m(t.parentNode,t))},i(a){n||(P(l),n=!0)},o(a){q(l),n=!1},d(a){o[e].d(a),a&&m(t)}}}function ee(i){let e,l;return e=new A({props:{nobranding:!0,$$slots:{default:[x]},$$scope:{ctx:i}}}),{c(){H(e.$$.fragment)},m(t,n){N(e,t,n),l=!0},p(t,[n]){const s={};n&2079&&(s.$$scope={dirty:n,ctx:t}),e.$set(s)},i(t){l||(P(e.$$.fragment,t),l=!0)},o(t){q(e.$$.fragment,t),l=!1},d(t){S(e,t)}}}function te(i,e,l){let t,{params:n}=e,s="",o="",p=!1,a=!1;async function r(){if(!p){l(2,p=!0);try{await z.Users.confirmPasswordReset(n==null?void 0:n.token,s,o),l(3,a=!0)}catch(k){z.errorResponseHandler(k)}l(2,p=!1)}}const u=()=>window.close();function v(){s=this.value,l(0,s)}function g(){o=this.value,l(1,o)}return i.$$set=k=>{"params"in k&&l(6,n=k.params)},i.$$.update=()=>{i.$$.dirty&64&&l(4,t=B.getJWTPayload(n==null?void 0:n.token).email||"")},[s,o,p,a,t,r,n,u,v,g]}class le extends W{constructor(e){super(),Y(this,e,te,ee,j,{params:6})}}export{le as default};
@@ -1,3 +1,3 @@
import{S as k,i as v,s as y,F as w,c as x,m as C,t as g,a as $,d as L,p as H,E as M,g as r,o as a,e as u,b as m,f,u as _,y as p}from"./index.6f2d3c23.js";function P(o){let t,s,e,n,i;return{c(){t=u("div"),t.innerHTML=`<div class="icon"><i class="ri-error-warning-line"></i></div>
import{S as k,i as v,s as y,F as w,c as x,m as C,t as g,a as $,d as L,p as H,E as M,g as r,o as a,e as u,b as m,f,u as _,y as p}from"./index.f5b1cef3.js";function P(o){let t,s,e,n,i;return{c(){t=u("div"),t.innerHTML=`<div class="icon"><i class="ri-error-warning-line"></i></div>
<div class="content txt-bold"><p>Invalid or expired verification token.</p></div>`,s=m(),e=u("button"),e.textContent="Close",f(t,"class","alert alert-danger"),f(e,"type","button"),f(e,"class","btn btn-secondary btn-block")},m(l,c){r(l,t,c),r(l,s,c),r(l,e,c),n||(i=_(e,"click",o[4]),n=!0)},p,d(l){l&&a(t),l&&a(s),l&&a(e),n=!1,i()}}}function S(o){let t,s,e,n,i;return{c(){t=u("div"),t.innerHTML=`<div class="icon"><i class="ri-checkbox-circle-line"></i></div>
<div class="content txt-bold"><p>Successfully verified email address.</p></div>`,s=m(),e=u("button"),e.textContent="Close",f(t,"class","alert alert-success"),f(e,"type","button"),f(e,"class","btn btn-secondary btn-block")},m(l,c){r(l,t,c),r(l,s,c),r(l,e,c),n||(i=_(e,"click",o[3]),n=!0)},p,d(l){l&&a(t),l&&a(s),l&&a(e),n=!1,i()}}}function T(o){let t;return{c(){t=u("div"),t.innerHTML='<div class="loader loader-lg"><em>Please wait...</em></div>',f(t,"class","txt-center")},m(s,e){r(s,t,e)},p,d(s){s&&a(t)}}}function F(o){let t;function s(i,l){return i[1]?T:i[0]?S:P}let e=s(o),n=e(o);return{c(){n.c(),t=M()},m(i,l){n.m(i,l),r(i,t,l)},p(i,l){e===(e=s(i))&&n?n.p(i,l):(n.d(1),n=e(i),n&&(n.c(),n.m(t.parentNode,t)))},d(i){n.d(i),i&&a(t)}}}function U(o){let t,s;return t=new w({props:{nobranding:!0,$$slots:{default:[F]},$$scope:{ctx:o}}}),{c(){x(t.$$.fragment)},m(e,n){C(t,e,n),s=!0},p(e,[n]){const i={};n&67&&(i.$$scope={dirty:n,ctx:e}),t.$set(i)},i(e){s||(g(t.$$.fragment,e),s=!0)},o(e){$(t.$$.fragment,e),s=!1},d(e){L(t,e)}}}function V(o,t,s){let{params:e}=t,n=!1,i=!1;l();async function l(){s(1,i=!0);try{await H.Users.confirmVerification(e==null?void 0:e.token),s(0,n=!0)}catch(d){console.warn(d),s(0,n=!1)}s(1,i=!1)}const c=()=>window.close(),b=()=>window.close();return o.$$set=d=>{"params"in d&&s(2,e=d.params)},[n,i,e,c,b]}class E extends k{constructor(t){super(),v(this,t,V,U,y,{params:2})}}export{E as default};
@@ -1 +1 @@
@font-face{font-family:remixicon;src:url(../fonts/remixicon/remixicon.woff2?v=1) format("woff2"),url(../fonts/remixicon/remixicon.woff?v=1) format("woff"),url(../fonts/remixicon/remixicon.ttf?v=1) format("truetype"),url(../fonts/remixicon/remixicon.svg?v=1#remixicon) format("svg");font-display:swap}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:400;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:400;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:600;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:600;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:700;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:700;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;src:local(""),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff2) format("woff2"),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;src:local(""),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff2) format("woff2"),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff) format("woff")}:root{--baseFontFamily: "Source Sans Pro", sans-serif, emoji;--monospaceFontFamily: "Ubuntu Mono", monospace, emoji;--iconFontFamily: "remixicon";--txtPrimaryColor: #16161a;--txtHintColor: #666f75;--txtDisabledColor: #adb3b8;--primaryColor: #16161a;--bodyColor: #f8f9fa;--baseColor: #ffffff;--baseAlt1Color: #edf0f3;--baseAlt2Color: #dee3e8;--baseAlt3Color: #a9b4bc;--baseAlt4Color: #7c868d;--infoColor: #3da9fc;--infoAltColor: #d8eefe;--successColor: #2cb67d;--successAltColor: #daf6ea;--dangerColor: #ef4565;--dangerAltColor: #fcdee4;--warningColor: #ff8e3c;--warningAltColor: #ffe7d6;--overlayColor: rgba(88, 95, 101, .3);--tooltipColor: rgba(0, 0, 0, .85);--shadowColor: rgba(0, 0, 0, .05);--baseFontSize: 14.5px;--xsFontSize: 12px;--smFontSize: 13px;--lgFontSize: 15px;--xlFontSize: 16px;--baseLineHeight: 22px;--smLineHeight: 16px;--lgLineHeight: 24px;--inputHeight: 34px;--btnHeight: 40px;--xsBtnHeight: 24px;--smBtnHeight: 30px;--lgBtnHeight: 54px;--baseSpacing: 30px;--xsSpacing: 15px;--smSpacing: 20px;--lgSpacing: 50px;--xlSpacing: 60px;--wrapperWidth: 850px;--smWrapperWidth: 420px;--lgWrapperWidth: 1200px;--appSidebarWidth: 75px;--pageSidebarWidth: 220px;--baseAnimationSpeed: .15s;--activeAnimationSpeed: 70ms;--baseRadius: 3px;--lgRadius: 12px;--btnRadius: 3px;accent-color:var(--primaryColor)}html,body,div,span,applet,object,iframe,h1,h2,.breadcrumbs .breadcrumb-item,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}i{font-family:remixicon!important;font-style:normal;font-weight:400;font-size:1.1238rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i:before{vertical-align:top;margin-top:1px;display:inline-block}.ri-24-hours-fill:before{content:"\ea01"}.ri-24-hours-line:before{content:"\ea02"}.ri-4k-fill:before{content:"\ea03"}.ri-4k-line:before{content:"\ea04"}.ri-a-b:befoLine truncated
@font-face{font-family:remixicon;src:url(../fonts/remixicon/remixicon.woff2?v=1) format("woff2"),url(../fonts/remixicon/remixicon.woff?v=1) format("woff"),url(../fonts/remixicon/remixicon.ttf?v=1) format("truetype"),url(../fonts/remixicon/remixicon.svg?v=1#remixicon) format("svg");font-display:swap}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:400;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:400;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:600;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:600;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:700;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff) format("woff")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:700;src:local(""),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff2) format("woff2"),url(../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;src:local(""),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff2) format("woff2"),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;src:local(""),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff2) format("woff2"),url(../fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff) format("woff")}:root{--baseFontFamily: "Source Sans Pro", sans-serif, emoji;--monospaceFontFamily: "Ubuntu Mono", monospace, emoji;--iconFontFamily: "remixicon";--txtPrimaryColor: #16161a;--txtHintColor: #666f75;--txtDisabledColor: #adb3b8;--primaryColor: #16161a;--bodyColor: #f8f9fa;--baseColor: #ffffff;--baseAlt1Color: #edf0f3;--baseAlt2Color: #dee3e8;--baseAlt3Color: #a9b4bc;--baseAlt4Color: #7c868d;--infoColor: #3da9fc;--infoAltColor: #d8eefe;--successColor: #2cb67d;--successAltColor: #d6f5e8;--dangerColor: #ef4565;--dangerAltColor: #fcdee4;--warningColor: #ff8e3c;--warningAltColor: #ffe7d6;--overlayColor: rgba(88, 95, 101, .3);--tooltipColor: rgba(0, 0, 0, .85);--shadowColor: rgba(0, 0, 0, .05);--baseFontSize: 14.5px;--xsFontSize: 12px;--smFontSize: 13px;--lgFontSize: 15px;--xlFontSize: 16px;--baseLineHeight: 22px;--smLineHeight: 16px;--lgLineHeight: 24px;--inputHeight: 34px;--btnHeight: 40px;--xsBtnHeight: 24px;--smBtnHeight: 30px;--lgBtnHeight: 54px;--baseSpacing: 30px;--xsSpacing: 15px;--smSpacing: 20px;--lgSpacing: 50px;--xlSpacing: 60px;--wrapperWidth: 850px;--smWrapperWidth: 420px;--lgWrapperWidth: 1200px;--appSidebarWidth: 75px;--pageSidebarWidth: 220px;--baseAnimationSpeed: .15s;--activeAnimationSpeed: 70ms;--baseRadius: 3px;--lgRadius: 12px;--btnRadius: 3px;accent-color:var(--primaryColor)}html,body,div,span,applet,object,iframe,h1,h2,.breadcrumbs .breadcrumb-item,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}i{font-family:remixicon!important;font-style:normal;font-weight:400;font-size:1.1238rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i:before{vertical-align:top;margin-top:1px;display:inline-block}.ri-24-hours-fill:before{content:"\ea01"}.ri-24-hours-line:before{content:"\ea02"}.ri-4k-fill:before{content:"\ea03"}.ri-4k-line:before{content:"\ea04"}.ri-a-b:befoLine truncated
-366
View File
@@ -1,366 +0,0 @@
const Vb=function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const l of s)if(l.type==="childList")for(const r of l.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&i(r)}).observe(document,{childList:!0,subtree:!0});function t(s){const l={};return s.integrity&&(l.integrity=s.integrity),s.referrerpolicy&&(l.referrerPolicy=s.referrerpolicy),s.crossorigin==="use-credentials"?l.credentials="include":s.crossorigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function i(s){if(s.ep)return;s.ep=!0;const l=t(s);fetch(s.href,l)}};Vb();function oe(){}const Wl=n=>n;function ct(n,e){for(const t in e)n[t]=e[t];return n}function Hg(n){return n()}function bf(){return Object.create(null)}function lt(n){n.forEach(Hg)}function Jn(n){return typeof n=="function"}function De(n,e){return n!=n?e==e:n!==e||n&&typeof n=="object"||typeof n=="function"}let ar;function ei(n,e){return ar||(ar=document.createElement("a")),ar.href=e,n===ar.href}function zb(n){return Object.keys(n).length===0}function qg(n,...e){if(n==null)return oe;const t=n.subscribe(...e);return t.unsubscribe?()=>t.unsubscribe():t}function hn(n,e,t){n.$$.on_destroy.push(qg(e,t))}function Dn(n,e,t,i){if(n){const s=Vg(n,e,t,i);return n[0](s)}}function Vg(n,e,t,i){return n[1]&&i?ct(t.ctx.slice(),n[1](i(e))):t.ctx}function An(n,e,t,i){if(n[2]&&i){const s=n[2](i(t));if(e.dirty===void 0)return s;if(typeof s=="object"){const l=[],r=Math.max(e.dirty.length,s.length);for(let o=0;o<r;o+=1)l[o]=e.dirty[o]|s[o];return l}return e.dirty|s}return e.dirty}function En(n,e,t,i,s,l){if(s){const r=Vg(e,t,i,l);n.p(r,s)}}function Pn(n){if(n.ctx.length>32){const e=[],t=n.ctx.length/32;for(let i=0;i<t;i++)e[i]=-1;return e}return-1}function di(n){const e={};for(const t in n)t[0]!=="$"&&(e[t]=n[t]);return e}function Ut(n,e){const t={};e=new Set(e);for(const i in n)!e.has(i)&&i[0]!=="$"&&(t[i]=n[i]);return t}function yf(n){return n==null?"":n}function zg(n,e,t){return n.set(t),e}function Xe(n){return n&&Jn(n.destroy)?n.destroy:oe}const Bg=typeof window!="undefined";let So=Bg?()=>window.performance.now():()=>Date.now(),yu=Bg?n=>requestAnimationFrame(n):oe;const Ns=new Set;function Ug(n){Ns.forEach(e=>{e.c(n)||(Ns.delete(e),e.f())}),Ns.size!==0&&yu(Ug)}function $o(n){let e;return Ns.size===0&&yu(Ug),{promise:new Promise(t=>{Ns.add(e={c:n,f:t})}),abort(){Ns.delete(e)}}}function m(n,e){n.appendChild(e)}function Wg(n){if(!n)return document;const e=n.getRootNode?n.getRootNode():n.ownerDocument;return e&&e.host?e:n.ownerDocument}function Bb(n){const e=_("style");return Ub(Wg(n),e),e.sheet}function Ub(n,e){m(n.head||n,e)}function w(n,e,t){n.insertBefore(e,t||null)}function k(n){n.parentNode.removeChild(n)}function Bn(n,e){for(let t=0;t<n.length;t+=1)n[t]&&n[t].d(e)}function _(n){return document.createElement(n)}function H(n){return document.createTextNode(n)}function O(){return H(" ")}function st(){return H("")}function Q(n,e,t,i){return n.addEventListener(e,t,i),()=>n.removeEventListener(e,t,i)}function Wt(n){return function(e){return e.preventDefault(),n.call(this,e)}}function Un(n){return function(e){return e.stopPropagation(),n.call(this,e)}}function Yg(n){return function(e){e.target===this&&n.call(this,e)}}function p(n,e,t){t==null?n.removeAttribute(e):n.getAttribute(e)!==t&&n.setAttribute(e,t)}function ci(n,e){const t=Object.getOwnPropertyDescriptors(n.__proto__);for(const i in e)e[i]==null?n.removeAttribute(i):i==="style"?n.style.cssText=e[i]:i==="__value"?n.value=n[i]=e[i]:t[i]&&t[i].set?n[i]=e[i]:p(n,i,e[i])}function Mt(n){return n===""?null:+n}function Wb(n){return Array.from(n.childNodes)}function ge(n,e){e=""+e,n.wholeText!==e&&(n.data=e)}function $e(n,e){n.value=e==null?"":e}function vf(n,e,t,i){t===null?n.style.removeProperty(e):n.style.setProperty(e,t,i?"important":"")}function ee(n,e,t){n.classList[t?"add":"remove"](e)}function Kg(n,e,{bubbles:t=!1,cancelable:i=!1}={}){const s=document.createEvent("CustomEvent");return s.initCustomEvent(n,t,i,e),s}const Xr=new Map;let Qr=0;function Yb(n){let e=5381,t=n.length;for(;t--;)e=(e<<5)-e^n.charCodeAt(t);return e>>>0}function Kb(n,e){const t={stylesheet:Bb(e),rules:{}};return Xr.set(n,t),t}function Fl(n,e,t,i,s,l,r,o=0){const a=16.666/i;let u=`{
`;for(let b=0;b<=1;b+=a){const v=e+(t-e)*l(b);u+=b*100+`%{${r(v,1-v)}}
`}const f=u+`100% {${r(t,1-t)}}
}`,c=`__svelte_${Yb(f)}_${o}`,d=Wg(n),{stylesheet:h,rules:g}=Xr.get(d)||Kb(d,n);g[c]||(g[c]=!0,h.insertRule(`@keyframes ${c} ${f}`,h.cssRules.length));const y=n.style.animation||"";return n.style.animation=`${y?`${y}, `:""}${c} ${i}ms linear ${s}ms 1 both`,Qr+=1,c}function Il(n,e){const t=(n.style.animation||"").split(", "),i=t.filter(e?l=>l.indexOf(e)<0:l=>l.indexOf("__svelte")===-1),s=t.length-i.length;s&&(n.style.animation=i.join(", "),Qr-=s,Qr||Jb())}function Jb(){yu(()=>{Qr||(Xr.forEach(n=>{const{stylesheet:e}=n;let t=e.cssRules.length;for(;t--;)e.deleteRule(t);n.rules={}}),Xr.clear())})}function Gb(n,e,t,i){if(!e)return oe;const s=n.getBoundingClientRect();if(e.left===s.left&&e.right===s.right&&e.top===s.top&&e.bottom===s.bottom)return oe;const{delay:l=0,duration:r=300,easing:o=Wl,start:a=So()+l,end:u=a+r,tick:f=oe,css:c}=t(n,{from:e,to:s},i);let d=!0,h=!1,g;function y(){c&&(g=Fl(n,0,1,r,l,o,c)),l||(h=!0)}function b(){c&&Il(n,g),d=!1}return $o(v=>{if(!h&&v>=a&&(h=!0),h&&v>=u&&(f(1,0),b()),!d)return!1;if(h){const S=v-a,$=0+1*o(S/r);f($,1-$)}return!0}),y(),f(0,1),b}function Zb(n){const e=getComputedStyle(n);if(e.position!=="absolute"&&e.position!=="fixed"){const{width:t,height:i}=e,s=n.getBoundingClientRect();n.style.position="absolute",n.style.width=t,n.style.height=i,Jg(n,s)}}function Jg(n,e){const t=n.getBoundingClientRect();if(e.left!==t.left||e.top!==t.top){const i=getComputedStyle(n),s=i.transform==="none"?"":i.transform;n.style.transform=`${s} translate(${e.left-t.left}px, ${e.top-t.top}px)`}}let Nl;function $l(n){Nl=n}function Co(){if(!Nl)throw new Error("Function called outside component initialization");return Nl}function pi(n){Co().$$.on_mount.push(n)}function xb(n){Co().$$.after_update.push(n)}function Xb(n){Co().$$.on_destroy.push(n)}function _n(){const n=Co();return(e,t,{cancelable:i=!1}={})=>{const s=n.$$.callbacks[e];if(s){const l=Kg(e,t,{cancelable:i});return s.slice().forEach(r=>{r.call(n,l)}),!l.defaultPrevented}return!0}}function ut(n,e){const t=n.$$.callbacks[e.type];t&&t.slice().forEach(i=>i.call(this,e))}const bl=[],pe=[],qr=[],Pa=[],Gg=Promise.resolve();let La=!1;function Zg(){La||(La=!0,Gg.then(xg))}function Oi(){return Zg(),Gg}function Ot(n){qr.push(n)}function je(n){Pa.push(n)}const Ho=new Set;let ur=0;function xg(){const n=Nl;do{for(;ur<bl.length;){const e=bl[ur];ur++,$l(e),Qb(e.$$)}for($l(null),bl.length=0,ur=0;pe.length;)pe.pop()();for(let e=0;e<qr.length;e+=1){const t=qr[e];Ho.has(t)||(Ho.add(t),t())}qr.length=0}while(bl.length);for(;Pa.length;)Pa.pop()();La=!1,Ho.clear(),$l(n)}function Qb(n){if(n.fragment!==null){n.update(),lt(n.before_update);const e=n.dirty;n.dirty=[-1],n.fragment&&n.fragment.p(n.ctx,e),n.after_update.forEach(Ot)}}let il;function vu(){return il||(il=Promise.resolve(),il.then(()=>{il=null})),il}function ds(n,e,t){n.dispatchEvent(Kg(`${e?"intro":"outro"}${t}`))}const Vr=new Set;let ai;function Me(){ai={r:0,c:[],p:ai}}function Oe(){ai.r||lt(ai.c),ai=ai.p}function A(n,e){n&&n.i&&(Vr.delete(n),n.i(e))}function F(n,e,t,i){if(n&&n.o){if(Vr.has(n))return;Vr.add(n),ai.c.push(()=>{Vr.delete(n),i&&(t&&n.d(1),i())}),n.o(e)}else i&&i()}const ku={duration:0};function wu(n,e,t){let i=e(n,t),s=!1,l,r,o=0;function a(){l&&Il(n,l)}function u(){const{delay:c=0,duration:d=300,easing:h=Wl,tick:g=oe,css:y}=i||ku;y&&(l=Fl(n,0,1,d,c,h,y,o++)),g(0,1);const b=So()+c,v=b+d;r&&r.abort(),s=!0,Ot(()=>ds(n,!0,"start")),r=$o(S=>{if(s){if(S>=v)return g(1,0),ds(n,!0,"end"),a(),s=!1;if(S>=b){const $=h((S-b)/d);g($,1-$)}}return s})}let f=!1;return{start(){f||(f=!0,Il(n),Jn(i)?(i=i(),vu().then(u)):u())},invalidate(){f=!1},end(){s&&(a(),s=!1)}}}function Xg(n,e,t){let i=e(n,t),s=!0,l;const r=ai;r.r+=1;function o(){const{delay:a=0,duration:u=300,easing:f=Wl,tick:c=oe,css:d}=i||ku;d&&(l=Fl(n,1,0,u,a,f,d));const h=So()+a,g=h+u;Ot(()=>ds(n,!1,"start")),$o(y=>{if(s){if(y>=g)return c(0,1),ds(n,!1,"end"),--r.r||lt(r.c),!1;if(y>=h){const b=f((y-h)/u);c(1-b,b)}}return s})}return Jn(i)?vu().then(()=>{i=i(),o()}):o(),{end(a){a&&i.tick&&i.tick(1,0),s&&(l&&Il(n,l),s=!1)}}}function ft(n,e,t,i){let s=e(n,t),l=i?0:1,r=null,o=null,a=null;function u(){a&&Il(n,a)}function f(d,h){const g=d.b-l;return h*=Math.abs(g),{a:l,b:d.b,d:g,duration:h,start:d.start,end:d.start+h,group:d.group}}function c(d){const{delay:h=0,duration:g=300,easing:y=Wl,tick:b=oe,css:v}=s||ku,S={start:So()+h,b:d};d||(S.group=ai,ai.r+=1),r||o?o=S:(v&&(u(),a=Fl(n,l,d,g,h,y,v)),d&&b(0,1),r=f(S,g),Ot(()=>ds(n,d,"start")),$o($=>{if(o&&$>o.start&&(r=f(o,g),o=null,ds(n,r.b,"start"),v&&(u(),a=Fl(n,l,r.b,r.duration,0,y,s.css))),r){if($>=r.end)b(l=r.b,1-l),ds(n,r.b,"end"),o||(r.b?u():--r.group.r||lt(r.group.c)),r=null;else if($>=r.start){const C=$-r.start;l=r.a+r.d*y(C/r.duration),b(l,1-l)}}return!!(r||o)}))}return{run(d){Jn(s)?vu().then(()=>{s=s(),c(d)}):c(d)},end(){u(),r=o=null}}}function un(n,e){n.d(1),e.delete(n.key)}function Ft(n,e){F(n,1,1,()=>{e.delete(n.key)})}function e1(n,e){n.f(),Ft(n,e)}function rt(n,e,t,i,s,l,r,o,a,u,f,c){let d=n.length,h= Line truncated
`),function(l){if(i=l.indexOf(":"),e=zo.trim(l.substr(0,i)).toLowerCase(),t=zo.trim(l.substr(i+1)),e){if(s[e]&&v1.indexOf(e)>=0)return;s[e]=e==="set-cookie"?(s[e]?s[e]:[]).concat([t]):s[e]?s[e]+", "+t:t}}),s},O1=k1,Bo=o_,T1=function(n){return new Promise(function(e,t){var i=n.data,s=n.headers,l=n.responseType;dr.isFormData(i)&&delete s["Content-Type"];var r=new XMLHttpRequest;if(n.auth){var o=n.auth.username||"",a=n.auth.password?unescape(encodeURIComponent(n.auth.password)):"";s.Authorization="Basic "+btoa(o+":"+a)}var u=C1(n.baseURL,n.url);function f(){if(r){var d="getAllResponseHeaders"in r?M1(r.getAllResponseHeaders()):null,h={data:l&&l!=="text"&&l!=="json"?r.response:r.responseText,status:r.status,statusText:r.statusText,headers:d,config:n,request:r};w1(e,t,h),r=null}}if(r.open(n.method.toUpperCase(),$1(u,n.params,n.paramsSerializer),!0),r.timeout=n.timeout,"onloadend"in r?r.onloadend=f:r.onreadystatechange=function(){r&&r.readyState===4&&(r.status!==0||r.responseURL&&r.responseURL.indexOf("file:")===0)&&setTimeout(f)},r.onabort=function(){r&&(t(Bo("Request aborted",n,"ECONNABORTED",r)),r=null)},r.onerror=function(){t(Bo("Network Error",n,null,r)),r=null},r.ontimeout=function(){var d="timeout of "+n.timeout+"ms exceeded";n.timeoutErrorMessage&&(d=n.timeoutErrorMessage),t(Bo(d,n,n.transitional&&n.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",r)),r=null},dr.isStandardBrowserEnv()){var c=(n.withCredentials||O1(u))&&n.xsrfCookieName?S1.read(n.xsrfCookieName):void 0;c&&(s[n.xsrfHeaderName]=c)}"setRequestHeader"in r&&dr.forEach(s,function(d,h){i===void 0&&h.toLowerCase()==="content-type"?delete s[h]:r.setRequestHeader(h,d)}),dr.isUndefined(n.withCredentials)||(r.withCredentials=!!n.withCredentials),l&&l!=="json"&&(r.responseType=n.responseType),typeof n.onDownloadProgress=="function"&&r.addEventListener("progress",n.onDownloadProgress),typeof n.onUploadProgress=="function"&&r.upload&&r.upload.addEventListener("progress",n.onUploadProgress),n.cancelToken&&n.cancelToken.promise.then(function(d){r&&(r.abort(),t(d),r=null)}),i||(i=null),r.send(i)})},en=In,Ef=function(n,e){h1.forEach(n,function(t,i){i!==e&&i.toUpperCase()===e.toUpperCase()&&(n[e]=t,delete n[i])})},D1=r_,A1={"Content-Type":"application/x-www-form-urlencoded"};function Pf(n,e){!en.isUndefined(n)&&en.isUndefined(n["Content-Type"])&&(n["Content-Type"]=e)}var Lf,Ur={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:((typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(Lf=T1),Lf),transformRequest:[function(n,e){return Ef(e,"Accept"),Ef(e,"Content-Type"),en.isFormData(n)||en.isArrayBuffer(n)||en.isBuffer(n)||en.isStream(n)||en.isFile(n)||en.isBlob(n)?n:en.isArrayBufferView(n)?n.buffer:en.isURLSearchParams(n)?(Pf(e,"application/x-www-form-urlencoded;charset=utf-8"),n.toString()):en.isObject(n)||e&&e["Content-Type"]==="application/json"?(Pf(e,"application/json"),function(t,i,s){if(en.isString(t))try{return(i||JSON.parse)(t),en.trim(t)}catch(l){if(l.name!=="SyntaxError")throw l}return(s||JSON.stringify)(t)}(n)):n}],transformResponse:[function(n){var e=this.transitional,t=e&&e.silentJSONParsing,i=e&&e.forcedJSONParsing,s=!t&&this.responseType==="json";if(s||i&&en.isString(n)&&n.length)try{return JSON.parse(n)}catch(l){if(s)throw l.name==="SyntaxError"?D1(l,this,"E_JSON_PARSE"):l}return n}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(n){return n>=200&&n<300}};Ur.headers={common:{Accept:"application/json, text/plain, */*"}},en.forEach(["delete","get","head"],function(n){Ur.headers[n]={}}),en.forEach(["post","put","patch"],function(n){Ur.headers[n]=en.merge(A1)});var Su=Ur,E1=In,P1=Su,a_=function(n){return!(!n||!n.__CANCEL__)},Ff=In,Uo=function(n,e,t){var i=this||P1;return E1.forEach(t,function(s){n=s.call(i,n,e)}),n},L1=a_,F1=Su;function Wo(n){n.cancelToken&&n.cancelToken.throwIfRequested()}var ln=In,u_=function(n,e){e=e||{};var t={},i=["url","method","data"],s=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],r=["validateStatus"];function o(c,d){return ln.isPlainObject(c)&&ln.isPlainObject(d)?ln.merge(c,d):ln.isPlainObject(d)?ln.merge({},d):ln.isArray(d)?d.slice():d}function a(c){ln.isUndefined(e[c])?ln.isUndefined(n[c])||(t[c]=o(void 0,n[c])):t[c]=o(n[c],e[c])}ln.forEach(i,function(c){ln.isUndefined(e[c])||(t[c]=o(void 0,e[c]))}),ln.forEach(s,a),ln.forEach(l,function(c){ln.isUndefined(e[c])?ln.isUndefined(n[c])||(t[c]=o(void 0,n[c])):t[c]=o(void 0,e[c])}),ln.forEach(r,function(c){c in e?t[c]=o(n[c],e[c]): Line truncated
`+e.prev+e.base;return t+ri.call(n,","+t)+`
`+e.prev}function gr(n,e){var t=Ha(n),i=[];if(t){i.length=n.length;for(var s=0;s<n.length;s++)i[s]=Ii(n,s)?e(n[s],n):""}var l,r=typeof Qo=="function"?Qo(n):[];if(Us){l={};for(var o=0;o<r.length;o++)l["$"+r[o]]=r[o]}for(var a in n)Ii(n,a)&&(t&&String(Number(a))===a&&a<n.length||Us&&l["$"+a]instanceof Symbol||(y_.call(/[^\w$]/,a)?i.push(e(a,n)+": "+e(n[a],n)):i.push(a+": "+e(n[a],n))));if(typeof Qo=="function")for(var u=0;u<r.length;u++)v_.call(n,r[u])&&i.push("["+e(r[u])+"]: "+e(n[r[u]],n));return i}var $_,Au=Mu,xs=function(n,e){var t=__(n,!!e);return typeof t=="function"&&sy(n,".prototype.")>-1?b_(t):t},_y=function n(e,t,i,s){var l=t||{};if(Ii(l,"quoteStyle")&&l.quoteStyle!=="single"&&l.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Ii(l,"maxStringLength")&&(typeof l.maxStringLength=="number"?l.maxStringLength<0&&l.maxStringLength!==1/0:l.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var r=!Ii(l,"customInspect")||l.customInspect;if(typeof r!="boolean"&&r!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Ii(l,"indent")&&l.indent!==null&&l.indent!==" "&&!(parseInt(l.indent,10)===l.indent&&l.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Ii(l,"numericSeparator")&&typeof l.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=l.numericSeparator;if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return S_(e,l);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var a=String(e);return o?Jf(e,a):a}if(typeof e=="bigint"){var u=String(e)+"n";return o?Jf(e,u):u}var f=l.depth===void 0?5:l.depth;if(i===void 0&&(i=0),i>=f&&f>0&&typeof e=="object")return Ha(e)?"[Array]":"[Object]";var c=function(j,G){var Y;if(j.indent===" ")Y=" ";else{if(!(typeof j.indent=="number"&&j.indent>0))return null;Y=ri.call(Array(j.indent+1)," ")}return{base:Y,prev:ri.call(Array(G+1),Y)}}(l,i);if(s===void 0)s=[];else if(Xf(s,e)>=0)return"[Circular]";function d(j,G,Y){if(G&&(s=py.call(s)).push(G),Y){var q={depth:l.depth};return Ii(l,"quoteStyle")&&(q.quoteStyle=l.quoteStyle),n(j,q,i+1,s)}return n(j,l,i+1,s)}if(typeof e=="function"&&!xf(e)){var h=function(j){if(j.name)return j.name;var G=cy.call(fy.call(j),/^function\s*([\w$]+)/);return G?G[1]:null}(e),g=gr(e,d);return"[Function"+(h?": "+h:" (anonymous)")+"]"+(g.length>0?" { "+ri.call(g,", ")+" }":"")}if(w_(e)){var y=Us?qi.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):Ra.call(e);return typeof e!="object"||Us?y:rl(y)}if(function(j){return!j||typeof j!="object"?!1:typeof HTMLElement!="undefined"&&j instanceof HTMLElement?!0:typeof j.nodeName=="string"&&typeof j.getAttribute=="function"}(e)){for(var b="<"+Uf.call(String(e.nodeName)),v=e.attributes||[],S=0;S<v.length;S++)b+=" "+v[S].name+"="+k_(hy(v[S].value),"double",l);return b+=">",e.childNodes&&e.childNodes.length&&(b+="..."),b+="</"+Uf.call(String(e.nodeName))+">"}if(Ha(e)){if(e.length===0)return"[]";var $=gr(e,d);return c&&!function(j){for(var G=0;G<j.length;G++)if(Xf(j[G],`
`)>=0)return!1;return!0}($)?"["+qa($,c)+"]":"[ "+ri.call($,", ")+" ]"}if(function(j){return!(Ni(j)!=="[object Error]"||rn&&typeof j=="object"&&rn in j)}(e)){var C=gr(e,d);return"cause"in Error.prototype||!("cause"in e)||v_.call(e,"cause")?C.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+ri.call(C,", ")+" }":"{ ["+String(e)+"] "+ri.call(Wf.call("[cause]: "+d(e.cause),C),", ")+" }"}if(typeof e=="object"&&r){if(Zf&&typeof e[Zf]=="function"&&ja)return ja(e,{depth:f-i});if(r!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(function(j){if(!hr||!j||typeof j!="object")return!1;try{hr.call(j);try{mr.call(j)}catch{return!0}return j instanceof Map}catch{}return!1}(e)){var M=[];return ry.call(e,function(j,G){M.push(d(G,e,!0)+" => "+d(j,e))}),Qf("Map",hr.call(e),M,c)}if(function(j){if(!mr||!j||typeof j!="object")return!1;try{mr.call(j);try{hr.call(j)}catch{return!0}return j instanceof Set}catch{}return!1}(e)){var T=[];return oy.call(e,function(j){T.push(d(j,e))}),Qf("Set",mr.call(e),T,c)}if(function(j){if(!sl||!j||typeof j!="object")return!1;try{sl.call(j,sl);try{ll.call(j,ll)}catch{return!0}return j instanceof WeakMap}catch{}return!1}(e))return ea("WeakMap");if(function(j){if(!ll||!j||typeof j!="object")return!1;try{ll.call(j,ll);try{sl.call(j,sl)}catch{return!0}return j instanceof WeakSet}catch{}return!1}(e))return ea("WeakSet");if(function(j){if(!Bf||!j||typeof j!="object")return!1;try{return Bf.call(j),!0}catch{}return!1}(e))return ea("WeakRef");if(function(j){return!(Ni(j)!=="[object Number]"||rn&&typeof j=="object"&&rn in j)}(e))return rl(d(Number(e)));if(function(j){if(!j||typeof j!="object"||!Xo)return!1;try{return Xo.call(j),!0}catch{}return!1}(e))return rl(d(Xo.call(e)));if(function(j){return!(Ni(j)!=="[object Boolean]"||rn&&typeof j=="object"&&rn in j)}(e))return rl(ay.call(e));if(function(j){return!(Ni(j)!=="[object String]"||rn&&typeof j=="object"&&rn in j)}(e))return rl(d(String(e)));if(!function(j){return!(Ni(j)!=="[object Date]"||rn&&typeof j=="object"&&rn in j)}(e)&&!xf(e)){var E=gr(e,d),D=Kf?Kf(e)===Object.prototype:e instanceof Object||e.constructor===Object,P=e instanceof Object?"":"null prototype",L=!D&&rn&&Object(e)===e&&rn in e?Du.call(Ni(e),8,-1):P?"Object":"",R=(D||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"")+(L||P?"["+ri.call(Wf.call([],L||[],P||[]),": ")+"] ":"");return E.length===0?R+"{}":c?R+"{"+qa(E,c)+"}":R+"{ "+ri.call(E,", ")+" }"}return String(e)},by=Au("%TypeError%"),_r=Au("%WeakMap%",!0),br=Au("%Map%",!0),yy=xs("WeakMap.prototype.get",!0),vy=xs("WeakMap.prototype.set",!0),ky=xs("WeakMap.prototype.has",!0),wy=xs("Map.prototype.get",!0),Sy=xs("Map.prototype.set",!0),$y=xs("Map.prototype.has",!0),ta=function(n,e){for(var t,i=n;(t=i.next)!==null;i=t)if(t.key===e)return i.next=t.next,t.next=n.next,n.next=t,t},Cy=String.prototype.replace,My=/%20/g,ec="RFC3986",Eu={default:ec,formatters:{RFC1738:function(n){return Cy.call(n,My,"+")},RFC3986:function(n){return String(n)}},RFC1738:"RFC1738",RFC3986:ec},Oy=Eu,na=Object.prototype.hasOwnProperty,Xi=Array.isArray,si=function(){for(var n=[],e=0;e<256;++e)n.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return n}(),tc=function(n,e){for(var t=e&&e.plainObjects?Object.create(null):{},i=0;i<n.length;++i)n[i]!==void 0&&(t[i]=n[i]);return t},C_={arrayToObject:tc,assign:function(n,e){return Object.keys(e).reduce(function(t,i){return t[i]=e[i],t},n)},combine:function(n,e){return[].concat(n,e)},compact:function(n){for(var e=[{obj:{o:n},prop:"o"}],t=[],i=0;i<e.length;++i)for(var s=e[i],l=s.obj[s.prop],r=Object.keys(l),o=0;o<r.length;++o){var a=r[o],u=l[a];typeof u=="object"&&u!==null&&t.indexOf(u)===-1&&(e.push({obj:l,prop:a}),t.push(u))}return function(f){for(;f.length>1;){var c=f.pop(),d=c.obj[c.prop];if(Xi(d)){for(var h=[],g=0;g<d.length;++g)d[g]!==void 0&&h.push(d[g]);c.obj[c.prop]=h}}}(e),n},decode:function(n,e,t){var i=n.replace(/\+/g," ");if(t==="iso-8859-1")return i.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(i)}catch{return i}},encode:function(n,e,t,i,s){if(n.length===0)return n;var l=n;if(typeof n=="symbol"?l=Symbol.prototype.toString.call(n):typeof n!="string"&&(l=String(n)),t==="iso-8859-1")return escape(l).replace(/%u[0-9a-f]{4}/gi,function(u){return"%26%23"+parseInt(u.slice(2),16)+"%3B"});for(var r="",o=0;o<l.length;++o){var a=l.charCodeAt(o);a===45||a===46||a===95||a===126||a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122||s===Oy.RFC1738&&(a===40||a===41)?r+=l.charAt(o):a<128?r+=si[a]:a<2048?r+=si[192|a>>6]+si[128|63&a]:a<55296||a>=57344?r+=si[224|a>>12]+si[128|a>>6&63]+si[128|63&a]:(o+=1,a=65536+((1023&a)<<10|1023&l.charCodeAt(o)),r+=si[240|a>>18]+si[128|a>>12&63]+si[128|a>>6&63]+si[128|63&a])}return r},isBuffer:function(n){return!(!n||typeof n!="object")&&!!(n.constructor&&n.constructor.isBuffer&&n.constructor.isBuffer(n))},isRegExp:function(n){return Object.prototype.toString.call(n)==="[object RegExp]"},maybeMap:function(n,e){if(Xi(n)){for(var t=[],i=0;i<n.length; Line truncated
<span class="txt">Pocket<strong>Base</strong></span></figure>`,t=O(),i=_("div"),p(e,"class","block txt-center m-b-lg"),p(i,"class","clearfix")},m(s,l){w(s,e,l),w(s,t,l),w(s,i,l)},d(s){s&&k(e),s&&k(t),s&&k(i)}}}function Yk(n){let e,t,i,s,l,r,o,a,u=!n[0]&&Tc();const f=n[2].default,c=Dn(f,n,n[1],null);return{c(){e=_("div"),t=_("div"),i=O(),s=_("div"),u&&u.c(),l=O(),c&&c.c(),r=O(),o=_("div"),p(t,"class","flex-fill"),p(s,"class","wrapper wrapper-sm m-b-xl svelte-1wbawr2"),p(o,"class","flex-fill"),p(e,"class","page-wrapper full-page-panel svelte-1wbawr2")},m(d,h){w(d,e,h),m(e,t),m(e,i),m(e,s),u&&u.m(s,null),m(s,l),c&&c.m(s,null),m(e,r),m(e,o),a=!0},p(d,[h]){d[0]?u&&(u.d(1),u=null):u||(u=Tc(),u.c(),u.m(s,l)),c&&c.p&&(!a||h&2)&&En(c,f,d,d[1],a?An(f,d[1],h,null):Pn(d[1]),null)},i(d){a||(A(c,d),a=!0)},o(d){F(c,d),a=!1},d(d){d&&k(e),u&&u.d(),c&&c.d(d)}}}function Kk(n,e,t){let{$$slots:i={},$$scope:s}=e,{nobranding:l=!1}=e;return n.$$set=r=>{"nobranding"in r&&t(0,l=r.nobranding),"$$scope"in r&&t(1,s=r.$$scope)},[l,s,i]}class F0 extends Pe{constructor(e){super(),Ee(this,e,Kk,Yk,De,{nobranding:0})}}function Dc(n,e,t){const i=n.slice();return i[11]=e[t],i}const Jk=n=>({}),Ac=n=>({uniqueId:n[3]});function Gk(n){let e=(n[11]||oo)+"",t;return{c(){t=H(e)},m(i,s){w(i,t,s)},p(i,s){s&4&&e!==(e=(i[11]||oo)+"")&&ge(t,e)},d(i){i&&k(t)}}}function Zk(n){var i,s;let e=(((i=n[11])==null?void 0:i.message)||((s=n[11])==null?void 0:s.code)||oo)+"",t;return{c(){t=H(e)},m(l,r){w(l,t,r)},p(l,r){var o,a;r&4&&e!==(e=(((o=l[11])==null?void 0:o.message)||((a=l[11])==null?void 0:a.code)||oo)+"")&&ge(t,e)},d(l){l&&k(t)}}}function Ec(n){let e,t;function i(r,o){return typeof r[11]=="object"?Zk:Gk}let s=i(n),l=s(n);return{c(){e=_("div"),l.c(),t=O(),p(e,"class","help-block help-block-error")},m(r,o){w(r,e,o),l.m(e,null),m(e,t)},p(r,o){s===(s=i(r))&&l?l.p(r,o):(l.d(1),l=s(r),l&&(l.c(),l.m(e,t)))},d(r){r&&k(e),l.d()}}}function xk(n){let e,t,i,s,l;const r=n[7].default,o=Dn(r,n,n[6],Ac);let a=n[2],u=[];for(let f=0;f<a.length;f+=1)u[f]=Ec(Dc(n,a,f));return{c(){e=_("div"),o&&o.c(),t=O();for(let f=0;f<u.length;f+=1)u[f].c();p(e,"class",n[0]),ee(e,"error",n[2].length)},m(f,c){w(f,e,c),o&&o.m(e,null),m(e,t);for(let d=0;d<u.length;d+=1)u[d].m(e,null);n[9](e),i=!0,s||(l=Q(e,"click",n[8]),s=!0)},p(f,[c]){if(o&&o.p&&(!i||c&64)&&En(o,r,f,f[6],i?An(r,f[6],c,Jk):Pn(f[6]),Ac),c&4){a=f[2];let d;for(d=0;d<a.length;d+=1){const h=Dc(f,a,d);u[d]?u[d].p(h,c):(u[d]=Ec(h),u[d].c(),u[d].m(e,null))}for(;d<u.length;d+=1)u[d].d(1);u.length=a.length}(!i||c&1)&&p(e,"class",f[0]),c&5&&ee(e,"error",f[2].length)},i(f){i||(A(o,f),i=!0)},o(f){F(o,f),i=!1},d(f){f&&k(e),o&&o.d(f),Bn(u,f),n[9](null),s=!1,l()}}}const oo="Invalid value";function Xk(n,e,t){let i;hn(n,ys,g=>t(5,i=g));let{$$slots:s={},$$scope:l}=e;const r="field_"+W.randomString(7);let{name:o=""}=e,{class:a=void 0}=e,u,f=[];function c(){L0(o)}pi(()=>(u.addEventListener("change",c),()=>{u.removeEventListener("change",c)}));function d(g){ut.call(this,n,g)}function h(g){pe[g?"unshift":"push"](()=>{u=g,t(1,u)})}return n.$$set=g=>{"name"in g&&t(4,o=g.name),"class"in g&&t(0,a=g.class),"$$scope"in g&&t(6,l=g.$$scope)},n.$$.update=()=>{n.$$.dirty&48&&t(2,f=W.toArray(W.getNestedVal(i,o)))},[a,u,f,r,o,i,l,s,d,h]}class Fe extends Pe{constructor(e){super(),Ee(this,e,Xk,xk,De,{name:4,class:0})}}function Qk(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Email"),s=O(),l=_("input"),p(e,"for",i=n[9]),p(l,"type","email"),p(l,"autocomplete","off"),p(l,"id",r=n[9]),l.required=!0,l.autofocus=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0]),l.focus(),o||(a=Q(l,"input",n[5]),o=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&r!==(r=u[9])&&p(l,"id",r),f&1&&l.value!==u[0]&&$e(l,u[0])},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function e2(n){let e,t,i,s,l,r,o,a,u,f;return{c(){e=_("label"),t=H("Password"),s=O(),l=_("input"),o=O(),a=_("div"),a.textContent="Minimum 10 characters.",p(e,"for",i=n[9]),p(l,"type","password"),p(l,"autocomplete","new-password"),p(l,"minlength","10"),p(l,"id",r=n[9]),l.required=!0,p(a,"class","help-block")},m(c,d){w(c,e,d),m(e,t),w(c,s,d),w(c,l,d),$e(l,n[1]),w(c,o,d),w(c,a,d),u||(f=Q(l,"input",n[6]),u=!0)},p(c,d){d&512&&i!==(i=c[9])&&p(e,"for",i),d&512&&r!==(r=c[9])&&p(l,"id",r),d&2&&l.value!==c[1]&&$e(l,c[1])},d(c){c&&k(e),c&&k(s),c&&k(l),c&&k(o),c&&k(a),u=!1,f()}}}function t2(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Password confirm"),s=O(),l=_("input"),p(e,"for",i=n[9]),p(l,"type","password"),p(l,"minlength","10"),p(l,"id",r=n[9]),l.required=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[2]),o||(a=Q(l,"input",n[7]),o=!0)},p(u,f){f&512&&i!==(i=u[9])&&p(e,"for",i),f&512&&r!==(r=u[9])&&p(l,"id",r),f&4&&l.value!==u[2]&&$e(l,u[2])},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function n2(n){let e,t,i,s,l,r,o,a,u,f,c,d,h;return s=new Fe({props:{class:"form-field required",name:"email",$$slots:{default:[Qk,({uniqueId:g})=>({9:g}),({uniqueId:g})=>g?512:0]},$$scope:{ctx:n}}}),r=new Fe({propsLine truncated
<i class="ri-arrow-right-line"></i>`,p(t,"class","content txt-center m-b-base"),p(f,"type","submit"),p(f,"class","btn btn-lg btn-block btn-next"),ee(f,"btn-disabled",n[3]),ee(f,"btn-loading",n[3]),p(e,"class","block"),p(e,"autocomplete","off")},m(g,y){w(g,e,y),m(e,t),m(e,i),V(s,e,null),m(e,l),V(r,e,null),m(e,o),V(a,e,null),m(e,u),m(e,f),c=!0,d||(h=Q(e,"submit",Wt(n[4])),d=!0)},p(g,[y]){const b={};y&1537&&(b.$$scope={dirty:y,ctx:g}),s.$set(b);const v={};y&1538&&(v.$$scope={dirty:y,ctx:g}),r.$set(v);const S={};y&1540&&(S.$$scope={dirty:y,ctx:g}),a.$set(S),y&8&&ee(f,"btn-disabled",g[3]),y&8&&ee(f,"btn-loading",g[3])},i(g){c||(A(s.$$.fragment,g),A(r.$$.fragment,g),A(a.$$.fragment,g),c=!0)},o(g){F(s.$$.fragment,g),F(r.$$.fragment,g),F(a.$$.fragment,g),c=!1},d(g){g&&k(e),z(s),z(r),z(a),d=!1,h()}}}function i2(n,e,t){const i=_n();let s="",l="",r="",o=!1;async function a(){if(!o){t(3,o=!0);try{await ke.Admins.create({email:s,password:l,passwordConfirm:r}),await ke.Admins.authViaEmail(s,l),i("submit")}catch(d){ke.errorResponseHandler(d)}t(3,o=!1)}}function u(){s=this.value,t(0,s)}function f(){l=this.value,t(1,l)}function c(){r=this.value,t(2,r)}return[s,l,r,o,a,u,f,c]}class s2 extends Pe{constructor(e){super(),Ee(this,e,i2,n2,De,{})}}function Pc(n){let e,t;return e=new F0({props:{$$slots:{default:[l2]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,s){const l={};s&9&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){F(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function l2(n){let e,t;return e=new s2({}),e.$on("submit",n[1]),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p:oe,i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){F(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function r2(n){let e,t,i=n[0]&&Pc(n);return{c(){i&&i.c(),e=st()},m(s,l){i&&i.m(s,l),w(s,e,l),t=!0},p(s,[l]){s[0]?i?(i.p(s,l),l&1&&A(i,1)):(i=Pc(s),i.c(),A(i,1),i.m(e.parentNode,e)):i&&(Me(),F(i,1,1,()=>{i=null}),Oe())},i(s){t||(A(i),t=!0)},o(s){F(i),t=!1},d(s){i&&i.d(s),s&&k(e)}}}function o2(n,e,t){let i=!1;s();function s(){if(t(0,i=!1),new URLSearchParams(window.location.search).has("installer")){ke.logout(!1),t(0,i=!0);return}ke.AuthStore.isValid?Zs("/collections"):ke.logout()}return[i,async()=>{t(0,i=!1),await Oi(),window.location.search=""}]}class a2 extends Pe{constructor(e){super(),Ee(this,e,o2,r2,De,{})}}let Qa,ts;const eu="app-tooltip";function Lc(n){return typeof n=="string"?{text:n,position:"bottom",hideOnClick:null}:n||{}}function Bi(){return ts=ts||document.querySelector("."+eu),ts||(ts=document.createElement("div"),ts.classList.add(eu),document.body.appendChild(ts)),ts}function I0(n,e){let t=Bi();if(!t.classList.contains("active")||!(e!=null&&e.text)){tu();return}t.textContent=e.text,t.className=eu+" active",e.class&&t.classList.add(e.class),t.style.top="0px",t.style.left="0px";let i=t.offsetHeight,s=t.offsetWidth,l=n.getBoundingClientRect(),r=0,o=0,a=5;e.position=="left"?(r=l.top+l.height/2-i/2,o=l.left-s-a):e.position=="right"?(r=l.top+l.height/2-i/2,o=l.right+a):e.position=="top"?(r=l.top-i-a,o=l.left+l.width/2-s/2):e.position=="top-left"?(r=l.top-i-a,o=l.left):e.position=="top-right"?(r=l.top-i-a,o=l.right-s):e.position=="bottom-left"?(r=l.top+l.height+a,o=l.left):e.position=="bottom-right"?(r=l.top+l.height+a,o=l.right-s):(r=l.top+l.height+a,o=l.left+l.width/2-s/2),o+s>document.documentElement.clientWidth&&(o=document.documentElement.clientWidth-s),o=o>=0?o:0,r+i>document.documentElement.clientHeight&&(r=document.documentElement.clientHeight-i),r=r>=0?r:0,t.style.top=r+"px",t.style.left=o+"px"}function tu(){clearTimeout(Qa),Bi().classList.remove("active"),Bi().activeNode=void 0}function u2(n,e){Bi().activeNode=n,clearTimeout(Qa),Qa=setTimeout(()=>{Bi().classList.add("active"),I0(n,e)},isNaN(e.delay)?250:e.delay)}function St(n,e){let t=Lc(e);function i(){u2(n,t)}function s(){tu()}return n.addEventListener("mouseenter",i),n.addEventListener("mouseleave",s),n.addEventListener("blur",s),(t.hideOnClick===!0||t.hideOnClick===null&&W.isFocusable(n))&&n.addEventListener("click",s),Bi(),{update(l){var r,o;t=Lc(l),(o=(r=Bi())==null?void 0:r.activeNode)!=null&&o.contains(n)&&I0(n,t)},destroy(){var l,r;(r=(l=Bi())==null?void 0:l.activeNode)!=null&&r.contains(n)&&tu(),n.removeEventListener("mouseenter",i),n.removeEventListener("mouseleave",s),n.removeEventListener("blur",s),n.removeEventListener("click",s)}}}function Eo(n){const e=n-1;return e*e*e+1}function ao(n,{delay:e=0,duration:t=400,easing:i=Wl}={}){const s=+getComputedStyle(n).opacity;return{delay:e,duration:t,easing:i,css:l=>`opacity: ${l*s}`}}function ni(n,{delay:e=0,duration:t=400,easing:i=Eo,x:s=0,y:l=0,opacity:r=0}={}){const o=getComputedStyle(n),a=+o.opacity,u=o.transform==="none"?"":o.transform,f=a*(1-r);return{delay:e,duration:t,easing:i,css:(c,d)=>`
transform: ${u} translate(${(1-c)*s}px, ${(1-c)*l}px);
opacity: ${a-f*d}`}}function fn(n,{delay:e=0,duration:t=400,easing:i=Eo}={}){const s=getComputedStyle(n),l=+s.opacity,r=parseFloat(s.height),o=parseFloat(s.paddingTop),a=parseFloat(s.paddingBottom),u=parseFloat(s.marginTop),f=parseFloat(s.marginBottom),c=parseFloat(s.borderTopWidth),d=parseFloat(s.borderBottomWidth);return{delay:e,duration:t,easing:i,css:h=>`overflow: hidden;opacity: ${Math.min(h*20,1)*l};height: ${h*r}px;padding-top: ${h*o}px;padding-bottom: ${h*a}px;margin-top: ${h*u}px;margin-bottom: ${h*f}px;border-top-width: ${h*c}px;border-bottom-width: ${h*d}px;`}}function Wn(n,{delay:e=0,duration:t=400,easing:i=Eo,start:s=0,opacity:l=0}={}){const r=getComputedStyle(n),o=+r.opacity,a=r.transform==="none"?"":r.transform,u=1-s,f=o*(1-l);return{delay:e,duration:t,easing:i,css:(c,d)=>`
transform: ${a} scale(${1-u*d});
opacity: ${o-f*d}
`}}function f2(n){let e,t,i,s;return{c(){e=_("input"),p(e,"type","text"),p(e,"id",n[8]),p(e,"placeholder",t=n[0]||n[1])},m(l,r){w(l,e,r),n[13](e),$e(e,n[7]),i||(s=Q(e,"input",n[14]),i=!0)},p(l,r){r&3&&t!==(t=l[0]||l[1])&&p(e,"placeholder",t),r&128&&e.value!==l[7]&&$e(e,l[7])},i:oe,o:oe,d(l){l&&k(e),n[13](null),i=!1,s()}}}function c2(n){let e,t,i,s;function l(a){n[12](a)}var r=n[4];function o(a){let u={singleLine:!0,disableRequestKeys:!0,disableIndirectCollectionsKeys:!0,extraAutocompleteKeys:a[3],baseCollection:a[2],placeholder:a[0]||a[1]};return a[7]!==void 0&&(u.value=a[7]),{props:u}}return r&&(e=new r(o(n)),pe.push(()=>Ie(e,"value",l)),e.$on("submit",n[10])),{c(){e&&B(e.$$.fragment),i=st()},m(a,u){e&&V(e,a,u),w(a,i,u),s=!0},p(a,u){const f={};if(u&8&&(f.extraAutocompleteKeys=a[3]),u&4&&(f.baseCollection=a[2]),u&3&&(f.placeholder=a[0]||a[1]),!t&&u&128&&(t=!0,f.value=a[7],je(()=>t=!1)),r!==(r=a[4])){if(e){Me();const c=e;F(c.$$.fragment,1,0,()=>{z(c,1)}),Oe()}r?(e=new r(o(a)),pe.push(()=>Ie(e,"value",l)),e.$on("submit",a[10]),B(e.$$.fragment),A(e.$$.fragment,1),V(e,i.parentNode,i)):e=null}else r&&e.$set(f)},i(a){s||(e&&A(e.$$.fragment,a),s=!0)},o(a){e&&F(e.$$.fragment,a),s=!1},d(a){a&&k(i),e&&z(e,a)}}}function Fc(n){let e,t,i,s,l,r,o=n[7]!==n[0]&&Ic();return{c(){o&&o.c(),e=O(),t=_("button"),t.innerHTML='<span class="txt">Clear</span>',p(t,"type","button"),p(t,"class","btn btn-secondary btn-sm btn-hint p-l-xs p-r-xs m-l-10")},m(a,u){o&&o.m(a,u),w(a,e,u),w(a,t,u),s=!0,l||(r=Q(t,"click",n[15]),l=!0)},p(a,u){a[7]!==a[0]?o?u&129&&A(o,1):(o=Ic(),o.c(),A(o,1),o.m(e.parentNode,e)):o&&(Me(),F(o,1,1,()=>{o=null}),Oe())},i(a){s||(A(o),Ot(()=>{i||(i=ft(t,ni,{duration:150,x:5},!0)),i.run(1)}),s=!0)},o(a){F(o),i||(i=ft(t,ni,{duration:150,x:5},!1)),i.run(0),s=!1},d(a){o&&o.d(a),a&&k(e),a&&k(t),a&&i&&i.end(),l=!1,r()}}}function Ic(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Search</span>',p(e,"type","submit"),p(e,"class","btn btn-expanded btn-sm btn-warning")},m(s,l){w(s,e,l),i=!0},i(s){i||(Ot(()=>{t||(t=ft(e,ni,{duration:150,x:5},!0)),t.run(1)}),i=!0)},o(s){t||(t=ft(e,ni,{duration:150,x:5},!1)),t.run(0),i=!1},d(s){s&&k(e),s&&t&&t.end()}}}function d2(n){let e,t,i,s,l,r,o,a,u,f,c;const d=[c2,f2],h=[];function g(b,v){return b[4]&&!b[5]?0:1}r=g(n),o=h[r]=d[r](n);let y=(n[0].length||n[7].length)&&Fc(n);return{c(){e=_("div"),t=_("form"),i=_("label"),s=_("i"),l=O(),o.c(),a=O(),y&&y.c(),p(s,"class","ri-search-line"),p(i,"for",n[8]),p(i,"class","m-l-10 txt-xl"),p(t,"class","searchbar"),p(e,"class","searchbar-wrapper")},m(b,v){w(b,e,v),m(e,t),m(t,i),m(i,s),m(t,l),h[r].m(t,null),m(t,a),y&&y.m(t,null),u=!0,f||(c=[Q(t,"submit",Wt(n[10])),Q(e,"click",Un(n[11]))],f=!0)},p(b,[v]){let S=r;r=g(b),r===S?h[r].p(b,v):(Me(),F(h[S],1,1,()=>{h[S]=null}),Oe(),o=h[r],o?o.p(b,v):(o=h[r]=d[r](b),o.c()),A(o,1),o.m(t,a)),b[0].length||b[7].length?y?(y.p(b,v),v&129&&A(y,1)):(y=Fc(b),y.c(),A(y,1),y.m(t,null)):y&&(Me(),F(y,1,1,()=>{y=null}),Oe())},i(b){u||(A(o),A(y),u=!0)},o(b){F(o),F(y),u=!1},d(b){b&&k(e),h[r].d(),y&&y.d(),f=!1,lt(c)}}}function p2(n,e,t){const i=_n(),s="search_"+W.randomString(7);let{value:l=""}=e,{placeholder:r='Search filter, ex. created > "2022-01-01"...'}=e,{autocompleteCollection:o=new Fn}=e,{extraAutocompleteKeys:a=[]}=e,u,f=!1,c,d="";function h(M=!0){t(7,d=""),M&&(c==null||c.focus()),i("clear")}function g(){t(0,l=d),i("submit",l)}async function y(){u||f||(t(5,f=!0),t(4,u=(await as(()=>import("./FilterAutocompleteInput.477fd505.js"),[])).default),t(5,f=!1))}pi(()=>{y()});function b(M){ut.call(this,n,M)}function v(M){d=M,t(7,d),t(0,l)}function S(M){pe[M?"unshift":"push"](()=>{c=M,t(6,c)})}function $(){d=this.value,t(7,d),t(0,l)}const C=()=>{h(!1),g()};return n.$$set=M=>{"value"in M&&t(0,l=M.value),"placeholder"in M&&t(1,r=M.placeholder),"autocompleteCollection"in M&&t(2,o=M.autocompleteCollection),"extraAutocompleteKeys"in M&&t(3,a=M.extraAutocompleteKeys)},n.$$.update=()=>{n.$$.dirty&1&&typeof l=="string"&&t(7,d=l)},[l,r,o,a,u,f,c,d,s,h,g,b,v,S,$,C]}class Po extends Pe{constructor(e){super(),Ee(this,e,p2,d2,De,{value:0,placeholder:1,autocompleteCollection:2,extraAutocompleteKeys:3})}}function h2(n){let e,t,i,s,l;const r=n[6].default,o=Dn(r,n,n[5],null);return{c(){e=_("th"),o&&o.c(),p(e,"tabindex","0"),p(e,"class",t="col-sort "+n[1]),ee(e,"col-sort-disabled",n[3]),ee(e,"sort-active",n[0]==="-"+n[2]||n[0]==="+"+n[2]),ee(e,"sort-desc",n[0]==="-"+n[2]),ee(e,"sort-asc",n[0]==="+"+n[2])},m(a,u){w(a,e,u),o&&o.m(e,null),i=!0,s||(l=[Q(e,"click",n[7]),Q(e,"keydown",n[8])],s=!0)},p(a,[u]){o&&o.p&&(!i||u&32)&&En(o,r,a,a[5],i?An(r,a[5],u,null):Pn(a[5]),null),(!i||u&2&&t!==(t="col-sort "+a[1]))&&p(e,"class",t),u&10&&ee(e,"col-sort-disabled",a[3]),u&7&&ee(e,"sort-active",a[0]==="-"+a[2]||a[0]==="+"+a[2]),u&7&&ee(e,"sort-desc",a[0]==="-"+a[2]),u&7&&ee(e,"sort-asc",a[0]==="+"+a[2])},i(a){i||(A(o,a),i=!0)},o(a){F(o,a),i=!1},d(a){a&&k(e),o&&o.d(a),s=!1,lt(l)}}}function m2(n,e,t){let{$$slots:i={},$$scope:s}=e,{class:l=""}=e, Line truncated
<span class="txt">method</span>`,p(e,"class","col-header-content")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function k2(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="url",p(t,"class",W.getFieldTypeIcon("url")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function w2(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="referer",p(t,"class",W.getFieldTypeIcon("url")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function S2(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="status",p(t,"class",W.getFieldTypeIcon("number")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function $2(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="created",p(t,"class",W.getFieldTypeIcon("date")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function Rc(n){let e;function t(l,r){return l[6]?M2:C2}let i=t(n),s=i(n);return{c(){s.c(),e=st()},m(l,r){s.m(l,r),w(l,e,r)},p(l,r){i===(i=t(l))&&s?s.p(l,r):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&k(e)}}}function C2(n){var o;let e,t,i,s,l,r=((o=n[0])==null?void 0:o.length)&&jc(n);return{c(){e=_("tr"),t=_("td"),i=_("h6"),i.textContent="No logs found.",s=O(),r&&r.c(),l=O(),p(t,"colspan","99"),p(t,"class","txt-center txt-hint p-xs")},m(a,u){w(a,e,u),m(e,t),m(t,i),m(t,s),r&&r.m(t,null),m(e,l)},p(a,u){var f;(f=a[0])!=null&&f.length?r?r.p(a,u):(r=jc(a),r.c(),r.m(t,null)):r&&(r.d(1),r=null)},d(a){a&&k(e),r&&r.d()}}}function M2(n){let e;return{c(){e=_("tr"),e.innerHTML=`<td colspan="99" class="p-xs"><span class="skeleton-loader"></span></td>
`},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function jc(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Clear filters</span>',p(e,"type","button"),p(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){w(s,e,l),t||(i=Q(e,"click",n[18]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function Hc(n){let e;return{c(){e=_("i"),p(e,"class","ri-error-warning-line txt-danger m-l-5 m-r-5"),p(e,"title","Error")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function qc(n,e){var se,x,Te;let t,i,s,l=((se=e[21].method)==null?void 0:se.toUpperCase())+"",r,o,a,u,f,c=e[21].url+"",d,h,g,y,b,v,S=(e[21].referer||"N/A")+"",$,C,M,T,E,D=e[21].status+"",P,L,R,j,G,Y,q,Z,J,K,ne=(((x=e[21].meta)==null?void 0:x.errorMessage)||((Te=e[21].meta)==null?void 0:Te.errorData))&&Hc();j=new Ci({props:{date:e[21].created}});function ce(){return e[16](e[21])}function be(...te){return e[17](e[21],...te)}return{key:n,first:null,c(){t=_("tr"),i=_("td"),s=_("span"),r=H(l),a=O(),u=_("td"),f=_("span"),d=H(c),g=O(),ne&&ne.c(),y=O(),b=_("td"),v=_("span"),$=H(S),M=O(),T=_("td"),E=_("span"),P=H(D),L=O(),R=_("td"),B(j.$$.fragment),G=O(),Y=_("td"),Y.innerHTML='<i class="ri-arrow-right-line"></i>',q=O(),p(s,"class",o="label txt-uppercase "+e[9][e[21].method.toLowerCase()]),p(i,"class","col-type-text col-field-method min-width"),p(f,"class","txt txt-ellipsis"),p(f,"title",h=e[21].url),p(u,"class","col-type-text col-field-url"),p(v,"class","txt txt-ellipsis"),p(v,"title",C=e[21].referer),ee(v,"txt-hint",!e[21].referer),p(b,"class","col-type-text col-field-referer"),p(E,"class","label"),ee(E,"label-danger",e[21].status>=400),p(T,"class","col-type-number col-field-status"),p(R,"class","col-type-date col-field-created"),p(Y,"class","col-type-action min-width"),p(t,"tabindex","0"),p(t,"class","row-handle"),this.first=t},m(te,_e){w(te,t,_e),m(t,i),m(i,s),m(s,r),m(t,a),m(t,u),m(u,f),m(f,d),m(u,g),ne&&ne.m(u,null),m(t,y),m(t,b),m(b,v),m(v,$),m(t,M),m(t,T),m(T,E),m(E,P),m(t,L),m(t,R),V(j,R,null),m(t,G),m(t,Y),m(t,q),Z=!0,J||(K=[Q(t,"click",ce),Q(t,"keydown",be)],J=!0)},p(te,_e){var ie,ye,He;e=te,(!Z||_e&8)&&l!==(l=((ie=e[21].method)==null?void 0:ie.toUpperCase())+"")&&ge(r,l),(!Z||_e&8&&o!==(o="label txt-uppercase "+e[9][e[21].method.toLowerCase()]))&&p(s,"class",o),(!Z||_e&8)&&c!==(c=e[21].url+"")&&ge(d,c),(!Z||_e&8&&h!==(h=e[21].url))&&p(f,"title",h),((ye=e[21].meta)==null?void 0:ye.errorMessage)||((He=e[21].meta)==null?void 0:He.errorData)?ne||(ne=Hc(),ne.c(),ne.m(u,null)):ne&&(ne.d(1),ne=null),(!Z||_e&8)&&S!==(S=(e[21].referer||"N/A")+"")&&ge($,S),(!Z||_e&8&&C!==(C=e[21].referer))&&p(v,"title",C),_e&8&&ee(v,"txt-hint",!e[21].referer),(!Z||_e&8)&&D!==(D=e[21].status+"")&&ge(P,D),_e&8&&ee(E,"label-danger",e[21].status>=400);const fe={};_e&8&&(fe.date=e[21].created),j.$set(fe)},i(te){Z||(A(j.$$.fragment,te),Z=!0)},o(te){F(j.$$.fragment,te),Z=!1},d(te){te&&k(t),ne&&ne.d(),z(j),J=!1,lt(K)}}}function Vc(n){let e,t,i=n[3].length+"",s,l,r;return{c(){e=_("small"),t=H("Showing "),s=H(i),l=H(" of "),r=H(n[4]),p(e,"class","block txt-hint txt-right m-t-sm")},m(o,a){w(o,e,a),m(e,t),m(e,s),m(e,l),m(e,r)},p(o,a){a&8&&i!==(i=o[3].length+"")&&ge(s,i),a&16&&ge(r,o[4])},d(o){o&&k(e)}}}function zc(n){let e,t,i,s,l=n[4]-n[3].length+"",r,o,a,u;return{c(){e=_("div"),t=_("button"),i=_("span"),s=H("Load more ("),r=H(l),o=H(")"),p(i,"class","txt"),p(t,"type","button"),p(t,"class","btn btn-lg btn-secondary btn-expanded"),ee(t,"btn-loading",n[6]),ee(t,"btn-disabled",n[6]),p(e,"class","block txt-center m-t-xs")},m(f,c){w(f,e,c),m(e,t),m(t,i),m(i,s),m(i,r),m(i,o),a||(u=Q(t,"click",n[19]),a=!0)},p(f,c){c&24&&l!==(l=f[4]-f[3].length+"")&&ge(r,l),c&64&&ee(t,"btn-loading",f[6]),c&64&&ee(t,"btn-disabled",f[6])},d(f){f&&k(e),a=!1,u()}}}function O2(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g,y,b,v,S,$,C,M,T,E=[],D=new Map,P,L,R,j;function G(ie){n[11](ie)}let Y={disable:!0,class:"col-field-method",name:"method",$$slots:{default:[v2]},$$scope:{ctx:n}};n[1]!==void 0&&(Y.sort=n[1]),l=new tn({props:Y}),pe.push(()=>Ie(l,"sort",G));function q(ie){n[12](ie)}let Z={disable:!0,class:"col-type-text col-field-url",name:"url",$$slots:{default:[k2]},$$scope:{ctx:n}};n[1]!==void 0&&(Z.sort=n[1]),a=new tn({props:Z}),pe.push(()=>Ie(a,"sort",q));function J(ie){n[13](ie)}let K={disable:!0,class:"col-type-text col-field-referer",name:"referer",$$slots:{default:[w2]},$$scope:{ctx:n}};n[1]!==void 0&&(K.sort=n[1]),c=new tn({props:K}),pe.push(()=>Ie(c,"sort",J));function ne(ie){n[14](ie)}let ce={disable:!0,class:"col-type-number col-field-status",name:"status",$$slots:{default:[S2]},$$scope:{ctx:n}};n[1]!==void 0&&(ce.sort=n[1]),g=new tn({props:ce}),pe.push(()=>Ie(g,"sort",ne));function be(ie){n[15](ie)}let se={disable:!0,class:"col-type-date col-field-created",name:"created",$$slots:{default:[$2]},$$scope:{ctx:n}};n[1]!==void 0&&(se.sort=n[1]),v=new tn({props:se}),pe.push(()=>Ie(v,"sort",be));let x=n[3];const Te=ie=>ie[21].id;for(let ie=0;ie<x.length;ie+=1){let ye=Nc(n,x,ie),He=Te(ye);D.set(He,E[ie]=qc(He,ye))}let te= Line truncated
* Chart.js v3.8.0
* https://www.chartjs.org
* (c) 2022 Chart.js Contributors
* Released under the MIT License
*/const N0=function(){return typeof window=="undefined"?function(n){return n()}:window.requestAnimationFrame}();function R0(n,e,t){const i=t||(r=>Array.prototype.slice.call(r));let s=!1,l=[];return function(...r){l=i(r),s||(s=!0,N0.call(window,()=>{s=!1,n.apply(e,l)}))}}function A2(n,e){let t;return function(...i){return e?(clearTimeout(t),t=setTimeout(n,e,i)):n.apply(this,i),e}}const E2=n=>n==="start"?"left":n==="end"?"right":"center",Bc=(n,e,t)=>n==="start"?e:n==="end"?t:(e+t)/2;function _i(){}const P2=function(){let n=0;return function(){return n++}}();function Ct(n){return n===null||typeof n=="undefined"}function Lt(n){if(Array.isArray&&Array.isArray(n))return!0;const e=Object.prototype.toString.call(n);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function pt(n){return n!==null&&Object.prototype.toString.call(n)==="[object Object]"}const qt=n=>(typeof n=="number"||n instanceof Number)&&isFinite(+n);function jn(n,e){return qt(n)?n:e}function mt(n,e){return typeof n=="undefined"?e:n}const L2=(n,e)=>typeof n=="string"&&n.endsWith("%")?parseFloat(n)/100:n/e,j0=(n,e)=>typeof n=="string"&&n.endsWith("%")?parseFloat(n)/100*e:+n;function Rt(n,e,t){if(n&&typeof n.call=="function")return n.apply(t,e)}function $t(n,e,t,i){let s,l,r;if(Lt(n))if(l=n.length,i)for(s=l-1;s>=0;s--)e.call(t,n[s],s);else for(s=0;s<l;s++)e.call(t,n[s],s);else if(pt(n))for(r=Object.keys(n),l=r.length,s=0;s<l;s++)e.call(t,n[r[s]],r[s])}function uo(n,e){let t,i,s,l;if(!n||!e||n.length!==e.length)return!1;for(t=0,i=n.length;t<i;++t)if(s=n[t],l=e[t],s.datasetIndex!==l.datasetIndex||s.index!==l.index)return!1;return!0}function fo(n){if(Lt(n))return n.map(fo);if(pt(n)){const e=Object.create(null),t=Object.keys(n),i=t.length;let s=0;for(;s<i;++s)e[t[s]]=fo(n[t[s]]);return e}return n}function H0(n){return["__proto__","prototype","constructor"].indexOf(n)===-1}function F2(n,e,t,i){if(!H0(n))return;const s=e[n],l=t[n];pt(s)&&pt(l)?Rl(s,l,i):e[n]=fo(l)}function Rl(n,e,t){const i=Lt(e)?e:[e],s=i.length;if(!pt(n))return n;t=t||{};const l=t.merger||F2;for(let r=0;r<s;++r){if(e=i[r],!pt(e))continue;const o=Object.keys(e);for(let a=0,u=o.length;a<u;++a)l(o[a],n,e,t)}return n}function Tl(n,e){return Rl(n,e,{merger:I2})}function I2(n,e,t){if(!H0(n))return;const i=e[n],s=t[n];pt(i)&&pt(s)?Tl(i,s):Object.prototype.hasOwnProperty.call(e,n)||(e[n]=fo(s))}const N2="",R2=".";function Uc(n,e){const t=n.indexOf(R2,e);return t===-1?n.length:t}function Wi(n,e){if(e===N2)return n;let t=0,i=Uc(e,t);for(;n&&i>t;)n=n[e.slice(t,i)],t=i+1,i=Uc(e,t);return n}function Uu(n){return n.charAt(0).toUpperCase()+n.slice(1)}const Yn=n=>typeof n!="undefined",Yi=n=>typeof n=="function",Wc=(n,e)=>{if(n.size!==e.size)return!1;for(const t of n)if(!e.has(t))return!1;return!0};function j2(n){return n.type==="mouseup"||n.type==="click"||n.type==="contextmenu"}const Ht=Math.PI,At=2*Ht,H2=At+Ht,co=Number.POSITIVE_INFINITY,q2=Ht/180,jt=Ht/2,cl=Ht/4,Yc=Ht*2/3,Vn=Math.log10,ui=Math.sign;function Kc(n){const e=Math.round(n);n=Dl(n,e,n/1e3)?e:n;const t=Math.pow(10,Math.floor(Vn(n))),i=n/t;return(i<=1?1:i<=2?2:i<=5?5:10)*t}function V2(n){const e=[],t=Math.sqrt(n);let i;for(i=1;i<t;i++)n%i===0&&(e.push(i),e.push(n/i));return t===(t|0)&&e.push(t),e.sort((s,l)=>s-l).pop(),e}function jl(n){return!isNaN(parseFloat(n))&&isFinite(n)}function Dl(n,e,t){return Math.abs(n-e)<t}function z2(n,e){const t=Math.round(n);return t-e<=n&&t+e>=n}function q0(n,e,t){let i,s,l;for(i=0,s=n.length;i<s;i++)l=n[i][t],isNaN(l)||(e.min=Math.min(e.min,l),e.max=Math.max(e.max,l))}function Qn(n){return n*(Ht/180)}function Wu(n){return n*(180/Ht)}function Jc(n){if(!qt(n))return;let e=1,t=0;for(;Math.round(n*e)/e!==n;)e*=10,t++;return t}function V0(n,e){const t=e.x-n.x,i=e.y-n.y,s=Math.sqrt(t*t+i*i);let l=Math.atan2(i,t);return l<-.5*Ht&&(l+=At),{angle:l,distance:s}}function nu(n,e){return Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2))}function B2(n,e){return(n-e+H2)%At-Ht}function Mn(n){return(n%At+At)%At}function Hl(n,e,t,i){const s=Mn(n),l=Mn(e),r=Mn(t),o=Mn(l-s),a=Mn(r-s),u=Mn(s-l),f=Mn(s-r);return s===l||s===r||i&&l===r||o>a&&u<f}function an(n,e,t){return Math.max(e,Math.min(t,n))}function U2(n){return an(n,-32768,32767)}function ql(n,e,t,i=1e-6){return n>=Math.min(e,t)-i&&n<=Math.max(e,t)+i}const $r=n=>n===0||n===1,Gc=(n,e,t)=>-(Math.pow(2,10*(n-=1))*Math.sin((n-e)*At/t)),Zc=(n,e,t)=>Math.pow(2,-10*n)*Math.sin((n-e)*At/t)+1,Al={linear:n=>n,easeInQuad:n=>n*n,easeOutQuad:n=>-n*(n-2),easeInOutQuad:n=>(n/=.5)<1?.5*n*n:-.5*(--n*(n-2)-1),easeInCubic:n=>n*n*n,easeOutCubic:n=>(n-=1)*n*n+1,easeInOutCubic:n=>(n/=.5)<1?.5*n*n*n:.5*((n-=2)*n*n+2),easeInQuart:n=>n*n*n*n,easeOutQuart:n=>-((n-=1)*n*n*n-1),easeInOutQuart:n=>(n/=.5)<1?.5*n*n*n*n:-.5*((n-=2)*n*n*n-2),easeInQuint:n=>n*n*n*n*n,easeOutQuint:n=>(n-=1)*n*n*n*n+1,easeInOutQuint:n=>(n/=.5)<1?.5*n*n*n*n*n:.5*((n-=2)*n*n*n*n+2),easeInSine:n=>-Math.cos(n*jt)+1,easeOutSine:n=>Math.sin(n*jt),easeInOutSine:n=>-.5*(Math.cos(Ht*n)-1),easeInExpo:n=>n===0?0:Math.pow(2,10*(n-1Line truncated
* @kurkle/color v0.2.1
* https://github.com/kurkle/color#readme
* (c) 2022 Jukka Kurkela
* Released under the MIT License
*/function Xl(n){return n+.5|0}const Vi=(n,e,t)=>Math.max(Math.min(n,t),e);function wl(n){return Vi(Xl(n*2.55),0,255)}function Ui(n){return Vi(Xl(n*255),0,255)}function ki(n){return Vi(Xl(n/2.55)/100,0,1)}function xc(n){return Vi(Xl(n*100),0,100)}const Rn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},iu=[..."0123456789ABCDEF"],W2=n=>iu[n&15],Y2=n=>iu[(n&240)>>4]+iu[n&15],Cr=n=>(n&240)>>4===(n&15),K2=n=>Cr(n.r)&&Cr(n.g)&&Cr(n.b)&&Cr(n.a);function J2(n){var e=n.length,t;return n[0]==="#"&&(e===4||e===5?t={r:255&Rn[n[1]]*17,g:255&Rn[n[2]]*17,b:255&Rn[n[3]]*17,a:e===5?Rn[n[4]]*17:255}:(e===7||e===9)&&(t={r:Rn[n[1]]<<4|Rn[n[2]],g:Rn[n[3]]<<4|Rn[n[4]],b:Rn[n[5]]<<4|Rn[n[6]],a:e===9?Rn[n[7]]<<4|Rn[n[8]]:255})),t}const G2=(n,e)=>n<255?e(n):"";function Z2(n){var e=K2(n)?W2:Y2;return n?"#"+e(n.r)+e(n.g)+e(n.b)+G2(n.a,e):void 0}const x2=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function z0(n,e,t){const i=e*Math.min(t,1-t),s=(l,r=(l+n/30)%12)=>t-i*Math.max(Math.min(r-3,9-r,1),-1);return[s(0),s(8),s(4)]}function X2(n,e,t){const i=(s,l=(s+n/60)%6)=>t-t*e*Math.max(Math.min(l,4-l,1),0);return[i(5),i(3),i(1)]}function Q2(n,e,t){const i=z0(n,1,.5);let s;for(e+t>1&&(s=1/(e+t),e*=s,t*=s),s=0;s<3;s++)i[s]*=1-e-t,i[s]+=e;return i}function ew(n,e,t,i,s){return n===s?(e-t)/i+(e<t?6:0):e===s?(t-n)/i+2:(n-e)/i+4}function Yu(n){const t=n.r/255,i=n.g/255,s=n.b/255,l=Math.max(t,i,s),r=Math.min(t,i,s),o=(l+r)/2;let a,u,f;return l!==r&&(f=l-r,u=o>.5?f/(2-l-r):f/(l+r),a=ew(t,i,s,f,l),a=a*60+.5),[a|0,u||0,o]}function Ku(n,e,t,i){return(Array.isArray(e)?n(e[0],e[1],e[2]):n(e,t,i)).map(Ui)}function Ju(n,e,t){return Ku(z0,n,e,t)}function tw(n,e,t){return Ku(Q2,n,e,t)}function nw(n,e,t){return Ku(X2,n,e,t)}function B0(n){return(n%360+360)%360}function iw(n){const e=x2.exec(n);let t=255,i;if(!e)return;e[5]!==i&&(t=e[6]?wl(+e[5]):Ui(+e[5]));const s=B0(+e[2]),l=+e[3]/100,r=+e[4]/100;return e[1]==="hwb"?i=tw(s,l,r):e[1]==="hsv"?i=nw(s,l,r):i=Ju(s,l,r),{r:i[0],g:i[1],b:i[2],a:t}}function sw(n,e){var t=Yu(n);t[0]=B0(t[0]+e),t=Ju(t),n.r=t[0],n.g=t[1],n.b=t[2]}function lw(n){if(!n)return;const e=Yu(n),t=e[0],i=xc(e[1]),s=xc(e[2]);return n.a<255?`hsla(${t}, ${i}%, ${s}%, ${ki(n.a)})`:`hsl(${t}, ${i}%, ${s}%)`}const Xc={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Qc={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function rw(){const n={},e=Object.keys(Qc),t=Object.keys(Xc);let i,s,l,r,o;for(i=0;i<e.length;i++){for(r=o=e[i],s=0;s<t.length;s++)l=t[s]Line truncated
* Chart.js v3.8.0
* https://www.chartjs.org
* (c) 2022 Chart.js Contributors
* Released under the MIT License
*/class fS{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(e,t,i,s){const l=t.listeners[s],r=t.duration;l.forEach(o=>o({chart:e,initial:t.initial,numSteps:r,currentStep:Math.min(i-t.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=N0.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let t=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;const l=i.items;let r=l.length-1,o=!1,a;for(;r>=0;--r)a=l[r],a._active?(a._total>i.duration&&(i.duration=a._total),a.tick(e),o=!0):(l[r]=l[l.length-1],l.pop());o&&(s.draw(),this._notify(s,i,e,"progress")),l.length||(i.running=!1,this._notify(s,i,e,"complete"),i.initial=!1),t+=l.length}),this._lastDate=e,t===0&&(this._running=!1)}_getAnims(e){const t=this._charts;let i=t.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(e,i)),i}listen(e,t,i){this._getAnims(e).listeners[t].push(i)}add(e,t){!t||!t.length||this._getAnims(e).items.push(...t)}has(e){return this._getAnims(e).items.length>0}start(e){const t=this._charts.get(e);!t||(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(e){if(!this._running)return!1;const t=this._charts.get(e);return!(!t||!t.running||!t.items.length)}stop(e){const t=this._charts.get(e);if(!t||!t.items.length)return;const i=t.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();t.items=[],this._notify(e,t,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var bi=new fS;const dd="transparent",cS={boolean(n,e,t){return t>.5?e:n},color(n,e,t){const i=td(n||dd),s=i.valid&&td(e||dd);return s&&s.valid?s.mix(i,t).hexString():e},number(n,e,t){return n+(e-n)*t}};class dS{constructor(e,t,i,s){const l=t[i];s=Tr([e.to,s,l,e.from]);const r=Tr([e.from,l,s]);this._active=!0,this._fn=e.fn||cS[e.type||typeof r],this._easing=Al[e.easing]||Al.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=t,this._prop=i,this._from=r,this._to=s,this._promises=void 0}active(){return this._active}update(e,t,i){if(this._active){this._notify(!1);const s=this._target[this._prop],l=i-this._start,r=this._duration-l;this._start=i,this._duration=Math.floor(Math.max(r,e.duration)),this._total+=l,this._loop=!!e.loop,this._to=Tr([e.to,t,s,e.from]),this._from=Tr([e.from,s,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const t=e-this._start,i=this._duration,s=this._prop,l=this._from,r=this._loop,o=this._to;let a;if(this._active=l!==o&&(r||t<i),!this._active){this._target[s]=o,this._notify(!0);return}if(t<0){this._target[s]=l;return}a=t/i%2,a=r&&a>1?2-a:a,a=this._easing(Math.min(1,Math.max(0,a))),this._target[s]=this._fn(l,o,a)}wait(){const e=this._promises||(this._promises=[]);return new Promise((t,i)=>{e.push({res:t,rej:i})})}_notify(e){const t=e?"res":"rej",i=this._promises||[];for(let s=0;s<i.length;s++)i[s][t]()}}const pS=["x","y","borderWidth","radius","tension"],hS=["color","borderColor","backgroundColor"];gt.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0});const mS=Object.keys(gt.animation);gt.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:n=>n!=="onProgress"&&n!=="onComplete"&&n!=="fn"});gt.set("animations",{colors:{type:"color",properties:hS},numbers:{type:"number",properties:pS}});gt.describe("animations",{_fallback:"animation"});gt.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:n=>n|0}}}});class rb{constructor(e,t){this._chart=e,this._properties=new Map,this.configure(t)}configure(e){if(!pt(e))return;const t=this._properties;Object.getOwnPropertyNames(e).forEach(i=>{const s=e[i];if(!pt(s))return;const l={};for(const r of mS)l[r]=s[r];(Lt(s.properties)&&s.properties||[i]).forEach(r=>{(r===i||!t.has(r))&&t.set(r,l)})})}_animateOptions(e,t){const i=t.options,s=_S(e,i);if(!s)return[];const l=this._createAnimations(s,i);return i.$shared&&gS(e.options.$animations,i).then(()=>{e.options=i},()=>{}),l}_createAnimations(e,t){const i=this._properties,s=[],l=e.$animations||(e.$animations={}),r=Object.keys(t),o=Date.now();let a;for(a=r.length-1;a>=0;--a){const u=r[a];if(u.charAt(0)==="$")continue;if(u==="options"){s.push(...this._animateOptions(e,t));continue}const f=t[u];let c=l[u];const d=i.get(u);if(c)if(d&&c.active()){c.update(d,f,o);continue}else c.cancel();if(!d||!d.duration){e[u]=f;continue}l[u]=c=new dS(d,e,u,f),s.push(c)}return s}update(e,t){if(this._properties.size===0){Object.assign(e,t);return}const i=this._createAnimations(e,t);if(i.length)return bi.add(this._chart,i),!0}}function gS(n,e){const t=[]Line truncated
`)>-1?n.split(`
`):n}function LC(n,e){const{element:t,datasetIndex:i,index:s}=e,l=n.getDatasetMeta(i).controller,{label:r,value:o}=l.getLabelAndValue(s);return{chart:n,label:r,parsed:l.getParsed(s),raw:n.data.datasets[i].data[s],formattedValue:o,dataset:l.getDataset(),dataIndex:s,datasetIndex:i,element:t}}function zd(n,e){const t=n.chart.ctx,{body:i,footer:s,title:l}=n,{boxWidth:r,boxHeight:o}=e,a=Tn(e.bodyFont),u=Tn(e.titleFont),f=Tn(e.footerFont),c=l.length,d=s.length,h=i.length,g=Kn(e.padding);let y=g.height,b=0,v=i.reduce((C,M)=>C+M.before.length+M.lines.length+M.after.length,0);if(v+=n.beforeBody.length+n.afterBody.length,c&&(y+=c*u.lineHeight+(c-1)*e.titleSpacing+e.titleMarginBottom),v){const C=e.displayColors?Math.max(o,a.lineHeight):a.lineHeight;y+=h*C+(v-h)*a.lineHeight+(v-1)*e.bodySpacing}d&&(y+=e.footerMarginTop+d*f.lineHeight+(d-1)*e.footerSpacing);let S=0;const $=function(C){b=Math.max(b,t.measureText(C).width+S)};return t.save(),t.font=u.string,$t(n.title,$),t.font=a.string,$t(n.beforeBody.concat(n.afterBody),$),S=e.displayColors?r+2+e.boxPadding:0,$t(i,C=>{$t(C.before,$),$t(C.lines,$),$t(C.after,$)}),S=0,t.font=f.string,$t(n.footer,$),t.restore(),b+=g.width,{width:b,height:y}}function FC(n,e){const{y:t,height:i}=e;return t<i/2?"top":t>n.height-i/2?"bottom":"center"}function IC(n,e,t,i){const{x:s,width:l}=i,r=t.caretSize+t.caretPadding;if(n==="left"&&s+l+r>e.width||n==="right"&&s-l-r<0)return!0}function NC(n,e,t,i){const{x:s,width:l}=t,{width:r,chartArea:{left:o,right:a}}=n;let u="center";return i==="center"?u=s<=(o+a)/2?"left":"right":s<=l/2?u="left":s>=r-l/2&&(u="right"),IC(u,n,e,t)&&(u="center"),u}function Bd(n,e,t){const i=t.yAlign||e.yAlign||FC(n,t);return{xAlign:t.xAlign||e.xAlign||NC(n,e,t,i),yAlign:i}}function RC(n,e){let{x:t,width:i}=n;return e==="right"?t-=i:e==="center"&&(t-=i/2),t}function jC(n,e,t){let{y:i,height:s}=n;return e==="top"?i+=t:e==="bottom"?i-=s+t:i-=s/2,i}function Ud(n,e,t,i){const{caretSize:s,caretPadding:l,cornerRadius:r}=n,{xAlign:o,yAlign:a}=t,u=s+l,{topLeft:f,topRight:c,bottomLeft:d,bottomRight:h}=qs(r);let g=RC(e,o);const y=jC(e,a,u);return a==="center"?o==="left"?g+=u:o==="right"&&(g-=u):o==="left"?g-=Math.max(f,d)+s:o==="right"&&(g+=Math.max(c,h)+s),{x:an(g,0,i.width-e.width),y:an(y,0,i.height-e.height)}}function Ir(n,e,t){const i=Kn(t.padding);return e==="center"?n.x+n.width/2:e==="right"?n.x+n.width-i.right:n.x+i.left}function Wd(n){return li([],yi(n))}function HC(n,e,t){return Ji(n,{tooltip:e,tooltipItems:t,type:"tooltip"})}function Yd(n,e){const t=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return t?n.override(t):n}class du extends Di{constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart||e._chart,this._chart=this.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const t=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&t.options.animation&&i.animations,l=new rb(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(l)),l}getContext(){return this.$context||(this.$context=HC(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,t){const{callbacks:i}=t,s=i.beforeTitle.apply(this,[e]),l=i.title.apply(this,[e]),r=i.afterTitle.apply(this,[e]);let o=[];return o=li(o,yi(s)),o=li(o,yi(l)),o=li(o,yi(r)),o}getBeforeBody(e,t){return Wd(t.callbacks.beforeBody.apply(this,[e]))}getBody(e,t){const{callbacks:i}=t,s=[];return $t(e,l=>{const r={before:[],lines:[],after:[]},o=Yd(i,l);li(r.before,yi(o.beforeLabel.call(this,l))),li(r.lines,o.label.call(this,l)),li(r.after,yi(o.afterLabel.call(this,l))),s.push(r)}),s}getAfterBody(e,t){return Wd(t.callbacks.afterBody.apply(this,[e]))}getFooter(e,t){const{callbacks:i}=t,s=i.beforeFooter.apply(this,[e]),l=i.footer.apply(this,[e]),r=i.afterFooter.apply(this,[e]);let o=[];return o=li(o,yi(s)),o=li(o,yi(l)),o=li(o,yi(r)),o}_createItems(e){const t=this._active,i=this.chart.data,s=[],l=[],r=[];let o=[],a,u;for(a=0,u=t.length;a<u;++a)o.push(LC(this.chart,t[a]));return e.filter&&(o=o.filter((f,c,d)=>e.filter(f,c,d,i))),e.itemSort&&(o=o.sort((f,c)=>e.itemSort(f,c,i))),$t(o,f=>{const c=Yd(e.callbacks,f);s.push(c.labelColor.call(this,f)),l.push(c.labelPointStyle.call(this,f)),r.push(c.labelTextColor.call(this,f))}),this.labelColors=s,this.labelPointStyles=l,this.labelTextColors=r,this.dataPoints=o,o}update(e,t){const i=this.options.setContext(this.getContext()),s=this._active;l Line truncated
* chartjs-adapter-luxon v1.1.0
* https://www.chartjs.org
* (c) 2021 chartjs-adapter-luxon Contributors
* Released under the MIT license
*/const r3={datetime:Qe.DATETIME_MED_WITH_SECONDS,millisecond:"h:mm:ss.SSS a",second:Qe.TIME_WITH_SECONDS,minute:Qe.TIME_SIMPLE,hour:{hour:"numeric"},day:{day:"numeric",month:"short"},week:"DD",month:{month:"short",year:"numeric"},quarter:"'Q'q - yyyy",year:{year:"numeric"}};fb._date.override({_id:"luxon",_create:function(n){return Qe.fromMillis(n,this.options)},formats:function(){return r3},parse:function(n,e){const t=this.options;if(n===null||typeof n=="undefined")return null;const i=typeof n;return i==="number"?n=this._create(n):i==="string"?typeof e=="string"?n=Qe.fromFormat(n,e,t):n=Qe.fromISO(n,t):n instanceof Date?n=Qe.fromJSDate(n,t):i==="object"&&!(n instanceof Qe)&&(n=Qe.fromObject(n)),n.isValid?n.valueOf():null},format:function(n,e){const t=this._create(n);return typeof e=="string"?t.toFormat(e,this.options):t.toLocaleString(e)},add:function(n,e,t){const i={};return i[t]=e,this._create(n).plus(i).valueOf()},diff:function(n,e,t){return this._create(n).diff(this._create(e)).as(t).valueOf()},startOf:function(n,e,t){if(e==="isoWeek"){t=Math.trunc(Math.min(Math.max(0,t),6));const i=this._create(n);return i.minus({days:(i.weekday-t+7)%7}).startOf("day").valueOf()}return e?this._create(n).startOf(e).valueOf():n},endOf:function(n,e){return this._create(n).endOf(e).valueOf()}});function ep(n){let e,t,i;return{c(){e=_("div"),p(e,"class","chart-loader loader svelte-vh4sl8")},m(s,l){w(s,e,l),i=!0},i(s){i||(Ot(()=>{t||(t=ft(e,Wn,{duration:150},!0)),t.run(1)}),i=!0)},o(s){t||(t=ft(e,Wn,{duration:150},!1)),t.run(0),i=!1},d(s){s&&k(e),s&&t&&t.end()}}}function o3(n){let e,t,i=n[1]===1?"log":"logs",s;return{c(){e=H(n[1]),t=O(),s=H(i)},m(l,r){w(l,e,r),w(l,t,r),w(l,s,r)},p(l,r){r&2&&ge(e,l[1]),r&2&&i!==(i=l[1]===1?"log":"logs")&&ge(s,i)},d(l){l&&k(e),l&&k(t),l&&k(s)}}}function a3(n){let e;return{c(){e=H("Loading...")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function u3(n){let e,t,i,s,l,r,o=n[2]&&ep();function a(c,d){return c[2]?a3:o3}let u=a(n),f=u(n);return{c(){e=_("div"),o&&o.c(),t=O(),i=_("canvas"),s=O(),l=_("div"),f.c(),p(i,"class","chart-canvas svelte-vh4sl8"),vf(i,"height","250px"),vf(i,"width","100%"),p(e,"class","chart-wrapper svelte-vh4sl8"),ee(e,"loading",n[2]),p(l,"class","txt-hint m-t-xs txt-right")},m(c,d){w(c,e,d),o&&o.m(e,null),m(e,t),m(e,i),n[8](i),w(c,s,d),w(c,l,d),f.m(l,null),r=!0},p(c,[d]){c[2]?o?d&4&&A(o,1):(o=ep(),o.c(),A(o,1),o.m(e,t)):o&&(Me(),F(o,1,1,()=>{o=null}),Oe()),d&4&&ee(e,"loading",c[2]),u===(u=a(c))&&f?f.p(c,d):(f.d(1),f=u(c),f&&(f.c(),f.m(l,null)))},i(c){r||(A(o),r=!0)},o(c){F(o),r=!1},d(c){c&&k(e),o&&o.d(),n[8](null),c&&k(s),c&&k(l),f.d()}}}function f3(n,e,t){let{filter:i=""}=e,{presets:s=""}=e,l,r,o=[],a=0,u=!1;async function f(){return t(2,u=!0),ke.Logs.getRequestsStats({filter:[s,i].filter(Boolean).join("&&")}).then(h=>{c();for(let g of h)o.push({x:W.getDateTime(g.date).toLocal().toJSDate(),y:g.total}),t(1,a+=g.total);o.push({x:new Date,y:void 0})}).catch(h=>{h!==null&&(c(),console.warn(h),ke.errorResponseHandler(h,!1))}).finally(()=>{t(2,u=!1)})}function c(){t(1,a=0),t(7,o=[])}pi(()=>(vo.register(Gi,Io,tr,df,ir,PC,qC),t(6,r=new vo(l,{type:"line",data:{datasets:[{label:"Total requests",data:o,borderColor:"#ef4565",pointBackgroundColor:"#ef4565",backgroundColor:"rgb(239,69,101,0.05)",borderWidth:2,pointBorderWidth:0,fill:!0}]},options:{animation:!1,interaction:{intersect:!1,mode:"index"},scales:{y:{beginAtZero:!0,grid:{color:"#edf0f3",borderColor:"#dee3e8"},ticks:{precision:0,maxTicksLimit:6,autoSkip:!0,color:"#666f75"}},x:{type:"time",time:{unit:"hour",tooltipFormat:"DD h a"},grid:{borderColor:"#dee3e8",color:h=>h.tick.major?"#edf0f3":""},ticks:{maxTicksLimit:15,autoSkip:!0,maxRotation:0,major:{enabled:!0},color:h=>h.tick.major?"#16161a":"#666f75"}}},plugins:{legend:{display:!1}}}})),()=>r==null?void 0:r.destroy()));function d(h){pe[h?"unshift":"push"](()=>{l=h,t(0,l)})}return n.$$set=h=>{"filter"in h&&t(3,i=h.filter),"presets"in h&&t(4,s=h.presets)},n.$$.update=()=>{n.$$.dirty&24&&(typeof i!="undefined"||typeof s!="undefined")&&f(),n.$$.dirty&192&&typeof o!="undefined"&&r&&(t(6,r.data.datasets[0].data=o,r),r.update())},[l,a,u,i,s,f,r,o,d]}class c3 extends Pe{constructor(e){super(),Ee(this,e,f3,u3,De,{filter:3,presets:4,load:5})}get load(){return this.$$.ctx[5]}}var tp=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},Eb={exports:{}};(function(n){var e=typeof window!="undefined"?window:typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope?self:{};/**
* Prism: Lightweight, robust, elegant syntax highlighting
*
* @license MIT <https://opensource.org/licenses/MIT>
* @author Lea Verou <https://lea.verou.me>
* @namespace
* @public
*/var t=function(i){var s=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,l=0,r={},o={manual:i.Prism&&i.Prism.manual,disableWorkerMessageHandler:i.Prism&&i.Prism.disableWorkerMessageHandler,util:{encode:function S($){return $ instanceof a?new a($.type,S($.content),$.alias):Array.isArray($)?$.map(S):$.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(S){return Object.prototype.toString.call(S).slice(8,-1)},objId:function(S){return S.__id||Object.defineProperty(S,"__id",{value:++l}),S.__id},clone:function S($,C){C=C||{};var M,T;switch(o.util.type($)){case"Object":if(T=o.util.objId($),C[T])return C[T];M={},C[T]=M;for(var E in $)$.hasOwnProperty(E)&&(M[E]=S($[E],C));return M;case"Array":return T=o.util.objId($),C[T]?C[T]:(M=[],C[T]=M,$.forEach(function(D,P){M[P]=S(D,C)}),M);default:return $}},getLanguage:function(S){for(;S;){var $=s.exec(S.className);if($)return $[1].toLowerCase();S=S.parentElement}return"none"},setLanguage:function(S,$){S.className=S.className.replace(RegExp(s,"gi"),""),S.classList.add("language-"+$)},currentScript:function(){if(typeof document=="undefined")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(M){var S=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(M.stack)||[])[1];if(S){var $=document.getElementsByTagName("script");for(var C in $)if($[C].src==S)return $[C]}return null}},isActive:function(S,$,C){for(var M="no-"+$;S;){var T=S.classList;if(T.contains($))return!0;if(T.contains(M))return!1;S=S.parentElement}return!!C}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(S,$){var C=o.util.clone(o.languages[S]);for(var M in $)C[M]=$[M];return C},insertBefore:function(S,$,C,M){M=M||o.languages;var T=M[S],E={};for(var D in T)if(T.hasOwnProperty(D)){if(D==$)for(var P in C)C.hasOwnProperty(P)&&(E[P]=C[P]);C.hasOwnProperty(D)||(E[D]=T[D])}var L=M[S];return M[S]=E,o.languages.DFS(o.languages,function(R,j){j===L&&R!=S&&(this[R]=E)}),E},DFS:function S($,C,M,T){T=T||{};var E=o.util.objId;for(var D in $)if($.hasOwnProperty(D)){C.call($,D,$[D],M||D);var P=$[D],L=o.util.type(P);L==="Object"&&!T[E(P)]?(T[E(P)]=!0,S(P,C,null,T)):L==="Array"&&!T[E(P)]&&(T[E(P)]=!0,S(P,C,D,T))}}},plugins:{},highlightAll:function(S,$){o.highlightAllUnder(document,S,$)},highlightAllUnder:function(S,$,C){var M={callback:C,container:S,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};o.hooks.run("before-highlightall",M),M.elements=Array.prototype.slice.apply(M.container.querySelectorAll(M.selector)),o.hooks.run("before-all-elements-highlight",M);for(var T=0,E;E=M.elements[T++];)o.highlightElement(E,$===!0,M.callback)},highlightElement:function(S,$,C){var M=o.util.getLanguage(S),T=o.languages[M];o.util.setLanguage(S,M);var E=S.parentElement;E&&E.nodeName.toLowerCase()==="pre"&&o.util.setLanguage(E,M);var D=S.textContent,P={element:S,language:M,grammar:T,code:D};function L(j){P.highlightedCode=j,o.hooks.run("before-insert",P),P.element.innerHTML=P.highlightedCode,o.hooks.run("after-highlight",P),o.hooks.run("complete",P),C&&C.call(P.element)}if(o.hooks.run("before-sanity-check",P),E=P.element.parentElement,E&&E.nodeName.toLowerCase()==="pre"&&!E.hasAttribute("tabindex")&&E.setAttribute("tabindex","0"),!P.code){o.hooks.run("complete",P),C&&C.call(P.element);return}if(o.hooks.run("before-highlight",P),!P.grammar){L(o.util.encode(P.code));return}if($&&i.Worker){var R=new Worker(o.filename);R.onmessage=function(j){L(j.data)},R.postMessage(JSON.stringify({language:P.language,code:P.code,immediateClose:!0}))}else L(o.highlight(P.code,P.grammar,P.language))},highlight:function(S,$,C){var M={code:S,grammar:$,language:C};if(o.hooks.run("before-tokenize",M),!M.grammar)throw new Error('The language "'+M.language+'" has no grammar.');return M.tokens=o.tokenize(M.code,M.grammar),o.hooks.run("after-tokenize",M),a.stringify(o.util.encode(M.tokens),M.language)},tokenize:function(S,$){var C=$.rest;if(C){for(var M in C)$[M]=C[M];delete $.rest}var T=new c;return d(T,T.head,S),f(S,T,$,T.head,0),g(T)},hooks:{all:{},add:function(S,$){var C=o.hooks.all;C[S]=C[S]||[],C[S].push($)},run:function(S,$){var C=o.hooks.all[S];if(!(!C||!C.length))for(var M=0,T;T=C[M++];)T($)}},Token:a};i.Prism=o;function a(S,$,C,M){this.type=S,this.content=$,this.alias=C,this.length=(M||"").length|0}a.stringify=function S($,C){if(typeof $=="string")return $;if(Array.isArray($)){var M="";return $.forEach(function(L){M+=S(L,C)}),M}var T={type:$.type,content:S($.content,C),tag:"span",classes:["token",$.type],attributes:{},language:C},E=$.alias;E&&(Array.isArray(E)?Array.prototype.push.apply(T.classes,E):T.classes.push(E)),o.hooks.run("wrap",T);var D="";for(var P in T.attributes)D+=" "+P+'="'+(T.attributes[P]||"").replace(/"/g,"&quot;")+'"';return"<"+T.tag+' class="'+T.classes.join(" ")+'"'+D+">"+T.content+"</"+T.tag+">"};function u(S,$,C,M){S.lastIndex=$;var T=S.exec(C);if(T&&M&&T[1]){var E=T[1].length;T.index+=E,T[0]=T[0].slice(E)}retLine truncated
`),b.hasAttribute("data-start")||b.setAttribute("data-start",String(P+1))}v.textContent=T,t.highlightElement(v)},function(T){b.setAttribute(o,f),v.textContent=T})}}),t.plugins.fileHighlight={highlight:function(b){for(var v=(b||document).querySelectorAll(c),S=0,$;$=v[S++];)t.highlightElement($)}};var g=!1;t.fileHighlight=function(){g||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),g=!0),t.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(Eb);var _l=Eb.exports,d3={exports:{}};(function(n){(function(){if(typeof Prism=="undefined")return;var e=Object.assign||function(l,r){for(var o in r)r.hasOwnProperty(o)&&(l[o]=r[o]);return l};function t(l){this.defaults=e({},l)}function i(l){return l.replace(/-(\w)/g,function(r,o){return o.toUpperCase()})}function s(l){for(var r=0,o=0;o<l.length;++o)l.charCodeAt(o)==" ".charCodeAt(0)&&(r+=3);return l.length+r}t.prototype={setDefaults:function(l){this.defaults=e(this.defaults,l)},normalize:function(l,r){r=e(this.defaults,r);for(var o in r){var a=i(o);o!=="normalize"&&a!=="setDefaults"&&r[o]&&this[a]&&(l=this[a].call(this,l,r[o]))}return l},leftTrim:function(l){return l.replace(/^\s+/,"")},rightTrim:function(l){return l.replace(/\s+$/,"")},tabsToSpaces:function(l,r){return r=r|0||4,l.replace(/\t/g,new Array(++r).join(" "))},spacesToTabs:function(l,r){return r=r|0||4,l.replace(RegExp(" {"+r+"}","g")," ")},removeTrailing:function(l){return l.replace(/\s*?$/gm,"")},removeInitialLineFeed:function(l){return l.replace(/^(?:\r?\n|\r)/,"")},removeIndent:function(l){var r=l.match(/^[^\S\n\r]*(?=\S)/gm);return!r||!r[0].length||(r.sort(function(o,a){return o.length-a.length}),!r[0].length)?l:l.replace(RegExp("^"+r[0],"gm"),"")},indent:function(l,r){return l.replace(/^[^\S\n\r]*(?=\S)/gm,new Array(++r).join(" ")+"$&")},breakLines:function(l,r){r=r===!0?80:r|0||80;for(var o=l.split(`
`),a=0;a<o.length;++a)if(!(s(o[a])<=r)){for(var u=o[a].split(/(\s+)/g),f=0,c=0;c<u.length;++c){var d=s(u[c]);f+=d,f>r&&(u[c]=`
`+u[c],f=d)}o[a]=u.join("")}return o.join(`
`)}},n.exports&&(n.exports=t),Prism.plugins.NormalizeWhitespace=new t({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",function(l){var r=Prism.plugins.NormalizeWhitespace;if(!(l.settings&&l.settings["whitespace-normalization"]===!1)&&!!Prism.util.isActive(l.element,"whitespace-normalization",!0)){if((!l.element||!l.element.parentNode)&&l.code){l.code=r.normalize(l.code,l.settings);return}var o=l.element.parentNode;if(!(!l.code||!o||o.nodeName.toLowerCase()!=="pre")){for(var a=o.childNodes,u="",f="",c=!1,d=0;d<a.length;++d){var h=a[d];h==l.element?c=!0:h.nodeName==="#text"&&(c?f+=h.nodeValue:u+=h.nodeValue,o.removeChild(h),--d)}if(!l.element.children.length||!Prism.plugins.KeepMarkup)l.code=u+l.code+f,l.code=r.normalize(l.code,l.settings);else{var g=u+l.element.innerHTML+f;l.element.innerHTML=r.normalize(g,l.settings),l.code=l.element.textContent}}}})})()})(d3);function p3(n){let e,t;return{c(){e=_("div"),t=_("code"),p(t,"class","svelte-tv7jme"),p(e,"class","code-wrapper prism-light svelte-tv7jme")},m(i,s){w(i,e,s),m(e,t),t.innerHTML=n[0]},p(i,[s]){s&1&&(t.innerHTML=i[0])},i:oe,o:oe,d(i){i&&k(e)}}}function h3(n,e,t){let{content:i=""}=e,{language:s="javascript"}=e,l="";function r(o){return o=typeof o=="string"?o:"",o=_l.plugins.NormalizeWhitespace.normalize(o,{"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),_l.highlight(o,_l.languages[s]||_l.languages.javascript,s)}return n.$$set=o=>{"content"in o&&t(1,i=o.content),"language"in o&&t(2,s=o.language)},n.$$.update=()=>{n.$$.dirty&2&&typeof _l!="undefined"&&i&&t(0,l=r(i))},[l,i,s]}class nn extends Pe{constructor(e){super(),Ee(this,e,h3,p3,De,{content:1,language:2})}}const m3=n=>({}),np=n=>({}),g3=n=>({}),ip=n=>({});function sp(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g,y,b,v,S,$=n[4]&&!n[2]&&lp(n);const C=n[18].header,M=Dn(C,n,n[17],ip);let T=n[4]&&n[2]&&rp(n);const E=n[18].default,D=Dn(E,n,n[17],null),P=n[18].footer,L=Dn(P,n,n[17],np);return{c(){e=_("div"),t=_("div"),s=O(),l=_("div"),r=_("div"),$&&$.c(),o=O(),M&&M.c(),a=O(),T&&T.c(),u=O(),f=_("div"),D&&D.c(),c=O(),d=_("div"),L&&L.c(),p(t,"class","overlay"),p(r,"class","overlay-panel-section panel-header"),p(f,"class","overlay-panel-section panel-content"),p(d,"class","overlay-panel-section panel-footer"),p(l,"class",h="overlay-panel "+n[1]+" "+n[8]),ee(l,"popup",n[2]),p(e,"class","overlay-panel-container"),ee(e,"padded",n[2]),ee(e,"active",n[0])},m(R,j){w(R,e,j),m(e,t),m(e,s),m(e,l),m(l,r),$&&$.m(r,null),m(r,o),M&&M.m(r,null),m(r,a),T&&T.m(r,null),m(l,u),m(l,f),D&&D.m(f,null),n[20](f),m(l,c),m(l,d),L&&L.m(d,null),b=!0,v||(S=[Q(t,"click",Wt(n[19])),Q(f,"scroll",n[21])],v=!0)},p(R,j){n=R,n[4]&&!n[2]?$?$.p(n,j):($=lp(n),$.c(),$.m(r,o)):$&&($.d(1),$=null),M&&M.p&&(!b||j&131072)&&En(M,C,n,n[17],b?An(C,n[17],j,g3):Pn(n[17]),ip),n[4]&&n[2]?T?T.p(n,j):(T=rp(n),T.c(),T.m(r,null)):T&&(T.d(1),T=null),D&&D.p&&(!b||j&131072)&&En(D,E,n,n[17],b?An(E,n[17],j,null):Pn(n[17]),null),L&&L.p&&(!b||j&131072)&&En(L,P,n,n[17],b?An(P,n[17],j,m3):Pn(n[17]),np),(!b||j&258&&h!==(h="overlay-panel "+n[1]+" "+n[8]))&&p(l,"class",h),j&262&&ee(l,"popup",n[2]),j&4&&ee(e,"padded",n[2]),j&1&&ee(e,"active",n[0])},i(R){b||(Ot(()=>{i||(i=ft(t,ao,{duration:Ls,opacity:0},!0)),i.run(1)}),A(M,R),A(D,R),A(L,R),Ot(()=>{y&&y.end(1),g=wu(l,ni,n[2]?{duration:Ls,y:-10}:{duration:Ls,x:50}),g.start()}),b=!0)},o(R){i||(i=ft(t,ao,{duration:Ls,opacity:0},!1)),i.run(0),F(M,R),F(D,R),F(L,R),g&&g.invalidate(),y=Xg(l,ni,n[2]?{duration:Ls,y:10}:{duration:Ls,x:50}),b=!1},d(R){R&&k(e),R&&i&&i.end(),$&&$.d(),M&&M.d(R),T&&T.d(),D&&D.d(R),n[20](null),L&&L.d(R),R&&y&&y.end(),v=!1,lt(S)}}}function lp(n){let e,t,i;return{c(){e=_("div"),e.innerHTML='<i class="ri-close-line"></i>',p(e,"class","overlay-close")},m(s,l){w(s,e,l),t||(i=Q(e,"click",Wt(n[5])),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function rp(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<i class="ri-close-line txt-lg"></i>',p(e,"type","button"),p(e,"class","btn btn-sm btn-circle btn-secondary btn-close m-l-auto")},m(s,l){w(s,e,l),t||(i=Q(e,"click",Wt(n[5])),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function _3(n){let e,t,i,s,l=n[0]&&sp(n);return{c(){e=_("div"),l&&l.c(),p(e,"class","overlay-panel-wrapper")},m(r,o){w(r,e,o),l&&l.m(e,null),n[22](e),t=!0,i||(s=[Q(window,"resize",n[10]),Q(window,"keydown",n[9])],i=!0)},p(r,[o]){r[0]?l?(l.p(r,o),o&1&&A(l,1)):(l=sp(r),l.c(),A(l,1),l.m(e,null)):l&&(Me(),F(l,1,1,()=>{l=null}),Oe())},i(r){t||(A(l),t=!0)},o(r){F(l),t=!1},d(r){r&&k(e),l&&l.d(),n[22](null),i=!1,lt(s)}}}let ss;function Pb(){return ss=ss||document.querySelector(".overlays"),ss||(ss=document.createElement("div"),ss.classList.add("overlays"),document.body.appendChild(ss)),ss}let Ls=150;function op(){return 1e3+Pb().querySelectorAll(".overlay-panel-container.active").length}function b3(n,e,t){let{$$slots:i={},$$scope:s}=e,{class:l=""}=e,{active:r=!1}=e,{popup:o=!1}=e,{overlayClose:a=!0}=e,{btnClose:u=!0}=e,{escClose:f=!0}=e,{beforeOpen:c=void Line truncated
This field is disabled if "Only domains" is set.`,position:"top"})),d=!0)},p(b,v){(!c||v&16&&l!==(l=b[4]))&&p(e,"for",l);const S={};v&16&&(S.id=b[4]),v&1&&(S.disabled=!W.isEmpty(b[0].onlyDomains)),!a&&v&1&&(a=!0,S.value=b[0].exceptDomains,je(()=>a=!1)),o.$set(S)},i(b){c||(A(o.$$.fragment,b),c=!0)},o(b){F(o.$$.fragment,b),c=!1},d(b){b&&k(e),b&&k(r),z(o,b),b&&k(u),b&&k(f),d=!1,h()}}}function w4(n){let e,t,i,s,l,r,o,a,u,f,c,d,h;function g(b){n[3](b)}let y={id:n[4]+".options.onlyDomains",disabled:!W.isEmpty(n[0].exceptDomains)};return n[0].onlyDomains!==void 0&&(y.value=n[0].onlyDomains),o=new Ss({props:y}),pe.push(()=>Ie(o,"value",g)),{c(){e=_("label"),t=_("span"),t.textContent="Only domains",i=O(),s=_("i"),r=O(),B(o.$$.fragment),u=O(),f=_("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[4]+".options.onlyDomains"),p(f,"class","help-block")},m(b,v){w(b,e,v),m(e,t),m(e,i),m(e,s),w(b,r,v),V(o,b,v),w(b,u,v),w(b,f,v),c=!0,d||(h=Xe(St.call(null,s,{text:`Domains that are ONLY allowed as value.
This field is disabled if "Except domains" is set.`,position:"top"})),d=!0)},p(b,v){(!c||v&16&&l!==(l=b[4]+".options.onlyDomains"))&&p(e,"for",l);const S={};v&16&&(S.id=b[4]+".options.onlyDomains"),v&1&&(S.disabled=!W.isEmpty(b[0].exceptDomains)),!a&&v&1&&(a=!0,S.value=b[0].onlyDomains,je(()=>a=!1)),o.$set(S)},i(b){c||(A(o.$$.fragment,b),c=!0)},o(b){F(o.$$.fragment,b),c=!1},d(b){b&&k(e),b&&k(r),z(o,b),b&&k(u),b&&k(f),d=!1,h()}}}function S4(n){let e,t,i,s,l,r,o;return i=new Fe({props:{class:"form-field",name:"schema."+n[1]+".options.exceptDomains",$$slots:{default:[k4,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),r=new Fe({props:{class:"form-field",name:"schema."+n[1]+".options.onlyDomains",$$slots:{default:[w4,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=O(),l=_("div"),B(r.$$.fragment),p(t,"class","col-sm-6"),p(l,"class","col-sm-6"),p(e,"class","grid")},m(a,u){w(a,e,u),m(e,t),V(i,t,null),m(e,s),m(e,l),V(r,l,null),o=!0},p(a,[u]){const f={};u&2&&(f.name="schema."+a[1]+".options.exceptDomains"),u&49&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};u&2&&(c.name="schema."+a[1]+".options.onlyDomains"),u&49&&(c.$$scope={dirty:u,ctx:a}),r.$set(c)},i(a){o||(A(i.$$.fragment,a),A(r.$$.fragment,a),o=!0)},o(a){F(i.$$.fragment,a),F(r.$$.fragment,a),o=!1},d(a){a&&k(e),z(i),z(r)}}}function $4(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(o){n.$$.not_equal(s.exceptDomains,o)&&(s.exceptDomains=o,t(0,s))}function r(o){n.$$.not_equal(s.onlyDomains,o)&&(s.onlyDomains=o,t(0,s))}return n.$$set=o=>{"key"in o&&t(1,i=o.key),"options"in o&&t(0,s=o.options)},[s,i,l,r]}class Ib extends Pe{constructor(e){super(),Ee(this,e,$4,S4,De,{key:1,options:0})}}function C4(n){let e,t,i,s;function l(a){n[2](a)}function r(a){n[3](a)}let o={};return n[0]!==void 0&&(o.key=n[0]),n[1]!==void 0&&(o.options=n[1]),e=new Ib({props:o}),pe.push(()=>Ie(e,"key",l)),pe.push(()=>Ie(e,"options",r)),{c(){B(e.$$.fragment)},m(a,u){V(e,a,u),s=!0},p(a,[u]){const f={};!t&&u&1&&(t=!0,f.key=a[0],je(()=>t=!1)),!i&&u&2&&(i=!0,f.options=a[1],je(()=>i=!1)),e.$set(f)},i(a){s||(A(e.$$.fragment,a),s=!0)},o(a){F(e.$$.fragment,a),s=!1},d(a){z(e,a)}}}function M4(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(o){i=o,t(0,i)}function r(o){s=o,t(1,s)}return n.$$set=o=>{"key"in o&&t(0,i=o.key),"options"in o&&t(1,s=o.options)},[i,s,l,r]}class O4 extends Pe{constructor(e){super(),Ee(this,e,M4,C4,De,{key:0,options:1})}}var Ma=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],Vs={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(n){return typeof console!="undefined"&&console.warn(n)},getWeek:function(n){var e=new Date(n.getTime());e.setHours(0,0,0,0),e.setDate(e.getDate()+3-(e.getDay()+6)%7);var t=new Date(e.getFullYear(),0,4);return 1+Math.round(((e.getTime()-t.getTime())/864e5-3+(t.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},Bl={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(n){var e=n%100;if(e>3&&e<21)return"th";switch(e%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Clic Line truncated
<span class='flatpickr-weekday'>
`+I.join("</span><span class='flatpickr-weekday'>")+`
</span>
`}}function ce(){t.calendarContainer.classList.add("hasWeeks");var N=kt("div","flatpickr-weekwrapper");N.appendChild(kt("span","flatpickr-weekday",t.l10n.weekAbbreviation));var I=kt("div","flatpickr-weeks");return N.appendChild(I),{weekWrapper:N,weekNumbers:I}}function be(N,I){I===void 0&&(I=!0);var U=I?N:N-t.currentMonth;U<0&&t._hidePrevMonthArrow===!0||U>0&&t._hideNextMonthArrow===!0||(t.currentMonth+=U,(t.currentMonth<0||t.currentMonth>11)&&(t.currentYear+=t.currentMonth>11?1:-1,t.currentMonth=(t.currentMonth+12)%12,et("onYearChange"),G()),j(),et("onMonthChange"),Ze())}function se(N,I){if(N===void 0&&(N=!0),I===void 0&&(I=!0),t.input.value="",t.altInput!==void 0&&(t.altInput.value=""),t.mobileInput!==void 0&&(t.mobileInput.value=""),t.selectedDates=[],t.latestSelectedDateObj=void 0,I===!0&&(t.currentYear=t._initialDate.getFullYear(),t.currentMonth=t._initialDate.getMonth()),t.config.enableTime===!0){var U=Aa(t.config),le=U.hours,Ne=U.minutes,Be=U.seconds;h(le,Ne,Be)}t.redraw(),N&&et("onChange")}function x(){t.isOpen=!1,t.isMobile||(t.calendarContainer!==void 0&&t.calendarContainer.classList.remove("open"),t._input!==void 0&&t._input.classList.remove("active")),et("onClose")}function Te(){t.config!==void 0&&et("onDestroy");for(var N=t._handlers.length;N--;)t._handlers[N].remove();if(t._handlers=[],t.mobileInput)t.mobileInput.parentNode&&t.mobileInput.parentNode.removeChild(t.mobileInput),t.mobileInput=void 0;else if(t.calendarContainer&&t.calendarContainer.parentNode)if(t.config.static&&t.calendarContainer.parentNode){var I=t.calendarContainer.parentNode;if(I.lastChild&&I.removeChild(I.lastChild),I.parentNode){for(;I.firstChild;)I.parentNode.insertBefore(I.firstChild,I);I.parentNode.removeChild(I)}}else t.calendarContainer.parentNode.removeChild(t.calendarContainer);t.altInput&&(t.input.type="text",t.altInput.parentNode&&t.altInput.parentNode.removeChild(t.altInput),delete t.altInput),t.input&&(t.input.type=t.input._type,t.input.classList.remove("flatpickr-input"),t.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(U){try{delete t[U]}catch{}})}function te(N){return t.calendarContainer.contains(N)}function _e(N){if(t.isOpen&&!t.config.inline){var I=$n(N),U=te(I),le=I===t.input||I===t.altInput||t.element.contains(I)||N.path&&N.path.indexOf&&(~N.path.indexOf(t.input)||~N.path.indexOf(t.altInput)),Ne=!le&&!U&&!te(N.relatedTarget),Be=!t.config.ignoredFocusElements.some(function(tt){return tt.contains(I)});Ne&&Be&&(t.config.allowInput&&t.setDate(t._input.value,!1,t.config.altInput?t.config.altFormat:t.config.dateFormat),t.timeContainer!==void 0&&t.minuteElement!==void 0&&t.hourElement!==void 0&&t.input.value!==""&&t.input.value!==void 0&&a(),t.close(),t.config&&t.config.mode==="range"&&t.selectedDates.length===1&&t.clear(!1))}}function fe(N){if(!(!N||t.config.minDate&&N<t.config.minDate.getFullYear()||t.config.maxDate&&N>t.config.maxDate.getFullYear())){var I=N,U=t.currentYear!==I;t.currentYear=I||t.currentYear,t.config.maxDate&&t.currentYear===t.config.maxDate.getFullYear()?t.currentMonth=Math.min(t.config.maxDate.getMonth(),t.currentMonth):t.config.minDate&&t.currentYear===t.config.minDate.getFullYear()&&(t.currentMonth=Math.max(t.config.minDate.getMonth(),t.currentMonth)),U&&(t.redraw(),et("onYearChange"),G())}}function ie(N,I){var U;I===void 0&&(I=!0);var le=t.parseDate(N,void 0,I);if(t.config.minDate&&le&&Cn(le,t.config.minDate,I!==void 0?I:!t.minDateHasTime)<0||t.config.maxDate&&le&&Cn(le,t.config.maxDate,I!==void 0?I:!t.maxDateHasTime)>0)return!1;if(!t.config.enable&&t.config.disable.length===0)return!0;if(le===void 0)return!1;for(var Ne=!!t.config.enable,Be=(U=t.config.enable)!==null&&U!==void 0?U:t.config.disable,tt=0,Ke=void 0;tt<Be.length;tt++){if(Ke=Be[tt],typeof Ke=="function"&&Ke(le))return Ne;if(Ke instanceof Date&&le!==void 0&&Ke.getTime()===le.getTime())return Ne;if(typeof Ke=="string"){var nt=t.parseDate(Ke,void 0,!0);return nt&&nt.getTime()===le.getTime()?Ne:!Ne}else if(typeof Ke=="object"&&le!==void 0&&Ke.from&&Ke.to&&le.getTime()>=Ke.from.getTime()&&le.getTime()<=Ke.to.getTime())return Ne}return!Ne}function ye(N){return t.daysContainer!==void 0?N.className.indexOf("hidden")===-1&&N.className.indexOf("flatpickr-disabled")===-1&&t.daysContainer.contains(N):!1}function He(N){var I=N.target===t._input,U=t._input.value.trimEnd()!==Gt();I&&U&&!(N.relatedTarget&&te(N.relatedTarget))&&t.setDate(t._input.value,!0,N.target===t.altInput?t.config.altFormat:t.config.dateFormat)}function Le(N){var I= Line truncated
`),d=_("span"),h=_("span"),h.textContent="Choose presets",g=O(),B(y.$$.fragment),p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[9]),p(h,"class","txt link-primary"),p(d,"class","inline-flex"),p(f,"class","help-block")},m(M,T){w(M,e,T),m(e,t),m(e,i),m(e,s),w(M,r,T),V(o,M,T),w(M,u,T),w(M,f,T),m(f,c),m(f,d),m(d,h),m(d,g),V(y,d,null),b=!0,v||(S=Xe(St.call(null,s,{text:`Allow uploading files ONLY with the listed mime types.
Leave empty for no restriction.`,position:"top"})),v=!0)},p(M,T){(!b||T&512&&l!==(l=M[9]))&&p(e,"for",l);const E={};T&512&&(E.id=M[9]),!a&&T&1&&(a=!0,E.value=M[0].mimeTypes,je(()=>a=!1)),o.$set(E);const D={};T&1025&&(D.$$scope={dirty:T,ctx:M}),y.$set(D)},i(M){b||(A(o.$$.fragment,M),A(y.$$.fragment,M),b=!0)},o(M){F(o.$$.fragment,M),F(y.$$.fragment,M),b=!1},d(M){M&&k(e),M&&k(r),z(o,M),M&&k(u),M&&k(f),z(y),v=!1,S()}}}function eM(n){let e,t,i,s,l,r,o,a,u,f,c,d,h;function g(b){n[8](b)}let y={id:n[9],placeholder:"eg. 50x50, 480x720"};return n[0].thumbs!==void 0&&(y.value=n[0].thumbs),o=new Ss({props:y}),pe.push(()=>Ie(o,"value",g)),{c(){e=_("label"),t=_("span"),t.textContent="Thumb sizes",i=O(),s=_("i"),r=O(),B(o.$$.fragment),u=O(),f=_("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[9]),p(f,"class","help-block")},m(b,v){w(b,e,v),m(e,t),m(e,i),m(e,s),w(b,r,v),V(o,b,v),w(b,u,v),w(b,f,v),c=!0,d||(h=Xe(St.call(null,s,{text:"List of thumb sizes for image files. The thumbs will be generated lazily on first access.",position:"top"})),d=!0)},p(b,v){(!c||v&512&&l!==(l=b[9]))&&p(e,"for",l);const S={};v&512&&(S.id=b[9]),!a&&v&1&&(a=!0,S.value=b[0].thumbs,je(()=>a=!1)),o.$set(S)},i(b){c||(A(o.$$.fragment,b),c=!0)},o(b){F(o.$$.fragment,b),c=!1},d(b){b&&k(e),b&&k(r),z(o,b),b&&k(u),b&&k(f),d=!1,h()}}}function tM(n){let e,t,i,s,l,r,o,a,u,f,c,d,h;return i=new Fe({props:{class:"form-field required",name:"schema."+n[1]+".options.maxSize",$$slots:{default:[Z4,({uniqueId:g})=>({9:g}),({uniqueId:g})=>g?512:0]},$$scope:{ctx:n}}}),r=new Fe({props:{class:"form-field required",name:"schema."+n[1]+".options.maxSelect",$$slots:{default:[x4,({uniqueId:g})=>({9:g}),({uniqueId:g})=>g?512:0]},$$scope:{ctx:n}}}),u=new Fe({props:{class:"form-field",name:"schema."+n[1]+".options.mimeTypes",$$slots:{default:[Q4,({uniqueId:g})=>({9:g}),({uniqueId:g})=>g?512:0]},$$scope:{ctx:n}}}),d=new Fe({props:{class:"form-field",name:"schema."+n[1]+".options.thumbs",$$slots:{default:[eM,({uniqueId:g})=>({9:g}),({uniqueId:g})=>g?512:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=O(),l=_("div"),B(r.$$.fragment),o=O(),a=_("div"),B(u.$$.fragment),f=O(),c=_("div"),B(d.$$.fragment),p(t,"class","col-sm-6"),p(l,"class","col-sm-6"),p(a,"class","col-sm-12"),p(c,"class","col-sm-12"),p(e,"class","grid")},m(g,y){w(g,e,y),m(e,t),V(i,t,null),m(e,s),m(e,l),V(r,l,null),m(e,o),m(e,a),V(u,a,null),m(e,f),m(e,c),V(d,c,null),h=!0},p(g,[y]){const b={};y&2&&(b.name="schema."+g[1]+".options.maxSize"),y&1537&&(b.$$scope={dirty:y,ctx:g}),i.$set(b);const v={};y&2&&(v.name="schema."+g[1]+".options.maxSelect"),y&1537&&(v.$$scope={dirty:y,ctx:g}),r.$set(v);const S={};y&2&&(S.name="schema."+g[1]+".options.mimeTypes"),y&1537&&(S.$$scope={dirty:y,ctx:g}),u.$set(S);const $={};y&2&&($.name="schema."+g[1]+".options.thumbs"),y&1537&&($.$$scope={dirty:y,ctx:g}),d.$set($)},i(g){h||(A(i.$$.fragment,g),A(r.$$.fragment,g),A(u.$$.fragment,g),A(d.$$.fragment,g),h=!0)},o(g){F(i.$$.fragment,g),F(r.$$.fragment,g),F(u.$$.fragment,g),F(d.$$.fragment,g),h=!1},d(g){g&&k(e),z(i),z(r),z(u),z(d)}}}function nM(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(){s.maxSize=Mt(this.value),t(0,s)}function r(){s.maxSelect=Mt(this.value),t(0,s)}function o(d){n.$$.not_equal(s.mimeTypes,d)&&(s.mimeTypes=d,t(0,s))}const a=()=>{t(0,s.mimeTypes=["image/jpg","image/jpeg","image/png","image/svg+xml","image/gif"],s)},u=()=>{t(0,s.mimeTypes=["application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],s)},f=()=>{t(0,s.mimeTypes=["application/zip","application/x-7z-compressed","application/x-rar-compressed"],s)};function c(d){n.$$.not_equal(s.thumbs,d)&&(s.thumbs=d,t(0,s))}return n.$$set=d=>{"key"in d&&t(1,i=d.key),"options"in d&&t(0,s=d.options)},n.$$.update=()=>{n.$$.dirty&1&&W.isEmpty(s)&&t(0,s={maxSelect:1,maxSize:5242880,thumbs:[],mimeTypes:[]})},[s,i,l,r,o,a,u,f,c]}class iM extends Pe{constructor(e){super(),Ee(this,e,nM,tM,De,{key:1,options:0})}}function sM(n){let e,t,i,s,l,r,o;function a(f){n[5](f)}let u={searchable:n[3].length>5,selectPlaceholder:n[2]?"Loading...":"Select collection",noOptionsText:"No collections found",selectionKey:"id",items:n[3]};return n[0].collectionId!==void 0&&(u.keyOfSelected=n[0].collectionId),l=new ws({props:u}),pe.push(()=>Ie(l,"keyOfSelected",a)),{c(){e=_("label"),t=H("Collection"),s=O(),B(l.$$.fragment),p(e,"for",i=n[9])},m(f,c){w(f,e,c),m(e,t),w(f,s,c),V(l,f,c),o=!0},p(f,c){(!o||c&512&&i!==(i=f[9]))&&p(e,"for",i);const d={};c&8&&(d.searchable=f[3].length>5),c&4&&(d.selectPlaceholder=f[2]?"Loading...":"Select collection"),c&8&&(d.items=f[3]),!r&&c&1&&(r=!0,d.keyOfSelected=f[0].collectionId,je(()=>r=!1)),l.$set(d)},i(f){o||(A(l.$$.fragment,f),o=!0)},o(f){F(l.$$.fragment,f),o=!1},d(f){f&&k(e),f&&k(s),z(l,f)}}}function lM(n){let e,t,i,s,l,r,o,a;return{c( Line truncated
<code>@request.query.*</code>
<code>@request.data.*</code>
<code>@request.user.*</code>`,$=O(),C=_("hr"),M=O(),T=_("p"),T.innerHTML="You could also add constraints and query other collections using the <em>@collection</em> filter:",E=O(),D=_("div"),D.innerHTML="<code>@collection.ANY_COLLECTION_NAME.*</code>",P=O(),L=_("hr"),R=O(),j=_("p"),j.innerHTML=`Example rule:
<br/>
<code>@request.user.id!=null &amp;&amp; created&gt;&quot;2022-01-01 00:00:00&quot;</code>`,p(s,"class","m-b-0"),p(r,"class","inline-flex flex-gap-5"),p(g,"class","m-t-10 m-b-5"),p(b,"class","m-b-0"),p(S,"class","inline-flex flex-gap-5"),p(C,"class","m-t-10 m-b-5"),p(T,"class","m-b-0"),p(D,"class","inline-flex flex-gap-5"),p(L,"class","m-t-10 m-b-5"),p(i,"class","content"),p(t,"class","alert alert-warning m-0")},m(J,K){w(J,e,K),m(e,t),m(t,i),m(i,s),m(i,l),m(i,r),m(r,o),m(r,a),m(r,u),m(r,f),m(r,c),m(r,d);for(let ne=0;ne<Z.length;ne+=1)Z[ne].m(r,null);m(i,h),m(i,g),m(i,y),m(i,b),m(i,v),m(i,S),m(i,$),m(i,C),m(i,M),m(i,T),m(i,E),m(i,D),m(i,P),m(i,L),m(i,R),m(i,j),Y=!0},p(J,K){if(K&1){q=J[0].schema;let ne;for(ne=0;ne<q.length;ne+=1){const ce=Jp(J,q,ne);Z[ne]?Z[ne].p(ce,K):(Z[ne]=Zp(ce),Z[ne].c(),Z[ne].m(r,null))}for(;ne<Z.length;ne+=1)Z[ne].d(1);Z.length=q.length}},i(J){Y||(J&&Ot(()=>{G||(G=ft(e,fn,{duration:150},!0)),G.run(1)}),Y=!0)},o(J){J&&(G||(G=ft(e,fn,{duration:150},!1)),G.run(0)),Y=!1},d(J){J&&k(e),Bn(Z,J),J&&G&&G.end()}}}function jM(n){let e,t=n[19].name+"",i;return{c(){e=_("code"),i=H(t)},m(s,l){w(s,e,l),m(e,i)},p(s,l){l&1&&t!==(t=s[19].name+"")&&ge(i,t)},d(s){s&&k(e)}}}function HM(n){let e,t=n[19].name+"",i,s;return{c(){e=_("code"),i=H(t),s=H(".*")},m(l,r){w(l,e,r),m(e,i),m(e,s)},p(l,r){r&1&&t!==(t=l[19].name+"")&&ge(i,t)},d(l){l&&k(e)}}}function Zp(n){let e;function t(l,r){return l[19].type==="relation"||l[19].type==="user"?HM:jM}let i=t(n),s=i(n);return{c(){s.c(),e=st()},m(l,r){s.m(l,r),w(l,e,r)},p(l,r){i===(i=t(l))&&s?s.p(l,r):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&k(e)}}}function qM(n){let e=[],t=new Map,i,s,l=Object.entries(n[6]);const r=o=>o[14];for(let o=0;o<l.length;o+=1){let a=Kp(n,l,o),u=r(a);t.set(u,e[o]=xp(u,a))}return{c(){for(let o=0;o<e.length;o+=1)e[o].c();i=st()},m(o,a){for(let u=0;u<e.length;u+=1)e[u].m(o,a);w(o,i,a),s=!0},p(o,a){a&262235&&(l=Object.entries(o[6]),Me(),e=rt(e,a,r,1,o,l,t,i.parentNode,Ft,xp,i,Kp),Oe())},i(o){if(!s){for(let a=0;a<l.length;a+=1)A(e[a]);s=!0}},o(o){for(let a=0;a<e.length;a+=1)F(e[a]);s=!1},d(o){for(let a=0;a<e.length;a+=1)e[a].d(o);o&&k(i)}}}function VM(n){let e;return{c(){e=_("div"),e.innerHTML='<span class="loader"></span>',p(e,"class","txt-center")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function zM(n){let e,t,i;function s(){return n[9](n[14])}return{c(){e=_("button"),e.innerHTML='<i class="ri-lock-line"></i>',p(e,"type","button"),p(e,"class","rule-toggle-btn btn btn-circle btn-outline svelte-fjxz7k")},m(l,r){w(l,e,r),t||(i=[Xe(St.call(null,e,"Lock and set to Admins only")),Q(e,"click",s)],t=!0)},p(l,r){n=l},d(l){l&&k(e),t=!1,lt(i)}}}function BM(n){let e,t,i;function s(){return n[8](n[14])}return{c(){e=_("button"),e.innerHTML='<i class="ri-lock-unlock-line"></i>',p(e,"type","button"),p(e,"class","rule-toggle-btn btn btn-circle btn-outline btn-success svelte-fjxz7k")},m(l,r){w(l,e,r),t||(i=[Xe(St.call(null,e,"Unlock and set custom rule")),Q(e,"click",s)],t=!0)},p(l,r){n=l},d(l){l&&k(e),t=!1,lt(i)}}}function UM(n){let e;return{c(){e=H("Leave empty to grant everyone access")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function WM(n){let e;return{c(){e=H("Only admins will be able to access (unlock to change)")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function YM(n){let e,t=n[15]+"",i,s,l=Hi(n[0][n[14]])?"Admins only":"Custom rule",r,o,a,u,f=n[14],c,d,h,g,y,b,v;function S(){return n[10](n[14])}const $=()=>n[11](u,f),C=()=>n[11](null,f);function M(R){n[12](R,n[14])}var T=n[4];function E(R){let j={baseCollection:R[0],disabled:Hi(R[0][R[14]])};return R[0][R[14]]!==void 0&&(j.value=R[0][R[14]]),{props:j}}T&&(u=new T(E(n)),$(),pe.push(()=>Ie(u,"value",M)));function D(R,j){return j&1&&(g=null),g==null&&(g=!!Hi(R[0][R[14]])),g?WM:UM}let P=D(n,-1),L=P(n);return{c(){e=_("label"),i=H(t),s=H(" - "),r=H(l),a=O(),u&&B(u.$$.fragment),d=O(),h=_("div"),L.c(),p(e,"for",o=n[18]),p(h,"class","help-block")},m(R,j){w(R,e,j),m(e,i),m(e,s),m(e,r),w(R,a,j),u&&V(u,R,j),w(R,d,j),w(R,h,j),L.m(h,null),y=!0,b||(v=Q(e,"click",S),b=!0)},p(R,j){n=R,(!y||j&1)&&l!==(l=Hi(n[0][n[14]])?"Admins only":"Custom rule")&&ge(r,l),(!y||j&262144&&o!==(o=n[18]))&&p(e,"for",o),f!==n[14]&&(C(),f=n[14],$());const G={};if(j&1&&(G.baseCollection=n[0]),j&1&&(G.disabled=Hi(n[0][n[14]])),!c&&j&65&&(c=!0,G.value=n[0][n[14]],je(()=>c=!1)),T!==(T=n[4])){if(u){Me();const Y=u;F(Y.$$.fragment,1,0,()=>{z(Y,1)}),Oe()}T?(u=new T(E(n)),$(),pe.push(()=>Ie(u,"value",M)),B(u.$$.fragment),A(u.$$.fragment,1),V(u,d.parentNode,d)):u=null}else T&&u.$set(G);P!==(P=D(n,j))&&(L.d(1),L=P(n),L&&(L.c(),L.m(h,null)))},i(R){y||(u&&A(u.$$.fragment,R),y=!0)},o(R){u&&F(u.$$.fragment,R),y=!1},d(R){R&&k(e),R&&k(a),C(),u&&z(u,R),R&&k(d),R&&k(h),L.d(),b=!1,v()}}}function xp(n,e){let t,i,s,l,r,o,a,u;function f(h,g){return g&1&&(l=null),l==null&&(l=!!Hi(h[0][h[14]])),l?BM:zM}let c=f(e,-1),d=c(e);return o=new Fe({props:{class:"form-field rule-field m-0 "+(Hi(e[0][e[14]])?"disabled":""),name:e[14],$$slots:{defaLine truncated
<a href="https://pocketbase.io/docs/manage-collections#rules-filters-syntax" target="_blank" rel="noopener">PocketBase filter syntax and operators
</a>.`,s=O(),l=_("span"),o=H(r),a=O(),b&&b.c(),u=O(),c.c(),d=st(),p(l,"class","expand-handle txt-sm txt-bold txt-nowrap link-hint"),p(t,"class","flex"),p(e,"class","block m-b-base")},m(C,M){w(C,e,M),m(e,t),m(t,i),m(t,s),m(t,l),m(l,o),m(e,a),b&&b.m(e,null),w(C,u,M),S[f].m(C,M),w(C,d,M),h=!0,g||(y=Q(l,"click",n[7]),g=!0)},p(C,[M]){(!h||M&4)&&r!==(r=C[2]?"Hide available fields":"Show available fields")&&ge(o,r),C[2]?b?(b.p(C,M),M&4&&A(b,1)):(b=Gp(C),b.c(),A(b,1),b.m(e,null)):b&&(Me(),F(b,1,1,()=>{b=null}),Oe());let T=f;f=$(C),f===T?S[f].p(C,M):(Me(),F(S[T],1,1,()=>{S[T]=null}),Oe(),c=S[f],c?c.p(C,M):(c=S[f]=v[f](C),c.c()),A(c,1),c.m(d.parentNode,d))},i(C){h||(A(b),A(c),h=!0)},o(C){F(b),F(c),h=!1},d(C){C&&k(e),b&&b.d(),C&&k(u),S[f].d(C),C&&k(d),g=!1,y()}}}function Hi(n){return n===null}function JM(n,e,t){let{collection:i=new Fn}=e,s={},l=!1,r={},o,a=!1;const u={listRule:"List Action",viewRule:"View Action",createRule:"Create Action",updateRule:"Update Action",deleteRule:"Delete Action"};async function f(){t(5,a=!0);try{t(4,o=(await as(()=>import("./FilterAutocompleteInput.477fd505.js"),[])).default)}catch(v){console.warn(v),t(4,o=null)}t(5,a=!1)}pi(()=>{f()});const c=()=>t(2,l=!l),d=async v=>{var S;t(0,i[v]=s[v]||"",i),await Oi(),(S=r[v])==null||S.focus()},h=v=>{t(1,s[v]=i[v],s),t(0,i[v]=null,i)},g=v=>{var S;return(S=r[v])==null?void 0:S.focus()};function y(v,S){pe[v?"unshift":"push"](()=>{r[S]=v,t(3,r)})}function b(v,S){n.$$.not_equal(i[S],v)&&(i[S]=v,t(0,i))}return n.$$set=v=>{"collection"in v&&t(0,i=v.collection)},[i,s,l,r,o,a,u,c,d,h,g,y,b]}class GM extends Pe{constructor(e){super(),Ee(this,e,JM,KM,De,{collection:0})}}function Xp(n,e,t){const i=n.slice();return i[14]=e[t],i}function Qp(n,e,t){const i=n.slice();return i[14]=e[t],i}function eh(n){let e;return{c(){e=_("p"),e.textContent="All data associated with the removed fields will be permanently deleted!"},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function th(n){let e,t,i,s,l=n[1].originalName+"",r,o,a,u,f,c=n[1].name+"",d;return{c(){e=_("li"),t=_("div"),i=H(`Renamed collection
`),s=_("strong"),r=H(l),o=O(),a=_("i"),u=O(),f=_("strong"),d=H(c),p(s,"class","txt-strikethrough txt-hint"),p(a,"class","ri-arrow-right-line txt-sm"),p(f,"class","txt"),p(t,"class","inline-flex")},m(h,g){w(h,e,g),m(e,t),m(t,i),m(t,s),m(s,r),m(t,o),m(t,a),m(t,u),m(t,f),m(f,d)},p(h,g){g&2&&l!==(l=h[1].originalName+"")&&ge(r,l),g&2&&c!==(c=h[1].name+"")&&ge(d,c)},d(h){h&&k(e)}}}function nh(n){let e,t,i,s,l=n[14].originalName+"",r,o,a,u,f,c=n[14].name+"",d;return{c(){e=_("li"),t=_("div"),i=H(`Renamed field
`),s=_("strong"),r=H(l),o=O(),a=_("i"),u=O(),f=_("strong"),d=H(c),p(s,"class","txt-strikethrough txt-hint"),p(a,"class","ri-arrow-right-line txt-sm"),p(f,"class","txt"),p(t,"class","inline-flex")},m(h,g){w(h,e,g),m(e,t),m(t,i),m(t,s),m(s,r),m(t,o),m(t,a),m(t,u),m(t,f),m(f,d)},p(h,g){g&16&&l!==(l=h[14].originalName+"")&&ge(r,l),g&16&&c!==(c=h[14].name+"")&&ge(d,c)},d(h){h&&k(e)}}}function ih(n){let e,t,i,s=n[14].name+"",l,r;return{c(){e=_("li"),t=H("Removed field "),i=_("span"),l=H(s),r=O(),p(i,"class","txt-bold"),p(e,"class","txt-danger")},m(o,a){w(o,e,a),m(e,t),m(e,i),m(i,l),m(e,r)},p(o,a){a&8&&s!==(s=o[14].name+"")&&ge(l,s)},d(o){o&&k(e)}}}function ZM(n){let e,t,i,s,l,r,o,a,u,f,c,d,h=n[3].length&&eh(),g=n[5]&&th(n),y=n[4],b=[];for(let $=0;$<y.length;$+=1)b[$]=nh(Qp(n,y,$));let v=n[3],S=[];for(let $=0;$<v.length;$+=1)S[$]=ih(Xp(n,v,$));return{c(){e=_("div"),t=_("div"),t.innerHTML='<i class="ri-error-warning-line"></i>',i=O(),s=_("div"),l=_("p"),l.textContent=`If any of the following changes is part of another collection rule or filter, you'll have to
update it manually!`,r=O(),h&&h.c(),o=O(),a=_("h6"),a.textContent="Changes:",u=O(),f=_("ul"),g&&g.c(),c=O();for(let $=0;$<b.length;$+=1)b[$].c();d=O();for(let $=0;$<S.length;$+=1)S[$].c();p(t,"class","icon"),p(s,"class","content txt-bold"),p(e,"class","alert alert-warning"),p(f,"class","changes-list svelte-1ghly2p")},m($,C){w($,e,C),m(e,t),m(e,i),m(e,s),m(s,l),m(s,r),h&&h.m(s,null),w($,o,C),w($,a,C),w($,u,C),w($,f,C),g&&g.m(f,null),m(f,c);for(let M=0;M<b.length;M+=1)b[M].m(f,null);m(f,d);for(let M=0;M<S.length;M+=1)S[M].m(f,null)},p($,C){if($[3].length?h||(h=eh(),h.c(),h.m(s,null)):h&&(h.d(1),h=null),$[5]?g?g.p($,C):(g=th($),g.c(),g.m(f,c)):g&&(g.d(1),g=null),C&16){y=$[4];let M;for(M=0;M<y.length;M+=1){const T=Qp($,y,M);b[M]?b[M].p(T,C):(b[M]=nh(T),b[M].c(),b[M].m(f,d))}for(;M<b.length;M+=1)b[M].d(1);b.length=y.length}if(C&8){v=$[3];let M;for(M=0;M<v.length;M+=1){const T=Xp($,v,M);S[M]?S[M].p(T,C):(S[M]=ih(T),S[M].c(),S[M].m(f,null))}for(;M<S.length;M+=1)S[M].d(1);S.length=v.length}},d($){$&&k(e),h&&h.d(),$&&k(o),$&&k(a),$&&k(u),$&&k(f),g&&g.d(),Bn(b,$),Bn(S,$)}}}function xM(n){let e;return{c(){e=_("h4"),e.textContent="Confirm collection changes"},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function XM(n){let e,t,i,s,l;return{c(){e=_("button"),e.innerHTML='<span class="txt">Cancel</span>',t=O(),i=_("button"),i.innerHTML='<span class="txt">Confirm</span>',e.autofocus=!0,p(e,"type","button"),p(e,"class","btn btn-secondary"),p(i,"type","button"),p(i,"class","btn btn-expanded")},m(r,o){w(r,e,o),w(r,t,o),w(r,i,o),e.focus(),s||(l=[Q(e,"click",n[8]),Q(i,"click",n[9])],s=!0)},p:oe,d(r){r&&k(e),r&&k(t),r&&k(i),s=!1,lt(l)}}}function QM(n){let e,t,i={class:"confirm-changes-panel",popup:!0,$$slots:{footer:[XM],header:[xM],default:[ZM]},$$scope:{ctx:n}};return e=new Ai({props:i}),n[10](e),e.$on("hide",n[11]),e.$on("show",n[12]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,[l]){const r={};l&524346&&(r.$$scope={dirty:l,ctx:s}),e.$set(r)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){F(e.$$.fragment,s),t=!1},d(s){n[10](null),z(e,s)}}}function eO(n,e,t){let i,s,l;const r=_n();let o,a;async function u(v){t(1,a=v),await Oi(),!i&&!s.length&&!l.length?c():o==null||o.show()}function f(){o==null||o.hide()}function c(){f(),r("confirm")}const d=()=>f(),h=()=>c();function g(v){pe[v?"unshift":"push"](()=>{o=v,t(2,o)})}function y(v){ut.call(this,n,v)}function b(v){ut.call(this,n,v)}return n.$$.update=()=>{n.$$.dirty&2&&t(5,i=(a==null?void 0:a.originalName)!=(a==null?void 0:a.name)),n.$$.dirty&2&&t(4,s=(a==null?void 0:a.schema.filter(v=>v.id&&!v.toDelete&&v.originalName!=v.name))||[]),n.$$.dirty&2&&t(3,l=(a==null?void 0:a.schema.filter(v=>v.id&&v.toDelete))||[])},[f,a,o,l,s,i,c,u,d,h,g,y,b]}class tO extends Pe{constructor(e){super(),Ee(this,e,eO,QM,De,{show:7,hide:0})}get show(){return this.$$.ctx[7]}get hide(){return this.$$.ctx[0]}}function sh(n){let e,t,i,s;function l(o){n[26](o)}let r={};return n[2]!==void 0&&(r.collection=n[2]),t=new GM({props:r}),pe.push(()=>Ie(t,"collection",l)),{c(){e=_("div"),B(t.$$.fragment),p(e,"class","tab-item active")},m(o,a){w(o,e,a),V(t,e,null),s=!0},p(o,a){const u={};!i&&a[0]&4&&(i=!0,u.collection=o[2],je(()=>i=!1)),t.$set(u)},i(o){s||(A(t.$$.fragment,o),s=!0)},o(o){F(t.$$.fragment,o),s=!1},d(o){o&&k(e),z(t)}}}function nO(n){let e,t,i,s,l,r;function o(f){n[25](f)}let a={};n[2]!==void 0&&(a.collection=n[2]),i=new RM({props:a}),pe.push(()=>Ie(i,"collection",o));let u=n[9]===Ul&&sh(n);return{c(){e=_("div"),t=_("div"),B(i.$$.fragment),l=O(),u&&u.c(),p(t,"class","tab-item"),ee(t,"active",n[9]===gs),p(e,"class","tabs-content svelte-b10vi")},m(f,c){w(f,e,c),m(e,t),V(i,t,null),m(e,l),u&&u.m(e,null),r=!0},p(f,c){const d={};!s&&c[0]&4&&(s=!0,d.collection=f[2],je(()=>s=!1)),i.$set(d),c[0]&512&&ee(t,"active",f[9]===gs),f[9]===Ul?u?(u.p(f,c),c[0]&512&&A(u,1)):(u=sh(f),u.c(),A(u,1),u.m(e,null)):u&&(Me(),F(u,1,1,()=>{u=null}),Oe())},i(f){r||(A(i.$$.fragment,f),A(u),r=!0)},o(f){F(i.$$.fragment,f),F(u),r=!1},d(f){f&&k(e),z(i),u&&u.d()}}}function lh(n){let e,t,i,s,l,r,o;return r=new ks({props:{class:"dropdown dropdown-right m-t-5",$$slots:{default:[iO]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=O(),i=_("button"),s=_("i"),l=O(),B(r.$$.fragment),p(e,"class","flex-fill"),p(s,"class","ri-more-line"),p(i,"type","button"),p(i,"class","btn btn-sm btn-circle btn-secondary flex-gap-0")},m(a,u){w(a,e,u),w(a,t,u),w(a,i,u),m(i,s),m(i,l),V(r,i,null),o=!0},p(a,u){const f={};u[1]&256&&(f.$$scope={dirty:u,ctx:a}),r.$set(f)},i(a){o||(A(r.$$.fragment,a),o=!0)},o(a){F(r.$$.fragment,a),o=!1},d(a){a&&k(e),a&&k(t),a&&k(i),z(r)}}}function iO(n){let e,t,i;return{c(){e=_("button"),e.innerHTML=`<i class="ri-delete-bin-7-line"></i>
<span class="txt">Delete</span>`,p(e,"type","button"),p(e,"class","dropdown-item closable")},m(s,l){w(s,e,l),t||(i=Q(e,"click",n[20]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function rh(n){let e;return{c(){e=_("div"),e.textContent="System collection",p(e,"class","help-block")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function sO(n){let e,t,i,s,l,r,o,a,u,f,c,d,h=n[2].system&&rh();return{c(){e=_("label"),t=H("Name"),s=O(),l=_("input"),u=O(),h&&h.c(),f=st(),p(e,"for",i=n[38]),p(l,"type","text"),p(l,"id",r=n[38]),l.required=!0,l.disabled=n[11],p(l,"spellcheck","false"),l.autofocus=o=n[2].isNew,p(l,"placeholder",'eg. "posts"'),l.value=a=n[2].name},m(g,y){w(g,e,y),m(e,t),w(g,s,y),w(g,l,y),w(g,u,y),h&&h.m(g,y),w(g,f,y),n[2].isNew&&l.focus(),c||(d=Q(l,"input",n[21]),c=!0)},p(g,y){y[1]&128&&i!==(i=g[38])&&p(e,"for",i),y[1]&128&&r!==(r=g[38])&&p(l,"id",r),y[0]&2048&&(l.disabled=g[11]),y[0]&4&&o!==(o=g[2].isNew)&&(l.autofocus=o),y[0]&4&&a!==(a=g[2].name)&&l.value!==a&&(l.value=a),g[2].system?h||(h=rh(),h.c(),h.m(f.parentNode,f)):h&&(h.d(1),h=null)},d(g){g&&k(e),g&&k(s),g&&k(l),g&&k(u),h&&h.d(g),g&&k(f),c=!1,d()}}}function oh(n){let e,t,i,s,l,r;return{c(){e=_("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,a){w(o,e,a),s=!0,l||(r=Xe(t=St.call(null,e,n[12])),l=!0)},p(o,a){t&&Jn(t.update)&&a[0]&4096&&t.update.call(null,o[12])},i(o){s||(o&&Ot(()=>{i||(i=ft(e,Wn,{duration:150,start:.7},!0)),i.run(1)}),s=!0)},o(o){o&&(i||(i=ft(e,Wn,{duration:150,start:.7},!1)),i.run(0)),s=!1},d(o){o&&k(e),o&&i&&i.end(),l=!1,r()}}}function ah(n){let e,t,i,s,l;return{c(){e=_("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(r,o){w(r,e,o),i=!0,s||(l=Xe(St.call(null,e,"Has errors")),s=!0)},i(r){i||(r&&Ot(()=>{t||(t=ft(e,Wn,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(r){r&&(t||(t=ft(e,Wn,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(r){r&&k(e),r&&t&&t.end(),s=!1,l()}}}function lO(n){var R,j,G,Y,q,Z;let e,t=n[2].isNew?"New collection":"Edit collection",i,s,l,r,o,a,u,f,c,d,h,g,y=!W.isEmpty((R=n[4])==null?void 0:R.schema),b,v,S,$,C=!W.isEmpty((j=n[4])==null?void 0:j.listRule)||!W.isEmpty((G=n[4])==null?void 0:G.viewRule)||!W.isEmpty((Y=n[4])==null?void 0:Y.createRule)||!W.isEmpty((q=n[4])==null?void 0:q.updateRule)||!W.isEmpty((Z=n[4])==null?void 0:Z.deleteRule),M,T,E,D=!n[2].isNew&&!n[2].system&&lh(n);o=new Fe({props:{class:"form-field required m-b-0 "+(n[11]?"disabled":""),name:"name",$$slots:{default:[sO,({uniqueId:J})=>({38:J}),({uniqueId:J})=>[0,J?128:0]]},$$scope:{ctx:n}}});let P=y&&oh(n),L=C&&ah();return{c(){e=_("h4"),i=H(t),s=O(),D&&D.c(),l=O(),r=_("form"),B(o.$$.fragment),a=O(),u=_("input"),f=O(),c=_("div"),d=_("button"),h=_("span"),h.textContent="Fields",g=O(),P&&P.c(),b=O(),v=_("button"),S=_("span"),S.textContent="API Rules",$=O(),L&&L.c(),p(u,"type","submit"),p(u,"class","hidden"),p(u,"tabindex","-1"),p(r,"class","block"),p(h,"class","txt"),p(d,"type","button"),p(d,"class","tab-item"),ee(d,"active",n[9]===gs),p(S,"class","txt"),p(v,"type","button"),p(v,"class","tab-item"),ee(v,"active",n[9]===Ul),p(c,"class","tabs-header stretched")},m(J,K){w(J,e,K),m(e,i),w(J,s,K),D&&D.m(J,K),w(J,l,K),w(J,r,K),V(o,r,null),m(r,a),m(r,u),w(J,f,K),w(J,c,K),m(c,d),m(d,h),m(d,g),P&&P.m(d,null),m(c,b),m(c,v),m(v,S),m(v,$),L&&L.m(v,null),M=!0,T||(E=[Q(r,"submit",Wt(n[22])),Q(d,"click",n[23]),Q(v,"click",n[24])],T=!0)},p(J,K){var ce,be,se,x,Te,te;(!M||K[0]&4)&&t!==(t=J[2].isNew?"New collection":"Edit collection")&&ge(i,t),!J[2].isNew&&!J[2].system?D?(D.p(J,K),K[0]&4&&A(D,1)):(D=lh(J),D.c(),A(D,1),D.m(l.parentNode,l)):D&&(Me(),F(D,1,1,()=>{D=null}),Oe());const ne={};K[0]&2048&&(ne.class="form-field required m-b-0 "+(J[11]?"disabled":"")),K[0]&2052|K[1]&384&&(ne.$$scope={dirty:K,ctx:J}),o.$set(ne),K[0]&16&&(y=!W.isEmpty((ce=J[4])==null?void 0:ce.schema)),y?P?(P.p(J,K),K[0]&16&&A(P,1)):(P=oh(J),P.c(),A(P,1),P.m(d,null)):P&&(Me(),F(P,1,1,()=>{P=null}),Oe()),K[0]&512&&ee(d,"active",J[9]===gs),K[0]&16&&(C=!W.isEmpty((be=J[4])==null?void 0:be.listRule)||!W.isEmpty((se=J[4])==null?void 0:se.viewRule)||!W.isEmpty((x=J[4])==null?void 0:x.createRule)||!W.isEmpty((Te=J[4])==null?void 0:Te.updateRule)||!W.isEmpty((te=J[4])==null?void 0:te.deleteRule)),C?L?K[0]&16&&A(L,1):(L=ah(),L.c(),A(L,1),L.m(v,null)):L&&(Me(),F(L,1,1,()=>{L=null}),Oe()),K[0]&512&&ee(v,"active",J[9]===Ul)},i(J){M||(A(D),A(o.$$.fragment,J),A(P),A(L),M=!0)},o(J){F(D),F(o.$$.fragment,J),F(P),F(L),M=!1},d(J){J&&k(e),J&&k(s),D&&D.d(J),J&&k(l),J&&k(r),z(o),J&&k(f),J&&k(c),P&&P.d(),L&&L.d(),T=!1,lt(E)}}}function rO(n){let e,t,i,s,l,r=n[2].isNew?"Create":"Save changes",o,a,u,f;return{c(){e=_("button"),t=_("span"),t.textContent="Cancel",i=O(),s=_("button"),l=_("span"),o=H(r),p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-secondary"),e.disabled=n[7],p(l,"class","txt"),p(s,"type","button"),p(s,"class","btn btn-expanded"),s.disabled=a=!n[10]||n[7],ee(s,"btn-loading",n[7])},m(c,d){w(c,e,d),m(e,t),w(c,i,d),w(c,s,d),m(s,l),m(l,o),u||(f=[Q(e,"click",n[18]),Q(s,"click",n[19Line truncated
<span class="txt">New collection</span>`,v=O(),B(S.$$.fragment),p(l,"type","button"),p(l,"class","btn btn-xs btn-secondary btn-circle btn-clear"),ee(l,"hidden",!n[4]),p(s,"class","form-field-addon"),p(o,"type","text"),p(o,"placeholder","Search collections..."),p(i,"class","form-field search"),ee(i,"active",n[4]),p(t,"class","sidebar-header"),p(u,"class","m-t-5 m-b-xs"),p(c,"class","sidebar-content"),p(b,"type","button"),p(b,"class","btn btn-block btn-outline"),p(y,"class","sidebar-footer"),p(e,"class","page-sidebar collection-sidebar")},m(L,R){w(L,e,R),m(e,t),m(t,i),m(i,s),m(s,l),m(i,r),m(i,o),$e(o,n[0]),m(e,a),m(e,u),m(e,f),m(e,c);for(let j=0;j<d.length;j+=1)d[j].m(c,null);D&&D.m(c,null),m(e,g),m(e,y),m(y,b),w(L,v,R),V(S,L,R),$=!0,C||(M=[Q(l,"click",n[8]),Q(o,"input",n[9]),Q(b,"click",n[11])],C=!0)},p(L,[R]){R&16&&ee(l,"hidden",!L[4]),R&1&&o.value!==L[0]&&$e(o,L[0]),R&16&&ee(i,"active",L[4]),R&106&&(T=L[3],d=rt(d,R,E,1,L,T,h,c,un,dh,null,uh),!T.length&&D?D.p(L,R):T.length?D&&(D.d(1),D=null):(D=fh(L),D.c(),D.m(c,null)));const j={};S.$set(j)},i(L){$||(A(S.$$.fragment,L),$=!0)},o(L){F(S.$$.fragment,L),$=!1},d(L){L&&k(e);for(let R=0;R<d.length;R+=1)d[R].d();D&&D.d(),L&&k(v),n[12](null),z(S,L),C=!1,lt(M)}}}function dO(n,e,t){let i,s,l,r,o;hn(n,fi,b=>t(5,r=b)),hn(n,Gs,b=>t(7,o=b));let a,u="";function f(b){zg(fi,r=b,r)}const c=()=>t(0,u="");function d(){u=this.value,t(0,u)}const h=b=>f(b),g=()=>a==null?void 0:a.show();function y(b){pe[b?"unshift":"push"](()=>{a=b,t(2,a)})}return n.$$.update=()=>{n.$$.dirty&1&&t(1,i=u.replace(/\s+/g,"").toLowerCase()),n.$$.dirty&1&&t(4,s=u!==""),n.$$.dirty&131&&t(3,l=o.filter(b=>b.name!="profiles"&&(b.id==u||b.name.replace(/\s+/g,"").toLowerCase().includes(i))))},[u,i,a,l,s,r,f,o,c,d,h,g,y]}class pO extends Pe{constructor(e){super(),Ee(this,e,dO,cO,De,{})}}function hO(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g,y,b,v,S,$,C,M,T,E,D,P,L,R,j,G,Y,q,Z,J,K,ne,ce,be,se,x,Te,te,_e,fe,ie,ye,He,Le,Re,ae,re,ve,qe;return{c(){e=_("p"),e.innerHTML=`The syntax basically follows the format
<code><span class="txt-success">OPERAND</span>
<span class="txt-danger">OPERATOR</span>
<span class="txt-success">OPERAND</span></code>, where:`,t=O(),i=_("ul"),s=_("li"),s.innerHTML=`<code class="txt-success">OPERAND</code> - could be any of the above field literal, string (single or double
quoted), number, null, true, false`,l=O(),r=_("li"),o=_("code"),o.textContent="OPERATOR",a=H(` - is one of:
`),u=_("br"),f=O(),c=_("ul"),d=_("li"),h=_("code"),h.textContent="=",g=O(),y=_("span"),y.textContent="Equal",b=O(),v=_("li"),S=_("code"),S.textContent="!=",$=O(),C=_("span"),C.textContent="NOT equal",M=O(),T=_("li"),E=_("code"),E.textContent=">",D=O(),P=_("span"),P.textContent="Greater than",L=O(),R=_("li"),j=_("code"),j.textContent=">=",G=O(),Y=_("span"),Y.textContent="Greater than or equal",q=O(),Z=_("li"),J=_("code"),J.textContent="<",K=O(),ne=_("span"),ne.textContent="Less than or equal",ce=O(),be=_("li"),se=_("code"),se.textContent="<=",x=O(),Te=_("span"),Te.textContent="Less than or equal",te=O(),_e=_("li"),fe=_("code"),fe.textContent="~",ie=O(),ye=_("span"),ye.textContent=`Like/Contains (if not specified auto wraps the right string OPERAND in a "%" for wildcard
match)`,He=O(),Le=_("li"),Re=_("code"),Re.textContent="!~",ae=O(),re=_("span"),re.textContent=`NOT Like/Contains (if not specified auto wraps the right string OPERAND in a "%" for
wildcard match)`,ve=O(),qe=_("p"),qe.innerHTML=`To group and combine several expressions you could use brackets
<code>(...)</code>, <code>&amp;&amp;</code> (AND) and <code>||</code> (OR) tokens.`,p(o,"class","txt-danger"),p(h,"class","filter-op svelte-1w7s5nw"),p(y,"class","txt-hint"),p(S,"class","filter-op svelte-1w7s5nw"),p(C,"class","txt-hint"),p(E,"class","filter-op svelte-1w7s5nw"),p(P,"class","txt-hint"),p(j,"class","filter-op svelte-1w7s5nw"),p(Y,"class","txt-hint"),p(J,"class","filter-op svelte-1w7s5nw"),p(ne,"class","txt-hint"),p(se,"class","filter-op svelte-1w7s5nw"),p(Te,"class","txt-hint"),p(fe,"class","filter-op svelte-1w7s5nw"),p(ye,"class","txt-hint"),p(Re,"class","filter-op svelte-1w7s5nw"),p(re,"class","txt-hint")},m(Ve,Je){w(Ve,e,Je),w(Ve,t,Je),w(Ve,i,Je),m(i,s),m(i,l),m(i,r),m(r,o),m(r,a),m(r,u),m(r,f),m(r,c),m(c,d),m(d,h),m(d,g),m(d,y),m(c,b),m(c,v),m(v,S),m(v,$),m(v,C),m(c,M),m(c,T),m(T,E),m(T,D),m(T,P),m(c,L),m(c,R),m(R,j),m(R,G),m(R,Y),m(c,q),m(c,Z),m(Z,J),m(Z,K),m(Z,ne),m(c,ce),m(c,be),m(be,se),m(be,x),m(be,Te),m(c,te),m(c,_e),m(_e,fe),m(_e,ie),m(_e,ye),m(c,He),m(c,Le),m(Le,Re),m(Le,ae),m(Le,re),w(Ve,ve,Je),w(Ve,qe,Je)},p:oe,i:oe,o:oe,d(Ve){Ve&&k(e),Ve&&k(t),Ve&&k(i),Ve&&k(ve),Ve&&k(qe)}}}class mO extends Pe{constructor(e){super(),Ee(this,e,null,hO,De,{})}}function ph(n,e,t){const i=n.slice();return i[8]=e[t],i}function hh(n,e,t){const i=n.slice();return i[8]=e[t],i}function mh(n,e,t){const i=n.slice();return i[13]=e[t],i}function gh(n,e,t){const i=n.slice();return i[13]=e[t],i}function _h(n){let e;return{c(){e=_("p"),e.innerHTML="Requires <code>Authorization: Admin TOKEN</code> header",p(e,"class","txt-hint txt-sm txt-right")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function bh(n,e){let t,i=e[13].lang+"",s,l,r,o;function a(){return e[6](e[13])}return{key:n,first:null,c(){t=_("button"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&16&&i!==(i=e[13].lang+"")&&ge(s,i),f&24&&ee(t,"active",e[3]===e[13].lang)},d(u){u&&k(t),r=!1,o()}}}function yh(n,e){let t,i,s,l;return i=new nn({props:{content:e[13].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r;const a={};o&16&&(a.content=e[13].code),i.$set(a),o&24&&ee(t,"active",e[3]===e[13].lang)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function vh(n,e){let t,i=e[8].code+"",s,l,r,o;function a(){return e[7](e[8])}return{key:n,first:null,c(){t=_("div"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&36&&ee(t,"active",e[2]===e[8].code)},d(u){u&&k(t),r=!1,o()}}}function kh(n,e){let t,i,s,l;return i=new nn({props:{content:e[8].body}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r,o&36&&ee(t,"active",e[2]===e[8].code)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function gO(n){let e,t,i,s,l,r,o,a=n[0].name+"",u,f,c,d,h,g,y,b,v=n[0].name+"",S,$,C,M,T,E,D,P=[],L=new Map,R,j,G=[],Y=new Map,q,Z,J,K,ne,ce,be,se,x,Te,te,_e,fe,ie,ye,He,Le,Re,ae,re,ve,qe,Ve,Je,me,Ae,X,ue,Ue,bt,it,yt,at,dt,Tt,Pt,Jt,he,we,Ge,et,Et,de,Se,Ze,Gt,Vt,ii,ot,N,I,U,le,Ne,Be,tt,Ke,nt,Ye,xe=[],wt=new Map,Sn,Yt,Zt=[],gi=new Map,Ei,Xt=n[1]&&_h(),$s=n[4];const sr=Ce=>Ce[13].lang;for(let Ce=0;Ce<$s.length;Ce+=1){let We=gh(n,$s,Ce),Dt=sr(We);L.set(Dt,P[Ce]=bh(Dt,We))}let Zi=n[4];const lr=Ce=>Ce[13].lang;for(let Ce=0;Ce<Zi.length;Ce+=1){let We=mh(n,Zi,Ce),Dt=lr(We);Y.set(Dt,G[Ce]=yh(Dt,We))}me=new nn({props:{content:`
// DESC by created and ASC by id
?sort=-created,id
`}}),dt=new nn({props:{content:`
?filter=(id='abc' && created>'2022-01-01')
`}}),Pt=new mO({}),Ze=new nn({props:{content:`
?expand=rel1,rel2.subrel21.subrel22
`}});let Cs=n[5];const rr=Ce=>Ce[8].code;for(let Ce=0;Ce<Cs.length;Ce+=1){let We=hh(n,Cs,Ce),Dt=rr(We);wt.set(Dt,xe[Ce]=vh(Dt,We))}let xi=n[5];const or=Ce=>Ce[8].code;for(let Ce=0;Ce<xi.length;Ce+=1){let We=ph(n,xi,Ce),Dt=or(We);gi.set(Dt,Zt[Ce]=kh(Dt,We))}return{c(){e=_("div"),t=_("strong"),t.textContent="GET",i=O(),s=_("div"),l=_("p"),r=H("/api/collections/"),o=_("strong"),u=H(a),f=H("/records"),c=O(),Xt&&Xt.c(),d=O(),h=_("div"),g=_("p"),y=H("Fetch a paginated "),b=_("strong"),S=H(v),$=H(" records list."),C=O(),M=_("div"),M.textContent="Client SDKs example",T=O(),E=_("div"),D=_("div");for(let Ce=0;Ce<P.length;Ce+=1)P[Ce].c();R=O(),j=_("div");for(let Ce=0;Ce<G.length;Ce+=1)G[Ce].c();q=O(),Z=_("div"),Z.textContent="Query parameters",J=O(),K=_("table"),ne=_("thead"),ne.innerHTML=`<tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr>`,ce=O(),be=_("tbody"),se=_("tr"),se.innerHTML=`<td>page</td>
<td><span class="label">Number</span></td>
<td>The page (aka. offset) of the paginated list (default to 1).</td>`,x=O(),Te=_("tr"),Te.innerHTML=`<td>perPage</td>
<td><span class="label">Number</span></td>
<td>Specify the max returned records per page (default to 30).</td>`,te=O(),_e=_("tr"),fe=_("td"),fe.textContent="sort",ie=O(),ye=_("td"),ye.innerHTML='<span class="label">String</span>',He=O(),Le=_("td"),Re=H("Specify the records order attribute(s). "),ae=_("br"),re=H(`
Add `),ve=_("code"),ve.textContent="-",qe=H(" / "),Ve=_("code"),Ve.textContent="+",Je=H(` (default) in front of the attribute for DESC / ASC order.
Ex.:
`),B(me.$$.fragment),Ae=O(),X=_("tr"),ue=_("td"),ue.textContent="filter",Ue=O(),bt=_("td"),bt.innerHTML='<span class="label">String</span>',it=O(),yt=_("td"),at=H(`Filter the returned records. Ex.:
`),B(dt.$$.fragment),Tt=O(),B(Pt.$$.fragment),Jt=O(),he=_("tr"),we=_("td"),we.textContent="expand",Ge=O(),et=_("td"),et.innerHTML='<span class="label">String</span>',Et=O(),de=_("td"),Se=H(`Auto expand nested record relations. Ex.:
`),B(Ze.$$.fragment),Gt=H(`
Supports up to 6-levels depth nested relations expansion. `),Vt=_("br"),ii=H(`
The expanded relations will be appended to each individual record under the
`),ot=_("code"),ot.textContent="@expand",N=H(" property (eg. "),I=_("code"),I.textContent='"@expand": {"rel1": {...}, ...}',U=H(`). Only the
relations that the user has permissions to `),le=_("strong"),le.textContent="view",Ne=H(" will be expanded."),Be=O(),tt=_("div"),tt.textContent="Responses",Ke=O(),nt=_("div"),Ye=_("div");for(let Ce=0;Ce<xe.length;Ce+=1)xe[Ce].c();Sn=O(),Yt=_("div");for(let Ce=0;Ce<Zt.length;Ce+=1)Zt[Ce].c();p(t,"class","label label-primary"),p(s,"class","content"),p(e,"class","alert alert-info"),p(h,"class","content m-b-base"),p(M,"class","section-title"),p(D,"class","tabs-header compact left"),p(j,"class","tabs-content"),p(E,"class","tabs m-b-lg"),p(Z,"class","section-title"),p(K,"class","table-compact table-border m-b-lg"),p(tt,"class","section-title"),p(Ye,"class","tabs-header compact left"),p(Yt,"class","tabs-content"),p(nt,"class","tabs")},m(Ce,We){w(Ce,e,We),m(e,t),m(e,i),m(e,s),m(s,l),m(l,r),m(l,o),m(o,u),m(l,f),m(e,c),Xt&&Xt.m(e,null),w(Ce,d,We),w(Ce,h,We),m(h,g),m(g,y),m(g,b),m(b,S),m(g,$),w(Ce,C,We),w(Ce,M,We),w(Ce,T,We),w(Ce,E,We),m(E,D);for(let Dt=0;Dt<P.length;Dt+=1)P[Dt].m(D,null);m(E,R),m(E,j);for(let Dt=0;Dt<G.length;Dt+=1)G[Dt].m(j,null);w(Ce,q,We),w(Ce,Z,We),w(Ce,J,We),w(Ce,K,We),m(K,ne),m(K,ce),m(K,be),m(be,se),m(be,x),m(be,Te),m(be,te),m(be,_e),m(_e,fe),m(_e,ie),m(_e,ye),m(_e,He),m(_e,Le),m(Le,Re),m(Le,ae),m(Le,re),m(Le,ve),m(Le,qe),m(Le,Ve),m(Le,Je),V(me,Le,null),m(be,Ae),m(be,X),m(X,ue),m(X,Ue),m(X,bt),m(X,it),m(X,yt),m(yt,at),V(dt,yt,null),m(yt,Tt),V(Pt,yt,null),m(be,Jt),m(be,he),m(he,we),m(he,Ge),m(he,et),m(he,Et),m(he,de),m(de,Se),V(Ze,de,null),m(de,Gt),m(de,Vt),m(de,ii),m(de,ot),m(de,N),m(de,I),m(de,U),m(de,le),m(de,Ne),w(Ce,Be,We),w(Ce,tt,We),w(Ce,Ke,We),w(Ce,nt,We),m(nt,Ye);for(let Dt=0;Dt<xe.length;Dt+=1)xe[Dt].m(Ye,null);m(nt,Sn),m(nt,Yt);for(let Dt=0;Dt<Zt.length;Dt+=1)Zt[Dt].m(Yt,null);Ei=!0},p(Ce,[We]){(!Ei||We&1)&&a!==(a=Ce[0].name+"")&&ge(u,a),Ce[1]?Xt||(Xt=_h(),Xt.c(),Xt.m(e,null)):Xt&&(Xt.d(1),Xt=null),(!Ei||We&1)&&v!==(v=Ce[0].name+"")&&ge(S,v),We&24&&($s=Ce[4],P=rt(P,We,sr,1,Ce,$s,L,D,un,bh,null,gh)),We&24&&(Zi=Ce[4],Me(),G=rt(G,We,lr,1,Ce,Zi,Y,j,Ft,yh,null,mh),Oe()),We&36&&(Cs=Ce[5],xe=rt(xe,We,rr,1,Ce,Cs,wt,Ye,un,vh,null,hh)),We&36&&(xi=Ce[5],Me(),Zt=rt(Zt,We,or,1,Ce,xi,gi,Yt,Ft,kh,null,ph),Oe())},i(Ce){if(!Ei){for(let We=0;We<Zi.length;We+=1)A(G[We]);A(me.$$.fragment,Ce),A(dt.$$.fragment,Ce),A(Pt.$$.fragment,Ce),A(Ze.$$.fragment,Ce);for(let We=0;We<xi.length;We+=1)A(Zt[We]);Ei=!0}},o(Ce){for(let We=0;We<G.length;We+=1)F(G[We]);F(me.$$.fragment,Ce),F(dt.$$.fragment,Ce),F(Pt.$$.fragment,Ce),F(Ze.$$.fragment,Ce);for(let We=0;We<Zt.length;We+=1)F(Zt[We]);Ei=!1},d(Ce){Ce&&k(e),Xt&&Xt.d(),Ce&&k(d),Ce&&k(h),Ce&&k(C),Ce&&k(M),Ce&&k(T),Ce&&k(E);for(let We=0;We<P.length;We+=1)P[We].d();for(let We=0;We<G.length;We+=1)G[We].d();Ce&&k(q),Ce&&k(Z),Ce&&k(J),Ce&&k(K),z(me),z(dt),z(Pt),z(Ze),Ce&&k(Be),Ce&&k(tt),Ce&&k(Ke),Ce&&k(nt);for(let We=0;We<xe.length;We+=1)xe[We].d();for(let We=0;We<Zt.length;We+=1)Zt[We].d()}}}function _O(n,e,t){let i,{collection:s=new Fn}=e,l=200,r="JavaScript",o=[],a=[];const u=c=>t(3,r=c.lang),f=c=>t(2,l=c.code);return n.$$set=c=>{"collection"in c&&t(0,s=c.collection)},n.$$.update=()=>{n.$$.dirty&1&&t(1,i=(s==null?void 0:s.listRule)===null),n.$$.dirty&3&&s!=null&&s.id&&(o.push({code:200,body:JSON.stringify({page:1,perPage:30,totalItems:2,items:[W.dummyCollectionRecord(s),W.dummyCollectionRecord(s)]},null,2)}),o.push({code:400,body:`
{
"code": 400,
"message": "Something went wrong while processing your request. Invalid filter.",
"data": {}
}
`}),i&&o.push({code:403,body:`
{
"code": 403,
"message": "Only admins can access this action.",
"data": {}
}
`}),o.push({code:404,body:`
{
"code": 404,
"message": "The requested resource wasn't found.",
"data": {}
}
`})),n.$$.dirty&1&&t(4,a=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${ke.baseUrl}");
client.Records.getList("${s==null?void 0:s.name}", { page: 2 })
.then(function (list) {
// success...
}).catch(function (error) {
// error...
});
// alternatively you can also fetch all records at once via getFullList:
client.Records.getFullList("${s==null?void 0:s.name}", 200 /* batch size */)
.then(function (records) {
// success...
}).catch(function (error) {
// error...
});
`}])},[s,i,l,r,a,o,u,f]}class bO extends Pe{constructor(e){super(),Ee(this,e,_O,gO,De,{collection:0})}}function wh(n,e,t){const i=n.slice();return i[8]=e[t],i}function Sh(n,e,t){const i=n.slice();return i[8]=e[t],i}function $h(n,e,t){const i=n.slice();return i[13]=e[t],i}function Ch(n,e,t){const i=n.slice();return i[13]=e[t],i}function Mh(n){let e;return{c(){e=_("p"),e.innerHTML="Requires <code>Authorization: Admin TOKEN</code> header",p(e,"class","txt-hint txt-sm txt-right")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Oh(n,e){let t,i=e[13].lang+"",s,l,r,o;function a(){return e[6](e[13])}return{key:n,first:null,c(){t=_("button"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&16&&i!==(i=e[13].lang+"")&&ge(s,i),f&24&&ee(t,"active",e[3]===e[13].lang)},d(u){u&&k(t),r=!1,o()}}}function Th(n,e){let t,i,s,l;return i=new nn({props:{content:e[13].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r;const a={};o&16&&(a.content=e[13].code),i.$set(a),o&24&&ee(t,"active",e[3]===e[13].lang)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function Dh(n,e){let t,i=e[8].code+"",s,l,r,o;function a(){return e[7](e[8])}return{key:n,first:null,c(){t=_("button"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&36&&ee(t,"active",e[2]===e[8].code)},d(u){u&&k(t),r=!1,o()}}}function Ah(n,e){let t,i,s,l;return i=new nn({props:{content:e[8].body}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r,o&36&&ee(t,"active",e[2]===e[8].code)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function yO(n){let e,t,i,s,l,r,o,a=n[0].name+"",u,f,c,d,h,g,y,b,v,S=n[0].name+"",$,C,M,T,E,D,P,L=[],R=new Map,j,G,Y=[],q=new Map,Z,J,K,ne,ce,be,se,x,Te,te,_e,fe,ie,ye,He,Le,Re,ae,re,ve,qe,Ve,Je,me,Ae,X,ue,Ue,bt,it,yt,at,dt,Tt=[],Pt=new Map,Jt,he,we=[],Ge=new Map,et,Et=n[1]&&Mh(),de=n[4];const Se=I=>I[13].lang;for(let I=0;I<de.length;I+=1){let U=Ch(n,de,I),le=Se(U);R.set(le,L[I]=Oh(le,U))}let Ze=n[4];const Gt=I=>I[13].lang;for(let I=0;I<Ze.length;I+=1){let U=$h(n,Ze,I),le=Gt(U);q.set(le,Y[I]=Th(le,U))}re=new nn({props:{content:`
?expand=rel1,rel2.subrel21.subrel22
`}});let Vt=n[5];const ii=I=>I[8].code;for(let I=0;I<Vt.length;I+=1){let U=Sh(n,Vt,I),le=ii(U);Pt.set(le,Tt[I]=Dh(le,U))}let ot=n[5];const N=I=>I[8].code;for(let I=0;I<ot.length;I+=1){let U=wh(n,ot,I),le=N(U);Ge.set(le,we[I]=Ah(le,U))}return{c(){e=_("div"),t=_("strong"),t.textContent="GET",i=O(),s=_("div"),l=_("p"),r=H("/api/collections/"),o=_("strong"),u=H(a),f=H("/records/"),c=_("strong"),c.textContent=":id",d=O(),Et&&Et.c(),h=O(),g=_("div"),y=_("p"),b=H("Fetch a single "),v=_("strong"),$=H(S),C=H(" record."),M=O(),T=_("div"),T.textContent="Client SDKs example",E=O(),D=_("div"),P=_("div");for(let I=0;I<L.length;I+=1)L[I].c();j=O(),G=_("div");for(let I=0;I<Y.length;I+=1)Y[I].c();Z=O(),J=_("div"),J.textContent="Path Parameters",K=O(),ne=_("table"),ne.innerHTML=`<thead><tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr></thead>
<tbody><tr><td>id</td>
<td><span class="label">String</span></td>
<td>ID of the record to view.</td></tr></tbody>`,ce=O(),be=_("div"),be.textContent="Query parameters",se=O(),x=_("table"),Te=_("thead"),Te.innerHTML=`<tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr>`,te=O(),_e=_("tbody"),fe=_("tr"),ie=_("td"),ie.textContent="expand",ye=O(),He=_("td"),He.innerHTML='<span class="label">String</span>',Le=O(),Re=_("td"),ae=H(`Auto expand nested record relations. Ex.:
`),B(re.$$.fragment),ve=H(`
Supports up to 6-levels depth nested relations expansion. `),qe=_("br"),Ve=H(`
The expanded relations will be appended to the record under the
`),Je=_("code"),Je.textContent="@expand",me=H(" property (eg. "),Ae=_("code"),Ae.textContent='"@expand": {"rel1": {...}, ...}',X=H(`). Only the
relations that the user has permissions to `),ue=_("strong"),ue.textContent="view",Ue=H(" will be expanded."),bt=O(),it=_("div"),it.textContent="Responses",yt=O(),at=_("div"),dt=_("div");for(let I=0;I<Tt.length;I+=1)Tt[I].c();Jt=O(),he=_("div");for(let I=0;I<we.length;I+=1)we[I].c();p(t,"class","label label-primary"),p(s,"class","content"),p(e,"class","alert alert-info"),p(g,"class","content m-b-base"),p(T,"class","section-title"),p(P,"class","tabs-header compact left"),p(G,"class","tabs-content"),p(D,"class","tabs m-b-lg"),p(J,"class","section-title"),p(ne,"class","table-compact table-border m-b-lg"),p(be,"class","section-title"),p(x,"class","table-compact table-border m-b-lg"),p(it,"class","section-title"),p(dt,"class","tabs-header compact left"),p(he,"class","tabs-content"),p(at,"class","tabs")},m(I,U){w(I,e,U),m(e,t),m(e,i),m(e,s),m(s,l),m(l,r),m(l,o),m(o,u),m(l,f),m(l,c),m(e,d),Et&&Et.m(e,null),w(I,h,U),w(I,g,U),m(g,y),m(y,b),m(y,v),m(v,$),m(y,C),w(I,M,U),w(I,T,U),w(I,E,U),w(I,D,U),m(D,P);for(let le=0;le<L.length;le+=1)L[le].m(P,null);m(D,j),m(D,G);for(let le=0;le<Y.length;le+=1)Y[le].m(G,null);w(I,Z,U),w(I,J,U),w(I,K,U),w(I,ne,U),w(I,ce,U),w(I,be,U),w(I,se,U),w(I,x,U),m(x,Te),m(x,te),m(x,_e),m(_e,fe),m(fe,ie),m(fe,ye),m(fe,He),m(fe,Le),m(fe,Re),m(Re,ae),V(re,Re,null),m(Re,ve),m(Re,qe),m(Re,Ve),m(Re,Je),m(Re,me),m(Re,Ae),m(Re,X),m(Re,ue),m(Re,Ue),w(I,bt,U),w(I,it,U),w(I,yt,U),w(I,at,U),m(at,dt);for(let le=0;le<Tt.length;le+=1)Tt[le].m(dt,null);m(at,Jt),m(at,he);for(let le=0;le<we.length;le+=1)we[le].m(he,null);et=!0},p(I,[U]){(!et||U&1)&&a!==(a=I[0].name+"")&&ge(u,a),I[1]?Et||(Et=Mh(),Et.c(),Et.m(e,null)):Et&&(Et.d(1),Et=null),(!et||U&1)&&S!==(S=I[0].name+"")&&ge($,S),U&24&&(de=I[4],L=rt(L,U,Se,1,I,de,R,P,un,Oh,null,Ch)),U&24&&(Ze=I[4],Me(),Y=rt(Y,U,Gt,1,I,Ze,q,G,Ft,Th,null,$h),Oe()),U&36&&(Vt=I[5],Tt=rt(Tt,U,ii,1,I,Vt,Pt,dt,un,Dh,null,Sh)),U&36&&(ot=I[5],Me(),we=rt(we,U,N,1,I,ot,Ge,he,Ft,Ah,null,wh),Oe())},i(I){if(!et){for(let U=0;U<Ze.length;U+=1)A(Y[U]);A(re.$$.fragment,I);for(let U=0;U<ot.length;U+=1)A(we[U]);et=!0}},o(I){for(let U=0;U<Y.length;U+=1)F(Y[U]);F(re.$$.fragment,I);for(let U=0;U<we.length;U+=1)F(we[U]);et=!1},d(I){I&&k(e),Et&&Et.d(),I&&k(h),I&&k(g),I&&k(M),I&&k(T),I&&k(E),I&&k(D);for(let U=0;U<L.length;U+=1)L[U].d();for(let U=0;U<Y.length;U+=1)Y[U].d();I&&k(Z),I&&k(J),I&&k(K),I&&k(ne),I&&k(ce),I&&k(be),I&&k(se),I&&k(x),z(re),I&&k(bt),I&&k(it),I&&k(yt),I&&k(at);for(let U=0;U<Tt.length;U+=1)Tt[U].d();for(let U=0;U<we.length;U+=1)we[U].d()}}}function vO(n,e,t){let i,{collection:s=new Fn}=e,l=200,r="JavaScript",o=[],a=[];const u=c=>t(3,r=c.lang),f=c=>t(2,l=c.code);return n.$$set=c=>{"collection"in c&&t(0,s=c.collection)},n.$$.update=()=>{n.$$.dirty&1&&t(1,i=(s==null?void 0:s.viewRule)===null),n.$$.dirty&3&&s!=null&&s.id&&(o.push({code:200,body:JSON.stringify(W.dummyCollectionRecord(s),null,2)}),i&&o.push({code:403,body:`
{
"code": 403,
"message": "Only admins can access this action.",
"data": {}
}
`}),o.push({code:404,body:`
{
"code": 404,
"message": "The requested resource wasn't found.",
"data": {}
}
`})),n.$$.dirty&1&&t(4,a=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${ke.baseUrl}");
client.Records.getOne("${s==null?void 0:s.name}", "RECORD_ID")
.then(function (record) {
// success...
}).catch(function (error) {
// error...
});
`}])},[s,i,l,r,a,o,u,f]}class kO extends Pe{constructor(e){super(),Ee(this,e,vO,yO,De,{collection:0})}}function Eh(n,e,t){const i=n.slice();return i[8]=e[t],i}function Ph(n,e,t){const i=n.slice();return i[8]=e[t],i}function Lh(n,e,t){const i=n.slice();return i[13]=e[t],i}function Fh(n,e,t){const i=n.slice();return i[16]=e[t],i}function Ih(n,e,t){const i=n.slice();return i[16]=e[t],i}function Nh(n){let e;return{c(){e=_("p"),e.innerHTML="Requires <code>Authorization: Admin TOKEN</code> header",p(e,"class","txt-hint txt-sm txt-right")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Rh(n,e){let t,i=e[16].lang+"",s,l,r,o;function a(){return e[6](e[16])}return{key:n,first:null,c(){t=_("button"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[2]===e[16].lang),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&16&&i!==(i=e[16].lang+"")&&ge(s,i),f&20&&ee(t,"active",e[2]===e[16].lang)},d(u){u&&k(t),r=!1,o()}}}function jh(n,e){let t,i,s,l;return i=new nn({props:{content:e[16].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[2]===e[16].lang),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r;const a={};o&16&&(a.content=e[16].code),i.$set(a),o&20&&ee(t,"active",e[2]===e[16].lang)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function wO(n){let e;return{c(){e=_("span"),e.textContent="Optional",p(e,"class","label label-warning")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function SO(n){let e;return{c(){e=_("span"),e.textContent="Required",p(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function $O(n){var l;let e,t=((l=n[13].options)==null?void 0:l.maxSelect)>1?"ids":"id",i,s;return{c(){e=H("User "),i=H(t),s=H(".")},m(r,o){w(r,e,o),w(r,i,o),w(r,s,o)},p(r,o){var a;o&1&&t!==(t=((a=r[13].options)==null?void 0:a.maxSelect)>1?"ids":"id")&&ge(i,t)},d(r){r&&k(e),r&&k(i),r&&k(s)}}}function CO(n){var l;let e,t=((l=n[13].options)==null?void 0:l.maxSelect)>1?"ids":"id",i,s;return{c(){e=H("Relation record "),i=H(t),s=H(".")},m(r,o){w(r,e,o),w(r,i,o),w(r,s,o)},p(r,o){var a;o&1&&t!==(t=((a=r[13].options)==null?void 0:a.maxSelect)>1?"ids":"id")&&ge(i,t)},d(r){r&&k(e),r&&k(i),r&&k(s)}}}function MO(n){let e,t,i,s,l;return{c(){e=H("FormData object."),t=_("br"),i=H(`
Set to `),s=_("code"),s.textContent="null",l=H(" to delete already uploaded file(s).")},m(r,o){w(r,e,o),w(r,t,o),w(r,i,o),w(r,s,o),w(r,l,o)},p:oe,d(r){r&&k(e),r&&k(t),r&&k(i),r&&k(s),r&&k(l)}}}function OO(n){let e;return{c(){e=H("URL address.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function TO(n){let e;return{c(){e=H("Email address.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function DO(n){let e;return{c(){e=H("JSON array or object.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function AO(n){let e;return{c(){e=H("Number value.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function EO(n){let e;return{c(){e=H("Plain text value.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function Hh(n,e){let t,i,s,l,r,o=e[13].name+"",a,u,f,c,d=W.getFieldValueType(e[13])+"",h,g,y,b;function v(E,D){return E[13].required?SO:wO}let S=v(e),$=S(e);function C(E,D){if(E[13].type==="text")return EO;if(E[13].type==="number")return AO;if(E[13].type==="json")return DO;if(E[13].type==="email")return TO;if(E[13].type==="url")return OO;if(E[13].type==="file")return MO;if(E[13].type==="relation")return CO;if(E[13].type==="user")return $O}let M=C(e),T=M&&M(e);return{key:n,first:null,c(){t=_("tr"),i=_("td"),s=_("div"),$.c(),l=O(),r=_("span"),a=H(o),u=O(),f=_("td"),c=_("span"),h=H(d),g=O(),y=_("td"),T&&T.c(),b=O(),p(s,"class","inline-flex"),p(c,"class","label"),this.first=t},m(E,D){w(E,t,D),m(t,i),m(i,s),$.m(s,null),m(s,l),m(s,r),m(r,a),m(t,u),m(t,f),m(f,c),m(c,h),m(t,g),m(t,y),T&&T.m(y,null),m(t,b)},p(E,D){e=E,S!==(S=v(e))&&($.d(1),$=S(e),$&&($.c(),$.m(s,l))),D&1&&o!==(o=e[13].name+"")&&ge(a,o),D&1&&d!==(d=W.getFieldValueType(e[13])+"")&&ge(h,d),M===(M=C(e))&&T?T.p(e,D):(T&&T.d(1),T=M&&M(e),T&&(T.c(),T.m(y,null)))},d(E){E&&k(t),$.d(),T&&T.d()}}}function qh(n,e){let t,i=e[8].code+"",s,l,r,o;function a(){return e[7](e[8])}return{key:n,first:null,c(){t=_("button"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[1]===e[8].code),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&8&&i!==(i=e[8].code+"")&&ge(s,i),f&10&&ee(t,"active",e[1]===e[8].code)},d(u){u&&k(t),r=!1,o()}}}function Vh(n,e){let t,i,s,l;return i=new nn({props:{content:e[8].body}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[1]===e[8].code),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r;const a={};o&8&&(a.content=e[8].body),i.$set(a),o&10&&ee(t,"active",e[1]===e[8].code)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function PO(n){var Jt;let e,t,i,s,l,r,o,a=n[0].name+"",u,f,c,d,h,g,y,b,v=n[0].name+"",S,$,C,M,T,E,D,P,L,R,j,G=[],Y=new Map,q,Z,J=[],K=new Map,ne,ce,be,se,x,Te,te,_e=[],fe=new Map,ie,ye,He,Le,Re,ae=[],re=new Map,ve,qe,Ve=[],Je=new Map,me,Ae=n[5]&&Nh(),X=n[4];const ue=he=>he[16].lang;for(let he=0;he<X.length;he+=1){let we=Ih(n,X,he),Ge=ue(we);Y.set(Ge,G[he]=Rh(Ge,we))}let Ue=n[4];const bt=he=>he[16].lang;for(let he=0;he<Ue.length;he+=1){let we=Fh(n,Ue,he),Ge=bt(we);K.set(Ge,J[he]=jh(Ge,we))}let it=(Jt=n[0])==null?void 0:Jt.schema;const yt=he=>he[13].name;for(let he=0;he<it.length;he+=1){let we=Lh(n,it,he),Ge=yt(we);fe.set(Ge,_e[he]=Hh(Ge,we))}let at=n[3];const dt=he=>he[8].code;for(let he=0;he<at.length;he+=1){let we=Ph(n,at,he),Ge=dt(we);re.set(Ge,ae[he]=qh(Ge,we))}let Tt=n[3];const Pt=he=>he[8].code;for(let he=0;he<Tt.length;he+=1){let we=Eh(n,Tt,he),Ge=Pt(we);Je.set(Ge,Ve[he]=Vh(Ge,we))}return{c(){e=_("div"),t=_("strong"),t.textContent="POST",i=O(),s=_("div"),l=_("p"),r=H("/api/collections/"),o=_("strong"),u=H(a),f=H("/records"),c=O(),Ae&&Ae.c(),d=O(),h=_("div"),g=_("p"),y=H("Create a new "),b=_("strong"),S=H(v),$=H(" record."),C=O(),M=_("p"),M.innerHTML=`Body parameters could be sent as <code>application/json</code> or
<code>multipart/form-data</code>.`,T=O(),E=_("p"),E.innerHTML="File upload is supported only via <code>multipart/form-data</code>.",D=O(),P=_("div"),P.textContent="Client SDKs example",L=O(),R=_("div"),j=_("div");for(let he=0;he<G.length;he+=1)G[he].c();q=O(),Z=_("div");for(let he=0;he<J.length;he+=1)J[he].c();ne=O(),ce=_("div"),ce.textContent="Body Parameters",be=O(),se=_("table"),x=_("thead"),x.innerHTML=`<tr><th>Param</th>
<th>Type</th>
<th width="50%">Description</th></tr>`,Te=O(),te=_("tbody");for(let he=0;he<_e.length;he+=1)_e[he].c();ie=O(),ye=_("div"),ye.textContent="Responses",He=O(),Le=_("div"),Re=_("div");for(let he=0;he<ae.length;he+=1)ae[he].c();ve=O(),qe=_("div");for(let he=0;he<Ve.length;he+=1)Ve[he].c();p(t,"class","label label-primary"),p(s,"class","content"),p(e,"class","alert alert-success"),p(h,"class","content m-b-base"),p(P,"class","section-title"),p(j,"class","tabs-header compact left"),p(Z,"class","tabs-content"),p(R,"class","tabs m-b-lg"),p(ce,"class","section-title"),p(se,"class","table-compact table-border m-b-lg"),p(ye,"class","section-title"),p(Re,"class","tabs-header compact left"),p(qe,"class","tabs-content"),p(Le,"class","tabs")},m(he,we){w(he,e,we),m(e,t),m(e,i),m(e,s),m(s,l),m(l,r),m(l,o),m(o,u),m(l,f),m(e,c),Ae&&Ae.m(e,null),w(he,d,we),w(he,h,we),m(h,g),m(g,y),m(g,b),m(b,S),m(g,$),m(h,C),m(h,M),m(h,T),m(h,E),w(he,D,we),w(he,P,we),w(he,L,we),w(he,R,we),m(R,j);for(let Ge=0;Ge<G.length;Ge+=1)G[Ge].m(j,null);m(R,q),m(R,Z);for(let Ge=0;Ge<J.length;Ge+=1)J[Ge].m(Z,null);w(he,ne,we),w(he,ce,we),w(he,be,we),w(he,se,we),m(se,x),m(se,Te),m(se,te);for(let Ge=0;Ge<_e.length;Ge+=1)_e[Ge].m(te,null);w(he,ie,we),w(he,ye,we),w(he,He,we),w(he,Le,we),m(Le,Re);for(let Ge=0;Ge<ae.length;Ge+=1)ae[Ge].m(Re,null);m(Le,ve),m(Le,qe);for(let Ge=0;Ge<Ve.length;Ge+=1)Ve[Ge].m(qe,null);me=!0},p(he,[we]){var Ge;(!me||we&1)&&a!==(a=he[0].name+"")&&ge(u,a),he[5]?Ae||(Ae=Nh(),Ae.c(),Ae.m(e,null)):Ae&&(Ae.d(1),Ae=null),(!me||we&1)&&v!==(v=he[0].name+"")&&ge(S,v),we&20&&(X=he[4],G=rt(G,we,ue,1,he,X,Y,j,un,Rh,null,Ih)),we&20&&(Ue=he[4],Me(),J=rt(J,we,bt,1,he,Ue,K,Z,Ft,jh,null,Fh),Oe()),we&1&&(it=(Ge=he[0])==null?void 0:Ge.schema,_e=rt(_e,we,yt,1,he,it,fe,te,un,Hh,null,Lh)),we&10&&(at=he[3],ae=rt(ae,we,dt,1,he,at,re,Re,un,qh,null,Ph)),we&10&&(Tt=he[3],Me(),Ve=rt(Ve,we,Pt,1,he,Tt,Je,qe,Ft,Vh,null,Eh),Oe())},i(he){if(!me){for(let we=0;we<Ue.length;we+=1)A(J[we]);for(let we=0;we<Tt.length;we+=1)A(Ve[we]);me=!0}},o(he){for(let we=0;we<J.length;we+=1)F(J[we]);for(let we=0;we<Ve.length;we+=1)F(Ve[we]);me=!1},d(he){he&&k(e),Ae&&Ae.d(),he&&k(d),he&&k(h),he&&k(D),he&&k(P),he&&k(L),he&&k(R);for(let we=0;we<G.length;we+=1)G[we].d();for(let we=0;we<J.length;we+=1)J[we].d();he&&k(ne),he&&k(ce),he&&k(be),he&&k(se);for(let we=0;we<_e.length;we+=1)_e[we].d();he&&k(ie),he&&k(ye),he&&k(He),he&&k(Le);for(let we=0;we<ae.length;we+=1)ae[we].d();for(let we=0;we<Ve.length;we+=1)Ve[we].d()}}}function LO(n,e,t){let i,{collection:s=new Fn}=e,l=200,r="JavaScript",o=[],a=[];const u=c=>t(2,r=c.lang),f=c=>t(1,l=c.code);return n.$$set=c=>{"collection"in c&&t(0,s=c.collection)},n.$$.update=()=>{var c,d;n.$$.dirty&1&&t(5,i=(s==null?void 0:s.createRule)===null),n.$$.dirty&1&&t(3,o=[{code:200,body:JSON.stringify(W.dummyCollectionRecord(s),null,2)},{code:400,body:`
{
"code": 400,
"message": "Failed to create record.",
"data": {
"${(d=(c=s==null?void 0:s.schema)==null?void 0:c[0])==null?void 0:d.name}": {
"code": "validation_required",
"message": "Missing required value."
}
}
}
`},{code:403,body:`
{
"code": 403,
"message": "You are not allowed to perform this request.",
"data": {}
}
`}]),n.$$.dirty&1&&t(4,a=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${ke.baseUrl}");
const data = { ... };
client.Records.create("${s==null?void 0:s.name}", data)
.then(function (record) {
// success...
}).catch(function (error) {
// error...
});
`}])},[s,l,r,o,a,i,u,f]}class FO extends Pe{constructor(e){super(),Ee(this,e,LO,PO,De,{collection:0})}}function zh(n,e,t){const i=n.slice();return i[8]=e[t],i}function Bh(n,e,t){const i=n.slice();return i[8]=e[t],i}function Uh(n,e,t){const i=n.slice();return i[13]=e[t],i}function Wh(n,e,t){const i=n.slice();return i[16]=e[t],i}function Yh(n,e,t){const i=n.slice();return i[16]=e[t],i}function Kh(n){let e;return{c(){e=_("p"),e.innerHTML="Requires <code>Authorization: Admin TOKEN</code> header",p(e,"class","txt-hint txt-sm txt-right")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Jh(n,e){let t,i=e[16].lang+"",s,l,r,o;function a(){return e[6](e[16])}return{key:n,first:null,c(){t=_("button"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[2]===e[16].lang),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&16&&i!==(i=e[16].lang+"")&&ge(s,i),f&20&&ee(t,"active",e[2]===e[16].lang)},d(u){u&&k(t),r=!1,o()}}}function Gh(n,e){let t,i,s,l;return i=new nn({props:{content:e[16].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[2]===e[16].lang),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r;const a={};o&16&&(a.content=e[16].code),i.$set(a),o&20&&ee(t,"active",e[2]===e[16].lang)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function IO(n){let e;return{c(){e=_("span"),e.textContent="Optional",p(e,"class","label label-warning")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function NO(n){let e;return{c(){e=_("span"),e.textContent="Required",p(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function RO(n){var l;let e,t=((l=n[13].options)==null?void 0:l.maxSelect)>1?"ids":"id",i,s;return{c(){e=H("User "),i=H(t),s=H(".")},m(r,o){w(r,e,o),w(r,i,o),w(r,s,o)},p(r,o){var a;o&1&&t!==(t=((a=r[13].options)==null?void 0:a.maxSelect)>1?"ids":"id")&&ge(i,t)},d(r){r&&k(e),r&&k(i),r&&k(s)}}}function jO(n){var l;let e,t=((l=n[13].options)==null?void 0:l.maxSelect)>1?"ids":"id",i,s;return{c(){e=H("Relation record "),i=H(t),s=H(".")},m(r,o){w(r,e,o),w(r,i,o),w(r,s,o)},p(r,o){var a;o&1&&t!==(t=((a=r[13].options)==null?void 0:a.maxSelect)>1?"ids":"id")&&ge(i,t)},d(r){r&&k(e),r&&k(i),r&&k(s)}}}function HO(n){let e,t,i,s,l;return{c(){e=H("FormData object."),t=_("br"),i=H(`
Set to `),s=_("code"),s.textContent="null",l=H(" to delete already uploaded file(s).")},m(r,o){w(r,e,o),w(r,t,o),w(r,i,o),w(r,s,o),w(r,l,o)},p:oe,d(r){r&&k(e),r&&k(t),r&&k(i),r&&k(s),r&&k(l)}}}function qO(n){let e;return{c(){e=H("URL address.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function VO(n){let e;return{c(){e=H("Email address.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function zO(n){let e;return{c(){e=H("JSON array or object.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function BO(n){let e;return{c(){e=H("Number value.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function UO(n){let e;return{c(){e=H("Plain text value.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function Zh(n,e){let t,i,s,l,r,o=e[13].name+"",a,u,f,c,d=W.getFieldValueType(e[13])+"",h,g,y,b;function v(E,D){return E[13].required?NO:IO}let S=v(e),$=S(e);function C(E,D){if(E[13].type==="text")return UO;if(E[13].type==="number")return BO;if(E[13].type==="json")return zO;if(E[13].type==="email")return VO;if(E[13].type==="url")return qO;if(E[13].type==="file")return HO;if(E[13].type==="relation")return jO;if(E[13].type==="user")return RO}let M=C(e),T=M&&M(e);return{key:n,first:null,c(){t=_("tr"),i=_("td"),s=_("div"),$.c(),l=O(),r=_("span"),a=H(o),u=O(),f=_("td"),c=_("span"),h=H(d),g=O(),y=_("td"),T&&T.c(),b=O(),p(s,"class","inline-flex"),p(c,"class","label"),this.first=t},m(E,D){w(E,t,D),m(t,i),m(i,s),$.m(s,null),m(s,l),m(s,r),m(r,a),m(t,u),m(t,f),m(f,c),m(c,h),m(t,g),m(t,y),T&&T.m(y,null),m(t,b)},p(E,D){e=E,S!==(S=v(e))&&($.d(1),$=S(e),$&&($.c(),$.m(s,l))),D&1&&o!==(o=e[13].name+"")&&ge(a,o),D&1&&d!==(d=W.getFieldValueType(e[13])+"")&&ge(h,d),M===(M=C(e))&&T?T.p(e,D):(T&&T.d(1),T=M&&M(e),T&&(T.c(),T.m(y,null)))},d(E){E&&k(t),$.d(),T&&T.d()}}}function xh(n,e){let t,i=e[8].code+"",s,l,r,o;function a(){return e[7](e[8])}return{key:n,first:null,c(){t=_("button"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[1]===e[8].code),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&8&&i!==(i=e[8].code+"")&&ge(s,i),f&10&&ee(t,"active",e[1]===e[8].code)},d(u){u&&k(t),r=!1,o()}}}function Xh(n,e){let t,i,s,l;return i=new nn({props:{content:e[8].body}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[1]===e[8].code),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r;const a={};o&8&&(a.content=e[8].body),i.$set(a),o&10&&ee(t,"active",e[1]===e[8].code)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function WO(n){var Et;let e,t,i,s,l,r,o,a=n[0].name+"",u,f,c,d,h,g,y,b,v,S=n[0].name+"",$,C,M,T,E,D,P,L,R,j,G,Y=[],q=new Map,Z,J,K=[],ne=new Map,ce,be,se,x,Te,te,_e,fe,ie,ye,He,Le=[],Re=new Map,ae,re,ve,qe,Ve,Je=[],me=new Map,Ae,X,ue=[],Ue=new Map,bt,it=n[5]&&Kh(),yt=n[4];const at=de=>de[16].lang;for(let de=0;de<yt.length;de+=1){let Se=Yh(n,yt,de),Ze=at(Se);q.set(Ze,Y[de]=Jh(Ze,Se))}let dt=n[4];const Tt=de=>de[16].lang;for(let de=0;de<dt.length;de+=1){let Se=Wh(n,dt,de),Ze=Tt(Se);ne.set(Ze,K[de]=Gh(Ze,Se))}let Pt=(Et=n[0])==null?void 0:Et.schema;const Jt=de=>de[13].name;for(let de=0;de<Pt.length;de+=1){let Se=Uh(n,Pt,de),Ze=Jt(Se);Re.set(Ze,Le[de]=Zh(Ze,Se))}let he=n[3];const we=de=>de[8].code;for(let de=0;de<he.length;de+=1){let Se=Bh(n,he,de),Ze=we(Se);me.set(Ze,Je[de]=xh(Ze,Se))}let Ge=n[3];const et=de=>de[8].code;for(let de=0;de<Ge.length;de+=1){let Se=zh(n,Ge,de),Ze=et(Se);Ue.set(Ze,ue[de]=Xh(Ze,Se))}return{c(){e=_("div"),t=_("strong"),t.textContent="PATCH",i=O(),s=_("div"),l=_("p"),r=H("/api/collections/"),o=_("strong"),u=H(a),f=H("/records/"),c=_("strong"),c.textContent=":id",d=O(),it&&it.c(),h=O(),g=_("div"),y=_("p"),b=H("Update a single "),v=_("strong"),$=H(S),C=H(" record."),M=O(),T=_("p"),T.innerHTML=`Body parameters could be sent as <code>application/json</code> or
<code>multipart/form-data</code>.`,E=O(),D=_("p"),D.innerHTML="File upload is supported only via <code>multipart/form-data</code>.",P=O(),L=_("div"),L.textContent="Client SDKs example",R=O(),j=_("div"),G=_("div");for(let de=0;de<Y.length;de+=1)Y[de].c();Z=O(),J=_("div");for(let de=0;de<K.length;de+=1)K[de].c();ce=O(),be=_("div"),be.textContent="Path parameters",se=O(),x=_("table"),x.innerHTML=`<thead><tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr></thead>
<tbody><tr><td>id</td>
<td><span class="label">String</span></td>
<td>ID of the record to update.</td></tr></tbody>`,Te=O(),te=_("div"),te.textContent="Body Parameters",_e=O(),fe=_("table"),ie=_("thead"),ie.innerHTML=`<tr><th>Param</th>
<th width="60%">Type</th>
<th width="50%">Description</th></tr>`,ye=O(),He=_("tbody");for(let de=0;de<Le.length;de+=1)Le[de].c();ae=O(),re=_("div"),re.textContent="Responses",ve=O(),qe=_("div"),Ve=_("div");for(let de=0;de<Je.length;de+=1)Je[de].c();Ae=O(),X=_("div");for(let de=0;de<ue.length;de+=1)ue[de].c();p(t,"class","label label-primary"),p(s,"class","content"),p(e,"class","alert alert-warning"),p(g,"class","content m-b-base"),p(L,"class","section-title"),p(G,"class","tabs-header compact left"),p(J,"class","tabs-content"),p(j,"class","tabs m-b-lg"),p(be,"class","section-title"),p(x,"class","table-compact table-border m-b-lg"),p(te,"class","section-title"),p(fe,"class","table-compact table-border m-b-lg"),p(re,"class","section-title"),p(Ve,"class","tabs-header compact left"),p(X,"class","tabs-content"),p(qe,"class","tabs")},m(de,Se){w(de,e,Se),m(e,t),m(e,i),m(e,s),m(s,l),m(l,r),m(l,o),m(o,u),m(l,f),m(l,c),m(e,d),it&&it.m(e,null),w(de,h,Se),w(de,g,Se),m(g,y),m(y,b),m(y,v),m(v,$),m(y,C),m(g,M),m(g,T),m(g,E),m(g,D),w(de,P,Se),w(de,L,Se),w(de,R,Se),w(de,j,Se),m(j,G);for(let Ze=0;Ze<Y.length;Ze+=1)Y[Ze].m(G,null);m(j,Z),m(j,J);for(let Ze=0;Ze<K.length;Ze+=1)K[Ze].m(J,null);w(de,ce,Se),w(de,be,Se),w(de,se,Se),w(de,x,Se),w(de,Te,Se),w(de,te,Se),w(de,_e,Se),w(de,fe,Se),m(fe,ie),m(fe,ye),m(fe,He);for(let Ze=0;Ze<Le.length;Ze+=1)Le[Ze].m(He,null);w(de,ae,Se),w(de,re,Se),w(de,ve,Se),w(de,qe,Se),m(qe,Ve);for(let Ze=0;Ze<Je.length;Ze+=1)Je[Ze].m(Ve,null);m(qe,Ae),m(qe,X);for(let Ze=0;Ze<ue.length;Ze+=1)ue[Ze].m(X,null);bt=!0},p(de,[Se]){var Ze;(!bt||Se&1)&&a!==(a=de[0].name+"")&&ge(u,a),de[5]?it||(it=Kh(),it.c(),it.m(e,null)):it&&(it.d(1),it=null),(!bt||Se&1)&&S!==(S=de[0].name+"")&&ge($,S),Se&20&&(yt=de[4],Y=rt(Y,Se,at,1,de,yt,q,G,un,Jh,null,Yh)),Se&20&&(dt=de[4],Me(),K=rt(K,Se,Tt,1,de,dt,ne,J,Ft,Gh,null,Wh),Oe()),Se&1&&(Pt=(Ze=de[0])==null?void 0:Ze.schema,Le=rt(Le,Se,Jt,1,de,Pt,Re,He,un,Zh,null,Uh)),Se&10&&(he=de[3],Je=rt(Je,Se,we,1,de,he,me,Ve,un,xh,null,Bh)),Se&10&&(Ge=de[3],Me(),ue=rt(ue,Se,et,1,de,Ge,Ue,X,Ft,Xh,null,zh),Oe())},i(de){if(!bt){for(let Se=0;Se<dt.length;Se+=1)A(K[Se]);for(let Se=0;Se<Ge.length;Se+=1)A(ue[Se]);bt=!0}},o(de){for(let Se=0;Se<K.length;Se+=1)F(K[Se]);for(let Se=0;Se<ue.length;Se+=1)F(ue[Se]);bt=!1},d(de){de&&k(e),it&&it.d(),de&&k(h),de&&k(g),de&&k(P),de&&k(L),de&&k(R),de&&k(j);for(let Se=0;Se<Y.length;Se+=1)Y[Se].d();for(let Se=0;Se<K.length;Se+=1)K[Se].d();de&&k(ce),de&&k(be),de&&k(se),de&&k(x),de&&k(Te),de&&k(te),de&&k(_e),de&&k(fe);for(let Se=0;Se<Le.length;Se+=1)Le[Se].d();de&&k(ae),de&&k(re),de&&k(ve),de&&k(qe);for(let Se=0;Se<Je.length;Se+=1)Je[Se].d();for(let Se=0;Se<ue.length;Se+=1)ue[Se].d()}}}function YO(n,e,t){let i,{collection:s=new Fn}=e,l=200,r="JavaScript",o=[],a=[];const u=c=>t(2,r=c.lang),f=c=>t(1,l=c.code);return n.$$set=c=>{"collection"in c&&t(0,s=c.collection)},n.$$.update=()=>{var c,d;n.$$.dirty&1&&t(5,i=(s==null?void 0:s.updateRule)===null),n.$$.dirty&1&&t(3,o=[{code:200,body:JSON.stringify(W.dummyCollectionRecord(s),null,2)},{code:400,body:`
{
"code": 400,
"message": "Failed to update record.",
"data": {
"${(d=(c=s==null?void 0:s.schema)==null?void 0:c[0])==null?void 0:d.name}": {
"code": "validation_required",
"message": "Missing required value."
}
}
}
`},{code:403,body:`
{
"code": 403,
"message": "You are not allowed to perform this request.",
"data": {}
}
`},{code:404,body:`
{
"code": 404,
"message": "The requested resource wasn't found.",
"data": {}
}
`}]),n.$$.dirty&1&&t(4,a=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${ke.baseUrl}");
const data = { ... };
client.Records.update("${s==null?void 0:s.name}", "RECORD_ID", data)
.then(function (record) {
// success...
}).catch(function (error) {
// error...
});
`}])},[s,l,r,o,a,i,u,f]}class KO extends Pe{constructor(e){super(),Ee(this,e,YO,WO,De,{collection:0})}}function Qh(n,e,t){const i=n.slice();return i[8]=e[t],i}function em(n,e,t){const i=n.slice();return i[8]=e[t],i}function tm(n,e,t){const i=n.slice();return i[13]=e[t],i}function nm(n,e,t){const i=n.slice();return i[13]=e[t],i}function im(n){let e;return{c(){e=_("p"),e.innerHTML="Requires <code>Authorization: Admin TOKEN</code> header",p(e,"class","txt-hint txt-sm txt-right")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function sm(n,e){let t,i=e[13].lang+"",s,l,r,o;function a(){return e[6](e[13])}return{key:n,first:null,c(){t=_("button"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&16&&i!==(i=e[13].lang+"")&&ge(s,i),f&24&&ee(t,"active",e[3]===e[13].lang)},d(u){u&&k(t),r=!1,o()}}}function lm(n,e){let t,i,s,l;return i=new nn({props:{content:e[13].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r;const a={};o&16&&(a.content=e[13].code),i.$set(a),o&24&&ee(t,"active",e[3]===e[13].lang)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function rm(n,e){let t,i=e[8].code+"",s,l,r,o;function a(){return e[7](e[8])}return{key:n,first:null,c(){t=_("button"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&36&&ee(t,"active",e[2]===e[8].code)},d(u){u&&k(t),r=!1,o()}}}function om(n,e){let t,i,s,l;return i=new nn({props:{content:e[8].body}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r,o&36&&ee(t,"active",e[2]===e[8].code)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function JO(n){let e,t,i,s,l,r,o,a=n[0].name+"",u,f,c,d,h,g,y,b,v,S=n[0].name+"",$,C,M,T,E,D,P,L=[],R=new Map,j,G,Y=[],q=new Map,Z,J,K,ne,ce,be,se,x,Te,te=[],_e=new Map,fe,ie,ye=[],He=new Map,Le,Re=n[1]&&im(),ae=n[4];const re=X=>X[13].lang;for(let X=0;X<ae.length;X+=1){let ue=nm(n,ae,X),Ue=re(ue);R.set(Ue,L[X]=sm(Ue,ue))}let ve=n[4];const qe=X=>X[13].lang;for(let X=0;X<ve.length;X+=1){let ue=tm(n,ve,X),Ue=qe(ue);q.set(Ue,Y[X]=lm(Ue,ue))}let Ve=n[5];const Je=X=>X[8].code;for(let X=0;X<Ve.length;X+=1){let ue=em(n,Ve,X),Ue=Je(ue);_e.set(Ue,te[X]=rm(Ue,ue))}let me=n[5];const Ae=X=>X[8].code;for(let X=0;X<me.length;X+=1){let ue=Qh(n,me,X),Ue=Ae(ue);He.set(Ue,ye[X]=om(Ue,ue))}return{c(){e=_("div"),t=_("strong"),t.textContent="DELETE",i=O(),s=_("div"),l=_("p"),r=H("/api/collections/"),o=_("strong"),u=H(a),f=H("/records/"),c=_("strong"),c.textContent=":id",d=O(),Re&&Re.c(),h=O(),g=_("div"),y=_("p"),b=H("Delete a single "),v=_("strong"),$=H(S),C=H(" record."),M=O(),T=_("div"),T.textContent="Client SDKs example",E=O(),D=_("div"),P=_("div");for(let X=0;X<L.length;X+=1)L[X].c();j=O(),G=_("div");for(let X=0;X<Y.length;X+=1)Y[X].c();Z=O(),J=_("div"),J.textContent="Path parameters",K=O(),ne=_("table"),ne.innerHTML=`<thead><tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr></thead>
<tbody><tr><td>id</td>
<td><span class="label">String</span></td>
<td>ID of the record to delete.</td></tr></tbody>`,ce=O(),be=_("div"),be.textContent="Responses",se=O(),x=_("div"),Te=_("div");for(let X=0;X<te.length;X+=1)te[X].c();fe=O(),ie=_("div");for(let X=0;X<ye.length;X+=1)ye[X].c();p(t,"class","label label-primary"),p(s,"class","content"),p(e,"class","alert alert-danger"),p(g,"class","content m-b-base"),p(T,"class","section-title"),p(P,"class","tabs-header compact left"),p(G,"class","tabs-content"),p(D,"class","tabs m-b-lg"),p(J,"class","section-title"),p(ne,"class","table-compact table-border m-b-lg"),p(be,"class","section-title"),p(Te,"class","tabs-header compact left"),p(ie,"class","tabs-content"),p(x,"class","tabs")},m(X,ue){w(X,e,ue),m(e,t),m(e,i),m(e,s),m(s,l),m(l,r),m(l,o),m(o,u),m(l,f),m(l,c),m(e,d),Re&&Re.m(e,null),w(X,h,ue),w(X,g,ue),m(g,y),m(y,b),m(y,v),m(v,$),m(y,C),w(X,M,ue),w(X,T,ue),w(X,E,ue),w(X,D,ue),m(D,P);for(let Ue=0;Ue<L.length;Ue+=1)L[Ue].m(P,null);m(D,j),m(D,G);for(let Ue=0;Ue<Y.length;Ue+=1)Y[Ue].m(G,null);w(X,Z,ue),w(X,J,ue),w(X,K,ue),w(X,ne,ue),w(X,ce,ue),w(X,be,ue),w(X,se,ue),w(X,x,ue),m(x,Te);for(let Ue=0;Ue<te.length;Ue+=1)te[Ue].m(Te,null);m(x,fe),m(x,ie);for(let Ue=0;Ue<ye.length;Ue+=1)ye[Ue].m(ie,null);Le=!0},p(X,[ue]){(!Le||ue&1)&&a!==(a=X[0].name+"")&&ge(u,a),X[1]?Re||(Re=im(),Re.c(),Re.m(e,null)):Re&&(Re.d(1),Re=null),(!Le||ue&1)&&S!==(S=X[0].name+"")&&ge($,S),ue&24&&(ae=X[4],L=rt(L,ue,re,1,X,ae,R,P,un,sm,null,nm)),ue&24&&(ve=X[4],Me(),Y=rt(Y,ue,qe,1,X,ve,q,G,Ft,lm,null,tm),Oe()),ue&36&&(Ve=X[5],te=rt(te,ue,Je,1,X,Ve,_e,Te,un,rm,null,em)),ue&36&&(me=X[5],Me(),ye=rt(ye,ue,Ae,1,X,me,He,ie,Ft,om,null,Qh),Oe())},i(X){if(!Le){for(let ue=0;ue<ve.length;ue+=1)A(Y[ue]);for(let ue=0;ue<me.length;ue+=1)A(ye[ue]);Le=!0}},o(X){for(let ue=0;ue<Y.length;ue+=1)F(Y[ue]);for(let ue=0;ue<ye.length;ue+=1)F(ye[ue]);Le=!1},d(X){X&&k(e),Re&&Re.d(),X&&k(h),X&&k(g),X&&k(M),X&&k(T),X&&k(E),X&&k(D);for(let ue=0;ue<L.length;ue+=1)L[ue].d();for(let ue=0;ue<Y.length;ue+=1)Y[ue].d();X&&k(Z),X&&k(J),X&&k(K),X&&k(ne),X&&k(ce),X&&k(be),X&&k(se),X&&k(x);for(let ue=0;ue<te.length;ue+=1)te[ue].d();for(let ue=0;ue<ye.length;ue+=1)ye[ue].d()}}}function GO(n,e,t){let i,{collection:s=new Fn}=e,l=204,r="JavaScript",o=[],a=[];const u=c=>t(3,r=c.lang),f=c=>t(2,l=c.code);return n.$$set=c=>{"collection"in c&&t(0,s=c.collection)},n.$$.update=()=>{n.$$.dirty&1&&t(1,i=(s==null?void 0:s.deleteRule)===null),n.$$.dirty&3&&s!=null&&s.id&&(o.push({code:204,body:`
null
`}),o.push({code:400,body:`
{
"code": 400,
"message": "Failed to delete record. Make sure that the record is not part of a required relation reference.",
"data": {}
}
`}),i&&o.push({code:403,body:`
{
"code": 403,
"message": "Only admins can access this action.",
"data": {}
}
`}),o.push({code:404,body:`
{
"code": 404,
"message": "The requested resource wasn't found.",
"data": {}
}
`})),n.$$.dirty&1&&t(4,a=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${ke.baseUrl}");
client.Records.delete("${s==null?void 0:s.name}", "RECORD_ID")
.then(function () {
// success...
}).catch(function (error) {
// error...
});
`}])},[s,i,l,r,a,o,u,f]}class ZO extends Pe{constructor(e){super(),Ee(this,e,GO,JO,De,{collection:0})}}function am(n,e,t){const i=n.slice();return i[4]=e[t],i}function um(n,e,t){const i=n.slice();return i[4]=e[t],i}function fm(n,e){let t,i=e[4].lang+"",s,l,r,o;function a(){return e[3](e[4])}return{key:n,first:null,c(){t=_("button"),s=H(i),l=O(),p(t,"class","tab-item"),ee(t,"active",e[1]===e[4].lang),this.first=t},m(u,f){w(u,t,f),m(t,s),m(t,l),r||(o=Q(t,"click",a),r=!0)},p(u,f){e=u,f&4&&i!==(i=e[4].lang+"")&&ge(s,i),f&6&&ee(t,"active",e[1]===e[4].lang)},d(u){u&&k(t),r=!1,o()}}}function cm(n,e){let t,i,s,l;return i=new nn({props:{content:e[4].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=O(),p(t,"class","tab-item"),ee(t,"active",e[1]===e[4].lang),this.first=t},m(r,o){w(r,t,o),V(i,t,null),m(t,s),l=!0},p(r,o){e=r;const a={};o&4&&(a.content=e[4].code),i.$set(a),o&6&&ee(t,"active",e[1]===e[4].lang)},i(r){l||(A(i.$$.fragment,r),l=!0)},o(r){F(i.$$.fragment,r),l=!1},d(r){r&&k(t),z(i)}}}function xO(n){let e,t,i,s,l,r,o,a,u=[],f=new Map,c,d,h=[],g=new Map,y,b,v,S,$,C=n[2];const M=D=>D[4].lang;for(let D=0;D<C.length;D+=1){let P=um(n,C,D),L=M(P);f.set(L,u[D]=fm(L,P))}let T=n[2];const E=D=>D[4].lang;for(let D=0;D<T.length;D+=1){let P=am(n,T,D),L=E(P);g.set(L,h[D]=cm(L,P))}return S=new nn({props:{content:JSON.stringify({action:"create",record:W.dummyCollectionRecord(n[0])},null,2).replace('"action": "create"','"action": "create" // create, update or delete')}}),{c(){e=_("div"),e.innerHTML=`<strong class="label label-primary">SSE</strong>
<div class="content"><p>/api/realtime</p></div>`,t=O(),i=_("div"),i.innerHTML=`<p>Subscribe to realtime changes via Server-Sent Events (SSE).</p>
<p>Events are send for <strong>create</strong>, <strong>update</strong>
and <strong>delete</strong> record operations (see &quot;Event data format&quot; section below).</p>
<div class="alert alert-info m-t-10"><div class="icon"><i class="ri-information-line"></i></div>
<div class="contet"><p><strong>You could subscribe to a single record or to an entire collection.</strong></p>
<p>When you subscribe to a <strong>single record</strong>, the collection&#39;s
<strong>ViewRule</strong> will be used to determine whether the subscriber has access to receive
the event message.</p>
<p>When you subscribe to an <strong>entire collection</strong>, the collection&#39;s
<strong>ListRule</strong> will be used to determine whether the subscriber has access to receive
the event message.</p></div></div>`,s=O(),l=_("div"),l.textContent="Client SDKs example",r=O(),o=_("div"),a=_("div");for(let D=0;D<u.length;D+=1)u[D].c();c=O(),d=_("div");for(let D=0;D<h.length;D+=1)h[D].c();y=O(),b=_("div"),b.textContent="Event data format",v=O(),B(S.$$.fragment),p(e,"class","alert"),p(i,"class","content m-b-base"),p(l,"class","section-title"),p(a,"class","tabs-header compact left"),p(d,"class","tabs-content"),p(o,"class","tabs m-b-base"),p(b,"class","section-title")},m(D,P){w(D,e,P),w(D,t,P),w(D,i,P),w(D,s,P),w(D,l,P),w(D,r,P),w(D,o,P),m(o,a);for(let L=0;L<u.length;L+=1)u[L].m(a,null);m(o,c),m(o,d);for(let L=0;L<h.length;L+=1)h[L].m(d,null);w(D,y,P),w(D,b,P),w(D,v,P),V(S,D,P),$=!0},p(D,[P]){P&6&&(C=D[2],u=rt(u,P,M,1,D,C,f,a,un,fm,null,um)),P&6&&(T=D[2],Me(),h=rt(h,P,E,1,D,T,g,d,Ft,cm,null,am),Oe());const L={};P&1&&(L.content=JSON.stringify({action:"create",record:W.dummyCollectionRecord(D[0])},null,2).replace('"action": "create"','"action": "create" // create, update or delete')),S.$set(L)},i(D){if(!$){for(let P=0;P<T.length;P+=1)A(h[P]);A(S.$$.fragment,D),$=!0}},o(D){for(let P=0;P<h.length;P+=1)F(h[P]);F(S.$$.fragment,D),$=!1},d(D){D&&k(e),D&&k(t),D&&k(i),D&&k(s),D&&k(l),D&&k(r),D&&k(o);for(let P=0;P<u.length;P+=1)u[P].d();for(let P=0;P<h.length;P+=1)h[P].d();D&&k(y),D&&k(b),D&&k(v),z(S,D)}}}function XO(n,e,t){let{collection:i=new Fn}=e,s="JavaScript",l=[];const r=o=>t(1,s=o.lang);return n.$$set=o=>{"collection"in o&&t(0,i=o.collection)},n.$$.update=()=>{n.$$.dirty&1&&t(2,l=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${ke.baseUrl}");
// (Optionally) authenticate
client.Users.authViaEmail("test@example.com", "123456");
// Subscribe to changes in any record from the collection
client.Realtime.subscribe("${i==null?void 0:i.name}", function (e) {
console.log(e.record);
});
// Subscribe to changes in a single record
client.Realtime.subscribe("${i==null?void 0:i.name}/RECORD_ID", function (e) {
console.log(e.record);
});
// Unsubscribe
client.Realtime.unsubscribe() // remove all subscriptions
client.Realtime.unsubscribe("${i==null?void 0:i.name}") // remove the collection subscription
client.Realtime.unsubscribe("${i==null?void 0:i.name}/RECORD_ID") // remove the record subscription
`}])},[i,s,l,r]}class QO extends Pe{constructor(e){super(),Ee(this,e,XO,xO,De,{collection:0})}}function dm(n,e,t){const i=n.slice();return i[14]=e[t],i}function pm(n,e,t){const i=n.slice();return i[14]=e[t],i}function hm(n){let e,t,i,s;var l=n[14].component;function r(o){return{props:{collection:o[3]}}}return l&&(t=new l(r(n))),{c(){e=_("div"),t&&B(t.$$.fragment),i=O(),p(e,"class","tab-item active")},m(o,a){w(o,e,a),t&&V(t,e,null),m(e,i),s=!0},p(o,a){const u={};if(a&8&&(u.collection=o[3]),l!==(l=o[14].component)){if(t){Me();const f=t;F(f.$$.fragment,1,0,()=>{z(f,1)}),Oe()}l?(t=new l(r(o)),B(t.$$.fragment),A(t.$$.fragment,1),V(t,e,i)):t=null}else l&&t.$set(u)},i(o){s||(t&&A(t.$$.fragment,o),s=!0)},o(o){t&&F(t.$$.fragment,o),s=!1},d(o){o&&k(e),t&&z(t)}}}function mm(n,e){let t,i,s,l=e[4]===e[14].id&&hm(e);return{key:n,first:null,c(){t=st(),l&&l.c(),i=st(),this.first=t},m(r,o){w(r,t,o),l&&l.m(r,o),w(r,i,o),s=!0},p(r,o){e=r,e[4]===e[14].id?l?(l.p(e,o),o&16&&A(l,1)):(l=hm(e),l.c(),A(l,1),l.m(i.parentNode,i)):l&&(Me(),F(l,1,1,()=>{l=null}),Oe())},i(r){s||(A(l),s=!0)},o(r){F(l),s=!1},d(r){r&&k(t),l&&l.d(r),r&&k(i)}}}function eT(n){let e,t=[],i=new Map,s,l=n[5];const r=o=>o[14].id;for(let o=0;o<l.length;o+=1){let a=dm(n,l,o),u=r(a);i.set(u,t[o]=mm(u,a))}return{c(){e=_("div");for(let o=0;o<t.length;o+=1)t[o].c();p(e,"class","tabs-content")},m(o,a){w(o,e,a);for(let u=0;u<t.length;u+=1)t[u].m(e,null);s=!0},p(o,a){a&56&&(l=o[5],Me(),t=rt(t,a,r,1,o,l,i,e,Ft,mm,null,dm),Oe())},i(o){if(!s){for(let a=0;a<l.length;a+=1)A(t[a]);s=!0}},o(o){for(let a=0;a<t.length;a+=1)F(t[a]);s=!1},d(o){o&&k(e);for(let a=0;a<t.length;a+=1)t[a].d()}}}function gm(n,e){let t,i,s=e[14].label+"",l,r,o,a;function u(){return e[9](e[14])}function f(...c){return e[10](e[14],...c)}return{key:n,first:null,c(){t=_("button"),i=_("span"),l=H(s),r=O(),p(i,"class","txt"),p(t,"tabindex","0"),p(t,"class","tab-item"),ee(t,"active",e[4]===e[14].id),this.first=t},m(c,d){w(c,t,d),m(t,i),m(i,l),m(t,r),o||(a=[Q(t,"click",u),Q(t,"keydown",Yg(f))],o=!0)},p(c,d){e=c,d&48&&ee(t,"active",e[4]===e[14].id)},d(c){c&&k(t),o=!1,lt(a)}}}function tT(n){let e,t,i=n[3].name+"",s,l,r,o,a=[],u=new Map,f=n[5];const c=d=>d[14].id;for(let d=0;d<f.length;d+=1){let h=pm(n,f,d),g=c(h);u.set(g,a[d]=gm(g,h))}return{c(){e=_("h4"),t=_("strong"),s=H(i),l=H(" records API"),r=O(),o=_("div");for(let d=0;d<a.length;d+=1)a[d].c();p(o,"class","tabs-header stretched")},m(d,h){w(d,e,h),m(e,t),m(t,s),m(e,l),w(d,r,h),w(d,o,h);for(let g=0;g<a.length;g+=1)a[g].m(o,null)},p(d,h){h&8&&i!==(i=d[3].name+"")&&ge(s,i),h&114&&(f=d[5],a=rt(a,h,c,1,d,f,u,o,un,gm,null,pm))},d(d){d&&k(e),d&&k(r),d&&k(o);for(let h=0;h<a.length;h+=1)a[h].d()}}}function nT(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Close</span>',p(e,"type","button"),p(e,"class","btn btn-secondary")},m(s,l){w(s,e,l),t||(i=Q(e,"click",n[8]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function iT(n){let e,t,i={class:"overlay-panel-xl colored-header collection-panel",$$slots:{footer:[nT],header:[tT],default:[eT]},$$scope:{ctx:n}};return e=new Ai({props:i}),n[11](e),e.$on("hide",n[12]),e.$on("show",n[13]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,[l]){const r={};l&524312&&(r.$$scope={dirty:l,ctx:s}),e.$set(r)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){F(e.$$.fragment,s),t=!1},d(s){n[11](null),z(e,s)}}}function sT(n,e,t){const i=[{id:"list",label:"List",component:bO},{id:"view",label:"View",component:kO},{id:"create",label:"Create",component:FO},{id:"update",label:"Update",component:KO},{id:"delete",label:"Delete",component:ZO},{id:"realtime",label:"Realtime",component:QO}];let s,l=new Fn,r=i[0].id;function o(v){return t(3,l=v),u(i[0].id),s==null?void 0:s.show()}function a(){return s==null?void 0:s.hide()}function u(v){t(4,r=v)}function f(v,S){(v.code==="Enter"||v.code==="Space")&&(v.preventDefault(),u(S))}const c=()=>a(),d=v=>u(v.id),h=(v,S)=>f(S,v.id);function g(v){pe[v?"unshift":"push"](()=>{s=v,t(2,s)})}function y(v){ut.call(this,n,v)}function b(v){ut.call(this,n,v)}return[a,u,s,l,r,i,f,o,c,d,h,g,y,b]}class lT extends Pe{constructor(e){super(),Ee(this,e,sT,iT,De,{show:7,hide:0,changeTab:1})}get show(){return this.$$.ctx[7]}get hide(){return this.$$.ctx[0]}get changeTab(){return this.$$.ctx[1]}}function rT(n){let e,t,i,s=[n[3]],l={};for(let r=0;r<s.length;r+=1)l=ct(l,s[r]);return{c(){e=_("textarea"),ci(e,l),ee(e,"svelte-1x1pbts",!0)},m(r,o){w(r,e,o),e.autofocus&&e.focus(),n[5](e),$e(e,n[0]),t||(i=[Q(e,"input",n[6]),Q(e,"keydown",n[2])],t=!0)},p(r,[o]){ci(e,l=bn(s,[o&8&&r[3]])),o&1&&$e(e,r[0]),ee(e,"svelte-1x1pbts",!0)},i:oe,o:oe,d(r){r&&k(e),n[5](null),t=!1,lt(i)}}}function oT(n,e,t){const i=["value","maxHeight"];let s=Ut(e,i),{value:l=""}=e,{maxHeight:r=200}=e,o,a;function u(){clearTimeout(a),a=setTimeout(()=>{o&&(t(1,o.style.height="",o),t(1,o.style.height=Math.min(o.scrollHeight+2,r)+"px",o))},0)}function f(h){if((h==null?void 0:h.code)==="Enter"&&!(h!=null&&h.shiftKey)){h.preventDefault();const g=o.closest("form");g Line truncated
<span class="txt">Upload new file</span>`,p(t,"type","file"),p(t,"class","hidden"),t.multiple=n[5],p(s,"type","button"),p(s,"class","btn btn-secondary btn-sm btn-block"),p(e,"class","list-item btn-list-item")},m(o,a){w(o,e,a),m(e,t),n[18](t),m(e,i),m(e,s),l||(r=[Q(t,"change",n[19]),Q(s,"click",n[20])],l=!0)},p(o,a){a&32&&(t.multiple=o[5])},d(o){o&&k(e),n[18](null),l=!1,lt(r)}}}function iD(n){let e,t,i,s,l,r=n[3].name+"",o,a,u,f,c=[],d=new Map,h,g,y,b=n[4];const v=T=>T[28];for(let T=0;T<b.length;T+=1){let E=ym(n,b,T),D=v(E);d.set(D,c[T]=vm(D,E))}let S=n[0],$=[];for(let T=0;T<S.length;T+=1)$[T]=km(bm(n,S,T));const C=T=>F($[T],1,1,()=>{$[T]=null});let M=!n[9]&&wm(n);return{c(){e=_("label"),t=_("i"),s=O(),l=_("span"),o=H(r),u=O(),f=_("div");for(let T=0;T<c.length;T+=1)c[T].c();h=O();for(let T=0;T<$.length;T+=1)$[T].c();g=O(),M&&M.c(),p(t,"class",i=W.getFieldTypeIcon(n[3].type)),p(l,"class","txt"),p(e,"for",a=n[24]),p(f,"class","files-list")},m(T,E){w(T,e,E),m(e,t),m(e,s),m(e,l),m(l,o),w(T,u,E),w(T,f,E);for(let D=0;D<c.length;D+=1)c[D].m(f,null);m(f,h);for(let D=0;D<$.length;D+=1)$[D].m(f,null);m(f,g),M&&M.m(f,null),n[21](f),y=!0},p(T,E){if((!y||E&8&&i!==(i=W.getFieldTypeIcon(T[3].type)))&&p(t,"class",i),(!y||E&8)&&r!==(r=T[3].name+"")&&ge(o,r),(!y||E&16777216&&a!==(a=T[24]))&&p(e,"for",a),E&3222&&(b=T[4],Me(),c=rt(c,E,v,1,T,b,d,f,Ft,vm,h,ym),Oe()),E&4097){S=T[0];let D;for(D=0;D<S.length;D+=1){const P=bm(T,S,D);$[D]?($[D].p(P,E),A($[D],1)):($[D]=km(P),$[D].c(),A($[D],1),$[D].m(f,g))}for(Me(),D=S.length;D<$.length;D+=1)C(D);Oe()}T[9]?M&&(M.d(1),M=null):M?M.p(T,E):(M=wm(T),M.c(),M.m(f,null))},i(T){if(!y){for(let E=0;E<b.length;E+=1)A(c[E]);for(let E=0;E<S.length;E+=1)A($[E]);y=!0}},o(T){for(let E=0;E<c.length;E+=1)F(c[E]);$=$.filter(Boolean);for(let E=0;E<$.length;E+=1)F($[E]);y=!1},d(T){T&&k(e),T&&k(u),T&&k(f);for(let E=0;E<c.length;E+=1)c[E].d();Bn($,T),M&&M.d(),n[21](null)}}}function sD(n){let e,t,i,s;e=new Fe({props:{class:"form-field form-field-file "+(n[3].required?"required":""),name:n[3].name,$$slots:{default:[iD,({uniqueId:r})=>({24:r}),({uniqueId:r})=>r?16777216:0]},$$scope:{ctx:n}}});let l={};return i=new ZT({props:l}),n[22](i),{c(){B(e.$$.fragment),t=O(),B(i.$$.fragment)},m(r,o){V(e,r,o),w(r,t,o),V(i,r,o),s=!0},p(r,[o]){const a={};o&8&&(a.class="form-field form-field-file "+(r[3].required?"required":"")),o&8&&(a.name=r[3].name),o&1090520063&&(a.$$scope={dirty:o,ctx:r}),e.$set(a);const u={};i.$set(u)},i(r){s||(A(e.$$.fragment,r),A(i.$$.fragment,r),s=!0)},o(r){F(e.$$.fragment,r),F(i.$$.fragment,r),s=!1},d(r){z(e,r),r&&k(t),n[22](null),z(i,r)}}}function lD(n,e,t){let i,s,l,{record:r}=e,{value:o=null}=e,{uploadedFiles:a=[]}=e,{deletedFileIndexes:u=[]}=e,{field:f=new wn}=e,c,d,h;function g(R){W.removeByValue(u,R),t(1,u)}function y(R){W.pushUnique(u,R),t(1,u)}function b(R){W.isEmpty(a[R])||a.splice(R,1),t(0,a)}function v(){h==null||h.dispatchEvent(new CustomEvent("change",{detail:{value:o,uploadedFiles:a,deletedFileIndexes:u},bubbles:!0}))}const S=R=>W.hasImageExtension(R)?d==null?void 0:d.show(ke.Records.getFileUrl(r,R)):!1,$=R=>g(R),C=R=>y(R),M=R=>b(R);function T(R){pe[R?"unshift":"push"](()=>{c=R,t(6,c)})}const E=()=>{for(let R of c.files)a.push(R);t(0,a),t(6,c.value=null,c)},D=()=>c==null?void 0:c.click();function P(R){pe[R?"unshift":"push"](()=>{h=R,t(8,h)})}function L(R){pe[R?"unshift":"push"](()=>{d=R,t(7,d)})}return n.$$set=R=>{"record"in R&&t(2,r=R.record),"value"in R&&t(13,o=R.value),"uploadedFiles"in R&&t(0,a=R.uploadedFiles),"deletedFileIndexes"in R&&t(1,u=R.deletedFileIndexes),"field"in R&&t(3,f=R.field)},n.$$.update=()=>{var R,j;n.$$.dirty&1&&(Array.isArray(a)||t(0,a=W.toArray(a))),n.$$.dirty&2&&(Array.isArray(u)||t(1,u=W.toArray(u))),n.$$.dirty&8&&t(5,i=((R=f.options)==null?void 0:R.maxSelect)>1),n.$$.dirty&8224&&(typeof o=="undefined"||o===null)&&t(13,o=i?[]:null),n.$$.dirty&8192&&t(4,s=W.toArray(o)),n.$$.dirty&27&&t(9,l=(s.length||a.length)&&((j=f.options)==null?void 0:j.maxSelect)<=s.length+a.length-u.length),n.$$.dirty&3&&(a!==-1||u!==-1)&&v()},[a,u,r,f,s,i,c,d,h,l,g,y,b,o,S,$,C,M,T,E,D,P,L]}class rD extends Pe{constructor(e){super(),Ee(this,e,lD,sD,De,{record:2,value:13,uploadedFiles:0,deletedFileIndexes:1,field:3})}}function Sm(n){let e,t;return{c(){e=_("small"),t=H(n[1]),p(e,"class","block txt-hint txt-ellipsis")},m(i,s){w(i,e,s),m(e,t)},p(i,s){s&2&&ge(t,i[1])},d(i){i&&k(e)}}}function oD(n){let e,t,i,s,l,r=n[0].id+"",o,a,u,f,c=n[1]!==""&&n[1]!==n[0].id&&Sm(n);return{c(){e=_("i"),i=O(),s=_("div"),l=_("div"),o=H(r),a=O(),c&&c.c(),p(e,"class","ri-information-line link-hint"),p(l,"class","block txt-ellipsis"),p(s,"class","content svelte-1gjwqyd")},m(d,h){w(d,e,h),w(d,i,h),w(d,s,h),m(s,l),m(l,o),m(s,a),c&&c.m(s,null),u||(f=Xe(t=St.call(null,e,{text:JSON.stringify(n[0],null,2),position:"left",class:"code"})),u=!0)},p(d,[h]){t&&Jn(t.update)&&h&1&&t.update.call(null,{text:JSON.stringify(d[0],null,2),position:"left",class:"code"}),h&1&&r!==(r=d[0].id+"")&&ge(o,r),d[1]!==""&&Line truncated
`,p(e,"class","block txt-center txt-disabled")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function DD(n){let e,t,i;function s(r){n[31](r,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new OD({props:l}),pe.push(()=>Ie(e,"value",s)),{c(){B(e.$$.fragment)},m(r,o){V(e,r,o),i=!0},p(r,o){n=r;const a={};o[0]&1&&(a.field=n[40]),!t&&o[0]&5&&(t=!0,a.value=n[2][n[40].name],je(()=>t=!1)),e.$set(a)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){F(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function AD(n){let e,t,i;function s(r){n[30](r,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new _D({props:l}),pe.push(()=>Ie(e,"value",s)),{c(){B(e.$$.fragment)},m(r,o){V(e,r,o),i=!0},p(r,o){n=r;const a={};o[0]&1&&(a.field=n[40]),!t&&o[0]&5&&(t=!0,a.value=n[2][n[40].name],je(()=>t=!1)),e.$set(a)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){F(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function ED(n){let e,t,i,s,l;function r(f){n[27](f,n[40])}function o(f){n[28](f,n[40])}function a(f){n[29](f,n[40])}let u={field:n[40],record:n[2]};return n[2][n[40].name]!==void 0&&(u.value=n[2][n[40].name]),n[3][n[40].name]!==void 0&&(u.uploadedFiles=n[3][n[40].name]),n[4][n[40].name]!==void 0&&(u.deletedFileIndexes=n[4][n[40].name]),e=new rD({props:u}),pe.push(()=>Ie(e,"value",r)),pe.push(()=>Ie(e,"uploadedFiles",o)),pe.push(()=>Ie(e,"deletedFileIndexes",a)),{c(){B(e.$$.fragment)},m(f,c){V(e,f,c),l=!0},p(f,c){n=f;const d={};c[0]&1&&(d.field=n[40]),c[0]&4&&(d.record=n[2]),!t&&c[0]&5&&(t=!0,d.value=n[2][n[40].name],je(()=>t=!1)),!i&&c[0]&9&&(i=!0,d.uploadedFiles=n[3][n[40].name],je(()=>i=!1)),!s&&c[0]&17&&(s=!0,d.deletedFileIndexes=n[4][n[40].name],je(()=>s=!1)),e.$set(d)},i(f){l||(A(e.$$.fragment,f),l=!0)},o(f){F(e.$$.fragment,f),l=!1},d(f){z(e,f)}}}function PD(n){let e,t,i;function s(r){n[26](r,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new qT({props:l}),pe.push(()=>Ie(e,"value",s)),{c(){B(e.$$.fragment)},m(r,o){V(e,r,o),i=!0},p(r,o){n=r;const a={};o[0]&1&&(a.field=n[40]),!t&&o[0]&5&&(t=!0,a.value=n[2][n[40].name],je(()=>t=!1)),e.$set(a)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){F(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function LD(n){let e,t,i;function s(r){n[25](r,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new NT({props:l}),pe.push(()=>Ie(e,"value",s)),{c(){B(e.$$.fragment)},m(r,o){V(e,r,o),i=!0},p(r,o){n=r;const a={};o[0]&1&&(a.field=n[40]),!t&&o[0]&5&&(t=!0,a.value=n[2][n[40].name],je(()=>t=!1)),e.$set(a)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){F(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function FD(n){let e,t,i;function s(r){n[24](r,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new PT({props:l}),pe.push(()=>Ie(e,"value",s)),{c(){B(e.$$.fragment)},m(r,o){V(e,r,o),i=!0},p(r,o){n=r;const a={};o[0]&1&&(a.field=n[40]),!t&&o[0]&5&&(t=!0,a.value=n[2][n[40].name],je(()=>t=!1)),e.$set(a)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){F(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function ID(n){let e,t,i;function s(r){n[23](r,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new TT({props:l}),pe.push(()=>Ie(e,"value",s)),{c(){B(e.$$.fragment)},m(r,o){V(e,r,o),i=!0},p(r,o){n=r;const a={};o[0]&1&&(a.field=n[40]),!t&&o[0]&5&&(t=!0,a.value=n[2][n[40].name],je(()=>t=!1)),e.$set(a)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){F(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function ND(n){let e,t,i;function s(r){n[22](r,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new $T({props:l}),pe.push(()=>Ie(e,"value",s)),{c(){B(e.$$.fragment)},m(r,o){V(e,r,o),i=!0},p(r,o){n=r;const a={};o[0]&1&&(a.field=n[40]),!t&&o[0]&5&&(t=!0,a.value=n[2][n[40].name],je(()=>t=!1)),e.$set(a)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){F(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function RD(n){let e,t,i;function s(r){n[21](r,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new vT({props:l}),pe.push(()=>Ie(e,"value",s)),{c(){B(e.$$.fragment)},m(r,o){V(e,r,o),i=!0},p(r,o){n=r;const a={};o[0]&1&&(a.field=n[40]),!t&&o[0]&5&&(t=!0,a.value=n[2][n[40].name],je(()=>t=!1)),e.$set(a)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){F(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function jD(n){let e,t,i;function s(r){n[20](r,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new gT({props:l}),pe.push(()=>Ie(e,"value",s)),{c(){B(e.$$.fragment)},m(r,o){V(e,r,o),i=!0},p(r,o){n=r;const a={};o[0]&1&&(a.field=n[40]),!t&&o[0]&5&&(t=!0,a.value=n[2][n[40].name],je(()=>t=!1)),e.$set(a)},i(r){i||(A(e.$$.fragment,r),i=!0)},o(r){F(e.$$.fragment,r),i=!1},d(r){z(e,r)}}}function HD(n){let e,t,i;function s(r){n[19](r,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new dT({props:l}),pe.push(()=>Ie(e,"value",s)),{c(){B(e.$$.fragment)},m(r,o){V(e,r,o),i=!0},p(r,o){n=r; Line truncated
<span class="txt">Delete</span>`,p(e,"tabindex","0"),p(e,"class","dropdown-item closable")},m(s,l){w(s,e,l),t||(i=Q(e,"click",n[18]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function zD(n){let e,t=n[2].isNew?"New":"Edit",i,s,l=n[0].name+"",r,o,a,u,f,c=!n[2].isNew&&n[9]&&Pm(n);return{c(){e=_("h4"),i=H(t),s=O(),r=H(l),o=H(" record"),a=O(),c&&c.c(),u=st()},m(d,h){w(d,e,h),m(e,i),m(e,s),m(e,r),m(e,o),w(d,a,h),c&&c.m(d,h),w(d,u,h),f=!0},p(d,h){(!f||h[0]&4)&&t!==(t=d[2].isNew?"New":"Edit")&&ge(i,t),(!f||h[0]&1)&&l!==(l=d[0].name+"")&&ge(r,l),!d[2].isNew&&d[9]?c?(c.p(d,h),h[0]&516&&A(c,1)):(c=Pm(d),c.c(),A(c,1),c.m(u.parentNode,u)):c&&(Me(),F(c,1,1,()=>{c=null}),Oe())},i(d){f||(A(c),f=!0)},o(d){F(c),f=!1},d(d){d&&k(e),d&&k(a),c&&c.d(d),d&&k(u)}}}function BD(n){let e,t,i,s,l,r=n[2].isNew?"Create":"Save changes",o,a,u,f;return{c(){e=_("button"),t=_("span"),t.textContent="Cancel",i=O(),s=_("button"),l=_("span"),o=H(r),p(t,"class","txt"),p(e,"type","button"),p(e,"class","btn btn-secondary"),e.disabled=n[7],p(l,"class","txt"),p(s,"type","submit"),p(s,"form",n[11]),p(s,"class","btn btn-expanded"),s.disabled=a=!n[10]||n[7],ee(s,"btn-loading",n[7])},m(c,d){w(c,e,d),m(e,t),w(c,i,d),w(c,s,d),m(s,l),m(l,o),u||(f=Q(e,"click",n[17]),u=!0)},p(c,d){d[0]&128&&(e.disabled=c[7]),d[0]&4&&r!==(r=c[2].isNew?"Create":"Save changes")&&ge(o,r),d[0]&1152&&a!==(a=!c[10]||c[7])&&(s.disabled=a),d[0]&128&&ee(s,"btn-loading",c[7])},d(c){c&&k(e),c&&k(i),c&&k(s),u=!1,f()}}}function UD(n){let e,t,i={class:"overlay-panel-lg record-panel",beforeHide:n[32],$$slots:{footer:[BD],header:[zD],default:[qD]},$$scope:{ctx:n}};return e=new Ai({props:i}),n[33](e),e.$on("hide",n[34]),e.$on("show",n[35]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,l){const r={};l[0]&288&&(r.beforeHide=s[32]),l[0]&1693|l[1]&8192&&(r.$$scope={dirty:l,ctx:s}),e.$set(r)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){F(e.$$.fragment,s),t=!1},d(s){n[33](null),z(e,s)}}}function Lm(n){return JSON.stringify(n)}function WD(n,e,t){let i,s,l,r;const o=_n(),a="record_"+W.randomString(5);let{collection:u}=e,f,c=null,d=new no,h=!1,g=!1,y={},b={},v="";function S(fe){return C(fe),t(8,g=!0),f==null?void 0:f.show()}function $(){return f==null?void 0:f.hide()}function C(fe){Ki({}),c=fe||{},t(2,d=fe!=null&&fe.clone?fe.clone():new no),t(3,y={}),t(4,b={}),t(15,v=Lm(d))}function M(){if(h||!s)return;t(7,h=!0);const fe=E();let ie;d.isNew?ie=ke.Records.create(u==null?void 0:u.id,fe):ie=ke.Records.update(u==null?void 0:u.id,d.id,fe),ie.then(async ye=>{mn(d.isNew?"Successfully created record.":"Successfully updated record."),t(8,g=!1),$(),o("save",ye)}).catch(ye=>{ke.errorResponseHandler(ye)}).finally(()=>{t(7,h=!1)})}function T(){!(c!=null&&c.id)||Mi("Do you really want to delete the selected record?",()=>ke.Records.delete(c["@collectionId"],c.id).then(()=>{$(),mn("Successfully deleted record."),o("delete",c)}).catch(fe=>{ke.errorResponseHandler(fe)}))}function E(){const fe=(d==null?void 0:d.export())||{},ie=new FormData,ye={};for(const He of(u==null?void 0:u.schema)||[])ye[He.name]=He;for(const He in fe)!ye[He]||(typeof fe[He]=="undefined"&&(fe[He]=null),W.addValueToFormData(ie,He,fe[He]));for(const He in y){const Le=W.toArray(y[He]);for(const Re of Le)ie.append(He,Re)}for(const He in b){const Le=W.toArray(b[He]);for(const Re of Le)ie.append(He+"."+Re,"")}return ie}const D=()=>$(),P=()=>T();function L(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}function R(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}function j(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}function G(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}function Y(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}function q(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}function Z(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}function J(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}function K(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}function ne(fe,ie){n.$$.not_equal(y[ie.name],fe)&&(y[ie.name]=fe,t(3,y))}function ce(fe,ie){n.$$.not_equal(b[ie.name],fe)&&(b[ie.name]=fe,t(4,b))}function be(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}function se(fe,ie){n.$$.not_equal(d[ie.name],fe)&&(d[ie.name]=fe,t(2,d))}const x=()=>s&&g?(Mi("You have unsaved changes. Do you really want to close the panel?",()=>{t(8,g=!1),$()}),!1):!0;function Te(fe){pe[fe?"unshift":"push"](()=>{f=fe,t(6,f)})}function te(fe){ut.call(this,n,fe)}function _e(fe){ut.call(this,n,fe)}return n.$$set=fe=>{"collection"in fe&&t(0,u=fe.collection)},n.$$.update=()=>{n.$$.dirty[0]&24&&t(16,i=W.hasNonEmptyProps(y)||W.hasNonEmptyProps(b)),n.$$.dirty[0]&98308&&t(5,s=i||v!=Lm(d)),n.$$.dirty[0]&36&&t(10,l=d.isNew||s),n.$$.dirty[0]&1&&t(9,r=(u==null?void 0:u.name)!=="profiles")},[u,$,d,y,b,s,f,h,g,r,l,a,M,T,S,v,i,D,P,L,R,j,G,Y,q,Z,J,K,ne,ce,be,se,x,Te,te,_e]}class Hb extends Pe{constructor(e){super(),Ee(this,e,WD,UD,De,{collLine truncated
`},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function Wm(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Clear filters</span>',p(e,"type","button"),p(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){w(s,e,l),t||(i=Q(e,"click",n[28]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function Ym(n,e){let t,i,s;return i=new qb({props:{record:e[35],field:e[38]}}),{key:n,first:null,c(){t=st(),B(i.$$.fragment),this.first=t},m(l,r){w(l,t,r),V(i,l,r),s=!0},p(l,r){e=l;const o={};r[0]&8&&(o.record=e[35]),r[0]&2048&&(o.field=e[38]),i.$set(o)},i(l){s||(A(i.$$.fragment,l),s=!0)},o(l){F(i.$$.fragment,l),s=!1},d(l){l&&k(t),z(i,l)}}}function Km(n,e){let t,i,s,l,r,o,a,u,f,c,d,h,g,y=[],b=new Map,v,S,$,C,M,T,E,D,P,L,R,j;function G(){return e[25](e[35])}h=new jo({props:{id:e[35].id}});let Y=e[11];const q=K=>K[38].name;for(let K=0;K<Y.length;K+=1){let ne=Vm(e,Y,K),ce=q(ne);b.set(ce,y[K]=Ym(ce,ne))}$=new Ci({props:{date:e[35].created}}),T=new Ci({props:{date:e[35].updated}});function Z(){return e[26](e[35])}function J(...K){return e[27](e[35],...K)}return{key:n,first:null,c(){t=_("tr"),i=_("td"),s=_("div"),l=_("input"),a=O(),u=_("label"),c=O(),d=_("td"),B(h.$$.fragment),g=O();for(let K=0;K<y.length;K+=1)y[K].c();v=O(),S=_("td"),B($.$$.fragment),C=O(),M=_("td"),B(T.$$.fragment),E=O(),D=_("td"),D.innerHTML='<i class="ri-arrow-right-line"></i>',P=O(),p(l,"type","checkbox"),p(l,"id",r="checkbox_"+e[35].id),l.checked=o=e[5][e[35].id],p(u,"for",f="checkbox_"+e[35].id),p(s,"class","form-field"),p(i,"class","bulk-select-col min-width"),p(d,"class","col-type-text col-field-id"),p(S,"class","col-type-date col-field-created"),p(M,"class","col-type-date col-field-updated"),p(D,"class","col-type-action min-width"),p(t,"tabindex","0"),p(t,"class","row-handle"),this.first=t},m(K,ne){w(K,t,ne),m(t,i),m(i,s),m(s,l),m(s,a),m(s,u),m(t,c),m(t,d),V(h,d,null),m(t,g);for(let ce=0;ce<y.length;ce+=1)y[ce].m(t,null);m(t,v),m(t,S),V($,S,null),m(t,C),m(t,M),V(T,M,null),m(t,E),m(t,D),m(t,P),L=!0,R||(j=[Q(l,"change",G),Q(s,"click",Un(e[19])),Q(t,"click",Z),Q(t,"keydown",J)],R=!0)},p(K,ne){e=K,(!L||ne[0]&8&&r!==(r="checkbox_"+e[35].id))&&p(l,"id",r),(!L||ne[0]&40&&o!==(o=e[5][e[35].id]))&&(l.checked=o),(!L||ne[0]&8&&f!==(f="checkbox_"+e[35].id))&&p(u,"for",f);const ce={};ne[0]&8&&(ce.id=e[35].id),h.$set(ce),ne[0]&2056&&(Y=e[11],Me(),y=rt(y,ne,q,1,e,Y,b,t,Ft,Ym,v,Vm),Oe());const be={};ne[0]&8&&(be.date=e[35].created),$.$set(be);const se={};ne[0]&8&&(se.date=e[35].updated),T.$set(se)},i(K){if(!L){A(h.$$.fragment,K);for(let ne=0;ne<Y.length;ne+=1)A(y[ne]);A($.$$.fragment,K),A(T.$$.fragment,K),L=!0}},o(K){F(h.$$.fragment,K);for(let ne=0;ne<y.length;ne+=1)F(y[ne]);F($.$$.fragment,K),F(T.$$.fragment,K),L=!1},d(K){K&&k(t),z(h);for(let ne=0;ne<y.length;ne+=1)y[ne].d();z($),z(T),R=!1,lt(j)}}}function Jm(n){let e,t,i=n[3].length+"",s,l,r;return{c(){e=_("small"),t=H("Showing "),s=H(i),l=H(" of "),r=H(n[4]),p(e,"class","block txt-hint txt-right m-t-sm")},m(o,a){w(o,e,a),m(e,t),m(e,s),m(e,l),m(e,r)},p(o,a){a[0]&8&&i!==(i=o[3].length+"")&&ge(s,i),a[0]&16&&ge(r,o[4])},d(o){o&&k(e)}}}function Gm(n){let e,t,i,s,l=n[4]-n[3].length+"",r,o,a,u;return{c(){e=_("div"),t=_("button"),i=_("span"),s=H("Load more ("),r=H(l),o=H(")"),p(i,"class","txt"),p(t,"type","button"),p(t,"class","btn btn-lg btn-secondary btn-expanded"),ee(t,"btn-loading",n[8]),ee(t,"btn-disabled",n[8]),p(e,"class","block txt-center m-t-xs")},m(f,c){w(f,e,c),m(e,t),m(t,i),m(i,s),m(i,r),m(i,o),a||(u=Q(t,"click",n[29]),a=!0)},p(f,c){c[0]&24&&l!==(l=f[4]-f[3].length+"")&&ge(r,l),c[0]&256&&ee(t,"btn-loading",f[8]),c[0]&256&&ee(t,"btn-disabled",f[8])},d(f){f&&k(e),a=!1,u()}}}function Zm(n){let e,t,i,s,l,r,o=n[6]===1?"record":"records",a,u,f,c,d,h,g,y,b,v,S;return{c(){e=_("div"),t=_("div"),i=H("Selected "),s=_("strong"),l=H(n[6]),r=O(),a=H(o),u=O(),f=_("button"),f.innerHTML='<span class="txt">Reset</span>',c=O(),d=_("div"),h=O(),g=_("button"),g.innerHTML='<span class="txt">Delete selected</span>',p(t,"class","txt"),p(f,"type","button"),p(f,"class","btn btn-xs btn-secondary btn-outline p-l-5 p-r-5"),ee(f,"btn-disabled",n[9]),p(d,"class","flex-fill"),p(g,"type","button"),p(g,"class","btn btn-sm btn-secondary btn-danger"),ee(g,"btn-loading",n[9]),ee(g,"btn-disabled",n[9]),p(e,"class","bulkbar")},m($,C){w($,e,C),m(e,t),m(t,i),m(t,s),m(s,l),m(t,r),m(t,a),m(e,u),m(e,f),m(e,c),m(e,d),m(e,h),m(e,g),b=!0,v||(S=[Q(f,"click",n[30]),Q(g,"click",n[31])],v=!0)},p($,C){(!b||C[0]&64)&&ge(l,$[6]),(!b||C[0]&64)&&o!==(o=$[6]===1?"record":"records")&&ge(a,o),C[0]&512&&ee(f,"btn-disabled",$[9]),C[0]&512&&ee(g,"btn-loading",$[9]),C[0]&512&&ee(g,"btn-disabled",$[9])},i($){b||($&&Ot(()=>{y||(y=ft(e,ni,{duration:150,y:5},!0)),y.run(1)}),b=!0)},o($){$&&(y||(y=ft(e,ni,{duration:150,y:5},!1)),y.run(0)),b=!1},d($){$&&k(e),$&&y&&y.end(),v=!1,lt(S)}}}function pA(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g,y=[],b=new Map,v,S,$,C,M,T,E,D,P,L,R=[],j=new Map,G,Y,q,Z,J,K,ne;function ce(re){n[21](re)}let be={class:"col-type-text col-field- Line truncated
<span class="txt">API Preview</span>`,b=O(),v=_("button"),v.innerHTML=`<i class="ri-add-line"></i>
<span class="txt">New record</span>`,S=O(),B($.$$.fragment),C=O(),B(M.$$.fragment),p(r,"class","breadcrumb-item"),p(a,"class","breadcrumb-item"),p(l,"class","breadcrumbs"),p(d,"type","button"),p(d,"class","btn btn-secondary btn-circle"),p(y,"type","button"),p(y,"class","btn btn-outline"),p(v,"type","button"),p(v,"class","btn btn-expanded"),p(g,"class","btns-group"),p(s,"class","page-header"),p(i,"class","page-wrapper")},m(Y,q){V(e,Y,q),w(Y,t,q),w(Y,i,q),m(i,s),m(s,l),m(l,r),m(l,o),m(l,a),m(a,f),m(s,c),m(s,d),m(s,h),m(s,g),m(g,y),m(g,b),m(g,v),m(i,S),V($,i,null),m(i,C),V(M,i,null),D=!0,P||(L=[Xe(St.call(null,d,{text:"Edit collection",position:"right"})),Q(d,"click",n[12]),Q(y,"click",n[13]),Q(v,"click",n[14])],P=!0)},p(Y,q){(!D||q&4)&&u!==(u=Y[2].name+"")&&ge(f,u);const Z={};q&1&&(Z.value=Y[0]),q&4&&(Z.autocompleteCollection=Y[2]),$.$set(Z);const J={};q&4&&(J.collection=Y[2]),!T&&q&1&&(T=!0,J.filter=Y[0],je(()=>T=!1)),!E&&q&2&&(E=!0,J.sort=Y[1],je(()=>E=!1)),M.$set(J)},i(Y){D||(A(e.$$.fragment,Y),A($.$$.fragment,Y),A(M.$$.fragment,Y),D=!0)},o(Y){F(e.$$.fragment,Y),F($.$$.fragment,Y),F(M.$$.fragment,Y),D=!1},d(Y){z(e,Y),Y&&k(t),Y&&k(i),z($),n[16](null),z(M),P=!1,lt(L)}}}function _A(n){let e,t,i,s,l,r,o,a;return{c(){e=_("div"),t=_("div"),t.innerHTML='<i class="ri-database-2-line"></i>',i=O(),s=_("h1"),s.textContent="Create your first collection to add records!",l=O(),r=_("button"),r.innerHTML=`<i class="ri-add-line"></i>
<span class="txt">Create new collection</span>`,p(t,"class","icon"),p(s,"class","m-b-10"),p(r,"type","button"),p(r,"class","btn btn-expanded-lg btn-lg"),p(e,"class","placeholder-section m-b-base")},m(u,f){w(u,e,f),m(e,t),m(e,i),m(e,s),m(e,l),m(e,r),o||(a=Q(r,"click",n[11]),o=!0)},p:oe,i:oe,o:oe,d(u){u&&k(e),o=!1,a()}}}function bA(n){let e;return{c(){e=_("div"),e.innerHTML=`<span class="loader loader-lg"></span>
<h1>Loading collections...</h1>`,p(e,"class","placeholder-section m-b-base")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function yA(n){let e,t,i,s,l,r,o,a,u;const f=[bA,_A,gA],c=[];function d(b,v){return b[8]?0:b[7].length?2:1}e=d(n),t=c[e]=f[e](n);let h={};s=new gf({props:h}),n[20](s);let g={};r=new lT({props:g}),n[21](r);let y={collection:n[2]};return a=new Hb({props:y}),n[22](a),a.$on("save",n[23]),a.$on("delete",n[24]),{c(){t.c(),i=O(),B(s.$$.fragment),l=O(),B(r.$$.fragment),o=O(),B(a.$$.fragment)},m(b,v){c[e].m(b,v),w(b,i,v),V(s,b,v),w(b,l,v),V(r,b,v),w(b,o,v),V(a,b,v),u=!0},p(b,[v]){let S=e;e=d(b),e===S?c[e].p(b,v):(Me(),F(c[S],1,1,()=>{c[S]=null}),Oe(),t=c[e],t?t.p(b,v):(t=c[e]=f[e](b),t.c()),A(t,1),t.m(i.parentNode,i));const $={};s.$set($);const C={};r.$set(C);const M={};v&4&&(M.collection=b[2]),a.$set(M)},i(b){u||(A(t),A(s.$$.fragment,b),A(r.$$.fragment,b),A(a.$$.fragment,b),u=!0)},o(b){F(t),F(s.$$.fragment,b),F(r.$$.fragment,b),F(a.$$.fragment,b),u=!1},d(b){c[e].d(b),b&&k(i),n[20](null),z(s,b),b&&k(l),n[21](null),z(r,b),b&&k(o),n[22](null),z(a,b)}}}function vA(n,e,t){var G;let i,s,l,r;hn(n,fi,Y=>t(2,s=Y)),hn(n,Gs,Y=>t(10,l=Y)),hn(n,mu,Y=>t(8,r=Y));const o=W.getQueryParams((G=window.location)==null?void 0:G.href);let a,u,f,c,d=o.filter||"",h=o.sort||"-created",g=o.collectionId;W.setDocumentTitle("Collections"),I3(g);const y=()=>a==null?void 0:a.show(),b=()=>a==null?void 0:a.show(s),v=()=>u==null?void 0:u.show(s),S=()=>f==null?void 0:f.show(),$=Y=>t(0,d=Y.detail);function C(Y){pe[Y?"unshift":"push"](()=>{c=Y,t(6,c)})}function M(Y){d=Y,t(0,d),t(2,s),t(9,g)}function T(Y){h=Y,t(1,h),t(2,s),t(9,g)}const E=Y=>f==null?void 0:f.show(Y==null?void 0:Y.detail);function D(Y){pe[Y?"unshift":"push"](()=>{a=Y,t(3,a)})}function P(Y){pe[Y?"unshift":"push"](()=>{u=Y,t(4,u)})}function L(Y){pe[Y?"unshift":"push"](()=>{f=Y,t(5,f)})}const R=()=>c==null?void 0:c.load(),j=()=>c==null?void 0:c.load();return n.$$.update=()=>{n.$$.dirty&1024&&t(7,i=l.filter(Y=>Y.name!="profiles")),n.$$.dirty&516&&(s==null?void 0:s.id)&&g!=s.id&&(t(9,g=s.id),t(1,h="-created"),t(0,d="")),n.$$.dirty&7&&(h||d||(s==null?void 0:s.id))&&W.replaceClientQueryParams({collectionId:s==null?void 0:s.id,filter:d,sort:h})},[d,h,s,a,u,f,c,i,r,g,l,y,b,v,S,$,C,M,T,E,D,P,L,R,j]}class kA extends Pe{constructor(e){super(),Ee(this,e,vA,yA,De,{})}}function xm(n){let e,t;return e=new Fe({props:{class:"form-field disabled",name:"id",$$slots:{default:[wA,({uniqueId:i})=>({31:i}),({uniqueId:i})=>[0,i?1:0]]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,s){const l={};s[0]&2|s[1]&3&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){F(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function wA(n){let e,t,i,s,l,r,o,a,u;return{c(){e=_("label"),t=_("i"),i=O(),s=_("span"),s.textContent="ID",r=O(),o=_("input"),p(t,"class",W.getFieldTypeIcon("primary")),p(s,"class","txt"),p(e,"for",l=n[31]),p(o,"type","text"),p(o,"id",a=n[31]),o.value=u=n[1].id,o.disabled=!0},m(f,c){w(f,e,c),m(e,t),m(e,i),m(e,s),w(f,r,c),w(f,o,c)},p(f,c){c[1]&1&&l!==(l=f[31])&&p(e,"for",l),c[1]&1&&a!==(a=f[31])&&p(o,"id",a),c[0]&2&&u!==(u=f[1].id)&&o.value!==u&&(o.value=u)},d(f){f&&k(e),f&&k(r),f&&k(o)}}}function Xm(n){let e,t,i,s;return{c(){e=_("div"),e.innerHTML='<i class="ri-shield-check-line"></i>',p(e,"class","form-field-addon txt-success")},m(l,r){w(l,e,r),i||(s=Xe(t=St.call(null,e,"Verified")),i=!0)},d(l){l&&k(e),i=!1,s()}}}function SA(n){let e,t,i,s,l,r,o,a,u,f,c,d=n[1].verified&&Xm();return{c(){e=_("label"),t=_("i"),i=O(),s=_("span"),s.textContent="Email",r=O(),d&&d.c(),o=O(),a=_("input"),p(t,"class",W.getFieldTypeIcon("email")),p(s,"class","txt"),p(e,"for",l=n[31]),p(a,"type","email"),p(a,"autocomplete","off"),p(a,"id",u=n[31]),a.required=!0},m(h,g){w(h,e,g),m(e,t),m(e,i),m(e,s),w(h,r,g),d&&d.m(h,g),w(h,o,g),w(h,a,g),$e(a,n[2]),f||(c=Q(a,"input",n[19]),f=!0)},p(h,g){g[1]&1&&l!==(l=h[31])&&p(e,"for",l),h[1].verified?d||(d=Xm(),d.c(),d.m(o.parentNode,o)):d&&(d.d(1),d=null),g[1]&1&&u!==(u=h[31])&&p(a,"id",u),g[0]&4&&a.value!==h[2]&&$e(a,h[2])},d(h){h&&k(e),h&&k(r),d&&d.d(h),h&&k(o),h&&k(a),f=!1,c()}}}function Qm(n){let e,t;return e=new Fe({props:{class:"form-field form-field-toggle",$$slots:{default:[$A,({uniqueId:i})=>({31:i}),({uniqueId:i})=>[0,i?1:0]]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,s){const l={};s[0]&8|s[1]&3&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){F(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function $A(n){let e,t,i,s,l,r,o,a;return{c(){e=_("input"),i=O(),s=_("label"),l=H("Change password"),p(e,"type","checkbox"),p(e,"id",t=n[31]),p(s,"for",r=n[31])},m(u,f){w(u,e,f),e.checked=n[3],w(u,i,f),w(u,s,f),m(s,l),o||(a=Q(e,"change",n[20]),o=!0)},p(u,f){f[1]&1&&t!==(t=u[31])&&p(e,"id",t),f[0]&8&&(e.checked=u[3]),f[1]&1&&r!==(r=u[31])&&p(s,"for",r)},d(u){u&&k(e),u&&k(i),u&&k(s),o=!1,a()}}}function eg(n){let e,t,i,s,l,r,o,a,u;return s=new Fe({props:{class:"form-field required",name:"pasLine truncated
<span class="txt">Send verification email</span>`,p(e,"type","button"),p(e,"class","dropdown-item")},m(s,l){w(s,e,l),t||(i=Q(e,"click",n[16]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function AA(n){let e,t,i,s,l=!n[1].verified&&ig(n);return{c(){l&&l.c(),e=O(),t=_("button"),t.innerHTML=`<i class="ri-delete-bin-7-line"></i>
<span class="txt">Delete</span>`,p(t,"type","button"),p(t,"class","dropdown-item")},m(r,o){l&&l.m(r,o),w(r,e,o),w(r,t,o),i||(s=Q(t,"click",n[17]),i=!0)},p(r,o){r[1].verified?l&&(l.d(1),l=null):l?l.p(r,o):(l=ig(r),l.c(),l.m(e.parentNode,e))},d(r){l&&l.d(r),r&&k(e),r&&k(t),i=!1,s()}}}function EA(n){let e,t,i,s,l,r,o=n[1].isNew?"Create":"Save changes",a,u,f,c,d,h=!n[1].isNew&&ng(n);return{c(){h&&h.c(),e=O(),t=_("button"),i=_("span"),i.textContent="Cancel",s=O(),l=_("button"),r=_("span"),a=H(o),p(i,"class","txt"),p(t,"type","button"),p(t,"class","btn btn-secondary"),t.disabled=n[5],p(r,"class","txt"),p(l,"type","submit"),p(l,"form",n[11]),p(l,"class","btn btn-expanded"),l.disabled=u=!n[10]||n[5],ee(l,"btn-loading",n[5])},m(g,y){h&&h.m(g,y),w(g,e,y),w(g,t,y),m(t,i),w(g,s,y),w(g,l,y),m(l,r),m(r,a),f=!0,c||(d=Q(t,"click",n[18]),c=!0)},p(g,y){g[1].isNew?h&&(Me(),F(h,1,1,()=>{h=null}),Oe()):h?(h.p(g,y),y[0]&2&&A(h,1)):(h=ng(g),h.c(),A(h,1),h.m(e.parentNode,e)),(!f||y[0]&32)&&(t.disabled=g[5]),(!f||y[0]&2)&&o!==(o=g[1].isNew?"Create":"Save changes")&&ge(a,o),(!f||y[0]&1056&&u!==(u=!g[10]||g[5]))&&(l.disabled=u),y[0]&32&&ee(l,"btn-loading",g[5])},i(g){f||(A(h),f=!0)},o(g){F(h),f=!1},d(g){h&&h.d(g),g&&k(e),g&&k(t),g&&k(s),g&&k(l),c=!1,d()}}}function PA(n){let e,t,i={popup:!0,class:"user-panel",beforeHide:n[24],$$slots:{footer:[EA],header:[DA],default:[TA]},$$scope:{ctx:n}};return e=new Ai({props:i}),n[25](e),e.$on("hide",n[26]),e.$on("show",n[27]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,l){const r={};l[0]&1088&&(r.beforeHide=s[24]),l[0]&1966|l[1]&2&&(r.$$scope={dirty:l,ctx:s}),e.$set(r)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){F(e.$$.fragment,s),t=!1},d(s){n[25](null),z(e,s)}}}function LA(n,e,t){let i;const s=_n(),l="user_"+W.randomString(5);let r,o=new io,a=!1,u=!1,f="",c="",d="",h=!1,g=!0;function y(K){return v(K),t(6,u=!0),r==null?void 0:r.show()}function b(){return r==null?void 0:r.hide()}function v(K){Ki({}),t(1,o=K!=null&&K.clone?K.clone():new io),S()}function S(){t(3,h=!1),t(9,g=!0),t(2,f=(o==null?void 0:o.email)||""),t(7,c=""),t(8,d="")}function $(){if(a||!i)return;t(5,a=!0);const K={email:f};(o.isNew||h)&&(K.password=c,K.passwordConfirm=d);let ne;o.isNew?ne=ke.Users.create(K):ne=ke.Users.update(o.id,K),ne.then(async ce=>{g&&M(!1),t(6,u=!1),b(),mn(o.isNew?"Successfully created user.":"Successfully updated user."),s("save",ce)}).catch(ce=>{ke.errorResponseHandler(ce)}).finally(()=>{t(5,a=!1)})}function C(){!(o!=null&&o.id)||Mi("Do you really want to delete the selected user?",()=>ke.Users.delete(o.id).then(()=>{t(6,u=!1),b(),mn("Successfully deleted user."),s("delete",o)}).catch(K=>{ke.errorResponseHandler(K)}))}function M(K=!0){return ke.Users.requestVerification(o.isNew?f:o.email).then(()=>{t(6,u=!1),b(),K&&mn(`Successfully sent verification email to ${o.email}.`)}).catch(ne=>{ke.errorResponseHandler(ne)})}const T=()=>M(),E=()=>C(),D=()=>b();function P(){f=this.value,t(2,f)}function L(){h=this.checked,t(3,h)}function R(){c=this.value,t(7,c)}function j(){d=this.value,t(8,d)}function G(){g=this.checked,t(9,g)}const Y=()=>i&&u?(Mi("You have unsaved changes. Do you really want to close the panel?",()=>{t(6,u=!1),b()}),!1):!0;function q(K){pe[K?"unshift":"push"](()=>{r=K,t(4,r)})}function Z(K){ut.call(this,n,K)}function J(K){ut.call(this,n,K)}return n.$$.update=()=>{n.$$.dirty[0]&14&&t(10,i=o.isNew&&f!=""||h||f!==o.email)},[b,o,f,h,r,a,u,c,d,g,i,l,$,C,M,y,T,E,D,P,L,R,j,G,Y,q,Z,J]}class FA extends Pe{constructor(e){super(),Ee(this,e,LA,PA,De,{show:15,hide:0},null,[-1,-1])}get show(){return this.$$.ctx[15]}get hide(){return this.$$.ctx[0]}}function sg(n,e,t){const i=n.slice();return i[37]=e[t],i}function lg(n,e,t){const i=n.slice();return i[40]=e[t],i}function rg(n,e,t){const i=n.slice();return i[40]=e[t],i}function IA(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g,y,b,v,S,$,C,M,T,E=[],D=new Map,P,L,R,j,G,Y,q,Z,J,K,ne=[],ce=new Map,be,se,x,Te,te;c=new Po({props:{value:n[3],placeholder:"Search filter, eg. verified=1",extraAutocompleteKeys:["verified","email"]}}),c.$on("submit",n[17]);function _e(X){n[18](X)}let fe={class:"col-type-text col-field-id",name:"id",$$slots:{default:[RA]},$$scope:{ctx:n}};n[4]!==void 0&&(fe.sort=n[4]),v=new tn({props:fe}),pe.push(()=>Ie(v,"sort",_e));function ie(X){n[19](X)}let ye={class:"col-type-email col-field-email",name:"email",$$slots:{default:[jA]},$$scope:{ctx:n}};n[4]!==void 0&&(ye.sort=n[4]),C=new tn({props:ye}),pe.push(()=>Ie(C,"sort",ie));let He=n[12];const Le=X=>X[40].name;for(let X=0;X<He.length;X+=1){let ue=rg(n,He,X),Ue=Le(ue);D.set(Ue,E[X]=og(Ue,ue))}function Re(X){n[20](X)}let ae={class:"col-type-date col-field-created",name:"created",$$slots:{default:[HA]},$$scope:{ctx:n}};n[4]!==void 0&&(ae.sort=n[4]),L=new tn({props:ae}),pe.push(()=>Ie(L,"sort",Re));function re(X){n[21](X)}let ve={class:"col-type-date col-field-updated",name:"updated",$$slots:{default:[qA]},$$scope:{ctx:n}};n[4]!==void 0&&(ve.sort=n[4]),G=new tn({props:ve}),pe.push(()=>Ie(G,"sort",rLine truncated
<span class="txt">New user</span>`,f=O(),B(c.$$.fragment),d=O(),h=_("div"),g=_("table"),y=_("thead"),b=_("tr"),B(v.$$.fragment),$=O(),B(C.$$.fragment),T=O();for(let X=0;X<E.length;X+=1)E[X].c();P=O(),B(L.$$.fragment),j=O(),B(G.$$.fragment),q=O(),Z=_("th"),J=O(),K=_("tbody");for(let X=0;X<ne.length;X+=1)ne[X].c();Je&&Je.c(),be=O(),me&&me.c(),se=O(),Ae&&Ae.c(),p(i,"class","breadcrumbs"),p(l,"type","button"),p(l,"class","btn btn-secondary btn-circle"),p(o,"class","flex-fill"),p(u,"type","button"),p(u,"class","btn btn-expanded"),p(t,"class","page-header"),p(Z,"class","col-type-action min-width"),p(g,"class","table"),ee(g,"table-loading",n[10]),p(h,"class","table-wrapper"),p(e,"class","page-wrapper")},m(X,ue){w(X,e,ue),m(e,t),m(t,i),m(t,s),m(t,l),m(t,r),m(t,o),m(t,a),m(t,u),m(e,f),V(c,e,null),m(e,d),m(e,h),m(h,g),m(g,y),m(y,b),V(v,b,null),m(b,$),V(C,b,null),m(b,T);for(let Ue=0;Ue<E.length;Ue+=1)E[Ue].m(b,null);m(b,P),V(L,b,null),m(b,j),V(G,b,null),m(b,q),m(b,Z),m(g,J),m(g,K);for(let Ue=0;Ue<ne.length;Ue+=1)ne[Ue].m(K,null);Je&&Je.m(K,null),m(e,be),me&&me.m(e,null),m(e,se),Ae&&Ae.m(e,null),x=!0,Te||(te=[Xe(St.call(null,l,{text:"Edit profile collection",position:"right"})),Q(l,"click",n[15]),Q(u,"click",n[16])],Te=!0)},p(X,ue){const Ue={};ue[0]&8&&(Ue.value=X[3]),c.$set(Ue);const bt={};ue[1]&16384&&(bt.$$scope={dirty:ue,ctx:X}),!S&&ue[0]&16&&(S=!0,bt.sort=X[4],je(()=>S=!1)),v.$set(bt);const it={};ue[1]&16384&&(it.$$scope={dirty:ue,ctx:X}),!M&&ue[0]&16&&(M=!0,it.sort=X[4],je(()=>M=!1)),C.$set(it),ue[0]&4096&&(He=X[12],E=rt(E,ue,Le,1,X,He,D,b,un,og,P,rg));const yt={};ue[1]&16384&&(yt.$$scope={dirty:ue,ctx:X}),!R&&ue[0]&16&&(R=!0,yt.sort=X[4],je(()=>R=!1)),L.$set(yt);const at={};ue[1]&16384&&(at.$$scope={dirty:ue,ctx:X}),!Y&&ue[0]&16&&(Y=!0,at.sort=X[4],je(()=>Y=!1)),G.$set(at),ue[0]&5450&&(qe=X[1],Me(),ne=rt(ne,ue,Ve,1,X,qe,ce,K,Ft,cg,null,sg),Oe(),!qe.length&&Je?Je.p(X,ue):qe.length?Je&&(Je.d(1),Je=null):(Je=ag(X),Je.c(),Je.m(K,null))),ue[0]&1024&&ee(g,"table-loading",X[10]),X[1].length?me?me.p(X,ue):(me=dg(X),me.c(),me.m(e,se)):me&&(me.d(1),me=null),X[1].length&&X[13]?Ae?Ae.p(X,ue):(Ae=pg(X),Ae.c(),Ae.m(e,null)):Ae&&(Ae.d(1),Ae=null)},i(X){if(!x){A(c.$$.fragment,X),A(v.$$.fragment,X),A(C.$$.fragment,X),A(L.$$.fragment,X),A(G.$$.fragment,X);for(let ue=0;ue<qe.length;ue+=1)A(ne[ue]);x=!0}},o(X){F(c.$$.fragment,X),F(v.$$.fragment,X),F(C.$$.fragment,X),F(L.$$.fragment,X),F(G.$$.fragment,X);for(let ue=0;ue<ne.length;ue+=1)F(ne[ue]);x=!1},d(X){X&&k(e),z(c),z(v),z(C);for(let ue=0;ue<E.length;ue+=1)E[ue].d();z(L),z(G);for(let ue=0;ue<ne.length;ue+=1)ne[ue].d();Je&&Je.d(),me&&me.d(),Ae&&Ae.d(),Te=!1,lt(te)}}}function NA(n){let e;return{c(){e=_("div"),e.innerHTML=`<span class="loader loader-lg"></span>
<h1>Loading users...</h1>`,p(e,"class","placeholder-section m-b-base")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function RA(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="id",p(t,"class",W.getFieldTypeIcon("primary")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function jA(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="email",p(t,"class",W.getFieldTypeIcon("email")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function og(n,e){let t,i,s,l,r,o,a,u=e[40].name+"",f,c,d;return{key:n,first:null,c(){t=_("th"),i=_("div"),s=_("i"),r=O(),o=_("span"),a=H("profile."),f=H(u),p(s,"class",l=W.getFieldTypeIcon(e[40].type)),p(o,"class","txt"),p(i,"class","col-header-content"),p(t,"class",c="col-type-"+e[40].type+" col-field-"+e[40].name),p(t,"name",d=e[40].name),this.first=t},m(h,g){w(h,t,g),m(t,i),m(i,s),m(i,r),m(i,o),m(o,a),m(o,f)},p(h,g){e=h,g[0]&4096&&l!==(l=W.getFieldTypeIcon(e[40].type))&&p(s,"class",l),g[0]&4096&&u!==(u=e[40].name+"")&&ge(f,u),g[0]&4096&&c!==(c="col-type-"+e[40].type+" col-field-"+e[40].name)&&p(t,"class",c),g[0]&4096&&d!==(d=e[40].name)&&p(t,"name",d)},d(h){h&&k(t)}}}function HA(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="created",p(t,"class",W.getFieldTypeIcon("date")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function qA(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="updated",p(t,"class",W.getFieldTypeIcon("date")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function ag(n){let e;function t(l,r){return l[10]?zA:VA}let i=t(n),s=i(n);return{c(){s.c(),e=st()},m(l,r){s.m(l,r),w(l,e,r)},p(l,r){i===(i=t(l))&&s?s.p(l,r):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&k(e)}}}function VA(n){var o;let e,t,i,s,l,r=((o=n[3])==null?void 0:o.length)&&ug(n);return{c(){e=_("tr"),t=_("td"),i=_("h6"),i.textContent="No users found.",s=O(),r&&r.c(),l=O(),p(t,"colspan","99"),p(t,"class","txt-center txt-hint p-xs")},m(a,u){w(a,e,u),m(e,t),m(t,i),m(t,s),r&&r.m(t,null),m(e,l)},p(a,u){var f;(f=a[3])!=null&&f.length?r?r.p(a,u):(r=ug(a),r.c(),r.m(t,null)):r&&(r.d(1),r=null)},d(a){a&&k(e),r&&r.d()}}}function zA(n){let e;return{c(){e=_("tr"),e.innerHTML=`<td colspan="99" class="p-xs"><span class="skeleton-loader"></span></td>
`},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function ug(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Clear filters</span>',p(e,"type","button"),p(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){w(s,e,l),t||(i=Q(e,"click",n[24]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function fg(n,e){let t,i,s;return i=new qb({props:{field:e[40],record:e[37].profile||{}}}),{key:n,first:null,c(){t=st(),B(i.$$.fragment),this.first=t},m(l,r){w(l,t,r),V(i,l,r),s=!0},p(l,r){e=l;const o={};r[0]&4096&&(o.field=e[40]),r[0]&2&&(o.record=e[37].profile||{}),i.$set(o)},i(l){s||(A(i.$$.fragment,l),s=!0)},o(l){F(i.$$.fragment,l),s=!1},d(l){l&&k(t),z(i,l)}}}function cg(n,e){let t,i,s,l,r,o,a,u=e[37].email+"",f,c,d,h,g=e[37].verified?"Verified":"Unverified",y,b,v=[],S=new Map,$,C,M,T,E,D,P,L,R,j,G,Y,q,Z,J;s=new jo({props:{id:e[37].id}});let K=e[12];const ne=se=>se[40].name;for(let se=0;se<K.length;se+=1){let x=lg(e,K,se),Te=ne(x);S.set(Te,v[se]=fg(Te,x))}M=new Ci({props:{date:e[37].created}}),D=new Ci({props:{date:e[37].updated}});function ce(){return e[22](e[37])}function be(){return e[23](e[37])}return{key:n,first:null,c(){t=_("tr"),i=_("td"),B(s.$$.fragment),l=O(),r=_("td"),o=_("div"),a=_("span"),f=H(u),d=O(),h=_("span"),y=H(g),b=O();for(let se=0;se<v.length;se+=1)v[se].c();$=O(),C=_("td"),B(M.$$.fragment),T=O(),E=_("td"),B(D.$$.fragment),P=O(),L=_("td"),R=_("button"),R.innerHTML=`<i class="ri-user-settings-line"></i>
<span class="txt">Edit user</span>`,j=O(),G=_("button"),G.innerHTML=`<i class="ri-profile-line"></i>
<span class="txt">Edit profile</span>`,Y=O(),p(i,"class","col-type-text col-field-id"),p(a,"class","txt"),p(a,"title",c=e[37].email),p(h,"class","label"),ee(h,"label-success",e[37].verified),ee(h,"label-warning",!e[37].verified),p(o,"class","inline-flex"),p(r,"class","col-type-email col-field-email"),p(C,"class","col-type-date col-field-created"),p(E,"class","col-type-date col-field-updated"),p(R,"type","button"),p(R,"class","btn btn-sm btn-outline"),p(G,"type","button"),p(G,"class","btn btn-sm m-l-10"),p(L,"class","col-type-action min-width"),this.first=t},m(se,x){w(se,t,x),m(t,i),V(s,i,null),m(t,l),m(t,r),m(r,o),m(o,a),m(a,f),m(o,d),m(o,h),m(h,y),m(t,b);for(let Te=0;Te<v.length;Te+=1)v[Te].m(t,null);m(t,$),m(t,C),V(M,C,null),m(t,T),m(t,E),V(D,E,null),m(t,P),m(t,L),m(L,R),m(L,j),m(L,G),m(t,Y),q=!0,Z||(J=[Q(R,"click",Un(ce)),Q(G,"click",Un(be))],Z=!0)},p(se,x){e=se;const Te={};x[0]&2&&(Te.id=e[37].id),s.$set(Te),(!q||x[0]&2)&&u!==(u=e[37].email+"")&&ge(f,u),(!q||x[0]&2&&c!==(c=e[37].email))&&p(a,"title",c),(!q||x[0]&2)&&g!==(g=e[37].verified?"Verified":"Unverified")&&ge(y,g),x[0]&2&&ee(h,"label-success",e[37].verified),x[0]&2&&ee(h,"label-warning",!e[37].verified),x[0]&4098&&(K=e[12],Me(),v=rt(v,x,ne,1,e,K,S,t,Ft,fg,$,lg),Oe());const te={};x[0]&2&&(te.date=e[37].created),M.$set(te);const _e={};x[0]&2&&(_e.date=e[37].updated),D.$set(_e)},i(se){if(!q){A(s.$$.fragment,se);for(let x=0;x<K.length;x+=1)A(v[x]);A(M.$$.fragment,se),A(D.$$.fragment,se),q=!0}},o(se){F(s.$$.fragment,se);for(let x=0;x<v.length;x+=1)F(v[x]);F(M.$$.fragment,se),F(D.$$.fragment,se),q=!1},d(se){se&&k(t),z(s);for(let x=0;x<v.length;x+=1)v[x].d();z(M),z(D),Z=!1,lt(J)}}}function dg(n){let e,t,i=n[1].length+"",s,l,r;return{c(){e=_("small"),t=H("Showing "),s=H(i),l=H(" of "),r=H(n[2]),p(e,"class","block txt-hint txt-right m-t-sm")},m(o,a){w(o,e,a),m(e,t),m(e,s),m(e,l),m(e,r)},p(o,a){a[0]&2&&i!==(i=o[1].length+"")&&ge(s,i),a[0]&4&&ge(r,o[2])},d(o){o&&k(e)}}}function pg(n){let e,t,i,s,l=n[2]-n[1].length+"",r,o,a,u;return{c(){e=_("div"),t=_("button"),i=_("span"),s=H("Load more ("),r=H(l),o=H(")"),p(i,"class","txt"),p(t,"type","button"),p(t,"class","btn btn-lg btn-secondary btn-expanded"),ee(t,"btn-loading",n[10]),ee(t,"btn-disabled",n[10]),p(e,"class","block txt-center m-t-xs")},m(f,c){w(f,e,c),m(e,t),m(t,i),m(i,s),m(i,r),m(i,o),a||(u=Q(t,"click",n[25]),a=!0)},p(f,c){c[0]&6&&l!==(l=f[2]-f[1].length+"")&&ge(r,l),c[0]&1024&&ee(t,"btn-loading",f[10]),c[0]&1024&&ee(t,"btn-disabled",f[10])},d(f){f&&k(e),a=!1,u()}}}function BA(n){let e,t,i,s,l,r,o,a,u;const f=[NA,IA],c=[];function d(b,v){return b[11]?0:1}e=d(n),t=c[e]=f[e](n);let h={};s=new FA({props:h}),n[26](s),s.$on("save",n[27]),s.$on("delete",n[28]);let g={};r=new gf({props:g}),n[29](r),r.$on("save",n[30]);let y={collection:n[5]};return a=new Hb({props:y}),n[31](a),a.$on("save",n[32]),{c(){t.c(),i=O(),B(s.$$.fragment),l=O(),B(r.$$.fragment),o=O(),B(a.$$.fragment)},m(b,v){c[e].m(b,v),w(b,i,v),V(s,b,v),w(b,l,v),V(r,b,v),w(b,o,v),V(a,b,v),u=!0},p(b,v){let S=e;e=d(b),e===S?c[e].p(b,v):(Me(),F(c[S],1,1,()=>{c[S]=null}),Oe(),t=c[e],t?t.p(b,v):(t=c[e]=f[e](b),t.c()),A(t,1),t.m(i.parentNode,i));const $={};s.$set($);const C={};r.$set(C);const M={};v[0]&32&&(M.collection=b[5]),a.$set(M)},i(b){u||(A(t),A(s.$$.fragment,b),A(r.$$.fragment,b),A(a.$$.fragment,b),u=!0)},o(b){F(t),F(s.$$.fragment,b),F(r.$$.fragment,b),F(a.$$.fragment,b),u=!1},d(b){c[e].d(b),b&&k(i),n[26](null),z(s,b),b&&k(l),n[29](null),z(r,b),b&&k(o),n[31](null),z(a,b)}}}function UA(n,e,t){var Te;let i,s;const l=W.getQueryParams((Te=window.location)==null?void 0:Te.href),r=["id","userId","created","updated"];let o,a,u,f=[],c=1,d=0,h=!1,g=l.filter||"",y=l.sort||"-created",b=new Fn,v=!1;W.setDocumentTitle("Users"),M();async function S(te=1){return t(10,h=!0),ke.Users.getList(te,50,{sort:y||"-created",filter:g}).then(_e=>{te<=1&&$(),t(10,h=!1),t(1,f=f.concat(_e.items)),t(9,c=_e.page),t(2,d=_e.totalItems)}).catch(_e=>{_e!==null&&(t(10,h=!1),console.warn(_e),$(),ke.errorResponseHandler(_e,!1))})}function $(){t(1,f=[]),t(9,c=1),t(2,d=0)}function C(te){const _e=f.find(fe=>fe.id===(te==null?void 0:te.userId));_e&&(_e.profile=te),t(1,f)}async function M(){t(11,v=!0);try{t(5,b=await ke.Collections.getOne("profiles"))}catch(te){ke.errorResponseHandler(te)}t(11,v=!1)}const T=()=>a==null?void 0:a.show(b),E=()=>o==null?void 0:o.show(),D=te=>t(3,g=te.detail);function P(te){y=te,t(4,y)}function L(te){y=te,t(4,y)}function R(te){y=te,t(4,y)}function j(te){y=te,t(4,y)}const G=te=>o==null?void 0:o.show(te),Y=te=>u==null?void 0:u.show(te.profile),q=()=>t(3,g=""),Z=()=>S(c+1);function J(te){pe[te?"unshift":"push"](()=>{o=te,t(6,o)})}const K=()=>S(),ne=()=>S();function ce(te){pe[te?"unshift":"push"](()=>{a=te,t(7,a)})}const be=te=>t(5,b=te.detail);function se(te){pe[te?"unshift":"push"](()=>{u=te,t(8,u)})}const x=te=>C(te.detail);return n.$$.update=()=>{var te;n.$$.dirty[0]&24&&y!==-1&&g!==-1&&(W.replaceClientQueryParams({filter:g,soLine truncated
<span class="txt">Application</span>`,r=O(),o=_("a"),o.innerHTML=`<i class="ri-send-plane-2-line"></i>
<span class="txt">Mail settings</span>`,a=O(),u=_("a"),u.innerHTML=`<i class="ri-archive-drawer-line"></i>
<span class="txt">Files storage</span>`,f=O(),c=_("div"),c.textContent="Authentication",d=O(),h=_("a"),h.innerHTML=`<i class="ri-lock-password-line"></i>
<span class="txt">Auth providers</span>`,g=O(),y=_("a"),y.innerHTML=`<i class="ri-key-line"></i>
<span class="txt">Token options</span>`,b=O(),v=_("a"),v.innerHTML=`<i class="ri-shield-user-line"></i>
<span class="txt">Admins</span>`,p(i,"class","sidebar-title"),p(l,"href","/settings"),p(l,"class","sidebar-list-item"),p(o,"href","/settings/mail"),p(o,"class","sidebar-list-item"),p(u,"href","/settings/storage"),p(u,"class","sidebar-list-item"),p(c,"class","sidebar-title"),p(h,"href","/settings/auth-providers"),p(h,"class","sidebar-list-item"),p(y,"href","/settings/tokens"),p(y,"class","sidebar-list-item"),p(v,"href","/settings/admins"),p(v,"class","sidebar-list-item"),p(t,"class","sidebar-content"),p(e,"class","page-sidebar settings-sidebar")},m(C,M){w(C,e,M),m(e,t),m(t,i),m(t,s),m(t,l),m(t,r),m(t,o),m(t,a),m(t,u),m(t,f),m(t,c),m(t,d),m(t,h),m(t,g),m(t,y),m(t,b),m(t,v),S||($=[Xe(oi.call(null,l,{path:"/settings"})),Xe(On.call(null,l)),Xe(oi.call(null,o,{path:"/settings/mail/?.*"})),Xe(On.call(null,o)),Xe(oi.call(null,u,{path:"/settings/storage/?.*"})),Xe(On.call(null,u)),Xe(oi.call(null,h,{path:"/settings/auth-providers/?.*"})),Xe(On.call(null,h)),Xe(oi.call(null,y,{path:"/settings/tokens/?.*"})),Xe(On.call(null,y)),Xe(oi.call(null,v,{path:"/settings/admins/?.*"})),Xe(On.call(null,v))],S=!0)},p:oe,i:oe,o:oe,d(C){C&&k(e),S=!1,lt($)}}}class nl extends Pe{constructor(e){super(),Ee(this,e,null,YA,De,{})}}function hg(n,e,t){const i=n.slice();return i[31]=e[t],i}function mg(n){let e,t;return e=new Fe({props:{class:"form-field disabled",name:"id",$$slots:{default:[KA,({uniqueId:i})=>({30:i}),({uniqueId:i})=>[i?1073741824:0]]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,s){const l={};s[0]&1073741826|s[1]&8&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){F(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function KA(n){let e,t,i,s,l,r,o,a,u;return{c(){e=_("label"),t=_("i"),i=O(),s=_("span"),s.textContent="ID",r=O(),o=_("input"),p(t,"class",W.getFieldTypeIcon("primary")),p(s,"class","txt"),p(e,"for",l=n[30]),p(o,"type","text"),p(o,"id",a=n[30]),o.value=u=n[1].id,o.disabled=!0},m(f,c){w(f,e,c),m(e,t),m(e,i),m(e,s),w(f,r,c),w(f,o,c)},p(f,c){c[0]&1073741824&&l!==(l=f[30])&&p(e,"for",l),c[0]&1073741824&&a!==(a=f[30])&&p(o,"id",a),c[0]&2&&u!==(u=f[1].id)&&o.value!==u&&(o.value=u)},d(f){f&&k(e),f&&k(r),f&&k(o)}}}function gg(n){let e,t,i,s,l,r,o,a;function u(){return n[17](n[31])}function f(...c){return n[18](n[31],...c)}return{c(){e=_("figure"),t=_("img"),l=O(),ei(t.src,i="/_/images/avatars/avatar"+n[31]+".svg")||p(t,"src",i),p(t,"alt",s="Avatar "+n[31]),p(e,"tabindex","0"),p(e,"class",r="link-fade thumb thumb-circle "+(n[31]==n[2]?"thumb-active":"thumb-sm"))},m(c,d){w(c,e,d),m(e,t),m(e,l),o||(a=[Q(e,"click",u),Q(e,"keydown",f)],o=!0)},p(c,d){n=c,d[0]&4&&r!==(r="link-fade thumb thumb-circle "+(n[31]==n[2]?"thumb-active":"thumb-sm"))&&p(e,"class",r)},d(c){c&&k(e),o=!1,lt(a)}}}function JA(n){let e,t,i,s,l,r,o,a,u,f;return{c(){e=_("label"),t=_("i"),i=O(),s=_("span"),s.textContent="Email",r=O(),o=_("input"),p(t,"class",W.getFieldTypeIcon("email")),p(s,"class","txt"),p(e,"for",l=n[30]),p(o,"type","email"),p(o,"autocomplete","off"),p(o,"id",a=n[30]),o.required=!0},m(c,d){w(c,e,d),m(e,t),m(e,i),m(e,s),w(c,r,d),w(c,o,d),$e(o,n[3]),u||(f=Q(o,"input",n[19]),u=!0)},p(c,d){d[0]&1073741824&&l!==(l=c[30])&&p(e,"for",l),d[0]&1073741824&&a!==(a=c[30])&&p(o,"id",a),d[0]&8&&o.value!==c[3]&&$e(o,c[3])},d(c){c&&k(e),c&&k(r),c&&k(o),u=!1,f()}}}function _g(n){let e,t;return e=new Fe({props:{class:"form-field form-field-toggle",$$slots:{default:[GA,({uniqueId:i})=>({30:i}),({uniqueId:i})=>[i?1073741824:0]]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,s){const l={};s[0]&1073741840|s[1]&8&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){F(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function GA(n){let e,t,i,s,l,r,o,a;return{c(){e=_("input"),i=O(),s=_("label"),l=H("Change password"),p(e,"type","checkbox"),p(e,"id",t=n[30]),p(s,"for",r=n[30])},m(u,f){w(u,e,f),e.checked=n[4],w(u,i,f),w(u,s,f),m(s,l),o||(a=Q(e,"change",n[20]),o=!0)},p(u,f){f[0]&1073741824&&t!==(t=u[30])&&p(e,"id",t),f[0]&16&&(e.checked=u[4]),f[0]&1073741824&&r!==(r=u[30])&&p(s,"for",r)},d(u){u&&k(e),u&&k(i),u&&k(s),o=!1,a()}}}function bg(n){let e,t,i,s,l,r,o,a,u;return s=new Fe({props:{class:"form-field required",name:"password",$$slots:{default:[ZA,({uniqueId:f})=>({30:f}),({uniqueId:f})=>[f?1073741824:0]]},$$scope:{ctx:n}}}),o=new Fe({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[xA,({uniqueId:f})=>({30:f}),({uniqueId:f})=>[f?1073741824:0]]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),i=_("div"),B(s.$$.fragment),l=O(),r=_("div"),B(o.$$.fragment),p(i,"class","col-sm-6"),p(r,"class","col-sm-6"),p(t,"class","grid"),p(e,"class","col-12")},m(f,c){w(f,e,c),m(e,t),m(t,i),V(s,i,null),m(t,l),m(t,r),V(o,r,null),u=!0},p(f,c){const d={};c[0]&1073742080|c[1]&8&&(d.$$scope={dirty:c,ctx:f}),s.$set(d);const h={};c[0]&1073742336|c[1]&8&&(h.$$scope={dirty:c,ctx:f}),o.$set(h)},i(f){u||(A(s.$$.fragment,f),A(o.$$.fragment,f),Ot(()=>{a||(a=ft(t,fn,{duration:150},!0)),a.Line truncated
<span class="txt">Delete</span>`,p(e,"type","button"),p(e,"class","dropdown-item")},m(s,l){w(s,e,l),t||(i=Q(e,"click",n[15]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function tE(n){let e,t,i,s,l,r,o=n[1].isNew?"Create":"Save changes",a,u,f,c,d,h=!n[1].isNew&&yg(n);return{c(){h&&h.c(),e=O(),t=_("button"),i=_("span"),i.textContent="Cancel",s=O(),l=_("button"),r=_("span"),a=H(o),p(i,"class","txt"),p(t,"type","button"),p(t,"class","btn btn-secondary"),t.disabled=n[6],p(r,"class","txt"),p(l,"type","submit"),p(l,"form",n[11]),p(l,"class","btn btn-expanded"),l.disabled=u=!n[10]||n[6],ee(l,"btn-loading",n[6])},m(g,y){h&&h.m(g,y),w(g,e,y),w(g,t,y),m(t,i),w(g,s,y),w(g,l,y),m(l,r),m(r,a),f=!0,c||(d=Q(t,"click",n[16]),c=!0)},p(g,y){g[1].isNew?h&&(Me(),F(h,1,1,()=>{h=null}),Oe()):h?(h.p(g,y),y[0]&2&&A(h,1)):(h=yg(g),h.c(),A(h,1),h.m(e.parentNode,e)),(!f||y[0]&64)&&(t.disabled=g[6]),(!f||y[0]&2)&&o!==(o=g[1].isNew?"Create":"Save changes")&&ge(a,o),(!f||y[0]&1088&&u!==(u=!g[10]||g[6]))&&(l.disabled=u),y[0]&64&&ee(l,"btn-loading",g[6])},i(g){f||(A(h),f=!0)},o(g){F(h),f=!1},d(g){h&&h.d(g),g&&k(e),g&&k(t),g&&k(s),g&&k(l),c=!1,d()}}}function nE(n){let e,t,i={popup:!0,class:"admin-panel",beforeHide:n[23],$$slots:{footer:[tE],header:[QA],default:[XA]},$$scope:{ctx:n}};return e=new Ai({props:i}),n[24](e),e.$on("hide",n[25]),e.$on("show",n[26]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,l){const r={};l[0]&1152&&(r.beforeHide=s[23]),l[0]&1886|l[1]&8&&(r.$$scope={dirty:l,ctx:s}),e.$set(r)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){F(e.$$.fragment,s),t=!1},d(s){n[24](null),z(e,s)}}}function iE(n,e,t){let i;const s=_n(),l="admin_"+W.randomString(5);let r,o=new Ws,a=!1,u=!1,f=0,c="",d="",h="",g=!1;function y(J){return v(J),t(7,u=!0),r==null?void 0:r.show()}function b(){return r==null?void 0:r.hide()}function v(J){Ki({}),t(1,o=J!=null&&J.clone?J.clone():new Ws),S()}function S(){t(4,g=!1),t(3,c=(o==null?void 0:o.email)||""),t(2,f=(o==null?void 0:o.avatar)||0),t(8,d=""),t(9,h="")}function $(){if(a||!i)return;t(6,a=!0);const J={email:c,avatar:f};(o.isNew||g)&&(J.password=d,J.passwordConfirm=h);let K;o.isNew?K=ke.Admins.create(J):K=ke.Admins.update(o.id,J),K.then(async ne=>{var ce;t(7,u=!1),b(),mn(o.isNew?"Successfully created admin.":"Successfully updated admin."),s("save",ne),((ce=ke.AuthStore.model)==null?void 0:ce.id)===ne.id&&ke.AuthStore.save(ke.AuthStore.token,ne)}).catch(ne=>{ke.errorResponseHandler(ne)}).finally(()=>{t(6,a=!1)})}function C(){!(o!=null&&o.id)||Mi("Do you really want to delete the selected admin?",()=>ke.Admins.delete(o.id).then(()=>{t(7,u=!1),b(),mn("Successfully deleted admin."),s("delete",o)}).catch(J=>{ke.errorResponseHandler(J)}))}const M=()=>C(),T=()=>b(),E=J=>t(2,f=J),D=(J,K)=>{(K.code==="Enter"||K.code==="Space")&&(K.preventDefault(),t(2,f=J))};function P(){c=this.value,t(3,c)}function L(){g=this.checked,t(4,g)}function R(){d=this.value,t(8,d)}function j(){h=this.value,t(9,h)}const G=()=>i&&u?(Mi("You have unsaved changes. Do you really want to close the panel?",()=>{t(7,u=!1),b()}),!1):!0;function Y(J){pe[J?"unshift":"push"](()=>{r=J,t(5,r)})}function q(J){ut.call(this,n,J)}function Z(J){ut.call(this,n,J)}return n.$$.update=()=>{n.$$.dirty[0]&30&&t(10,i=o.isNew&&c!=""||g||c!==o.email||f!==o.avatar)},[b,o,f,c,g,r,a,u,d,h,i,l,$,C,y,M,T,E,D,P,L,R,j,G,Y,q,Z]}class sE extends Pe{constructor(e){super(),Ee(this,e,iE,nE,De,{show:14,hide:0},null,[-1,-1])}get show(){return this.$$.ctx[14]}get hide(){return this.$$.ctx[0]}}function vg(n,e,t){const i=n.slice();return i[21]=e[t],i}function lE(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="id",p(t,"class",W.getFieldTypeIcon("primary")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function rE(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="email",p(t,"class",W.getFieldTypeIcon("email")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function oE(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="created",p(t,"class",W.getFieldTypeIcon("date")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function aE(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=O(),s=_("span"),s.textContent="updated",p(t,"class",W.getFieldTypeIcon("date")),p(s,"class","txt"),p(e,"class","col-header-content")},m(l,r){w(l,e,r),m(e,t),m(e,i),m(e,s)},p:oe,d(l){l&&k(e)}}}function kg(n){let e;function t(l,r){return l[5]?fE:uE}let i=t(n),s=i(n);return{c(){s.c(),e=st()},m(l,r){s.m(l,r),w(l,e,r)},p(l,r){i===(i=t(l))&&s?s.p(l,r):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&k(e)}}}function uE(n){var o;let e,t,i,s,l,r=((o=n[1])==null?void 0:o.length)&&wg(n);return{c(){e=_("tr"),t=_("td"),i=_("h6"),i.textContent="No admins found.",s=O(),r&&r.c(),l=O(),p(t,"colspan","99"),p(t,"class","txt-cenLine truncated
`},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function wg(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Clear filters</span>',p(e,"type","button"),p(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){w(s,e,l),t||(i=Q(e,"click",n[15]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function Sg(n){let e;return{c(){e=_("span"),e.textContent="You",p(e,"class","label label-warning m-l-5")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function $g(n,e){let t,i,s,l,r,o,a,u,f,c,d,h,g=e[21].email+"",y,b,v,S,$,C,M,T,E,D,P,L,R,j;u=new jo({props:{id:e[21].id}});let G=e[21].id===e[6].id&&Sg();$=new Ci({props:{date:e[21].created}}),T=new Ci({props:{date:e[21].updated}});function Y(){return e[13](e[21])}function q(...Z){return e[14](e[21],...Z)}return{key:n,first:null,c(){t=_("tr"),i=_("td"),s=_("figure"),l=_("img"),o=O(),a=_("td"),B(u.$$.fragment),f=O(),G&&G.c(),c=O(),d=_("td"),h=_("span"),y=H(g),v=O(),S=_("td"),B($.$$.fragment),C=O(),M=_("td"),B(T.$$.fragment),E=O(),D=_("td"),D.innerHTML='<i class="ri-arrow-right-line"></i>',P=O(),ei(l.src,r="/_/images/avatars/avatar"+(e[21].avatar||0)+".svg")||p(l,"src",r),p(l,"alt","Admin avatar"),p(s,"class","thumb thumb-sm thumb-circle"),p(i,"class","min-width"),p(a,"class","col-type-text col-field-id"),p(h,"class","txt txt-ellipsis"),p(h,"title",b=e[21].email),p(d,"class","col-type-email col-field-email"),p(S,"class","col-type-date col-field-created"),p(M,"class","col-type-date col-field-updated"),p(D,"class","col-type-action min-width"),p(t,"tabindex","0"),p(t,"class","row-handle"),this.first=t},m(Z,J){w(Z,t,J),m(t,i),m(i,s),m(s,l),m(t,o),m(t,a),V(u,a,null),m(a,f),G&&G.m(a,null),m(t,c),m(t,d),m(d,h),m(h,y),m(t,v),m(t,S),V($,S,null),m(t,C),m(t,M),V(T,M,null),m(t,E),m(t,D),m(t,P),L=!0,R||(j=[Q(t,"click",Y),Q(t,"keydown",q)],R=!0)},p(Z,J){e=Z,(!L||J&16&&!ei(l.src,r="/_/images/avatars/avatar"+(e[21].avatar||0)+".svg"))&&p(l,"src",r);const K={};J&16&&(K.id=e[21].id),u.$set(K),e[21].id===e[6].id?G||(G=Sg(),G.c(),G.m(a,null)):G&&(G.d(1),G=null),(!L||J&16)&&g!==(g=e[21].email+"")&&ge(y,g),(!L||J&16&&b!==(b=e[21].email))&&p(h,"title",b);const ne={};J&16&&(ne.date=e[21].created),$.$set(ne);const ce={};J&16&&(ce.date=e[21].updated),T.$set(ce)},i(Z){L||(A(u.$$.fragment,Z),A($.$$.fragment,Z),A(T.$$.fragment,Z),L=!0)},o(Z){F(u.$$.fragment,Z),F($.$$.fragment,Z),F(T.$$.fragment,Z),L=!1},d(Z){Z&&k(t),z(u),G&&G.d(),z($),z(T),R=!1,lt(j)}}}function Cg(n){let e,t,i=n[4].length+"",s,l,r=n[4].length+"",o;return{c(){e=_("small"),t=H("Showing "),s=H(i),l=H(" of "),o=H(r),p(e,"class","block txt-hint txt-right m-t-sm")},m(a,u){w(a,e,u),m(e,t),m(e,s),m(e,l),m(e,o)},p(a,u){u&16&&i!==(i=a[4].length+"")&&ge(s,i),u&16&&r!==(r=a[4].length+"")&&ge(o,r)},d(a){a&&k(e)}}}function cE(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g,y,b,v,S,$,C,M,T,E,D,P,L,R,j,G,Y,q,Z,J,K=[],ne=new Map,ce,be,se,x,Te,te;e=new nl({}),c=new Po({props:{value:n[1],placeholder:"Search filter, eg. email='test@example.com'",extraAutocompleteKeys:["email"]}}),c.$on("submit",n[8]);function _e(me){n[9](me)}let fe={class:"col-type-text",name:"id",$$slots:{default:[lE]},$$scope:{ctx:n}};n[2]!==void 0&&(fe.sort=n[2]),$=new tn({props:fe}),pe.push(()=>Ie($,"sort",_e));function ie(me){n[10](me)}let ye={class:"col-type-email col-field-email",name:"email",$$slots:{default:[rE]},$$scope:{ctx:n}};n[2]!==void 0&&(ye.sort=n[2]),T=new tn({props:ye}),pe.push(()=>Ie(T,"sort",ie));function He(me){n[11](me)}let Le={class:"col-type-date col-field-created",name:"created",$$slots:{default:[oE]},$$scope:{ctx:n}};n[2]!==void 0&&(Le.sort=n[2]),P=new tn({props:Le}),pe.push(()=>Ie(P,"sort",He));function Re(me){n[12](me)}let ae={class:"col-type-date col-field-updated",name:"updated",$$slots:{default:[aE]},$$scope:{ctx:n}};n[2]!==void 0&&(ae.sort=n[2]),j=new tn({props:ae}),pe.push(()=>Ie(j,"sort",Re));let re=n[4];const ve=me=>me[21].id;for(let me=0;me<re.length;me+=1){let Ae=vg(n,re,me),X=ve(Ae);ne.set(X,K[me]=$g(X,Ae))}let qe=null;re.length||(qe=kg(n));let Ve=n[4].length&&Cg(n),Je={};return se=new sE({props:Je}),n[16](se),se.$on("save",n[17]),se.$on("delete",n[18]),{c(){B(e.$$.fragment),t=O(),i=_("main"),s=_("header"),l=_("nav"),l.innerHTML=`<div class="breadcrumb-item">Settings</div>
<div class="breadcrumb-item">Admins</div>`,r=O(),o=_("div"),a=O(),u=_("button"),u.innerHTML=`<i class="ri-add-line"></i>
<span class="txt">New admin</span>`,f=O(),B(c.$$.fragment),d=O(),h=_("div"),g=_("table"),y=_("thead"),b=_("tr"),v=_("th"),S=O(),B($.$$.fragment),M=O(),B(T.$$.fragment),D=O(),B(P.$$.fragment),R=O(),B(j.$$.fragment),Y=O(),q=_("th"),Z=O(),J=_("tbody");for(let me=0;me<K.length;me+=1)K[me].c();qe&&qe.c(),ce=O(),Ve&&Ve.c(),be=O(),B(se.$$.fragment),p(l,"class","breadcrumbs"),p(o,"class","flex-fill"),p(u,"type","button"),p(u,"class","btn btn-expanded"),p(s,"class","page-header"),p(v,"class","min-width"),p(q,"class","col-type-action min-width"),p(g,"class","table"),ee(g,"table-loading",n[5]),p(h,"class","table-wrapper"),p(i,"class","page-wrapper")},m(me,Ae){V(e,me,Ae),w(me,t,Ae),w(me,i,Ae),m(i,s),m(s,l),m(s,r),m(s,o),m(s,a),m(s,u),m(i,f),V(c,i,null),m(i,d),m(i,h),m(h,g),m(g,y),m(y,b),m(b,v),m(b,S),V($,b,null),m(b,M),V(T,b,null),m(b,D),V(P,b,null),m(b,R),V(j,b,null),m(b,Y),m(b,q),m(g,Z),m(g,J);for(let X=0;X<K.length;X+=1)K[X].m(J,null);qe&&qe.m(J,null),m(i,ce),Ve&&Ve.m(i,null),w(me,be,Ae),V(se,me,Ae),x=!0,Te||(te=Q(u,"click",n[7]),Te=!0)},p(me,[Ae]){const X={};Ae&2&&(X.value=me[1]),c.$set(X);const ue={};Ae&16777216&&(ue.$$scope={dirty:Ae,ctx:me}),!C&&Ae&4&&(C=!0,ue.sort=me[2],je(()=>C=!1)),$.$set(ue);const Ue={};Ae&16777216&&(Ue.$$scope={dirty:Ae,ctx:me}),!E&&Ae&4&&(E=!0,Ue.sort=me[2],je(()=>E=!1)),T.$set(Ue);const bt={};Ae&16777216&&(bt.$$scope={dirty:Ae,ctx:me}),!L&&Ae&4&&(L=!0,bt.sort=me[2],je(()=>L=!1)),P.$set(bt);const it={};Ae&16777216&&(it.$$scope={dirty:Ae,ctx:me}),!G&&Ae&4&&(G=!0,it.sort=me[2],je(()=>G=!1)),j.$set(it),Ae&122&&(re=me[4],Me(),K=rt(K,Ae,ve,1,me,re,ne,J,Ft,$g,null,vg),Oe(),!re.length&&qe?qe.p(me,Ae):re.length?qe&&(qe.d(1),qe=null):(qe=kg(me),qe.c(),qe.m(J,null))),Ae&32&&ee(g,"table-loading",me[5]),me[4].length?Ve?Ve.p(me,Ae):(Ve=Cg(me),Ve.c(),Ve.m(i,null)):Ve&&(Ve.d(1),Ve=null);const yt={};se.$set(yt)},i(me){if(!x){A(e.$$.fragment,me),A(c.$$.fragment,me),A($.$$.fragment,me),A(T.$$.fragment,me),A(P.$$.fragment,me),A(j.$$.fragment,me);for(let Ae=0;Ae<re.length;Ae+=1)A(K[Ae]);A(se.$$.fragment,me),x=!0}},o(me){F(e.$$.fragment,me),F(c.$$.fragment,me),F($.$$.fragment,me),F(T.$$.fragment,me),F(P.$$.fragment,me),F(j.$$.fragment,me);for(let Ae=0;Ae<K.length;Ae+=1)F(K[Ae]);F(se.$$.fragment,me),x=!1},d(me){z(e,me),me&&k(t),me&&k(i),z(c),z($),z(T),z(P),z(j);for(let Ae=0;Ae<K.length;Ae+=1)K[Ae].d();qe&&qe.d(),Ve&&Ve.d(),me&&k(be),n[16](null),z(se,me),Te=!1,te()}}}function dE(n,e,t){var D;let i;hn(n,Bu,P=>t(6,i=P));const s=W.getQueryParams((D=window.location)==null?void 0:D.href);let l,r=[],o=!1,a=s.filter||"",u=s.sort||"-created";W.setDocumentTitle("Admins");function f(){return t(5,o=!0),t(4,r=[]),ke.Admins.getFullList(100,{sort:u||"-created",filter:a}).then(P=>{t(4,r=P),t(5,o=!1)}).catch(P=>{P!==null&&(t(5,o=!1),console.warn(P),c(),ke.errorResponseHandler(P,!1))})}function c(){t(4,r=[])}const d=()=>l==null?void 0:l.show(),h=P=>t(1,a=P.detail);function g(P){u=P,t(2,u)}function y(P){u=P,t(2,u)}function b(P){u=P,t(2,u)}function v(P){u=P,t(2,u)}const S=P=>l==null?void 0:l.show(P),$=(P,L)=>{(L.code==="Enter"||L.code==="Space")&&(L.preventDefault(),l==null||l.show(P))},C=()=>t(1,a="");function M(P){pe[P?"unshift":"push"](()=>{l=P,t(3,l)})}const T=()=>f(),E=()=>f();return n.$$.update=()=>{n.$$.dirty&6&&u!==-1&&a!==-1&&(W.replaceClientQueryParams({filter:a,sort:u}),f())},[f,a,u,l,r,o,i,d,h,g,y,b,v,S,$,C,M,T,E]}class pE extends Pe{constructor(e){super(),Ee(this,e,dE,cE,De,{loadAdmins:0})}get loadAdmins(){return this.$$.ctx[0]}}function hE(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Email"),s=O(),l=_("input"),p(e,"for",i=n[7]),p(l,"type","email"),p(l,"id",r=n[7]),l.required=!0,l.autofocus=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0]),l.focus(),o||(a=Q(l,"input",n[4]),o=!0)},p(u,f){f&128&&i!==(i=u[7])&&p(e,"for",i),f&128&&r!==(r=u[7])&&p(l,"id",r),f&1&&l.value!==u[0]&&$e(l,u[0])},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function mE(n){let e,t,i,s,l,r,o,a,u,f,c;return{c(){e=_("label"),t=H("Password"),s=O(),l=_("input"),o=O(),a=_("div"),u=_("a"),u.textContent="Forgotten password?",p(e,"for",i=n[7]),p(l,"type","password"),p(l,"id",r=n[7]),l.required=!0,p(u,"href","/request-password-reset"),p(u,"class","link-hint"),p(a,"class","help-block")},m(d,h){w(d,e,h),m(e,t),w(d,s,h),w(d,l,h),$e(l,n[1]),w(d,o,h),w(d,a,h),m(a,u),f||(c=[Q(l,"input",n[5]),Xe(On.call(null,u))],f=!0)},p(d,h){h&128&&i!==(i=d[7])&&p(e,"for",i),h&128&&r!==(r=d[7])&&p(l,"id",r),h&2&&l.value!==d[1]&&$e(l,d[1])},d(d){d&&k(e),d&&k(s),d&&k(l),d&&k(o),d&&k(a),f=!1,lt(c)}}}function gE(n){let e,t,i,s,l,r,o,a,u,f,c;return s=new Fe({props:{class:"form-field required",name:"email",$$slots:{default:[hE,({uniqueId:d})=>({7:d}),({uniqueId:d})=>d?128:0]},$$scope:{ctx:n}}}),r=new Fe({props:{class:"form-field required",name:"password",$$slots:{default:[mE,({uniqueId:d})=>({7:d}),({uniqueId:d})=>d?128:0]},$$scope:{ctx:n}}}),{c(){e=_("form"),t=_("div"),t.innerHTML="<h4>Admin sign in</h4>",i=O(),B(s.$$.fragment),l=O(),B(r.$$.fragment),o=O(),a=_("bLine truncated
<i class="ri-arrow-right-line"></i>`,p(t,"class","content txt-center m-b-base"),p(a,"type","submit"),p(a,"class","btn btn-lg btn-block btn-next"),ee(a,"btn-disabled",n[2]),ee(a,"btn-loading",n[2]),p(e,"class","block")},m(d,h){w(d,e,h),m(e,t),m(e,i),V(s,e,null),m(e,l),V(r,e,null),m(e,o),m(e,a),u=!0,f||(c=Q(e,"submit",Wt(n[3])),f=!0)},p(d,h){const g={};h&385&&(g.$$scope={dirty:h,ctx:d}),s.$set(g);const y={};h&386&&(y.$$scope={dirty:h,ctx:d}),r.$set(y),h&4&&ee(a,"btn-disabled",d[2]),h&4&&ee(a,"btn-loading",d[2])},i(d){u||(A(s.$$.fragment,d),A(r.$$.fragment,d),u=!0)},o(d){F(s.$$.fragment,d),F(r.$$.fragment,d),u=!1},d(d){d&&k(e),z(s),z(r),f=!1,c()}}}function _E(n){let e,t;return e=new F0({props:{$$slots:{default:[gE]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,[s]){const l={};s&263&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){F(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function bE(n,e,t){var f;const i=W.getQueryParams((f=window.location)==null?void 0:f.href);let s=i.demoEmail||"",l=i.demoPassword||"",r=!1;function o(){if(!r)return t(2,r=!0),ke.Admins.authViaEmail(s,l).then(()=>{Zs("/")}).catch(()=>{D0("Invalid login credentials.")}).finally(()=>{t(2,r=!1)})}function a(){s=this.value,t(0,s)}function u(){l=this.value,t(1,l)}return[s,l,r,o,a,u]}class yE extends Pe{constructor(e){super(),Ee(this,e,bE,_E,De,{})}}function vE(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g,y,b,v,S;return i=new Fe({props:{class:"form-field required",name:"meta.appName",$$slots:{default:[wE,({uniqueId:$})=>({12:$}),({uniqueId:$})=>$?4096:0]},$$scope:{ctx:n}}}),r=new Fe({props:{class:"form-field required",name:"meta.appUrl",$$slots:{default:[SE,({uniqueId:$})=>({12:$}),({uniqueId:$})=>$?4096:0]},$$scope:{ctx:n}}}),a=new Fe({props:{class:"form-field required",name:"logs.maxDays",$$slots:{default:[$E,({uniqueId:$})=>({12:$}),({uniqueId:$})=>$?4096:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=O(),l=_("div"),B(r.$$.fragment),o=O(),B(a.$$.fragment),u=O(),f=_("div"),c=_("div"),d=O(),h=_("button"),g=_("span"),g.textContent="Save changes",p(t,"class","col-lg-6"),p(l,"class","col-lg-6"),p(c,"class","flex-fill"),p(g,"class","txt"),p(h,"type","submit"),p(h,"class","btn btn-expanded"),h.disabled=y=!n[3]||n[2],ee(h,"btn-loading",n[2]),p(f,"class","col-lg-12 flex"),p(e,"class","grid")},m($,C){w($,e,C),m(e,t),V(i,t,null),m(e,s),m(e,l),V(r,l,null),m(e,o),V(a,e,null),m(e,u),m(e,f),m(f,c),m(f,d),m(f,h),m(h,g),b=!0,v||(S=Q(h,"click",n[9]),v=!0)},p($,C){const M={};C&12289&&(M.$$scope={dirty:C,ctx:$}),i.$set(M);const T={};C&12289&&(T.$$scope={dirty:C,ctx:$}),r.$set(T);const E={};C&12289&&(E.$$scope={dirty:C,ctx:$}),a.$set(E),(!b||C&12&&y!==(y=!$[3]||$[2]))&&(h.disabled=y),C&4&&ee(h,"btn-loading",$[2])},i($){b||(A(i.$$.fragment,$),A(r.$$.fragment,$),A(a.$$.fragment,$),b=!0)},o($){F(i.$$.fragment,$),F(r.$$.fragment,$),F(a.$$.fragment,$),b=!1},d($){$&&k(e),z(i),z(r),z(a),v=!1,S()}}}function kE(n){let e;return{c(){e=_("div"),p(e,"class","loader")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function wE(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Application name"),s=O(),l=_("input"),p(e,"for",i=n[12]),p(l,"type","text"),p(l,"id",r=n[12]),l.required=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].meta.appName),o||(a=Q(l,"input",n[6]),o=!0)},p(u,f){f&4096&&i!==(i=u[12])&&p(e,"for",i),f&4096&&r!==(r=u[12])&&p(l,"id",r),f&1&&l.value!==u[0].meta.appName&&$e(l,u[0].meta.appName)},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function SE(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Application url"),s=O(),l=_("input"),p(e,"for",i=n[12]),p(l,"type","text"),p(l,"id",r=n[12]),l.required=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].meta.appUrl),o||(a=Q(l,"input",n[7]),o=!0)},p(u,f){f&4096&&i!==(i=u[12])&&p(e,"for",i),f&4096&&r!==(r=u[12])&&p(l,"id",r),f&1&&l.value!==u[0].meta.appUrl&&$e(l,u[0].meta.appUrl)},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function $E(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Logs max days retention"),s=O(),l=_("input"),p(e,"for",i=n[12]),p(l,"type","number"),p(l,"id",r=n[12]),l.required=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].logs.maxDays),o||(a=Q(l,"input",n[8]),o=!0)},p(u,f){f&4096&&i!==(i=u[12])&&p(e,"for",i),f&4096&&r!==(r=u[12])&&p(l,"id",r),f&1&&Mt(l.value)!==u[0].logs.maxDays&&$e(l,u[0].logs.maxDays)},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function CE(n){let e,t,i,s,l,r,o,a,u,f,c,d;e=new nl({});const h=[kE,vE],g=[];function y(b,v){return b[1]?0:1}return a=y(n),u=g[a]=h[a](n),{c(){B(e.$$.fragment),t=O(),i=_("main"),s=_("header"),s.innerHTML=`<nav class="breadcrumbs"><div class="breadcrumb-item">Settings</div>
<div class="breadcrumb-item">Application</div></nav>`,l=O(),r=_("div"),o=_("form"),u.c(),p(s,"class","page-header"),p(o,"class","panel"),p(o,"autocomplete","off"),p(r,"class","wrapper"),p(i,"class","page-wrapper")},m(b,v){V(e,b,v),w(b,t,v),w(b,i,v),m(i,s),m(i,l),m(i,r),m(r,o),g[a].m(o,null),f=!0,c||(d=Q(o,"submit",Wt(n[4])),c=!0)},p(b,[v]){let S=a;a=y(b),a===S?g[a].p(b,v):(Me(),F(g[S],1,1,()=>{g[S]=null}),Oe(),u=g[a],u?u.p(b,v):(u=g[a]=h[a](b),u.c()),A(u,1),u.m(o,null))},i(b){f||(A(e.$$.fragment,b),A(u),f=!0)},o(b){F(e.$$.fragment,b),F(u),f=!1},d(b){z(e,b),b&&k(t),b&&k(i),g[a].d(),c=!1,d()}}}function ME(n,e,t){let i,s={},l=!1,r=!1,o="";W.setDocumentTitle("Application settings"),a();async function a(){t(1,l=!0);try{const y=await ke.Settings.getAll()||{};f(y)}catch(y){ke.errorResponseHandler(y)}t(1,l=!1)}async function u(){if(!(r||!i)){t(2,r=!0);try{const y=await ke.Settings.update(W.filterRedactedProps(s));f(y),mn("Successfully saved application settings.")}catch(y){ke.errorResponseHandler(y)}t(2,r=!1)}}function f(y={}){t(0,s={meta:(y==null?void 0:y.meta)||{},logs:(y==null?void 0:y.logs)||{}}),t(5,o=JSON.stringify(s))}function c(){s.meta.appName=this.value,t(0,s)}function d(){s.meta.appUrl=this.value,t(0,s)}function h(){s.logs.maxDays=Mt(this.value),t(0,s)}const g=()=>u();return n.$$.update=()=>{n.$$.dirty&33&&t(3,i=o!=JSON.stringify(s))},[s,l,r,i,u,o,c,d,h,g]}class OE extends Pe{constructor(e){super(),Ee(this,e,ME,CE,De,{})}}function TE(n){let e,t,i,s=[{type:"password"},{autocomplete:"new-password"},n[5]],l={};for(let r=0;r<s.length;r+=1)l=ct(l,s[r]);return{c(){e=_("input"),ci(e,l)},m(r,o){w(r,e,o),e.autofocus&&e.focus(),n[7](e),$e(e,n[0]),t||(i=Q(e,"input",n[8]),t=!0)},p(r,o){ci(e,l=bn(s,[{type:"password"},{autocomplete:"new-password"},o&32&&r[5]])),o&1&&e.value!==r[0]&&$e(e,r[0])},d(r){r&&k(e),n[7](null),t=!1,i()}}}function DE(n){let e,t,i,s,l,r,o=[{readOnly:!0},{type:"text"},{placeholder:n[1]},n[5]],a={};for(let u=0;u<o.length;u+=1)a=ct(a,o[u]);return{c(){e=_("div"),t=_("button"),t.innerHTML='<i class="ri-key-line"></i>',i=O(),s=_("input"),p(t,"type","button"),p(t,"class","btn btn-secondary btn-circle"),p(e,"class","form-field-addon"),ci(s,a)},m(u,f){w(u,e,f),m(e,t),w(u,i,f),w(u,s,f),s.autofocus&&s.focus(),l||(r=[Xe(St.call(null,t,{position:"left",text:"Set new value"})),Q(t,"click",n[6])],l=!0)},p(u,f){ci(s,a=bn(o,[{readOnly:!0},{type:"text"},f&2&&{placeholder:u[1]},f&32&&u[5]]))},d(u){u&&k(e),u&&k(i),u&&k(s),l=!1,lt(r)}}}function AE(n){let e;function t(l,r){return l[3]?DE:TE}let i=t(n),s=i(n);return{c(){s.c(),e=st()},m(l,r){s.m(l,r),w(l,e,r)},p(l,[r]){i===(i=t(l))&&s?s.p(l,r):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},i:oe,o:oe,d(l){s.d(l),l&&k(e)}}}function EE(n,e,t){const i=["value","mask"];let s=Ut(e,i),{value:l=""}=e,{mask:r="******"}=e,o,a=!1;async function u(){t(0,l=""),t(3,a=!1),await Oi(),o==null||o.focus()}const f=()=>u();function c(h){pe[h?"unshift":"push"](()=>{o=h,t(2,o)})}function d(){l=this.value,t(0,l)}return n.$$set=h=>{e=ct(ct({},e),di(h)),t(5,s=Ut(e,i)),"value"in h&&t(0,l=h.value),"mask"in h&&t(1,r=h.mask)},n.$$.update=()=>{n.$$.dirty&3&&l===r&&t(3,a=!0)},[l,r,o,a,u,s,f,c,d]}class _f extends Pe{constructor(e){super(),Ee(this,e,EE,AE,De,{value:0,mask:1})}}function PE(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g,y,b,v,S,$,C,M,T,E,D,P,L,R,j,G;i=new Fe({props:{class:"form-field required",name:"meta.senderName",$$slots:{default:[FE,({uniqueId:q})=>({22:q}),({uniqueId:q})=>q?4194304:0]},$$scope:{ctx:n}}}),r=new Fe({props:{class:"form-field required",name:"meta.senderAddress",$$slots:{default:[IE,({uniqueId:q})=>({22:q}),({uniqueId:q})=>q?4194304:0]},$$scope:{ctx:n}}}),a=new Fe({props:{class:"form-field required",name:"meta.userVerificationUrl",$$slots:{default:[NE,({uniqueId:q})=>({22:q}),({uniqueId:q})=>q?4194304:0]},$$scope:{ctx:n}}}),f=new Fe({props:{class:"form-field required",name:"meta.userResetPasswordUrl",$$slots:{default:[RE,({uniqueId:q})=>({22:q}),({uniqueId:q})=>q?4194304:0]},$$scope:{ctx:n}}}),d=new Fe({props:{class:"form-field required",name:"meta.userConfirmEmailChangeUrl",$$slots:{default:[jE,({uniqueId:q})=>({22:q}),({uniqueId:q})=>q?4194304:0]},$$scope:{ctx:n}}}),S=new Fe({props:{class:"form-field form-field-toggle",$$slots:{default:[HE,({uniqueId:q})=>({22:q}),({uniqueId:q})=>q?4194304:0]},$$scope:{ctx:n}}});let Y=n[0].smtp.enabled&&Mg(n);return{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=O(),l=_("div"),B(r.$$.fragment),o=O(),B(a.$$.fragment),u=O(),B(f.$$.fragment),c=O(),B(d.$$.fragment),h=O(),g=_("hr"),y=O(),b=_("div"),b.innerHTML=`<p>By default PocketBase uses the OS <code>sendmail</code> command for sending emails.
<br/>
<strong class="txt-bold">For better emails deliverability it is recommended to enable the SMTP settings
below.</strong></p>`,v=O(),B(S.$$.fragment),$=O(),Y&&Y.c(),C=O(),M=_("div"),T=_("div"),E=O(),D=_("button"),P=_("span"),P.textContent="Save changes",p(t,"class","col-lg-6"),p(l,"class","col-lg-6"),p(e,"class","grid"),p(b,"class","content m-b-sm"),p(T,"class","flex-fill"),p(P,"class","txt"),p(D,"type","submit"),p(D,"class","btn btn-expanded"),D.disabled=L=!n[3]||n[2],ee(D,"btn-loading",n[2]),p(M,"class","flex")},m(q,Z){w(q,e,Z),m(e,t),V(i,t,null),m(e,s),m(e,l),V(r,l,null),m(e,o),V(a,e,null),m(e,u),V(f,e,null),m(e,c),V(d,e,null),w(q,h,Z),w(q,g,Z),w(q,y,Z),w(q,b,Z),w(q,v,Z),V(S,q,Z),w(q,$,Z),Y&&Y.m(q,Z),w(q,C,Z),w(q,M,Z),m(M,T),m(M,E),m(M,D),m(D,P),R=!0,j||(G=Q(D,"click",n[18]),j=!0)},p(q,Z){const J={};Z&12582913&&(J.$$scope={dirty:Z,ctx:q}),i.$set(J);const K={};Z&12582913&&(K.$$scope={dirty:Z,ctx:q}),r.$set(K);const ne={};Z&12582913&&(ne.$$scope={dirty:Z,ctx:q}),a.$set(ne);const ce={};Z&12582913&&(ce.$$scope={dirty:Z,ctx:q}),f.$set(ce);const be={};Z&12582913&&(be.$$scope={dirty:Z,ctx:q}),d.$set(be);const se={};Z&12582913&&(se.$$scope={dirty:Z,ctx:q}),S.$set(se),q[0].smtp.enabled?Y?(Y.p(q,Z),Z&1&&A(Y,1)):(Y=Mg(q),Y.c(),A(Y,1),Y.m(C.parentNode,C)):Y&&(Me(),F(Y,1,1,()=>{Y=null}),Oe()),(!R||Z&12&&L!==(L=!q[3]||q[2]))&&(D.disabled=L),Z&4&&ee(D,"btn-loading",q[2])},i(q){R||(A(i.$$.fragment,q),A(r.$$.fragment,q),A(a.$$.fragment,q),A(f.$$.fragment,q),A(d.$$.fragment,q),A(S.$$.fragment,q),A(Y),R=!0)},o(q){F(i.$$.fragment,q),F(r.$$.fragment,q),F(a.$$.fragment,q),F(f.$$.fragment,q),F(d.$$.fragment,q),F(S.$$.fragment,q),F(Y),R=!1},d(q){q&&k(e),z(i),z(r),z(a),z(f),z(d),q&&k(h),q&&k(g),q&&k(y),q&&k(b),q&&k(v),z(S,q),q&&k($),Y&&Y.d(q),q&&k(C),q&&k(M),j=!1,G()}}}function LE(n){let e;return{c(){e=_("div"),p(e,"class","loader")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function FE(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Sender name"),s=O(),l=_("input"),p(e,"for",i=n[22]),p(l,"type","text"),p(l,"id",r=n[22]),l.required=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].meta.senderName),o||(a=Q(l,"input",n[7]),o=!0)},p(u,f){f&4194304&&i!==(i=u[22])&&p(e,"for",i),f&4194304&&r!==(r=u[22])&&p(l,"id",r),f&1&&l.value!==u[0].meta.senderName&&$e(l,u[0].meta.senderName)},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function IE(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Sender address"),s=O(),l=_("input"),p(e,"for",i=n[22]),p(l,"type","email"),p(l,"id",r=n[22]),l.required=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].meta.senderAddress),o||(a=Q(l,"input",n[8]),o=!0)},p(u,f){f&4194304&&i!==(i=u[22])&&p(e,"for",i),f&4194304&&r!==(r=u[22])&&p(l,"id",r),f&1&&l.value!==u[0].meta.senderAddress&&$e(l,u[0].meta.senderAddress)},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function NE(n){let e,t,i,s,l,r,o,a,u,f;return{c(){e=_("label"),t=H("User verification page url"),s=O(),l=_("input"),o=O(),a=_("div"),a.innerHTML=`Used in the user verification email. Available placeholder parameters:
<code>%APP_URL%</code>, <code>%TOKEN%</code>.`,p(e,"for",i=n[22]),p(l,"type","text"),p(l,"id",r=n[22]),l.required=!0,p(a,"class","help-block")},m(c,d){w(c,e,d),m(e,t),w(c,s,d),w(c,l,d),$e(l,n[0].meta.userVerificationUrl),w(c,o,d),w(c,a,d),u||(f=Q(l,"input",n[9]),u=!0)},p(c,d){d&4194304&&i!==(i=c[22])&&p(e,"for",i),d&4194304&&r!==(r=c[22])&&p(l,"id",r),d&1&&l.value!==c[0].meta.userVerificationUrl&&$e(l,c[0].meta.userVerificationUrl)},d(c){c&&k(e),c&&k(s),c&&k(l),c&&k(o),c&&k(a),u=!1,f()}}}function RE(n){let e,t,i,s,l,r,o,a,u,f;return{c(){e=_("label"),t=H("User reset password page url"),s=O(),l=_("input"),o=O(),a=_("div"),a.innerHTML=`Used in the user password reset email. Available placeholder parameters:
<code>%APP_URL%</code>, <code>%TOKEN%</code>.`,p(e,"for",i=n[22]),p(l,"type","text"),p(l,"id",r=n[22]),l.required=!0,p(a,"class","help-block")},m(c,d){w(c,e,d),m(e,t),w(c,s,d),w(c,l,d),$e(l,n[0].meta.userResetPasswordUrl),w(c,o,d),w(c,a,d),u||(f=Q(l,"input",n[10]),u=!0)},p(c,d){d&4194304&&i!==(i=c[22])&&p(e,"for",i),d&4194304&&r!==(r=c[22])&&p(l,"id",r),d&1&&l.value!==c[0].meta.userResetPasswordUrl&&$e(l,c[0].meta.userResetPasswordUrl)},d(c){c&&k(e),c&&k(s),c&&k(l),c&&k(o),c&&k(a),u=!1,f()}}}function jE(n){let e,t,i,s,l,r,o,a,u,f;return{c(){e=_("label"),t=H("User confirm email change page url"),s=O(),l=_("input"),o=O(),a=_("div"),a.innerHTML=`Used in the user email change confirmation email. Available placeholder
parameters:
<code>%APP_URL%</code>, <code>%TOKEN%</code>.`,p(e,"for",i=n[22]),p(l,"type","text"),p(l,"id",r=n[22]),l.required=!0,p(a,"class","help-block")},m(c,d){w(c,e,d),m(e,t),w(c,s,d),w(c,l,d),$e(l,n[0].meta.userConfirmEmailChangeUrl),w(c,o,d),w(c,a,d),u||(f=Q(l,"input",n[11]),u=!0)},p(c,d){d&4194304&&i!==(i=c[22])&&p(e,"for",i),d&4194304&&r!==(r=c[22])&&p(l,"id",r),d&1&&l.value!==c[0].meta.userConfirmEmailChangeUrl&&$e(l,c[0].meta.userConfirmEmailChangeUrl)},d(c){c&&k(e),c&&k(s),c&&k(l),c&&k(o),c&&k(a),u=!1,f()}}}function HE(n){let e,t,i,s,l,r,o,a;return{c(){e=_("input"),i=O(),s=_("label"),l=H("Use SMTP mail server"),p(e,"type","checkbox"),p(e,"id",t=n[22]),e.required=!0,p(s,"for",r=n[22])},m(u,f){w(u,e,f),e.checked=n[0].smtp.enabled,w(u,i,f),w(u,s,f),m(s,l),o||(a=Q(e,"change",n[12]),o=!0)},p(u,f){f&4194304&&t!==(t=u[22])&&p(e,"id",t),f&1&&(e.checked=u[0].smtp.enabled),f&4194304&&r!==(r=u[22])&&p(s,"for",r)},d(u){u&&k(e),u&&k(i),u&&k(s),o=!1,a()}}}function Mg(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g,y,b,v,S,$;return i=new Fe({props:{class:"form-field required",name:"smtp.host",$$slots:{default:[qE,({uniqueId:C})=>({22:C}),({uniqueId:C})=>C?4194304:0]},$$scope:{ctx:n}}}),r=new Fe({props:{class:"form-field required",name:"smtp.port",$$slots:{default:[VE,({uniqueId:C})=>({22:C}),({uniqueId:C})=>C?4194304:0]},$$scope:{ctx:n}}}),u=new Fe({props:{class:"form-field required",name:"smtp.tls",$$slots:{default:[zE,({uniqueId:C})=>({22:C}),({uniqueId:C})=>C?4194304:0]},$$scope:{ctx:n}}}),d=new Fe({props:{class:"form-field",name:"smtp.username",$$slots:{default:[BE,({uniqueId:C})=>({22:C}),({uniqueId:C})=>C?4194304:0]},$$scope:{ctx:n}}}),y=new Fe({props:{class:"form-field",name:"smtp.password",$$slots:{default:[UE,({uniqueId:C})=>({22:C}),({uniqueId:C})=>C?4194304:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=O(),l=_("div"),B(r.$$.fragment),o=O(),a=_("div"),B(u.$$.fragment),f=O(),c=_("div"),B(d.$$.fragment),h=O(),g=_("div"),B(y.$$.fragment),b=O(),v=_("div"),p(t,"class","col-lg-6"),p(l,"class","col-lg-3"),p(a,"class","col-lg-3"),p(c,"class","col-lg-6"),p(g,"class","col-lg-6"),p(v,"class","col-lg-12"),p(e,"class","grid")},m(C,M){w(C,e,M),m(e,t),V(i,t,null),m(e,s),m(e,l),V(r,l,null),m(e,o),m(e,a),V(u,a,null),m(e,f),m(e,c),V(d,c,null),m(e,h),m(e,g),V(y,g,null),m(e,b),m(e,v),$=!0},p(C,M){const T={};M&12582913&&(T.$$scope={dirty:M,ctx:C}),i.$set(T);const E={};M&12582913&&(E.$$scope={dirty:M,ctx:C}),r.$set(E);const D={};M&12582913&&(D.$$scope={dirty:M,ctx:C}),u.$set(D);const P={};M&12582913&&(P.$$scope={dirty:M,ctx:C}),d.$set(P);const L={};M&12582913&&(L.$$scope={dirty:M,ctx:C}),y.$set(L)},i(C){$||(A(i.$$.fragment,C),A(r.$$.fragment,C),A(u.$$.fragment,C),A(d.$$.fragment,C),A(y.$$.fragment,C),C&&Ot(()=>{S||(S=ft(e,fn,{duration:150},!0)),S.run(1)}),$=!0)},o(C){F(i.$$.fragment,C),F(r.$$.fragment,C),F(u.$$.fragment,C),F(d.$$.fragment,C),F(y.$$.fragment,C),C&&(S||(S=ft(e,fn,{duration:150},!1)),S.run(0)),$=!1},d(C){C&&k(e),z(i),z(r),z(u),z(d),z(y),C&&S&&S.end()}}}function qE(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("SMTP server host"),s=O(),l=_("input"),p(e,"for",i=n[22]),p(l,"type","text"),p(l,"id",r=n[22]),l.required=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].smtp.host),o||(a=Q(l,"input",n[13]),o=!0)},p(u,f){f&4194304&&i!==(i=u[22])&&p(e,"for",i),f&4194304&&r!==(r=u[22])&&p(l,"id",r),f&1&&l.value!==u[0].smtp.host&&$e(l,u[0].smtp.host)},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function VE(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Port"),s=O(),l=_("input"),p(e,"for",i=n[22]),p(l,"type","number"),p(l,"id",r=n[22]),l.required=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].smtp.port),o||(a=Q(l,"input",n[14]),o=!0)},p(u,f){f&4194304&&i!==(i=u[22])&&p(e,"for",i),f&4194304&&r!==(r=u[22])&&p(l,"id",r),f&1&&Mt(l.value)!==u[0].smtp.port&&$e(l,u[0].smtp.port)},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function zE(n){let e,t,i,s,l,r,o;function a(f){n[15](f)}let u={id:n[22],items:n[4]};return n[0].smtp.tls!==void 0&&(u.keyOfSelected=n[0].smtp.tls),l=new ws({props:u}),pe.push(()=>Ie(l,"keyOfSelected",a)),{c(){e=_("label"),t=H("TLS Encryption"),s=O(),B(l.$$.fragment),p(e,"for",i=n[22])},m(f,c){w(f,e,c),m(e,t),w(f,s,c),V(l,f,c),o=!0},p(f,c){(!o||c&4194304&&i!==(i=f[22]))&&p(e,"for",i);const d={};c&4194304&&(d.id=f[22]),!r&&c&1&&(r=!0,d.keyOfSelected=f[0].smtp.tls,je(()=>r=!1)),l.$set(d)},i(f){o||(A(l.$$.fragment,f),o=!0)},o(f){F(l.$$.fragment,f),o=!1},d(f){f&&k(e),f&&k(s),z(l,f)}}}function BE(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Username"),s=O(),l=_("input"),p(e,"for",i=n[22]),p(l,"type","text"),p(l,"id",r=n[22])},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].smtp.username),o||(a=Q(l,"input",n[16]),o=!0)},p(u,f){f&4194304&&i!==(i=u[22])&&p(e,"for",i),f&4194304&&r!==(r=u[22])&&p(l,"id",r),f&1&&l.value!==u[0].smtp.username&&$e(l,u[0].smtp.username)},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function UE(n){let e,t,i,s,l,r,o;function a(f){n[17](f)}let u={id:Line truncated
<div class="breadcrumb-item">Mail settings</div></nav>`,l=O(),r=_("div"),o=_("form"),a=_("div"),a.innerHTML="<p>Configure common settings for sending emails.</p>",u=O(),c.c(),p(s,"class","page-header"),p(a,"class","content txt-xl m-b-base"),p(o,"class","panel"),p(o,"autocomplete","off"),p(r,"class","wrapper"),p(i,"class","page-wrapper")},m(S,$){V(e,S,$),w(S,t,$),w(S,i,$),m(i,s),m(i,l),m(i,r),m(r,o),m(o,a),m(o,u),b[f].m(o,null),d=!0,h||(g=Q(o,"submit",Wt(n[19])),h=!0)},p(S,[$]){let C=f;f=v(S),f===C?b[f].p(S,$):(Me(),F(b[C],1,1,()=>{b[C]=null}),Oe(),c=b[f],c?c.p(S,$):(c=b[f]=y[f](S),c.c()),A(c,1),c.m(o,null))},i(S){d||(A(e.$$.fragment,S),A(c),d=!0)},o(S){F(e.$$.fragment,S),F(c),d=!1},d(S){z(e,S),S&&k(t),S&&k(i),b[f].d(),h=!1,g()}}}function YE(n,e,t){let i;const s=[{label:"Optional (StartTLS)",value:!1},{label:"Always",value:!0}];let l={},r=!1,o=!1,a="";W.setDocumentTitle("Mail settings"),u();async function u(){t(1,r=!0);try{const P=await ke.Settings.getAll()||{};c(P)}catch(P){ke.errorResponseHandler(P)}t(1,r=!1)}async function f(){if(!(o||!i)){t(2,o=!0);try{const P=await ke.Settings.update(W.filterRedactedProps(l));c(P),mn("Successfully saved mail settings.")}catch(P){ke.errorResponseHandler(P)}t(2,o=!1)}}function c(P={}){t(0,l={meta:(P==null?void 0:P.meta)||{},smtp:(P==null?void 0:P.smtp)||{}}),t(6,a=JSON.stringify(l))}function d(){l.meta.senderName=this.value,t(0,l)}function h(){l.meta.senderAddress=this.value,t(0,l)}function g(){l.meta.userVerificationUrl=this.value,t(0,l)}function y(){l.meta.userResetPasswordUrl=this.value,t(0,l)}function b(){l.meta.userConfirmEmailChangeUrl=this.value,t(0,l)}function v(){l.smtp.enabled=this.checked,t(0,l)}function S(){l.smtp.host=this.value,t(0,l)}function $(){l.smtp.port=Mt(this.value),t(0,l)}function C(P){n.$$.not_equal(l.smtp.tls,P)&&(l.smtp.tls=P,t(0,l))}function M(){l.smtp.username=this.value,t(0,l)}function T(P){n.$$.not_equal(l.smtp.password,P)&&(l.smtp.password=P,t(0,l))}const E=()=>f(),D=()=>f();return n.$$.update=()=>{n.$$.dirty&65&&t(3,i=a!=JSON.stringify(l))},[l,r,o,i,s,f,a,d,h,g,y,b,v,S,$,C,M,T,E,D]}class KE extends Pe{constructor(e){super(),Ee(this,e,YE,WE,De,{})}}function JE(n){let e,t,i,s,l,r,o,a,u,f,c,d;e=new Fe({props:{class:"form-field form-field-toggle",$$slots:{default:[ZE,({uniqueId:g})=>({15:g}),({uniqueId:g})=>g?32768:0]},$$scope:{ctx:n}}});let h=n[0].enabled&&Og(n);return{c(){B(e.$$.fragment),t=O(),h&&h.c(),i=O(),s=_("div"),l=_("div"),r=O(),o=_("button"),a=_("span"),a.textContent="Save changes",p(l,"class","flex-fill"),p(a,"class","txt"),p(o,"type","submit"),p(o,"class","btn btn-expanded"),o.disabled=u=!n[3]||n[2],ee(o,"btn-loading",n[2]),p(s,"class","flex")},m(g,y){V(e,g,y),w(g,t,y),h&&h.m(g,y),w(g,i,y),w(g,s,y),m(s,l),m(s,r),m(s,o),m(o,a),f=!0,c||(d=Q(o,"click",n[12]),c=!0)},p(g,y){const b={};y&98305&&(b.$$scope={dirty:y,ctx:g}),e.$set(b),g[0].enabled?h?(h.p(g,y),y&1&&A(h,1)):(h=Og(g),h.c(),A(h,1),h.m(i.parentNode,i)):h&&(Me(),F(h,1,1,()=>{h=null}),Oe()),(!f||y&12&&u!==(u=!g[3]||g[2]))&&(o.disabled=u),y&4&&ee(o,"btn-loading",g[2])},i(g){f||(A(e.$$.fragment,g),A(h),f=!0)},o(g){F(e.$$.fragment,g),F(h),f=!1},d(g){z(e,g),g&&k(t),h&&h.d(g),g&&k(i),g&&k(s),c=!1,d()}}}function GE(n){let e;return{c(){e=_("div"),p(e,"class","loader")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function ZE(n){let e,t,i,s,l,r,o,a;return{c(){e=_("input"),i=O(),s=_("label"),l=H("Use S3 storage"),p(e,"type","checkbox"),p(e,"id",t=n[15]),e.required=!0,p(s,"for",r=n[15])},m(u,f){w(u,e,f),e.checked=n[0].enabled,w(u,i,f),w(u,s,f),m(s,l),o||(a=Q(e,"change",n[6]),o=!0)},p(u,f){f&32768&&t!==(t=u[15])&&p(e,"id",t),f&1&&(e.checked=u[0].enabled),f&32768&&r!==(r=u[15])&&p(s,"for",r)},d(u){u&&k(e),u&&k(i),u&&k(s),o=!1,a()}}}function Og(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g,y,b,v,S,$;return i=new Fe({props:{class:"form-field required",name:"s3.endpoint",$$slots:{default:[xE,({uniqueId:C})=>({15:C}),({uniqueId:C})=>C?32768:0]},$$scope:{ctx:n}}}),r=new Fe({props:{class:"form-field required",name:"s3.bucket",$$slots:{default:[XE,({uniqueId:C})=>({15:C}),({uniqueId:C})=>C?32768:0]},$$scope:{ctx:n}}}),u=new Fe({props:{class:"form-field required",name:"s3.region",$$slots:{default:[QE,({uniqueId:C})=>({15:C}),({uniqueId:C})=>C?32768:0]},$$scope:{ctx:n}}}),d=new Fe({props:{class:"form-field required",name:"s3.accessKey",$$slots:{default:[eP,({uniqueId:C})=>({15:C}),({uniqueId:C})=>C?32768:0]},$$scope:{ctx:n}}}),y=new Fe({props:{class:"form-field required",name:"s3.secret",$$slots:{default:[tP,({uniqueId:C})=>({15:C}),({uniqueId:C})=>C?32768:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=O(),l=_("div"),B(r.$$.fragment),o=O(),a=_("div"),B(u.$$.fragment),f=O(),c=_("div"),B(d.$$.fragment),h=O(),g=_("div"),B(y.$$.fragment),b=O(),v=_("div"),p(t,"class","col-lg-12"),p(l,"class","col-lg-6"),p(a,"class","col-lg-6"),p(c,"class","col-lg-6"),p(g,"class","col-lg-6"),p(v,"class","col-lg-12"),p(e,"class","grid")},m(C,M){w(C,e,M),m(e,t),V(i,t,null),m(e,s),m(e,l),V(r,l,null),mLine truncated
<div class="breadcrumb-item">Files storage</div></nav>`,l=O(),r=_("div"),o=_("form"),a=_("div"),a.innerHTML=`<p>By default PocketBase uses the local file system to store uploaded files.</p>
<p>If you have limited disk space, you could optionally connect to a S3 compatible storage.</p>`,u=O(),c.c(),p(s,"class","page-header"),p(a,"class","content txt-xl m-b-base"),p(o,"class","panel"),p(o,"autocomplete","off"),p(r,"class","wrapper"),p(i,"class","page-wrapper")},m(S,$){V(e,S,$),w(S,t,$),w(S,i,$),m(i,s),m(i,l),m(i,r),m(r,o),m(o,a),m(o,u),b[f].m(o,null),d=!0,h||(g=Q(o,"submit",Wt(n[4])),h=!0)},p(S,[$]){let C=f;f=v(S),f===C?b[f].p(S,$):(Me(),F(b[C],1,1,()=>{b[C]=null}),Oe(),c=b[f],c?c.p(S,$):(c=b[f]=y[f](S),c.c()),A(c,1),c.m(o,null))},i(S){d||(A(e.$$.fragment,S),A(c),d=!0)},o(S){F(e.$$.fragment,S),F(c),d=!1},d(S){z(e,S),S&&k(t),S&&k(i),b[f].d(),h=!1,g()}}}function iP(n,e,t){let i,s={},l=!1,r=!1,o="";W.setDocumentTitle("Files storage"),a();async function a(){t(1,l=!0);try{const S=await ke.Settings.getAll()||{};f(S)}catch(S){ke.errorResponseHandler(S)}t(1,l=!1)}async function u(){if(!(r||!i)){t(2,r=!0);try{const S=await ke.Settings.update(W.filterRedactedProps({s3:s}));f(S),Ki({}),mn("Successfully saved Files storage settings.")}catch(S){ke.errorResponseHandler(S)}t(2,r=!1)}}function f(S={}){t(0,s=(S==null?void 0:S.s3)||{}),t(5,o=JSON.stringify(s))}function c(){s.enabled=this.checked,t(0,s)}function d(){s.endpoint=this.value,t(0,s)}function h(){s.bucket=this.value,t(0,s)}function g(){s.region=this.value,t(0,s)}function y(){s.accessKey=this.value,t(0,s)}function b(S){n.$$.not_equal(s.secret,S)&&(s.secret=S,t(0,s))}const v=()=>u();return n.$$.update=()=>{n.$$.dirty&33&&t(3,i=o!=JSON.stringify(s))},[s,l,r,i,u,o,c,d,h,g,y,b,v]}class sP extends Pe{constructor(e){super(),Ee(this,e,iP,nP,De,{})}}function lP(n){let e,t,i,s,l,r,o,a;return{c(){e=_("input"),i=O(),s=_("label"),l=H("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[16]),p(s,"for",r=n[16])},m(u,f){w(u,e,f),e.checked=n[0].enabled,w(u,i,f),w(u,s,f),m(s,l),o||(a=Q(e,"change",n[8]),o=!0)},p(u,f){f&65536&&t!==(t=u[16])&&p(e,"id",t),f&1&&(e.checked=u[0].enabled),f&65536&&r!==(r=u[16])&&p(s,"for",r)},d(u){u&&k(e),u&&k(i),u&&k(s),o=!1,a()}}}function Tg(n){let e,t,i,s,l,r,o,a,u,f,c;return i=new Fe({props:{class:"form-field required",name:"emailPassword.minPasswordLength",$$slots:{default:[rP,({uniqueId:d})=>({16:d}),({uniqueId:d})=>d?65536:0]},$$scope:{ctx:n}}}),r=new Fe({props:{class:"form-field "+(W.isEmpty(n[0].onlyDomains)?"":"disabled"),name:"emailPassword.exceptDomains",$$slots:{default:[oP,({uniqueId:d})=>({16:d}),({uniqueId:d})=>d?65536:0]},$$scope:{ctx:n}}}),u=new Fe({props:{class:"form-field "+(W.isEmpty(n[0].exceptDomains)?"":"disabled"),name:"emailPassword.onlyDomains",$$slots:{default:[aP,({uniqueId:d})=>({16:d}),({uniqueId:d})=>d?65536:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=O(),l=_("div"),B(r.$$.fragment),o=O(),a=_("div"),B(u.$$.fragment),p(t,"class","col-sm-12 m-t-sm"),p(l,"class","col-lg-6"),p(a,"class","col-lg-6"),p(e,"class","grid")},m(d,h){w(d,e,h),m(e,t),V(i,t,null),m(e,s),m(e,l),V(r,l,null),m(e,o),m(e,a),V(u,a,null),c=!0},p(d,h){const g={};h&196609&&(g.$$scope={dirty:h,ctx:d}),i.$set(g);const y={};h&1&&(y.class="form-field "+(W.isEmpty(d[0].onlyDomains)?"":"disabled")),h&196609&&(y.$$scope={dirty:h,ctx:d}),r.$set(y);const b={};h&1&&(b.class="form-field "+(W.isEmpty(d[0].exceptDomains)?"":"disabled")),h&196609&&(b.$$scope={dirty:h,ctx:d}),u.$set(b)},i(d){c||(A(i.$$.fragment,d),A(r.$$.fragment,d),A(u.$$.fragment,d),d&&Ot(()=>{f||(f=ft(e,fn,{duration:150},!0)),f.run(1)}),c=!0)},o(d){F(i.$$.fragment,d),F(r.$$.fragment,d),F(u.$$.fragment,d),d&&(f||(f=ft(e,fn,{duration:150},!1)),f.run(0)),c=!1},d(d){d&&k(e),z(i),z(r),z(u),d&&f&&f.end()}}}function rP(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Minimum password length"),s=O(),l=_("input"),p(e,"for",i=n[16]),p(l,"type","number"),p(l,"id",r=n[16]),l.required=!0,p(l,"min","5"),p(l,"max","200")},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].minPasswordLength),o||(a=Q(l,"input",n[9]),o=!0)},p(u,f){f&65536&&i!==(i=u[16])&&p(e,"for",i),f&65536&&r!==(r=u[16])&&p(l,"id",r),f&1&&Mt(l.value)!==u[0].minPasswordLength&&$e(l,u[0].minPasswordLength)},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function oP(n){let e,t,i,s,l,r,o,a,u,f,c,d,h;function g(b){n[10](b)}let y={id:n[16],disabled:!W.isEmpty(n[0].onlyDomains)};return n[0].exceptDomains!==void 0&&(y.value=n[0].exceptDomains),o=new Ss({props:y}),pe.push(()=>Ie(o,"value",g)),{c(){e=_("label"),t=_("span"),t.textContent="Except domains",i=O(),s=_("i"),r=O(),B(o.$$.fragment),u=O(),f=_("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[16]),p(f,"class","help-block")},m(b,v){w(b,e,v),m(e,t),m(e,i),m(e,s),w(b,r,v),V(o,b,v),w(b,u,v),w(b,f,v),c=!0,d||(h=Xe(St.call(null,s,{text:`Email domains that are NOT allowed to sign up.
This field is disabled if "Only domains" is set.`,position:"top"})),d=!0)},p(b,v){(!c||v&65536&&l!==(l=b[16]))&&p(e,"for",l);const S={};v&65536&&(S.id=b[16]),v&1&&(S.disabled=!W.isEmpty(b[0].onlyDomains)),!a&&v&1&&(a=!0,S.value=b[0].exceptDomains,je(()=>a=!1)),o.$set(S)},i(b){c||(A(o.$$.fragment,b),c=!0)},o(b){F(o.$$.fragment,b),c=!1},d(b){b&&k(e),b&&k(r),z(o,b),b&&k(u),b&&k(f),d=!1,h()}}}function aP(n){let e,t,i,s,l,r,o,a,u,f,c,d,h;function g(b){n[11](b)}let y={id:n[16]+".config.onlyDomains",disabled:!W.isEmpty(n[0].exceptDomains)};return n[0].onlyDomains!==void 0&&(y.value=n[0].onlyDomains),o=new Ss({props:y}),pe.push(()=>Ie(o,"value",g)),{c(){e=_("label"),t=_("span"),t.textContent="Only domains",i=O(),s=_("i"),r=O(),B(o.$$.fragment),u=O(),f=_("div"),f.textContent="Use comma as separator.",p(t,"class","txt"),p(s,"class","ri-information-line link-hint"),p(e,"for",l=n[16]+".config.onlyDomains"),p(f,"class","help-block")},m(b,v){w(b,e,v),m(e,t),m(e,i),m(e,s),w(b,r,v),V(o,b,v),w(b,u,v),w(b,f,v),c=!0,d||(h=Xe(St.call(null,s,{text:`Email domains that are ONLY allowed to sign up.
This field is disabled if "Except domains" is set.`,position:"top"})),d=!0)},p(b,v){(!c||v&65536&&l!==(l=b[16]+".config.onlyDomains"))&&p(e,"for",l);const S={};v&65536&&(S.id=b[16]+".config.onlyDomains"),v&1&&(S.disabled=!W.isEmpty(b[0].exceptDomains)),!a&&v&1&&(a=!0,S.value=b[0].onlyDomains,je(()=>a=!1)),o.$set(S)},i(b){c||(A(o.$$.fragment,b),c=!0)},o(b){F(o.$$.fragment,b),c=!1},d(b){b&&k(e),b&&k(r),z(o,b),b&&k(u),b&&k(f),d=!1,h()}}}function uP(n){let e,t,i,s;e=new Fe({props:{class:"form-field form-field-toggle m-b-0",name:"emailPassword.enabled",$$slots:{default:[lP,({uniqueId:r})=>({16:r}),({uniqueId:r})=>r?65536:0]},$$scope:{ctx:n}}});let l=n[0].enabled&&Tg(n);return{c(){B(e.$$.fragment),t=O(),l&&l.c(),i=st()},m(r,o){V(e,r,o),w(r,t,o),l&&l.m(r,o),w(r,i,o),s=!0},p(r,o){const a={};o&196609&&(a.$$scope={dirty:o,ctx:r}),e.$set(a),r[0].enabled?l?(l.p(r,o),o&1&&A(l,1)):(l=Tg(r),l.c(),A(l,1),l.m(i.parentNode,i)):l&&(Me(),F(l,1,1,()=>{l=null}),Oe())},i(r){s||(A(e.$$.fragment,r),A(l),s=!0)},o(r){F(e.$$.fragment,r),F(l),s=!1},d(r){z(e,r),r&&k(t),l&&l.d(r),r&&k(i)}}}function fP(n){let e;return{c(){e=_("span"),e.textContent="Disabled",p(e,"class","label")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function cP(n){let e;return{c(){e=_("span"),e.textContent="Enabled",p(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Dg(n){let e,t,i,s,l,r;return{c(){e=_("i"),p(e,"class","ri-error-warning-fill txt-danger")},m(o,a){w(o,e,a),s=!0,l||(r=Xe(t=St.call(null,e,{text:"Has errors",position:"left"})),l=!0)},i(o){s||(Ot(()=>{i||(i=ft(e,Wn,{duration:150,start:.7},!0)),i.run(1)}),s=!0)},o(o){i||(i=ft(e,Wn,{duration:150,start:.7},!1)),i.run(0),s=!1},d(o){o&&k(e),o&&i&&i.end(),l=!1,r()}}}function dP(n){let e,t,i,s,l,r,o;function a(d,h){return d[0].enabled?cP:fP}let u=a(n),f=u(n),c=n[2]&&Dg();return{c(){e=_("div"),e.innerHTML=`<i class="ri-mail-lock-line"></i>
<span class="txt">Email/Password</span>`,t=O(),f.c(),i=O(),s=_("div"),l=O(),c&&c.c(),r=st(),p(e,"class","inline-flex"),p(s,"class","flex-fill")},m(d,h){w(d,e,h),w(d,t,h),f.m(d,h),w(d,i,h),w(d,s,h),w(d,l,h),c&&c.m(d,h),w(d,r,h),o=!0},p(d,h){u!==(u=a(d))&&(f.d(1),f=u(d),f&&(f.c(),f.m(i.parentNode,i))),d[2]?c?h&4&&A(c,1):(c=Dg(),c.c(),A(c,1),c.m(r.parentNode,r)):c&&(Me(),F(c,1,1,()=>{c=null}),Oe())},i(d){o||(A(c),o=!0)},o(d){F(c),o=!1},d(d){d&&k(e),d&&k(t),f.d(d),d&&k(i),d&&k(s),d&&k(l),c&&c.d(d),d&&k(r)}}}function pP(n){let e,t;const i=[n[3]];let s={$$slots:{header:[dP],default:[uP]},$$scope:{ctx:n}};for(let l=0;l<i.length;l+=1)s=ct(s,i[l]);return e=new hf({props:s}),n[12](e),e.$on("expand",n[13]),e.$on("collapse",n[14]),e.$on("toggle",n[15]),{c(){B(e.$$.fragment)},m(l,r){V(e,l,r),t=!0},p(l,[r]){const o=r&8?bn(i,[hi(l[3])]):{};r&131077&&(o.$$scope={dirty:r,ctx:l}),e.$set(o)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){F(e.$$.fragment,l),t=!1},d(l){n[12](null),z(e,l)}}}function hP(n,e,t){let i;const s=["config","expand","collapse","collapseSiblings"];let l=Ut(e,s),r;hn(n,ys,C=>t(7,r=C));let{config:o={}}=e,a;function u(){a==null||a.expand()}function f(){a==null||a.collapse()}function c(){a==null||a.collapseSiblings()}function d(){o.enabled=this.checked,t(0,o)}function h(){o.minPasswordLength=Mt(this.value),t(0,o)}function g(C){n.$$.not_equal(o.exceptDomains,C)&&(o.exceptDomains=C,t(0,o))}function y(C){n.$$.not_equal(o.onlyDomains,C)&&(o.onlyDomains=C,t(0,o))}function b(C){pe[C?"unshift":"push"](()=>{a=C,t(1,a)})}function v(C){ut.call(this,n,C)}function S(C){ut.call(this,n,C)}function $(C){ut.call(this,n,C)}return n.$$set=C=>{e=ct(ct({},e),di(C)),t(3,l=Ut(e,s)),"config"in C&&t(0,o=C.config)},n.$$.update=()=>{n.$$.dirty&128&&t(2,i=!W.isEmpty(r==null?void 0:r.emailPassword))},[o,a,i,l,u,f,c,r,d,h,g,y,b,v,S,$]}class mP extends Pe{constructor(e){super(),Ee(this,e,hP,pP,De,{config:0,expand:4,collapse:5,collapseSiblings:6})}get expand(){return this.$$.ctx[4]}get collapse(){return this.$$.ctx[5]}get collapseSiblings(){return this.$$.ctx[6]}}function gP(n){let e,t,i,s,l,r,o,a;return{c(){e=_("input"),i=O(),s=_("label"),l=H("Enable"),p(e,"type","checkbox"),p(e,"id",t=n[22]),p(s,"for",r=n[22])},m(u,f){w(u,e,f),e.checked=n[0].enabled,w(u,i,f),w(u,s,f),m(s,l),o||(a=Q(e,"change",n[11]),o=!0)},p(u,f){f&4194304&&t!==(t=u[22])&&p(e,"id",t),f&1&&(e.checked=u[0].enabled),f&4194304&&r!==(r=u[22])&&p(s,"for",r)},d(u){u&&k(e),u&&k(i),u&&k(s),o=!1,a()}}}function Ag(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g;l=new Fe({props:{class:"form-field required",name:n[1]+".clientId",$$slots:{default:[_P,({uniqueId:b})=>({22:b}),({uniqueId:b})=>b?4194304:0]},$$scope:{ctx:n}}}),a=new Fe({props:{class:"form-field required",name:n[1]+".clientSecret",$$slots:{default:[bP,({uniqueId:b})=>({22:b}),({uniqueId:b})=>b?4194304:0]},$$scope:{ctx:n}}}),c=new Fe({props:{class:"form-field",name:n[1]+".allowRegistrations",$$slots:{default:[yP,({uniqueId:b})=>({22:b}),({uniqueId:b})=>b?4194304:0]},$$scope:{ctx:n}}});let y=n[4]&&Eg(n);return{c(){e=_("div"),t=_("div"),i=O(),s=_("div"),B(l.$$.fragment),r=O(),o=_("div"),B(a.$$.fragment),u=O(),f=_("div"),B(c.$$.fragment),d=O(),y&&y.c(),p(t,"class","col-12 spacing"),p(s,"class","col-lg-6"),p(o,"class","col-lg-6"),p(f,"class","col-lg-12"),p(e,"class","grid")},m(b,v){w(b,e,v),m(e,t),m(e,i),m(e,s),V(l,s,null),m(e,r),m(e,o),V(a,o,null),m(e,u),m(e,f),V(c,f,null),m(e,d),y&&y.m(e,null),g=!0},p(b,v){const S={};v&2&&(S.name=b[1]+".clientId"),v&12582913&&(S.$$scope={dirty:v,ctx:b}),l.$set(S);const $={};v&2&&($.name=b[1]+".clientSecret"),v&12582913&&($.$$scope={dirty:v,ctx:b}),a.$set($);const C={};v&2&&(C.name=b[1]+".allowRegistrations"),v&12582913&&(C.$$scope={dirty:v,ctx:b}),c.$set(C),b[4]?y?(y.p(b,v),v&16&&A(y,1)):(y=Eg(b),y.c(),A(y,1),y.m(e,null)):y&&(Me(),F(y,1,1,()=>{y=null}),Oe())},i(b){g||(A(l.$$.fragment,b),A(a.$$.fragment,b),A(c.$$.fragment,b),A(y),b&&Ot(()=>{h||(h=ft(e,fn,{duration:200},!0)),h.run(1)}),g=!0)},o(b){F(l.$$.fragment,b),F(a.$$.fragment,b),F(c.$$.fragment,b),F(y),b&&(h||(h=ft(e,fn,{duration:200},!1)),h.run(0)),g=!1},d(b){b&&k(e),z(l),z(a),z(c),y&&y.d(),b&&h&&h.end()}}}function _P(n){let e,t,i,s,l,r,o,a;return{c(){e=_("label"),t=H("Client ID"),s=O(),l=_("input"),p(e,"for",i=n[22]),p(l,"type","text"),p(l,"id",r=n[22]),l.required=!0},m(u,f){w(u,e,f),m(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].clientId),o||(a=Q(l,"input",n[12]),o=!0)},p(u,f){f&4194304&&i!==(i=u[22])&&p(e,"for",i),f&4194304&&r!==(r=u[22])&&p(l,"id",r),f&1&&l.value!==u[0].clientId&&$e(l,u[0].clientId)},d(u){u&&k(e),u&&k(s),u&&k(l),o=!1,a()}}}function bP(n){let e,t,i,s,l,r,o;function a(f){n[13](f)}let u={id:n[22],required:!0};return n[0].clientSecret!==void 0&&(u.value=n[0].clientSecret),l=new _f({props:u}),pe.push(()=>Ie(l,"value",a)),{c(){e=_("label"),t=H("Client Secret"),s=O(),B(l.$$.fragment),p(e,"for",i=n[22])},m(f,c){w(f,e,c),m(e,t),w(f,s,c),V(l,f,c),o=!0},p(f,c){(!o||c&4194304&&i!==(i=f[22]))&&p(e,"for",i);const d={};c&4194304&&(d.id=f[22]),!r&&c&Line truncated
<div class="breadcrumb-item">Auth providers</div></nav>`,l=O(),r=_("div"),o=_("form"),a=_("h6"),a.textContent="Manage the allowed users sign-in/sign-up methods.",u=O(),c.c(),p(s,"class","page-header"),p(a,"class","m-b-base"),p(o,"class","panel"),p(o,"autocomplete","off"),p(r,"class","wrapper"),p(i,"class","page-wrapper")},m(S,$){V(e,S,$),w(S,t,$),w(S,i,$),m(i,s),m(i,l),m(i,r),m(r,o),m(o,a),m(o,u),b[f].m(o,null),d=!0,h||(g=Q(o,"submit",Wt(n[5])),h=!0)},p(S,[$]){let C=f;f=v(S),f===C?b[f].p(S,$):(Me(),F(b[C],1,1,()=>{b[C]=null}),Oe(),c=b[f],c?c.p(S,$):(c=b[f]=y[f](S),c.c()),A(c,1),c.m(o,null))},i(S){d||(A(e.$$.fragment,S),A(c),d=!0)},o(S){F(e.$$.fragment,S),F(c),d=!1},d(S){z(e,S),S&&k(t),S&&k(i),b[f].d(),h=!1,g()}}}function PP(n,e,t){let i,s,l={},r=!1,o=!1,a="";W.setDocumentTitle("Auth providers"),u();async function u(){t(2,r=!0);try{const $=await ke.Settings.getAll()||{};c($)}catch($){ke.errorResponseHandler($)}t(2,r=!1)}async function f(){if(!(o||!i)){t(3,o=!0);try{const $=await ke.Settings.update(W.filterRedactedProps(l));c($),Ki({}),s==null||s.collapseSiblings(),mn("Successfully updated auth providers.")}catch($){ke.errorResponseHandler($)}t(3,o=!1)}}function c($){$=$||{},t(0,l={}),t(0,l.emailAuth=Object.assign({enabled:!0},$.emailAuth),l);const C=["googleAuth","facebookAuth","githubAuth","gitlabAuth"];for(const M of C)t(0,l[M]=Object.assign({enabled:!1,allowRegistrations:!0},$[M]),l);t(6,a=JSON.stringify(l))}function d($){pe[$?"unshift":"push"](()=>{s=$,t(1,s)})}function h($){n.$$.not_equal(l.emailAuth,$)&&(l.emailAuth=$,t(0,l))}function g($){n.$$.not_equal(l.googleAuth,$)&&(l.googleAuth=$,t(0,l))}function y($){n.$$.not_equal(l.facebookAuth,$)&&(l.facebookAuth=$,t(0,l))}function b($){n.$$.not_equal(l.githubAuth,$)&&(l.githubAuth=$,t(0,l))}function v($){n.$$.not_equal(l.gitlabAuth,$)&&(l.gitlabAuth=$,t(0,l))}const S=()=>f();return n.$$.update=()=>{n.$$.dirty&65&&t(4,i=a!=JSON.stringify(l))},[l,s,r,o,i,f,a,d,h,g,y,b,v,S]}class LP extends Pe{constructor(e){super(),Ee(this,e,PP,EP,De,{})}}function Fg(n,e,t){const i=n.slice();return i[12]=e[t],i[13]=e,i[14]=t,i}function FP(n){let e=[],t=new Map,i,s,l,r,o,a,u,f,c,d,h=n[4];const g=y=>y[12].key;for(let y=0;y<h.length;y+=1){let b=Fg(n,h,y),v=g(b);t.set(v,e[y]=Ig(v,b))}return{c(){for(let y=0;y<e.length;y+=1)e[y].c();i=O(),s=_("div"),l=_("div"),r=O(),o=_("button"),a=_("span"),a.textContent="Save changes",p(l,"class","flex-fill"),p(a,"class","txt"),p(o,"type","submit"),p(o,"class","btn btn-expanded"),o.disabled=u=!n[3]||n[2],ee(o,"btn-loading",n[2]),p(s,"class","flex")},m(y,b){for(let v=0;v<e.length;v+=1)e[v].m(y,b);w(y,i,b),w(y,s,b),m(s,l),m(s,r),m(s,o),m(o,a),f=!0,c||(d=Q(o,"click",n[9]),c=!0)},p(y,b){b&32785&&(h=y[4],Me(),e=rt(e,b,g,1,y,h,t,i.parentNode,Ft,Ig,i,Fg),Oe()),(!f||b&12&&u!==(u=!y[3]||y[2]))&&(o.disabled=u),b&4&&ee(o,"btn-loading",y[2])},i(y){if(!f){for(let b=0;b<h.length;b+=1)A(e[b]);f=!0}},o(y){for(let b=0;b<e.length;b+=1)F(e[b]);f=!1},d(y){for(let b=0;b<e.length;b+=1)e[b].d(y);y&&k(i),y&&k(s),c=!1,d()}}}function IP(n){let e;return{c(){e=_("div"),p(e,"class","loader")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function NP(n){let e,t=n[12].label+"",i,s,l,r,o,a,u,f,c,d,h;function g(){n[7].call(o,n[12])}function y(){return n[8](n[12])}return{c(){e=_("label"),i=H(t),s=H(" duration (in seconds)"),r=O(),o=_("input"),u=O(),f=_("div"),c=_("span"),c.textContent="Invalidate all previously issued tokens",p(e,"for",l=n[15]),p(o,"type","number"),p(o,"id",a=n[15]),o.required=!0,p(c,"class","link-primary"),ee(c,"txt-success",n[0][n[12].key].secret),p(f,"class","help-block")},m(b,v){w(b,e,v),m(e,i),m(e,s),w(b,r,v),w(b,o,v),$e(o,n[0][n[12].key].duration),w(b,u,v),w(b,f,v),m(f,c),d||(h=[Q(o,"input",g),Q(c,"click",y)],d=!0)},p(b,v){n=b,v&32768&&l!==(l=n[15])&&p(e,"for",l),v&32768&&a!==(a=n[15])&&p(o,"id",a),v&17&&Mt(o.value)!==n[0][n[12].key].duration&&$e(o,n[0][n[12].key].duration),v&17&&ee(c,"txt-success",n[0][n[12].key].secret)},d(b){b&&k(e),b&&k(r),b&&k(o),b&&k(u),b&&k(f),d=!1,lt(h)}}}function Ig(n,e){let t,i,s;return i=new Fe({props:{class:"form-field required",name:e[12].key+".duration",$$slots:{default:[NP,({uniqueId:l})=>({15:l}),({uniqueId:l})=>l?32768:0]},$$scope:{ctx:e}}}),{key:n,first:null,c(){t=st(),B(i.$$.fragment),this.first=t},m(l,r){w(l,t,r),V(i,l,r),s=!0},p(l,r){e=l;const o={};r&98305&&(o.$$scope={dirty:r,ctx:e}),i.$set(o)},i(l){s||(A(i.$$.fragment,l),s=!0)},o(l){F(i.$$.fragment,l),s=!1},d(l){l&&k(t),z(i,l)}}}function RP(n){let e,t,i,s,l,r,o,a,u,f,c,d,h,g;e=new nl({});const y=[IP,FP],b=[];function v(S,$){return S[1]?0:1}return f=v(n),c=b[f]=y[f](n),{c(){B(e.$$.fragment),t=O(),i=_("main"),s=_("header"),s.innerHTML=`<nav class="breadcrumbs"><div class="breadcrumb-item">Settings</div>
<div class="breadcrumb-item">Token options</div></nav>`,l=O(),r=_("div"),o=_("form"),a=_("div"),a.innerHTML="<p>Adjust common token options.</p>",u=O(),c.c(),p(s,"class","page-header"),p(a,"class","content m-b-sm txt-xl"),p(o,"class","panel"),p(o,"autocomplete","off"),p(r,"class","wrapper"),p(i,"class","page-wrapper")},m(S,$){V(e,S,$),w(S,t,$),w(S,i,$),m(i,s),m(i,l),m(i,r),m(r,o),m(o,a),m(o,u),b[f].m(o,null),d=!0,h||(g=Q(o,"submit",Wt(n[5])),h=!0)},p(S,[$]){let C=f;f=v(S),f===C?b[f].p(S,$):(Me(),F(b[C],1,1,()=>{b[C]=null}),Oe(),c=b[f],c?c.p(S,$):(c=b[f]=y[f](S),c.c()),A(c,1),c.m(o,null))},i(S){d||(A(e.$$.fragment,S),A(c),d=!0)},o(S){F(e.$$.fragment,S),F(c),d=!1},d(S){z(e,S),S&&k(t),S&&k(i),b[f].d(),h=!1,g()}}}function jP(n,e,t){let i;const s=[{key:"userAuthToken",label:"Users auth token"},{key:"userVerificationToken",label:"Users email verification token"},{key:"userPasswordResetToken",label:"Users password reset token"},{key:"userEmailChangeToken",label:"Users email change token"},{key:"adminAuthToken",label:"Admins auth token"},{key:"adminPasswordResetToken",label:"Admins password reset token"}];let l={},r=!1,o=!1,a="";W.setDocumentTitle("Token options"),u();async function u(){t(1,r=!0);try{const y=await ke.Settings.getAll()||{};c(y)}catch(y){ke.errorResponseHandler(y)}t(1,r=!1)}async function f(){if(!(o||!i)){t(2,o=!0);try{const y=await ke.Settings.update(W.filterRedactedProps(l));c(y),mn("Successfully saved tokens options.")}catch(y){ke.errorResponseHandler(y)}t(2,o=!1)}}function c(y){var b;y=y||{},t(0,l={});for(const v of s)t(0,l[v.key]={duration:((b=y[v.key])==null?void 0:b.duration)||0},l);t(6,a=JSON.stringify(l))}function d(y){l[y.key].duration=Mt(this.value),t(0,l)}const h=y=>{l[y.key].secret?(delete l[y.key].secret,t(0,l)):t(0,l[y.key].secret=W.randomString(50),l)},g=()=>f();return n.$$.update=()=>{n.$$.dirty&65&&t(3,i=a!=JSON.stringify(l))},[l,r,o,i,s,f,a,d,h,g]}class HP extends Pe{constructor(e){super(),Ee(this,e,jP,RP,De,{})}}const dn=[async n=>{const e=new URLSearchParams(window.location.search);return n.location!=="/"&&e.has("installer")?Zs("/"):!0}],qP={"/login":sn({component:yE,conditions:dn.concat([n=>!ke.AuthStore.isValid]),userData:{showAppSidebar:!1}}),"/request-password-reset":sn({asyncComponent:()=>as(()=>import("./PageAdminRequestPasswordReset.aecae2cf.js"),[]),conditions:dn.concat([n=>!ke.AuthStore.isValid]),userData:{showAppSidebar:!1}}),"/confirm-password-reset/:token":sn({asyncComponent:()=>as(()=>import("./PageAdminConfirmPasswordReset.f104bea1.js"),[]),conditions:dn.concat([n=>!ke.AuthStore.isValid]),userData:{showAppSidebar:!1}}),"/collections":sn({component:kA,conditions:dn.concat([n=>ke.AuthStore.isValid]),userData:{showAppSidebar:!0}}),"/logs":sn({component:P3,conditions:dn.concat([n=>ke.AuthStore.isValid]),userData:{showAppSidebar:!0}}),"/users":sn({component:WA,conditions:dn.concat([n=>ke.AuthStore.isValid]),userData:{showAppSidebar:!0}}),"/users/confirm-password-reset/:token":sn({asyncComponent:()=>as(()=>import("./PageUserConfirmPasswordReset.90fa6cdc.js"),[]),conditions:dn.concat([()=>(ke.logout(!1),!0)]),userData:{showAppSidebar:!1}}),"/users/confirm-verification/:token":sn({asyncComponent:()=>as(()=>import("./PageUserConfirmVerification.9c23f768.js"),[]),conditions:dn.concat([()=>(ke.logout(!1),!0)]),userData:{showAppSidebar:!1}}),"/users/confirm-email-change/:token":sn({asyncComponent:()=>as(()=>import("./PageUserConfirmEmailChange.d9c73d4b.js"),[]),conditions:dn.concat([()=>(ke.logout(!1),!0)]),userData:{showAppSidebar:!1}}),"/settings":sn({component:OE,conditions:dn.concat([n=>ke.AuthStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/admins":sn({component:pE,conditions:dn.concat([n=>ke.AuthStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/mail":sn({component:KE,conditions:dn.concat([n=>ke.AuthStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/storage":sn({component:sP,conditions:dn.concat([n=>ke.AuthStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/auth-providers":sn({component:LP,conditions:dn.concat([n=>ke.AuthStore.isValid]),userData:{showAppSidebar:!0}}),"/settings/tokens":sn({component:HP,conditions:dn.concat([n=>ke.AuthStore.isValid]),userData:{showAppSidebar:!0}}),"*":sn({component:a2,userData:{showAppSidebar:!1}})};function VP(n,{from:e,to:t},i={}){const s=getComputedStyle(n),l=s.transform==="none"?"":s.transform,[r,o]=s.transformOrigin.split(" ").map(parseFloat),a=e.left+e.width*r/t.width-(t.left+r),u=e.top+e.height*o/t.height-(t.top+o),{delay:f=0,duration:c=h=>Math.sqrt(h)*120,easing:d=Eo}=i;return{delay:f,duration:Jn(c)?c(Math.sqrt(a*a+u*u)):c,easing:d,css:(h,g)=>{const y=g*a,b=g*u,v=h+g*e.width/t.width,S=h+g*e.height/t.height;return`transform: ${l} translate(${y}px, ${b}px) scale(${v}, ${S});`}}}function Ng(n,e,t){const i=n.slice();return i[2]=e[t],i}function zP(n){let e;return{c(){e=_("i"),p(e,"class","ri-alert-line")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function BP(n){let e;return{c(){e=_("i"),p(e,"class","ri-chLine truncated
<span class="txt">Manage admins</span>`,t=O(),i=_("hr"),s=O(),l=_("div"),l.innerHTML=`<i class="ri-logout-circle-line"></i>
<span class="txt">Logout</span>`,p(e,"href","/settings/admins"),p(e,"class","dropdown-item closable"),p(l,"tabindex","0"),p(l,"class","dropdown-item closable")},m(a,u){w(a,e,u),w(a,t,u),w(a,i,u),w(a,s,u),w(a,l,u),r||(o=[Xe(On.call(null,e)),Q(l,"click",n[4])],r=!0)},p:oe,d(a){a&&k(e),a&&k(t),a&&k(i),a&&k(s),a&&k(l),r=!1,lt(o)}}}function eL(n){var c;let e,t,i,s,l,r,o,a,u,f=((c=n[1])==null?void 0:c.id)&&n[0]&&jg(n);return s=new o1({props:{routes:qP}}),s.$on("routeLoading",n[2]),s.$on("conditionsFailed",n[3]),r=new KP({}),a=new XP({}),{c(){e=_("div"),f&&f.c(),t=O(),i=_("div"),B(s.$$.fragment),l=O(),B(r.$$.fragment),o=O(),B(a.$$.fragment),p(i,"class","app-body"),p(e,"class","app-layout")},m(d,h){w(d,e,h),f&&f.m(e,null),m(e,t),m(e,i),V(s,i,null),w(d,l,h),V(r,d,h),w(d,o,h),V(a,d,h),u=!0},p(d,[h]){var g;((g=d[1])==null?void 0:g.id)&&d[0]?f?(f.p(d,h),h&3&&A(f,1)):(f=jg(d),f.c(),A(f,1),f.m(e,t)):f&&(Me(),F(f,1,1,()=>{f=null}),Oe())},i(d){u||(A(f),A(s.$$.fragment,d),A(r.$$.fragment,d),A(a.$$.fragment,d),u=!0)},o(d){F(f),F(s.$$.fragment,d),F(r.$$.fragment,d),F(a.$$.fragment,d),u=!1},d(d){d&&k(e),f&&f.d(),z(s),d&&k(l),z(r,d),d&&k(o),z(a,d)}}}function tL(n,e,t){let i;hn(n,Bu,u=>t(1,i=u));let s,l=!1;function r(u){var f,c,d,h;((f=u==null?void 0:u.detail)==null?void 0:f.location)!==s&&(t(0,l=!!((d=(c=u==null?void 0:u.detail)==null?void 0:c.userData)!=null&&d.showAppSidebar)),s=(h=u==null?void 0:u.detail)==null?void 0:h.location,W.setDocumentTitle(""),Ki({}),Lb())}function o(){Zs("/")}function a(){ke.logout()}return[l,i,r,o,a]}class nL extends Pe{constructor(e){super(),Ee(this,e,tL,eL,De,{})}}new nL({target:document.getElementById("app")});export{lt as A,mn as B,W as C,Zs as D,st as E,F0 as F,hn as G,Gs as H,_n as I,pi as J,pe as K,Fn as P,Pe as S,F as a,O as b,B as c,z as d,_ as e,p as f,w as g,m as h,Ee as i,Xe as j,Me as k,On as l,V as m,Oe as n,k as o,ke as p,Fe as q,ee as r,De as s,A as t,Q as u,Wt as v,H as w,ge as x,oe as y,$e as z};
+382
View File
@@ -0,0 +1,382 @@
const __=function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const l of s)if(l.type==="childList")for(const o of l.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(s){const l={};return s.integrity&&(l.integrity=s.integrity),s.referrerpolicy&&(l.referrerPolicy=s.referrerpolicy),s.crossorigin==="use-credentials"?l.credentials="include":s.crossorigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function i(s){if(s.ep)return;s.ep=!0;const l=t(s);fetch(s.href,l)}};__();function oe(){}const bl=n=>n;function _t(n,e){for(const t in e)n[t]=e[t];return n}function jp(n){return n()}function Ya(){return Object.create(null)}function st(n){n.forEach(jp)}function Zn(n){return typeof n=="function"}function Pe(n,e){return n!=n?e==e:n!==e||n&&typeof n=="object"||typeof n=="function"}let Ll;function ti(n,e){return Ll||(Ll=document.createElement("a")),Ll.href=e,n===Ll.href}function b_(n){return Object.keys(n).length===0}function qp(n,...e){if(n==null)return oe;const t=n.subscribe(...e);return t.unsubscribe?()=>t.unsubscribe():t}function qt(n,e,t){n.$$.on_destroy.push(qp(e,t))}function On(n,e,t,i){if(n){const s=Vp(n,e,t,i);return n[0](s)}}function Vp(n,e,t,i){return n[1]&&i?_t(t.ctx.slice(),n[1](i(e))):t.ctx}function En(n,e,t,i){if(n[2]&&i){const s=n[2](i(t));if(e.dirty===void 0)return s;if(typeof s=="object"){const l=[],o=Math.max(e.dirty.length,s.length);for(let r=0;r<o;r+=1)l[r]=e.dirty[r]|s[r];return l}return e.dirty|s}return e.dirty}function An(n,e,t,i,s,l){if(s){const o=Vp(e,t,i,l);n.p(o,s)}}function Pn(n){if(n.ctx.length>32){const e=[],t=n.ctx.length/32;for(let i=0;i<t;i++)e[i]=-1;return e}return-1}function ci(n){const e={};for(const t in n)t[0]!=="$"&&(e[t]=n[t]);return e}function tn(n,e){const t={};e=new Set(e);for(const i in n)!e.has(i)&&i[0]!=="$"&&(t[i]=n[i]);return t}function Ka(n){return n==null?"":n}function wn(n,e,t){return n.set(t),e}function et(n){return n&&Zn(n.destroy)?n.destroy:oe}const zp=typeof window<"u";let Po=zp?()=>window.performance.now():()=>Date.now(),sa=zp?n=>requestAnimationFrame(n):oe;const _s=new Set;function Bp(n){_s.forEach(e=>{e.c(n)||(_s.delete(e),e.f())}),_s.size!==0&&sa(Bp)}function Lo(n){let e;return _s.size===0&&sa(Bp),{promise:new Promise(t=>{_s.add(e={c:n,f:t})}),abort(){_s.delete(e)}}}function p(n,e){n.appendChild(e)}function Up(n){if(!n)return document;const e=n.getRootNode?n.getRootNode():n.ownerDocument;return e&&e.host?e:n.ownerDocument}function v_(n){const e=_("style");return y_(Up(n),e),e.sheet}function y_(n,e){p(n.head||n,e)}function w(n,e,t){n.insertBefore(e,t||null)}function k(n){n.parentNode.removeChild(n)}function Bn(n,e){for(let t=0;t<n.length;t+=1)n[t]&&n[t].d(e)}function _(n){return document.createElement(n)}function R(n){return document.createTextNode(n)}function T(){return R(" ")}function lt(){return R("")}function X(n,e,t,i){return n.addEventListener(e,t,i),()=>n.removeEventListener(e,t,i)}function Qt(n){return function(e){return e.preventDefault(),n.call(this,e)}}function ni(n){return function(e){return e.stopPropagation(),n.call(this,e)}}function Wp(n){return function(e){e.target===this&&n.call(this,e)}}function h(n,e,t){t==null?n.removeAttribute(e):n.getAttribute(e)!==t&&n.setAttribute(e,t)}function fi(n,e){const t=Object.getOwnPropertyDescriptors(n.__proto__);for(const i in e)e[i]==null?n.removeAttribute(i):i==="style"?n.style.cssText=e[i]:i==="__value"?n.value=n[i]=e[i]:t[i]&&t[i].set?n[i]=e[i]:h(n,i,e[i])}function It(n){return n===""?null:+n}function k_(n){return Array.from(n.childNodes)}function me(n,e){e=""+e,n.wholeText!==e&&(n.data=e)}function $e(n,e){n.value=e==null?"":e}function Za(n,e,t,i){t===null?n.style.removeProperty(e):n.style.setProperty(e,t,i?"important":"")}function ee(n,e,t){n.classList[t?"add":"remove"](e)}function Yp(n,e,{bubbles:t=!1,cancelable:i=!1}={}){const s=document.createEvent("CustomEvent");return s.initCustomEvent(n,t,i,e),s}const ao=new Map;let uo=0;function w_(n){let e=5381,t=n.length;for(;t--;)e=(e<<5)-e^n.charCodeAt(t);return e>>>0}function S_(n,e){const t={stylesheet:v_(e),rules:{}};return ao.set(n,t),t}function rl(n,e,t,i,s,l,o,r=0){const a=16.666/i;let u=`{
`;for(let b=0;b<=1;b+=a){const y=e+(t-e)*l(b);u+=b*100+`%{${o(y,1-y)}}
`}const f=u+`100% {${o(t,1-t)}}
}`,c=`__svelte_${w_(f)}_${r}`,d=Up(n),{stylesheet:m,rules:g}=ao.get(d)||S_(d,n);g[c]||(g[c]=!0,m.insertRule(`@keyframes ${c} ${f}`,m.cssRules.length));const v=n.style.animation||"";return n.style.animation=`${v?`${v}, `:""}${c} ${i}ms linear ${s}ms 1 both`,uo+=1,c}function al(n,e){const t=(n.style.animation||"").split(", "),i=t.filter(e?l=>l.indexOf(e)<0:l=>l.indexOf("__svelte")===-1),s=t.length-i.length;s&&(n.style.animation=i.join(", "),uo-=s,uo||$_())}function $_(){sa(()=>{uo||(ao.forEach(n=>{const{stylesheet:e}=n;let t=e.cssRules.length;for(;t--;)e.deleteRule(t);n.rules={}}),ao.clear())})}function C_(n,e,t,i){if(!e)return oe;const s=n.getBoundingClientRect();if(e.left===s.left&&e.right===s.right&&e.top===s.top&&e.bottom===s.bottom)return oe;const{delay:l=0,duration:o=300,easing:r=bl,start:a=Po()+l,end:u=a+o,tick:f=oe,css:c}=t(n,{from:e,to:s},i);let d=!0,m=!1,g;function v(){c&&(g=rl(n,0,1,o,l,r,c)),l||(m=!0)}function b(){c&&al(n,g),d=!1}return Lo(y=>{if(!m&&y>=a&&(m=!0),m&&y>=u&&(f(1,0),b()),!d)return!1;if(m){const C=y-a,$=0+1*r(C/o);f($,1-$)}return!0}),v(),f(0,1),b}function M_(n){const e=getComputedStyle(n);if(e.position!=="absolute"&&e.position!=="fixed"){const{width:t,height:i}=e,s=n.getBoundingClientRect();n.style.position="absolute",n.style.width=t,n.style.height=i,Kp(n,s)}}function Kp(n,e){const t=n.getBoundingClientRect();if(e.left!==t.left||e.top!==t.top){const i=getComputedStyle(n),s=i.transform==="none"?"":i.transform;n.style.transform=`${s} translate(${e.left-t.left}px, ${e.top-t.top}px)`}}let ul;function Gs(n){ul=n}function Fo(){if(!ul)throw new Error("Function called outside component initialization");return ul}function Jn(n){Fo().$$.on_mount.push(n)}function T_(n){Fo().$$.after_update.push(n)}function D_(n){Fo().$$.on_destroy.push(n)}function hn(){const n=Fo();return(e,t,{cancelable:i=!1}={})=>{const s=n.$$.callbacks[e];if(s){const l=Yp(e,t,{cancelable:i});return s.slice().forEach(o=>{o.call(n,l)}),!l.defaultPrevented}return!0}}function pt(n,e){const t=n.$$.callbacks[e.type];t&&t.slice().forEach(i=>i.call(this,e))}const Ws=[],he=[],no=[],Cr=[],Zp=Promise.resolve();let Mr=!1;function Jp(){Mr||(Mr=!0,Zp.then(Gp))}function di(){return Jp(),Zp}function Lt(n){no.push(n)}function He(n){Cr.push(n)}const Jo=new Set;let Fl=0;function Gp(){const n=ul;do{for(;Fl<Ws.length;){const e=Ws[Fl];Fl++,Gs(e),O_(e.$$)}for(Gs(null),Ws.length=0,Fl=0;he.length;)he.pop()();for(let e=0;e<no.length;e+=1){const t=no[e];Jo.has(t)||(Jo.add(t),t())}no.length=0}while(Ws.length);for(;Cr.length;)Cr.pop()();Mr=!1,Jo.clear(),Gs(n)}function O_(n){if(n.fragment!==null){n.update(),st(n.before_update);const e=n.dirty;n.dirty=[-1],n.fragment&&n.fragment.p(n.ctx,e),n.after_update.forEach(Lt)}}let Ls;function la(){return Ls||(Ls=Promise.resolve(),Ls.then(()=>{Ls=null})),Ls}function ts(n,e,t){n.dispatchEvent(Yp(`${e?"intro":"outro"}${t}`))}const io=new Set;let ri;function De(){ri={r:0,c:[],p:ri}}function Oe(){ri.r||st(ri.c),ri=ri.p}function A(n,e){n&&n.i&&(io.delete(n),n.i(e))}function P(n,e,t,i){if(n&&n.o){if(io.has(n))return;io.add(n),ri.c.push(()=>{io.delete(n),i&&(t&&n.d(1),i())}),n.o(e)}else i&&i()}const oa={duration:0};function Xp(n,e,t){let i=e(n,t),s=!1,l,o,r=0;function a(){l&&al(n,l)}function u(){const{delay:c=0,duration:d=300,easing:m=bl,tick:g=oe,css:v}=i||oa;v&&(l=rl(n,0,1,d,c,m,v,r++)),g(0,1);const b=Po()+c,y=b+d;o&&o.abort(),s=!0,Lt(()=>ts(n,!0,"start")),o=Lo(C=>{if(s){if(C>=y)return g(1,0),ts(n,!0,"end"),a(),s=!1;if(C>=b){const $=m((C-b)/d);g($,1-$)}}return s})}let f=!1;return{start(){f||(f=!0,al(n),Zn(i)?(i=i(),la().then(u)):u())},invalidate(){f=!1},end(){s&&(a(),s=!1)}}}function Qp(n,e,t){let i=e(n,t),s=!0,l;const o=ri;o.r+=1;function r(){const{delay:a=0,duration:u=300,easing:f=bl,tick:c=oe,css:d}=i||oa;d&&(l=rl(n,1,0,u,a,f,d));const m=Po()+a,g=m+u;Lt(()=>ts(n,!1,"start")),Lo(v=>{if(s){if(v>=g)return c(0,1),ts(n,!1,"end"),--o.r||st(o.c),!1;if(v>=m){const b=f((v-m)/u);c(1-b,b)}}return s})}return Zn(i)?la().then(()=>{i=i(),r()}):r(),{end(a){a&&i.tick&&i.tick(1,0),s&&(l&&al(n,l),s=!1)}}}function at(n,e,t,i){let s=e(n,t),l=i?0:1,o=null,r=null,a=null;function u(){a&&al(n,a)}function f(d,m){const g=d.b-l;return m*=Math.abs(g),{a:l,b:d.b,d:g,duration:m,start:d.start,end:d.start+m,group:d.group}}function c(d){const{delay:m=0,duration:g=300,easing:v=bl,tick:b=oe,css:y}=s||oa,C={start:Po()+m,b:d};d||(C.group=ri,ri.r+=1),o||r?r=C:(y&&(u(),a=rl(n,l,d,g,m,v,y)),d&&b(0,1),o=f(C,g),Lt(()=>ts(n,d,"start")),Lo($=>{if(r&&$>r.start&&(o=f(r,g),r=null,ts(n,o.b,"start"),y&&(u(),a=rl(n,l,o.b,o.duration,0,v,s.css))),o){if($>=o.end)b(l=o.b,1-l),ts(n,o.b,"end"),r||(o.b?u():--o.group.r||st(o.group.c)),o=null;else if($>=o.start){const S=$-o.start;l=o.a+o.d*v(S/o.duration),b(l,1-l)}}return!!(o||r)}))}return{run(d){Zn(s)?la().then(()=>{s=s(),c(d)}):c(d)},end(){u(),o=r=null}}}function cn(n,e){n.d(1),e.delete(n.key)}function Bt(n,e){P(n,1,1,()=>{e.delete(n.key)})}function E_(n,e){n.f(),Bt(n,e)}function dt(n,e,t,i,s,l,o,r,a,u,f,c){let d=n.length,m= Line truncated
<span class="txt">Pocket<strong>Base</strong></span></figure>`,t=T(),i=_("div"),h(e,"class","block txt-center m-b-lg"),h(i,"class","clearfix")},m(s,l){w(s,e,l),w(s,t,l),w(s,i,l)},d(s){s&&k(e),s&&k(t),s&&k(i)}}}function Zb(n){let e,t,i,s,l,o,r,a,u=!n[0]&&Cu();const f=n[2].default,c=On(f,n,n[1],null);return{c(){e=_("div"),t=_("div"),i=T(),s=_("div"),u&&u.c(),l=T(),c&&c.c(),o=T(),r=_("div"),h(t,"class","flex-fill"),h(s,"class","wrapper wrapper-sm m-b-xl svelte-1wbawr2"),h(r,"class","flex-fill"),h(e,"class","page-wrapper full-page-panel svelte-1wbawr2")},m(d,m){w(d,e,m),p(e,t),p(e,i),p(e,s),u&&u.m(s,null),p(s,l),c&&c.m(s,null),p(e,o),p(e,r),a=!0},p(d,[m]){d[0]?u&&(u.d(1),u=null):u||(u=Cu(),u.c(),u.m(s,l)),c&&c.p&&(!a||m&2)&&An(c,f,d,d[1],a?En(f,d[1],m,null):Pn(d[1]),null)},i(d){a||(A(c,d),a=!0)},o(d){P(c,d),a=!1},d(d){d&&k(e),u&&u.d(),c&&c.d(d)}}}function Jb(n,e,t){let{$$slots:i={},$$scope:s}=e,{nobranding:l=!1}=e;return n.$$set=o=>{"nobranding"in o&&t(0,l=o.nobranding),"$$scope"in o&&t(1,s=o.$$scope)},[l,s,i]}class fg extends Fe{constructor(e){super(),Le(this,e,Jb,Zb,Pe,{nobranding:0})}}function Mu(n,e,t){const i=n.slice();return i[11]=e[t],i}const Gb=n=>({}),Tu=n=>({uniqueId:n[3]});function Xb(n){let e=(n[11]||go)+"",t;return{c(){t=R(e)},m(i,s){w(i,t,s)},p(i,s){s&4&&e!==(e=(i[11]||go)+"")&&me(t,e)},d(i){i&&k(t)}}}function Qb(n){var i,s;let e=(((i=n[11])==null?void 0:i.message)||((s=n[11])==null?void 0:s.code)||go)+"",t;return{c(){t=R(e)},m(l,o){w(l,t,o)},p(l,o){var r,a;o&4&&e!==(e=(((r=l[11])==null?void 0:r.message)||((a=l[11])==null?void 0:a.code)||go)+"")&&me(t,e)},d(l){l&&k(t)}}}function Du(n){let e,t;function i(o,r){return typeof o[11]=="object"?Qb:Xb}let s=i(n),l=s(n);return{c(){e=_("div"),l.c(),t=T(),h(e,"class","help-block help-block-error")},m(o,r){w(o,e,r),l.m(e,null),p(e,t)},p(o,r){s===(s=i(o))&&l?l.p(o,r):(l.d(1),l=s(o),l&&(l.c(),l.m(e,t)))},d(o){o&&k(e),l.d()}}}function xb(n){let e,t,i,s,l;const o=n[7].default,r=On(o,n,n[6],Tu);let a=n[2],u=[];for(let f=0;f<a.length;f+=1)u[f]=Du(Mu(n,a,f));return{c(){e=_("div"),r&&r.c(),t=T();for(let f=0;f<u.length;f+=1)u[f].c();h(e,"class",n[0]),ee(e,"error",n[2].length)},m(f,c){w(f,e,c),r&&r.m(e,null),p(e,t);for(let d=0;d<u.length;d+=1)u[d].m(e,null);n[9](e),i=!0,s||(l=X(e,"click",n[8]),s=!0)},p(f,[c]){if(r&&r.p&&(!i||c&64)&&An(r,o,f,f[6],i?En(o,f[6],c,Gb):Pn(f[6]),Tu),c&4){a=f[2];let d;for(d=0;d<a.length;d+=1){const m=Mu(f,a,d);u[d]?u[d].p(m,c):(u[d]=Du(m),u[d].c(),u[d].m(e,null))}for(;d<u.length;d+=1)u[d].d(1);u.length=a.length}(!i||c&1)&&h(e,"class",f[0]),c&5&&ee(e,"error",f[2].length)},i(f){i||(A(r,f),i=!0)},o(f){P(r,f),i=!1},d(f){f&&k(e),r&&r.d(f),Bn(u,f),n[9](null),s=!1,l()}}}const go="Invalid value";function e1(n,e,t){let i;qt(n,rs,g=>t(5,i=g));let{$$slots:s={},$$scope:l}=e;const o="field_"+Y.randomString(7);let{name:r=""}=e,{class:a=void 0}=e,u,f=[];function c(){ug(r)}Jn(()=>(u.addEventListener("input",c),u.addEventListener("change",c),()=>{u.removeEventListener("input",c),u.removeEventListener("change",c)}));function d(g){pt.call(this,n,g)}function m(g){he[g?"unshift":"push"](()=>{u=g,t(1,u)})}return n.$$set=g=>{"name"in g&&t(4,r=g.name),"class"in g&&t(0,a=g.class),"$$scope"in g&&t(6,l=g.$$scope)},n.$$.update=()=>{n.$$.dirty&48&&t(2,f=Y.toArray(Y.getNestedVal(i,r)))},[a,u,f,o,r,i,l,s,d,m]}class Ie extends Fe{constructor(e){super(),Le(this,e,e1,xb,Pe,{name:4,class:0})}}function t1(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Email"),s=T(),l=_("input"),h(e,"for",i=n[9]),h(l,"type","email"),h(l,"autocomplete","off"),h(l,"id",o=n[9]),l.required=!0,l.autofocus=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0]),l.focus(),r||(a=X(l,"input",n[5]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&h(e,"for",i),f&512&&o!==(o=u[9])&&h(l,"id",o),f&1&&l.value!==u[0]&&$e(l,u[0])},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function n1(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=_("label"),t=R("Password"),s=T(),l=_("input"),r=T(),a=_("div"),a.textContent="Minimum 10 characters.",h(e,"for",i=n[9]),h(l,"type","password"),h(l,"autocomplete","new-password"),h(l,"minlength","10"),h(l,"id",o=n[9]),l.required=!0,h(a,"class","help-block")},m(c,d){w(c,e,d),p(e,t),w(c,s,d),w(c,l,d),$e(l,n[1]),w(c,r,d),w(c,a,d),u||(f=X(l,"input",n[6]),u=!0)},p(c,d){d&512&&i!==(i=c[9])&&h(e,"for",i),d&512&&o!==(o=c[9])&&h(l,"id",o),d&2&&l.value!==c[1]&&$e(l,c[1])},d(c){c&&k(e),c&&k(s),c&&k(l),c&&k(r),c&&k(a),u=!1,f()}}}function i1(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Password confirm"),s=T(),l=_("input"),h(e,"for",i=n[9]),h(l,"type","password"),h(l,"minlength","10"),h(l,"id",o=n[9]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[2]),r||(a=X(l,"input",n[7]),r=!0)},p(u,f){f&512&&i!==(i=u[9])&&h(e,"for",i),f&512&&o!==(o=u[9])&&h(l,"id",o),f&4&&l.value!==u[2]&&$e(l,u[2])},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function s1(n){let e,t,i,s,l,o,r,a,u,f,c,d,m;return s=new Ie({props:{class:"form-field required",name:"email",$$slots:{default:[t1,({uniqueId:g})=>({9:gLine truncated
<i class="ri-arrow-right-line"></i>`,h(t,"class","content txt-center m-b-base"),h(f,"type","submit"),h(f,"class","btn btn-lg btn-block btn-next"),ee(f,"btn-disabled",n[3]),ee(f,"btn-loading",n[3]),h(e,"class","block"),h(e,"autocomplete","off")},m(g,v){w(g,e,v),p(e,t),p(e,i),V(s,e,null),p(e,l),V(o,e,null),p(e,r),V(a,e,null),p(e,u),p(e,f),c=!0,d||(m=X(e,"submit",Qt(n[4])),d=!0)},p(g,[v]){const b={};v&1537&&(b.$$scope={dirty:v,ctx:g}),s.$set(b);const y={};v&1538&&(y.$$scope={dirty:v,ctx:g}),o.$set(y);const C={};v&1540&&(C.$$scope={dirty:v,ctx:g}),a.$set(C),v&8&&ee(f,"btn-disabled",g[3]),v&8&&ee(f,"btn-loading",g[3])},i(g){c||(A(s.$$.fragment,g),A(o.$$.fragment,g),A(a.$$.fragment,g),c=!0)},o(g){P(s.$$.fragment,g),P(o.$$.fragment,g),P(a.$$.fragment,g),c=!1},d(g){g&&k(e),z(s),z(o),z(a),d=!1,m()}}}function l1(n,e,t){const i=hn();let s="",l="",o="",r=!1;async function a(){if(!r){t(3,r=!0);try{await Se.Admins.create({email:s,password:l,passwordConfirm:o}),await Se.Admins.authViaEmail(s,l),i("submit")}catch(d){Se.errorResponseHandler(d)}t(3,r=!1)}}function u(){s=this.value,t(0,s)}function f(){l=this.value,t(1,l)}function c(){o=this.value,t(2,o)}return[s,l,o,r,a,u,f,c]}class o1 extends Fe{constructor(e){super(),Le(this,e,l1,s1,Pe,{})}}function Ou(n){let e,t;return e=new fg({props:{$$slots:{default:[r1]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,s){const l={};s&9&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function r1(n){let e,t;return e=new o1({}),e.$on("submit",n[1]),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p:oe,i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function a1(n){let e,t,i=n[0]&&Ou(n);return{c(){i&&i.c(),e=lt()},m(s,l){i&&i.m(s,l),w(s,e,l),t=!0},p(s,[l]){s[0]?i?(i.p(s,l),l&1&&A(i,1)):(i=Ou(s),i.c(),A(i,1),i.m(e.parentNode,e)):i&&(De(),P(i,1,1,()=>{i=null}),Oe())},i(s){t||(A(i),t=!0)},o(s){P(i),t=!1},d(s){i&&i.d(s),s&&k(e)}}}function u1(n,e,t){let i=!1;s();function s(){if(t(0,i=!1),new URLSearchParams(window.location.search).has("installer")){Se.logout(!1),t(0,i=!0);return}Se.AuthStore.isValid?Ts("/collections"):Se.logout()}return[i,async()=>{t(0,i=!1),await di(),window.location.search=""}]}class f1 extends Fe{constructor(e){super(),Le(this,e,u1,a1,Pe,{})}}const nn=si(""),_o=si("");function qo(n){const e=n-1;return e*e*e+1}function bo(n,{delay:e=0,duration:t=400,easing:i=bl}={}){const s=+getComputedStyle(n).opacity;return{delay:e,duration:t,easing:i,css:l=>`opacity: ${l*s}`}}function Un(n,{delay:e=0,duration:t=400,easing:i=qo,x:s=0,y:l=0,opacity:o=0}={}){const r=getComputedStyle(n),a=+r.opacity,u=r.transform==="none"?"":r.transform,f=a*(1-o);return{delay:e,duration:t,easing:i,css:(c,d)=>`
transform: ${u} translate(${(1-c)*s}px, ${(1-c)*l}px);
opacity: ${a-f*d}`}}function on(n,{delay:e=0,duration:t=400,easing:i=qo}={}){const s=getComputedStyle(n),l=+s.opacity,o=parseFloat(s.height),r=parseFloat(s.paddingTop),a=parseFloat(s.paddingBottom),u=parseFloat(s.marginTop),f=parseFloat(s.marginBottom),c=parseFloat(s.borderTopWidth),d=parseFloat(s.borderBottomWidth);return{delay:e,duration:t,easing:i,css:m=>`overflow: hidden;opacity: ${Math.min(m*20,1)*l};height: ${m*o}px;padding-top: ${m*r}px;padding-bottom: ${m*a}px;margin-top: ${m*u}px;margin-bottom: ${m*f}px;border-top-width: ${m*c}px;border-bottom-width: ${m*d}px;`}}function Wn(n,{delay:e=0,duration:t=400,easing:i=qo,start:s=0,opacity:l=0}={}){const o=getComputedStyle(n),r=+o.opacity,a=o.transform==="none"?"":o.transform,u=1-s,f=r*(1-l);return{delay:e,duration:t,easing:i,css:(c,d)=>`
transform: ${a} scale(${1-u*d});
opacity: ${r-f*d}
`}}function c1(n){let e,t,i,s;return{c(){e=_("input"),h(e,"type","text"),h(e,"id",n[8]),h(e,"placeholder",t=n[0]||n[1])},m(l,o){w(l,e,o),n[13](e),$e(e,n[7]),i||(s=X(e,"input",n[14]),i=!0)},p(l,o){o&3&&t!==(t=l[0]||l[1])&&h(e,"placeholder",t),o&128&&e.value!==l[7]&&$e(e,l[7])},i:oe,o:oe,d(l){l&&k(e),n[13](null),i=!1,s()}}}function d1(n){let e,t,i,s;function l(a){n[12](a)}var o=n[4];function r(a){let u={singleLine:!0,disableRequestKeys:!0,disableIndirectCollectionsKeys:!0,extraAutocompleteKeys:a[3],baseCollection:a[2],placeholder:a[0]||a[1]};return a[7]!==void 0&&(u.value=a[7]),{props:u}}return o&&(e=new o(r(n)),he.push(()=>Re(e,"value",l)),e.$on("submit",n[10])),{c(){e&&B(e.$$.fragment),i=lt()},m(a,u){e&&V(e,a,u),w(a,i,u),s=!0},p(a,u){const f={};if(u&8&&(f.extraAutocompleteKeys=a[3]),u&4&&(f.baseCollection=a[2]),u&3&&(f.placeholder=a[0]||a[1]),!t&&u&128&&(t=!0,f.value=a[7],He(()=>t=!1)),o!==(o=a[4])){if(e){De();const c=e;P(c.$$.fragment,1,0,()=>{z(c,1)}),Oe()}o?(e=new o(r(a)),he.push(()=>Re(e,"value",l)),e.$on("submit",a[10]),B(e.$$.fragment),A(e.$$.fragment,1),V(e,i.parentNode,i)):e=null}else o&&e.$set(f)},i(a){s||(e&&A(e.$$.fragment,a),s=!0)},o(a){e&&P(e.$$.fragment,a),s=!1},d(a){a&&k(i),e&&z(e,a)}}}function Eu(n){let e,t,i,s,l,o,r=n[7]!==n[0]&&Au();return{c(){r&&r.c(),e=T(),t=_("button"),t.innerHTML='<span class="txt">Clear</span>',h(t,"type","button"),h(t,"class","btn btn-secondary btn-sm btn-hint p-l-xs p-r-xs m-l-10")},m(a,u){r&&r.m(a,u),w(a,e,u),w(a,t,u),s=!0,l||(o=X(t,"click",n[15]),l=!0)},p(a,u){a[7]!==a[0]?r?u&129&&A(r,1):(r=Au(),r.c(),A(r,1),r.m(e.parentNode,e)):r&&(De(),P(r,1,1,()=>{r=null}),Oe())},i(a){s||(A(r),Lt(()=>{i||(i=at(t,Un,{duration:150,x:5},!0)),i.run(1)}),s=!0)},o(a){P(r),i||(i=at(t,Un,{duration:150,x:5},!1)),i.run(0),s=!1},d(a){r&&r.d(a),a&&k(e),a&&k(t),a&&i&&i.end(),l=!1,o()}}}function Au(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Search</span>',h(e,"type","submit"),h(e,"class","btn btn-expanded btn-sm btn-warning")},m(s,l){w(s,e,l),i=!0},i(s){i||(Lt(()=>{t||(t=at(e,Un,{duration:150,x:5},!0)),t.run(1)}),i=!0)},o(s){t||(t=at(e,Un,{duration:150,x:5},!1)),t.run(0),i=!1},d(s){s&&k(e),s&&t&&t.end()}}}function h1(n){let e,t,i,s,l,o,r,a,u,f,c;const d=[d1,c1],m=[];function g(b,y){return b[4]&&!b[5]?0:1}o=g(n),r=m[o]=d[o](n);let v=(n[0].length||n[7].length)&&Eu(n);return{c(){e=_("div"),t=_("form"),i=_("label"),s=_("i"),l=T(),r.c(),a=T(),v&&v.c(),h(s,"class","ri-search-line"),h(i,"for",n[8]),h(i,"class","m-l-10 txt-xl"),h(t,"class","searchbar"),h(e,"class","searchbar-wrapper")},m(b,y){w(b,e,y),p(e,t),p(t,i),p(i,s),p(t,l),m[o].m(t,null),p(t,a),v&&v.m(t,null),u=!0,f||(c=[X(t,"submit",Qt(n[10])),X(e,"click",ni(n[11]))],f=!0)},p(b,[y]){let C=o;o=g(b),o===C?m[o].p(b,y):(De(),P(m[C],1,1,()=>{m[C]=null}),Oe(),r=m[o],r?r.p(b,y):(r=m[o]=d[o](b),r.c()),A(r,1),r.m(t,a)),b[0].length||b[7].length?v?(v.p(b,y),y&129&&A(v,1)):(v=Eu(b),v.c(),A(v,1),v.m(t,null)):v&&(De(),P(v,1,1,()=>{v=null}),Oe())},i(b){u||(A(r),A(v),u=!0)},o(b){P(r),P(v),u=!1},d(b){b&&k(e),m[o].d(),v&&v.d(),f=!1,st(c)}}}function p1(n,e,t){const i=hn(),s="search_"+Y.randomString(7);let{value:l=""}=e,{placeholder:o='Search filter, ex. created > "2022-01-01"...'}=e,{autocompleteCollection:r=new Fn}=e,{extraAutocompleteKeys:a=[]}=e,u,f=!1,c,d="";function m(M=!0){t(7,d=""),M&&(c==null||c.focus()),i("clear")}function g(){t(0,l=d),i("submit",l)}async function v(){u||f||(t(5,f=!0),t(4,u=(await Qi(()=>import("./FilterAutocompleteInput.ba7c1341.js"),[])).default),t(5,f=!1))}Jn(()=>{v()});function b(M){pt.call(this,n,M)}function y(M){d=M,t(7,d),t(0,l)}function C(M){he[M?"unshift":"push"](()=>{c=M,t(6,c)})}function $(){d=this.value,t(7,d),t(0,l)}const S=()=>{m(!1),g()};return n.$$set=M=>{"value"in M&&t(0,l=M.value),"placeholder"in M&&t(1,o=M.placeholder),"autocompleteCollection"in M&&t(2,r=M.autocompleteCollection),"extraAutocompleteKeys"in M&&t(3,a=M.extraAutocompleteKeys)},n.$$.update=()=>{n.$$.dirty&1&&typeof l=="string"&&t(7,d=l)},[l,o,r,a,u,f,c,d,s,m,g,b,y,C,$,S]}class Vo extends Fe{constructor(e){super(),Le(this,e,p1,h1,Pe,{value:0,placeholder:1,autocompleteCollection:2,extraAutocompleteKeys:3})}}let Hr,Wi;const jr="app-tooltip";function Pu(n){return typeof n=="string"?{text:n,position:"bottom",hideOnClick:null}:n||{}}function Li(){return Wi=Wi||document.querySelector("."+jr),Wi||(Wi=document.createElement("div"),Wi.classList.add(jr),document.body.appendChild(Wi)),Wi}function cg(n,e){let t=Li();if(!t.classList.contains("active")||!(e!=null&&e.text)){qr();return}t.textContent=e.text,t.className=jr+" active",e.class&&t.classList.add(e.class),t.style.top="0px",t.style.left="0px";let i=t.offsetHeight,s=t.offsetWidth,l=n.getBoundingClientRect(),o=0,r=0,a=5;e.position=="left"?(o=l.top+l.height/2-i/2,r=l.left-s-a):e.position=="right"?(o=l.top+l.height/2-i/2,r=l.right+a):e.position=="top"?(o=l.top-i-a,r=l.left+l.width/2-s/2):e.position=="top-left"?(o=l.top-i-a,r=l.left):e.position=="top-right"?(o=l.top-i-a,r=l.right-s):e.posi Line truncated
<span class="txt">method</span>`,h(e,"class","col-header-content")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function C1(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="url",h(t,"class",Y.getFieldTypeIcon("url")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function M1(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="referer",h(t,"class",Y.getFieldTypeIcon("url")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function T1(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="status",h(t,"class",Y.getFieldTypeIcon("number")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function D1(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="created",h(t,"class",Y.getFieldTypeIcon("date")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function Fu(n){let e;function t(l,o){return l[6]?E1:O1}let i=t(n),s=i(n);return{c(){s.c(),e=lt()},m(l,o){s.m(l,o),w(l,e,o)},p(l,o){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&k(e)}}}function O1(n){var r;let e,t,i,s,l,o=((r=n[0])==null?void 0:r.length)&&Iu(n);return{c(){e=_("tr"),t=_("td"),i=_("h6"),i.textContent="No logs found.",s=T(),o&&o.c(),l=T(),h(t,"colspan","99"),h(t,"class","txt-center txt-hint p-xs")},m(a,u){w(a,e,u),p(e,t),p(t,i),p(t,s),o&&o.m(t,null),p(e,l)},p(a,u){var f;(f=a[0])!=null&&f.length?o?o.p(a,u):(o=Iu(a),o.c(),o.m(t,null)):o&&(o.d(1),o=null)},d(a){a&&k(e),o&&o.d()}}}function E1(n){let e;return{c(){e=_("tr"),e.innerHTML=`<td colspan="99" class="p-xs"><span class="skeleton-loader"></span></td>
`},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function Iu(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Clear filters</span>',h(e,"type","button"),h(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){w(s,e,l),t||(i=X(e,"click",n[18]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function Nu(n){let e;return{c(){e=_("i"),h(e,"class","ri-error-warning-line txt-danger m-l-5 m-r-5"),h(e,"title","Error")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Ru(n,e){var le,ue,Me;let t,i,s,l=((le=e[21].method)==null?void 0:le.toUpperCase())+"",o,r,a,u,f,c=e[21].url+"",d,m,g,v,b,y,C=(e[21].referer||"N/A")+"",$,S,M,D,E,O=e[21].status+"",F,L,H,j,Q,ie,U,K,W,J,se=(((ue=e[21].meta)==null?void 0:ue.errorMessage)||((Me=e[21].meta)==null?void 0:Me.errorData))&&Nu();j=new wi({props:{date:e[21].created}});function fe(){return e[16](e[21])}function ke(...Z){return e[17](e[21],...Z)}return{key:n,first:null,c(){t=_("tr"),i=_("td"),s=_("span"),o=R(l),a=T(),u=_("td"),f=_("span"),d=R(c),g=T(),se&&se.c(),v=T(),b=_("td"),y=_("span"),$=R(C),M=T(),D=_("td"),E=_("span"),F=R(O),L=T(),H=_("td"),B(j.$$.fragment),Q=T(),ie=_("td"),ie.innerHTML='<i class="ri-arrow-right-line"></i>',U=T(),h(s,"class",r="label txt-uppercase "+e[9][e[21].method.toLowerCase()]),h(i,"class","col-type-text col-field-method min-width"),h(f,"class","txt txt-ellipsis"),h(f,"title",m=e[21].url),h(u,"class","col-type-text col-field-url"),h(y,"class","txt txt-ellipsis"),h(y,"title",S=e[21].referer),ee(y,"txt-hint",!e[21].referer),h(b,"class","col-type-text col-field-referer"),h(E,"class","label"),ee(E,"label-danger",e[21].status>=400),h(D,"class","col-type-number col-field-status"),h(H,"class","col-type-date col-field-created"),h(ie,"class","col-type-action min-width"),h(t,"tabindex","0"),h(t,"class","row-handle"),this.first=t},m(Z,be){w(Z,t,be),p(t,i),p(i,s),p(s,o),p(t,a),p(t,u),p(u,f),p(f,d),p(u,g),se&&se.m(u,null),p(t,v),p(t,b),p(b,y),p(y,$),p(t,M),p(t,D),p(D,E),p(E,F),p(t,L),p(t,H),V(j,H,null),p(t,Q),p(t,ie),p(t,U),K=!0,W||(J=[X(t,"click",fe),X(t,"keydown",ke)],W=!0)},p(Z,be){var G,_e,je;e=Z,(!K||be&8)&&l!==(l=((G=e[21].method)==null?void 0:G.toUpperCase())+"")&&me(o,l),(!K||be&8&&r!==(r="label txt-uppercase "+e[9][e[21].method.toLowerCase()]))&&h(s,"class",r),(!K||be&8)&&c!==(c=e[21].url+"")&&me(d,c),(!K||be&8&&m!==(m=e[21].url))&&h(f,"title",m),((_e=e[21].meta)==null?void 0:_e.errorMessage)||((je=e[21].meta)==null?void 0:je.errorData)?se||(se=Nu(),se.c(),se.m(u,null)):se&&(se.d(1),se=null),(!K||be&8)&&C!==(C=(e[21].referer||"N/A")+"")&&me($,C),(!K||be&8&&S!==(S=e[21].referer))&&h(y,"title",S),be&8&&ee(y,"txt-hint",!e[21].referer),(!K||be&8)&&O!==(O=e[21].status+"")&&me(F,O),be&8&&ee(E,"label-danger",e[21].status>=400);const x={};be&8&&(x.date=e[21].created),j.$set(x)},i(Z){K||(A(j.$$.fragment,Z),K=!0)},o(Z){P(j.$$.fragment,Z),K=!1},d(Z){Z&&k(t),se&&se.d(),z(j),W=!1,st(J)}}}function Hu(n){let e,t,i=n[3].length+"",s,l,o;return{c(){e=_("small"),t=R("Showing "),s=R(i),l=R(" of "),o=R(n[4]),h(e,"class","block txt-hint txt-right m-t-sm")},m(r,a){w(r,e,a),p(e,t),p(e,s),p(e,l),p(e,o)},p(r,a){a&8&&i!==(i=r[3].length+"")&&me(s,i),a&16&&me(o,r[4])},d(r){r&&k(e)}}}function ju(n){let e,t,i,s,l=n[4]-n[3].length+"",o,r,a,u;return{c(){e=_("div"),t=_("button"),i=_("span"),s=R("Load more ("),o=R(l),r=R(")"),h(i,"class","txt"),h(t,"type","button"),h(t,"class","btn btn-lg btn-secondary btn-expanded"),ee(t,"btn-loading",n[6]),ee(t,"btn-disabled",n[6]),h(e,"class","block txt-center m-t-xs")},m(f,c){w(f,e,c),p(e,t),p(t,i),p(i,s),p(i,o),p(i,r),a||(u=X(t,"click",n[19]),a=!0)},p(f,c){c&24&&l!==(l=f[4]-f[3].length+"")&&me(o,l),c&64&&ee(t,"btn-loading",f[6]),c&64&&ee(t,"btn-disabled",f[6])},d(f){f&&k(e),a=!1,u()}}}function A1(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g,v,b,y,C,$,S,M,D,E=[],O=new Map,F,L,H,j;function Q(G){n[11](G)}let ie={disable:!0,class:"col-field-method",name:"method",$$slots:{default:[$1]},$$scope:{ctx:n}};n[1]!==void 0&&(ie.sort=n[1]),l=new rn({props:ie}),he.push(()=>Re(l,"sort",Q));function U(G){n[12](G)}let K={disable:!0,class:"col-type-text col-field-url",name:"url",$$slots:{default:[C1]},$$scope:{ctx:n}};n[1]!==void 0&&(K.sort=n[1]),a=new rn({props:K}),he.push(()=>Re(a,"sort",U));function W(G){n[13](G)}let J={disable:!0,class:"col-type-text col-field-referer",name:"referer",$$slots:{default:[M1]},$$scope:{ctx:n}};n[1]!==void 0&&(J.sort=n[1]),c=new rn({props:J}),he.push(()=>Re(c,"sort",W));function se(G){n[14](G)}let fe={disable:!0,class:"col-type-number col-field-status",name:"status",$$slots:{default:[T1]},$$scope:{ctx:n}};n[1]!==void 0&&(fe.sort=n[1]),g=new rn({props:fe}),he.push(()=>Re(g,"sort",se));function ke(G){n[15](G)}let le={disable:!0,class:"col-type-date col-field-created",name:"created",$$slots:{default:[D1]},$$scope:{ctx:n}};n[1]!==void 0&&(le.sort=n[1]),y=new rn({props:le}),he.push(()=>Re(y,"sort",ke));let ue=n[3];const Me=G=>G[21].id;for(let G=0;G<ue.length;G+=1){let _e=Lu(n,ue,G),je=Me(_e);O.set(je,E[G]=Ru(je,_e))}let Z=null;ue.length||(Z=Fu( Line truncated
* Chart.js v3.8.0
* https://www.chartjs.org
* (c) 2022 Chart.js Contributors
* Released under the MIT License
*/const dg=function(){return typeof window>"u"?function(n){return n()}:window.requestAnimationFrame}();function hg(n,e,t){const i=t||(o=>Array.prototype.slice.call(o));let s=!1,l=[];return function(...o){l=i(o),s||(s=!0,dg.call(window,()=>{s=!1,n.apply(e,l)}))}}function F1(n,e){let t;return function(...i){return e?(clearTimeout(t),t=setTimeout(n,e,i)):n.apply(this,i),e}}const I1=n=>n==="start"?"left":n==="end"?"right":"center",qu=(n,e,t)=>n==="start"?e:n==="end"?t:(e+t)/2;function mi(){}const N1=function(){let n=0;return function(){return n++}}();function Pt(n){return n===null||typeof n>"u"}function zt(n){if(Array.isArray&&Array.isArray(n))return!0;const e=Object.prototype.toString.call(n);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function bt(n){return n!==null&&Object.prototype.toString.call(n)==="[object Object]"}const Xt=n=>(typeof n=="number"||n instanceof Number)&&isFinite(+n);function Hn(n,e){return Xt(n)?n:e}function yt(n,e){return typeof n>"u"?e:n}const R1=(n,e)=>typeof n=="string"&&n.endsWith("%")?parseFloat(n)/100:n/e,pg=(n,e)=>typeof n=="string"&&n.endsWith("%")?parseFloat(n)/100*e:+n;function Zt(n,e,t){if(n&&typeof n.call=="function")return n.apply(t,e)}function At(n,e,t,i){let s,l,o;if(zt(n))if(l=n.length,i)for(s=l-1;s>=0;s--)e.call(t,n[s],s);else for(s=0;s<l;s++)e.call(t,n[s],s);else if(bt(n))for(o=Object.keys(n),l=o.length,s=0;s<l;s++)e.call(t,n[o[s]],o[s])}function vo(n,e){let t,i,s,l;if(!n||!e||n.length!==e.length)return!1;for(t=0,i=n.length;t<i;++t)if(s=n[t],l=e[t],s.datasetIndex!==l.datasetIndex||s.index!==l.index)return!1;return!0}function yo(n){if(zt(n))return n.map(yo);if(bt(n)){const e=Object.create(null),t=Object.keys(n),i=t.length;let s=0;for(;s<i;++s)e[t[s]]=yo(n[t[s]]);return e}return n}function mg(n){return["__proto__","prototype","constructor"].indexOf(n)===-1}function H1(n,e,t,i){if(!mg(n))return;const s=e[n],l=t[n];bt(s)&&bt(l)?fl(s,l,i):e[n]=yo(l)}function fl(n,e,t){const i=zt(e)?e:[e],s=i.length;if(!bt(n))return n;t=t||{};const l=t.merger||H1;for(let o=0;o<s;++o){if(e=i[o],!bt(e))continue;const r=Object.keys(e);for(let a=0,u=r.length;a<u;++a)l(r[a],n,e,t)}return n}function tl(n,e){return fl(n,e,{merger:j1})}function j1(n,e,t){if(!mg(n))return;const i=e[n],s=t[n];bt(i)&&bt(s)?tl(i,s):Object.prototype.hasOwnProperty.call(e,n)||(e[n]=yo(s))}const q1="",V1=".";function Vu(n,e){const t=n.indexOf(V1,e);return t===-1?n.length:t}function Ii(n,e){if(e===q1)return n;let t=0,i=Vu(e,t);for(;n&&i>t;)n=n[e.slice(t,i)],t=i+1,i=Vu(e,t);return n}function va(n){return n.charAt(0).toUpperCase()+n.slice(1)}const Yn=n=>typeof n<"u",Ni=n=>typeof n=="function",zu=(n,e)=>{if(n.size!==e.size)return!1;for(const t of n)if(!e.has(t))return!1;return!0};function z1(n){return n.type==="mouseup"||n.type==="click"||n.type==="contextmenu"}const Gt=Math.PI,Vt=2*Gt,B1=Vt+Gt,ko=Number.POSITIVE_INFINITY,U1=Gt/180,Jt=Gt/2,Hs=Gt/4,Bu=Gt*2/3,Vn=Math.log10,ai=Math.sign;function Uu(n){const e=Math.round(n);n=nl(n,e,n/1e3)?e:n;const t=Math.pow(10,Math.floor(Vn(n))),i=n/t;return(i<=1?1:i<=2?2:i<=5?5:10)*t}function W1(n){const e=[],t=Math.sqrt(n);let i;for(i=1;i<t;i++)n%i===0&&(e.push(i),e.push(n/i));return t===(t|0)&&e.push(t),e.sort((s,l)=>s-l).pop(),e}function cl(n){return!isNaN(parseFloat(n))&&isFinite(n)}function nl(n,e,t){return Math.abs(n-e)<t}function Y1(n,e){const t=Math.round(n);return t-e<=n&&t+e>=n}function gg(n,e,t){let i,s,l;for(i=0,s=n.length;i<s;i++)l=n[i][t],isNaN(l)||(e.min=Math.min(e.min,l),e.max=Math.max(e.max,l))}function ei(n){return n*(Gt/180)}function ya(n){return n*(180/Gt)}function Wu(n){if(!Xt(n))return;let e=1,t=0;for(;Math.round(n*e)/e!==n;)e*=10,t++;return t}function _g(n,e){const t=e.x-n.x,i=e.y-n.y,s=Math.sqrt(t*t+i*i);let l=Math.atan2(i,t);return l<-.5*Gt&&(l+=Vt),{angle:l,distance:s}}function Vr(n,e){return Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2))}function K1(n,e){return(n-e+B1)%Vt-Gt}function Mn(n){return(n%Vt+Vt)%Vt}function dl(n,e,t,i){const s=Mn(n),l=Mn(e),o=Mn(t),r=Mn(l-s),a=Mn(o-s),u=Mn(s-l),f=Mn(s-o);return s===l||s===o||i&&l===o||r>a&&u<f}function fn(n,e,t){return Math.max(e,Math.min(t,n))}function Z1(n){return fn(n,-32768,32767)}function hl(n,e,t,i=1e-6){return n>=Math.min(e,t)-i&&n<=Math.max(e,t)+i}const ql=n=>n===0||n===1,Yu=(n,e,t)=>-(Math.pow(2,10*(n-=1))*Math.sin((n-e)*Vt/t)),Ku=(n,e,t)=>Math.pow(2,-10*n)*Math.sin((n-e)*Vt/t)+1,il={linear:n=>n,easeInQuad:n=>n*n,easeOutQuad:n=>-n*(n-2),easeInOutQuad:n=>(n/=.5)<1?.5*n*n:-.5*(--n*(n-2)-1),easeInCubic:n=>n*n*n,easeOutCubic:n=>(n-=1)*n*n+1,easeInOutCubic:n=>(n/=.5)<1?.5*n*n*n:.5*((n-=2)*n*n+2),easeInQuart:n=>n*n*n*n,easeOutQuart:n=>-((n-=1)*n*n*n-1),easeInOutQuart:n=>(n/=.5)<1?.5*n*n*n*n:-.5*((n-=2)*n*n*n-2),easeInQuint:n=>n*n*n*n*n,easeOutQuint:n=>(n-=1)*n*n*n*n+1,easeInOutQuint:n=>(n/=.5)<1?.5*n*n*n*n*n:.5*((n-=2)*n*n*n*n+2),easeInSine:n=>-Math.cos(n*Jt)+1,easeOutSine:n=>Math.sin(n*Jt),easeInOutSine:n=>-.5*(Math.cos(Gt*n)-1),easeInExpo:n=>n===0?0:Math.pow(2,10*(n-1)),easeOutExpo:n=>n===1?1:-Math.pow(Line truncated
* @kurkle/color v0.2.1
* https://github.com/kurkle/color#readme
* (c) 2022 Jukka Kurkela
* Released under the MIT License
*/function $l(n){return n+.5|0}const Ai=(n,e,t)=>Math.max(Math.min(n,t),e);function Zs(n){return Ai($l(n*2.55),0,255)}function Fi(n){return Ai($l(n*255),0,255)}function bi(n){return Ai($l(n/2.55)/100,0,1)}function Zu(n){return Ai($l(n*100),0,100)}const Rn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},zr=[..."0123456789ABCDEF"],J1=n=>zr[n&15],G1=n=>zr[(n&240)>>4]+zr[n&15],Vl=n=>(n&240)>>4===(n&15),X1=n=>Vl(n.r)&&Vl(n.g)&&Vl(n.b)&&Vl(n.a);function Q1(n){var e=n.length,t;return n[0]==="#"&&(e===4||e===5?t={r:255&Rn[n[1]]*17,g:255&Rn[n[2]]*17,b:255&Rn[n[3]]*17,a:e===5?Rn[n[4]]*17:255}:(e===7||e===9)&&(t={r:Rn[n[1]]<<4|Rn[n[2]],g:Rn[n[3]]<<4|Rn[n[4]],b:Rn[n[5]]<<4|Rn[n[6]],a:e===9?Rn[n[7]]<<4|Rn[n[8]]:255})),t}const x1=(n,e)=>n<255?e(n):"";function ev(n){var e=X1(n)?J1:G1;return n?"#"+e(n.r)+e(n.g)+e(n.b)+x1(n.a,e):void 0}const tv=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function bg(n,e,t){const i=e*Math.min(t,1-t),s=(l,o=(l+n/30)%12)=>t-i*Math.max(Math.min(o-3,9-o,1),-1);return[s(0),s(8),s(4)]}function nv(n,e,t){const i=(s,l=(s+n/60)%6)=>t-t*e*Math.max(Math.min(l,4-l,1),0);return[i(5),i(3),i(1)]}function iv(n,e,t){const i=bg(n,1,.5);let s;for(e+t>1&&(s=1/(e+t),e*=s,t*=s),s=0;s<3;s++)i[s]*=1-e-t,i[s]+=e;return i}function sv(n,e,t,i,s){return n===s?(e-t)/i+(e<t?6:0):e===s?(t-n)/i+2:(n-e)/i+4}function ka(n){const t=n.r/255,i=n.g/255,s=n.b/255,l=Math.max(t,i,s),o=Math.min(t,i,s),r=(l+o)/2;let a,u,f;return l!==o&&(f=l-o,u=r>.5?f/(2-l-o):f/(l+o),a=sv(t,i,s,f,l),a=a*60+.5),[a|0,u||0,r]}function wa(n,e,t,i){return(Array.isArray(e)?n(e[0],e[1],e[2]):n(e,t,i)).map(Fi)}function Sa(n,e,t){return wa(bg,n,e,t)}function lv(n,e,t){return wa(iv,n,e,t)}function ov(n,e,t){return wa(nv,n,e,t)}function vg(n){return(n%360+360)%360}function rv(n){const e=tv.exec(n);let t=255,i;if(!e)return;e[5]!==i&&(t=e[6]?Zs(+e[5]):Fi(+e[5]));const s=vg(+e[2]),l=+e[3]/100,o=+e[4]/100;return e[1]==="hwb"?i=lv(s,l,o):e[1]==="hsv"?i=ov(s,l,o):i=Sa(s,l,o),{r:i[0],g:i[1],b:i[2],a:t}}function av(n,e){var t=ka(n);t[0]=vg(t[0]+e),t=Sa(t),n.r=t[0],n.g=t[1],n.b=t[2]}function uv(n){if(!n)return;const e=ka(n),t=e[0],i=Zu(e[1]),s=Zu(e[2]);return n.a<255?`hsla(${t}, ${i}%, ${s}%, ${bi(n.a)})`:`hsl(${t}, ${i}%, ${s}%)`}const Ju={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Gu={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function fv(){const n={},e=Object.keys(Gu),t=Object.keys(Ju);let i,s,l,o,r;for(i=0;i<e.length;i++){for(o=r=e[i],s=0;s<t.length;s++)l=t[s]Line truncated
* Chart.js v3.8.0
* https://www.chartjs.org
* (c) 2022 Chart.js Contributors
* Released under the MIT License
*/class py{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(e,t,i,s){const l=t.listeners[s],o=t.duration;l.forEach(r=>r({chart:e,initial:t.initial,numSteps:o,currentStep:Math.min(i-t.start,o)}))}_refresh(){this._request||(this._running=!0,this._request=dg.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let t=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;const l=i.items;let o=l.length-1,r=!1,a;for(;o>=0;--o)a=l[o],a._active?(a._total>i.duration&&(i.duration=a._total),a.tick(e),r=!0):(l[o]=l[l.length-1],l.pop());r&&(s.draw(),this._notify(s,i,e,"progress")),l.length||(i.running=!1,this._notify(s,i,e,"complete"),i.initial=!1),t+=l.length}),this._lastDate=e,t===0&&(this._running=!1)}_getAnims(e){const t=this._charts;let i=t.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(e,i)),i}listen(e,t,i){this._getAnims(e).listeners[t].push(i)}add(e,t){!t||!t.length||this._getAnims(e).items.push(...t)}has(e){return this._getAnims(e).items.length>0}start(e){const t=this._charts.get(e);!t||(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(e){if(!this._running)return!1;const t=this._charts.get(e);return!(!t||!t.running||!t.items.length)}stop(e){const t=this._charts.get(e);if(!t||!t.items.length)return;const i=t.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();t.items=[],this._notify(e,t,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var gi=new py;const ff="transparent",my={boolean(n,e,t){return t>.5?e:n},color(n,e,t){const i=Qu(n||ff),s=i.valid&&Qu(e||ff);return s&&s.valid?s.mix(i,t).hexString():e},number(n,e,t){return n+(e-n)*t}};class gy{constructor(e,t,i,s){const l=t[i];s=Ul([e.to,s,l,e.from]);const o=Ul([e.from,l,s]);this._active=!0,this._fn=e.fn||my[e.type||typeof o],this._easing=il[e.easing]||il.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=t,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(e,t,i){if(this._active){this._notify(!1);const s=this._target[this._prop],l=i-this._start,o=this._duration-l;this._start=i,this._duration=Math.floor(Math.max(o,e.duration)),this._total+=l,this._loop=!!e.loop,this._to=Ul([e.to,t,s,e.from]),this._from=Ul([e.from,s,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const t=e-this._start,i=this._duration,s=this._prop,l=this._from,o=this._loop,r=this._to;let a;if(this._active=l!==r&&(o||t<i),!this._active){this._target[s]=r,this._notify(!0);return}if(t<0){this._target[s]=l;return}a=t/i%2,a=o&&a>1?2-a:a,a=this._easing(Math.min(1,Math.max(0,a))),this._target[s]=this._fn(l,r,a)}wait(){const e=this._promises||(this._promises=[]);return new Promise((t,i)=>{e.push({res:t,rej:i})})}_notify(e){const t=e?"res":"rej",i=this._promises||[];for(let s=0;s<i.length;s++)i[s][t]()}}const _y=["x","y","borderWidth","radius","tension"],by=["color","borderColor","backgroundColor"];kt.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0});const vy=Object.keys(kt.animation);kt.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:n=>n!=="onProgress"&&n!=="onComplete"&&n!=="fn"});kt.set("animations",{colors:{type:"color",properties:by},numbers:{type:"number",properties:_y}});kt.describe("animations",{_fallback:"animation"});kt.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:n=>n|0}}}});class Ng{constructor(e,t){this._chart=e,this._properties=new Map,this.configure(t)}configure(e){if(!bt(e))return;const t=this._properties;Object.getOwnPropertyNames(e).forEach(i=>{const s=e[i];if(!bt(s))return;const l={};for(const o of vy)l[o]=s[o];(zt(s.properties)&&s.properties||[i]).forEach(o=>{(o===i||!t.has(o))&&t.set(o,l)})})}_animateOptions(e,t){const i=t.options,s=ky(e,i);if(!s)return[];const l=this._createAnimations(s,i);return i.$shared&&yy(e.options.$animations,i).then(()=>{e.options=i},()=>{}),l}_createAnimations(e,t){const i=this._properties,s=[],l=e.$animations||(e.$animations={}),o=Object.keys(t),r=Date.now();let a;for(a=o.length-1;a>=0;--a){const u=o[a];if(u.charAt(0)==="$")continue;if(u==="options"){s.push(...this._animateOptions(e,t));continue}const f=t[u];let c=l[u];const d=i.get(u);if(c)if(d&&c.active()){c.update(d,f,r);continue}else c.cancel();if(!d||!d.duration){e[u]=f;continue}l[u]=c=new gy(d,e,u,f),s.push(c)}return s}update(e,t){if(this._properties.size===0){Object.assign(e,t);return}const i=this._createAnimations(e,t);if(i.length)return gi.add(this._chart,i),!0}}function yy(n,e){const t=[]Line truncated
`)>-1?n.split(`
`):n}function R2(n,e){const{element:t,datasetIndex:i,index:s}=e,l=n.getDatasetMeta(i).controller,{label:o,value:r}=l.getLabelAndValue(s);return{chart:n,label:o,parsed:l.getParsed(s),raw:n.data.datasets[i].data[s],formattedValue:r,dataset:l.getDataset(),dataIndex:s,datasetIndex:i,element:t}}function qf(n,e){const t=n.chart.ctx,{body:i,footer:s,title:l}=n,{boxWidth:o,boxHeight:r}=e,a=Dn(e.bodyFont),u=Dn(e.titleFont),f=Dn(e.footerFont),c=l.length,d=s.length,m=i.length,g=Kn(e.padding);let v=g.height,b=0,y=i.reduce((S,M)=>S+M.before.length+M.lines.length+M.after.length,0);if(y+=n.beforeBody.length+n.afterBody.length,c&&(v+=c*u.lineHeight+(c-1)*e.titleSpacing+e.titleMarginBottom),y){const S=e.displayColors?Math.max(r,a.lineHeight):a.lineHeight;v+=m*S+(y-m)*a.lineHeight+(y-1)*e.bodySpacing}d&&(v+=e.footerMarginTop+d*f.lineHeight+(d-1)*e.footerSpacing);let C=0;const $=function(S){b=Math.max(b,t.measureText(S).width+C)};return t.save(),t.font=u.string,At(n.title,$),t.font=a.string,At(n.beforeBody.concat(n.afterBody),$),C=e.displayColors?o+2+e.boxPadding:0,At(i,S=>{At(S.before,$),At(S.lines,$),At(S.after,$)}),C=0,t.font=f.string,At(n.footer,$),t.restore(),b+=g.width,{width:b,height:v}}function H2(n,e){const{y:t,height:i}=e;return t<i/2?"top":t>n.height-i/2?"bottom":"center"}function j2(n,e,t,i){const{x:s,width:l}=i,o=t.caretSize+t.caretPadding;if(n==="left"&&s+l+o>e.width||n==="right"&&s-l-o<0)return!0}function q2(n,e,t,i){const{x:s,width:l}=t,{width:o,chartArea:{left:r,right:a}}=n;let u="center";return i==="center"?u=s<=(r+a)/2?"left":"right":s<=l/2?u="left":s>=o-l/2&&(u="right"),j2(u,n,e,t)&&(u="center"),u}function Vf(n,e,t){const i=t.yAlign||e.yAlign||H2(n,t);return{xAlign:t.xAlign||e.xAlign||q2(n,e,t,i),yAlign:i}}function V2(n,e){let{x:t,width:i}=n;return e==="right"?t-=i:e==="center"&&(t-=i/2),t}function z2(n,e,t){let{y:i,height:s}=n;return e==="top"?i+=t:e==="bottom"?i-=s+t:i-=s/2,i}function zf(n,e,t,i){const{caretSize:s,caretPadding:l,cornerRadius:o}=n,{xAlign:r,yAlign:a}=t,u=s+l,{topLeft:f,topRight:c,bottomLeft:d,bottomRight:m}=vs(o);let g=V2(e,r);const v=z2(e,a,u);return a==="center"?r==="left"?g+=u:r==="right"&&(g-=u):r==="left"?g-=Math.max(f,d)+s:r==="right"&&(g+=Math.max(c,m)+s),{x:fn(g,0,i.width-e.width),y:fn(v,0,i.height-e.height)}}function Xl(n,e,t){const i=Kn(t.padding);return e==="center"?n.x+n.width/2:e==="right"?n.x+n.width-i.right:n.x+i.left}function Bf(n){return li([],_i(n))}function B2(n,e,t){return Hi(n,{tooltip:e,tooltipItems:t,type:"tooltip"})}function Uf(n,e){const t=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return t?n.override(t):n}class Xr extends $i{constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart||e._chart,this._chart=this.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const t=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&t.options.animation&&i.animations,l=new Ng(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(l)),l}getContext(){return this.$context||(this.$context=B2(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,t){const{callbacks:i}=t,s=i.beforeTitle.apply(this,[e]),l=i.title.apply(this,[e]),o=i.afterTitle.apply(this,[e]);let r=[];return r=li(r,_i(s)),r=li(r,_i(l)),r=li(r,_i(o)),r}getBeforeBody(e,t){return Bf(t.callbacks.beforeBody.apply(this,[e]))}getBody(e,t){const{callbacks:i}=t,s=[];return At(e,l=>{const o={before:[],lines:[],after:[]},r=Uf(i,l);li(o.before,_i(r.beforeLabel.call(this,l))),li(o.lines,r.label.call(this,l)),li(o.after,_i(r.afterLabel.call(this,l))),s.push(o)}),s}getAfterBody(e,t){return Bf(t.callbacks.afterBody.apply(this,[e]))}getFooter(e,t){const{callbacks:i}=t,s=i.beforeFooter.apply(this,[e]),l=i.footer.apply(this,[e]),o=i.afterFooter.apply(this,[e]);let r=[];return r=li(r,_i(s)),r=li(r,_i(l)),r=li(r,_i(o)),r}_createItems(e){const t=this._active,i=this.chart.data,s=[],l=[],o=[];let r=[],a,u;for(a=0,u=t.length;a<u;++a)r.push(R2(this.chart,t[a]));return e.filter&&(r=r.filter((f,c,d)=>e.filter(f,c,d,i))),e.itemSort&&(r=r.sort((f,c)=>e.itemSort(f,c,i))),At(r,f=>{const c=Uf(e.callbacks,f);s.push(c.labelColor.call(this,f)),l.push(c.labelPointStyle.call(this,f)),o.push(c.labelTextColor.call(this,f))}),this.labelColors=s,this.labelPointStyles=l,this.labelTextColors=o,this.dataPoints=r,r}update(e,t){const i=this.options.setContext(this.getContext()),s=this._active;l Line truncated
* chartjs-adapter-luxon v1.1.0
* https://www.chartjs.org
* (c) 2021 chartjs-adapter-luxon Contributors
* Released under the MIT license
*/const fw={datetime:tt.DATETIME_MED_WITH_SECONDS,millisecond:"h:mm:ss.SSS a",second:tt.TIME_WITH_SECONDS,minute:tt.TIME_SIMPLE,hour:{hour:"numeric"},day:{day:"numeric",month:"short"},week:"DD",month:{month:"short",year:"numeric"},quarter:"'Q'q - yyyy",year:{year:"numeric"}};qg._date.override({_id:"luxon",_create:function(n){return tt.fromMillis(n,this.options)},formats:function(){return fw},parse:function(n,e){const t=this.options;if(n===null||typeof n>"u")return null;const i=typeof n;return i==="number"?n=this._create(n):i==="string"?typeof e=="string"?n=tt.fromFormat(n,e,t):n=tt.fromISO(n,t):n instanceof Date?n=tt.fromJSDate(n,t):i==="object"&&!(n instanceof tt)&&(n=tt.fromObject(n)),n.isValid?n.valueOf():null},format:function(n,e){const t=this._create(n);return typeof e=="string"?t.toFormat(e,this.options):t.toLocaleString(e)},add:function(n,e,t){const i={};return i[t]=e,this._create(n).plus(i).valueOf()},diff:function(n,e,t){return this._create(n).diff(this._create(e)).as(t).valueOf()},startOf:function(n,e,t){if(e==="isoWeek"){t=Math.trunc(Math.min(Math.max(0,t),6));const i=this._create(n);return i.minus({days:(i.weekday-t+7)%7}).startOf("day").valueOf()}return e?this._create(n).startOf(e).valueOf():n},endOf:function(n,e){return this._create(n).endOf(e).valueOf()}});function Qf(n){let e,t,i;return{c(){e=_("div"),h(e,"class","chart-loader loader svelte-vh4sl8")},m(s,l){w(s,e,l),i=!0},i(s){i||(Lt(()=>{t||(t=at(e,Wn,{duration:150},!0)),t.run(1)}),i=!0)},o(s){t||(t=at(e,Wn,{duration:150},!1)),t.run(0),i=!1},d(s){s&&k(e),s&&t&&t.end()}}}function cw(n){let e,t,i=n[1]===1?"log":"logs",s;return{c(){e=R(n[1]),t=T(),s=R(i)},m(l,o){w(l,e,o),w(l,t,o),w(l,s,o)},p(l,o){o&2&&me(e,l[1]),o&2&&i!==(i=l[1]===1?"log":"logs")&&me(s,i)},d(l){l&&k(e),l&&k(t),l&&k(s)}}}function dw(n){let e;return{c(){e=R("Loading...")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function hw(n){let e,t,i,s,l,o,r=n[2]&&Qf();function a(c,d){return c[2]?dw:cw}let u=a(n),f=u(n);return{c(){e=_("div"),r&&r.c(),t=T(),i=_("canvas"),s=T(),l=_("div"),f.c(),h(i,"class","chart-canvas svelte-vh4sl8"),Za(i,"height","250px"),Za(i,"width","100%"),h(e,"class","chart-wrapper svelte-vh4sl8"),ee(e,"loading",n[2]),h(l,"class","txt-hint m-t-xs txt-right")},m(c,d){w(c,e,d),r&&r.m(e,null),p(e,t),p(e,i),n[8](i),w(c,s,d),w(c,l,d),f.m(l,null),o=!0},p(c,[d]){c[2]?r?d&4&&A(r,1):(r=Qf(),r.c(),A(r,1),r.m(e,t)):r&&(De(),P(r,1,1,()=>{r=null}),Oe()),d&4&&ee(e,"loading",c[2]),u===(u=a(c))&&f?f.p(c,d):(f.d(1),f=u(c),f&&(f.c(),f.m(l,null)))},i(c){o||(A(r),o=!0)},o(c){P(r),o=!1},d(c){c&&k(e),r&&r.d(),n[8](null),c&&k(s),c&&k(l),f.d()}}}function pw(n,e,t){let{filter:i=""}=e,{presets:s=""}=e,l,o,r=[],a=0,u=!1;async function f(){return t(2,u=!0),Se.Logs.getRequestsStats({filter:[s,i].filter(Boolean).join("&&")}).then(m=>{c();for(let g of m)r.push({x:Y.getDateTime(g.date).toLocal().toJSDate(),y:g.total}),t(1,a+=g.total);r.push({x:new Date,y:void 0})}).catch(m=>{m!=null&&m.isAbort||(c(),console.warn(m),Se.errorResponseHandler(m,!1))}).finally(()=>{t(2,u=!1)})}function c(){t(1,a=0),t(7,r=[])}Jn(()=>(Oo.register(ji,Wo,Tl,qa,Ol,N2,U2),t(6,o=new Oo(l,{type:"line",data:{datasets:[{label:"Total requests",data:r,borderColor:"#ef4565",pointBackgroundColor:"#ef4565",backgroundColor:"rgb(239,69,101,0.05)",borderWidth:2,pointBorderWidth:0,fill:!0}]},options:{animation:!1,interaction:{intersect:!1,mode:"index"},scales:{y:{beginAtZero:!0,grid:{color:"#edf0f3",borderColor:"#dee3e8"},ticks:{precision:0,maxTicksLimit:6,autoSkip:!0,color:"#666f75"}},x:{type:"time",time:{unit:"hour",tooltipFormat:"DD h a"},grid:{borderColor:"#dee3e8",color:m=>m.tick.major?"#edf0f3":""},ticks:{maxTicksLimit:15,autoSkip:!0,maxRotation:0,major:{enabled:!0},color:m=>m.tick.major?"#16161a":"#666f75"}}},plugins:{legend:{display:!1}}}})),()=>o==null?void 0:o.destroy()));function d(m){he[m?"unshift":"push"](()=>{l=m,t(0,l)})}return n.$$set=m=>{"filter"in m&&t(3,i=m.filter),"presets"in m&&t(4,s=m.presets)},n.$$.update=()=>{n.$$.dirty&24&&(typeof i<"u"||typeof s<"u")&&f(),n.$$.dirty&192&&typeof r<"u"&&o&&(t(6,o.data.datasets[0].data=r,o),o.update())},[l,a,u,i,s,f,o,r,d]}class mw extends Fe{constructor(e){super(),Le(this,e,pw,hw,Pe,{filter:3,presets:4,load:5})}get load(){return this.$$.ctx[5]}}var xf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},r_={exports:{}};(function(n){var e=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/**
* Prism: Lightweight, robust, elegant syntax highlighting
*
* @license MIT <https://opensource.org/licenses/MIT>
* @author Lea Verou <https://lea.verou.me>
* @namespace
* @public
*/var t=function(i){var s=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,l=0,o={},r={manual:i.Prism&&i.Prism.manual,disableWorkerMessageHandler:i.Prism&&i.Prism.disableWorkerMessageHandler,util:{encode:function C($){return $ instanceof a?new a($.type,C($.content),$.alias):Array.isArray($)?$.map(C):$.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(C){return Object.prototype.toString.call(C).slice(8,-1)},objId:function(C){return C.__id||Object.defineProperty(C,"__id",{value:++l}),C.__id},clone:function C($,S){S=S||{};var M,D;switch(r.util.type($)){case"Object":if(D=r.util.objId($),S[D])return S[D];M={},S[D]=M;for(var E in $)$.hasOwnProperty(E)&&(M[E]=C($[E],S));return M;case"Array":return D=r.util.objId($),S[D]?S[D]:(M=[],S[D]=M,$.forEach(function(O,F){M[F]=C(O,S)}),M);default:return $}},getLanguage:function(C){for(;C;){var $=s.exec(C.className);if($)return $[1].toLowerCase();C=C.parentElement}return"none"},setLanguage:function(C,$){C.className=C.className.replace(RegExp(s,"gi"),""),C.classList.add("language-"+$)},currentScript:function(){if(typeof document>"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(M){var C=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(M.stack)||[])[1];if(C){var $=document.getElementsByTagName("script");for(var S in $)if($[S].src==C)return $[S]}return null}},isActive:function(C,$,S){for(var M="no-"+$;C;){var D=C.classList;if(D.contains($))return!0;if(D.contains(M))return!1;C=C.parentElement}return!!S}},languages:{plain:o,plaintext:o,text:o,txt:o,extend:function(C,$){var S=r.util.clone(r.languages[C]);for(var M in $)S[M]=$[M];return S},insertBefore:function(C,$,S,M){M=M||r.languages;var D=M[C],E={};for(var O in D)if(D.hasOwnProperty(O)){if(O==$)for(var F in S)S.hasOwnProperty(F)&&(E[F]=S[F]);S.hasOwnProperty(O)||(E[O]=D[O])}var L=M[C];return M[C]=E,r.languages.DFS(r.languages,function(H,j){j===L&&H!=C&&(this[H]=E)}),E},DFS:function C($,S,M,D){D=D||{};var E=r.util.objId;for(var O in $)if($.hasOwnProperty(O)){S.call($,O,$[O],M||O);var F=$[O],L=r.util.type(F);L==="Object"&&!D[E(F)]?(D[E(F)]=!0,C(F,S,null,D)):L==="Array"&&!D[E(F)]&&(D[E(F)]=!0,C(F,S,O,D))}}},plugins:{},highlightAll:function(C,$){r.highlightAllUnder(document,C,$)},highlightAllUnder:function(C,$,S){var M={callback:S,container:C,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};r.hooks.run("before-highlightall",M),M.elements=Array.prototype.slice.apply(M.container.querySelectorAll(M.selector)),r.hooks.run("before-all-elements-highlight",M);for(var D=0,E;E=M.elements[D++];)r.highlightElement(E,$===!0,M.callback)},highlightElement:function(C,$,S){var M=r.util.getLanguage(C),D=r.languages[M];r.util.setLanguage(C,M);var E=C.parentElement;E&&E.nodeName.toLowerCase()==="pre"&&r.util.setLanguage(E,M);var O=C.textContent,F={element:C,language:M,grammar:D,code:O};function L(j){F.highlightedCode=j,r.hooks.run("before-insert",F),F.element.innerHTML=F.highlightedCode,r.hooks.run("after-highlight",F),r.hooks.run("complete",F),S&&S.call(F.element)}if(r.hooks.run("before-sanity-check",F),E=F.element.parentElement,E&&E.nodeName.toLowerCase()==="pre"&&!E.hasAttribute("tabindex")&&E.setAttribute("tabindex","0"),!F.code){r.hooks.run("complete",F),S&&S.call(F.element);return}if(r.hooks.run("before-highlight",F),!F.grammar){L(r.util.encode(F.code));return}if($&&i.Worker){var H=new Worker(r.filename);H.onmessage=function(j){L(j.data)},H.postMessage(JSON.stringify({language:F.language,code:F.code,immediateClose:!0}))}else L(r.highlight(F.code,F.grammar,F.language))},highlight:function(C,$,S){var M={code:C,grammar:$,language:S};if(r.hooks.run("before-tokenize",M),!M.grammar)throw new Error('The language "'+M.language+'" has no grammar.');return M.tokens=r.tokenize(M.code,M.grammar),r.hooks.run("after-tokenize",M),a.stringify(r.util.encode(M.tokens),M.language)},tokenize:function(C,$){var S=$.rest;if(S){for(var M in S)$[M]=S[M];delete $.rest}var D=new c;return d(D,D.head,C),f(C,D,$,D.head,0),g(D)},hooks:{all:{},add:function(C,$){var S=r.hooks.all;S[C]=S[C]||[],S[C].push($)},run:function(C,$){var S=r.hooks.all[C];if(!(!S||!S.length))for(var M=0,D;D=S[M++];)D($)}},Token:a};i.Prism=r;function a(C,$,S,M){this.type=C,this.content=$,this.alias=S,this.length=(M||"").length|0}a.stringify=function C($,S){if(typeof $=="string")return $;if(Array.isArray($)){var M="";return $.forEach(function(L){M+=C(L,S)}),M}var D={type:$.type,content:C($.content,S),tag:"span",classes:["token",$.type],attributes:{},language:S},E=$.alias;E&&(Array.isArray(E)?Array.prototype.push.apply(D.classes,E):D.classes.push(E)),r.hooks.run("wrap",D);var O="";for(var F in D.attributes)O+=" "+F+'="'+(D.attributes[F]||"").replace(/"/g,"&quot;")+'"';return"<"+D.tag+' class="'+D.classes.join(" ")+'"'+O+">"+D.content+"</"+D.tag+">"};function u(C,$,S,M){C.lastIndex=$;var D=C.exec(S);if(D&&M&&D[1]){var E=D[1].length;D.index+=E,D[0]=D[0].slice(E)}return D}funLine truncated
`),b.hasAttribute("data-start")||b.setAttribute("data-start",String(F+1))}y.textContent=D,t.highlightElement(y)},function(D){b.setAttribute(r,f),y.textContent=D})}}),t.plugins.fileHighlight={highlight:function(b){for(var y=(b||document).querySelectorAll(c),C=0,$;$=y[C++];)t.highlightElement($)}};var g=!1;t.fileHighlight=function(){g||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),g=!0),t.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(r_);const Us=r_.exports;var gw={exports:{}};(function(n){(function(){if(typeof Prism>"u")return;var e=Object.assign||function(l,o){for(var r in o)o.hasOwnProperty(r)&&(l[r]=o[r]);return l};function t(l){this.defaults=e({},l)}function i(l){return l.replace(/-(\w)/g,function(o,r){return r.toUpperCase()})}function s(l){for(var o=0,r=0;r<l.length;++r)l.charCodeAt(r)==" ".charCodeAt(0)&&(o+=3);return l.length+o}t.prototype={setDefaults:function(l){this.defaults=e(this.defaults,l)},normalize:function(l,o){o=e(this.defaults,o);for(var r in o){var a=i(r);r!=="normalize"&&a!=="setDefaults"&&o[r]&&this[a]&&(l=this[a].call(this,l,o[r]))}return l},leftTrim:function(l){return l.replace(/^\s+/,"")},rightTrim:function(l){return l.replace(/\s+$/,"")},tabsToSpaces:function(l,o){return o=o|0||4,l.replace(/\t/g,new Array(++o).join(" "))},spacesToTabs:function(l,o){return o=o|0||4,l.replace(RegExp(" {"+o+"}","g")," ")},removeTrailing:function(l){return l.replace(/\s*?$/gm,"")},removeInitialLineFeed:function(l){return l.replace(/^(?:\r?\n|\r)/,"")},removeIndent:function(l){var o=l.match(/^[^\S\n\r]*(?=\S)/gm);return!o||!o[0].length||(o.sort(function(r,a){return r.length-a.length}),!o[0].length)?l:l.replace(RegExp("^"+o[0],"gm"),"")},indent:function(l,o){return l.replace(/^[^\S\n\r]*(?=\S)/gm,new Array(++o).join(" ")+"$&")},breakLines:function(l,o){o=o===!0?80:o|0||80;for(var r=l.split(`
`),a=0;a<r.length;++a)if(!(s(r[a])<=o)){for(var u=r[a].split(/(\s+)/g),f=0,c=0;c<u.length;++c){var d=s(u[c]);f+=d,f>o&&(u[c]=`
`+u[c],f=d)}r[a]=u.join("")}return r.join(`
`)}},n.exports&&(n.exports=t),Prism.plugins.NormalizeWhitespace=new t({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",function(l){var o=Prism.plugins.NormalizeWhitespace;if(!(l.settings&&l.settings["whitespace-normalization"]===!1)&&!!Prism.util.isActive(l.element,"whitespace-normalization",!0)){if((!l.element||!l.element.parentNode)&&l.code){l.code=o.normalize(l.code,l.settings);return}var r=l.element.parentNode;if(!(!l.code||!r||r.nodeName.toLowerCase()!=="pre")){for(var a=r.childNodes,u="",f="",c=!1,d=0;d<a.length;++d){var m=a[d];m==l.element?c=!0:m.nodeName==="#text"&&(c?f+=m.nodeValue:u+=m.nodeValue,r.removeChild(m),--d)}if(!l.element.children.length||!Prism.plugins.KeepMarkup)l.code=u+l.code+f,l.code=o.normalize(l.code,l.settings);else{var g=u+l.element.innerHTML+f;l.element.innerHTML=o.normalize(g,l.settings),l.code=l.element.textContent}}}})})()})(gw);function _w(n){let e,t;return{c(){e=_("div"),t=_("code"),h(t,"class","svelte-tv7jme"),h(e,"class","code-wrapper prism-light svelte-tv7jme")},m(i,s){w(i,e,s),p(e,t),t.innerHTML=n[0]},p(i,[s]){s&1&&(t.innerHTML=i[0])},i:oe,o:oe,d(i){i&&k(e)}}}function bw(n,e,t){let{content:i=""}=e,{language:s="javascript"}=e,l="";function o(r){return r=typeof r=="string"?r:"",r=Us.plugins.NormalizeWhitespace.normalize(r,{"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Us.highlight(r,Us.languages[s]||Us.languages.javascript,s)}return n.$$set=r=>{"content"in r&&t(1,i=r.content),"language"in r&&t(2,s=r.language)},n.$$.update=()=>{n.$$.dirty&2&&typeof Us<"u"&&i&&t(0,l=o(i))},[l,i,s]}class ln extends Fe{constructor(e){super(),Le(this,e,bw,_w,Pe,{content:1,language:2})}}const vw=n=>({}),ec=n=>({}),yw=n=>({}),tc=n=>({});function nc(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g,v,b,y,C,$=n[4]&&!n[2]&&ic(n);const S=n[18].header,M=On(S,n,n[17],tc);let D=n[4]&&n[2]&&sc(n);const E=n[18].default,O=On(E,n,n[17],null),F=n[18].footer,L=On(F,n,n[17],ec);return{c(){e=_("div"),t=_("div"),s=T(),l=_("div"),o=_("div"),$&&$.c(),r=T(),M&&M.c(),a=T(),D&&D.c(),u=T(),f=_("div"),O&&O.c(),c=T(),d=_("div"),L&&L.c(),h(t,"class","overlay"),h(o,"class","overlay-panel-section panel-header"),h(f,"class","overlay-panel-section panel-content"),h(d,"class","overlay-panel-section panel-footer"),h(l,"class",m="overlay-panel "+n[1]+" "+n[8]),ee(l,"popup",n[2]),h(e,"class","overlay-panel-container"),ee(e,"padded",n[2]),ee(e,"active",n[0])},m(H,j){w(H,e,j),p(e,t),p(e,s),p(e,l),p(l,o),$&&$.m(o,null),p(o,r),M&&M.m(o,null),p(o,a),D&&D.m(o,null),p(l,u),p(l,f),O&&O.m(f,null),n[20](f),p(l,c),p(l,d),L&&L.m(d,null),b=!0,y||(C=[X(t,"click",Qt(n[19])),X(f,"scroll",n[21])],y=!0)},p(H,j){n=H,n[4]&&!n[2]?$?$.p(n,j):($=ic(n),$.c(),$.m(o,r)):$&&($.d(1),$=null),M&&M.p&&(!b||j&131072)&&An(M,S,n,n[17],b?En(S,n[17],j,yw):Pn(n[17]),tc),n[4]&&n[2]?D?D.p(n,j):(D=sc(n),D.c(),D.m(o,null)):D&&(D.d(1),D=null),O&&O.p&&(!b||j&131072)&&An(O,E,n,n[17],b?En(E,n[17],j,null):Pn(n[17]),null),L&&L.p&&(!b||j&131072)&&An(L,F,n,n[17],b?En(F,n[17],j,vw):Pn(n[17]),ec),(!b||j&258&&m!==(m="overlay-panel "+n[1]+" "+n[8]))&&h(l,"class",m),j&262&&ee(l,"popup",n[2]),j&4&&ee(e,"padded",n[2]),j&1&&ee(e,"active",n[0])},i(H){b||(Lt(()=>{i||(i=at(t,bo,{duration:gs,opacity:0},!0)),i.run(1)}),A(M,H),A(O,H),A(L,H),Lt(()=>{v&&v.end(1),g=Xp(l,Un,n[2]?{duration:gs,y:-10}:{duration:gs,x:50}),g.start()}),b=!0)},o(H){i||(i=at(t,bo,{duration:gs,opacity:0},!1)),i.run(0),P(M,H),P(O,H),P(L,H),g&&g.invalidate(),v=Qp(l,Un,n[2]?{duration:gs,y:10}:{duration:gs,x:50}),b=!1},d(H){H&&k(e),H&&i&&i.end(),$&&$.d(),M&&M.d(H),D&&D.d(),O&&O.d(H),n[20](null),L&&L.d(H),H&&v&&v.end(),y=!1,st(C)}}}function ic(n){let e,t,i;return{c(){e=_("div"),e.innerHTML='<i class="ri-close-line"></i>',h(e,"class","overlay-close")},m(s,l){w(s,e,l),t||(i=X(e,"click",Qt(n[5])),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function sc(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<i class="ri-close-line txt-lg"></i>',h(e,"type","button"),h(e,"class","btn btn-sm btn-circle btn-secondary btn-close m-l-auto")},m(s,l){w(s,e,l),t||(i=X(e,"click",Qt(n[5])),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function kw(n){let e,t,i,s,l=n[0]&&nc(n);return{c(){e=_("div"),l&&l.c(),h(e,"class","overlay-panel-wrapper")},m(o,r){w(o,e,r),l&&l.m(e,null),n[22](e),t=!0,i||(s=[X(window,"resize",n[10]),X(window,"keydown",n[9])],i=!0)},p(o,[r]){o[0]?l?(l.p(o,r),r&1&&A(l,1)):(l=nc(o),l.c(),A(l,1),l.m(e,null)):l&&(De(),P(l,1,1,()=>{l=null}),Oe())},i(o){t||(A(l),t=!0)},o(o){P(l),t=!1},d(o){o&&k(e),l&&l.d(),n[22](null),i=!1,st(s)}}}let Zi;function a_(){return Zi=Zi||document.querySelector(".overlays"),Zi||(Zi=document.createElement("div"),Zi.classList.add("overlays"),document.body.appendChild(Zi)),Zi}let gs=150;function lc(){return 1e3+a_().querySelectorAll(".overlay-panel-container.active").length}function ww(n,e,t){let{$$slots:i={},$$scope:s}=e,{class:l=""}=e,{active:o=!1}=e,{popup:r=!1}=e,{overlayClose:a=!0}=e,{btnClose:u=!0}=e,{escClose:f=!0}=e,{beforeOpen:c=void 0}=e,{bef Line truncated
This field is disabled if "Only domains" is set.`,position:"top"})),d=!0)},p(b,y){(!c||y&16&&l!==(l=b[4]))&&h(e,"for",l);const C={};y&16&&(C.id=b[4]),y&1&&(C.disabled=!Y.isEmpty(b[0].onlyDomains)),!a&&y&1&&(a=!0,C.value=b[0].exceptDomains,He(()=>a=!1)),r.$set(C)},i(b){c||(A(r.$$.fragment,b),c=!0)},o(b){P(r.$$.fragment,b),c=!1},d(b){b&&k(e),b&&k(o),z(r,b),b&&k(u),b&&k(f),d=!1,m()}}}function MS(n){let e,t,i,s,l,o,r,a,u,f,c,d,m;function g(b){n[3](b)}let v={id:n[4]+".options.onlyDomains",disabled:!Y.isEmpty(n[0].exceptDomains)};return n[0].onlyDomains!==void 0&&(v.value=n[0].onlyDomains),r=new fs({props:v}),he.push(()=>Re(r,"value",g)),{c(){e=_("label"),t=_("span"),t.textContent="Only domains",i=T(),s=_("i"),o=T(),B(r.$$.fragment),u=T(),f=_("div"),f.textContent="Use comma as separator.",h(t,"class","txt"),h(s,"class","ri-information-line link-hint"),h(e,"for",l=n[4]+".options.onlyDomains"),h(f,"class","help-block")},m(b,y){w(b,e,y),p(e,t),p(e,i),p(e,s),w(b,o,y),V(r,b,y),w(b,u,y),w(b,f,y),c=!0,d||(m=et(Et.call(null,s,{text:`List of domains that are ONLY allowed.
This field is disabled if "Except domains" is set.`,position:"top"})),d=!0)},p(b,y){(!c||y&16&&l!==(l=b[4]+".options.onlyDomains"))&&h(e,"for",l);const C={};y&16&&(C.id=b[4]+".options.onlyDomains"),y&1&&(C.disabled=!Y.isEmpty(b[0].exceptDomains)),!a&&y&1&&(a=!0,C.value=b[0].onlyDomains,He(()=>a=!1)),r.$set(C)},i(b){c||(A(r.$$.fragment,b),c=!0)},o(b){P(r.$$.fragment,b),c=!1},d(b){b&&k(e),b&&k(o),z(r,b),b&&k(u),b&&k(f),d=!1,m()}}}function TS(n){let e,t,i,s,l,o,r;return i=new Ie({props:{class:"form-field",name:"schema."+n[1]+".options.exceptDomains",$$slots:{default:[CS,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),o=new Ie({props:{class:"form-field",name:"schema."+n[1]+".options.onlyDomains",$$slots:{default:[MS,({uniqueId:a})=>({4:a}),({uniqueId:a})=>a?16:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=T(),l=_("div"),B(o.$$.fragment),h(t,"class","col-sm-6"),h(l,"class","col-sm-6"),h(e,"class","grid")},m(a,u){w(a,e,u),p(e,t),V(i,t,null),p(e,s),p(e,l),V(o,l,null),r=!0},p(a,[u]){const f={};u&2&&(f.name="schema."+a[1]+".options.exceptDomains"),u&49&&(f.$$scope={dirty:u,ctx:a}),i.$set(f);const c={};u&2&&(c.name="schema."+a[1]+".options.onlyDomains"),u&49&&(c.$$scope={dirty:u,ctx:a}),o.$set(c)},i(a){r||(A(i.$$.fragment,a),A(o.$$.fragment,a),r=!0)},o(a){P(i.$$.fragment,a),P(o.$$.fragment,a),r=!1},d(a){a&&k(e),z(i),z(o)}}}function DS(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(r){n.$$.not_equal(s.exceptDomains,r)&&(s.exceptDomains=r,t(0,s))}function o(r){n.$$.not_equal(s.onlyDomains,r)&&(s.onlyDomains=r,t(0,s))}return n.$$set=r=>{"key"in r&&t(1,i=r.key),"options"in r&&t(0,s=r.options)},[s,i,l,o]}class c_ extends Fe{constructor(e){super(),Le(this,e,DS,TS,Pe,{key:1,options:0})}}function OS(n){let e,t,i,s;function l(a){n[2](a)}function o(a){n[3](a)}let r={};return n[0]!==void 0&&(r.key=n[0]),n[1]!==void 0&&(r.options=n[1]),e=new c_({props:r}),he.push(()=>Re(e,"key",l)),he.push(()=>Re(e,"options",o)),{c(){B(e.$$.fragment)},m(a,u){V(e,a,u),s=!0},p(a,[u]){const f={};!t&&u&1&&(t=!0,f.key=a[0],He(()=>t=!1)),!i&&u&2&&(i=!0,f.options=a[1],He(()=>i=!1)),e.$set(f)},i(a){s||(A(e.$$.fragment,a),s=!0)},o(a){P(e.$$.fragment,a),s=!1},d(a){z(e,a)}}}function ES(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(r){i=r,t(0,i)}function o(r){s=r,t(1,s)}return n.$$set=r=>{"key"in r&&t(0,i=r.key),"options"in r&&t(1,s=r.options)},[i,s,l,o]}class AS extends Fe{constructor(e){super(),Le(this,e,ES,OS,Pe,{key:0,options:1})}}var vr=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],ys={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(n){return typeof console<"u"&&console.warn(n)},getWeek:function(n){var e=new Date(n.getTime());e.setHours(0,0,0,0),e.setDate(e.getDate()+3-(e.getDay()+6)%7);var t=new Date(e.getFullYear(),0,4);return 1+Math.round(((e.getTime()-t.getTime())/864e5-3+(t.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},gl={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(n){var e=n%100;if(e>3&&e<21)return"th";switch(e%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to togg Line truncated
<span class='flatpickr-weekday'>
`+I.join("</span><span class='flatpickr-weekday'>")+`
</span>
`}}function fe(){t.calendarContainer.classList.add("hasWeeks");var N=Ot("div","flatpickr-weekwrapper");N.appendChild(Ot("span","flatpickr-weekday",t.l10n.weekAbbreviation));var I=Ot("div","flatpickr-weeks");return N.appendChild(I),{weekWrapper:N,weekNumbers:I}}function ke(N,I){I===void 0&&(I=!0);var q=I?N:N-t.currentMonth;q<0&&t._hidePrevMonthArrow===!0||q>0&&t._hideNextMonthArrow===!0||(t.currentMonth+=q,(t.currentMonth<0||t.currentMonth>11)&&(t.currentYear+=t.currentMonth>11?1:-1,t.currentMonth=(t.currentMonth+12)%12,Ge("onYearChange"),Q()),j(),Ge("onMonthChange"),Ht())}function le(N,I){if(N===void 0&&(N=!0),I===void 0&&(I=!0),t.input.value="",t.altInput!==void 0&&(t.altInput.value=""),t.mobileInput!==void 0&&(t.mobileInput.value=""),t.selectedDates=[],t.latestSelectedDateObj=void 0,I===!0&&(t.currentYear=t._initialDate.getFullYear(),t.currentMonth=t._initialDate.getMonth()),t.config.enableTime===!0){var q=Sr(t.config),ne=q.hours,Te=q.minutes,Ae=q.seconds;m(ne,Te,Ae)}t.redraw(),N&&Ge("onChange")}function ue(){t.isOpen=!1,t.isMobile||(t.calendarContainer!==void 0&&t.calendarContainer.classList.remove("open"),t._input!==void 0&&t._input.classList.remove("active")),Ge("onClose")}function Me(){t.config!==void 0&&Ge("onDestroy");for(var N=t._handlers.length;N--;)t._handlers[N].remove();if(t._handlers=[],t.mobileInput)t.mobileInput.parentNode&&t.mobileInput.parentNode.removeChild(t.mobileInput),t.mobileInput=void 0;else if(t.calendarContainer&&t.calendarContainer.parentNode)if(t.config.static&&t.calendarContainer.parentNode){var I=t.calendarContainer.parentNode;if(I.lastChild&&I.removeChild(I.lastChild),I.parentNode){for(;I.firstChild;)I.parentNode.insertBefore(I.firstChild,I);I.parentNode.removeChild(I)}}else t.calendarContainer.parentNode.removeChild(t.calendarContainer);t.altInput&&(t.input.type="text",t.altInput.parentNode&&t.altInput.parentNode.removeChild(t.altInput),delete t.altInput),t.input&&(t.input.type=t.input._type,t.input.classList.remove("flatpickr-input"),t.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(q){try{delete t[q]}catch{}})}function Z(N){return t.calendarContainer.contains(N)}function be(N){if(t.isOpen&&!t.config.inline){var I=$n(N),q=Z(I),ne=I===t.input||I===t.altInput||t.element.contains(I)||N.path&&N.path.indexOf&&(~N.path.indexOf(t.input)||~N.path.indexOf(t.altInput)),Te=!ne&&!q&&!Z(N.relatedTarget),Ae=!t.config.ignoredFocusElements.some(function(Qe){return Qe.contains(I)});Te&&Ae&&(t.config.allowInput&&t.setDate(t._input.value,!1,t.config.altInput?t.config.altFormat:t.config.dateFormat),t.timeContainer!==void 0&&t.minuteElement!==void 0&&t.hourElement!==void 0&&t.input.value!==""&&t.input.value!==void 0&&a(),t.close(),t.config&&t.config.mode==="range"&&t.selectedDates.length===1&&t.clear(!1))}}function x(N){if(!(!N||t.config.minDate&&N<t.config.minDate.getFullYear()||t.config.maxDate&&N>t.config.maxDate.getFullYear())){var I=N,q=t.currentYear!==I;t.currentYear=I||t.currentYear,t.config.maxDate&&t.currentYear===t.config.maxDate.getFullYear()?t.currentMonth=Math.min(t.config.maxDate.getMonth(),t.currentMonth):t.config.minDate&&t.currentYear===t.config.minDate.getFullYear()&&(t.currentMonth=Math.max(t.config.minDate.getMonth(),t.currentMonth)),q&&(t.redraw(),Ge("onYearChange"),Q())}}function G(N,I){var q;I===void 0&&(I=!0);var ne=t.parseDate(N,void 0,I);if(t.config.minDate&&ne&&Cn(ne,t.config.minDate,I!==void 0?I:!t.minDateHasTime)<0||t.config.maxDate&&ne&&Cn(ne,t.config.maxDate,I!==void 0?I:!t.maxDateHasTime)>0)return!1;if(!t.config.enable&&t.config.disable.length===0)return!0;if(ne===void 0)return!1;for(var Te=!!t.config.enable,Ae=(q=t.config.enable)!==null&&q!==void 0?q:t.config.disable,Qe=0,Ue=void 0;Qe<Ae.length;Qe++){if(Ue=Ae[Qe],typeof Ue=="function"&&Ue(ne))return Te;if(Ue instanceof Date&&ne!==void 0&&Ue.getTime()===ne.getTime())return Te;if(typeof Ue=="string"){var xe=t.parseDate(Ue,void 0,!0);return xe&&xe.getTime()===ne.getTime()?Te:!Te}else if(typeof Ue=="object"&&ne!==void 0&&Ue.from&&Ue.to&&ne.getTime()>=Ue.from.getTime()&&ne.getTime()<=Ue.to.getTime())return Te}return!Te}function _e(N){return t.daysContainer!==void 0?N.className.indexOf("hidden")===-1&&N.className.indexOf("flatpickr-disabled")===-1&&t.daysContainer.contains(N):!1}function je(N){var I=N.target===t._input,q=t._input.value.trimEnd()!==Tt();I&&q&&!(N.relatedTarget&&Z(N.relatedTarget))&&t.setDate(t._input.value,!0,N.target===t.altInput?t.config.altFormat:t.config.dateFormat)}function Ne(N){var I=$n(N) Line truncated
`),d=_("span"),m=_("span"),m.textContent="Choose presets",g=T(),B(v.$$.fragment),h(t,"class","txt"),h(s,"class","ri-information-line link-hint"),h(e,"for",l=n[10]),h(m,"class","txt link-primary"),h(d,"class","inline-flex"),h(f,"class","help-block")},m(M,D){w(M,e,D),p(e,t),p(e,i),p(e,s),w(M,o,D),V(r,M,D),w(M,u,D),w(M,f,D),p(f,c),p(f,d),p(d,m),p(d,g),V(v,d,null),b=!0,y||(C=et(Et.call(null,s,{text:`Allow files ONLY with the listed mime types.
Leave empty for no restriction.`,position:"top"})),y=!0)},p(M,D){(!b||D&1024&&l!==(l=M[10]))&&h(e,"for",l);const E={};D&1024&&(E.id=M[10]),!a&&D&1&&(a=!0,E.value=M[0].mimeTypes,He(()=>a=!1)),r.$set(E);const O={};D&2049&&(O.$$scope={dirty:D,ctx:M}),v.$set(O)},i(M){b||(A(r.$$.fragment,M),A(v.$$.fragment,M),b=!0)},o(M){P(r.$$.fragment,M),P(v.$$.fragment,M),b=!1},d(M){M&&k(e),M&&k(o),z(r,M),M&&k(u),M&&k(f),z(v),y=!1,C()}}}function s3(n){let e,t,i,s,l,o,r,a,u,f,c,d,m;function g(b){n[9](b)}let v={id:n[10],placeholder:"eg. 50x50, 480x720"};return n[0].thumbs!==void 0&&(v.value=n[0].thumbs),r=new fs({props:v}),he.push(()=>Re(r,"value",g)),{c(){e=_("label"),t=_("span"),t.textContent="Thumb sizes",i=T(),s=_("i"),o=T(),B(r.$$.fragment),u=T(),f=_("div"),f.textContent="Use comma as separator.",h(t,"class","txt"),h(s,"class","ri-information-line link-hint"),h(e,"for",l=n[10]),h(f,"class","help-block")},m(b,y){w(b,e,y),p(e,t),p(e,i),p(e,s),w(b,o,y),V(r,b,y),w(b,u,y),w(b,f,y),c=!0,d||(m=et(Et.call(null,s,{text:"List of thumb sizes for image files. The thumbs will be generated lazily on first access.",position:"top"})),d=!0)},p(b,y){(!c||y&1024&&l!==(l=b[10]))&&h(e,"for",l);const C={};y&1024&&(C.id=b[10]),!a&&y&1&&(a=!0,C.value=b[0].thumbs,He(()=>a=!1)),r.$set(C)},i(b){c||(A(r.$$.fragment,b),c=!0)},o(b){P(r.$$.fragment,b),c=!1},d(b){b&&k(e),b&&k(o),z(r,b),b&&k(u),b&&k(f),d=!1,m()}}}function l3(n){let e,t,i,s,l,o,r,a,u,f,c,d,m;return i=new Ie({props:{class:"form-field required",name:"schema."+n[1]+".options.maxSize",$$slots:{default:[e3,({uniqueId:g})=>({10:g}),({uniqueId:g})=>g?1024:0]},$$scope:{ctx:n}}}),o=new Ie({props:{class:"form-field required",name:"schema."+n[1]+".options.maxSelect",$$slots:{default:[t3,({uniqueId:g})=>({10:g}),({uniqueId:g})=>g?1024:0]},$$scope:{ctx:n}}}),u=new Ie({props:{class:"form-field",name:"schema."+n[1]+".options.mimeTypes",$$slots:{default:[i3,({uniqueId:g})=>({10:g}),({uniqueId:g})=>g?1024:0]},$$scope:{ctx:n}}}),d=new Ie({props:{class:"form-field",name:"schema."+n[1]+".options.thumbs",$$slots:{default:[s3,({uniqueId:g})=>({10:g}),({uniqueId:g})=>g?1024:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=T(),l=_("div"),B(o.$$.fragment),r=T(),a=_("div"),B(u.$$.fragment),f=T(),c=_("div"),B(d.$$.fragment),h(t,"class","col-sm-6"),h(l,"class","col-sm-6"),h(a,"class","col-sm-12"),h(c,"class","col-sm-12"),h(e,"class","grid")},m(g,v){w(g,e,v),p(e,t),V(i,t,null),p(e,s),p(e,l),V(o,l,null),p(e,r),p(e,a),V(u,a,null),p(e,f),p(e,c),V(d,c,null),m=!0},p(g,[v]){const b={};v&2&&(b.name="schema."+g[1]+".options.maxSize"),v&3073&&(b.$$scope={dirty:v,ctx:g}),i.$set(b);const y={};v&2&&(y.name="schema."+g[1]+".options.maxSelect"),v&3073&&(y.$$scope={dirty:v,ctx:g}),o.$set(y);const C={};v&2&&(C.name="schema."+g[1]+".options.mimeTypes"),v&3073&&(C.$$scope={dirty:v,ctx:g}),u.$set(C);const $={};v&2&&($.name="schema."+g[1]+".options.thumbs"),v&3073&&($.$$scope={dirty:v,ctx:g}),d.$set($)},i(g){m||(A(i.$$.fragment,g),A(o.$$.fragment,g),A(u.$$.fragment,g),A(d.$$.fragment,g),m=!0)},o(g){P(i.$$.fragment,g),P(o.$$.fragment,g),P(u.$$.fragment,g),P(d.$$.fragment,g),m=!1},d(g){g&&k(e),z(i),z(o),z(u),z(d)}}}function o3(n,e,t){let{key:i=""}=e,{options:s={}}=e;function l(){s.maxSize=It(this.value),t(0,s)}function o(){s.maxSelect=It(this.value),t(0,s)}function r(m){n.$$.not_equal(s.mimeTypes,m)&&(s.mimeTypes=m,t(0,s))}const a=()=>{t(0,s.mimeTypes=["application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],s)},u=()=>{t(0,s.mimeTypes=["image/jpg","image/jpeg","image/png","image/svg+xml","image/gif"],s)},f=()=>{t(0,s.mimeTypes=["video/mp4","video/x-ms-wmv","video/quicktime","video/3gpp"],s)},c=()=>{t(0,s.mimeTypes=["application/zip","application/x-7z-compressed","application/x-rar-compressed"],s)};function d(m){n.$$.not_equal(s.thumbs,m)&&(s.thumbs=m,t(0,s))}return n.$$set=m=>{"key"in m&&t(1,i=m.key),"options"in m&&t(0,s=m.options)},n.$$.update=()=>{n.$$.dirty&1&&Y.isEmpty(s)&&t(0,s={maxSelect:1,maxSize:5242880,thumbs:[],mimeTypes:[]})},[s,i,l,o,r,a,u,f,c,d]}class r3 extends Fe{constructor(e){super(),Le(this,e,o3,l3,Pe,{key:1,options:0})}}function a3(n){let e,t,i,s,l,o,r;function a(f){n[5](f)}let u={searchable:n[3].length>5,selectPlaceholder:n[2]?"Loading...":"Select collection",noOptionsText:"No collections found",selectionKey:"id",items:n[3]};return n[0].collectionId!==void 0&&(u.keyOfSelected=n[0].collectionId),l=new us({props:u}),he.push(()=>Re(l,"keyOfSelected",a)),{c(){e=_("label"),t=R("Collection"),s=T(),B(l.$$.fragment),h(e,"for",i=n[9])},m(f,c){w(f,e,c),p(e,t),w(f,s,c),V(l,f,c),r=!0},p(f,c){(!r||c&512&&i!==(i=f[9]))&&h(e,"for",i);const d={};c&8&&(d.searchable=f[3].length>5),c&4&&(d.selectPlaceholder=f[2]?"Loading...":"Select collection"),c&8&&(d.items=f[3]),!o&&c&1&&(o=!0,d.keyOfSelected=f[0].collectionId,He(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r= Line truncated
form-field
required
`+(n[5]?"":"invalid")+`
`+(n[0].id&&n[0].system?"disabled":"")+`
`,name:"schema."+n[1]+".name",$$slots:{default:[y3,({uniqueId:j})=>({38:j}),({uniqueId:j})=>[0,j?128:0]]},$$scope:{ctx:n}}});const E=[A3,E3,O3,D3,T3,M3,C3,$3,S3,w3,k3],O=[];function F(j,Q){return j[0].type==="text"?0:j[0].type==="number"?1:j[0].type==="bool"?2:j[0].type==="email"?3:j[0].type==="url"?4:j[0].type==="date"?5:j[0].type==="select"?6:j[0].type==="json"?7:j[0].type==="file"?8:j[0].type==="relation"?9:j[0].type==="user"?10:-1}~(f=F(n))&&(c=O[f]=E[f](n)),g=new Ie({props:{class:"form-field form-field-toggle m-0",name:"requried",$$slots:{default:[P3,({uniqueId:j})=>({38:j}),({uniqueId:j})=>[0,j?128:0]]},$$scope:{ctx:n}}});let L=n[0].type!=="file"&&Fc(n),H=!n[0].toDelete&&Ic(n);return{c(){e=_("form"),t=_("div"),i=_("div"),B(s.$$.fragment),l=T(),o=_("div"),B(r.$$.fragment),a=T(),u=_("div"),c&&c.c(),d=T(),m=_("div"),B(g.$$.fragment),v=T(),b=_("div"),L&&L.c(),y=T(),H&&H.c(),C=T(),$=_("input"),h(i,"class","col-sm-6"),h(o,"class","col-sm-6"),h(u,"class","col-sm-12 hidden-empty"),h(m,"class","col-sm-4 flex"),h(b,"class","col-sm-4 flex"),h(t,"class","grid"),h($,"type","submit"),h($,"class","hidden"),h($,"tabindex","-1"),h(e,"class","field-form")},m(j,Q){w(j,e,Q),p(e,t),p(t,i),V(s,i,null),p(t,l),p(t,o),V(r,o,null),p(t,a),p(t,u),~f&&O[f].m(u,null),p(t,d),p(t,m),V(g,m,null),p(t,v),p(t,b),L&&L.m(b,null),p(t,y),H&&H.m(t,null),p(e,C),p(e,$),S=!0,M||(D=X(e,"submit",Qt(n[31])),M=!0)},p(j,Q){const ie={};Q[0]&1&&(ie.class="form-field required "+(j[0].id?"disabled":"")),Q[0]&2&&(ie.name="schema."+j[1]+".type"),Q[0]&1|Q[1]&384&&(ie.$$scope={dirty:Q,ctx:j}),s.$set(ie);const U={};Q[0]&33&&(U.class=`
form-field
required
`+(j[5]?"":"invalid")+`
`+(j[0].id&&j[0].system?"disabled":"")+`
`),Q[0]&2&&(U.name="schema."+j[1]+".name"),Q[0]&33|Q[1]&384&&(U.$$scope={dirty:Q,ctx:j}),r.$set(U);let K=f;f=F(j),f===K?~f&&O[f].p(j,Q):(c&&(De(),P(O[K],1,1,()=>{O[K]=null}),Oe()),~f?(c=O[f],c?c.p(j,Q):(c=O[f]=E[f](j),c.c()),A(c,1),c.m(u,null)):c=null);const W={};Q[0]&1|Q[1]&384&&(W.$$scope={dirty:Q,ctx:j}),g.$set(W),j[0].type!=="file"?L?(L.p(j,Q),Q[0]&1&&A(L,1)):(L=Fc(j),L.c(),A(L,1),L.m(b,null)):L&&(De(),P(L,1,1,()=>{L=null}),Oe()),j[0].toDelete?H&&(De(),P(H,1,1,()=>{H=null}),Oe()):H?(H.p(j,Q),Q[0]&1&&A(H,1)):(H=Ic(j),H.c(),A(H,1),H.m(t,null))},i(j){S||(A(s.$$.fragment,j),A(r.$$.fragment,j),A(c),A(g.$$.fragment,j),A(L),A(H),S=!0)},o(j){P(s.$$.fragment,j),P(r.$$.fragment,j),P(c),P(g.$$.fragment,j),P(L),P(H),S=!1},d(j){j&&k(e),z(s),z(r),~f&&O[f].d(),z(g),L&&L.d(),H&&H.d(),M=!1,D()}}}function Rc(n){let e,t,i,s,l=n[0].system&&Hc(),o=!n[0].id&&jc(n),r=n[0].required&&qc(),a=n[0].unique&&Vc();return{c(){e=_("div"),l&&l.c(),t=T(),o&&o.c(),i=T(),r&&r.c(),s=T(),a&&a.c(),h(e,"class","inline-flex")},m(u,f){w(u,e,f),l&&l.m(e,null),p(e,t),o&&o.m(e,null),p(e,i),r&&r.m(e,null),p(e,s),a&&a.m(e,null)},p(u,f){u[0].system?l||(l=Hc(),l.c(),l.m(e,t)):l&&(l.d(1),l=null),u[0].id?o&&(o.d(1),o=null):o?o.p(u,f):(o=jc(u),o.c(),o.m(e,i)),u[0].required?r||(r=qc(),r.c(),r.m(e,s)):r&&(r.d(1),r=null),u[0].unique?a||(a=Vc(),a.c(),a.m(e,null)):a&&(a.d(1),a=null)},d(u){u&&k(e),l&&l.d(),o&&o.d(),r&&r.d(),a&&a.d()}}}function Hc(n){let e;return{c(){e=_("span"),e.textContent="System",h(e,"class","label label-danger")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function jc(n){let e;return{c(){e=_("span"),e.textContent="New",h(e,"class","label"),ee(e,"label-warning",n[8]&&!n[0].toDelete)},m(t,i){w(t,e,i)},p(t,i){i[0]&257&&ee(e,"label-warning",t[8]&&!t[0].toDelete)},d(t){t&&k(e)}}}function qc(n){let e;return{c(){e=_("span"),e.textContent="Required",h(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Vc(n){let e;return{c(){e=_("span"),e.textContent="Unique",h(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function zc(n){let e,t,i,s,l;return{c(){e=_("i"),h(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,s||(l=et(Et.call(null,e,{text:"Has errors",position:"left"})),s=!0)},i(o){i||(Lt(()=>{t||(t=at(e,Wn,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){t||(t=at(e,Wn,{duration:150,start:.7},!1)),t.run(0),i=!1},d(o){o&&k(e),o&&t&&t.end(),s=!1,l()}}}function Bc(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Restore</span>',h(e,"type","button"),h(e,"class","btn btn-sm btn-danger btn-secondary")},m(s,l){w(s,e,l),t||(i=X(e,"click",ni(n[15])),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function N3(n){let e,t,i,s,l,o,r=(n[0].name||"-")+"",a,u,f,c,d,m,g,v,b,y=!n[0].toDelete&&Rc(n),C=n[7]&&!n[0].system&&zc(),$=n[0].toDelete&&Bc(n);return{c(){e=_("div"),t=_("span"),i=_("i"),l=T(),o=_("strong"),a=R(r),f=T(),y&&y.c(),c=T(),d=_("div"),m=T(),C&&C.c(),g=T(),$&&$.c(),v=lt(),h(i,"class",s=Ka(Y.getFieldTypeIcon(n[0].type))+" svelte-1tpxlm5"),h(t,"class","icon field-type"),h(o,"class","title field-name svelte-1tpxlm5"),h(o,"title",u=n[0].name),ee(o,"txt-strikethrough",n[0].toDelete),h(e,"class","inline-flex"),h(d,"class","flex-fill")},m(S,M){w(S,e,M),p(e,t),p(t,i),p(e,l),p(e,o),p(o,a),w(S,f,M),y&&y.m(S,M),w(S,c,M),w(S,d,M),w(S,m,M),C&&C.m(S,M),w(S,g,M),$&&$.m(S,M),w(S,v,M),b=!0},p(S,M){(!b||M[0]&1&&s!==(s=Ka(Y.getFieldTypeIcon(S[0].type))+" svelte-1tpxlm5"))&&h(i,"class",s),(!b||M[0]&1)&&r!==(r=(S[0].name||"-")+"")&&me(a,r),(!b||M[0]&1&&u!==(u=S[0].name))&&h(o,"title",u),M[0]&1&&ee(o,"txt-strikethrough",S[0].toDelete),S[0].toDelete?y&&(y.d(1),y=null):y?y.p(S,M):(y=Rc(S),y.c(),y.m(c.parentNode,c)),S[7]&&!S[0].system?C?M[0]&129&&A(C,1):(C=zc(),C.c(),A(C,1),C.m(g.parentNode,g)):C&&(De(),P(C,1,1,()=>{C=null}),Oe()),S[0].toDelete?$?$.p(S,M):($=Bc(S),$.c(),$.m(v.parentNode,v)):$&&($.d(1),$=null)},i(S){b||(A(C),b=!0)},o(S){P(C),b=!1},d(S){S&&k(e),S&&k(f),y&&y.d(S),S&&k(c),S&&k(d),S&&k(m),C&&C.d(S),S&&k(g),$&&$.d(S),S&&k(v)}}}function R3(n){let e,t,i={single:!0,interactive:n[8],class:n[2]||n[0].toDelete||n[0].system?"field-accordion disabled":"field-accordion",$$slots:{header:[N3],default:[I3]},$$scope:{ctx:n}};return e=new za({props:i}),n[32](e),e.$on("expand",n[33]),e.$on("collapse",n[34]),e.$on("toggle",n[35]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,l){const o={};l[0]&256&&(o.interactive=s[8]),l[0]&5&&(o.class=s[2]||s[0].toDelete||s[0].system?"field-accordion disabled":"field-accordion"),l[0]&483|l[1]&256&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[32](null),z(e,s)}}}function H3(n,e,t){let i,s,l,o,r;qt(n,rs,Z=>t(14,r=Z));const a=hn();let{key:u="0"}=e,{field:f=new Sn}=e,{disabled:c=!1}=e,{excludeNames:d=[]}=e,m,g=f.type;function v(){m==null||m.expand()}function b(){m==null||m.collapse()}function y(){f.id?t(0,f.toDelete=!0,f):(b(),a("remove"))}function C(Z){if(Z=(""+Z).toLowerCase(),!Z)return!1;for(const be of d)i Line truncated
<code>@request.query.*</code>
<code>@request.data.*</code>
<code>@request.user.*</code>`,$=T(),S=_("hr"),M=T(),D=_("p"),D.innerHTML="You could also add constraints and query other collections using the <em>@collection</em> filter:",E=T(),O=_("div"),O.innerHTML="<code>@collection.ANY_COLLECTION_NAME.*</code>",F=T(),L=_("hr"),H=T(),j=_("p"),j.innerHTML=`Example rule:
<br/>
<code>@request.user.id!=&quot;&quot; &amp;&amp; created&gt;&quot;2022-01-01 00:00:00&quot;</code>`,h(s,"class","m-b-0"),h(o,"class","inline-flex flex-gap-5"),h(g,"class","m-t-10 m-b-5"),h(b,"class","m-b-0"),h(C,"class","inline-flex flex-gap-5"),h(S,"class","m-t-10 m-b-5"),h(D,"class","m-b-0"),h(O,"class","inline-flex flex-gap-5"),h(L,"class","m-t-10 m-b-5"),h(i,"class","content"),h(t,"class","alert alert-warning m-0")},m(W,J){w(W,e,J),p(e,t),p(t,i),p(i,s),p(i,l),p(i,o),p(o,r),p(o,a),p(o,u),p(o,f),p(o,c),p(o,d);for(let se=0;se<K.length;se+=1)K[se].m(o,null);p(i,m),p(i,g),p(i,v),p(i,b),p(i,y),p(i,C),p(i,$),p(i,S),p(i,M),p(i,D),p(i,E),p(i,O),p(i,F),p(i,L),p(i,H),p(i,j),ie=!0},p(W,J){if(J&1){U=W[0].schema;let se;for(se=0;se<U.length;se+=1){const fe=Kc(W,U,se);K[se]?K[se].p(fe,J):(K[se]=Jc(fe),K[se].c(),K[se].m(o,null))}for(;se<K.length;se+=1)K[se].d(1);K.length=U.length}},i(W){ie||(W&&Lt(()=>{Q||(Q=at(e,on,{duration:150},!0)),Q.run(1)}),ie=!0)},o(W){W&&(Q||(Q=at(e,on,{duration:150},!1)),Q.run(0)),ie=!1},d(W){W&&k(e),Bn(K,W),W&&Q&&Q.end()}}}function B3(n){let e,t=n[19].name+"",i;return{c(){e=_("code"),i=R(t)},m(s,l){w(s,e,l),p(e,i)},p(s,l){l&1&&t!==(t=s[19].name+"")&&me(i,t)},d(s){s&&k(e)}}}function U3(n){let e,t=n[19].name+"",i,s;return{c(){e=_("code"),i=R(t),s=R(".*")},m(l,o){w(l,e,o),p(e,i),p(e,s)},p(l,o){o&1&&t!==(t=l[19].name+"")&&me(i,t)},d(l){l&&k(e)}}}function Jc(n){let e;function t(l,o){return l[19].type==="relation"||l[19].type==="user"?U3:B3}let i=t(n),s=i(n);return{c(){s.c(),e=lt()},m(l,o){s.m(l,o),w(l,e,o)},p(l,o){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&k(e)}}}function W3(n){let e=[],t=new Map,i,s,l=Object.entries(n[6]);const o=r=>r[14];for(let r=0;r<l.length;r+=1){let a=Yc(n,l,r),u=o(a);t.set(u,e[r]=Gc(u,a))}return{c(){for(let r=0;r<e.length;r+=1)e[r].c();i=lt()},m(r,a){for(let u=0;u<e.length;u+=1)e[u].m(r,a);w(r,i,a),s=!0},p(r,a){a&262235&&(l=Object.entries(r[6]),De(),e=dt(e,a,o,1,r,l,t,i.parentNode,Bt,Gc,i,Yc),Oe())},i(r){if(!s){for(let a=0;a<l.length;a+=1)A(e[a]);s=!0}},o(r){for(let a=0;a<e.length;a+=1)P(e[a]);s=!1},d(r){for(let a=0;a<e.length;a+=1)e[a].d(r);r&&k(i)}}}function Y3(n){let e;return{c(){e=_("div"),e.innerHTML='<span class="loader"></span>',h(e,"class","txt-center")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function K3(n){let e,t,i;function s(){return n[9](n[14])}return{c(){e=_("button"),e.innerHTML='<i class="ri-lock-line"></i>',h(e,"type","button"),h(e,"class","rule-toggle-btn btn btn-circle btn-outline svelte-fjxz7k")},m(l,o){w(l,e,o),t||(i=[et(Et.call(null,e,"Lock and set to Admins only")),X(e,"click",s)],t=!0)},p(l,o){n=l},d(l){l&&k(e),t=!1,st(i)}}}function Z3(n){let e,t,i;function s(){return n[8](n[14])}return{c(){e=_("button"),e.innerHTML='<i class="ri-lock-unlock-line"></i>',h(e,"type","button"),h(e,"class","rule-toggle-btn btn btn-circle btn-outline btn-success svelte-fjxz7k")},m(l,o){w(l,e,o),t||(i=[et(Et.call(null,e,"Unlock and set custom rule")),X(e,"click",s)],t=!0)},p(l,o){n=l},d(l){l&&k(e),t=!1,st(i)}}}function J3(n){let e;return{c(){e=R("Leave empty to grant everyone access")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function G3(n){let e;return{c(){e=R("Only admins will be able to access (unlock to change)")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function X3(n){let e,t=n[15]+"",i,s,l=Ei(n[0][n[14]])?"Admins only":"Custom rule",o,r,a,u,f=n[14],c,d,m,g,v,b,y;function C(){return n[10](n[14])}const $=()=>n[11](u,f),S=()=>n[11](null,f);function M(H){n[12](H,n[14])}var D=n[4];function E(H){let j={baseCollection:H[0],disabled:Ei(H[0][H[14]])};return H[0][H[14]]!==void 0&&(j.value=H[0][H[14]]),{props:j}}D&&(u=new D(E(n)),$(),he.push(()=>Re(u,"value",M)));function O(H,j){return j&1&&(g=null),g==null&&(g=!!Ei(H[0][H[14]])),g?G3:J3}let F=O(n,-1),L=F(n);return{c(){e=_("label"),i=R(t),s=R(" - "),o=R(l),a=T(),u&&B(u.$$.fragment),d=T(),m=_("div"),L.c(),h(e,"for",r=n[18]),h(m,"class","help-block")},m(H,j){w(H,e,j),p(e,i),p(e,s),p(e,o),w(H,a,j),u&&V(u,H,j),w(H,d,j),w(H,m,j),L.m(m,null),v=!0,b||(y=X(e,"click",C),b=!0)},p(H,j){n=H,(!v||j&1)&&l!==(l=Ei(n[0][n[14]])?"Admins only":"Custom rule")&&me(o,l),(!v||j&262144&&r!==(r=n[18]))&&h(e,"for",r),f!==n[14]&&(S(),f=n[14],$());const Q={};if(j&1&&(Q.baseCollection=n[0]),j&1&&(Q.disabled=Ei(n[0][n[14]])),!c&&j&65&&(c=!0,Q.value=n[0][n[14]],He(()=>c=!1)),D!==(D=n[4])){if(u){De();const ie=u;P(ie.$$.fragment,1,0,()=>{z(ie,1)}),Oe()}D?(u=new D(E(n)),$(),he.push(()=>Re(u,"value",M)),B(u.$$.fragment),A(u.$$.fragment,1),V(u,d.parentNode,d)):u=null}else D&&u.$set(Q);F!==(F=O(n,j))&&(L.d(1),L=F(n),L&&(L.c(),L.m(m,null)))},i(H){v||(u&&A(u.$$.fragment,H),v=!0)},o(H){u&&P(u.$$.fragment,H),v=!1},d(H){H&&k(e),H&&k(a),S(),u&&z(u,H),H&&k(d),H&&k(m),L.d(),b=!1,y()}}}function Gc(n,e){let t,i,s,l,o,r,a,u;function f(m,g){return g&1&&(l=null),l==null&&(l=!!Ei(m[0][m[14]])),l?Z3:K3}let c=f(e,-1),d=c(e);return r=new Ie({props:{class:"form-field rule-field m-0 "+(Ei(e[0][e[14]])?"disabled":""),name:e[14Line truncated
<a href="https://pocketbase.io/docs/manage-collections#rules-filters-syntax" target="_blank" rel="noopener">PocketBase filter syntax and operators
</a>.`,s=T(),l=_("span"),r=R(o),a=T(),b&&b.c(),u=T(),c.c(),d=lt(),h(l,"class","expand-handle txt-sm txt-bold txt-nowrap link-hint"),h(t,"class","flex"),h(e,"class","block m-b-base")},m(S,M){w(S,e,M),p(e,t),p(t,i),p(t,s),p(t,l),p(l,r),p(e,a),b&&b.m(e,null),w(S,u,M),C[f].m(S,M),w(S,d,M),m=!0,g||(v=X(l,"click",n[7]),g=!0)},p(S,[M]){(!m||M&4)&&o!==(o=S[2]?"Hide available fields":"Show available fields")&&me(r,o),S[2]?b?(b.p(S,M),M&4&&A(b,1)):(b=Zc(S),b.c(),A(b,1),b.m(e,null)):b&&(De(),P(b,1,1,()=>{b=null}),Oe());let D=f;f=$(S),f===D?C[f].p(S,M):(De(),P(C[D],1,1,()=>{C[D]=null}),Oe(),c=C[f],c?c.p(S,M):(c=C[f]=y[f](S),c.c()),A(c,1),c.m(d.parentNode,d))},i(S){m||(A(b),A(c),m=!0)},o(S){P(b),P(c),m=!1},d(S){S&&k(e),b&&b.d(),S&&k(u),C[f].d(S),S&&k(d),g=!1,v()}}}function Ei(n){return n===null}function x3(n,e,t){let{collection:i=new Fn}=e,s={},l=!1,o={},r,a=!1;const u={listRule:"List Action",viewRule:"View Action",createRule:"Create Action",updateRule:"Update Action",deleteRule:"Delete Action"};async function f(){t(5,a=!0);try{t(4,r=(await Qi(()=>import("./FilterAutocompleteInput.ba7c1341.js"),[])).default)}catch(y){console.warn(y),t(4,r=null)}t(5,a=!1)}Jn(()=>{f()});const c=()=>t(2,l=!l),d=async y=>{var C;t(0,i[y]=s[y]||"",i),await di(),(C=o[y])==null||C.focus()},m=y=>{t(1,s[y]=i[y],s),t(0,i[y]=null,i)},g=y=>{var C;return(C=o[y])==null?void 0:C.focus()};function v(y,C){he[y?"unshift":"push"](()=>{o[C]=y,t(3,o)})}function b(y,C){n.$$.not_equal(i[C],y)&&(i[C]=y,t(0,i))}return n.$$set=y=>{"collection"in y&&t(0,i=y.collection)},[i,s,l,o,r,a,u,c,d,m,g,v,b]}class e$ extends Fe{constructor(e){super(),Le(this,e,x3,Q3,Pe,{collection:0})}}function Xc(n,e,t){const i=n.slice();return i[14]=e[t],i}function Qc(n,e,t){const i=n.slice();return i[14]=e[t],i}function xc(n){let e;return{c(){e=_("p"),e.textContent="All data associated with the removed fields will be permanently deleted!"},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function ed(n){let e,t,i,s,l=n[1].originalName+"",o,r,a,u,f,c=n[1].name+"",d;return{c(){e=_("li"),t=_("div"),i=R(`Renamed collection
`),s=_("strong"),o=R(l),r=T(),a=_("i"),u=T(),f=_("strong"),d=R(c),h(s,"class","txt-strikethrough txt-hint"),h(a,"class","ri-arrow-right-line txt-sm"),h(f,"class","txt"),h(t,"class","inline-flex")},m(m,g){w(m,e,g),p(e,t),p(t,i),p(t,s),p(s,o),p(t,r),p(t,a),p(t,u),p(t,f),p(f,d)},p(m,g){g&2&&l!==(l=m[1].originalName+"")&&me(o,l),g&2&&c!==(c=m[1].name+"")&&me(d,c)},d(m){m&&k(e)}}}function td(n){let e,t,i,s,l=n[14].originalName+"",o,r,a,u,f,c=n[14].name+"",d;return{c(){e=_("li"),t=_("div"),i=R(`Renamed field
`),s=_("strong"),o=R(l),r=T(),a=_("i"),u=T(),f=_("strong"),d=R(c),h(s,"class","txt-strikethrough txt-hint"),h(a,"class","ri-arrow-right-line txt-sm"),h(f,"class","txt"),h(t,"class","inline-flex")},m(m,g){w(m,e,g),p(e,t),p(t,i),p(t,s),p(s,o),p(t,r),p(t,a),p(t,u),p(t,f),p(f,d)},p(m,g){g&16&&l!==(l=m[14].originalName+"")&&me(o,l),g&16&&c!==(c=m[14].name+"")&&me(d,c)},d(m){m&&k(e)}}}function nd(n){let e,t,i,s=n[14].name+"",l,o;return{c(){e=_("li"),t=R("Removed field "),i=_("span"),l=R(s),o=T(),h(i,"class","txt-bold"),h(e,"class","txt-danger")},m(r,a){w(r,e,a),p(e,t),p(e,i),p(i,l),p(e,o)},p(r,a){a&8&&s!==(s=r[14].name+"")&&me(l,s)},d(r){r&&k(e)}}}function t$(n){let e,t,i,s,l,o,r,a,u,f,c,d,m=n[3].length&&xc(),g=n[5]&&ed(n),v=n[4],b=[];for(let $=0;$<v.length;$+=1)b[$]=td(Qc(n,v,$));let y=n[3],C=[];for(let $=0;$<y.length;$+=1)C[$]=nd(Xc(n,y,$));return{c(){e=_("div"),t=_("div"),t.innerHTML='<i class="ri-error-warning-line"></i>',i=T(),s=_("div"),l=_("p"),l.textContent=`If any of the following changes is part of another collection rule or filter, you'll have to
update it manually!`,o=T(),m&&m.c(),r=T(),a=_("h6"),a.textContent="Changes:",u=T(),f=_("ul"),g&&g.c(),c=T();for(let $=0;$<b.length;$+=1)b[$].c();d=T();for(let $=0;$<C.length;$+=1)C[$].c();h(t,"class","icon"),h(s,"class","content txt-bold"),h(e,"class","alert alert-warning"),h(f,"class","changes-list svelte-1ghly2p")},m($,S){w($,e,S),p(e,t),p(e,i),p(e,s),p(s,l),p(s,o),m&&m.m(s,null),w($,r,S),w($,a,S),w($,u,S),w($,f,S),g&&g.m(f,null),p(f,c);for(let M=0;M<b.length;M+=1)b[M].m(f,null);p(f,d);for(let M=0;M<C.length;M+=1)C[M].m(f,null)},p($,S){if($[3].length?m||(m=xc(),m.c(),m.m(s,null)):m&&(m.d(1),m=null),$[5]?g?g.p($,S):(g=ed($),g.c(),g.m(f,c)):g&&(g.d(1),g=null),S&16){v=$[4];let M;for(M=0;M<v.length;M+=1){const D=Qc($,v,M);b[M]?b[M].p(D,S):(b[M]=td(D),b[M].c(),b[M].m(f,d))}for(;M<b.length;M+=1)b[M].d(1);b.length=v.length}if(S&8){y=$[3];let M;for(M=0;M<y.length;M+=1){const D=Xc($,y,M);C[M]?C[M].p(D,S):(C[M]=nd(D),C[M].c(),C[M].m(f,null))}for(;M<C.length;M+=1)C[M].d(1);C.length=y.length}},d($){$&&k(e),m&&m.d(),$&&k(r),$&&k(a),$&&k(u),$&&k(f),g&&g.d(),Bn(b,$),Bn(C,$)}}}function n$(n){let e;return{c(){e=_("h4"),e.textContent="Confirm collection changes"},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function i$(n){let e,t,i,s,l;return{c(){e=_("button"),e.innerHTML='<span class="txt">Cancel</span>',t=T(),i=_("button"),i.innerHTML='<span class="txt">Confirm</span>',e.autofocus=!0,h(e,"type","button"),h(e,"class","btn btn-secondary"),h(i,"type","button"),h(i,"class","btn btn-expanded")},m(o,r){w(o,e,r),w(o,t,r),w(o,i,r),e.focus(),s||(l=[X(e,"click",n[8]),X(i,"click",n[9])],s=!0)},p:oe,d(o){o&&k(e),o&&k(t),o&&k(i),s=!1,st(l)}}}function s$(n){let e,t,i={class:"confirm-changes-panel",popup:!0,$$slots:{footer:[i$],header:[n$],default:[t$]},$$scope:{ctx:n}};return e=new Ci({props:i}),n[10](e),e.$on("hide",n[11]),e.$on("show",n[12]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,[l]){const o={};l&524346&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[10](null),z(e,s)}}}function l$(n,e,t){let i,s,l;const o=hn();let r,a;async function u(y){t(1,a=y),await di(),!i&&!s.length&&!l.length?c():r==null||r.show()}function f(){r==null||r.hide()}function c(){f(),o("confirm")}const d=()=>f(),m=()=>c();function g(y){he[y?"unshift":"push"](()=>{r=y,t(2,r)})}function v(y){pt.call(this,n,y)}function b(y){pt.call(this,n,y)}return n.$$.update=()=>{n.$$.dirty&2&&t(5,i=(a==null?void 0:a.originalName)!=(a==null?void 0:a.name)),n.$$.dirty&2&&t(4,s=(a==null?void 0:a.schema.filter(y=>y.id&&!y.toDelete&&y.originalName!=y.name))||[]),n.$$.dirty&2&&t(3,l=(a==null?void 0:a.schema.filter(y=>y.id&&y.toDelete))||[])},[f,a,r,l,s,i,c,u,d,m,g,v,b]}class o$ extends Fe{constructor(e){super(),Le(this,e,l$,s$,Pe,{show:7,hide:0})}get show(){return this.$$.ctx[7]}get hide(){return this.$$.ctx[0]}}function id(n){let e,t,i,s;function l(r){n[26](r)}let o={};return n[2]!==void 0&&(o.collection=n[2]),t=new e$({props:o}),he.push(()=>Re(t,"collection",l)),{c(){e=_("div"),B(t.$$.fragment),h(e,"class","tab-item active")},m(r,a){w(r,e,a),V(t,e,null),s=!0},p(r,a){const u={};!i&&a[0]&4&&(i=!0,u.collection=r[2],He(()=>i=!1)),t.$set(u)},i(r){s||(A(t.$$.fragment,r),s=!0)},o(r){P(t.$$.fragment,r),s=!1},d(r){r&&k(e),z(t)}}}function r$(n){let e,t,i,s,l,o;function r(f){n[25](f)}let a={};n[2]!==void 0&&(a.collection=n[2]),i=new z3({props:a}),he.push(()=>Re(i,"collection",r));let u=n[9]===_l&&id(n);return{c(){e=_("div"),t=_("div"),B(i.$$.fragment),l=T(),u&&u.c(),h(t,"class","tab-item"),ee(t,"active",n[9]===ss),h(e,"class","tabs-content svelte-b10vi")},m(f,c){w(f,e,c),p(e,t),V(i,t,null),p(e,l),u&&u.m(e,null),o=!0},p(f,c){const d={};!s&&c[0]&4&&(s=!0,d.collection=f[2],He(()=>s=!1)),i.$set(d),c[0]&512&&ee(t,"active",f[9]===ss),f[9]===_l?u?(u.p(f,c),c[0]&512&&A(u,1)):(u=id(f),u.c(),A(u,1),u.m(e,null)):u&&(De(),P(u,1,1,()=>{u=null}),Oe())},i(f){o||(A(i.$$.fragment,f),A(u),o=!0)},o(f){P(i.$$.fragment,f),P(u),o=!1},d(f){f&&k(e),z(i),u&&u.d()}}}function sd(n){let e,t,i,s,l,o,r;return o=new qi({props:{class:"dropdown dropdown-right m-t-5",$$slots:{default:[a$]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=T(),i=_("button"),s=_("i"),l=T(),B(o.$$.fragment),h(e,"class","flex-fill"),h(s,"class","ri-more-line"),h(i,"type","button"),h(i,"class","btn btn-sm btn-circle btn-secondary flex-gap-0")},m(a,u){w(a,e,u),w(a,t,u),w(a,i,u),p(i,s),p(i,l),V(o,i,null),r=!0},p(a,u){const f={};u[1]&256&&(f.$$scope={dirty:u,ctx:a}),o.$set(f)},i(a){r||(A(o.$$.fragment,a),r=!0)},o(a){P(o.$$.fragment,a),r=!1},d(a){a&&k(e),a&&k(t),a&&k(i),z(o)}}}function a$(n){let e,t,i;return{c(){e=_("button"),e.innerHTML=`<i class="ri-delete-bin-7-line"></i>
<span class="txt">Delete</span>`,h(e,"type","button"),h(e,"class","dropdown-item closable")},m(s,l){w(s,e,l),t||(i=X(e,"click",n[20]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function ld(n){let e;return{c(){e=_("div"),e.textContent="System collection",h(e,"class","help-block")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function u$(n){let e,t,i,s,l,o,r,a,u,f,c,d,m=n[2].system&&ld();return{c(){e=_("label"),t=R("Name"),s=T(),l=_("input"),u=T(),m&&m.c(),f=lt(),h(e,"for",i=n[38]),h(l,"type","text"),h(l,"id",o=n[38]),l.required=!0,l.disabled=n[11],h(l,"spellcheck","false"),l.autofocus=r=n[2].isNew,h(l,"placeholder",'eg. "posts"'),l.value=a=n[2].name},m(g,v){w(g,e,v),p(e,t),w(g,s,v),w(g,l,v),w(g,u,v),m&&m.m(g,v),w(g,f,v),n[2].isNew&&l.focus(),c||(d=X(l,"input",n[21]),c=!0)},p(g,v){v[1]&128&&i!==(i=g[38])&&h(e,"for",i),v[1]&128&&o!==(o=g[38])&&h(l,"id",o),v[0]&2048&&(l.disabled=g[11]),v[0]&4&&r!==(r=g[2].isNew)&&(l.autofocus=r),v[0]&4&&a!==(a=g[2].name)&&l.value!==a&&(l.value=a),g[2].system?m||(m=ld(),m.c(),m.m(f.parentNode,f)):m&&(m.d(1),m=null)},d(g){g&&k(e),g&&k(s),g&&k(l),g&&k(u),m&&m.d(g),g&&k(f),c=!1,d()}}}function od(n){let e,t,i,s,l,o;return{c(){e=_("i"),h(e,"class","ri-error-warning-fill txt-danger")},m(r,a){w(r,e,a),s=!0,l||(o=et(t=Et.call(null,e,n[12])),l=!0)},p(r,a){t&&Zn(t.update)&&a[0]&4096&&t.update.call(null,r[12])},i(r){s||(r&&Lt(()=>{i||(i=at(e,Wn,{duration:150,start:.7},!0)),i.run(1)}),s=!0)},o(r){r&&(i||(i=at(e,Wn,{duration:150,start:.7},!1)),i.run(0)),s=!1},d(r){r&&k(e),r&&i&&i.end(),l=!1,o()}}}function rd(n){let e,t,i,s,l;return{c(){e=_("i"),h(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,s||(l=et(Et.call(null,e,"Has errors")),s=!0)},i(o){i||(o&&Lt(()=>{t||(t=at(e,Wn,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){o&&(t||(t=at(e,Wn,{duration:150,start:.7},!1)),t.run(0)),i=!1},d(o){o&&k(e),o&&t&&t.end(),s=!1,l()}}}function f$(n){var H,j,Q,ie,U,K;let e,t=n[2].isNew?"New collection":"Edit collection",i,s,l,o,r,a,u,f,c,d,m,g,v=!Y.isEmpty((H=n[4])==null?void 0:H.schema),b,y,C,$,S=!Y.isEmpty((j=n[4])==null?void 0:j.listRule)||!Y.isEmpty((Q=n[4])==null?void 0:Q.viewRule)||!Y.isEmpty((ie=n[4])==null?void 0:ie.createRule)||!Y.isEmpty((U=n[4])==null?void 0:U.updateRule)||!Y.isEmpty((K=n[4])==null?void 0:K.deleteRule),M,D,E,O=!n[2].isNew&&!n[2].system&&sd(n);r=new Ie({props:{class:"form-field required m-b-0 "+(n[11]?"disabled":""),name:"name",$$slots:{default:[u$,({uniqueId:W})=>({38:W}),({uniqueId:W})=>[0,W?128:0]]},$$scope:{ctx:n}}});let F=v&&od(n),L=S&&rd();return{c(){e=_("h4"),i=R(t),s=T(),O&&O.c(),l=T(),o=_("form"),B(r.$$.fragment),a=T(),u=_("input"),f=T(),c=_("div"),d=_("button"),m=_("span"),m.textContent="Fields",g=T(),F&&F.c(),b=T(),y=_("button"),C=_("span"),C.textContent="API Rules",$=T(),L&&L.c(),h(u,"type","submit"),h(u,"class","hidden"),h(u,"tabindex","-1"),h(o,"class","block"),h(m,"class","txt"),h(d,"type","button"),h(d,"class","tab-item"),ee(d,"active",n[9]===ss),h(C,"class","txt"),h(y,"type","button"),h(y,"class","tab-item"),ee(y,"active",n[9]===_l),h(c,"class","tabs-header stretched")},m(W,J){w(W,e,J),p(e,i),w(W,s,J),O&&O.m(W,J),w(W,l,J),w(W,o,J),V(r,o,null),p(o,a),p(o,u),w(W,f,J),w(W,c,J),p(c,d),p(d,m),p(d,g),F&&F.m(d,null),p(c,b),p(c,y),p(y,C),p(y,$),L&&L.m(y,null),M=!0,D||(E=[X(o,"submit",Qt(n[22])),X(d,"click",n[23]),X(y,"click",n[24])],D=!0)},p(W,J){var fe,ke,le,ue,Me,Z;(!M||J[0]&4)&&t!==(t=W[2].isNew?"New collection":"Edit collection")&&me(i,t),!W[2].isNew&&!W[2].system?O?(O.p(W,J),J[0]&4&&A(O,1)):(O=sd(W),O.c(),A(O,1),O.m(l.parentNode,l)):O&&(De(),P(O,1,1,()=>{O=null}),Oe());const se={};J[0]&2048&&(se.class="form-field required m-b-0 "+(W[11]?"disabled":"")),J[0]&2052|J[1]&384&&(se.$$scope={dirty:J,ctx:W}),r.$set(se),J[0]&16&&(v=!Y.isEmpty((fe=W[4])==null?void 0:fe.schema)),v?F?(F.p(W,J),J[0]&16&&A(F,1)):(F=od(W),F.c(),A(F,1),F.m(d,null)):F&&(De(),P(F,1,1,()=>{F=null}),Oe()),J[0]&512&&ee(d,"active",W[9]===ss),J[0]&16&&(S=!Y.isEmpty((ke=W[4])==null?void 0:ke.listRule)||!Y.isEmpty((le=W[4])==null?void 0:le.viewRule)||!Y.isEmpty((ue=W[4])==null?void 0:ue.createRule)||!Y.isEmpty((Me=W[4])==null?void 0:Me.updateRule)||!Y.isEmpty((Z=W[4])==null?void 0:Z.deleteRule)),S?L?J[0]&16&&A(L,1):(L=rd(),L.c(),A(L,1),L.m(y,null)):L&&(De(),P(L,1,1,()=>{L=null}),Oe()),J[0]&512&&ee(y,"active",W[9]===_l)},i(W){M||(A(O),A(r.$$.fragment,W),A(F),A(L),M=!0)},o(W){P(O),P(r.$$.fragment,W),P(F),P(L),M=!1},d(W){W&&k(e),W&&k(s),O&&O.d(W),W&&k(l),W&&k(o),z(r),W&&k(f),W&&k(c),F&&F.d(),L&&L.d(),D=!1,st(E)}}}function c$(n){let e,t,i,s,l,o=n[2].isNew?"Create":"Save changes",r,a,u,f;return{c(){e=_("button"),t=_("span"),t.textContent="Cancel",i=T(),s=_("button"),l=_("span"),r=R(o),h(t,"class","txt"),h(e,"type","button"),h(e,"class","btn btn-secondary"),e.disabled=n[7],h(l,"class","txt"),h(s,"type","button"),h(s,"class","btn btn-expanded"),s.disabled=a=!n[10]||n[7],ee(s,"btn-loading",n[7])},m(c,d){w(c,e,d),p(e,t),w(c,i,d),w(c,s,d),p(s,l),p(l,r),u||(f=[X(e,"click",n[18]),X(s,"click",nLine truncated
<span class="txt">New collection</span>`,y=T(),B(C.$$.fragment),h(l,"type","button"),h(l,"class","btn btn-xs btn-secondary btn-circle btn-clear"),ee(l,"hidden",!n[4]),h(s,"class","form-field-addon"),h(r,"type","text"),h(r,"placeholder","Search collections..."),h(i,"class","form-field search"),ee(i,"active",n[4]),h(t,"class","sidebar-header"),h(u,"class","m-t-5 m-b-xs"),h(c,"class","sidebar-content"),h(b,"type","button"),h(b,"class","btn btn-block btn-outline"),h(v,"class","sidebar-footer"),h(e,"class","page-sidebar collection-sidebar")},m(L,H){w(L,e,H),p(e,t),p(t,i),p(i,s),p(s,l),p(i,o),p(i,r),$e(r,n[0]),p(e,a),p(e,u),p(e,f),p(e,c);for(let j=0;j<d.length;j+=1)d[j].m(c,null);O&&O.m(c,null),p(e,g),p(e,v),p(v,b),w(L,y,H),V(C,L,H),$=!0,S||(M=[X(l,"click",n[8]),X(r,"input",n[9]),X(b,"click",n[11])],S=!0)},p(L,[H]){H&16&&ee(l,"hidden",!L[4]),H&1&&r.value!==L[0]&&$e(r,L[0]),H&16&&ee(i,"active",L[4]),H&106&&(D=L[3],d=dt(d,H,E,1,L,D,m,c,cn,cd,null,ad),!D.length&&O?O.p(L,H):D.length?O&&(O.d(1),O=null):(O=ud(L),O.c(),O.m(c,null)));const j={};C.$set(j)},i(L){$||(A(C.$$.fragment,L),$=!0)},o(L){P(C.$$.fragment,L),$=!1},d(L){L&&k(e);for(let H=0;H<d.length;H+=1)d[H].d();O&&O.d(),L&&k(y),n[12](null),z(C,L),S=!1,st(M)}}}function _$(n,e,t){let i,s,l,o,r;qt(n,ui,b=>t(5,o=b)),qt(n,Ms,b=>t(7,r=b));let a,u="";function f(b){wn(ui,o=b,o)}const c=()=>t(0,u="");function d(){u=this.value,t(0,u)}const m=b=>f(b),g=()=>a==null?void 0:a.show();function v(b){he[b?"unshift":"push"](()=>{a=b,t(2,a)})}return n.$$.update=()=>{n.$$.dirty&1&&t(1,i=u.replace(/\s+/g,"").toLowerCase()),n.$$.dirty&1&&t(4,s=u!==""),n.$$.dirty&131&&t(3,l=r.filter(b=>b.name!="profiles"&&(b.id==u||b.name.replace(/\s+/g,"").toLowerCase().includes(i))))},[u,i,a,l,s,o,f,r,c,d,m,g,v]}class b$ extends Fe{constructor(e){super(),Le(this,e,_$,g$,Pe,{})}}function v$(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g,v,b,y,C,$,S,M,D,E,O,F,L,H,j,Q,ie,U,K,W,J,se,fe,ke,le,ue,Me,Z,be,x,G,_e,je,Ne,qe,ae,re,ve,Je;return{c(){e=_("p"),e.innerHTML=`The syntax basically follows the format
<code><span class="txt-success">OPERAND</span>
<span class="txt-danger">OPERATOR</span>
<span class="txt-success">OPERAND</span></code>, where:`,t=T(),i=_("ul"),s=_("li"),s.innerHTML=`<code class="txt-success">OPERAND</code> - could be any of the above field literal, string (single or double
quoted), number, null, true, false`,l=T(),o=_("li"),r=_("code"),r.textContent="OPERATOR",a=R(` - is one of:
`),u=_("br"),f=T(),c=_("ul"),d=_("li"),m=_("code"),m.textContent="=",g=T(),v=_("span"),v.textContent="Equal",b=T(),y=_("li"),C=_("code"),C.textContent="!=",$=T(),S=_("span"),S.textContent="NOT equal",M=T(),D=_("li"),E=_("code"),E.textContent=">",O=T(),F=_("span"),F.textContent="Greater than",L=T(),H=_("li"),j=_("code"),j.textContent=">=",Q=T(),ie=_("span"),ie.textContent="Greater than or equal",U=T(),K=_("li"),W=_("code"),W.textContent="<",J=T(),se=_("span"),se.textContent="Less than or equal",fe=T(),ke=_("li"),le=_("code"),le.textContent="<=",ue=T(),Me=_("span"),Me.textContent="Less than or equal",Z=T(),be=_("li"),x=_("code"),x.textContent="~",G=T(),_e=_("span"),_e.textContent=`Like/Contains (if not specified auto wraps the right string OPERAND in a "%" for wildcard
match)`,je=T(),Ne=_("li"),qe=_("code"),qe.textContent="!~",ae=T(),re=_("span"),re.textContent=`NOT Like/Contains (if not specified auto wraps the right string OPERAND in a "%" for
wildcard match)`,ve=T(),Je=_("p"),Je.innerHTML=`To group and combine several expressions you could use brackets
<code>(...)</code>, <code>&amp;&amp;</code> (AND) and <code>||</code> (OR) tokens.`,h(r,"class","txt-danger"),h(m,"class","filter-op svelte-1w7s5nw"),h(v,"class","txt-hint"),h(C,"class","filter-op svelte-1w7s5nw"),h(S,"class","txt-hint"),h(E,"class","filter-op svelte-1w7s5nw"),h(F,"class","txt-hint"),h(j,"class","filter-op svelte-1w7s5nw"),h(ie,"class","txt-hint"),h(W,"class","filter-op svelte-1w7s5nw"),h(se,"class","txt-hint"),h(le,"class","filter-op svelte-1w7s5nw"),h(Me,"class","txt-hint"),h(x,"class","filter-op svelte-1w7s5nw"),h(_e,"class","txt-hint"),h(qe,"class","filter-op svelte-1w7s5nw"),h(re,"class","txt-hint")},m(nt,ut){w(nt,e,ut),w(nt,t,ut),w(nt,i,ut),p(i,s),p(i,l),p(i,o),p(o,r),p(o,a),p(o,u),p(o,f),p(o,c),p(c,d),p(d,m),p(d,g),p(d,v),p(c,b),p(c,y),p(y,C),p(y,$),p(y,S),p(c,M),p(c,D),p(D,E),p(D,O),p(D,F),p(c,L),p(c,H),p(H,j),p(H,Q),p(H,ie),p(c,U),p(c,K),p(K,W),p(K,J),p(K,se),p(c,fe),p(c,ke),p(ke,le),p(ke,ue),p(ke,Me),p(c,Z),p(c,be),p(be,x),p(be,G),p(be,_e),p(c,je),p(c,Ne),p(Ne,qe),p(Ne,ae),p(Ne,re),w(nt,ve,ut),w(nt,Je,ut)},p:oe,i:oe,o:oe,d(nt){nt&&k(e),nt&&k(t),nt&&k(i),nt&&k(ve),nt&&k(Je)}}}class y$ extends Fe{constructor(e){super(),Le(this,e,null,v$,Pe,{})}}function dd(n,e,t){const i=n.slice();return i[8]=e[t],i}function hd(n,e,t){const i=n.slice();return i[8]=e[t],i}function pd(n,e,t){const i=n.slice();return i[13]=e[t],i}function md(n,e,t){const i=n.slice();return i[13]=e[t],i}function gd(n){let e;return{c(){e=_("p"),e.innerHTML="Requires <code>Authorization: Admin TOKEN</code> header",h(e,"class","txt-hint txt-sm txt-right")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function _d(n,e){let t,i=e[13].lang+"",s,l,o,r;function a(){return e[6](e[13])}return{key:n,first:null,c(){t=_("button"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&16&&i!==(i=e[13].lang+"")&&me(s,i),f&24&&ee(t,"active",e[3]===e[13].lang)},d(u){u&&k(t),o=!1,r()}}}function bd(n,e){let t,i,s,l;return i=new ln({props:{content:e[13].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o;const a={};r&16&&(a.content=e[13].code),i.$set(a),r&24&&ee(t,"active",e[3]===e[13].lang)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function vd(n,e){let t,i=e[8].code+"",s,l,o,r;function a(){return e[7](e[8])}return{key:n,first:null,c(){t=_("div"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&36&&ee(t,"active",e[2]===e[8].code)},d(u){u&&k(t),o=!1,r()}}}function yd(n,e){let t,i,s,l;return i=new ln({props:{content:e[8].body}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o,r&36&&ee(t,"active",e[2]===e[8].code)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function k$(n){let e,t,i,s,l,o,r,a=n[0].name+"",u,f,c,d,m,g,v,b,y=n[0].name+"",C,$,S,M,D,E,O,F=[],L=new Map,H,j,Q=[],ie=new Map,U,K,W,J,se,fe,ke,le,ue,Me,Z,be,x,G,_e,je,Ne,qe,ae,re,ve,Je,nt,ut,ot,Xe,ge,pe,Ve,mt,te,ye,Ke,ft,St,$t,Nt,Ft,Ct,Yt,Ge,Mt,ct,Rt,Ht,Tt,ht,Ut,it,N,I,q,ne,Te,Ae,Qe,Ue,xe,ze,Ye=[],gt=new Map,de,we,Ze=[],In=new Map,Gn,ce=n[1]&&gd(),Ee=n[4];const rt=Ce=>Ce[13].lang;for(let Ce=0;Ce<Ee.length;Ce+=1){let We=md(n,Ee,Ce),jt=rt(We);L.set(jt,F[Ce]=_d(jt,We))}let Vi=n[4];const El=Ce=>Ce[13].lang;for(let Ce=0;Ce<Vi.length;Ce+=1){let We=pd(n,Vi,Ce),jt=El(We);ie.set(jt,Q[Ce]=bd(jt,We))}ot=new ln({props:{content:`
// DESC by created and ASC by id
?sort=-created,id
`}}),ft=new ln({props:{content:`
?filter=(id='abc' && created>'2022-01-01')
`}}),$t=new y$({}),Ht=new ln({props:{content:`
?expand=rel1,rel2.subrel21.subrel22
`}});let cs=n[5];const Al=Ce=>Ce[8].code;for(let Ce=0;Ce<cs.length;Ce+=1){let We=hd(n,cs,Ce),jt=Al(We);gt.set(jt,Ye[Ce]=vd(jt,We))}let zi=n[5];const Pl=Ce=>Ce[8].code;for(let Ce=0;Ce<zi.length;Ce+=1){let We=dd(n,zi,Ce),jt=Pl(We);In.set(jt,Ze[Ce]=yd(jt,We))}return{c(){e=_("div"),t=_("strong"),t.textContent="GET",i=T(),s=_("div"),l=_("p"),o=R("/api/collections/"),r=_("strong"),u=R(a),f=R("/records"),c=T(),ce&&ce.c(),d=T(),m=_("div"),g=_("p"),v=R("Fetch a paginated "),b=_("strong"),C=R(y),$=R(" records list."),S=T(),M=_("div"),M.textContent="Client SDKs example",D=T(),E=_("div"),O=_("div");for(let Ce=0;Ce<F.length;Ce+=1)F[Ce].c();H=T(),j=_("div");for(let Ce=0;Ce<Q.length;Ce+=1)Q[Ce].c();U=T(),K=_("div"),K.textContent="Query parameters",W=T(),J=_("table"),se=_("thead"),se.innerHTML=`<tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr>`,fe=T(),ke=_("tbody"),le=_("tr"),le.innerHTML=`<td>page</td>
<td><span class="label">Number</span></td>
<td>The page (aka. offset) of the paginated list (default to 1).</td>`,ue=T(),Me=_("tr"),Me.innerHTML=`<td>perPage</td>
<td><span class="label">Number</span></td>
<td>Specify the max returned records per page (default to 30).</td>`,Z=T(),be=_("tr"),x=_("td"),x.textContent="sort",G=T(),_e=_("td"),_e.innerHTML='<span class="label">String</span>',je=T(),Ne=_("td"),qe=R("Specify the records order attribute(s). "),ae=_("br"),re=R(`
Add `),ve=_("code"),ve.textContent="-",Je=R(" / "),nt=_("code"),nt.textContent="+",ut=R(` (default) in front of the attribute for DESC / ASC order.
Ex.:
`),B(ot.$$.fragment),Xe=T(),ge=_("tr"),pe=_("td"),pe.textContent="filter",Ve=T(),mt=_("td"),mt.innerHTML='<span class="label">String</span>',te=T(),ye=_("td"),Ke=R(`Filter the returned records. Ex.:
`),B(ft.$$.fragment),St=T(),B($t.$$.fragment),Nt=T(),Ft=_("tr"),Ct=_("td"),Ct.textContent="expand",Yt=T(),Ge=_("td"),Ge.innerHTML='<span class="label">String</span>',Mt=T(),ct=_("td"),Rt=R(`Auto expand record relations. Ex.:
`),B(Ht.$$.fragment),Tt=R(`
Supports up to 6-levels depth nested relations expansion. `),ht=_("br"),Ut=R(`
The expanded relations will be appended to each individual record under the
`),it=_("code"),it.textContent="@expand",N=R(" property (eg. "),I=_("code"),I.textContent='"@expand": {"rel1": {...}, ...}',q=R(`). Only the
relations that the user has permissions to `),ne=_("strong"),ne.textContent="view",Te=R(" will be expanded."),Ae=T(),Qe=_("div"),Qe.textContent="Responses",Ue=T(),xe=_("div"),ze=_("div");for(let Ce=0;Ce<Ye.length;Ce+=1)Ye[Ce].c();de=T(),we=_("div");for(let Ce=0;Ce<Ze.length;Ce+=1)Ze[Ce].c();h(t,"class","label label-primary"),h(s,"class","content"),h(e,"class","alert alert-info"),h(m,"class","content m-b-base"),h(M,"class","section-title"),h(O,"class","tabs-header compact left"),h(j,"class","tabs-content"),h(E,"class","tabs m-b-lg"),h(K,"class","section-title"),h(J,"class","table-compact table-border m-b-lg"),h(Qe,"class","section-title"),h(ze,"class","tabs-header compact left"),h(we,"class","tabs-content"),h(xe,"class","tabs")},m(Ce,We){w(Ce,e,We),p(e,t),p(e,i),p(e,s),p(s,l),p(l,o),p(l,r),p(r,u),p(l,f),p(e,c),ce&&ce.m(e,null),w(Ce,d,We),w(Ce,m,We),p(m,g),p(g,v),p(g,b),p(b,C),p(g,$),w(Ce,S,We),w(Ce,M,We),w(Ce,D,We),w(Ce,E,We),p(E,O);for(let jt=0;jt<F.length;jt+=1)F[jt].m(O,null);p(E,H),p(E,j);for(let jt=0;jt<Q.length;jt+=1)Q[jt].m(j,null);w(Ce,U,We),w(Ce,K,We),w(Ce,W,We),w(Ce,J,We),p(J,se),p(J,fe),p(J,ke),p(ke,le),p(ke,ue),p(ke,Me),p(ke,Z),p(ke,be),p(be,x),p(be,G),p(be,_e),p(be,je),p(be,Ne),p(Ne,qe),p(Ne,ae),p(Ne,re),p(Ne,ve),p(Ne,Je),p(Ne,nt),p(Ne,ut),V(ot,Ne,null),p(ke,Xe),p(ke,ge),p(ge,pe),p(ge,Ve),p(ge,mt),p(ge,te),p(ge,ye),p(ye,Ke),V(ft,ye,null),p(ye,St),V($t,ye,null),p(ke,Nt),p(ke,Ft),p(Ft,Ct),p(Ft,Yt),p(Ft,Ge),p(Ft,Mt),p(Ft,ct),p(ct,Rt),V(Ht,ct,null),p(ct,Tt),p(ct,ht),p(ct,Ut),p(ct,it),p(ct,N),p(ct,I),p(ct,q),p(ct,ne),p(ct,Te),w(Ce,Ae,We),w(Ce,Qe,We),w(Ce,Ue,We),w(Ce,xe,We),p(xe,ze);for(let jt=0;jt<Ye.length;jt+=1)Ye[jt].m(ze,null);p(xe,de),p(xe,we);for(let jt=0;jt<Ze.length;jt+=1)Ze[jt].m(we,null);Gn=!0},p(Ce,[We]){(!Gn||We&1)&&a!==(a=Ce[0].name+"")&&me(u,a),Ce[1]?ce||(ce=gd(),ce.c(),ce.m(e,null)):ce&&(ce.d(1),ce=null),(!Gn||We&1)&&y!==(y=Ce[0].name+"")&&me(C,y),We&24&&(Ee=Ce[4],F=dt(F,We,rt,1,Ce,Ee,L,O,cn,_d,null,md)),We&24&&(Vi=Ce[4],De(),Q=dt(Q,We,El,1,Ce,Vi,ie,j,Bt,bd,null,pd),Oe()),We&36&&(cs=Ce[5],Ye=dt(Ye,We,Al,1,Ce,cs,gt,ze,cn,vd,null,hd)),We&36&&(zi=Ce[5],De(),Ze=dt(Ze,We,Pl,1,Ce,zi,In,we,Bt,yd,null,dd),Oe())},i(Ce){if(!Gn){for(let We=0;We<Vi.length;We+=1)A(Q[We]);A(ot.$$.fragment,Ce),A(ft.$$.fragment,Ce),A($t.$$.fragment,Ce),A(Ht.$$.fragment,Ce);for(let We=0;We<zi.length;We+=1)A(Ze[We]);Gn=!0}},o(Ce){for(let We=0;We<Q.length;We+=1)P(Q[We]);P(ot.$$.fragment,Ce),P(ft.$$.fragment,Ce),P($t.$$.fragment,Ce),P(Ht.$$.fragment,Ce);for(let We=0;We<Ze.length;We+=1)P(Ze[We]);Gn=!1},d(Ce){Ce&&k(e),ce&&ce.d(),Ce&&k(d),Ce&&k(m),Ce&&k(S),Ce&&k(M),Ce&&k(D),Ce&&k(E);for(let We=0;We<F.length;We+=1)F[We].d();for(let We=0;We<Q.length;We+=1)Q[We].d();Ce&&k(U),Ce&&k(K),Ce&&k(W),Ce&&k(J),z(ot),z(ft),z($t),z(Ht),Ce&&k(Ae),Ce&&k(Qe),Ce&&k(Ue),Ce&&k(xe);for(let We=0;We<Ye.length;We+=1)Ye[We].d();for(let We=0;We<Ze.length;We+=1)Ze[We].d()}}}function w$(n,e,t){let i,{collection:s=new Fn}=e,l=200,o="JavaScript",r=[],a=[];const u=c=>t(3,o=c.lang),f=c=>t(2,l=c.code);return n.$$set=c=>{"collection"in c&&t(0,s=c.collection)},n.$$.update=()=>{n.$$.dirty&1&&t(1,i=(s==null?void 0:s.listRule)===null),n.$$.dirty&3&&s!=null&&s.id&&(r.push({code:200,body:JSON.stringify({page:1,perPage:30,totalItems:2,items:[Y.dummyCollectionRecord(s),Y.dummyCollectionRecord(s)]},null,2)}),r.push({code:400,body:`
{
"code": 400,
"message": "Something went wrong while processing your request. Invalid filter.",
"data": {}
}
`}),i&&r.push({code:403,body:`
{
"code": 403,
"message": "Only admins can access this action.",
"data": {}
}
`}),r.push({code:404,body:`
{
"code": 404,
"message": "The requested resource wasn't found.",
"data": {}
}
`})),n.$$.dirty&1&&t(4,a=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${Se.baseUrl}");
...
// fetch a paginated records list
const resultList = await client.Records.getList("${s==null?void 0:s.name}", 1, 50, {
filter: "created >= '2022-01-01 00:00:00'",
});
// alternatively you can also fetch all records at once via getFullList:
const records = await client.Records.getFullList("${s==null?void 0:s.name}", 200 /* batch size */, {
sort: "-created",
});
`}])},[s,i,l,o,a,r,u,f]}class S$ extends Fe{constructor(e){super(),Le(this,e,w$,k$,Pe,{collection:0})}}function kd(n,e,t){const i=n.slice();return i[8]=e[t],i}function wd(n,e,t){const i=n.slice();return i[8]=e[t],i}function Sd(n,e,t){const i=n.slice();return i[13]=e[t],i}function $d(n,e,t){const i=n.slice();return i[13]=e[t],i}function Cd(n){let e;return{c(){e=_("p"),e.innerHTML="Requires <code>Authorization: Admin TOKEN</code> header",h(e,"class","txt-hint txt-sm txt-right")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Md(n,e){let t,i=e[13].lang+"",s,l,o,r;function a(){return e[6](e[13])}return{key:n,first:null,c(){t=_("button"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&16&&i!==(i=e[13].lang+"")&&me(s,i),f&24&&ee(t,"active",e[3]===e[13].lang)},d(u){u&&k(t),o=!1,r()}}}function Td(n,e){let t,i,s,l;return i=new ln({props:{content:e[13].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o;const a={};r&16&&(a.content=e[13].code),i.$set(a),r&24&&ee(t,"active",e[3]===e[13].lang)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function Dd(n,e){let t,i=e[8].code+"",s,l,o,r;function a(){return e[7](e[8])}return{key:n,first:null,c(){t=_("button"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&36&&ee(t,"active",e[2]===e[8].code)},d(u){u&&k(t),o=!1,r()}}}function Od(n,e){let t,i,s,l;return i=new ln({props:{content:e[8].body}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o,r&36&&ee(t,"active",e[2]===e[8].code)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function $$(n){let e,t,i,s,l,o,r,a=n[0].name+"",u,f,c,d,m,g,v,b,y,C=n[0].name+"",$,S,M,D,E,O,F,L=[],H=new Map,j,Q,ie=[],U=new Map,K,W,J,se,fe,ke,le,ue,Me,Z,be,x,G,_e,je,Ne,qe,ae,re,ve,Je,nt,ut,ot,Xe,ge,pe,Ve,mt,te,ye,Ke,ft,St=[],$t=new Map,Nt,Ft,Ct=[],Yt=new Map,Ge,Mt=n[1]&&Cd(),ct=n[4];const Rt=I=>I[13].lang;for(let I=0;I<ct.length;I+=1){let q=$d(n,ct,I),ne=Rt(q);H.set(ne,L[I]=Md(ne,q))}let Ht=n[4];const Tt=I=>I[13].lang;for(let I=0;I<Ht.length;I+=1){let q=Sd(n,Ht,I),ne=Tt(q);U.set(ne,ie[I]=Td(ne,q))}re=new ln({props:{content:`
?expand=rel1,rel2.subrel21.subrel22
`}});let ht=n[5];const Ut=I=>I[8].code;for(let I=0;I<ht.length;I+=1){let q=wd(n,ht,I),ne=Ut(q);$t.set(ne,St[I]=Dd(ne,q))}let it=n[5];const N=I=>I[8].code;for(let I=0;I<it.length;I+=1){let q=kd(n,it,I),ne=N(q);Yt.set(ne,Ct[I]=Od(ne,q))}return{c(){e=_("div"),t=_("strong"),t.textContent="GET",i=T(),s=_("div"),l=_("p"),o=R("/api/collections/"),r=_("strong"),u=R(a),f=R("/records/"),c=_("strong"),c.textContent=":id",d=T(),Mt&&Mt.c(),m=T(),g=_("div"),v=_("p"),b=R("Fetch a single "),y=_("strong"),$=R(C),S=R(" record."),M=T(),D=_("div"),D.textContent="Client SDKs example",E=T(),O=_("div"),F=_("div");for(let I=0;I<L.length;I+=1)L[I].c();j=T(),Q=_("div");for(let I=0;I<ie.length;I+=1)ie[I].c();K=T(),W=_("div"),W.textContent="Path Parameters",J=T(),se=_("table"),se.innerHTML=`<thead><tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr></thead>
<tbody><tr><td>id</td>
<td><span class="label">String</span></td>
<td>ID of the record to view.</td></tr></tbody>`,fe=T(),ke=_("div"),ke.textContent="Query parameters",le=T(),ue=_("table"),Me=_("thead"),Me.innerHTML=`<tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr>`,Z=T(),be=_("tbody"),x=_("tr"),G=_("td"),G.textContent="expand",_e=T(),je=_("td"),je.innerHTML='<span class="label">String</span>',Ne=T(),qe=_("td"),ae=R(`Auto expand record relations. Ex.:
`),B(re.$$.fragment),ve=R(`
Supports up to 6-levels depth nested relations expansion. `),Je=_("br"),nt=R(`
The expanded relations will be appended to the record under the
`),ut=_("code"),ut.textContent="@expand",ot=R(" property (eg. "),Xe=_("code"),Xe.textContent='"@expand": {"rel1": {...}, ...}',ge=R(`). Only the
relations that the user has permissions to `),pe=_("strong"),pe.textContent="view",Ve=R(" will be expanded."),mt=T(),te=_("div"),te.textContent="Responses",ye=T(),Ke=_("div"),ft=_("div");for(let I=0;I<St.length;I+=1)St[I].c();Nt=T(),Ft=_("div");for(let I=0;I<Ct.length;I+=1)Ct[I].c();h(t,"class","label label-primary"),h(s,"class","content"),h(e,"class","alert alert-info"),h(g,"class","content m-b-base"),h(D,"class","section-title"),h(F,"class","tabs-header compact left"),h(Q,"class","tabs-content"),h(O,"class","tabs m-b-lg"),h(W,"class","section-title"),h(se,"class","table-compact table-border m-b-lg"),h(ke,"class","section-title"),h(ue,"class","table-compact table-border m-b-lg"),h(te,"class","section-title"),h(ft,"class","tabs-header compact left"),h(Ft,"class","tabs-content"),h(Ke,"class","tabs")},m(I,q){w(I,e,q),p(e,t),p(e,i),p(e,s),p(s,l),p(l,o),p(l,r),p(r,u),p(l,f),p(l,c),p(e,d),Mt&&Mt.m(e,null),w(I,m,q),w(I,g,q),p(g,v),p(v,b),p(v,y),p(y,$),p(v,S),w(I,M,q),w(I,D,q),w(I,E,q),w(I,O,q),p(O,F);for(let ne=0;ne<L.length;ne+=1)L[ne].m(F,null);p(O,j),p(O,Q);for(let ne=0;ne<ie.length;ne+=1)ie[ne].m(Q,null);w(I,K,q),w(I,W,q),w(I,J,q),w(I,se,q),w(I,fe,q),w(I,ke,q),w(I,le,q),w(I,ue,q),p(ue,Me),p(ue,Z),p(ue,be),p(be,x),p(x,G),p(x,_e),p(x,je),p(x,Ne),p(x,qe),p(qe,ae),V(re,qe,null),p(qe,ve),p(qe,Je),p(qe,nt),p(qe,ut),p(qe,ot),p(qe,Xe),p(qe,ge),p(qe,pe),p(qe,Ve),w(I,mt,q),w(I,te,q),w(I,ye,q),w(I,Ke,q),p(Ke,ft);for(let ne=0;ne<St.length;ne+=1)St[ne].m(ft,null);p(Ke,Nt),p(Ke,Ft);for(let ne=0;ne<Ct.length;ne+=1)Ct[ne].m(Ft,null);Ge=!0},p(I,[q]){(!Ge||q&1)&&a!==(a=I[0].name+"")&&me(u,a),I[1]?Mt||(Mt=Cd(),Mt.c(),Mt.m(e,null)):Mt&&(Mt.d(1),Mt=null),(!Ge||q&1)&&C!==(C=I[0].name+"")&&me($,C),q&24&&(ct=I[4],L=dt(L,q,Rt,1,I,ct,H,F,cn,Md,null,$d)),q&24&&(Ht=I[4],De(),ie=dt(ie,q,Tt,1,I,Ht,U,Q,Bt,Td,null,Sd),Oe()),q&36&&(ht=I[5],St=dt(St,q,Ut,1,I,ht,$t,ft,cn,Dd,null,wd)),q&36&&(it=I[5],De(),Ct=dt(Ct,q,N,1,I,it,Yt,Ft,Bt,Od,null,kd),Oe())},i(I){if(!Ge){for(let q=0;q<Ht.length;q+=1)A(ie[q]);A(re.$$.fragment,I);for(let q=0;q<it.length;q+=1)A(Ct[q]);Ge=!0}},o(I){for(let q=0;q<ie.length;q+=1)P(ie[q]);P(re.$$.fragment,I);for(let q=0;q<Ct.length;q+=1)P(Ct[q]);Ge=!1},d(I){I&&k(e),Mt&&Mt.d(),I&&k(m),I&&k(g),I&&k(M),I&&k(D),I&&k(E),I&&k(O);for(let q=0;q<L.length;q+=1)L[q].d();for(let q=0;q<ie.length;q+=1)ie[q].d();I&&k(K),I&&k(W),I&&k(J),I&&k(se),I&&k(fe),I&&k(ke),I&&k(le),I&&k(ue),z(re),I&&k(mt),I&&k(te),I&&k(ye),I&&k(Ke);for(let q=0;q<St.length;q+=1)St[q].d();for(let q=0;q<Ct.length;q+=1)Ct[q].d()}}}function C$(n,e,t){let i,{collection:s=new Fn}=e,l=200,o="JavaScript",r=[],a=[];const u=c=>t(3,o=c.lang),f=c=>t(2,l=c.code);return n.$$set=c=>{"collection"in c&&t(0,s=c.collection)},n.$$.update=()=>{n.$$.dirty&1&&t(1,i=(s==null?void 0:s.viewRule)===null),n.$$.dirty&3&&s!=null&&s.id&&(r.push({code:200,body:JSON.stringify(Y.dummyCollectionRecord(s),null,2)}),i&&r.push({code:403,body:`
{
"code": 403,
"message": "Only admins can access this action.",
"data": {}
}
`}),r.push({code:404,body:`
{
"code": 404,
"message": "The requested resource wasn't found.",
"data": {}
}
`})),n.$$.dirty&1&&t(4,a=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${Se.baseUrl}");
...
const record = await client.Records.getOne("${s==null?void 0:s.name}", "RECORD_ID", {
expand: "some_relation"
});
`}])},[s,i,l,o,a,r,u,f]}class M$ extends Fe{constructor(e){super(),Le(this,e,C$,$$,Pe,{collection:0})}}function Ed(n,e,t){const i=n.slice();return i[8]=e[t],i}function Ad(n,e,t){const i=n.slice();return i[8]=e[t],i}function Pd(n,e,t){const i=n.slice();return i[13]=e[t],i}function Ld(n,e,t){const i=n.slice();return i[16]=e[t],i}function Fd(n,e,t){const i=n.slice();return i[16]=e[t],i}function Id(n){let e;return{c(){e=_("p"),e.innerHTML="Requires <code>Authorization: Admin TOKEN</code> header",h(e,"class","txt-hint txt-sm txt-right")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Nd(n,e){let t,i=e[16].lang+"",s,l,o,r;function a(){return e[6](e[16])}return{key:n,first:null,c(){t=_("button"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[2]===e[16].lang),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&16&&i!==(i=e[16].lang+"")&&me(s,i),f&20&&ee(t,"active",e[2]===e[16].lang)},d(u){u&&k(t),o=!1,r()}}}function Rd(n,e){let t,i,s,l;return i=new ln({props:{content:e[16].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[2]===e[16].lang),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o;const a={};r&16&&(a.content=e[16].code),i.$set(a),r&20&&ee(t,"active",e[2]===e[16].lang)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function T$(n){let e;return{c(){e=_("span"),e.textContent="Optional",h(e,"class","label label-warning")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function D$(n){let e;return{c(){e=_("span"),e.textContent="Required",h(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function O$(n){var l;let e,t=((l=n[13].options)==null?void 0:l.maxSelect)>1?"ids":"id",i,s;return{c(){e=R("User "),i=R(t),s=R(".")},m(o,r){w(o,e,r),w(o,i,r),w(o,s,r)},p(o,r){var a;r&1&&t!==(t=((a=o[13].options)==null?void 0:a.maxSelect)>1?"ids":"id")&&me(i,t)},d(o){o&&k(e),o&&k(i),o&&k(s)}}}function E$(n){var l;let e,t=((l=n[13].options)==null?void 0:l.maxSelect)>1?"ids":"id",i,s;return{c(){e=R("Relation record "),i=R(t),s=R(".")},m(o,r){w(o,e,r),w(o,i,r),w(o,s,r)},p(o,r){var a;r&1&&t!==(t=((a=o[13].options)==null?void 0:a.maxSelect)>1?"ids":"id")&&me(i,t)},d(o){o&&k(e),o&&k(i),o&&k(s)}}}function A$(n){let e,t,i,s,l;return{c(){e=R("FormData object."),t=_("br"),i=R(`
Set to `),s=_("code"),s.textContent="null",l=R(" to delete already uploaded file(s).")},m(o,r){w(o,e,r),w(o,t,r),w(o,i,r),w(o,s,r),w(o,l,r)},p:oe,d(o){o&&k(e),o&&k(t),o&&k(i),o&&k(s),o&&k(l)}}}function P$(n){let e;return{c(){e=R("URL address.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function L$(n){let e;return{c(){e=R("Email address.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function F$(n){let e;return{c(){e=R("JSON array or object.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function I$(n){let e;return{c(){e=R("Number value.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function N$(n){let e;return{c(){e=R("Plain text value.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function Hd(n,e){let t,i,s,l,o,r=e[13].name+"",a,u,f,c,d=Y.getFieldValueType(e[13])+"",m,g,v,b;function y(E,O){return E[13].required?D$:T$}let C=y(e),$=C(e);function S(E,O){if(E[13].type==="text")return N$;if(E[13].type==="number")return I$;if(E[13].type==="json")return F$;if(E[13].type==="email")return L$;if(E[13].type==="url")return P$;if(E[13].type==="file")return A$;if(E[13].type==="relation")return E$;if(E[13].type==="user")return O$}let M=S(e),D=M&&M(e);return{key:n,first:null,c(){t=_("tr"),i=_("td"),s=_("div"),$.c(),l=T(),o=_("span"),a=R(r),u=T(),f=_("td"),c=_("span"),m=R(d),g=T(),v=_("td"),D&&D.c(),b=T(),h(s,"class","inline-flex"),h(c,"class","label"),this.first=t},m(E,O){w(E,t,O),p(t,i),p(i,s),$.m(s,null),p(s,l),p(s,o),p(o,a),p(t,u),p(t,f),p(f,c),p(c,m),p(t,g),p(t,v),D&&D.m(v,null),p(t,b)},p(E,O){e=E,C!==(C=y(e))&&($.d(1),$=C(e),$&&($.c(),$.m(s,l))),O&1&&r!==(r=e[13].name+"")&&me(a,r),O&1&&d!==(d=Y.getFieldValueType(e[13])+"")&&me(m,d),M===(M=S(e))&&D?D.p(e,O):(D&&D.d(1),D=M&&M(e),D&&(D.c(),D.m(v,null)))},d(E){E&&k(t),$.d(),D&&D.d()}}}function jd(n,e){let t,i=e[8].code+"",s,l,o,r;function a(){return e[7](e[8])}return{key:n,first:null,c(){t=_("button"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[1]===e[8].code),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&8&&i!==(i=e[8].code+"")&&me(s,i),f&10&&ee(t,"active",e[1]===e[8].code)},d(u){u&&k(t),o=!1,r()}}}function qd(n,e){let t,i,s,l;return i=new ln({props:{content:e[8].body}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[1]===e[8].code),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o;const a={};r&8&&(a.content=e[8].body),i.$set(a),r&10&&ee(t,"active",e[1]===e[8].code)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function R$(n){var gt;let e,t,i,s,l,o,r,a=n[0].name+"",u,f,c,d,m,g,v,b,y=n[0].name+"",C,$,S,M,D,E,O,F,L,H,j,Q=[],ie=new Map,U,K,W=[],J=new Map,se,fe,ke,le,ue,Me,Z,be=[],x=new Map,G,_e,je,Ne,qe,ae,re,ve,Je,nt,ut,ot,Xe,ge,pe,Ve,mt,te,ye,Ke,ft,St,$t,Nt,Ft,Ct,Yt,Ge,Mt,ct=[],Rt=new Map,Ht,Tt,ht=[],Ut=new Map,it,N=n[5]&&Id(),I=n[4];const q=de=>de[16].lang;for(let de=0;de<I.length;de+=1){let we=Fd(n,I,de),Ze=q(we);ie.set(Ze,Q[de]=Nd(Ze,we))}let ne=n[4];const Te=de=>de[16].lang;for(let de=0;de<ne.length;de+=1){let we=Ld(n,ne,de),Ze=Te(we);J.set(Ze,W[de]=Rd(Ze,we))}let Ae=(gt=n[0])==null?void 0:gt.schema;const Qe=de=>de[13].name;for(let de=0;de<Ae.length;de+=1){let we=Pd(n,Ae,de),Ze=Qe(we);x.set(Ze,be[de]=Hd(Ze,we))}pe=new ln({props:{content:`
?expand=rel1,rel2.subrel21.subrel22
`}});let Ue=n[3];const xe=de=>de[8].code;for(let de=0;de<Ue.length;de+=1){let we=Ad(n,Ue,de),Ze=xe(we);Rt.set(Ze,ct[de]=jd(Ze,we))}let ze=n[3];const Ye=de=>de[8].code;for(let de=0;de<ze.length;de+=1){let we=Ed(n,ze,de),Ze=Ye(we);Ut.set(Ze,ht[de]=qd(Ze,we))}return{c(){e=_("div"),t=_("strong"),t.textContent="POST",i=T(),s=_("div"),l=_("p"),o=R("/api/collections/"),r=_("strong"),u=R(a),f=R("/records"),c=T(),N&&N.c(),d=T(),m=_("div"),g=_("p"),v=R("Create a new "),b=_("strong"),C=R(y),$=R(" record."),S=T(),M=_("p"),M.innerHTML=`Body parameters could be sent as <code>application/json</code> or
<code>multipart/form-data</code>.`,D=T(),E=_("p"),E.innerHTML="File upload is supported only via <code>multipart/form-data</code>.",O=T(),F=_("div"),F.textContent="Client SDKs example",L=T(),H=_("div"),j=_("div");for(let de=0;de<Q.length;de+=1)Q[de].c();U=T(),K=_("div");for(let de=0;de<W.length;de+=1)W[de].c();se=T(),fe=_("div"),fe.textContent="Body Parameters",ke=T(),le=_("table"),ue=_("thead"),ue.innerHTML=`<tr><th>Param</th>
<th>Type</th>
<th width="50%">Description</th></tr>`,Me=T(),Z=_("tbody");for(let de=0;de<be.length;de+=1)be[de].c();G=T(),_e=_("div"),_e.textContent="Query parameters",je=T(),Ne=_("table"),qe=_("thead"),qe.innerHTML=`<tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr>`,ae=T(),re=_("tbody"),ve=_("tr"),Je=_("td"),Je.textContent="expand",nt=T(),ut=_("td"),ut.innerHTML='<span class="label">String</span>',ot=T(),Xe=_("td"),ge=R(`Auto expand relations when returning the created record. Ex.:
`),B(pe.$$.fragment),Ve=R(`
Supports up to 6-levels depth nested relations expansion. `),mt=_("br"),te=R(`
The expanded relations will be appended to the record under the
`),ye=_("code"),ye.textContent="@expand",Ke=R(" property (eg. "),ft=_("code"),ft.textContent='"@expand": {"rel1": {...}, ...}',St=R(`). Only the
relations that the user has permissions to `),$t=_("strong"),$t.textContent="view",Nt=R(" will be expanded."),Ft=T(),Ct=_("div"),Ct.textContent="Responses",Yt=T(),Ge=_("div"),Mt=_("div");for(let de=0;de<ct.length;de+=1)ct[de].c();Ht=T(),Tt=_("div");for(let de=0;de<ht.length;de+=1)ht[de].c();h(t,"class","label label-primary"),h(s,"class","content"),h(e,"class","alert alert-success"),h(m,"class","content m-b-base"),h(F,"class","section-title"),h(j,"class","tabs-header compact left"),h(K,"class","tabs-content"),h(H,"class","tabs m-b-lg"),h(fe,"class","section-title"),h(le,"class","table-compact table-border m-b-lg"),h(_e,"class","section-title"),h(Ne,"class","table-compact table-border m-b-lg"),h(Ct,"class","section-title"),h(Mt,"class","tabs-header compact left"),h(Tt,"class","tabs-content"),h(Ge,"class","tabs")},m(de,we){w(de,e,we),p(e,t),p(e,i),p(e,s),p(s,l),p(l,o),p(l,r),p(r,u),p(l,f),p(e,c),N&&N.m(e,null),w(de,d,we),w(de,m,we),p(m,g),p(g,v),p(g,b),p(b,C),p(g,$),p(m,S),p(m,M),p(m,D),p(m,E),w(de,O,we),w(de,F,we),w(de,L,we),w(de,H,we),p(H,j);for(let Ze=0;Ze<Q.length;Ze+=1)Q[Ze].m(j,null);p(H,U),p(H,K);for(let Ze=0;Ze<W.length;Ze+=1)W[Ze].m(K,null);w(de,se,we),w(de,fe,we),w(de,ke,we),w(de,le,we),p(le,ue),p(le,Me),p(le,Z);for(let Ze=0;Ze<be.length;Ze+=1)be[Ze].m(Z,null);w(de,G,we),w(de,_e,we),w(de,je,we),w(de,Ne,we),p(Ne,qe),p(Ne,ae),p(Ne,re),p(re,ve),p(ve,Je),p(ve,nt),p(ve,ut),p(ve,ot),p(ve,Xe),p(Xe,ge),V(pe,Xe,null),p(Xe,Ve),p(Xe,mt),p(Xe,te),p(Xe,ye),p(Xe,Ke),p(Xe,ft),p(Xe,St),p(Xe,$t),p(Xe,Nt),w(de,Ft,we),w(de,Ct,we),w(de,Yt,we),w(de,Ge,we),p(Ge,Mt);for(let Ze=0;Ze<ct.length;Ze+=1)ct[Ze].m(Mt,null);p(Ge,Ht),p(Ge,Tt);for(let Ze=0;Ze<ht.length;Ze+=1)ht[Ze].m(Tt,null);it=!0},p(de,[we]){var Ze;(!it||we&1)&&a!==(a=de[0].name+"")&&me(u,a),de[5]?N||(N=Id(),N.c(),N.m(e,null)):N&&(N.d(1),N=null),(!it||we&1)&&y!==(y=de[0].name+"")&&me(C,y),we&20&&(I=de[4],Q=dt(Q,we,q,1,de,I,ie,j,cn,Nd,null,Fd)),we&20&&(ne=de[4],De(),W=dt(W,we,Te,1,de,ne,J,K,Bt,Rd,null,Ld),Oe()),we&1&&(Ae=(Ze=de[0])==null?void 0:Ze.schema,be=dt(be,we,Qe,1,de,Ae,x,Z,cn,Hd,null,Pd)),we&10&&(Ue=de[3],ct=dt(ct,we,xe,1,de,Ue,Rt,Mt,cn,jd,null,Ad)),we&10&&(ze=de[3],De(),ht=dt(ht,we,Ye,1,de,ze,Ut,Tt,Bt,qd,null,Ed),Oe())},i(de){if(!it){for(let we=0;we<ne.length;we+=1)A(W[we]);A(pe.$$.fragment,de);for(let we=0;we<ze.length;we+=1)A(ht[we]);it=!0}},o(de){for(let we=0;we<W.length;we+=1)P(W[we]);P(pe.$$.fragment,de);for(let we=0;we<ht.length;we+=1)P(ht[we]);it=!1},d(de){de&&k(e),N&&N.d(),de&&k(d),de&&k(m),de&&k(O),de&&k(F),de&&k(L),de&&k(H);for(let we=0;we<Q.length;we+=1)Q[we].d();for(let we=0;we<W.length;we+=1)W[we].d();de&&k(se),de&&k(fe),de&&k(ke),de&&k(le);for(let we=0;we<be.length;we+=1)be[we].d();de&&k(G),de&&k(_e),de&&k(je),de&&k(Ne),z(pe),de&&k(Ft),de&&k(Ct),de&&k(Yt),de&&k(Ge);for(let we=0;we<ct.length;we+=1)ct[we].d();for(let we=0;we<ht.length;we+=1)ht[we].d()}}}function H$(n,e,t){let i,{collection:s=new Fn}=e,l=200,o="JavaScript",r=[],a=[];const u=c=>t(2,o=c.lang),f=c=>t(1,l=c.code);return n.$$set=c=>{"collection"in c&&t(0,s=c.collection)},n.$$.update=()=>{var c,d;n.$$.dirty&1&&t(5,i=(s==null?void 0:s.createRule)===null),n.$$.dirty&1&&t(3,r=[{code:200,body:JSON.stringify(Y.dummyCollectionRecord(s),null,2)},{code:400,body:`
{
"code": 400,
"message": "Failed to create record.",
"data": {
"${(d=(c=s==null?void 0:s.schema)==null?void 0:c[0])==null?void 0:d.name}": {
"code": "validation_required",
"message": "Missing required value."
}
}
}
`},{code:403,body:`
{
"code": 403,
"message": "You are not allowed to perform this request.",
"data": {}
}
`}]),n.$$.dirty&1&&t(4,a=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${Se.baseUrl}");
...
const data = { ... };
const record = await client.Records.create("${s==null?void 0:s.name}", data);
`}])},[s,l,o,r,a,i,u,f]}class j$ extends Fe{constructor(e){super(),Le(this,e,H$,R$,Pe,{collection:0})}}function Vd(n,e,t){const i=n.slice();return i[8]=e[t],i}function zd(n,e,t){const i=n.slice();return i[8]=e[t],i}function Bd(n,e,t){const i=n.slice();return i[13]=e[t],i}function Ud(n,e,t){const i=n.slice();return i[16]=e[t],i}function Wd(n,e,t){const i=n.slice();return i[16]=e[t],i}function Yd(n){let e;return{c(){e=_("p"),e.innerHTML="Requires <code>Authorization: Admin TOKEN</code> header",h(e,"class","txt-hint txt-sm txt-right")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Kd(n,e){let t,i=e[16].lang+"",s,l,o,r;function a(){return e[6](e[16])}return{key:n,first:null,c(){t=_("button"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[2]===e[16].lang),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&16&&i!==(i=e[16].lang+"")&&me(s,i),f&20&&ee(t,"active",e[2]===e[16].lang)},d(u){u&&k(t),o=!1,r()}}}function Zd(n,e){let t,i,s,l;return i=new ln({props:{content:e[16].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[2]===e[16].lang),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o;const a={};r&16&&(a.content=e[16].code),i.$set(a),r&20&&ee(t,"active",e[2]===e[16].lang)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function q$(n){let e;return{c(){e=_("span"),e.textContent="Optional",h(e,"class","label label-warning")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function V$(n){let e;return{c(){e=_("span"),e.textContent="Required",h(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function z$(n){var l;let e,t=((l=n[13].options)==null?void 0:l.maxSelect)>1?"ids":"id",i,s;return{c(){e=R("User "),i=R(t),s=R(".")},m(o,r){w(o,e,r),w(o,i,r),w(o,s,r)},p(o,r){var a;r&1&&t!==(t=((a=o[13].options)==null?void 0:a.maxSelect)>1?"ids":"id")&&me(i,t)},d(o){o&&k(e),o&&k(i),o&&k(s)}}}function B$(n){var l;let e,t=((l=n[13].options)==null?void 0:l.maxSelect)>1?"ids":"id",i,s;return{c(){e=R("Relation record "),i=R(t),s=R(".")},m(o,r){w(o,e,r),w(o,i,r),w(o,s,r)},p(o,r){var a;r&1&&t!==(t=((a=o[13].options)==null?void 0:a.maxSelect)>1?"ids":"id")&&me(i,t)},d(o){o&&k(e),o&&k(i),o&&k(s)}}}function U$(n){let e,t,i,s,l;return{c(){e=R("FormData object."),t=_("br"),i=R(`
Set to `),s=_("code"),s.textContent="null",l=R(" to delete already uploaded file(s).")},m(o,r){w(o,e,r),w(o,t,r),w(o,i,r),w(o,s,r),w(o,l,r)},p:oe,d(o){o&&k(e),o&&k(t),o&&k(i),o&&k(s),o&&k(l)}}}function W$(n){let e;return{c(){e=R("URL address.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function Y$(n){let e;return{c(){e=R("Email address.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function K$(n){let e;return{c(){e=R("JSON array or object.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function Z$(n){let e;return{c(){e=R("Number value.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function J$(n){let e;return{c(){e=R("Plain text value.")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function Jd(n,e){let t,i,s,l,o,r=e[13].name+"",a,u,f,c,d=Y.getFieldValueType(e[13])+"",m,g,v,b;function y(E,O){return E[13].required?V$:q$}let C=y(e),$=C(e);function S(E,O){if(E[13].type==="text")return J$;if(E[13].type==="number")return Z$;if(E[13].type==="json")return K$;if(E[13].type==="email")return Y$;if(E[13].type==="url")return W$;if(E[13].type==="file")return U$;if(E[13].type==="relation")return B$;if(E[13].type==="user")return z$}let M=S(e),D=M&&M(e);return{key:n,first:null,c(){t=_("tr"),i=_("td"),s=_("div"),$.c(),l=T(),o=_("span"),a=R(r),u=T(),f=_("td"),c=_("span"),m=R(d),g=T(),v=_("td"),D&&D.c(),b=T(),h(s,"class","inline-flex"),h(c,"class","label"),this.first=t},m(E,O){w(E,t,O),p(t,i),p(i,s),$.m(s,null),p(s,l),p(s,o),p(o,a),p(t,u),p(t,f),p(f,c),p(c,m),p(t,g),p(t,v),D&&D.m(v,null),p(t,b)},p(E,O){e=E,C!==(C=y(e))&&($.d(1),$=C(e),$&&($.c(),$.m(s,l))),O&1&&r!==(r=e[13].name+"")&&me(a,r),O&1&&d!==(d=Y.getFieldValueType(e[13])+"")&&me(m,d),M===(M=S(e))&&D?D.p(e,O):(D&&D.d(1),D=M&&M(e),D&&(D.c(),D.m(v,null)))},d(E){E&&k(t),$.d(),D&&D.d()}}}function Gd(n,e){let t,i=e[8].code+"",s,l,o,r;function a(){return e[7](e[8])}return{key:n,first:null,c(){t=_("button"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[1]===e[8].code),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&8&&i!==(i=e[8].code+"")&&me(s,i),f&10&&ee(t,"active",e[1]===e[8].code)},d(u){u&&k(t),o=!1,r()}}}function Xd(n,e){let t,i,s,l;return i=new ln({props:{content:e[8].body}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[1]===e[8].code),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o;const a={};r&8&&(a.content=e[8].body),i.$set(a),r&10&&ee(t,"active",e[1]===e[8].code)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function G$(n){var Gn;let e,t,i,s,l,o,r,a=n[0].name+"",u,f,c,d,m,g,v,b,y,C=n[0].name+"",$,S,M,D,E,O,F,L,H,j,Q,ie=[],U=new Map,K,W,J=[],se=new Map,fe,ke,le,ue,Me,Z,be,x,G,_e,je,Ne=[],qe=new Map,ae,re,ve,Je,nt,ut,ot,Xe,ge,pe,Ve,mt,te,ye,Ke,ft,St,$t,Nt,Ft,Ct,Yt,Ge,Mt,ct,Rt,Ht,Tt,ht,Ut=[],it=new Map,N,I,q=[],ne=new Map,Te,Ae=n[5]&&Yd(),Qe=n[4];const Ue=ce=>ce[16].lang;for(let ce=0;ce<Qe.length;ce+=1){let Ee=Wd(n,Qe,ce),rt=Ue(Ee);U.set(rt,ie[ce]=Kd(rt,Ee))}let xe=n[4];const ze=ce=>ce[16].lang;for(let ce=0;ce<xe.length;ce+=1){let Ee=Ud(n,xe,ce),rt=ze(Ee);se.set(rt,J[ce]=Zd(rt,Ee))}let Ye=(Gn=n[0])==null?void 0:Gn.schema;const gt=ce=>ce[13].name;for(let ce=0;ce<Ye.length;ce+=1){let Ee=Bd(n,Ye,ce),rt=gt(Ee);qe.set(rt,Ne[ce]=Jd(rt,Ee))}Ke=new ln({props:{content:`
?expand=rel1,rel2.subrel21.subrel22
`}});let de=n[3];const we=ce=>ce[8].code;for(let ce=0;ce<de.length;ce+=1){let Ee=zd(n,de,ce),rt=we(Ee);it.set(rt,Ut[ce]=Gd(rt,Ee))}let Ze=n[3];const In=ce=>ce[8].code;for(let ce=0;ce<Ze.length;ce+=1){let Ee=Vd(n,Ze,ce),rt=In(Ee);ne.set(rt,q[ce]=Xd(rt,Ee))}return{c(){e=_("div"),t=_("strong"),t.textContent="PATCH",i=T(),s=_("div"),l=_("p"),o=R("/api/collections/"),r=_("strong"),u=R(a),f=R("/records/"),c=_("strong"),c.textContent=":id",d=T(),Ae&&Ae.c(),m=T(),g=_("div"),v=_("p"),b=R("Update a single "),y=_("strong"),$=R(C),S=R(" record."),M=T(),D=_("p"),D.innerHTML=`Body parameters could be sent as <code>application/json</code> or
<code>multipart/form-data</code>.`,E=T(),O=_("p"),O.innerHTML="File upload is supported only via <code>multipart/form-data</code>.",F=T(),L=_("div"),L.textContent="Client SDKs example",H=T(),j=_("div"),Q=_("div");for(let ce=0;ce<ie.length;ce+=1)ie[ce].c();K=T(),W=_("div");for(let ce=0;ce<J.length;ce+=1)J[ce].c();fe=T(),ke=_("div"),ke.textContent="Path parameters",le=T(),ue=_("table"),ue.innerHTML=`<thead><tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr></thead>
<tbody><tr><td>id</td>
<td><span class="label">String</span></td>
<td>ID of the record to update.</td></tr></tbody>`,Me=T(),Z=_("div"),Z.textContent="Body Parameters",be=T(),x=_("table"),G=_("thead"),G.innerHTML=`<tr><th>Param</th>
<th>Type</th>
<th width="50%">Description</th></tr>`,_e=T(),je=_("tbody");for(let ce=0;ce<Ne.length;ce+=1)Ne[ce].c();ae=T(),re=_("div"),re.textContent="Query parameters",ve=T(),Je=_("table"),nt=_("thead"),nt.innerHTML=`<tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr>`,ut=T(),ot=_("tbody"),Xe=_("tr"),ge=_("td"),ge.textContent="expand",pe=T(),Ve=_("td"),Ve.innerHTML='<span class="label">String</span>',mt=T(),te=_("td"),ye=R(`Auto expand relations when returning the updated record. Ex.:
`),B(Ke.$$.fragment),ft=R(`
Supports up to 6-levels depth nested relations expansion. `),St=_("br"),$t=R(`
The expanded relations will be appended to the record under the
`),Nt=_("code"),Nt.textContent="@expand",Ft=R(" property (eg. "),Ct=_("code"),Ct.textContent='"@expand": {"rel1": {...}, ...}',Yt=R(`). Only the
relations that the user has permissions to `),Ge=_("strong"),Ge.textContent="view",Mt=R(" will be expanded."),ct=T(),Rt=_("div"),Rt.textContent="Responses",Ht=T(),Tt=_("div"),ht=_("div");for(let ce=0;ce<Ut.length;ce+=1)Ut[ce].c();N=T(),I=_("div");for(let ce=0;ce<q.length;ce+=1)q[ce].c();h(t,"class","label label-primary"),h(s,"class","content"),h(e,"class","alert alert-warning"),h(g,"class","content m-b-base"),h(L,"class","section-title"),h(Q,"class","tabs-header compact left"),h(W,"class","tabs-content"),h(j,"class","tabs m-b-lg"),h(ke,"class","section-title"),h(ue,"class","table-compact table-border m-b-lg"),h(Z,"class","section-title"),h(x,"class","table-compact table-border m-b-lg"),h(re,"class","section-title"),h(Je,"class","table-compact table-border m-b-lg"),h(Rt,"class","section-title"),h(ht,"class","tabs-header compact left"),h(I,"class","tabs-content"),h(Tt,"class","tabs")},m(ce,Ee){w(ce,e,Ee),p(e,t),p(e,i),p(e,s),p(s,l),p(l,o),p(l,r),p(r,u),p(l,f),p(l,c),p(e,d),Ae&&Ae.m(e,null),w(ce,m,Ee),w(ce,g,Ee),p(g,v),p(v,b),p(v,y),p(y,$),p(v,S),p(g,M),p(g,D),p(g,E),p(g,O),w(ce,F,Ee),w(ce,L,Ee),w(ce,H,Ee),w(ce,j,Ee),p(j,Q);for(let rt=0;rt<ie.length;rt+=1)ie[rt].m(Q,null);p(j,K),p(j,W);for(let rt=0;rt<J.length;rt+=1)J[rt].m(W,null);w(ce,fe,Ee),w(ce,ke,Ee),w(ce,le,Ee),w(ce,ue,Ee),w(ce,Me,Ee),w(ce,Z,Ee),w(ce,be,Ee),w(ce,x,Ee),p(x,G),p(x,_e),p(x,je);for(let rt=0;rt<Ne.length;rt+=1)Ne[rt].m(je,null);w(ce,ae,Ee),w(ce,re,Ee),w(ce,ve,Ee),w(ce,Je,Ee),p(Je,nt),p(Je,ut),p(Je,ot),p(ot,Xe),p(Xe,ge),p(Xe,pe),p(Xe,Ve),p(Xe,mt),p(Xe,te),p(te,ye),V(Ke,te,null),p(te,ft),p(te,St),p(te,$t),p(te,Nt),p(te,Ft),p(te,Ct),p(te,Yt),p(te,Ge),p(te,Mt),w(ce,ct,Ee),w(ce,Rt,Ee),w(ce,Ht,Ee),w(ce,Tt,Ee),p(Tt,ht);for(let rt=0;rt<Ut.length;rt+=1)Ut[rt].m(ht,null);p(Tt,N),p(Tt,I);for(let rt=0;rt<q.length;rt+=1)q[rt].m(I,null);Te=!0},p(ce,[Ee]){var rt;(!Te||Ee&1)&&a!==(a=ce[0].name+"")&&me(u,a),ce[5]?Ae||(Ae=Yd(),Ae.c(),Ae.m(e,null)):Ae&&(Ae.d(1),Ae=null),(!Te||Ee&1)&&C!==(C=ce[0].name+"")&&me($,C),Ee&20&&(Qe=ce[4],ie=dt(ie,Ee,Ue,1,ce,Qe,U,Q,cn,Kd,null,Wd)),Ee&20&&(xe=ce[4],De(),J=dt(J,Ee,ze,1,ce,xe,se,W,Bt,Zd,null,Ud),Oe()),Ee&1&&(Ye=(rt=ce[0])==null?void 0:rt.schema,Ne=dt(Ne,Ee,gt,1,ce,Ye,qe,je,cn,Jd,null,Bd)),Ee&10&&(de=ce[3],Ut=dt(Ut,Ee,we,1,ce,de,it,ht,cn,Gd,null,zd)),Ee&10&&(Ze=ce[3],De(),q=dt(q,Ee,In,1,ce,Ze,ne,I,Bt,Xd,null,Vd),Oe())},i(ce){if(!Te){for(let Ee=0;Ee<xe.length;Ee+=1)A(J[Ee]);A(Ke.$$.fragment,ce);for(let Ee=0;Ee<Ze.length;Ee+=1)A(q[Ee]);Te=!0}},o(ce){for(let Ee=0;Ee<J.length;Ee+=1)P(J[Ee]);P(Ke.$$.fragment,ce);for(let Ee=0;Ee<q.length;Ee+=1)P(q[Ee]);Te=!1},d(ce){ce&&k(e),Ae&&Ae.d(),ce&&k(m),ce&&k(g),ce&&k(F),ce&&k(L),ce&&k(H),ce&&k(j);for(let Ee=0;Ee<ie.length;Ee+=1)ie[Ee].d();for(let Ee=0;Ee<J.length;Ee+=1)J[Ee].d();ce&&k(fe),ce&&k(ke),ce&&k(le),ce&&k(ue),ce&&k(Me),ce&&k(Z),ce&&k(be),ce&&k(x);for(let Ee=0;Ee<Ne.length;Ee+=1)Ne[Ee].d();ce&&k(ae),ce&&k(re),ce&&k(ve),ce&&k(Je),z(Ke),ce&&k(ct),ce&&k(Rt),ce&&k(Ht),ce&&k(Tt);for(let Ee=0;Ee<Ut.length;Ee+=1)Ut[Ee].d();for(let Ee=0;Ee<q.length;Ee+=1)q[Ee].d()}}}function X$(n,e,t){let i,{collection:s=new Fn}=e,l=200,o="JavaScript",r=[],a=[];const u=c=>t(2,o=c.lang),f=c=>t(1,l=c.code);return n.$$set=c=>{"collection"in c&&t(0,s=c.collection)},n.$$.update=()=>{var c,d;n.$$.dirty&1&&t(5,i=(s==null?void 0:s.updateRule)===null),n.$$.dirty&1&&t(3,r=[{code:200,body:JSON.stringify(Y.dummyCollectionRecord(s),null,2)},{code:400,body:`
{
"code": 400,
"message": "Failed to update record.",
"data": {
"${(d=(c=s==null?void 0:s.schema)==null?void 0:c[0])==null?void 0:d.name}": {
"code": "validation_required",
"message": "Missing required value."
}
}
}
`},{code:403,body:`
{
"code": 403,
"message": "You are not allowed to perform this request.",
"data": {}
}
`},{code:404,body:`
{
"code": 404,
"message": "The requested resource wasn't found.",
"data": {}
}
`}]),n.$$.dirty&1&&t(4,a=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${Se.baseUrl}");
...
const data = { ... };
const record = await client.Records.update("${s==null?void 0:s.name}", "RECORD_ID", data);
`}])},[s,l,o,r,a,i,u,f]}class Q$ extends Fe{constructor(e){super(),Le(this,e,X$,G$,Pe,{collection:0})}}function Qd(n,e,t){const i=n.slice();return i[8]=e[t],i}function xd(n,e,t){const i=n.slice();return i[8]=e[t],i}function eh(n,e,t){const i=n.slice();return i[13]=e[t],i}function th(n,e,t){const i=n.slice();return i[13]=e[t],i}function nh(n){let e;return{c(){e=_("p"),e.innerHTML="Requires <code>Authorization: Admin TOKEN</code> header",h(e,"class","txt-hint txt-sm txt-right")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function ih(n,e){let t,i=e[13].lang+"",s,l,o,r;function a(){return e[6](e[13])}return{key:n,first:null,c(){t=_("button"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&16&&i!==(i=e[13].lang+"")&&me(s,i),f&24&&ee(t,"active",e[3]===e[13].lang)},d(u){u&&k(t),o=!1,r()}}}function sh(n,e){let t,i,s,l;return i=new ln({props:{content:e[13].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[3]===e[13].lang),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o;const a={};r&16&&(a.content=e[13].code),i.$set(a),r&24&&ee(t,"active",e[3]===e[13].lang)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function lh(n,e){let t,i=e[8].code+"",s,l,o,r;function a(){return e[7](e[8])}return{key:n,first:null,c(){t=_("button"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&36&&ee(t,"active",e[2]===e[8].code)},d(u){u&&k(t),o=!1,r()}}}function oh(n,e){let t,i,s,l;return i=new ln({props:{content:e[8].body}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[2]===e[8].code),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o,r&36&&ee(t,"active",e[2]===e[8].code)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function x$(n){let e,t,i,s,l,o,r,a=n[0].name+"",u,f,c,d,m,g,v,b,y,C=n[0].name+"",$,S,M,D,E,O,F,L=[],H=new Map,j,Q,ie=[],U=new Map,K,W,J,se,fe,ke,le,ue,Me,Z=[],be=new Map,x,G,_e=[],je=new Map,Ne,qe=n[1]&&nh(),ae=n[4];const re=ge=>ge[13].lang;for(let ge=0;ge<ae.length;ge+=1){let pe=th(n,ae,ge),Ve=re(pe);H.set(Ve,L[ge]=ih(Ve,pe))}let ve=n[4];const Je=ge=>ge[13].lang;for(let ge=0;ge<ve.length;ge+=1){let pe=eh(n,ve,ge),Ve=Je(pe);U.set(Ve,ie[ge]=sh(Ve,pe))}let nt=n[5];const ut=ge=>ge[8].code;for(let ge=0;ge<nt.length;ge+=1){let pe=xd(n,nt,ge),Ve=ut(pe);be.set(Ve,Z[ge]=lh(Ve,pe))}let ot=n[5];const Xe=ge=>ge[8].code;for(let ge=0;ge<ot.length;ge+=1){let pe=Qd(n,ot,ge),Ve=Xe(pe);je.set(Ve,_e[ge]=oh(Ve,pe))}return{c(){e=_("div"),t=_("strong"),t.textContent="DELETE",i=T(),s=_("div"),l=_("p"),o=R("/api/collections/"),r=_("strong"),u=R(a),f=R("/records/"),c=_("strong"),c.textContent=":id",d=T(),qe&&qe.c(),m=T(),g=_("div"),v=_("p"),b=R("Delete a single "),y=_("strong"),$=R(C),S=R(" record."),M=T(),D=_("div"),D.textContent="Client SDKs example",E=T(),O=_("div"),F=_("div");for(let ge=0;ge<L.length;ge+=1)L[ge].c();j=T(),Q=_("div");for(let ge=0;ge<ie.length;ge+=1)ie[ge].c();K=T(),W=_("div"),W.textContent="Path parameters",J=T(),se=_("table"),se.innerHTML=`<thead><tr><th>Param</th>
<th>Type</th>
<th width="60%">Description</th></tr></thead>
<tbody><tr><td>id</td>
<td><span class="label">String</span></td>
<td>ID of the record to delete.</td></tr></tbody>`,fe=T(),ke=_("div"),ke.textContent="Responses",le=T(),ue=_("div"),Me=_("div");for(let ge=0;ge<Z.length;ge+=1)Z[ge].c();x=T(),G=_("div");for(let ge=0;ge<_e.length;ge+=1)_e[ge].c();h(t,"class","label label-primary"),h(s,"class","content"),h(e,"class","alert alert-danger"),h(g,"class","content m-b-base"),h(D,"class","section-title"),h(F,"class","tabs-header compact left"),h(Q,"class","tabs-content"),h(O,"class","tabs m-b-lg"),h(W,"class","section-title"),h(se,"class","table-compact table-border m-b-lg"),h(ke,"class","section-title"),h(Me,"class","tabs-header compact left"),h(G,"class","tabs-content"),h(ue,"class","tabs")},m(ge,pe){w(ge,e,pe),p(e,t),p(e,i),p(e,s),p(s,l),p(l,o),p(l,r),p(r,u),p(l,f),p(l,c),p(e,d),qe&&qe.m(e,null),w(ge,m,pe),w(ge,g,pe),p(g,v),p(v,b),p(v,y),p(y,$),p(v,S),w(ge,M,pe),w(ge,D,pe),w(ge,E,pe),w(ge,O,pe),p(O,F);for(let Ve=0;Ve<L.length;Ve+=1)L[Ve].m(F,null);p(O,j),p(O,Q);for(let Ve=0;Ve<ie.length;Ve+=1)ie[Ve].m(Q,null);w(ge,K,pe),w(ge,W,pe),w(ge,J,pe),w(ge,se,pe),w(ge,fe,pe),w(ge,ke,pe),w(ge,le,pe),w(ge,ue,pe),p(ue,Me);for(let Ve=0;Ve<Z.length;Ve+=1)Z[Ve].m(Me,null);p(ue,x),p(ue,G);for(let Ve=0;Ve<_e.length;Ve+=1)_e[Ve].m(G,null);Ne=!0},p(ge,[pe]){(!Ne||pe&1)&&a!==(a=ge[0].name+"")&&me(u,a),ge[1]?qe||(qe=nh(),qe.c(),qe.m(e,null)):qe&&(qe.d(1),qe=null),(!Ne||pe&1)&&C!==(C=ge[0].name+"")&&me($,C),pe&24&&(ae=ge[4],L=dt(L,pe,re,1,ge,ae,H,F,cn,ih,null,th)),pe&24&&(ve=ge[4],De(),ie=dt(ie,pe,Je,1,ge,ve,U,Q,Bt,sh,null,eh),Oe()),pe&36&&(nt=ge[5],Z=dt(Z,pe,ut,1,ge,nt,be,Me,cn,lh,null,xd)),pe&36&&(ot=ge[5],De(),_e=dt(_e,pe,Xe,1,ge,ot,je,G,Bt,oh,null,Qd),Oe())},i(ge){if(!Ne){for(let pe=0;pe<ve.length;pe+=1)A(ie[pe]);for(let pe=0;pe<ot.length;pe+=1)A(_e[pe]);Ne=!0}},o(ge){for(let pe=0;pe<ie.length;pe+=1)P(ie[pe]);for(let pe=0;pe<_e.length;pe+=1)P(_e[pe]);Ne=!1},d(ge){ge&&k(e),qe&&qe.d(),ge&&k(m),ge&&k(g),ge&&k(M),ge&&k(D),ge&&k(E),ge&&k(O);for(let pe=0;pe<L.length;pe+=1)L[pe].d();for(let pe=0;pe<ie.length;pe+=1)ie[pe].d();ge&&k(K),ge&&k(W),ge&&k(J),ge&&k(se),ge&&k(fe),ge&&k(ke),ge&&k(le),ge&&k(ue);for(let pe=0;pe<Z.length;pe+=1)Z[pe].d();for(let pe=0;pe<_e.length;pe+=1)_e[pe].d()}}}function eC(n,e,t){let i,{collection:s=new Fn}=e,l=204,o="JavaScript",r=[],a=[];const u=c=>t(3,o=c.lang),f=c=>t(2,l=c.code);return n.$$set=c=>{"collection"in c&&t(0,s=c.collection)},n.$$.update=()=>{n.$$.dirty&1&&t(1,i=(s==null?void 0:s.deleteRule)===null),n.$$.dirty&3&&s!=null&&s.id&&(r.push({code:204,body:`
null
`}),r.push({code:400,body:`
{
"code": 400,
"message": "Failed to delete record. Make sure that the record is not part of a required relation reference.",
"data": {}
}
`}),i&&r.push({code:403,body:`
{
"code": 403,
"message": "Only admins can access this action.",
"data": {}
}
`}),r.push({code:404,body:`
{
"code": 404,
"message": "The requested resource wasn't found.",
"data": {}
}
`})),n.$$.dirty&1&&t(4,a=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${Se.baseUrl}");
...
await client.Records.delete("${s==null?void 0:s.name}", "RECORD_ID");
`}])},[s,i,l,o,a,r,u,f]}class tC extends Fe{constructor(e){super(),Le(this,e,eC,x$,Pe,{collection:0})}}function rh(n,e,t){const i=n.slice();return i[4]=e[t],i}function ah(n,e,t){const i=n.slice();return i[4]=e[t],i}function uh(n,e){let t,i=e[4].lang+"",s,l,o,r;function a(){return e[3](e[4])}return{key:n,first:null,c(){t=_("button"),s=R(i),l=T(),h(t,"class","tab-item"),ee(t,"active",e[1]===e[4].lang),this.first=t},m(u,f){w(u,t,f),p(t,s),p(t,l),o||(r=X(t,"click",a),o=!0)},p(u,f){e=u,f&4&&i!==(i=e[4].lang+"")&&me(s,i),f&6&&ee(t,"active",e[1]===e[4].lang)},d(u){u&&k(t),o=!1,r()}}}function fh(n,e){let t,i,s,l;return i=new ln({props:{content:e[4].code}}),{key:n,first:null,c(){t=_("div"),B(i.$$.fragment),s=T(),h(t,"class","tab-item"),ee(t,"active",e[1]===e[4].lang),this.first=t},m(o,r){w(o,t,r),V(i,t,null),p(t,s),l=!0},p(o,r){e=o;const a={};r&4&&(a.content=e[4].code),i.$set(a),r&6&&ee(t,"active",e[1]===e[4].lang)},i(o){l||(A(i.$$.fragment,o),l=!0)},o(o){P(i.$$.fragment,o),l=!1},d(o){o&&k(t),z(i)}}}function nC(n){let e,t,i,s,l,o,r,a,u=[],f=new Map,c,d,m=[],g=new Map,v,b,y,C,$,S=n[2];const M=O=>O[4].lang;for(let O=0;O<S.length;O+=1){let F=ah(n,S,O),L=M(F);f.set(L,u[O]=uh(L,F))}let D=n[2];const E=O=>O[4].lang;for(let O=0;O<D.length;O+=1){let F=rh(n,D,O),L=E(F);g.set(L,m[O]=fh(L,F))}return C=new ln({props:{content:JSON.stringify({action:"create",record:Y.dummyCollectionRecord(n[0])},null,2).replace('"action": "create"','"action": "create" // create, update or delete')}}),{c(){e=_("div"),e.innerHTML=`<strong class="label label-primary">SSE</strong>
<div class="content"><p>/api/realtime</p></div>`,t=T(),i=_("div"),i.innerHTML=`<p>Subscribe to realtime changes via Server-Sent Events (SSE).</p>
<p>Events are send for <strong>create</strong>, <strong>update</strong>
and <strong>delete</strong> record operations (see &quot;Event data format&quot; section below).</p>
<div class="alert alert-info m-t-10"><div class="icon"><i class="ri-information-line"></i></div>
<div class="contet"><p><strong>You could subscribe to a single record or to an entire collection.</strong></p>
<p>When you subscribe to a <strong>single record</strong>, the collection&#39;s
<strong>ViewRule</strong> will be used to determine whether the subscriber has access to receive
the event message.</p>
<p>When you subscribe to an <strong>entire collection</strong>, the collection&#39;s
<strong>ListRule</strong> will be used to determine whether the subscriber has access to receive
the event message.</p></div></div>`,s=T(),l=_("div"),l.textContent="Client SDKs example",o=T(),r=_("div"),a=_("div");for(let O=0;O<u.length;O+=1)u[O].c();c=T(),d=_("div");for(let O=0;O<m.length;O+=1)m[O].c();v=T(),b=_("div"),b.textContent="Event data format",y=T(),B(C.$$.fragment),h(e,"class","alert"),h(i,"class","content m-b-base"),h(l,"class","section-title"),h(a,"class","tabs-header compact left"),h(d,"class","tabs-content"),h(r,"class","tabs m-b-base"),h(b,"class","section-title")},m(O,F){w(O,e,F),w(O,t,F),w(O,i,F),w(O,s,F),w(O,l,F),w(O,o,F),w(O,r,F),p(r,a);for(let L=0;L<u.length;L+=1)u[L].m(a,null);p(r,c),p(r,d);for(let L=0;L<m.length;L+=1)m[L].m(d,null);w(O,v,F),w(O,b,F),w(O,y,F),V(C,O,F),$=!0},p(O,[F]){F&6&&(S=O[2],u=dt(u,F,M,1,O,S,f,a,cn,uh,null,ah)),F&6&&(D=O[2],De(),m=dt(m,F,E,1,O,D,g,d,Bt,fh,null,rh),Oe());const L={};F&1&&(L.content=JSON.stringify({action:"create",record:Y.dummyCollectionRecord(O[0])},null,2).replace('"action": "create"','"action": "create" // create, update or delete')),C.$set(L)},i(O){if(!$){for(let F=0;F<D.length;F+=1)A(m[F]);A(C.$$.fragment,O),$=!0}},o(O){for(let F=0;F<m.length;F+=1)P(m[F]);P(C.$$.fragment,O),$=!1},d(O){O&&k(e),O&&k(t),O&&k(i),O&&k(s),O&&k(l),O&&k(o),O&&k(r);for(let F=0;F<u.length;F+=1)u[F].d();for(let F=0;F<m.length;F+=1)m[F].d();O&&k(v),O&&k(b),O&&k(y),z(C,O)}}}function iC(n,e,t){let{collection:i=new Fn}=e,s="JavaScript",l=[];const o=r=>t(1,s=r.lang);return n.$$set=r=>{"collection"in r&&t(0,i=r.collection)},n.$$.update=()=>{n.$$.dirty&1&&t(2,l=[{lang:"JavaScript",code:`
import PocketBase from 'pocketbase';
const client = new PocketBase("${Se.baseUrl}");
// (Optionally) authenticate
client.Users.authViaEmail("test@example.com", "123456");
// Subscribe to changes in any record from the collection
client.Realtime.subscribe("${i==null?void 0:i.name}", function (e) {
console.log(e.record);
});
// Subscribe to changes in a single record
client.Realtime.subscribe("${i==null?void 0:i.name}/RECORD_ID", function (e) {
console.log(e.record);
});
// Unsubscribe
client.Realtime.unsubscribe() // remove all subscriptions
client.Realtime.unsubscribe("${i==null?void 0:i.name}") // remove the collection subscription
client.Realtime.unsubscribe("${i==null?void 0:i.name}/RECORD_ID") // remove the record subscription
`}])},[i,s,l,o]}class sC extends Fe{constructor(e){super(),Le(this,e,iC,nC,Pe,{collection:0})}}function ch(n,e,t){const i=n.slice();return i[14]=e[t],i}function dh(n,e,t){const i=n.slice();return i[14]=e[t],i}function hh(n){let e,t,i,s;var l=n[14].component;function o(r){return{props:{collection:r[3]}}}return l&&(t=new l(o(n))),{c(){e=_("div"),t&&B(t.$$.fragment),i=T(),h(e,"class","tab-item active")},m(r,a){w(r,e,a),t&&V(t,e,null),p(e,i),s=!0},p(r,a){const u={};if(a&8&&(u.collection=r[3]),l!==(l=r[14].component)){if(t){De();const f=t;P(f.$$.fragment,1,0,()=>{z(f,1)}),Oe()}l?(t=new l(o(r)),B(t.$$.fragment),A(t.$$.fragment,1),V(t,e,i)):t=null}else l&&t.$set(u)},i(r){s||(t&&A(t.$$.fragment,r),s=!0)},o(r){t&&P(t.$$.fragment,r),s=!1},d(r){r&&k(e),t&&z(t)}}}function ph(n,e){let t,i,s,l=e[4]===e[14].id&&hh(e);return{key:n,first:null,c(){t=lt(),l&&l.c(),i=lt(),this.first=t},m(o,r){w(o,t,r),l&&l.m(o,r),w(o,i,r),s=!0},p(o,r){e=o,e[4]===e[14].id?l?(l.p(e,r),r&16&&A(l,1)):(l=hh(e),l.c(),A(l,1),l.m(i.parentNode,i)):l&&(De(),P(l,1,1,()=>{l=null}),Oe())},i(o){s||(A(l),s=!0)},o(o){P(l),s=!1},d(o){o&&k(t),l&&l.d(o),o&&k(i)}}}function lC(n){let e,t=[],i=new Map,s,l=n[5];const o=r=>r[14].id;for(let r=0;r<l.length;r+=1){let a=ch(n,l,r),u=o(a);i.set(u,t[r]=ph(u,a))}return{c(){e=_("div");for(let r=0;r<t.length;r+=1)t[r].c();h(e,"class","tabs-content")},m(r,a){w(r,e,a);for(let u=0;u<t.length;u+=1)t[u].m(e,null);s=!0},p(r,a){a&56&&(l=r[5],De(),t=dt(t,a,o,1,r,l,i,e,Bt,ph,null,ch),Oe())},i(r){if(!s){for(let a=0;a<l.length;a+=1)A(t[a]);s=!0}},o(r){for(let a=0;a<t.length;a+=1)P(t[a]);s=!1},d(r){r&&k(e);for(let a=0;a<t.length;a+=1)t[a].d()}}}function mh(n,e){let t,i,s=e[14].label+"",l,o,r,a;function u(){return e[9](e[14])}function f(...c){return e[10](e[14],...c)}return{key:n,first:null,c(){t=_("button"),i=_("span"),l=R(s),o=T(),h(i,"class","txt"),h(t,"tabindex","0"),h(t,"class","tab-item"),ee(t,"active",e[4]===e[14].id),this.first=t},m(c,d){w(c,t,d),p(t,i),p(i,l),p(t,o),r||(a=[X(t,"click",u),X(t,"keydown",Wp(f))],r=!0)},p(c,d){e=c,d&48&&ee(t,"active",e[4]===e[14].id)},d(c){c&&k(t),r=!1,st(a)}}}function oC(n){let e,t,i=n[3].name+"",s,l,o,r,a=[],u=new Map,f=n[5];const c=d=>d[14].id;for(let d=0;d<f.length;d+=1){let m=dh(n,f,d),g=c(m);u.set(g,a[d]=mh(g,m))}return{c(){e=_("h4"),t=_("strong"),s=R(i),l=R(" records API"),o=T(),r=_("div");for(let d=0;d<a.length;d+=1)a[d].c();h(r,"class","tabs-header stretched")},m(d,m){w(d,e,m),p(e,t),p(t,s),p(e,l),w(d,o,m),w(d,r,m);for(let g=0;g<a.length;g+=1)a[g].m(r,null)},p(d,m){m&8&&i!==(i=d[3].name+"")&&me(s,i),m&114&&(f=d[5],a=dt(a,m,c,1,d,f,u,r,cn,mh,null,dh))},d(d){d&&k(e),d&&k(o),d&&k(r);for(let m=0;m<a.length;m+=1)a[m].d()}}}function rC(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Close</span>',h(e,"type","button"),h(e,"class","btn btn-secondary")},m(s,l){w(s,e,l),t||(i=X(e,"click",n[8]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function aC(n){let e,t,i={class:"overlay-panel-xl colored-header collection-panel",$$slots:{footer:[rC],header:[oC],default:[lC]},$$scope:{ctx:n}};return e=new Ci({props:i}),n[11](e),e.$on("hide",n[12]),e.$on("show",n[13]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,[l]){const o={};l&524312&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[11](null),z(e,s)}}}function uC(n,e,t){const i=[{id:"list",label:"List",component:S$},{id:"view",label:"View",component:M$},{id:"create",label:"Create",component:j$},{id:"update",label:"Update",component:Q$},{id:"delete",label:"Delete",component:tC},{id:"realtime",label:"Realtime",component:sC}];let s,l=new Fn,o=i[0].id;function r(y){return t(3,l=y),u(i[0].id),s==null?void 0:s.show()}function a(){return s==null?void 0:s.hide()}function u(y){t(4,o=y)}function f(y,C){(y.code==="Enter"||y.code==="Space")&&(y.preventDefault(),u(C))}const c=()=>a(),d=y=>u(y.id),m=(y,C)=>f(C,y.id);function g(y){he[y?"unshift":"push"](()=>{s=y,t(2,s)})}function v(y){pt.call(this,n,y)}function b(y){pt.call(this,n,y)}return[a,u,s,l,o,i,f,r,c,d,m,g,v,b]}class fC extends Fe{constructor(e){super(),Le(this,e,uC,aC,Pe,{show:7,hide:0,changeTab:1})}get show(){return this.$$.ctx[7]}get hide(){return this.$$.ctx[0]}get changeTab(){return this.$$.ctx[1]}}function cC(n){let e,t,i,s=[n[3]],l={};for(let o=0;o<s.length;o+=1)l=_t(l,s[o]);return{c(){e=_("textarea"),fi(e,l),ee(e,"svelte-1x1pbts",!0)},m(o,r){w(o,e,r),e.autofocus&&e.focus(),n[5](e),$e(e,n[0]),t||(i=[X(e,"input",n[6]),X(e,"keydown",n[2])],t=!0)},p(o,[r]){fi(e,l=bn(s,[r&8&&o[3]])),r&1&&$e(e,o[0]),ee(e,"svelte-1x1pbts",!0)},i:oe,o:oe,d(o){o&&k(e),n[5](null),t=!1,st(i)}}}function dC(n,e,t){const i=["value","maxHeight"];let s=tn(e,i),{value:l=""}=e,{maxHeight:o=200}=e,r,a;function u(){clearTimeout(a),a=setTimeout(()=>{r&&(t(1,r.style.height="",r),t(1,r.style.height=Math.min(r.scrollHeight+2,o)+"px",r))},0)}function f(m){if((m==null?void 0:m.code)==="Enter"&&!(m!=null&&m.shiftKey)){m.preventDefault();const g=r.closest("form");g Line truncated
<span class="txt">Upload new file</span>`,h(t,"type","file"),h(t,"class","hidden"),t.multiple=n[5],h(s,"type","button"),h(s,"class","btn btn-secondary btn-sm btn-block"),h(e,"class","list-item btn-list-item")},m(r,a){w(r,e,a),p(e,t),n[16](t),p(e,i),p(e,s),l||(o=[X(t,"change",n[17]),X(s,"click",n[18])],l=!0)},p(r,a){a&32&&(t.multiple=r[5])},d(r){r&&k(e),n[16](null),l=!1,st(o)}}}function u4(n){let e,t,i,s,l,o=n[3].name+"",r,a,u,f,c=[],d=new Map,m,g,v,b=n[4];const y=D=>D[25];for(let D=0;D<b.length;D+=1){let E=bh(n,b,D),O=y(E);d.set(O,c[D]=vh(O,E))}let C=n[0],$=[];for(let D=0;D<C.length;D+=1)$[D]=yh(_h(n,C,D));const S=D=>P($[D],1,1,()=>{$[D]=null});let M=!n[8]&&kh(n);return{c(){e=_("label"),t=_("i"),s=T(),l=_("span"),r=R(o),u=T(),f=_("div");for(let D=0;D<c.length;D+=1)c[D].c();m=T();for(let D=0;D<$.length;D+=1)$[D].c();g=T(),M&&M.c(),h(t,"class",i=Y.getFieldTypeIcon(n[3].type)),h(l,"class","txt"),h(e,"for",a=n[21]),h(f,"class","files-list")},m(D,E){w(D,e,E),p(e,t),p(e,s),p(e,l),p(l,r),w(D,u,E),w(D,f,E);for(let O=0;O<c.length;O+=1)c[O].m(f,null);p(f,m);for(let O=0;O<$.length;O+=1)$[O].m(f,null);p(f,g),M&&M.m(f,null),n[19](f),v=!0},p(D,E){if((!v||E&8&&i!==(i=Y.getFieldTypeIcon(D[3].type)))&&h(t,"class",i),(!v||E&8)&&o!==(o=D[3].name+"")&&me(r,o),(!v||E&2097152&&a!==(a=D[21]))&&h(e,"for",a),E&1558&&(b=D[4],De(),c=dt(c,E,y,1,D,b,d,f,Bt,vh,m,bh),Oe()),E&2049){C=D[0];let O;for(O=0;O<C.length;O+=1){const F=_h(D,C,O);$[O]?($[O].p(F,E),A($[O],1)):($[O]=yh(F),$[O].c(),A($[O],1),$[O].m(f,g))}for(De(),O=C.length;O<$.length;O+=1)S(O);Oe()}D[8]?M&&(M.d(1),M=null):M?M.p(D,E):(M=kh(D),M.c(),M.m(f,null))},i(D){if(!v){for(let E=0;E<b.length;E+=1)A(c[E]);for(let E=0;E<C.length;E+=1)A($[E]);v=!0}},o(D){for(let E=0;E<c.length;E+=1)P(c[E]);$=$.filter(Boolean);for(let E=0;E<$.length;E+=1)P($[E]);v=!1},d(D){D&&k(e),D&&k(u),D&&k(f);for(let E=0;E<c.length;E+=1)c[E].d();Bn($,D),M&&M.d(),n[19](null)}}}function f4(n){let e,t;return e=new Ie({props:{class:"form-field form-field-file "+(n[3].required?"required":""),name:n[3].name,$$slots:{default:[u4,({uniqueId:i})=>({21:i}),({uniqueId:i})=>i?2097152:0]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,[s]){const l={};s&8&&(l.class="form-field form-field-file "+(i[3].required?"required":"")),s&8&&(l.name=i[3].name),s&136315391&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function c4(n,e,t){let i,s,l,{record:o}=e,{value:r=""}=e,{uploadedFiles:a=[]}=e,{deletedFileIndexes:u=[]}=e,{field:f=new Sn}=e,c,d;function m(O){Y.removeByValue(u,O),t(1,u)}function g(O){Y.pushUnique(u,O),t(1,u)}function v(O){Y.isEmpty(a[O])||a.splice(O,1),t(0,a)}function b(){d==null||d.dispatchEvent(new CustomEvent("change",{detail:{value:r,uploadedFiles:a,deletedFileIndexes:u},bubbles:!0}))}const y=O=>m(O),C=O=>g(O),$=O=>v(O);function S(O){he[O?"unshift":"push"](()=>{c=O,t(6,c)})}const M=()=>{for(let O of c.files)a.push(O);t(0,a),t(6,c.value=null,c)},D=()=>c==null?void 0:c.click();function E(O){he[O?"unshift":"push"](()=>{d=O,t(7,d)})}return n.$$set=O=>{"record"in O&&t(2,o=O.record),"value"in O&&t(12,r=O.value),"uploadedFiles"in O&&t(0,a=O.uploadedFiles),"deletedFileIndexes"in O&&t(1,u=O.deletedFileIndexes),"field"in O&&t(3,f=O.field)},n.$$.update=()=>{var O,F;n.$$.dirty&1&&(Array.isArray(a)||t(0,a=Y.toArray(a))),n.$$.dirty&2&&(Array.isArray(u)||t(1,u=Y.toArray(u))),n.$$.dirty&8&&t(5,i=((O=f.options)==null?void 0:O.maxSelect)>1),n.$$.dirty&4128&&Y.isEmpty(r)&&t(12,r=i?[]:""),n.$$.dirty&4096&&t(4,s=Y.toArray(r)),n.$$.dirty&27&&t(8,l=(s.length||a.length)&&((F=f.options)==null?void 0:F.maxSelect)<=s.length+a.length-u.length),n.$$.dirty&3&&(a!==-1||u!==-1)&&b()},[a,u,o,f,s,i,c,d,l,m,g,v,r,y,C,$,S,M,D,E]}class d4 extends Fe{constructor(e){super(),Le(this,e,c4,f4,Pe,{record:2,value:12,uploadedFiles:0,deletedFileIndexes:1,field:3})}}function wh(n){let e,t;return{c(){e=_("small"),t=R(n[1]),h(e,"class","block txt-hint txt-ellipsis")},m(i,s){w(i,e,s),p(e,t)},p(i,s){s&2&&me(t,i[1])},d(i){i&&k(e)}}}function h4(n){let e,t,i,s,l,o=n[0].id+"",r,a,u,f,c=n[1]!==""&&n[1]!==n[0].id&&wh(n);return{c(){e=_("i"),i=T(),s=_("div"),l=_("div"),r=R(o),a=T(),c&&c.c(),h(e,"class","ri-information-line link-hint"),h(l,"class","block txt-ellipsis"),h(s,"class","content svelte-1gjwqyd")},m(d,m){w(d,e,m),w(d,i,m),w(d,s,m),p(s,l),p(l,r),p(s,a),c&&c.m(s,null),u||(f=et(t=Et.call(null,e,{text:JSON.stringify(n[0],null,2),position:"left",class:"code"})),u=!0)},p(d,[m]){t&&Zn(t.update)&&m&1&&t.update.call(null,{text:JSON.stringify(d[0],null,2),position:"left",class:"code"}),m&1&&o!==(o=d[0].id+"")&&me(r,o),d[1]!==""&&d[1]!==d[0].id?c?c.p(d,m):(c=wh(d),c.c(),c.m(s,null)):c&&(c.d(1),c=null)},i:oe,o:oe,d(d){d&&k(e),d&&k(i),d&&k(s),c&&c.d(),u=!1,f()}}}function p4(n,e,t){let i;const s=["id","created","updated","@collectionId","@collectionName"];let{item:l={}}=e;function o(r){r=r||{};const a=["name","title","label","key","email","heading","content",...ObjectLine truncated
`,h(e,"class","block txt-center txt-disabled")},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function I4(n){let e,t,i;function s(o){n[31](o,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new L4({props:l}),he.push(()=>Re(e,"value",s)),{c(){B(e.$$.fragment)},m(o,r){V(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[40]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[40].name],He(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function N4(n){let e,t,i;function s(o){n[30](o,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new S4({props:l}),he.push(()=>Re(e,"value",s)),{c(){B(e.$$.fragment)},m(o,r){V(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[40]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[40].name],He(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function R4(n){let e,t,i,s,l;function o(f){n[27](f,n[40])}function r(f){n[28](f,n[40])}function a(f){n[29](f,n[40])}let u={field:n[40],record:n[2]};return n[2][n[40].name]!==void 0&&(u.value=n[2][n[40].name]),n[3][n[40].name]!==void 0&&(u.uploadedFiles=n[3][n[40].name]),n[4][n[40].name]!==void 0&&(u.deletedFileIndexes=n[4][n[40].name]),e=new d4({props:u}),he.push(()=>Re(e,"value",o)),he.push(()=>Re(e,"uploadedFiles",r)),he.push(()=>Re(e,"deletedFileIndexes",a)),{c(){B(e.$$.fragment)},m(f,c){V(e,f,c),l=!0},p(f,c){n=f;const d={};c[0]&1&&(d.field=n[40]),c[0]&4&&(d.record=n[2]),!t&&c[0]&5&&(t=!0,d.value=n[2][n[40].name],He(()=>t=!1)),!i&&c[0]&9&&(i=!0,d.uploadedFiles=n[3][n[40].name],He(()=>i=!1)),!s&&c[0]&17&&(s=!0,d.deletedFileIndexes=n[4][n[40].name],He(()=>s=!1)),e.$set(d)},i(f){l||(A(e.$$.fragment,f),l=!0)},o(f){P(e.$$.fragment,f),l=!1},d(f){z(e,f)}}}function H4(n){let e,t,i;function s(o){n[26](o,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new WC({props:l}),he.push(()=>Re(e,"value",s)),{c(){B(e.$$.fragment)},m(o,r){V(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[40]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[40].name],He(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function j4(n){let e,t,i;function s(o){n[25](o,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new VC({props:l}),he.push(()=>Re(e,"value",s)),{c(){B(e.$$.fragment)},m(o,r){V(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[40]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[40].name],He(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function q4(n){let e,t,i;function s(o){n[24](o,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new RC({props:l}),he.push(()=>Re(e,"value",s)),{c(){B(e.$$.fragment)},m(o,r){V(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[40]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[40].name],He(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function V4(n){let e,t,i;function s(o){n[23](o,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new LC({props:l}),he.push(()=>Re(e,"value",s)),{c(){B(e.$$.fragment)},m(o,r){V(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[40]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[40].name],He(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function z4(n){let e,t,i;function s(o){n[22](o,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new OC({props:l}),he.push(()=>Re(e,"value",s)),{c(){B(e.$$.fragment)},m(o,r){V(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[40]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[40].name],He(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function B4(n){let e,t,i;function s(o){n[21](o,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new CC({props:l}),he.push(()=>Re(e,"value",s)),{c(){B(e.$$.fragment)},m(o,r){V(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[40]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[40].name],He(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function U4(n){let e,t,i;function s(o){n[20](o,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new kC({props:l}),he.push(()=>Re(e,"value",s)),{c(){B(e.$$.fragment)},m(o,r){V(e,o,r),i=!0},p(o,r){n=o;const a={};r[0]&1&&(a.field=n[40]),!t&&r[0]&5&&(t=!0,a.value=n[2][n[40].name],He(()=>t=!1)),e.$set(a)},i(o){i||(A(e.$$.fragment,o),i=!0)},o(o){P(e.$$.fragment,o),i=!1},d(o){z(e,o)}}}function W4(n){let e,t,i;function s(o){n[19](o,n[40])}let l={field:n[40]};return n[2][n[40].name]!==void 0&&(l.value=n[2][n[40].name]),e=new _C({props:l}),he.push(()=>Re(e,"value",s)),{c(){B(e.$$.fragment)},m(o,r){V(e,o,r),i=!0},p(o,r){n=o; Line truncated
<span class="txt">Delete</span>`,h(e,"tabindex","0"),h(e,"class","dropdown-item closable")},m(s,l){w(s,e,l),t||(i=X(e,"click",n[18]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function Z4(n){let e,t=n[2].isNew?"New":"Edit",i,s,l=n[0].name+"",o,r,a,u,f,c=!n[2].isNew&&n[10]&&Ah(n);return{c(){e=_("h4"),i=R(t),s=T(),o=R(l),r=R(" record"),a=T(),c&&c.c(),u=lt()},m(d,m){w(d,e,m),p(e,i),p(e,s),p(e,o),p(e,r),w(d,a,m),c&&c.m(d,m),w(d,u,m),f=!0},p(d,m){(!f||m[0]&4)&&t!==(t=d[2].isNew?"New":"Edit")&&me(i,t),(!f||m[0]&1)&&l!==(l=d[0].name+"")&&me(o,l),!d[2].isNew&&d[10]?c?(c.p(d,m),m[0]&1028&&A(c,1)):(c=Ah(d),c.c(),A(c,1),c.m(u.parentNode,u)):c&&(De(),P(c,1,1,()=>{c=null}),Oe())},i(d){f||(A(c),f=!0)},o(d){P(c),f=!1},d(d){d&&k(e),d&&k(a),c&&c.d(d),d&&k(u)}}}function J4(n){let e,t,i,s,l,o=n[2].isNew?"Create":"Save changes",r,a,u,f;return{c(){e=_("button"),t=_("span"),t.textContent="Cancel",i=T(),s=_("button"),l=_("span"),r=R(o),h(t,"class","txt"),h(e,"type","button"),h(e,"class","btn btn-secondary"),e.disabled=n[7],h(l,"class","txt"),h(s,"type","submit"),h(s,"form",n[11]),h(s,"class","btn btn-expanded"),s.disabled=a=!n[9]||n[7],ee(s,"btn-loading",n[7])},m(c,d){w(c,e,d),p(e,t),w(c,i,d),w(c,s,d),p(s,l),p(l,r),u||(f=X(e,"click",n[17]),u=!0)},p(c,d){d[0]&128&&(e.disabled=c[7]),d[0]&4&&o!==(o=c[2].isNew?"Create":"Save changes")&&me(r,o),d[0]&640&&a!==(a=!c[9]||c[7])&&(s.disabled=a),d[0]&128&&ee(s,"btn-loading",c[7])},d(c){c&&k(e),c&&k(i),c&&k(s),u=!1,f()}}}function G4(n){let e,t,i={class:"overlay-panel-lg record-panel",beforeHide:n[32],$$slots:{footer:[J4],header:[Z4],default:[Y4]},$$scope:{ctx:n}};return e=new Ci({props:i}),n[33](e),e.$on("hide",n[34]),e.$on("show",n[35]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,l){const o={};l[0]&288&&(o.beforeHide=s[32]),l[0]&1693|l[1]&8192&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[33](null),z(e,s)}}}function Ph(n){return JSON.stringify(n)}function X4(n,e,t){let i,s,l,o;const r=hn(),a="record_"+Y.randomString(5);let{collection:u}=e,f,c=null,d=new fo,m=!1,g=!1,v={},b={},y="";function C(x){return S(x),t(8,g=!0),f==null?void 0:f.show()}function $(){return f==null?void 0:f.hide()}async function S(x){Ri({}),c=x||{},t(2,d=x!=null&&x.clone?x.clone():new fo),t(3,v={}),t(4,b={}),await di(),t(15,y=Ph(d))}function M(){if(m||!l)return;t(7,m=!0);const x=E();let G;d.isNew?G=Se.Records.create(u==null?void 0:u.id,x):G=Se.Records.update(u==null?void 0:u.id,d.id,x),G.then(async _e=>{_n(d.isNew?"Successfully created record.":"Successfully updated record."),t(8,g=!1),$(),r("save",_e)}).catch(_e=>{Se.errorResponseHandler(_e)}).finally(()=>{t(7,m=!1)})}function D(){!(c!=null&&c.id)||Si("Do you really want to delete the selected record?",()=>Se.Records.delete(c["@collectionId"],c.id).then(()=>{$(),_n("Successfully deleted record."),r("delete",c)}).catch(x=>{Se.errorResponseHandler(x)}))}function E(){const x=(d==null?void 0:d.export())||{},G=new FormData,_e={};for(const je of(u==null?void 0:u.schema)||[])_e[je.name]=je;for(const je in x)!_e[je]||(typeof x[je]>"u"&&(x[je]=null),Y.addValueToFormData(G,je,x[je]));for(const je in v){const Ne=Y.toArray(v[je]);for(const qe of Ne)G.append(je,qe)}for(const je in b){const Ne=Y.toArray(b[je]);for(const qe of Ne)G.append(je+"."+qe,"")}return G}const O=()=>$(),F=()=>D();function L(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}function H(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}function j(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}function Q(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}function ie(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}function U(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}function K(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}function W(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}function J(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}function se(x,G){n.$$.not_equal(v[G.name],x)&&(v[G.name]=x,t(3,v))}function fe(x,G){n.$$.not_equal(b[G.name],x)&&(b[G.name]=x,t(4,b))}function ke(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}function le(x,G){n.$$.not_equal(d[G.name],x)&&(d[G.name]=x,t(2,d))}const ue=()=>s&&g?(Si("You have unsaved changes. Do you really want to close the panel?",()=>{t(8,g=!1),$()}),!1):!0;function Me(x){he[x?"unshift":"push"](()=>{f=x,t(6,f)})}function Z(x){pt.call(this,n,x)}function be(x){pt.call(this,n,x)}return n.$$set=x=>{"collection"in x&&t(0,u=x.collection)},n.$$.update=()=>{n.$$.dirty[0]&24&&t(16,i=Y.hasNonEmptyProps(v)||Y.hasNonEmptyProps(b)),n.$$.dirty[0]&98308&&t(5,s=i||y!=Ph(d)),n.$$.dirty[0]&36&&t(9,l=d.isNew||s),n.$$.dirty[0]&1&&t(10,o=(u==null?void 0:u.name)!=="profiles")},[u,$,d,v,b,s,f,m,g,l,o,a,M,D,C,y,i,O,F,L,H,j,Q,ie,U,K,W,J,se,fe,ke,le,ue,Me,Z,be]}class m_ extends Fe{constructor(e){super(),Le(this,e,X4,G4,Pe,{collection:0,show:14,hide:1},null,[-1,-1])}get show(){return this.$$.ctx[14]}get hide(){return this.$$.ctx[1Line truncated
`},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function Uh(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Clear filters</span>',h(e,"type","button"),h(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){w(s,e,l),t||(i=X(e,"click",n[28]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function Wh(n,e){let t,i,s;return i=new g_({props:{record:e[35],field:e[38]}}),{key:n,first:null,c(){t=lt(),B(i.$$.fragment),this.first=t},m(l,o){w(l,t,o),V(i,l,o),s=!0},p(l,o){e=l;const r={};o[0]&8&&(r.record=e[35]),o[0]&2048&&(r.field=e[38]),i.$set(r)},i(l){s||(A(i.$$.fragment,l),s=!0)},o(l){P(i.$$.fragment,l),s=!1},d(l){l&&k(t),z(i,l)}}}function Yh(n,e){let t,i,s,l,o,r,a,u,f,c,d,m,g,v=[],b=new Map,y,C,$,S,M,D,E,O,F,L,H,j;function Q(){return e[25](e[35])}m=new Zo({props:{id:e[35].id}});let ie=e[11];const U=J=>J[38].name;for(let J=0;J<ie.length;J+=1){let se=qh(e,ie,J),fe=U(se);b.set(fe,v[J]=Wh(fe,se))}$=new wi({props:{date:e[35].created}}),D=new wi({props:{date:e[35].updated}});function K(){return e[26](e[35])}function W(...J){return e[27](e[35],...J)}return{key:n,first:null,c(){t=_("tr"),i=_("td"),s=_("div"),l=_("input"),a=T(),u=_("label"),c=T(),d=_("td"),B(m.$$.fragment),g=T();for(let J=0;J<v.length;J+=1)v[J].c();y=T(),C=_("td"),B($.$$.fragment),S=T(),M=_("td"),B(D.$$.fragment),E=T(),O=_("td"),O.innerHTML='<i class="ri-arrow-right-line"></i>',F=T(),h(l,"type","checkbox"),h(l,"id",o="checkbox_"+e[35].id),l.checked=r=e[5][e[35].id],h(u,"for",f="checkbox_"+e[35].id),h(s,"class","form-field"),h(i,"class","bulk-select-col min-width"),h(d,"class","col-type-text col-field-id"),h(C,"class","col-type-date col-field-created"),h(M,"class","col-type-date col-field-updated"),h(O,"class","col-type-action min-width"),h(t,"tabindex","0"),h(t,"class","row-handle"),this.first=t},m(J,se){w(J,t,se),p(t,i),p(i,s),p(s,l),p(s,a),p(s,u),p(t,c),p(t,d),V(m,d,null),p(t,g);for(let fe=0;fe<v.length;fe+=1)v[fe].m(t,null);p(t,y),p(t,C),V($,C,null),p(t,S),p(t,M),V(D,M,null),p(t,E),p(t,O),p(t,F),L=!0,H||(j=[X(l,"change",Q),X(s,"click",ni(e[19])),X(t,"click",K),X(t,"keydown",W)],H=!0)},p(J,se){e=J,(!L||se[0]&8&&o!==(o="checkbox_"+e[35].id))&&h(l,"id",o),(!L||se[0]&40&&r!==(r=e[5][e[35].id]))&&(l.checked=r),(!L||se[0]&8&&f!==(f="checkbox_"+e[35].id))&&h(u,"for",f);const fe={};se[0]&8&&(fe.id=e[35].id),m.$set(fe),se[0]&2056&&(ie=e[11],De(),v=dt(v,se,U,1,e,ie,b,t,Bt,Wh,y,qh),Oe());const ke={};se[0]&8&&(ke.date=e[35].created),$.$set(ke);const le={};se[0]&8&&(le.date=e[35].updated),D.$set(le)},i(J){if(!L){A(m.$$.fragment,J);for(let se=0;se<ie.length;se+=1)A(v[se]);A($.$$.fragment,J),A(D.$$.fragment,J),L=!0}},o(J){P(m.$$.fragment,J);for(let se=0;se<v.length;se+=1)P(v[se]);P($.$$.fragment,J),P(D.$$.fragment,J),L=!1},d(J){J&&k(t),z(m);for(let se=0;se<v.length;se+=1)v[se].d();z($),z(D),H=!1,st(j)}}}function Kh(n){let e,t,i=n[3].length+"",s,l,o;return{c(){e=_("small"),t=R("Showing "),s=R(i),l=R(" of "),o=R(n[4]),h(e,"class","block txt-hint txt-right m-t-sm")},m(r,a){w(r,e,a),p(e,t),p(e,s),p(e,l),p(e,o)},p(r,a){a[0]&8&&i!==(i=r[3].length+"")&&me(s,i),a[0]&16&&me(o,r[4])},d(r){r&&k(e)}}}function Zh(n){let e,t,i,s,l=n[4]-n[3].length+"",o,r,a,u;return{c(){e=_("div"),t=_("button"),i=_("span"),s=R("Load more ("),o=R(l),r=R(")"),h(i,"class","txt"),h(t,"type","button"),h(t,"class","btn btn-lg btn-secondary btn-expanded"),ee(t,"btn-loading",n[8]),ee(t,"btn-disabled",n[8]),h(e,"class","block txt-center m-t-xs")},m(f,c){w(f,e,c),p(e,t),p(t,i),p(i,s),p(i,o),p(i,r),a||(u=X(t,"click",n[29]),a=!0)},p(f,c){c[0]&24&&l!==(l=f[4]-f[3].length+"")&&me(o,l),c[0]&256&&ee(t,"btn-loading",f[8]),c[0]&256&&ee(t,"btn-disabled",f[8])},d(f){f&&k(e),a=!1,u()}}}function Jh(n){let e,t,i,s,l,o,r=n[6]===1?"record":"records",a,u,f,c,d,m,g,v,b,y,C;return{c(){e=_("div"),t=_("div"),i=R("Selected "),s=_("strong"),l=R(n[6]),o=T(),a=R(r),u=T(),f=_("button"),f.innerHTML='<span class="txt">Reset</span>',c=T(),d=_("div"),m=T(),g=_("button"),g.innerHTML='<span class="txt">Delete selected</span>',h(t,"class","txt"),h(f,"type","button"),h(f,"class","btn btn-xs btn-secondary btn-outline p-l-5 p-r-5"),ee(f,"btn-disabled",n[9]),h(d,"class","flex-fill"),h(g,"type","button"),h(g,"class","btn btn-sm btn-secondary btn-danger"),ee(g,"btn-loading",n[9]),ee(g,"btn-disabled",n[9]),h(e,"class","bulkbar")},m($,S){w($,e,S),p(e,t),p(t,i),p(t,s),p(s,l),p(t,o),p(t,a),p(e,u),p(e,f),p(e,c),p(e,d),p(e,m),p(e,g),b=!0,y||(C=[X(f,"click",n[30]),X(g,"click",n[31])],y=!0)},p($,S){(!b||S[0]&64)&&me(l,$[6]),(!b||S[0]&64)&&r!==(r=$[6]===1?"record":"records")&&me(a,r),S[0]&512&&ee(f,"btn-disabled",$[9]),S[0]&512&&ee(g,"btn-loading",$[9]),S[0]&512&&ee(g,"btn-disabled",$[9])},i($){b||($&&Lt(()=>{v||(v=at(e,Un,{duration:150,y:5},!0)),v.run(1)}),b=!0)},o($){$&&(v||(v=at(e,Un,{duration:150,y:5},!1)),v.run(0)),b=!1},d($){$&&k(e),$&&v&&v.end(),y=!1,st(C)}}}function vM(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g,v=[],b=new Map,y,C,$,S,M,D,E,O,F,L,H=[],j=new Map,Q,ie,U,K,W,J,se;function fe(re){n[21](re)}let ke={class:"col-type-text col Line truncated
<span class="txt">API Preview</span>`,C=T(),$=_("button"),$.innerHTML=`<i class="ri-add-line"></i>
<span class="txt">New record</span>`,S=T(),B(M.$$.fragment),D=T(),B(E.$$.fragment),h(o,"class","breadcrumb-item"),h(a,"class","breadcrumb-item"),h(l,"class","breadcrumbs"),h(d,"type","button"),h(d,"class","btn btn-secondary btn-circle"),h(y,"type","button"),h(y,"class","btn btn-outline"),h($,"type","button"),h($,"class","btn btn-expanded"),h(b,"class","btns-group"),h(s,"class","page-header"),h(i,"class","page-wrapper")},m(K,W){V(e,K,W),w(K,t,W),w(K,i,W),p(i,s),p(s,l),p(l,o),p(l,r),p(l,a),p(a,f),p(s,c),p(s,d),p(s,m),V(g,s,null),p(s,v),p(s,b),p(b,y),p(b,C),p(b,$),p(i,S),V(M,i,null),p(i,D),V(E,i,null),L=!0,H||(j=[et(Et.call(null,d,{text:"Edit collection",position:"right"})),X(d,"click",n[12]),X(y,"click",n[14]),X($,"click",n[15])],H=!0)},p(K,W){(!L||W&4)&&u!==(u=K[2].name+"")&&me(f,u);const J={};W&1&&(J.value=K[0]),W&4&&(J.autocompleteCollection=K[2]),M.$set(J);const se={};W&4&&(se.collection=K[2]),!O&&W&1&&(O=!0,se.filter=K[0],He(()=>O=!1)),!F&&W&2&&(F=!0,se.sort=K[1],He(()=>F=!1)),E.$set(se)},i(K){L||(A(e.$$.fragment,K),A(g.$$.fragment,K),A(M.$$.fragment,K),A(E.$$.fragment,K),L=!0)},o(K){P(e.$$.fragment,K),P(g.$$.fragment,K),P(M.$$.fragment,K),P(E.$$.fragment,K),L=!1},d(K){z(e,K),K&&k(t),K&&k(i),z(g),z(M),n[17](null),z(E),H=!1,st(j)}}}function SM(n){let e,t,i,s,l,o,r,a;return{c(){e=_("div"),t=_("div"),t.innerHTML='<i class="ri-database-2-line"></i>',i=T(),s=_("h1"),s.textContent="Create your first collection to add records!",l=T(),o=_("button"),o.innerHTML=`<i class="ri-add-line"></i>
<span class="txt">Create new collection</span>`,h(t,"class","icon"),h(s,"class","m-b-10"),h(o,"type","button"),h(o,"class","btn btn-expanded-lg btn-lg"),h(e,"class","placeholder-section m-b-base")},m(u,f){w(u,e,f),p(e,t),p(e,i),p(e,s),p(e,l),p(e,o),r||(a=X(o,"click",n[11]),r=!0)},p:oe,i:oe,o:oe,d(u){u&&k(e),r=!1,a()}}}function $M(n){let e;return{c(){e=_("div"),e.innerHTML=`<span class="loader loader-lg"></span>
<h1>Loading collections...</h1>`,h(e,"class","placeholder-section m-b-base")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function CM(n){let e,t,i,s,l,o,r,a,u;const f=[$M,SM,wM],c=[];function d(b,y){return b[8]?0:b[7].length?2:1}e=d(n),t=c[e]=f[e](n);let m={};s=new Ua({props:m}),n[21](s);let g={};o=new fC({props:g}),n[22](o);let v={collection:n[2]};return a=new m_({props:v}),n[23](a),a.$on("save",n[24]),a.$on("delete",n[25]),{c(){t.c(),i=T(),B(s.$$.fragment),l=T(),B(o.$$.fragment),r=T(),B(a.$$.fragment)},m(b,y){c[e].m(b,y),w(b,i,y),V(s,b,y),w(b,l,y),V(o,b,y),w(b,r,y),V(a,b,y),u=!0},p(b,[y]){let C=e;e=d(b),e===C?c[e].p(b,y):(De(),P(c[C],1,1,()=>{c[C]=null}),Oe(),t=c[e],t?t.p(b,y):(t=c[e]=f[e](b),t.c()),A(t,1),t.m(i.parentNode,i));const $={};s.$set($);const S={};o.$set(S);const M={};y&4&&(M.collection=b[2]),a.$set(M)},i(b){u||(A(t),A(s.$$.fragment,b),A(o.$$.fragment,b),A(a.$$.fragment,b),u=!0)},o(b){P(t),P(s.$$.fragment,b),P(o.$$.fragment,b),P(a.$$.fragment,b),u=!1},d(b){c[e].d(b),b&&k(i),n[21](null),z(s,b),b&&k(l),n[22](null),z(o,b),b&&k(r),n[23](null),z(a,b)}}}function MM(n,e,t){var K;let i,s,l,o,r;qt(n,ui,W=>t(2,s=W)),qt(n,Ms,W=>t(10,l=W)),qt(n,nn,W=>t(26,o=W)),qt(n,ea,W=>t(8,r=W));const a=Y.getQueryParams((K=window.location)==null?void 0:K.href);wn(nn,o="Collections",o);let u,f,c,d,m=a.filter||"",g=a.sort||"-created",v=a.collectionId;function b(){t(9,v=s.id),t(1,g="-created"),t(0,m="")}jw(v);const y=()=>u==null?void 0:u.show(),C=()=>u==null?void 0:u.show(s),$=()=>d==null?void 0:d.load(),S=()=>f==null?void 0:f.show(s),M=()=>c==null?void 0:c.show(),D=W=>t(0,m=W.detail);function E(W){he[W?"unshift":"push"](()=>{d=W,t(6,d)})}function O(W){m=W,t(0,m)}function F(W){g=W,t(1,g)}const L=W=>c==null?void 0:c.show(W==null?void 0:W.detail);function H(W){he[W?"unshift":"push"](()=>{u=W,t(3,u)})}function j(W){he[W?"unshift":"push"](()=>{f=W,t(4,f)})}function Q(W){he[W?"unshift":"push"](()=>{c=W,t(5,c)})}const ie=()=>d==null?void 0:d.load(),U=()=>d==null?void 0:d.load();return n.$$.update=()=>{n.$$.dirty&1024&&t(7,i=l.filter(W=>W.name!="profiles")),n.$$.dirty&516&&(s==null?void 0:s.id)&&v!=s.id&&b(),n.$$.dirty&7&&(g||m||(s==null?void 0:s.id))&&Y.replaceClientQueryParams({collectionId:s==null?void 0:s.id,filter:m,sort:g})},[m,g,s,u,f,c,d,i,r,v,l,y,C,$,S,M,D,E,O,F,L,H,j,Q,ie,U]}class TM extends Fe{constructor(e){super(),Le(this,e,MM,CM,Pe,{})}}function Gh(n){let e,t;return e=new Ie({props:{class:"form-field disabled",name:"id",$$slots:{default:[DM,({uniqueId:i})=>({31:i}),({uniqueId:i})=>[0,i?1:0]]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,s){const l={};s[0]&2|s[1]&3&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function DM(n){let e,t,i,s,l,o,r,a,u;return{c(){e=_("label"),t=_("i"),i=T(),s=_("span"),s.textContent="ID",o=T(),r=_("input"),h(t,"class",Y.getFieldTypeIcon("primary")),h(s,"class","txt"),h(e,"for",l=n[31]),h(r,"type","text"),h(r,"id",a=n[31]),r.value=u=n[1].id,r.disabled=!0},m(f,c){w(f,e,c),p(e,t),p(e,i),p(e,s),w(f,o,c),w(f,r,c)},p(f,c){c[1]&1&&l!==(l=f[31])&&h(e,"for",l),c[1]&1&&a!==(a=f[31])&&h(r,"id",a),c[0]&2&&u!==(u=f[1].id)&&r.value!==u&&(r.value=u)},d(f){f&&k(e),f&&k(o),f&&k(r)}}}function Xh(n){let e,t,i;return{c(){e=_("div"),e.innerHTML='<i class="ri-shield-check-line"></i>',h(e,"class","form-field-addon txt-success")},m(s,l){w(s,e,l),t||(i=et(Et.call(null,e,"Verified")),t=!0)},d(s){s&&k(e),t=!1,i()}}}function OM(n){let e,t,i,s,l,o,r,a,u,f,c,d=n[1].verified&&Xh();return{c(){e=_("label"),t=_("i"),i=T(),s=_("span"),s.textContent="Email",o=T(),d&&d.c(),r=T(),a=_("input"),h(t,"class",Y.getFieldTypeIcon("email")),h(s,"class","txt"),h(e,"for",l=n[31]),h(a,"type","email"),h(a,"autocomplete","off"),h(a,"id",u=n[31]),a.required=!0},m(m,g){w(m,e,g),p(e,t),p(e,i),p(e,s),w(m,o,g),d&&d.m(m,g),w(m,r,g),w(m,a,g),$e(a,n[2]),f||(c=X(a,"input",n[19]),f=!0)},p(m,g){g[1]&1&&l!==(l=m[31])&&h(e,"for",l),m[1].verified?d||(d=Xh(),d.c(),d.m(r.parentNode,r)):d&&(d.d(1),d=null),g[1]&1&&u!==(u=m[31])&&h(a,"id",u),g[0]&4&&a.value!==m[2]&&$e(a,m[2])},d(m){m&&k(e),m&&k(o),d&&d.d(m),m&&k(r),m&&k(a),f=!1,c()}}}function Qh(n){let e,t;return e=new Ie({props:{class:"form-field form-field-toggle",$$slots:{default:[EM,({uniqueId:i})=>({31:i}),({uniqueId:i})=>[0,i?1:0]]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,s){const l={};s[0]&8|s[1]&3&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function EM(n){let e,t,i,s,l,o,r,a;return{c(){e=_("input"),i=T(),s=_("label"),l=R("Change password"),h(e,"type","checkbox"),h(e,"id",t=n[31]),h(s,"for",o=n[31])},m(u,f){w(u,e,f),e.checked=n[3],w(u,i,f),w(u,s,f),p(s,l),r||(a=X(e,"change",n[20]),r=!0)},p(u,f){f[1]&1&&t!==(t=u[31])&&h(e,"id",t),f[0]&8&&(e.checked=u[3]),f[1]&1&&o!==(o=u[31])&&h(s,"for",o)},d(u){u&&k(e),u&&k(i),u&&k(s),r=!1,a()}}}function xh(n){let e,t,i,s,l,o,r,a,u;return s=new Ie({props:{classLine truncated
<span class="txt">Send verification email</span>`,h(e,"type","button"),h(e,"class","dropdown-item")},m(s,l){w(s,e,l),t||(i=X(e,"click",n[16]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function NM(n){let e,t,i,s,l=!n[1].verified&&np(n);return{c(){l&&l.c(),e=T(),t=_("button"),t.innerHTML=`<i class="ri-delete-bin-7-line"></i>
<span class="txt">Delete</span>`,h(t,"type","button"),h(t,"class","dropdown-item")},m(o,r){l&&l.m(o,r),w(o,e,r),w(o,t,r),i||(s=X(t,"click",n[17]),i=!0)},p(o,r){o[1].verified?l&&(l.d(1),l=null):l?l.p(o,r):(l=np(o),l.c(),l.m(e.parentNode,e))},d(o){l&&l.d(o),o&&k(e),o&&k(t),i=!1,s()}}}function RM(n){let e,t,i,s,l,o,r=n[1].isNew?"Create":"Save changes",a,u,f,c,d,m=!n[1].isNew&&tp(n);return{c(){m&&m.c(),e=T(),t=_("button"),i=_("span"),i.textContent="Cancel",s=T(),l=_("button"),o=_("span"),a=R(r),h(i,"class","txt"),h(t,"type","button"),h(t,"class","btn btn-secondary"),t.disabled=n[5],h(o,"class","txt"),h(l,"type","submit"),h(l,"form",n[11]),h(l,"class","btn btn-expanded"),l.disabled=u=!n[10]||n[5],ee(l,"btn-loading",n[5])},m(g,v){m&&m.m(g,v),w(g,e,v),w(g,t,v),p(t,i),w(g,s,v),w(g,l,v),p(l,o),p(o,a),f=!0,c||(d=X(t,"click",n[18]),c=!0)},p(g,v){g[1].isNew?m&&(De(),P(m,1,1,()=>{m=null}),Oe()):m?(m.p(g,v),v[0]&2&&A(m,1)):(m=tp(g),m.c(),A(m,1),m.m(e.parentNode,e)),(!f||v[0]&32)&&(t.disabled=g[5]),(!f||v[0]&2)&&r!==(r=g[1].isNew?"Create":"Save changes")&&me(a,r),(!f||v[0]&1056&&u!==(u=!g[10]||g[5]))&&(l.disabled=u),v[0]&32&&ee(l,"btn-loading",g[5])},i(g){f||(A(m),f=!0)},o(g){P(m),f=!1},d(g){m&&m.d(g),g&&k(e),g&&k(t),g&&k(s),g&&k(l),c=!1,d()}}}function HM(n){let e,t,i={popup:!0,class:"user-panel",beforeHide:n[24],$$slots:{footer:[RM],header:[IM],default:[FM]},$$scope:{ctx:n}};return e=new Ci({props:i}),n[25](e),e.$on("hide",n[26]),e.$on("show",n[27]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,l){const o={};l[0]&1088&&(o.beforeHide=s[24]),l[0]&1966|l[1]&2&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[25](null),z(e,s)}}}function jM(n,e,t){let i;const s=hn(),l="user_"+Y.randomString(5);let o,r=new co,a=!1,u=!1,f="",c="",d="",m=!1,g=!0;function v(J){return y(J),t(6,u=!0),o==null?void 0:o.show()}function b(){return o==null?void 0:o.hide()}function y(J){Ri({}),t(1,r=J!=null&&J.clone?J.clone():new co),C()}function C(){t(3,m=!1),t(9,g=!0),t(2,f=(r==null?void 0:r.email)||""),t(7,c=""),t(8,d="")}function $(){if(a||!i)return;t(5,a=!0);const J={email:f};(r.isNew||m)&&(J.password=c,J.passwordConfirm=d);let se;r.isNew?se=Se.Users.create(J):se=Se.Users.update(r.id,J),se.then(async fe=>{g&&M(!1),t(6,u=!1),b(),_n(r.isNew?"Successfully created user.":"Successfully updated user."),s("save",fe)}).catch(fe=>{Se.errorResponseHandler(fe)}).finally(()=>{t(5,a=!1)})}function S(){!(r!=null&&r.id)||Si("Do you really want to delete the selected user?",()=>Se.Users.delete(r.id).then(()=>{t(6,u=!1),b(),_n("Successfully deleted user."),s("delete",r)}).catch(J=>{Se.errorResponseHandler(J)}))}function M(J=!0){return Se.Users.requestVerification(r.isNew?f:r.email).then(()=>{t(6,u=!1),b(),J&&_n(`Successfully sent verification email to ${r.email}.`)}).catch(se=>{Se.errorResponseHandler(se)})}const D=()=>M(),E=()=>S(),O=()=>b();function F(){f=this.value,t(2,f)}function L(){m=this.checked,t(3,m)}function H(){c=this.value,t(7,c)}function j(){d=this.value,t(8,d)}function Q(){g=this.checked,t(9,g)}const ie=()=>i&&u?(Si("You have unsaved changes. Do you really want to close the panel?",()=>{t(6,u=!1),b()}),!1):!0;function U(J){he[J?"unshift":"push"](()=>{o=J,t(4,o)})}function K(J){pt.call(this,n,J)}function W(J){pt.call(this,n,J)}return n.$$.update=()=>{n.$$.dirty[0]&14&&t(10,i=r.isNew&&f!=""||m||f!==r.email)},[b,r,f,m,o,a,u,c,d,g,i,l,$,S,M,v,D,E,O,F,L,H,j,Q,ie,U,K,W]}class qM extends Fe{constructor(e){super(),Le(this,e,jM,HM,Pe,{show:15,hide:0},null,[-1,-1])}get show(){return this.$$.ctx[15]}get hide(){return this.$$.ctx[0]}}function ip(n,e,t){const i=n.slice();return i[39]=e[t],i}function sp(n,e,t){const i=n.slice();return i[42]=e[t],i}function lp(n,e,t){const i=n.slice();return i[42]=e[t],i}function VM(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g,v,b,y,C,$,S,M,D,E,O,F,L,H=[],j=new Map,Q,ie,U,K,W,J,se,fe,ke,le,ue=[],Me=new Map,Z,be,x,G,_e;u=new zo({}),u.$on("refresh",n[17]),v=new Vo({props:{value:n[3],placeholder:"Search filter, eg. verified=1",extraAutocompleteKeys:["verified","email"]}}),v.$on("submit",n[19]);function je(te){n[20](te)}let Ne={class:"col-type-text col-field-id",name:"id",$$slots:{default:[BM]},$$scope:{ctx:n}};n[4]!==void 0&&(Ne.sort=n[4]),M=new rn({props:Ne}),he.push(()=>Re(M,"sort",je));function qe(te){n[21](te)}let ae={class:"col-type-email col-field-email",name:"email",$$slots:{default:[UM]},$$scope:{ctx:n}};n[4]!==void 0&&(ae.sort=n[4]),O=new rn({props:ae}),he.push(()=>Re(O,"sort",qe));let re=n[12];const ve=te=>te[42].name;for(let te=0;te<re.length;te+=1){let ye=lp(n,re,te),Ke=ve(ye);j.set(Ke,H[te]=op(Ke,ye))}function Je(te){n[22](te)}let nt={class:"col-type-date col-field-created",name:"created",$$slots:{default:[WM]},$$scope:{ctx:n}};n[4]!==void 0&&(nt.sort=n[4]),ie=new rn({props:nt}),he.push(()=>Re(ie,"sort",Je));function ut(te){n[23](te)}let ot={class:"col-type-date col-field-updated",name:"updated",$$slots:{default:[YM]},$$scope:{ctx:n}};n[4]!==voiLine truncated
<span class="txt">New user</span>`,g=T(),B(v.$$.fragment),b=T(),y=_("div"),C=_("table"),$=_("thead"),S=_("tr"),B(M.$$.fragment),E=T(),B(O.$$.fragment),L=T();for(let te=0;te<H.length;te+=1)H[te].c();Q=T(),B(ie.$$.fragment),K=T(),B(W.$$.fragment),se=T(),fe=_("th"),ke=T(),le=_("tbody");for(let te=0;te<ue.length;te+=1)ue[te].c();pe&&pe.c(),Z=T(),Ve&&Ve.c(),be=T(),mt&&mt.c(),h(s,"class","breadcrumb-item"),h(i,"class","breadcrumbs"),h(r,"type","button"),h(r,"class","btn btn-secondary btn-circle"),h(c,"class","flex-fill"),h(m,"type","button"),h(m,"class","btn btn-expanded"),h(t,"class","page-header"),h(fe,"class","col-type-action min-width"),h(C,"class","table"),ee(C,"table-loading",n[10]),h(y,"class","table-wrapper"),h(e,"class","page-wrapper")},m(te,ye){w(te,e,ye),p(e,t),p(t,i),p(i,s),p(s,l),p(t,o),p(t,r),p(t,a),V(u,t,null),p(t,f),p(t,c),p(t,d),p(t,m),p(e,g),V(v,e,null),p(e,b),p(e,y),p(y,C),p(C,$),p($,S),V(M,S,null),p(S,E),V(O,S,null),p(S,L);for(let Ke=0;Ke<H.length;Ke+=1)H[Ke].m(S,null);p(S,Q),V(ie,S,null),p(S,K),V(W,S,null),p(S,se),p(S,fe),p(C,ke),p(C,le);for(let Ke=0;Ke<ue.length;Ke+=1)ue[Ke].m(le,null);pe&&pe.m(le,null),p(e,Z),Ve&&Ve.m(e,null),p(e,be),mt&&mt.m(e,null),x=!0,G||(_e=[et(Et.call(null,r,{text:"Edit profile collection",position:"right"})),X(r,"click",n[16]),X(m,"click",n[18])],G=!0)},p(te,ye){(!x||ye[0]&16384)&&me(l,te[14]);const Ke={};ye[0]&8&&(Ke.value=te[3]),v.$set(Ke);const ft={};ye[1]&65536&&(ft.$$scope={dirty:ye,ctx:te}),!D&&ye[0]&16&&(D=!0,ft.sort=te[4],He(()=>D=!1)),M.$set(ft);const St={};ye[1]&65536&&(St.$$scope={dirty:ye,ctx:te}),!F&&ye[0]&16&&(F=!0,St.sort=te[4],He(()=>F=!1)),O.$set(St),ye[0]&4096&&(re=te[12],H=dt(H,ye,ve,1,te,re,j,S,cn,op,Q,lp));const $t={};ye[1]&65536&&($t.$$scope={dirty:ye,ctx:te}),!U&&ye[0]&16&&(U=!0,$t.sort=te[4],He(()=>U=!1)),ie.$set($t);const Nt={};ye[1]&65536&&(Nt.$$scope={dirty:ye,ctx:te}),!J&&ye[0]&16&&(J=!0,Nt.sort=te[4],He(()=>J=!1)),W.$set(Nt),ye[0]&5450&&(Xe=te[1],De(),ue=dt(ue,ye,ge,1,te,Xe,Me,le,Bt,fp,null,ip),Oe(),!Xe.length&&pe?pe.p(te,ye):Xe.length?pe&&(pe.d(1),pe=null):(pe=rp(te),pe.c(),pe.m(le,null))),ye[0]&1024&&ee(C,"table-loading",te[10]),te[1].length?Ve?Ve.p(te,ye):(Ve=cp(te),Ve.c(),Ve.m(e,be)):Ve&&(Ve.d(1),Ve=null),te[1].length&&te[13]?mt?mt.p(te,ye):(mt=dp(te),mt.c(),mt.m(e,null)):mt&&(mt.d(1),mt=null)},i(te){if(!x){A(u.$$.fragment,te),A(v.$$.fragment,te),A(M.$$.fragment,te),A(O.$$.fragment,te),A(ie.$$.fragment,te),A(W.$$.fragment,te);for(let ye=0;ye<Xe.length;ye+=1)A(ue[ye]);x=!0}},o(te){P(u.$$.fragment,te),P(v.$$.fragment,te),P(M.$$.fragment,te),P(O.$$.fragment,te),P(ie.$$.fragment,te),P(W.$$.fragment,te);for(let ye=0;ye<ue.length;ye+=1)P(ue[ye]);x=!1},d(te){te&&k(e),z(u),z(v),z(M),z(O);for(let ye=0;ye<H.length;ye+=1)H[ye].d();z(ie),z(W);for(let ye=0;ye<ue.length;ye+=1)ue[ye].d();pe&&pe.d(),Ve&&Ve.d(),mt&&mt.d(),G=!1,st(_e)}}}function zM(n){let e;return{c(){e=_("div"),e.innerHTML=`<span class="loader loader-lg"></span>
<h1>Loading users...</h1>`,h(e,"class","placeholder-section m-b-base")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function BM(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="id",h(t,"class",Y.getFieldTypeIcon("primary")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function UM(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="email",h(t,"class",Y.getFieldTypeIcon("email")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function op(n,e){let t,i,s,l,o,r,a,u=e[42].name+"",f,c,d;return{key:n,first:null,c(){t=_("th"),i=_("div"),s=_("i"),o=T(),r=_("span"),a=R("profile."),f=R(u),h(s,"class",l=Y.getFieldTypeIcon(e[42].type)),h(r,"class","txt"),h(i,"class","col-header-content"),h(t,"class",c="col-type-"+e[42].type+" col-field-"+e[42].name),h(t,"name",d=e[42].name),this.first=t},m(m,g){w(m,t,g),p(t,i),p(i,s),p(i,o),p(i,r),p(r,a),p(r,f)},p(m,g){e=m,g[0]&4096&&l!==(l=Y.getFieldTypeIcon(e[42].type))&&h(s,"class",l),g[0]&4096&&u!==(u=e[42].name+"")&&me(f,u),g[0]&4096&&c!==(c="col-type-"+e[42].type+" col-field-"+e[42].name)&&h(t,"class",c),g[0]&4096&&d!==(d=e[42].name)&&h(t,"name",d)},d(m){m&&k(t)}}}function WM(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="created",h(t,"class",Y.getFieldTypeIcon("date")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function YM(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="updated",h(t,"class",Y.getFieldTypeIcon("date")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function rp(n){let e;function t(l,o){return l[10]?ZM:KM}let i=t(n),s=i(n);return{c(){s.c(),e=lt()},m(l,o){s.m(l,o),w(l,e,o)},p(l,o){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&k(e)}}}function KM(n){var r;let e,t,i,s,l,o=((r=n[3])==null?void 0:r.length)&&ap(n);return{c(){e=_("tr"),t=_("td"),i=_("h6"),i.textContent="No users found.",s=T(),o&&o.c(),l=T(),h(t,"colspan","99"),h(t,"class","txt-center txt-hint p-xs")},m(a,u){w(a,e,u),p(e,t),p(t,i),p(t,s),o&&o.m(t,null),p(e,l)},p(a,u){var f;(f=a[3])!=null&&f.length?o?o.p(a,u):(o=ap(a),o.c(),o.m(t,null)):o&&(o.d(1),o=null)},d(a){a&&k(e),o&&o.d()}}}function ZM(n){let e;return{c(){e=_("tr"),e.innerHTML=`<td colspan="99" class="p-xs"><span class="skeleton-loader"></span></td>
`},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function ap(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Clear filters</span>',h(e,"type","button"),h(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){w(s,e,l),t||(i=X(e,"click",n[26]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function up(n,e){let t,i,s;return i=new g_({props:{field:e[42],record:e[39].profile||{}}}),{key:n,first:null,c(){t=lt(),B(i.$$.fragment),this.first=t},m(l,o){w(l,t,o),V(i,l,o),s=!0},p(l,o){e=l;const r={};o[0]&4096&&(r.field=e[42]),o[0]&2&&(r.record=e[39].profile||{}),i.$set(r)},i(l){s||(A(i.$$.fragment,l),s=!0)},o(l){P(i.$$.fragment,l),s=!1},d(l){l&&k(t),z(i,l)}}}function fp(n,e){let t,i,s,l,o,r,a,u=e[39].email+"",f,c,d,m,g=e[39].verified?"Verified":"Unverified",v,b,y=[],C=new Map,$,S,M,D,E,O,F,L,H,j,Q,ie,U,K,W;s=new Zo({props:{id:e[39].id}});let J=e[12];const se=le=>le[42].name;for(let le=0;le<J.length;le+=1){let ue=sp(e,J,le),Me=se(ue);C.set(Me,y[le]=up(Me,ue))}M=new wi({props:{date:e[39].created}}),O=new wi({props:{date:e[39].updated}});function fe(){return e[24](e[39])}function ke(){return e[25](e[39])}return{key:n,first:null,c(){t=_("tr"),i=_("td"),B(s.$$.fragment),l=T(),o=_("td"),r=_("div"),a=_("span"),f=R(u),d=T(),m=_("span"),v=R(g),b=T();for(let le=0;le<y.length;le+=1)y[le].c();$=T(),S=_("td"),B(M.$$.fragment),D=T(),E=_("td"),B(O.$$.fragment),F=T(),L=_("td"),H=_("button"),H.innerHTML=`<i class="ri-user-settings-line"></i>
<span class="txt">Edit user</span>`,j=T(),Q=_("button"),Q.innerHTML=`<i class="ri-profile-line"></i>
<span class="txt">Edit profile</span>`,ie=T(),h(i,"class","col-type-text col-field-id"),h(a,"class","txt"),h(a,"title",c=e[39].email),h(m,"class","label"),ee(m,"label-success",e[39].verified),ee(m,"label-warning",!e[39].verified),h(r,"class","inline-flex"),h(o,"class","col-type-email col-field-email"),h(S,"class","col-type-date col-field-created"),h(E,"class","col-type-date col-field-updated"),h(H,"type","button"),h(H,"class","btn btn-sm btn-outline"),h(Q,"type","button"),h(Q,"class","btn btn-sm m-l-10"),h(L,"class","col-type-action min-width"),this.first=t},m(le,ue){w(le,t,ue),p(t,i),V(s,i,null),p(t,l),p(t,o),p(o,r),p(r,a),p(a,f),p(r,d),p(r,m),p(m,v),p(t,b);for(let Me=0;Me<y.length;Me+=1)y[Me].m(t,null);p(t,$),p(t,S),V(M,S,null),p(t,D),p(t,E),V(O,E,null),p(t,F),p(t,L),p(L,H),p(L,j),p(L,Q),p(t,ie),U=!0,K||(W=[X(H,"click",ni(fe)),X(Q,"click",ni(ke))],K=!0)},p(le,ue){e=le;const Me={};ue[0]&2&&(Me.id=e[39].id),s.$set(Me),(!U||ue[0]&2)&&u!==(u=e[39].email+"")&&me(f,u),(!U||ue[0]&2&&c!==(c=e[39].email))&&h(a,"title",c),(!U||ue[0]&2)&&g!==(g=e[39].verified?"Verified":"Unverified")&&me(v,g),ue[0]&2&&ee(m,"label-success",e[39].verified),ue[0]&2&&ee(m,"label-warning",!e[39].verified),ue[0]&4098&&(J=e[12],De(),y=dt(y,ue,se,1,e,J,C,t,Bt,up,$,sp),Oe());const Z={};ue[0]&2&&(Z.date=e[39].created),M.$set(Z);const be={};ue[0]&2&&(be.date=e[39].updated),O.$set(be)},i(le){if(!U){A(s.$$.fragment,le);for(let ue=0;ue<J.length;ue+=1)A(y[ue]);A(M.$$.fragment,le),A(O.$$.fragment,le),U=!0}},o(le){P(s.$$.fragment,le);for(let ue=0;ue<y.length;ue+=1)P(y[ue]);P(M.$$.fragment,le),P(O.$$.fragment,le),U=!1},d(le){le&&k(t),z(s);for(let ue=0;ue<y.length;ue+=1)y[ue].d();z(M),z(O),K=!1,st(W)}}}function cp(n){let e,t,i=n[1].length+"",s,l,o;return{c(){e=_("small"),t=R("Showing "),s=R(i),l=R(" of "),o=R(n[2]),h(e,"class","block txt-hint txt-right m-t-sm")},m(r,a){w(r,e,a),p(e,t),p(e,s),p(e,l),p(e,o)},p(r,a){a[0]&2&&i!==(i=r[1].length+"")&&me(s,i),a[0]&4&&me(o,r[2])},d(r){r&&k(e)}}}function dp(n){let e,t,i,s,l=n[2]-n[1].length+"",o,r,a,u;return{c(){e=_("div"),t=_("button"),i=_("span"),s=R("Load more ("),o=R(l),r=R(")"),h(i,"class","txt"),h(t,"type","button"),h(t,"class","btn btn-lg btn-secondary btn-expanded"),ee(t,"btn-loading",n[10]),ee(t,"btn-disabled",n[10]),h(e,"class","block txt-center m-t-xs")},m(f,c){w(f,e,c),p(e,t),p(t,i),p(i,s),p(i,o),p(i,r),a||(u=X(t,"click",n[27]),a=!0)},p(f,c){c[0]&6&&l!==(l=f[2]-f[1].length+"")&&me(o,l),c[0]&1024&&ee(t,"btn-loading",f[10]),c[0]&1024&&ee(t,"btn-disabled",f[10])},d(f){f&&k(e),a=!1,u()}}}function JM(n){let e,t,i,s,l,o,r,a,u;const f=[zM,VM],c=[];function d(b,y){return b[11]?0:1}e=d(n),t=c[e]=f[e](n);let m={};s=new qM({props:m}),n[28](s),s.$on("save",n[29]),s.$on("delete",n[30]);let g={};o=new Ua({props:g}),n[31](o),o.$on("save",n[32]);let v={collection:n[5]};return a=new m_({props:v}),n[33](a),a.$on("save",n[34]),{c(){t.c(),i=T(),B(s.$$.fragment),l=T(),B(o.$$.fragment),r=T(),B(a.$$.fragment)},m(b,y){c[e].m(b,y),w(b,i,y),V(s,b,y),w(b,l,y),V(o,b,y),w(b,r,y),V(a,b,y),u=!0},p(b,y){let C=e;e=d(b),e===C?c[e].p(b,y):(De(),P(c[C],1,1,()=>{c[C]=null}),Oe(),t=c[e],t?t.p(b,y):(t=c[e]=f[e](b),t.c()),A(t,1),t.m(i.parentNode,i));const $={};s.$set($);const S={};o.$set(S);const M={};y[0]&32&&(M.collection=b[5]),a.$set(M)},i(b){u||(A(t),A(s.$$.fragment,b),A(o.$$.fragment,b),A(a.$$.fragment,b),u=!0)},o(b){P(t),P(s.$$.fragment,b),P(o.$$.fragment,b),P(a.$$.fragment,b),u=!1},d(b){c[e].d(b),b&&k(i),n[28](null),z(s,b),b&&k(l),n[31](null),z(o,b),b&&k(r),n[33](null),z(a,b)}}}function GM(n,e,t){var be;let i,s,l;qt(n,nn,x=>t(14,l=x));const o=Y.getQueryParams((be=window.location)==null?void 0:be.href),r=["id","userId","created","updated"];wn(nn,l="Users",l);let a,u,f,c=[],d=1,m=0,g=!1,v=o.filter||"",b=o.sort||"-created",y=new Fn,C=!1;D();async function $(x=1){return t(10,g=!0),x<=1&&S(),Se.Users.getList(x,50,{sort:b||"-created",filter:v}).then(G=>{t(10,g=!1),t(1,c=c.concat(G.items)),t(9,d=G.page),t(2,m=G.totalItems)}).catch(G=>{G!=null&&G.isAbort||(t(10,g=!1),console.warn(G),S(),Se.errorResponseHandler(G,!1))})}function S(){t(1,c=[]),t(9,d=1),t(2,m=0)}function M(x){const G=c.find(_e=>_e.id===(x==null?void 0:x.userId));G&&(G.profile=x),t(1,c)}async function D(){t(11,C=!0);try{t(5,y=await Se.Collections.getOne("profiles"))}catch(x){Se.errorResponseHandler(x)}t(11,C=!1)}const E=()=>u==null?void 0:u.show(y),O=()=>$(),F=()=>a==null?void 0:a.show(),L=x=>t(3,v=x.detail);function H(x){b=x,t(4,b)}function j(x){b=x,t(4,b)}function Q(x){b=x,t(4,b)}function ie(x){b=x,t(4,b)}const U=x=>a==null?void 0:a.show(x),K=x=>f==null?void 0:f.show(x.profile),W=()=>t(3,v=""),J=()=>$(d+1);function se(x){he[x?"unshift":"push"](()=>{a=x,t(6,a)})}const fe=()=>$(),ke=()=>$();function le(x){he[x?"unshift":"push"](()=>{u=x,t(7,u)})}const ue=x=>t(5,y=x.detail);function Me(x){he[x?"unshift":"push"](()=>{f=x,t(8,f)})}const Z=x=>M(x.detail);return n.$$.update=()=>{var x;n.$$.dirty[0]&24&&b!==-1&&v!==-1&&(Y.replaceClientQueryParamLine truncated
<span class="txt">Application</span>`,o=T(),r=_("a"),r.innerHTML=`<i class="ri-send-plane-2-line"></i>
<span class="txt">Mail settings</span>`,a=T(),u=_("a"),u.innerHTML=`<i class="ri-archive-drawer-line"></i>
<span class="txt">Files storage</span>`,f=T(),c=_("div"),c.textContent="Authentication",d=T(),m=_("a"),m.innerHTML=`<i class="ri-lock-password-line"></i>
<span class="txt">Auth providers</span>`,g=T(),v=_("a"),v.innerHTML=`<i class="ri-key-line"></i>
<span class="txt">Token options</span>`,b=T(),y=_("a"),y.innerHTML=`<i class="ri-shield-user-line"></i>
<span class="txt">Admins</span>`,h(i,"class","sidebar-title"),h(l,"href","/settings"),h(l,"class","sidebar-list-item"),h(r,"href","/settings/mail"),h(r,"class","sidebar-list-item"),h(u,"href","/settings/storage"),h(u,"class","sidebar-list-item"),h(c,"class","sidebar-title"),h(m,"href","/settings/auth-providers"),h(m,"class","sidebar-list-item"),h(v,"href","/settings/tokens"),h(v,"class","sidebar-list-item"),h(y,"href","/settings/admins"),h(y,"class","sidebar-list-item"),h(t,"class","sidebar-content"),h(e,"class","page-sidebar settings-sidebar")},m(S,M){w(S,e,M),p(e,t),p(t,i),p(t,s),p(t,l),p(t,o),p(t,r),p(t,a),p(t,u),p(t,f),p(t,c),p(t,d),p(t,m),p(t,g),p(t,v),p(t,b),p(t,y),C||($=[et(oi.call(null,l,{path:"/settings"})),et(Tn.call(null,l)),et(oi.call(null,r,{path:"/settings/mail/?.*"})),et(Tn.call(null,r)),et(oi.call(null,u,{path:"/settings/storage/?.*"})),et(Tn.call(null,u)),et(oi.call(null,m,{path:"/settings/auth-providers/?.*"})),et(Tn.call(null,m)),et(oi.call(null,v,{path:"/settings/tokens/?.*"})),et(Tn.call(null,v)),et(oi.call(null,y,{path:"/settings/admins/?.*"})),et(Tn.call(null,y))],C=!0)},p:oe,i:oe,o:oe,d(S){S&&k(e),C=!1,st($)}}}class Ps extends Fe{constructor(e){super(),Le(this,e,null,QM,Pe,{})}}function hp(n,e,t){const i=n.slice();return i[31]=e[t],i}function pp(n){let e,t;return e=new Ie({props:{class:"form-field disabled",name:"id",$$slots:{default:[xM,({uniqueId:i})=>({30:i}),({uniqueId:i})=>[i?1073741824:0]]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,s){const l={};s[0]&1073741826|s[1]&8&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function xM(n){let e,t,i,s,l,o,r,a,u;return{c(){e=_("label"),t=_("i"),i=T(),s=_("span"),s.textContent="ID",o=T(),r=_("input"),h(t,"class",Y.getFieldTypeIcon("primary")),h(s,"class","txt"),h(e,"for",l=n[30]),h(r,"type","text"),h(r,"id",a=n[30]),r.value=u=n[1].id,r.disabled=!0},m(f,c){w(f,e,c),p(e,t),p(e,i),p(e,s),w(f,o,c),w(f,r,c)},p(f,c){c[0]&1073741824&&l!==(l=f[30])&&h(e,"for",l),c[0]&1073741824&&a!==(a=f[30])&&h(r,"id",a),c[0]&2&&u!==(u=f[1].id)&&r.value!==u&&(r.value=u)},d(f){f&&k(e),f&&k(o),f&&k(r)}}}function mp(n){let e,t,i,s,l,o,r;function a(){return n[17](n[31])}function u(...f){return n[18](n[31],...f)}return{c(){e=_("figure"),t=_("img"),s=T(),ti(t.src,i="/_/images/avatars/avatar"+n[31]+".svg")||h(t,"src",i),h(t,"alt","Avatar "+n[31]),h(e,"tabindex","0"),h(e,"class",l="link-fade thumb thumb-circle "+(n[31]==n[2]?"thumb-active":"thumb-sm"))},m(f,c){w(f,e,c),p(e,t),p(e,s),o||(r=[X(e,"click",a),X(e,"keydown",u)],o=!0)},p(f,c){n=f,c[0]&4&&l!==(l="link-fade thumb thumb-circle "+(n[31]==n[2]?"thumb-active":"thumb-sm"))&&h(e,"class",l)},d(f){f&&k(e),o=!1,st(r)}}}function eT(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=_("label"),t=_("i"),i=T(),s=_("span"),s.textContent="Email",o=T(),r=_("input"),h(t,"class",Y.getFieldTypeIcon("email")),h(s,"class","txt"),h(e,"for",l=n[30]),h(r,"type","email"),h(r,"autocomplete","off"),h(r,"id",a=n[30]),r.required=!0},m(c,d){w(c,e,d),p(e,t),p(e,i),p(e,s),w(c,o,d),w(c,r,d),$e(r,n[3]),u||(f=X(r,"input",n[19]),u=!0)},p(c,d){d[0]&1073741824&&l!==(l=c[30])&&h(e,"for",l),d[0]&1073741824&&a!==(a=c[30])&&h(r,"id",a),d[0]&8&&r.value!==c[3]&&$e(r,c[3])},d(c){c&&k(e),c&&k(o),c&&k(r),u=!1,f()}}}function gp(n){let e,t;return e=new Ie({props:{class:"form-field form-field-toggle",$$slots:{default:[tT,({uniqueId:i})=>({30:i}),({uniqueId:i})=>[i?1073741824:0]]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,s){const l={};s[0]&1073741840|s[1]&8&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function tT(n){let e,t,i,s,l,o,r,a;return{c(){e=_("input"),i=T(),s=_("label"),l=R("Change password"),h(e,"type","checkbox"),h(e,"id",t=n[30]),h(s,"for",o=n[30])},m(u,f){w(u,e,f),e.checked=n[4],w(u,i,f),w(u,s,f),p(s,l),r||(a=X(e,"change",n[20]),r=!0)},p(u,f){f[0]&1073741824&&t!==(t=u[30])&&h(e,"id",t),f[0]&16&&(e.checked=u[4]),f[0]&1073741824&&o!==(o=u[30])&&h(s,"for",o)},d(u){u&&k(e),u&&k(i),u&&k(s),r=!1,a()}}}function _p(n){let e,t,i,s,l,o,r,a,u;return s=new Ie({props:{class:"form-field required",name:"password",$$slots:{default:[nT,({uniqueId:f})=>({30:f}),({uniqueId:f})=>[f?1073741824:0]]},$$scope:{ctx:n}}}),r=new Ie({props:{class:"form-field required",name:"passwordConfirm",$$slots:{default:[iT,({uniqueId:f})=>({30:f}),({uniqueId:f})=>[f?1073741824:0]]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),i=_("div"),B(s.$$.fragment),l=T(),o=_("div"),B(r.$$.fragment),h(i,"class","col-sm-6"),h(o,"class","col-sm-6"),h(t,"class","grid"),h(e,"class","col-12")},m(f,c){w(f,e,c),p(e,t),p(t,i),V(s,i,null),p(t,l),p(t,o),V(r,o,null),u=!0},p(f,c){const d={};c[0]&1073742080|c[1]&8&&(d.$$scope={dirty:c,ctx:f}),s.$set(d);const m={};c[0]&1073742336|c[1]&8&&(m.$$scope={dirty:c,ctx:f}),r.$set(m)},i(f){u||(A(s.$$.fragment,f),A(r.$$.fragment,f),Lt(()=>{a||(a=at(t,on,{duration:150},!0)),a.run(Line truncated
<span class="txt">Delete</span>`,h(e,"type","button"),h(e,"class","dropdown-item")},m(s,l){w(s,e,l),t||(i=X(e,"click",n[15]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function rT(n){let e,t,i,s,l,o,r=n[1].isNew?"Create":"Save changes",a,u,f,c,d,m=!n[1].isNew&&bp(n);return{c(){m&&m.c(),e=T(),t=_("button"),i=_("span"),i.textContent="Cancel",s=T(),l=_("button"),o=_("span"),a=R(r),h(i,"class","txt"),h(t,"type","button"),h(t,"class","btn btn-secondary"),t.disabled=n[6],h(o,"class","txt"),h(l,"type","submit"),h(l,"form",n[11]),h(l,"class","btn btn-expanded"),l.disabled=u=!n[10]||n[6],ee(l,"btn-loading",n[6])},m(g,v){m&&m.m(g,v),w(g,e,v),w(g,t,v),p(t,i),w(g,s,v),w(g,l,v),p(l,o),p(o,a),f=!0,c||(d=X(t,"click",n[16]),c=!0)},p(g,v){g[1].isNew?m&&(De(),P(m,1,1,()=>{m=null}),Oe()):m?(m.p(g,v),v[0]&2&&A(m,1)):(m=bp(g),m.c(),A(m,1),m.m(e.parentNode,e)),(!f||v[0]&64)&&(t.disabled=g[6]),(!f||v[0]&2)&&r!==(r=g[1].isNew?"Create":"Save changes")&&me(a,r),(!f||v[0]&1088&&u!==(u=!g[10]||g[6]))&&(l.disabled=u),v[0]&64&&ee(l,"btn-loading",g[6])},i(g){f||(A(m),f=!0)},o(g){P(m),f=!1},d(g){m&&m.d(g),g&&k(e),g&&k(t),g&&k(s),g&&k(l),c=!1,d()}}}function aT(n){let e,t,i={popup:!0,class:"admin-panel",beforeHide:n[23],$$slots:{footer:[rT],header:[lT],default:[sT]},$$scope:{ctx:n}};return e=new Ci({props:i}),n[24](e),e.$on("hide",n[25]),e.$on("show",n[26]),{c(){B(e.$$.fragment)},m(s,l){V(e,s,l),t=!0},p(s,l){const o={};l[0]&1152&&(o.beforeHide=s[23]),l[0]&1886|l[1]&8&&(o.$$scope={dirty:l,ctx:s}),e.$set(o)},i(s){t||(A(e.$$.fragment,s),t=!0)},o(s){P(e.$$.fragment,s),t=!1},d(s){n[24](null),z(e,s)}}}function uT(n,e,t){let i;const s=hn(),l="admin_"+Y.randomString(5);let o,r=new ws,a=!1,u=!1,f=0,c="",d="",m="",g=!1;function v(W){return y(W),t(7,u=!0),o==null?void 0:o.show()}function b(){return o==null?void 0:o.hide()}function y(W){Ri({}),t(1,r=W!=null&&W.clone?W.clone():new ws),C()}function C(){t(4,g=!1),t(3,c=(r==null?void 0:r.email)||""),t(2,f=(r==null?void 0:r.avatar)||0),t(8,d=""),t(9,m="")}function $(){if(a||!i)return;t(6,a=!0);const W={email:c,avatar:f};(r.isNew||g)&&(W.password=d,W.passwordConfirm=m);let J;r.isNew?J=Se.Admins.create(W):J=Se.Admins.update(r.id,W),J.then(async se=>{var fe;t(7,u=!1),b(),_n(r.isNew?"Successfully created admin.":"Successfully updated admin."),s("save",se),((fe=Se.AuthStore.model)==null?void 0:fe.id)===se.id&&Se.AuthStore.save(Se.AuthStore.token,se)}).catch(se=>{Se.errorResponseHandler(se)}).finally(()=>{t(6,a=!1)})}function S(){!(r!=null&&r.id)||Si("Do you really want to delete the selected admin?",()=>Se.Admins.delete(r.id).then(()=>{t(7,u=!1),b(),_n("Successfully deleted admin."),s("delete",r)}).catch(W=>{Se.errorResponseHandler(W)}))}const M=()=>S(),D=()=>b(),E=W=>t(2,f=W),O=(W,J)=>{(J.code==="Enter"||J.code==="Space")&&(J.preventDefault(),t(2,f=W))};function F(){c=this.value,t(3,c)}function L(){g=this.checked,t(4,g)}function H(){d=this.value,t(8,d)}function j(){m=this.value,t(9,m)}const Q=()=>i&&u?(Si("You have unsaved changes. Do you really want to close the panel?",()=>{t(7,u=!1),b()}),!1):!0;function ie(W){he[W?"unshift":"push"](()=>{o=W,t(5,o)})}function U(W){pt.call(this,n,W)}function K(W){pt.call(this,n,W)}return n.$$.update=()=>{n.$$.dirty[0]&30&&t(10,i=r.isNew&&c!=""||g||c!==r.email||f!==r.avatar)},[b,r,f,c,g,o,a,u,d,m,i,l,$,S,v,M,D,E,O,F,L,H,j,Q,ie,U,K]}class fT extends Fe{constructor(e){super(),Le(this,e,uT,aT,Pe,{show:14,hide:0},null,[-1,-1])}get show(){return this.$$.ctx[14]}get hide(){return this.$$.ctx[0]}}function vp(n,e,t){const i=n.slice();return i[23]=e[t],i}function cT(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="id",h(t,"class",Y.getFieldTypeIcon("primary")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function dT(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="email",h(t,"class",Y.getFieldTypeIcon("email")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function hT(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="created",h(t,"class",Y.getFieldTypeIcon("date")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function pT(n){let e,t,i,s;return{c(){e=_("div"),t=_("i"),i=T(),s=_("span"),s.textContent="updated",h(t,"class",Y.getFieldTypeIcon("date")),h(s,"class","txt"),h(e,"class","col-header-content")},m(l,o){w(l,e,o),p(e,t),p(e,i),p(e,s)},p:oe,d(l){l&&k(e)}}}function yp(n){let e;function t(l,o){return l[5]?gT:mT}let i=t(n),s=i(n);return{c(){s.c(),e=lt()},m(l,o){s.m(l,o),w(l,e,o)},p(l,o){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},d(l){s.d(l),l&&k(e)}}}function mT(n){var r;let e,t,i,s,l,o=((r=n[1])==null?void 0:r.length)&&kp(n);return{c(){e=_("tr"),t=_("td"),i=_("h6"),i.textContent="No admins found.",s=T(),o&&o.c(),l=T(),h(t,"colspan","99"),h(t,"class","txt-cLine truncated
`},m(t,i){w(t,e,i)},p:oe,d(t){t&&k(e)}}}function kp(n){let e,t,i;return{c(){e=_("button"),e.innerHTML='<span class="txt">Clear filters</span>',h(e,"type","button"),h(e,"class","btn btn-hint btn-expanded m-t-sm")},m(s,l){w(s,e,l),t||(i=X(e,"click",n[17]),t=!0)},p:oe,d(s){s&&k(e),t=!1,i()}}}function wp(n){let e;return{c(){e=_("span"),e.textContent="You",h(e,"class","label label-warning m-l-5")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Sp(n,e){let t,i,s,l,o,r,a,u,f,c,d,m,g=e[23].email+"",v,b,y,C,$,S,M,D,E,O,F,L,H,j;u=new Zo({props:{id:e[23].id}});let Q=e[23].id===e[7].id&&wp();$=new wi({props:{date:e[23].created}}),D=new wi({props:{date:e[23].updated}});function ie(){return e[15](e[23])}function U(...K){return e[16](e[23],...K)}return{key:n,first:null,c(){t=_("tr"),i=_("td"),s=_("figure"),l=_("img"),r=T(),a=_("td"),B(u.$$.fragment),f=T(),Q&&Q.c(),c=T(),d=_("td"),m=_("span"),v=R(g),y=T(),C=_("td"),B($.$$.fragment),S=T(),M=_("td"),B(D.$$.fragment),E=T(),O=_("td"),O.innerHTML='<i class="ri-arrow-right-line"></i>',F=T(),ti(l.src,o="/_/images/avatars/avatar"+(e[23].avatar||0)+".svg")||h(l,"src",o),h(l,"alt","Admin avatar"),h(s,"class","thumb thumb-sm thumb-circle"),h(i,"class","min-width"),h(a,"class","col-type-text col-field-id"),h(m,"class","txt txt-ellipsis"),h(m,"title",b=e[23].email),h(d,"class","col-type-email col-field-email"),h(C,"class","col-type-date col-field-created"),h(M,"class","col-type-date col-field-updated"),h(O,"class","col-type-action min-width"),h(t,"tabindex","0"),h(t,"class","row-handle"),this.first=t},m(K,W){w(K,t,W),p(t,i),p(i,s),p(s,l),p(t,r),p(t,a),V(u,a,null),p(a,f),Q&&Q.m(a,null),p(t,c),p(t,d),p(d,m),p(m,v),p(t,y),p(t,C),V($,C,null),p(t,S),p(t,M),V(D,M,null),p(t,E),p(t,O),p(t,F),L=!0,H||(j=[X(t,"click",ie),X(t,"keydown",U)],H=!0)},p(K,W){e=K,(!L||W&16&&!ti(l.src,o="/_/images/avatars/avatar"+(e[23].avatar||0)+".svg"))&&h(l,"src",o);const J={};W&16&&(J.id=e[23].id),u.$set(J),e[23].id===e[7].id?Q||(Q=wp(),Q.c(),Q.m(a,null)):Q&&(Q.d(1),Q=null),(!L||W&16)&&g!==(g=e[23].email+"")&&me(v,g),(!L||W&16&&b!==(b=e[23].email))&&h(m,"title",b);const se={};W&16&&(se.date=e[23].created),$.$set(se);const fe={};W&16&&(fe.date=e[23].updated),D.$set(fe)},i(K){L||(A(u.$$.fragment,K),A($.$$.fragment,K),A(D.$$.fragment,K),L=!0)},o(K){P(u.$$.fragment,K),P($.$$.fragment,K),P(D.$$.fragment,K),L=!1},d(K){K&&k(t),z(u),Q&&Q.d(),z($),z(D),H=!1,st(j)}}}function $p(n){let e,t,i=n[4].length+"",s,l,o=n[4].length+"",r;return{c(){e=_("small"),t=R("Showing "),s=R(i),l=R(" of "),r=R(o),h(e,"class","block txt-hint txt-right m-t-sm")},m(a,u){w(a,e,u),p(e,t),p(e,s),p(e,l),p(e,r)},p(a,u){u&16&&i!==(i=a[4].length+"")&&me(s,i),u&16&&o!==(o=a[4].length+"")&&me(r,o)},d(a){a&&k(e)}}}function _T(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g,v,b,y,C,$,S,M,D,E,O,F,L,H,j,Q,ie,U,K,W,J,se,fe,ke,le,ue,Me=[],Z=new Map,be,x,G,_e,je,Ne;e=new Ps({}),c=new zo({}),c.$on("refresh",n[8]),y=new Vo({props:{value:n[1],placeholder:"Search filter, eg. email='test@example.com'",extraAutocompleteKeys:["email"]}}),y.$on("submit",n[10]);function qe(te){n[11](te)}let ae={class:"col-type-text",name:"id",$$slots:{default:[cT]},$$scope:{ctx:n}};n[2]!==void 0&&(ae.sort=n[2]),F=new rn({props:ae}),he.push(()=>Re(F,"sort",qe));function re(te){n[12](te)}let ve={class:"col-type-email col-field-email",name:"email",$$slots:{default:[dT]},$$scope:{ctx:n}};n[2]!==void 0&&(ve.sort=n[2]),j=new rn({props:ve}),he.push(()=>Re(j,"sort",re));function Je(te){n[13](te)}let nt={class:"col-type-date col-field-created",name:"created",$$slots:{default:[hT]},$$scope:{ctx:n}};n[2]!==void 0&&(nt.sort=n[2]),U=new rn({props:nt}),he.push(()=>Re(U,"sort",Je));function ut(te){n[14](te)}let ot={class:"col-type-date col-field-updated",name:"updated",$$slots:{default:[pT]},$$scope:{ctx:n}};n[2]!==void 0&&(ot.sort=n[2]),J=new rn({props:ot}),he.push(()=>Re(J,"sort",ut));let Xe=n[4];const ge=te=>te[23].id;for(let te=0;te<Xe.length;te+=1){let ye=vp(n,Xe,te),Ke=ge(ye);Z.set(Ke,Me[te]=Sp(Ke,ye))}let pe=null;Xe.length||(pe=yp(n));let Ve=n[4].length&&$p(n),mt={};return G=new fT({props:mt}),n[18](G),G.$on("save",n[19]),G.$on("delete",n[20]),{c(){B(e.$$.fragment),t=T(),i=_("main"),s=_("header"),l=_("nav"),o=_("div"),o.textContent="Settings",r=T(),a=_("div"),u=R(n[6]),f=T(),B(c.$$.fragment),d=T(),m=_("div"),g=T(),v=_("button"),v.innerHTML=`<i class="ri-add-line"></i>
<span class="txt">New admin</span>`,b=T(),B(y.$$.fragment),C=T(),$=_("div"),S=_("table"),M=_("thead"),D=_("tr"),E=_("th"),O=T(),B(F.$$.fragment),H=T(),B(j.$$.fragment),ie=T(),B(U.$$.fragment),W=T(),B(J.$$.fragment),fe=T(),ke=_("th"),le=T(),ue=_("tbody");for(let te=0;te<Me.length;te+=1)Me[te].c();pe&&pe.c(),be=T(),Ve&&Ve.c(),x=T(),B(G.$$.fragment),h(o,"class","breadcrumb-item"),h(a,"class","breadcrumb-item"),h(l,"class","breadcrumbs"),h(m,"class","flex-fill"),h(v,"type","button"),h(v,"class","btn btn-expanded"),h(s,"class","page-header"),h(E,"class","min-width"),h(ke,"class","col-type-action min-width"),h(S,"class","table"),ee(S,"table-loading",n[5]),h($,"class","table-wrapper"),h(i,"class","page-wrapper")},m(te,ye){V(e,te,ye),w(te,t,ye),w(te,i,ye),p(i,s),p(s,l),p(l,o),p(l,r),p(l,a),p(a,u),p(s,f),V(c,s,null),p(s,d),p(s,m),p(s,g),p(s,v),p(i,b),V(y,i,null),p(i,C),p(i,$),p($,S),p(S,M),p(M,D),p(D,E),p(D,O),V(F,D,null),p(D,H),V(j,D,null),p(D,ie),V(U,D,null),p(D,W),V(J,D,null),p(D,fe),p(D,ke),p(S,le),p(S,ue);for(let Ke=0;Ke<Me.length;Ke+=1)Me[Ke].m(ue,null);pe&&pe.m(ue,null),p(i,be),Ve&&Ve.m(i,null),w(te,x,ye),V(G,te,ye),_e=!0,je||(Ne=X(v,"click",n[9]),je=!0)},p(te,[ye]){(!_e||ye&64)&&me(u,te[6]);const Ke={};ye&2&&(Ke.value=te[1]),y.$set(Ke);const ft={};ye&67108864&&(ft.$$scope={dirty:ye,ctx:te}),!L&&ye&4&&(L=!0,ft.sort=te[2],He(()=>L=!1)),F.$set(ft);const St={};ye&67108864&&(St.$$scope={dirty:ye,ctx:te}),!Q&&ye&4&&(Q=!0,St.sort=te[2],He(()=>Q=!1)),j.$set(St);const $t={};ye&67108864&&($t.$$scope={dirty:ye,ctx:te}),!K&&ye&4&&(K=!0,$t.sort=te[2],He(()=>K=!1)),U.$set($t);const Nt={};ye&67108864&&(Nt.$$scope={dirty:ye,ctx:te}),!se&&ye&4&&(se=!0,Nt.sort=te[2],He(()=>se=!1)),J.$set(Nt),ye&186&&(Xe=te[4],De(),Me=dt(Me,ye,ge,1,te,Xe,Z,ue,Bt,Sp,null,vp),Oe(),!Xe.length&&pe?pe.p(te,ye):Xe.length?pe&&(pe.d(1),pe=null):(pe=yp(te),pe.c(),pe.m(ue,null))),ye&32&&ee(S,"table-loading",te[5]),te[4].length?Ve?Ve.p(te,ye):(Ve=$p(te),Ve.c(),Ve.m(i,null)):Ve&&(Ve.d(1),Ve=null);const Ft={};G.$set(Ft)},i(te){if(!_e){A(e.$$.fragment,te),A(c.$$.fragment,te),A(y.$$.fragment,te),A(F.$$.fragment,te),A(j.$$.fragment,te),A(U.$$.fragment,te),A(J.$$.fragment,te);for(let ye=0;ye<Xe.length;ye+=1)A(Me[ye]);A(G.$$.fragment,te),_e=!0}},o(te){P(e.$$.fragment,te),P(c.$$.fragment,te),P(y.$$.fragment,te),P(F.$$.fragment,te),P(j.$$.fragment,te),P(U.$$.fragment,te),P(J.$$.fragment,te);for(let ye=0;ye<Me.length;ye+=1)P(Me[ye]);P(G.$$.fragment,te),_e=!1},d(te){z(e,te),te&&k(t),te&&k(i),z(c),z(y),z(F),z(j),z(U),z(J);for(let ye=0;ye<Me.length;ye+=1)Me[ye].d();pe&&pe.d(),Ve&&Ve.d(),te&&k(x),n[18](null),z(G,te),je=!1,Ne()}}}function bT(n,e,t){var L;let i,s;qt(n,nn,H=>t(6,i=H)),qt(n,ba,H=>t(7,s=H));const l=Y.getQueryParams((L=window.location)==null?void 0:L.href);wn(nn,i="Admins",i);let o,r=[],a=!1,u=l.filter||"",f=l.sort||"-created";function c(){return t(5,a=!0),t(4,r=[]),Se.Admins.getFullList(100,{sort:f||"-created",filter:u}).then(H=>{t(4,r=H),t(5,a=!1)}).catch(H=>{H!=null&&H.isAbort||(t(5,a=!1),console.warn(H),d(),Se.errorResponseHandler(H,!1))})}function d(){t(4,r=[])}const m=()=>c(),g=()=>o==null?void 0:o.show(),v=H=>t(1,u=H.detail);function b(H){f=H,t(2,f)}function y(H){f=H,t(2,f)}function C(H){f=H,t(2,f)}function $(H){f=H,t(2,f)}const S=H=>o==null?void 0:o.show(H),M=(H,j)=>{(j.code==="Enter"||j.code==="Space")&&(j.preventDefault(),o==null||o.show(H))},D=()=>t(1,u="");function E(H){he[H?"unshift":"push"](()=>{o=H,t(3,o)})}const O=()=>c(),F=()=>c();return n.$$.update=()=>{n.$$.dirty&6&&f!==-1&&u!==-1&&(Y.replaceClientQueryParams({filter:u,sort:f}),c())},[c,u,f,o,r,a,i,s,m,g,v,b,y,C,$,S,M,D,E,O,F]}class vT extends Fe{constructor(e){super(),Le(this,e,bT,_T,Pe,{loadAdmins:0})}get loadAdmins(){return this.$$.ctx[0]}}function yT(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Email"),s=T(),l=_("input"),h(e,"for",i=n[7]),h(l,"type","email"),h(l,"id",o=n[7]),l.required=!0,l.autofocus=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0]),l.focus(),r||(a=X(l,"input",n[4]),r=!0)},p(u,f){f&128&&i!==(i=u[7])&&h(e,"for",i),f&128&&o!==(o=u[7])&&h(l,"id",o),f&1&&l.value!==u[0]&&$e(l,u[0])},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function kT(n){let e,t,i,s,l,o,r,a,u,f,c;return{c(){e=_("label"),t=R("Password"),s=T(),l=_("input"),r=T(),a=_("div"),u=_("a"),u.textContent="Forgotten password?",h(e,"for",i=n[7]),h(l,"type","password"),h(l,"id",o=n[7]),l.required=!0,h(u,"href","/request-password-reset"),h(u,"class","link-hint"),h(a,"class","help-block")},m(d,m){w(d,e,m),p(e,t),w(d,s,m),w(d,l,m),$e(l,n[1]),w(d,r,m),w(d,a,m),p(a,u),f||(c=[X(l,"input",n[5]),et(Tn.call(null,u))],f=!0)},p(d,m){m&128&&i!==(i=d[7])&&h(e,"for",i),m&128&&o!==(o=d[7])&&h(l,"id",o),m&2&&l.value!==d[1]&&$e(l,d[1])},d(d){d&&k(e),d&&k(s),d&&k(l),d&&k(r),d&&k(a),f=!1,st(c)}}}function wT(n){let e,t,i,s,l,o,r,a,u,f,c;return s=new Ie({props:{class:"form-field required",name:"email",$$slots:{default:[yT,({uniqueId:d})=>({7:d}),({uniqueId:d})=>d?128:0]},$$scope:{ctx:n}}}),o=new Ie({props:{class:"foLine truncated
<i class="ri-arrow-right-line"></i>`,h(t,"class","content txt-center m-b-base"),h(a,"type","submit"),h(a,"class","btn btn-lg btn-block btn-next"),ee(a,"btn-disabled",n[2]),ee(a,"btn-loading",n[2]),h(e,"class","block")},m(d,m){w(d,e,m),p(e,t),p(e,i),V(s,e,null),p(e,l),V(o,e,null),p(e,r),p(e,a),u=!0,f||(c=X(e,"submit",Qt(n[3])),f=!0)},p(d,m){const g={};m&385&&(g.$$scope={dirty:m,ctx:d}),s.$set(g);const v={};m&386&&(v.$$scope={dirty:m,ctx:d}),o.$set(v),m&4&&ee(a,"btn-disabled",d[2]),m&4&&ee(a,"btn-loading",d[2])},i(d){u||(A(s.$$.fragment,d),A(o.$$.fragment,d),u=!0)},o(d){P(s.$$.fragment,d),P(o.$$.fragment,d),u=!1},d(d){d&&k(e),z(s),z(o),f=!1,c()}}}function ST(n){let e,t;return e=new fg({props:{$$slots:{default:[wT]},$$scope:{ctx:n}}}),{c(){B(e.$$.fragment)},m(i,s){V(e,i,s),t=!0},p(i,[s]){const l={};s&263&&(l.$$scope={dirty:s,ctx:i}),e.$set(l)},i(i){t||(A(e.$$.fragment,i),t=!0)},o(i){P(e.$$.fragment,i),t=!1},d(i){z(e,i)}}}function $T(n,e,t){var f;const i=Y.getQueryParams((f=window.location)==null?void 0:f.href);let s=i.demoEmail||"",l=i.demoPassword||"",o=!1;function r(){if(!o)return t(2,o=!0),Se.Admins.authViaEmail(s,l).then(()=>{Ts("/")}).catch(()=>{lg("Invalid login credentials.")}).finally(()=>{t(2,o=!1)})}function a(){s=this.value,t(0,s)}function u(){l=this.value,t(1,l)}return[s,l,o,r,a,u]}class CT extends Fe{constructor(e){super(),Le(this,e,$T,ST,Pe,{})}}function MT(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g,v,b,y,C;return i=new Ie({props:{class:"form-field required",name:"meta.appName",$$slots:{default:[DT,({uniqueId:$})=>({14:$}),({uniqueId:$})=>$?16384:0]},$$scope:{ctx:n}}}),o=new Ie({props:{class:"form-field required",name:"meta.appUrl",$$slots:{default:[OT,({uniqueId:$})=>({14:$}),({uniqueId:$})=>$?16384:0]},$$scope:{ctx:n}}}),a=new Ie({props:{class:"form-field required",name:"logs.maxDays",$$slots:{default:[ET,({uniqueId:$})=>({14:$}),({uniqueId:$})=>$?16384:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=T(),l=_("div"),B(o.$$.fragment),r=T(),B(a.$$.fragment),u=T(),f=_("div"),c=_("div"),d=T(),m=_("button"),g=_("span"),g.textContent="Save changes",h(t,"class","col-lg-6"),h(l,"class","col-lg-6"),h(c,"class","flex-fill"),h(g,"class","txt"),h(m,"type","submit"),h(m,"class","btn btn-expanded"),m.disabled=v=!n[3]||n[2],ee(m,"btn-loading",n[2]),h(f,"class","col-lg-12 flex"),h(e,"class","grid")},m($,S){w($,e,S),p(e,t),V(i,t,null),p(e,s),p(e,l),V(o,l,null),p(e,r),V(a,e,null),p(e,u),p(e,f),p(f,c),p(f,d),p(f,m),p(m,g),b=!0,y||(C=X(m,"click",n[9]),y=!0)},p($,S){const M={};S&49153&&(M.$$scope={dirty:S,ctx:$}),i.$set(M);const D={};S&49153&&(D.$$scope={dirty:S,ctx:$}),o.$set(D);const E={};S&49153&&(E.$$scope={dirty:S,ctx:$}),a.$set(E),(!b||S&12&&v!==(v=!$[3]||$[2]))&&(m.disabled=v),S&4&&ee(m,"btn-loading",$[2])},i($){b||(A(i.$$.fragment,$),A(o.$$.fragment,$),A(a.$$.fragment,$),b=!0)},o($){P(i.$$.fragment,$),P(o.$$.fragment,$),P(a.$$.fragment,$),b=!1},d($){$&&k(e),z(i),z(o),z(a),y=!1,C()}}}function TT(n){let e;return{c(){e=_("div"),h(e,"class","loader")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function DT(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Application name"),s=T(),l=_("input"),h(e,"for",i=n[14]),h(l,"type","text"),h(l,"id",o=n[14]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].meta.appName),r||(a=X(l,"input",n[6]),r=!0)},p(u,f){f&16384&&i!==(i=u[14])&&h(e,"for",i),f&16384&&o!==(o=u[14])&&h(l,"id",o),f&1&&l.value!==u[0].meta.appName&&$e(l,u[0].meta.appName)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function OT(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Application url"),s=T(),l=_("input"),h(e,"for",i=n[14]),h(l,"type","text"),h(l,"id",o=n[14]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].meta.appUrl),r||(a=X(l,"input",n[7]),r=!0)},p(u,f){f&16384&&i!==(i=u[14])&&h(e,"for",i),f&16384&&o!==(o=u[14])&&h(l,"id",o),f&1&&l.value!==u[0].meta.appUrl&&$e(l,u[0].meta.appUrl)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function ET(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Logs max days retention"),s=T(),l=_("input"),h(e,"for",i=n[14]),h(l,"type","number"),h(l,"id",o=n[14]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].logs.maxDays),r||(a=X(l,"input",n[8]),r=!0)},p(u,f){f&16384&&i!==(i=u[14])&&h(e,"for",i),f&16384&&o!==(o=u[14])&&h(l,"id",o),f&1&&It(l.value)!==u[0].logs.maxDays&&$e(l,u[0].logs.maxDays)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function AT(n){let e,t,i,s,l,o,r,a,u,f,c,d;e=new Ps({});const m=[TT,MT],g=[];function v(b,y){return b[1]?0:1}return a=v(n),u=g[a]=m[a](n),{c(){B(e.$$.fragment),t=T(),i=_("main"),s=_("header"),s.innerHTML=`<nav class="breadcrumbs"><div class="breadcrumb-item">Settings</div>
<div class="breadcrumb-item">Application</div></nav>`,l=T(),o=_("div"),r=_("form"),u.c(),h(s,"class","page-header"),h(r,"class","panel"),h(r,"autocomplete","off"),h(o,"class","wrapper"),h(i,"class","page-wrapper")},m(b,y){V(e,b,y),w(b,t,y),w(b,i,y),p(i,s),p(i,l),p(i,o),p(o,r),g[a].m(r,null),f=!0,c||(d=X(r,"submit",Qt(n[4])),c=!0)},p(b,[y]){let C=a;a=v(b),a===C?g[a].p(b,y):(De(),P(g[C],1,1,()=>{g[C]=null}),Oe(),u=g[a],u?u.p(b,y):(u=g[a]=m[a](b),u.c()),A(u,1),u.m(r,null))},i(b){f||(A(e.$$.fragment,b),A(u),f=!0)},o(b){P(e.$$.fragment,b),P(u),f=!1},d(b){z(e,b),b&&k(t),b&&k(i),g[a].d(),c=!1,d()}}}function PT(n,e,t){let i,s,l;qt(n,_o,y=>t(10,s=y)),qt(n,nn,y=>t(11,l=y)),wn(nn,l="Application settings",l);let o={},r=!1,a=!1,u="";f();async function f(){t(1,r=!0);try{const y=await Se.Settings.getAll()||{};d(y)}catch(y){Se.errorResponseHandler(y)}t(1,r=!1)}async function c(){if(!(a||!i)){t(2,a=!0);try{const y=await Se.Settings.update(Y.filterRedactedProps(o));d(y),_n("Successfully saved application settings.")}catch(y){Se.errorResponseHandler(y)}t(2,a=!1)}}function d(y={}){var C;wn(_o,s=(C=y==null?void 0:y.meta)==null?void 0:C.appName,s),t(0,o={meta:(y==null?void 0:y.meta)||{},logs:(y==null?void 0:y.logs)||{}}),t(5,u=JSON.stringify(o))}function m(){o.meta.appName=this.value,t(0,o)}function g(){o.meta.appUrl=this.value,t(0,o)}function v(){o.logs.maxDays=It(this.value),t(0,o)}const b=()=>c();return n.$$.update=()=>{n.$$.dirty&33&&t(3,i=u!=JSON.stringify(o))},[o,r,a,i,c,u,m,g,v,b]}class LT extends Fe{constructor(e){super(),Le(this,e,PT,AT,Pe,{})}}function FT(n){let e,t,i,s=[{type:"password"},{autocomplete:"new-password"},n[5]],l={};for(let o=0;o<s.length;o+=1)l=_t(l,s[o]);return{c(){e=_("input"),fi(e,l)},m(o,r){w(o,e,r),e.autofocus&&e.focus(),n[7](e),$e(e,n[0]),t||(i=X(e,"input",n[8]),t=!0)},p(o,r){fi(e,l=bn(s,[{type:"password"},{autocomplete:"new-password"},r&32&&o[5]])),r&1&&e.value!==o[0]&&$e(e,o[0])},d(o){o&&k(e),n[7](null),t=!1,i()}}}function IT(n){let e,t,i,s,l,o,r=[{readOnly:!0},{type:"text"},{placeholder:n[1]},n[5]],a={};for(let u=0;u<r.length;u+=1)a=_t(a,r[u]);return{c(){e=_("div"),t=_("button"),t.innerHTML='<i class="ri-key-line"></i>',i=T(),s=_("input"),h(t,"type","button"),h(t,"class","btn btn-secondary btn-circle"),h(e,"class","form-field-addon"),fi(s,a)},m(u,f){w(u,e,f),p(e,t),w(u,i,f),w(u,s,f),s.autofocus&&s.focus(),l||(o=[et(Et.call(null,t,{position:"left",text:"Set new value"})),X(t,"click",n[6])],l=!0)},p(u,f){fi(s,a=bn(r,[{readOnly:!0},{type:"text"},f&2&&{placeholder:u[1]},f&32&&u[5]]))},d(u){u&&k(e),u&&k(i),u&&k(s),l=!1,st(o)}}}function NT(n){let e;function t(l,o){return l[3]?IT:FT}let i=t(n),s=i(n);return{c(){s.c(),e=lt()},m(l,o){s.m(l,o),w(l,e,o)},p(l,[o]){i===(i=t(l))&&s?s.p(l,o):(s.d(1),s=i(l),s&&(s.c(),s.m(e.parentNode,e)))},i:oe,o:oe,d(l){s.d(l),l&&k(e)}}}function RT(n,e,t){const i=["value","mask"];let s=tn(e,i),{value:l=""}=e,{mask:o="******"}=e,r,a=!1;async function u(){t(0,l=""),t(3,a=!1),await di(),r==null||r.focus()}const f=()=>u();function c(m){he[m?"unshift":"push"](()=>{r=m,t(2,r)})}function d(){l=this.value,t(0,l)}return n.$$set=m=>{e=_t(_t({},e),ci(m)),t(5,s=tn(e,i)),"value"in m&&t(0,l=m.value),"mask"in m&&t(1,o=m.mask)},n.$$.update=()=>{n.$$.dirty&3&&l===o&&t(3,a=!0)},[l,o,r,a,u,s,f,c,d]}class Wa extends Fe{constructor(e){super(),Le(this,e,RT,NT,Pe,{value:0,mask:1})}}function HT(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g,v,b,y,C,$,S,M,D,E,O,F,L,H,j,Q;i=new Ie({props:{class:"form-field required",name:"meta.senderName",$$slots:{default:[qT,({uniqueId:U})=>({23:U}),({uniqueId:U})=>U?8388608:0]},$$scope:{ctx:n}}}),o=new Ie({props:{class:"form-field required",name:"meta.senderAddress",$$slots:{default:[VT,({uniqueId:U})=>({23:U}),({uniqueId:U})=>U?8388608:0]},$$scope:{ctx:n}}}),a=new Ie({props:{class:"form-field required",name:"meta.userVerificationUrl",$$slots:{default:[zT,({uniqueId:U})=>({23:U}),({uniqueId:U})=>U?8388608:0]},$$scope:{ctx:n}}}),f=new Ie({props:{class:"form-field required",name:"meta.userResetPasswordUrl",$$slots:{default:[BT,({uniqueId:U})=>({23:U}),({uniqueId:U})=>U?8388608:0]},$$scope:{ctx:n}}}),d=new Ie({props:{class:"form-field required",name:"meta.userConfirmEmailChangeUrl",$$slots:{default:[UT,({uniqueId:U})=>({23:U}),({uniqueId:U})=>U?8388608:0]},$$scope:{ctx:n}}}),C=new Ie({props:{class:"form-field form-field-toggle",$$slots:{default:[WT,({uniqueId:U})=>({23:U}),({uniqueId:U})=>U?8388608:0]},$$scope:{ctx:n}}});let ie=n[0].smtp.enabled&&Cp(n);return{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=T(),l=_("div"),B(o.$$.fragment),r=T(),B(a.$$.fragment),u=T(),B(f.$$.fragment),c=T(),B(d.$$.fragment),m=T(),g=_("hr"),v=T(),b=_("div"),b.innerHTML=`<p>By default PocketBase uses the OS <code>sendmail</code> command for sending emails.
<br/>
<strong class="txt-bold">For better emails deliverability it is recommended to enable the SMTP settings
below.</strong></p>`,y=T(),B(C.$$.fragment),$=T(),ie&&ie.c(),S=T(),M=_("div"),D=_("div"),E=T(),O=_("button"),F=_("span"),F.textContent="Save changes",h(t,"class","col-lg-6"),h(l,"class","col-lg-6"),h(e,"class","grid"),h(b,"class","content m-b-sm"),h(D,"class","flex-fill"),h(F,"class","txt"),h(O,"type","submit"),h(O,"class","btn btn-expanded"),O.disabled=L=!n[3]||n[2],ee(O,"btn-loading",n[2]),h(M,"class","flex")},m(U,K){w(U,e,K),p(e,t),V(i,t,null),p(e,s),p(e,l),V(o,l,null),p(e,r),V(a,e,null),p(e,u),V(f,e,null),p(e,c),V(d,e,null),w(U,m,K),w(U,g,K),w(U,v,K),w(U,b,K),w(U,y,K),V(C,U,K),w(U,$,K),ie&&ie.m(U,K),w(U,S,K),w(U,M,K),p(M,D),p(M,E),p(M,O),p(O,F),H=!0,j||(Q=X(O,"click",n[19]),j=!0)},p(U,K){const W={};K&25165825&&(W.$$scope={dirty:K,ctx:U}),i.$set(W);const J={};K&25165825&&(J.$$scope={dirty:K,ctx:U}),o.$set(J);const se={};K&25165825&&(se.$$scope={dirty:K,ctx:U}),a.$set(se);const fe={};K&25165825&&(fe.$$scope={dirty:K,ctx:U}),f.$set(fe);const ke={};K&25165825&&(ke.$$scope={dirty:K,ctx:U}),d.$set(ke);const le={};K&25165825&&(le.$$scope={dirty:K,ctx:U}),C.$set(le),U[0].smtp.enabled?ie?(ie.p(U,K),K&1&&A(ie,1)):(ie=Cp(U),ie.c(),A(ie,1),ie.m(S.parentNode,S)):ie&&(De(),P(ie,1,1,()=>{ie=null}),Oe()),(!H||K&12&&L!==(L=!U[3]||U[2]))&&(O.disabled=L),K&4&&ee(O,"btn-loading",U[2])},i(U){H||(A(i.$$.fragment,U),A(o.$$.fragment,U),A(a.$$.fragment,U),A(f.$$.fragment,U),A(d.$$.fragment,U),A(C.$$.fragment,U),A(ie),H=!0)},o(U){P(i.$$.fragment,U),P(o.$$.fragment,U),P(a.$$.fragment,U),P(f.$$.fragment,U),P(d.$$.fragment,U),P(C.$$.fragment,U),P(ie),H=!1},d(U){U&&k(e),z(i),z(o),z(a),z(f),z(d),U&&k(m),U&&k(g),U&&k(v),U&&k(b),U&&k(y),z(C,U),U&&k($),ie&&ie.d(U),U&&k(S),U&&k(M),j=!1,Q()}}}function jT(n){let e;return{c(){e=_("div"),h(e,"class","loader")},m(t,i){w(t,e,i)},p:oe,i:oe,o:oe,d(t){t&&k(e)}}}function qT(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Sender name"),s=T(),l=_("input"),h(e,"for",i=n[23]),h(l,"type","text"),h(l,"id",o=n[23]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].meta.senderName),r||(a=X(l,"input",n[8]),r=!0)},p(u,f){f&8388608&&i!==(i=u[23])&&h(e,"for",i),f&8388608&&o!==(o=u[23])&&h(l,"id",o),f&1&&l.value!==u[0].meta.senderName&&$e(l,u[0].meta.senderName)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function VT(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Sender address"),s=T(),l=_("input"),h(e,"for",i=n[23]),h(l,"type","email"),h(l,"id",o=n[23]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].meta.senderAddress),r||(a=X(l,"input",n[9]),r=!0)},p(u,f){f&8388608&&i!==(i=u[23])&&h(e,"for",i),f&8388608&&o!==(o=u[23])&&h(l,"id",o),f&1&&l.value!==u[0].meta.senderAddress&&$e(l,u[0].meta.senderAddress)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function zT(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=_("label"),t=R("User verification page url"),s=T(),l=_("input"),r=T(),a=_("div"),a.innerHTML=`Used in the user verification email. Available placeholder parameters:
<code>%APP_URL%</code>, <code>%TOKEN%</code>.`,h(e,"for",i=n[23]),h(l,"type","text"),h(l,"id",o=n[23]),l.required=!0,h(a,"class","help-block")},m(c,d){w(c,e,d),p(e,t),w(c,s,d),w(c,l,d),$e(l,n[0].meta.userVerificationUrl),w(c,r,d),w(c,a,d),u||(f=X(l,"input",n[10]),u=!0)},p(c,d){d&8388608&&i!==(i=c[23])&&h(e,"for",i),d&8388608&&o!==(o=c[23])&&h(l,"id",o),d&1&&l.value!==c[0].meta.userVerificationUrl&&$e(l,c[0].meta.userVerificationUrl)},d(c){c&&k(e),c&&k(s),c&&k(l),c&&k(r),c&&k(a),u=!1,f()}}}function BT(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=_("label"),t=R("User reset password page url"),s=T(),l=_("input"),r=T(),a=_("div"),a.innerHTML=`Used in the user password reset email. Available placeholder parameters:
<code>%APP_URL%</code>, <code>%TOKEN%</code>.`,h(e,"for",i=n[23]),h(l,"type","text"),h(l,"id",o=n[23]),l.required=!0,h(a,"class","help-block")},m(c,d){w(c,e,d),p(e,t),w(c,s,d),w(c,l,d),$e(l,n[0].meta.userResetPasswordUrl),w(c,r,d),w(c,a,d),u||(f=X(l,"input",n[11]),u=!0)},p(c,d){d&8388608&&i!==(i=c[23])&&h(e,"for",i),d&8388608&&o!==(o=c[23])&&h(l,"id",o),d&1&&l.value!==c[0].meta.userResetPasswordUrl&&$e(l,c[0].meta.userResetPasswordUrl)},d(c){c&&k(e),c&&k(s),c&&k(l),c&&k(r),c&&k(a),u=!1,f()}}}function UT(n){let e,t,i,s,l,o,r,a,u,f;return{c(){e=_("label"),t=R("User confirm email change page url"),s=T(),l=_("input"),r=T(),a=_("div"),a.innerHTML=`Used in the user email change confirmation email. Available placeholder
parameters:
<code>%APP_URL%</code>, <code>%TOKEN%</code>.`,h(e,"for",i=n[23]),h(l,"type","text"),h(l,"id",o=n[23]),l.required=!0,h(a,"class","help-block")},m(c,d){w(c,e,d),p(e,t),w(c,s,d),w(c,l,d),$e(l,n[0].meta.userConfirmEmailChangeUrl),w(c,r,d),w(c,a,d),u||(f=X(l,"input",n[12]),u=!0)},p(c,d){d&8388608&&i!==(i=c[23])&&h(e,"for",i),d&8388608&&o!==(o=c[23])&&h(l,"id",o),d&1&&l.value!==c[0].meta.userConfirmEmailChangeUrl&&$e(l,c[0].meta.userConfirmEmailChangeUrl)},d(c){c&&k(e),c&&k(s),c&&k(l),c&&k(r),c&&k(a),u=!1,f()}}}function WT(n){let e,t,i,s,l,o,r,a;return{c(){e=_("input"),i=T(),s=_("label"),l=R("Use SMTP mail server"),h(e,"type","checkbox"),h(e,"id",t=n[23]),e.required=!0,h(s,"for",o=n[23])},m(u,f){w(u,e,f),e.checked=n[0].smtp.enabled,w(u,i,f),w(u,s,f),p(s,l),r||(a=X(e,"change",n[13]),r=!0)},p(u,f){f&8388608&&t!==(t=u[23])&&h(e,"id",t),f&1&&(e.checked=u[0].smtp.enabled),f&8388608&&o!==(o=u[23])&&h(s,"for",o)},d(u){u&&k(e),u&&k(i),u&&k(s),r=!1,a()}}}function Cp(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g,v,b,y,C,$;return i=new Ie({props:{class:"form-field required",name:"smtp.host",$$slots:{default:[YT,({uniqueId:S})=>({23:S}),({uniqueId:S})=>S?8388608:0]},$$scope:{ctx:n}}}),o=new Ie({props:{class:"form-field required",name:"smtp.port",$$slots:{default:[KT,({uniqueId:S})=>({23:S}),({uniqueId:S})=>S?8388608:0]},$$scope:{ctx:n}}}),u=new Ie({props:{class:"form-field required",name:"smtp.tls",$$slots:{default:[ZT,({uniqueId:S})=>({23:S}),({uniqueId:S})=>S?8388608:0]},$$scope:{ctx:n}}}),d=new Ie({props:{class:"form-field",name:"smtp.username",$$slots:{default:[JT,({uniqueId:S})=>({23:S}),({uniqueId:S})=>S?8388608:0]},$$scope:{ctx:n}}}),v=new Ie({props:{class:"form-field",name:"smtp.password",$$slots:{default:[GT,({uniqueId:S})=>({23:S}),({uniqueId:S})=>S?8388608:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=T(),l=_("div"),B(o.$$.fragment),r=T(),a=_("div"),B(u.$$.fragment),f=T(),c=_("div"),B(d.$$.fragment),m=T(),g=_("div"),B(v.$$.fragment),b=T(),y=_("div"),h(t,"class","col-lg-6"),h(l,"class","col-lg-3"),h(a,"class","col-lg-3"),h(c,"class","col-lg-6"),h(g,"class","col-lg-6"),h(y,"class","col-lg-12"),h(e,"class","grid")},m(S,M){w(S,e,M),p(e,t),V(i,t,null),p(e,s),p(e,l),V(o,l,null),p(e,r),p(e,a),V(u,a,null),p(e,f),p(e,c),V(d,c,null),p(e,m),p(e,g),V(v,g,null),p(e,b),p(e,y),$=!0},p(S,M){const D={};M&25165825&&(D.$$scope={dirty:M,ctx:S}),i.$set(D);const E={};M&25165825&&(E.$$scope={dirty:M,ctx:S}),o.$set(E);const O={};M&25165825&&(O.$$scope={dirty:M,ctx:S}),u.$set(O);const F={};M&25165825&&(F.$$scope={dirty:M,ctx:S}),d.$set(F);const L={};M&25165825&&(L.$$scope={dirty:M,ctx:S}),v.$set(L)},i(S){$||(A(i.$$.fragment,S),A(o.$$.fragment,S),A(u.$$.fragment,S),A(d.$$.fragment,S),A(v.$$.fragment,S),S&&Lt(()=>{C||(C=at(e,on,{duration:150},!0)),C.run(1)}),$=!0)},o(S){P(i.$$.fragment,S),P(o.$$.fragment,S),P(u.$$.fragment,S),P(d.$$.fragment,S),P(v.$$.fragment,S),S&&(C||(C=at(e,on,{duration:150},!1)),C.run(0)),$=!1},d(S){S&&k(e),z(i),z(o),z(u),z(d),z(v),S&&C&&C.end()}}}function YT(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("SMTP server host"),s=T(),l=_("input"),h(e,"for",i=n[23]),h(l,"type","text"),h(l,"id",o=n[23]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].smtp.host),r||(a=X(l,"input",n[14]),r=!0)},p(u,f){f&8388608&&i!==(i=u[23])&&h(e,"for",i),f&8388608&&o!==(o=u[23])&&h(l,"id",o),f&1&&l.value!==u[0].smtp.host&&$e(l,u[0].smtp.host)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function KT(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Port"),s=T(),l=_("input"),h(e,"for",i=n[23]),h(l,"type","number"),h(l,"id",o=n[23]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].smtp.port),r||(a=X(l,"input",n[15]),r=!0)},p(u,f){f&8388608&&i!==(i=u[23])&&h(e,"for",i),f&8388608&&o!==(o=u[23])&&h(l,"id",o),f&1&&It(l.value)!==u[0].smtp.port&&$e(l,u[0].smtp.port)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function ZT(n){let e,t,i,s,l,o,r;function a(f){n[16](f)}let u={id:n[23],items:n[5]};return n[0].smtp.tls!==void 0&&(u.keyOfSelected=n[0].smtp.tls),l=new us({props:u}),he.push(()=>Re(l,"keyOfSelected",a)),{c(){e=_("label"),t=R("TLS Encryption"),s=T(),B(l.$$.fragment),h(e,"for",i=n[23])},m(f,c){w(f,e,c),p(e,t),w(f,s,c),V(l,f,c),r=!0},p(f,c){(!r||c&8388608&&i!==(i=f[23]))&&h(e,"for",i);const d={};c&8388608&&(d.id=f[23]),!o&&c&1&&(o=!0,d.keyOfSelected=f[0].smtp.tls,He(()=>o=!1)),l.$set(d)},i(f){r||(A(l.$$.fragment,f),r=!0)},o(f){P(l.$$.fragment,f),r=!1},d(f){f&&k(e),f&&k(s),z(l,f)}}}function JT(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Username"),s=T(),l=_("input"),h(e,"for",i=n[23]),h(l,"type","text"),h(l,"id",o=n[23])},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].smtp.username),r||(a=X(l,"input",n[17]),r=!0)},p(u,f){f&8388608&&i!==(i=u[23])&&h(e,"for",i),f&8388608&&o!==(o=u[23])&&h(l,"id",o),f&1&&l.value!==u[0].smtp.username&&$e(l,u[0].smtp.username)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function GT(n){let e,t,i,s,l,o,r;function a(f){n[18](f)}let u={id:Line truncated
the
`),r=_("strong"),u=R(a),f=R(`
to the
`),c=_("strong"),m=R(d),g=R(`.
`),v=_("br"),b=R(`
There are numerous command line tools that can help you, such as:
`),y=_("a"),y.textContent=`rclone
`,C=R(`,
`),$=_("a"),$.textContent=`s5cmd
`,S=R(", etc."),M=T(),D=_("div"),h(i,"class","icon"),h(y,"href","https://github.com/rclone/rclone"),h(y,"target","_blank"),h(y,"rel","noopener"),h(y,"class","txt-bold"),h($,"href","https://github.com/peak/s5cmd"),h($,"target","_blank"),h($,"rel","noopener"),h($,"class","txt-bold"),h(l,"class","content"),h(t,"class","alert alert-warning m-0"),h(D,"class","clearfix m-t-base")},m(F,L){w(F,e,L),p(e,t),p(t,i),p(t,s),p(t,l),p(l,o),p(l,r),p(r,u),p(l,f),p(l,c),p(c,m),p(l,g),p(l,v),p(l,b),p(l,y),p(l,C),p(l,$),p(l,S),p(e,M),p(e,D),O=!0},p(F,L){(!O||L&8)&&a!==(a=F[3]?"S3 storage":"local file system")&&me(u,a),(!O||L&1)&&d!==(d=F[0].enabled?"S3 storage":"local file system")&&me(m,d)},i(F){O||(F&&Lt(()=>{E||(E=at(e,on,{duration:150},!0)),E.run(1)}),O=!0)},o(F){F&&(E||(E=at(e,on,{duration:150},!1)),E.run(0)),O=!1},d(F){F&&k(e),F&&E&&E.end()}}}function Tp(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g,v,b,y,C,$,S,M,D;return i=new Ie({props:{class:"form-field required",name:"s3.endpoint",$$slots:{default:[iD,({uniqueId:E})=>({19:E}),({uniqueId:E})=>E?524288:0]},$$scope:{ctx:n}}}),o=new Ie({props:{class:"form-field required",name:"s3.bucket",$$slots:{default:[sD,({uniqueId:E})=>({19:E}),({uniqueId:E})=>E?524288:0]},$$scope:{ctx:n}}}),u=new Ie({props:{class:"form-field required",name:"s3.region",$$slots:{default:[lD,({uniqueId:E})=>({19:E}),({uniqueId:E})=>E?524288:0]},$$scope:{ctx:n}}}),d=new Ie({props:{class:"form-field required",name:"s3.accessKey",$$slots:{default:[oD,({uniqueId:E})=>({19:E}),({uniqueId:E})=>E?524288:0]},$$scope:{ctx:n}}}),v=new Ie({props:{class:"form-field required",name:"s3.secret",$$slots:{default:[rD,({uniqueId:E})=>({19:E}),({uniqueId:E})=>E?524288:0]},$$scope:{ctx:n}}}),C=new Ie({props:{class:"form-field",name:"s3.forcePathStyle",$$slots:{default:[aD,({uniqueId:E})=>({19:E}),({uniqueId:E})=>E?524288:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=T(),l=_("div"),B(o.$$.fragment),r=T(),a=_("div"),B(u.$$.fragment),f=T(),c=_("div"),B(d.$$.fragment),m=T(),g=_("div"),B(v.$$.fragment),b=T(),y=_("div"),B(C.$$.fragment),$=T(),S=_("div"),h(t,"class","col-lg-12"),h(l,"class","col-lg-6"),h(a,"class","col-lg-6"),h(c,"class","col-lg-6"),h(g,"class","col-lg-6"),h(y,"class","col-lg-12"),h(S,"class","col-lg-12"),h(e,"class","grid")},m(E,O){w(E,e,O),p(e,t),V(i,t,null),p(e,s),p(e,l),V(o,l,null),p(e,r),p(e,a),V(u,a,null),p(e,f),p(e,c),V(d,c,null),p(e,m),p(e,g),V(v,g,null),p(e,b),p(e,y),V(C,y,null),p(e,$),p(e,S),D=!0},p(E,O){const F={};O&1572865&&(F.$$scope={dirty:O,ctx:E}),i.$set(F);const L={};O&1572865&&(L.$$scope={dirty:O,ctx:E}),o.$set(L);const H={};O&1572865&&(H.$$scope={dirty:O,ctx:E}),u.$set(H);const j={};O&1572865&&(j.$$scope={dirty:O,ctx:E}),d.$set(j);const Q={};O&1572865&&(Q.$$scope={dirty:O,ctx:E}),v.$set(Q);const ie={};O&1572865&&(ie.$$scope={dirty:O,ctx:E}),C.$set(ie)},i(E){D||(A(i.$$.fragment,E),A(o.$$.fragment,E),A(u.$$.fragment,E),A(d.$$.fragment,E),A(v.$$.fragment,E),A(C.$$.fragment,E),E&&Lt(()=>{M||(M=at(e,on,{duration:150},!0)),M.run(1)}),D=!0)},o(E){P(i.$$.fragment,E),P(o.$$.fragment,E),P(u.$$.fragment,E),P(d.$$.fragment,E),P(v.$$.fragment,E),P(C.$$.fragment,E),E&&(M||(M=at(e,on,{duration:150},!1)),M.run(0)),D=!1},d(E){E&&k(e),z(i),z(o),z(u),z(d),z(v),z(C),E&&M&&M.end()}}}function iD(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Endpoint"),s=T(),l=_("input"),h(e,"for",i=n[19]),h(l,"type","text"),h(l,"id",o=n[19]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].endpoint),r||(a=X(l,"input",n[9]),r=!0)},p(u,f){f&524288&&i!==(i=u[19])&&h(e,"for",i),f&524288&&o!==(o=u[19])&&h(l,"id",o),f&1&&l.value!==u[0].endpoint&&$e(l,u[0].endpoint)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function sD(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Bucket"),s=T(),l=_("input"),h(e,"for",i=n[19]),h(l,"type","text"),h(l,"id",o=n[19]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].bucket),r||(a=X(l,"input",n[10]),r=!0)},p(u,f){f&524288&&i!==(i=u[19])&&h(e,"for",i),f&524288&&o!==(o=u[19])&&h(l,"id",o),f&1&&l.value!==u[0].bucket&&$e(l,u[0].bucket)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function lD(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Region"),s=T(),l=_("input"),h(e,"for",i=n[19]),h(l,"type","text"),h(l,"id",o=n[19]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].region),r||(a=X(l,"input",n[11]),r=!0)},p(u,f){f&524288&&i!==(i=u[19])&&h(e,"for",i),f&524288&&o!==(o=u[19])&&h(l,"id",o),f&1&&l.value!==u[0].region&&$e(l,u[0].region)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function oD(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Access key"),s=T(),l=_("input"),h(e,"for",i=n[19]),h(l,"type","text"),h(l,"id",o=n[19]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].accessKey),r||(a=X(l,"input",n[12]),r=!0)},p(u,f){f&524288&&i!==(i=u[19])&&h(e,"for",i),f&524288&&o!==(o=u[19])&&h(l,"id",o),f&1&&l.value!==u[0].accessKey&&$e(l,u[0].accessKey)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}functio Line truncated
<p>If you have limited disk space, you could optionally connect to a S3 compatible storage.</p>`,g=T(),b.c(),h(o,"class","breadcrumb-item"),h(a,"class","breadcrumb-item"),h(l,"class","breadcrumbs"),h(s,"class","page-header"),h(m,"class","content txt-xl m-b-base"),h(d,"class","panel"),h(d,"autocomplete","off"),h(c,"class","wrapper"),h(i,"class","page-wrapper")},m(E,O){V(e,E,O),w(E,t,O),w(E,i,O),p(i,s),p(s,l),p(l,o),p(l,r),p(l,a),p(a,u),p(i,f),p(i,c),p(c,d),p(d,m),p(d,g),M[v].m(d,null),y=!0,C||($=X(d,"submit",Qt(n[16])),C=!0)},p(E,[O]){(!y||O&32)&&me(u,E[5]);let F=v;v=D(E),v===F?M[v].p(E,O):(De(),P(M[F],1,1,()=>{M[F]=null}),Oe(),b=M[v],b?b.p(E,O):(b=M[v]=S[v](E),b.c()),A(b,1),b.m(d,null))},i(E){y||(A(e.$$.fragment,E),A(b),y=!0)},o(E){P(e.$$.fragment,E),P(b),y=!1},d(E){z(e,E),E&&k(t),E&&k(i),M[v].d(),C=!1,$()}}}function fD(n,e,t){let i,s;qt(n,nn,D=>t(5,s=D)),wn(nn,s="Files storage",s);let l={},o=!1,r=!1,a="",u=!1;f();async function f(){t(1,o=!0);try{const D=await Se.Settings.getAll()||{};d(D)}catch(D){Se.errorResponseHandler(D)}t(1,o=!1)}async function c(){if(!(r||!i)){t(2,r=!0);try{const D=await Se.Settings.update(Y.filterRedactedProps({s3:l}));d(D),Ri({}),_n("Successfully saved Files storage settings.")}catch(D){Se.errorResponseHandler(D)}t(2,r=!1)}}function d(D={}){t(0,l=(D==null?void 0:D.s3)||{}),t(3,u=l.enabled),t(7,a=JSON.stringify(l))}function m(){l.enabled=this.checked,t(0,l)}function g(){l.endpoint=this.value,t(0,l)}function v(){l.bucket=this.value,t(0,l)}function b(){l.region=this.value,t(0,l)}function y(){l.accessKey=this.value,t(0,l)}function C(D){n.$$.not_equal(l.secret,D)&&(l.secret=D,t(0,l))}function $(){l.forcePathStyle=this.checked,t(0,l)}const S=()=>c(),M=()=>c();return n.$$.update=()=>{n.$$.dirty&129&&t(4,i=a!=JSON.stringify(l))},[l,o,r,u,i,s,c,a,m,g,v,b,y,C,$,S,M]}class cD extends Fe{constructor(e){super(),Le(this,e,fD,uD,Pe,{})}}function dD(n){let e,t,i,s,l,o,r,a;return{c(){e=_("input"),i=T(),s=_("label"),l=R("Enable"),h(e,"type","checkbox"),h(e,"id",t=n[16]),h(s,"for",o=n[16])},m(u,f){w(u,e,f),e.checked=n[0].enabled,w(u,i,f),w(u,s,f),p(s,l),r||(a=X(e,"change",n[8]),r=!0)},p(u,f){f&65536&&t!==(t=u[16])&&h(e,"id",t),f&1&&(e.checked=u[0].enabled),f&65536&&o!==(o=u[16])&&h(s,"for",o)},d(u){u&&k(e),u&&k(i),u&&k(s),r=!1,a()}}}function Dp(n){let e,t,i,s,l,o,r,a,u,f,c;return i=new Ie({props:{class:"form-field required",name:"emailPassword.minPasswordLength",$$slots:{default:[hD,({uniqueId:d})=>({16:d}),({uniqueId:d})=>d?65536:0]},$$scope:{ctx:n}}}),o=new Ie({props:{class:"form-field "+(Y.isEmpty(n[0].onlyDomains)?"":"disabled"),name:"emailPassword.exceptDomains",$$slots:{default:[pD,({uniqueId:d})=>({16:d}),({uniqueId:d})=>d?65536:0]},$$scope:{ctx:n}}}),u=new Ie({props:{class:"form-field "+(Y.isEmpty(n[0].exceptDomains)?"":"disabled"),name:"emailPassword.onlyDomains",$$slots:{default:[mD,({uniqueId:d})=>({16:d}),({uniqueId:d})=>d?65536:0]},$$scope:{ctx:n}}}),{c(){e=_("div"),t=_("div"),B(i.$$.fragment),s=T(),l=_("div"),B(o.$$.fragment),r=T(),a=_("div"),B(u.$$.fragment),h(t,"class","col-sm-12 m-t-sm"),h(l,"class","col-lg-6"),h(a,"class","col-lg-6"),h(e,"class","grid")},m(d,m){w(d,e,m),p(e,t),V(i,t,null),p(e,s),p(e,l),V(o,l,null),p(e,r),p(e,a),V(u,a,null),c=!0},p(d,m){const g={};m&196609&&(g.$$scope={dirty:m,ctx:d}),i.$set(g);const v={};m&1&&(v.class="form-field "+(Y.isEmpty(d[0].onlyDomains)?"":"disabled")),m&196609&&(v.$$scope={dirty:m,ctx:d}),o.$set(v);const b={};m&1&&(b.class="form-field "+(Y.isEmpty(d[0].exceptDomains)?"":"disabled")),m&196609&&(b.$$scope={dirty:m,ctx:d}),u.$set(b)},i(d){c||(A(i.$$.fragment,d),A(o.$$.fragment,d),A(u.$$.fragment,d),d&&Lt(()=>{f||(f=at(e,on,{duration:150},!0)),f.run(1)}),c=!0)},o(d){P(i.$$.fragment,d),P(o.$$.fragment,d),P(u.$$.fragment,d),d&&(f||(f=at(e,on,{duration:150},!1)),f.run(0)),c=!1},d(d){d&&k(e),z(i),z(o),z(u),d&&f&&f.end()}}}function hD(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Minimum password length"),s=T(),l=_("input"),h(e,"for",i=n[16]),h(l,"type","number"),h(l,"id",o=n[16]),l.required=!0,h(l,"min","5"),h(l,"max","200")},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].minPasswordLength),r||(a=X(l,"input",n[9]),r=!0)},p(u,f){f&65536&&i!==(i=u[16])&&h(e,"for",i),f&65536&&o!==(o=u[16])&&h(l,"id",o),f&1&&It(l.value)!==u[0].minPasswordLength&&$e(l,u[0].minPasswordLength)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function pD(n){let e,t,i,s,l,o,r,a,u,f,c,d,m;function g(b){n[10](b)}let v={id:n[16],disabled:!Y.isEmpty(n[0].onlyDomains)};return n[0].exceptDomains!==void 0&&(v.value=n[0].exceptDomains),r=new fs({props:v}),he.push(()=>Re(r,"value",g)),{c(){e=_("label"),t=_("span"),t.textContent="Except domains",i=T(),s=_("i"),o=T(),B(r.$$.fragment),u=T(),f=_("div"),f.textContent="Use comma as separator.",h(t,"class","txt"),h(s,"class","ri-information-line link-hint"),h(e,"for",l=n[16]),h(f,"class","help-block")},m(b,y){w(b,e,y),p(e,t),p(e,i),p(e,s),w(b,o,y),V(r,b,y),w(b,u,y),w(b,f,y),c=!0,d||(m=et(Et.call(null,s,{text:`Email domainsLine truncated
This field is disabled if "Only domains" is set.`,position:"top"})),d=!0)},p(b,y){(!c||y&65536&&l!==(l=b[16]))&&h(e,"for",l);const C={};y&65536&&(C.id=b[16]),y&1&&(C.disabled=!Y.isEmpty(b[0].onlyDomains)),!a&&y&1&&(a=!0,C.value=b[0].exceptDomains,He(()=>a=!1)),r.$set(C)},i(b){c||(A(r.$$.fragment,b),c=!0)},o(b){P(r.$$.fragment,b),c=!1},d(b){b&&k(e),b&&k(o),z(r,b),b&&k(u),b&&k(f),d=!1,m()}}}function mD(n){let e,t,i,s,l,o,r,a,u,f,c,d,m;function g(b){n[11](b)}let v={id:n[16]+".config.onlyDomains",disabled:!Y.isEmpty(n[0].exceptDomains)};return n[0].onlyDomains!==void 0&&(v.value=n[0].onlyDomains),r=new fs({props:v}),he.push(()=>Re(r,"value",g)),{c(){e=_("label"),t=_("span"),t.textContent="Only domains",i=T(),s=_("i"),o=T(),B(r.$$.fragment),u=T(),f=_("div"),f.textContent="Use comma as separator.",h(t,"class","txt"),h(s,"class","ri-information-line link-hint"),h(e,"for",l=n[16]+".config.onlyDomains"),h(f,"class","help-block")},m(b,y){w(b,e,y),p(e,t),p(e,i),p(e,s),w(b,o,y),V(r,b,y),w(b,u,y),w(b,f,y),c=!0,d||(m=et(Et.call(null,s,{text:`Email domains that are ONLY allowed to sign up.
This field is disabled if "Except domains" is set.`,position:"top"})),d=!0)},p(b,y){(!c||y&65536&&l!==(l=b[16]+".config.onlyDomains"))&&h(e,"for",l);const C={};y&65536&&(C.id=b[16]+".config.onlyDomains"),y&1&&(C.disabled=!Y.isEmpty(b[0].exceptDomains)),!a&&y&1&&(a=!0,C.value=b[0].onlyDomains,He(()=>a=!1)),r.$set(C)},i(b){c||(A(r.$$.fragment,b),c=!0)},o(b){P(r.$$.fragment,b),c=!1},d(b){b&&k(e),b&&k(o),z(r,b),b&&k(u),b&&k(f),d=!1,m()}}}function gD(n){let e,t,i,s;e=new Ie({props:{class:"form-field form-field-toggle m-b-0",name:"emailPassword.enabled",$$slots:{default:[dD,({uniqueId:o})=>({16:o}),({uniqueId:o})=>o?65536:0]},$$scope:{ctx:n}}});let l=n[0].enabled&&Dp(n);return{c(){B(e.$$.fragment),t=T(),l&&l.c(),i=lt()},m(o,r){V(e,o,r),w(o,t,r),l&&l.m(o,r),w(o,i,r),s=!0},p(o,r){const a={};r&196609&&(a.$$scope={dirty:r,ctx:o}),e.$set(a),o[0].enabled?l?(l.p(o,r),r&1&&A(l,1)):(l=Dp(o),l.c(),A(l,1),l.m(i.parentNode,i)):l&&(De(),P(l,1,1,()=>{l=null}),Oe())},i(o){s||(A(e.$$.fragment,o),A(l),s=!0)},o(o){P(e.$$.fragment,o),P(l),s=!1},d(o){z(e,o),o&&k(t),l&&l.d(o),o&&k(i)}}}function _D(n){let e;return{c(){e=_("span"),e.textContent="Disabled",h(e,"class","label")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function bD(n){let e;return{c(){e=_("span"),e.textContent="Enabled",h(e,"class","label label-success")},m(t,i){w(t,e,i)},d(t){t&&k(e)}}}function Op(n){let e,t,i,s,l;return{c(){e=_("i"),h(e,"class","ri-error-warning-fill txt-danger")},m(o,r){w(o,e,r),i=!0,s||(l=et(Et.call(null,e,{text:"Has errors",position:"left"})),s=!0)},i(o){i||(Lt(()=>{t||(t=at(e,Wn,{duration:150,start:.7},!0)),t.run(1)}),i=!0)},o(o){t||(t=at(e,Wn,{duration:150,start:.7},!1)),t.run(0),i=!1},d(o){o&&k(e),o&&t&&t.end(),s=!1,l()}}}function vD(n){let e,t,i,s,l,o,r;function a(d,m){return d[0].enabled?bD:_D}let u=a(n),f=u(n),c=n[2]&&Op();return{c(){e=_("div"),e.innerHTML=`<i class="ri-mail-lock-line"></i>
<span class="txt">Email/Password</span>`,t=T(),f.c(),i=T(),s=_("div"),l=T(),c&&c.c(),o=lt(),h(e,"class","inline-flex"),h(s,"class","flex-fill")},m(d,m){w(d,e,m),w(d,t,m),f.m(d,m),w(d,i,m),w(d,s,m),w(d,l,m),c&&c.m(d,m),w(d,o,m),r=!0},p(d,m){u!==(u=a(d))&&(f.d(1),f=u(d),f&&(f.c(),f.m(i.parentNode,i))),d[2]?c?m&4&&A(c,1):(c=Op(),c.c(),A(c,1),c.m(o.parentNode,o)):c&&(De(),P(c,1,1,()=>{c=null}),Oe())},i(d){r||(A(c),r=!0)},o(d){P(c),r=!1},d(d){d&&k(e),d&&k(t),f.d(d),d&&k(i),d&&k(s),d&&k(l),c&&c.d(d),d&&k(o)}}}function yD(n){let e,t;const i=[n[3]];let s={$$slots:{header:[vD],default:[gD]},$$scope:{ctx:n}};for(let l=0;l<i.length;l+=1)s=_t(s,i[l]);return e=new za({props:s}),n[12](e),e.$on("expand",n[13]),e.$on("collapse",n[14]),e.$on("toggle",n[15]),{c(){B(e.$$.fragment)},m(l,o){V(e,l,o),t=!0},p(l,[o]){const r=o&8?bn(i,[hi(l[3])]):{};o&131077&&(r.$$scope={dirty:o,ctx:l}),e.$set(r)},i(l){t||(A(e.$$.fragment,l),t=!0)},o(l){P(e.$$.fragment,l),t=!1},d(l){n[12](null),z(e,l)}}}function kD(n,e,t){let i;const s=["config","expand","collapse","collapseSiblings"];let l=tn(e,s),o;qt(n,rs,S=>t(7,o=S));let{config:r={}}=e,a;function u(){a==null||a.expand()}function f(){a==null||a.collapse()}function c(){a==null||a.collapseSiblings()}function d(){r.enabled=this.checked,t(0,r)}function m(){r.minPasswordLength=It(this.value),t(0,r)}function g(S){n.$$.not_equal(r.exceptDomains,S)&&(r.exceptDomains=S,t(0,r))}function v(S){n.$$.not_equal(r.onlyDomains,S)&&(r.onlyDomains=S,t(0,r))}function b(S){he[S?"unshift":"push"](()=>{a=S,t(1,a)})}function y(S){pt.call(this,n,S)}function C(S){pt.call(this,n,S)}function $(S){pt.call(this,n,S)}return n.$$set=S=>{e=_t(_t({},e),ci(S)),t(3,l=tn(e,s)),"config"in S&&t(0,r=S.config)},n.$$.update=()=>{n.$$.dirty&128&&t(2,i=!Y.isEmpty(o==null?void 0:o.emailPassword))},[r,a,i,l,u,f,c,o,d,m,g,v,b,y,C,$]}class wD extends Fe{constructor(e){super(),Le(this,e,kD,yD,Pe,{config:0,expand:4,collapse:5,collapseSiblings:6})}get expand(){return this.$$.ctx[4]}get collapse(){return this.$$.ctx[5]}get collapseSiblings(){return this.$$.ctx[6]}}function SD(n){let e,t,i,s,l,o,r,a;return{c(){e=_("input"),i=T(),s=_("label"),l=R("Enable"),h(e,"type","checkbox"),h(e,"id",t=n[22]),h(s,"for",o=n[22])},m(u,f){w(u,e,f),e.checked=n[0].enabled,w(u,i,f),w(u,s,f),p(s,l),r||(a=X(e,"change",n[11]),r=!0)},p(u,f){f&4194304&&t!==(t=u[22])&&h(e,"id",t),f&1&&(e.checked=u[0].enabled),f&4194304&&o!==(o=u[22])&&h(s,"for",o)},d(u){u&&k(e),u&&k(i),u&&k(s),r=!1,a()}}}function Ep(n){let e,t,i,s,l,o,r,a,u,f,c,d,m,g;l=new Ie({props:{class:"form-field required",name:n[1]+".clientId",$$slots:{default:[$D,({uniqueId:b})=>({22:b}),({uniqueId:b})=>b?4194304:0]},$$scope:{ctx:n}}}),a=new Ie({props:{class:"form-field required",name:n[1]+".clientSecret",$$slots:{default:[CD,({uniqueId:b})=>({22:b}),({uniqueId:b})=>b?4194304:0]},$$scope:{ctx:n}}}),c=new Ie({props:{class:"form-field",name:n[1]+".allowRegistrations",$$slots:{default:[MD,({uniqueId:b})=>({22:b}),({uniqueId:b})=>b?4194304:0]},$$scope:{ctx:n}}});let v=n[4]&&Ap(n);return{c(){e=_("div"),t=_("div"),i=T(),s=_("div"),B(l.$$.fragment),o=T(),r=_("div"),B(a.$$.fragment),u=T(),f=_("div"),B(c.$$.fragment),d=T(),v&&v.c(),h(t,"class","col-12 spacing"),h(s,"class","col-lg-6"),h(r,"class","col-lg-6"),h(f,"class","col-lg-12"),h(e,"class","grid")},m(b,y){w(b,e,y),p(e,t),p(e,i),p(e,s),V(l,s,null),p(e,o),p(e,r),V(a,r,null),p(e,u),p(e,f),V(c,f,null),p(e,d),v&&v.m(e,null),g=!0},p(b,y){const C={};y&2&&(C.name=b[1]+".clientId"),y&12582913&&(C.$$scope={dirty:y,ctx:b}),l.$set(C);const $={};y&2&&($.name=b[1]+".clientSecret"),y&12582913&&($.$$scope={dirty:y,ctx:b}),a.$set($);const S={};y&2&&(S.name=b[1]+".allowRegistrations"),y&12582913&&(S.$$scope={dirty:y,ctx:b}),c.$set(S),b[4]?v?(v.p(b,y),y&16&&A(v,1)):(v=Ap(b),v.c(),A(v,1),v.m(e,null)):v&&(De(),P(v,1,1,()=>{v=null}),Oe())},i(b){g||(A(l.$$.fragment,b),A(a.$$.fragment,b),A(c.$$.fragment,b),A(v),b&&Lt(()=>{m||(m=at(e,on,{duration:200},!0)),m.run(1)}),g=!0)},o(b){P(l.$$.fragment,b),P(a.$$.fragment,b),P(c.$$.fragment,b),P(v),b&&(m||(m=at(e,on,{duration:200},!1)),m.run(0)),g=!1},d(b){b&&k(e),z(l),z(a),z(c),v&&v.d(),b&&m&&m.end()}}}function $D(n){let e,t,i,s,l,o,r,a;return{c(){e=_("label"),t=R("Client ID"),s=T(),l=_("input"),h(e,"for",i=n[22]),h(l,"type","text"),h(l,"id",o=n[22]),l.required=!0},m(u,f){w(u,e,f),p(e,t),w(u,s,f),w(u,l,f),$e(l,n[0].clientId),r||(a=X(l,"input",n[12]),r=!0)},p(u,f){f&4194304&&i!==(i=u[22])&&h(e,"for",i),f&4194304&&o!==(o=u[22])&&h(l,"id",o),f&1&&l.value!==u[0].clientId&&$e(l,u[0].clientId)},d(u){u&&k(e),u&&k(s),u&&k(l),r=!1,a()}}}function CD(n){let e,t,i,s,l,o,r;function a(f){n[13](f)}let u={id:n[22],required:!0};return n[0].clientSecret!==void 0&&(u.value=n[0].clientSecret),l=new Wa({props:u}),he.push(()=>Re(l,"value",a)),{c(){e=_("label"),t=R("Client Secret"),s=T(),B(l.$$.fragment),h(e,"for",i=n[22])},m(f,c){w(f,e,c),p(e,t),w(f,s,c),V(l,f,c),r=!0},p(f,c){(!r||c&4194304&&i!==(i=f[22]))&&h(e,"for",i);const d={};c&4194304&&(d.id=f[22]),!o&&c&Line truncated
<span class="txt">Manage admins</span>`,t=T(),i=_("hr"),s=T(),l=_("div"),l.innerHTML=`<i class="ri-logout-circle-line"></i>
<span class="txt">Logout</span>`,h(e,"href","/settings/admins"),h(e,"class","dropdown-item closable"),h(l,"tabindex","0"),h(l,"class","dropdown-item closable")},m(a,u){w(a,e,u),w(a,t,u),w(a,i,u),w(a,s,u),w(a,l,u),o||(r=[et(Tn.call(null,e)),X(l,"click",n[6])],o=!0)},p:oe,d(a){a&&k(e),a&&k(t),a&&k(i),a&&k(s),a&&k(l),o=!1,st(r)}}}function rO(n){var m;let e,t,i,s,l,o,r,a,u,f,c;document.title=e=Y.joinNonEmpty([n[3],n[2],"PocketBase"]," - ");let d=((m=n[0])==null?void 0:m.id)&&n[1]&&Hp(n);return o=new R_({props:{routes:KD}}),o.$on("routeLoading",n[4]),o.$on("conditionsFailed",n[5]),a=new eO({}),f=new lO({}),{c(){t=T(),i=_("div"),d&&d.c(),s=T(),l=_("div"),B(o.$$.fragment),r=T(),B(a.$$.fragment),u=T(),B(f.$$.fragment),h(l,"class","app-body"),h(i,"class","app-layout")},m(g,v){w(g,t,v),w(g,i,v),d&&d.m(i,null),p(i,s),p(i,l),V(o,l,null),w(g,r,v),V(a,g,v),w(g,u,v),V(f,g,v),c=!0},p(g,[v]){var b;(!c||v&12)&&e!==(e=Y.joinNonEmpty([g[3],g[2],"PocketBase"]," - "))&&(document.title=e),((b=g[0])==null?void 0:b.id)&&g[1]?d?(d.p(g,v),v&3&&A(d,1)):(d=Hp(g),d.c(),A(d,1),d.m(i,s)):d&&(De(),P(d,1,1,()=>{d=null}),Oe())},i(g){c||(A(d),A(o.$$.fragment,g),A(a.$$.fragment,g),A(f.$$.fragment,g),c=!0)},o(g){P(d),P(o.$$.fragment,g),P(a.$$.fragment,g),P(f.$$.fragment,g),c=!1},d(g){g&&k(t),g&&k(i),d&&d.d(),z(o),g&&k(r),z(a,g),g&&k(u),z(f,g)}}}function aO(n,e,t){let i,s,l;qt(n,_o,d=>t(2,i=d)),qt(n,ba,d=>t(0,s=d)),qt(n,nn,d=>t(3,l=d));let o,r=!1;function a(d){var m,g,v,b;((m=d==null?void 0:d.detail)==null?void 0:m.location)!==o&&(t(1,r=!!((v=(g=d==null?void 0:d.detail)==null?void 0:g.userData)!=null&&v.showAppSidebar)),o=(b=d==null?void 0:d.detail)==null?void 0:b.location,wn(nn,l="",l),Ri({}),u_())}function u(){Ts("/")}async function f(){var d;if(!!(s!=null&&s.id))try{const m=await Se.Settings.getAll({$cancelKey:"loadAppName"});wn(_o,i=((d=m==null?void 0:m.meta)==null?void 0:d.appName)||"",i)}catch(m){console.warn("Failed to load app name.",m)}}function c(){Se.logout()}return n.$$.update=()=>{n.$$.dirty&1&&s!=null&&s.id&&f()},[s,r,i,l,a,u,c]}class uO extends Fe{constructor(e){super(),Le(this,e,aO,rO,Pe,{})}}new uO({target:document.getElementById("app")});export{st as A,_n as B,Y as C,Ts as D,lt as E,fg as F,qt as G,Ms as H,hn as I,Fn as J,Jn as K,he as L,Fe as S,P as a,T as b,B as c,z as d,_ as e,h as f,w as g,p as h,Le as i,et as j,De as k,Tn as l,V as m,Oe as n,k as o,Se as p,Ie as q,ee as r,Pe as s,A as t,X as u,Qt as v,R as w,me as x,oe as y,$e as z};
+2 -2
View File
@@ -20,8 +20,8 @@
window.Prism = window.Prism || {};
window.Prism.manual = true;
</script>
<script type="module" crossorigin src="/_/assets/index.6f2d3c23.js"></script>
<link rel="stylesheet" href="/_/assets/index.d97a62dd.css">
<script type="module" crossorigin src="/_/assets/index.f5b1cef3.js"></script>
<link rel="stylesheet" href="/_/assets/index.2d1d905e.css">
</head>
<body>
<div id="app"></div>
+219 -397
View File
File diff suppressed because it is too large. Load diff
+3 -3
View File
@@ -19,16 +19,16 @@
"@codemirror/search": "^6.0.0",
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@sveltejs/vite-plugin-svelte": "^1.0.0-next.30",
"@sveltejs/vite-plugin-svelte": "^1.0.1",
"chart.js": "^3.7.1",
"chartjs-adapter-luxon": "^1.1.0",
"luxon": "^2.3.2",
"pocketbase": "^0.1.2",
"pocketbase": "^0.2.1",
"prismjs": "^1.28.0",
"sass": "^1.45.0",
"svelte": "^3.44.0",
"svelte-flatpickr": "^3.2.6",
"svelte-spa-router": "^3.2.0",
"vite": "^2.7.0"
"vite": "^3.0.0"
}
}
+25 -1
View File
@@ -10,6 +10,7 @@
import Toasts from "@/components/base/Toasts.svelte";
import Toggler from "@/components/base/Toggler.svelte";
import Confirmation from "@/components/base/Confirmation.svelte";
import { pageTitle, appName } from "@/stores/app";
import { admin } from "@/stores/admin";
import { setErrors } from "@/stores/errors";
import { resetConfirmation } from "@/stores/confirmation";
@@ -18,6 +19,10 @@
let showAppSidebar = false;
$: if ($admin?.id) {
loadAppName();
}
function handleRouteLoading(e) {
if (e?.detail?.location === oldLocation) {
return; // not an actual change
@@ -28,7 +33,7 @@
oldLocation = e?.detail?.location;
// resets
CommonHelper.setDocumentTitle("");
$pageTitle = "";
setErrors({});
resetConfirmation();
}
@@ -37,11 +42,30 @@
replace("/");
}
async function loadAppName() {
if (!$admin?.id) {
return;
}
try {
const settings = await ApiClient.Settings.getAll({
$cancelKey: "loadAppName",
});
$appName = settings?.meta?.appName || "";
} catch (err) {
console.warn("Failed to load app name.", err);
}
}
function logout() {
ApiClient.logout();
}
</script>
<svelte:head>
<title>{CommonHelper.joinNonEmpty([$pageTitle, $appName, "PocketBase"], " - ")}</title>
</svelte:head>
<div class="app-layout">
{#if $admin?.id && showAppSidebar}
<aside class="app-sidebar">
+9 -4
View File
@@ -1,8 +1,10 @@
<script>
import ApiClient from "@/utils/ApiClient";
import CommonHelper from "@/utils/CommonHelper";
import { pageTitle } from "@/stores/app";
import { admin as loggedAdmin } from "@/stores/admin";
import Searchbar from "@/components/base/Searchbar.svelte";
import RefreshButton from "@/components/base/RefreshButton.svelte";
import SortHeader from "@/components/base/SortHeader.svelte";
import IdLabel from "@/components/base/IdLabel.svelte";
import FormattedDate from "@/components/base/FormattedDate.svelte";
@@ -11,6 +13,8 @@
const queryParams = CommonHelper.getQueryParams(window.location?.href);
$pageTitle = "Admins";
let adminUpsertPanel;
let admins = [];
let isLoading = false;
@@ -27,10 +31,9 @@
loadAdmins();
}
CommonHelper.setDocumentTitle("Admins");
export function loadAdmins() {
isLoading = true;
admins = []; // reset
return ApiClient.Admins.getFullList(100, {
@@ -42,7 +45,7 @@
isLoading = false;
})
.catch((err) => {
if (err !== null) {
if (!err?.isAbort) {
isLoading = false;
console.warn(err);
clearList();
@@ -62,9 +65,11 @@
<header class="page-header">
<nav class="breadcrumbs">
<div class="breadcrumb-item">Settings</div>
<div class="breadcrumb-item">Admins</div>
<div class="breadcrumb-item">{$pageTitle}</div>
</nav>
<RefreshButton on:refresh={() => loadAdmins()} />
<div class="flex-fill" />
<button type="button" class="btn btn-expanded" on:click={() => adminUpsertPanel?.show()}>
@@ -1,11 +1,13 @@
<script>
import { onMount } from "svelte";
export let value = "";
export let maxHeight = 200;
let inputElem;
let updateTimeoutId;
$: if (inputElem && typeof value !== undefined) {
$: if (typeof value !== undefined) {
updateInputHeight();
}
@@ -32,6 +34,12 @@
form?.requestSubmit && form.requestSubmit();
}
}
onMount(() => {
updateInputHeight();
return () => clearTimeout(updateTimeoutId);
});
</script>
<textarea bind:this={inputElem} bind:value on:keydown={handleKeydown} {...$$restProps} />
+2
View File
@@ -23,9 +23,11 @@
}
onMount(() => {
container.addEventListener("input", handleChange);
container.addEventListener("change", handleChange);
return () => {
container.removeEventListener("input", handleChange);
container.removeEventListener("change", handleChange);
};
});
@@ -96,6 +96,8 @@
readOnlyCompartment.reconfigure(EditorState.readOnly.of(disabled)),
],
});
triggerNativeChange();
}
$: if (editor && value != editor.state.doc.toString()) {
@@ -228,7 +230,7 @@
return null;
}
let options = [{ label: "null" }, { label: "false" }, { label: "true" }];
let options = [{ label: "false" }, { label: "true" }];
if (!disableIndirectCollectionsKeys) {
options.push({ label: "@collection.*", apply: "@collection." });
+10 -2
View File
@@ -26,11 +26,19 @@
}
</script>
<OverlayPanel bind:this={panel} class="image-preview" popup on:show on:hide>
<OverlayPanel bind:this={panel} class="image-preview" btnClose={false} popup on:show on:hide>
<svelte:fragment slot="header">
<div class="overlay-close" on:click|preventDefault={hide}>
<i class="ri-close-line" />
</div>
</svelte:fragment>
<img src={url} alt="Preview" />
<svelte:fragment slot="footer">
<a href={url} class="link-hint txt-ellipsis">/../{url.substring(url.lastIndexOf("/") + 1)}</a>
<a href={url} title="Download" class="link-hint txt-ellipsis">
/../{url.substring(url.lastIndexOf("/") + 1)}
</a>
<div class="flex-fill" />
<button type="button" class="btn btn-secondary" on:click={hide}>Close</button>
</svelte:fragment>
@@ -0,0 +1,50 @@
<script>
import { createEventDispatcher, onMount } from "svelte";
import tooltip from "@/actions/tooltip";
const dispatch = createEventDispatcher();
let tooltipData = { text: "Refresh", position: "right" };
export { tooltipData as tooltip };
let refreshTimeoutId = null;
function refresh() {
dispatch("refresh");
// clear tooltip
const oldTooltipData = tooltipData;
tooltipData = null;
clearTimeout(refreshTimeoutId);
refreshTimeoutId = setTimeout(() => {
refreshTimeoutId = null;
tooltipData = oldTooltipData;
}, 200);
}
onMount(() => {
return () => clearTimeout(refreshTimeoutId);
});
</script>
<button
type="button"
class="btn btn-secondary btn-circle"
class:refreshing={refreshTimeoutId}
use:tooltip={tooltipData}
on:click={refresh}
>
<i class="ri-refresh-line" />
</button>
<style>
@keyframes refresh {
100% {
transform: rotate(180deg);
}
}
.btn.refreshing i {
animation: refresh 200ms ease-out;
}
</style>
@@ -44,16 +44,16 @@
function getSiblingsFieldNames(currentField) {
let result = [];
if (currentField.toDelete) {
return result;
}
for (let field of collection.schema) {
if (field === currentField) {
continue; // skip current
if (field === currentField || field.toDelete) {
continue; // skip current and deleted fields
}
result.push(field.name);
if (field.id && field.originalName !== "" && field.originalName !== field.name) {
result.push(field.originalName);
}
}
return result;
@@ -104,7 +104,7 @@
<p>
Example rule:
<br />
<code>@request.user.id!=null && created>"2022-01-01 00:00:00"</code>
<code>@request.user.id!="" && created>"2022-01-01 00:00:00"</code>
</p>
</div>
</div>
@@ -166,7 +166,7 @@
<OverlayPanel
bind:this={collectionPanel}
class="overlay-panel-lg colored-header collection-panel"
class="overlay-panel-lg colored-header compact-header collection-panel"
beforeHide={() => {
if (hasChanges && confirmClose) {
confirm("You have unsaved changes. Do you really want to close the panel?", () => {
@@ -5,6 +5,7 @@
import CommonHelper from "@/utils/CommonHelper";
import tooltip from "@/actions/tooltip";
import { errors } from "@/stores/errors";
import Toggler from "@/components/base/Toggler.svelte";
import Accordion from "@/components/base/Accordion.svelte";
import Field from "@/components/base/Field.svelte";
import FieldTypeSelect from "@/components/collections/schema/FieldTypeSelect.svelte";
@@ -37,13 +38,6 @@
field.unique = false;
}
$: if (excludeNames.length) {
const normalizedName = normalizeFieldName(field.name);
if (field.name !== normalizedName) {
field.name = normalizedName;
}
}
$: canBeStored = !CommonHelper.isEmpty(field.name) && field.type;
$: if (!canBeStored) {
@@ -54,7 +48,7 @@
accordion && collapse();
// reset the name if it was previously deleted
if (!field.name && field.originalName) {
if (field.originalName && field.name !== field.originalName) {
field.name = field.originalName;
}
}
@@ -67,9 +61,16 @@
field.toDelete = false; // normalize
}
$: if (field.required) {
field.nullable = false;
}
$: interactive = !disabled && !field.system && !field.toDelete && canBeStored;
$: hasErrors = !CommonHelper.isEmpty(CommonHelper.getNestedVal($errors, `schema.${key}`));
$: hasValidName = validateFieldName(field.name);
$: hasErrors =
!hasValidName || !CommonHelper.isEmpty(CommonHelper.getNestedVal($errors, `schema.${key}`));
export function expand() {
accordion?.expand();
@@ -88,15 +89,23 @@
}
}
function normalizeFieldName(name) {
name = CommonHelper.slugify(name);
let counter = "";
while (excludeNames.includes(name + counter)) {
++counter;
function validateFieldName(name) {
name = ("" + name).toLowerCase();
if (!name) {
return false;
}
return name + counter;
for (const excluded of excludeNames) {
if (excluded.toLowerCase() === name) {
return false;
}
}
return true;
}
function normalizeFieldName(name) {
return CommonHelper.slugify(name);
}
onMount(() => {
@@ -116,7 +125,7 @@
{interactive}
class={disabled || field.toDelete || field.system ? "field-accordion disabled" : "field-accordion"}
>
<svelte:fragment slot="header" let:active={expanded}>
<svelte:fragment slot="header">
<div class="inline-flex">
<span class="icon field-type">
<i class={CommonHelper.getFieldTypeIcon(field.type)} />
@@ -145,7 +154,7 @@
<div class="flex-fill" />
{#if hasErrors}
{#if hasErrors && !field.system}
<i
class="ri-error-warning-fill txt-danger"
transition:scale={{ duration: 150, start: 0.7 }}
@@ -153,28 +162,6 @@
/>
{/if}
{#if expanded && !field.toDelete}
<div class="inline-flex flex-gap-sm flex-nowrap" in:fly={{ duration: 200, x: 20, opacity: 0 }}>
<button
type="button"
class="btn btn-sm fade p-l-0 p-r-0"
on:click|stopPropagation={handleDelete}
>
<span class="txt">Remove</span>
</button>
{#if interactive}
<button
type="button"
class="btn btn-sm btn-outline btn-expanded-sm"
on:click|stopPropagation={collapse}
>
<span class="txt">Done</span>
</button>
{/if}
</div>
{/if}
{#if field.toDelete}
<button
type="button"
@@ -207,11 +194,23 @@
</div>
<div class="col-sm-6">
<Field
class="form-field required {field.id && field.system ? 'disabled' : ''}"
class="
form-field
required
{!hasValidName ? 'invalid' : ''}
{field.id && field.system ? 'disabled' : ''}
"
name="schema.{key}.name"
let:uniqueId
>
<label for={uniqueId}>Name</label>
<label for={uniqueId}>
<span class="txt">Name</span>
{#if !hasValidName}
<span class="txt invalid-name-note" transition:fly={{ duration: 150, x: 5 }}>
Duplicated or invalid name
</span>
{/if}
</label>
<!-- svelte-ignore a11y-autofocus -->
<input
type="text"
@@ -255,14 +254,14 @@
{/if}
</div>
<div class="col-4">
<div class="col-sm-4 flex">
<Field class="form-field form-field-toggle m-0" name="requried" let:uniqueId>
<input type="checkbox" id={uniqueId} bind:checked={field.required} />
<label for={uniqueId}>Required</label>
</Field>
</div>
<div class="col-4">
<div class="col-sm-4 flex">
{#if field.type !== "file"}
<Field class="form-field form-field-toggle m-0" name="unique" let:uniqueId>
<input type="checkbox" id={uniqueId} bind:checked={field.unique} />
@@ -270,6 +269,34 @@
</Field>
{/if}
</div>
{#if !field.toDelete}
<div class="col-sm-4 txt-right">
<div class="flex-fill" />
<div class="inline-flex flex-gap-sm flex-nowrap">
<button type="button" class="btn btn-circle btn-sm btn-secondary">
<i class="ri-more-line" />
<Toggler
class="dropdown dropdown-sm dropdown-upside dropdown-right dropdown-nowrap no-min-width"
>
<button type="button" class="dropdown-item txt-right" on:click={handleDelete}>
<span class="txt">Remove</span>
</button>
</Toggler>
</button>
{#if interactive}
<button
type="button"
class="btn btn-sm btn-outline btn-expanded-sm"
on:click|stopPropagation={collapse}
>
<span class="txt">Done</span>
</button>
{/if}
</div>
</div>
{/if}
</div>
<input type="submit" class="hidden" tabindex="-1" />
@@ -277,6 +304,12 @@
</Accordion>
<style>
.invalid-name-note {
position: absolute;
right: 10px;
top: 10px;
text-transform: none;
}
.title.field-name {
max-width: 130px;
overflow: hidden;
@@ -53,14 +53,11 @@
const client = new PocketBase("${ApiClient.baseUrl}");
...
const data = { ... };
client.Records.create("${collection?.name}", data)
.then(function (record) {
// success...
}).catch(function (error) {
// error...
});
const record = await client.Records.create("${collection?.name}", data);
`,
},
];
@@ -161,6 +158,37 @@
</tbody>
</table>
<div class="section-title">Query parameters</div>
<table class="table-compact table-border m-b-lg">
<thead>
<tr>
<th>Param</th>
<th>Type</th>
<th width="60%">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>expand</td>
<td>
<span class="label">String</span>
</td>
<td>
Auto expand relations when returning the created record. Ex.:
<CodeBlock
content={`
?expand=rel1,rel2.subrel21.subrel22
`}
/>
Supports up to 6-levels depth nested relations expansion. <br />
The expanded relations will be appended to the record under the
<code>@expand</code> property (eg. <code>{`"@expand": {"rel1": {...}, ...}`}</code>). Only the
relations that the user has permissions to <strong>view</strong> will be expanded.
</td>
</tr>
</tbody>
</table>
<div class="section-title">Responses</div>
<div class="tabs">
<div class="tabs-header compact left">
@@ -64,12 +64,9 @@
const client = new PocketBase("${ApiClient.baseUrl}");
client.Records.delete("${collection?.name}", "RECORD_ID")
.then(function () {
// success...
}).catch(function (error) {
// error...
});
...
await client.Records.delete("${collection?.name}", "RECORD_ID");
`,
},
];
@@ -76,20 +76,17 @@
const client = new PocketBase("${ApiClient.baseUrl}");
client.Records.getList("${collection?.name}", { page: 2 })
.then(function (list) {
// success...
}).catch(function (error) {
// error...
});
...
// fetch a paginated records list
const resultList = await client.Records.getList("${collection?.name}", 1, 50, {
filter: "created >= '2022-01-01 00:00:00'",
});
// alternatively you can also fetch all records at once via getFullList:
client.Records.getFullList("${collection?.name}", 200 /* batch size */)
.then(function (records) {
// success...
}).catch(function (error) {
// error...
});
const records = await client.Records.getFullList("${collection?.name}", 200 /* batch size */, {
sort: "-created",
});
`,
},
];
@@ -195,7 +192,7 @@
<span class="label">String</span>
</td>
<td>
Auto expand nested record relations. Ex.:
Auto expand record relations. Ex.:
<CodeBlock
content={`
?expand=rel1,rel2.subrel21.subrel22
@@ -63,14 +63,11 @@
const client = new PocketBase("${ApiClient.baseUrl}");
...
const data = { ... };
client.Records.update("${collection?.name}", "RECORD_ID", data)
.then(function (record) {
// success...
}).catch(function (error) {
// error...
});
const record = await client.Records.update("${collection?.name}", "RECORD_ID", data);
`,
},
];
@@ -146,7 +143,7 @@
<thead>
<tr>
<th>Param</th>
<th width="60%">Type</th>
<th>Type</th>
<th width="50%">Description</th>
</tr>
</thead>
@@ -191,6 +188,37 @@
</tbody>
</table>
<div class="section-title">Query parameters</div>
<table class="table-compact table-border m-b-lg">
<thead>
<tr>
<th>Param</th>
<th>Type</th>
<th width="60%">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>expand</td>
<td>
<span class="label">String</span>
</td>
<td>
Auto expand relations when returning the updated record. Ex.:
<CodeBlock
content={`
?expand=rel1,rel2.subrel21.subrel22
`}
/>
Supports up to 6-levels depth nested relations expansion. <br />
The expanded relations will be appended to the record under the
<code>@expand</code> property (eg. <code>{`"@expand": {"rel1": {...}, ...}`}</code>). Only the
relations that the user has permissions to <strong>view</strong> will be expanded.
</td>
</tr>
</tbody>
</table>
<div class="section-title">Responses</div>
<div class="tabs">
<div class="tabs-header compact left">
@@ -52,12 +52,11 @@
const client = new PocketBase("${ApiClient.baseUrl}");
client.Records.getOne("${collection?.name}", "RECORD_ID")
.then(function (record) {
// success...
}).catch(function (error) {
// error...
});
...
const record = await client.Records.getOne("${collection?.name}", "RECORD_ID", {
expand: "some_relation"
});
`,
},
];
@@ -137,7 +136,7 @@
<span class="label">String</span>
</td>
<td>
Auto expand nested record relations. Ex.:
Auto expand record relations. Ex.:
<CodeBlock
content={`
?expand=rel1,rel2.subrel21.subrel22
@@ -16,7 +16,7 @@
<i
class="ri-information-line link-hint"
use:tooltip={{
text: 'Domains that are NOT allowed as value. \n This field is disabled if "Only domains" is set.',
text: 'List of domains that are NOT allowed. \n This field is disabled if "Only domains" is set.',
position: "top",
}}
/>
@@ -37,7 +37,7 @@
<i
class="ri-information-line link-hint"
use:tooltip={{
text: 'Domains that are ONLY allowed as value. \n This field is disabled if "Except domains" is set.',
text: 'List of domains that are ONLY allowed. \n This field is disabled if "Except domains" is set.',
position: "top",
}}
/>
@@ -41,7 +41,7 @@
<i
class="ri-information-line link-hint"
use:tooltip={{
text: "Allow uploading files ONLY with the listed mime types. \n Leave empty for no restriction.",
text: "Allow files ONLY with the listed mime types. \n Leave empty for no restriction.",
position: "top",
}}
/>
@@ -56,6 +56,21 @@
<span class="inline-flex">
<span class="txt link-primary">Choose presets</span>
<Toggler class="dropdown dropdown-sm dropdown-nowrap">
<div
tabindex="0"
class="dropdown-item closable"
on:click={() => {
options.mimeTypes = [
"application/pdf",
"application/msword",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"application/vnd.ms-excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
];
}}
>
<span class="txt">Documents (pdf, doc/docx, xls/xlsx)</span>
</div>
<div
tabindex="0"
class="dropdown-item closable"
@@ -76,15 +91,14 @@
class="dropdown-item closable"
on:click={() => {
options.mimeTypes = [
"application/pdf",
"application/msword",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"application/vnd.ms-excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"video/mp4",
"video/x-ms-wmv",
"video/quicktime",
"video/3gpp",
];
}}
>
<span class="txt">Documents (pdf, doc/docx, xls/xlsx)</span>
<span class="txt">Videos (mp4, avi, mov, 3gp)</span>
</div>
<div
tabindex="0"
Loaded 100 of 130 files, more files were not shown because too many files have changed in this diff. Show more