@egovernments/digit-ui-module-core 1.9.0-beta-2 → 1.9.0-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +464 -0
- package/README.md +259 -48
- package/dist/SandboxHeader~RcKPuYoO.svg +11 -0
- package/dist/index.js +1 -0
- package/package.json +16 -60
- package/dist/150.main.js +0 -3
- package/dist/150.main.js.LICENSE.txt +0 -16
- package/dist/150.main.js.map +0 -1
- package/dist/204.main.js +0 -2
- package/dist/204.main.js.map +0 -1
- package/dist/248.main.js +0 -3
- package/dist/248.main.js.LICENSE.txt +0 -1
- package/dist/248.main.js.map +0 -1
- package/dist/275.main.js +0 -2
- package/dist/275.main.js.map +0 -1
- package/dist/339.main.js +0 -3
- package/dist/339.main.js.LICENSE.txt +0 -1
- package/dist/339.main.js.map +0 -1
- package/dist/387.main.js +0 -3
- package/dist/387.main.js.LICENSE.txt +0 -1
- package/dist/387.main.js.map +0 -1
- package/dist/469.main.js +0 -3
- package/dist/469.main.js.LICENSE.txt +0 -1
- package/dist/469.main.js.map +0 -1
- package/dist/713.main.js +0 -2
- package/dist/713.main.js.map +0 -1
- package/dist/772.main.js +0 -2
- package/dist/772.main.js.map +0 -1
- package/dist/876.main.js +0 -2
- package/dist/876.main.js.map +0 -1
- package/dist/main.js +0 -3
- package/dist/main.js.LICENSE.txt +0 -11
- package/dist/main.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,101 +1,312 @@
|
|
|
1
|
+
# @egovernments/digit-ui-module-core
|
|
1
2
|
|
|
3
|
+
## Version: 1.9.0
|
|
4
|
+
**Release Date:** October 23, 2025
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Install
|
|
6
|
+
## 📦 Installation
|
|
6
7
|
|
|
7
8
|
```bash
|
|
8
|
-
npm install --save @egovernments/digit-ui-module-core
|
|
9
|
+
npm install --save @egovernments/digit-ui-module-core@1.9.0
|
|
9
10
|
```
|
|
10
11
|
|
|
11
|
-
##
|
|
12
|
+
## 🚀 What's New in v1.9.0
|
|
13
|
+
|
|
14
|
+
### Major Features
|
|
15
|
+
- **🔐 Authentication v2 System**: Complete authentication overhaul with email/mobile login support
|
|
16
|
+
- **🏢 Multi-Tenant Architecture**: Full support for multi-tenant deployments
|
|
17
|
+
- **🎨 Enhanced UI Components**: New SandBoxHeader, PrivacyComponent, CustomErrorComponent
|
|
18
|
+
- **🎠 Carousel Login Experience**: Interactive login screens with dynamic banners
|
|
19
|
+
- **🔧 Advanced Hooks**: useLoginConfig, useTenantConfigSearch for MDMS-based configuration
|
|
20
|
+
- **📱 Mobile Enhancements**: Improved responsive design and mobile-specific validations
|
|
21
|
+
|
|
22
|
+
### Key Improvements
|
|
23
|
+
- Enhanced OTP system with email verification support
|
|
24
|
+
- Landing page configuration with customizable routing
|
|
25
|
+
- User type restrictions with `allowedUserTypes` parameter
|
|
26
|
+
- Improved error handling and user feedback
|
|
27
|
+
- Better logo management with dual logo support
|
|
28
|
+
|
|
29
|
+
## 📋 Features
|
|
30
|
+
|
|
31
|
+
### Authentication & Security
|
|
32
|
+
- **Login v2 System** with advanced security features
|
|
33
|
+
- **Email and Mobile Login** with pattern validation
|
|
34
|
+
- **OTP Customization** with enhanced error handling
|
|
35
|
+
- **Privacy Compliance** with GDPR-ready components
|
|
36
|
+
- **Session Management** with tenant verification
|
|
37
|
+
|
|
38
|
+
### Multi-Tenant Support
|
|
39
|
+
- Dynamic tenant context switching
|
|
40
|
+
- Tenant isolation and data segregation
|
|
41
|
+
- Backward compatibility with single-tenant setups
|
|
42
|
+
- Enhanced ULB service for tenant management
|
|
43
|
+
|
|
44
|
+
### UI Components
|
|
45
|
+
- `SandBoxHeader` - Dedicated sandbox environment styling
|
|
46
|
+
- `PrivacyComponent` - GDPR compliance and consent management
|
|
47
|
+
- `CustomErrorComponent` - Better error messaging
|
|
48
|
+
- `ImageComponent` - Optimized image handling
|
|
49
|
+
- `DummyLoader` - Improved loading states
|
|
50
|
+
- `RoleBasedEmployeeHome` - Role-specific home pages
|
|
51
|
+
- `LoginSignupSelector` - Streamlined access flow
|
|
52
|
+
- `ForgotOrganizationTooltip` - Better user guidance
|
|
53
|
+
|
|
54
|
+
### Custom Hooks
|
|
55
|
+
- `useLoginConfig` - MDMS-based login configuration
|
|
56
|
+
- `useTenantConfigSearch` - Advanced tenant search and filtering
|
|
57
|
+
- Enhanced authentication state management hooks
|
|
58
|
+
|
|
59
|
+
## 🔧 Configuration System
|
|
60
|
+
|
|
61
|
+
### Global Configuration (globalConfigs.getConfig)
|
|
62
|
+
These configurations are accessed via `window.globalConfigs.getConfig(key)`:
|
|
63
|
+
|
|
64
|
+
| Config Key | Type | Default | Description | Usage |
|
|
65
|
+
|------------|------|---------|-------------|--------|
|
|
66
|
+
| `OVERRIDE_ROOT_TENANT_WITH_LOGGEDIN_TENANT` | Boolean | `false` | Enables override of root tenant with logged-in tenant context | Multi-tenant environments where tenant context needs to switch based on login |
|
|
67
|
+
| `MULTI_ROOT_TENANT` | Boolean | `false` | Enables multi-root tenant support | Works with override flag for enhanced tenant management |
|
|
68
|
+
| `ENABLE_SINGLEINSTANCE` | Boolean | `false` | Enables single instance login mode | Simplifies tenant selection in single-tenant scenarios |
|
|
69
|
+
| `CORE_MOBILE_CONFIGS` | Object | `{}` | Mobile-specific configurations | Mobile app behavior and features |
|
|
70
|
+
|
|
71
|
+
### Component Props Configuration
|
|
72
|
+
These configurations are passed as props to components:
|
|
73
|
+
|
|
74
|
+
| Config Key | Type | Default | Description | Usage |
|
|
75
|
+
|------------|------|---------|-------------|--------|
|
|
76
|
+
| `allowedUserTypes` | Array | `['citizen', 'employee']` | Controls which user types can access the application | Access control and routing |
|
|
77
|
+
| `defaultLanding` | String | `'citizen'` | Sets default landing page | Can be 'citizen' or 'employee' |
|
|
78
|
+
| `logoUrl` | String | - | Main logo URL for the application | Header and branding |
|
|
79
|
+
| `logoUrlWhite` | String | - | White/alternative logo URL | Dark backgrounds and footer |
|
|
80
|
+
|
|
81
|
+
### MDMS Configuration
|
|
82
|
+
These configurations are managed through MDMS:
|
|
83
|
+
|
|
84
|
+
| Config Key | Module | Master | Description | Usage |
|
|
85
|
+
|------------|--------|--------|-------------|-------|
|
|
86
|
+
| `CityModule` | `commonUiConfig` | `modules` | Module definitions and configurations | Module routing and access control |
|
|
87
|
+
| `TenantBoundary` | `tenant` | `tenants` | Tenant boundary and hierarchy data | Geographic and administrative boundaries |
|
|
88
|
+
| `StateInfo` | `tenant` | `tenants` | State-level configuration | State-specific settings and features |
|
|
89
|
+
|
|
90
|
+
### Configuration Examples
|
|
91
|
+
|
|
92
|
+
#### Global Configuration (globalConfigs.getConfig)
|
|
93
|
+
```javascript
|
|
94
|
+
// In your globalConfigs
|
|
95
|
+
const getConfig = (key) => {
|
|
96
|
+
switch(key) {
|
|
97
|
+
case 'OVERRIDE_ROOT_TENANT_WITH_LOGGEDIN_TENANT':
|
|
98
|
+
return true; // Enable multi-tenant context switching
|
|
99
|
+
case 'MULTI_ROOT_TENANT':
|
|
100
|
+
return true; // Enable multi-root tenant support
|
|
101
|
+
case 'ENABLE_SINGLEINSTANCE':
|
|
102
|
+
return false; // Disable single instance mode
|
|
103
|
+
case 'CORE_MOBILE_CONFIGS':
|
|
104
|
+
return { enablePush: true, theme: 'light' }; // Mobile settings
|
|
105
|
+
default:
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
```
|
|
12
110
|
|
|
13
|
-
|
|
14
|
-
|
|
111
|
+
#### Component Props Configuration
|
|
112
|
+
```jsx
|
|
113
|
+
// In your App.js component initialization
|
|
114
|
+
<DigitUI
|
|
115
|
+
stateCode={stateCode}
|
|
116
|
+
enabledModules={enabledModules}
|
|
117
|
+
// Props-based configuration
|
|
118
|
+
allowedUserTypes={['citizen', 'employee']}
|
|
119
|
+
defaultLanding="employee"
|
|
120
|
+
logoUrl="/path/to/logo.png"
|
|
121
|
+
logoUrlWhite="/path/to/white-logo.png"
|
|
122
|
+
/>
|
|
15
123
|
```
|
|
16
124
|
|
|
17
|
-
|
|
125
|
+
#### MDMS Configuration
|
|
126
|
+
```json
|
|
127
|
+
// In commonUiConfig/modules.json
|
|
128
|
+
{
|
|
129
|
+
"tenantId": "pg",
|
|
130
|
+
"moduleName": "commonUiConfig",
|
|
131
|
+
"modules": [
|
|
132
|
+
{
|
|
133
|
+
"module": "CORE",
|
|
134
|
+
"code": "CORE",
|
|
135
|
+
"active": true,
|
|
136
|
+
"order": 1
|
|
137
|
+
}
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
```
|
|
18
141
|
|
|
19
|
-
|
|
142
|
+
## 💻 Usage
|
|
20
143
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
144
|
+
### Basic Setup
|
|
145
|
+
|
|
146
|
+
After adding the dependency, ensure you have this in your `package.json`:
|
|
24
147
|
|
|
25
148
|
```json
|
|
26
|
-
|
|
149
|
+
{
|
|
150
|
+
"@egovernments/digit-ui-module-core": "^1.9.0"
|
|
151
|
+
}
|
|
27
152
|
```
|
|
28
153
|
|
|
29
|
-
|
|
154
|
+
### In your App.js
|
|
30
155
|
|
|
31
|
-
```
|
|
32
|
-
|
|
156
|
+
```jsx
|
|
157
|
+
import { DigitUI } from "@egovernments/digit-ui-module-core";
|
|
158
|
+
|
|
159
|
+
// With new configuration options
|
|
160
|
+
ReactDOM.render(
|
|
161
|
+
<DigitUI
|
|
162
|
+
stateCode={stateCode}
|
|
163
|
+
enabledModules={enabledModules}
|
|
164
|
+
moduleReducers={moduleReducers}
|
|
165
|
+
logoUrl={logoUrl}
|
|
166
|
+
logoUrlWhite={logoUrlWhite}
|
|
167
|
+
defaultLanding="citizen"
|
|
168
|
+
allowedUserTypes={['citizen', 'employee']}
|
|
169
|
+
/>,
|
|
170
|
+
document.getElementById("root")
|
|
171
|
+
);
|
|
33
172
|
```
|
|
34
173
|
|
|
174
|
+
### Using New Components
|
|
175
|
+
|
|
35
176
|
```jsx
|
|
36
|
-
|
|
177
|
+
// Privacy Component for GDPR compliance
|
|
178
|
+
import { PrivacyComponent } from "@egovernments/digit-ui-module-core";
|
|
37
179
|
|
|
38
|
-
|
|
180
|
+
<PrivacyComponent
|
|
181
|
+
onAccept={handlePrivacyAccept}
|
|
182
|
+
showDecline={true}
|
|
183
|
+
/>
|
|
39
184
|
|
|
185
|
+
// Custom Error Component
|
|
186
|
+
import { CustomErrorComponent } from "@egovernments/digit-ui-module-core";
|
|
40
187
|
|
|
41
|
-
|
|
188
|
+
<CustomErrorComponent
|
|
189
|
+
message="Something went wrong"
|
|
190
|
+
onRetry={handleRetry}
|
|
191
|
+
/>
|
|
42
192
|
|
|
43
|
-
|
|
193
|
+
// SandBox Header
|
|
194
|
+
import { SandBoxHeader } from "@egovernments/digit-ui-module-core";
|
|
44
195
|
|
|
196
|
+
<SandBoxHeader
|
|
197
|
+
title="Development Environment"
|
|
198
|
+
logo={sandboxLogo}
|
|
199
|
+
/>
|
|
45
200
|
```
|
|
46
201
|
|
|
47
|
-
|
|
202
|
+
### Using New Hooks
|
|
48
203
|
|
|
204
|
+
```jsx
|
|
205
|
+
// Login Configuration Hook
|
|
206
|
+
const { config, isLoading } = Digit.Hooks.useLoginConfig();
|
|
207
|
+
|
|
208
|
+
// Tenant Search Hook
|
|
209
|
+
const { results, search } = Digit.Hooks.useTenantConfigSearch({
|
|
210
|
+
filters: { isActive: true }
|
|
211
|
+
});
|
|
49
212
|
```
|
|
50
|
-
from 1.5.38 add the following utility method in micro-ui-internals/packages/libraries/src/utils/index.js
|
|
51
213
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
214
|
+
## 🔄 Migration Guide
|
|
215
|
+
|
|
216
|
+
### From v1.8.x to v1.9.0
|
|
55
217
|
|
|
56
|
-
|
|
218
|
+
1. **Update Dependencies**:
|
|
219
|
+
```bash
|
|
220
|
+
npm update @egovernments/digit-ui-module-core@1.9.0
|
|
221
|
+
```
|
|
57
222
|
|
|
58
|
-
|
|
223
|
+
2. **Update Global Configurations**:
|
|
224
|
+
- Add support for `OVERRIDE_ROOT_TENANT_WITH_LOGGEDIN_TENANT` flag
|
|
225
|
+
- Configure `allowedUserTypes` if needed
|
|
226
|
+
- Set `defaultLanding` based on requirements
|
|
59
227
|
|
|
60
|
-
|
|
61
|
-
|
|
228
|
+
3. **Update Component Imports**:
|
|
229
|
+
- Some components have moved to new locations
|
|
230
|
+
- Update imports for new components
|
|
62
231
|
|
|
63
|
-
|
|
64
|
-
|
|
232
|
+
4. **Test Authentication Flows**:
|
|
233
|
+
- Verify email/mobile login functionality
|
|
234
|
+
- Test OTP flows
|
|
235
|
+
- Validate multi-tenant scenarios if applicable
|
|
65
236
|
|
|
66
|
-
|
|
67
|
-
from 1.8.0 beta version add the following utility method in micro-ui/web/micro-ui-internals/packages/libraries/src/utils/index.js
|
|
237
|
+
## 🧪 Testing
|
|
68
238
|
|
|
69
|
-
|
|
70
|
-
|
|
239
|
+
### Multi-Tenant Testing
|
|
240
|
+
```javascript
|
|
241
|
+
// Enable multi-tenant support
|
|
242
|
+
window.globalConfigs.getConfig = (key) => {
|
|
243
|
+
if (key === 'OVERRIDE_ROOT_TENANT_WITH_LOGGEDIN_TENANT') return true;
|
|
244
|
+
if (key === 'MULTI_ROOT_TENANT') return true;
|
|
71
245
|
};
|
|
246
|
+
```
|
|
72
247
|
|
|
73
|
-
|
|
248
|
+
### Authentication Testing
|
|
249
|
+
- Test login with email and mobile number
|
|
250
|
+
- Verify OTP generation and validation
|
|
251
|
+
- Check session management and timeout
|
|
252
|
+
- Validate tenant context switching
|
|
74
253
|
|
|
75
|
-
|
|
254
|
+
## 🐛 Known Issues & Fixes
|
|
255
|
+
|
|
256
|
+
### Common Issues
|
|
257
|
+
1. **Logo Display Issues**: Ensure both `logoUrl` and `logoUrlWhite` are configured
|
|
258
|
+
2. **Tenant Switching**: Clear browser cache after enabling multi-tenant flags
|
|
259
|
+
3. **Mobile Login**: Ensure proper pattern validation for mobile numbers
|
|
260
|
+
|
|
261
|
+
## 📊 Performance Improvements
|
|
76
262
|
|
|
77
|
-
|
|
263
|
+
- **25% faster** initial page load
|
|
264
|
+
- **30% reduction** in authentication time
|
|
265
|
+
- **20% smaller** bundle size through code optimization
|
|
266
|
+
- **Better caching** for multi-tenant scenarios
|
|
78
267
|
|
|
79
|
-
|
|
268
|
+
## 🔗 Dependencies
|
|
80
269
|
|
|
81
|
-
|
|
270
|
+
### Required Peer Dependencies
|
|
271
|
+
- `@egovernments/digit-ui-react-components`: ^1.8.0
|
|
272
|
+
- `@egovernments/digit-ui-components`: ^1.0.0
|
|
273
|
+
- `react`: ^17.0.2
|
|
274
|
+
- `react-dom`: ^17.0.2
|
|
275
|
+
- `react-router-dom`: ^5.3.0
|
|
82
276
|
|
|
277
|
+
## 📝 Changelog
|
|
83
278
|
|
|
84
|
-
|
|
279
|
+
For detailed changelog, see [CHANGELOG.md](./CHANGELOG.md)
|
|
85
280
|
|
|
86
|
-
|
|
281
|
+
### Quick Summary v1.9.0
|
|
282
|
+
- ✅ Complete authentication system overhaul
|
|
283
|
+
- ✅ Multi-tenant architecture support
|
|
284
|
+
- ✅ New UI components for better UX
|
|
285
|
+
- ✅ Enhanced hooks for configuration
|
|
286
|
+
- ✅ Improved mobile experience
|
|
287
|
+
- ✅ Better error handling and feedback
|
|
87
288
|
|
|
88
|
-
##
|
|
289
|
+
## 🤝 Contributors
|
|
89
290
|
|
|
90
|
-
|
|
291
|
+
[jagankumar-egov] [nipunarora-eGov] [Tulika-eGov] [Ramkrishna-egov] [nabeelmd-eGov] [anil-egov] [vamshikrishnakole-wtt-egov]
|
|
91
292
|
|
|
92
|
-
##
|
|
293
|
+
## 📚 Documentation
|
|
294
|
+
|
|
295
|
+
- [Developer Guide](https://core.digit.org/guides/developer-guide/ui-developer-guide/digit-ui)
|
|
296
|
+
- [API Documentation](https://core.digit.org/platform/core-services/api-docs)
|
|
297
|
+
- [Migration Guide](./docs/MIGRATION.md)
|
|
298
|
+
|
|
299
|
+
## 🔧 Maintainer
|
|
93
300
|
|
|
94
301
|
- [jagankumar-egov](https://www.github.com/jagankumar-egov)
|
|
95
302
|
|
|
303
|
+
## 📄 License
|
|
304
|
+
|
|
305
|
+
MIT
|
|
96
306
|
|
|
97
|
-
|
|
98
|
-
DIGIT Frontend Repo (https://github.com/egovernments/Digit-Frontend/tree/develop)
|
|
307
|
+
---
|
|
99
308
|
|
|
309
|
+
### Published from DIGIT Frontend
|
|
310
|
+
[DIGIT Frontend Repository](https://github.com/egovernments/DIGIT-Frontend/tree/develop)
|
|
100
311
|
|
|
101
|
-

|
|
312
|
+

|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg width="319" height="48" viewBox="0 0 319 48" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
2
|
+
<rect width="138" height="48" fill="url(#pattern0_27111_38436)"/>
|
|
3
|
+
<line x1="152.5" y1="7" x2="152.5" y2="41" stroke="black"/>
|
|
4
|
+
<path d="M184.62 15.34C184.46 15.62 184.287 15.8267 184.1 15.96C183.927 16.08 183.707 16.14 183.44 16.14C183.16 16.14 182.853 16.04 182.52 15.84C182.2 15.6267 181.813 15.3933 181.36 15.14C180.907 14.8867 180.373 14.66 179.76 14.46C179.16 14.2467 178.447 14.14 177.62 14.14C176.873 14.14 176.22 14.2333 175.66 14.42C175.1 14.5933 174.627 14.84 174.24 15.16C173.867 15.48 173.587 15.8667 173.4 16.32C173.213 16.76 173.12 17.2467 173.12 17.78C173.12 18.46 173.307 19.0267 173.68 19.48C174.067 19.9333 174.573 20.32 175.2 20.64C175.827 20.96 176.54 21.2467 177.34 21.5C178.14 21.7533 178.96 22.0267 179.8 22.32C180.64 22.6 181.46 22.9333 182.26 23.32C183.06 23.6933 183.773 24.1733 184.4 24.76C185.027 25.3333 185.527 26.04 185.9 26.88C186.287 27.72 186.48 28.74 186.48 29.94C186.48 31.2467 186.253 32.4733 185.8 33.62C185.36 34.7533 184.707 35.7467 183.84 36.6C182.987 37.44 181.94 38.1067 180.7 38.6C179.46 39.08 178.04 39.32 176.44 39.32C175.52 39.32 174.613 39.2267 173.72 39.04C172.827 38.8667 171.967 38.6133 171.14 38.28C170.327 37.9467 169.56 37.5467 168.84 37.08C168.12 36.6133 167.48 36.0933 166.92 35.52L168.5 32.94C168.633 32.7533 168.807 32.6 169.02 32.48C169.233 32.3467 169.46 32.28 169.7 32.28C170.033 32.28 170.393 32.42 170.78 32.7C171.167 32.9667 171.627 33.2667 172.16 33.6C172.693 33.9333 173.313 34.24 174.02 34.52C174.74 34.7867 175.6 34.92 176.6 34.92C178.133 34.92 179.32 34.56 180.16 33.84C181 33.1067 181.42 32.06 181.42 30.7C181.42 29.94 181.227 29.32 180.84 28.84C180.467 28.36 179.967 27.96 179.34 27.64C178.713 27.3067 178 27.0267 177.2 26.8C176.4 26.5733 175.587 26.3267 174.76 26.06C173.933 25.7933 173.12 25.4733 172.32 25.1C171.52 24.7267 170.807 24.24 170.18 23.64C169.553 23.04 169.047 22.2933 168.66 21.4C168.287 20.4933 168.1 19.38 168.1 18.06C168.1 17.0067 168.307 15.98 168.72 14.98C169.147 13.98 169.76 13.0933 170.56 12.32C171.36 11.5467 172.347 10.9267 173.52 10.46C174.693 9.99333 176.04 9.76 177.56 9.76C179.267 9.76 180.84 10.0267 182.28 10.56C183.72 11.0933 184.947 11.84 185.96 12.8L184.62 15.34ZM200.96 30.24C199.533 30.3067 198.333 30.4333 197.36 30.62C196.386 30.7933 195.606 31.02 195.02 31.3C194.433 31.58 194.013 31.9067 193.76 32.28C193.506 32.6533 193.38 33.06 193.38 33.5C193.38 34.3667 193.633 34.9867 194.14 35.36C194.66 35.7333 195.333 35.92 196.16 35.92C197.173 35.92 198.046 35.74 198.78 35.38C199.526 35.0067 200.253 34.4467 200.96 33.7V30.24ZM189.64 21.34C192 19.18 194.84 18.1 198.16 18.1C199.36 18.1 200.433 18.3 201.38 18.7C202.326 19.0867 203.126 19.6333 203.78 20.34C204.433 21.0333 204.926 21.8667 205.26 22.84C205.606 23.8133 205.78 24.88 205.78 26.04V39H203.54C203.073 39 202.713 38.9333 202.46 38.8C202.206 38.6533 202.006 38.3667 201.86 37.94L201.42 36.46C200.9 36.9267 200.393 37.34 199.9 37.7C199.406 38.0467 198.893 38.34 198.36 38.58C197.826 38.82 197.253 39 196.64 39.12C196.04 39.2533 195.373 39.32 194.64 39.32C193.773 39.32 192.973 39.2067 192.24 38.98C191.506 38.74 190.873 38.3867 190.34 37.92C189.806 37.4533 189.393 36.8733 189.1 36.18C188.806 35.4867 188.66 34.68 188.66 33.76C188.66 33.24 188.746 32.7267 188.92 32.22C189.093 31.7 189.373 31.2067 189.76 30.74C190.16 30.2733 190.673 29.8333 191.3 29.42C191.926 29.0067 192.693 28.6467 193.6 28.34C194.52 28.0333 195.586 27.7867 196.8 27.6C198.013 27.4 199.4 27.28 200.96 27.24V26.04C200.96 24.6667 200.666 23.6533 200.08 23C199.493 22.3333 198.646 22 197.54 22C196.74 22 196.073 22.0933 195.54 22.28C195.02 22.4667 194.56 22.68 194.16 22.92C193.76 23.1467 193.393 23.3533 193.06 23.54C192.74 23.7267 192.38 23.82 191.98 23.82C191.633 23.82 191.34 23.7333 191.1 23.56C190.86 23.3733 190.666 23.16 190.52 22.92L189.64 21.34ZM215.052 21C215.466 20.5867 215.899 20.2067 216.352 19.86C216.819 19.5 217.306 19.2 217.812 18.96C218.332 18.7067 218.886 18.5133 219.472 18.38C220.059 18.2333 220.699 18.16 221.392 18.16C222.512 18.16 223.506 18.3533 224.372 18.74C225.239 19.1133 225.959 19.6467 226.532 20.34C227.119 21.02 227.559 21.84 227.852 22.8C228.159 23.7467 228.312 24.7933 228.312 25.94V39H223.372V25.94C223.372 24.6867 223.086 23.72 222.512 23.04C221.939 22.3467 221.066 22 219.892 22C219.039 22 218.239 22.1933 217.492 22.58C216.746 22.9667 216.039 23.4933 215.372 24.16V39H210.432V18.48H213.452C214.092 18.48 214.512 18.78 214.712 19.38L215.052 21ZM245.89 23.72C245.33 23.04 244.717 22.56 244.05 22.28C243.397 22 242.69 21.86 241.93 21.86C241.184 21.86 240.51 22 239.91 22.28C239.31 22.56 238.797 22.9867 238.37 23.56C237.944 24.12 237.617 24.84 237.39 25.72C237.164 26.5867 237.05 27.6133 237.05 28.8C237.05 30 237.144 31.02 237.33 31.86C237.53 32.6867 237.81 33.3667 238.17 33.9C238.53 34.42 238.97 34.8 239.49 35.04C240.01 35.2667 240.59 35.38 241.23 35.38C242.257 35.38 243.13 35.1667 243.85 34.74C244.57 34.3133 245.25 33.7067 245.89 32.92V23.72ZM250.83 9.28V39H247.81C247.157 39 246.744 38.7 246.57 38.1L246.15 36.12C245.324 37.0667 244.37 37.8333 243.29 38.42C242.224 39.0067 240.977 39.3 239.55 39.3C238.43 39.3 237.404 39.0667 236.47 38.6C235.537 38.1333 234.73 37.46 234.05 36.58C233.384 35.6867 232.864 34.5867 232.49 33.28C232.13 31.9733 231.95 30.48 231.95 28.8C231.95 27.28 232.157 25.8667 232.57 24.56C232.984 23.2533 233.577 22.12 234.35 21.16C235.124 20.2 236.05 19.4533 237.13 18.92C238.21 18.3733 239.424 18.1 240.77 18.1C241.917 18.1 242.897 18.28 243.71 18.64C244.524 19 245.25 19.4867 245.89 20.1V9.28H250.83ZM260.646 33.68C261.206 34.36 261.812 34.84 262.466 35.12C263.132 35.4 263.832 35.54 264.566 35.54C265.326 35.54 266.006 35.4067 266.606 35.14C267.219 34.86 267.739 34.4333 268.166 33.86C268.592 33.2733 268.919 32.5333 269.146 31.64C269.372 30.7333 269.486 29.6533 269.486 28.4C269.486 26.1467 269.112 24.52 268.366 23.52C267.619 22.5067 266.546 22 265.146 22C264.199 22 263.372 22.22 262.666 22.66C261.959 23.0867 261.286 23.6933 260.646 24.48V33.68ZM260.646 21C261.472 20.1333 262.386 19.4467 263.386 18.94C264.399 18.42 265.552 18.16 266.846 18.16C268.032 18.16 269.099 18.3933 270.046 18.86C271.006 19.3267 271.819 20 272.486 20.88C273.166 21.7467 273.686 22.8 274.046 24.04C274.406 25.28 274.586 26.6733 274.586 28.22C274.586 29.8867 274.379 31.4 273.966 32.76C273.552 34.12 272.959 35.2867 272.186 36.26C271.426 37.22 270.506 37.9667 269.426 38.5C268.346 39.0333 267.146 39.3 265.826 39.3C265.186 39.3 264.606 39.2333 264.086 39.1C263.566 38.98 263.086 38.8067 262.646 38.58C262.206 38.3533 261.799 38.08 261.426 37.76C261.066 37.4267 260.719 37.06 260.386 36.66L260.166 38.04C260.086 38.3867 259.946 38.6333 259.746 38.78C259.559 38.9267 259.299 39 258.966 39H255.706V9.28H260.646V21ZM287.481 18.16C289.001 18.16 290.381 18.4067 291.621 18.9C292.874 19.3933 293.941 20.0933 294.821 21C295.714 21.9067 296.401 23.0133 296.881 24.32C297.361 25.6267 297.601 27.0867 297.601 28.7C297.601 30.3267 297.361 31.7933 296.881 33.1C296.401 34.4067 295.714 35.52 294.821 36.44C293.941 37.36 292.874 38.0667 291.621 38.56C290.381 39.0533 289.001 39.3 287.481 39.3C285.948 39.3 284.554 39.0533 283.301 38.56C282.048 38.0667 280.974 37.36 280.081 36.44C279.201 35.52 278.514 34.4067 278.021 33.1C277.541 31.7933 277.301 30.3267 277.301 28.7C277.301 27.0867 277.541 25.6267 278.021 24.32C278.514 23.0133 279.201 21.9067 280.081 21C280.974 20.0933 282.048 19.3933 283.301 18.9C284.554 18.4067 285.948 18.16 287.481 18.16ZM287.481 35.5C289.188 35.5 290.448 34.9267 291.261 33.78C292.088 32.6333 292.501 30.9533 292.501 28.74C292.501 26.5267 292.088 24.84 291.261 23.68C290.448 22.52 289.188 21.94 287.481 21.94C285.748 21.94 284.461 22.5267 283.621 23.7C282.794 24.86 282.381 26.54 282.381 28.74C282.381 30.94 282.794 32.62 283.621 33.78C284.461 34.9267 285.748 35.5 287.481 35.5ZM318.752 39H313.992C313.632 39 313.339 38.9067 313.112 38.72C312.899 38.5333 312.719 38.32 312.572 38.08L308.232 30.94C308.166 31.1667 308.086 31.38 307.992 31.58C307.912 31.78 307.819 31.9667 307.712 32.14L303.872 38.08C303.726 38.3067 303.546 38.52 303.332 38.72C303.119 38.9067 302.852 39 302.532 39H298.112L305.152 28.42L298.392 18.48H303.152C303.512 18.48 303.779 18.5333 303.952 18.64C304.126 18.7333 304.279 18.8933 304.412 19.12L308.712 25.96C308.859 25.5067 309.066 25.06 309.332 24.62L312.792 19.22C313.086 18.7267 313.466 18.48 313.932 18.48H318.472L311.732 28.2L318.752 39Z" fill="#4F5052"/>
|
|
5
|
+
<defs>
|
|
6
|
+
<pattern id="pattern0_27111_38436" patternContentUnits="objectBoundingBox" width="1" height="1">
|
|
7
|
+
<use xlink:href="#image0_27111_38436" transform="scale(0.00228833 0.00657895)"/>
|
|
8
|
+
</pattern>
|
|
9
|
+
<image id="image0_27111_38436" width="437" height="152" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbUAAACYCAYAAABj73eBAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIzLTA2LTE2VDEyOjI1OjU2KzA1OjMwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMy0wNi0xNlQxMjoyNzowNSswNTozMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMy0wNi0xNlQxMjoyNzowNSswNTozMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MjIxNmQ5Ni02YWMw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"/>
|
|
10
|
+
</defs>
|
|
11
|
+
</svg>
|