Files
tnsu-approval-route/frontend/release/assets/approval-admin-web-part.js
T
2026-07-29 13:47:12 +05:00

2815 lines
193 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
define("4825e72c-4ff3-479e-917e-f6b04e003a82_0.0.1", ["react","react-dom","@microsoft/sp-core-library","@microsoft/sp-property-pane","@microsoft/sp-webpart-base","@microsoft/sp-http"], (__WEBPACK_EXTERNAL_MODULE__959__, __WEBPACK_EXTERNAL_MODULE__398__, __WEBPACK_EXTERNAL_MODULE__676__, __WEBPACK_EXTERNAL_MODULE__877__, __WEBPACK_EXTERNAL_MODULE__642__, __WEBPACK_EXTERNAL_MODULE__909__) => { return /******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ 845:
/*!*****************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ApprovalAdmin.module.scss.css ***!
\*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.approvalAdmin_36d7a38f{font-family:Inter,-apple-system,Segoe UI,sans-serif}.stateBox_36d7a38f{background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;color:#6b7280;font-size:13.5px;padding:40px 24px;text-align:center}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
approvalAdmin: "approvalAdmin_36d7a38f",
stateBox: "stateBox_36d7a38f"
});
/***/ }),
/***/ 41:
/*!****************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/app/AdminApp.module.scss.css ***!
\****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.shell_34febe7a{background:linear-gradient(180deg,#f6f8fa,#eef2f6);border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);color:#111827;font-family:Inter,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.55;overflow:hidden}.content_34febe7a{margin:0 auto;max-width:1080px;padding:28px 30px 36px}.centerState_34febe7a{color:#9ca3af;font-size:13.5px;padding:60px 30px;text-align:center}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
shell: "shell_34febe7a",
centerState: "centerState_34febe7a",
content: "content_34febe7a"
});
/***/ }),
/***/ 923:
/*!**************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/app/TopNav.module.scss.css ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.topnav_beba2ab6{align-items:center;background:linear-gradient(135deg,#0a1b30,#1b3a5c 85%);border-radius:10px 10px 0 0;box-shadow:0 1px 0 rgba(212,160,30,.35);display:flex;flex-wrap:wrap;height:54px;padding:0 22px}.brand_beba2ab6{flex-shrink:0;gap:10px;margin-right:28px}.brand_beba2ab6,.mark_beba2ab6{align-items:center;display:flex}.mark_beba2ab6{background:linear-gradient(180deg,#e5b635,#b8881a);border-radius:7px;color:#0a1b30;font-family:Lora,Georgia,serif;font-size:13px;font-weight:800;height:30px;justify-content:center;width:30px}.brandText_beba2ab6{color:#fff;font-size:13px;font-weight:600;letter-spacing:.4px;white-space:nowrap}.brandText_beba2ab6 em{color:#e5b635;font-style:normal}.tabs_beba2ab6{display:flex;flex-wrap:wrap;height:100%}.tab_beba2ab6{background:0;border:none;border-bottom:2px solid transparent;color:hsla(0,0%,100%,.5);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;height:54px;letter-spacing:.2px;padding:0 16px;transition:.18s}.tab_beba2ab6:hover{color:hsla(0,0%,100%,.85)}.tab_beba2ab6.on_beba2ab6{border-bottom-color:#e5b635;color:#f0cc5e}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
topnav: "topnav_beba2ab6",
brand: "brand_beba2ab6",
mark: "mark_beba2ab6",
brandText: "brandText_beba2ab6",
tabs: "tabs_beba2ab6",
tab: "tab_beba2ab6",
on: "on_beba2ab6"
});
/***/ }),
/***/ 922:
/*!************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Alert.module.scss.css ***!
\************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.alert_39a4b1a3{align-items:center;border:1px solid;border-radius:10px;display:flex;font-size:12.5px;gap:10px;line-height:1.5;margin-bottom:18px;padding:12px 16px}.warn_39a4b1a3{background:#fefbf0;border-color:#f0cc5e;color:#854d0e}.ok_39a4b1a3{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.err_39a4b1a3{background:#fef2f2;border-color:#fecaca;color:#dc2626}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
alert: "alert_39a4b1a3",
warn: "warn_39a4b1a3",
ok: "ok_39a4b1a3",
err: "err_39a4b1a3"
});
/***/ }),
/***/ 793:
/*!************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Badge.module.scss.css ***!
\************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.badge_3fba18e1{align-items:center;border-radius:100px;display:inline-flex;font-size:11px;font-weight:600;gap:5px;letter-spacing:.2px;padding:3px 11px;white-space:nowrap}.badge_3fba18e1:before{background:currentColor;border-radius:50%;content:\"\";height:5px;width:5px}.ok_3fba18e1{background:#f0fdf4;color:#15803d}.gold_3fba18e1{background:#fdf5e0;color:#854d0e}.neutral_3fba18e1{background:#f3f4f6;color:#6b7280}.blue_3fba18e1{background:#eff6ff;color:#2563eb}.red_3fba18e1{background:#fef2f2;color:#dc2626}.count_3fba18e1{align-items:center;background:#0f2440;border-radius:11px;color:#f0cc5e;display:inline-flex;font-size:11px;font-weight:600;height:22px;justify-content:center;min-width:22px;padding:0 6px}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
badge: "badge_3fba18e1",
ok: "ok_3fba18e1",
gold: "gold_3fba18e1",
neutral: "neutral_3fba18e1",
blue: "blue_3fba18e1",
red: "red_3fba18e1",
count: "count_3fba18e1"
});
/***/ }),
/***/ 926:
/*!*************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Button.module.scss.css ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.btn_74afcd3b{align-items:center;border:1px solid transparent;border-radius:6px;cursor:pointer;display:inline-flex;font-family:Inter,-apple-system,Segoe UI,sans-serif;font-size:13px;font-weight:500;gap:7px;letter-spacing:.15px;padding:10px 20px;text-decoration:none;transition:.18s;white-space:nowrap}.btn_74afcd3b:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.5;transform:none!important}.primary_74afcd3b{background:#1b3a5c;border-color:#1b3a5c;color:#fff}.primary_74afcd3b:hover:not(:disabled){background:#244b73;box-shadow:0 4px 16px rgba(15,36,64,.07)}.accent_74afcd3b{background:linear-gradient(135deg,#e5b635,#d4a01e);border:1px solid #d4a01e;color:#0a1b30;font-weight:600}.accent_74afcd3b:hover{box-shadow:0 4px 20px rgba(212,160,30,.18);transform:translateY(-1px)}.secondary_74afcd3b{background:#fff;border-color:#d1d5db;color:#1b3a5c}.secondary_74afcd3b:hover:not(:disabled){border-color:#d4a01e;color:#0f2440}.ghost_74afcd3b{background:transparent;border-color:transparent;color:#244b73}.ghost_74afcd3b:hover:not(:disabled){background:#e8eef4}.danger_74afcd3b{background:#fff;border-color:#d1d5db;color:#dc2626}.danger_74afcd3b:hover:not(:disabled){background:#fef2f2;border-color:#dc2626}.sm_74afcd3b{font-size:12.5px;padding:7px 14px}.iconButton_74afcd3b{align-items:center;background:transparent;border:1px solid transparent;border-radius:6px;color:#9ca3af;cursor:pointer;display:inline-flex;height:33px;justify-content:center;padding:0;transition:.18s;width:33px}.iconButton_74afcd3b:hover:not(:disabled){background:#f4f7fa;border-color:#e5e7eb;color:#1b3a5c}.iconButton_74afcd3b.danger_74afcd3b:hover:not(:disabled){background:#fef2f2;color:#dc2626}.iconButton_74afcd3b:disabled{cursor:not-allowed;opacity:.4}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
btn: "btn_74afcd3b",
primary: "primary_74afcd3b",
accent: "accent_74afcd3b",
secondary: "secondary_74afcd3b",
ghost: "ghost_74afcd3b",
danger: "danger_74afcd3b",
sm: "sm_74afcd3b",
iconButton: "iconButton_74afcd3b"
});
/***/ }),
/***/ 872:
/*!***********************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Card.module.scss.css ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.grid_61c1671e{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));margin-bottom:24px}.navCard_61c1671e{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);color:inherit;cursor:pointer;display:flex;gap:16px;overflow:hidden;padding:22px 24px;position:relative;text-decoration:none;transition:.22s}.navCard_61c1671e:hover{border-color:#f0cc5e;box-shadow:0 12px 32px rgba(15,36,64,.1);transform:translateY(-2px)}.navCard_61c1671e:before{background:linear-gradient(180deg,#e5b635,#b8881a);bottom:0;content:\"\";left:0;opacity:0;position:absolute;top:0;transition:.22s;width:3px}.navCard_61c1671e:hover:before{opacity:1}.navIcon_61c1671e{align-items:center;background:#f4f7fa;border:1px solid #e8eef4;border-radius:10px;color:#244b73;display:flex;flex-shrink:0;height:44px;justify-content:center;transition:.22s;width:44px}.navCard_61c1671e:hover .navIcon_61c1671e{background:#fefbf0;border-color:#f0cc5e;color:#b8881a}.navTitle_61c1671e{color:#0f2440;font-size:14.5px;font-weight:600;letter-spacing:.1px}.navDesc_61c1671e{color:#9ca3af;font-size:12px;margin-top:2px}.navArrow_61c1671e{color:#d1d5db;display:flex;margin-left:auto;transition:.22s}.navCard_61c1671e:hover .navArrow_61c1671e{color:#d4a01e;transform:translateX(3px)}.statRow_61c1671e{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:24px}.statCard_61c1671e{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);padding:18px 20px}.statLabel_61c1671e{color:#9ca3af;font-size:10px;font-weight:600;letter-spacing:1.2px;margin-bottom:6px;text-transform:uppercase}.statValue_61c1671e{color:#0f2440;font-family:Lora,Georgia,serif;font-size:26px;font-weight:600}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
navCard: "navCard_61c1671e",
navIcon: "navIcon_61c1671e",
navTitle: "navTitle_61c1671e",
navDesc: "navDesc_61c1671e",
navArrow: "navArrow_61c1671e",
statRow: "statRow_61c1671e",
statCard: "statCard_61c1671e",
statLabel: "statLabel_61c1671e",
statValue: "statValue_61c1671e",
grid: "grid_61c1671e"
});
/***/ }),
/***/ 264:
/*!****************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/DataTable.module.scss.css ***!
\****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.wrap_bf1aa6ad{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);overflow:hidden}.scroll_bf1aa6ad{overflow-x:auto}.table_bf1aa6ad{border-collapse:collapse;font-size:13.5px;min-width:100%}.table_bf1aa6ad thead th{background:#f9fafb;border-bottom:1px solid #e5e7eb;color:#9ca3af;font-size:10.5px;font-weight:600;letter-spacing:1.2px;padding:13px 18px;text-align:left;text-transform:uppercase;white-space:nowrap}.table_bf1aa6ad tbody td{border-bottom:1px solid #f3f4f6;color:#374151;padding:15px 18px;vertical-align:middle}.table_bf1aa6ad tbody tr:last-child td{border-bottom:0}.table_bf1aa6ad tbody tr{transition:.12s}.table_bf1aa6ad tbody tr:hover{background:#fefbf0}.primaryCell_bf1aa6ad{align-items:center;color:#0f2440;display:flex;font-weight:500;gap:10px}.actionsCell_bf1aa6ad{align-items:center;display:flex;gap:4px;justify-content:flex-end}.empty_bf1aa6ad{color:#9ca3af;font-size:13px;padding:48px 20px;text-align:center}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
wrap: "wrap_bf1aa6ad",
scroll: "scroll_bf1aa6ad",
table: "table_bf1aa6ad",
primaryCell: "primaryCell_bf1aa6ad",
actionsCell: "actionsCell_bf1aa6ad",
empty: "empty_bf1aa6ad"
});
/***/ }),
/***/ 550:
/*!****************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/FormField.module.scss.css ***!
\****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.grid_a7c8dbcf{display:grid;gap:18px 22px;grid-template-columns:1fr 1fr}.field_a7c8dbcf{display:flex;flex-direction:column;gap:6px;min-width:0}.full_a7c8dbcf{grid-column:1/-1}.label_a7c8dbcf{color:#374151;font-size:12px;font-weight:500;letter-spacing:.2px}.req_a7c8dbcf{color:#b8881a}.input_a7c8dbcf,.select_a7c8dbcf,.textarea_a7c8dbcf{background:#fff;border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;color:#111827;font-family:Inter,-apple-system,Segoe UI,sans-serif;font-size:13.5px;padding:11px 13px;transition:.18s;width:100%}.input_a7c8dbcf:focus,.select_a7c8dbcf:focus,.textarea_a7c8dbcf:focus{border-color:#d4a01e;box-shadow:0 0 0 3px rgba(212,160,30,.12);outline:0}.input_a7c8dbcf:-ms-input-placeholder, .select_a7c8dbcf:-ms-input-placeholder, .textarea_a7c8dbcf:-ms-input-placeholder{color:#9ca3af}.input_a7c8dbcf::placeholder,.select_a7c8dbcf::placeholder,.textarea_a7c8dbcf::placeholder{color:#9ca3af}.input_a7c8dbcf:disabled,.select_a7c8dbcf:disabled,.textarea_a7c8dbcf:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.textarea_a7c8dbcf{min-height:80px;resize:vertical}.select_a7c8dbcf{appearance:none;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m1 1.5 5 5 5-5' stroke='%236B7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.errorText_a7c8dbcf{color:#dc2626;font-size:11.5px}.hint_a7c8dbcf{color:#9ca3af;font-size:11.5px}.checkboxRow_a7c8dbcf{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:13px;gap:9px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.checkbox_a7c8dbcf{accent-color:#d4a01e;cursor:pointer;height:17px;width:17px}.radioGroup_a7c8dbcf{display:flex;flex-direction:column;gap:8px}.radioRow_a7c8dbcf{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:13px;gap:9px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.radioRow_a7c8dbcf.disabled_a7c8dbcf{cursor:not-allowed;opacity:.45}.radio_a7c8dbcf{accent-color:#d4a01e;cursor:pointer;height:16px;width:16px}.radio_a7c8dbcf:disabled{cursor:not-allowed}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
field: "field_a7c8dbcf",
full: "full_a7c8dbcf",
label: "label_a7c8dbcf",
req: "req_a7c8dbcf",
input: "input_a7c8dbcf",
select: "select_a7c8dbcf",
textarea: "textarea_a7c8dbcf",
errorText: "errorText_a7c8dbcf",
hint: "hint_a7c8dbcf",
checkboxRow: "checkboxRow_a7c8dbcf",
checkbox: "checkbox_a7c8dbcf",
radioGroup: "radioGroup_a7c8dbcf",
radioRow: "radioRow_a7c8dbcf",
disabled: "disabled_a7c8dbcf",
radio: "radio_a7c8dbcf",
grid: "grid_a7c8dbcf"
});
/***/ }),
/***/ 595:
/*!************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Modal.module.scss.css ***!
\************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.overlay_4d365bec{align-items:center;backdrop-filter:blur(6px);background:rgba(10,27,48,.5);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:300}.box_4d365bec{background:#fff;border-radius:14px;border-top:3px solid #d4a01e;box-shadow:0 24px 70px rgba(10,27,48,.25);max-height:calc(100vh - 40px);max-width:100%;overflow-y:auto;width:480px}.narrow_4d365bec{padding:30px;text-align:center;width:420px}.header_4d365bec{align-items:center;display:flex;justify-content:space-between;padding:22px 26px 0}.title_4d365bec{color:#0f2440;font-family:Lora,Georgia,serif;font-size:19px;font-weight:600}.body_4d365bec{padding:18px 26px 26px}.narrowBody_4d365bec{padding:0}.text_4d365bec{color:#6b7280;font-size:13px;line-height:1.6;margin-bottom:24px}.footer_4d365bec{display:flex;gap:10px;justify-content:flex-end;padding:16px 26px 22px}.narrowFooter_4d365bec{justify-content:center;margin-top:24px;padding:0}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
overlay: "overlay_4d365bec",
box: "box_4d365bec",
narrow: "narrow_4d365bec",
header: "header_4d365bec",
title: "title_4d365bec",
body: "body_4d365bec",
narrowBody: "narrowBody_4d365bec",
text: "text_4d365bec",
footer: "footer_4d365bec",
narrowFooter: "narrowFooter_4d365bec"
});
/***/ }),
/***/ 521:
/*!*****************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/PageChrome.module.scss.css ***!
\*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js */ 323);
// Imports
_node_modules_microsoft_sp_css_loader_node_modules_microsoft_load_themed_styles_lib_es6_index_js__WEBPACK_IMPORTED_MODULE_0__.loadStyles(":root{--navy-950:#0a1b30;--navy-900:#0f2440;--navy-800:#1b3a5c;--navy-700:#244b73;--navy-600:#2d5c8a;--navy-100:#e8eef4;--navy-50:#f4f7fa;--gold-600:#b8881a;--gold-500:#d4a01e;--gold-400:#e5b635;--gold-300:#f0cc5e;--gold-100:#fdf5e0;--gold-50:#fefbf0;--gray-900:#111827;--gray-700:#374151;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--red-500:#dc2626;--red-50:#fef2f2;--green-600:#15803d;--green-50:#f0fdf4;--blue-600:#2563eb;--blue-50:#eff6ff;--amber-700:#854d0e;--sh-1:0 1px 2px rgba(15,36,64,.04),0 1px 3px rgba(15,36,64,.06);--sh-2:0 4px 16px rgba(15,36,64,.07);--sh-3:0 12px 32px rgba(15,36,64,.1);--sh-gold:0 4px 20px rgba(212,160,30,.18);--sh-modal:0 24px 70px rgba(10,27,48,.25);--r-sm:6px;--r-md:10px;--r-lg:14px}.bread_22491a1c{align-items:center;color:#9ca3af;display:flex;flex-wrap:wrap;font-size:12px;gap:7px;letter-spacing:.2px;margin-bottom:14px}.breadLink_22491a1c{background:none;border:0;color:#244b73;cursor:pointer;font:inherit;padding:0;text-decoration:none}.breadLink_22491a1c:hover{color:#b8881a}.sep_22491a1c{color:#e5b635;font-size:10px}.ph_22491a1c{align-items:center;background:linear-gradient(135deg,#0a1b30,#1b3a5c 85%);border-radius:14px;box-shadow:0 4px 16px rgba(15,36,64,.07);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-bottom:24px;overflow:hidden;padding:26px 30px;position:relative}.ph_22491a1c:before{background:linear-gradient(90deg,#d4a01e,transparent 60%);bottom:0;content:\"\";height:2px;left:0;position:absolute;right:0}.ph_22491a1c:after{background:radial-gradient(circle,rgba(212,160,30,.14),transparent 65%);border-radius:50%;content:\"\";height:220px;position:absolute;right:-60px;top:-60px;width:220px}.phLeft_22491a1c{align-items:center;display:flex;gap:18px;position:relative;z-index:1}.phIcon_22491a1c{align-items:center;background:rgba(212,160,30,.14);border:1px solid rgba(212,160,30,.3);border-radius:10px;color:#f0cc5e;display:flex;flex-shrink:0;height:46px;justify-content:center;width:46px}.phSub_22491a1c{color:hsla(0,0%,100%,.55);font-size:10.5px;font-weight:500;letter-spacing:1.8px;text-transform:uppercase}.phTitle_22491a1c{color:#fff;font-family:Lora,Georgia,serif;font-size:24px;font-weight:600;letter-spacing:.2px;margin-top:3px}.phRight_22491a1c{align-items:center;display:flex;flex-wrap:wrap;gap:8px;position:relative;z-index:1}", true);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
bread: "bread_22491a1c",
breadLink: "breadLink_22491a1c",
sep: "sep_22491a1c",
ph: "ph_22491a1c",
phLeft: "phLeft_22491a1c",
phIcon: "phIcon_22491a1c",
phSub: "phSub_22491a1c",
phTitle: "phTitle_22491a1c",
phRight: "phRight_22491a1c"
});
/***/ }),
/***/ 867:
/*!****************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ApprovalAdmin.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! tslib */ 196);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ApprovalAdmin_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ApprovalAdmin.module.scss */ 845);
/* harmony import */ var _app_AdminApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app/AdminApp */ 619);
/* harmony import */ var _services_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../services/api */ 905);
/* harmony import */ var _services_httpClient__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../services/httpClient */ 10);
var FONTS_LINK_ID = 'tnsu-approval-admin-fonts';
function ensureFontsLoaded() {
if (typeof document === 'undefined' || document.getElementById(FONTS_LINK_ID))
return;
var link = document.createElement('link');
link.id = FONTS_LINK_ID;
link.rel = 'stylesheet';
link.href = 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Lora:wght@500;600;700&display=swap';
document.head.appendChild(link);
}
function createHttpClient(props) {
return (0,tslib__WEBPACK_IMPORTED_MODULE_5__.__awaiter)(this, void 0, void 0, function () {
var aadClient;
return (0,tslib__WEBPACK_IMPORTED_MODULE_5__.__generator)(this, function (_a) {
switch (_a.label) {
case 0:
if (props.useDevAuth) {
return [2 /*return*/, new _services_httpClient__WEBPACK_IMPORTED_MODULE_4__.DevApiHttpClient(props.apiBaseUrl, props.devUserEmail || 'dev@tnsu.kz')];
}
return [4 /*yield*/, props.context.aadHttpClientFactory.getClient(props.aadResourceId)];
case 1:
aadClient = _a.sent();
return [2 /*return*/, new _services_httpClient__WEBPACK_IMPORTED_MODULE_4__.AadApiHttpClient(aadClient, props.apiBaseUrl)];
}
});
});
}
var ApprovalAdmin = function (props) {
var _a = react__WEBPACK_IMPORTED_MODULE_0__.useState(), api = _a[0], setApi = _a[1];
var _b = react__WEBPACK_IMPORTED_MODULE_0__.useState(), error = _b[0], setError = _b[1];
react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
ensureFontsLoaded();
}, []);
react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
var cancelled = false;
setApi(undefined);
setError(undefined);
createHttpClient(props)
.then(function (client) { if (!cancelled)
setApi(new _services_api__WEBPACK_IMPORTED_MODULE_3__.ApprovalRouteApi(client)); })
.catch(function (e) { if (!cancelled)
setError(e.message); });
return function () { cancelled = true; };
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [props.useDevAuth, props.apiBaseUrl, props.devUserEmail, props.aadResourceId]);
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("section", { className: _ApprovalAdmin_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].approvalAdmin },
error && (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _ApprovalAdmin_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].stateBox },
"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043A API: ",
error,
react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null),
"\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0432\u0435\u0431-\u0447\u0430\u0441\u0442\u0438 (Api Base Url, \u0440\u0435\u0436\u0438\u043C \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u0438) \u0432 \u043F\u0430\u043D\u0435\u043B\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.")),
!error && !api && react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _ApprovalAdmin_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].stateBox }, "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043A API..."),
api && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_app_AdminApp__WEBPACK_IMPORTED_MODULE_2__.AdminApp, { api: api, currentUserEmail: props.context.pageContext.user.email })));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ApprovalAdmin);
/***/ }),
/***/ 619:
/*!***************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/app/AdminApp.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ AdminApp: () => (/* binding */ AdminApp)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _AdminApp_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AdminApp.module.scss */ 41);
/* harmony import */ var _TopNav__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TopNav */ 801);
/* harmony import */ var _screens_DashboardScreen__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../screens/DashboardScreen */ 379);
/* harmony import */ var _screens_RequestTypesScreen__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../screens/RequestTypesScreen */ 273);
/* harmony import */ var _screens_RoutesScreen__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../screens/RoutesScreen */ 373);
/* harmony import */ var _screens_RouteStepsScreen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../screens/RouteStepsScreen */ 187);
/* harmony import */ var _screens_ResolveScreen__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../screens/ResolveScreen */ 667);
var AdminApp = function (_a) {
var api = _a.api, currentUserEmail = _a.currentUserEmail;
var _b = react__WEBPACK_IMPORTED_MODULE_0__.useState('dashboard'), screen = _b[0], setScreen = _b[1];
var _c = react__WEBPACK_IMPORTED_MODULE_0__.useState(), selectedRoute = _c[0], setSelectedRoute = _c[1];
var _d = react__WEBPACK_IMPORTED_MODULE_0__.useState(''), selectedRequestTypeName = _d[0], setSelectedRequestTypeName = _d[1];
var navigate = function (key) {
setScreen(key);
};
var openSteps = function (route) {
setSelectedRoute(route);
api.requestTypes.get(route.requestTypeId)
.then(function (rt) { return setSelectedRequestTypeName(rt.name); })
.catch(function () { return setSelectedRequestTypeName("#".concat(route.requestTypeId)); });
setScreen('routeSteps');
};
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _AdminApp_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].shell },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_TopNav__WEBPACK_IMPORTED_MODULE_2__.TopNav, { active: screen, onSelect: navigate }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _AdminApp_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].content },
screen === 'dashboard' && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_screens_DashboardScreen__WEBPACK_IMPORTED_MODULE_3__.DashboardScreen, { api: api, onNavigate: navigate }),
screen === 'requestTypes' && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_screens_RequestTypesScreen__WEBPACK_IMPORTED_MODULE_4__.RequestTypesScreen, { api: api }),
screen === 'routes' && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_screens_RoutesScreen__WEBPACK_IMPORTED_MODULE_5__.RoutesScreen, { api: api, onOpenSteps: openSteps }),
screen === 'routeSteps' && selectedRoute && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_screens_RouteStepsScreen__WEBPACK_IMPORTED_MODULE_6__.RouteStepsScreen, { api: api, route: selectedRoute, requestTypeName: selectedRequestTypeName, onBack: function () { return setScreen('routes'); } })),
screen === 'resolve' && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_screens_ResolveScreen__WEBPACK_IMPORTED_MODULE_7__.ResolveScreen, { api: api, currentUserEmail: currentUserEmail }))));
};
/***/ }),
/***/ 801:
/*!*************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/app/TopNav.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ TopNav: () => (/* binding */ TopNav)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _TopNav_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TopNav.module.scss */ 923);
var TABS = [
{ key: 'dashboard', label: 'Дашборд' },
{ key: 'requestTypes', label: 'Типы заявок' },
{ key: 'routes', label: 'Маршруты' },
{ key: 'resolve', label: 'Проверка маршрута' }
];
var TopNav = function (_a) {
var active = _a.active, onSelect = _a.onSelect;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("nav", { className: _TopNav_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].topnav },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _TopNav_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].brand },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _TopNav_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].mark }, "T"),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _TopNav_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].brandText },
"TNSU ",
react__WEBPACK_IMPORTED_MODULE_0__.createElement("em", null, "Approval Route"))),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _TopNav_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].tabs }, TABS.map(function (tab) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("button", { key: tab.key, className: "".concat(_TopNav_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].tab, " ").concat((active === tab.key || (active === 'routeSteps' && tab.key === 'routes')) ? _TopNav_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].on : ''), onClick: function () { return onSelect(tab.key); } }, tab.label)); }))));
};
/***/ }),
/***/ 379:
/*!**************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/screens/DashboardScreen.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ DashboardScreen: () => (/* binding */ DashboardScreen)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui */ 536);
var DashboardScreen = function (_a) {
var api = _a.api, onNavigate = _a.onNavigate;
var _b = react__WEBPACK_IMPORTED_MODULE_0__.useState(), requestTypesCount = _b[0], setRequestTypesCount = _b[1];
var _c = react__WEBPACK_IMPORTED_MODULE_0__.useState(), routesCount = _c[0], setRoutesCount = _c[1];
react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
api.requestTypes.list().then(function (items) { return setRequestTypesCount(items.length); }).catch(function () { return setRequestTypesCount(undefined); });
api.templateRoutes.list().then(function (items) { return setRoutesCount(items.length); }).catch(function () { return setRoutesCount(undefined); });
}, [api]);
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.StatRow, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.StatCard, { label: "\u0422\u0438\u043F\u043E\u0432 \u0437\u0430\u044F\u0432\u043E\u043A", value: requestTypesCount !== null && requestTypesCount !== void 0 ? requestTypesCount : '—' }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.StatCard, { label: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442\u043E\u0432 \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u044F", value: routesCount !== null && routesCount !== void 0 ? routesCount : '—' })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { style: { fontSize: 10, textTransform: 'uppercase', letterSpacing: 1.6, color: 'var(--gray-400)', fontWeight: 600, marginBottom: 12 } }, "\u0420\u0430\u0437\u0434\u0435\u043B\u044B"),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("hr", { style: { height: 1, background: 'linear-gradient(90deg, var(--gold-400), transparent 70%)', border: 0, margin: '6px 0 22px' } }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.CardGrid, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.NavCard, { icon: "clipboard", title: "\u0422\u0438\u043F\u044B \u0437\u0430\u044F\u0432\u043E\u043A", description: "\u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u0442\u0438\u043F\u043E\u0432 \u0437\u0430\u044F\u0432\u043E\u043A \u0438 \u0438\u0445 \u0441\u0442\u0440\u0430\u043D\u0438\u0446", onClick: function () { return onNavigate('requestTypes'); } }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.NavCard, { icon: "route", title: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442\u044B \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u044F", description: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442\u044B, \u0448\u0430\u0433\u0438 \u0438 \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0438", onClick: function () { return onNavigate('routes'); } }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.NavCard, { icon: "search", title: "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430", description: "\u041A\u0430\u043A \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u0441\u044F \u043C\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043B\u044F \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F", onClick: function () { return onNavigate('resolve'); } }))));
};
/***/ }),
/***/ 273:
/*!*****************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/screens/RequestTypesScreen.js ***!
\*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ RequestTypesScreen: () => (/* binding */ RequestTypesScreen)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ 196);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui */ 536);
var EMPTY_FORM = { name: '', pageUrl: '' };
var RequestTypesScreen = function (_a) {
var api = _a.api;
var _b = react__WEBPACK_IMPORTED_MODULE_0__.useState([]), items = _b[0], setItems = _b[1];
var _c = react__WEBPACK_IMPORTED_MODULE_0__.useState(true), loading = _c[0], setLoading = _c[1];
var _d = react__WEBPACK_IMPORTED_MODULE_0__.useState(), loadError = _d[0], setLoadError = _d[1];
var _e = react__WEBPACK_IMPORTED_MODULE_0__.useState(), editing = _e[0], setEditing = _e[1];
var _f = react__WEBPACK_IMPORTED_MODULE_0__.useState(false), showForm = _f[0], setShowForm = _f[1];
var _g = react__WEBPACK_IMPORTED_MODULE_0__.useState(EMPTY_FORM), form = _g[0], setForm = _g[1];
var _h = react__WEBPACK_IMPORTED_MODULE_0__.useState(), formError = _h[0], setFormError = _h[1];
var _j = react__WEBPACK_IMPORTED_MODULE_0__.useState(false), saving = _j[0], setSaving = _j[1];
var _k = react__WEBPACK_IMPORTED_MODULE_0__.useState(), deleting = _k[0], setDeleting = _k[1];
var _l = react__WEBPACK_IMPORTED_MODULE_0__.useState(), deleteError = _l[0], setDeleteError = _l[1];
var _m = react__WEBPACK_IMPORTED_MODULE_0__.useState(false), deleteBusy = _m[0], setDeleteBusy = _m[1];
var load = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {
setLoading(true);
setLoadError(undefined);
api.requestTypes
.list()
.then(setItems)
.catch(function (e) { return setLoadError(e.message); })
.finally(function () { return setLoading(false); });
}, [api]);
react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () { load(); }, [load]);
var openCreate = function () {
setEditing(undefined);
setForm(EMPTY_FORM);
setFormError(undefined);
setShowForm(true);
};
var openEdit = function (item) {
setEditing(item);
setForm({ name: item.name, pageUrl: item.pageUrl });
setFormError(undefined);
setShowForm(true);
};
var submit = function () {
if (!form.name.trim() || !form.pageUrl.trim()) {
setFormError('Заполните имя и Url страницы.');
return;
}
setSaving(true);
setFormError(undefined);
var request = editing
? api.requestTypes.update(editing.id, { name: form.name.trim(), pageUrl: form.pageUrl.trim() })
: api.requestTypes.create({ name: form.name.trim(), pageUrl: form.pageUrl.trim() });
request
.then(function () {
setShowForm(false);
load();
})
.catch(function (e) { return setFormError(e.message); })
.finally(function () { return setSaving(false); });
};
var confirmDelete = function () {
if (!deleting)
return;
setDeleteBusy(true);
setDeleteError(undefined);
api.requestTypes
.remove(deleting.id)
.then(function () {
setDeleting(undefined);
load();
})
.catch(function (e) { return setDeleteError(e.message); })
.finally(function () { return setDeleteBusy(false); });
};
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.Breadcrumbs, { items: [{ label: 'Главная' }, { label: 'Типы заявок' }] }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.PageHeader, { icon: "clipboard", subtitle: "\u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A", title: "\u0422\u0438\u043F\u044B \u0437\u0430\u044F\u0432\u043E\u043A", actions: react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.Button, { variant: "accent", icon: "plus", onClick: openCreate }, "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0438\u043F") }),
loadError && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.Alert, { kind: "err" }, loadError),
deleteError && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.Alert, { kind: "err" }, deleteError),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.DataTable, { columns: [
{ key: 'name', header: 'Название', render: function (r) { return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.PrimaryCell, null, r.name); } },
{ key: 'url', header: 'Url страницы', render: function (r) { return r.pageUrl; } },
{
key: 'actions',
header: '',
width: '100px',
align: 'right',
render: function (r) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.ActionsCell, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.IconButton, { icon: "edit", label: "\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C", onClick: function () { return openEdit(r); } }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.IconButton, { icon: "trash", label: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C", danger: true, onClick: function () { setDeleteError(undefined); setDeleting(r); } }))); }
}
], rows: items, keyOf: function (r) { return r.id; }, emptyMessage: loading ? 'Загрузка...' : 'Типов заявок пока нет.' }),
showForm && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.Modal, { title: editing ? 'Редактировать тип заявки' : 'Новый тип заявки', onClose: function () { return setShowForm(false); }, footer: react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.Button, { variant: "secondary", onClick: function () { return setShowForm(false); }, disabled: saving }, "\u041E\u0442\u043C\u0435\u043D\u0430"),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.Button, { variant: "accent", icon: "check", onClick: submit, disabled: saving }, saving ? 'Сохранение...' : 'Сохранить')) },
formError && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.Alert, { kind: "err" }, formError),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.FormGrid, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.Field, { label: "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435", required: true, full: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.TextInput, { value: form.name, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, form), { name: e.target.value })); }, placeholder: "\u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0417\u0430\u044F\u0432\u043A\u0430 \u043D\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0438\u0440\u043E\u0432\u043A\u0443" })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.Field, { label: "Url \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B", required: true, full: true, hint: "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u0444\u043E\u0440\u043C\u044B \u0437\u0430\u044F\u0432\u043A\u0438 \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435." },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.TextInput, { value: form.pageUrl, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, form), { pageUrl: e.target.value })); }, placeholder: "/pages/business-trip" }))))),
deleting && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_1__.ConfirmDialog, { title: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0442\u0438\u043F \u0437\u0430\u044F\u0432\u043A\u0438?", text: "\u0422\u0438\u043F \u00AB".concat(deleting.name, "\u00BB \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043B\u0451\u043D \u0431\u0435\u0437\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u043D\u043E. \u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u044B \u043C\u043E\u0433\u0443\u0442 \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044C \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044C\u0441\u044F."), confirmLabel: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C", busy: deleteBusy, onCancel: function () { return setDeleting(undefined); }, onConfirm: confirmDelete }))));
};
/***/ }),
/***/ 667:
/*!************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/screens/ResolveScreen.js ***!
\************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ ResolveScreen: () => (/* binding */ ResolveScreen)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _models__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../models */ 907);
/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui */ 536);
var STATUS_OPTIONS = [_models__WEBPACK_IMPORTED_MODULE_1__.RouteStepStatus.Approval, _models__WEBPACK_IMPORTED_MODULE_1__.RouteStepStatus.Execution]
.map(function (v) { return ({ value: v, label: _models__WEBPACK_IMPORTED_MODULE_1__.routeStepStatusLabels[v] }); });
var ResolveScreen = function (_a) {
var api = _a.api, currentUserEmail = _a.currentUserEmail;
var _b = react__WEBPACK_IMPORTED_MODULE_0__.useState([]), requestTypes = _b[0], setRequestTypes = _b[1];
var _c = react__WEBPACK_IMPORTED_MODULE_0__.useState(''), requestTypeId = _c[0], setRequestTypeId = _c[1];
var _d = react__WEBPACK_IMPORTED_MODULE_0__.useState(''), userEmail = _d[0], setUserEmail = _d[1];
var _e = react__WEBPACK_IMPORTED_MODULE_0__.useState(''), projectId = _e[0], setProjectId = _e[1];
var _f = react__WEBPACK_IMPORTED_MODULE_0__.useState(_models__WEBPACK_IMPORTED_MODULE_1__.RouteStepStatus.Approval), status = _f[0], setStatus = _f[1];
var _g = react__WEBPACK_IMPORTED_MODULE_0__.useState(false), busy = _g[0], setBusy = _g[1];
var _h = react__WEBPACK_IMPORTED_MODULE_0__.useState(), error = _h[0], setError = _h[1];
var _j = react__WEBPACK_IMPORTED_MODULE_0__.useState(), result = _j[0], setResult = _j[1];
react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
api.requestTypes.list().then(setRequestTypes).catch(function () { });
}, [api]);
var run = function () {
if (!requestTypeId) {
setError('Выберите тип заявки.');
return;
}
setBusy(true);
setError(undefined);
setResult(undefined);
api.templateRoutes
.resolve({
requestTypeId: Number(requestTypeId),
userEmail: userEmail.trim() || undefined,
projectId: projectId.trim() || undefined,
status: status
})
.then(setResult)
.catch(function (e) { return setError(e.message); })
.finally(function () { return setBusy(false); });
};
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Breadcrumbs, { items: [{ label: 'Главная' }, { label: 'Проверка маршрута' }] }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.PageHeader, { icon: "search", subtitle: "\u0414\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0430", title: "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430" }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { style: { background: '#fff', borderRadius: 14, padding: 26, boxShadow: 'var(--sh-1)', border: '1px solid var(--gray-200)', marginBottom: 24 } },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.FormGrid, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u0422\u0438\u043F \u0437\u0430\u044F\u0432\u043A\u0438", required: true, full: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Select, { options: requestTypes.map(function (rt) { return ({ value: String(rt.id), label: rt.name }); }), placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0438\u043F \u0437\u0430\u044F\u0432\u043A\u0438", value: requestTypeId, onChange: function (e) { return setRequestTypeId(e.target.value); } })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "Email \u0438\u043D\u0438\u0446\u0438\u0430\u0442\u043E\u0440\u0430", hint: currentUserEmail ? "\u041F\u0443\u0441\u0442\u043E = \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C (".concat(currentUserEmail, ").") : 'Пусто = текущий пользователь из токена.' },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.TextInput, { value: userEmail, onChange: function (e) { return setUserEmail(e.target.value); }, placeholder: "user@tnsu.kz" })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "Id \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (Guid)", hint: "\u0417\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435, \u0435\u0441\u043B\u0438 \u043C\u0430\u0440\u0448\u0440\u0443\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043E\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430." },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.TextInput, { value: projectId, onChange: function (e) { return setProjectId(e.target.value); }, placeholder: "\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E" })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u0421\u0442\u0430\u0442\u0443\u0441", required: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Select, { options: STATUS_OPTIONS, value: status, onChange: function (e) { return setStatus(e.target.value); } }))),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { style: { marginTop: 18 } },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Button, { variant: "accent", icon: "search", onClick: run, disabled: busy }, busy ? 'Проверка...' : 'Проверить'))),
error && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Alert, { kind: "err" }, error),
result && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Alert, { kind: "ok" },
"\u041C\u0430\u0440\u0448\u0440\u0443\u0442 #",
result.routeId,
" \u00B7 ",
_models__WEBPACK_IMPORTED_MODULE_1__.routeTypeLabels[result.routeType],
result.requiresControl ? ' · требуется контроль исполнения' : ''),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.DataTable, { columns: [
{ key: 'order', header: '№', width: '50px', render: function (r) { return r.orderNo; } },
{ key: 'executor', header: 'Исполнитель', render: function (r) { var _a; return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.PrimaryCell, null, (_a = r.executorEmail) !== null && _a !== void 0 ? _a : '—'); } },
{ key: 'position', header: 'Должность', render: function (r) { var _a; return (_a = r.position) !== null && _a !== void 0 ? _a : '—'; } },
{
key: 'reassign',
header: 'Переназначение',
align: 'center',
render: function (r) { return (r.allowReassignToOtherApprovers ? 'Разрешено' : 'Нет'); }
}
], rows: result.steps, keyOf: function (r) { return r.id; }, emptyMessage: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043B\u0441\u044F \u0431\u0435\u0437 \u0448\u0430\u0433\u043E\u0432 \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0430." })))));
};
/***/ }),
/***/ 187:
/*!***************************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/screens/RouteStepsScreen.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ RouteStepsScreen: () => (/* binding */ RouteStepsScreen)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ 196);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _models__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../models */ 907);
/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui */ 536);
function emptyForm(nextOrderNo) {
return {
orderNo: String(nextOrderNo),
status: _models__WEBPACK_IMPORTED_MODULE_1__.RouteStepStatus.Approval,
kind: 'email',
executorEmail: '',
position: '',
projectRole: _models__WEBPACK_IMPORTED_MODULE_1__.ProjectRole.ProjectManager,
headType: _models__WEBPACK_IMPORTED_MODULE_1__.HeadType.Chief,
allowReassignToOtherApprovers: false
};
}
var STATUS_OPTIONS = [_models__WEBPACK_IMPORTED_MODULE_1__.RouteStepStatus.Approval, _models__WEBPACK_IMPORTED_MODULE_1__.RouteStepStatus.Execution]
.map(function (v) { return ({ value: v, label: _models__WEBPACK_IMPORTED_MODULE_1__.routeStepStatusLabels[v] }); });
var PROJECT_ROLE_OPTIONS = Object.values(_models__WEBPACK_IMPORTED_MODULE_1__.ProjectRole)
.filter(function (v) { return v !== _models__WEBPACK_IMPORTED_MODULE_1__.ProjectRole.None; })
.map(function (v) { return ({ value: v, label: _models__WEBPACK_IMPORTED_MODULE_1__.projectRoleLabels[v] }); });
var HEAD_TYPE_OPTIONS = Object.values(_models__WEBPACK_IMPORTED_MODULE_1__.HeadType)
.filter(function (v) { return v !== _models__WEBPACK_IMPORTED_MODULE_1__.HeadType.None; })
.map(function (v) { return ({ value: v, label: _models__WEBPACK_IMPORTED_MODULE_1__.headTypeLabels[v] }); });
var RouteStepsScreen = function (_a) {
var api = _a.api, route = _a.route, requestTypeName = _a.requestTypeName, onBack = _a.onBack;
var _b = react__WEBPACK_IMPORTED_MODULE_0__.useState([]), items = _b[0], setItems = _b[1];
var _c = react__WEBPACK_IMPORTED_MODULE_0__.useState(true), loading = _c[0], setLoading = _c[1];
var _d = react__WEBPACK_IMPORTED_MODULE_0__.useState(), loadError = _d[0], setLoadError = _d[1];
var _e = react__WEBPACK_IMPORTED_MODULE_0__.useState(), warning = _e[0], setWarning = _e[1];
var _f = react__WEBPACK_IMPORTED_MODULE_0__.useState(), editing = _f[0], setEditing = _f[1];
var _g = react__WEBPACK_IMPORTED_MODULE_0__.useState(false), showForm = _g[0], setShowForm = _g[1];
var _h = react__WEBPACK_IMPORTED_MODULE_0__.useState(emptyForm(1)), form = _h[0], setForm = _h[1];
var _j = react__WEBPACK_IMPORTED_MODULE_0__.useState(), formError = _j[0], setFormError = _j[1];
var _k = react__WEBPACK_IMPORTED_MODULE_0__.useState(false), saving = _k[0], setSaving = _k[1];
var _l = react__WEBPACK_IMPORTED_MODULE_0__.useState(), deleting = _l[0], setDeleting = _l[1];
var _m = react__WEBPACK_IMPORTED_MODULE_0__.useState(), deleteError = _m[0], setDeleteError = _m[1];
var _o = react__WEBPACK_IMPORTED_MODULE_0__.useState(false), deleteBusy = _o[0], setDeleteBusy = _o[1];
var load = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {
setLoading(true);
setLoadError(undefined);
api.templateRouteSteps
.list(route.id)
.then(setItems)
.catch(function (e) { return setLoadError(e.message); })
.finally(function () { return setLoading(false); });
}, [api, route.id]);
react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () { load(); }, [load]);
var openCreate = function () {
setEditing(undefined);
var nextOrder = items.length > 0 ? Math.max.apply(Math, items.map(function (s) { return s.orderNo; })) + 1 : 1;
setForm(emptyForm(nextOrder));
setFormError(undefined);
setShowForm(true);
};
var openEdit = function (item) {
var _a, _b;
setEditing(item);
setForm({
orderNo: String(item.orderNo),
status: item.status,
kind: (0,_models__WEBPACK_IMPORTED_MODULE_1__.detectExecutorKind)(item),
executorEmail: (_a = item.executorEmail) !== null && _a !== void 0 ? _a : '',
position: (_b = item.position) !== null && _b !== void 0 ? _b : '',
projectRole: item.projectRole && item.projectRole !== _models__WEBPACK_IMPORTED_MODULE_1__.ProjectRole.None ? item.projectRole : _models__WEBPACK_IMPORTED_MODULE_1__.ProjectRole.ProjectManager,
headType: item.headType && item.headType !== _models__WEBPACK_IMPORTED_MODULE_1__.HeadType.None ? item.headType : _models__WEBPACK_IMPORTED_MODULE_1__.HeadType.Chief,
allowReassignToOtherApprovers: item.allowReassignToOtherApprovers
});
setFormError(undefined);
setShowForm(true);
};
var submit = function () {
var orderNo = Number(form.orderNo);
if (!orderNo || orderNo < 1) {
setFormError('Порядковый номер шага обязателен.');
return;
}
if (form.kind === 'email' && !form.executorEmail.trim()) {
setFormError('Укажите email исполнителя.');
return;
}
if (form.kind === 'position' && !form.position.trim()) {
setFormError('Укажите должность.');
return;
}
var payload = {
orderNo: orderNo,
status: form.status,
allowReassignToOtherApprovers: form.allowReassignToOtherApprovers,
executorEmail: form.kind === 'email' ? form.executorEmail.trim() : null,
position: form.kind === 'position' ? form.position.trim() : null,
projectRole: form.kind === 'projectRole' ? form.projectRole : null,
headType: form.kind === 'headType' ? form.headType : null
};
setSaving(true);
setFormError(undefined);
var request = editing
? api.templateRouteSteps.update(route.id, editing.id, payload)
: api.templateRouteSteps.create(route.id, payload);
request
.then(function (step) {
var _a;
setShowForm(false);
setWarning((_a = step.warning) !== null && _a !== void 0 ? _a : undefined);
load();
})
.catch(function (e) { return setFormError(e.message); })
.finally(function () { return setSaving(false); });
};
var confirmDelete = function () {
if (!deleting)
return;
setDeleteBusy(true);
setDeleteError(undefined);
api.templateRouteSteps
.remove(route.id, deleting.id)
.then(function () {
setDeleting(undefined);
load();
})
.catch(function (e) { return setDeleteError(e.message); })
.finally(function () { return setDeleteBusy(false); });
};
var sorted = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__spreadArray)([], items, true).sort(function (a, b) { return a.orderNo - b.orderNo; });
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Breadcrumbs, { items: [
{ label: 'Главная' },
{ label: 'Маршруты согласования', onClick: onBack },
{ label: "\u0428\u0430\u0433\u0438 \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430 #".concat(route.id) }
] }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.PageHeader, { icon: "flag-check", subtitle: "".concat(requestTypeName, " \u00B7 ").concat(_models__WEBPACK_IMPORTED_MODULE_1__.routeTypeLabels[route.routeType]), title: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442 #".concat(route.id), actions: react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Button, { variant: "ghost", icon: "arrow-left", onClick: onBack }, "\u041A \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u043C"),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Button, { variant: "accent", icon: "plus", onClick: openCreate }, "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0448\u0430\u0433")) }),
warning && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Alert, { kind: "warn" }, warning),
loadError && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Alert, { kind: "err" }, loadError),
deleteError && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Alert, { kind: "err" }, deleteError),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.DataTable, { columns: [
{ key: 'order', header: '№', width: '50px', render: function (r) { return r.orderNo; } },
{
key: 'executor',
header: 'Исполнитель',
render: function (r) { return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.PrimaryCell, null, describeExecutor(r)); }
},
{
key: 'status',
header: 'Статус',
render: function (r) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Badge, { variant: r.status === _models__WEBPACK_IMPORTED_MODULE_1__.RouteStepStatus.Approval ? 'gold' : 'blue' }, _models__WEBPACK_IMPORTED_MODULE_1__.routeStepStatusLabels[r.status])); }
},
{
key: 'reassign',
header: 'Переназначение',
align: 'center',
render: function (r) { return (r.allowReassignToOtherApprovers ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Badge, { variant: "ok" }, "\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043E") : react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Badge, { variant: "neutral" }, "\u041D\u0435\u0442")); }
},
{
key: 'actions',
header: '',
width: '100px',
align: 'right',
render: function (r) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.ActionsCell, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.IconButton, { icon: "edit", label: "\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C", onClick: function () { return openEdit(r); } }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.IconButton, { icon: "trash", label: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C", danger: true, onClick: function () { setDeleteError(undefined); setDeleting(r); } }))); }
}
], rows: sorted, keyOf: function (r) { return r.id; }, emptyMessage: loading ? 'Загрузка...' : 'Шагов пока нет — добавьте первый.' }),
showForm && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Modal, { title: editing ? "\u0428\u0430\u0433 #".concat(editing.orderNo) : 'Новый шаг маршрута', onClose: function () { return setShowForm(false); }, footer: react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Button, { variant: "secondary", onClick: function () { return setShowForm(false); }, disabled: saving }, "\u041E\u0442\u043C\u0435\u043D\u0430"),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Button, { variant: "accent", icon: "check", onClick: submit, disabled: saving }, saving ? 'Сохранение...' : 'Сохранить')) },
formError && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Alert, { kind: "err" }, formError),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.FormGrid, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u041F\u043E\u0440\u044F\u0434\u043A\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440", required: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.TextInput, { type: "number", min: 1, value: form.orderNo, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { orderNo: e.target.value })); } })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u0421\u0442\u0430\u0442\u0443\u0441 \u0448\u0430\u0433\u0430", required: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Select, { options: STATUS_OPTIONS, value: form.status, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { status: e.target.value })); } })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u041A\u0442\u043E \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C", required: true, full: true, hint: "\u0414\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043E \u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u043E \u0438\u0437 \u043F\u043E\u043B\u0435\u0439." },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.RadioGroup, { name: "executorKind", value: form.kind, onChange: function (kind) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { kind: kind })); }, options: [
{ value: 'email', label: 'Конкретный сотрудник (email)' },
{ value: 'position', label: 'По должности в компании инициатора' },
{
value: 'projectRole',
label: 'По роли в проекте',
disabled: !route.byProject,
disabledHint: 'Недоступно: маршрут не учитывает проект (по проекту = нет).'
},
{ value: 'headType', label: 'По типу руководителя' }
] })),
form.kind === 'email' && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "Email \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044F", required: true, full: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.TextInput, { value: form.executorEmail, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { executorEmail: e.target.value })); }, placeholder: "user@tnsu.kz" }))),
form.kind === 'position' && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C", required: true, full: true, hint: "\u0418\u0449\u0435\u0442\u0441\u044F \u0432 \u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0435 api.tnsu.kz \u043F\u043E \u043A\u043E\u043C\u043F\u0430\u043D\u0438\u0438 \u0438\u043D\u0438\u0446\u0438\u0430\u0442\u043E\u0440\u0430." },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.TextInput, { value: form.position, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { position: e.target.value })); }, placeholder: "\u0413\u043B\u0430\u0432\u043D\u044B\u0439 \u0438\u043D\u0436\u0435\u043D\u0435\u0440" }))),
form.kind === 'projectRole' && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u0420\u043E\u043B\u044C \u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u0435", required: true, full: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Select, { options: PROJECT_ROLE_OPTIONS, value: form.projectRole, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { projectRole: e.target.value })); } }))),
form.kind === 'headType' && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u0422\u0438\u043F \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F", required: true, full: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Select, { options: HEAD_TYPE_OPTIONS, value: form.headType, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { headType: e.target.value })); } }))),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u041F\u0435\u0440\u0435\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", full: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Checkbox, { label: "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043F\u0435\u0440\u0435\u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0442\u044C \u0434\u0440\u0443\u0433\u0438\u043C \u0441\u043E\u0433\u043B\u0430\u0441\u0443\u044E\u0449\u0438\u043C", checked: form.allowReassignToOtherApprovers, onChange: function (v) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { allowReassignToOtherApprovers: v })); } }))))),
deleting && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.ConfirmDialog, { title: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0448\u0430\u0433?", text: "\u0428\u0430\u0433 #".concat(deleting.orderNo, " \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043B\u0451\u043D \u0431\u0435\u0437\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u043D\u043E."), confirmLabel: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C", busy: deleteBusy, onCancel: function () { return setDeleting(undefined); }, onConfirm: confirmDelete }))));
};
function describeExecutor(step) {
if (step.executorEmail)
return step.executorEmail;
if (step.position)
return step.position;
if (step.projectRole && step.projectRole !== _models__WEBPACK_IMPORTED_MODULE_1__.ProjectRole.None)
return "\u0420\u043E\u043B\u044C: ".concat(_models__WEBPACK_IMPORTED_MODULE_1__.projectRoleLabels[step.projectRole]);
if (step.headType && step.headType !== _models__WEBPACK_IMPORTED_MODULE_1__.HeadType.None)
return "\u0420\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C: ".concat(_models__WEBPACK_IMPORTED_MODULE_1__.headTypeLabels[step.headType]);
return '—';
}
/***/ }),
/***/ 373:
/*!***********************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/screens/RoutesScreen.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ RoutesScreen: () => (/* binding */ RoutesScreen)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ 196);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _models__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../models */ 907);
/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui */ 536);
var EMPTY_FORM = {
requestTypeId: '',
routeType: _models__WEBPACK_IMPORTED_MODULE_1__.RouteType.Sequential,
companyId: '',
departmentId: '',
byProject: false,
requiresControl: false
};
var ROUTE_TYPE_OPTIONS = Object.values(_models__WEBPACK_IMPORTED_MODULE_1__.RouteType)
.filter(function (v) { return v !== _models__WEBPACK_IMPORTED_MODULE_1__.RouteType.None; })
.map(function (v) { return ({ value: v, label: _models__WEBPACK_IMPORTED_MODULE_1__.routeTypeLabels[v] }); });
var RoutesScreen = function (_a) {
var api = _a.api, onOpenSteps = _a.onOpenSteps;
var _b = react__WEBPACK_IMPORTED_MODULE_0__.useState([]), requestTypes = _b[0], setRequestTypes = _b[1];
var _c = react__WEBPACK_IMPORTED_MODULE_0__.useState([]), items = _c[0], setItems = _c[1];
var _d = react__WEBPACK_IMPORTED_MODULE_0__.useState(''), filterRequestTypeId = _d[0], setFilterRequestTypeId = _d[1];
var _e = react__WEBPACK_IMPORTED_MODULE_0__.useState(true), loading = _e[0], setLoading = _e[1];
var _f = react__WEBPACK_IMPORTED_MODULE_0__.useState(), loadError = _f[0], setLoadError = _f[1];
var _g = react__WEBPACK_IMPORTED_MODULE_0__.useState(), editing = _g[0], setEditing = _g[1];
var _h = react__WEBPACK_IMPORTED_MODULE_0__.useState(false), showForm = _h[0], setShowForm = _h[1];
var _j = react__WEBPACK_IMPORTED_MODULE_0__.useState(EMPTY_FORM), form = _j[0], setForm = _j[1];
var _k = react__WEBPACK_IMPORTED_MODULE_0__.useState(), formError = _k[0], setFormError = _k[1];
var _l = react__WEBPACK_IMPORTED_MODULE_0__.useState(false), saving = _l[0], setSaving = _l[1];
var _m = react__WEBPACK_IMPORTED_MODULE_0__.useState(), deleting = _m[0], setDeleting = _m[1];
var _o = react__WEBPACK_IMPORTED_MODULE_0__.useState(), deleteError = _o[0], setDeleteError = _o[1];
var _p = react__WEBPACK_IMPORTED_MODULE_0__.useState(false), deleteBusy = _p[0], setDeleteBusy = _p[1];
react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
api.requestTypes.list().then(setRequestTypes).catch(function () { });
}, [api]);
var load = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {
setLoading(true);
setLoadError(undefined);
var requestTypeId = filterRequestTypeId ? Number(filterRequestTypeId) : undefined;
api.templateRoutes
.list(requestTypeId)
.then(setItems)
.catch(function (e) { return setLoadError(e.message); })
.finally(function () { return setLoading(false); });
}, [api, filterRequestTypeId]);
react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () { load(); }, [load]);
var requestTypeName = function (id) { var _a, _b; return (_b = (_a = requestTypes.find(function (rt) { return rt.id === id; })) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "#".concat(id); };
var openCreate = function () {
setEditing(undefined);
setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, EMPTY_FORM), { requestTypeId: filterRequestTypeId }));
setFormError(undefined);
setShowForm(true);
};
var openEdit = function (item) {
var _a;
setEditing(item);
setForm({
requestTypeId: String(item.requestTypeId),
routeType: item.routeType,
companyId: item.companyId,
departmentId: (_a = item.departmentId) !== null && _a !== void 0 ? _a : '',
byProject: item.byProject,
requiresControl: item.requiresControl
});
setFormError(undefined);
setShowForm(true);
};
var submit = function () {
if (!editing && !form.requestTypeId) {
setFormError('Выберите тип заявки.');
return;
}
if (!form.companyId.trim()) {
setFormError('Компания обязательна (Guid из справочника api.tnsu.kz).');
return;
}
setSaving(true);
setFormError(undefined);
var departmentId = form.departmentId.trim() ? form.departmentId.trim() : null;
var request = editing
? api.templateRoutes.update(editing.id, {
routeType: form.routeType,
companyId: form.companyId.trim(),
departmentId: departmentId,
byProject: form.byProject,
requiresControl: form.requiresControl
})
: api.templateRoutes.create({
routeType: form.routeType,
requestTypeId: Number(form.requestTypeId),
companyId: form.companyId.trim(),
departmentId: departmentId,
byProject: form.byProject,
requiresControl: form.requiresControl
});
request
.then(function () {
setShowForm(false);
load();
})
.catch(function (e) { return setFormError(e.message); })
.finally(function () { return setSaving(false); });
};
var confirmDelete = function () {
if (!deleting)
return;
setDeleteBusy(true);
setDeleteError(undefined);
api.templateRoutes
.remove(deleting.id)
.then(function () {
setDeleting(undefined);
load();
})
.catch(function (e) { return setDeleteError(e.message); })
.finally(function () { return setDeleteBusy(false); });
};
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Breadcrumbs, { items: [{ label: 'Главная' }, { label: 'Маршруты согласования' }] }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.PageHeader, { icon: "route", subtitle: "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0439", title: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442\u044B \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u044F", actions: react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Button, { variant: "accent", icon: "plus", onClick: openCreate }, "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043C\u0430\u0440\u0448\u0440\u0443\u0442") }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { style: { marginBottom: 18, maxWidth: 320 } },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u0424\u0438\u043B\u044C\u0442\u0440 \u043F\u043E \u0442\u0438\u043F\u0443 \u0437\u0430\u044F\u0432\u043A\u0438" },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Select, { options: requestTypes.map(function (rt) { return ({ value: String(rt.id), label: rt.name }); }), placeholder: "\u0412\u0441\u0435 \u0442\u0438\u043F\u044B \u0437\u0430\u044F\u0432\u043E\u043A", value: filterRequestTypeId, onChange: function (e) { return setFilterRequestTypeId(e.target.value); } }))),
loadError && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Alert, { kind: "err" }, loadError),
deleteError && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Alert, { kind: "err" }, deleteError),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.DataTable, { columns: [
{
key: 'requestType',
header: 'Тип заявки',
render: function (r) { return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.PrimaryCell, null, requestTypeName(r.requestTypeId)); }
},
{
key: 'routeType',
header: 'Тип маршрута',
render: function (r) { return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Badge, { variant: r.routeType === _models__WEBPACK_IMPORTED_MODULE_1__.RouteType.Parallel ? 'blue' : 'gold' }, _models__WEBPACK_IMPORTED_MODULE_1__.routeTypeLabels[r.routeType]); }
},
{ key: 'company', header: 'Компания', render: function (r) { return react__WEBPACK_IMPORTED_MODULE_0__.createElement("code", null, shortGuid(r.companyId)); } },
{ key: 'department', header: 'Отдел', render: function (r) { return (r.departmentId ? react__WEBPACK_IMPORTED_MODULE_0__.createElement("code", null, shortGuid(r.departmentId)) : '—'); } },
{
key: 'byProject',
header: 'По проекту',
align: 'center',
render: function (r) { return (r.byProject ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Badge, { variant: "ok" }, "\u0414\u0430") : react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Badge, { variant: "neutral" }, "\u041D\u0435\u0442")); }
},
{
key: 'control',
header: 'Контроль',
align: 'center',
render: function (r) { return (r.requiresControl ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Badge, { variant: "gold" }, "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F") : react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Badge, { variant: "neutral" }, "\u041D\u0435\u0442")); }
},
{
key: 'actions',
header: '',
width: '160px',
align: 'right',
render: function (r) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.ActionsCell, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Button, { size: "sm", variant: "secondary", icon: "clipboard", onClick: function () { return onOpenSteps(r); } }, "\u0428\u0430\u0433\u0438"),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.IconButton, { icon: "edit", label: "\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C", onClick: function () { return openEdit(r); } }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.IconButton, { icon: "trash", label: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C", danger: true, onClick: function () { setDeleteError(undefined); setDeleting(r); } }))); }
}
], rows: items, keyOf: function (r) { return r.id; }, emptyMessage: loading ? 'Загрузка...' : 'Маршрутов пока нет.' }),
showForm && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Modal, { title: editing ? "\u041C\u0430\u0440\u0448\u0440\u0443\u0442 #".concat(editing.id) : 'Новый маршрут', onClose: function () { return setShowForm(false); }, footer: react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Button, { variant: "secondary", onClick: function () { return setShowForm(false); }, disabled: saving }, "\u041E\u0442\u043C\u0435\u043D\u0430"),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Button, { variant: "accent", icon: "check", onClick: submit, disabled: saving }, saving ? 'Сохранение...' : 'Сохранить')) },
formError && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Alert, { kind: "err" }, formError),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.FormGrid, null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u0422\u0438\u043F \u0437\u0430\u044F\u0432\u043A\u0438", required: true, full: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Select, { options: requestTypes.map(function (rt) { return ({ value: String(rt.id), label: rt.name }); }), placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0438\u043F \u0437\u0430\u044F\u0432\u043A\u0438", value: form.requestTypeId, disabled: !!editing, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { requestTypeId: e.target.value })); } })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u0422\u0438\u043F \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430", required: true, full: true },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Select, { options: ROUTE_TYPE_OPTIONS, value: form.routeType, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { routeType: e.target.value })); } })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u041A\u043E\u043C\u043F\u0430\u043D\u0438\u044F (Guid)", required: true, full: true, hint: "\u0418\u0437 \u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 api.tnsu.kz." },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.TextInput, { value: form.companyId, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { companyId: e.target.value })); }, placeholder: "00000000-0000-0000-0000-000000000000" })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u041E\u0442\u0434\u0435\u043B (Guid)", full: true, hint: "\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u2014 \u043C\u0430\u0440\u0448\u0440\u0443\u0442 \u00AB\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E\u00BB \u0434\u043B\u044F \u043A\u043E\u043C\u043F\u0430\u043D\u0438\u0438." },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.TextInput, { value: form.departmentId, onChange: function (e) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { departmentId: e.target.value })); }, placeholder: "\u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C \u0434\u043B\u044F \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E" })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u041F\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0443" },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Checkbox, { label: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442 \u0443\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u044B\u0439 \u043F\u0440\u043E\u0435\u043A\u0442", checked: form.byProject, onChange: function (v) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { byProject: v })); } })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Field, { label: "\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u044C" },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.Checkbox, { label: "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0439 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u0438\u0441\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F", checked: form.requiresControl, onChange: function (v) { return setForm((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, form), { requiresControl: v })); } }))))),
deleting && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ui__WEBPACK_IMPORTED_MODULE_2__.ConfirmDialog, { title: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043C\u0430\u0440\u0448\u0440\u0443\u0442?", text: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442 #".concat(deleting.id, " \u0438 \u0432\u0441\u0435 \u0435\u0433\u043E \u0448\u0430\u0433\u0438 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u044B \u0431\u0435\u0437\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u043D\u043E."), confirmLabel: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C", busy: deleteBusy, onCancel: function () { return setDeleting(undefined); }, onConfirm: confirmDelete }))));
};
function shortGuid(guid) {
return guid.length > 8 ? "".concat(guid.slice(0, 8), "\u2026") : guid;
}
/***/ }),
/***/ 394:
/*!***********************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Alert.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Alert: () => (/* binding */ Alert)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Alert_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Alert.module.scss */ 922);
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Icon */ 79);
var ICONS = { warn: 'warning', ok: 'check', err: 'close' };
var Alert = function (_a) {
var kind = _a.kind, children = _a.children;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "".concat(_Alert_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].alert, " ").concat(_Alert_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"][kind]) },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Icon__WEBPACK_IMPORTED_MODULE_2__.Icon, { name: ICONS[kind], size: "sm" }),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, children)));
};
/***/ }),
/***/ 543:
/*!***********************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Badge.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Badge: () => (/* binding */ Badge),
/* harmony export */ CountBadge: () => (/* binding */ CountBadge)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Badge_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Badge.module.scss */ 793);
var Badge = function (_a) {
var _b = _a.variant, variant = _b === void 0 ? 'neutral' : _b, children = _a.children;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: "".concat(_Badge_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].badge, " ").concat(_Badge_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"][variant]) }, children));
};
var CountBadge = function (_a) {
var count = _a.count;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: _Badge_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].count }, count));
};
/***/ }),
/***/ 330:
/*!************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Button.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Button: () => (/* binding */ Button),
/* harmony export */ IconButton: () => (/* binding */ IconButton)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ 196);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Button_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Button.module.scss */ 926);
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Icon */ 79);
var Button = function (_a) {
var _b = _a.variant, variant = _b === void 0 ? 'secondary' : _b, _c = _a.size, size = _c === void 0 ? 'md' : _c, icon = _a.icon, className = _a.className, children = _a.children, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__rest)(_a, ["variant", "size", "icon", "className", "children"]);
var classes = [_Button_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].btn, _Button_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"][variant], size === 'sm' ? _Button_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].sm : '', className]
.filter(Boolean)
.join(' ');
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("button", (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({ type: "button", className: classes }, rest),
icon && react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Icon__WEBPACK_IMPORTED_MODULE_2__.Icon, { name: icon, size: "sm" }),
children));
};
var IconButton = function (_a) {
var icon = _a.icon, danger = _a.danger, label = _a.label, className = _a.className, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__rest)(_a, ["icon", "danger", "label", "className"]);
var classes = [_Button_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].iconButton, danger ? _Button_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].danger : '', className].filter(Boolean).join(' ');
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("button", (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({ type: "button", className: classes, "aria-label": label, title: label }, rest),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Icon__WEBPACK_IMPORTED_MODULE_2__.Icon, { name: icon, size: "sm" })));
};
/***/ }),
/***/ 644:
/*!**********************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Card.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ CardGrid: () => (/* binding */ CardGrid),
/* harmony export */ NavCard: () => (/* binding */ NavCard),
/* harmony export */ StatCard: () => (/* binding */ StatCard),
/* harmony export */ StatRow: () => (/* binding */ StatRow)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Card.module.scss */ 872);
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Icon */ 79);
var CardGrid = function (_a) {
var children = _a.children;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].grid }, children));
};
var NavCard = function (_a) {
var icon = _a.icon, title = _a.title, description = _a.description, onClick = _a.onClick;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("a", { className: _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].navCard, onClick: function (e) { e.preventDefault(); onClick(); }, href: "#" },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].navIcon },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Icon__WEBPACK_IMPORTED_MODULE_2__.Icon, { name: icon })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].navTitle }, title),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].navDesc }, description)),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].navArrow },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Icon__WEBPACK_IMPORTED_MODULE_2__.Icon, { name: "chevron-right", size: "sm" }))));
};
var StatRow = function (_a) {
var children = _a.children;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].statRow }, children));
};
var StatCard = function (_a) {
var label = _a.label, value = _a.value;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].statCard },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].statLabel }, label),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Card_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].statValue }, value)));
};
/***/ }),
/***/ 132:
/*!***************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/DataTable.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ ActionsCell: () => (/* binding */ ActionsCell),
/* harmony export */ DataTable: () => (/* binding */ DataTable),
/* harmony export */ PrimaryCell: () => (/* binding */ PrimaryCell)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _DataTable_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DataTable.module.scss */ 264);
function DataTable(_a) {
var columns = _a.columns, rows = _a.rows, keyOf = _a.keyOf, emptyMessage = _a.emptyMessage;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _DataTable_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].wrap },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _DataTable_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].scroll },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("table", { className: _DataTable_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].table },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("thead", null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement("tr", null, columns.map(function (col) {
var _a;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("th", { key: col.key, style: { width: col.width, textAlign: (_a = col.align) !== null && _a !== void 0 ? _a : 'left' } }, col.header));
}))),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("tbody", null, rows.map(function (row) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("tr", { key: keyOf(row) }, columns.map(function (col) {
var _a;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("td", { key: col.key, style: { textAlign: (_a = col.align) !== null && _a !== void 0 ? _a : 'left' } }, col.render(row)));
}))); })))),
rows.length === 0 && react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _DataTable_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].empty }, emptyMessage)));
}
var PrimaryCell = function (_a) {
var children = _a.children;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: _DataTable_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].primaryCell }, children));
};
var ActionsCell = function (_a) {
var children = _a.children;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: _DataTable_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].actionsCell }, children));
};
/***/ }),
/***/ 954:
/*!***************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/FormField.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Checkbox: () => (/* binding */ Checkbox),
/* harmony export */ Field: () => (/* binding */ Field),
/* harmony export */ FormGrid: () => (/* binding */ FormGrid),
/* harmony export */ RadioGroup: () => (/* binding */ RadioGroup),
/* harmony export */ Select: () => (/* binding */ Select),
/* harmony export */ TextInput: () => (/* binding */ TextInput),
/* harmony export */ Textarea: () => (/* binding */ Textarea)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ 196);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormField.module.scss */ 550);
var FormGrid = function (_a) {
var children = _a.children;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].grid }, children));
};
var Field = function (_a) {
var label = _a.label, required = _a.required, full = _a.full, error = _a.error, hint = _a.hint, children = _a.children;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "".concat(_FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].field, " ").concat(full ? _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].full : '') },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].label },
label,
" ",
required && react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].req }, "*")),
children,
error && react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].errorText }, error),
!error && hint && react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].hint }, hint)));
};
var TextInput = function (props) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("input", (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, props, { className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].input }))); };
var Textarea = function (props) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("textarea", (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, props, { className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].textarea }))); };
var Select = function (_a) {
var options = _a.options, placeholder = _a.placeholder, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__rest)(_a, ["options", "placeholder"]);
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("select", (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, rest, { className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].select }),
placeholder && react__WEBPACK_IMPORTED_MODULE_0__.createElement("option", { value: "" }, placeholder),
options.map(function (opt) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("option", { key: opt.value, value: opt.value }, opt.label)); })));
};
var Checkbox = function (_a) {
var label = _a.label, checked = _a.checked, onChange = _a.onChange, disabled = _a.disabled;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("label", { className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].checkboxRow },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("input", { type: "checkbox", className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].checkbox, checked: checked, disabled: disabled, onChange: function (e) { return onChange(e.target.checked); } }),
label));
};
function RadioGroup(_a) {
var name = _a.name, value = _a.value, options = _a.options, onChange = _a.onChange;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].radioGroup }, options.map(function (opt) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("label", { key: opt.value, className: "".concat(_FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].radioRow, " ").concat(opt.disabled ? _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].disabled : ''), title: opt.disabled ? opt.disabledHint : undefined },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("input", { type: "radio", className: _FormField_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].radio, name: name, checked: value === opt.value, disabled: opt.disabled, onChange: function () { return onChange(opt.value); } }),
opt.label)); })));
}
/***/ }),
/***/ 79:
/*!**********************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Icon.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Icon: () => (/* binding */ Icon)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ 196);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
var spriteInjected = false;
var SPRITE_SVG = "\n<symbol id=\"i-route\" viewBox=\"0 0 24 24\"><circle cx=\"6\" cy=\"6\" r=\"3\"/><circle cx=\"18\" cy=\"18\" r=\"3\"/><path d=\"M9 6h7a3 3 0 0 1 3 3v0a3 3 0 0 1-3 3H8a3 3 0 0 0-3 3v0a3 3 0 0 0 3 3h7\"/></symbol>\n<symbol id=\"i-clipboard\" viewBox=\"0 0 24 24\"><path d=\"M9 3h6v2a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z\"/><rect x=\"5\" y=\"5\" width=\"14\" height=\"16\" rx=\"2\"/><path d=\"M9 12h6M9 16h4\"/></symbol>\n<symbol id=\"i-flag-check\" viewBox=\"0 0 24 24\"><path d=\"M4 3v18\"/><path d=\"M4 4h13l-2 4 2 4H4\"/></symbol>\n<symbol id=\"i-people\" viewBox=\"0 0 24 24\"><circle cx=\"9\" cy=\"7\" r=\"3\"/><path d=\"M3 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2\"/><circle cx=\"17\" cy=\"8\" r=\"2.5\"/><path d=\"M17 13.5a3.5 3.5 0 0 1 3.5 3.5v1\"/></symbol>\n<symbol id=\"i-warning\" viewBox=\"0 0 24 24\"><path d=\"M12 2 1 21h22z\" stroke-linejoin=\"round\"/><path d=\"M12 9v5M12 17h.01\"/></symbol>\n<symbol id=\"i-check\" viewBox=\"0 0 24 24\"><path d=\"M5 12l5 5L20 7\"/></symbol>\n<symbol id=\"i-close\" viewBox=\"0 0 24 24\"><path d=\"M18 6 6 18M6 6l12 12\"/></symbol>\n<symbol id=\"i-plus\" viewBox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"/></symbol>\n<symbol id=\"i-edit\" viewBox=\"0 0 24 24\"><path d=\"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4z\"/></symbol>\n<symbol id=\"i-trash\" viewBox=\"0 0 24 24\"><path d=\"M4 7h16M10 11v6M14 11v6\"/><path d=\"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-12\"/><path d=\"M9 7V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3\"/></symbol>\n<symbol id=\"i-more\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"5\" r=\"1.5\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"12\" cy=\"19\" r=\"1.5\" fill=\"currentColor\" stroke=\"none\"/></symbol>\n<symbol id=\"i-chevron-right\" viewBox=\"0 0 24 24\"><path d=\"m9 6 6 6-6 6\"/></symbol>\n<symbol id=\"i-chevron-down\" viewBox=\"0 0 24 24\"><path d=\"m6 9 6 6 6-6\"/></symbol>\n<symbol id=\"i-chevron-left\" viewBox=\"0 0 24 24\"><path d=\"m15 6-6 6 6 6\"/></symbol>\n<symbol id=\"i-arrow-left\" viewBox=\"0 0 24 24\"><path d=\"M19 12H5m0 0 5-5m-5 5 5 5\"/></symbol>\n<symbol id=\"i-search\" viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"7\"/><path d=\"m21 21-4.35-4.35\"/></symbol>\n<symbol id=\"i-sort\" viewBox=\"0 0 24 24\"><path d=\"M7 3v18M7 3l-4 4m4-4 4 4M17 21V3m0 18-4-4m4 4 4-4\"/></symbol>\n<symbol id=\"i-mail\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"/><path d=\"m4 6 8 7 8-7\"/></symbol>\n<symbol id=\"i-briefcase\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"2\"/><path d=\"M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"/><path d=\"M3 12h18\"/></symbol>\n<symbol id=\"i-flag\" viewBox=\"0 0 24 24\"><path d=\"M5 3v18\"/><path d=\"M5 4h13l-3 4 3 4H5\"/></symbol>\n<symbol id=\"i-crown\" viewBox=\"0 0 24 24\"><path d=\"m3 8 4 3 5-6 5 6 4-3-2 11H5z\"/></symbol>\n<symbol id=\"i-refresh\" viewBox=\"0 0 24 24\"><path d=\"M21 12a9 9 0 1 1-3-6.7\"/><path d=\"M21 3v6h-6\"/></symbol>\n";
function ensureSpriteInjected() {
if (spriteInjected || typeof document === 'undefined')
return;
var holder = document.createElement('div');
holder.style.display = 'none';
holder.innerHTML = "<svg xmlns=\"http://www.w3.org/2000/svg\">".concat(SPRITE_SVG, "</svg>");
document.body.appendChild(holder);
spriteInjected = true;
}
var SIZE_PX = { sm: 16, md: 20, lg: 24 };
var Icon = function (_a) {
var name = _a.name, _b = _a.size, size = _b === void 0 ? 'md' : _b, className = _a.className, style = _a.style;
react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
ensureSpriteInjected();
}, []);
var px = SIZE_PX[size];
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", { width: px, height: px, className: className, style: (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({ flexShrink: 0, fill: 'none', stroke: 'currentColor', strokeWidth: 1.5, strokeLinecap: 'round', strokeLinejoin: 'round' }, style) },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("use", { href: "#i-".concat(name) })));
};
/***/ }),
/***/ 153:
/*!***********************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/Modal.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ ConfirmDialog: () => (/* binding */ ConfirmDialog),
/* harmony export */ Modal: () => (/* binding */ Modal)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Modal.module.scss */ 595);
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Button */ 330);
var Modal = function (_a) {
var title = _a.title, onClose = _a.onClose, footer = _a.footer, children = _a.children;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].overlay, onClick: function (e) { if (e.target === e.currentTarget)
onClose(); } },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].box },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].header },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].title }, title),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Button__WEBPACK_IMPORTED_MODULE_2__.IconButton, { icon: "close", label: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C", onClick: onClose })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].body }, children),
footer && react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].footer }, footer))));
};
var ConfirmDialog = function (_a) {
var title = _a.title, text = _a.text, confirmLabel = _a.confirmLabel, onConfirm = _a.onConfirm, onCancel = _a.onCancel, busy = _a.busy;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].overlay, onClick: function (e) { if (e.target === e.currentTarget)
onCancel(); } },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "".concat(_Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].box, " ").concat(_Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].narrow) },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].title }, title),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("p", { className: _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].text }, text),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _Modal_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].narrowFooter },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Button__WEBPACK_IMPORTED_MODULE_2__.Button, { variant: "secondary", onClick: onCancel, disabled: busy }, "\u041E\u0442\u043C\u0435\u043D\u0430"),
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Button__WEBPACK_IMPORTED_MODULE_2__.Button, { variant: "danger", icon: "trash", onClick: onConfirm, disabled: busy }, confirmLabel)))));
};
/***/ }),
/***/ 307:
/*!****************************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/PageChrome.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Breadcrumbs: () => (/* binding */ Breadcrumbs),
/* harmony export */ PageHeader: () => (/* binding */ PageHeader)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _PageChrome_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PageChrome.module.scss */ 521);
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Icon */ 79);
var Breadcrumbs = function (_a) {
var items = _a.items;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _PageChrome_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].bread }, items.map(function (item, i) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, { key: i },
i > 0 && react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: _PageChrome_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].sep }, "\u25C6"),
item.onClick ? (react__WEBPACK_IMPORTED_MODULE_0__.createElement("button", { className: _PageChrome_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].breadLink, onClick: item.onClick }, item.label)) : (react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, item.label)))); })));
};
var PageHeader = function (_a) {
var icon = _a.icon, subtitle = _a.subtitle, title = _a.title, actions = _a.actions;
return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _PageChrome_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].ph },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _PageChrome_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].phLeft },
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _PageChrome_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].phIcon },
react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Icon__WEBPACK_IMPORTED_MODULE_2__.Icon, { name: icon })),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", null,
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _PageChrome_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].phSub }, subtitle),
react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _PageChrome_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].phTitle }, title))),
actions && react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _PageChrome_module_scss__WEBPACK_IMPORTED_MODULE_1__["default"].phRight }, actions)));
};
/***/ }),
/***/ 536:
/*!***********************************************************!*\
!*** ./lib/webparts/approvalAdmin/components/ui/index.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ ActionsCell: () => (/* reexport safe */ _DataTable__WEBPACK_IMPORTED_MODULE_6__.ActionsCell),
/* harmony export */ Alert: () => (/* reexport safe */ _Alert__WEBPACK_IMPORTED_MODULE_3__.Alert),
/* harmony export */ Badge: () => (/* reexport safe */ _Badge__WEBPACK_IMPORTED_MODULE_2__.Badge),
/* harmony export */ Breadcrumbs: () => (/* reexport safe */ _PageChrome__WEBPACK_IMPORTED_MODULE_4__.Breadcrumbs),
/* harmony export */ Button: () => (/* reexport safe */ _Button__WEBPACK_IMPORTED_MODULE_1__.Button),
/* harmony export */ CardGrid: () => (/* reexport safe */ _Card__WEBPACK_IMPORTED_MODULE_5__.CardGrid),
/* harmony export */ Checkbox: () => (/* reexport safe */ _FormField__WEBPACK_IMPORTED_MODULE_8__.Checkbox),
/* harmony export */ ConfirmDialog: () => (/* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_7__.ConfirmDialog),
/* harmony export */ CountBadge: () => (/* reexport safe */ _Badge__WEBPACK_IMPORTED_MODULE_2__.CountBadge),
/* harmony export */ DataTable: () => (/* reexport safe */ _DataTable__WEBPACK_IMPORTED_MODULE_6__.DataTable),
/* harmony export */ Field: () => (/* reexport safe */ _FormField__WEBPACK_IMPORTED_MODULE_8__.Field),
/* harmony export */ FormGrid: () => (/* reexport safe */ _FormField__WEBPACK_IMPORTED_MODULE_8__.FormGrid),
/* harmony export */ Icon: () => (/* reexport safe */ _Icon__WEBPACK_IMPORTED_MODULE_0__.Icon),
/* harmony export */ IconButton: () => (/* reexport safe */ _Button__WEBPACK_IMPORTED_MODULE_1__.IconButton),
/* harmony export */ Modal: () => (/* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_7__.Modal),
/* harmony export */ NavCard: () => (/* reexport safe */ _Card__WEBPACK_IMPORTED_MODULE_5__.NavCard),
/* harmony export */ PageHeader: () => (/* reexport safe */ _PageChrome__WEBPACK_IMPORTED_MODULE_4__.PageHeader),
/* harmony export */ PrimaryCell: () => (/* reexport safe */ _DataTable__WEBPACK_IMPORTED_MODULE_6__.PrimaryCell),
/* harmony export */ RadioGroup: () => (/* reexport safe */ _FormField__WEBPACK_IMPORTED_MODULE_8__.RadioGroup),
/* harmony export */ Select: () => (/* reexport safe */ _FormField__WEBPACK_IMPORTED_MODULE_8__.Select),
/* harmony export */ StatCard: () => (/* reexport safe */ _Card__WEBPACK_IMPORTED_MODULE_5__.StatCard),
/* harmony export */ StatRow: () => (/* reexport safe */ _Card__WEBPACK_IMPORTED_MODULE_5__.StatRow),
/* harmony export */ TextInput: () => (/* reexport safe */ _FormField__WEBPACK_IMPORTED_MODULE_8__.TextInput),
/* harmony export */ Textarea: () => (/* reexport safe */ _FormField__WEBPACK_IMPORTED_MODULE_8__.Textarea)
/* harmony export */ });
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Icon */ 79);
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Button */ 330);
/* harmony import */ var _Badge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Badge */ 543);
/* harmony import */ var _Alert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Alert */ 394);
/* harmony import */ var _PageChrome__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PageChrome */ 307);
/* harmony import */ var _Card__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Card */ 644);
/* harmony import */ var _DataTable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./DataTable */ 132);
/* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Modal */ 153);
/* harmony import */ var _FormField__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./FormField */ 954);
/***/ }),
/***/ 907:
/*!****************************************************!*\
!*** ./lib/webparts/approvalAdmin/models/index.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ HeadType: () => (/* binding */ HeadType),
/* harmony export */ ProjectRole: () => (/* binding */ ProjectRole),
/* harmony export */ RouteStepStatus: () => (/* binding */ RouteStepStatus),
/* harmony export */ RouteType: () => (/* binding */ RouteType),
/* harmony export */ detectExecutorKind: () => (/* binding */ detectExecutorKind),
/* harmony export */ headTypeLabels: () => (/* binding */ headTypeLabels),
/* harmony export */ projectRoleLabels: () => (/* binding */ projectRoleLabels),
/* harmony export */ routeStepStatusLabels: () => (/* binding */ routeStepStatusLabels),
/* harmony export */ routeTypeLabels: () => (/* binding */ routeTypeLabels)
/* harmony export */ });
// Зеркало DTO и enum'ов backend (Tnsu.ApprovalRoute.Api / Application / Domain).
// Имена и форма типов должны 1:1 соответствовать C#-стороне — см.
// backend/src/Tnsu.ApprovalRoute.Domain/Enums/*.cs и
// backend/src/Tnsu.ApprovalRoute.Application/**/*.cs
var _a, _b, _c, _d;
var RouteType;
(function (RouteType) {
RouteType["None"] = "None";
RouteType["Parallel"] = "Parallel";
RouteType["Sequential"] = "Sequential";
})(RouteType || (RouteType = {}));
var RouteStepStatus;
(function (RouteStepStatus) {
RouteStepStatus["None"] = "None";
RouteStepStatus["Approval"] = "Approval";
RouteStepStatus["Execution"] = "Execution";
})(RouteStepStatus || (RouteStepStatus = {}));
var ProjectRole;
(function (ProjectRole) {
ProjectRole["None"] = "None";
ProjectRole["ProjectManager"] = "ProjectManager";
ProjectRole["Planner"] = "Planner";
ProjectRole["ManagerHSE"] = "ManagerHSE";
ProjectRole["Security"] = "Security";
})(ProjectRole || (ProjectRole = {}));
var HeadType;
(function (HeadType) {
HeadType["None"] = "None";
HeadType["Chief"] = "Chief";
HeadType["DirectionHead"] = "DirectionHead";
HeadType["DirectorTansu"] = "DirectorTansu";
})(HeadType || (HeadType = {}));
var routeTypeLabels = (_a = {},
_a[RouteType.None] = 'Не задан',
_a[RouteType.Parallel] = 'Параллельный',
_a[RouteType.Sequential] = 'Последовательный',
_a);
var routeStepStatusLabels = (_b = {},
_b[RouteStepStatus.None] = 'Не задан',
_b[RouteStepStatus.Approval] = 'Согласование',
_b[RouteStepStatus.Execution] = 'Исполнение',
_b);
var projectRoleLabels = (_c = {},
_c[ProjectRole.None] = '—',
_c[ProjectRole.ProjectManager] = 'Руководитель проекта',
_c[ProjectRole.Planner] = 'Планировщик',
_c[ProjectRole.ManagerHSE] = 'Менеджер HSE',
_c[ProjectRole.Security] = 'Безопасность',
_c);
var headTypeLabels = (_d = {},
_d[HeadType.None] = '—',
_d[HeadType.Chief] = 'Непосредственный руководитель',
_d[HeadType.DirectionHead] = 'Руководитель направления',
_d[HeadType.DirectorTansu] = 'Директор Tansu',
_d);
function detectExecutorKind(step) {
if (step.executorEmail)
return 'email';
if (step.position)
return 'position';
if (step.projectRole && step.projectRole !== ProjectRole.None)
return 'projectRole';
return 'headType';
}
/***/ }),
/***/ 905:
/*!****************************************************!*\
!*** ./lib/webparts/approvalAdmin/services/api.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ ApprovalRouteApi: () => (/* binding */ ApprovalRouteApi)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ 196);
// Тонкий 1:1 фасад над контроллерами бэкенда:
// backend/src/Tnsu.ApprovalRoute.Api/Controllers/{RequestTypes,TemplateRoutes,TemplateRouteSteps}Controller.cs
var ApprovalRouteApi = /** @class */ (function () {
function ApprovalRouteApi(http) {
var _this = this;
this.http = http;
this.requestTypes = {
list: function () {
return _this.http.get('/api/request-types');
},
get: function (id) {
return _this.http.get("/api/request-types/".concat(id));
},
create: function (body) {
return _this.http.post('/api/request-types', body);
},
update: function (id, body) {
return _this.http.put("/api/request-types/".concat(id), body);
},
patch: function (id, body) {
return _this.http.patch("/api/request-types/".concat(id), body);
},
remove: function (id) {
return _this.http.delete("/api/request-types/".concat(id));
}
};
this.templateRoutes = {
list: function (requestTypeId) {
return _this.http.get('/api/template-routes', { requestTypeId: requestTypeId });
},
get: function (id) {
return _this.http.get("/api/template-routes/".concat(id));
},
create: function (body) {
return _this.http.post('/api/template-routes', body);
},
update: function (id, body) {
return _this.http.put("/api/template-routes/".concat(id), body);
},
patch: function (id, body) {
return _this.http.patch("/api/template-routes/".concat(id), body);
},
remove: function (id) {
return _this.http.delete("/api/template-routes/".concat(id));
},
resolve: function (query) {
return _this.http.get('/api/template-routes/resolve', (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__assign)({}, query));
}
};
this.templateRouteSteps = {
list: function (routeId) {
return _this.http.get("/api/template-routes/".concat(routeId, "/steps"));
},
get: function (routeId, id) {
return _this.http.get("/api/template-routes/".concat(routeId, "/steps/").concat(id));
},
create: function (routeId, body) {
return _this.http.post("/api/template-routes/".concat(routeId, "/steps"), body);
},
update: function (routeId, id, body) {
return _this.http.put("/api/template-routes/".concat(routeId, "/steps/").concat(id), body);
},
patch: function (routeId, id, body) {
return _this.http.patch("/api/template-routes/".concat(routeId, "/steps/").concat(id), body);
},
remove: function (routeId, id) {
return _this.http.delete("/api/template-routes/".concat(routeId, "/steps/").concat(id));
}
};
}
return ApprovalRouteApi;
}());
/***/ }),
/***/ 10:
/*!***********************************************************!*\
!*** ./lib/webparts/approvalAdmin/services/httpClient.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ AadApiHttpClient: () => (/* binding */ AadApiHttpClient),
/* harmony export */ ApiClientError: () => (/* binding */ ApiClientError),
/* harmony export */ DevApiHttpClient: () => (/* binding */ DevApiHttpClient)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ 196);
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @microsoft/sp-http */ 909);
/* harmony import */ var _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_http__WEBPACK_IMPORTED_MODULE_0__);
var ApiClientError = /** @class */ (function (_super) {
(0,tslib__WEBPACK_IMPORTED_MODULE_1__.__extends)(ApiClientError, _super);
function ApiClientError(status, messages) {
var _this = _super.call(this, messages.join('; ') || "HTTP ".concat(status)) || this;
_this.status = status;
_this.messages = messages;
return _this;
}
return ApiClientError;
}(Error));
function buildUrl(baseUrl, path, query) {
var normalizedBase = baseUrl.endsWith('/') ? baseUrl : "".concat(baseUrl, "/");
var url = new URL(path.replace(/^\//, ''), normalizedBase);
if (query) {
Object.keys(query).forEach(function (key) {
var value = query[key];
if (value !== undefined && value !== null && value !== '') {
url.searchParams.set(key, String(value));
}
});
}
return url.toString();
}
function parseResponse(response) {
return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function () {
var text, json, messages;
var _a, _b;
return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__generator)(this, function (_c) {
switch (_c.label) {
case 0:
if (response.status === 204) {
return [2 /*return*/, undefined];
}
return [4 /*yield*/, response.text()];
case 1:
text = _c.sent();
try {
json = text ? JSON.parse(text) : undefined;
}
catch (_d) {
// Ответ пришёл не в конверте ApiResponse/ApiError (например, "сырая" страница
// необработанного исключения ASP.NET Core или ошибка от прокси перед API).
if (!response.ok) {
throw new ApiClientError(response.status, [text || "HTTP ".concat(response.status)]);
}
throw new ApiClientError(response.status, ['Сервер вернул не-JSON ответ.']);
}
if (!response.ok) {
messages = (_a = json === null || json === void 0 ? void 0 : json.messages) !== null && _a !== void 0 ? _a : ["HTTP ".concat(response.status)];
throw new ApiClientError(response.status, messages);
}
return [2 /*return*/, (_b = json === null || json === void 0 ? void 0 : json.data) !== null && _b !== void 0 ? _b : undefined];
}
});
});
}
/**
* Прод/staging: вызовы через AAD-защищённое SPFx-подключение (AadHttpClient).
* Требует webApiPermissionRequests в package-solution.json и админского
* согласия в SharePoint admin center → Advanced → API access.
*/
var AadApiHttpClient = /** @class */ (function () {
function AadApiHttpClient(client, baseUrl) {
this.client = client;
this.baseUrl = baseUrl;
}
AadApiHttpClient.prototype.get = function (path, query) {
var url = buildUrl(this.baseUrl, path, query);
return this.client
.get(url, _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_0__.AadHttpClient.configurations.v1)
.then(function (r) { return parseResponse(r); });
};
AadApiHttpClient.prototype.post = function (path, body) {
return this.send('POST', path, body);
};
AadApiHttpClient.prototype.put = function (path, body) {
return this.send('PUT', path, body);
};
AadApiHttpClient.prototype.patch = function (path, body) {
return this.send('PATCH', path, body);
};
AadApiHttpClient.prototype.delete = function (path) {
return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function () {
return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__generator)(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.send('DELETE', path)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
AadApiHttpClient.prototype.send = function (method, path, body) {
var url = buildUrl(this.baseUrl, path);
return this.client
.fetch(url, _microsoft_sp_http__WEBPACK_IMPORTED_MODULE_0__.AadHttpClient.configurations.v1, {
method: method,
headers: { 'Content-Type': 'application/json' },
body: body !== undefined ? JSON.stringify(body) : undefined
})
.then(function (r) { return parseResponse(r); });
};
return AadApiHttpClient;
}());
/**
* Локальная отладка: обычный fetch с заголовком X-Dev-User-Email.
* Работает только если бэкенд поднят с пустыми Entra:TenantId/Entra:Audience
* (см. backend/.../Auth/AuthSetup.cs — тогда включается DevAuthHandler).
*/
var DevApiHttpClient = /** @class */ (function () {
function DevApiHttpClient(baseUrl, devUserEmail) {
this.baseUrl = baseUrl;
this.devUserEmail = devUserEmail;
}
DevApiHttpClient.prototype.get = function (path, query) {
return this.send('GET', path, undefined, query);
};
DevApiHttpClient.prototype.post = function (path, body) {
return this.send('POST', path, body);
};
DevApiHttpClient.prototype.put = function (path, body) {
return this.send('PUT', path, body);
};
DevApiHttpClient.prototype.patch = function (path, body) {
return this.send('PATCH', path, body);
};
DevApiHttpClient.prototype.delete = function (path) {
return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function () {
return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__generator)(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.send('DELETE', path)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
DevApiHttpClient.prototype.send = function (method, path, body, query) {
return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__awaiter)(this, void 0, void 0, function () {
var url, response;
return (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__generator)(this, function (_a) {
switch (_a.label) {
case 0:
url = buildUrl(this.baseUrl, path, query);
return [4 /*yield*/, fetch(url, {
method: method,
headers: {
'Content-Type': 'application/json',
'X-Dev-User-Email': this.devUserEmail
},
body: body !== undefined ? JSON.stringify(body) : undefined
})];
case 1:
response = _a.sent();
return [2 /*return*/, parseResponse(response)];
}
});
});
};
return DevApiHttpClient;
}());
/***/ }),
/***/ 323:
/*!***********************************************************************************************************!*\
!*** ./node_modules/@microsoft/sp-css-loader/node_modules/@microsoft/load-themed-styles/lib-es6/index.js ***!
\***********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ clearStyles: () => (/* binding */ clearStyles),
/* harmony export */ configureLoadStyles: () => (/* binding */ configureLoadStyles),
/* harmony export */ configureRunMode: () => (/* binding */ configureRunMode),
/* harmony export */ detokenize: () => (/* binding */ detokenize),
/* harmony export */ flush: () => (/* binding */ flush),
/* harmony export */ loadStyles: () => (/* binding */ loadStyles),
/* harmony export */ loadTheme: () => (/* binding */ loadTheme),
/* harmony export */ splitStyles: () => (/* binding */ splitStyles)
/* harmony export */ });
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
// See LICENSE in the project root for license information.
var __assign = (undefined && undefined.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
// Store the theming state in __themeState__ global scope for reuse in the case of duplicate
// load-themed-styles hosted on the page.
var _root = typeof window === 'undefined' ? __webpack_require__.g : window; // eslint-disable-line @typescript-eslint/no-explicit-any
// Nonce string to inject into script tag if one provided. This is used in CSP (Content Security Policy).
var _styleNonce = _root && _root.CSPSettings && _root.CSPSettings.nonce;
var _themeState = initializeThemeState();
/**
* Matches theming tokens. For example, "[theme: themeSlotName, default: #FFF]" (including the quotes).
*/
var _themeTokenRegex = /[\'\"]\[theme:\s*(\w+)\s*(?:\,\s*default:\s*([\\"\']?[\.\,\(\)\#\-\s\w]*[\.\,\(\)\#\-\w][\"\']?))?\s*\][\'\"]/g;
var now = function () {
return typeof performance !== 'undefined' && !!performance.now ? performance.now() : Date.now();
};
function measure(func) {
var start = now();
func();
var end = now();
_themeState.perf.duration += end - start;
}
/**
* initialize global state object
*/
function initializeThemeState() {
var state = _root.__themeState__ || {
theme: undefined,
lastStyleElement: undefined,
registeredStyles: []
};
if (!state.runState) {
state = __assign(__assign({}, state), { perf: {
count: 0,
duration: 0
}, runState: {
flushTimer: 0,
mode: 0 /* Mode.sync */,
buffer: []
} });
}
if (!state.registeredThemableStyles) {
state = __assign(__assign({}, state), { registeredThemableStyles: [] });
}
_root.__themeState__ = state;
return state;
}
/**
* Loads a set of style text. If it is registered too early, we will register it when the window.load
* event is fired.
* @param {string | ThemableArray} styles Themable style text to register.
* @param {boolean} loadAsync When true, always load styles in async mode, irrespective of current sync mode.
*/
function loadStyles(styles, loadAsync) {
if (loadAsync === void 0) { loadAsync = false; }
measure(function () {
var styleParts = Array.isArray(styles) ? styles : splitStyles(styles);
var _a = _themeState.runState, mode = _a.mode, buffer = _a.buffer, flushTimer = _a.flushTimer;
if (loadAsync || mode === 1 /* Mode.async */) {
buffer.push(styleParts);
if (!flushTimer) {
_themeState.runState.flushTimer = asyncLoadStyles();
}
}
else {
applyThemableStyles(styleParts);
}
});
}
/**
* Allows for customizable loadStyles logic. e.g. for server side rendering application
* @param {(processedStyles: string, rawStyles?: string | ThemableArray) => void}
* a loadStyles callback that gets called when styles are loaded or reloaded
*/
function configureLoadStyles(loadStylesFn) {
_themeState.loadStyles = loadStylesFn;
}
/**
* Configure run mode of load-themable-styles
* @param mode load-themable-styles run mode, async or sync
*/
function configureRunMode(mode) {
_themeState.runState.mode = mode;
}
/**
* external code can call flush to synchronously force processing of currently buffered styles
*/
function flush() {
measure(function () {
var styleArrays = _themeState.runState.buffer.slice();
_themeState.runState.buffer = [];
var mergedStyleArray = [].concat.apply([], styleArrays);
if (mergedStyleArray.length > 0) {
applyThemableStyles(mergedStyleArray);
}
});
}
/**
* register async loadStyles
*/
function asyncLoadStyles() {
return setTimeout(function () {
_themeState.runState.flushTimer = 0;
flush();
}, 0);
}
/**
* Loads a set of style text. If it is registered too early, we will register it when the window.load event
* is fired.
* @param {string} styleText Style to register.
* @param {IStyleRecord} styleRecord Existing style record to re-apply.
*/
function applyThemableStyles(stylesArray, styleRecord) {
if (_themeState.loadStyles) {
_themeState.loadStyles(resolveThemableArray(stylesArray).styleString, stylesArray);
}
else {
registerStyles(stylesArray);
}
}
/**
* Registers a set theme tokens to find and replace. If styles were already registered, they will be
* replaced.
* @param {theme} theme JSON object of theme tokens to values.
*/
function loadTheme(theme) {
_themeState.theme = theme;
// reload styles.
reloadStyles();
}
/**
* Clear already registered style elements and style records in theme_State object
* @param option - specify which group of registered styles should be cleared.
* Default to be both themable and non-themable styles will be cleared
*/
function clearStyles(option) {
if (option === void 0) { option = 3 /* ClearStyleOptions.all */; }
if (option === 3 /* ClearStyleOptions.all */ || option === 2 /* ClearStyleOptions.onlyNonThemable */) {
clearStylesInternal(_themeState.registeredStyles);
_themeState.registeredStyles = [];
}
if (option === 3 /* ClearStyleOptions.all */ || option === 1 /* ClearStyleOptions.onlyThemable */) {
clearStylesInternal(_themeState.registeredThemableStyles);
_themeState.registeredThemableStyles = [];
}
}
function clearStylesInternal(records) {
records.forEach(function (styleRecord) {
var styleElement = styleRecord && styleRecord.styleElement;
if (styleElement && styleElement.parentElement) {
styleElement.parentElement.removeChild(styleElement);
}
});
}
/**
* Reloads styles.
*/
function reloadStyles() {
if (_themeState.theme) {
var themableStyles = [];
for (var _i = 0, _a = _themeState.registeredThemableStyles; _i < _a.length; _i++) {
var styleRecord = _a[_i];
themableStyles.push(styleRecord.themableStyle);
}
if (themableStyles.length > 0) {
clearStyles(1 /* ClearStyleOptions.onlyThemable */);
applyThemableStyles([].concat.apply([], themableStyles));
}
}
}
/**
* Find theme tokens and replaces them with provided theme values.
* @param {string} styles Tokenized styles to fix.
*/
function detokenize(styles) {
if (styles) {
styles = resolveThemableArray(splitStyles(styles)).styleString;
}
return styles;
}
/**
* Resolves ThemingInstruction objects in an array and joins the result into a string.
* @param {ThemableArray} splitStyleArray ThemableArray to resolve and join.
*/
function resolveThemableArray(splitStyleArray) {
var theme = _themeState.theme;
var themable = false;
// Resolve the array of theming instructions to an array of strings.
// Then join the array to produce the final CSS string.
var resolvedArray = (splitStyleArray || []).map(function (currentValue) {
var themeSlot = currentValue.theme;
if (themeSlot) {
themable = true;
// A theming annotation. Resolve it.
var themedValue = theme ? theme[themeSlot] : undefined;
var defaultValue = currentValue.defaultValue || 'inherit';
// Warn to console if we hit an unthemed value even when themes are provided, but only if "DEBUG" is true.
// Allow the themedValue to be undefined to explicitly request the default value.
if (theme &&
!themedValue &&
console &&
!(themeSlot in theme) &&
"boolean" !== 'undefined' &&
true) {
console.warn("Theming value not provided for \"".concat(themeSlot, "\". Falling back to \"").concat(defaultValue, "\"."));
}
return themedValue || defaultValue;
}
else {
// A non-themable string. Preserve it.
return currentValue.rawString;
}
});
return {
styleString: resolvedArray.join(''),
themable: themable
};
}
/**
* Split tokenized CSS into an array of strings and theme specification objects
* @param {string} styles Tokenized styles to split.
*/
function splitStyles(styles) {
var result = [];
if (styles) {
var pos = 0; // Current position in styles.
var tokenMatch = void 0;
while ((tokenMatch = _themeTokenRegex.exec(styles))) {
var matchIndex = tokenMatch.index;
if (matchIndex > pos) {
result.push({
rawString: styles.substring(pos, matchIndex)
});
}
result.push({
theme: tokenMatch[1],
defaultValue: tokenMatch[2] // May be undefined
});
// index of the first character after the current match
pos = _themeTokenRegex.lastIndex;
}
// Push the rest of the string after the last match.
result.push({
rawString: styles.substring(pos)
});
}
return result;
}
/**
* Registers a set of style text. If it is registered too early, we will register it when the
* window.load event is fired.
* @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.
* @param {IStyleRecord} styleRecord May specify a style Element to update.
*/
function registerStyles(styleArray) {
if (typeof document === 'undefined') {
return;
}
var head = document.getElementsByTagName('head')[0];
var styleElement = document.createElement('style');
var _a = resolveThemableArray(styleArray), styleString = _a.styleString, themable = _a.themable;
styleElement.setAttribute('data-load-themed-styles', 'true');
if (_styleNonce) {
styleElement.setAttribute('nonce', _styleNonce);
}
styleElement.appendChild(document.createTextNode(styleString));
_themeState.perf.count++;
head.appendChild(styleElement);
var ev = document.createEvent('HTMLEvents');
ev.initEvent('styleinsert', true /* bubbleEvent */, false /* cancelable */);
ev.args = {
newStyle: styleElement
};
document.dispatchEvent(ev);
var record = {
styleElement: styleElement,
themableStyle: styleArray
};
if (themable) {
_themeState.registeredThemableStyles.push(record);
}
else {
_themeState.registeredStyles.push(record);
}
}
/***/ }),
/***/ 196:
/*!*****************************************!*\
!*** ./node_modules/tslib/tslib.es6.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ __assign: () => (/* binding */ __assign),
/* harmony export */ __asyncDelegator: () => (/* binding */ __asyncDelegator),
/* harmony export */ __asyncGenerator: () => (/* binding */ __asyncGenerator),
/* harmony export */ __asyncValues: () => (/* binding */ __asyncValues),
/* harmony export */ __await: () => (/* binding */ __await),
/* harmony export */ __awaiter: () => (/* binding */ __awaiter),
/* harmony export */ __classPrivateFieldGet: () => (/* binding */ __classPrivateFieldGet),
/* harmony export */ __classPrivateFieldSet: () => (/* binding */ __classPrivateFieldSet),
/* harmony export */ __createBinding: () => (/* binding */ __createBinding),
/* harmony export */ __decorate: () => (/* binding */ __decorate),
/* harmony export */ __exportStar: () => (/* binding */ __exportStar),
/* harmony export */ __extends: () => (/* binding */ __extends),
/* harmony export */ __generator: () => (/* binding */ __generator),
/* harmony export */ __importDefault: () => (/* binding */ __importDefault),
/* harmony export */ __importStar: () => (/* binding */ __importStar),
/* harmony export */ __makeTemplateObject: () => (/* binding */ __makeTemplateObject),
/* harmony export */ __metadata: () => (/* binding */ __metadata),
/* harmony export */ __param: () => (/* binding */ __param),
/* harmony export */ __read: () => (/* binding */ __read),
/* harmony export */ __rest: () => (/* binding */ __rest),
/* harmony export */ __spread: () => (/* binding */ __spread),
/* harmony export */ __spreadArray: () => (/* binding */ __spreadArray),
/* harmony export */ __spreadArrays: () => (/* binding */ __spreadArrays),
/* harmony export */ __values: () => (/* binding */ __values)
/* harmony export */ });
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
}
return __assign.apply(this, arguments);
}
function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
}
function __decorate(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
}
function __param(paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
}
function __metadata(metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
}
var __createBinding = Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
});
function __exportStar(m, o) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
}
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
}
/** @deprecated */
function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i]));
return ar;
}
/** @deprecated */
function __spreadArrays() {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
}
function __spreadArray(to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
}
function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}
function __asyncGenerator(thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}
function __asyncDelegator(o) {
var i, p;
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
}
function __asyncValues(o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}
function __makeTemplateObject(cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
var __setModuleDefault = Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
};
function __importStar(mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
}
function __importDefault(mod) {
return (mod && mod.__esModule) ? mod : { default: mod };
}
function __classPrivateFieldGet(receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}
function __classPrivateFieldSet(receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
}
/***/ }),
/***/ 676:
/*!*********************************************!*\
!*** external "@microsoft/sp-core-library" ***!
\*********************************************/
/***/ ((module) => {
module.exports = __WEBPACK_EXTERNAL_MODULE__676__;
/***/ }),
/***/ 909:
/*!*************************************!*\
!*** external "@microsoft/sp-http" ***!
\*************************************/
/***/ ((module) => {
module.exports = __WEBPACK_EXTERNAL_MODULE__909__;
/***/ }),
/***/ 877:
/*!**********************************************!*\
!*** external "@microsoft/sp-property-pane" ***!
\**********************************************/
/***/ ((module) => {
module.exports = __WEBPACK_EXTERNAL_MODULE__877__;
/***/ }),
/***/ 642:
/*!*********************************************!*\
!*** external "@microsoft/sp-webpart-base" ***!
\*********************************************/
/***/ ((module) => {
module.exports = __WEBPACK_EXTERNAL_MODULE__642__;
/***/ }),
/***/ 959:
/*!************************!*\
!*** external "react" ***!
\************************/
/***/ ((module) => {
module.exports = __WEBPACK_EXTERNAL_MODULE__959__;
/***/ }),
/***/ 398:
/*!****************************!*\
!*** external "react-dom" ***!
\****************************/
/***/ ((module) => {
module.exports = __WEBPACK_EXTERNAL_MODULE__398__;
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/global */
/******/ (() => {
/******/ __webpack_require__.g = (function() {
/******/ if (typeof globalThis === 'object') return globalThis;
/******/ try {
/******/ return this || new Function('return this')();
/******/ } catch (e) {
/******/ if (typeof window === 'object') return window;
/******/ }
/******/ })();
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __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 isolated against other modules in the chunk.
(() => {
/*!************************************************************!*\
!*** ./lib/webparts/approvalAdmin/ApprovalAdminWebPart.js ***!
\************************************************************/
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! tslib */ 196);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ 398);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @microsoft/sp-core-library */ 676);
/* harmony import */ var _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _microsoft_sp_property_pane__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @microsoft/sp-property-pane */ 877);
/* harmony import */ var _microsoft_sp_property_pane__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_property_pane__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _microsoft_sp_webpart_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @microsoft/sp-webpart-base */ 642);
/* harmony import */ var _microsoft_sp_webpart_base__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_microsoft_sp_webpart_base__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _components_ApprovalAdmin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/ApprovalAdmin */ 867);
var ApprovalAdminWebPart = /** @class */ (function (_super) {
(0,tslib__WEBPACK_IMPORTED_MODULE_6__.__extends)(ApprovalAdminWebPart, _super);
function ApprovalAdminWebPart() {
return _super !== null && _super.apply(this, arguments) || this;
}
ApprovalAdminWebPart.prototype.render = function () {
var element = react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_ApprovalAdmin__WEBPACK_IMPORTED_MODULE_5__["default"], {
context: this.context,
apiBaseUrl: this.properties.apiBaseUrl,
useDevAuth: this.properties.useDevAuth,
devUserEmail: this.properties.devUserEmail,
aadResourceId: this.properties.aadResourceId
});
react_dom__WEBPACK_IMPORTED_MODULE_1__.render(element, this.domElement);
};
ApprovalAdminWebPart.prototype.onInit = function () {
var _a;
this.properties.apiBaseUrl = this.properties.apiBaseUrl || 'http://localhost:5080';
this.properties.useDevAuth = (_a = this.properties.useDevAuth) !== null && _a !== void 0 ? _a : true;
this.properties.devUserEmail = this.properties.devUserEmail || 'dev@tnsu.kz';
this.properties.aadResourceId = this.properties.aadResourceId || 'api://9232d9e2-9807-4753-808f-07250e5474b0';
return Promise.resolve();
};
ApprovalAdminWebPart.prototype.onDispose = function () {
react_dom__WEBPACK_IMPORTED_MODULE_1__.unmountComponentAtNode(this.domElement);
};
Object.defineProperty(ApprovalAdminWebPart.prototype, "dataVersion", {
get: function () {
return _microsoft_sp_core_library__WEBPACK_IMPORTED_MODULE_2__.Version.parse('1.0');
},
enumerable: false,
configurable: true
});
ApprovalAdminWebPart.prototype.getPropertyPaneConfiguration = function () {
return {
pages: [
{
header: {
description: 'Подключение к Tnsu.ApprovalRoute.Api'
},
groups: [
{
groupName: 'API',
groupFields: [
(0,_microsoft_sp_property_pane__WEBPACK_IMPORTED_MODULE_3__.PropertyPaneTextField)('apiBaseUrl', {
label: 'Api Base Url',
description: 'Например, https://localhost:5443 локально или прод-адрес API.'
}),
(0,_microsoft_sp_property_pane__WEBPACK_IMPORTED_MODULE_3__.PropertyPaneToggle)('useDevAuth', {
label: 'Локальный Dev-режим (без Azure AD)',
onText: 'Вкл. (заголовок X-Dev-User-Email)',
offText: 'Выкл. (AAD-токен через SPFx)'
}),
(0,_microsoft_sp_property_pane__WEBPACK_IMPORTED_MODULE_3__.PropertyPaneTextField)('devUserEmail', {
label: 'Dev: email пользователя',
description: 'Используется только при включённом Dev-режиме.'
}),
(0,_microsoft_sp_property_pane__WEBPACK_IMPORTED_MODULE_3__.PropertyPaneTextField)('aadResourceId', {
label: 'AAD Resource Id (App ID URI)',
description: 'Используется только при выключенном Dev-режиме. Должен совпадать с webApiPermissionRequests в package-solution.json.'
})
]
}
]
}
]
};
};
return ApprovalAdminWebPart;
}(_microsoft_sp_webpart_base__WEBPACK_IMPORTED_MODULE_4__.BaseClientSideWebPart));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ApprovalAdminWebPart);
})();
/******/ return __webpack_exports__;
/******/ })()
;
});;
//# sourceMappingURL=approval-admin-web-part.js.map