Repository: mbraak/django-mptt-admin Branch: master Commit: b5fbe3b3ad02 Files: 108 Total size: 273.7 KB Directory structure: gitextract_r07_re3i/ ├── .coveragerc ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── ci.yml │ ├── codeql-analysis.yml │ └── mkdocs.yml ├── .gitignore ├── LICENSE.rst ├── MANIFEST.in ├── README.md ├── coverage/ │ ├── .nycrc.json │ └── package.json ├── cspell.json ├── django_mptt_admin/ │ ├── __init__.py │ ├── admin.py │ ├── django_mptt_admin_mixin.py │ ├── locale/ │ │ ├── ca/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── django.mo │ │ │ ├── django.po │ │ │ ├── djangojs.mo │ │ │ └── djangojs.po │ │ ├── de/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── django.mo │ │ │ ├── django.po │ │ │ ├── djangojs.mo │ │ │ └── djangojs.po │ │ ├── es/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── django.mo │ │ │ ├── django.po │ │ │ ├── djangojs.mo │ │ │ └── djangojs.po │ │ ├── fr/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── django.mo │ │ │ ├── django.po │ │ │ ├── djangojs.mo │ │ │ └── djangojs.po │ │ ├── he/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── django.mo │ │ │ ├── django.po │ │ │ ├── djangojs.mo │ │ │ └── djangojs.po │ │ ├── hu/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── django.mo │ │ │ ├── django.po │ │ │ ├── djangojs.mo │ │ │ └── djangojs.po │ │ ├── pl/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── django.mo │ │ │ ├── django.po │ │ │ ├── djangojs.mo │ │ │ └── djangojs.po │ │ ├── ru/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── django.mo │ │ │ ├── django.po │ │ │ ├── djangojs.mo │ │ │ └── djangojs.po │ │ └── tr/ │ │ └── LC_MESSAGES/ │ │ ├── django.mo │ │ ├── django.po │ │ ├── djangojs.mo │ │ └── djangojs.po │ ├── static/ │ │ └── django_mptt_admin/ │ │ ├── django_mptt_admin.css │ │ ├── django_mptt_admin.debug.js │ │ ├── django_mptt_admin.debug.js.LICENSE.txt │ │ ├── django_mptt_admin.js │ │ ├── django_mptt_admin.js.LICENSE.txt │ │ └── jquery_namespace.js │ ├── templates/ │ │ └── django_mptt_admin/ │ │ ├── change_list.html │ │ └── grid_view.html │ ├── templatetags/ │ │ ├── __init__.py │ │ └── javascript_value.py │ ├── tree_change_list.py │ └── util.py ├── docs/ │ └── index.md ├── example_project/ │ ├── django_mptt_example/ │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── fixtures/ │ │ │ └── countries.json │ │ ├── migrations/ │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_alter_country_level_alter_country_lft_and_more.py │ │ │ └── __init__.py │ │ ├── models.py │ │ └── tests/ │ │ ├── __init__.py │ │ ├── base_playwright_testcase.py │ │ ├── base_view_testcase.py │ │ ├── playwright_page.py │ │ ├── test_playwright.py │ │ ├── test_util.py │ │ ├── test_views.py │ │ └── utils.py │ ├── example_project/ │ │ ├── __init__.py │ │ ├── settings.py │ │ └── urls.py │ ├── import_test_data │ ├── manage.py │ ├── requirements_all.txt │ ├── requirements_ci.txt │ ├── requirements_example.txt │ ├── requirements_test.txt │ ├── run_coverage │ └── run_tests ├── frontend/ │ ├── .babelrc │ ├── .editorconfig │ ├── django_mptt_admin.scss │ ├── eslint.config.mjs │ ├── package.json │ ├── src/ │ │ ├── djangoMpttAdmin.ts │ │ ├── global.d.ts │ │ ├── initTree.test.ts │ │ ├── initTree.ts │ │ └── vitestSetup.ts │ ├── tsconfig.json │ ├── vitest.config.ts │ └── webpack.config.js ├── mkdocs.yml ├── requirements_docs.txt ├── setup.cfg ├── setup.py └── tox.ini ================================================ FILE CONTENTS ================================================ ================================================ FILE: .coveragerc ================================================ [run] branch = True omit = example_project/django_mptt_example/tests/base_playwright_testcase.py example_project/django_mptt_example/tests/playwright_page.py example_project/django_mptt_example/tests/test_playwright.py ================================================ FILE: .github/dependabot.yml ================================================ version: 2 updates: - package-ecosystem: "pip" directory: "/" schedule: interval: "weekly" ================================================ FILE: .github/workflows/ci.yml ================================================ name: Continuous integration on: [push] jobs: runner-job: runs-on: ubuntu-latest strategy: matrix: django: ["django==4.2.30", "django==5.2.13", "django==6.0.4"] services: postgres: image: postgres env: POSTGRES_PASSWORD: postgres options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 5432:5432 steps: - name: Check out repository code uses: actions/checkout@v6 - name: Check spelling uses: streetsidesoftware/cspell-action@v8 with: files: | frontend/src/**/*.ts django_mptt_admin/**/*.py example_project/**/*.py incremental_files_only: false - name: Setup node uses: actions/setup-node@v6 with: node-version: "20" - name: Install pnpm run: npm install -g pnpm - name: Get pnpm store directory id: pnpm-cache run: | echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - uses: actions/cache@v5 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Install javascript packages working-directory: ./frontend run: pnpm install - name: Cache python packages uses: actions/cache@v5 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements**.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.12" - name: Install python packages run: | pip install ${{ matrix.django }} && pip install -r example_project/requirements_test.txt && playwright install chromium && pip install -r example_project/requirements_ci.txt && pip install -e . - name: Build javascript working-directory: ./frontend run: pnpm run build - name: Javascript test working-directory: ./frontend run: pnpm run test:coverage - name: Collect static files run: python manage.py collectstatic --no-input working-directory: example_project - name: Create javascript coverage directory run: mkdir js_coverage - name: Test with coverage run: | COVERAGE=true coverage run --source=django_mptt_admin,example_project/django_mptt_example example_project/manage.py test django_mptt_example env: POSTGRES_HOST: localhost POSTGRES_PASSWORD: postgres POSTGRES_PORT: 5432 - name: Merge Python coverage run: coverage report && coverage lcov - name: Merge javascript coverage working-directory: ./coverage run: pnpm i && pnpm run merge_coverage - name: Codecov uses: codecov/codecov-action@v6 with: token: ${{ secrets.CODECOV_TOKEN }} verbose: true ================================================ FILE: .github/workflows/codeql-analysis.yml ================================================ name: "CodeQL" on: push: branches: ["master"] pull_request: branches: ["master"] jobs: analyze: name: Analyze runs-on: ubuntu-latest strategy: fail-fast: false matrix: language: ["javascript", "python"] steps: - name: Checkout repository uses: actions/checkout@v6 - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} - name: Autobuild uses: github/codeql-action/autobuild@v3 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 ================================================ FILE: .github/workflows/mkdocs.yml ================================================ name: Publish docs via GitHub Pages on: push: branches: - master - mkdocs-workflow jobs: build: name: Deploy docs runs-on: ubuntu-latest steps: - name: Checkout master uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: 3.12 - name: Install python packages run: | pip install -r requirements_docs.txt - name: Run mkdocs run: mkdocs gh-deploy --force ================================================ FILE: .gitignore ================================================ .DS_Store *.pyc django_mptt_admin/static/django_mptt_admin/django_mptt_admin.coverage.js django_mptt_admin/static/django_mptt_admin/django_mptt_admin.coverage.js.map ================================================ FILE: LICENSE.rst ================================================ ======= LICENSE ======= Copyright © 2013, Marco Braak Licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: MANIFEST.in ================================================ include LICENSE.rst include README.md recursive-include django_mptt_admin/templates * recursive-include django_mptt_admin/static * recursive-include django_mptt_admin/locale * ================================================ FILE: README.md ================================================ ![Continuous integration](https://github.com/mbraak/django-mptt-admin/workflows/Continuous%20integration/badge.svg) [![Version](https://badge.fury.io/py/django-mptt-admin.svg)](https://pypi.python.org/pypi/django-mptt-admin/) [![codecov](https://codecov.io/gh/mbraak/django-mptt-admin/branch/master/graph/badge.svg?token=YGojePND2M)](https://codecov.io/gh/mbraak/django-mptt-admin) [![License](https://img.shields.io/pypi/l/django-mptt-admin.svg)](https://pypi.python.org/pypi/django-mptt-admin/) # Django Mptt Admin _Django-mptt-admin_ provides a nice Django Admin interface for [django-mptt models](https://django-mptt.readthedocs.io/). - The source is available on [https://github.com/mbraak/django-mptt-admin](https://github.com/mbraak/django-mptt-admin). - Documentation is available on [https://mbraak.github.io/django-mptt-admin/](https://mbraak.github.io/django-mptt-admin/). ![Screenshot](https://raw.github.com/mbraak/django-mptt-admin/master/screenshot.png) ================================================ FILE: coverage/.nycrc.json ================================================ { "exclude-after-remap": false } ================================================ FILE: coverage/package.json ================================================ { "name": "coverage", "dependencies": { "nyc": "^18" }, "scripts": { "merge_coverage": "nyc --reporter lcov -t ./js_coverage --cwd .. report" } } ================================================ FILE: cspell.json ================================================ { "language": "en-GB", "words": [ "Åland", "bouvet", "countrycode", "countrycodeandname", "crsf", "csrfmiddlewaretoken", "jqtree", "mptt", "rght", "tabindex", "testcsrf", "toggler", "webtest" ] } ================================================ FILE: django_mptt_admin/__init__.py ================================================ ================================================ FILE: django_mptt_admin/admin.py ================================================ from mptt.admin import MPTTModelAdmin from .django_mptt_admin_mixin import DjangoMpttAdminMixin class DjangoMpttAdmin(DjangoMpttAdminMixin, MPTTModelAdmin): pass class FilterableDjangoMpttAdmin(DjangoMpttAdmin): pass ================================================ FILE: django_mptt_admin/django_mptt_admin_mixin.py ================================================ from functools import update_wrapper from typing import Union from django.conf import settings from django.templatetags.static import static from django.contrib.admin.templatetags.admin_urls import add_preserved_filters from django.core.exceptions import PermissionDenied, SuspiciousOperation from django.http import JsonResponse from django.template.response import TemplateResponse from django.contrib.admin.options import csrf_protect_m, ModelAdmin from django.contrib.admin.utils import unquote, quote from django.contrib.admin.options import IS_POPUP_VAR from django.db import transaction from django.utils.http import urlencode from django.forms import Media from django.urls import re_path, reverse from django.views.i18n import JavaScriptCatalog import django from . import util from .tree_change_list import TreeChangeList class DjangoMpttAdminMixin: tree_animation_speed = None tree_auto_open = 1 tree_load_on_demand = 1 tree_mouse_delay = None trigger_save_after_move = False # Autoescape the tree data; default is True autoescape = True # useContextMenu option for the tree; default is False use_context_menu = False change_list_template = "django_mptt_admin/grid_view.html" change_tree_template = "django_mptt_admin/change_list.html" # define which field of the model should be the label for tree items item_label_field_name = None # list and tree filter list_filter = () change_list_tree_class = TreeChangeList @csrf_protect_m def changelist_view( self: Union[ModelAdmin, "DjangoMpttAdminMixin"], request, extra_context=None ): request.current_app = self.admin_site.name is_popup = IS_POPUP_VAR in request.GET if is_popup: return super(DjangoMpttAdminMixin, self).changelist_view( request, extra_context=extra_context ) if not self.has_view_or_change_permission(request): raise PermissionDenied() change_list = self.get_change_list_for_tree(request) preserved_filters = self.get_preserved_filters(request) def get_admin_url_with_filters(name): admin_url = self.get_admin_url(name) if change_list.params: return admin_url + change_list.get_query_string() else: return admin_url def get_admin_url_with_preserved_filters(name): return add_preserved_filters( {"preserved_filters": preserved_filters, "opts": self.opts}, self.get_admin_url(name), ) def get_csrf_cookie_name(): if settings.CSRF_USE_SESSIONS: return "" else: return settings.CSRF_COOKIE_NAME grid_url = get_admin_url_with_filters("grid") tree_json_url = get_admin_url_with_filters("tree_json") insert_at_url = get_admin_url_with_preserved_filters("add") tree_options = { "autoescape": self.autoescape, "csrf_cookie_name": get_csrf_cookie_name(), "drag_and_drop": self.is_drag_and_drop_enabled(), "grid_url": grid_url, "has_add_permission": self.has_add_permission(request), "has_change_permission": self.has_change_permission(request), "insert_at_url": insert_at_url, "jsi18n_url": self.get_admin_url("jsi18n"), "model_name": util.get_model_name(self.model), "tree_animation_speed": self.tree_animation_speed, "tree_auto_open": self.tree_auto_open, "tree_json_url": tree_json_url, "tree_mouse_delay": self.get_tree_mouse_delay(), "use_context_menu": self.use_context_menu, } context = { **self.admin_site.each_context(request), "django_major_version": django.VERSION[0], "module_name": str(self.opts.verbose_name_plural), "title": change_list.title, "subtitle": None, "is_popup": change_list.is_popup, "to_field": change_list.to_field, "cl": change_list, "media": self.get_tree_media(), "opts": change_list.opts, "preserved_filters": self.get_preserved_filters(request), **tree_options, **(extra_context or {}), } request.current_app = self.admin_site.name return TemplateResponse(request, self.change_tree_template, context) def get_urls(self: Union[ModelAdmin, "DjangoMpttAdminMixin"]): def wrap(view, cacheable=False): def wrapper(*args, **kwargs): return self.admin_site.admin_view(view, cacheable)(*args, **kwargs) return update_wrapper(wrapper, view) def create_url(regex, url_name, view, kwargs=None, cacheable=False): return re_path( regex, wrap(view, cacheable), kwargs=kwargs, name="{0!s}_{1!s}_{2!s}".format( self.opts.app_label, util.get_model_name(self.model), url_name, ), ) def create_js_catalog_url(): packages = ["django_mptt_admin"] url_pattern = r"^jsi18n/$" return create_url( url_pattern, "jsi18n", JavaScriptCatalog.as_view(packages=packages), cacheable=True, ) # prepend new urls to existing urls return [ create_url(r"^(.+)/move/$", "move", self.move_view), create_url(r"^tree_json/$", "tree_json", self.tree_json_view), create_url(r"^grid/$", "grid", self.grid_view), create_js_catalog_url(), ] + super(DjangoMpttAdminMixin, self).get_urls() def get_tree_media(self: ModelAdmin): django_mptt_admin_js = ( "django_mptt_admin.coverage.js" if getattr(settings, "DJANGO_MPTT_ADMIN_COVERAGE_JS", False) else "django_mptt_admin.js" ) js = [ "admin/js/jquery.init.js", static("django_mptt_admin/jquery_namespace.js"), static(f"django_mptt_admin/{django_mptt_admin_js}"), ] css = dict(all=(static("django_mptt_admin/django_mptt_admin.css"),)) tree_media = Media(js=js, css=css) return self.media + tree_media @csrf_protect_m @transaction.atomic() def move_view(self: Union[ModelAdmin, "DjangoMpttAdminMixin"], request, object_id): request.current_app = self.admin_site.name instance = self.get_object(request, unquote(object_id)) if not self.has_change_permission(request, instance): raise PermissionDenied() if request.method != "POST": raise SuspiciousOperation() target_id = request.POST["target_id"] position = request.POST["position"] target_instance = self.get_object(request, target_id) self.do_move(instance, position, target_instance) return JsonResponse(dict(success=True)) def do_move(self, instance, position, target_instance): if position == "before": instance.move_to(target_instance, "left") elif position == "after": instance.move_to(target_instance, "right") elif position == "inside": instance.move_to(target_instance) else: raise Exception("Unknown position") if self.trigger_save_after_move: instance.save() def get_change_list_for_tree( self: Union[ModelAdmin, "DjangoMpttAdminMixin"], request, node_id=None, max_level=None, ): request.current_app = self.admin_site.name return self.change_list_tree_class( request=request, model=self.model, model_admin=self, list_filter=self.get_list_filter(request), node_id=node_id, max_level=max_level, ) def get_admin_url(self: ModelAdmin, name, args=None): opts = self.opts url_name = "admin:{0!s}_{1!s}_{2!s}".format( opts.app_label, util.get_model_name(self.model), name ) return reverse(url_name, args=args, current_app=self.admin_site.name) def get_tree_data( self: Union[ModelAdmin, "DjangoMpttAdminMixin"], qs, max_level, filters_params ): pk_attname = self.opts.pk.attname preserved_filters = urlencode( {"_changelist_filters": urlencode(filters_params)} ) def add_preserved_filters_to_url(url): return add_preserved_filters( {"preserved_filters": preserved_filters, "opts": self.opts}, url ) def handle_create_node(instance, node_info): pk = getattr(instance, pk_attname) node_url = add_preserved_filters_to_url( self.get_admin_url("change", (quote(pk),)) ) node_info.update( url=node_url, move_url=self.get_admin_url("move", (quote(pk),)) ) return util.get_tree_from_queryset( qs, handle_create_node, max_level, self.item_label_field_name ) def tree_json_view(self: Union[ModelAdmin, "DjangoMpttAdminMixin"], request): request.current_app = self.admin_site.name node_id = request.GET.get("node") def get_max_level(): if node_id: node = self.model.objects.get(pk=node_id) return node.level + 1 else: return self.tree_load_on_demand max_level = get_max_level() change_list = self.get_change_list_for_tree(request, node_id, max_level) qs = change_list.get_queryset(request) qs = self.filter_tree_queryset(qs, request) tree_data = self.get_tree_data(qs, max_level, change_list.get_filters_params()) # Set safe to False because the data is a list instead of a dict return JsonResponse(tree_data, safe=False) def grid_view( self: Union[ModelAdmin, "DjangoMpttAdminMixin"], request, extra_context=None ): request.current_app = self.admin_site.name preserved_filters = self.get_preserved_filters(request) tree_url = add_preserved_filters( {"preserved_filters": preserved_filters, "opts": self.opts}, self.get_admin_url("changelist"), ) context = dict(tree_url=tree_url) if extra_context: context.update(extra_context) return super(DjangoMpttAdminMixin, self).changelist_view(request, context) def get_preserved_filters(self: Union[ModelAdmin, "DjangoMpttAdminMixin"], request): """ Override `get_preserved_filters` to make sure that it returns the current filters for the grid view. """ def must_return_current_filters(): match = request.resolver_match if not self.preserve_filters or not match: return False else: opts = self.opts current_url = "{0!s}:{1!s}".format(match.app_name, match.url_name) grid_url = "admin:{0!s}_{1!s}_grid".format( opts.app_label, opts.model_name ) return current_url == grid_url if must_return_current_filters(): # for the grid view return the current filters preserved_filters = request.GET.urlencode() return urlencode({"_changelist_filters": preserved_filters}) else: return super(DjangoMpttAdminMixin, self).get_preserved_filters(request) def filter_tree_queryset(self, queryset, request): """ Override 'filter_tree_queryset' to filter the queryset for the tree. """ return queryset def get_changeform_initial_data( self: Union[ModelAdmin, "DjangoMpttAdminMixin"], request ): initial_data = super(DjangoMpttAdminMixin, self).get_changeform_initial_data( request=request ) if "insert_at" in request.GET: initial_data[self.get_insert_at_field()] = request.GET.get("insert_at") return initial_data def get_insert_at_field(self): return "parent" def is_drag_and_drop_enabled(self) -> bool: # Override this method to disable drag-and-drop return True def get_tree_mouse_delay(self): return self.tree_mouse_delay ================================================ FILE: django_mptt_admin/locale/ca/LC_MESSAGES/django.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-03-12 11:48+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: django_mptt_admin/templates/django_mptt_admin/change_list.html:31 msgid "Filter" msgstr "Filtre" #: django_mptt_admin/templates/django_mptt_admin/change_list.html:42 msgid "Grid view" msgstr "Vista de quadrícula" #: django_mptt_admin/templates/django_mptt_admin/grid_view.html:7 msgid "Tree view" msgstr "Vista d'arbre" ================================================ FILE: django_mptt_admin/locale/ca/LC_MESSAGES/djangojs.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-03-12 11:51+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: django_mptt_admin/static/django_mptt_admin/django_mptt_admin.js:1 msgid "edit" msgstr "editar" #: django_mptt_admin/static/django_mptt_admin/django_mptt_admin.js:1 msgid "add" msgstr "afegir" #: django_mptt_admin/static/django_mptt_admin/django_mptt_admin.js:1 msgid "Error while loading the data from the server" msgstr "Error quan es carregaven les dades del servidor" #: django_mptt_admin/static/django_mptt_admin/django_mptt_admin.js:1 msgid "move failed" msgstr "moviment fallit" ================================================ FILE: django_mptt_admin/locale/de/LC_MESSAGES/django.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-01-22 09:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: templates/django_mptt_admin/change_list.html:31 msgid "Filter" msgstr "" #: templates/django_mptt_admin/change_list.html:42 msgid "Grid view" msgstr "Tabellenansicht" #: templates/django_mptt_admin/grid_view.html:7 msgid "Tree view" msgstr "Baumansicht" ================================================ FILE: django_mptt_admin/locale/de/LC_MESSAGES/djangojs.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-01-22 09:32+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "edit" msgstr "Bearbeiten" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "add" msgstr "Neu" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "Error while loading the data from the server" msgstr "Fehler beim Laden der Daten vom Server" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "move failed" msgstr "Verschieben fehlgeschlagen" ================================================ FILE: django_mptt_admin/locale/es/LC_MESSAGES/django.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-03-12 11:55+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: django_mptt_admin/templates/django_mptt_admin/change_list.html:31 msgid "Filter" msgstr "Filtro" #: django_mptt_admin/templates/django_mptt_admin/change_list.html:42 msgid "Grid view" msgstr "Vista de cuadrícula" #: django_mptt_admin/templates/django_mptt_admin/grid_view.html:7 msgid "Tree view" msgstr "Vista de árbol" ================================================ FILE: django_mptt_admin/locale/es/LC_MESSAGES/djangojs.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-03-12 11:56+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: django_mptt_admin/static/django_mptt_admin/django_mptt_admin.js:1 msgid "edit" msgstr "editar" #: django_mptt_admin/static/django_mptt_admin/django_mptt_admin.js:1 msgid "add" msgstr "añadir" #: django_mptt_admin/static/django_mptt_admin/django_mptt_admin.js:1 msgid "Error while loading the data from the server" msgstr "Error cuando se cargaban los datos del servidor" #: django_mptt_admin/static/django_mptt_admin/django_mptt_admin.js:1 msgid "move failed" msgstr "movimiento fallido" ================================================ FILE: django_mptt_admin/locale/fr/LC_MESSAGES/django.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-11-05 20:20+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: django_mptt_admin/templates/django_mptt_admin/change_list.html:30 msgid "Filter" msgstr "Filtre" #: django_mptt_admin/templates/django_mptt_admin/change_list.html:41 msgid "Grid view" msgstr "Vue Tableau" #: django_mptt_admin/templates/django_mptt_admin/grid_view.html:7 msgid "Tree view" msgstr "Vue arbre" ================================================ FILE: django_mptt_admin/locale/fr/LC_MESSAGES/djangojs.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-11-05 20:18+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "edit" msgstr "éditer" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "add" msgstr "ajouter" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "move failed" msgstr "déplacement échoué" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "Error while loading the data from the server" msgstr "Erreur en chargeant les données depuis le serveur" ================================================ FILE: django_mptt_admin/locale/he/LC_MESSAGES/django.po ================================================ msgid "" msgstr "" "Project-Id-Version: django-mptt-admin\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-11-10 15:29+0200\n" "PO-Revision-Date: 2014-11-10 15:30+0200\n" "Last-Translator: Udi Oron \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.5.7\n" msgid "Grid view" msgstr "תצוגה טבלאית" msgid "Tree view" msgstr "תצוגת עץ" ================================================ FILE: django_mptt_admin/locale/he/LC_MESSAGES/djangojs.po ================================================ msgid "" msgstr "" "Project-Id-Version: django-mptt-admin\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-11-10 15:29+0200\n" "PO-Revision-Date: 2014-11-10 15:30+0200\n" "Last-Translator: Udi Oron \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.5.7\n" msgid "edit" msgstr "עריכה" msgid "add" msgstr "הוספה" msgid "move failed" msgstr "ההעברה נכשלה" msgid "Error while loading the data from the server" msgstr "שגיאה במהלך שליחת הנתונים לשרת" ================================================ FILE: django_mptt_admin/locale/hu/LC_MESSAGES/django.po ================================================ msgid "" msgstr "" "Project-Id-Version: django-mptt-admin\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-11-21 14:32+0100\n" "PO-Revision-Date: 2016-11-21 14:32+0100\n" "Last-Translator: Istvan Farkas \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: .\templates\django_mptt_admin\change_list.html:30 msgid "Filter" msgstr "Szűrő" #: .\templates\django_mptt_admin\change_list.html:41 msgid "Grid view" msgstr "Táblázatos nézet" #: .\templates\django_mptt_admin\grid_view.html:7 msgid "Tree view" msgstr "Fa nézet" ================================================ FILE: django_mptt_admin/locale/hu/LC_MESSAGES/djangojs.po ================================================ msgid "" msgstr "" "Project-Id-Version: django-mptt-admin\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-11-21 14:32+0100\n" "PO-Revision-Date: 2016-11-21 14:32+0100\n" "Last-Translator: Istvan Farkas \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "edit" msgstr "szerkeszt" msgid "add" msgstr "új" msgid "move failed" msgstr "mozgatás sikertelen" msgid "Error while loading the data from the server" msgstr "Hiba történt az adatok betöltése közben" ================================================ FILE: django_mptt_admin/locale/pl/LC_MESSAGES/django.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-01-22 09:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: templates/django_mptt_admin/change_list.html:31 msgid "Filter" msgstr "Filtruj" #: templates/django_mptt_admin/change_list.html:42 msgid "Grid view" msgstr "Widok tabeli" #: templates/django_mptt_admin/grid_view.html:7 msgid "Tree view" msgstr "Widok drzewa" ================================================ FILE: django_mptt_admin/locale/pl/LC_MESSAGES/djangojs.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-01-22 09:32+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "edit" msgstr "zmień" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "add" msgstr "dodaj" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "Error while loading the data from the server" msgstr "Błąd podczas wczytywania danych z serwera" #: static/django_mptt_admin/django_mptt_admin.js:1 msgid "move failed" msgstr "przenoszenie nieudane" ================================================ FILE: django_mptt_admin/locale/ru/LC_MESSAGES/django.po ================================================ msgid "" msgstr "" "Project-Id-Version: django-mptt-admin\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-05-21 00:42+0300\n" "PO-Revision-Date: 2015-05-21 00:42+0300\n" "Last-Translator: Mikhail Silonov \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgid "Grid view" msgstr "В виде сетки" msgid "Tree view" msgstr "В виде дерева" ================================================ FILE: django_mptt_admin/locale/ru/LC_MESSAGES/djangojs.po ================================================ msgid "" msgstr "" "Project-Id-Version: django-mptt-admin\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-05-21 00:42+0300\n" "PO-Revision-Date: 2015-05-21 00:42+0300\n" "Last-Translator: Mikhail Silonov \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgid "edit" msgstr "редактировать" msgid "add" msgstr "Добавить" msgid "move failed" msgstr "не удалось переместить" msgid "Error while loading the data from the server" msgstr "Ошибка при загрузке данных с сервера" msgid "Grid view" msgstr "В виде сетки" msgid "Tree view" msgstr "В виде дерева" ================================================ FILE: django_mptt_admin/locale/tr/LC_MESSAGES/django.po ================================================ msgid "" msgstr "" "Project-Id-Version: django-mptt-admin\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-01-05 06:00+0300\n" "PO-Revision-Date: 2015-01-05 06:00+0300\n" "Last-Translator: Emir Tagmat \n" "Language-Team: \n" "Language: Turkish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" msgid "Grid view" msgstr "Tablo görünümü" msgid "Tree view" msgstr "Ağaç görünümü" ================================================ FILE: django_mptt_admin/locale/tr/LC_MESSAGES/djangojs.po ================================================ msgid "" msgstr "" "Project-Id-Version: django-mptt-admin\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-01-05 06:00+0300\n" "PO-Revision-Date: 2015-01-05 06:00+0300\n" "Last-Translator: Emir Tagmat \n" "Language-Team: \n" "Language: Turkish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" msgid "edit" msgstr "düzenle" msgid "add" msgstr "ekle" msgid "move failed" msgstr "taşıma başarısız" msgid "Error while loading the data from the server" msgstr "Veri sunucudan yüklenirken hata oluştu" ================================================ FILE: django_mptt_admin/static/django_mptt_admin/django_mptt_admin.css ================================================ ul.jqtree-tree { list-style: none outside; margin-left: 0; margin-bottom: 0; padding: 0; } ul.jqtree-tree.jqtree-dnd { touch-action: none; } ul.jqtree-tree ul.jqtree_common { list-style: none outside; margin-left: 12px; margin-right: 0; margin-bottom: 0; padding: 0; display: block; } ul.jqtree-tree li.jqtree-closed > ul.jqtree_common { display: none; } ul.jqtree-tree li.jqtree_common { clear: both; list-style-type: none; } ul.jqtree-tree .jqtree-toggler { border-bottom: none; color: #333; text-decoration: none; vertical-align: middle; } ul.jqtree-tree .jqtree-toggler:hover { color: #000; text-decoration: none; } ul.jqtree-tree .jqtree-toggler.jqtree-closed { background-position: 0 0; } ul.jqtree-tree .jqtree-toggler.jqtree-toggler-left { margin-right: 0.5em; } ul.jqtree-tree .jqtree-toggler.jqtree-toggler-right { margin-left: 0.5em; } ul.jqtree-tree .jqtree-element { cursor: pointer; position: relative; display: flex; } ul.jqtree-tree .jqtree-element:has(.jqtree-title-button-right) { display: block; } ul.jqtree-tree .jqtree-title { color: #1c4257; vertical-align: middle; } ul.jqtree-tree .jqtree-title-button-left { margin-left: 1.5em; } ul.jqtree-tree .jqtree-title-button-left.jqtree-title-folder { margin-left: 0; } ul.jqtree-tree li.jqtree-folder { margin-bottom: 4px; } ul.jqtree-tree li.jqtree-folder.jqtree-closed { margin-bottom: 1px; } ul.jqtree-tree li.jqtree-ghost { position: relative; z-index: 10; margin-right: 10px; } ul.jqtree-tree li.jqtree-ghost span { display: block; } ul.jqtree-tree li.jqtree-ghost span.jqtree-circle { border: solid 2px #0000ff; border-radius: 100px; height: 8px; width: 8px; position: absolute; top: -4px; left: -6px; box-sizing: border-box; } ul.jqtree-tree li.jqtree-ghost span.jqtree-line { background-color: #0000ff; height: 2px; padding: 0; position: absolute; top: -1px; left: 2px; width: 100%; } ul.jqtree-tree li.jqtree-ghost.jqtree-inside { margin-left: 48px; } ul.jqtree-tree span.jqtree-border { position: absolute; display: block; left: -2px; top: 0; border: solid 2px #0000ff; border-radius: 6px; margin: 0; box-sizing: content-box; } ul.jqtree-tree li.jqtree-selected > .jqtree-element, ul.jqtree-tree li.jqtree-selected > .jqtree-element:hover { background-color: #97bdd6; background: linear-gradient(#bee0f5, #89afca); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); } ul.jqtree-tree .jqtree-moving > .jqtree-element .jqtree-title { outline: dashed 1px #0000ff; } ul.jqtree-tree.jqtree-rtl { direction: rtl; } ul.jqtree-tree.jqtree-rtl ul.jqtree_common { margin-left: 0; margin-right: 12px; } ul.jqtree-tree.jqtree-rtl .jqtree-toggler { margin-left: 0.5em; margin-right: 0; } ul.jqtree-tree.jqtree-rtl .jqtree-title { margin-left: 0; margin-right: 1.5em; } ul.jqtree-tree.jqtree-rtl .jqtree-title.jqtree-title-folder { margin-right: 0; } ul.jqtree-tree.jqtree-rtl li.jqtree-ghost { margin-right: 0; margin-left: 10px; } ul.jqtree-tree.jqtree-rtl li.jqtree-ghost span.jqtree-circle { right: -6px; } ul.jqtree-tree.jqtree-rtl li.jqtree-ghost span.jqtree-line { right: 2px; } ul.jqtree-tree.jqtree-rtl li.jqtree-ghost.jqtree-inside { margin-left: 0; margin-right: 48px; } ul.jqtree-tree.jqtree-rtl span.jqtree-border { right: -2px; } span.jqtree-dragging { color: #fff; background: #000; opacity: 0.6; cursor: pointer; padding: 2px 8px; } @keyframes jqtree-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #changelist { border: none; } #tree { padding: 1em 0 1em 0; } #tree .mptt-admin-error { color: var(--error-fg); margin-left: 8px; } #tree ul.jqtree-tree .jqtree-toggler { top: 10%; color: var(--link-fg); text-decoration: none; } #tree ul.jqtree-tree .edit { margin-left: 0.5em; vertical-align: middle; color: var(--link-fg); } #tree ul.jqtree-tree ul.jqtree_common { margin-top: 0; } #tree ul.jqtree-tree li.jqtree_common { padding: 0; } #tree ul.jqtree-tree.jqtree-rtl .edit { margin-left: 0; margin-right: 0.5em; } #tree .jqtree-spin { margin-left: 1em; width: 1em; height: 1em; border: 2px solid var(--body-fg); border-bottom-color: transparent; border-radius: 50%; display: inline-block; box-sizing: border-box; animation: jqtree-spin 1s linear infinite; vertical-align: middle; } #tree.block-style ul.jqtree-tree { margin-left: 0; margin-right: 0; } #tree.block-style ul.jqtree-tree ul.jqtree_common { margin-left: 2em; } #tree.block-style ul.jqtree-tree .jqtree-element { margin-bottom: 8px; background-color: var(--darkened-bg); padding: 8px; } #tree.block-style ul.jqtree-tree .jqtree-element .jqtree-title { color: var(--body-fg); margin-left: 0; margin-right: 0; } #tree.block-style ul.jqtree-tree .jqtree-element .jqtree-toggler.jqtree-toggler-right { margin-left: 1em; } #tree.block-style ul.jqtree-tree li.jqtree-selected > .jqtree-element { background: var(--breadcrumbs-bg); color: var(--header-color); text-shadow: none; } #tree.block-style ul.jqtree-tree li.jqtree-selected > .jqtree-element .jqtree-title { color: var(--breadcrumbs-link-fg); } #tree.block-style ul.jqtree-tree li.jqtree-selected > .jqtree-element .edit { color: var(--breadcrumbs-fg); } #tree.block-style ul.jqtree-tree.jqtree-rtl ul.jqtree_common { margin-left: 0; margin-right: 2em; } #tree.block-style ul.jqtree-tree.jqtree-rtl .jqtree-toggler.jqtree-toggler-right { margin-left: 0; margin-right: 1em; } /*# sourceMappingURL=django_mptt_admin.css.map */ ================================================ FILE: django_mptt_admin/static/django_mptt_admin/django_mptt_admin.debug.js ================================================ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 163 (__unused_webpack_module, exports) { "use strict"; var __webpack_unused_export__; __webpack_unused_export__ = ({ value: true }); __webpack_unused_export__ = parseCookie; exports.qg = parseCookie; __webpack_unused_export__ = stringifyCookie; __webpack_unused_export__ = stringifySetCookie; __webpack_unused_export__ = stringifySetCookie; __webpack_unused_export__ = parseSetCookie; __webpack_unused_export__ = stringifySetCookie; __webpack_unused_export__ = stringifySetCookie; /** * RegExp to match cookie-name in RFC 6265 sec 4.1.1 * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2 * which has been replaced by the token definition in RFC 7230 appendix B. * * cookie-name = token * token = 1*tchar * tchar = "!" / "#" / "$" / "%" / "&" / "'" / * "*" / "+" / "-" / "." / "^" / "_" / * "`" / "|" / "~" / DIGIT / ALPHA * * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191 * Allow same range as cookie value, except `=`, which delimits end of name. */ const cookieNameRegExp = /^[\u0021-\u003A\u003C\u003E-\u007E]+$/; /** * RegExp to match cookie-value in RFC 6265 sec 4.1.1 * * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E * ; US-ASCII characters excluding CTLs, * ; whitespace DQUOTE, comma, semicolon, * ; and backslash * * Allowing more characters: https://github.com/jshttp/cookie/issues/191 * Comma, backslash, and DQUOTE are not part of the parsing algorithm. */ const cookieValueRegExp = /^[\u0021-\u003A\u003C-\u007E]*$/; /** * RegExp to match domain-value in RFC 6265 sec 4.1.1 * * domain-value = * ; defined in [RFC1034], Section 3.5, as * ; enhanced by [RFC1123], Section 2.1 * =