From 51dcd2cbb545b049efc02fb0e8002b0fc181f49f Mon Sep 17 00:00:00 2001 From: Mike van den Hoek Date: Thu, 3 Oct 2024 12:25:17 +0200 Subject: [PATCH 01/11] (temp): use signicat BSN when digid is initially empty --- src/Blocks/Zaken/Block.php | 25 +++++++++++++++++++++---- src/Resolvers/DigiDBsnResolver.php | 14 ++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/Blocks/Zaken/Block.php b/src/Blocks/Zaken/Block.php index 70389dc..88975f7 100644 --- a/src/Blocks/Zaken/Block.php +++ b/src/Blocks/Zaken/Block.php @@ -9,11 +9,12 @@ use OWC\Zaaksysteem\Endpoints\Filter\ResultaattypenFilter; use OWC\Zaaksysteem\Endpoints\Filter\ZakenFilter; use OWC\Zaaksysteem\Entities\Zaaktype; -use function OWC\Zaaksysteem\Foundation\Helpers\resolve; -use function OWC\Zaaksysteem\Foundation\Helpers\view; use OWC\Zaaksysteem\Resolvers\ContainerResolver; use OWC\Zaaksysteem\Support\Collection; +use function OWC\Zaaksysteem\Foundation\Helpers\resolve; +use function OWC\Zaaksysteem\Foundation\Helpers\view; + class Block { protected Client $client; @@ -58,7 +59,23 @@ public function render($attributes, $rendered, $editor) protected function getCurrentUserBsn(): string { - return resolve('digid.current_user_bsn'); + $bsn = resolve('digid.current_user_bsn'); + + /** + * TEMP: signicat plugin has some changes pending which requires another implementation. + */ + if (empty($bsn)) { + $isLoggedIn = apply_filters('owc_siginicat_openid_is_user_logged_in', false, 'digid'); + + if ($isLoggedIn) { + $userInfo = apply_filters('owc_signicat_openid_user_info', [], 'digid'); + $bsn = $userInfo['sub'] ?? ''; + } + + return ! empty($bsn) && is_string($bsn) ? $bsn : ''; + } + + return $bsn; } protected function handleZaken(array $attributes): Collection @@ -105,7 +122,7 @@ protected function getCombinedZaken(array $attributes): Collection try { $zaken[] = $client->zaken()->filter($filter)->all(); - } catch(Exception $e) { + } catch (Exception $e) { continue; } } diff --git a/src/Resolvers/DigiDBsnResolver.php b/src/Resolvers/DigiDBsnResolver.php index 92ff6f3..b6b55d7 100644 --- a/src/Resolvers/DigiDBsnResolver.php +++ b/src/Resolvers/DigiDBsnResolver.php @@ -30,6 +30,20 @@ public function bsn(): string $bsn = resolve('session')->getSegment('digid')->get('bsn'); + /** + * TEMP: signicat plugin has some changes pending which requires another implementation. + */ + if (empty($bsn)) { + $isLoggedIn = apply_filters('owc_siginicat_openid_is_user_logged_in', false, 'digid'); + + if ($isLoggedIn) { + $userInfo = apply_filters('owc_signicat_openid_user_info', [], 'digid'); + $bsn = $userInfo['sub'] ?? ''; + } + + return ! empty($bsn) && is_string($bsn) ? $bsn : ''; + } + return ! empty($bsn) && is_string($bsn) ? decrypt($bsn) : ''; } From 38d4f76645035e84bb87782728a503a8b4365ea3 Mon Sep 17 00:00:00 2001 From: Mike van den Hoek Date: Mon, 7 Oct 2024 10:46:20 +0200 Subject: [PATCH 02/11] (feat): implement mijn taken --- TODO.md | 3 +- config/container.php | 20 +- resources/dist/build/editor.js | 447 +--- resources/dist/build/zaak-frontend.js | 1880 +---------------- resources/dist/build/zaak-styles.css | 754 ++++++- resources/dist/build/zaak-styles.js | 46 +- resources/js/editor/index.js | 3 +- resources/js/editor/mijn-taken.js | 261 +++ resources/js/editor/register-blocks.js | 2 +- resources/scss/style.scss | 21 +- resources/scss/taak/taak-card.scss | 137 ++ resources/scss/taak/taak-content.scss | 5 + .../mijn-taken/overview-taken-current.php | 15 + .../blocks/mijn-taken/overview-taken.php | 25 + .../mijn-taken/taak-collapse-button.php | 9 + .../blocks/mijn-taken/tabs-view/taak-card.php | 28 + src/Blocks/Taken/Block.php | 170 ++ src/Blocks/Taken/Taken.php | 38 + src/Blocks/Taken/index.php | 3 + src/Clients/RxMission/Authenticator.php | 4 +- src/Clients/RxMission/Client.php | 4 + src/Clients/Xxllnc/Authenticator.php | 4 +- src/Clients/Xxllnc/Client.php | 4 + src/Contracts/AbstractClient.php | 22 +- src/Contracts/AbstractTokenAuthenticator.php | 6 + src/Contracts/TokenAuthenticator.php | 1 + src/Endpoints/Endpoint.php | 16 +- src/Endpoints/Filter/TakenFilter.php | 43 + src/Endpoints/TakenEndpoint.php | 25 + src/Entities/Taak.php | 27 + src/GravityForms/GravityFormsAddon.php | 24 + .../GravityFormsServiceProvider.php | 2 + src/Http/WordPress/WordPressRequestClient.php | 1 + 33 files changed, 1819 insertions(+), 2231 deletions(-) create mode 100644 resources/js/editor/mijn-taken.js create mode 100644 resources/scss/taak/taak-card.scss create mode 100644 resources/scss/taak/taak-content.scss create mode 100644 resources/views/blocks/mijn-taken/overview-taken-current.php create mode 100644 resources/views/blocks/mijn-taken/overview-taken.php create mode 100644 resources/views/blocks/mijn-taken/taak-collapse-button.php create mode 100644 resources/views/blocks/mijn-taken/tabs-view/taak-card.php create mode 100644 src/Blocks/Taken/Block.php create mode 100644 src/Blocks/Taken/Taken.php create mode 100644 src/Blocks/Taken/index.php create mode 100644 src/Endpoints/Filter/TakenFilter.php create mode 100644 src/Endpoints/TakenEndpoint.php create mode 100644 src/Entities/Taak.php diff --git a/TODO.md b/TODO.md index 4e6e5c3..cc0f81a 100644 --- a/TODO.md +++ b/TODO.md @@ -1,3 +1,4 @@ # TO-DO -- Originele aanvraag. +- Preprare generic form for altering the 'Taak' status +- Single page 'Taak' with form combined diff --git a/config/container.php b/config/container.php index e11271a..ca96524 100644 --- a/config/container.php +++ b/config/container.php @@ -95,6 +95,12 @@ 'rx.client_secret' => function (Container $container) { return $container->make('gf.setting', ['-rx-mission-client-secret']); }, + 'rx.mijn_taken_uri' => function (Container $container) { + return $container->make('gf.setting', ['-rx-mission-mijn-taken-url']); + }, + 'rx.mijn_taken_api_key' => function (Container $container) { + return $container->make('gf.setting', ['-rx-mission-mijn-taken-api-key']); + }, 'rx.authenticator' => function (Container $container) { return $container->get(Clients\RxMission\Authenticator::class); }, @@ -122,6 +128,12 @@ 'xxllnc.client_secret' => function (Container $container) { return $container->make('gf.setting', ['-xxllnc-client-secret']); }, + 'xxllnc.mijn_taken_uri' => function (Container $container) { + return $container->make('gf.setting', ['-xxllnc-mijn-taken-url']); + }, + 'xxllnc.mijn_taken_api_key' => function (Container $container) { + return $container->make('gf.setting', ['-xxllnc-mijn-taken-api-key']); + }, 'xxllnc.authenticator' => function (Container $container) { return $container->get(Clients\Xxllnc\Authenticator::class); }, @@ -223,6 +235,7 @@ $container->get('rx.zaken_uri'), $container->get('rx.catalogi_uri'), $container->get('rx.documenten_uri'), + $container->get('rx.mijn_taken_uri') ); }, @@ -235,6 +248,7 @@ $container->get('xxllnc.zaken_uri'), $container->get('xxllnc.catalogi_uri'), $container->get('xxllnc.documenten_uri'), + $container->get('xxllnc.mijn_taken_uri') ); }, @@ -270,14 +284,16 @@ Clients\RxMission\Authenticator::class => function (Container $container) { return new Clients\RxMission\Authenticator( $container->get('rx.client_id'), - $container->get('rx.client_secret') + $container->get('rx.client_secret'), + $container->get('rx.mijn_taken_api_key') ); }, Clients\Xxllnc\Authenticator::class => function (Container $container) { return new Clients\Xxllnc\Authenticator( $container->get('xxllnc.client_id'), - $container->get('xxllnc.client_secret') + $container->get('xxllnc.client_secret'), + $container->get('xxllnc.mijn_taken_api_key') ); }, diff --git a/resources/dist/build/editor.js b/resources/dist/build/editor.js index 474f93a..8ae8767 100644 --- a/resources/dist/build/editor.js +++ b/resources/dist/build/editor.js @@ -1,392 +1,52 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ 682: +/***/ "./resources/js/editor/index.js": +/*!**************************************!*\ + !*** ./resources/js/editor/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _register_blocks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./register-blocks */ \"./resources/js/editor/register-blocks.js\");\n/* harmony import */ var _register_blocks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_register_blocks__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mijn_zaken__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mijn-zaken */ \"./resources/js/editor/mijn-zaken.js\");\n/* harmony import */ var _mijn_zaken__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_mijn_zaken__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _mijn_taken__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mijn-taken */ \"./resources/js/editor/mijn-taken.js\");\n/* harmony import */ var _mijn_taken__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_mijn_taken__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./resources/js/editor/index.js?"); + +/***/ }), + +/***/ "./resources/js/editor/mijn-taken.js": +/*!*******************************************!*\ + !*** ./resources/js/editor/mijn-taken.js ***! + \*******************************************/ +/***/ (() => { + +eval("var registerBlockType = wp.blocks.registerBlockType;\nvar _wp = wp,\n ServerSideRender = _wp.serverSideRender;\nvar _wp$blockEditor = wp.blockEditor,\n useBlockProps = _wp$blockEditor.useBlockProps,\n InspectorControls = _wp$blockEditor.InspectorControls;\nvar _wp$components = wp.components,\n Panel = _wp$components.Panel,\n PanelBody = _wp$components.PanelBody,\n SelectControl = _wp$components.SelectControl,\n RangeControl = _wp$components.RangeControl;\nvar Fragment = wp.element.Fragment;\nregisterBlockType('owc/mijn-taken', {\n apiVersion: 2,\n title: 'Mijn Taken',\n category: 'common',\n attributes: {\n zaakClient: {\n type: 'string',\n \"default\": 'openzaak'\n },\n view: {\n type: 'string',\n \"default\": 'default'\n },\n numberOfItems: {\n type: 'number',\n \"default\": 2\n }\n },\n edit: function edit(_ref) {\n var attributes = _ref.attributes,\n setAttributes = _ref.setAttributes;\n var blockProps = useBlockProps();\n var zaakClient = attributes.zaakClient;\n return /*#__PURE__*/React.createElement(\"div\", blockProps, /*#__PURE__*/React.createElement(InspectorControls, null, /*#__PURE__*/React.createElement(Panel, null, /*#__PURE__*/React.createElement(PanelBody, {\n title: \"Zaaksysteem\",\n initialOpen: false\n }, /*#__PURE__*/React.createElement(\"p\", null, \"Selecteer het zaaksysteem waaruit de taken opgehaald moeten worden.\"), /*#__PURE__*/React.createElement(SelectControl, {\n label: \"Zaaksysteem\",\n value: zaakClient,\n options: [{\n label: 'OpenZaak',\n value: 'openzaak'\n }, {\n label: 'Decos JOIN',\n value: 'decos-join'\n }, {\n label: 'Rx.Mission',\n value: 'rx-mission'\n }, {\n label: 'xxllnc',\n value: 'xxllnc'\n }, {\n label: 'Procura',\n value: 'procura'\n }],\n onChange: function onChange(newzaakClient) {\n return setAttributes({\n zaakClient: newzaakClient\n });\n }\n })), attributes.view === 'current' && /*#__PURE__*/React.createElement(PanelBody, null, /*#__PURE__*/React.createElement(RangeControl, {\n min: 1,\n max: 20,\n label: \"Aantal\",\n help: \"Het aantal taken dat getoond moeten worden.\",\n value: attributes.numberOfItems,\n onChange: function onChange(value) {\n return setAttributes({\n numberOfItems: value\n });\n }\n })), /*#__PURE__*/React.createElement(PanelBody, {\n title: \"Weergave\",\n initialOpen: false\n }, /*#__PURE__*/React.createElement(SelectControl, {\n label: \"Selecteer de weergave van de taken\",\n value: attributes.view,\n options: [{\n label: 'Standaard',\n value: 'default'\n }, {\n label: 'Lopende Zaken',\n value: 'current'\n }],\n onChange: function onChange(newView) {\n return setAttributes({\n view: newView\n });\n }\n })))), attributes.view === 'default' ? /*#__PURE__*/React.createElement(\"p\", null, \"Standaardweergave\") : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"zaak-tabs | nav nav-tabs\",\n id: \"zaak-tabs\",\n role: \"tablist\"\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"nav-item\",\n role: \"presentation\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"zaak-tabs-link | nav-link active\"\n }, \"Lopende taken\")), /*#__PURE__*/React.createElement(\"li\", {\n className: \"nav-item\",\n role: \"presentation\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"zaak-tabs-link | nav-link\"\n }, \"Afgeronde taken\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"tab-content\",\n id: \"myTabContent\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"tab-pane fade show active\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-wrapper\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card\"\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-svg\",\n width: \"385\",\n height: \"200\",\n viewBox: \"0 0 385 200\",\n fill: \"#F1F1F1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z\"\n })), /*#__PURE__*/React.createElement(\"h2\", {\n className: \"zaak-card-title\"\n }, \"Aanvragen uittreksel BRP\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-footer\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-date\"\n }, \"12 december 2023\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-tag\"\n }, \"Dummy content\"), /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-arrow\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z\"\n })))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card\"\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-svg\",\n width: \"385\",\n height: \"200\",\n viewBox: \"0 0 385 200\",\n fill: \"#F1F1F1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z\"\n })), /*#__PURE__*/React.createElement(\"h2\", {\n className: \"zaak-card-title\"\n }, \"Aanmelden straatfeest\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-footer\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-date\"\n }, \"15 oktober 2023\"), /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-arrow\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z\"\n })))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card\"\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-svg\",\n width: \"385\",\n height: \"200\",\n viewBox: \"0 0 385 200\",\n fill: \"#F1F1F1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z\"\n })), /*#__PURE__*/React.createElement(\"h2\", {\n className: \"zaak-card-title\"\n }, \"Aanvraag rijbewijs\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-footer\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-date\"\n }, \"20 januari 2023\"), /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-arrow\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z\"\n })))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card\"\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-svg\",\n width: \"385\",\n height: \"200\",\n viewBox: \"0 0 385 200\",\n fill: \"#F1F1F1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z\"\n })), /*#__PURE__*/React.createElement(\"h2\", {\n className: \"zaak-card-title\"\n }, \"Aanvragen leefbaarheidsbudget\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-footer\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-date\"\n }, \"11 januari 2023\"), /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-arrow\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z\"\n })))))))));\n },\n save: function save(_ref2) {\n var className = _ref2.className;\n return /*#__PURE__*/React.createElement(\"section\", {\n className: className\n });\n }\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./resources/js/editor/mijn-taken.js?"); + +/***/ }), + +/***/ "./resources/js/editor/mijn-zaken.js": +/*!*******************************************!*\ + !*** ./resources/js/editor/mijn-zaken.js ***! + \*******************************************/ /***/ (function() { -var _this = this; -var registerBlockType = wp.blocks.registerBlockType; -var _wp = wp, - ServerSideRender = _wp.serverSideRender; -var _wp$blockEditor = wp.blockEditor, - useBlockProps = _wp$blockEditor.useBlockProps, - RichText = _wp$blockEditor.RichText, - InspectorControls = _wp$blockEditor.InspectorControls, - BlockControls = _wp$blockEditor.BlockControls, - AlignmentToolbar = _wp$blockEditor.AlignmentToolbar, - ColorPalette = _wp$blockEditor.ColorPalette, - MediaUploadCheck = _wp$blockEditor.MediaUploadCheck, - MediaUpload = _wp$blockEditor.MediaUpload; -var _wp$components = wp.components, - Panel = _wp$components.Panel, - PanelBody = _wp$components.PanelBody, - PanelRow = _wp$components.PanelRow, - Button = _wp$components.Button, - TextControl = _wp$components.TextControl, - IconButton = _wp$components.IconButton, - SelectControl = _wp$components.SelectControl, - CheckboxControl = _wp$components.CheckboxControl, - RangeControl = _wp$components.RangeControl; -var Fragment = wp.element.Fragment; -registerBlockType('owc/mijn-zaken', { - apiVersion: 2, - title: 'Mijn Zaken', - category: 'common', - attributes: { - zaakClient: { - type: 'string', - "default": 'openzaak' - }, - zaaktypeFilter: { - type: 'string', - "default": '[]' - }, - updateMePlease: { - type: 'boolean', - "default": true - }, - combinedClients: { - type: 'boolean', - "default": false - }, - byBSN: { - type: 'boolean', - "default": true - }, - view: { - type: 'string', - "default": 'default' - }, - numberOfItems: { - type: 'number', - "default": 2 - }, - orderBy: { - type: 'string', - "default": 'startdatum' - } - }, - edit: function edit(_ref) { - var attributes = _ref.attributes, - setAttributes = _ref.setAttributes; - var blockProps = useBlockProps(); - var zaakClient = attributes.zaakClient, - zaaktypeFilter = attributes.zaaktypeFilter, - updateMePlease = attributes.updateMePlease, - combinedClients = attributes.combinedClients, - byBSN = attributes.byBSN, - orderBy = attributes.orderBy; - var zaaktypeFilterArr = JSON.parse(zaaktypeFilter); - var addZTFilter = function addZTFilter() { - zaaktypeFilterArr.push(''); - setAttributes({ - zaaktypeFilter: JSON.stringify(zaaktypeFilterArr), - updateMePlease: !updateMePlease - }); - }; - var changeZTFilter = function changeZTFilter(ztUri, index) { - zaaktypeFilterArr[index] = ztUri; - setAttributes({ - zaaktypeFilter: JSON.stringify(zaaktypeFilterArr), - updateMePlease: !updateMePlease - }); - }; - var removeZTFilter = function removeZTFilter(index) { - zaaktypeFilterArr.splice(index, 1); - setAttributes({ - zaaktypeFilter: JSON.stringify(zaaktypeFilterArr), - updateMePlease: !updateMePlease - }); - }; - var zaaktypeFields = zaaktypeFilterArr.map(function (location, index) { - return /*#__PURE__*/React.createElement(Fragment, { - key: index - }, /*#__PURE__*/React.createElement(TextControl, { - className: "ogz-ztfilter_add", - placeholder: "B1026", - value: zaaktypeFilterArr[index], - onChange: function onChange(ztUri) { - return changeZTFilter(ztUri, index); - } - }), /*#__PURE__*/React.createElement(IconButton, { - className: "ogz-ztfilter_remove", - icon: "no-alt", - label: "Verwijder Zaaktype filter", - onClick: function onClick() { - return removeZTFilter(index); - } - })); - }); - return /*#__PURE__*/React.createElement("div", blockProps, /*#__PURE__*/React.createElement(InspectorControls, null, /*#__PURE__*/React.createElement(Panel, null, /*#__PURE__*/React.createElement(PanelBody, { - title: "Zaaksysteem", - initialOpen: false - }, /*#__PURE__*/React.createElement("p", null, "Selecteer het zaaksysteem waaruit de zaken opgehaald moeten worden."), /*#__PURE__*/React.createElement(SelectControl, { - label: "Zaaksysteem", - value: zaakClient, - options: [{ - label: 'OpenZaak', - value: 'openzaak' - }, { - label: 'Decos JOIN', - value: 'decos-join' - }, { - label: 'Rx.Mission', - value: 'rx-mission' - }, { - label: 'xxllnc', - value: 'xxllnc' - }, { - label: 'Procura', - value: 'procura' - }], - onChange: function onChange(newzaakClient) { - return setAttributes({ - zaakClient: newzaakClient - }); - } - }), /*#__PURE__*/React.createElement(CheckboxControl, { - label: "Gecombineerde zaaksystemen", - help: "Toon zaken uit gecombineerde zaaksystemen.", - checked: combinedClients, - onChange: function onChange(combinedClients) { - return setAttributes({ - combinedClients: combinedClients - }); - } - }), /*#__PURE__*/React.createElement(CheckboxControl, { - label: "Filter op BSN", - help: "Filter zaken die aangemaakt zijn door de ingelogde gebruiker op basis van het BSN nummer.", - checked: byBSN, - onChange: function onChange(byBSN) { - return setAttributes({ - byBSN: byBSN - }); - } - }), /*#__PURE__*/React.createElement(SelectControl, { - label: "Sorteer op", - value: orderBy, - options: [{ - label: 'Startdatum', - value: 'startdatum' - }, { - label: 'Einddatum', - value: 'einddatum' - }, { - label: 'Publicatiedatum', - value: 'publicatiedatum' - }, { - label: 'Archiefactiedatum', - value: 'archiefactiedatum' - }, { - label: 'Registratiedatum', - value: 'registratiedatum' - }, { - label: 'Identificatie', - value: 'identificatie' - }], - onChange: function onChange(neworderBy) { - return setAttributes({ - orderBy: neworderBy - }); - } - })), /*#__PURE__*/React.createElement(PanelBody, { - title: "Zaaktype configuratie", - initialOpen: false - }, /*#__PURE__*/React.createElement(PanelRow, null, "Zaaktypes"), zaaktypeFields, /*#__PURE__*/React.createElement(Button, { - isDefault: true, - icon: "plus", - onClick: addZTFilter.bind(_this) - }, "Voeg een Zaaktype identificatie toe")), attributes.view === 'current' && /*#__PURE__*/React.createElement(PanelBody, null, /*#__PURE__*/React.createElement(RangeControl, { - min: 1, - max: 20, - label: "Aantal", - help: "Het aantal zaken dat getoond moeten worden.", - value: attributes.numberOfItems, - onChange: function onChange(value) { - return setAttributes({ - numberOfItems: value - }); - } - })), /*#__PURE__*/React.createElement(PanelBody, { - title: "Weergave", - initialOpen: false - }, /*#__PURE__*/React.createElement(SelectControl, { - label: "Selecteer de weergave van de zaken", - value: attributes.view, - options: [{ - label: 'Standaard', - value: 'default' - }, { - label: 'Tabbladen', - value: 'tabs' - }, { - label: 'Lopende Zaken', - value: 'current' - }], - onChange: function onChange(newView) { - return setAttributes({ - view: newView - }); - } - })))), attributes.view === 'default' ? /*#__PURE__*/React.createElement("p", null, "Standaardweergave") : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("ul", { - className: "zaak-tabs | nav nav-tabs", - id: "zaak-tabs", - role: "tablist" - }, /*#__PURE__*/React.createElement("li", { - className: "nav-item", - role: "presentation" - }, /*#__PURE__*/React.createElement("button", { - className: "zaak-tabs-link | nav-link active" - }, "Lopende zaken")), /*#__PURE__*/React.createElement("li", { - className: "nav-item", - role: "presentation" - }, /*#__PURE__*/React.createElement("button", { - className: "zaak-tabs-link | nav-link" - }, "Afgeronde zaken"))), /*#__PURE__*/React.createElement("div", { - className: "tab-content", - id: "myTabContent" - }, /*#__PURE__*/React.createElement("div", { - className: "tab-pane fade show active" - }, /*#__PURE__*/React.createElement("div", { - className: "zaak-card-wrapper" - }, /*#__PURE__*/React.createElement("div", { - className: "zaak-card" - }, /*#__PURE__*/React.createElement("svg", { - className: "zaak-card-svg", - width: "385", - height: "200", - viewBox: "0 0 385 200", - fill: "#F1F1F1", - xmlns: "http://www.w3.org/2000/svg", - preserveAspectRatio: "none" - }, /*#__PURE__*/React.createElement("path", { - d: "M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z" - })), /*#__PURE__*/React.createElement("h2", { - className: "zaak-card-title" - }, "Aanvragen uittreksel BRP"), /*#__PURE__*/React.createElement("div", { - className: "zaak-card-footer" - }, /*#__PURE__*/React.createElement("div", { - className: "zaak-card-date" - }, "12 december 2023"), /*#__PURE__*/React.createElement("div", { - className: "zaak-card-tag" - }, "Dummy content"), /*#__PURE__*/React.createElement("svg", { - className: "zaak-card-arrow", - width: "24", - height: "24", - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" - }, /*#__PURE__*/React.createElement("path", { - d: "M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z" - })))), /*#__PURE__*/React.createElement("div", { - className: "zaak-card" - }, /*#__PURE__*/React.createElement("svg", { - className: "zaak-card-svg", - width: "385", - height: "200", - viewBox: "0 0 385 200", - fill: "#F1F1F1", - xmlns: "http://www.w3.org/2000/svg", - preserveAspectRatio: "none" - }, /*#__PURE__*/React.createElement("path", { - d: "M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z" - })), /*#__PURE__*/React.createElement("h2", { - className: "zaak-card-title" - }, "Aanmelden straatfeest"), /*#__PURE__*/React.createElement("div", { - className: "zaak-card-footer" - }, /*#__PURE__*/React.createElement("div", { - className: "zaak-card-date" - }, "15 oktober 2023"), /*#__PURE__*/React.createElement("svg", { - className: "zaak-card-arrow", - width: "24", - height: "24", - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" - }, /*#__PURE__*/React.createElement("path", { - d: "M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z" - })))), /*#__PURE__*/React.createElement("div", { - className: "zaak-card" - }, /*#__PURE__*/React.createElement("svg", { - className: "zaak-card-svg", - width: "385", - height: "200", - viewBox: "0 0 385 200", - fill: "#F1F1F1", - xmlns: "http://www.w3.org/2000/svg", - preserveAspectRatio: "none" - }, /*#__PURE__*/React.createElement("path", { - d: "M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z" - })), /*#__PURE__*/React.createElement("h2", { - className: "zaak-card-title" - }, "Aanvraag rijbewijs"), /*#__PURE__*/React.createElement("div", { - className: "zaak-card-footer" - }, /*#__PURE__*/React.createElement("div", { - className: "zaak-card-date" - }, "20 januari 2023"), /*#__PURE__*/React.createElement("svg", { - className: "zaak-card-arrow", - width: "24", - height: "24", - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" - }, /*#__PURE__*/React.createElement("path", { - d: "M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z" - })))), /*#__PURE__*/React.createElement("div", { - className: "zaak-card" - }, /*#__PURE__*/React.createElement("svg", { - className: "zaak-card-svg", - width: "385", - height: "200", - viewBox: "0 0 385 200", - fill: "#F1F1F1", - xmlns: "http://www.w3.org/2000/svg", - preserveAspectRatio: "none" - }, /*#__PURE__*/React.createElement("path", { - d: "M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z" - })), /*#__PURE__*/React.createElement("h2", { - className: "zaak-card-title" - }, "Aanvragen leefbaarheidsbudget"), /*#__PURE__*/React.createElement("div", { - className: "zaak-card-footer" - }, /*#__PURE__*/React.createElement("div", { - className: "zaak-card-date" - }, "11 januari 2023"), /*#__PURE__*/React.createElement("svg", { - className: "zaak-card-arrow", - width: "24", - height: "24", - viewBox: "0 0 24 24", - xmlns: "http://www.w3.org/2000/svg" - }, /*#__PURE__*/React.createElement("path", { - d: "M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z" - }))))))))); - }, - save: function save(_ref2) { - var className = _ref2.className; - return /*#__PURE__*/React.createElement("section", { - className: className - }); - } -}); +eval("var _this = this;\nvar registerBlockType = wp.blocks.registerBlockType;\nvar _wp = wp,\n ServerSideRender = _wp.serverSideRender;\nvar _wp$blockEditor = wp.blockEditor,\n useBlockProps = _wp$blockEditor.useBlockProps,\n RichText = _wp$blockEditor.RichText,\n InspectorControls = _wp$blockEditor.InspectorControls,\n BlockControls = _wp$blockEditor.BlockControls,\n AlignmentToolbar = _wp$blockEditor.AlignmentToolbar,\n ColorPalette = _wp$blockEditor.ColorPalette,\n MediaUploadCheck = _wp$blockEditor.MediaUploadCheck,\n MediaUpload = _wp$blockEditor.MediaUpload;\nvar _wp$components = wp.components,\n Panel = _wp$components.Panel,\n PanelBody = _wp$components.PanelBody,\n PanelRow = _wp$components.PanelRow,\n Button = _wp$components.Button,\n TextControl = _wp$components.TextControl,\n IconButton = _wp$components.IconButton,\n SelectControl = _wp$components.SelectControl,\n CheckboxControl = _wp$components.CheckboxControl,\n RangeControl = _wp$components.RangeControl;\nvar Fragment = wp.element.Fragment;\nregisterBlockType('owc/mijn-zaken', {\n apiVersion: 2,\n title: 'Mijn Zaken',\n category: 'common',\n attributes: {\n zaakClient: {\n type: 'string',\n \"default\": 'openzaak'\n },\n zaaktypeFilter: {\n type: 'string',\n \"default\": '[]'\n },\n updateMePlease: {\n type: 'boolean',\n \"default\": true\n },\n combinedClients: {\n type: 'boolean',\n \"default\": false\n },\n byBSN: {\n type: 'boolean',\n \"default\": true\n },\n view: {\n type: 'string',\n \"default\": 'default'\n },\n numberOfItems: {\n type: 'number',\n \"default\": 2\n },\n orderBy: {\n type: 'string',\n \"default\": 'startdatum'\n }\n },\n edit: function edit(_ref) {\n var attributes = _ref.attributes,\n setAttributes = _ref.setAttributes;\n var blockProps = useBlockProps();\n var zaakClient = attributes.zaakClient,\n zaaktypeFilter = attributes.zaaktypeFilter,\n updateMePlease = attributes.updateMePlease,\n combinedClients = attributes.combinedClients,\n byBSN = attributes.byBSN,\n orderBy = attributes.orderBy;\n var zaaktypeFilterArr = JSON.parse(zaaktypeFilter);\n var addZTFilter = function addZTFilter() {\n zaaktypeFilterArr.push('');\n setAttributes({\n zaaktypeFilter: JSON.stringify(zaaktypeFilterArr),\n updateMePlease: !updateMePlease\n });\n };\n var changeZTFilter = function changeZTFilter(ztUri, index) {\n zaaktypeFilterArr[index] = ztUri;\n setAttributes({\n zaaktypeFilter: JSON.stringify(zaaktypeFilterArr),\n updateMePlease: !updateMePlease\n });\n };\n var removeZTFilter = function removeZTFilter(index) {\n zaaktypeFilterArr.splice(index, 1);\n setAttributes({\n zaaktypeFilter: JSON.stringify(zaaktypeFilterArr),\n updateMePlease: !updateMePlease\n });\n };\n var zaaktypeFields = zaaktypeFilterArr.map(function (location, index) {\n return /*#__PURE__*/React.createElement(Fragment, {\n key: index\n }, /*#__PURE__*/React.createElement(TextControl, {\n className: \"ogz-ztfilter_add\",\n placeholder: \"B1026\",\n value: zaaktypeFilterArr[index],\n onChange: function onChange(ztUri) {\n return changeZTFilter(ztUri, index);\n }\n }), /*#__PURE__*/React.createElement(IconButton, {\n className: \"ogz-ztfilter_remove\",\n icon: \"no-alt\",\n label: \"Verwijder Zaaktype filter\",\n onClick: function onClick() {\n return removeZTFilter(index);\n }\n }));\n });\n return /*#__PURE__*/React.createElement(\"div\", blockProps, /*#__PURE__*/React.createElement(InspectorControls, null, /*#__PURE__*/React.createElement(Panel, null, /*#__PURE__*/React.createElement(PanelBody, {\n title: \"Zaaksysteem\",\n initialOpen: false\n }, /*#__PURE__*/React.createElement(\"p\", null, \"Selecteer het zaaksysteem waaruit de zaken opgehaald moeten worden.\"), /*#__PURE__*/React.createElement(SelectControl, {\n label: \"Zaaksysteem\",\n value: zaakClient,\n options: [{\n label: 'OpenZaak',\n value: 'openzaak'\n }, {\n label: 'Decos JOIN',\n value: 'decos-join'\n }, {\n label: 'Rx.Mission',\n value: 'rx-mission'\n }, {\n label: 'xxllnc',\n value: 'xxllnc'\n }, {\n label: 'Procura',\n value: 'procura'\n }],\n onChange: function onChange(newzaakClient) {\n return setAttributes({\n zaakClient: newzaakClient\n });\n }\n }), /*#__PURE__*/React.createElement(CheckboxControl, {\n label: \"Gecombineerde zaaksystemen\",\n help: \"Toon zaken uit gecombineerde zaaksystemen.\",\n checked: combinedClients,\n onChange: function onChange(combinedClients) {\n return setAttributes({\n combinedClients: combinedClients\n });\n }\n }), /*#__PURE__*/React.createElement(CheckboxControl, {\n label: \"Filter op BSN\",\n help: \"Filter zaken die aangemaakt zijn door de ingelogde gebruiker op basis van het BSN nummer.\",\n checked: byBSN,\n onChange: function onChange(byBSN) {\n return setAttributes({\n byBSN: byBSN\n });\n }\n }), /*#__PURE__*/React.createElement(SelectControl, {\n label: \"Sorteer op\",\n value: orderBy,\n options: [{\n label: 'Startdatum',\n value: 'startdatum'\n }, {\n label: 'Einddatum',\n value: 'einddatum'\n }, {\n label: 'Publicatiedatum',\n value: 'publicatiedatum'\n }, {\n label: 'Archiefactiedatum',\n value: 'archiefactiedatum'\n }, {\n label: 'Registratiedatum',\n value: 'registratiedatum'\n }, {\n label: 'Identificatie',\n value: 'identificatie'\n }],\n onChange: function onChange(neworderBy) {\n return setAttributes({\n orderBy: neworderBy\n });\n }\n })), /*#__PURE__*/React.createElement(PanelBody, {\n title: \"Zaaktype configuratie\",\n initialOpen: false\n }, /*#__PURE__*/React.createElement(PanelRow, null, \"Zaaktypes\"), zaaktypeFields, /*#__PURE__*/React.createElement(Button, {\n isDefault: true,\n icon: \"plus\",\n onClick: addZTFilter.bind(_this)\n }, \"Voeg een Zaaktype identificatie toe\")), attributes.view === 'current' && /*#__PURE__*/React.createElement(PanelBody, null, /*#__PURE__*/React.createElement(RangeControl, {\n min: 1,\n max: 20,\n label: \"Aantal\",\n help: \"Het aantal zaken dat getoond moeten worden.\",\n value: attributes.numberOfItems,\n onChange: function onChange(value) {\n return setAttributes({\n numberOfItems: value\n });\n }\n })), /*#__PURE__*/React.createElement(PanelBody, {\n title: \"Weergave\",\n initialOpen: false\n }, /*#__PURE__*/React.createElement(SelectControl, {\n label: \"Selecteer de weergave van de zaken\",\n value: attributes.view,\n options: [{\n label: 'Standaard',\n value: 'default'\n }, {\n label: 'Tabbladen',\n value: 'tabs'\n }, {\n label: 'Lopende Zaken',\n value: 'current'\n }],\n onChange: function onChange(newView) {\n return setAttributes({\n view: newView\n });\n }\n })))), attributes.view === 'default' ? /*#__PURE__*/React.createElement(\"p\", null, \"Standaardweergave\") : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"zaak-tabs | nav nav-tabs\",\n id: \"zaak-tabs\",\n role: \"tablist\"\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"nav-item\",\n role: \"presentation\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"zaak-tabs-link | nav-link active\"\n }, \"Lopende zaken\")), /*#__PURE__*/React.createElement(\"li\", {\n className: \"nav-item\",\n role: \"presentation\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"zaak-tabs-link | nav-link\"\n }, \"Afgeronde zaken\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"tab-content\",\n id: \"myTabContent\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"tab-pane fade show active\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-wrapper\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card\"\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-svg\",\n width: \"385\",\n height: \"200\",\n viewBox: \"0 0 385 200\",\n fill: \"#F1F1F1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z\"\n })), /*#__PURE__*/React.createElement(\"h2\", {\n className: \"zaak-card-title\"\n }, \"Aanvragen uittreksel BRP\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-footer\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-date\"\n }, \"12 december 2023\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-tag\"\n }, \"Dummy content\"), /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-arrow\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z\"\n })))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card\"\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-svg\",\n width: \"385\",\n height: \"200\",\n viewBox: \"0 0 385 200\",\n fill: \"#F1F1F1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z\"\n })), /*#__PURE__*/React.createElement(\"h2\", {\n className: \"zaak-card-title\"\n }, \"Aanmelden straatfeest\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-footer\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-date\"\n }, \"15 oktober 2023\"), /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-arrow\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z\"\n })))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card\"\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-svg\",\n width: \"385\",\n height: \"200\",\n viewBox: \"0 0 385 200\",\n fill: \"#F1F1F1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z\"\n })), /*#__PURE__*/React.createElement(\"h2\", {\n className: \"zaak-card-title\"\n }, \"Aanvraag rijbewijs\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-footer\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-date\"\n }, \"20 januari 2023\"), /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-arrow\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z\"\n })))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card\"\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-svg\",\n width: \"385\",\n height: \"200\",\n viewBox: \"0 0 385 200\",\n fill: \"#F1F1F1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M260.532 17.39L249.736 1.32659C249.179 0.497369 248.246 0 247.246 0H3C1.34315 0 0 1.34314 0 3V197C0 198.657 1.34315 200 3.00001 200H381.485C383.142 200 384.485 198.657 384.485 197V109.358V21.7166C384.485 20.0597 383.142 18.7166 381.485 18.7166H263.022C262.023 18.7166 261.089 18.2192 260.532 17.39Z\"\n })), /*#__PURE__*/React.createElement(\"h2\", {\n className: \"zaak-card-title\"\n }, \"Aanvragen leefbaarheidsbudget\"), /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-footer\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"zaak-card-date\"\n }, \"11 januari 2023\"), /*#__PURE__*/React.createElement(\"svg\", {\n className: \"zaak-card-arrow\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2929 5.29289C12.6834 4.90237 13.3166 4.90237 13.7071 5.29289L19.7071 11.2929C19.8946 11.4804 20 11.7348 20 12C20 12.2652 19.8946 12.5196 19.7071 12.7071L13.7071 18.7071C13.3166 19.0976 12.6834 19.0976 12.2929 18.7071C11.9024 18.3166 11.9024 17.6834 12.2929 17.2929L16.5858 13L5 13C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11L16.5858 11L12.2929 6.70711C11.9024 6.31658 11.9024 5.68342 12.2929 5.29289Z\"\n })))))))));\n },\n save: function save(_ref2) {\n var className = _ref2.className;\n return /*#__PURE__*/React.createElement(\"section\", {\n className: className\n });\n }\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./resources/js/editor/mijn-zaken.js?"); /***/ }), -/***/ 788: +/***/ "./resources/js/editor/register-blocks.js": +/*!************************************************!*\ + !*** ./resources/js/editor/register-blocks.js ***! + \************************************************/ /***/ (() => { -var registerBlockType = wp.blocks.registerBlockType; -var _wp = wp, - ServerSideRender = _wp.serverSideRender; -registerBlockType("owc/gravityforms-zaaksysteem", { - title: "Zaken", - category: "theme", - edit: function edit() { - return /*#__PURE__*/React.createElement(ServerSideRender, { - block: "owc/gravityforms-zaaksysteem" - }); - }, - save: function save() { - return function () { - return null; - }; - } -}); +eval("var registerBlockType = wp.blocks.registerBlockType;\nvar _wp = wp,\n ServerSideRender = _wp.serverSideRender;\nregisterBlockType(\"owc/gravityforms-zaaksysteem\", {\n title: \"Zaken\",\n category: \"theme\",\n edit: function edit() {\n return /*#__PURE__*/React.createElement(ServerSideRender, {\n block: \"owc/gravityforms-zaaksysteem\"\n });\n },\n save: function save() {\n return function () {\n return null;\n };\n }\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./resources/js/editor/register-blocks.js?"); /***/ }) @@ -446,18 +106,23 @@ registerBlockType("owc/gravityforms-zaaksysteem", { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ /************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/* harmony import */ var _register_blocks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(788); -/* harmony import */ var _register_blocks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_register_blocks__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _mijn_zaken__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(682); -/* harmony import */ var _mijn_zaken__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_mijn_zaken__WEBPACK_IMPORTED_MODULE_1__); - - -})(); - +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module can't be inlined because the eval devtool is used. +/******/ var __webpack_exports__ = __webpack_require__("./resources/js/editor/index.js"); +/******/ /******/ })() ; \ No newline at end of file diff --git a/resources/dist/build/zaak-frontend.js b/resources/dist/build/zaak-frontend.js index cdad395..49dd1f0 100644 --- a/resources/dist/build/zaak-frontend.js +++ b/resources/dist/build/zaak-frontend.js @@ -1,1838 +1,112 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ 832: +/***/ "./node_modules/bootstrap/js/dist/base-component.js": +/*!**********************************************************!*\ + !*** ./node_modules/bootstrap/js/dist/base-component.js ***! + \**********************************************************/ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/*! - * Bootstrap base-component.js v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - ( false ? 0 : _typeof(exports)) === 'object' && "object" !== 'undefined' ? module.exports = factory(__webpack_require__(814), __webpack_require__(441), __webpack_require__(44), __webpack_require__(552)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(814), __webpack_require__(441), __webpack_require__(44), __webpack_require__(552)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0); -})(this, function (Data, EventHandler, Config, index_js) { - 'use strict'; - - /** - * -------------------------------------------------------------------------- - * Bootstrap base-component.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - - /** - * Constants - */ - var VERSION = '5.3.3'; - - /** - * Class definition - */ - var BaseComponent = /*#__PURE__*/function (_Config) { - function BaseComponent(element, config) { - var _this; - _classCallCheck(this, BaseComponent); - _this = _callSuper(this, BaseComponent); - element = index_js.getElement(element); - if (!element) { - return _possibleConstructorReturn(_this); - } - _this._element = element; - _this._config = _this._getConfig(config); - Data.set(_this._element, _this.constructor.DATA_KEY, _this); - return _this; - } - - // Public - _inherits(BaseComponent, _Config); - return _createClass(BaseComponent, [{ - key: "dispose", - value: function dispose() { - Data.remove(this._element, this.constructor.DATA_KEY); - EventHandler.off(this._element, this.constructor.EVENT_KEY); - var _iterator = _createForOfIteratorHelper(Object.getOwnPropertyNames(this)), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var propertyName = _step.value; - this[propertyName] = null; - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - }, { - key: "_queueCallback", - value: function _queueCallback(callback, element) { - var isAnimated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - index_js.executeAfterTransition(callback, element, isAnimated); - } - }, { - key: "_getConfig", - value: function _getConfig(config) { - config = this._mergeConfigObj(config, this._element); - config = this._configAfterMerge(config); - this._typeCheckConfig(config); - return config; - } - - // Static - }], [{ - key: "getInstance", - value: function getInstance(element) { - return Data.get(index_js.getElement(element), this.DATA_KEY); - } - }, { - key: "getOrCreateInstance", - value: function getOrCreateInstance(element) { - var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return this.getInstance(element) || new this(element, _typeof(config) === 'object' ? config : null); - } - }, { - key: "VERSION", - get: function get() { - return VERSION; - } - }, { - key: "DATA_KEY", - get: function get() { - return "bs.".concat(this.NAME); - } - }, { - key: "EVENT_KEY", - get: function get() { - return ".".concat(this.DATA_KEY); - } - }, { - key: "eventName", - value: function eventName(name) { - return "".concat(name).concat(this.EVENT_KEY); - } - }]); - }(Config); - return BaseComponent; -}); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Bootstrap base-component.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === 'object' && \"object\" !== 'undefined' ? module.exports = factory(__webpack_require__(/*! ./dom/data.js */ \"./node_modules/bootstrap/js/dist/dom/data.js\"), __webpack_require__(/*! ./dom/event-handler.js */ \"./node_modules/bootstrap/js/dist/dom/event-handler.js\"), __webpack_require__(/*! ./util/config.js */ \"./node_modules/bootstrap/js/dist/util/config.js\"), __webpack_require__(/*! ./util/index.js */ \"./node_modules/bootstrap/js/dist/util/index.js\")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./dom/data */ \"./node_modules/bootstrap/js/dist/dom/data.js\"), __webpack_require__(/*! ./dom/event-handler */ \"./node_modules/bootstrap/js/dist/dom/event-handler.js\"), __webpack_require__(/*! ./util/config */ \"./node_modules/bootstrap/js/dist/util/config.js\"), __webpack_require__(/*! ./util/index */ \"./node_modules/bootstrap/js/dist/util/index.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(this, function (Data, EventHandler, Config, index_js) {\n 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n var VERSION = '5.3.3';\n\n /**\n * Class definition\n */\n var BaseComponent = /*#__PURE__*/function (_Config) {\n function BaseComponent(element, config) {\n var _this;\n _classCallCheck(this, BaseComponent);\n _this = _callSuper(this, BaseComponent);\n element = index_js.getElement(element);\n if (!element) {\n return _possibleConstructorReturn(_this);\n }\n _this._element = element;\n _this._config = _this._getConfig(config);\n Data.set(_this._element, _this.constructor.DATA_KEY, _this);\n return _this;\n }\n\n // Public\n _inherits(BaseComponent, _Config);\n return _createClass(BaseComponent, [{\n key: \"dispose\",\n value: function dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n var _iterator = _createForOfIteratorHelper(Object.getOwnPropertyNames(this)),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var propertyName = _step.value;\n this[propertyName] = null;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"_queueCallback\",\n value: function _queueCallback(callback, element) {\n var isAnimated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n index_js.executeAfterTransition(callback, element, isAnimated);\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n\n // Static\n }], [{\n key: \"getInstance\",\n value: function getInstance(element) {\n return Data.get(index_js.getElement(element), this.DATA_KEY);\n }\n }, {\n key: \"getOrCreateInstance\",\n value: function getOrCreateInstance(element) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.getInstance(element) || new this(element, _typeof(config) === 'object' ? config : null);\n }\n }, {\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return \"bs.\".concat(this.NAME);\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return \".\".concat(this.DATA_KEY);\n }\n }, {\n key: \"eventName\",\n value: function eventName(name) {\n return \"\".concat(name).concat(this.EVENT_KEY);\n }\n }]);\n }(Config);\n return BaseComponent;\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./node_modules/bootstrap/js/dist/base-component.js?"); /***/ }), -/***/ 888: +/***/ "./node_modules/bootstrap/js/dist/collapse.js": +/*!****************************************************!*\ + !*** ./node_modules/bootstrap/js/dist/collapse.js ***! + \****************************************************/ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/*! - * Bootstrap collapse.js v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - ( false ? 0 : _typeof(exports)) === 'object' && "object" !== 'undefined' ? module.exports = factory(__webpack_require__(832), __webpack_require__(441), __webpack_require__(374), __webpack_require__(552)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(832), __webpack_require__(441), __webpack_require__(374), __webpack_require__(552)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0); -})(this, function (BaseComponent, EventHandler, SelectorEngine, index_js) { - 'use strict'; - - /** - * -------------------------------------------------------------------------- - * Bootstrap collapse.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - - /** - * Constants - */ - var NAME = 'collapse'; - var DATA_KEY = 'bs.collapse'; - var EVENT_KEY = ".".concat(DATA_KEY); - var DATA_API_KEY = '.data-api'; - var EVENT_SHOW = "show".concat(EVENT_KEY); - var EVENT_SHOWN = "shown".concat(EVENT_KEY); - var EVENT_HIDE = "hide".concat(EVENT_KEY); - var EVENT_HIDDEN = "hidden".concat(EVENT_KEY); - var EVENT_CLICK_DATA_API = "click".concat(EVENT_KEY).concat(DATA_API_KEY); - var CLASS_NAME_SHOW = 'show'; - var CLASS_NAME_COLLAPSE = 'collapse'; - var CLASS_NAME_COLLAPSING = 'collapsing'; - var CLASS_NAME_COLLAPSED = 'collapsed'; - var CLASS_NAME_DEEPER_CHILDREN = ":scope .".concat(CLASS_NAME_COLLAPSE, " .").concat(CLASS_NAME_COLLAPSE); - var CLASS_NAME_HORIZONTAL = 'collapse-horizontal'; - var WIDTH = 'width'; - var HEIGHT = 'height'; - var SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'; - var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]'; - var Default = { - parent: null, - toggle: true - }; - var DefaultType = { - parent: '(null|element)', - toggle: 'boolean' - }; - - /** - * Class definition - */ - var Collapse = /*#__PURE__*/function (_BaseComponent) { - function Collapse(element, config) { - var _this; - _classCallCheck(this, Collapse); - _this = _callSuper(this, Collapse, [element, config]); - _this._isTransitioning = false; - _this._triggerArray = []; - var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE); - var _iterator = _createForOfIteratorHelper(toggleList), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var elem = _step.value; - var selector = SelectorEngine.getSelectorFromElement(elem); - var filterElement = SelectorEngine.find(selector).filter(function (foundElement) { - return foundElement === _this._element; - }); - if (selector !== null && filterElement.length) { - _this._triggerArray.push(elem); - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - _this._initializeChildren(); - if (!_this._config.parent) { - _this._addAriaAndCollapsedClass(_this._triggerArray, _this._isShown()); - } - if (_this._config.toggle) { - _this.toggle(); - } - return _this; - } - - // Getters - _inherits(Collapse, _BaseComponent); - return _createClass(Collapse, [{ - key: "toggle", - value: - // Public - function toggle() { - if (this._isShown()) { - this.hide(); - } else { - this.show(); - } - } - }, { - key: "show", - value: function show() { - var _this2 = this; - if (this._isTransitioning || this._isShown()) { - return; - } - var activeChildren = []; - - // find active children - if (this._config.parent) { - activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(function (element) { - return element !== _this2._element; - }).map(function (element) { - return Collapse.getOrCreateInstance(element, { - toggle: false - }); - }); - } - if (activeChildren.length && activeChildren[0]._isTransitioning) { - return; - } - var startEvent = EventHandler.trigger(this._element, EVENT_SHOW); - if (startEvent.defaultPrevented) { - return; - } - var _iterator2 = _createForOfIteratorHelper(activeChildren), - _step2; - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var activeInstance = _step2.value; - activeInstance.hide(); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - var dimension = this._getDimension(); - this._element.classList.remove(CLASS_NAME_COLLAPSE); - this._element.classList.add(CLASS_NAME_COLLAPSING); - this._element.style[dimension] = 0; - this._addAriaAndCollapsedClass(this._triggerArray, true); - this._isTransitioning = true; - var complete = function complete() { - _this2._isTransitioning = false; - _this2._element.classList.remove(CLASS_NAME_COLLAPSING); - _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); - _this2._element.style[dimension] = ''; - EventHandler.trigger(_this2._element, EVENT_SHOWN); - }; - var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); - var scrollSize = "scroll".concat(capitalizedDimension); - this._queueCallback(complete, this._element, true); - this._element.style[dimension] = "".concat(this._element[scrollSize], "px"); - } - }, { - key: "hide", - value: function hide() { - var _this3 = this; - if (this._isTransitioning || !this._isShown()) { - return; - } - var startEvent = EventHandler.trigger(this._element, EVENT_HIDE); - if (startEvent.defaultPrevented) { - return; - } - var dimension = this._getDimension(); - this._element.style[dimension] = "".concat(this._element.getBoundingClientRect()[dimension], "px"); - index_js.reflow(this._element); - this._element.classList.add(CLASS_NAME_COLLAPSING); - this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); - var _iterator3 = _createForOfIteratorHelper(this._triggerArray), - _step3; - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var trigger = _step3.value; - var element = SelectorEngine.getElementFromSelector(trigger); - if (element && !this._isShown(element)) { - this._addAriaAndCollapsedClass([trigger], false); - } - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - this._isTransitioning = true; - var complete = function complete() { - _this3._isTransitioning = false; - _this3._element.classList.remove(CLASS_NAME_COLLAPSING); - _this3._element.classList.add(CLASS_NAME_COLLAPSE); - EventHandler.trigger(_this3._element, EVENT_HIDDEN); - }; - this._element.style[dimension] = ''; - this._queueCallback(complete, this._element, true); - } - }, { - key: "_isShown", - value: function _isShown() { - var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._element; - return element.classList.contains(CLASS_NAME_SHOW); - } - - // Private - }, { - key: "_configAfterMerge", - value: function _configAfterMerge(config) { - config.toggle = Boolean(config.toggle); // Coerce string values - config.parent = index_js.getElement(config.parent); - return config; - } - }, { - key: "_getDimension", - value: function _getDimension() { - return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; - } - }, { - key: "_initializeChildren", - value: function _initializeChildren() { - if (!this._config.parent) { - return; - } - var children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE); - var _iterator4 = _createForOfIteratorHelper(children), - _step4; - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var element = _step4.value; - var selected = SelectorEngine.getElementFromSelector(element); - if (selected) { - this._addAriaAndCollapsedClass([element], this._isShown(selected)); - } - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - } - }, { - key: "_getFirstLevelChildren", - value: function _getFirstLevelChildren(selector) { - var children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); - // remove children if greater depth - return SelectorEngine.find(selector, this._config.parent).filter(function (element) { - return !children.includes(element); - }); - } - }, { - key: "_addAriaAndCollapsedClass", - value: function _addAriaAndCollapsedClass(triggerArray, isOpen) { - if (!triggerArray.length) { - return; - } - var _iterator5 = _createForOfIteratorHelper(triggerArray), - _step5; - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var element = _step5.value; - element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); - element.setAttribute('aria-expanded', isOpen); - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - } - - // Static - }], [{ - key: "Default", - get: function get() { - return Default; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType; - } - }, { - key: "NAME", - get: function get() { - return NAME; - } - }, { - key: "jQueryInterface", - value: function jQueryInterface(config) { - var _config = {}; - if (typeof config === 'string' && /show|hide/.test(config)) { - _config.toggle = false; - } - return this.each(function () { - var data = Collapse.getOrCreateInstance(this, _config); - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"".concat(config, "\"")); - } - data[config](); - } - }); - } - }]); - }(BaseComponent); - /** - * Data API implementation - */ - EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { - // preventDefault only for elements (which change the URL) not inside the collapsible element - if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { - event.preventDefault(); - } - var _iterator6 = _createForOfIteratorHelper(SelectorEngine.getMultipleElementsFromSelector(this)), - _step6; - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var element = _step6.value; - Collapse.getOrCreateInstance(element, { - toggle: false - }).toggle(); - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - }); - - /** - * jQuery - */ - - index_js.defineJQueryPlugin(Collapse); - return Collapse; -}); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Bootstrap collapse.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === 'object' && \"object\" !== 'undefined' ? module.exports = factory(__webpack_require__(/*! ./base-component.js */ \"./node_modules/bootstrap/js/dist/base-component.js\"), __webpack_require__(/*! ./dom/event-handler.js */ \"./node_modules/bootstrap/js/dist/dom/event-handler.js\"), __webpack_require__(/*! ./dom/selector-engine.js */ \"./node_modules/bootstrap/js/dist/dom/selector-engine.js\"), __webpack_require__(/*! ./util/index.js */ \"./node_modules/bootstrap/js/dist/util/index.js\")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./base-component */ \"./node_modules/bootstrap/js/dist/base-component.js\"), __webpack_require__(/*! ./dom/event-handler */ \"./node_modules/bootstrap/js/dist/dom/event-handler.js\"), __webpack_require__(/*! ./dom/selector-engine */ \"./node_modules/bootstrap/js/dist/dom/selector-engine.js\"), __webpack_require__(/*! ./util/index */ \"./node_modules/bootstrap/js/dist/util/index.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(this, function (BaseComponent, EventHandler, SelectorEngine, index_js) {\n 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n var NAME = 'collapse';\n var DATA_KEY = 'bs.collapse';\n var EVENT_KEY = \".\".concat(DATA_KEY);\n var DATA_API_KEY = '.data-api';\n var EVENT_SHOW = \"show\".concat(EVENT_KEY);\n var EVENT_SHOWN = \"shown\".concat(EVENT_KEY);\n var EVENT_HIDE = \"hide\".concat(EVENT_KEY);\n var EVENT_HIDDEN = \"hidden\".concat(EVENT_KEY);\n var EVENT_CLICK_DATA_API = \"click\".concat(EVENT_KEY).concat(DATA_API_KEY);\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_COLLAPSE = 'collapse';\n var CLASS_NAME_COLLAPSING = 'collapsing';\n var CLASS_NAME_COLLAPSED = 'collapsed';\n var CLASS_NAME_DEEPER_CHILDREN = \":scope .\".concat(CLASS_NAME_COLLAPSE, \" .\").concat(CLASS_NAME_COLLAPSE);\n var CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\n var WIDTH = 'width';\n var HEIGHT = 'height';\n var SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]';\n var Default = {\n parent: null,\n toggle: true\n };\n var DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n };\n\n /**\n * Class definition\n */\n var Collapse = /*#__PURE__*/function (_BaseComponent) {\n function Collapse(element, config) {\n var _this;\n _classCallCheck(this, Collapse);\n _this = _callSuper(this, Collapse, [element, config]);\n _this._isTransitioning = false;\n _this._triggerArray = [];\n var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE);\n var _iterator = _createForOfIteratorHelper(toggleList),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var elem = _step.value;\n var selector = SelectorEngine.getSelectorFromElement(elem);\n var filterElement = SelectorEngine.find(selector).filter(function (foundElement) {\n return foundElement === _this._element;\n });\n if (selector !== null && filterElement.length) {\n _this._triggerArray.push(elem);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n _this._initializeChildren();\n if (!_this._config.parent) {\n _this._addAriaAndCollapsedClass(_this._triggerArray, _this._isShown());\n }\n if (_this._config.toggle) {\n _this.toggle();\n }\n return _this;\n }\n\n // Getters\n _inherits(Collapse, _BaseComponent);\n return _createClass(Collapse, [{\n key: \"toggle\",\n value:\n // Public\n function toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n }, {\n key: \"show\",\n value: function show() {\n var _this2 = this;\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n var activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(function (element) {\n return element !== _this2._element;\n }).map(function (element) {\n return Collapse.getOrCreateInstance(element, {\n toggle: false\n });\n });\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n var startEvent = EventHandler.trigger(this._element, EVENT_SHOW);\n if (startEvent.defaultPrevented) {\n return;\n }\n var _iterator2 = _createForOfIteratorHelper(activeChildren),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var activeInstance = _step2.value;\n activeInstance.hide();\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n var dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n var complete = function complete() {\n _this2._isTransitioning = false;\n _this2._element.classList.remove(CLASS_NAME_COLLAPSING);\n _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n _this2._element.style[dimension] = '';\n EventHandler.trigger(_this2._element, EVENT_SHOWN);\n };\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\".concat(capitalizedDimension);\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = \"\".concat(this._element[scrollSize], \"px\");\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this3 = this;\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n var startEvent = EventHandler.trigger(this._element, EVENT_HIDE);\n if (startEvent.defaultPrevented) {\n return;\n }\n var dimension = this._getDimension();\n this._element.style[dimension] = \"\".concat(this._element.getBoundingClientRect()[dimension], \"px\");\n index_js.reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n var _iterator3 = _createForOfIteratorHelper(this._triggerArray),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var trigger = _step3.value;\n var element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n this._isTransitioning = true;\n var complete = function complete() {\n _this3._isTransitioning = false;\n _this3._element.classList.remove(CLASS_NAME_COLLAPSING);\n _this3._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(_this3._element, EVENT_HIDDEN);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n }, {\n key: \"_isShown\",\n value: function _isShown() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._element;\n return element.classList.contains(CLASS_NAME_SHOW);\n }\n\n // Private\n }, {\n key: \"_configAfterMerge\",\n value: function _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = index_js.getElement(config.parent);\n return config;\n }\n }, {\n key: \"_getDimension\",\n value: function _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n }, {\n key: \"_initializeChildren\",\n value: function _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n var children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);\n var _iterator4 = _createForOfIteratorHelper(children),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var element = _step4.value;\n var selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n }, {\n key: \"_getFirstLevelChildren\",\n value: function _getFirstLevelChildren(selector) {\n var children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(function (element) {\n return !children.includes(element);\n });\n }\n }, {\n key: \"_addAriaAndCollapsedClass\",\n value: function _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n var _iterator5 = _createForOfIteratorHelper(triggerArray),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var element = _step5.value;\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n\n // Static\n }], [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n var _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n return this.each(function () {\n var data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n data[config]();\n }\n });\n }\n }]);\n }(BaseComponent);\n /**\n * Data API implementation\n */\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n var _iterator6 = _createForOfIteratorHelper(SelectorEngine.getMultipleElementsFromSelector(this)),\n _step6;\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var element = _step6.value;\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n });\n\n /**\n * jQuery\n */\n\n index_js.defineJQueryPlugin(Collapse);\n return Collapse;\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./node_modules/bootstrap/js/dist/collapse.js?"); /***/ }), -/***/ 814: +/***/ "./node_modules/bootstrap/js/dist/dom/data.js": +/*!****************************************************!*\ + !*** ./node_modules/bootstrap/js/dist/dom/data.js ***! + \****************************************************/ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/*! - * Bootstrap data.js v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - ( false ? 0 : _typeof(exports)) === 'object' && "object" !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : - __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0); -})(this, function () { - 'use strict'; - - /** - * -------------------------------------------------------------------------- - * Bootstrap dom/data.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - - /** - * Constants - */ - var elementMap = new Map(); - var data = { - set: function set(element, key, instance) { - if (!elementMap.has(element)) { - elementMap.set(element, new Map()); - } - var instanceMap = elementMap.get(element); - - // make it clear we only want one instance per element - // can be removed later when multiple key/instances are fine to be used - if (!instanceMap.has(key) && instanceMap.size !== 0) { - // eslint-disable-next-line no-console - console.error("Bootstrap doesn't allow more than one instance per element. Bound instance: ".concat(Array.from(instanceMap.keys())[0], ".")); - return; - } - instanceMap.set(key, instance); - }, - get: function get(element, key) { - if (elementMap.has(element)) { - return elementMap.get(element).get(key) || null; - } - return null; - }, - remove: function remove(element, key) { - if (!elementMap.has(element)) { - return; - } - var instanceMap = elementMap.get(element); - instanceMap["delete"](key); - - // free up element references if there are no instances left for an element - if (instanceMap.size === 0) { - elementMap["delete"](element); - } - } - }; - return data; -}); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Bootstrap data.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === 'object' && \"object\" !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(this, function () {\n 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n var elementMap = new Map();\n var data = {\n set: function set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n var instanceMap = elementMap.get(element);\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(\"Bootstrap doesn't allow more than one instance per element. Bound instance: \".concat(Array.from(instanceMap.keys())[0], \".\"));\n return;\n }\n instanceMap.set(key, instance);\n },\n get: function get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n return null;\n },\n remove: function remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n var instanceMap = elementMap.get(element);\n instanceMap[\"delete\"](key);\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap[\"delete\"](element);\n }\n }\n };\n return data;\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./node_modules/bootstrap/js/dist/dom/data.js?"); /***/ }), -/***/ 441: +/***/ "./node_modules/bootstrap/js/dist/dom/event-handler.js": +/*!*************************************************************!*\ + !*** ./node_modules/bootstrap/js/dist/dom/event-handler.js ***! + \*************************************************************/ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } -function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/*! - * Bootstrap event-handler.js v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - ( false ? 0 : _typeof(exports)) === 'object' && "object" !== 'undefined' ? module.exports = factory(__webpack_require__(552)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(552)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0); -})(this, function (index_js) { - 'use strict'; - - /** - * -------------------------------------------------------------------------- - * Bootstrap dom/event-handler.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - - /** - * Constants - */ - var namespaceRegex = /[^.]*(?=\..*)\.|.*/; - var stripNameRegex = /\..*/; - var stripUidRegex = /::\d+$/; - var eventRegistry = {}; // Events storage - var uidEvent = 1; - var customEvents = { - mouseenter: 'mouseover', - mouseleave: 'mouseout' - }; - var nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); - - /** - * Private methods - */ - - function makeEventUid(element, uid) { - return uid && "".concat(uid, "::").concat(uidEvent++) || element.uidEvent || uidEvent++; - } - function getElementEvents(element) { - var uid = makeEventUid(element); - element.uidEvent = uid; - eventRegistry[uid] = eventRegistry[uid] || {}; - return eventRegistry[uid]; - } - function bootstrapHandler(element, fn) { - return function handler(event) { - hydrateObj(event, { - delegateTarget: element - }); - if (handler.oneOff) { - EventHandler.off(element, event.type, fn); - } - return fn.apply(element, [event]); - }; - } - function bootstrapDelegationHandler(element, selector, fn) { - return function handler(event) { - var domElements = element.querySelectorAll(selector); - for (var target = event.target; target && target !== this; target = target.parentNode) { - var _iterator = _createForOfIteratorHelper(domElements), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var domElement = _step.value; - if (domElement !== target) { - continue; - } - hydrateObj(event, { - delegateTarget: target - }); - if (handler.oneOff) { - EventHandler.off(element, event.type, selector, fn); - } - return fn.apply(target, [event]); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - }; - } - function findHandler(events, callable) { - var delegationSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - return Object.values(events).find(function (event) { - return event.callable === callable && event.delegationSelector === delegationSelector; - }); - } - function normalizeParameters(originalTypeEvent, handler, delegationFunction) { - var isDelegated = typeof handler === 'string'; - // TODO: tooltip passes `false` instead of selector, so we need to check - var callable = isDelegated ? delegationFunction : handler || delegationFunction; - var typeEvent = getTypeEvent(originalTypeEvent); - if (!nativeEvents.has(typeEvent)) { - typeEvent = originalTypeEvent; - } - return [isDelegated, callable, typeEvent]; - } - function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { - if (typeof originalTypeEvent !== 'string' || !element) { - return; - } - var _normalizeParameters = normalizeParameters(originalTypeEvent, handler, delegationFunction), - _normalizeParameters2 = _slicedToArray(_normalizeParameters, 3), - isDelegated = _normalizeParameters2[0], - callable = _normalizeParameters2[1], - typeEvent = _normalizeParameters2[2]; - - // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position - // this prevents the handler from being dispatched the same way as mouseover or mouseout does - if (originalTypeEvent in customEvents) { - var wrapFunction = function wrapFunction(fn) { - return function (event) { - if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { - return fn.call(this, event); - } - }; - }; - callable = wrapFunction(callable); - } - var events = getElementEvents(element); - var handlers = events[typeEvent] || (events[typeEvent] = {}); - var previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); - if (previousFunction) { - previousFunction.oneOff = previousFunction.oneOff && oneOff; - return; - } - var uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, '')); - var fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); - fn.delegationSelector = isDelegated ? handler : null; - fn.callable = callable; - fn.oneOff = oneOff; - fn.uidEvent = uid; - handlers[uid] = fn; - element.addEventListener(typeEvent, fn, isDelegated); - } - function removeHandler(element, events, typeEvent, handler, delegationSelector) { - var fn = findHandler(events[typeEvent], handler, delegationSelector); - if (!fn) { - return; - } - element.removeEventListener(typeEvent, fn, Boolean(delegationSelector)); - delete events[typeEvent][fn.uidEvent]; - } - function removeNamespacedHandlers(element, events, typeEvent, namespace) { - var storeElementEvent = events[typeEvent] || {}; - for (var _i = 0, _Object$entries = Object.entries(storeElementEvent); _i < _Object$entries.length; _i++) { - var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), - handlerKey = _Object$entries$_i[0], - event = _Object$entries$_i[1]; - if (handlerKey.includes(namespace)) { - removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); - } - } - } - function getTypeEvent(event) { - // allow to get the native events from namespaced events ('click.bs.button' --> 'click') - event = event.replace(stripNameRegex, ''); - return customEvents[event] || event; - } - var EventHandler = { - on: function on(element, event, handler, delegationFunction) { - addHandler(element, event, handler, delegationFunction, false); - }, - one: function one(element, event, handler, delegationFunction) { - addHandler(element, event, handler, delegationFunction, true); - }, - off: function off(element, originalTypeEvent, handler, delegationFunction) { - if (typeof originalTypeEvent !== 'string' || !element) { - return; - } - var _normalizeParameters3 = normalizeParameters(originalTypeEvent, handler, delegationFunction), - _normalizeParameters4 = _slicedToArray(_normalizeParameters3, 3), - isDelegated = _normalizeParameters4[0], - callable = _normalizeParameters4[1], - typeEvent = _normalizeParameters4[2]; - var inNamespace = typeEvent !== originalTypeEvent; - var events = getElementEvents(element); - var storeElementEvent = events[typeEvent] || {}; - var isNamespace = originalTypeEvent.startsWith('.'); - if (typeof callable !== 'undefined') { - // Simplest case: handler is passed, remove that listener ONLY. - if (!Object.keys(storeElementEvent).length) { - return; - } - removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); - return; - } - if (isNamespace) { - for (var _i2 = 0, _Object$keys = Object.keys(events); _i2 < _Object$keys.length; _i2++) { - var elementEvent = _Object$keys[_i2]; - removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); - } - } - for (var _i3 = 0, _Object$entries2 = Object.entries(storeElementEvent); _i3 < _Object$entries2.length; _i3++) { - var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2), - keyHandlers = _Object$entries2$_i[0], - event = _Object$entries2$_i[1]; - var handlerKey = keyHandlers.replace(stripUidRegex, ''); - if (!inNamespace || originalTypeEvent.includes(handlerKey)) { - removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); - } - } - }, - trigger: function trigger(element, event, args) { - if (typeof event !== 'string' || !element) { - return null; - } - var $ = index_js.getjQuery(); - var typeEvent = getTypeEvent(event); - var inNamespace = event !== typeEvent; - var jQueryEvent = null; - var bubbles = true; - var nativeDispatch = true; - var defaultPrevented = false; - if (inNamespace && $) { - jQueryEvent = $.Event(event, args); - $(element).trigger(jQueryEvent); - bubbles = !jQueryEvent.isPropagationStopped(); - nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); - defaultPrevented = jQueryEvent.isDefaultPrevented(); - } - var evt = hydrateObj(new Event(event, { - bubbles: bubbles, - cancelable: true - }), args); - if (defaultPrevented) { - evt.preventDefault(); - } - if (nativeDispatch) { - element.dispatchEvent(evt); - } - if (evt.defaultPrevented && jQueryEvent) { - jQueryEvent.preventDefault(); - } - return evt; - } - }; - function hydrateObj(obj) { - var meta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var _loop = function _loop() { - var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i4], 2), - key = _Object$entries3$_i[0], - value = _Object$entries3$_i[1]; - try { - obj[key] = value; - } catch (_unused) { - Object.defineProperty(obj, key, { - configurable: true, - get: function get() { - return value; - } - }); - } - }; - for (var _i4 = 0, _Object$entries3 = Object.entries(meta); _i4 < _Object$entries3.length; _i4++) { - _loop(); - } - return obj; - } - return EventHandler; -}); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Bootstrap event-handler.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === 'object' && \"object\" !== 'undefined' ? module.exports = factory(__webpack_require__(/*! ../util/index.js */ \"./node_modules/bootstrap/js/dist/util/index.js\")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../util/index */ \"./node_modules/bootstrap/js/dist/util/index.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(this, function (index_js) {\n 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n var namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\n var stripNameRegex = /\\..*/;\n var stripUidRegex = /::\\d+$/;\n var eventRegistry = {}; // Events storage\n var uidEvent = 1;\n var customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n };\n var nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n\n /**\n * Private methods\n */\n\n function makeEventUid(element, uid) {\n return uid && \"\".concat(uid, \"::\").concat(uidEvent++) || element.uidEvent || uidEvent++;\n }\n function getElementEvents(element) {\n var uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n }\n function bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n return fn.apply(element, [event]);\n };\n }\n function bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n var domElements = element.querySelectorAll(selector);\n for (var target = event.target; target && target !== this; target = target.parentNode) {\n var _iterator = _createForOfIteratorHelper(domElements),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var domElement = _step.value;\n if (domElement !== target) {\n continue;\n }\n hydrateObj(event, {\n delegateTarget: target\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n return fn.apply(target, [event]);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n };\n }\n function findHandler(events, callable) {\n var delegationSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n return Object.values(events).find(function (event) {\n return event.callable === callable && event.delegationSelector === delegationSelector;\n });\n }\n function normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n var isDelegated = typeof handler === 'string';\n // TODO: tooltip passes `false` instead of selector, so we need to check\n var callable = isDelegated ? delegationFunction : handler || delegationFunction;\n var typeEvent = getTypeEvent(originalTypeEvent);\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n return [isDelegated, callable, typeEvent];\n }\n function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n var _normalizeParameters = normalizeParameters(originalTypeEvent, handler, delegationFunction),\n _normalizeParameters2 = _slicedToArray(_normalizeParameters, 3),\n isDelegated = _normalizeParameters2[0],\n callable = _normalizeParameters2[1],\n typeEvent = _normalizeParameters2[2];\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n var wrapFunction = function wrapFunction(fn) {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n callable = wrapFunction(callable);\n }\n var events = getElementEvents(element);\n var handlers = events[typeEvent] || (events[typeEvent] = {});\n var previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n var uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n var fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n }\n function removeHandler(element, events, typeEvent, handler, delegationSelector) {\n var fn = findHandler(events[typeEvent], handler, delegationSelector);\n if (!fn) {\n return;\n }\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n }\n function removeNamespacedHandlers(element, events, typeEvent, namespace) {\n var storeElementEvent = events[typeEvent] || {};\n for (var _i = 0, _Object$entries = Object.entries(storeElementEvent); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n handlerKey = _Object$entries$_i[0],\n event = _Object$entries$_i[1];\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n }\n function getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n }\n var EventHandler = {\n on: function on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n one: function one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n off: function off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n var _normalizeParameters3 = normalizeParameters(originalTypeEvent, handler, delegationFunction),\n _normalizeParameters4 = _slicedToArray(_normalizeParameters3, 3),\n isDelegated = _normalizeParameters4[0],\n callable = _normalizeParameters4[1],\n typeEvent = _normalizeParameters4[2];\n var inNamespace = typeEvent !== originalTypeEvent;\n var events = getElementEvents(element);\n var storeElementEvent = events[typeEvent] || {};\n var isNamespace = originalTypeEvent.startsWith('.');\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n if (isNamespace) {\n for (var _i2 = 0, _Object$keys = Object.keys(events); _i2 < _Object$keys.length; _i2++) {\n var elementEvent = _Object$keys[_i2];\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n for (var _i3 = 0, _Object$entries2 = Object.entries(storeElementEvent); _i3 < _Object$entries2.length; _i3++) {\n var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),\n keyHandlers = _Object$entries2$_i[0],\n event = _Object$entries2$_i[1];\n var handlerKey = keyHandlers.replace(stripUidRegex, '');\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n trigger: function trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n var $ = index_js.getjQuery();\n var typeEvent = getTypeEvent(event);\n var inNamespace = event !== typeEvent;\n var jQueryEvent = null;\n var bubbles = true;\n var nativeDispatch = true;\n var defaultPrevented = false;\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n var evt = hydrateObj(new Event(event, {\n bubbles: bubbles,\n cancelable: true\n }), args);\n if (defaultPrevented) {\n evt.preventDefault();\n }\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n return evt;\n }\n };\n function hydrateObj(obj) {\n var meta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _loop = function _loop() {\n var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i4], 2),\n key = _Object$entries3$_i[0],\n value = _Object$entries3$_i[1];\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n get: function get() {\n return value;\n }\n });\n }\n };\n for (var _i4 = 0, _Object$entries3 = Object.entries(meta); _i4 < _Object$entries3.length; _i4++) {\n _loop();\n }\n return obj;\n }\n return EventHandler;\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./node_modules/bootstrap/js/dist/dom/event-handler.js?"); /***/ }), -/***/ 532: +/***/ "./node_modules/bootstrap/js/dist/dom/manipulator.js": +/*!***********************************************************!*\ + !*** ./node_modules/bootstrap/js/dist/dom/manipulator.js ***! + \***********************************************************/ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/*! - * Bootstrap manipulator.js v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - ( false ? 0 : _typeof(exports)) === 'object' && "object" !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : - __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0); -})(this, function () { - 'use strict'; - - /** - * -------------------------------------------------------------------------- - * Bootstrap dom/manipulator.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - function normalizeData(value) { - if (value === 'true') { - return true; - } - if (value === 'false') { - return false; - } - if (value === Number(value).toString()) { - return Number(value); - } - if (value === '' || value === 'null') { - return null; - } - if (typeof value !== 'string') { - return value; - } - try { - return JSON.parse(decodeURIComponent(value)); - } catch (_unused) { - return value; - } - } - function normalizeDataKey(key) { - return key.replace(/[A-Z]/g, function (chr) { - return "-".concat(chr.toLowerCase()); - }); - } - var Manipulator = { - setDataAttribute: function setDataAttribute(element, key, value) { - element.setAttribute("data-bs-".concat(normalizeDataKey(key)), value); - }, - removeDataAttribute: function removeDataAttribute(element, key) { - element.removeAttribute("data-bs-".concat(normalizeDataKey(key))); - }, - getDataAttributes: function getDataAttributes(element) { - if (!element) { - return {}; - } - var attributes = {}; - var bsKeys = Object.keys(element.dataset).filter(function (key) { - return key.startsWith('bs') && !key.startsWith('bsConfig'); - }); - var _iterator = _createForOfIteratorHelper(bsKeys), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var key = _step.value; - var pureKey = key.replace(/^bs/, ''); - pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); - attributes[pureKey] = normalizeData(element.dataset[key]); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - return attributes; - }, - getDataAttribute: function getDataAttribute(element, key) { - return normalizeData(element.getAttribute("data-bs-".concat(normalizeDataKey(key)))); - } - }; - return Manipulator; -}); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Bootstrap manipulator.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === 'object' && \"object\" !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(this, function () {\n 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n function normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === Number(value).toString()) {\n return Number(value);\n }\n if (value === '' || value === 'null') {\n return null;\n }\n if (typeof value !== 'string') {\n return value;\n }\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n }\n function normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, function (chr) {\n return \"-\".concat(chr.toLowerCase());\n });\n }\n var Manipulator = {\n setDataAttribute: function setDataAttribute(element, key, value) {\n element.setAttribute(\"data-bs-\".concat(normalizeDataKey(key)), value);\n },\n removeDataAttribute: function removeDataAttribute(element, key) {\n element.removeAttribute(\"data-bs-\".concat(normalizeDataKey(key)));\n },\n getDataAttributes: function getDataAttributes(element) {\n if (!element) {\n return {};\n }\n var attributes = {};\n var bsKeys = Object.keys(element.dataset).filter(function (key) {\n return key.startsWith('bs') && !key.startsWith('bsConfig');\n });\n var _iterator = _createForOfIteratorHelper(bsKeys),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n var pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return attributes;\n },\n getDataAttribute: function getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(\"data-bs-\".concat(normalizeDataKey(key))));\n }\n };\n return Manipulator;\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./node_modules/bootstrap/js/dist/dom/manipulator.js?"); /***/ }), -/***/ 374: +/***/ "./node_modules/bootstrap/js/dist/dom/selector-engine.js": +/*!***************************************************************!*\ + !*** ./node_modules/bootstrap/js/dist/dom/selector-engine.js ***! + \***************************************************************/ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/*! - * Bootstrap selector-engine.js v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - ( false ? 0 : _typeof(exports)) === 'object' && "object" !== 'undefined' ? module.exports = factory(__webpack_require__(552)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(552)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0); -})(this, function (index_js) { - 'use strict'; - - /** - * -------------------------------------------------------------------------- - * Bootstrap dom/selector-engine.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - var getSelector = function getSelector(element) { - var selector = element.getAttribute('data-bs-target'); - if (!selector || selector === '#') { - var hrefAttribute = element.getAttribute('href'); - - // The only valid content that could double as a selector are IDs or classes, - // so everything starting with `#` or `.`. If a "real" URL is used as the selector, - // `document.querySelector` will rightfully complain it is invalid. - // See https://github.com/twbs/bootstrap/issues/32273 - if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) { - return null; - } - - // Just in case some CMS puts out a full URL with the anchor appended - if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) { - hrefAttribute = "#".concat(hrefAttribute.split('#')[1]); - } - selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null; - } - return selector ? selector.split(',').map(function (sel) { - return index_js.parseSelector(sel); - }).join(',') : null; - }; - var SelectorEngine = { - find: function find(selector) { - var _ref; - var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement; - return (_ref = []).concat.apply(_ref, _toConsumableArray(Element.prototype.querySelectorAll.call(element, selector))); - }, - findOne: function findOne(selector) { - var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement; - return Element.prototype.querySelector.call(element, selector); - }, - children: function children(element, selector) { - var _ref2; - return (_ref2 = []).concat.apply(_ref2, _toConsumableArray(element.children)).filter(function (child) { - return child.matches(selector); - }); - }, - parents: function parents(element, selector) { - var parents = []; - var ancestor = element.parentNode.closest(selector); - while (ancestor) { - parents.push(ancestor); - ancestor = ancestor.parentNode.closest(selector); - } - return parents; - }, - prev: function prev(element, selector) { - var previous = element.previousElementSibling; - while (previous) { - if (previous.matches(selector)) { - return [previous]; - } - previous = previous.previousElementSibling; - } - return []; - }, - // TODO: this is now unused; remove later along with prev() - next: function next(element, selector) { - var next = element.nextElementSibling; - while (next) { - if (next.matches(selector)) { - return [next]; - } - next = next.nextElementSibling; - } - return []; - }, - focusableChildren: function focusableChildren(element) { - var focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(function (selector) { - return "".concat(selector, ":not([tabindex^=\"-\"])"); - }).join(','); - return this.find(focusables, element).filter(function (el) { - return !index_js.isDisabled(el) && index_js.isVisible(el); - }); - }, - getSelectorFromElement: function getSelectorFromElement(element) { - var selector = getSelector(element); - if (selector) { - return SelectorEngine.findOne(selector) ? selector : null; - } - return null; - }, - getElementFromSelector: function getElementFromSelector(element) { - var selector = getSelector(element); - return selector ? SelectorEngine.findOne(selector) : null; - }, - getMultipleElementsFromSelector: function getMultipleElementsFromSelector(element) { - var selector = getSelector(element); - return selector ? SelectorEngine.find(selector) : []; - } - }; - return SelectorEngine; -}); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Bootstrap selector-engine.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === 'object' && \"object\" !== 'undefined' ? module.exports = factory(__webpack_require__(/*! ../util/index.js */ \"./node_modules/bootstrap/js/dist/util/index.js\")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../util/index */ \"./node_modules/bootstrap/js/dist/util/index.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(this, function (index_js) {\n 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n if (!selector || selector === '#') {\n var hrefAttribute = element.getAttribute('href');\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = \"#\".concat(hrefAttribute.split('#')[1]);\n }\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n return selector ? selector.split(',').map(function (sel) {\n return index_js.parseSelector(sel);\n }).join(',') : null;\n };\n var SelectorEngine = {\n find: function find(selector) {\n var _ref;\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n return (_ref = []).concat.apply(_ref, _toConsumableArray(Element.prototype.querySelectorAll.call(element, selector)));\n },\n findOne: function findOne(selector) {\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n return Element.prototype.querySelector.call(element, selector);\n },\n children: function children(element, selector) {\n var _ref2;\n return (_ref2 = []).concat.apply(_ref2, _toConsumableArray(element.children)).filter(function (child) {\n return child.matches(selector);\n });\n },\n parents: function parents(element, selector) {\n var parents = [];\n var ancestor = element.parentNode.closest(selector);\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n return parents;\n },\n prev: function prev(element, selector) {\n var previous = element.previousElementSibling;\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n previous = previous.previousElementSibling;\n }\n return [];\n },\n // TODO: this is now unused; remove later along with prev()\n next: function next(element, selector) {\n var next = element.nextElementSibling;\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n next = next.nextElementSibling;\n }\n return [];\n },\n focusableChildren: function focusableChildren(element) {\n var focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(function (selector) {\n return \"\".concat(selector, \":not([tabindex^=\\\"-\\\"])\");\n }).join(',');\n return this.find(focusables, element).filter(function (el) {\n return !index_js.isDisabled(el) && index_js.isVisible(el);\n });\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = getSelector(element);\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null;\n }\n return null;\n },\n getElementFromSelector: function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? SelectorEngine.findOne(selector) : null;\n },\n getMultipleElementsFromSelector: function getMultipleElementsFromSelector(element) {\n var selector = getSelector(element);\n return selector ? SelectorEngine.find(selector) : [];\n }\n };\n return SelectorEngine;\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./node_modules/bootstrap/js/dist/dom/selector-engine.js?"); /***/ }), -/***/ 320: +/***/ "./node_modules/bootstrap/js/dist/tab.js": +/*!***********************************************!*\ + !*** ./node_modules/bootstrap/js/dist/tab.js ***! + \***********************************************/ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/*! - * Bootstrap tab.js v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - ( false ? 0 : _typeof(exports)) === 'object' && "object" !== 'undefined' ? module.exports = factory(__webpack_require__(832), __webpack_require__(441), __webpack_require__(374), __webpack_require__(552)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(832), __webpack_require__(441), __webpack_require__(374), __webpack_require__(552)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0); -})(this, function (BaseComponent, EventHandler, SelectorEngine, index_js) { - 'use strict'; - - /** - * -------------------------------------------------------------------------- - * Bootstrap tab.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - - /** - * Constants - */ - var NAME = 'tab'; - var DATA_KEY = 'bs.tab'; - var EVENT_KEY = ".".concat(DATA_KEY); - var EVENT_HIDE = "hide".concat(EVENT_KEY); - var EVENT_HIDDEN = "hidden".concat(EVENT_KEY); - var EVENT_SHOW = "show".concat(EVENT_KEY); - var EVENT_SHOWN = "shown".concat(EVENT_KEY); - var EVENT_CLICK_DATA_API = "click".concat(EVENT_KEY); - var EVENT_KEYDOWN = "keydown".concat(EVENT_KEY); - var EVENT_LOAD_DATA_API = "load".concat(EVENT_KEY); - var ARROW_LEFT_KEY = 'ArrowLeft'; - var ARROW_RIGHT_KEY = 'ArrowRight'; - var ARROW_UP_KEY = 'ArrowUp'; - var ARROW_DOWN_KEY = 'ArrowDown'; - var HOME_KEY = 'Home'; - var END_KEY = 'End'; - var CLASS_NAME_ACTIVE = 'active'; - var CLASS_NAME_FADE = 'fade'; - var CLASS_NAME_SHOW = 'show'; - var CLASS_DROPDOWN = 'dropdown'; - var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; - var SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; - var NOT_SELECTOR_DROPDOWN_TOGGLE = ":not(".concat(SELECTOR_DROPDOWN_TOGGLE, ")"); - var SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; - var SELECTOR_OUTER = '.nav-item, .list-group-item'; - var SELECTOR_INNER = ".nav-link".concat(NOT_SELECTOR_DROPDOWN_TOGGLE, ", .list-group-item").concat(NOT_SELECTOR_DROPDOWN_TOGGLE, ", [role=\"tab\"]").concat(NOT_SELECTOR_DROPDOWN_TOGGLE); - var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // TODO: could only be `tab` in v6 - var SELECTOR_INNER_ELEM = "".concat(SELECTOR_INNER, ", ").concat(SELECTOR_DATA_TOGGLE); - var SELECTOR_DATA_TOGGLE_ACTIVE = ".".concat(CLASS_NAME_ACTIVE, "[data-bs-toggle=\"tab\"], .").concat(CLASS_NAME_ACTIVE, "[data-bs-toggle=\"pill\"], .").concat(CLASS_NAME_ACTIVE, "[data-bs-toggle=\"list\"]"); - - /** - * Class definition - */ - var Tab = /*#__PURE__*/function (_BaseComponent) { - function Tab(element) { - var _this; - _classCallCheck(this, Tab); - _this = _callSuper(this, Tab, [element]); - _this._parent = _this._element.closest(SELECTOR_TAB_PANEL); - if (!_this._parent) { - return _possibleConstructorReturn(_this); - // TODO: should throw exception in v6 - // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`) - } - - // Set up initial aria attributes - _this._setInitialAttributes(_this._parent, _this._getChildren()); - EventHandler.on(_this._element, EVENT_KEYDOWN, function (event) { - return _this._keydown(event); - }); - return _this; - } - - // Getters - _inherits(Tab, _BaseComponent); - return _createClass(Tab, [{ - key: "show", - value: - // Public - function show() { - // Shows this elem and deactivate the active sibling if exists - var innerElem = this._element; - if (this._elemIsActive(innerElem)) { - return; - } - - // Search for active tab on same parent to deactivate it - var active = this._getActiveElem(); - var hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE, { - relatedTarget: innerElem - }) : null; - var showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { - relatedTarget: active - }); - if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) { - return; - } - this._deactivate(active, innerElem); - this._activate(innerElem, active); - } - - // Private - }, { - key: "_activate", - value: function _activate(element, relatedElem) { - var _this2 = this; - if (!element) { - return; - } - element.classList.add(CLASS_NAME_ACTIVE); - this._activate(SelectorEngine.getElementFromSelector(element)); // Search and activate/show the proper section - - var complete = function complete() { - if (element.getAttribute('role') !== 'tab') { - element.classList.add(CLASS_NAME_SHOW); - return; - } - element.removeAttribute('tabindex'); - element.setAttribute('aria-selected', true); - _this2._toggleDropDown(element, true); - EventHandler.trigger(element, EVENT_SHOWN, { - relatedTarget: relatedElem - }); - }; - this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE)); - } - }, { - key: "_deactivate", - value: function _deactivate(element, relatedElem) { - var _this3 = this; - if (!element) { - return; - } - element.classList.remove(CLASS_NAME_ACTIVE); - element.blur(); - this._deactivate(SelectorEngine.getElementFromSelector(element)); // Search and deactivate the shown section too - - var complete = function complete() { - if (element.getAttribute('role') !== 'tab') { - element.classList.remove(CLASS_NAME_SHOW); - return; - } - element.setAttribute('aria-selected', false); - element.setAttribute('tabindex', '-1'); - _this3._toggleDropDown(element, false); - EventHandler.trigger(element, EVENT_HIDDEN, { - relatedTarget: relatedElem - }); - }; - this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE)); - } - }, { - key: "_keydown", - value: function _keydown(event) { - if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) { - return; - } - event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page - event.preventDefault(); - var children = this._getChildren().filter(function (element) { - return !index_js.isDisabled(element); - }); - var nextActiveElement; - if ([HOME_KEY, END_KEY].includes(event.key)) { - nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]; - } else { - var isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); - nextActiveElement = index_js.getNextActiveElement(children, event.target, isNext, true); - } - if (nextActiveElement) { - nextActiveElement.focus({ - preventScroll: true - }); - Tab.getOrCreateInstance(nextActiveElement).show(); - } - } - }, { - key: "_getChildren", - value: function _getChildren() { - // collection of inner elements - return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent); - } - }, { - key: "_getActiveElem", - value: function _getActiveElem() { - var _this4 = this; - return this._getChildren().find(function (child) { - return _this4._elemIsActive(child); - }) || null; - } - }, { - key: "_setInitialAttributes", - value: function _setInitialAttributes(parent, children) { - this._setAttributeIfNotExists(parent, 'role', 'tablist'); - var _iterator = _createForOfIteratorHelper(children), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var child = _step.value; - this._setInitialAttributesOnChild(child); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - }, { - key: "_setInitialAttributesOnChild", - value: function _setInitialAttributesOnChild(child) { - child = this._getInnerElement(child); - var isActive = this._elemIsActive(child); - var outerElem = this._getOuterElement(child); - child.setAttribute('aria-selected', isActive); - if (outerElem !== child) { - this._setAttributeIfNotExists(outerElem, 'role', 'presentation'); - } - if (!isActive) { - child.setAttribute('tabindex', '-1'); - } - this._setAttributeIfNotExists(child, 'role', 'tab'); - - // set attributes to the related panel too - this._setInitialAttributesOnTargetPanel(child); - } - }, { - key: "_setInitialAttributesOnTargetPanel", - value: function _setInitialAttributesOnTargetPanel(child) { - var target = SelectorEngine.getElementFromSelector(child); - if (!target) { - return; - } - this._setAttributeIfNotExists(target, 'role', 'tabpanel'); - if (child.id) { - this._setAttributeIfNotExists(target, 'aria-labelledby', "".concat(child.id)); - } - } - }, { - key: "_toggleDropDown", - value: function _toggleDropDown(element, open) { - var outerElem = this._getOuterElement(element); - if (!outerElem.classList.contains(CLASS_DROPDOWN)) { - return; - } - var toggle = function toggle(selector, className) { - var element = SelectorEngine.findOne(selector, outerElem); - if (element) { - element.classList.toggle(className, open); - } - }; - toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); - toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW); - outerElem.setAttribute('aria-expanded', open); - } - }, { - key: "_setAttributeIfNotExists", - value: function _setAttributeIfNotExists(element, attribute, value) { - if (!element.hasAttribute(attribute)) { - element.setAttribute(attribute, value); - } - } - }, { - key: "_elemIsActive", - value: function _elemIsActive(elem) { - return elem.classList.contains(CLASS_NAME_ACTIVE); - } - - // Try to get the inner element (usually the .nav-link) - }, { - key: "_getInnerElement", - value: function _getInnerElement(elem) { - return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem); - } - - // Try to get the outer element (usually the .nav-item) - }, { - key: "_getOuterElement", - value: function _getOuterElement(elem) { - return elem.closest(SELECTOR_OUTER) || elem; - } - - // Static - }], [{ - key: "NAME", - get: function get() { - return NAME; - } - }, { - key: "jQueryInterface", - value: function jQueryInterface(config) { - return this.each(function () { - var data = Tab.getOrCreateInstance(this); - if (typeof config !== 'string') { - return; - } - if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { - throw new TypeError("No method named \"".concat(config, "\"")); - } - data[config](); - }); - } - }]); - }(BaseComponent); - /** - * Data API implementation - */ - EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { - if (['A', 'AREA'].includes(this.tagName)) { - event.preventDefault(); - } - if (index_js.isDisabled(this)) { - return; - } - Tab.getOrCreateInstance(this).show(); - }); - - /** - * Initialize on focus - */ - EventHandler.on(window, EVENT_LOAD_DATA_API, function () { - var _iterator2 = _createForOfIteratorHelper(SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)), - _step2; - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var element = _step2.value; - Tab.getOrCreateInstance(element); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - }); - /** - * jQuery - */ - - index_js.defineJQueryPlugin(Tab); - return Tab; -}); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Bootstrap tab.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === 'object' && \"object\" !== 'undefined' ? module.exports = factory(__webpack_require__(/*! ./base-component.js */ \"./node_modules/bootstrap/js/dist/base-component.js\"), __webpack_require__(/*! ./dom/event-handler.js */ \"./node_modules/bootstrap/js/dist/dom/event-handler.js\"), __webpack_require__(/*! ./dom/selector-engine.js */ \"./node_modules/bootstrap/js/dist/dom/selector-engine.js\"), __webpack_require__(/*! ./util/index.js */ \"./node_modules/bootstrap/js/dist/util/index.js\")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./base-component */ \"./node_modules/bootstrap/js/dist/base-component.js\"), __webpack_require__(/*! ./dom/event-handler */ \"./node_modules/bootstrap/js/dist/dom/event-handler.js\"), __webpack_require__(/*! ./dom/selector-engine */ \"./node_modules/bootstrap/js/dist/dom/selector-engine.js\"), __webpack_require__(/*! ./util/index */ \"./node_modules/bootstrap/js/dist/util/index.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(this, function (BaseComponent, EventHandler, SelectorEngine, index_js) {\n 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n var NAME = 'tab';\n var DATA_KEY = 'bs.tab';\n var EVENT_KEY = \".\".concat(DATA_KEY);\n var EVENT_HIDE = \"hide\".concat(EVENT_KEY);\n var EVENT_HIDDEN = \"hidden\".concat(EVENT_KEY);\n var EVENT_SHOW = \"show\".concat(EVENT_KEY);\n var EVENT_SHOWN = \"shown\".concat(EVENT_KEY);\n var EVENT_CLICK_DATA_API = \"click\".concat(EVENT_KEY);\n var EVENT_KEYDOWN = \"keydown\".concat(EVENT_KEY);\n var EVENT_LOAD_DATA_API = \"load\".concat(EVENT_KEY);\n var ARROW_LEFT_KEY = 'ArrowLeft';\n var ARROW_RIGHT_KEY = 'ArrowRight';\n var ARROW_UP_KEY = 'ArrowUp';\n var ARROW_DOWN_KEY = 'ArrowDown';\n var HOME_KEY = 'Home';\n var END_KEY = 'End';\n var CLASS_NAME_ACTIVE = 'active';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_DROPDOWN = 'dropdown';\n var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n var SELECTOR_DROPDOWN_MENU = '.dropdown-menu';\n var NOT_SELECTOR_DROPDOWN_TOGGLE = \":not(\".concat(SELECTOR_DROPDOWN_TOGGLE, \")\");\n var SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]';\n var SELECTOR_OUTER = '.nav-item, .list-group-item';\n var SELECTOR_INNER = \".nav-link\".concat(NOT_SELECTOR_DROPDOWN_TOGGLE, \", .list-group-item\").concat(NOT_SELECTOR_DROPDOWN_TOGGLE, \", [role=\\\"tab\\\"]\").concat(NOT_SELECTOR_DROPDOWN_TOGGLE);\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'; // TODO: could only be `tab` in v6\n var SELECTOR_INNER_ELEM = \"\".concat(SELECTOR_INNER, \", \").concat(SELECTOR_DATA_TOGGLE);\n var SELECTOR_DATA_TOGGLE_ACTIVE = \".\".concat(CLASS_NAME_ACTIVE, \"[data-bs-toggle=\\\"tab\\\"], .\").concat(CLASS_NAME_ACTIVE, \"[data-bs-toggle=\\\"pill\\\"], .\").concat(CLASS_NAME_ACTIVE, \"[data-bs-toggle=\\\"list\\\"]\");\n\n /**\n * Class definition\n */\n var Tab = /*#__PURE__*/function (_BaseComponent) {\n function Tab(element) {\n var _this;\n _classCallCheck(this, Tab);\n _this = _callSuper(this, Tab, [element]);\n _this._parent = _this._element.closest(SELECTOR_TAB_PANEL);\n if (!_this._parent) {\n return _possibleConstructorReturn(_this);\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n }\n\n // Set up initial aria attributes\n _this._setInitialAttributes(_this._parent, _this._getChildren());\n EventHandler.on(_this._element, EVENT_KEYDOWN, function (event) {\n return _this._keydown(event);\n });\n return _this;\n }\n\n // Getters\n _inherits(Tab, _BaseComponent);\n return _createClass(Tab, [{\n key: \"show\",\n value:\n // Public\n function show() {\n // Shows this elem and deactivate the active sibling if exists\n var innerElem = this._element;\n if (this._elemIsActive(innerElem)) {\n return;\n }\n\n // Search for active tab on same parent to deactivate it\n var active = this._getActiveElem();\n var hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE, {\n relatedTarget: innerElem\n }) : null;\n var showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, {\n relatedTarget: active\n });\n if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {\n return;\n }\n this._deactivate(active, innerElem);\n this._activate(innerElem, active);\n }\n\n // Private\n }, {\n key: \"_activate\",\n value: function _activate(element, relatedElem) {\n var _this2 = this;\n if (!element) {\n return;\n }\n element.classList.add(CLASS_NAME_ACTIVE);\n this._activate(SelectorEngine.getElementFromSelector(element)); // Search and activate/show the proper section\n\n var complete = function complete() {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW);\n return;\n }\n element.removeAttribute('tabindex');\n element.setAttribute('aria-selected', true);\n _this2._toggleDropDown(element, true);\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n });\n };\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));\n }\n }, {\n key: \"_deactivate\",\n value: function _deactivate(element, relatedElem) {\n var _this3 = this;\n if (!element) {\n return;\n }\n element.classList.remove(CLASS_NAME_ACTIVE);\n element.blur();\n this._deactivate(SelectorEngine.getElementFromSelector(element)); // Search and deactivate the shown section too\n\n var complete = function complete() {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW);\n return;\n }\n element.setAttribute('aria-selected', false);\n element.setAttribute('tabindex', '-1');\n _this3._toggleDropDown(element, false);\n EventHandler.trigger(element, EVENT_HIDDEN, {\n relatedTarget: relatedElem\n });\n };\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));\n }\n }, {\n key: \"_keydown\",\n value: function _keydown(event) {\n if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {\n return;\n }\n event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault();\n var children = this._getChildren().filter(function (element) {\n return !index_js.isDisabled(element);\n });\n var nextActiveElement;\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];\n } else {\n var isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);\n nextActiveElement = index_js.getNextActiveElement(children, event.target, isNext, true);\n }\n if (nextActiveElement) {\n nextActiveElement.focus({\n preventScroll: true\n });\n Tab.getOrCreateInstance(nextActiveElement).show();\n }\n }\n }, {\n key: \"_getChildren\",\n value: function _getChildren() {\n // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);\n }\n }, {\n key: \"_getActiveElem\",\n value: function _getActiveElem() {\n var _this4 = this;\n return this._getChildren().find(function (child) {\n return _this4._elemIsActive(child);\n }) || null;\n }\n }, {\n key: \"_setInitialAttributes\",\n value: function _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist');\n var _iterator = _createForOfIteratorHelper(children),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var child = _step.value;\n this._setInitialAttributesOnChild(child);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"_setInitialAttributesOnChild\",\n value: function _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child);\n var isActive = this._elemIsActive(child);\n var outerElem = this._getOuterElement(child);\n child.setAttribute('aria-selected', isActive);\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation');\n }\n if (!isActive) {\n child.setAttribute('tabindex', '-1');\n }\n this._setAttributeIfNotExists(child, 'role', 'tab');\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child);\n }\n }, {\n key: \"_setInitialAttributesOnTargetPanel\",\n value: function _setInitialAttributesOnTargetPanel(child) {\n var target = SelectorEngine.getElementFromSelector(child);\n if (!target) {\n return;\n }\n this._setAttributeIfNotExists(target, 'role', 'tabpanel');\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', \"\".concat(child.id));\n }\n }\n }, {\n key: \"_toggleDropDown\",\n value: function _toggleDropDown(element, open) {\n var outerElem = this._getOuterElement(element);\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return;\n }\n var toggle = function toggle(selector, className) {\n var element = SelectorEngine.findOne(selector, outerElem);\n if (element) {\n element.classList.toggle(className, open);\n }\n };\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW);\n outerElem.setAttribute('aria-expanded', open);\n }\n }, {\n key: \"_setAttributeIfNotExists\",\n value: function _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value);\n }\n }\n }, {\n key: \"_elemIsActive\",\n value: function _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE);\n }\n\n // Try to get the inner element (usually the .nav-link)\n }, {\n key: \"_getInnerElement\",\n value: function _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);\n }\n\n // Try to get the outer element (usually the .nav-item)\n }, {\n key: \"_getOuterElement\",\n value: function _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem;\n }\n\n // Static\n }], [{\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Tab.getOrCreateInstance(this);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n data[config]();\n });\n }\n }]);\n }(BaseComponent);\n /**\n * Data API implementation\n */\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (index_js.isDisabled(this)) {\n return;\n }\n Tab.getOrCreateInstance(this).show();\n });\n\n /**\n * Initialize on focus\n */\n EventHandler.on(window, EVENT_LOAD_DATA_API, function () {\n var _iterator2 = _createForOfIteratorHelper(SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var element = _step2.value;\n Tab.getOrCreateInstance(element);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n });\n /**\n * jQuery\n */\n\n index_js.defineJQueryPlugin(Tab);\n return Tab;\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./node_modules/bootstrap/js/dist/tab.js?"); /***/ }), -/***/ 44: +/***/ "./node_modules/bootstrap/js/dist/util/config.js": +/*!*******************************************************!*\ + !*** ./node_modules/bootstrap/js/dist/util/config.js ***! + \*******************************************************/ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } -function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } -function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/*! - * Bootstrap config.js v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - ( false ? 0 : _typeof(exports)) === 'object' && "object" !== 'undefined' ? module.exports = factory(__webpack_require__(532), __webpack_require__(552)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(532), __webpack_require__(552)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0); -})(this, function (Manipulator, index_js) { - 'use strict'; - - /** - * -------------------------------------------------------------------------- - * Bootstrap util/config.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - - /** - * Class definition - */ - var Config = /*#__PURE__*/function () { - function Config() { - _classCallCheck(this, Config); - } - return _createClass(Config, [{ - key: "_getConfig", - value: function _getConfig(config) { - config = this._mergeConfigObj(config); - config = this._configAfterMerge(config); - this._typeCheckConfig(config); - return config; - } - }, { - key: "_configAfterMerge", - value: function _configAfterMerge(config) { - return config; - } - }, { - key: "_mergeConfigObj", - value: function _mergeConfigObj(config, element) { - var jsonConfig = index_js.isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse - - return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), _typeof(jsonConfig) === 'object' ? jsonConfig : {}), index_js.isElement(element) ? Manipulator.getDataAttributes(element) : {}), _typeof(config) === 'object' ? config : {}); - } - }, { - key: "_typeCheckConfig", - value: function _typeCheckConfig(config) { - var configTypes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.constructor.DefaultType; - for (var _i = 0, _Object$entries = Object.entries(configTypes); _i < _Object$entries.length; _i++) { - var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), - property = _Object$entries$_i[0], - expectedTypes = _Object$entries$_i[1]; - var value = config[property]; - var valueType = index_js.isElement(value) ? 'element' : index_js.toType(value); - if (!new RegExp(expectedTypes).test(valueType)) { - throw new TypeError("".concat(this.constructor.NAME.toUpperCase(), ": Option \"").concat(property, "\" provided type \"").concat(valueType, "\" but expected type \"").concat(expectedTypes, "\".")); - } - } - } - }], [{ - key: "Default", - get: - // Getters - function get() { - return {}; - } - }, { - key: "DefaultType", - get: function get() { - return {}; - } - }, { - key: "NAME", - get: function get() { - throw new Error('You have to implement the static method "NAME", for each component!'); - } - }]); - }(); - return Config; -}); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Bootstrap config.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === 'object' && \"object\" !== 'undefined' ? module.exports = factory(__webpack_require__(/*! ../dom/manipulator.js */ \"./node_modules/bootstrap/js/dist/dom/manipulator.js\"), __webpack_require__(/*! ./index.js */ \"./node_modules/bootstrap/js/dist/util/index.js\")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../dom/manipulator */ \"./node_modules/bootstrap/js/dist/dom/manipulator.js\"), __webpack_require__(/*! ./index */ \"./node_modules/bootstrap/js/dist/util/index.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(this, function (Manipulator, index_js) {\n 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Class definition\n */\n var Config = /*#__PURE__*/function () {\n function Config() {\n _classCallCheck(this, Config);\n }\n return _createClass(Config, [{\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n }, {\n key: \"_configAfterMerge\",\n value: function _configAfterMerge(config) {\n return config;\n }\n }, {\n key: \"_mergeConfigObj\",\n value: function _mergeConfigObj(config, element) {\n var jsonConfig = index_js.isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), _typeof(jsonConfig) === 'object' ? jsonConfig : {}), index_js.isElement(element) ? Manipulator.getDataAttributes(element) : {}), _typeof(config) === 'object' ? config : {});\n }\n }, {\n key: \"_typeCheckConfig\",\n value: function _typeCheckConfig(config) {\n var configTypes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.constructor.DefaultType;\n for (var _i = 0, _Object$entries = Object.entries(configTypes); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n property = _Object$entries$_i[0],\n expectedTypes = _Object$entries$_i[1];\n var value = config[property];\n var valueType = index_js.isElement(value) ? 'element' : index_js.toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\"\".concat(this.constructor.NAME.toUpperCase(), \": Option \\\"\").concat(property, \"\\\" provided type \\\"\").concat(valueType, \"\\\" but expected type \\\"\").concat(expectedTypes, \"\\\".\"));\n }\n }\n }\n }], [{\n key: \"Default\",\n get:\n // Getters\n function get() {\n return {};\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return {};\n }\n }, {\n key: \"NAME\",\n get: function get() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n }]);\n }();\n return Config;\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./node_modules/bootstrap/js/dist/util/config.js?"); /***/ }), -/***/ 552: +/***/ "./node_modules/bootstrap/js/dist/util/index.js": +/*!******************************************************!*\ + !*** ./node_modules/bootstrap/js/dist/util/index.js ***! + \******************************************************/ /***/ (function(module, exports) { -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -/*! - * Bootstrap index.js v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - ( false ? 0 : _typeof(exports)) === 'object' && "object" !== 'undefined' ? factory(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0); -})(this, function (exports) { - 'use strict'; - - /** - * -------------------------------------------------------------------------- - * Bootstrap util/index.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - var MAX_UID = 1000000; - var MILLISECONDS_MULTIPLIER = 1000; - var TRANSITION_END = 'transitionend'; - - /** - * Properly escape IDs selectors to handle weird IDs - * @param {string} selector - * @returns {string} - */ - var parseSelector = function parseSelector(selector) { - if (selector && window.CSS && window.CSS.escape) { - // document.querySelector needs escaping to handle IDs (html5+) containing for instance / - selector = selector.replace(/#([^\s"#']+)/g, function (match, id) { - return "#".concat(CSS.escape(id)); - }); - } - return selector; - }; - - // Shout-out Angus Croll (https://goo.gl/pxwQGp) - var toType = function toType(object) { - if (object === null || object === undefined) { - return "".concat(object); - } - return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); - }; - - /** - * Public Util API - */ - - var getUID = function getUID(prefix) { - do { - prefix += Math.floor(Math.random() * MAX_UID); - } while (document.getElementById(prefix)); - return prefix; - }; - var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { - if (!element) { - return 0; - } - - // Get transition-duration of the element - var _window$getComputedSt = window.getComputedStyle(element), - transitionDuration = _window$getComputedSt.transitionDuration, - transitionDelay = _window$getComputedSt.transitionDelay; - var floatTransitionDuration = Number.parseFloat(transitionDuration); - var floatTransitionDelay = Number.parseFloat(transitionDelay); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Bootstrap index.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n ( false ? 0 : _typeof(exports)) === 'object' && \"object\" !== 'undefined' ? factory(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (0);\n})(this, function (exports) {\n 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend';\n\n /**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\n var parseSelector = function parseSelector(selector) {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, function (match, id) {\n return \"#\".concat(CSS.escape(id));\n });\n }\n return selector;\n };\n\n // Shout-out Angus Croll (https://goo.gl/pxwQGp)\n var toType = function toType(object) {\n if (object === null || object === undefined) {\n return \"\".concat(object);\n }\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n /**\n * Public Util API\n */\n\n var getUID = function getUID(prefix) {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n return prefix;\n };\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n }\n\n // Get transition-duration of the element\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay);\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n var isElement = function isElement(object) {\n if (!object || _typeof(object) !== 'object') {\n return false;\n }\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n return typeof object.nodeType !== 'undefined';\n };\n var getElement = function getElement(object) {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object));\n }\n return null;\n };\n var isVisible = function isVisible(element) {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n var elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n // Handle `details` element as its content may falsie appear visible when it is closed\n var closedDetails = element.closest('details:not([open])');\n if (!closedDetails) {\n return elementIsVisible;\n }\n if (closedDetails !== element) {\n var summary = element.closest('summary');\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n if (summary === null) {\n return false;\n }\n }\n return elementIsVisible;\n };\n var isDisabled = function isDisabled(element) {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n if (element.classList.contains('disabled')) {\n return true;\n }\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n };\n var findShadowRoot = function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null;\n }\n return findShadowRoot(element.parentNode);\n };\n var noop = function noop() {};\n\n /**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n var reflow = function reflow(element) {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n };\n var getjQuery = function getjQuery() {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n return null;\n };\n var DOMContentLoadedCallbacks = [];\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', function () {\n for (var _i = 0, _DOMContentLoadedCall = DOMContentLoadedCallbacks; _i < _DOMContentLoadedCall.length; _i++) {\n var _callback = _DOMContentLoadedCall[_i];\n _callback();\n }\n });\n }\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n };\n var isRTL = function isRTL() {\n return document.documentElement.dir === 'rtl';\n };\n var defineJQueryPlugin = function defineJQueryPlugin(plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n if ($) {\n var name = plugin.NAME;\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n var execute = function execute(possibleCallback) {\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : possibleCallback;\n return typeof possibleCallback === 'function' ? possibleCallback.apply(void 0, _toConsumableArray(args)) : defaultValue;\n };\n var executeAfterTransition = function executeAfterTransition(callback, transitionElement) {\n var waitForTransition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n var durationPadding = 5;\n var emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n var called = false;\n var handler = function handler(_ref) {\n var target = _ref.target;\n if (target !== transitionElement) {\n return;\n }\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n };\n\n /**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n var getNextActiveElement = function getNextActiveElement(list, activeElement, shouldGetNext, isCycleAllowed) {\n var listLength = list.length;\n var index = list.indexOf(activeElement);\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n index += shouldGetNext ? 1 : -1;\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n return list[Math.max(0, Math.min(index, listLength - 1))];\n };\n exports.defineJQueryPlugin = defineJQueryPlugin;\n exports.execute = execute;\n exports.executeAfterTransition = executeAfterTransition;\n exports.findShadowRoot = findShadowRoot;\n exports.getElement = getElement;\n exports.getNextActiveElement = getNextActiveElement;\n exports.getTransitionDurationFromElement = getTransitionDurationFromElement;\n exports.getUID = getUID;\n exports.getjQuery = getjQuery;\n exports.isDisabled = isDisabled;\n exports.isElement = isElement;\n exports.isRTL = isRTL;\n exports.isVisible = isVisible;\n exports.noop = noop;\n exports.onDOMContentLoaded = onDOMContentLoaded;\n exports.parseSelector = parseSelector;\n exports.reflow = reflow;\n exports.toType = toType;\n exports.triggerTransitionEnd = triggerTransitionEnd;\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n});\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./node_modules/bootstrap/js/dist/util/index.js?"); - // Return 0 if element or transition duration is not found - if (!floatTransitionDuration && !floatTransitionDelay) { - return 0; - } - - // If multiple durations are defined, take the first - transitionDuration = transitionDuration.split(',')[0]; - transitionDelay = transitionDelay.split(',')[0]; - return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; - }; - var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); - }; - var isElement = function isElement(object) { - if (!object || _typeof(object) !== 'object') { - return false; - } - if (typeof object.jquery !== 'undefined') { - object = object[0]; - } - return typeof object.nodeType !== 'undefined'; - }; - var getElement = function getElement(object) { - // it's a jQuery object or a node element - if (isElement(object)) { - return object.jquery ? object[0] : object; - } - if (typeof object === 'string' && object.length > 0) { - return document.querySelector(parseSelector(object)); - } - return null; - }; - var isVisible = function isVisible(element) { - if (!isElement(element) || element.getClientRects().length === 0) { - return false; - } - var elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; - // Handle `details` element as its content may falsie appear visible when it is closed - var closedDetails = element.closest('details:not([open])'); - if (!closedDetails) { - return elementIsVisible; - } - if (closedDetails !== element) { - var summary = element.closest('summary'); - if (summary && summary.parentNode !== closedDetails) { - return false; - } - if (summary === null) { - return false; - } - } - return elementIsVisible; - }; - var isDisabled = function isDisabled(element) { - if (!element || element.nodeType !== Node.ELEMENT_NODE) { - return true; - } - if (element.classList.contains('disabled')) { - return true; - } - if (typeof element.disabled !== 'undefined') { - return element.disabled; - } - return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'; - }; - var findShadowRoot = function findShadowRoot(element) { - if (!document.documentElement.attachShadow) { - return null; - } - - // Can find the shadow root otherwise it'll return the document - if (typeof element.getRootNode === 'function') { - var root = element.getRootNode(); - return root instanceof ShadowRoot ? root : null; - } - if (element instanceof ShadowRoot) { - return element; - } - - // when we don't find a shadow root - if (!element.parentNode) { - return null; - } - return findShadowRoot(element.parentNode); - }; - var noop = function noop() {}; - - /** - * Trick to restart an element's animation - * - * @param {HTMLElement} element - * @return void - * - * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation - */ - var reflow = function reflow(element) { - element.offsetHeight; // eslint-disable-line no-unused-expressions - }; - var getjQuery = function getjQuery() { - if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { - return window.jQuery; - } - return null; - }; - var DOMContentLoadedCallbacks = []; - var onDOMContentLoaded = function onDOMContentLoaded(callback) { - if (document.readyState === 'loading') { - // add listener on the first call when the document is in loading state - if (!DOMContentLoadedCallbacks.length) { - document.addEventListener('DOMContentLoaded', function () { - for (var _i = 0, _DOMContentLoadedCall = DOMContentLoadedCallbacks; _i < _DOMContentLoadedCall.length; _i++) { - var _callback = _DOMContentLoadedCall[_i]; - _callback(); - } - }); - } - DOMContentLoadedCallbacks.push(callback); - } else { - callback(); - } - }; - var isRTL = function isRTL() { - return document.documentElement.dir === 'rtl'; - }; - var defineJQueryPlugin = function defineJQueryPlugin(plugin) { - onDOMContentLoaded(function () { - var $ = getjQuery(); - /* istanbul ignore if */ - if ($) { - var name = plugin.NAME; - var JQUERY_NO_CONFLICT = $.fn[name]; - $.fn[name] = plugin.jQueryInterface; - $.fn[name].Constructor = plugin; - $.fn[name].noConflict = function () { - $.fn[name] = JQUERY_NO_CONFLICT; - return plugin.jQueryInterface; - }; - } - }); - }; - var execute = function execute(possibleCallback) { - var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : possibleCallback; - return typeof possibleCallback === 'function' ? possibleCallback.apply(void 0, _toConsumableArray(args)) : defaultValue; - }; - var executeAfterTransition = function executeAfterTransition(callback, transitionElement) { - var waitForTransition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - if (!waitForTransition) { - execute(callback); - return; - } - var durationPadding = 5; - var emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding; - var called = false; - var handler = function handler(_ref) { - var target = _ref.target; - if (target !== transitionElement) { - return; - } - called = true; - transitionElement.removeEventListener(TRANSITION_END, handler); - execute(callback); - }; - transitionElement.addEventListener(TRANSITION_END, handler); - setTimeout(function () { - if (!called) { - triggerTransitionEnd(transitionElement); - } - }, emulatedDuration); - }; +/***/ }), - /** - * Return the previous/next element of a list. - * - * @param {array} list The list of elements - * @param activeElement The active element - * @param shouldGetNext Choose to get next or previous element - * @param isCycleAllowed - * @return {Element|elem} The proper element - */ - var getNextActiveElement = function getNextActiveElement(list, activeElement, shouldGetNext, isCycleAllowed) { - var listLength = list.length; - var index = list.indexOf(activeElement); +/***/ "./resources/js/frontend/index.js": +/*!****************************************!*\ + !*** ./resources/js/frontend/index.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - // if the element does not exist in the list return an element - // depending on the direction and if cycle is allowed - if (index === -1) { - return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; - } - index += shouldGetNext ? 1 : -1; - if (isCycleAllowed) { - index = (index + listLength) % listLength; - } - return list[Math.max(0, Math.min(index, listLength - 1))]; - }; - exports.defineJQueryPlugin = defineJQueryPlugin; - exports.execute = execute; - exports.executeAfterTransition = executeAfterTransition; - exports.findShadowRoot = findShadowRoot; - exports.getElement = getElement; - exports.getNextActiveElement = getNextActiveElement; - exports.getTransitionDurationFromElement = getTransitionDurationFromElement; - exports.getUID = getUID; - exports.getjQuery = getjQuery; - exports.isDisabled = isDisabled; - exports.isElement = isElement; - exports.isRTL = isRTL; - exports.isVisible = isVisible; - exports.noop = noop; - exports.onDOMContentLoaded = onDOMContentLoaded; - exports.parseSelector = parseSelector; - exports.reflow = reflow; - exports.toType = toType; - exports.triggerTransitionEnd = triggerTransitionEnd; - Object.defineProperty(exports, Symbol.toStringTag, { - value: 'Module' - }); -}); +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var bootstrap_js_dist_collapse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bootstrap/js/dist/collapse */ \"./node_modules/bootstrap/js/dist/collapse.js\");\n/* harmony import */ var bootstrap_js_dist_collapse__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_collapse__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var bootstrap_js_dist_tab__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! bootstrap/js/dist/tab */ \"./node_modules/bootstrap/js/dist/tab.js\");\n/* harmony import */ var bootstrap_js_dist_tab__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_tab__WEBPACK_IMPORTED_MODULE_1__);\n// External\n\n\nvar app = function app() {};\ndocument.addEventListener('DOMContentLoaded', app);\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./resources/js/frontend/index.js?"); /***/ }) @@ -1892,21 +166,23 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ /************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/* harmony import */ var bootstrap_js_dist_collapse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(888); -/* harmony import */ var bootstrap_js_dist_collapse__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_collapse__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var bootstrap_js_dist_tab__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(320); -/* harmony import */ var bootstrap_js_dist_tab__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_tab__WEBPACK_IMPORTED_MODULE_1__); -// External - - -var app = function app() {}; -document.addEventListener('DOMContentLoaded', app); -})(); - +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module can't be inlined because the eval devtool is used. +/******/ var __webpack_exports__ = __webpack_require__("./resources/js/frontend/index.js"); +/******/ /******/ })() ; \ No newline at end of file diff --git a/resources/dist/build/zaak-styles.css b/resources/dist/build/zaak-styles.css index 33d1e60..8ea3568 100644 --- a/resources/dist/build/zaak-styles.css +++ b/resources/dist/build/zaak-styles.css @@ -1 +1,753 @@ -.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.nav-link{background:none;border:0;color:var(--bs-nav-link-color);display:block;font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);cursor:default;pointer-events:none}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius);margin-bottom:calc(var(--bs-nav-tabs-border-width)*-1)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:var(--bs-nav-tabs-link-hover-border-color);isolation:isolate}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color);color:var(--bs-nav-tabs-link-active-color)}.nav-tabs .dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;margin-top:calc(var(--bs-nav-tabs-border-width)*-1)}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:var(--bs-nav-pills-link-active-bg);color:var(--bs-nav-pills-link-active-color)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{border-bottom:var(--bs-nav-underline-border-width) solid transparent;padding-left:0;padding-right:0}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{border-bottom-color:currentcolor;color:var(--bs-nav-underline-link-active-color);font-weight:700}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33,37,41,.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33,37,41,.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0,0,0,.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0,0,0,.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0,0,0,.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0,0,0,.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0,0,0,.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13,110,253,.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222,226,230,.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222,226,230,.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:hsla(0,0%,100%,.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f;color-scheme:dark}.zaak-card{border-radius:var(--card-border-radius,5px);color:var(--grey-4,#4b4b4b);cursor:pointer;display:flex;flex-direction:column;min-height:190px;padding:2.5rem 1.5rem 1.5rem;position:relative;transition:var(--card-transition,all .2s ease);z-index:1}.zaak-card:before{background-color:var(--grey-2,#d2d2d2);right:1px;top:0}.zaak-card:after,.zaak-card:before{border-radius:var(--card-border-radius,5px);bottom:0;content:"";left:0;position:absolute;transition:var(--card-transition,all .2s ease);z-index:-2}.zaak-card:after{background-color:var(--white,#fff);right:8px;top:8px}.zaak-card:hover{transform:translateY(-4px)}.zaak-card:hover:after,.zaak-card:hover:before{transform:translateY(-6px)}.zaak-card-svg{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:-1}.zaak-card-title{color:inherit;margin-bottom:1rem}.zaak-card-title a{color:inherit;text-decoration:none}.zaak-card-title a:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.zaak-card-title a:hover{color:inherit;text-decoration:none}.zaak-card-footer{align-items:center;display:flex;gap:1rem;justify-content:space-between;line-height:1.2;margin-top:auto}.zaak-card-date{text-transform:lowercase}.zaak-card-tag{background-color:var(--primary-300,#001d5f);border-radius:var(--card-border-radius,5px);color:#fff;font-size:.8rem;font-weight:700;margin-left:auto;padding:.25rem .5rem;text-transform:uppercase}.zaak-card.active{color:var(--primary-300,#001d5f)}.zaak-card.active:before{background-color:var(--primary-200,#4d6eb9)}.zaak-card.active .zaak-card-svg{fill:var(--primary-100,#e9efff)}.zaak-card.active .zaak-card-arrow{fill:var(--primary-300,#4d6eb9)}.zaak-card-wrapper{display:grid;gap:2rem;margin-bottom:2rem;margin-top:2rem}@media screen and (min-width:950px){.zaak-card-wrapper{grid-template-columns:1fr 1fr}}.zaak-collapse-button{--zaak-collapse-button-background-color:#f2f2f2;--zaak-collapse-button-background-color-hover:#d41422;--zaak-collapse-button-color-hover:#fff;align-items:center;background-color:transparent;background-color:var(--zaak-collapse-button-background-color);border:0;display:flex;margin-bottom:.75rem;padding:1rem;text-align:left;transition:all .15s ease;width:100%}.zaak-collapse-button:hover,.zaak-collapse-button[aria-expanded=true]{background-color:var(--zaak-collapse-button-background-color-hover);color:var(--zaak-collapse-button-color-hover)}.zaak-collapse-button:hover .zaak-collapse-button__chevron-icon,.zaak-collapse-button:hover .zaak-collapse-button__folder-icon,.zaak-collapse-button[aria-expanded=true] .zaak-collapse-button__chevron-icon,.zaak-collapse-button[aria-expanded=true] .zaak-collapse-button__folder-icon{fill:var(--zaak-collapse-button-color-hover)}.zaak-collapse-button[aria-expanded=true] .zaak-collapse-button__chevron-icon{transform:rotate(180deg)}.zaak-collapse-button__folder-icon{height:20px;margin-right:1rem;transition:all .15s ease;width:20px}.zaak-collapse-button__chevron-icon{height:20px;margin-left:auto;transition:all .15s ease;width:20px}.zaak-content{padding:2rem 0}.zaak-details-table{width:100%}.zaak-details-table td,.zaak-details-table th{line-height:1;padding:1rem}.zaak-details-table tr{border-bottom:1px solid var(--grey-2,#d2d2d2)}.zaak-documents{margin-top:3rem}.zaak-header{background-color:var(--grey-2,#d2d2d2);border-radius:40px 0;height:100px;margin-bottom:6rem}.zaak-header-title{background-color:#fff;border-bottom:2px solid var(--color-palette-primary);border-left:2px solid var(--color-palette-primary);border-radius:10px 0;margin-left:3rem;padding:1rem 2rem;position:relative;top:3rem;width:fit-content}.zaak-meta{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:space-evenly}.zaak-meta-item{align-items:center;display:flex;flex-basis:50%;flex-direction:column;line-height:var(--zaak-meta-item-line-height,1.5);text-align:center}@media screen and (min-width:576px){.zaak-meta-item{flex-basis:25%}}.zaak-meta-item__icon{height:40px;margin-bottom:.75rem;width:40px}.zaak-meta-item__value{font-weight:var(--zaak-meta-item-value-font-weight,700)}.zaak-process{margin-top:3rem}.zaak-process-steps{--zaak-process-steps-background-color:#fff;--zaak-process-steps-border-width:2px;--zaak-process-steps-border-color:#d2d2d2;--zaak-process-steps-color-success:#0d8228;--zaak-process-steps-spacer:1.75rem;--zaak-process-steps-gap:0.5rem;--zaak-process-steps-size:32px;--zaak-process-steps-font-weight:700;list-style:none;padding-left:.75rem}.zaak-process-steps__step{align-items:center;display:flex;font-weight:var(--zaak-process-steps-font-weight);margin-bottom:var(--zaak-process-steps-spacer);position:relative}.zaak-process-steps__step:first-child .zaak-process-steps__step-marker:before{content:none}.zaak-process-steps__step-marker{align-items:center;background-color:var(--zaak-process-steps-background-color);border:var(--zaak-process-steps-border-width) solid var(--zaak-process-steps-border-color);border-radius:50%;display:flex;height:var(--zaak-process-steps-size);justify-content:center;margin-right:var(--zaak-process-steps-gap);min-height:var(--zaak-process-steps-size);min-width:var(--zaak-process-steps-size);position:relative;text-align:center;width:var(--zaak-process-steps-size)}.zaak-process-steps__step-marker:before{background:repeating-linear-gradient(to bottom,var(--zaak-process-steps-border-color),var(--zaak-process-steps-border-color) 2px,transparent 2px,transparent 4px);bottom:calc(100% + var(--zaak-process-steps-border-width));content:"";height:var(--zaak-process-steps-spacer);left:calc(50% - var(--zaak-process-steps-border-width)/2);position:absolute;width:var(--zaak-process-steps-border-width)}.zaak-process-steps__step-marker svg{fill:var(--zaak-process-steps-color-success)}.zaak-process-steps__step--past .zaak-process-steps__step-marker{background-color:#fff;border-color:var(--zaak-process-steps-color-success);color:var(--zaak-process-steps-color-success)}.zaak-process-steps__step--current{color:var(--zaak-process-steps-color-success)}.zaak-process-steps__step--current .zaak-process-steps__step-marker{background-color:var(--zaak-process-steps-color-success);border-color:var(--zaak-process-steps-color-success);color:#fff}.zaak-process-steps__step--current .zaak-process-steps__step-marker:before,.zaak-process-steps__step--past .zaak-process-steps__step-marker:before{background:var(--zaak-process-steps-color-success)}.zaak-tabs{--bs-nav-tabs-link-active-border-color:var(--color-palette-primary);--bs-nav-tabs-border-width:2px;--bs-nav-tabs-border-color:#d2d2d2;--bs-nav-tabs-link-active-color:var(--color-palette-primary);--bs-nav-link-color:#000;--bs-nav-link-hover-color:#000}.zaak-tabs .nav-link{border:0;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.zaak-tabs .nav-link.active{font-weight:700}.ogz-ztfilter_add{display:inline-block;width:85%} \ No newline at end of file +/*!********************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./resources/scss/style.scss ***! + \********************************************************************************************************************/ +.nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + text-decoration: none; + background: none; + border: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link:hover, .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} +.nav-link:focus-visible { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.nav-link.disabled, .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.nav-tabs { + --bs-nav-tabs-border-width: var(--bs-border-width); + --bs-nav-tabs-border-color: var(--bs-border-color); + --bs-nav-tabs-border-radius: var(--bs-border-radius); + --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); + --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); + --bs-nav-tabs-link-active-bg: var(--bs-body-bg); + --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} +.nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} +.nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills { + --bs-nav-pills-border-radius: var(--bs-border-radius); + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd; +} +.nav-pills .nav-link { + border-radius: var(--bs-nav-pills-border-radius); +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); +} + +.nav-underline { + --bs-nav-underline-gap: 1rem; + --bs-nav-underline-border-width: 0.125rem; + --bs-nav-underline-link-active-color: var(--bs-emphasis-color); + gap: var(--bs-nav-underline-gap); +} +.nav-underline .nav-link { + padding-right: 0; + padding-left: 0; + border-bottom: var(--bs-nav-underline-border-width) solid transparent; +} +.nav-underline .nav-link:hover, .nav-underline .nav-link:focus { + border-bottom-color: currentcolor; +} +.nav-underline .nav-link.active, +.nav-underline .show > .nav-link { + font-weight: 700; + color: var(--bs-nav-underline-link-active-color); + border-bottom-color: currentcolor; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; +} + +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} + +:root, +[data-bs-theme=light] { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-primary-text-emphasis: #052c65; + --bs-secondary-text-emphasis: #2b2f32; + --bs-success-text-emphasis: #0a3622; + --bs-info-text-emphasis: #055160; + --bs-warning-text-emphasis: #664d03; + --bs-danger-text-emphasis: #58151c; + --bs-light-text-emphasis: #495057; + --bs-dark-text-emphasis: #495057; + --bs-primary-bg-subtle: #cfe2ff; + --bs-secondary-bg-subtle: #e2e3e5; + --bs-success-bg-subtle: #d1e7dd; + --bs-info-bg-subtle: #cff4fc; + --bs-warning-bg-subtle: #fff3cd; + --bs-danger-bg-subtle: #f8d7da; + --bs-light-bg-subtle: #fcfcfd; + --bs-dark-bg-subtle: #ced4da; + --bs-primary-border-subtle: #9ec5fe; + --bs-secondary-border-subtle: #c4c8cb; + --bs-success-border-subtle: #a3cfbb; + --bs-info-border-subtle: #9eeaf9; + --bs-warning-border-subtle: #ffe69c; + --bs-danger-border-subtle: #f1aeb5; + --bs-light-border-subtle: #e9ecef; + --bs-dark-border-subtle: #adb5bd; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg: #fff; + --bs-body-bg-rgb: 255, 255, 255; + --bs-emphasis-color: #000; + --bs-emphasis-color-rgb: 0, 0, 0; + --bs-secondary-color: rgba(33, 37, 41, 0.75); + --bs-secondary-color-rgb: 33, 37, 41; + --bs-secondary-bg: #e9ecef; + --bs-secondary-bg-rgb: 233, 236, 239; + --bs-tertiary-color: rgba(33, 37, 41, 0.5); + --bs-tertiary-color-rgb: 33, 37, 41; + --bs-tertiary-bg: #f8f9fa; + --bs-tertiary-bg-rgb: 248, 249, 250; + --bs-heading-color: inherit; + --bs-link-color: #0d6efd; + --bs-link-color-rgb: 13, 110, 253; + --bs-link-decoration: underline; + --bs-link-hover-color: #0a58ca; + --bs-link-hover-color-rgb: 10, 88, 202; + --bs-code-color: #d63384; + --bs-highlight-color: #212529; + --bs-highlight-bg: #fff3cd; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-xxl: 2rem; + --bs-border-radius-2xl: var(--bs-border-radius-xxl); + --bs-border-radius-pill: 50rem; + --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); + --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-focus-ring-width: 0.25rem; + --bs-focus-ring-opacity: 0.25; + --bs-focus-ring-color: rgba(13, 110, 253, 0.25); + --bs-form-valid-color: #198754; + --bs-form-valid-border-color: #198754; + --bs-form-invalid-color: #dc3545; + --bs-form-invalid-border-color: #dc3545; +} + +[data-bs-theme=dark] { + color-scheme: dark; + --bs-body-color: #dee2e6; + --bs-body-color-rgb: 222, 226, 230; + --bs-body-bg: #212529; + --bs-body-bg-rgb: 33, 37, 41; + --bs-emphasis-color: #fff; + --bs-emphasis-color-rgb: 255, 255, 255; + --bs-secondary-color: rgba(222, 226, 230, 0.75); + --bs-secondary-color-rgb: 222, 226, 230; + --bs-secondary-bg: #343a40; + --bs-secondary-bg-rgb: 52, 58, 64; + --bs-tertiary-color: rgba(222, 226, 230, 0.5); + --bs-tertiary-color-rgb: 222, 226, 230; + --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg-rgb: 43, 48, 53; + --bs-primary-text-emphasis: #6ea8fe; + --bs-secondary-text-emphasis: #a7acb1; + --bs-success-text-emphasis: #75b798; + --bs-info-text-emphasis: #6edff6; + --bs-warning-text-emphasis: #ffda6a; + --bs-danger-text-emphasis: #ea868f; + --bs-light-text-emphasis: #f8f9fa; + --bs-dark-text-emphasis: #dee2e6; + --bs-primary-bg-subtle: #031633; + --bs-secondary-bg-subtle: #161719; + --bs-success-bg-subtle: #051b11; + --bs-info-bg-subtle: #032830; + --bs-warning-bg-subtle: #332701; + --bs-danger-bg-subtle: #2c0b0e; + --bs-light-bg-subtle: #343a40; + --bs-dark-bg-subtle: #1a1d20; + --bs-primary-border-subtle: #084298; + --bs-secondary-border-subtle: #41464b; + --bs-success-border-subtle: #0f5132; + --bs-info-border-subtle: #087990; + --bs-warning-border-subtle: #997404; + --bs-danger-border-subtle: #842029; + --bs-light-border-subtle: #495057; + --bs-dark-border-subtle: #343a40; + --bs-heading-color: inherit; + --bs-link-color: #6ea8fe; + --bs-link-hover-color: #8bb9fe; + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-code-color: #e685b5; + --bs-highlight-color: #dee2e6; + --bs-highlight-bg: #664d03; + --bs-border-color: #495057; + --bs-border-color-translucent: rgba(255, 255, 255, 0.15); + --bs-form-valid-color: #75b798; + --bs-form-valid-border-color: #75b798; + --bs-form-invalid-color: #ea868f; + --bs-form-invalid-border-color: #ea868f; +} + +.taak-card { + position: relative; + z-index: 1; + padding: 2.5rem 1.5rem 1.5rem 1.5rem; + color: var(--grey-4, #4B4B4B); + border-radius: var(--card-border-radius, 5px); + transition: var(--card-transition, all 0.2s ease); + cursor: pointer; + display: flex; + min-height: 190px; + flex-direction: column; +} +.taak-card::before { + position: absolute; + z-index: -2; + top: 0; + right: 1px; + bottom: 0; + left: 0; + background-color: var(--grey-2, #D2D2D2); + content: ""; + border-radius: var(--card-border-radius, 5px); + transition: var(--card-transition, all 0.2s ease); +} +.taak-card::after { + position: absolute; + z-index: -2; + top: 8px; + right: 8px; + bottom: 0; + left: 0; + background-color: var(--white, #fff); + content: ""; + border-radius: var(--card-border-radius, 5px); + transition: var(--card-transition, all 0.2s ease); +} +.taak-card:hover { + transform: translateY(-4px); +} +.taak-card:hover::before, .taak-card:hover::after { + transform: translateY(-6px); +} +.taak-card-svg { + position: absolute; + z-index: -1; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: 100%; + height: 100%; +} +.taak-card-title { + color: inherit; + margin-bottom: 1rem; +} +.taak-card-title a { + color: inherit; + text-decoration: none; +} +.taak-card-title a::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + content: ""; +} +.taak-card-title a:hover { + color: inherit; + text-decoration: none; +} +.taak-card-footer { + margin-top: auto; + display: flex; + line-height: 1.2; + gap: 1rem; + justify-content: space-between; + align-items: center; +} +.taak-card-date { + text-transform: lowercase; +} +.taak-card-tag { + margin-left: auto; + font-size: 0.8rem; + background-color: var(--primary-300, #001D5F); + padding: 0.25rem 0.5rem; + font-weight: 700; + border-radius: var(--card-border-radius, 5px); + text-transform: uppercase; + color: #fff; +} +.taak-card.active { + color: var(--primary-300, #001D5F); +} +.taak-card.active::before { + background-color: var(--primary-200, #4D6EB9); +} +.taak-card.active .taak-card-svg { + fill: var(--primary-100, #E9EFFF); +} +.taak-card.active .taak-card-arrow { + fill: var(--primary-300, #4D6EB9); +} + +.taak-card-wrapper { + margin-top: 2rem; + margin-bottom: 2rem; + display: grid; + gap: 2rem; +} +@media screen and (min-width: 950px) { + .taak-card-wrapper { + grid-template-columns: 1fr 1fr; + } +} + +.taak-content { + padding: 2rem 0; +} + +.zaak-card { + position: relative; + z-index: 1; + padding: 2.5rem 1.5rem 1.5rem 1.5rem; + color: var(--grey-4, #4B4B4B); + border-radius: var(--card-border-radius, 5px); + transition: var(--card-transition, all 0.2s ease); + cursor: pointer; + display: flex; + min-height: 190px; + flex-direction: column; +} +.zaak-card::before { + position: absolute; + z-index: -2; + top: 0; + right: 1px; + bottom: 0; + left: 0; + background-color: var(--grey-2, #D2D2D2); + content: ""; + border-radius: var(--card-border-radius, 5px); + transition: var(--card-transition, all 0.2s ease); +} +.zaak-card::after { + position: absolute; + z-index: -2; + top: 8px; + right: 8px; + bottom: 0; + left: 0; + background-color: var(--white, #fff); + content: ""; + border-radius: var(--card-border-radius, 5px); + transition: var(--card-transition, all 0.2s ease); +} +.zaak-card:hover { + transform: translateY(-4px); +} +.zaak-card:hover::before, .zaak-card:hover::after { + transform: translateY(-6px); +} +.zaak-card-svg { + position: absolute; + z-index: -1; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: 100%; + height: 100%; +} +.zaak-card-title { + color: inherit; + margin-bottom: 1rem; +} +.zaak-card-title a { + color: inherit; + text-decoration: none; +} +.zaak-card-title a::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + content: ""; +} +.zaak-card-title a:hover { + color: inherit; + text-decoration: none; +} +.zaak-card-footer { + margin-top: auto; + display: flex; + line-height: 1.2; + gap: 1rem; + justify-content: space-between; + align-items: center; +} +.zaak-card-date { + text-transform: lowercase; +} +.zaak-card-tag { + margin-left: auto; + font-size: 0.8rem; + background-color: var(--primary-300, #001D5F); + padding: 0.25rem 0.5rem; + font-weight: 700; + border-radius: var(--card-border-radius, 5px); + text-transform: uppercase; + color: #fff; +} +.zaak-card.active { + color: var(--primary-300, #001D5F); +} +.zaak-card.active::before { + background-color: var(--primary-200, #4D6EB9); +} +.zaak-card.active .zaak-card-svg { + fill: var(--primary-100, #E9EFFF); +} +.zaak-card.active .zaak-card-arrow { + fill: var(--primary-300, #4D6EB9); +} + +.zaak-card-wrapper { + margin-top: 2rem; + margin-bottom: 2rem; + display: grid; + gap: 2rem; +} +@media screen and (min-width: 950px) { + .zaak-card-wrapper { + grid-template-columns: 1fr 1fr; + } +} + +.zaak-collapse-button { + --zaak-collapse-button-background-color: #f2f2f2; + --zaak-collapse-button-background-color-hover: #d41422; + --zaak-collapse-button-color-hover: #fff; + border: 0; + display: flex; + margin-bottom: 0.75rem; + align-items: center; + width: 100%; + background-color: transparent; + text-align: left; + padding: 1rem 1rem; + transition: 0.15s ease all; + background-color: var(--zaak-collapse-button-background-color); +} +.zaak-collapse-button[aria-expanded=true], .zaak-collapse-button:hover { + background-color: var(--zaak-collapse-button-background-color-hover); + color: var(--zaak-collapse-button-color-hover); +} +.zaak-collapse-button[aria-expanded=true] .zaak-collapse-button__folder-icon, .zaak-collapse-button:hover .zaak-collapse-button__folder-icon { + fill: var(--zaak-collapse-button-color-hover); +} +.zaak-collapse-button[aria-expanded=true] .zaak-collapse-button__chevron-icon, .zaak-collapse-button:hover .zaak-collapse-button__chevron-icon { + fill: var(--zaak-collapse-button-color-hover); +} +.zaak-collapse-button[aria-expanded=true] .zaak-collapse-button__chevron-icon { + transform: rotate(180deg); +} +.zaak-collapse-button__folder-icon { + width: 20px; + height: 20px; + margin-right: 1rem; + transition: 0.15s ease all; +} +.zaak-collapse-button__chevron-icon { + width: 20px; + height: 20px; + margin-left: auto; + transition: 0.15s ease all; +} + +.zaak-content { + padding: 2rem 0; +} + +.zaak-details-table { + width: 100%; +} +.zaak-details-table th, +.zaak-details-table td { + padding: 1rem; + line-height: 1; +} +.zaak-details-table tr { + border-bottom: 1px solid var(--grey-2, #D2D2D2); +} + +.zaak-documents { + margin-top: 3rem; +} + +.zaak-header { + border-radius: 40px 0px; + height: 100px; + background-color: var(--grey-2, #D2D2D2); + margin-bottom: 6rem; +} +.zaak-header-title { + padding: 1rem 2rem; + margin-left: 3rem; + border-radius: 10px 0px; + border-left: 2px solid var(--color-palette-primary); + border-bottom: 2px solid var(--color-palette-primary); + width: fit-content; + background-color: #fff; + position: relative; + top: 3rem; +} + +.zaak-meta { + display: flex; + align-items: flex-start; + flex-wrap: wrap; + justify-content: space-evenly; +} + +.zaak-meta-item { + display: flex; + text-align: center; + flex-direction: column; + flex-basis: 50%; + align-items: center; + line-height: var(--zaak-meta-item-line-height, 1.5); +} +@media screen and (min-width: 576px) { + .zaak-meta-item { + flex-basis: 25%; + } +} +.zaak-meta-item__icon { + width: 40px; + height: 40px; + margin-bottom: 0.75rem; +} +.zaak-meta-item__value { + font-weight: var(--zaak-meta-item-value-font-weight, 700); +} + +.zaak-process { + margin-top: 3rem; +} + +.zaak-process-steps { + --zaak-process-steps-background-color: #fff; + --zaak-process-steps-border-width: 2px; + --zaak-process-steps-border-color: #D2D2D2; + --zaak-process-steps-color-success: #0d8228; + --zaak-process-steps-spacer: 1.75rem; + --zaak-process-steps-gap: 0.5rem; + --zaak-process-steps-size: 32px; + --zaak-process-steps-font-weight: 700; + list-style: none; + padding-left: 0.75rem; +} +.zaak-process-steps__step { + position: relative; + margin-bottom: var(--zaak-process-steps-spacer); + display: flex; + align-items: center; + font-weight: var(--zaak-process-steps-font-weight); +} +.zaak-process-steps__step:first-child .zaak-process-steps__step-marker::before { + content: none; +} +.zaak-process-steps__step-marker { + position: relative; + display: flex; + align-items: center; + justify-content: center; + width: var(--zaak-process-steps-size); + height: var(--zaak-process-steps-size); + min-width: var(--zaak-process-steps-size); + min-height: var(--zaak-process-steps-size); + margin-right: var(--zaak-process-steps-gap); + text-align: center; + border-radius: 50%; + border: var(--zaak-process-steps-border-width) solid var(--zaak-process-steps-border-color); + background-color: var(--zaak-process-steps-background-color); +} +.zaak-process-steps__step-marker::before { + position: absolute; + bottom: calc(100% + var(--zaak-process-steps-border-width)); + left: calc(50% - var(--zaak-process-steps-border-width) / 2); + height: var(--zaak-process-steps-spacer); + width: var(--zaak-process-steps-border-width); + content: ""; + background: repeating-linear-gradient(to bottom, var(--zaak-process-steps-border-color), var(--zaak-process-steps-border-color) 2px, transparent 2px, transparent 4px); +} +.zaak-process-steps__step-marker svg { + fill: var(--zaak-process-steps-color-success); +} +.zaak-process-steps__step--past .zaak-process-steps__step-marker { + border-color: var(--zaak-process-steps-color-success); + color: var(--zaak-process-steps-color-success); + background-color: #fff; +} +.zaak-process-steps__step--current { + color: var(--zaak-process-steps-color-success); +} +.zaak-process-steps__step--current .zaak-process-steps__step-marker { + border-color: var(--zaak-process-steps-color-success); + background-color: var(--zaak-process-steps-color-success); + color: #fff; +} +.zaak-process-steps__step--past .zaak-process-steps__step-marker::before, .zaak-process-steps__step--current .zaak-process-steps__step-marker::before { + background: var(--zaak-process-steps-color-success); +} + +.zaak-tabs { + --bs-nav-tabs-link-active-border-color: var(--color-palette-primary); + --bs-nav-tabs-border-width: 2px; + --bs-nav-tabs-border-color: #D2D2D2; + --bs-nav-tabs-link-active-color: var(--color-palette-primary); + --bs-nav-link-color: #000; + --bs-nav-link-hover-color: #000; +} +.zaak-tabs .nav-link { + border: 0; + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} +.zaak-tabs .nav-link.active { + font-weight: 700; +} + +.ogz-ztfilter_add { + width: 85%; + display: inline-block; +} diff --git a/resources/dist/build/zaak-styles.js b/resources/dist/build/zaak-styles.js index 361fe07..264965c 100644 --- a/resources/dist/build/zaak-styles.js +++ b/resources/dist/build/zaak-styles.js @@ -1,7 +1,49 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ /******/ (() => { // webpackBootstrap /******/ "use strict"; -var __webpack_exports__ = {}; -// extracted by mini-css-extract-plugin +/******/ var __webpack_modules__ = ({ +/***/ "./resources/scss/style.scss": +/*!***********************************!*\ + !*** ./resources/scss/style.scss ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://owc-gravityforms-zaaksysteem/./resources/scss/style.scss?"); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module can't be inlined because the eval devtool is used. +/******/ var __webpack_exports__ = {}; +/******/ __webpack_modules__["./resources/scss/style.scss"](0, __webpack_exports__, __webpack_require__); +/******/ /******/ })() ; \ No newline at end of file diff --git a/resources/js/editor/index.js b/resources/js/editor/index.js index 305a501..808178d 100644 --- a/resources/js/editor/index.js +++ b/resources/js/editor/index.js @@ -1,2 +1,3 @@ import "./register-blocks"; -import "./mijn-zaken"; \ No newline at end of file +import "./mijn-zaken"; +import "./mijn-taken"; diff --git a/resources/js/editor/mijn-taken.js b/resources/js/editor/mijn-taken.js new file mode 100644 index 0000000..3ec2244 --- /dev/null +++ b/resources/js/editor/mijn-taken.js @@ -0,0 +1,261 @@ +const { registerBlockType } = wp.blocks; +const { serverSideRender: ServerSideRender } = wp; + +const { + useBlockProps, + InspectorControls, +} = wp.blockEditor; + +const { + Panel, + PanelBody, + SelectControl, + RangeControl, +} = wp.components; + +const { Fragment } = wp.element; + +registerBlockType( 'owc/mijn-taken', { + apiVersion: 2, + title: 'Mijn Taken', + category: 'common', + attributes: { + zaakClient: { type: 'string', default: 'openzaak' }, + view: { type: 'string', default: 'default' }, + numberOfItems: { type: 'number', default: 2 }, + }, + edit: ( { attributes, setAttributes } ) => { + const blockProps = useBlockProps(); + const { zaakClient } = attributes; + + return ( +
+ + + +

+ Selecteer het zaaksysteem waaruit de taken + opgehaald moeten worden. +

+ + setAttributes( { + zaakClient: newzaakClient, + } ) + } + /> +
+ { attributes.view === 'current' && ( + + + setAttributes( { + numberOfItems: value, + } ) + } + /> + + ) } + + + setAttributes( { view: newView } ) + } + /> + +
+
+ + { attributes.view === 'default' ? ( +

Standaardweergave

+ ) : ( + <> +
    +
  • + +
  • +
  • + +
  • +
+ +
+
+
+
+ + + +

+ Aanvragen uittreksel BRP +

+
+
+ 12 december 2023 +
+
+ Dummy content +
+ + + +
+
+ +
+ + + +

+ Aanmelden straatfeest +

+
+
+ 15 oktober 2023 +
+ + + +
+
+
+ + + +

+ Aanvraag rijbewijs +

+
+
+ 20 januari 2023 +
+ + + +
+
+ +
+ + + +

+ Aanvragen leefbaarheidsbudget +

+
+
+ 11 januari 2023 +
+ + + +
+
+
+
+
+ + ) } +
+ ); + }, + save: ( { className } ) => { + return
; + }, +} ); diff --git a/resources/js/editor/register-blocks.js b/resources/js/editor/register-blocks.js index 9d626f2..853884c 100644 --- a/resources/js/editor/register-blocks.js +++ b/resources/js/editor/register-blocks.js @@ -8,4 +8,4 @@ registerBlockType("owc/gravityforms-zaaksysteem", { return ; }, save: () => () => null, -}); \ No newline at end of file +}); diff --git a/resources/scss/style.scss b/resources/scss/style.scss index afbd988..5e32fd3 100644 --- a/resources/scss/style.scss +++ b/resources/scss/style.scss @@ -6,15 +6,18 @@ @import '~bootstrap/scss/nav'; @import '~bootstrap/scss/root'; -@import './zaak/zaak-card'; -@import './zaak/zaak-collapse-button'; -@import './zaak/zaak-content'; -@import './zaak/zaak-details'; -@import './zaak/zaak-documents'; -@import './zaak/zaak-header'; -@import './zaak/zaak-meta'; -@import './zaak/zaak-process'; -@import './zaak/zaak-tabs'; +@import './taak/taak-card'; +@import './taak/taak-content'; + +@import './zaak/zaak-card'; +@import './zaak/zaak-collapse-button'; +@import './zaak/zaak-content'; +@import './zaak/zaak-details'; +@import './zaak/zaak-documents'; +@import './zaak/zaak-header'; +@import './zaak/zaak-meta'; +@import './zaak/zaak-process'; +@import './zaak/zaak-tabs'; @import './editor/mijn-zaken'; diff --git a/resources/scss/taak/taak-card.scss b/resources/scss/taak/taak-card.scss new file mode 100644 index 0000000..678a928 --- /dev/null +++ b/resources/scss/taak/taak-card.scss @@ -0,0 +1,137 @@ +$component: 'taak-card'; + + +.#{$component} { + position: relative; + z-index: 1; + padding: 2.5rem 1.5rem 1.5rem 1.5rem; + color: var(--grey-4, #4B4B4B); + border-radius: var(--card-border-radius, 5px); + transition: var(--card-transition, all 0.2s ease); + cursor: pointer; + display: flex; + min-height: 190px; + flex-direction: column; + + &::before { + position: absolute; + z-index: -2; + top: 0; + right: 1px; + bottom: 0; + left: 0; + background-color: var(--grey-2, #D2D2D2); + content: ""; + border-radius: var(--card-border-radius, 5px); + transition: var(--card-transition, all 0.2s ease); + } + + &::after { + position: absolute; + z-index: -2; + top: 8px; + right: 8px; + bottom: 0; + left: 0; + background-color: var(--white, #fff); + content: ""; + border-radius: var(--card-border-radius, 5px); + transition: var(--card-transition, all 0.2s ease); + } + + + &:hover { + transform: translateY(-4px); + + &::before, + &::after { + transform: translateY(-6px); + } + } + + &-svg { + position: absolute; + z-index: -1; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: 100%; + height: 100%; + } + + &-title { + color: inherit; + margin-bottom: 1rem; + + a { + color: inherit; + text-decoration: none; + + &::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + content: ''; + } + + &:hover { + color: inherit; + text-decoration: none; + } + } + } + + &-footer { + margin-top: auto; + display: flex; + line-height: 1.2; + gap: 1rem; + justify-content: space-between; + align-items: center; + } + + &-date { + text-transform: lowercase; + } + + &-tag { + margin-left: auto; + font-size: 0.8rem; + background-color: var(--primary-300, #001D5F); + padding: 0.25rem 0.5rem; + font-weight: 700; + border-radius: var(--card-border-radius, 5px); + text-transform: uppercase; + color: #fff; + } + + &.active { + color: var(--primary-300, #001D5F); + + &::before { + background-color: var(--primary-200, #4D6EB9); + } + + .#{$component}-svg { + fill: var(--primary-100, #E9EFFF); + } + + .#{$component}-arrow { + fill: var(--primary-300, #4D6EB9); + } + } +} + +.#{$component}-wrapper { + margin-top: 2rem; + margin-bottom: 2rem; + display: grid; + gap: 2rem; + + @media screen and (min-width: 950px) { + grid-template-columns: 1fr 1fr; + } +} diff --git a/resources/scss/taak/taak-content.scss b/resources/scss/taak/taak-content.scss new file mode 100644 index 0000000..e912a05 --- /dev/null +++ b/resources/scss/taak/taak-content.scss @@ -0,0 +1,5 @@ +$content: 'taak-content'; + +.#{$content} { + padding: 2rem 0; +} diff --git a/resources/views/blocks/mijn-taken/overview-taken-current.php b/resources/views/blocks/mijn-taken/overview-taken-current.php new file mode 100644 index 0000000..14e6e28 --- /dev/null +++ b/resources/views/blocks/mijn-taken/overview-taken-current.php @@ -0,0 +1,15 @@ + + +
+ $taak->title(), + 'clarification' => $taak->clarification(), + 'isActive' => true, + ]); + } ?> +
diff --git a/resources/views/blocks/mijn-taken/overview-taken.php b/resources/views/blocks/mijn-taken/overview-taken.php new file mode 100644 index 0000000..bd7afa5 --- /dev/null +++ b/resources/views/blocks/mijn-taken/overview-taken.php @@ -0,0 +1,25 @@ + + + + +
+
+
+ $taak->title(), + 'clarification' => $taak->clarification(), + 'isActive' => true, + ]); + } ?> +
+
+
diff --git a/resources/views/blocks/mijn-taken/taak-collapse-button.php b/resources/views/blocks/mijn-taken/taak-collapse-button.php new file mode 100644 index 0000000..0402ea1 --- /dev/null +++ b/resources/views/blocks/mijn-taken/taak-collapse-button.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/resources/views/blocks/mijn-taken/tabs-view/taak-card.php b/resources/views/blocks/mijn-taken/tabs-view/taak-card.php new file mode 100644 index 0000000..654e470 --- /dev/null +++ b/resources/views/blocks/mijn-taken/tabs-view/taak-card.php @@ -0,0 +1,28 @@ + +
+ + + +

+ + + +

+ + +
diff --git a/src/Blocks/Taken/Block.php b/src/Blocks/Taken/Block.php new file mode 100644 index 0000000..cca570e --- /dev/null +++ b/src/Blocks/Taken/Block.php @@ -0,0 +1,170 @@ +getCurrentUserBsn()) { + // return 'Er is geen geldig BSN gevonden waardoor er geen taken opgehaald kunnen worden.'; + } + + $this->client = ContainerResolver::make()->getApiClient($attributes['zaakClient'] ?? 'openzaak'); + + if (! $this->client->supports('zaken')) { + return __('Het Mijn Taken overzicht is niet beschikbaar.', 'owc-gravityforms-zaaksysteem'); + } + + $taken = get_transient($this->uniqueTransientKey($attributes)); + + if ($taken instanceof Collection && $taken->isNotEmpty()) { + return $this->returnView($attributes, $taken); + } + + try { + $taken = $this->handleZakenTaken($attributes); + } catch (Exception $e) { + $taken = collect(); + } + + if ($taken->isEmpty()) { + return __('Er zijn op dit moment geen taken beschikbaar.', 'owc-gravityforms-zaaksysteem'); + } + + set_transient($this->uniqueTransientKey($attributes), $taken, 500); + + return $this->returnView($attributes, $taken); + } + + protected function getCurrentUserBsn(): string + { + $bsn = resolve('digid.current_user_bsn'); + + /** + * TEMP: signicat plugin has some changes pending which requires another implementation. + */ + if (empty($bsn)) { + $isLoggedIn = apply_filters('owc_siginicat_openid_is_user_logged_in', false, 'digid'); + + if ($isLoggedIn) { + $userInfo = apply_filters('owc_signicat_openid_user_info', [], 'digid'); + $bsn = $userInfo['sub'] ?? ''; + } + + return ! empty($bsn) && is_string($bsn) ? $bsn : ''; + } + + return $bsn; + } + + protected function handleZakenTaken(array $attributes): Collection + { + $zaken = $this->getZaken($attributes); + + return $this->getTaken($zaken); + } + + /** + * Based on the configured attributes and the bsn of the current user. + */ + protected function uniqueTransientKey(array $attributes): string + { + $attributes['bsnCurrentUser'] = $this->getCurrentUserBsn(); + $attributes['type'] = 'taken'; + + return md5(json_encode($attributes)); + } + + protected function getZaken(array $attributes): Collection + { + return Collection::collect([ + 'https://api.accept.common-gateway.commonground.nu/api/zrc/v1/zaken/f5d1c9b7-e3a9-485d-98cb-1667e1d0537c' + ]); + + // When mijn-taken api is properly configured this should be activated again. + // $filter = new ZakenFilter(); + // $filter = $this->handleFilterBSN($filter, $attributes); + + // return $this->client->zaken()->filter($filter); + } + + protected function handleFilterBSN(ZakenFilter $filter, array $attributes): ZakenFilter + { + if (! $attributes['byBSN']) { + return $filter; + } + + $filter->byBsn($this->getCurrentUserBsn()); + + return $filter; + } + + protected function getTaken(Collection $zaken): Collection + { + $taken = []; + + foreach ($zaken as $zaak) { + $filter = new TakenFilter(); + // $filter->byZaak($zaak->url); + $filter->byZaakURL($zaak); // Above should be activated again when the mijn-taken api is properly configured. + $fetchedTaken = $this->client->taken()->filter($filter); + + if ($fetchedTaken->isNotEmpty()) { + $taken[] = $fetchedTaken->toArray(); + } + } + + return Collection::collect($taken)->flattenAndAssign(function ($carry, $item) { + if (is_array($item)) { + return array_merge($carry, $item); + } + + $carry[] = $item; + + return $carry; + }, []); + } + + protected function returnView(array $attributes, Collection $taken): string + { + if ($attributes['view'] === 'default') { + return view('blocks/mijn-taken/overview-taken.php', ['taken' => $taken]); + } + + if ('current' === $attributes['view']) { + /** + * Before reviewing this clause, it's important to note the limitations of the Taken endpoint. + * The Taken endpoint lacks native support for limiting results by a specific number. + * Consequently, the 'take' method is used. However, it's worth noting that this approach may not be efficient, + * especially when a resident has a substantial number of 'zaken'. + * + * Ideally, we would be able to apply additional filtering based on the status of Taken, such as 'current' and 'closed'. + */ + $limit = $attributes['numberOfItems'] ?? 2; + + return view('blocks/mijn-taken/overview-taken-current.php', ['taken' => $taken->take((int) $limit)]); + } + + return view('blocks/mijn-taken/overview-taken.php', ['taken' => $taken]); + } +} diff --git a/src/Blocks/Taken/Taken.php b/src/Blocks/Taken/Taken.php new file mode 100644 index 0000000..ef8bc28 --- /dev/null +++ b/src/Blocks/Taken/Taken.php @@ -0,0 +1,38 @@ +register('owc/mijn-taken', [ + 'attributes' => [ + 'zaakClient' => [ + 'type' => 'string', + 'default' => 'openzaak', + ], + 'view' => [ + 'type' => 'string', + 'default' => 'default', + ], + 'numberOfItems' => [ + 'type' => 'number', + 'default' => 2, + ], + 'title' => 'Mijn Taken', + 'style' => 'swf-extended-blocks-style', + 'editor_script' => 'swf-extended-blocks-script', + 'editor_style' => 'swf-extended-blocks-editor-style', + ], + 'render_callback' => [new Block(), 'render'], + ]); + } +} diff --git a/src/Blocks/Taken/index.php b/src/Blocks/Taken/index.php new file mode 100644 index 0000000..174d7fd --- /dev/null +++ b/src/Blocks/Taken/index.php @@ -0,0 +1,3 @@ +clientId = $clientId; $this->clientSecret = $clientSecret; + $this->mijnTakenApiKey = $mijnTakenApiKey; } public function generateToken(): string diff --git a/src/Clients/RxMission/Client.php b/src/Clients/RxMission/Client.php index 6a23dbe..c929d70 100644 --- a/src/Clients/RxMission/Client.php +++ b/src/Clients/RxMission/Client.php @@ -16,6 +16,7 @@ use OWC\Zaaksysteem\Endpoints\RoltypenEndpoint; use OWC\Zaaksysteem\Endpoints\StatussenEndpoint; use OWC\Zaaksysteem\Endpoints\StatustypenEndpoint; +use OWC\Zaaksysteem\Endpoints\TakenEndpoint; use OWC\Zaaksysteem\Endpoints\ZaakeigenschappenEndpoint; use OWC\Zaaksysteem\Endpoints\ZaakinformatieobjectenEndpoint; use OWC\Zaaksysteem\Endpoints\ZaakobjectenEndpoint; @@ -67,5 +68,8 @@ class Client extends AbstractClient // 'gebruiksrechten' => Endpoint::class, // 'objectinformatieobjecten' => Endpoint::class, // 'bestandsdelen' => Endpoint::class, + + // Mijn Taken API + 'taken' => [TakenEndpoint::class, 'taken'], ]; } diff --git a/src/Clients/Xxllnc/Authenticator.php b/src/Clients/Xxllnc/Authenticator.php index 435991e..15c230f 100644 --- a/src/Clients/Xxllnc/Authenticator.php +++ b/src/Clients/Xxllnc/Authenticator.php @@ -11,11 +11,13 @@ class Authenticator extends AbstractTokenAuthenticator { protected string $clientId; protected string $clientSecret; + protected string $mijnTakenApiKey; - public function __construct(string $clientId, string $clientSecret) + public function __construct(string $clientId, string $clientSecret, string $mijnTakenApiKey) { $this->clientId = $clientId; $this->clientSecret = $clientSecret; + $this->mijnTakenApiKey = $mijnTakenApiKey; } public function generateToken(): string diff --git a/src/Clients/Xxllnc/Client.php b/src/Clients/Xxllnc/Client.php index a825ad3..8954a11 100644 --- a/src/Clients/Xxllnc/Client.php +++ b/src/Clients/Xxllnc/Client.php @@ -16,6 +16,7 @@ use OWC\Zaaksysteem\Endpoints\RoltypenEndpoint; use OWC\Zaaksysteem\Endpoints\StatussenEndpoint; use OWC\Zaaksysteem\Endpoints\StatustypenEndpoint; +use OWC\Zaaksysteem\Endpoints\TakenEndpoint; use OWC\Zaaksysteem\Endpoints\ZaakeigenschappenEndpoint; use OWC\Zaaksysteem\Endpoints\ZaakinformatieobjectenEndpoint; use OWC\Zaaksysteem\Endpoints\ZaakobjectenEndpoint; @@ -67,5 +68,8 @@ class Client extends AbstractClient // 'gebruiksrechten' => Endpoint::class, // 'objectinformatieobjecten' => Endpoint::class, // 'bestandsdelen' => Endpoint::class, + + // Mijn Taken API + 'taken' => [TakenEndpoint::class, 'taken'], ]; } diff --git a/src/Contracts/AbstractClient.php b/src/Contracts/AbstractClient.php index efd6394..1b3828a 100644 --- a/src/Contracts/AbstractClient.php +++ b/src/Contracts/AbstractClient.php @@ -6,19 +6,15 @@ use InvalidArgumentException; use OWC\Zaaksysteem\Endpoints\Endpoint; -use function OWC\Zaaksysteem\Foundation\Helpers\resolve; use OWC\Zaaksysteem\Http\Errors\ResourceNotFoundError; use OWC\Zaaksysteem\Http\Errors\ServerError; use OWC\Zaaksysteem\Http\RequestClientInterface; + +use function OWC\Zaaksysteem\Foundation\Helpers\resolve; use function Yard\DigiD\Foundation\Helpers\config; abstract class AbstractClient implements Client { - /** - * Some clients require the use of SSL certificates. - */ - public const USE_SSL_CERTIFICATES = false; - public const CLIENT_NAME = 'abstract'; /** @@ -34,6 +30,7 @@ abstract class AbstractClient implements Client protected string $zakenEndpointUrl; protected string $catalogiEndpointUrl; protected string $documentenEndpointUrl; + protected string $takenEndpointUrl; // Does every API require token authentication? Maybe replace with interface public function __construct( @@ -41,13 +38,15 @@ public function __construct( TokenAuthenticator $authenticator, string $zakenEndpointUrl, string $catalogiEndpointUrl, - string $documentenEndpointUrl + string $documentenEndpointUrl, + string $takenEndpointUrl = '' // Optional for now. ) { $this->client = $client; $this->authenticator = $authenticator; $this->zakenEndpointUrl = $zakenEndpointUrl; $this->catalogiEndpointUrl = $catalogiEndpointUrl; $this->documentenEndpointUrl = $documentenEndpointUrl; + $this->takenEndpointUrl = $takenEndpointUrl; } public function __call($name, $arguments) @@ -104,13 +103,12 @@ protected function fetchFromContainer(string $key): Endpoint /** * Apply SSL certificates when client requires them. + * This method should be chained inside the container configuration + * (container.php) when initializing the client class to ensure that the certificates + * are included for authentication. */ protected function applySslCertificates(): void { - if (! static::USE_SSL_CERTIFICATES) { - return; - } - $sslPublicCert = config('digid.certificate.public'); $sslPrivateCert = config('digid.certificate.private'); @@ -174,6 +172,8 @@ public function getEndpointUrlByType(string $type): string return $this->catalogiEndpointUrl; case 'documenten': return $this->documentenEndpointUrl; + case 'taken': + return $this->takenEndpointUrl; default: throw new InvalidArgumentException("Unknown endpoint type {$type}"); } diff --git a/src/Contracts/AbstractTokenAuthenticator.php b/src/Contracts/AbstractTokenAuthenticator.php index 25b2c79..7b5e11e 100644 --- a/src/Contracts/AbstractTokenAuthenticator.php +++ b/src/Contracts/AbstractTokenAuthenticator.php @@ -7,6 +7,7 @@ abstract class AbstractTokenAuthenticator implements TokenAuthenticator { protected string $clientSecret; + protected string $mijnTakenApiKey; abstract public function generateToken(): string; @@ -29,4 +30,9 @@ public function getAuthString(): string { return sprintf('Bearer %s', $this->generateToken()); } + + public function getApiKeyMijnTaken(): string + { + return $this->mijnTakenApiKey; + } } diff --git a/src/Contracts/TokenAuthenticator.php b/src/Contracts/TokenAuthenticator.php index 6aed2e7..7242486 100644 --- a/src/Contracts/TokenAuthenticator.php +++ b/src/Contracts/TokenAuthenticator.php @@ -9,4 +9,5 @@ interface TokenAuthenticator public function generateToken(): string; public function setClientSecret(string $clientSecret): self; public function getAuthString(): string; + public function getApiKeyMijnTaken(): string; } diff --git a/src/Endpoints/Endpoint.php b/src/Endpoints/Endpoint.php index 502d87b..6fd8022 100644 --- a/src/Endpoints/Endpoint.php +++ b/src/Endpoints/Endpoint.php @@ -4,17 +4,17 @@ namespace OWC\Zaaksysteem\Endpoints; -use OWC\Zaaksysteem\Http\PageMeta; -use OWC\Zaaksysteem\Http\Response; -use OWC\Zaaksysteem\Entities\Entity; use OWC\Zaaksysteem\Contracts\Client; -use OWC\Zaaksysteem\Support\Collection; +use OWC\Zaaksysteem\Contracts\TokenAuthenticator; +use OWC\Zaaksysteem\Endpoints\Traits\SupportsExpand; +use OWC\Zaaksysteem\Entities\Entity; use OWC\Zaaksysteem\Http\Handlers\Stack; +use OWC\Zaaksysteem\Http\PageMeta; +use OWC\Zaaksysteem\Http\RequestClientInterface; use OWC\Zaaksysteem\Http\RequestOptions; +use OWC\Zaaksysteem\Http\Response; +use OWC\Zaaksysteem\Support\Collection; use OWC\Zaaksysteem\Support\PagedCollection; -use OWC\Zaaksysteem\Http\RequestClientInterface; -use OWC\Zaaksysteem\Contracts\TokenAuthenticator; -use OWC\Zaaksysteem\Endpoints\Traits\SupportsExpand; abstract class Endpoint { @@ -50,7 +50,7 @@ protected function buildRequestOptions(): RequestOptions { return new RequestOptions([ 'headers' => [ - 'Authorization' => $this->authenticator->getAuthString(), + 'Authorization' => $this->apiType !== 'taken' ? $this->authenticator->getAuthString() : $this->authenticator->getApiKeyMijnTaken(), ], ]); } diff --git a/src/Endpoints/Filter/TakenFilter.php b/src/Endpoints/Filter/TakenFilter.php new file mode 100644 index 0000000..c6a6785 --- /dev/null +++ b/src/Endpoints/Filter/TakenFilter.php @@ -0,0 +1,43 @@ +add('zaak', $zaak->url); + } + + /** + * Temp: this should be removed when the mijn-taken api is properly configured. + * + * @param [type] $zaak + * @return void + */ + public function byZaakURL($zaak) + { + return $this->add('zaak', $zaak); + } +} diff --git a/src/Endpoints/TakenEndpoint.php b/src/Endpoints/TakenEndpoint.php new file mode 100644 index 0000000..e33005b --- /dev/null +++ b/src/Endpoints/TakenEndpoint.php @@ -0,0 +1,25 @@ +httpClient->get( + $this->buildUri($this->endpoint, $filter), + $this->buildRequestOptions($filter) + ); + + return $this->getPagedCollection($this->handleResponse($response)); + } +} diff --git a/src/Entities/Taak.php b/src/Entities/Taak.php new file mode 100644 index 0000000..aef43d5 --- /dev/null +++ b/src/Entities/Taak.php @@ -0,0 +1,27 @@ + Casts\Lazy\Zaak::class, + ]; + + public function title(): string + { + return $this->getValue('title', ''); + } + + public function identification(): string + { + return $this->getValue('identificatie', ''); + } + + public function clarification(): string + { + return $this->getValue('toelichting', ''); + } +} diff --git a/src/GravityForms/GravityFormsAddon.php b/src/GravityForms/GravityFormsAddon.php index 80432ef..21e99ea 100644 --- a/src/GravityForms/GravityFormsAddon.php +++ b/src/GravityForms/GravityFormsAddon.php @@ -333,6 +333,18 @@ protected function settingsRxMission(): array 'class' => 'medium', 'name' => "{$this->prefix}-rx-mission-client-secret", ], + [ + 'label' => esc_html__('Mijn taken URL', 'owc-gravityforms-zaaksysteem'), + 'type' => 'text', + 'class' => 'medium', + 'name' => "{$this->prefix}-rx-mission-mijn-taken-url", + ], + [ + 'label' => esc_html__('Mijn taken API key', 'owc-gravityforms-zaaksysteem'), + 'type' => 'text', + 'class' => 'medium', + 'name' => "{$this->prefix}-rx-mission-mijn-taken-api-key", + ], ], ]; } @@ -386,6 +398,18 @@ protected function settingsXxllnc(): array 'class' => 'medium', 'name' => "{$this->prefix}-xxllnc-client-secret", ], + [ + 'label' => esc_html__('Mijn taken URL', 'owc-gravityforms-zaaksysteem'), + 'type' => 'text', + 'class' => 'medium', + 'name' => "{$this->prefix}-xxllnc-mijn-taken-url", + ], + [ + 'label' => esc_html__('Mijn taken API key', 'owc-gravityforms-zaaksysteem'), + 'type' => 'text', + 'class' => 'medium', + 'name' => "{$this->prefix}-xxllnc-mijn-taken-api-key", + ], ], ]; } diff --git a/src/GravityForms/GravityFormsServiceProvider.php b/src/GravityForms/GravityFormsServiceProvider.php index 07cb58d..74c24d1 100644 --- a/src/GravityForms/GravityFormsServiceProvider.php +++ b/src/GravityForms/GravityFormsServiceProvider.php @@ -30,6 +30,8 @@ protected function loadHooks(): void $this->plugin->loader->addAction('gform_field_standard_settings', $gravityFormsFieldSettings, 'addSelect', 10, 2); $this->plugin->loader->addAction('gform_editor_js', $gravityFormsFieldSettings, 'addSelectScript', 10, 0); $this->plugin->loader->addFilter('gform_form_settings_fields', new GravityFormsFormSettings(), 'addFormSettings', 10, 2); + + // dd(\OWC\Zaaksysteem\Resolvers\ContainerResolver::make()->get('xxllnc.mijn_taken_uri')); } /** diff --git a/src/Http/WordPress/WordPressRequestClient.php b/src/Http/WordPress/WordPressRequestClient.php index c07153c..d995c55 100644 --- a/src/Http/WordPress/WordPressRequestClient.php +++ b/src/Http/WordPress/WordPressRequestClient.php @@ -8,6 +8,7 @@ use OWC\Zaaksysteem\Http\RequestClientInterface; use OWC\Zaaksysteem\Http\RequestOptions; use OWC\Zaaksysteem\Http\Response; + use function Yard\DigiD\Foundation\Helpers\config; class WordPressRequestClient implements RequestClientInterface From e5ced905ab98bd4c26b81346c63f88384dab8589 Mon Sep 17 00:00:00 2001 From: Mike van den Hoek Date: Wed, 9 Oct 2024 16:11:25 +0200 Subject: [PATCH 03/11] (refactor): pass apiType param to endpoint constructor instead of defining per endpoint class --- src/Contracts/AbstractClient.php | 6 +++--- src/Endpoints/Endpoint.php | 8 +++++--- src/Endpoints/TakenEndpoint.php | 2 +- src/Endpoints/ZakenEndpoint.php | 7 +++---- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/Contracts/AbstractClient.php b/src/Contracts/AbstractClient.php index 1b3828a..82fae1b 100644 --- a/src/Contracts/AbstractClient.php +++ b/src/Contracts/AbstractClient.php @@ -6,11 +6,11 @@ use InvalidArgumentException; use OWC\Zaaksysteem\Endpoints\Endpoint; +use function OWC\Zaaksysteem\Foundation\Helpers\resolve; use OWC\Zaaksysteem\Http\Errors\ResourceNotFoundError; use OWC\Zaaksysteem\Http\Errors\ServerError; -use OWC\Zaaksysteem\Http\RequestClientInterface; -use function OWC\Zaaksysteem\Foundation\Helpers\resolve; +use OWC\Zaaksysteem\Http\RequestClientInterface; use function Yard\DigiD\Foundation\Helpers\config; abstract class AbstractClient implements Client @@ -92,7 +92,7 @@ protected function fetchFromContainer(string $key): Endpoint $this->setClientSecretByType($type); - $endpoint = new $class($this, $this->getEndpointUrlByType($type)); + $endpoint = new $class($this, $this->getEndpointUrlByType($type), $type); $this->container[$key] = $endpoint; } diff --git a/src/Endpoints/Endpoint.php b/src/Endpoints/Endpoint.php index 6fd8022..2623613 100644 --- a/src/Endpoints/Endpoint.php +++ b/src/Endpoints/Endpoint.php @@ -22,16 +22,18 @@ abstract class Endpoint protected Client $client; protected string $endpointURL = ''; + protected string $apiType = ''; protected RequestClientInterface $httpClient; protected TokenAuthenticator $authenticator; protected Stack $responseHandlers; protected string $entityClass = Entity::class; - public function __construct(Client $client, string $endpointURL) + public function __construct(Client $client, string $endpointURL, string $apiType) { $this->client = $client; $this->endpointURL = $endpointURL; + $this->apiType = $apiType; $this->httpClient = $client->getRequestClient(); $this->authenticator = $client->getAuthenticator(); $this->responseHandlers = Stack::create(); @@ -50,7 +52,7 @@ protected function buildRequestOptions(): RequestOptions { return new RequestOptions([ 'headers' => [ - 'Authorization' => $this->apiType !== 'taken' ? $this->authenticator->getAuthString() : $this->authenticator->getApiKeyMijnTaken(), + 'Authorization' => 'taken' === $this->apiType ? $this->authenticator->getApiKeyMijnTaken() : $this->authenticator->getAuthString(), ], ]); } @@ -72,7 +74,7 @@ protected function buildUriWithExpand(string $uri, ?Filter\AbstractFilter $filte if ($this->endpointSupportsExpand() && $this->expandIsEnabled()) { $uri = add_query_arg([ - 'expand' => implode(',', $this->getExpandableResources()) + 'expand' => implode(',', $this->getExpandableResources()), ], $uri); } diff --git a/src/Endpoints/TakenEndpoint.php b/src/Endpoints/TakenEndpoint.php index e33005b..32e7dd2 100644 --- a/src/Endpoints/TakenEndpoint.php +++ b/src/Endpoints/TakenEndpoint.php @@ -9,7 +9,7 @@ class TakenEndpoint extends Endpoint { - protected string $apiType = 'taken'; + // protected string $apiType = 'taken'; protected string $endpoint = 'taken'; protected string $entityClass = Taak::class; diff --git a/src/Endpoints/ZakenEndpoint.php b/src/Endpoints/ZakenEndpoint.php index 2f5e8fd..8d0c352 100644 --- a/src/Endpoints/ZakenEndpoint.php +++ b/src/Endpoints/ZakenEndpoint.php @@ -4,17 +4,16 @@ namespace OWC\Zaaksysteem\Endpoints; -use OWC\Zaaksysteem\Http\Response; -use OWC\Zaaksysteem\Entities\Zaak; use OWC\Zaaksysteem\Entities\Entity; use OWC\Zaaksysteem\Entities\Status; +use OWC\Zaaksysteem\Entities\Zaak; +use OWC\Zaaksysteem\Http\Response; +use OWC\Zaaksysteem\Resolvers\ContainerResolver; use OWC\Zaaksysteem\Support\Collection; use OWC\Zaaksysteem\Support\PagedCollection; -use OWC\Zaaksysteem\Resolvers\ContainerResolver; class ZakenEndpoint extends Endpoint { - protected string $apiType = 'zaken'; protected string $endpoint = 'zaken'; protected string $entityClass = Zaak::class; From 84333df1b3e564344980e1768ddd102a00b34720 Mon Sep 17 00:00:00 2001 From: Mike van den Hoek Date: Thu, 17 Oct 2024 11:24:31 +0200 Subject: [PATCH 04/11] (feat): finish implementing mijn taken --- TODO.md | 4 + owc-gravityforms-zaaksysteem.php | 6 + .../mijn-taken/overview-taken-current.php | 3 +- .../blocks/mijn-taken/overview-taken.php | 1 + .../blocks/mijn-taken/tabs-view/taak-card.php | 4 +- resources/views/template-mijn-taken.php | 34 +++++ src/Blocks/Taken/Block.php | 33 ++--- .../RxMission/Actions/UpdateTaakAction.php | 31 +++++ src/Contracts/AbstractCreateTaakAction.php | 35 +++++ src/Endpoints/Endpoint.php | 8 +- src/Endpoints/Filter/TakenFilter.php | 12 -- src/Endpoints/TakenEndpoint.php | 42 +++++- src/Entities/Entity.php | 11 +- src/Entities/Taak.php | 71 ++++++++++ src/GravityForms/GravityForms.php | 100 +++++++++++++- .../GravityFormsServiceProvider.php | 32 ++++- src/Http/RequestClientInterface.php | 1 + src/Http/WordPress/WordPressRequestClient.php | 14 ++ src/Resolvers/DigiDBsnResolver.php | 6 +- .../Controllers/AbstractRoutingController.php | 10 ++ .../SingleTaakRoutingController.php | 124 ++++++++++++++++++ src/Routing/RoutingServiceProvider.php | 2 + src/Templating/TemplatingServiceProvider.php | 5 + src/Validation/ValidationServiceProvider.php | 4 +- 24 files changed, 544 insertions(+), 49 deletions(-) create mode 100644 resources/views/template-mijn-taken.php create mode 100644 src/Clients/RxMission/Actions/UpdateTaakAction.php create mode 100644 src/Contracts/AbstractCreateTaakAction.php create mode 100644 src/Routing/Controllers/SingleTaakRoutingController.php diff --git a/TODO.md b/TODO.md index cc0f81a..9bd6ab6 100644 --- a/TODO.md +++ b/TODO.md @@ -1,4 +1,8 @@ # TO-DO +Please please take note; the code is very nasty but serves as a POC. There is no need to clean everything up since the requirements and mijn-taken API are likely to change. + - Preprare generic form for altering the 'Taak' status - Single page 'Taak' with form combined +- Finding applicable form is now being done by css class, create form setting instead +- Finding applicable form field which are populated on render needs to be done better and more robust diff --git a/owc-gravityforms-zaaksysteem.php b/owc-gravityforms-zaaksysteem.php index d5f8ce2..33978df 100644 --- a/owc-gravityforms-zaaksysteem.php +++ b/owc-gravityforms-zaaksysteem.php @@ -57,5 +57,11 @@ * and wp_loaded action hooks. */ \add_action('plugins_loaded', function () { + add_filter('http_request_args', function ($r, $url) { + $r['sslverify'] = false; + + return $r; + }, 10, 2); + Foundation\Plugin::getInstance(__DIR__)->boot(); }, 10); diff --git a/resources/views/blocks/mijn-taken/overview-taken-current.php b/resources/views/blocks/mijn-taken/overview-taken-current.php index 14e6e28..6a51392 100644 --- a/resources/views/blocks/mijn-taken/overview-taken-current.php +++ b/resources/views/blocks/mijn-taken/overview-taken-current.php @@ -7,9 +7,10 @@
$taak->title(), + 'title' => $taak->title() . ' ' . $taak->supplier(), 'clarification' => $taak->clarification(), 'isActive' => true, + 'link' => $taak->permalink(), ]); } ?>
diff --git a/resources/views/blocks/mijn-taken/overview-taken.php b/resources/views/blocks/mijn-taken/overview-taken.php index bd7afa5..2018260 100644 --- a/resources/views/blocks/mijn-taken/overview-taken.php +++ b/resources/views/blocks/mijn-taken/overview-taken.php @@ -18,6 +18,7 @@ 'title' => $taak->title(), 'clarification' => $taak->clarification(), 'isActive' => true, + 'link' => $taak->permalink(), ]); } ?> diff --git a/resources/views/blocks/mijn-taken/tabs-view/taak-card.php b/resources/views/blocks/mijn-taken/tabs-view/taak-card.php index 654e470..58ce16d 100644 --- a/resources/views/blocks/mijn-taken/tabs-view/taak-card.php +++ b/resources/views/blocks/mijn-taken/tabs-view/taak-card.php @@ -2,8 +2,8 @@ $isActive = $vars['isActive'] ?? false; $title = $vars['title'] ?? ''; $clarification = $vars['clarification'] ?? ''; -$date = $date ?? ''; -$link = $link ?? ''; +$date = $vars['date'] ?? ''; +$link = $vars['link'] ?? ''; ?>
diff --git a/resources/views/template-mijn-taken.php b/resources/views/template-mijn-taken.php new file mode 100644 index 0000000..6d6b1fb --- /dev/null +++ b/resources/views/template-mijn-taken.php @@ -0,0 +1,34 @@ + +
+
+
+ + +
+

+ +

+ +
+ +
+
+ +
+
+ + +
+
+ + +getBsn(); } return ! empty($bsn) && is_string($bsn) ? $bsn : ''; @@ -97,20 +97,21 @@ protected function uniqueTransientKey(array $attributes): string protected function getZaken(array $attributes): Collection { - return Collection::collect([ - 'https://api.accept.common-gateway.commonground.nu/api/zrc/v1/zaken/f5d1c9b7-e3a9-485d-98cb-1667e1d0537c' - ]); + // return Collection::collect([ + // 'https://api.accept.common-gateway.commonground.nu/api/zrc/v1/zaken/f5d1c9b7-e3a9-485d-98cb-1667e1d0537c', + // ]); + // return $this->client->zaken()->all(); // When mijn-taken api is properly configured this should be activated again. - // $filter = new ZakenFilter(); - // $filter = $this->handleFilterBSN($filter, $attributes); + $filter = new ZakenFilter(); + $filter = $this->handleFilterBSN($filter, $attributes); - // return $this->client->zaken()->filter($filter); + return $this->client->zaken()->filter($filter); } protected function handleFilterBSN(ZakenFilter $filter, array $attributes): ZakenFilter { - if (! $attributes['byBSN']) { + if (! ($attributes['byBSN'] ?? false)) { return $filter; } @@ -125,14 +126,14 @@ protected function getTaken(Collection $zaken): Collection foreach ($zaken as $zaak) { $filter = new TakenFilter(); - // $filter->byZaak($zaak->url); - $filter->byZaakURL($zaak); // Above should be activated again when the mijn-taken api is properly configured. + $filter->byZaak($zaak); $fetchedTaken = $this->client->taken()->filter($filter); if ($fetchedTaken->isNotEmpty()) { $taken[] = $fetchedTaken->toArray(); } } + // Misschien nog filteren hier? return Collection::collect($taken)->flattenAndAssign(function ($carry, $item) { if (is_array($item)) { @@ -147,7 +148,7 @@ protected function getTaken(Collection $zaken): Collection protected function returnView(array $attributes, Collection $taken): string { - if ($attributes['view'] === 'default') { + if ('default' === $attributes['view']) { return view('blocks/mijn-taken/overview-taken.php', ['taken' => $taken]); } diff --git a/src/Clients/RxMission/Actions/UpdateTaakAction.php b/src/Clients/RxMission/Actions/UpdateTaakAction.php new file mode 100644 index 0000000..9cd4d14 --- /dev/null +++ b/src/Clients/RxMission/Actions/UpdateTaakAction.php @@ -0,0 +1,31 @@ +getApiClient(); + + $args = $this->requestArgs($taakUUID, $taakTitle, $status); + + return $client->taken()->update($taakUUID, $args); + } +} diff --git a/src/Contracts/AbstractCreateTaakAction.php b/src/Contracts/AbstractCreateTaakAction.php new file mode 100644 index 0000000..3277a6d --- /dev/null +++ b/src/Contracts/AbstractCreateTaakAction.php @@ -0,0 +1,35 @@ +getApiClient(static::CLIENT_NAME); + } + + protected function requestArgs($taakUUID, $taakTitle, $status): array + { + return [ + 'id' => $taakUUID, + 'title' => $taakTitle, + 'status' => $status, + ]; + } + + abstract public function updateTaak($taakUUID, $taakTitle, $status); +} diff --git a/src/Endpoints/Endpoint.php b/src/Endpoints/Endpoint.php index 2623613..8ba6bb2 100644 --- a/src/Endpoints/Endpoint.php +++ b/src/Endpoints/Endpoint.php @@ -52,7 +52,7 @@ protected function buildRequestOptions(): RequestOptions { return new RequestOptions([ 'headers' => [ - 'Authorization' => 'taken' === $this->apiType ? $this->authenticator->getApiKeyMijnTaken() : $this->authenticator->getAuthString(), + 'Authorization' => 'taken' === $this->apiType || $this->client->getClientNamePretty() === 'rx-mission' ? $this->authenticator->getApiKeyMijnTaken() : $this->authenticator->getAuthString(), ], ]); } @@ -106,9 +106,11 @@ protected function getCollection(Response $response): Collection protected function mapEntities(array $data): array { - return array_map(function ($item) { - return $this->buildEntity($item); + $entities = array_map(function ($item) { + return is_array($item) ? $this->buildEntity($item) : null; }, $data); + + return array_filter($entities); } protected function buildEntity($data): Entity diff --git a/src/Endpoints/Filter/TakenFilter.php b/src/Endpoints/Filter/TakenFilter.php index c6a6785..5d7f93e 100644 --- a/src/Endpoints/Filter/TakenFilter.php +++ b/src/Endpoints/Filter/TakenFilter.php @@ -2,7 +2,6 @@ namespace OWC\Zaaksysteem\Endpoints\Filter; -use DateTimeInterface; use OWC\Zaaksysteem\Entities\Zaak; class TakenFilter extends AbstractFilter @@ -29,15 +28,4 @@ public function byZaak(Zaak $zaak) { return $this->add('zaak', $zaak->url); } - - /** - * Temp: this should be removed when the mijn-taken api is properly configured. - * - * @param [type] $zaak - * @return void - */ - public function byZaakURL($zaak) - { - return $this->add('zaak', $zaak); - } } diff --git a/src/Endpoints/TakenEndpoint.php b/src/Endpoints/TakenEndpoint.php index 32e7dd2..e082f31 100644 --- a/src/Endpoints/TakenEndpoint.php +++ b/src/Endpoints/TakenEndpoint.php @@ -4,15 +4,25 @@ namespace OWC\Zaaksysteem\Endpoints; +use OWC\Zaaksysteem\Entities\Entity; use OWC\Zaaksysteem\Entities\Taak; use OWC\Zaaksysteem\Support\PagedCollection; class TakenEndpoint extends Endpoint { - // protected string $apiType = 'taken'; protected string $endpoint = 'taken'; protected string $entityClass = Taak::class; + public function get(string $identifier): ?Taak + { + $response = $this->httpClient->get( + $this->buildUri(sprintf('%s/%s', $this->endpoint, $identifier)), + $this->buildRequestOptions() + ); + + return $this->getSingleEntity($this->handleResponse($response)); + } + public function filter(Filter\TakenFilter $filter): PagedCollection { $response = $this->httpClient->get( @@ -22,4 +32,34 @@ public function filter(Filter\TakenFilter $filter): PagedCollection return $this->getPagedCollection($this->handleResponse($response)); } + + public function update(string $taakURL, array $args): Taak + { + $response = $this->httpClient->update( + $this->buildUri(sprintf('%s/%s', $this->endpoint, $taakURL)), + $args, + $this->buildRequestOptions() + ); + + return $this->getSingleEntity($this->handleResponse($response)); + } + + protected function mapEntities(array $data): array + { + $entities = array_map(function ($item) { + return is_array($item) && isset($item['extraData']['leverancier']) ? $this->buildEntity($item) : null; + }, $data); + + return array_filter($entities); + } + + protected function buildEntity($data): Entity + { + $clientabbreviation = \OWC\Zaaksysteem\Resolvers\ContainerResolver::make()->get(sprintf('%s.abbr', strtolower($data['extraData']['leverancier']))); + $client = \OWC\Zaaksysteem\Resolvers\ContainerResolver::make()->get(sprintf('%s.client', $clientabbreviation)); + $class = $this->entityClass; + $taak = new $class($data, $client::CALLABLE_NAME, $client::CLIENT_NAME); + + return $taak; + } } diff --git a/src/Entities/Entity.php b/src/Entities/Entity.php index 39e003f..b08c61b 100644 --- a/src/Entities/Entity.php +++ b/src/Entities/Entity.php @@ -7,6 +7,7 @@ use ArrayAccess; use Exception; use JsonSerializable; +use TypeError; abstract class Entity implements ArrayAccess, @@ -33,7 +34,7 @@ public function __get($name) { try { return $this->getValue($name); - } catch(Exception $e) { + } catch (Exception $e) { return null; // Returning null is in line with the return types of the methods inside the cast classes. } } @@ -63,7 +64,7 @@ public function setValue(string $name, $value) try { $value = $caster->set($this, $name, $value); - } catch(Exception $e) { + } catch (Exception $e) { return; } } @@ -124,7 +125,11 @@ protected function serializeAttribute(string $name) protected function hydrate(array $data) { foreach ($data as $name => $value) { - $this->setValue($name, $value); + try { + $this->setValue($name, $value); + } catch (TypeError | Exception $e) { + continue; + } } } } diff --git a/src/Entities/Taak.php b/src/Entities/Taak.php index aef43d5..f7c0dcb 100644 --- a/src/Entities/Taak.php +++ b/src/Entities/Taak.php @@ -4,9 +4,13 @@ namespace OWC\Zaaksysteem\Entities; +use DateTimeImmutable; + class Taak extends Entity { protected array $casts = [ + 'verloopdatum' => Casts\NullableDate::class, + 'vervaldatum' => Casts\NullableDate::class, 'zaak' => Casts\Lazy\Zaak::class, ]; @@ -24,4 +28,71 @@ public function clarification(): string { return $this->getValue('toelichting', ''); } + + public function expirationDate(string $format = 'j F Y'): string + { + $expirationDate = $this->getValue('verloopdatum', null); + + if (! $expirationDate instanceof DateTimeImmutable) { + return ''; + } + + return date_i18n($format, $expirationDate->getTimestamp()); + } + + public function dueDate(string $format = 'j F Y'): string + { + $dueDate = $this->getValue('vervaldatum', null); + + if (! $dueDate instanceof DateTimeImmutable) { + return ''; + } + + return date_i18n($format, $dueDate->getTimestamp()); + } + + public function zaaktypeObjectURL(): string + { + $data = $this->getData(); + + return $data['zaakTypeUrl'] ?? ''; + } + + public function informationObjectURL(): string + { + $data = $this->getData(); + + return $data['documentTypeUrl'] ?? ''; + } + + protected function getData(): array + { + return $this->getValue('data', []); + } + + public function supplier(): string + { + $data = $this->getExtraData(); + + return $data['leverancier'] ?? ''; + } + + protected function getExtraData(): array + { + return $this->getValue('extraData', []); + } + + /** + * Is used in overview generated by owc/mijn-taken block. + */ + public function permalink(): string + { + $supplier = $this->supplier(); + + if (empty($supplier)) { + return sprintf('%s/taak/%s', get_site_url(), $this->getValue('id', '')); + } + + return sprintf('%s/taak/%s/%s', get_site_url(), $this->getValue('id', ''), strtolower($supplier)); + } } diff --git a/src/GravityForms/GravityForms.php b/src/GravityForms/GravityForms.php index 479041f..41bfc7a 100644 --- a/src/GravityForms/GravityForms.php +++ b/src/GravityForms/GravityForms.php @@ -5,8 +5,10 @@ namespace OWC\Zaaksysteem\GravityForms; use Exception; +use OWC\Zaaksysteem\Entities\Taak; use OWC\Zaaksysteem\Entities\Zaak; use OWC\Zaaksysteem\Entities\Zaakinformatieobject; +use function OWC\Zaaksysteem\Foundation\Helpers\config; use function OWC\Zaaksysteem\Foundation\Helpers\get_supplier; use function OWC\Zaaksysteem\Foundation\Helpers\view; use OWC\Zaaksysteem\Http\Errors\ResourceNotFoundError; @@ -28,19 +30,94 @@ protected function setSupplier(array $form): void */ public function GFFormSubmission(array $entry, array $form) { + $cssClass = $form['cssClass'] ?? null; + + if ('taak-informatieobject' === $cssClass) { + return $this->handleTaakInformationObject($entry, $form); + } + $this->setSupplier($form); - if (empty($this->supplier)) { - return $form; + if (0 < strlen($this->supplier)) { + return $this->handleZaak($entry, $form); + } + + return $form; + } + + protected function handleTaakInformationObject(array $entry, array $form) + { + $fieldIdsToExtractValueFromWithLabel = []; + $fieldLabelsToFind = ['bestand', 'supplier', 'zaak', 'taak', 'taak-title', 'taak-informationobject']; + + foreach ($form['fields'] as $field) { + if (! in_array(strtolower($field['label']), $fieldLabelsToFind)) { + continue; + } + + $fieldIdsToExtractValueFromWithLabel[strtolower($field['label'])] = $field['id']; + } + + $zaakUUID = rgar($entry, $fieldIdsToExtractValueFromWithLabel['zaak']); + $supplier = rgar($entry, $fieldIdsToExtractValueFromWithLabel['supplier']); + $taakUUID = rgar($entry, $fieldIdsToExtractValueFromWithLabel['taak']); + $taakTitle = rgar($entry, $fieldIdsToExtractValueFromWithLabel['taak-title']); + $taakInformationObject = rgar($entry, $fieldIdsToExtractValueFromWithLabel['taak-informationobject']); + + foreach ($form['fields'] as &$field) { + if (! in_array(strtolower($field['label']), $fieldLabelsToFind)) { + continue; + } + + if (strtolower($field['label']) === 'bestand') { + $field->linkedFieldValueZGW = 'informatieobject'; + $field->linkedFieldValueDocumentType = $taakInformationObject; + } + } + + $allowed = config('suppliers', []); + $supplierPretty = $allowed[strtolower($supplier)] ?? ''; + + $this->supplier = $supplierPretty; + $client = \OWC\Zaaksysteem\Resolvers\ContainerResolver::make()->getApiClient($supplier); + $zaak = $client->zaken()->get($zaakUUID); + + try { + $uploadsResult = $this->createUploadedDocuments($entry, $form, $zaak); + + if (false === $uploadsResult) { // Fallback. + throw new Exception('Één of meerdere bestanden konden niet toegevoegd worden aan uw zaak.'); + } + } catch (Exception $e) { + echo view('form-submission-uploads-failed.php', [ + 'error' => $e->getMessage(), + ]); + + exit; } + try { + $this->updateTaak($taakUUID, $taakTitle, 'ingediend'); + } catch (Exception $e) { + echo view('form-submission-uploads-failed.php', [ + 'error' => sprintf('Status van Taak bijwerken mislukt: %s', $e->getMessage()), + ]); + + exit; + } + + return $form; + } + + protected function handleZaak(array $entry, array $form) + { try { $zaak = $this->createZaak($entry, $form); if (! $zaak instanceof Zaak) { // Fallback. throw new Exception('Het verwachte resultaat na het aanmaken van een Zaak voldoet niet.'); } - } catch(Exception $e) { + } catch (Exception $e) { echo view('form-submission-create-zaak-failed.php', [ 'error' => $e->getMessage(), ]); @@ -57,7 +134,7 @@ public function GFFormSubmission(array $entry, array $form) if (false === $uploadsResult) { // Fallback. throw new Exception('Één of meerdere bestanden konden niet toegevoegd worden aan uw zaak.'); } - } catch(Exception $e) { + } catch (Exception $e) { echo view('form-submission-uploads-failed.php', [ 'error' => $e->getMessage(), ]); @@ -71,7 +148,7 @@ public function GFFormSubmission(array $entry, array $form) if (! $pdfResult instanceof Zaakinformatieobject) { // Fallback. throw new Exception('Het verwachte resultaat na het toevoegen van het document met de originele aanvraag voldoet niet.'); } - } catch(Exception $e) { + } catch (Exception $e) { echo view('form-submission-pdf-failed.php', [ 'error' => $e->getMessage(), ]); @@ -128,4 +205,17 @@ protected function createSubmissionPDF(array $entry, array $form, Zaak $zaak): ? return $instance->addSubmissionPDF(); } + + protected function updateTaak($taakUUID, $taakTitle, $status): Taak + { + $action = sprintf('OWC\Zaaksysteem\Clients\%s\Actions\UpdateTaakAction', $this->supplier); + + if (! class_exists($action)) { + throw new ResourceNotFoundError(sprintf('Class "%s" does not exists. Verify if the selected supplier has the required action class', $action)); + } + + $instance = new $action(); + + return $instance->updateTaak($taakUUID, $taakTitle, $status); + } } diff --git a/src/GravityForms/GravityFormsServiceProvider.php b/src/GravityForms/GravityFormsServiceProvider.php index 74c24d1..1405e85 100644 --- a/src/GravityForms/GravityFormsServiceProvider.php +++ b/src/GravityForms/GravityFormsServiceProvider.php @@ -31,7 +31,37 @@ protected function loadHooks(): void $this->plugin->loader->addAction('gform_editor_js', $gravityFormsFieldSettings, 'addSelectScript', 10, 0); $this->plugin->loader->addFilter('gform_form_settings_fields', new GravityFormsFormSettings(), 'addFormSettings', 10, 2); - // dd(\OWC\Zaaksysteem\Resolvers\ContainerResolver::make()->get('xxllnc.mijn_taken_uri')); + // Mijn taken + add_action('gform_pre_render', function ($form) { + $taak = get_query_var('taak'); + + if (! is_object($taak)) { + return $form; + } + + $zaak = $taak->getValue('zaak'); + + if ($taak->informationObjectURL()) { // $fields[0] moet wel upload veld zijn + $form['fields'][0]->linkedFieldValueZGW = 'informatieobject'; + $form['fields'][0]->linkedFieldValueDocumentType = $taak->informationObjectURL(); + } + + if ($taak->supplier()) { + // Zoeken naar veld met label 'supplier' + $form['fields'][1]->defaultValue = $taak->supplier(); + } + + if (! is_null($zaak)) { + // Zoeken naar veld met label 'zaak' + $form['fields'][2]->defaultValue = $zaak->id; + } + + $form['fields'][3]->defaultValue = $taak->id; + $form['fields'][4]->defaultValue = $taak->title(); + $form['fields'][5]->defaultValue = $taak->informationObjectURL(); + + return $form; + }, 10, 1); } /** diff --git a/src/Http/RequestClientInterface.php b/src/Http/RequestClientInterface.php index 6bf67ea..6e8b5cd 100644 --- a/src/Http/RequestClientInterface.php +++ b/src/Http/RequestClientInterface.php @@ -11,5 +11,6 @@ public function setRequestOptions(RequestOptions $options): self; public function getRequestOptions(): RequestOptions; public function get(string $url, ?RequestOptions $options = null): Response; public function post(string $url, $body, ?RequestOptions $options = null): Response; + public function update(string $url, $body, ?RequestOptions $options = null): Response; public function delete(string $url, ?RequestOptions $options = null): Response; } diff --git a/src/Http/WordPress/WordPressRequestClient.php b/src/Http/WordPress/WordPressRequestClient.php index d995c55..e4875cc 100644 --- a/src/Http/WordPress/WordPressRequestClient.php +++ b/src/Http/WordPress/WordPressRequestClient.php @@ -67,6 +67,20 @@ public function post(string $uri, $body, ?RequestOptions $options = null): Respo return $this->handleResponse($response); } + public function update(string $uri, $body, ?RequestOptions $options = null): Response + { + $options = $this->mergeRequestOptions($options); + $options->set('body', json_encode($body)); + $options->set('method', 'PATCH'); + + $response = wp_remote_request( + $uri, + $options->toArray() + ); + + return $this->handleResponse($response); + } + public function delete(string $uri, ?RequestOptions $options = null): Response { $options->set('method', 'DELETE'); diff --git a/src/Resolvers/DigiDBsnResolver.php b/src/Resolvers/DigiDBsnResolver.php index b6b55d7..99f2628 100644 --- a/src/Resolvers/DigiDBsnResolver.php +++ b/src/Resolvers/DigiDBsnResolver.php @@ -34,11 +34,11 @@ public function bsn(): string * TEMP: signicat plugin has some changes pending which requires another implementation. */ if (empty($bsn)) { - $isLoggedIn = apply_filters('owc_siginicat_openid_is_user_logged_in', false, 'digid'); + $isLoggedIn = apply_filters('owc_digid_is_logged_in', false, 'digid'); if ($isLoggedIn) { - $userInfo = apply_filters('owc_signicat_openid_user_info', [], 'digid'); - $bsn = $userInfo['sub'] ?? ''; + $userInfo = apply_filters('owc_digid_userdata', null, 'digid'); + $bsn = $userInfo->getBsn(); } return ! empty($bsn) && is_string($bsn) ? $bsn : ''; diff --git a/src/Routing/Controllers/AbstractRoutingController.php b/src/Routing/Controllers/AbstractRoutingController.php index de85bff..3bf8252 100644 --- a/src/Routing/Controllers/AbstractRoutingController.php +++ b/src/Routing/Controllers/AbstractRoutingController.php @@ -39,4 +39,14 @@ protected function isTemplateSingleZaak(string $template): bool return 'template-single-zaak' === $templateName; } + + /** + * Some handle functions require the 'template-single-taak' template. + */ + protected function isTemplateSingleTaak(string $template): bool + { + $templateName = str_replace(['.blade.php', '.php'], '', basename($template)); + + return 'template-single-taak' === $templateName; + } } diff --git a/src/Routing/Controllers/SingleTaakRoutingController.php b/src/Routing/Controllers/SingleTaakRoutingController.php new file mode 100644 index 0000000..900bc36 --- /dev/null +++ b/src/Routing/Controllers/SingleTaakRoutingController.php @@ -0,0 +1,124 @@ +addCustomRewriteRules(); + $this->allowCustomQueryVars(); + $this->includeObjectInTemplate(); + } + + /** + * Implement custom routing for single 'taak' pages + * + * The implementation for single 'taken' requires: + * - a page with 'taak' as the slug + * - the page to be connected with template 'template-single-taak' + * - the page to be requested with an identification and supplier in the URI + */ + protected function addCustomRewriteRules(): void + { + add_action('generate_rewrite_rules', function (WP_Rewrite $rewrite) { + $rules = [ + 'taak/([a-zA-Z0-9.-]+)/([a-zA-Z-]+)/?$' => 'index.php?pagename=taak&taak_identification=$matches[1]&zaak_supplier=$matches[2]', + ]; + + $rewrite->rules = $rules + $rewrite->rules; + }); + } + + /** + * Add requested 'zaak' vars to the query variables. + * This enables using the 'zaak' inside the template. + */ + protected function allowCustomQueryVars(): void + { + add_action('query_vars', function (array $queryVars) { + $queryVars[] = 'taak_identification'; + $queryVars[] = 'zaak_supplier'; + + return array_unique($queryVars); + }); + } + + protected function includeObjectInTemplate(): void + { + add_action('template_include', function ($template) { + if ($this->isTemplateSingleTaak($template)) { + $this->handleSingleTaak(); + } + + return $template; + }, 999, 1); // High priority so the validateTemplate method inside the ValidationServiceProvider runs first. + } + + protected function handleSingleTaak(): void + { + $taak = $this->getTaak(); + set_query_var('taak', $taak); + set_query_var('formID', $this->getForm($taak)); + } + + protected function getTaak(): ?Taak + { + $identification = get_query_var('taak_identification'); + $supplier = get_query_var('zaak_supplier'); + + if (empty($identification) || empty($supplier)) { + return null; + } + + if (! $this->checkSupplier($supplier)) { + return null; + } + + $client = $this->container->getApiClient($supplier); + + try { + $taak = $client->taken()->get($identification); + } catch (Exception $e) { + $taak = null; + } + + return $taak instanceof Taak ? $taak : null; + } + + protected function getForm(?Taak $taak) + { + if (is_null($taak)) { + return 0; + } + + $forms = GFAPI::get_forms(); + + if (! is_array($forms) || ! count($forms)) { + return 0; + } + + if ($taak->informationObjectURL()) { + $cssClass = 'taak-informatieobject'; + } // Uitbreiden nog met andere opties zoals zaakeigenschap. + + if (! isset($cssClass)) { + return 0; + } + + $form = array_filter($forms, function ($form) use ($cssClass) { + return isset($form['cssClass']) && $cssClass === $form['cssClass']; + }); + + $form = reset($form); + + return isset($form['id']) ? $form['id'] : 0; + } +} diff --git a/src/Routing/RoutingServiceProvider.php b/src/Routing/RoutingServiceProvider.php index 25b84e5..fd1c7fa 100644 --- a/src/Routing/RoutingServiceProvider.php +++ b/src/Routing/RoutingServiceProvider.php @@ -5,6 +5,7 @@ namespace OWC\Zaaksysteem\Routing; use OWC\Zaaksysteem\Foundation\ServiceProvider; +use OWC\Zaaksysteem\Routing\Controllers\SingleTaakRoutingController; use OWC\Zaaksysteem\Routing\Controllers\SingleZaakRoutingController; use OWC\Zaaksysteem\Routing\Controllers\ZaakInformationObjectRoutingController; @@ -12,6 +13,7 @@ class RoutingServiceProvider extends ServiceProvider { public function boot(): void { + (new SingleTaakRoutingController())->register(); (new SingleZaakRoutingController())->register(); (new ZaakInformationObjectRoutingController())->register(); } diff --git a/src/Templating/TemplatingServiceProvider.php b/src/Templating/TemplatingServiceProvider.php index 366a8a7..de7d57b 100644 --- a/src/Templating/TemplatingServiceProvider.php +++ b/src/Templating/TemplatingServiceProvider.php @@ -20,6 +20,7 @@ protected function loadHooks(): void */ add_filter('theme_page_templates', function ($postTemplates) { $postTemplates['template-openzaak.php'] = esc_html__('OpenZaak', 'owc-gravityforms-zaaksysteem'); + $postTemplates['template-mijn-taken.php'] = esc_html__('Mijn Taken', 'owc-gravityforms-zaaksysteem'); return $postTemplates; }, 10, 4); @@ -32,6 +33,10 @@ protected function loadHooks(): void $pageTemplate = sprintf('%s/%s', OWC_GZ_ROOT_PATH, 'resources/views/template-openzaak.php'); } + if (get_page_template_slug() === 'template-mijn-taken.php') { + $pageTemplate = sprintf('%s/%s', OWC_GZ_ROOT_PATH, 'resources/views/template-mijn-taken.php'); + } + return $pageTemplate; }, 10, 1); } diff --git a/src/Validation/ValidationServiceProvider.php b/src/Validation/ValidationServiceProvider.php index 271c509..590b436 100644 --- a/src/Validation/ValidationServiceProvider.php +++ b/src/Validation/ValidationServiceProvider.php @@ -34,13 +34,13 @@ private function validateTemplate(): void * * @param array $templatesToValidate Template names to validate */ - $templatesToValidate = apply_filters('owc_gravityforms_zaaksysteem_templates_to_validate', ['template-openzaak']); + $templatesToValidate = apply_filters('owc_gravityforms_zaaksysteem_templates_to_validate', ['template-openzaak', 'template-mijn-taken']); if (! in_array($templateName, $templatesToValidate)) { return $template; } - if (empty(ContainerResolver::make()->get('digid.current_user_bsn'))) { + if (empty(ContainerResolver::make()->get('digid.current_user_bsn')) && 'template-openzaak' === $templateName) { return $this->returnForbidden(); } From 3867dcc0f2fa2b0fb4c2586f23c53a35b09feb59 Mon Sep 17 00:00:00 2001 From: Mike van den Hoek Date: Wed, 4 Dec 2024 13:40:44 +0100 Subject: [PATCH 05/11] (feat): conditionally disable SSL verification --- owc-gravityforms-zaaksysteem.php | 8 +------- src/Http/WordPress/WordPressRequestClient.php | 13 +++++++++++++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/owc-gravityforms-zaaksysteem.php b/owc-gravityforms-zaaksysteem.php index 33978df..db749fd 100644 --- a/owc-gravityforms-zaaksysteem.php +++ b/owc-gravityforms-zaaksysteem.php @@ -56,12 +56,6 @@ * plugin overrides. The plugins_loaded action hook fires early, and precedes the setup_theme, after_setup_theme, init * and wp_loaded action hooks. */ -\add_action('plugins_loaded', function () { - add_filter('http_request_args', function ($r, $url) { - $r['sslverify'] = false; - - return $r; - }, 10, 2); - +add_action('plugins_loaded', function () { Foundation\Plugin::getInstance(__DIR__)->boot(); }, 10); diff --git a/src/Http/WordPress/WordPressRequestClient.php b/src/Http/WordPress/WordPressRequestClient.php index e4875cc..1a5cc96 100644 --- a/src/Http/WordPress/WordPressRequestClient.php +++ b/src/Http/WordPress/WordPressRequestClient.php @@ -18,6 +18,7 @@ class WordPressRequestClient implements RequestClientInterface public function __construct(?RequestOptions $options = null) { $this->options = $options ?: new RequestOptions([]); + $this->conditionallyDisableSslVerification(); } public function applyCurlSslCertificates(): self @@ -37,6 +38,18 @@ public function applyCurlSslCertificates(): self return $this; } + /** + * Some 'zaaksystemen' require SSL verification to be disabled since they are using ip-addresses insteaf of a domain. + */ + private function conditionallyDisableSslVerification(): void + { + $shouldDisable = (bool) apply_filters('owc_gravityforms_zaaksysteem_disable_ssl_verification', false); + + if ($shouldDisable) { + add_filter('https_ssl_verify', '__return_false'); + } + } + public function setRequestOptions(RequestOptions $options): self { $this->options = $options; From 377fb0dd75e6ecb22d91f1c57f207527e9dc68f8 Mon Sep 17 00:00:00 2001 From: Mike van den Hoek Date: Wed, 4 Dec 2024 13:41:50 +0100 Subject: [PATCH 06/11] (feat): form settings fetch types with status 'definitief' only --- .../ZaaktypenFormSettings/Adapters/ClientAdapter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GravityForms/ZaaktypenFormSettings/Adapters/ClientAdapter.php b/src/GravityForms/ZaaktypenFormSettings/Adapters/ClientAdapter.php index e984c35..fc0e998 100644 --- a/src/GravityForms/ZaaktypenFormSettings/Adapters/ClientAdapter.php +++ b/src/GravityForms/ZaaktypenFormSettings/Adapters/ClientAdapter.php @@ -95,7 +95,7 @@ protected function fetchTypes(string $emptyMessage, string $endpoint): array while ($page) { try { - $result = $this->client->$endpoint()->all((new ResultaattypenFilter())->page($page)); + $result = $this->client->$endpoint()->all((new ResultaattypenFilter())->byStatus('definitief')->page($page)); } catch (Exception $e) { $requestException = $e->getMessage(); From e4d2ad56ac5a658e573990e96c050923f2e21f6f Mon Sep 17 00:00:00 2001 From: Mike van den Hoek Date: Wed, 4 Dec 2024 13:43:00 +0100 Subject: [PATCH 07/11] (fix): check if ->status->statustype isset before retrieving status explanation --- src/Endpoints/ZakenEndpoint.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Endpoints/ZakenEndpoint.php b/src/Endpoints/ZakenEndpoint.php index 8d0c352..0658e20 100644 --- a/src/Endpoints/ZakenEndpoint.php +++ b/src/Endpoints/ZakenEndpoint.php @@ -52,7 +52,7 @@ protected function buildEntity($data): Entity $class = $this->entityClass; $zaak = new $class($data, $this->client::CALLABLE_NAME, $this->client::CLIENT_NAME); - $statusToelichting = $zaak->status instanceof Status ? $zaak->status->statustype->statusExplanation() : ''; + $statusToelichting = $zaak->status instanceof Status && isset($zaak->status->statustype) ? $zaak->status->statustype->statusExplanation() : ''; $zaak->setValue('leverancier', $zaak->getClientNamePretty()); $zaak->setValue('steps', $this->handleProcessStatusses($this->getStatussenSorted($zaak), $statusToelichting)); $zaak->setValue('status_history', $zaak->statussen); From 526e9e94f9d92b4b627ab94d45306a1659e593b9 Mon Sep 17 00:00:00 2001 From: Mike van den Hoek Date: Wed, 4 Dec 2024 14:29:50 +0100 Subject: [PATCH 08/11] (refactor): form settings fetch types with status 'mijnomgeving' when client is Decos --- src/Endpoints/Filter/ResultaattypenFilter.php | 5 +++++ .../ZaaktypenFormSettings/Adapters/ClientAdapter.php | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Endpoints/Filter/ResultaattypenFilter.php b/src/Endpoints/Filter/ResultaattypenFilter.php index 2c3e5eb..8bc6385 100644 --- a/src/Endpoints/Filter/ResultaattypenFilter.php +++ b/src/Endpoints/Filter/ResultaattypenFilter.php @@ -34,4 +34,9 @@ public function byStatusAlles() { return $this->add('status', 'alles'); } + + public function byStatusMijnOmgeving() + { + return $this->add('status', 'mijnomgeving'); + } } diff --git a/src/GravityForms/ZaaktypenFormSettings/Adapters/ClientAdapter.php b/src/GravityForms/ZaaktypenFormSettings/Adapters/ClientAdapter.php index fc0e998..07e578c 100644 --- a/src/GravityForms/ZaaktypenFormSettings/Adapters/ClientAdapter.php +++ b/src/GravityForms/ZaaktypenFormSettings/Adapters/ClientAdapter.php @@ -95,7 +95,11 @@ protected function fetchTypes(string $emptyMessage, string $endpoint): array while ($page) { try { - $result = $this->client->$endpoint()->all((new ResultaattypenFilter())->byStatus('definitief')->page($page)); + if ($this->getClientNamePretty() === 'decos-join') { + $result = $this->client->$endpoint()->all((new ResultaattypenFilter())->byStatusMijnOmgeving()->page($page)); + } else { + $result = $this->client->$endpoint()->all((new ResultaattypenFilter())->byStatusDefinitief()->page($page)); + } } catch (Exception $e) { $requestException = $e->getMessage(); From 6af4a5206a6b9a8feee9015d8a8871fd2a894853 Mon Sep 17 00:00:00 2001 From: Mike van den Hoek Date: Wed, 4 Dec 2024 15:32:53 +0100 Subject: [PATCH 09/11] (fix): single zaak routing by encoding the zaak identification when needed --- src/Entities/Zaak.php | 10 +++++--- .../SingleZaakRoutingController.php | 7 ++++-- src/Traits/ZaakIdentification.php | 24 +++++++++++++++++++ 3 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 src/Traits/ZaakIdentification.php diff --git a/src/Entities/Zaak.php b/src/Entities/Zaak.php index cbe4693..7843a57 100644 --- a/src/Entities/Zaak.php +++ b/src/Entities/Zaak.php @@ -7,9 +7,12 @@ use DateTimeImmutable; use OWC\Zaaksysteem\Support\Collection; use OWC\Zaaksysteem\Support\PagedCollection; +use OWC\Zaaksysteem\Traits\ZaakIdentification; class Zaak extends Entity { + use ZaakIdentification; + protected array $casts = [ 'url' => Casts\Url::class, // 'uuid' => SomeClass::class, @@ -20,7 +23,7 @@ class Zaak extends Entity 'zaaktype' => Casts\Lazy\Zaaktype::class, 'registratiedatum' => Casts\NullableDate::class, // 'verantwoordelijkeOrganisatie' => SomeClass::class, - 'startdatum' => Casts\NullableDate::class, + 'startdatum' => Casts\NullableDate::class, 'einddatum' => Casts\NullableDate::class, 'einddatumGepland' => Casts\NullableDate::class, 'uiterlijkeEinddatumAfdoening' => Casts\NullableDate::class, @@ -75,12 +78,13 @@ public function identification(): string public function permalink(): string { $supplier = $this->getSupplier(); + $identification = $this->getValue('identificatie', ''); if (empty($supplier)) { - return sprintf('%s/zaak/%s', get_site_url(), $this->getValue('identificatie', '')); + return sprintf('%s/zaak/%s', get_site_url(), $this->encodeZaakIdentification($identification)); } - return sprintf('%s/zaak/%s/%s', get_site_url(), $this->getValue('identificatie', ''), $supplier); + return sprintf('%s/zaak/%s/%s', get_site_url(), $this->encodeZaakIdentification($identification), $supplier); } protected function getSupplier(): string diff --git a/src/Routing/Controllers/SingleZaakRoutingController.php b/src/Routing/Controllers/SingleZaakRoutingController.php index e224009..e54b35e 100644 --- a/src/Routing/Controllers/SingleZaakRoutingController.php +++ b/src/Routing/Controllers/SingleZaakRoutingController.php @@ -8,10 +8,13 @@ use OWC\Zaaksysteem\Endpoints\Filter\ZakenFilter; use OWC\Zaaksysteem\Entities\Zaak; use function OWC\Zaaksysteem\Foundation\Helpers\resolve; +use OWC\Zaaksysteem\Traits\ZaakIdentification; use WP_Rewrite; class SingleZaakRoutingController extends AbstractRoutingController { + use ZaakIdentification; + public function register(): void { $this->addCustomRewriteRules(); @@ -84,12 +87,12 @@ protected function getZaak(): ?Zaak $client = $this->container->getApiClient($supplier); $filter = new ZakenFilter(); - $filter->add('identificatie', $identification); + $filter->add('identificatie', $this->decodeZaakIdentification($identification)); $filter->byBsn(resolve('digid.current_user_bsn')); try { $zaak = $client->zaken()->filter($filter)->first() ?: null; - } catch(Exception $e) { + } catch (Exception $e) { $zaak = null; } diff --git a/src/Traits/ZaakIdentification.php b/src/Traits/ZaakIdentification.php new file mode 100644 index 0000000..736a8eb --- /dev/null +++ b/src/Traits/ZaakIdentification.php @@ -0,0 +1,24 @@ + Date: Mon, 9 Dec 2024 16:34:41 +0100 Subject: [PATCH 10/11] (refactor): use getApiKeyMijnTaken when API type is 'taken' only, remove client check --- src/Endpoints/Endpoint.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Endpoints/Endpoint.php b/src/Endpoints/Endpoint.php index 8ba6bb2..c3d73d3 100644 --- a/src/Endpoints/Endpoint.php +++ b/src/Endpoints/Endpoint.php @@ -52,7 +52,7 @@ protected function buildRequestOptions(): RequestOptions { return new RequestOptions([ 'headers' => [ - 'Authorization' => 'taken' === $this->apiType || $this->client->getClientNamePretty() === 'rx-mission' ? $this->authenticator->getApiKeyMijnTaken() : $this->authenticator->getAuthString(), + 'Authorization' => 'taken' === $this->apiType ? $this->authenticator->getApiKeyMijnTaken() : $this->authenticator->getAuthString(), ], ]); } From 58e1b40d3326e070d9599064869378c594cd4a6b Mon Sep 17 00:00:00 2001 From: Mike van den Hoek Date: Mon, 16 Dec 2024 09:56:56 +0100 Subject: [PATCH 11/11] (refactor): improve validation on status explanation --- src/Endpoints/ZakenEndpoint.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Endpoints/ZakenEndpoint.php b/src/Endpoints/ZakenEndpoint.php index 0658e20..bb3583f 100644 --- a/src/Endpoints/ZakenEndpoint.php +++ b/src/Endpoints/ZakenEndpoint.php @@ -5,7 +5,7 @@ namespace OWC\Zaaksysteem\Endpoints; use OWC\Zaaksysteem\Entities\Entity; -use OWC\Zaaksysteem\Entities\Status; +use OWC\Zaaksysteem\Entities\StatusType; use OWC\Zaaksysteem\Entities\Zaak; use OWC\Zaaksysteem\Http\Response; use OWC\Zaaksysteem\Resolvers\ContainerResolver; @@ -52,7 +52,7 @@ protected function buildEntity($data): Entity $class = $this->entityClass; $zaak = new $class($data, $this->client::CALLABLE_NAME, $this->client::CLIENT_NAME); - $statusToelichting = $zaak->status instanceof Status && isset($zaak->status->statustype) ? $zaak->status->statustype->statusExplanation() : ''; + $statusToelichting = gettype($zaak->status) === 'object' && $zaak->status->statustype instanceof StatusType ? $zaak->status->statustype->statusExplanation() : ''; $zaak->setValue('leverancier', $zaak->getClientNamePretty()); $zaak->setValue('steps', $this->handleProcessStatusses($this->getStatussenSorted($zaak), $statusToelichting)); $zaak->setValue('status_history', $zaak->statussen);