Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added dynamic translation, hide time button func. #48

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,13 @@ format | String | 'YYYY/MM/DD hh:mm' | Any combination of YYYY, YY, MM, DD, hh,
multiple | Boolean | true | Whether user can change calendar type or not
autoClose | Boolean | false | Closing ADMdtp on selecting a day
transition | Boolean | true | Transition on loading days
placeholder | String | '' | Adds datepicker placeholder
hideTimeSelector | Boolean | false | Hides time button from calendar dropbox
startsOnMonday | Boolean | false | Sets if the calendar starts on monday
daysNames | Array | An array of strings with week days starting from Sunday
monthsNames | Array | An array of month names starting from January
todayStr | String | Translation string for today button
gregorianStr | String | Translation string for Gregorian button
---
### Custom input template
You can put custom input template inside `<adm-dtp></adm-dtp>` but with unwanted limits.
Expand Down Expand Up @@ -137,6 +144,9 @@ putting **Exclamation mark (!)** at the begining of the pattern will inverse dis
patterns of the same type can be combine with **Ampersand (&)**.
mention that `['2d+1', '7d']` and `['2d+1&7d']` are equal, but `['!2d+1', '!7d']` and `['!2d+1&7d']` are completely differents.

#### Hide time selector
Hide time selector from calendar by adding `hideTimeSelector` in your options.

##### Smart disabling:
`i` in Gregorian calendar will disable Sundays (weekend) that is equal to Fridays (weekend) in Jalali calendar.
option `smartDisabling: true` change Sunday from Gregorian calendar to Friday in Jalali calendar by switching calendar type,
Expand Down Expand Up @@ -211,3 +221,21 @@ No need to destroy datepickers anymore!
<!-- event on changing the time -->
<adm-dtp ng-model="date" on-datechange="timeChanged(date)"></adm-dtp>
```

#### Translation
Just add `daysNames`, `monthsNames`, `todayStr` and/or `gregorianStr` in the options that you are passing to the directive. If none are provided it will fall back to the default ones.

```html
<adm-dtp ng-model='date' options="datepickerOptions"></adm-dtp>
```

```javascript
app.controller('MainController', function ($scope) {
$scope.datepickerOptions = {
daysNames: ['Нед', 'Пон', 'Вто', 'Сре', 'Чет', 'Пет', 'Саб'],
monthsNames: ['Јан', 'Феб', 'Мар', 'Апр', 'Мај', 'Јун', 'Јул', 'Авг', 'Септ', 'Окт', 'Ное', 'Дек'],
todayStr: 'Денес',
gregorianStr: 'Грегоријански'
}
});
```
5 changes: 4 additions & 1 deletion bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@
"ADM | Amirkabir Data Miners <[email protected]>"
],
"description": "Pure AngularJs Gregorian and Jalali smart dateTimePicker",
"main": "ADM-dateTimePicker.js",
"main": [
"dist/ADM-dateTimePicker.min.js",
"dist/ADM-dateTimePicker.min.css"
],
"moduleType": [
"globals"
],
Expand Down
40 changes: 32 additions & 8 deletions dist/ADM-dateTimePicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -945,8 +945,13 @@
scope.calTypeChanged = function() {
scope.calType = (scope.calType=='gregorian')?'jalali':'gregorian';

scope.monthNames = constants.calendars[scope.calType].monthsNames;
scope.daysNames = constants.calendars[scope.calType].daysNames;
scope.monthNames = scope.option.monthsNames || constants.calendars[scope.calType].monthsNames;
scope.daysNames = scope.option.daysNames || constants.calendars[scope.calType].daysNames;

if (scope.option.startsOnMonday) {
var sunDay = scope.daysNames.shift();
scope.daysNames.push(sunDay);
}

var _cur = angular.copy(scope.current);
var _mainDate;
Expand All @@ -967,10 +972,19 @@

}


scope.todayStr = (scope.calType=="jalali") ? "امروز" : "Today";
scope.gregorianStr = 'Gregorian';

if (scope.option.todayStr) {
scope.todayStr = scope.option.todayStr;
}

if (scope.option.gregorianStr) {
scope.gregorianStr = scope.option.gregorianStr;
}
},
//templateUrl: 'js/ADM-dateTimePicker/ADM-dateTimePicker_calendar.html'
template: '<div class="ADMdtp-calendar-container" ng-class="{square: monthPickerStat||timePickerStat}"><div class="monthPickerContainer" ng-class="{active: monthPickerStat}"><i class="calendarIcon" ng-class="{show: monthPickerStat}" ng-click="monthPickerStat = false"><svg viewBox="0 0 1664 1664"><use xlink:href="#dtpCalendar" /></svg></i><div class="content"> <div class="monthContainer" ng-class="{onYear: yearSelectStat, rtl: (calType==\'jalali\')}"><div class="yearContainer"><span ng-if="yearSelectStat" class="dtpIcon arrow left" ng-click="previousYear()"></span><p ng-click="selectYearInit()">{{current.year | digitType:calType}}</p><span ng-if="yearSelectStat" class="dtpIcon arrow right" ng-click="nextYear()"></span></div><span ng-repeat="yearName in generatedYears" ng-if="yearSelectStat"><span ng-class="{selected: yearName==current.year}" ng-click="selectYear(yearName)">{{yearName | digitType:calType}}</span></span><span ng-repeat="monthName in monthNames" ng-if="!yearSelectStat"><span ng-class="{selected: monthName==current.monthDscr}" ng-click="selectMonth($index)">{{monthName}}</span></span></div></div></div><div class="timePickerContainer" ng-class="{active: timePickerStat}"><i class="calendarIcon" ng-class="{show: timePickerStat}" ng-click="timePickerStat = false"><svg viewBox="0 0 1664 1664"><use xlink:href="#dtpCalendar" /></svg></i><div class="content"><div class="timePicker"><span class="dtpIcon null up" ng-click="changeTimeValue(\'hour\', 1)"><svg viewBox="0 0 1792 1792"><use xlink:href="#dtpDown" /></svg></span><!----><span></span><!----><span class="dtpIcon null up" ng-click="changeTimeValue(\'minute\', 1)"><svg viewBox="0 0 1792 1792"><use xlink:href="#dtpDown" /></svg></span><!----><span>{{time.hour}}</span><!----><span class="period">:</span><!----><span>{{time.minute}}</span><!----><span class="dtpIcon null down" ng-click="changeTimeValue(\'hour\', -1)"><svg viewBox="0 0 1792 1792"><use xlink:href="#dtpUp" /></svg></span><!----><span></span><!----><span class="dtpIcon null down" ng-click="changeTimeValue(\'minute\', -1)"><svg viewBox="0 0 1792 1792"><use xlink:href="#dtpUp" /></svg></span></div></div></div><header><span class="dtpIcon arrow left" ng-click="previousMonth()"></span><span class="yearMonth" ng-click="selectMonthInit()">{{current.monthDscr}} {{current.year | digitType:calType}}</span><span class="dtpIcon arrow right" ng-click="nextMonth()"></span></header><div class="daysNames"><span ng-repeat="dayName in daysNames">{{dayName}}</span></div><hr><div class="days" ng-class="{loading:loadingDays}"><span ng-repeat="day in current.days" ng-click="selectThisDay(day)"><span ng-class="[{disable: day.disable||!day.valid, today: day.today, selected: day.selected, valid:(day.valid==2)}, (day.isMin)?((calType==\'jalali\')?\'max\':\'min\'):\'\', (day.isMax)?((calType==\'jalali\')?\'min\':\'max\'):\'\']">{{day.day | digitType:calType}}</span></span></div><hr><footer><div class="calTypeContainer" ng-class="$parent.calType" ng-click="calTypeChanged()" ng-if="option.multiple"><p class="gregorian">Gregorian</p><p class="jalali">جلالی</p></div><button class="today" ng-click="today()">{{(calType=="jalali")?"امروز":"Today"}}</button><svg class="timeSelectIcon" viewBox="0 0 1492 1592" ng-click="timePickerStat = !timePickerStat"><use xlink:href="#dtpClock" /></svg></footer></div>'
template: '<div class="ADMdtp-calendar-container" ng-class="{square: monthPickerStat||timePickerStat}"><div class="monthPickerContainer" ng-class="{active: monthPickerStat}"><i class="calendarIcon" ng-class="{show: monthPickerStat}" ng-click="monthPickerStat = false"><svg viewBox="0 0 1664 1664"><use xlink:href="#dtpCalendar" /></svg></i><div class="content"> <div class="monthContainer" ng-class="{onYear: yearSelectStat, rtl: (calType==\'jalali\')}"><div class="yearContainer"><span ng-if="yearSelectStat" class="dtpIcon arrow left" ng-click="previousYear()"></span><p ng-click="selectYearInit()">{{current.year | digitType:calType}}</p><span ng-if="yearSelectStat" class="dtpIcon arrow right" ng-click="nextYear()"></span></div><span ng-repeat="yearName in generatedYears" ng-if="yearSelectStat"><span ng-class="{selected: yearName==current.year}" ng-click="selectYear(yearName)">{{yearName | digitType:calType}}</span></span><span ng-repeat="monthName in monthNames" ng-if="!yearSelectStat"><span ng-class="{selected: monthName==current.monthDscr}" ng-click="selectMonth($index)">{{monthName}}</span></span></div></div></div><div class="timePickerContainer" ng-class="{active: timePickerStat}"><i class="calendarIcon" ng-class="{show: timePickerStat}" ng-click="timePickerStat = false"><svg viewBox="0 0 1664 1664"><use xlink:href="#dtpCalendar" /></svg></i><div class="content"><div class="timePicker"><span class="dtpIcon null up" ng-click="changeTimeValue(\'hour\', 1)"><svg viewBox="0 0 1792 1792"><use xlink:href="#dtpDown" /></svg></span><!----><span></span><!----><span class="dtpIcon null up" ng-click="changeTimeValue(\'minute\', 1)"><svg viewBox="0 0 1792 1792"><use xlink:href="#dtpDown" /></svg></span><!----><span>{{time.hour}}</span><!----><span class="period">:</span><!----><span>{{time.minute}}</span><!----><span class="dtpIcon null down" ng-click="changeTimeValue(\'hour\', -1)"><svg viewBox="0 0 1792 1792"><use xlink:href="#dtpUp" /></svg></span><!----><span></span><!----><span class="dtpIcon null down" ng-click="changeTimeValue(\'minute\', -1)"><svg viewBox="0 0 1792 1792"><use xlink:href="#dtpUp" /></svg></span></div></div></div><header><span class="dtpIcon arrow left" ng-click="previousMonth()"></span><span class="yearMonth" ng-click="selectMonthInit()">{{current.monthDscr}} {{current.year | digitType:calType}}</span><span class="dtpIcon arrow right" ng-click="nextMonth()"></span></header><div class="daysNames"><span ng-repeat="dayName in daysNames">{{dayName}}</span></div><hr><div class="days" ng-class="{loading:loadingDays}"><span ng-repeat="day in current.days" ng-click="selectThisDay(day)"><span ng-class="[{disable: day.disable||!day.valid, today: day.today, selected: day.selected, valid:(day.valid==2)}, (day.isMin)?((calType==\'jalali\')?\'max\':\'min\'):\'\', (day.isMax)?((calType==\'jalali\')?\'min\':\'max\'):\'\']">{{day.day | digitType:calType}}</span></span></div><hr><footer><div class="calTypeContainer" ng-class="$parent.calType" ng-click="calTypeChanged()" ng-if="option.multiple"><p class="gregorian">{{gregorianStr}}</p><p class="jalali">جلالی</p></div><button class="today" ng-click="today()">{{todayStr}}</button><svg class="timeSelectIcon" viewBox="0 0 1492 1592" ng-click="timePickerStat = !timePickerStat" ng-if="!option.hideTimeSelector"><use xlink:href="#dtpClock" /></svg></footer></div>'
}
}

Expand Down Expand Up @@ -1002,10 +1016,15 @@
scope.option = angular.extend(angular.copy(ADMdtp.getOptions()), _options);
scope.disableDays = ADMdtpFactory.parseDisablePattern(scope.option);
scope.calType = scope.option.calType;
scope.monthNames = constants.calendars[scope.calType].monthsNames;
scope.daysNames = constants.calendars[scope.calType].daysNames;
scope.monthNames = scope.option.monthsNames || constants.calendars[scope.calType].monthsNames;
scope.daysNames = scope.option.daysNames || constants.calendars[scope.calType].daysNames;
scope.timeoutValue = [0,0];

if (scope.option.startsOnMonday) {
var sunDay = scope.daysNames.shift();
scope.daysNames.push(sunDay);
}

scope.minDate = scope.mindate?new Date(scope.mindate):null;
scope.maxDate = scope.maxdate?new Date(scope.maxdate):null;

Expand Down Expand Up @@ -1325,8 +1344,13 @@
var _firstDayName = new Date(angular.copy(_currDay).setDate(1)).getDay();

var _days = [];
var add = 0;

if ($scope.option.startsOnMonday) {
add = 1;
}

var _diff = -1 * _firstDayName,
var _diff = -1 * _firstDayName + add,
_ite_date, _disable = true;
var _lastValidStat = -1;

Expand Down Expand Up @@ -1429,7 +1453,7 @@
}
],
//templateUrl: 'js/ADM-dateTimePicker/ADM-dateTimePicker_view.html'
template: '<div class="ADMdtp-container" ng-class="{rtl: (calType==\'jalali\'), touch: option.isDeviceTouch, disable: disable}"><div class="clickOutContainer" click-out="closeCalendar()"><ng-transclude></ng-transclude> <div ng-if="defaultTemplate" class="masterInput" ng-class="{touch: option.isDeviceTouch, disable: disable, open: showCalendarStat}"><input type="text" ng-model="dtpValue.formated" ng-focus="openCalendar()" ng-disabled="option.freezeInput || option.isDeviceTouch || disable" ng-blur="modelChanged()"><div class="iconContainer" ng-click="toggleCalendar()"><i class="dtpIcon null fakeIcon"></i><svg class="calendarIcon" viewBox="0 0 1664 1664"><use xlink:href="#dtpCalendar" /></svg><svg class="closeIcon" viewBox="0 0 1400 1400"><use xlink:href="#dtpOff" /></svg></div><svg class="removeIcon" viewBox="0 0 1408 1408" ng-if="dtpValue.formated" ng-click="destroy()"><use stroke-width="20" xlink:href="#dtpTimes" /></svg></div></div><svg style="display:none;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"><defs><path id="dtpCalendar" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /><path id="dtpOff" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" /><path id="dtpClock" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /><path id="dtpTimes" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" /><path id="dtpUp" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" /><path id="dtpDown" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" /></defs></svg> </div>'
template: '<div class="ADMdtp-container" ng-class="{rtl: (calType==\'jalali\'), touch: option.isDeviceTouch, disable: disable}"><div class="clickOutContainer" click-out="closeCalendar()"><ng-transclude></ng-transclude> <div ng-if="defaultTemplate" class="masterInput" ng-class="{touch: option.isDeviceTouch, disable: disable, open: showCalendarStat}"><input placeholder="{{option.placeholder}}" type="text" ng-model="dtpValue.formated" ng-focus="openCalendar()" ng-disabled="option.freezeInput || option.isDeviceTouch || disable" ng-blur="modelChanged()"><div class="iconContainer" ng-click="toggleCalendar()"><i class="dtpIcon null fakeIcon"></i><svg class="calendarIcon" viewBox="0 0 1664 1664"><use xlink:href="#dtpCalendar" /></svg><svg class="closeIcon" viewBox="0 0 1400 1400"><use xlink:href="#dtpOff" /></svg></div><svg class="removeIcon" viewBox="0 0 1408 1408" ng-if="dtpValue.formated" ng-click="destroy()"><use stroke-width="20" xlink:href="#dtpTimes" /></svg></div></div><svg style="display:none;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"><defs><path id="dtpCalendar" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /><path id="dtpOff" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" /><path id="dtpClock" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /><path id="dtpTimes" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" /><path id="dtpUp" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" /><path id="dtpDown" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" /></defs></svg> </div>'
};
}

Expand Down
Loading