Compare commits

...
49 Commits
Author SHA1 Message Date
Francis Lachapelle 277c6e901e Update ChangeLog 2016-12-01 12:02:23 -05:00
Francis Lachapelle 2c24901803 (js/css) Update generated files 2016-12-01 12:01:50 -05:00
Francis Lachapelle 8f90aa96fe (css,js) Update md to v1.1.1-master-b8357dc 2016-12-01 12:00:00 -05:00
Francis Lachapelle ee5b60c544 Preparation for release 3.2.4 2016-12-01 11:59:16 -05:00
Francis Lachapelle d2b94eba09 (js) Fix detection of session expiration 2016-12-01 11:56:07 -05:00
Francis Lachapelle c9467e1ce3 Validate custom subject for vacation auto-reply 2016-12-01 11:21:59 -05:00
Francis Lachapelle b4e9b7b60c (css) Fix sidenav background color of Preferences 2016-12-01 11:14:38 -05:00
Francis Lachapelle 66710f1b17 (i18n) Update translations 2016-12-01 11:07:28 -05:00
Francis Lachapelle a61ea24cdb (obj-c) Indentation 2016-12-01 10:28:26 -05:00
Francis Lachapelle 3e448d2c2c New sogo-tool cleanup user feature (cont'd) 2016-12-01 10:27:22 -05:00
Ludovic Marcotte 9aa00d049d Updated NEWS 2016-12-01 09:42:03 -05:00
Ludovic Marcotte fdea54f5e7 (fix) properly escape all GAL responses (fixes #3923) 2016-12-01 09:40:24 -05:00
InverseBot 3c098ceca5 (js/css) Update generated files 2016-12-01 01:18:40 -05:00
Francis Lachapelle f7dd835f92 Fix mail attribute when importing an LDIF file
Fixes #3878
2016-11-30 16:06:09 -05:00
Francis Lachapelle 7705c11cf7 New sogo-tool cleanup user feature 2016-11-30 15:32:29 -05:00
Francis Lachapelle 52cdb71d1f Add sort by start date for the tasks list
Fixes #3840
2016-11-30 12:13:48 -05:00
Francis Lachapelle a1746cd386 (css) Fix display of tabs with oversized content 2016-11-30 12:09:11 -05:00
InverseBot cd08ab81f1 (js/css) Update generated files 2016-11-30 02:47:47 -05:00
Francis Lachapelle d293fe79ed Add handling of BYSETPOS for BYDAY in repeat rule 2016-11-29 17:47:14 -05:00
Francis Lachapelle 6f732ba535 Fix MSExchangeFreeBusySOAPRequest.wod 2016-11-29 16:14:42 -05:00
Francis Lachapelle b27c868271 Fix freebusy data fetching of MS Exchange contacts 2016-11-29 15:48:15 -05:00
InverseBot e0b0a1d783 (js/css) Update generated files 2016-11-29 03:13:53 -05:00
Francis Lachapelle e059a6043e (js) Fix possible cross-origin exception
When SOGo is launched from an external link, either using a different
"target" or using window.open(), the Mail composer could throw a
JavaScript exception when trying to save or send a message that would
completely stop the operation.

Fixes #3900
2016-11-28 15:36:03 -05:00
Francis Lachapelle e253f5735d (js) Don't test pristine state of Message composer 2016-11-28 11:45:09 -05:00
Francis Lachapelle 328d67ec3a Improve sort validation in Contacts module 2016-11-28 10:33:38 -05:00
Francis Lachapelle c3376a4ddf Fix some compilation warnings 2016-11-28 10:14:23 -05:00
Francis Lachapelle 220fb3d607 (js) Update alarms after dragging an event 2016-11-28 09:37:31 -05:00
InverseBot fb873fcae9 (js/css) Update generated files 2016-11-26 02:52:49 -05:00
Ludovic Marcotte d2e03386d2 (fix) use GMT + adjust bias when querying Exchange's FB info 2016-11-25 15:14:24 -05:00
Francis Lachapelle 35a3a8ef1d Update ChangeLog 2016-11-25 10:57:26 -05:00
Francis Lachapelle 309846c894 (js/css) Update generated files 2016-11-25 10:52:36 -05:00
Francis Lachapelle f84d0e5f30 Preparation for release 3.2.3 2016-11-25 10:45:07 -05:00
InverseBot 9bb22bd67a (js/css) Update generated files 2016-11-25 02:43:18 -05:00
Francis Lachapelle dc7cb6792a (js) Improve alarms dialog
Fixes #3909
2016-11-24 19:14:02 -05:00
Ludovic Marcotte a76f8dca04 Updated NEWS 2016-11-24 16:07:47 -05:00
Ludovic Marcotte 06e92bbde5 Updated NEWS 2016-11-24 15:54:34 -05:00
Ludovic Marcotte 022c4bac98 (fix) wrong check for delete permission 2016-11-24 15:49:10 -05:00
Ludovic Marcotte 0e82802082 (fix) also filter out recurrence-id 2016-11-24 15:43:37 -05:00
Francis Lachapelle 0a4fa9aada (css) Update default theme 2016-11-24 15:09:59 -05:00
Ludovic Marcotte 71ca4a7b47 (fix) don't check Dovecot conditions if we're using IMAP annotations 2016-11-24 11:39:05 -05:00
Francis Lachapelle 2878665af4 Merge pull request #227 from andryyy/patch-5
Update SOGoACLGermanModificationAdvisory.wox
2016-11-24 06:34:27 -05:00
Francis Lachapelle 9f5a6707bb Merge pull request #226 from andryyy/patch-4
Update SOGoACLGermanRemovalAdvisory.wox
2016-11-24 06:33:52 -05:00
InverseBot 0e07844108 (js/css) Update generated files 2016-11-24 03:11:27 -05:00
André Peters 7c9d8b19b9 Update SOGoACLGermanModificationAdvisory.wox
Fix umlauts in messages like "... Zugang zu seinem Order "Persönlicher Kalender".
2016-11-24 08:50:43 +01:00
André Peters 1f9ef6fea7 Update SOGoACLGermanRemovalAdvisory.wox
Fix umlauts in messages like "... Zugang zu seinem Order "Persönlicher Kalender".
2016-11-24 08:50:42 +01:00
Ludovic Marcotte 836fdb1722 (feat) added photo support for LDAP-based address books 2016-11-23 16:30:41 -05:00
Francis Lachapelle cb960fae02 Restore attributes of base64-encoded img tags
Fixes #3814
2016-11-23 14:57:24 -05:00
Francis Lachapelle b8df16cd8c Improve SOGoDefaults.plist to avoid warning 2016-11-23 14:52:10 -05:00
Francis Lachapelle 84e591cdb9 (js) Update CKEditor to version 4.6.0 2016-11-23 13:57:49 -05:00
181 changed files with 4414 additions and 2280 deletions

No files matched your search

+1 -1
View File
@@ -748,7 +748,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
roles = [theCollection aclsForUser:[[context activeUser] login]];
// We check ACLs on the collection and not on the SOGo object itself, as the add/delete rights are on the collection itself
if (![roles containsObject: SOGoRole_ObjectEraser] || ![[sogoObject ownerInContext: context] isEqualToString: [[context activeUser] login]])
if (![roles containsObject: SOGoRole_ObjectEraser] && ![[sogoObject ownerInContext: context] isEqualToString: [[context activeUser] login]])
{
// This will trigger an add-command to re-add the component to the client
[sogoObject touch];
+8 -8
View File
@@ -2826,31 +2826,31 @@ void handle_eas_terminate(int signum)
[s appendString: @"<Properties>"];
if ((o = [contact objectForKey: @"displayname"]))
[s appendFormat: @"<DisplayName xmlns=\"Gal:\">%@</DisplayName>", o];
[s appendFormat: @"<DisplayName xmlns=\"Gal:\">%@</DisplayName>", [o activeSyncRepresentationInContext: context]];
if ((o = [contact objectForKey: @"title"]))
[s appendFormat: @"<Title xmlns=\"Gal:\">%@</Title>", o];
[s appendFormat: @"<Title xmlns=\"Gal:\">%@</Title>", [o activeSyncRepresentationInContext: context]];
if ((o = [contact objectForKey: @"givenname"]))
[s appendFormat: @"<FirstName xmlns=\"Gal:\">%@</FirstName>", o];
[s appendFormat: @"<FirstName xmlns=\"Gal:\">%@</FirstName>", [o activeSyncRepresentationInContext: context]];
if ((o = [contact objectForKey: @"sn"]))
[s appendFormat: @"<LastName xmlns=\"Gal:\">%@</LastName>", o];
[s appendFormat: @"<LastName xmlns=\"Gal:\">%@</LastName>", [o activeSyncRepresentationInContext: context]];
if ([current_mail length] > 0)
[s appendFormat: @"<EmailAddress xmlns=\"Gal:\">%@</EmailAddress>", current_mail];
if ((o = [contact objectForKey: @"telephonenumber"]))
[s appendFormat: @"<Phone xmlns=\"Gal:\">%@</Phone>", o];
[s appendFormat: @"<Phone xmlns=\"Gal:\">%@</Phone>", [o activeSyncRepresentationInContext: context]];
if ((o = [contact objectForKey: @"homephone"]))
[s appendFormat: @"<HomePhone xmlns=\"Gal:\">%@</HomePhone>", o];
[s appendFormat: @"<HomePhone xmlns=\"Gal:\">%@</HomePhone>", [o activeSyncRepresentationInContext: context]];
if ((o = [contact objectForKey: @"mobile"]))
[s appendFormat: @"<MobilePhone xmlns=\"Gal:\">%@</MobilePhone>", o];
[s appendFormat: @"<MobilePhone xmlns=\"Gal:\">%@</MobilePhone>", [o activeSyncRepresentationInContext: context]];
if ((o = [contact objectForKey: @"o"]))
[s appendFormat: @"<Company xmlns=\"Gal:\">%@</Company>", o];
[s appendFormat: @"<Company xmlns=\"Gal:\">%@</Company>", [o activeSyncRepresentationInContext: context]];
[s appendString: @"</Properties>"];
[s appendString: @"</Result>"];
+592
View File
@@ -1,3 +1,595 @@
commit 2c24901803a6d84fc0e6f3617292df7fc4095f77
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Dec 1 12:01:50 2016 -0500
(js/css) Update generated files
M UI/WebServerResources/css/styles.css
M UI/WebServerResources/css/styles.css.map
M UI/WebServerResources/js/Common.js
M UI/WebServerResources/js/Common.js.map
M UI/WebServerResources/js/Mailer.services.js
M UI/WebServerResources/js/Mailer.services.js.map
M UI/WebServerResources/js/Scheduler.services.js
M UI/WebServerResources/js/Scheduler.services.js.map
M UI/WebServerResources/js/vendor/angular-material.js
M UI/WebServerResources/js/vendor/angular-material.min.js
commit 8f90aa96fe4a90001808468f93f8eef72ddf0f4c
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Dec 1 12:00:00 2016 -0500
(css,js) Update md to v1.1.1-master-b8357dc
M UI/WebServerResources/angular-material
M UI/WebServerResources/bower.json
commit ee5b60c5446822402b6d42e7c6ca81eddb4fee0f
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Dec 1 11:59:16 2016 -0500
Preparation for release 3.2.4
M Documentation/docinfo.xml
M Documentation/includes/global-attributes.asciidoc
M NEWS
M Version
commit d2b94eba09ffe30f5d2dddf07c22351ba87eb39e
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Dec 1 11:56:07 2016 -0500
(js) Fix detection of session expiration
M NEWS
M UI/WebServerResources/js/Common/Common.app.js
commit c9467e1ce3258ecc8f8b36447b94c30165368f55
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Dec 1 11:21:59 2016 -0500
Validate custom subject for vacation auto-reply
M UI/PreferencesUI/UIxJSONPreferences.m
M UI/Templates/PreferencesUI/UIxPreferences.wox
commit b4e9b7b60caef1e649f5ae3920411dba58f810f8
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Dec 1 11:14:38 2016 -0500
(css) Fix sidenav background color of Preferences
M UI/Templates/PreferencesUI/UIxPreferences.wox
commit 66710f1b174f605a654b1b1479df57fcf0dd5707
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Dec 1 11:07:28 2016 -0500
(i18n) Update translations
M SoObjects/Appointments/TurkishTurkey.lproj/Localizable.strings
M UI/Common/TurkishTurkey.lproj/Localizable.strings
M UI/Contacts/Macedonian.lproj/Localizable.strings
M UI/MailPartViewers/TurkishTurkey.lproj/Localizable.strings
M UI/MailerUI/Finnish.lproj/Localizable.strings
M UI/MailerUI/Macedonian.lproj/Localizable.strings
M UI/MailerUI/Serbian.lproj/Localizable.strings
M UI/MailerUI/TurkishTurkey.lproj/Localizable.strings
M UI/MainUI/Finnish.lproj/Localizable.strings
M UI/MainUI/Macedonian.lproj/Localizable.strings
M UI/MainUI/Serbian.lproj/Localizable.strings
M UI/MainUI/TurkishTurkey.lproj/Localizable.strings
M UI/PreferencesUI/Finnish.lproj/Localizable.strings
M UI/PreferencesUI/Macedonian.lproj/Localizable.strings
M UI/PreferencesUI/Serbian.lproj/Localizable.strings
M UI/PreferencesUI/TurkishTurkey.lproj/Localizable.strings
M UI/Scheduler/Finnish.lproj/Localizable.strings
M UI/Scheduler/TurkishTurkey.lproj/Localizable.strings
commit a61ea24cdb9051ab299aee6c1a0dbc04f2e59c90
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Dec 1 10:28:26 2016 -0500
(obj-c) Indentation
M Tools/SOGoToolBackup.m
M Tools/SOGoToolCleanupUser.m
commit 3e448d2c2ccbbc60bb413a7d96164568d2a859aa
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Dec 1 10:27:22 2016 -0500
New sogo-tool cleanup user feature (cont'd)
M SOPE/GDLContentStore/GCSFolder.m
M Tools/SOGoToolBackup.m
M Tools/SOGoToolCleanupUser.m
commit 9aa00d049debf1640a011f12e66418a96469423e
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Thu Dec 1 09:42:03 2016 -0500
Updated NEWS
M NEWS
commit fdea54f5e76bb27d2feeaca3f4f129e18533870d
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Thu Dec 1 09:40:24 2016 -0500
(fix) properly escape all GAL responses (fixes #3923)
M ActiveSync/SOGoActiveSyncDispatcher.m
commit 3c098ceca5b6d1f9812463ede3619bf308942193
Author: InverseBot <sogo@inverse.ca>
Date: Thu Dec 1 01:18:40 2016 -0500
(js/css) Update generated files
M UI/WebServerResources/css/styles.css
M UI/WebServerResources/css/styles.css.map
commit f7dd835f92c7a25c58736b1510b4b9f18272d31e
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 30 16:06:09 2016 -0500
Fix mail attribute when importing an LDIF file
Fixes #3878
M NEWS
M SoObjects/Contacts/NGVCard+SOGo.m
commit 7705c11cf7b135015bfac4be65845d7f3ba8a92c
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 30 15:32:29 2016 -0500
New sogo-tool cleanup user feature
M NEWS
M SOPE/GDLContentStore/GCSFolder.h
M SOPE/GDLContentStore/GCSFolder.m
M Tools/GNUmakefile
A Tools/SOGoToolCleanupUser.m
commit 52cdb71d1f2b3696f7cc395163d35a73d526c5c9
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 30 12:13:48 2016 -0500
Add sort by start date for the tasks list
Fixes #3840
M NEWS
M UI/Scheduler/NSArray+Scheduler.h
M UI/Scheduler/NSArray+Scheduler.m
M UI/Scheduler/UIxCalListingActions.m
M UI/Templates/SchedulerUI/UIxCalMainView.wox
commit a1746cd386d76689c96a2f01a46a66e121f6584b
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 30 12:09:11 2016 -0500
(css) Fix display of tabs with oversized content
M UI/WebServerResources/scss/components/tabs/tabs.scss
commit cd08ab81f16694cf320e84741eb0f30a9e9c8133
Author: InverseBot <sogo@inverse.ca>
Date: Wed Nov 30 02:47:47 2016 -0500
(js/css) Update generated files
M UI/WebServerResources/js/Common.js
M UI/WebServerResources/js/Common.js.map
M UI/WebServerResources/js/Scheduler.services.js
M UI/WebServerResources/js/Scheduler.services.js.map
M UI/WebServerResources/js/vendor/angular-file-upload.min.js
M UI/WebServerResources/js/vendor/angular-file-upload.min.js.map
commit d293fe79ed422d17e3e18b275b8218610ed91b3b
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Tue Nov 29 17:47:14 2016 -0500
Add handling of BYSETPOS for BYDAY in repeat rule
M NEWS
M SOPE/NGCards/iCalRecurrenceRule.m
commit 6f732ba5353c744cddc32e573384c907a228914b
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Tue Nov 29 16:14:42 2016 -0500
Fix MSExchangeFreeBusySOAPRequest.wod
M SoObjects/Appointments/MSExchangeFreeBusySOAPRequest.wo/MSExchangeFreeBusySOAPRequest.wod
commit b27c8682711e8fe8c5dcb635440af9cae7840527
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Tue Nov 29 15:48:15 2016 -0500
Fix freebusy data fetching of MS Exchange contacts
M NEWS
M SoObjects/Appointments/iCalEntityObject+SOGo.m
M UI/WebServerResources/js/Common/Resource.service.js
M UI/WebServerResources/js/Scheduler/Component.service.js
commit e0b0a1d78340b738336a5273ead688394ef3045c
Author: InverseBot <sogo@inverse.ca>
Date: Tue Nov 29 03:13:53 2016 -0500
(js/css) Update generated files
M UI/WebServerResources/js/Mailer.services.js
M UI/WebServerResources/js/Mailer.services.js.map
M UI/WebServerResources/js/Scheduler.services.js
M UI/WebServerResources/js/Scheduler.services.js.map
commit e059a6043e77af0cbafb8b2a697378c7257a25bb
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Mon Nov 28 15:33:02 2016 -0500
(js) Fix possible cross-origin exception
When SOGo is launched from an external link, either using a different
"target" or using window.open(), the Mail composer could throw a
JavaScript exception when trying to save or send a message that would
completely stop the operation.
Fixes #3900
M NEWS
M UI/WebServerResources/js/Mailer/MessageEditorController.js
commit e253f5735d1179123bd9de64c9d2aa496b742553
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Mon Nov 28 11:45:09 2016 -0500
(js) Don't test pristine state of Message composer
M UI/Templates/MailerUI/UIxMailEditor.wox
commit 328d67ec3a8d46e975f7826902fde004195b2c20
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Mon Nov 28 10:33:38 2016 -0500
Improve sort validation in Contacts module
M UI/Contacts/UIxContactsListActions.m
commit c3376a4ddff94cb497c3dbcb569f99dd9c123be5
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Mon Nov 28 10:14:23 2016 -0500
Fix some compilation warnings
M SoObjects/Appointments/SOGoAppointmentFolder.m
M SoObjects/Appointments/SOGoEMailAlarmsManager.h
M SoObjects/Appointments/SOGoEMailAlarmsManager.m
M SoObjects/Appointments/SOGoTaskObject.m
commit 220fb3d607160a8c226884a7afce4d243da6fc36
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Mon Nov 28 09:37:05 2016 -0500
(js) Update alarms after dragging an event
M UI/WebServerResources/js/Scheduler/CalendarListController.js
commit fb873fcae99ddc956e27bfb2be0c49106826f63b
Author: InverseBot <sogo@inverse.ca>
Date: Sat Nov 26 02:52:49 2016 -0500
(js/css) Update generated files
M UI/WebServerResources/css/styles.css
M UI/WebServerResources/css/styles.css.map
M UI/WebServerResources/js/Common.js
M UI/WebServerResources/js/Common.js.map
M UI/WebServerResources/js/Mailer.services.js
M UI/WebServerResources/js/Mailer.services.js.map
M UI/WebServerResources/js/Scheduler.services.js
M UI/WebServerResources/js/Scheduler.services.js.map
commit d2e03386d22d1df46589de868dbcb58a6dc5afbc
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Fri Nov 25 15:14:24 2016 -0500
(fix) use GMT + adjust bias when querying Exchange's FB info
M SoObjects/Appointments/MSExchangeFreeBusy.m
M SoObjects/Appointments/MSExchangeFreeBusySOAPRequest.h
M SoObjects/Appointments/MSExchangeFreeBusySOAPRequest.m
M SoObjects/Appointments/MSExchangeFreeBusySOAPRequest.wo/MSExchangeFreeBusySOAPRequest.html
commit 35a3a8ef1d11273b84be9f65050bb98c5a273d2c
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Fri Nov 25 10:57:26 2016 -0500
Update ChangeLog
M ChangeLog
commit 309846c894e6e411678251a003464ee56fc05131
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Fri Nov 25 10:52:36 2016 -0500
(js/css) Update generated files
M UI/WebServerResources/css/styles.css
M UI/WebServerResources/css/styles.css.map
M UI/WebServerResources/js/Common.js
M UI/WebServerResources/js/Common.js.map
M UI/WebServerResources/js/Mailer.services.js
M UI/WebServerResources/js/Mailer.services.js.map
M UI/WebServerResources/js/Scheduler.services.js
M UI/WebServerResources/js/Scheduler.services.js.map
commit f84d0e5f30e2bb0dacc45a6d1b8d4f8e7f67c74f
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Fri Nov 25 10:45:07 2016 -0500
Preparation for release 3.2.3
M Documentation/docinfo.xml
M Documentation/includes/global-attributes.asciidoc
M NEWS
M Version
commit 9bb22bd67a605fbcddfb09c2b8b733855908a3e4
Author: InverseBot <sogo@inverse.ca>
Date: Fri Nov 25 02:43:18 2016 -0500
(js/css) Update generated files
M UI/WebServerResources/js/Common.js
M UI/WebServerResources/js/Common.js.map
M UI/WebServerResources/js/vendor/angular-animate.js
M UI/WebServerResources/js/vendor/angular-animate.min.js
M UI/WebServerResources/js/vendor/angular-animate.min.js.map
M UI/WebServerResources/js/vendor/angular-aria.js
M UI/WebServerResources/js/vendor/angular-aria.min.js
M UI/WebServerResources/js/vendor/angular-aria.min.js.map
M UI/WebServerResources/js/vendor/angular-cookies.js
M UI/WebServerResources/js/vendor/angular-cookies.min.js
M UI/WebServerResources/js/vendor/angular-cookies.min.js.map
M UI/WebServerResources/js/vendor/angular-messages.js
M UI/WebServerResources/js/vendor/angular-messages.min.js
M UI/WebServerResources/js/vendor/angular-messages.min.js.map
M UI/WebServerResources/js/vendor/angular-sanitize.js
M UI/WebServerResources/js/vendor/angular-sanitize.min.js
M UI/WebServerResources/js/vendor/angular-sanitize.min.js.map
M UI/WebServerResources/js/vendor/angular.js
M UI/WebServerResources/js/vendor/angular.min.js
M UI/WebServerResources/js/vendor/angular.min.js.map
commit dc7cb6792afd3fe0a6b88491447d3c867d92e63e
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Nov 24 19:14:02 2016 -0500
(js) Improve alarms dialog
Fixes #3909
M NEWS
M UI/WebServerResources/js/Common/Alarm.service.js
commit a76f8dca04b023f9a1db21f6abe53956073a8d88
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Thu Nov 24 16:07:47 2016 -0500
Updated NEWS
M NEWS
commit 06e92bbde54288711ac7d768dcf3468af640ca7d
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Thu Nov 24 15:54:34 2016 -0500
Updated NEWS
M NEWS
commit 022c4bac988c38b7f7916946df3b95106be7562b
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Thu Nov 24 15:49:10 2016 -0500
(fix) wrong check for delete permission
M ActiveSync/SOGoActiveSyncDispatcher+Sync.m
commit 0e82802082ccb6c53a671cebb0740f70f6a63311
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Thu Nov 24 15:43:37 2016 -0500
(fix) also filter out recurrence-id
M SoObjects/Appointments/SOGoCalendarComponent.m
commit 0a4fa9aada724f7fef1f98255e5c4f5659f35cf2
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Nov 24 15:09:59 2016 -0500
(css) Update default theme
M UI/WebServerResources/css/theme-default.css
commit 71ca4a7b47d99c8fe02169bb785063c63ab0fce6
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Thu Nov 24 11:39:05 2016 -0500
(fix) don't check Dovecot conditions if we're using IMAP annotations
M SoObjects/Mailer/SOGoMailAccount.m
commit 0e07844108b770e65c5a7654df89acd2f92523c4
Author: InverseBot <sogo@inverse.ca>
Date: Thu Nov 24 03:11:27 2016 -0500
(js/css) Update generated files
M UI/WebServerResources/css/styles.css
M UI/WebServerResources/css/styles.css.map
M UI/WebServerResources/js/Administration.js
M UI/WebServerResources/js/Administration.js.map
M UI/WebServerResources/js/Administration.services.js
M UI/WebServerResources/js/Common.js
M UI/WebServerResources/js/Common.js.map
M UI/WebServerResources/js/Contacts.js
M UI/WebServerResources/js/Contacts.js.map
M UI/WebServerResources/js/Contacts.services.js
M UI/WebServerResources/js/Contacts.services.js.map
M UI/WebServerResources/js/Mailer.app.popup.js
M UI/WebServerResources/js/Mailer.app.popup.js.map
M UI/WebServerResources/js/Mailer.js
M UI/WebServerResources/js/Mailer.js.map
M UI/WebServerResources/js/Mailer.services.js
M UI/WebServerResources/js/Mailer.services.js.map
M UI/WebServerResources/js/Preferences.js
M UI/WebServerResources/js/Preferences.js.map
M UI/WebServerResources/js/Preferences.services.js
M UI/WebServerResources/js/Scheduler.services.js
M UI/WebServerResources/js/Scheduler.services.js.map
M UI/WebServerResources/js/vendor/FileSaver.min.js
M UI/WebServerResources/js/vendor/FileSaver.min.js.map
M UI/WebServerResources/js/vendor/angular-file-upload.min.js
M UI/WebServerResources/js/vendor/angular-file-upload.min.js.map
commit 7c9d8b19b98a4fbcab0b93d09eeecdab6c22d845
Author: André Peters <andryyy@users.noreply.github.com>
Date: Thu Nov 24 08:50:43 2016 +0100
Update SOGoACLGermanModificationAdvisory.wox
Fix umlauts in messages like "... Zugang zu seinem Order "Pers&#246;nlicher Kalender".
M UI/Templates/SOGoACLGermanModificationAdvisory.wox
commit 1f9ef6fea7b0f5204031b07b9f83952816bbc695
Author: André Peters <andryyy@users.noreply.github.com>
Date: Thu Nov 24 08:50:42 2016 +0100
Update SOGoACLGermanRemovalAdvisory.wox
Fix umlauts in messages like "... Zugang zu seinem Order "Pers&#246;nlicher Kalender".
M UI/Templates/SOGoACLGermanRemovalAdvisory.wox
commit 836fdb172203f545209b65198c4158b934021f36
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Wed Nov 23 16:30:41 2016 -0500
(feat) added photo support for LDAP-based address books
M Documentation/SOGoInstallationGuide.asciidoc
M NEWS
M SOPE/NGCards/NGVCardPhoto.h
M SOPE/NGCards/NGVCardPhoto.m
M SoObjects/Contacts/NGVCard+SOGo.m
M SoObjects/Contacts/NSDictionary+LDIF.h
M SoObjects/Contacts/NSDictionary+LDIF.m
M SoObjects/Contacts/NSString+LDIF.h
M SoObjects/Contacts/NSString+LDIF.m
M SoObjects/Contacts/SOGoContactEntryPhoto.h
M SoObjects/Contacts/SOGoContactEntryPhoto.m
M SoObjects/Contacts/SOGoContactGCSEntry.h
M SoObjects/Contacts/SOGoContactGCSEntry.m
M SoObjects/Contacts/SOGoContactGCSList.h
M SoObjects/Contacts/SOGoContactLDIFEntry.h
M SoObjects/Contacts/SOGoContactLDIFEntry.m
M SoObjects/Contacts/SOGoUserFolder+Contacts.h
M SoObjects/SOGo/LDAPSource.m
commit cb960fae023f6f9556f01f924734689ea9994678
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 23 14:57:24 2016 -0500
Restore attributes of base64-encoded img tags
Fixes #3814
M NEWS
M SoObjects/Mailer/NSString+Mail.m
commit b8df16cd8cdd470abdaacd374a03575ce62860a3
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 23 14:52:10 2016 -0500
Improve SOGoDefaults.plist to avoid warning
M SoObjects/SOGo/SOGoDefaults.plist
commit 84e591cdb9e4e4f738e76d28660927c598309e60
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 23 13:57:49 2016 -0500
(js) Update CKEditor to version 4.6.0
M NEWS
M UI/WebServerResources/js/vendor/ckeditor/build-config.js
M UI/WebServerResources/js/vendor/ckeditor/ckeditor.js
M UI/WebServerResources/js/vendor/ckeditor/contents.css
M UI/WebServerResources/js/vendor/ckeditor/lang/ar.js
M UI/WebServerResources/js/vendor/ckeditor/lang/ca.js
M UI/WebServerResources/js/vendor/ckeditor/lang/cs.js
M UI/WebServerResources/js/vendor/ckeditor/lang/cy.js
M UI/WebServerResources/js/vendor/ckeditor/lang/da.js
M UI/WebServerResources/js/vendor/ckeditor/lang/de.js
M UI/WebServerResources/js/vendor/ckeditor/lang/en.js
M UI/WebServerResources/js/vendor/ckeditor/lang/es.js
M UI/WebServerResources/js/vendor/ckeditor/lang/eu.js
M UI/WebServerResources/js/vendor/ckeditor/lang/fi.js
M UI/WebServerResources/js/vendor/ckeditor/lang/fr.js
M UI/WebServerResources/js/vendor/ckeditor/lang/hr.js
M UI/WebServerResources/js/vendor/ckeditor/lang/hu.js
M UI/WebServerResources/js/vendor/ckeditor/lang/is.js
M UI/WebServerResources/js/vendor/ckeditor/lang/it.js
M UI/WebServerResources/js/vendor/ckeditor/lang/lt.js
M UI/WebServerResources/js/vendor/ckeditor/lang/mk.js
M UI/WebServerResources/js/vendor/ckeditor/lang/nb.js
M UI/WebServerResources/js/vendor/ckeditor/lang/nl.js
M UI/WebServerResources/js/vendor/ckeditor/lang/no.js
M UI/WebServerResources/js/vendor/ckeditor/lang/pl.js
M UI/WebServerResources/js/vendor/ckeditor/lang/pt-br.js
M UI/WebServerResources/js/vendor/ckeditor/lang/pt.js
M UI/WebServerResources/js/vendor/ckeditor/lang/ru.js
M UI/WebServerResources/js/vendor/ckeditor/lang/sk.js
M UI/WebServerResources/js/vendor/ckeditor/lang/sl.js
M UI/WebServerResources/js/vendor/ckeditor/lang/sr.js
M UI/WebServerResources/js/vendor/ckeditor/lang/sv.js
M UI/WebServerResources/js/vendor/ckeditor/lang/tr.js
M UI/WebServerResources/js/vendor/ckeditor/lang/uk.js
M UI/WebServerResources/js/vendor/ckeditor/lang/zh-cn.js
M UI/WebServerResources/js/vendor/ckeditor/lang/zh.js
M UI/WebServerResources/js/vendor/ckeditor/plugins/icons.png
M UI/WebServerResources/js/vendor/ckeditor/plugins/icons_hidpi.png
M UI/WebServerResources/js/vendor/ckeditor/plugins/image/dialogs/image.js
M UI/WebServerResources/js/vendor/ckeditor/plugins/link/dialogs/link.js
M UI/WebServerResources/js/vendor/ckeditor/plugins/link/images/anchor.png
M UI/WebServerResources/js/vendor/ckeditor/plugins/link/images/hidpi/anchor.png
M UI/WebServerResources/js/vendor/ckeditor/plugins/pastefromword/filter/default.js
M UI/WebServerResources/js/vendor/ckeditor/plugins/scayt/dialogs/options.js
M UI/WebServerResources/js/vendor/ckeditor/plugins/wsc/dialogs/wsc.js
M UI/WebServerResources/js/vendor/ckeditor/skins/minimalist/editor.css
M UI/WebServerResources/js/vendor/ckeditor/skins/minimalist/editor_gecko.css
M UI/WebServerResources/js/vendor/ckeditor/skins/minimalist/editor_ie.css
M UI/WebServerResources/js/vendor/ckeditor/skins/minimalist/editor_ie7.css
M UI/WebServerResources/js/vendor/ckeditor/skins/minimalist/editor_ie8.css
M UI/WebServerResources/js/vendor/ckeditor/skins/minimalist/editor_iequirks.css
M UI/WebServerResources/js/vendor/ckeditor/skins/minimalist/icons.png
M UI/WebServerResources/js/vendor/ckeditor/skins/minimalist/icons_hidpi.png
M UI/WebServerResources/js/vendor/ckeditor/styles.js
commit daf3898674b2697f99790eadba6db3d4199df169
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 23 11:34:37 2016 -0500
Update ChangeLog
M ChangeLog
commit 1d7af945da42545152fc2d1b09bd6aac475e9f34
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 23 11:30:05 2016 -0500
@@ -1232,6 +1232,7 @@ mapping = {
2+h|Other
|Birthday |birthyear-birthmonth-birthday
|Note |description
|Photo |photo
|===
Authenticating using C.A.S.
+3 -3
View File
@@ -1,7 +1,7 @@
<!-- TODO have the build system take care of this -->
<releaseinfo>Version 3.2.2 - November 2016</releaseinfo>
<subtitle>for version 3.2.2</subtitle>
<date>2016-11-23</date>
<releaseinfo>Version 3.2.4 - December 2016</releaseinfo>
<subtitle>for version 3.2.4</subtitle>
<date>2016-12-01</date>
<legalnotice>
<para>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".</para>
@@ -13,6 +13,6 @@
// TODO have the build system take care of this
:release_version: 3.2.2
:release_version: 3.2.4
// vim: set syntax=asciidoc tabstop=2 shiftwidth=2 expandtab:
+34 -1
View File
@@ -1,10 +1,43 @@
3.2.4 (2016-12-01)
------------------
New features
- [core] new sogo-tool cleanup user feature
Enhancements
- [core] added handling of BYSETPOS for BYDAY in recurrence rules
- [web] added sort by start date for tasks (#3840)
Bug fixes
- [web] fixed JavaScript exception when SOGo is launched from an external link (#3900)
- [web] restored fetching of freebusy information of MS Exchange contacts
- [web] fixed mail attribute when importing an LDIF file (#3878)
- [web] don't save empty custom auto-reply subject
- [web] fixed detection of session expiration
- [eas] properly escape all GAL responses (#3923)
3.2.3 (2016-11-25)
------------------
New features
- [core] added photo support for LDAP-based address books (#747, #2184)
Enhancements
- [web] updated CKEditor to version 4.6.0
- [web] updated Angular to version 1.5.9
Bug fixes
- [web] restore attributes when rewriting base64-encoded img tags (#3814)
- [web] improve alarms dialog (#3909)
- [eas] fixed EAS delete operation
3.2.2 (2016-11-23)
------------------
New features
- [core] support repetitive email alarms on tasks and events (#1053)
- [web] allow to hide center column on large screens (#3861)
- [eas] relaxed permission requirements for subscription synchronizations (#3118 and #3180)
- [eas] relaxed permission requirements for subscription synchronizations (#3118, #3180)
Enhancements
- [core] added sha256-crypt and sha512-crypt password support
+2
View File
@@ -123,6 +123,7 @@
- (NSException *) deleteContentWithName: (NSString *) _name;
- (NSException *) deleteAllContent;
- (NSException *) purgeDeletedRecordsBefore: (unsigned int) days;
- (NSException *) touchContentWithName: (NSString *) _name;
- (NSException *) deleteFolder;
@@ -144,6 +145,7 @@
- (void) deleteAclWithSpecification: (EOFetchSpecification *) _fs;
- (unsigned int) recordsCountByExcludingDeleted: (BOOL) includeDeleted;
- (unsigned int) recordsCountDeletedBefore: (unsigned int) days;
- (NSCalendarDate *) lastModificationDate;
+162 -70
View File
@@ -68,7 +68,7 @@ static GCSStringFormatter *stringFormatter = nil;
+ (void) initialize
{
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
debugOn = [ud boolForKey:@"GCSFolderDebugEnabled"];
doLogStore = [ud boolForKey:@"GCSFolderStoreDebugEnabled"];
@@ -91,7 +91,7 @@ static GCSStringFormatter *stringFormatter = nil;
NSEnumerator *fields;
GCSFieldInfo *field;
NSString *fieldName;
if ((self = [super init])) {
folderManager = [_fm retain];
folderInfo = [_ftype retain];
@@ -114,7 +114,7 @@ static GCSStringFormatter *stringFormatter = nil;
if (![fieldName isEqualToString: @"c_name"])
[contentFieldNames addObject: fieldName];
}
folderId = [_folderId copy];
folderName = [[_path lastPathComponent] copy];
path = [_path copy];
@@ -124,7 +124,7 @@ static GCSStringFormatter *stringFormatter = nil;
folderTypeName = [_ftname copy];
ofFlags.requiresFolderSelect = 0;
ofFlags.sameTableForQuick =
ofFlags.sameTableForQuick =
[location isEqualTo:quickLocation] ? 1 : 0;
}
return self;
@@ -133,7 +133,7 @@ static GCSStringFormatter *stringFormatter = nil;
- (id) init
{
return [self initWithPath:nil primaryKey:nil
folderTypeName:nil folderType:nil
folderTypeName:nil folderType:nil
location:nil quickLocation:nil
aclLocation:nil
folderManager:nil];
@@ -271,13 +271,13 @@ static GCSStringFormatter *stringFormatter = nil;
NSDictionary *ui;
ui = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithUnsignedInt:_base],
[NSNumber numberWithUnsignedInt:_base],
@"GCSExpectedVersion",
[NSNumber numberWithUnsignedInt:_store],
@"GCSStoredVersion",
self, @"GCSFolder",
nil];
return [NSException exceptionWithName:@"GCSVersionMismatch"
reason:@"Transaction conflict during a GCS modification."
userInfo:ui];
@@ -369,7 +369,7 @@ static GCSStringFormatter *stringFormatter = nil;
requirement: (GCSTableRequirement) requirement
{
NSString *selectedFields;
if (requirement == bothTableRequired && [fields containsObject: @"c_name"])
selectedFields = [self _dottedFields: fields];
else
@@ -381,7 +381,7 @@ static GCSStringFormatter *stringFormatter = nil;
- (NSString *) _sqlForQualifier: (EOQualifier *) qualifier
{
NSMutableString *ms;
if (qualifier)
{
ms = [NSMutableString stringWithCapacity:32];
@@ -399,7 +399,7 @@ static GCSStringFormatter *stringFormatter = nil;
if ((count = [_so count]) == 0)
return nil;
sql = [NSMutableString stringWithCapacity:(count * 16)];
for (i = 0; i < count; i++) {
EOSortOrdering *so;
@@ -409,9 +409,9 @@ static GCSStringFormatter *stringFormatter = nil;
so = [_so objectAtIndex:i];
sel = [so selector];
column = [so key];
if (i > 0) [sql appendString:@", "];
if (sel_eq(sel, EOCompareAscending)) {
[sql appendString:column];
[sql appendString:@" ASC"];
@@ -558,21 +558,21 @@ static GCSStringFormatter *stringFormatter = nil;
error = [channel evaluateExpressionX:sql];
if (error)
{
[self errorWithFormat:@"%s: cannot execute quick-fetch SQL '%@': %@",
[self errorWithFormat:@"%s: cannot execute quick-fetch SQL '%@': %@",
__PRETTY_FUNCTION__, sql, error];
results = nil;
}
else
{
/* fetch results */
results = [NSMutableArray arrayWithCapacity: 64];
attrs = [channel describeResults: NO /* do not beautify names */];
while ((row = [channel fetchAttributes: attrs withZone: NULL]))
[results addObject: row];
/* release channels */
}
[self releaseChannel: channel];
// NSLog(@"/running query");
@@ -582,7 +582,7 @@ static GCSStringFormatter *stringFormatter = nil;
[self errorWithFormat:@" could not open storage channel!"];
results = nil;
}
return results;
}
@@ -764,7 +764,7 @@ andAttribute: (EOAttribute *)_attribute
EOAttribute *attribute;
id value;
unsigned i, count;
if (_row == nil || _table == nil)
return nil;
@@ -774,7 +774,7 @@ andAttribute: (EOAttribute *)_attribute
[sql appendString:@"UPDATE "];
[sql appendString:_table];
[sql appendString:@" SET "];
for (i = 0, count = [keys count]; i < count; i++) {
fieldName = [keys objectAtIndex:i];
@@ -823,7 +823,7 @@ andAttribute: (EOAttribute *)_attribute
{
EOAttribute *attribute;
EOEntity *entity;
entity = AUTORELEASE([[EOEntity alloc] init]);
[entity setName: _name];
[entity setExternalName: _name];
@@ -841,7 +841,7 @@ andAttribute: (EOAttribute *)_attribute
EOAttribute *attribute;
EOEntity *entity;
entity = [self _entityWithName: [self storeTableName]];
entity = [self _entityWithName: [self storeTableName]];
attribute = AUTORELEASE([[EOAttribute alloc] init]);
[attribute setName: @"c_version"];
@@ -873,7 +873,7 @@ andAttribute: (EOAttribute *)_attribute
- (EOSQLQualifier *) _qualifierUsingWhereColumn:(NSString *)_colname
isEqualTo:(id)_value
andColumn:(NSString *)_colname2
andColumn:(NSString *)_colname2
isEqualTo:(id)_value2
entity: (EOEntity *)_entity
withAdaptor: (EOAdaptor *)_adaptor
@@ -970,7 +970,7 @@ andAttribute: (EOAttribute *)_attribute
NSArray *rows;
NSException *error;
/* check preconditions */
/* check preconditions */
if (_name)
{
if (_content)
@@ -979,10 +979,10 @@ andAttribute: (EOAttribute *)_attribute
error = nil;
nowDate = [NSCalendarDate date];
now = [NSNumber numberWithUnsignedInt:[nowDate timeIntervalSince1970]];
if (doLogStore)
[self logWithFormat:@"should store content: '%@'\n%@", _name, _content];
rows = [self fetchFields: [NSArray arrayWithObjects:
@"c_version",
@"c_deleted",
@@ -1035,16 +1035,16 @@ andAttribute: (EOAttribute *)_attribute
if (quickRow)
{
[quickRow setObject:_name forKey:@"c_name"];
if (doLogStore)
[self logWithFormat:@" store quick: %@", quickRow];
/* make content row */
contentRow = [NSMutableDictionary dictionaryWithCapacity:16];
if (ofFlags.sameTableForQuick)
[contentRow addEntriesFromDictionary:quickRow];
[contentRow setObject:_name forKey:@"c_name"];
[contentRow setObject:now forKey:@"c_lastmodified"];
if (isNewRecord)
@@ -1058,7 +1058,7 @@ andAttribute: (EOAttribute *)_attribute
[NSNumber numberWithInt:([storedVersion intValue] + 1)]
forKey:@"c_version"];
[contentRow setObject:_content forKey:@"c_content"];
/* open channels */
storeChannel = [self acquireStoreChannel];
if (storeChannel)
@@ -1080,14 +1080,14 @@ andAttribute: (EOAttribute *)_attribute
/* we check if we can call directly methods on our adaptor
channel delegate. If not, we generate SQL ourself since it'll
be a little bit faster and less complex than using GDL to do so */
hasInsertDelegate = [[storeChannel delegate]
hasInsertDelegate = [[storeChannel delegate]
respondsToSelector: @selector(adaptorChannel:willInsertRow:forEntity:)];
hasUpdateDelegate = [[storeChannel delegate]
respondsToSelector: @selector(adaptorChannel:willUpdateRow:describedByQualifier:)];
[[quickChannel adaptorContext] beginTransaction];
[[storeChannel adaptorContext] beginTransaction];
quickTableEntity = [self _quickTableEntity];
storeTableEntity = [self _storeTableEntity];
@@ -1097,10 +1097,10 @@ andAttribute: (EOAttribute *)_attribute
error = (hasInsertDelegate
? [quickChannel insertRowX: quickRow forEntity: quickTableEntity]
: [quickChannel
evaluateExpressionX: [self _generateInsertStatementForRow: quickRow
evaluateExpressionX: [self _generateInsertStatementForRow: quickRow
adaptor: [[quickChannel adaptorContext] adaptor]
tableName: [self quickTableName]]]);
if (!error)
error = (hasInsertDelegate
? [storeChannel insertRowX: contentRow forEntity: storeTableEntity]
@@ -1138,7 +1138,7 @@ andAttribute: (EOAttribute *)_attribute
andColumn: (*_baseVersion != 0 ? (id)@"c_version" : (id)nil)
isEqualTo: (*_baseVersion != 0 ? [NSNumber numberWithUnsignedInt: *_baseVersion] : (NSNumber *)nil)]]);
}
if (error)
{
[[storeChannel adaptorContext] rollbackTransaction];
@@ -1193,19 +1193,19 @@ andAttribute: (EOAttribute *)_attribute
NSException *error;
NSString *delsql;
NSCalendarDate *nowDate;
/* check preconditions */
if (_name == nil) {
return [NSException exceptionWithName:@"GCSDeleteException"
reason:@"no content filename was provided"
userInfo:nil];
}
if (doLogStore)
[self logWithFormat:@"should delete content: '%@'", _name];
/* open channels */
if ((storeChannel = [self acquireStoreChannel]) == nil) {
[self errorWithFormat:@"could not open storage channel!"];
return nil;
@@ -1242,7 +1242,7 @@ andAttribute: (EOAttribute *)_attribute
delsql = [delsql stringByAppendingFormat:@" AND c_folder_id = %@", folderId];
if ((error = [storeChannel evaluateExpressionX:delsql]) != nil) {
[self errorWithFormat:
@"%s: cannot delete content '%@': %@",
@"%s: cannot delete content '%@': %@",
__PRETTY_FUNCTION__, delsql, error];
}
else if (!ofFlags.sameTableForQuick) {
@@ -1256,19 +1256,19 @@ andAttribute: (EOAttribute *)_attribute
delsql = [delsql stringByAppendingFormat:@" AND c_folder_id = %@", folderId];
if ((error = [quickChannel evaluateExpressionX:delsql]) != nil) {
[self errorWithFormat:
@"%s: cannot delete quick row '%@': %@",
@"%s: cannot delete quick row '%@': %@",
__PRETTY_FUNCTION__, delsql, error];
/*
/*
Note: we now have a "broken" record, needs to be periodically GCed by
a script!
*/
}
}
/* release channels and return */
[adaptorCtx commitTransaction];
[self releaseChannel:storeChannel];
if (!ofFlags.sameTableForQuick) {
[[quickChannel adaptorContext] commitTransaction];
[self releaseChannel:quickChannel];
@@ -1307,7 +1307,7 @@ andAttribute: (EOAttribute *)_attribute
query = [NSString stringWithFormat: @"DELETE FROM %@", [self storeTableName]];
error = [storeChannel evaluateExpressionX:query];
if (error)
[self errorWithFormat: @"%s: cannot delete content '%@': %@",
[self errorWithFormat: @"%s: cannot delete content '%@': %@",
__PRETTY_FUNCTION__, query, error];
else if (!ofFlags.sameTableForQuick) {
/* content row deleted, now delete the quick row */
@@ -1317,7 +1317,7 @@ andAttribute: (EOAttribute *)_attribute
query = [NSString stringWithFormat: @"DELETE FROM %@", [self quickTableName]];
error = [quickChannel evaluateExpressionX: query];
if (error)
[self errorWithFormat: @"%s: cannot delete quick row '%@': %@",
[self errorWithFormat: @"%s: cannot delete quick row '%@': %@",
__PRETTY_FUNCTION__, query, error];
}
@@ -1333,6 +1333,49 @@ andAttribute: (EOAttribute *)_attribute
return error;
}
- (NSException *) purgeDeletedRecordsBefore: (unsigned int) days
{
NSString *delSql, *table;
EOAdaptorContext *adaptorCtx;
EOAdaptorChannel *channel;
NSCalendarDate *nowDate;
unsigned int delta;
channel = [self acquireStoreChannel];
if ((channel = [self acquireStoreChannel]) == nil)
return [NSException exceptionWithName: @"GCSChannelException"
reason: @"could not open storage channel!"
userInfo: nil];
adaptorCtx = [channel adaptorContext];
[adaptorCtx beginTransaction];
table = [self storeTableName];
nowDate = [NSCalendarDate date];
delta = days * 24 * 60 * 60;
if (delta > [nowDate timeIntervalSince1970])
return [NSException exceptionWithName: @"GCSArgumentException"
reason: @"number of days is too high!"
userInfo: nil];
delta = [nowDate timeIntervalSince1970] - delta;
if ([GCSFolderManager singleStoreMode])
delSql = [NSString stringWithFormat: @"DELETE FROM %@"
@" WHERE c_folder_id = %@ AND c_deleted = 1 AND c_lastmodified < %u",
table, folderId, delta];
else
delSql = [NSString stringWithFormat: @"DELETE FROM %@"
@" WHERE c_deleted = 1 AND c_lastmodified < %u",
table, delta];
[channel evaluateExpressionX: delSql];
[[channel adaptorContext] commitTransaction];
[self releaseChannel: channel];
return nil;
}
- (NSException *) touchContentWithName: (NSString *) _name
{
NSString *touchSql, *table;
@@ -1389,14 +1432,14 @@ andAttribute: (EOAttribute *)_attribute
EOAdaptorChannel *channel;
NSString *delsql;
NSString *table;
/* open channels */
if ((channel = [self acquireStoreChannel]) == nil) {
[self errorWithFormat:@"could not open channel!"];
return nil;
}
/* delete rows */
[[channel adaptorContext] beginTransaction];
table = [self storeTableName];
@@ -1423,7 +1466,7 @@ andAttribute: (EOAttribute *)_attribute
delsql = [@"DROP TABLE " stringByAppendingString: table];
[channel evaluateExpressionX:delsql];
}
[[channel adaptorContext] commitTransaction];
[self releaseChannel:channel];
@@ -1437,7 +1480,7 @@ andAttribute: (EOAttribute *)_attribute
EOAdaptorChannel *quickChannel;
EOAdaptorContext *adaptorCtx;
NSException *error;
quickChannel = [self acquireQuickChannel];
adaptorCtx = [quickChannel adaptorContext];
[adaptorCtx beginTransaction];
@@ -1500,15 +1543,15 @@ andAttribute: (EOAttribute *)_attribute
NSArray *attrs;
NSMutableArray *results;
NSDictionary *row;
qualifier = [_fs qualifier];
sortOrderings = [_fs sortOrderings];
#if 0
[self logWithFormat:@"FETCH: %@", _flds];
[self logWithFormat:@" MATCH: %@", _q];
#endif
/* generate SQL */
sql = [NSMutableString stringWithCapacity:256];
@@ -1536,34 +1579,34 @@ andAttribute: (EOAttribute *)_attribute
[sql appendString:@" LIMIT "]; // count
[sql appendString:@" OFFSET "]; // index from 0
#endif
/* open channel */
if ((channel = [self acquireAclChannel]) == nil) {
[self errorWithFormat:@"could not open acl channel!"];
return nil;
}
/* run SQL */
if ((error = [channel evaluateExpressionX:sql]) != nil) {
[self errorWithFormat:@"%s: cannot execute acl-fetch SQL '%@': %@",
[self errorWithFormat:@"%s: cannot execute acl-fetch SQL '%@': %@",
__PRETTY_FUNCTION__, sql, error];
[self releaseChannel:channel];
return nil;
}
/* fetch results */
results = [NSMutableArray arrayWithCapacity:64];
attrs = [channel describeResults:NO /* do not beautify names */];
while ((row = [channel fetchAttributes:attrs withZone:NULL]) != nil)
[results addObject:row];
/* release channels */
[self releaseChannel: channel];
return results;
}
@@ -1602,7 +1645,7 @@ andAttribute: (EOAttribute *)_attribute
NSException *error;
NSMutableString *sql;
NSString *qSql;
sql = [NSMutableString stringWithCapacity:256];
[sql appendString:@"DELETE FROM "];
[sql appendString:[self aclTableName]];
@@ -1620,16 +1663,16 @@ andAttribute: (EOAttribute *)_attribute
[self errorWithFormat:@"could not open acl channel!"];
return;
}
/* run SQL */
[[channel adaptorContext] beginTransaction];
if ((error = [channel evaluateExpressionX:sql]) != nil) {
[self errorWithFormat:@"%s: cannot execute acl-fetch SQL '%@': %@",
[self errorWithFormat:@"%s: cannot execute acl-fetch SQL '%@': %@",
__PRETTY_FUNCTION__, sql, error];
[self releaseChannel:channel];
return;
}
[[channel adaptorContext] commitTransaction];
[self releaseChannel:channel];
}
@@ -1647,11 +1690,11 @@ andAttribute: (EOAttribute *)_attribute
if ([GCSFolderManager singleStoreMode])
sqlString = [NSMutableString stringWithFormat:
@"SELECT COUNT(*) AS CNT FROM %@ WHERE c_folder_id = %@",
@"SELECT COUNT(*) AS cnt FROM %@ WHERE c_folder_id = %@",
[self storeTableName], folderId];
else
sqlString = [NSMutableString stringWithFormat:
@"SELECT COUNT(*) AS CNT FROM %@",
@"SELECT COUNT(*) AS cnt FROM %@",
[self storeTableName]];
if (excludeDeleted)
{
@@ -1666,7 +1709,56 @@ andAttribute: (EOAttribute *)_attribute
{
error = [channel evaluateExpressionX: sqlString];
if (error)
[self errorWithFormat: @"%s: cannot execute SQL '%@': %@",
[self errorWithFormat: @"%s: cannot execute SQL '%@': %@",
__PRETTY_FUNCTION__, sqlString, error];
else
{
attrs = [channel describeResults: NO];
row = [channel fetchAttributes: attrs withZone: NULL];
count = [[row objectForKey: @"cnt"] unsignedIntValue];
[channel cancelFetch];
}
[self releaseChannel: channel];
}
return count;
}
- (unsigned int) recordsCountDeletedBefore: (unsigned int) days
{
EOAdaptorChannel *channel;
NSArray *attrs;
NSCalendarDate *nowDate;
NSDictionary *row;
NSException *error;
NSMutableString *sqlString;
unsigned int delta, count;
count = 0;
nowDate = [NSCalendarDate date];
delta = days * 24 * 60 * 60;
if (delta < [nowDate timeIntervalSince1970])
delta = [nowDate timeIntervalSince1970] - delta;
else
delta = 0;
if ([GCSFolderManager singleStoreMode])
sqlString = [NSMutableString stringWithFormat:
@"SELECT COUNT(*) AS cnt FROM %@"
@" WHERE c_folder_id = %@ AND c_lastmodified < %u AND c_deleted = 1",
[self storeTableName], folderId, delta];
else
sqlString = [NSMutableString stringWithFormat:
@"SELECT COUNT(*) AS cnt FROM %@"
@" WHERE c_lastmodified < %u AND c_deleted = 1",
[self storeTableName], delta];
channel = [self acquireStoreChannel];
if (channel)
{
error = [channel evaluateExpressionX: sqlString];
if (error)
[self errorWithFormat: @"%s: cannot execute SQL '%@': %@",
__PRETTY_FUNCTION__, sqlString, error];
else
{
@@ -1716,7 +1808,7 @@ andAttribute: (EOAttribute *)_attribute
- (NSString *)description {
NSMutableString *ms;
id tmp;
ms = [NSMutableString stringWithCapacity:256];
[ms appendFormat:@"<0x%p[%@]:", self, NSStringFromClass([self class])];
@@ -1729,7 +1821,7 @@ andAttribute: (EOAttribute *)_attribute
if ((tmp = [self folderTypeName])) [ms appendFormat:@" type=%@", tmp];
if ((tmp = [self location]))
[ms appendFormat:@" loc=%@", [tmp absoluteString]];
[ms appendString:@">"];
return ms;
}
+1 -3
View File
@@ -1,8 +1,6 @@
/* NGVCardPhoto.h - this file is part of NGCards
*
* Copyright (C) 2010 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2010-2016 Inverse inc.
*
* NGCards is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the
+1 -3
View File
@@ -1,8 +1,6 @@
/* NGVCardPhoto.m - this file is part of NGCards
*
* Copyright (C) 2010 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2010-2016 Inverse inc.
*
* NGCards is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the
+8 -1
View File
@@ -466,9 +466,16 @@ NSString *iCalWeekDayString[] = { @"SU", @"MO", @"TU", @"WE", @"TH", @"FR",
- (iCalByDayMask *) byDayMask
{
NSArray *setPos;
NSString *day;
if (dayMask == nil && [[self byDay] length])
{
dayMask = [iCalByDayMask byDayMaskWithRuleString: [self byDay]];
day = [self byDay];
setPos = [self bySetPos];
if ([setPos count])
day = [NSString stringWithFormat: @"%@%@", [setPos lastObject], day];
dayMask = [iCalByDayMask byDayMaskWithRuleString: day];
[dayMask retain];
}
+1 -1
View File
@@ -1,6 +1,6 @@
/* MSExchangeFreeBusy.m - this file is part of SOGo
*
* Copyright (C) 2012-2014 Inverse inc.
* Copyright (C) 2012-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
/*
Copyright (C) 2012 Inverse inc.
Copyright (C) 2012-2016 Inverse inc.
This file is part of SOGo.
@@ -1,5 +1,5 @@
/*
Copyright (C) 2012 Inverse inc.
Copyright (C) 2012-2016 Inverse inc.
This file is part of SOGo.
@@ -28,6 +28,8 @@
#import <SOGo/NSDictionary+Utilities.h>
#import <SOGo/NSObject+Utilities.h>
#import <SOGo/NSString+Utilities.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoUserDefaults.h>
#import "MSExchangeFreeBusySOAPRequest.h"
@@ -110,4 +112,15 @@
return [NSString stringWithFormat: @"%i", interval];
}
- (NSString *) bias
{
NSTimeZone *userTimeZone;
NSInteger secs;
userTimeZone = [[[context activeUser] userDefaults] timeZone];
secs = [userTimeZone secondsFromGMT];
return [NSString stringWithFormat: @"%i", (secs/60)];
}
@end
@@ -7,21 +7,21 @@
<GetUserAvailabilityRequest xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<t:TimeZone xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<Bias>0</Bias>
<StandardTime>
<Bias>0</Bias>
<Time>00:00:00</Time>
<DayOrder>1</DayOrder>
<Month>1</Month>
<DayOfWeek>Sunday</DayOfWeek>
</StandardTime>
<DaylightTime>
<Bias>0</Bias>
<Time>00:00:00</Time>
<DayOrder>1</DayOrder>
<Month>1</Month>
<DayOfWeek>Sunday</DayOfWeek>
</DaylightTime>
<Bias><#bias/></Bias>
<StandardTime>
<Bias>0</Bias>
<Time>02:00:00</Time>
<DayOrder>1</DayOrder>
<Month>11</Month>
<DayOfWeek>Sunday</DayOfWeek>
</StandardTime>
<DaylightTime>
<Bias>-60</Bias>
<Time>02:00:00</Time>
<DayOrder>2</DayOrder>
<Month>3</Month>
<DayOfWeek>Sunday</DayOfWeek>
</DaylightTime>
</t:TimeZone>
<MailboxDataArray>
<t:MailboxData>
@@ -3,6 +3,11 @@ serverVersion: WOString {
escapeHTML = NO;
}
bias: WOString {
value = bias;
escapeHTML = NO;
}
address: WOString {
value = address;
escapeHTML = NO;
@@ -976,7 +976,6 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir
NSCalendarDate *recurrenceId, *masterEndDate, *endDate;
NSMutableDictionary *newRecord;
NGCalendarDateRange *newRecordRange;
NSComparisonResult compare;
NSNumber *dateSecs;
id master;
@@ -232,7 +232,7 @@
type, classification]
inContext: context];
tags = [NSArray arrayWithObjects: @"DTSTAMP", @"DTSTART", @"DTEND", @"DUE", @"EXDATE", @"EXRULE", @"RRULE", nil];
tags = [NSArray arrayWithObjects: @"DTSTAMP", @"DTSTART", @"DTEND", @"DUE", @"EXDATE", @"EXRULE", @"RRULE", @"RECURRENCE-ID", nil];
uid = [[component uid] asCryptedPassUsingScheme: @"ssha256"
withSalt: [[settings userSalt] dataUsingEncoding: NSASCIIStringEncoding]
andEncoding: encHex];
@@ -32,10 +32,6 @@
+ (id) sharedEMailAlarmsManager;
/* PUT */
- (void) handleAlarmsInCalendar: (iCalCalendar *) calendar
fromComponent: (SOGoCalendarComponent *) component;
/* DELETE */
- (void) deleteAlarmsFromComponent: (SOGoCalendarComponent *) component;
@@ -25,6 +25,8 @@
#import <NGExtensions/NSObject+Logs.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGCards/iCalAlarm.h>
#import <NGCards/iCalCalendar.h>
#import <NGCards/iCalEvent.h>
@@ -34,6 +36,9 @@
#import <GDLContentStore/GCSFolder.h>
#import <GDLContentStore/GCSFolderManager.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoUserFolder.h>
#import "SOGoAppointmentFolder.h"
#import "SOGoAppointmentFolders.h"
#import "SOGoCalendarComponent.h"
+1
View File
@@ -21,6 +21,7 @@
#import <Foundation/NSCalendarDate.h>
#import <NGObjWeb/WORequest.h>
#import <NGObjWeb/WOResponse.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGExtensions/NSObject+Logs.h>
@@ -35,9 +35,9 @@ vtodo_class2 = "(Gizli görev)";
= "%{Organizer} %{SentByText}şu etkinliği iptal etti: %{Summary}.\n\nBaşlangıç: %{StartDate} saat %{StartTime}\nBitiş: %{EndDate} saat %{EndTime}\nTanım: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "\"%{Summary}\" isimli, %{OldStartDate} tarihli çalışma değişti";
= "%{OldStartDate} tarihindeki \"%{Summary}\" çalışması değişti";
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "\"%{Summary}\" isimli, %{OldStartDate} tarihli ve %{OldStartTime} saatli çalışma değişti";
= " %{OldStartDate} tarihli ve %{OldStartTime} başlangıç saatli \"%{Summary}\" çalışması değişti";
"The following parameters have changed in the \"%{Summary}\" meeting:"
= "\"%{Summary}\" buluşmasının şu özellikleri değişti:";
"Please accept or decline those changes."
@@ -45,16 +45,16 @@ vtodo_class2 = "(Gizli görev)";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Davet kabul edilidi: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Davet Geri Çevrildi: \"%{Summary}\"";
"Delegated invitation: \"%{Summary}\"" = "Temsilci atanmış davet: \"%{Summary}\"";
"Delegated invitation: \"%{Summary}\"" = "Vekalet edilen davet: \"%{Summary}\"";
"Not yet decided on invitation: \"%{Summary}\"" = "Davet hakkında henüz karar verilmedi: \"%{Summary}\"";
"%{Attendee} %{SentByText}has accepted your event invitation."
= "%{Attendee} %{SentByText}etkinlik davetinizi kabul etti.";
"%{Attendee} %{SentByText}has declined your event invitation."
= "%{Attendee} %{SentByText}davetinizi reddetti.";
"%{Attendee} %{SentByText}has delegated the invitation to %{Delegate}."
= "%{Attendee} %{SentByText} davete temsilci atadı: %{Delegate} ";
= "%{Attendee} %{SentByText} tarafından %{Delegate} davete vekil olarak atadı.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}henüz etkinlik davetinizle ilgili kararını vermedi.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Kaynağa ulaşılamıyor: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "\"%{Cn} %{SystemEmail}\" kanağı için maksimum eşzamanlı kayıt adedine (%{NumberOfSimultaneousBookings}) ulaşıldı. Çakışan \"%{EventTitle}\" etkinlik, %{StartDate} tarihinde başlıyor.";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "\"%{Cn} %{SystemEmail}\" kaynağı için maksimum eşzamanlı kayıt adedine (%{NumberOfSimultaneousBookings}) ulaşıldı. Çakışan \"%{EventTitle}\" etkinlik, %{StartDate} tarihinde başlıyor.";
@@ -140,7 +140,7 @@ NSNumber *iCalDistantFutureNumber = nil;
[currentAttendee rfc822Email], @"email",
([[currentAttendee cnWithoutQuotes] length] ? [currentAttendee cnWithoutQuotes] : [currentAttendee rfc822Email]) , @"name",
nil];
if ((uid = [currentAttendee uid]))
if ((uid = [currentAttendee uidInContext: context]))
{
[attendeeData setObject: uid forKey: @"uid"];
}
@@ -156,12 +156,12 @@ NSNumber *iCalDistantFutureNumber = nil;
if ([source conformsToProtocol: @protocol (SOGoDNSource)] &&
[[(NSObject <SOGoDNSource>*) source MSExchangeHostname] length])
{
uid = [NSString stringWithFormat: @"%@:%@", [[context activeUser] login],
[contactData valueForKey: @"c_uid"]];
[attendeeData setObject: uid forKey: @"uid"];
[attendeeData setObject: [NSNumber numberWithInt: 1] forKey: @"isMSExchange"];
[attendeeData setObject: [contactData valueForKey: @"c_uid"] forKey: @"uid"];
}
}
}
[attendeeData setObject: [[currentAttendee partStat] lowercaseString] forKey: @"partstat"];
[attendeeData setObject: [[currentAttendee role] lowercaseString] forKey: @"role"];
if ([[currentAttendee delegatedTo] length])
+9
View File
@@ -21,6 +21,7 @@
#import <Foundation/NSTimeZone.h>
#import <NGExtensions/NGBase64Coding.h>
#import <NGExtensions/NSNull+misc.h>
#import <NGCards/NSArray+NGCards.h>
@@ -241,6 +242,10 @@ convention:
[self addElementWithTag: @"email"
ofType: @"work"
withValue: [ldifRecord objectForKey: @"c_emails"]];
// When importing an LDIF file, add the default mail attribute
[self addElementWithTag: @"email"
ofType: @"work"
withValue: [ldifRecord objectForKey: @"mail"]];
homeMail = [self elementWithTag: @"email" ofType: @"home"];
[homeMail setSingleValue: [ldifRecord objectForKey: @"mozillasecondemail"] forKey: @""];
[[self uniqueChildWithTag: @"x-mozilla-html"]
@@ -358,6 +363,10 @@ convention:
else
[self setCategories: [o componentsSeparatedByString: @","]];
// Photo
if ([ldifRecord objectForKey: @"photo"])
[self setPhoto: [[ldifRecord objectForKey: @"photo"] stringByEncodingBase64]];
[self cleanupEmptyChildren];
}
+1 -3
View File
@@ -1,8 +1,6 @@
/* NSDictionary+LDIF.h - this file is part of SOGo
*
* Copyright (C) 2011 Inverse inc
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2011-2016 Inverse inc
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+1 -3
View File
@@ -1,8 +1,6 @@
/* NSDictionary+LDIF.m - this file is part of SOGo
*
* Copyright (C) 2011-2012 Inverse inc
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2011-2016 Inverse inc
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+1 -3
View File
@@ -1,8 +1,6 @@
/* NSString+LDIF.h - this file is part of SOGo
*
* Copyright (C) 2011 Inverse inc
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2011-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+1 -3
View File
@@ -1,8 +1,6 @@
/* NSString+LDIF.m - this file is part of SOGo
*
* Copyright (C) 2011 Inverse inc
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2011-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+1 -3
View File
@@ -1,8 +1,6 @@
/* SOGoContactEntryPhoto.h - this file is part of SOGo
*
* Copyright (C) 2010 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2010-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+1 -3
View File
@@ -1,8 +1,6 @@
/* SOGoContactEntryPhoto.m - this file is part of SOGo
*
* Copyright (C) 2010 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2010-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -1,6 +1,6 @@
/* SOGoContactGCSEntry.h - this file is part of SOGo
*
* Copyright (C) 2006-2014 Inverse inc.
* Copyright (C) 2006-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+2 -2
View File
@@ -1,6 +1,6 @@
/* SOGoContactGCSEntry.h - this file is part of SOGo
/* SOGoContactGCSEntry.m - this file is part of SOGo
*
* Copyright (C) 2006-2014 Inverse inc.
* Copyright (C) 2006-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+1 -3
View File
@@ -1,8 +1,6 @@
/* SOGoContactGCSList.h - this file is part of SOGo
*
* Copyright (C) 2008 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2008-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+1 -2
View File
@@ -1,7 +1,6 @@
/* SOGoContactLDIFEntry.h - this file is part of SOGo
* Copyright (C) 2006-2011 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2006-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+24 -2
View File
@@ -1,6 +1,6 @@
/* SOGoContactLDIFEntry.m - this file is part of SOGo
*
* Copyright (C) 2006-2014 Inverse inc.
* Copyright (C) 2006-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -26,6 +26,7 @@
#import <SOGo/SOGoPermissions.h>
#import "NGVCard+SOGo.h"
#import "SOGoContactEntryPhoto.h"
#import "SOGoContactGCSEntry.h"
#import "SOGoContactLDIFEntry.h"
#import "SOGoContactSourceFolder.h"
@@ -141,7 +142,7 @@
- (BOOL) hasPhoto
{
return NO;
return ([ldifEntry objectForKey: @"photo"] != nil);
}
- (NSString *) davEntityTag
@@ -227,4 +228,25 @@
return [newContact saveComponent: newCard];
}
- (id) lookupName: (NSString *) lookupName
inContext: (id) localContext
acquire: (BOOL) acquire
{
id obj;
if ([lookupName isEqualToString: @"photo"])
{
if ([self hasPhoto])
obj = [SOGoContactEntryPhoto objectWithName: lookupName
inContainer: self];
else
obj = nil;
}
else
obj = [super lookupName: lookupName inContext: localContext
acquire: acquire];
return obj;
}
@end
+1 -3
View File
@@ -1,8 +1,6 @@
/* SOGoUserFolder+Appointments.h - this file is part of SOGo
*
* Copyright (C) 2009 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2009-2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
+15 -2
View File
@@ -289,7 +289,7 @@
//
if ([value length] > 5 && [[value substringToIndex: 5] caseInsensitiveCompare: @"data:"] == NSOrderedSame)
{
NSString *uniqueId, *mimeType, *encoding;
NSString *uniqueId, *mimeType, *encoding, *attrName;
NGMimeBodyPart *bodyPart;
NGMutableHashMap *map;
NSData *data;
@@ -344,8 +344,21 @@
[body release];
[images addObject: bodyPart];
[result appendFormat: @"<img src=\"cid:%@\" type=\"%@\"", uniqueId, mimeType];
// Restore img attributes
for (i = 0; i < [attributes count]; i++)
{
attrName = [[attributes rawNameAtIndex: i] lowercaseString];
if (![attrName isEqualToString: @"src"] && ![attrName isEqualToString: @"type"])
{
value = [attributes valueAtIndex: i];
[result appendFormat: @" %@=\"%@\"", attrName, value];
}
}
[result appendFormat: @"<img src=\"cid:%@\" type=\"%@\"/>", uniqueId, mimeType];
[result appendString: @"/>"];
}
}
else if (voidTags)
+3 -2
View File
@@ -797,8 +797,9 @@ static NSString *inboxFolderName = @"INBOX";
// * LIST (\NonExistent \HasChildren) "/" shared
// * LIST (\NonExistent \HasChildren) "/" shared/jdoe@example.com
// * LIST (\HasNoChildren) "/" shared/jdoe@example.com/INBOX
else if (([[[result objectForKey: @"list"] objectForKey: currentFolder] indexOfObject: @"nonexistent"] != NSNotFound &&
[[[result objectForKey: @"list"] objectForKey: currentFolder] indexOfObject: @"haschildren"] != NSNotFound))
else if (!hasAnnotatemore &&
([[[result objectForKey: @"list"] objectForKey: currentFolder] indexOfObject: @"nonexistent"] != NSNotFound &&
[[[result objectForKey: @"list"] objectForKey: currentFolder] indexOfObject: @"haschildren"] != NSNotFound))
guid = [NSString stringWithFormat: @"%@", currentFolder];
else
{
+1 -3
View File
@@ -1211,7 +1211,6 @@ groupObjectClasses: (NSArray *) newGroupObjectClasses
{
ldapConnection = [self _ldapConnection];
qualifier = [self _qualifierForFilter: match];
// attributes = [self _searchAttributes];
attributes = [NSArray arrayWithObject: @"*"];
if ([_scope caseInsensitiveCompare: @"BASE"] == NSOrderedSame)
@@ -1237,10 +1236,9 @@ groupObjectClasses: (NSArray *) newGroupObjectClasses
- (NGLdapEntry *) _lookupLDAPEntry: (EOQualifier *) qualifier
{
NGLdapConnection *ldapConnection;
NSArray *attributes;
NSEnumerator *entries;
NSArray *attributes;
// attributes = [self _searchAttributes];
ldapConnection = [self _ldapConnection];
attributes = [NSArray arrayWithObject: @"*"];
+1 -1
View File
@@ -104,7 +104,7 @@
SOGoTrashFolderName = "Trash";
SOGoJunkFolderName = "Junk";
SOGoMailComposeMessageType = "html";
SOGoMailComposeFontSize = 0;
SOGoMailComposeFontSize = "0";
SOGoMailDisplayRemoteInlineImages = "never";
SOGoMailAutoSave = "5";
+1
View File
@@ -20,6 +20,7 @@ $(SOGO_TOOL)_OBJC_FILES += \
SOGoToolRemove.m \
SOGoToolRemoveDoubles.m \
SOGoToolRenameUser.m \
SOGoToolCleanupUser.m \
SOGoToolRestore.m \
SOGoToolCreateFolder.m \
SOGoToolUserPreferences.m \
+52 -51
View File
@@ -94,9 +94,9 @@
- (void) usage
{
fprintf (stderr, "backup directory ALL|user1 [user2] ...\n\n"
" directory the target directory where backup files will be stored\n"
" user the user of whom to save the data or ALL for everybody\n\n"
"Example: sogo-tool backup /tmp/foo ALL\n");
" directory the target directory where backup files will be stored\n"
" user the user of whom to save the data or ALL for everybody\n\n"
"Example: sogo-tool backup /tmp/foo ALL\n");
}
- (BOOL) checkDirectory
@@ -137,7 +137,6 @@
int count, max;
lm = [SOGoUserManager sharedUserManager];
pool = [[NSAutoreleasePool alloc] init];
max = [users count];
user = [users objectAtIndex: 0];
@@ -156,61 +155,63 @@
folderLocation = [fm folderInfoLocation];
fc = [cm acquireOpenChannelForURL: folderLocation];
if (fc)
{
allSqlUsers = [NSMutableArray new];
sql
= [NSString stringWithFormat: @"SELECT DISTINCT c_path2 FROM %@",
[folderLocation gcsTableName]];
[fc evaluateExpressionX: sql];
attrs = [fc describeResults: NO];
while ((infos = [fc fetchAttributes: attrs withZone: NULL]))
{
user = [infos objectForKey: @"c_path2"];
if (user)
[allSqlUsers addObject: user];
}
[cm releaseChannel: fc];
{
allSqlUsers = [NSMutableArray new];
sql
= [NSString stringWithFormat: @"SELECT DISTINCT c_path2 FROM %@",
[folderLocation gcsTableName]];
[fc evaluateExpressionX: sql];
attrs = [fc describeResults: NO];
while ((infos = [fc fetchAttributes: attrs withZone: NULL]))
{
user = [infos objectForKey: @"c_path2"];
if (user)
[allSqlUsers addObject: user];
}
[cm releaseChannel: fc];
users = allSqlUsers;
max = [users count];
}
users = allSqlUsers;
max = [users count];
[allSqlUsers autorelease];
}
}
pool = [[NSAutoreleasePool alloc] init];
allUsers = [NSMutableArray new];
for (count = 0; count < max; count++)
{
if (count > 0 && count%100 == 0)
{
DESTROY(pool);
pool = [[NSAutoreleasePool alloc] init];
}
{
DESTROY(pool);
pool = [[NSAutoreleasePool alloc] init];
}
user = [users objectAtIndex: count];
infos = [lm contactInfosForUserWithUIDorEmail: user];
if (infos)
[allUsers addObject: infos];
[allUsers addObject: infos];
else
{
// We haven't found the user based on the GCS table name
// Let's try to strip the domain part and search again.
// This can happen when using SOGoEnableDomainBasedUID (YES)
// but login in SOGo using a UID without domain (DomainLessLogin gets set)
NSRange r;
{
// We haven't found the user based on the GCS table name
// Let's try to strip the domain part and search again.
// This can happen when using SOGoEnableDomainBasedUID (YES)
// but login in SOGo using a UID without domain (DomainLessLogin gets set)
NSRange r;
r = [user rangeOfString: @"@"];
r = [user rangeOfString: @"@"];
if (r.location != NSNotFound)
{
user = [user substringToIndex: r.location];
infos = [lm contactInfosForUserWithUIDorEmail: user];
if (infos)
[allUsers addObject: infos];
else
NSLog (@"user '%@' unknown", user);
}
else
NSLog (@"user '%@' unknown", user);
}
if (r.location != NSNotFound)
{
user = [user substringToIndex: r.location];
infos = [lm contactInfosForUserWithUIDorEmail: user];
if (infos)
[allUsers addObject: infos];
else
NSLog (@"user '%@' unknown", user);
}
else
NSLog (@"user '%@' unknown", user);
}
}
[allUsers autorelease];
@@ -261,9 +262,9 @@
if (fc)
{
sql
= [NSString stringWithFormat: (@"SELECT c_foldername FROM %@"
@" WHERE c_path = '%@'"),
[folderLocation gcsTableName], folder];
= [NSString stringWithFormat: (@"SELECT c_foldername FROM %@"
@" WHERE c_path = '%@'"),
[folderLocation gcsTableName], folder];
[fc evaluateExpressionX: sql];
attrs = [fc describeResults: NO];
row = [fc fetchAttributes: attrs withZone: NULL];
@@ -341,7 +342,7 @@
forKey: @"acl"];
[folderRecord setObject: tableRecord forKey: folder];
rc = YES;
}
}
else
{
NSLog(@"Unable to extract records for folder %@", folder);
@@ -398,11 +399,11 @@
currentSource = [lm sourceWithID: sourceID];
userEntry = [currentSource lookupContactEntry: uid inDomain: domain];
if (userEntry)
{
{
[userRecord setObject: [userEntry ldifRecordAsString]
forKey: @"ldif_record"];
done = YES;
}
}
}
return YES;
+294
View File
@@ -0,0 +1,294 @@
/* SOGoToolCleanup.m - this file is part of SOGo
*
* Copyright (C) 2016 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSDictionary.h>
#import <Foundation/NSEnumerator.h>
#import <Foundation/NSString.h>
#import <GDLAccess/EOAdaptorChannel.h>
#import <GDLContentStore/GCSChannelManager.h>
#import <GDLContentStore/GCSFolderManager.h>
#import <GDLContentStore/GCSFolder.h>
#import <GDLContentStore/NSURL+GCS.h>
#import <SOGo/SOGoUserManager.h>
#import <SOGo/NSArray+Utilities.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoSystemDefaults.h>
#import "SOGoTool.h"
@interface SOGoToolCleanup : SOGoTool
{
NSArray *usersToCleanup;
unsigned int days;
}
@end
@implementation SOGoToolCleanup
+ (NSString *) command
{
return @"cleanup";
}
+ (NSString *) description
{
return @"cleanup deleted elements of user(s)";
}
- (id) init
{
if ((self = [super init]))
{
usersToCleanup = nil;
days = 0;
}
return self;
}
- (void) dealloc
{
[usersToCleanup release];
[super dealloc];
}
- (void) usage
{
fprintf (stderr, "cleanup [days] [user]...\n\n"
" days the age of deleted records to purge in days\n"
" user the user to purge the records or ALL for everybody\n\n"
"Example: sogo-tool cleanup jdoe\n");
}
- (BOOL) fetchUserIDs: (NSArray *) users
{
NSAutoreleasePool *pool;
SOGoUserManager *lm;
NSDictionary *infos;
NSString *user;
id allUsers;
int count, max;
lm = [SOGoUserManager sharedUserManager];
max = [users count];
user = [users objectAtIndex: 0];
if (max == 1 && [user isEqualToString: @"ALL"])
{
GCSFolderManager *fm;
GCSChannelManager *cm;
NSURL *folderLocation;
EOAdaptorChannel *fc;
NSArray *attrs;
NSMutableArray *allSqlUsers;
NSString *sql;
fm = [GCSFolderManager defaultFolderManager];
cm = [fm channelManager];
folderLocation = [fm folderInfoLocation];
fc = [cm acquireOpenChannelForURL: folderLocation];
if (fc)
{
allSqlUsers = [NSMutableArray new];
sql = [NSString stringWithFormat: @"SELECT DISTINCT c_path2 FROM %@",
[folderLocation gcsTableName]];
[fc evaluateExpressionX: sql];
attrs = [fc describeResults: NO];
while ((infos = [fc fetchAttributes: attrs withZone: NULL]))
{
user = [infos objectForKey: @"c_path2"];
if (user)
[allSqlUsers addObject: user];
}
[cm releaseChannel: fc];
users = allSqlUsers;
max = [users count];
[allSqlUsers autorelease];
}
}
pool = [[NSAutoreleasePool alloc] init];
allUsers = [NSMutableArray new];
for (count = 0; count < max; count++)
{
if (count > 0 && count%100 == 0)
{
DESTROY(pool);
pool = [[NSAutoreleasePool alloc] init];
}
user = [users objectAtIndex: count];
infos = [lm contactInfosForUserWithUIDorEmail: user];
if (infos)
[allUsers addObject: infos];
else
{
// We haven't found the user based on the GCS table name
// Let's try to strip the domain part and search again.
// This can happen when using SOGoEnableDomainBasedUID (YES)
// but login in SOGo using a UID without domain (DomainLessLogin gets set)
NSRange r;
r = [user rangeOfString: @"@"];
if (r.location != NSNotFound)
{
user = [user substringToIndex: r.location];
infos = [lm contactInfosForUserWithUIDorEmail: user];
if (infos)
[allUsers addObject: infos];
else
NSLog (@"user '%@' unknown", user);
}
else
NSLog (@"user '%@' unknown", user);
}
}
[allUsers autorelease];
ASSIGN (usersToCleanup, allUsers);
DESTROY(pool);
return ([usersToCleanup count] > 0);
}
- (BOOL) parseArguments
{
BOOL rc;
NSRange usersRange;
int max;
max = [arguments count];
if (max > 1)
{
days = [[arguments objectAtIndex: 0] intValue];
usersRange.location = 1;
usersRange.length = max - 1;
rc = [self fetchUserIDs: [arguments subarrayWithRange: usersRange]];
}
else
{
[self usage];
rc = NO;
}
return rc;
}
- (BOOL) cleanupFolder: (NSString *) folder
withFM: (GCSFolderManager *) fm
{
GCSFolder *gcsFolder;
NSException *error;
BOOL rc;
unsigned int count;
gcsFolder = [fm folderAtPath: folder];
count = [gcsFolder recordsCountDeletedBefore: days];
error = nil;
if (count > 0)
error = [gcsFolder purgeDeletedRecordsBefore: days];
if (error)
{
NSLog(@"Unable to purge records of folder %@", folder);
rc = NO;
}
else
{
NSLog(@"Purged %u records from folder %@", count, folder);
rc = YES;
}
return rc;
}
- (BOOL) cleanupUserFolders: (NSString *) uid
{
GCSFolderManager *fm;
NSArray *folders;
int count, max;
NSString *basePath, *folder;
fm = [GCSFolderManager defaultFolderManager];
basePath = [NSString stringWithFormat: @"/Users/%@", uid];
folders = [fm listSubFoldersAtPath: basePath recursive: YES];
max = [folders count];
for (count = 0; count < max; count++)
{
folder = [NSString stringWithFormat: @"%@/%@", basePath, [folders objectAtIndex: count]];
//NSLog (@"folder %d: %@", count, folder);
[self cleanupFolder: folder withFM: fm];
}
return YES;
}
- (BOOL) cleanupUser: (NSDictionary *) theUser
{
NSString *gcsUID, *domain;
SOGoSystemDefaults *sd;
sd = [SOGoSystemDefaults sharedSystemDefaults];
domain = [theUser objectForKey: @"c_domain"];
gcsUID = [theUser objectForKey: @"c_uid"];
if ([sd enableDomainBasedUID] && [gcsUID rangeOfString: @"@"].location == NSNotFound)
gcsUID = [NSString stringWithFormat: @"%@@%@", gcsUID, domain];
return [self cleanupUserFolders: gcsUID];
}
- (BOOL) proceed
{
NSAutoreleasePool *pool;
int count, max;
BOOL rc;
rc = YES;
pool = [NSAutoreleasePool new];
max = [usersToCleanup count];
for (count = 0; rc && count < max; count++)
{
rc = [self cleanupUser: [usersToCleanup objectAtIndex: count]];
if ((count % 10) == 0)
[pool emptyPool];
}
[pool release];
return rc;
}
- (BOOL) run
{
return ([self parseArguments] && [self proceed]);
}
@end
@@ -65,10 +65,10 @@
= "Bu modül veya sisteme erişim yetkiniz yok. Lütfen, sistem yöneticisiyle iletişime geçin.";
"You don't have the required privileges to perform the operation."
= "Bu işlemi gerçekleştirmek için gereken yetkilere sahip değilsiniz.";
"noEmailForDelegation" = "Davetinize temsilci atayacağınız adresleri belirtmelisiniz.";
"delegate is organizer" = "Temsilci etkinliği düzenleyen kişidir. Lütfen başka bir temsilci seçin. ";
"delegate is a participant" = "Temsilci zaten bu etkinliğe katılıyor.";
"delegate is a group" = "Belirtilen adres bir gruba denk geliyor. Sadece bir kişiyi temsilci atayabilirsiniz.";
"noEmailForDelegation" = "Davetinize vekil atayacağınız kişinin adresini belirtmelisiniz.";
"delegate is organizer" = "Vekil edilen kişi etkinliği düzenleyen kişidir. Lütfen başka bir vekil belirleyin edin. ";
"delegate is a participant" = "Vekil edilen kişi zaten bu etkinliğe katılıyor.";
"delegate is a group" = "Belirtilen adres bir gruba denk geliyor. Sadece bir kişiyi vekil tayin edebilirsiniz.";
"Snooze for " = "Beklenecek süre";
"5 minutes" = "5 dakika";
"10 minutes" = "10 dakika";
@@ -246,7 +246,7 @@
"Add Screen Name" = "Додади прекар";
"Synchronization" = "Синхронизација";
"Synchronize" = "Синхронизирај";
"Sucessfully subscribed to address book" = "Успешно сте претплатени на адресарот";
"Sucessfully subscribed to address book" = "Успешно се претплативте на адресната книга";
/* Aria label for scope of search on contacts */
"Search scope" = "Предмет на пребарување";
+12 -3
View File
@@ -79,10 +79,18 @@
{
NSString *s;
WORequest *rq;
static NSArray *sortKeys = nil;
if (!sortKeys)
{
sortKeys = [NSArray arrayWithObjects: @"c_cn", @"c_sn", @"c_givenname", @"c_mail",
@"c_screenname", @"c_o", @"c_telephonenumber", nil];
[sortKeys retain];
}
rq = [context request];
s = [rq formValueForKey: @"sort"];
if (![s length])
if (![s length] || ![sortKeys containsObject: s])
s = [self defaultSortKey];
return s;
@@ -98,7 +106,8 @@
ascending = [[context request] formValueForKey: @"asc"];
if ([sort length])
{
{
sort = [self sortKey];
us = [[context activeUser] userSettings];
contactSettings = [us objectForKey: @"Contact"];
// Must create if it doesn't exist
@@ -1,7 +1,7 @@
ACCEPTED = "kabul edildi";
COMPLETED = "tamamlandı";
DECLINED = "reddedildi";
DELEGATED = "temsilci atanmış";
DELEGATED = "yetkilendirildi";
"IN-PROCESS" = "işleniyor";
"NEEDS-ACTION" = "eyleme ihtiyaç var";
TENTATIVE = "geçici";
@@ -16,7 +16,7 @@ Appointment = "Çalışma";
was = "önceden";
Organizer = "Düzenleyen";
Time = "Süre";
Time = "Zaman";
Attendees = "Katılımcılar";
request_info = "sizi toplantıya katılmaya davet ediyor. ";
"Add to calendar" = "Takvime ekle";
@@ -25,10 +25,10 @@ request_info = "sizi toplantıya katılmaya davet ediyor. ";
Accept = "Kabul et";
Decline = "Reddet";
Tentative = "Geçici";
"Delegate ..." = "Temsilci Ata ...";
"Delegated to" = "Temsilci atanan";
"Delegate ..." = "Yetkili Ata ...";
"Delegated to" = "Yetkilendirilen";
"Update status in calendar" = "Takvimdeki durumu güncelle";
"delegated from" = "tarafından temsilci atandı";
"delegated from" = "Yetkilendiren";
reply_info_no_attendee = "Bir etkinlik programına yanıt aldınız fakat yanıtı gönderen kişi katılımcı değil.";
reply_info = "Yapmış olduğunuz etkinlik davetinin yanıtıdır.";
"to" = "alıcı";
+18 -1
View File
@@ -269,6 +269,10 @@
"quotasFormat" = "%{0}% käytetty %{1} Mt:sta";
"Unable to move/delete folder." = "Hakemiston siirto/poisto ei onnistu.";
/* Alternative operation when folder cannot be deleted */
"The mailbox could not be moved to the trash folder. Would you like to delete it immediately?"
= "Postilaatikon vienti roskakoriin epäonniestui. Haluatko poistaa sen välittömästi?";
/* Confirmation message when deleting multiple messages */
"Are you sure you want to delete the selected messages?" = "Haluatko varmasti poistaa valitut viestit?";
@@ -350,6 +354,7 @@
"Copy messages" = "Kopioi viestit";
"More messages options" = "Lisää viestiasetuksia";
"Mark as Unread" = "Merkitse lukemattomaksi";
"Mark as Read" = "Merkitse luetuksi";
"Closing Window ..." = "Ikkuna sulkeutuu...";
"Tried to send too many mails. Please wait." = "Yritetty lähettää liian monta viestiä. Ole hyvä ja odota.";
"View Mail" = "Näytä viesti";
@@ -373,5 +378,17 @@
/* Hotkey to write a new message */
"hotkey_compose" = "w";
/* Hotkey to mark selected message(s) as junk */
"hotkey_junk" = "j";
/* Hotkey to flag a message */
"hotkey_flag" = "f";
"hotkey_flag" = "*";
/* Hotkey to reply to a message */
"hotkey_reply" = "r";
/* Hotkey to reply to all recipients of a message */
"hotkey_replyall" = "a";
/* Hotkey to forward to a message */
"hotkey_forward" = "f";
@@ -77,7 +77,7 @@
"List and see this folder" = "Излистај и погледни ја оваа папка";
"Read mails from this folder" = "Читај ги пораките од оваа папка";
"Mark mails read and unread" = "Означи ги пораките како прочитани и непрочитани";
"Modify the flags of the mails in this folder" = "Промени ги знаменцата на пораките во оваа папка";
"Modify the flags of the mails in this folder" = "Промени ги ознаките на пораките во оваа папка";
"Insert, copy and move mails into this folder" = "Внеси, копирај и префрли пораки во оваа папка";
"Post mails" = "Испрати пораки";
"Add subfolders to this folder" = "Додади под папка во оваа папка";
@@ -242,7 +242,7 @@
"Thread As Read" = "Преписката како прочитана";
"As Read By Date..." = "Прочитано по датум...";
"All Read" = "Сето прочитано";
"Flag" = "Знаменце";
"Flag" = "Ознака";
"As Junk" = "Како отпад";
"As Not Junk" = "Не е отпад";
"Run Junk Mail Controls" = "Изврши ги контролите за отпад";
@@ -269,6 +269,10 @@
"quotasFormat" = "%{0}% used on %{1} MB";
"Unable to move/delete folder." = "Не е можно да ја префрлите/избришете папката.";
/* Alternative operation when folder cannot be deleted */
"The mailbox could not be moved to the trash folder. Would you like to delete it immediately?"
= "Сандачето не може да биде преместено во кантата за ѓубре. Дали би сакале веднаш да го избришам?";
/* Confirmation message when deleting multiple messages */
"Are you sure you want to delete the selected messages?" = "Дали сте сигурни дека сакате да ги избришете селектираните пораки?";
@@ -350,6 +354,7 @@
"Copy messages" = "Копирај ја пораката";
"More messages options" = "Повеќе опции за пораките";
"Mark as Unread" = "Означи како непрочитана";
"Mark as Read" = "Означи како прочитано";
"Closing Window ..." = "Затварање на прозорците ...";
"Tried to send too many mails. Please wait." = "Се обидов да пратам премногу пораки. Ве молам почекајте.";
"View Mail" = "Види пошта";
@@ -373,6 +378,9 @@
/* Hotkey to write a new message */
"hotkey_compose" = "w";
/* Hotkey to mark selected message(s) as junk */
"hotkey_junk" = "ј";
/* Hotkey to flag a message */
"hotkey_flag" = "*";
@@ -269,6 +269,10 @@
"quotasFormat" = "%{0}% искоришћено од %{1} МБ";
"Unable to move/delete folder." = "Не могу да преместим/обришем директоријум.";
/* Alternative operation when folder cannot be deleted */
"The mailbox could not be moved to the trash folder. Would you like to delete it immediately?"
= "Поруке не могу бити премештене у директоријум канте. Да ли желите да их одмах обришете?";
/* Confirmation message when deleting multiple messages */
"Are you sure you want to delete the selected messages?" = "Да ли сте сигурни да желите да обришете одабране поруке?";
@@ -350,6 +354,7 @@
"Copy messages" = "Копирај поруке";
"More messages options" = "Више опција порука";
"Mark as Unread" = "Означи као непрочитано";
"Mark as Read" = "Означи као прочитано";
"Closing Window ..." = "Затварам прозор...";
"Tried to send too many mails. Please wait." = "Покушавам да пошаљем превише поште. Молимо сачекајте.";
"View Mail" = "Види пошту";
@@ -373,6 +378,9 @@
/* Hotkey to write a new message */
"hotkey_compose" = "w";
/* Hotkey to mark selected message(s) as junk */
"hotkey_junk" = "j";
/* Hotkey to flag a message */
"hotkey_flag" = "*";
@@ -2,7 +2,7 @@
/* Icon's label */
"Create" = "Oluştur";
"Empty Trash" = "Çöp Kutusunu Boşalt";
"Empty Trash" = "Çöp Klasörünü Boşalt";
"Delete" = "Sil";
"Expunge" = "Silip At";
"Forward" = "İlet";
@@ -68,7 +68,7 @@
/* Compact Folder success message */
"Folder compacted" = "Klasör sıkıştırıldı";
/* Empty Trash success message */
"Trash emptied" = "Çöp Kutusu boşaltıldı";
"Trash emptied" = "Çöp boşaltıldı";
/* acls */
"Access rights to" = "Klasörün erişim yetkileri";
@@ -76,7 +76,7 @@
"Any Authenticated User" = "Kimliği doğrulanmış her kullanıcı";
"List and see this folder" = "Klasörü listele ve görüntüle";
"Read mails from this folder" = "Klasördeki iletileri okur";
"Mark mails read and unread" = "Okumuş ve okunmamış iletileri işaretle";
"Mark mails read and unread" = "Okumuş ve okunmamış iletileri işaretler";
"Modify the flags of the mails in this folder" = "Bu klasördeki iletilerin yıldızlarını değiştirir";
"Insert, copy and move mails into this folder" = "İletiler bu klasöre yerleştirir, kopyalar ve taşır";
"Post mails" = "İletileri postalar";
@@ -141,7 +141,7 @@
"Date" = "Tarih";
"View" = "Görüntüle";
"All" = "Hepsi";
"No message" = "İleti yok";
"No message" = "Klasör boş";
"messages" = "ileti";
"Yesterday" = "Dün";
"first" = "İlk";
@@ -156,8 +156,8 @@
/* Tree */
"SentFolderName" = "Gönderilmiş";
"TrashFolderName" = "Çöp Kutusu";
"InboxFolderName" = "Gelen Kutusu";
"TrashFolderName" = "Çöp";
"InboxFolderName" = "Gelen";
"DraftsFolderName" = "Taslaklar";
"JunkFolderName" = "İstenmeyen";
"SieveFolderName" = "Süzgeçler";
@@ -190,11 +190,11 @@
"Use This Folder For" = "Bu Klasörü Şunun İçin Kullan";
"Get Messages for Account" = "Hesaptaki İletileri Al";
"Properties..." = "Özellikler...";
"Delegation..." = "Temsilci Atama...";
"Delegation..." = "Yetkili Tayini...";
/* Use This Folder menu */
"Sent Messages" = "Gönderilmiş İletiler";
"Drafts" = "Taslak İletiler";
"Drafts" = "Taslaklar";
"Deleted Messages" = "Silinmiş İletiler";
"Junk Messages" = "İstenmeyen İletiler";
@@ -263,7 +263,7 @@
"Enter the new name of your folder"
="Yeni klasörünüzün adını yazın";
"Do you really want to move this folder into the trash ?"
= "Bu klasörü çöp kutusuna taşımak istediğinizden emin misiniz?";
= "Bu klasörü çöpe taşımak istediğinizden emin misiniz?";
"Operation failed" = "İşlem başarısiz oldu";
"Quota" = "Kota:";
"quotasFormat" = "%{0}% kullanılıyor, toplam %{1} MB";
@@ -271,7 +271,7 @@
/* Alternative operation when folder cannot be deleted */
"The mailbox could not be moved to the trash folder. Would you like to delete it immediately?"
= "E-posta klasörü çöp kutusuna taşınamıyor. Klasörü hemen silmek ister misiniz?";
= "Klasör çöpe taşınamıyor. Klasörü hemen silmek ister misiniz?";
/* Confirmation message when deleting multiple messages */
"Are you sure you want to delete the selected messages?" = "Seçili iletileri silmek istediğinizden emin misiniz?";
@@ -293,7 +293,7 @@
"The folder could not be deleted."
= "Klasör silinemiyor.";
"The trash could not be emptied."
= "Çöp Kutusu boşaltılamıyor.";
= "Çöp boşaltılamıyor.";
"The folder functionality could not be changed."
= "Klasörün işlevi değişitirilemiyor.";
"You need to choose a non-virtual folder!" = "Sanal olmayan bir klasör seçmelisiniz.";
@@ -304,7 +304,7 @@
/* Message operations */
"The messages could not be moved to the trash folder. Would you like to delete them immediately?"
= "İletiler çöp kutusuna taşınamıyor. Bu iletileri hemen silmek ister misiniz?";
= "İletiler çöpe taşınamıyor. Bu iletileri hemen silmek ister misiniz?";
/* Message editing */
"error_missingsubject" = "İletiye bir konu başlığı yazılmadı. İletiyi konusuz olarak göndermek istediğinizden emin misiniz?";
@@ -329,7 +329,7 @@
/* Contacts list in mail editor */
"Email" = "E-posta";
"More mail options" = "Diğer e-posta seçenekleri";
"Delegation" = "Temsilci Atama";
"Delegation" = "Yetkili Tayini";
"Add User" = "Kullanıcı Ekleyin";
"Add a tag" = "Etiket ekle";
"reply" = "yanıtla";
@@ -340,12 +340,12 @@
"Rename" = "Yeniden Adlandır";
"Compact" = "Sıkıştır";
"Export" = "Dışarı Aktar";
"Set as Drafts" = "Taslaklar olarak tanımla";
"Set as Sent" = "Gönderilmiş olarak tanımla";
"Set as Trash" = "Çöp Kutusu olarak tanımla";
"Set as Drafts" = "Taslaklar klasörü olarak tanımla";
"Set as Sent" = "Gönderilmiş klasörü olarak tanımla";
"Set as Trash" = "Çöp klasörü olarak tanımla";
/* Set the folder as the one holding Junk mails */
"Set as Junk" = "İstenmeyen olarak belirle";
"Set as Junk" = "İstenmeyen klasörü olarak tanımla";
"Sort" = "Sıralandır";
"Order Received" = "Alınan Tarih";
@@ -15,6 +15,7 @@
"Authentication Failed" = "Tunnistautuminen epäonnistui";
"Wrong username or password." = "Väärä käyttäjätunnus tai salasana.";
"Retry" = "Yritä uudelleen";
"cookiesNotEnabled" = "Et voi kirjautua koska selaimesi evästeet eivät ole käytössä. Salli evästeet selaimen asetuksista ja yritä uudelleen.";
"browserNotCompatible" = "Olemme havainneet että selaimesi versiota ei tällä hetkellä tueta tällä sivustolla. Suosituksemme on käyttää Firefoxia. Napsauta alla olevaa linkkiä ladataksesi uusimman version tästä selaimesta.";
"alternativeBrowsers" = "Vaihtoehtoisesti voit myös käyttää seuraavia yhteensopivia selaimia";
@@ -15,6 +15,7 @@
"Authentication Failed" = "Неуспешна автентификација";
"Wrong username or password." = "Погрешно корисничко име или лозинка.";
"Retry" = "Обиди се повторно";
"cookiesNotEnabled" = "Не можете да се најавите поради тоа што колачињата на вашиот прелистувач не се активирани. Ве молиме да ги овозможите колачињата во опциите на вашиот прелистувач и да се обидете повторно.";
"browserNotCompatible" = "Забележивме дека вашиот прелистувач во моментов не е поддржан од овој сајт. Наша препорака е да користите Firefox. Клинете врз овој линк да ја преземете последната верзија на овој прелистувач.";
"alternativeBrowsers" = "Како алтернатива исто така можете да користите еден од компатибилните прелистувачи";
@@ -15,6 +15,7 @@
"Authentication Failed" = "Операција није успела";
"Wrong username or password." = "Погрешно корисничко име и лозинка.";
"Retry" = "Покушај поново";
"cookiesNotEnabled" = "Не можете се пријавити јер су онемогућени колачићи у вашеп прегледачу. Молимо омогућите колачиће у подашавањима прегледача и покушајте поново.";
"browserNotCompatible" = "Открили смо да верзија вашег прегледача није подржана на овом сајту. Наша препорука је да корситите Firefox. Кликните на линк испод да преузмете последњу верзију овог прегледача.";
"alternativeBrowsers" = "Алтернативно, можете користити и следеће компатибилне прегледаче";
@@ -16,7 +16,7 @@
"Authentication Failed" = "Kullanıcı Kimliği Doğrulanamadı";
"Wrong username or password." = "Kullanıcı adı veya şifre yanlış.";
"Retry" = "Yeniden deneyin";
"cookiesNotEnabled" = "Giriş yapamıyorsunuz çünkü tarayıcınızdaki çerezler engellenmiş. Lütfen tarayıcınızın ayarlarında çerezleri etkinleştirip, tekrar deneyin.";
"cookiesNotEnabled" = "Giriş yapamıyorsunuz, çünkü tarayıcınızdaki çerezler engellenmiş. Lütfen tarayıcınızın ayarlarında çerezleri etkinleştirip, tekrar deneyin.";
"browserNotCompatible" = "Tarayıcı sürümünüzün bu sitede henüz desteklenmediğini tespit ettik. Tavsiyemiz Firefox kullanmanız. Bu tarayıcının son sürümünü indirmek için aşağıdaki bağlantıya tıklayın.";
"alternativeBrowsers" = "Diğer bir seçenek olarak, aşağıdaki uyumlu tarayıcıları da kullanabilirsiniz";
"alternativeBrowserSafari" = "Diğer bir seçenek olarak, Safari de kullanabilirsiniz.";
@@ -146,6 +146,7 @@
/* Mailer */
"Labels" = "Otsikot";
"Label" = "Otsikoi";
"New label" = "Uusi otsikko";
"Show subscribed mailboxes only" = "Näytä vain tilatut sähköpostikansiot";
"Synchronize only default mail folders (EAS)" = "Synkronoi vain oletus sähköpostikansiot (EAS)";
"Sort messages by threads" = "Järjestä viestit ketjuiksi";
@@ -212,6 +213,7 @@
/* Event+task categories */
"Calendar Category" = "Kalenteriryhmä";
"Add Calendar Category" = "Lisää kalenteriryhmä";
"New category" = "Uusi kategoria";
"Remove Calendar Category" = "Poista kalenteriryhmä";
"Contact Category" = "Yhteystietoryhmä";
"Add Contact Category" = "Lisää yhteystietoryhmä";
@@ -317,11 +319,27 @@
"Header" = "Otsikko";
"Body" = "Runko";
"Flag the message with" = "Merkitse viesti";
/* Select field label of "flag message" mail filter action */
"Flag" = "Lippu";
"Discard the message" = "Hylkää viesti";
"File the message in" = "Arkistoi viesti";
/* Select field label of "file message" mail filter action */
"Mailbox" = "Postilaatikko";
"Keep the message" = "Pidä viesti";
"Forward the message to" = "Lähetä viesti edelleen";
/* Input field label of "forward" mail filter action */
"Email" = "Sähköposti";
"Send a reject message" = "Lähetä hylkäysviesti";
/* Input field label of "reject" mail filter action */
"Message" = "Viesti";
"Send a vacation message" = "Lähetä lomaviesti";
"Stop processing filter rules" = "Pysäytä suodatinsääntöjen suoritus";
"is under" = "on alle";
@@ -319,11 +319,27 @@
"Header" = "Заглавје";
"Body" = "Тело";
"Flag the message with" = "Означи ја пораката со";
/* Select field label of "flag message" mail filter action */
"Flag" = "Ознака";
"Discard the message" = "Отфрли ја поракта";
"File the message in" = "Смести ја пораката во";
/* Select field label of "file message" mail filter action */
"Mailbox" = "Поштенско сандаче";
"Keep the message" = "Зачувај ја пораката";
"Forward the message to" = "Препратија пораката до";
/* Input field label of "forward" mail filter action */
"Email" = "Електронска пошта";
"Send a reject message" = "Испрати порака за отфрлање";
/* Input field label of "reject" mail filter action */
"Message" = "Порака";
"Send a vacation message" = "Испрати автоматска порака кога си на одмор";
"Stop processing filter rules" = "Запри го процесирањето на правилата за филтрирање";
"is under" = "е под";
@@ -319,11 +319,27 @@
"Header" = "Заглавље";
"Body" = "Тело";
"Flag the message with" = "Означи поруку следећом заставицом";
/* Select field label of "flag message" mail filter action */
"Flag" = "Заставица";
"Discard the message" = "Одбаци поруку";
"File the message in" = "Стави поруку у";
/* Select field label of "file message" mail filter action */
"Mailbox" = "Поштанско сандуче";
"Keep the message" = "Сачувај поруку";
"Forward the message to" = "Проследи поруку";
/* Input field label of "forward" mail filter action */
"Email" = "Епошта";
"Send a reject message" = "Пошаљи поруку одбијања";
/* Input field label of "reject" mail filter action */
"Message" = "Порука";
"Send a vacation message" = "Пошаљи поруку за одмор";
"Stop processing filter rules" = "Заустави обраду правила филтера";
"is under" = "је испод";
@@ -112,7 +112,7 @@
"Day end time" = "Günün bitiş saati";
"Day start time must be prior to day end time." = "Günün başlangıç saati, günün bitiş saatinden önce olmalı.";
"Week days to display" = "Gösterilen günler";
"Show time as busy outside working hours" = "Çalışma saati dışındaki saatleri meşgul olarak göster";
"Show time as busy outside working hours" = "Mesai saati haricindeki zamanı meşgul olarak göster";
"First week of year" = "Yılın ilk haftası";
"Enable reminders for Calendar items" = "Takvim ögeleri için hatırlatıcıları etkinleştir";
"Play a sound when a reminder comes due" = "Hatırlatma zamanı geldiğinde sesli olarak uyar";
@@ -120,8 +120,8 @@
"firstWeekOfYear_January1" = "1 Ocak'da başlar";
"firstWeekOfYear_First4DayWeek" = "İlk 4-günlük haftadır";
"firstWeekOfYear_FirstFullWeek" = "İlk tam haftadır";
"Prevent from being invited to appointments" = "Çalışma davet almayı engelle";
"White list for appointment invitations" = "Çalışma daveti beyaz listesi";
"Prevent from being invited to appointments" = "Çalışma daveti almayı engelle";
"White list for appointment invitations" = "Çalışma davetleri beyaz listesi";
"Contacts Names" = "Kişi İsimleri";
/* Default Calendar */
+1 -1
View File
@@ -345,7 +345,7 @@ static SoProduct *preferencesProduct = nil;
// Add the domain's default vacation subject if user has not specified a custom subject
vacationOptions = [defaults vacationOptions];
if (![vacationOptions objectForKey: @"customSubject"] && [domainDefaults vacationDefaultSubject])
if (![[vacationOptions objectForKey: @"customSubject"] length] && [domainDefaults vacationDefaultSubject])
{
if (vacationOptions)
vacation = [NSMutableDictionary dictionaryWithDictionary: vacationOptions];
@@ -380,7 +380,7 @@
/* email notifications */
"Send Appointment Notifications" = "Lähetä tapaamismuistutukset";
"From" = "Keneltä";
"From" = "Aloitusaika";
"To" = "Kenelle";
/* validation errors */
@@ -565,7 +565,7 @@ vtodo_class2 = "(Luottamuksellinen tehtävä)";
"More options" = "Lisää valintoja";
"Delete This Occurrence" = "Poista tämä tapahtuma";
"Delete All Occurrences" = "Poista kaikki tapahtumat";
"Add From" = "Lisää lähettäjä";
"Add From" = "Lisää aloitusaika";
"Add Due" = "Lisää määräaika";
"Import" = "Tuo";
"Rename" = "Nimeä uudelleen";
+18 -16
View File
@@ -54,21 +54,22 @@
#define taskCalendarNameIndex 2
#define taskStatusIndex 3
#define taskTitleIndex 4
#define taskEndDateIndex 5
#define taskClassificationIndex 6
#define taskLocationIndex 7
#define taskCategoryIndex 8
#define taskViewableIndex 9
#define taskEditableIndex 10
#define taskErasableIndex 11
#define taskPriorityIndex 12
#define taskOwnerIndex 13
#define taskIsCycleIndex 14
#define taskNextAlarmIndex 15
#define taskRecurrenceIdIndex 16
#define taskIsExceptionIndex 17
#define taskDescriptionIndex 18
#define taskStatusFlagIndex 19
#define taskStartDateIndex 5
#define taskEndDateIndex 6
#define taskClassificationIndex 7
#define taskLocationIndex 8
#define taskCategoryIndex 9
#define taskViewableIndex 10
#define taskEditableIndex 11
#define taskErasableIndex 12
#define taskPriorityIndex 13
#define taskOwnerIndex 14
#define taskIsCycleIndex 15
#define taskNextAlarmIndex 16
#define taskRecurrenceIdIndex 17
#define taskIsExceptionIndex 18
#define taskDescriptionIndex 19
#define taskStatusFlagIndex 20
@interface NSArray (SOGoEventComparison)
@@ -80,7 +81,8 @@
- (NSComparisonResult) compareTasksAscending: (NSArray *) otherTask;
- (NSComparisonResult) compareTasksPriorityAscending: (NSArray *) otherTask;
- (NSComparisonResult) compareTasksTitleAscending: (NSArray *) otherTask;
- (NSComparisonResult) compareTasksEndAscending: (NSArray *) otherTask;
- (NSComparisonResult) compareTasksStartDateAscending: (NSArray *) otherTask;
- (NSComparisonResult) compareTasksEndDateAscending: (NSArray *) otherTask;
- (NSComparisonResult) compareTasksLocationAscending: (NSArray *) otherTask;
- (NSComparisonResult) compareTasksCategoryAscending: (NSArray *) otherTask;
- (NSComparisonResult) compareTasksCalendarNameAscending: (NSArray *) otherTask;
+35 -1
View File
@@ -182,7 +182,41 @@
return [selfTitle caseInsensitiveCompare: otherTitle];
}
- (NSComparisonResult) compareTasksEndAscending: (NSArray *) otherTask
- (NSComparisonResult) compareTasksStartDateAscending: (NSArray *) otherTask
{
NSComparisonResult result;
unsigned int selfTime, otherTime;
// Start date
selfTime = [[self objectAtIndex: taskStartDateIndex] intValue];
otherTime = [[otherTask objectAtIndex: taskStartDateIndex] intValue];
if (selfTime && !otherTime)
result = NSOrderedAscending;
else if (!selfTime && otherTime)
result = NSOrderedDescending;
else
{
if (selfTime > otherTime)
result = NSOrderedDescending;
else if (selfTime < otherTime)
result = NSOrderedAscending;
else
{
// Calendar ID
result = [[self objectAtIndex: taskFolderIndex]
compare: [otherTask objectAtIndex: taskFolderIndex]];
if (result == NSOrderedSame)
// Task name
result = [[self objectAtIndex: taskTitleIndex]
compare: [otherTask objectAtIndex: taskTitleIndex]
options: NSCaseInsensitiveSearch];
}
}
return result;
}
- (NSComparisonResult) compareTasksEndDateAscending: (NSArray *) otherTask
{
NSComparisonResult result;
unsigned int selfTime, otherTime;
@@ -59,7 +59,7 @@
"Properties" = "Özellikler";
"Done" = "Tamam";
"An error occurred while importing calendar." = "Takvimi içeri aktarırken bir hata oluştu.";
"No event was imported." = "İçeri etkinlik aktarılmadı.";
"No event was imported." = "İçeri hiç bir etkinlik aktarılmadı.";
"A total of %{0} events were imported in the calendar." = "Toplam %{0} etkinlik takvime aktarıldı.";
"Compose E-Mail to All Attendees" = "Tüm Katılımcılara İleti Yaz";
"Compose E-Mail to Undecided Attendees" = "Karar Vermemiş Katılımcılara İleti Yaz";
@@ -117,7 +117,7 @@
/* Schedule */
"Schedule" = "İş Programı";
"No appointments found" = "Çalışma bulunamadı";
"No appointments found" = "Hiç bir çalışma bulunamadı";
"Meetings proposed by you" = "Sizin tarafınızdan teklif edilen toplantılar";
"Meetings proposed to you" = "Size teklif edilen toplantılar";
"sched_startDateFormat" = "%d/%m %H:%M";
@@ -178,7 +178,7 @@
"Target" = "Hedef";
"attributes" = "özellikler";
"attendees" = "katılımcılar";
"delegated from" = "tarafından temsilci atandı";
"delegated from" = "vekil tayin eden";
/* checkbox title */
"is private" = "kişisel mi";
@@ -197,7 +197,7 @@
"partStat_ACCEPTED" = "Katılacağım";
"partStat_DECLINED" = "Katılmayacağım";
"partStat_TENTATIVE" = "Katılabilirim";
"partStat_DELEGATED" = "Temsilci atıyorum";
"partStat_DELEGATED" = "Vekil atıyorum";
"partStat_OTHER" = "Diğer";
/* Appointments (error messages) */
@@ -253,7 +253,7 @@
"PRIVATE_vevent" = "Kişisel Etkinlik";
"PUBLIC_vtodo" = "Herkese Açık Görev";
"CONFIDENTIAL_vtodo" = "Gizli Görev";
"PRIVATE_vtodo" = "Kişisel görev";
"PRIVATE_vtodo" = "Kişisel Görev";
/* status type */
"status_" = "Belirlenmemiş";
@@ -549,7 +549,7 @@ vtodo_class2 = "(Gizli görev)";
"Custom date range" = "Özel tarih aralığı";
"Select starting date" = "Başlangıç tarihini seçin";
"Select ending date" = "Bitiş tarihini seçin";
"Delegated to" = "Temsilci";
"Delegated to" = "Vekil";
"Keep sending me updates" = "Güncellemeleri bana göndermeye devam et";
"OK" = "TAMAM";
"Confidential" = "Gizli";
+4 -3
View File
@@ -90,7 +90,7 @@ static NSArray *tasksFields = nil;
{
tasksFields = [NSArray arrayWithObjects: @"c_name", @"c_folder",
@"calendarName",
@"c_status", @"c_title", @"c_enddate",
@"c_status", @"c_title", @"c_startdate", @"c_enddate",
@"c_classification", @"c_location", @"c_category",
@"viewable", @"editable", @"erasable",
@"c_priority", @"c_owner",
@@ -1595,7 +1595,6 @@ _computeBlocksPosition (NSArray *blocks)
forAllDay: NO]];
else
[filteredTask addObject: [NSNull null]];
if (([tasksView isEqualToString:@"view_today"] ||
[tasksView isEqualToString:@"view_next7"] ||
[tasksView isEqualToString:@"view_next14"] ||
@@ -1621,8 +1620,10 @@ _computeBlocksPosition (NSArray *blocks)
[filteredTasks sortUsingSelector: @selector (compareTasksTitleAscending:)];
else if ([sort isEqualToString: @"priority"])
[filteredTasks sortUsingSelector: @selector (compareTasksPriorityAscending:)];
else if ([sort isEqualToString: @"start"])
[filteredTasks sortUsingSelector: @selector (compareTasksStartDateAscending:)];
else if ([sort isEqualToString: @"end"])
[filteredTasks sortUsingSelector: @selector (compareTasksEndAscending:)];
[filteredTasks sortUsingSelector: @selector (compareTasksEndDateAscending:)];
else if ([sort isEqualToString: @"location"])
[filteredTasks sortUsingSelector: @selector (compareTasksLocationAscending:)];
else if ([sort isEqualToString: @"category"])
+1 -1
View File
@@ -26,7 +26,7 @@
</md-input-container>
<div flex="flex"><!-- spacer --></div>
<md-button class="sg-icon-button" ng-click="editor.send()"
ng-disabled="!(editor.message.editable.to.length > 0 || editor.message.editable.cc.length > 0 || editor.message.editable.bcc.length > 0) || editor.uploader.isUploading || messageForm.$pristine || messageForm.$invalid || messageForm.$submitted"
ng-disabled="!(editor.message.editable.to.length > 0 || editor.message.editable.cc.length > 0 || editor.message.editable.bcc.length > 0) || editor.uploader.isUploading || messageForm.$invalid || messageForm.$submitted"
sg-ripple-click="mailEditor">
<md-icon>send</md-icon>
</md-button>
@@ -31,8 +31,10 @@
md-component-id="left" md-is-locked-open="isGtMedium"
ng-class="{ 'sg-close': leftIsClose }">
<var:component className="UIxSidenavToolbarTemplate" />
<md-content md-scroll-y="md-scroll-y" class="md-flex md-hue-2">
<md-subheader>{{ ::'Preferences' | loc }}</md-subheader>
<md-content md-scroll-y="md-scroll-y" class="md-flex"
md-colors="::{ backgroundColor: 'default-background-300' }">
<md-subheader
md-colors="::{background: 'default-background-300'}">{{ ::'Preferences' | loc }}</md-subheader>
<md-list>
<md-list-item ng-click="app.go('general', preferencesForm)"
ng-disabled="preferencesForm.$invalid"
@@ -837,6 +839,7 @@
<md-input-container class="md-block md-flex">
<label><var:string label:value="Auto reply subject"/></label>
<input type="text"
ng-required="app.preferences.defaults.Vacation.customSubjectEnabled"
ng-disabled="!app.preferences.defaults.Vacation.customSubjectEnabled"
ng-model="app.preferences.defaults.Vacation.customSubject"/>
<div class="sg-hint" ng-show="app.sieveVariablesCapability">
@@ -12,7 +12,7 @@
</var:if>
<var:if condition="isBody">
<var:string value="currentUserName" const:escapeHTML="NO"/> hat Ihre Zugangsberechtigungen für seinen Ordner <var:string const:value='"' const:escapeHTML="NO"/><var:string value="resourceName"/><var:string const:value='"' const:escapeHTML="NO"/> geändert.
<var:string value="currentUserName" const:escapeHTML="NO"/> hat Ihre Zugangsberechtigungen für seinen Ordner <var:string const:value='"' const:escapeHTML="NO"/><var:string value="resourceName" const:escapeHTML="NO"/><var:string const:value='"' const:escapeHTML="NO"/> geändert.
<!--
Folgende URL erlaubt Ihnen, diesen Ordner sofort zu abonnieren:
<var:string value="httpAdvisoryURL" const:escapeHTML="NO"/>unsubscribe?mail-invitation=YES
@@ -12,7 +12,7 @@
</var:if>
<var:if condition="isBody">
<var:string value="currentUserName" const:escapeHTML="NO"/> erlaubt Ihnen nicht mehr den Zugang zu seinem Order <var:string const:value='"' const:escapeHTML="NO"/><var:string value="resourceName"/><var:string const:value='"' const:escapeHTML="NO"/>.
<var:string value="currentUserName" const:escapeHTML="NO"/> erlaubt Ihnen nicht mehr den Zugang zu seinem Order <var:string const:value='"' const:escapeHTML="NO"/><var:string value="resourceName" const:escapeHTML="NO"/><var:string const:value='"' const:escapeHTML="NO"/>.
<!--
Folgende URL erlaubt Ihnen, das Abonnement für diesen Ordner sofort zu beenden:
<var:string value="httpAdvisoryURL" const:escapeHTML="NO"/>unsubscribe?mail-invitation=YES
+1 -1
View File
@@ -466,7 +466,7 @@
<!-- selected --></md-icon> <var:string label:value="Calendar"/>
</md-button>
</md-menu-item>
<md-menu-item ng-if="list.componentType == 'events'">
<md-menu-item>
<md-button ng-click="list.sort('start')">
<md-icon ng-class="{ 'icon-check': list.sortedBy('start') }">
<!-- selected --></md-icon> <var:string label:value="Start"/>
+1 -1
View File
@@ -10,7 +10,7 @@
"angular-sanitize": "1.5.x",
"angular-ui-router": "latest",
"angular-file-upload": "latest",
"angular-material": "1.1.1-master-d774b76",
"angular-material": "1.1.1-master-b8357dc",
"file-saver.js": "latest",
"lodash": "latest",
"ng-sortable": "latest",
+1 -1
View File
@@ -1,2 +1,2 @@
@charset "UTF-8";.material-icons,body,html{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled],md-autocomplete[disabled] input{cursor:default}.md-ripple-container,.md-shadow,md-fab-speed-dial:not(.md-hover-full){pointer-events:none}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:bidi-override}.md-calendar,.md-calendar-day-header{table-layout:fixed;border-collapse:collapse}.material-icons,.md-select-value.md-select-placeholder,body,html{-webkit-font-smoothing:antialiased}.md-button:focus,.md-button:hover,.md-toolbar-tools a,[sg-toggle-grid] md-grid-tile.sg-icon-button:focus,[sg-toggle-grid] md-grid-tile.sg-icon-button:hover{text-decoration:none}@-moz-document url-prefix(){[layout-fill]{margin:0;width:100%;min-height:100%;height:100%}}@media (max-width:599px){[hide-xs]:not([show-xs]):not([show]),[hide]:not([show-xs]):not([show]){display:none}[flex-order-xs="-20"]{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}[flex-order-xs="-19"]{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}[flex-order-xs="-18"]{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}[flex-order-xs="-17"]{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}[flex-order-xs="-16"]{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}[flex-order-xs="-15"]{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}[flex-order-xs="-14"]{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}[flex-order-xs="-13"]{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}[flex-order-xs="-12"]{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}[flex-order-xs="-11"]{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}[flex-order-xs="-10"]{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}[flex-order-xs="-9"]{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}[flex-order-xs="-8"]{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}[flex-order-xs="-7"]{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}[flex-order-xs="-6"]{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}[flex-order-xs="-5"]{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}[flex-order-xs="-4"]{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}[flex-order-xs="-3"]{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}[flex-order-xs="-2"]{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}[flex-order-xs="-1"]{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}[flex-order-xs="0"]{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}[flex-order-xs="1"]{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}[flex-order-xs="2"]{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}[flex-order-xs="3"]{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}[flex-order-xs="4"]{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}[flex-order-xs="5"]{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}[flex-order-xs="6"]{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}[flex-order-xs="7"]{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}[flex-order-xs="8"]{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}[flex-order-xs="9"]{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}[flex-order-xs="10"]{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}[flex-order-xs="11"]{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}[flex-order-xs="12"]{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}[flex-order-xs="13"]{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}[flex-order-xs="14"]{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}[flex-order-xs="15"]{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}[flex-order-xs="16"]{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}[flex-order-xs="17"]{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}[flex-order-xs="18"]{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}[flex-order-xs="19"]{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}[flex-order-xs="20"]{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}[flex-offset-xs="0"]{margin-left:0}[flex-offset-xs="5"]{margin-left:5%}[flex-offset-xs="10"]{margin-left:10%}[flex-offset-xs="15"]{margin-left:15%}[flex-offset-xs="20"]{margin-left:20%}[flex-offset-xs="25"]{margin-left:25%}[flex-offset-xs="30"]{margin-left:30%}[flex-offset-xs="35"]{margin-left:35%}[flex-offset-xs="40"]{margin-left:40%}[flex-offset-xs="45"]{margin-left:45%}[flex-offset-xs="50"]{margin-left:50%}[flex-offset-xs="55"]{margin-left:55%}[flex-offset-xs="60"]{margin-left:60%}[flex-offset-xs="65"]{margin-left:65%}[flex-offset-xs="70"]{margin-left:70%}[flex-offset-xs="75"]{margin-left:75%}[flex-offset-xs="80"]{margin-left:80%}[flex-offset-xs="85"]{margin-left:85%}[flex-offset-xs="90"]{margin-left:90%}[flex-offset-xs="95"]{margin-left:95%}[flex-offset-xs="33"]{margin-left:calc(100% / 3)}[flex-offset-xs="66"]{margin-left:calc(200% / 3)}[layout-align-xs="start stretch"],[layout-align-xs]{-webkitLine truncated
@charset "UTF-8";.material-icons,body,html{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled],md-autocomplete[disabled] input{cursor:default}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:bidi-override}.md-calendar,.md-calendar-day-header{table-layout:fixed;border-collapse:collapse}.md-ripple-container,.md-shadow,md-fab-speed-dial:not(.md-hover-full){pointer-events:none}.material-icons,.md-select-value.md-select-placeholder,body,html{-webkit-font-smoothing:antialiased}.md-button:focus,.md-button:hover,.md-toolbar-tools a,[sg-toggle-grid] md-grid-tile.sg-icon-button:focus,[sg-toggle-grid] md-grid-tile.sg-icon-button:hover{text-decoration:none}@-moz-document url-prefix(){[layout-fill]{margin:0;width:100%;min-height:100%;height:100%}}@media (max-width:599px){[hide-xs]:not([show-xs]):not([show]),[hide]:not([show-xs]):not([show]){display:none}[flex-order-xs="-20"]{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}[flex-order-xs="-19"]{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}[flex-order-xs="-18"]{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}[flex-order-xs="-17"]{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}[flex-order-xs="-16"]{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}[flex-order-xs="-15"]{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}[flex-order-xs="-14"]{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}[flex-order-xs="-13"]{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}[flex-order-xs="-12"]{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}[flex-order-xs="-11"]{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}[flex-order-xs="-10"]{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}[flex-order-xs="-9"]{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}[flex-order-xs="-8"]{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}[flex-order-xs="-7"]{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}[flex-order-xs="-6"]{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}[flex-order-xs="-5"]{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}[flex-order-xs="-4"]{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}[flex-order-xs="-3"]{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}[flex-order-xs="-2"]{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}[flex-order-xs="-1"]{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}[flex-order-xs="0"]{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}[flex-order-xs="1"]{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}[flex-order-xs="2"]{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}[flex-order-xs="3"]{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}[flex-order-xs="4"]{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}[flex-order-xs="5"]{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}[flex-order-xs="6"]{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}[flex-order-xs="7"]{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}[flex-order-xs="8"]{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}[flex-order-xs="9"]{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}[flex-order-xs="10"]{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}[flex-order-xs="11"]{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}[flex-order-xs="12"]{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}[flex-order-xs="13"]{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}[flex-order-xs="14"]{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}[flex-order-xs="15"]{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}[flex-order-xs="16"]{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}[flex-order-xs="17"]{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}[flex-order-xs="18"]{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}[flex-order-xs="19"]{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}[flex-order-xs="20"]{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}[flex-offset-xs="0"]{margin-left:0}[flex-offset-xs="5"]{margin-left:5%}[flex-offset-xs="10"]{margin-left:10%}[flex-offset-xs="15"]{margin-left:15%}[flex-offset-xs="20"]{margin-left:20%}[flex-offset-xs="25"]{margin-left:25%}[flex-offset-xs="30"]{margin-left:30%}[flex-offset-xs="35"]{margin-left:35%}[flex-offset-xs="40"]{margin-left:40%}[flex-offset-xs="45"]{margin-left:45%}[flex-offset-xs="50"]{margin-left:50%}[flex-offset-xs="55"]{margin-left:55%}[flex-offset-xs="60"]{margin-left:60%}[flex-offset-xs="65"]{margin-left:65%}[flex-offset-xs="70"]{margin-left:70%}[flex-offset-xs="75"]{margin-left:75%}[flex-offset-xs="80"]{margin-left:80%}[flex-offset-xs="85"]{margin-left:85%}[flex-offset-xs="90"]{margin-left:90%}[flex-offset-xs="95"]{margin-left:95%}[flex-offset-xs="33"]{margin-left:calc(100% / 3)}[flex-offset-xs="66"]{margin-left:calc(200% / 3)}[layout-align-xs="start stretch"],[layout-align-xs]{-webkitLine truncated
/*# sourceMappingURL=styles.css.map */
+1 -1
View File
@@ -1 +1 @@
{"version":3,"sources":["../scss/components/icon/icon.scss","../angular-material/src/core/style/structure.scss","../angular-material/src/core/style/typography.scss","../angular-material/src/components/select/select.scss","../angular-material/src/components/autocomplete/autocomplete.scss","../angular-material/src/components/fabSpeedDial/fabSpeedDial.scss","../angular-material/src/components/datepicker/calendar.scss","../angular-material/src/components/button/button.scss","../angular-material/src/components/toolbar/toolbar.scss","../angular-material/src/core/services/layout/layout-attributes.scss","styles.css","../angular-material/src/core/style/mixins.scss","../scss/core/structure.scss","../angular-material/src/core/services/layout/layout.scss","../scss/components/button/button.scss","../scss/core/typography.scss","../scss/core/layout.scss","../bower_components/breakpoint-sass/stylesheets/_breakpoint.scss","../angular-material/src/components/checkbox/checkbox.scss","../scss/components/autocomplete/autocomplete.scss","../angular-material/src/components/backdrop/backdrop.scss","../scss/core/variables.scss","../scss/components/card/card.scss","../angular-material/src/components/card/card.scss","../angular-material/src/components/chips/chips.scss","../scss/components/chips/chips.scss","../angular-material/src/components/datepicker/datePicker.scss","../scss/components/checkbox/checkbox.scss","../angular-material/src/components/content/content.scss","../scss/components/content/content.scss","../scss/components/list/list.scss","../scss/components/datepicker/datePicker.scss","../angular-material/src/components/dialog/dialog.scss","../scss/components/dialog/dialog.scss","../angular-material/src/components/divider/divider.scss","../angular-material/src/components/gridList/grid-list.scss","../scss/components/gridList/grid-list.scss","../angular-material/src/components/icon/icon.scss","../angular-material/src/components/input/input.scss","../angular-material/src/components/list/list.scss","../scss/components/input/input.scss","../angular-material/src/components/menu/menu.scss","../angular-material/src/components/sidenav/sidenav.scss","../angular-material/src/components/slider/slider.scss","../angular-material/src/components/tabs/tabs.scss","../angular-material/src/components/toast/toast.scss","../scss/components/menu/menu.scss","../angular-material/src/components/panel/panel.scss","../angular-material/src/components/progressCircular/progress-circular.scss","../scss/components/progressCircular/progress-circular.scss","../angular-material/src/components/progressLinear/progress-linear.scss","../angular-material/src/components/switch/switch.scss","../angular-material/src/components/radioButton/radio-button.scss","../scss/components/progressLinear/progress-linear.scss","../scss/components/radioButton/radio-button.scss","../scss/components/sidenav/sidenav.scss","../angular-material/src/components/sticky/sticky.scss","../angular-material/src/components/subheader/subheader.scss","../scss/components/subheader/subheader.scss","../scss/components/timepicker/timepicker.scss","../scss/views/MailerUI.scss","../scss/components/avatarImage/avatarImage.scss","../scss/components/draggable-droppable/droppable.scss","../angular-material/src/components/virtualRepeat/virtual-repeater.scss","../scss/components/toast/toast.scss","../scss/components/toolbar/toolbar.scss","../scss/views/SchedulerUI.scss","../angular-material/src/components/tooltip/tooltip.scss","../angular-material/src/components/whiteframe/whiteframe.scss","../scss/components/draggable-droppable/draggable.scss","../scss/components/hotkeys/hotkeys.scss","../scss/components/ripple/ripple.scss","../scss/components/pseudo-input/pseudo-input.scss","../scss/views/LoginUI.scss","../scss/views/ContactsUI.scss","../scss/views/MessageEditorUI.scss","../scss/views/PreferencesUI.scss","../scss/views/AdministrationUI.scss","../scss/views/_view.scss","../scss/core/print.scss"],"names":[],"mappings":"iBAqBA,gBCrBM,KAAN,KCiBE,wBAAA,UCoME,uBAAA,YFlLF,iBAAA,kCAAA,4BAAA,6BG9BA,gCHsCE,OAAA,QA8DJ,qBAzBA,WIhFE,sCJ0GA,eAAA,KAqGF,aAJA,aAME,aAAA,cKxDF,aAVA,wBAjGE,aAAA,MAEA,gBAAA,SN3BF,gBG8IE,uCFnKI,KAAN,KEqNI,uBAAA,YInLoE,iBAAtE,iBCsDA,oBDtDwF,mDAAtE,mDC6EhB,gBAAA,KCvFJ,4BCgBE,cDdE,OAAA,EACA,MAAA,KACA,WAAA,KACA,OAAA,MAwVJ,yBC6qCE,qCAAA,kCDzqCI,QAAA,KC2qCJ,sBD7+CI,0BAAA,IAAA,cAAA,IAAA,MAAA,IC++CJ,sBD/+CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICi/CJ,sBDj/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICm/CJ,sBDn/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICq/CJ,sBDr/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICu/CJ,sBDv/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICy/CJ,sBDz/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,IC2/CJ,sBD3/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,IC6/CJ,sBD7/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,IC+/CJ,sBD//CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICigDJ,sBDjgDI,0BAAA,GAAA,cAAA,IAAA,MAAA,ICmgDJ,qBDngDI,0BAAA,GAAA,cAAA,GAAA,MAAA,GCqgDJ,qBDrgDI,0BAAA,GAAA,cAAA,GAAA,MAAA,GCugDJ,qBDvgDI,0BAAA,GAAA,cAAA,GAAA,MAAA,GCygDJ,qBDzgDI,0BAAA,GAAA,cAAA,GAAA,MAAA,GC2gDJ,qBD3gDI,0BAAA,GAAA,cAAA,GAAA,MAAA,GC6gDJ,qBLine truncated
{"version":3,"sources":["../scss/components/icon/icon.scss","../angular-material/src/core/style/structure.scss","../angular-material/src/core/style/typography.scss","../angular-material/src/components/select/select.scss","../angular-material/src/components/autocomplete/autocomplete.scss","../angular-material/src/components/datepicker/calendar.scss","../angular-material/src/components/fabSpeedDial/fabSpeedDial.scss","../angular-material/src/components/button/button.scss","../angular-material/src/components/toolbar/toolbar.scss","../angular-material/src/core/services/layout/layout-attributes.scss","styles.css","../angular-material/src/core/style/mixins.scss","../scss/core/structure.scss","../angular-material/src/core/services/layout/layout.scss","../scss/core/typography.scss","../scss/core/layout.scss","../bower_components/breakpoint-sass/stylesheets/_breakpoint.scss","../scss/components/autocomplete/autocomplete.scss","../angular-material/src/components/backdrop/backdrop.scss","../scss/core/variables.scss","../scss/components/card/card.scss","../angular-material/src/components/card/card.scss","../scss/components/button/button.scss","../angular-material/src/components/chips/chips.scss","../scss/components/chips/chips.scss","../angular-material/src/components/checkbox/checkbox.scss","../angular-material/src/components/datepicker/datePicker.scss","../scss/components/checkbox/checkbox.scss","../angular-material/src/components/content/content.scss","../scss/components/content/content.scss","../scss/components/list/list.scss","../scss/components/datepicker/datePicker.scss","../angular-material/src/components/dialog/dialog.scss","../scss/components/dialog/dialog.scss","../angular-material/src/components/divider/divider.scss","../angular-material/src/components/gridList/grid-list.scss","../scss/components/gridList/grid-list.scss","../angular-material/src/components/icon/icon.scss","../angular-material/src/components/input/input.scss","../angular-material/src/components/list/list.scss","../scss/components/input/input.scss","../angular-material/src/components/menu/menu.scss","../angular-material/src/components/sidenav/sidenav.scss","../angular-material/src/components/slider/slider.scss","../angular-material/src/components/tabs/tabs.scss","../angular-material/src/components/toast/toast.scss","../scss/components/menu/menu.scss","../angular-material/src/components/panel/panel.scss","../angular-material/src/components/progressCircular/progress-circular.scss","../scss/components/progressCircular/progress-circular.scss","../angular-material/src/components/progressLinear/progress-linear.scss","../angular-material/src/components/switch/switch.scss","../angular-material/src/components/radioButton/radio-button.scss","../scss/components/progressLinear/progress-linear.scss","../scss/components/radioButton/radio-button.scss","../scss/components/sidenav/sidenav.scss","../angular-material/src/components/sticky/sticky.scss","../angular-material/src/components/subheader/subheader.scss","../scss/components/subheader/subheader.scss","../scss/components/timepicker/timepicker.scss","../scss/components/tabs/tabs.scss","../scss/views/MailerUI.scss","../scss/components/avatarImage/avatarImage.scss","../scss/components/draggable-droppable/droppable.scss","../angular-material/src/components/virtualRepeat/virtual-repeater.scss","../scss/components/toast/toast.scss","../scss/components/toolbar/toolbar.scss","../scss/views/SchedulerUI.scss","../angular-material/src/components/tooltip/tooltip.scss","../angular-material/src/components/whiteframe/whiteframe.scss","../scss/components/draggable-droppable/draggable.scss","../scss/components/hotkeys/hotkeys.scss","../scss/components/ripple/ripple.scss","../scss/components/pseudo-input/pseudo-input.scss","../scss/views/LoginUI.scss","../scss/views/ContactsUI.scss","../scss/views/MessageEditorUI.scss","../scss/views/PreferencesUI.scss","../scss/views/AdministrationUI.scss","../scss/views/_view.scss","../scss/core/print.scss"],"names":[],"mappings":"iBAqBA,gBCrBM,KAAN,KCiBE,wBAAA,UCoME,uBAAA,YFlLF,iBAAA,kCAAA,4BAAA,6BG9BA,gCHsCE,OAAA,QAoKJ,aAJA,aAME,aAAA,cIxDF,aAVA,wBAjGE,aAAA,MAEA,gBAAA,SJyDF,qBAzBA,WKhFE,sCAaE,eAAA,KNQJ,gBG8IE,uCFnKI,KAAN,KEqNI,uBAAA,YInLoE,iBAAtE,iBCsDA,oBDtDwF,mDAAtE,mDC6EhB,gBAAA,KCvFJ,4BCgBE,cDdE,OAAA,EACA,MAAA,KACA,WAAA,KACA,OAAA,MAwVJ,yBC6qCE,qCAAA,kCDzqCI,QAAA,KC2qCJ,sBD7+CI,0BAAA,IAAA,cAAA,IAAA,MAAA,IC++CJ,sBD/+CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICi/CJ,sBDj/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICm/CJ,sBDn/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICq/CJ,sBDr/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICu/CJ,sBDv/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICy/CJ,sBDz/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,IC2/CJ,sBD3/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,IC6/CJ,sBD7/CI,0BAAA,IAAA,cAAA,IAAA,MAAA,IC+/CJ,sBD//CI,0BAAA,IAAA,cAAA,IAAA,MAAA,ICigDJ,sBDjgDI,0BAAA,GAAA,cAAA,IAAA,MAAA,ICmgDJ,qBDngDI,0BAAA,GAAA,cAAA,GAAA,MAAA,GCqgDJ,qBDrgDI,0BAAA,GAAA,cAAA,GAAA,MAAA,GCugDJ,qBDvgDI,0BAAA,GAAA,cAAA,GAAA,MAAA,GCygDJ,qBDzgDI,0BAAA,GAAA,cAAA,GAAA,MAAA,GC2gDJ,qBD3gDI,0Line truncated
+16 -16
View File
@@ -11,19 +11,19 @@
* See https://github.com/angular/material/blob/master/docs/app/performance/internet-explorer.md
*/
md-bottom-sheet.md-default-theme.md-list md-list-item , md-bottom-sheet.md-list md-list-item { color: rgba(0,0,0,0.87);}md-bottom-sheet.md-default-theme .md-subheader , md-bottom-sheet .md-subheader { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-primary , .md-button.md-primary { color: rgb(77,128,128);}.md-button.md-default-theme.md-primary.md-raised, .md-button.md-primary.md-raised, .md-button.md-default-theme.md-primary.md-fab , .md-button.md-primary.md-fab { color: rgba(255,255,255,0.87); background-color: rgb(77,128,128);}.md-button.md-default-theme.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-primary.md-fab:not([disabled]) md-icon , .md-button.md-primary.md-fab:not([disabled]) md-icon { color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-primary.md-raised:not([disabled]):hover, .md-button.md-primary.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-primary.md-fab:not([disabled]):hover , .md-button.md-primary.md-fab:not([disabled]):hover { background-color: rgb(142,191,187);}.md-button.md-default-theme.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-primary.md-fab:not([disabled]).md-focused , .md-button.md-primary.md-fab:not([disabled]).md-focused { background-color: rgb(142,191,187);}.md-button.md-default-theme.md-primary:not([disabled]) md-icon , .md-button.md-primary:not([disabled]) md-icon { color: rgb(77,128,128);}._md a.md-default-theme:not(.md-button).md-primary , ._md a:not(.md-button).md-primary { color: rgb(77,128,128);}._md a.md-default-theme:not(.md-button).md-primary:hover , ._md a:not(.md-button).md-primary:hover { color: rgb(125,179,176);}md-card.md-default-theme .md-card-image , md-card .md-card-image { border-radius: 2px 2px 0 0;}md-card.md-default-theme md-card-header md-card-header-text .md-subhead , md-card md-card-header md-card-header-text .md-subhead { color: rgba(0,0,0,0.54);}md-card.md-default-theme md-card-title md-card-title-text:not(:only-child) .md-subhead , md-card md-card-title md-card-title-text:not(:only-child) .md-subhead { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme .md-ink-ripple , md-checkbox .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme:not(.md-checked) .md-icon , md-checkbox:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme:not([disabled]).md-primary .md-ripple , md-checkbox:not([disabled]).md-primary .md-ripple { color: rgb(142,191,187);}md-checkbox.md-default-theme:not([disabled]).md-primary.md-checked .md-ripple , md-checkbox:not([disabled]).md-primary.md-checked .md-ripple { color: rgb(117,117,117);}md-checkbox.md-default-theme:not([disabled]).md-primary .md-ink-ripple , md-checkbox:not([disabled]).md-primary .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme:not([disabled]).md-primary.md-checked .md-ink-ripple , md-checkbox:not([disabled]).md-primary.md-checked .md-ink-ripple { color: rgba(77,128,128,0.87);}md-checkbox.md-default-theme:not([disabled]).md-primary:not(.md-checked) .md-icon , md-checkbox:not([disabled]).md-primary:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme:not([disabled]).md-primary.md-checked .md-icon , md-checkbox:not([disabled]).md-primary.md-checked .md-icon { background-color: rgba(77,128,128,0.87);}md-checkbox.md-default-theme:not([disabled]).md-primary.md-checked.md-focused .md-container:before , md-checkbox:not([disabled]).md-primary.md-checked.md-focused .md-container:before { background-color: rgba(77,128,128,0.26);}md-checkbox.md-default-theme:not([disabled]).md-primary.md-checked .md-icon:after , md-checkbox:not([disabled]).md-primary.md-checked .md-icon:after { border-color: rgba(255,255,255,0.87);}md-checkbox.md-default-theme:not([disabled]).md-primary .md-indeterminate[disabled] .md-container , md-checkbox:not([disabled]).md-primary .md-indeterminate[disabled] .md-container { color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme[disabled]:not(.md-checked) .md-icon , md-checkbox[disabled]:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme[disabled] .md-icon:after , md-checkbox[disabled] .md-icon:after { border-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme[disabled] .md-label , md-checkbox[disabled] .md-label { color: rgba(0,0,0,0.38);}md-chips.md-default-theme .md-chips , md-chips .md-chips { box-shadow: 0 1px rgba(0,0,0,0.12);}md-chips.md-default-theme .md-chips.md-focused , md-chips .md-chips.md-focused { box-shadow: 0 2px rgb(77,128,128);}md-chips.md-default-theme .md-chips .md-chip-input-container input , md-chips .md-chips .md-chip-input-container input { color: rgba(0,0,0,0.87);}md-chips.md-default-theme .md-chips .md-chip-input-container input::-webkit-input-placeholLine truncated
md-bottom-sheet.md-default-theme.md-hue-1.md-list md-list-item , md-bottom-sheet.md-hue-1.md-list md-list-item { color: rgba(0,0,0,0.87);}md-bottom-sheet.md-default-theme.md-hue-1 .md-subheader , md-bottom-sheet.md-hue-1 .md-subheader { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-1.md-primary , .md-button.md-hue-1.md-primary { color: rgb(178,214,211);}.md-button.md-default-theme.md-hue-1.md-primary.md-raised, .md-button.md-hue-1.md-primary.md-raised, .md-button.md-default-theme.md-hue-1.md-primary.md-fab , .md-button.md-hue-1.md-primary.md-fab { color: rgba(255,255,255,0.87); background-color: rgb(178,214,211);}.md-button.md-default-theme.md-hue-1.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-hue-1.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-hue-1.md-primary.md-fab:not([disabled]) md-icon , .md-button.md-hue-1.md-primary.md-fab:not([disabled]) md-icon { color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-hue-1.md-primary.md-raised:not([disabled]):hover, .md-button.md-hue-1.md-primary.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-hue-1.md-primary.md-fab:not([disabled]):hover , .md-button.md-hue-1.md-primary.md-fab:not([disabled]):hover { background-color: rgb(142,191,187);}.md-button.md-default-theme.md-hue-1.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-hue-1.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-hue-1.md-primary.md-fab:not([disabled]).md-focused , .md-button.md-hue-1.md-primary.md-fab:not([disabled]).md-focused { background-color: rgb(142,191,187);}.md-button.md-default-theme.md-hue-1.md-primary:not([disabled]) md-icon , .md-button.md-hue-1.md-primary:not([disabled]) md-icon { color: rgb(178,214,211);}._md a.md-default-theme.md-hue-1:not(.md-button).md-primary , ._md a.md-hue-1:not(.md-button).md-primary { color: rgb(178,214,211);}._md a.md-default-theme.md-hue-1:not(.md-button).md-primary:hover , ._md a.md-hue-1:not(.md-button).md-primary:hover { color: rgb(125,179,176);}md-card.md-default-theme.md-hue-1 .md-card-image , md-card.md-hue-1 .md-card-image { border-radius: 2px 2px 0 0;}md-card.md-default-theme.md-hue-1 md-card-header md-card-header-text .md-subhead , md-card.md-hue-1 md-card-header md-card-header-text .md-subhead { color: rgba(0,0,0,0.54);}md-card.md-default-theme.md-hue-1 md-card-title md-card-title-text:not(:only-child) .md-subhead , md-card.md-hue-1 md-card-title md-card-title-text:not(:only-child) .md-subhead { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-1 .md-ink-ripple , md-checkbox.md-hue-1 .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-1:not(.md-checked) .md-icon , md-checkbox.md-hue-1:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary .md-ripple , md-checkbox.md-hue-1:not([disabled]).md-primary .md-ripple { color: rgb(142,191,187);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary.md-checked .md-ripple , md-checkbox.md-hue-1:not([disabled]).md-primary.md-checked .md-ripple { color: rgb(117,117,117);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary .md-ink-ripple , md-checkbox.md-hue-1:not([disabled]).md-primary .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary.md-checked .md-ink-ripple , md-checkbox.md-hue-1:not([disabled]).md-primary.md-checked .md-ink-ripple { color: rgba(178,214,211,0.87);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary:not(.md-checked) .md-icon , md-checkbox.md-hue-1:not([disabled]).md-primary:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary.md-checked .md-icon , md-checkbox.md-hue-1:not([disabled]).md-primary.md-checked .md-icon { background-color: rgba(178,214,211,0.87);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary.md-checked.md-focused .md-container:before , md-checkbox.md-hue-1:not([disabled]).md-primary.md-checked.md-focused .md-container:before { background-color: rgba(178,214,211,0.26);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary.md-checked .md-icon:after , md-checkbox.md-hue-1:not([disabled]).md-primary.md-checked .md-icon:after { border-color: rgba(255,255,255,0.87);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary .md-indeterminate[disabled] .md-container , md-checkbox.md-hue-1:not([disabled]).md-primary .md-indeterminate[disabled] .md-container { color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-1[disabled]:not(.md-checked) .md-icon , md-checkbox.md-hue-1[disabled]:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-1[disabled] .md-icon:after , md-checkbox.md-hue-1[disabled] .md-icon:after { border-color: rgba(0,0,0,0.38);}md-checkbox.md-defLine truncated
md-bottom-sheet.md-default-theme.md-hue-2.md-list md-list-item , md-bottom-sheet.md-hue-2.md-list md-list-item { color: rgba(0,0,0,0.87);}md-bottom-sheet.md-default-theme.md-hue-2 .md-subheader , md-bottom-sheet.md-hue-2 .md-subheader { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-2.md-primary , .md-button.md-hue-2.md-primary { color: rgb(99,153,151);}.md-button.md-default-theme.md-hue-2.md-primary.md-raised, .md-button.md-hue-2.md-primary.md-raised, .md-button.md-default-theme.md-hue-2.md-primary.md-fab , .md-button.md-hue-2.md-primary.md-fab { color: rgba(255,255,255,0.87); background-color: rgb(99,153,151);}.md-button.md-default-theme.md-hue-2.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-hue-2.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-hue-2.md-primary.md-fab:not([disabled]) md-icon , .md-button.md-hue-2.md-primary.md-fab:not([disabled]) md-icon { color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-hue-2.md-primary.md-raised:not([disabled]):hover, .md-button.md-hue-2.md-primary.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-hue-2.md-primary.md-fab:not([disabled]):hover , .md-button.md-hue-2.md-primary.md-fab:not([disabled]):hover { background-color: rgb(142,191,187);}.md-button.md-default-theme.md-hue-2.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-hue-2.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-hue-2.md-primary.md-fab:not([disabled]).md-focused , .md-button.md-hue-2.md-primary.md-fab:not([disabled]).md-focused { background-color: rgb(142,191,187);}.md-button.md-default-theme.md-hue-2.md-primary:not([disabled]) md-icon , .md-button.md-hue-2.md-primary:not([disabled]) md-icon { color: rgb(99,153,151);}._md a.md-default-theme.md-hue-2:not(.md-button).md-primary , ._md a.md-hue-2:not(.md-button).md-primary { color: rgb(99,153,151);}._md a.md-default-theme.md-hue-2:not(.md-button).md-primary:hover , ._md a.md-hue-2:not(.md-button).md-primary:hover { color: rgb(125,179,176);}md-card.md-default-theme.md-hue-2 .md-card-image , md-card.md-hue-2 .md-card-image { border-radius: 2px 2px 0 0;}md-card.md-default-theme.md-hue-2 md-card-header md-card-header-text .md-subhead , md-card.md-hue-2 md-card-header md-card-header-text .md-subhead { color: rgba(0,0,0,0.54);}md-card.md-default-theme.md-hue-2 md-card-title md-card-title-text:not(:only-child) .md-subhead , md-card.md-hue-2 md-card-title md-card-title-text:not(:only-child) .md-subhead { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-2 .md-ink-ripple , md-checkbox.md-hue-2 .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-2:not(.md-checked) .md-icon , md-checkbox.md-hue-2:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary .md-ripple , md-checkbox.md-hue-2:not([disabled]).md-primary .md-ripple { color: rgb(142,191,187);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary.md-checked .md-ripple , md-checkbox.md-hue-2:not([disabled]).md-primary.md-checked .md-ripple { color: rgb(117,117,117);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary .md-ink-ripple , md-checkbox.md-hue-2:not([disabled]).md-primary .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary.md-checked .md-ink-ripple , md-checkbox.md-hue-2:not([disabled]).md-primary.md-checked .md-ink-ripple { color: rgba(99,153,151,0.87);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary:not(.md-checked) .md-icon , md-checkbox.md-hue-2:not([disabled]).md-primary:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary.md-checked .md-icon , md-checkbox.md-hue-2:not([disabled]).md-primary.md-checked .md-icon { background-color: rgba(99,153,151,0.87);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary.md-checked.md-focused .md-container:before , md-checkbox.md-hue-2:not([disabled]).md-primary.md-checked.md-focused .md-container:before { background-color: rgba(99,153,151,0.26);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary.md-checked .md-icon:after , md-checkbox.md-hue-2:not([disabled]).md-primary.md-checked .md-icon:after { border-color: rgba(255,255,255,0.87);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary .md-indeterminate[disabled] .md-container , md-checkbox.md-hue-2:not([disabled]).md-primary .md-indeterminate[disabled] .md-container { color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-2[disabled]:not(.md-checked) .md-icon , md-checkbox.md-hue-2[disabled]:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-2[disabled] .md-icon:after , md-checkbox.md-hue-2[disabled] .md-icon:after { border-color: rgba(0,0,0,0.38);}md-checkbox.md-default-thLine truncated
md-bottom-sheet.md-default-theme.md-hue-3.md-list md-list-item , md-bottom-sheet.md-hue-3.md-list md-list-item { color: rgba(0,0,0,0.87);}md-bottom-sheet.md-default-theme.md-hue-3 .md-subheader , md-bottom-sheet.md-hue-3 .md-subheader { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-3.md-primary , .md-button.md-hue-3.md-primary { color: rgb(0,176,192);}.md-button.md-default-theme.md-hue-3.md-primary.md-raised, .md-button.md-hue-3.md-primary.md-raised, .md-button.md-default-theme.md-hue-3.md-primary.md-fab , .md-button.md-hue-3.md-primary.md-fab { color: rgba(255,255,255,0.87); background-color: rgb(0,176,192);}.md-button.md-default-theme.md-hue-3.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-hue-3.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-hue-3.md-primary.md-fab:not([disabled]) md-icon , .md-button.md-hue-3.md-primary.md-fab:not([disabled]) md-icon { color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-hue-3.md-primary.md-raised:not([disabled]):hover, .md-button.md-hue-3.md-primary.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-hue-3.md-primary.md-fab:not([disabled]):hover , .md-button.md-hue-3.md-primary.md-fab:not([disabled]):hover { background-color: rgb(142,191,187);}.md-button.md-default-theme.md-hue-3.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-hue-3.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-hue-3.md-primary.md-fab:not([disabled]).md-focused , .md-button.md-hue-3.md-primary.md-fab:not([disabled]).md-focused { background-color: rgb(142,191,187);}.md-button.md-default-theme.md-hue-3.md-primary:not([disabled]) md-icon , .md-button.md-hue-3.md-primary:not([disabled]) md-icon { color: rgb(0,176,192);}._md a.md-default-theme.md-hue-3:not(.md-button).md-primary , ._md a.md-hue-3:not(.md-button).md-primary { color: rgb(0,176,192);}._md a.md-default-theme.md-hue-3:not(.md-button).md-primary:hover , ._md a.md-hue-3:not(.md-button).md-primary:hover { color: rgb(125,179,176);}md-card.md-default-theme.md-hue-3 .md-card-image , md-card.md-hue-3 .md-card-image { border-radius: 2px 2px 0 0;}md-card.md-default-theme.md-hue-3 md-card-header md-card-header-text .md-subhead , md-card.md-hue-3 md-card-header md-card-header-text .md-subhead { color: rgba(0,0,0,0.54);}md-card.md-default-theme.md-hue-3 md-card-title md-card-title-text:not(:only-child) .md-subhead , md-card.md-hue-3 md-card-title md-card-title-text:not(:only-child) .md-subhead { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-3 .md-ink-ripple , md-checkbox.md-hue-3 .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-3:not(.md-checked) .md-icon , md-checkbox.md-hue-3:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary .md-ripple , md-checkbox.md-hue-3:not([disabled]).md-primary .md-ripple { color: rgb(142,191,187);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary.md-checked .md-ripple , md-checkbox.md-hue-3:not([disabled]).md-primary.md-checked .md-ripple { color: rgb(117,117,117);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary .md-ink-ripple , md-checkbox.md-hue-3:not([disabled]).md-primary .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary.md-checked .md-ink-ripple , md-checkbox.md-hue-3:not([disabled]).md-primary.md-checked .md-ink-ripple { color: rgba(0,176,192,0.87);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary:not(.md-checked) .md-icon , md-checkbox.md-hue-3:not([disabled]).md-primary:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary.md-checked .md-icon , md-checkbox.md-hue-3:not([disabled]).md-primary.md-checked .md-icon { background-color: rgba(0,176,192,0.87);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary.md-checked.md-focused .md-container:before , md-checkbox.md-hue-3:not([disabled]).md-primary.md-checked.md-focused .md-container:before { background-color: rgba(0,176,192,0.26);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary.md-checked .md-icon:after , md-checkbox.md-hue-3:not([disabled]).md-primary.md-checked .md-icon:after { border-color: rgba(255,255,255,0.87);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary .md-indeterminate[disabled] .md-container , md-checkbox.md-hue-3:not([disabled]).md-primary .md-indeterminate[disabled] .md-container { color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-3[disabled]:not(.md-checked) .md-icon , md-checkbox.md-hue-3[disabled]:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-3[disabled] .md-icon:after , md-checkbox.md-hue-3[disabled] .md-icon:after { border-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-Line truncated
.md-button.md-default-theme.md-fab , .md-button.md-fab { background-color: rgb(86,176,76); color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-fab md-icon , .md-button.md-fab md-icon { color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-fab:not([disabled]):hover , .md-button.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-fab:not([disabled]).md-focused , .md-button.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-fab , .md-button.md-fab { background-color: rgb(86,176,76); color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-fab:not([disabled]) .md-icon , .md-button.md-fab:not([disabled]) .md-icon { color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-fab:not([disabled]):hover , .md-button.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-fab:not([disabled]).md-focused , .md-button.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-accent , .md-button.md-accent { color: rgb(86,176,76);}.md-button.md-default-theme.md-accent.md-raised, .md-button.md-accent.md-raised, .md-button.md-default-theme.md-accent.md-fab , .md-button.md-accent.md-fab { color: rgba(255,255,255,0.87); background-color: rgb(86,176,76);}.md-button.md-default-theme.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-accent.md-fab:not([disabled]) md-icon , .md-button.md-accent.md-fab:not([disabled]) md-icon { color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-accent.md-raised:not([disabled]):hover, .md-button.md-accent.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-accent.md-fab:not([disabled]):hover , .md-button.md-accent.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-accent.md-fab:not([disabled]).md-focused , .md-button.md-accent.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-accent:not([disabled]) md-icon , .md-button.md-accent:not([disabled]) md-icon { color: rgb(86,176,76);}.md-button.md-default-theme[disabled], .md-button[disabled], .md-button.md-default-theme.md-raised[disabled], .md-button.md-raised[disabled], .md-button.md-default-theme.md-fab[disabled], .md-button.md-fab[disabled], .md-button.md-default-theme.md-accent[disabled], .md-button.md-accent[disabled], .md-button.md-default-theme.md-warn[disabled] , .md-button.md-warn[disabled] { color: rgba(0,0,0,0.38); cursor: default;}.md-button.md-default-theme[disabled] md-icon, .md-button[disabled] md-icon, .md-button.md-default-theme.md-raised[disabled] md-icon, .md-button.md-raised[disabled] md-icon, .md-button.md-default-theme.md-fab[disabled] md-icon, .md-button.md-fab[disabled] md-icon, .md-button.md-default-theme.md-accent[disabled] md-icon, .md-button.md-accent[disabled] md-icon, .md-button.md-default-theme.md-warn[disabled] md-icon , .md-button.md-warn[disabled] md-icon { color: rgba(0,0,0,0.38);}._md a.md-default-theme:not(.md-button).md-accent , ._md a:not(.md-button).md-accent { color: rgb(86,176,76);}._md a.md-default-theme:not(.md-button).md-accent:hover , ._md a:not(.md-button).md-accent:hover { color: rgb(56,142,60);}._md a.md-default-theme:not(.md-button).md-accent , ._md a:not(.md-button).md-accent { color: rgb(86,176,76);}._md a.md-default-theme:not(.md-button).md-accent:hover , ._md a:not(.md-button).md-accent:hover { color: rgb(0,200,83);}md-checkbox.md-default-theme .md-ripple , md-checkbox .md-ripple { color: rgb(0,200,83);}md-checkbox.md-default-theme.md-checked.md-focused .md-container:before , md-checkbox.md-checked.md-focused .md-container:before { background-color: rgba(86,176,76,0.26);}md-checkbox.md-default-theme.md-checked .md-ink-ripple , md-checkbox.md-checked .md-ink-ripple { color: rgba(86,176,76,0.87);}md-checkbox.md-default-theme.md-checked .md-icon , md-checkbox.md-checked .md-icon { background-color: rgba(86,176,76,0.87);}md-checkbox.md-default-theme.md-checked .md-icon:after , md-checkbox.md-checked .md-icon:after { border-color: rgba(255,255,255,0.87);}.md-accent .md-default-theme .md-datepicker-input-container.md-datepicker-focused , .md-accent .md-datepicker-input-container.md-datepicker-focused { border-bottom-color: rgb(86,176,76);}.md-default-theme .md-datepicker-open.md-accent .md-datepicker-calendar-icon, .md-datepicker-open.md-accent .md-datepicker-calendar-icon, .md-accent .md-default-theme .md-datepicker-open .md-datepicker-calendar-icon , .md-accent .md-datepicker-open .md-datepicker-calendar-icon { color: rgb(86,176,76);}md-icon.md-default-theme.md-accent , md-icon.md-accent { color: rgb(86,17Line truncated
.md-button.md-default-theme.md-hue-1.md-fab , .md-button.md-hue-1.md-fab { background-color: rgb(250,250,250); color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-1.md-fab md-icon , .md-button.md-hue-1.md-fab md-icon { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-1.md-fab:not([disabled]):hover , .md-button.md-hue-1.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-1.md-fab:not([disabled]).md-focused , .md-button.md-hue-1.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-1.md-fab , .md-button.md-hue-1.md-fab { background-color: rgb(250,250,250); color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-1.md-fab:not([disabled]) .md-icon , .md-button.md-hue-1.md-fab:not([disabled]) .md-icon { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-1.md-fab:not([disabled]):hover , .md-button.md-hue-1.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-1.md-fab:not([disabled]).md-focused , .md-button.md-hue-1.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-1.md-accent , .md-button.md-hue-1.md-accent { color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-1.md-accent.md-raised, .md-button.md-hue-1.md-accent.md-raised, .md-button.md-default-theme.md-hue-1.md-accent.md-fab , .md-button.md-hue-1.md-accent.md-fab { color: rgba(0,0,0,0.87); background-color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-1.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-hue-1.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-hue-1.md-accent.md-fab:not([disabled]) md-icon , .md-button.md-hue-1.md-accent.md-fab:not([disabled]) md-icon { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-1.md-accent.md-raised:not([disabled]):hover, .md-button.md-hue-1.md-accent.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-hue-1.md-accent.md-fab:not([disabled]):hover , .md-button.md-hue-1.md-accent.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-1.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-hue-1.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-hue-1.md-accent.md-fab:not([disabled]).md-focused , .md-button.md-hue-1.md-accent.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-1.md-accent:not([disabled]) md-icon , .md-button.md-hue-1.md-accent:not([disabled]) md-icon { color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-1[disabled], .md-button.md-hue-1[disabled], .md-button.md-default-theme.md-hue-1.md-raised[disabled], .md-button.md-hue-1.md-raised[disabled], .md-button.md-default-theme.md-hue-1.md-fab[disabled], .md-button.md-hue-1.md-fab[disabled], .md-button.md-default-theme.md-hue-1.md-accent[disabled], .md-button.md-hue-1.md-accent[disabled], .md-button.md-default-theme.md-hue-1.md-warn[disabled] , .md-button.md-hue-1.md-warn[disabled] { color: rgba(0,0,0,0.38); cursor: default;}.md-button.md-default-theme.md-hue-1[disabled] md-icon, .md-button.md-hue-1[disabled] md-icon, .md-button.md-default-theme.md-hue-1.md-raised[disabled] md-icon, .md-button.md-hue-1.md-raised[disabled] md-icon, .md-button.md-default-theme.md-hue-1.md-fab[disabled] md-icon, .md-button.md-hue-1.md-fab[disabled] md-icon, .md-button.md-default-theme.md-hue-1.md-accent[disabled] md-icon, .md-button.md-hue-1.md-accent[disabled] md-icon, .md-button.md-default-theme.md-hue-1.md-warn[disabled] md-icon , .md-button.md-hue-1.md-warn[disabled] md-icon { color: rgba(0,0,0,0.38);}._md a.md-default-theme.md-hue-1:not(.md-button).md-accent , ._md a.md-hue-1:not(.md-button).md-accent { color: rgb(250,250,250);}._md a.md-default-theme.md-hue-1:not(.md-button).md-accent:hover , ._md a.md-hue-1:not(.md-button).md-accent:hover { color: rgb(56,142,60);}._md a.md-default-theme.md-hue-1:not(.md-button).md-accent , ._md a.md-hue-1:not(.md-button).md-accent { color: rgb(250,250,250);}._md a.md-default-theme.md-hue-1:not(.md-button).md-accent:hover , ._md a.md-hue-1:not(.md-button).md-accent:hover { color: rgb(0,200,83);}md-checkbox.md-default-theme.md-hue-1 .md-ripple , md-checkbox.md-hue-1 .md-ripple { color: rgb(0,200,83);}md-checkbox.md-default-theme.md-hue-1.md-checked.md-focused .md-container:before , md-checkbox.md-hue-1.md-checked.md-focused .md-container:before { background-color: rgba(250,250,250,0.26);}md-checkbox.md-default-theme.md-hue-1.md-checked .md-ink-ripple , md-checkbox.md-hue-1.md-checked .md-ink-ripple { color: rgba(250,250,250,0.87);}md-checkbox.md-default-theme.md-hue-1.md-checked .md-icon , md-checkbox.md-hue-1.md-checked .md-icon { background-color: rgba(250,250,250,0.87);}md-checkbox.md-default-theme.md-hue-1.md-checked .md-icon:after , md-checkbox.mdLine truncated
.md-button.md-default-theme.md-hue-2.md-fab , .md-button.md-hue-2.md-fab { background-color: rgb(136,199,129); color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-hue-2.md-fab md-icon , .md-button.md-hue-2.md-fab md-icon { color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-hue-2.md-fab:not([disabled]):hover , .md-button.md-hue-2.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-2.md-fab:not([disabled]).md-focused , .md-button.md-hue-2.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-2.md-fab , .md-button.md-hue-2.md-fab { background-color: rgb(136,199,129); color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-hue-2.md-fab:not([disabled]) .md-icon , .md-button.md-hue-2.md-fab:not([disabled]) .md-icon { color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-hue-2.md-fab:not([disabled]):hover , .md-button.md-hue-2.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-2.md-fab:not([disabled]).md-focused , .md-button.md-hue-2.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-2.md-accent , .md-button.md-hue-2.md-accent { color: rgb(136,199,129);}.md-button.md-default-theme.md-hue-2.md-accent.md-raised, .md-button.md-hue-2.md-accent.md-raised, .md-button.md-default-theme.md-hue-2.md-accent.md-fab , .md-button.md-hue-2.md-accent.md-fab { color: rgba(255,255,255,0.87); background-color: rgb(136,199,129);}.md-button.md-default-theme.md-hue-2.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-hue-2.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-hue-2.md-accent.md-fab:not([disabled]) md-icon , .md-button.md-hue-2.md-accent.md-fab:not([disabled]) md-icon { color: rgba(255,255,255,0.87);}.md-button.md-default-theme.md-hue-2.md-accent.md-raised:not([disabled]):hover, .md-button.md-hue-2.md-accent.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-hue-2.md-accent.md-fab:not([disabled]):hover , .md-button.md-hue-2.md-accent.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-2.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-hue-2.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-hue-2.md-accent.md-fab:not([disabled]).md-focused , .md-button.md-hue-2.md-accent.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-2.md-accent:not([disabled]) md-icon , .md-button.md-hue-2.md-accent:not([disabled]) md-icon { color: rgb(136,199,129);}.md-button.md-default-theme.md-hue-2[disabled], .md-button.md-hue-2[disabled], .md-button.md-default-theme.md-hue-2.md-raised[disabled], .md-button.md-hue-2.md-raised[disabled], .md-button.md-default-theme.md-hue-2.md-fab[disabled], .md-button.md-hue-2.md-fab[disabled], .md-button.md-default-theme.md-hue-2.md-accent[disabled], .md-button.md-hue-2.md-accent[disabled], .md-button.md-default-theme.md-hue-2.md-warn[disabled] , .md-button.md-hue-2.md-warn[disabled] { color: rgba(0,0,0,0.38); cursor: default;}.md-button.md-default-theme.md-hue-2[disabled] md-icon, .md-button.md-hue-2[disabled] md-icon, .md-button.md-default-theme.md-hue-2.md-raised[disabled] md-icon, .md-button.md-hue-2.md-raised[disabled] md-icon, .md-button.md-default-theme.md-hue-2.md-fab[disabled] md-icon, .md-button.md-hue-2.md-fab[disabled] md-icon, .md-button.md-default-theme.md-hue-2.md-accent[disabled] md-icon, .md-button.md-hue-2.md-accent[disabled] md-icon, .md-button.md-default-theme.md-hue-2.md-warn[disabled] md-icon , .md-button.md-hue-2.md-warn[disabled] md-icon { color: rgba(0,0,0,0.38);}._md a.md-default-theme.md-hue-2:not(.md-button).md-accent , ._md a.md-hue-2:not(.md-button).md-accent { color: rgb(136,199,129);}._md a.md-default-theme.md-hue-2:not(.md-button).md-accent:hover , ._md a.md-hue-2:not(.md-button).md-accent:hover { color: rgb(56,142,60);}._md a.md-default-theme.md-hue-2:not(.md-button).md-accent , ._md a.md-hue-2:not(.md-button).md-accent { color: rgb(136,199,129);}._md a.md-default-theme.md-hue-2:not(.md-button).md-accent:hover , ._md a.md-hue-2:not(.md-button).md-accent:hover { color: rgb(0,200,83);}md-checkbox.md-default-theme.md-hue-2 .md-ripple , md-checkbox.md-hue-2 .md-ripple { color: rgb(0,200,83);}md-checkbox.md-default-theme.md-hue-2.md-checked.md-focused .md-container:before , md-checkbox.md-hue-2.md-checked.md-focused .md-container:before { background-color: rgba(136,199,129,0.26);}md-checkbox.md-default-theme.md-hue-2.md-checked .md-ink-ripple , md-checkbox.md-hue-2.md-checked .md-ink-ripple { color: rgba(136,199,129,0.87);}md-checkbox.md-default-theme.md-hue-2.md-checked .md-icon , md-checkbox.md-hue-2.md-checked .md-icon { background-color: rgba(136,199,129,0.87);}md-checkbox.md-default-theme.md-hue-2.md-cheLine truncated
.md-button.md-default-theme.md-hue-3.md-fab , .md-button.md-hue-3.md-fab { background-color: rgb(0,200,83); color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-3.md-fab md-icon , .md-button.md-hue-3.md-fab md-icon { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-3.md-fab:not([disabled]):hover , .md-button.md-hue-3.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-3.md-fab:not([disabled]).md-focused , .md-button.md-hue-3.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-3.md-fab , .md-button.md-hue-3.md-fab { background-color: rgb(0,200,83); color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-3.md-fab:not([disabled]) .md-icon , .md-button.md-hue-3.md-fab:not([disabled]) .md-icon { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-3.md-fab:not([disabled]):hover , .md-button.md-hue-3.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-3.md-fab:not([disabled]).md-focused , .md-button.md-hue-3.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-3.md-accent , .md-button.md-hue-3.md-accent { color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-3.md-accent.md-raised, .md-button.md-hue-3.md-accent.md-raised, .md-button.md-default-theme.md-hue-3.md-accent.md-fab , .md-button.md-hue-3.md-accent.md-fab { color: rgba(0,0,0,0.87); background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-3.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-hue-3.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-hue-3.md-accent.md-fab:not([disabled]) md-icon , .md-button.md-hue-3.md-accent.md-fab:not([disabled]) md-icon { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-3.md-accent.md-raised:not([disabled]):hover, .md-button.md-hue-3.md-accent.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-hue-3.md-accent.md-fab:not([disabled]):hover , .md-button.md-hue-3.md-accent.md-fab:not([disabled]):hover { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-3.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-hue-3.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-hue-3.md-accent.md-fab:not([disabled]).md-focused , .md-button.md-hue-3.md-accent.md-fab:not([disabled]).md-focused { background-color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-3.md-accent:not([disabled]) md-icon , .md-button.md-hue-3.md-accent:not([disabled]) md-icon { color: rgb(0,200,83);}.md-button.md-default-theme.md-hue-3[disabled], .md-button.md-hue-3[disabled], .md-button.md-default-theme.md-hue-3.md-raised[disabled], .md-button.md-hue-3.md-raised[disabled], .md-button.md-default-theme.md-hue-3.md-fab[disabled], .md-button.md-hue-3.md-fab[disabled], .md-button.md-default-theme.md-hue-3.md-accent[disabled], .md-button.md-hue-3.md-accent[disabled], .md-button.md-default-theme.md-hue-3.md-warn[disabled] , .md-button.md-hue-3.md-warn[disabled] { color: rgba(0,0,0,0.38); cursor: default;}.md-button.md-default-theme.md-hue-3[disabled] md-icon, .md-button.md-hue-3[disabled] md-icon, .md-button.md-default-theme.md-hue-3.md-raised[disabled] md-icon, .md-button.md-hue-3.md-raised[disabled] md-icon, .md-button.md-default-theme.md-hue-3.md-fab[disabled] md-icon, .md-button.md-hue-3.md-fab[disabled] md-icon, .md-button.md-default-theme.md-hue-3.md-accent[disabled] md-icon, .md-button.md-hue-3.md-accent[disabled] md-icon, .md-button.md-default-theme.md-hue-3.md-warn[disabled] md-icon , .md-button.md-hue-3.md-warn[disabled] md-icon { color: rgba(0,0,0,0.38);}._md a.md-default-theme.md-hue-3:not(.md-button).md-accent , ._md a.md-hue-3:not(.md-button).md-accent { color: rgb(0,200,83);}._md a.md-default-theme.md-hue-3:not(.md-button).md-accent:hover , ._md a.md-hue-3:not(.md-button).md-accent:hover { color: rgb(56,142,60);}._md a.md-default-theme.md-hue-3:not(.md-button).md-accent , ._md a.md-hue-3:not(.md-button).md-accent { color: rgb(0,200,83);}._md a.md-default-theme.md-hue-3:not(.md-button).md-accent:hover , ._md a.md-hue-3:not(.md-button).md-accent:hover { color: rgb(0,200,83);}md-checkbox.md-default-theme.md-hue-3 .md-ripple , md-checkbox.md-hue-3 .md-ripple { color: rgb(0,200,83);}md-checkbox.md-default-theme.md-hue-3.md-checked.md-focused .md-container:before , md-checkbox.md-hue-3.md-checked.md-focused .md-container:before { background-color: rgba(0,200,83,0.26);}md-checkbox.md-default-theme.md-hue-3.md-checked .md-ink-ripple , md-checkbox.md-hue-3.md-checked .md-ink-ripple { color: rgba(0,200,83,0.87);}md-checkbox.md-default-theme.md-hue-3.md-checked .md-icon , md-checkbox.md-hue-3.md-checked .md-icon { background-color: rgba(0,200,83,0.87);}md-checkbox.md-default-theme.md-hue-3.md-checked .md-icon:after , md-checkbox.md-hue-3.md-checked .md-icon:aftLine truncated
.md-button.md-default-theme.md-warn , .md-button.md-warn { color: rgb(255,87,34);}.md-button.md-default-theme.md-warn.md-raised, .md-button.md-warn.md-raised, .md-button.md-default-theme.md-warn.md-fab , .md-button.md-warn.md-fab { color: rgb(255,255,255); background-color: rgb(255,87,34);}.md-button.md-default-theme.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-warn.md-fab:not([disabled]) md-icon , .md-button.md-warn.md-fab:not([disabled]) md-icon { color: rgb(255,255,255);}.md-button.md-default-theme.md-warn.md-raised:not([disabled]):hover, .md-button.md-warn.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-warn.md-fab:not([disabled]):hover , .md-button.md-warn.md-fab:not([disabled]):hover { background-color: rgb(244,81,30);}.md-button.md-default-theme.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-warn.md-fab:not([disabled]).md-focused , .md-button.md-warn.md-fab:not([disabled]).md-focused { background-color: rgb(244,81,30);}.md-button.md-default-theme.md-warn:not([disabled]) md-icon , .md-button.md-warn:not([disabled]) md-icon { color: rgb(255,87,34);}._md a.md-default-theme:not(.md-button).md-warn , ._md a:not(.md-button).md-warn { color: rgb(255,87,34);}._md a.md-default-theme:not(.md-button).md-warn:hover , ._md a:not(.md-button).md-warn:hover { color: rgb(230,74,25);}md-checkbox.md-default-theme:not([disabled]).md-warn .md-ripple , md-checkbox:not([disabled]).md-warn .md-ripple { color: rgb(244,81,30);}md-checkbox.md-default-theme:not([disabled]).md-warn .md-ink-ripple , md-checkbox:not([disabled]).md-warn .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme:not([disabled]).md-warn.md-checked .md-ink-ripple , md-checkbox:not([disabled]).md-warn.md-checked .md-ink-ripple { color: rgba(255,87,34,0.87);}md-checkbox.md-default-theme:not([disabled]).md-warn:not(.md-checked) .md-icon , md-checkbox:not([disabled]).md-warn:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme:not([disabled]).md-warn.md-checked .md-icon , md-checkbox:not([disabled]).md-warn.md-checked .md-icon { background-color: rgba(255,87,34,0.87);}md-checkbox.md-default-theme:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before , md-checkbox:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before { background-color: rgba(255,87,34,0.26);}md-checkbox.md-default-theme:not([disabled]).md-warn.md-checked .md-icon:after , md-checkbox:not([disabled]).md-warn.md-checked .md-icon:after { border-color: rgb(238,238,238);}.md-warn .md-default-theme .md-datepicker-input-container.md-datepicker-focused , .md-warn .md-datepicker-input-container.md-datepicker-focused { border-bottom-color: rgb(221,44,0);}.md-default-theme .md-datepicker-input-container.md-datepicker-invalid , .md-datepicker-input-container.md-datepicker-invalid { border-bottom-color: rgb(221,44,0);}.md-default-theme .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-warn .md-default-theme .md-datepicker-open .md-datepicker-calendar-icon , .md-warn .md-datepicker-open .md-datepicker-calendar-icon { color: rgb(221,44,0);}md-icon.md-default-theme.md-warn , md-icon.md-warn { color: rgb(255,87,34);}md-input-container.md-default-theme label.md-required:after , md-input-container label.md-required:after { color: rgb(221,44,0);}md-input-container.md-default-theme .md-input-messages-animation, md-input-container .md-input-messages-animation, md-input-container.md-default-theme .md-input-message-animation , md-input-container .md-input-message-animation { color: rgb(221,44,0);}md-input-container.md-default-theme:not(.md-input-invalid).md-input-focused.md-warn .md-input , md-input-container:not(.md-input-invalid).md-input-focused.md-warn .md-input { border-color: rgb(221,44,0);}md-input-container.md-default-theme:not(.md-input-invalid).md-input-focused.md-warn label, md-input-container:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-default-theme:not(.md-input-invalid).md-input-focused.md-warn md-icon , md-input-container:not(.md-input-invalid).md-input-focused.md-warn md-icon { color: rgb(221,44,0);}md-input-container.md-default-theme.md-input-invalid .md-input , md-input-container.md-input-invalid .md-input { border-color: rgb(221,44,0);}md-input-container.md-default-theme.md-input-invalid label, md-input-container.md-input-invalid label,md-input-container.md-default-theme.md-input-invalid .md-input-message-animation, md-input-container.md-input-invalid .md-input-message-animation,md-input-container.md-default-theme.md-input-invalid .md-char-counter , md-input-container.md-input-invalid .md-char-counter { color: rgb(221,44,0);}md-progress-circular.md-dLine truncated
.md-button.md-default-theme.md-hue-1.md-warn , .md-button.md-hue-1.md-warn { color: rgb(255,138,101);}.md-button.md-default-theme.md-hue-1.md-warn.md-raised, .md-button.md-hue-1.md-warn.md-raised, .md-button.md-default-theme.md-hue-1.md-warn.md-fab , .md-button.md-hue-1.md-warn.md-fab { color: rgba(0,0,0,0.87); background-color: rgb(255,138,101);}.md-button.md-default-theme.md-hue-1.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-hue-1.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-hue-1.md-warn.md-fab:not([disabled]) md-icon , .md-button.md-hue-1.md-warn.md-fab:not([disabled]) md-icon { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-1.md-warn.md-raised:not([disabled]):hover, .md-button.md-hue-1.md-warn.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-hue-1.md-warn.md-fab:not([disabled]):hover , .md-button.md-hue-1.md-warn.md-fab:not([disabled]):hover { background-color: rgb(244,81,30);}.md-button.md-default-theme.md-hue-1.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-hue-1.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-hue-1.md-warn.md-fab:not([disabled]).md-focused , .md-button.md-hue-1.md-warn.md-fab:not([disabled]).md-focused { background-color: rgb(244,81,30);}.md-button.md-default-theme.md-hue-1.md-warn:not([disabled]) md-icon , .md-button.md-hue-1.md-warn:not([disabled]) md-icon { color: rgb(255,138,101);}._md a.md-default-theme.md-hue-1:not(.md-button).md-warn , ._md a.md-hue-1:not(.md-button).md-warn { color: rgb(255,138,101);}._md a.md-default-theme.md-hue-1:not(.md-button).md-warn:hover , ._md a.md-hue-1:not(.md-button).md-warn:hover { color: rgb(230,74,25);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn .md-ripple , md-checkbox.md-hue-1:not([disabled]).md-warn .md-ripple { color: rgb(244,81,30);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn .md-ink-ripple , md-checkbox.md-hue-1:not([disabled]).md-warn .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn.md-checked .md-ink-ripple , md-checkbox.md-hue-1:not([disabled]).md-warn.md-checked .md-ink-ripple { color: rgba(255,138,101,0.87);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn:not(.md-checked) .md-icon , md-checkbox.md-hue-1:not([disabled]).md-warn:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn.md-checked .md-icon , md-checkbox.md-hue-1:not([disabled]).md-warn.md-checked .md-icon { background-color: rgba(255,138,101,0.87);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before , md-checkbox.md-hue-1:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before { background-color: rgba(255,138,101,0.26);}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn.md-checked .md-icon:after , md-checkbox.md-hue-1:not([disabled]).md-warn.md-checked .md-icon:after { border-color: rgb(238,238,238);}.md-warn .md-default-theme.md-hue-1 .md-datepicker-input-container.md-datepicker-focused , .md-warn .md-hue-1 .md-datepicker-input-container.md-datepicker-focused { border-bottom-color: rgb(221,44,0);}.md-default-theme.md-hue-1 .md-datepicker-input-container.md-datepicker-invalid , .md-hue-1 .md-datepicker-input-container.md-datepicker-invalid { border-bottom-color: rgb(221,44,0);}.md-default-theme.md-hue-1 .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-hue-1 .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-warn .md-default-theme.md-hue-1 .md-datepicker-open .md-datepicker-calendar-icon , .md-warn .md-hue-1 .md-datepicker-open .md-datepicker-calendar-icon { color: rgb(221,44,0);}md-icon.md-default-theme.md-hue-1.md-warn , md-icon.md-hue-1.md-warn { color: rgb(255,138,101);}md-input-container.md-default-theme.md-hue-1 label.md-required:after , md-input-container.md-hue-1 label.md-required:after { color: rgb(221,44,0);}md-input-container.md-default-theme.md-hue-1 .md-input-messages-animation, md-input-container.md-hue-1 .md-input-messages-animation, md-input-container.md-default-theme.md-hue-1 .md-input-message-animation , md-input-container.md-hue-1 .md-input-message-animation { color: rgb(221,44,0);}md-input-container.md-default-theme.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn .md-input , md-input-container.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn .md-input { border-color: rgb(221,44,0);}md-input-container.md-default-theme.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn label, md-input-container.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-default-theme.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn md-icon , md-input-container.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn md-icon { color: rgb(221,44,0);}md-input-cLine truncated
.md-button.md-default-theme.md-hue-2.md-warn , .md-button.md-hue-2.md-warn { color: rgb(216,67,21);}.md-button.md-default-theme.md-hue-2.md-warn.md-raised, .md-button.md-hue-2.md-warn.md-raised, .md-button.md-default-theme.md-hue-2.md-warn.md-fab , .md-button.md-hue-2.md-warn.md-fab { color: rgb(255,255,255); background-color: rgb(216,67,21);}.md-button.md-default-theme.md-hue-2.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-hue-2.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-hue-2.md-warn.md-fab:not([disabled]) md-icon , .md-button.md-hue-2.md-warn.md-fab:not([disabled]) md-icon { color: rgb(255,255,255);}.md-button.md-default-theme.md-hue-2.md-warn.md-raised:not([disabled]):hover, .md-button.md-hue-2.md-warn.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-hue-2.md-warn.md-fab:not([disabled]):hover , .md-button.md-hue-2.md-warn.md-fab:not([disabled]):hover { background-color: rgb(244,81,30);}.md-button.md-default-theme.md-hue-2.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-hue-2.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-hue-2.md-warn.md-fab:not([disabled]).md-focused , .md-button.md-hue-2.md-warn.md-fab:not([disabled]).md-focused { background-color: rgb(244,81,30);}.md-button.md-default-theme.md-hue-2.md-warn:not([disabled]) md-icon , .md-button.md-hue-2.md-warn:not([disabled]) md-icon { color: rgb(216,67,21);}._md a.md-default-theme.md-hue-2:not(.md-button).md-warn , ._md a.md-hue-2:not(.md-button).md-warn { color: rgb(216,67,21);}._md a.md-default-theme.md-hue-2:not(.md-button).md-warn:hover , ._md a.md-hue-2:not(.md-button).md-warn:hover { color: rgb(230,74,25);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn .md-ripple , md-checkbox.md-hue-2:not([disabled]).md-warn .md-ripple { color: rgb(244,81,30);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn .md-ink-ripple , md-checkbox.md-hue-2:not([disabled]).md-warn .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn.md-checked .md-ink-ripple , md-checkbox.md-hue-2:not([disabled]).md-warn.md-checked .md-ink-ripple { color: rgba(216,67,21,0.87);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn:not(.md-checked) .md-icon , md-checkbox.md-hue-2:not([disabled]).md-warn:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn.md-checked .md-icon , md-checkbox.md-hue-2:not([disabled]).md-warn.md-checked .md-icon { background-color: rgba(216,67,21,0.87);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before , md-checkbox.md-hue-2:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before { background-color: rgba(216,67,21,0.26);}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn.md-checked .md-icon:after , md-checkbox.md-hue-2:not([disabled]).md-warn.md-checked .md-icon:after { border-color: rgb(238,238,238);}.md-warn .md-default-theme.md-hue-2 .md-datepicker-input-container.md-datepicker-focused , .md-warn .md-hue-2 .md-datepicker-input-container.md-datepicker-focused { border-bottom-color: rgb(221,44,0);}.md-default-theme.md-hue-2 .md-datepicker-input-container.md-datepicker-invalid , .md-hue-2 .md-datepicker-input-container.md-datepicker-invalid { border-bottom-color: rgb(221,44,0);}.md-default-theme.md-hue-2 .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-hue-2 .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-warn .md-default-theme.md-hue-2 .md-datepicker-open .md-datepicker-calendar-icon , .md-warn .md-hue-2 .md-datepicker-open .md-datepicker-calendar-icon { color: rgb(221,44,0);}md-icon.md-default-theme.md-hue-2.md-warn , md-icon.md-hue-2.md-warn { color: rgb(216,67,21);}md-input-container.md-default-theme.md-hue-2 label.md-required:after , md-input-container.md-hue-2 label.md-required:after { color: rgb(221,44,0);}md-input-container.md-default-theme.md-hue-2 .md-input-messages-animation, md-input-container.md-hue-2 .md-input-messages-animation, md-input-container.md-default-theme.md-hue-2 .md-input-message-animation , md-input-container.md-hue-2 .md-input-message-animation { color: rgb(221,44,0);}md-input-container.md-default-theme.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn .md-input , md-input-container.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn .md-input { border-color: rgb(221,44,0);}md-input-container.md-default-theme.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn label, md-input-container.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-default-theme.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn md-icon , md-input-container.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn md-icon { color: rgb(221,44,0);}md-input-container.md-defaLine truncated
.md-button.md-default-theme.md-hue-3.md-warn , .md-button.md-hue-3.md-warn { color: rgb(255,158,128);}.md-button.md-default-theme.md-hue-3.md-warn.md-raised, .md-button.md-hue-3.md-warn.md-raised, .md-button.md-default-theme.md-hue-3.md-warn.md-fab , .md-button.md-hue-3.md-warn.md-fab { color: rgba(0,0,0,0.87); background-color: rgb(255,158,128);}.md-button.md-default-theme.md-hue-3.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-hue-3.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-default-theme.md-hue-3.md-warn.md-fab:not([disabled]) md-icon , .md-button.md-hue-3.md-warn.md-fab:not([disabled]) md-icon { color: rgba(0,0,0,0.87);}.md-button.md-default-theme.md-hue-3.md-warn.md-raised:not([disabled]):hover, .md-button.md-hue-3.md-warn.md-raised:not([disabled]):hover, .md-button.md-default-theme.md-hue-3.md-warn.md-fab:not([disabled]):hover , .md-button.md-hue-3.md-warn.md-fab:not([disabled]):hover { background-color: rgb(244,81,30);}.md-button.md-default-theme.md-hue-3.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-hue-3.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-default-theme.md-hue-3.md-warn.md-fab:not([disabled]).md-focused , .md-button.md-hue-3.md-warn.md-fab:not([disabled]).md-focused { background-color: rgb(244,81,30);}.md-button.md-default-theme.md-hue-3.md-warn:not([disabled]) md-icon , .md-button.md-hue-3.md-warn:not([disabled]) md-icon { color: rgb(255,158,128);}._md a.md-default-theme.md-hue-3:not(.md-button).md-warn , ._md a.md-hue-3:not(.md-button).md-warn { color: rgb(255,158,128);}._md a.md-default-theme.md-hue-3:not(.md-button).md-warn:hover , ._md a.md-hue-3:not(.md-button).md-warn:hover { color: rgb(230,74,25);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn .md-ripple , md-checkbox.md-hue-3:not([disabled]).md-warn .md-ripple { color: rgb(244,81,30);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn .md-ink-ripple , md-checkbox.md-hue-3:not([disabled]).md-warn .md-ink-ripple { color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn.md-checked .md-ink-ripple , md-checkbox.md-hue-3:not([disabled]).md-warn.md-checked .md-ink-ripple { color: rgba(255,158,128,0.87);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn:not(.md-checked) .md-icon , md-checkbox.md-hue-3:not([disabled]).md-warn:not(.md-checked) .md-icon { border-color: rgba(0,0,0,0.54);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn.md-checked .md-icon , md-checkbox.md-hue-3:not([disabled]).md-warn.md-checked .md-icon { background-color: rgba(255,158,128,0.87);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before , md-checkbox.md-hue-3:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before { background-color: rgba(255,158,128,0.26);}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn.md-checked .md-icon:after , md-checkbox.md-hue-3:not([disabled]).md-warn.md-checked .md-icon:after { border-color: rgb(238,238,238);}.md-warn .md-default-theme.md-hue-3 .md-datepicker-input-container.md-datepicker-focused , .md-warn .md-hue-3 .md-datepicker-input-container.md-datepicker-focused { border-bottom-color: rgb(221,44,0);}.md-default-theme.md-hue-3 .md-datepicker-input-container.md-datepicker-invalid , .md-hue-3 .md-datepicker-input-container.md-datepicker-invalid { border-bottom-color: rgb(221,44,0);}.md-default-theme.md-hue-3 .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-hue-3 .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-warn .md-default-theme.md-hue-3 .md-datepicker-open .md-datepicker-calendar-icon , .md-warn .md-hue-3 .md-datepicker-open .md-datepicker-calendar-icon { color: rgb(221,44,0);}md-icon.md-default-theme.md-hue-3.md-warn , md-icon.md-hue-3.md-warn { color: rgb(255,158,128);}md-input-container.md-default-theme.md-hue-3 label.md-required:after , md-input-container.md-hue-3 label.md-required:after { color: rgb(221,44,0);}md-input-container.md-default-theme.md-hue-3 .md-input-messages-animation, md-input-container.md-hue-3 .md-input-messages-animation, md-input-container.md-default-theme.md-hue-3 .md-input-message-animation , md-input-container.md-hue-3 .md-input-message-animation { color: rgb(221,44,0);}md-input-container.md-default-theme.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn .md-input , md-input-container.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn .md-input { border-color: rgb(221,44,0);}md-input-container.md-default-theme.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn label, md-input-container.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-default-theme.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn md-icon , md-input-container.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn md-icon { color: rgb(221,44,0);}md-input-cLine truncated
md-autocomplete.md-default-theme , md-autocomplete { background: rgb(255,255,255);}md-autocomplete.md-default-theme[disabled]:not([md-floating-label]) , md-autocomplete[disabled]:not([md-floating-label]) { background: rgb(245,245,245);}md-autocomplete.md-default-theme button md-icon path , md-autocomplete button md-icon path { fill: rgb(117,117,117);}md-autocomplete.md-default-theme button:after , md-autocomplete button:after { background: rgba(117,117,117,0.3);}.md-autocomplete-suggestions-container.md-default-theme , .md-autocomplete-suggestions-container { background: rgb(255,255,255);}.md-autocomplete-suggestions-container.md-default-theme li , .md-autocomplete-suggestions-container li { color: rgb(33,33,33);}.md-autocomplete-suggestions-container.md-default-theme li .highlight , .md-autocomplete-suggestions-container li .highlight { color: rgb(117,117,117);}.md-autocomplete-suggestions-container.md-default-theme li:hover, .md-autocomplete-suggestions-container li:hover, .md-autocomplete-suggestions-container.md-default-theme li.selected , .md-autocomplete-suggestions-container li.selected { background: rgb(238,238,238);}md-backdrop { background-color: rgba(33,33,33,0.0);}md-backdrop.md-opaque.md-default-theme , md-backdrop.md-opaque { background-color: rgba(33,33,33,1.0);}md-bottom-sheet.md-default-theme , md-bottom-sheet { background-color: rgb(250,250,250); border-top-color: rgb(224,224,224);}md-bottom-sheet.md-default-theme .md-subheader , md-bottom-sheet .md-subheader { background-color: rgb(250,250,250);}.md-button.md-default-theme:not([disabled]):hover , .md-button:not([disabled]):hover { background-color: rgba(158,158,158,0.2);}.md-button.md-default-theme:not([disabled]).md-focused , .md-button:not([disabled]).md-focused { background-color: rgba(158,158,158,0.2);}.md-button.md-default-theme:not([disabled]).md-icon-button:hover , .md-button:not([disabled]).md-icon-button:hover { background-color: transparent;}.md-button.md-default-theme.md-raised , .md-button.md-raised { color: rgb(33,33,33); background-color: rgb(250,250,250);}.md-button.md-default-theme.md-raised:not([disabled]) md-icon , .md-button.md-raised:not([disabled]) md-icon { color: rgb(33,33,33);}.md-button.md-default-theme.md-raised:not([disabled]):hover , .md-button.md-raised:not([disabled]):hover { background-color: rgb(250,250,250);}.md-button.md-default-theme.md-raised:not([disabled]).md-focused , .md-button.md-raised:not([disabled]).md-focused { background-color: rgb(238,238,238);}.md-button.md-default-theme.md-raised[disabled], .md-button.md-raised[disabled], .md-button.md-default-theme.md-fab[disabled] , .md-button.md-fab[disabled] { background-color: rgba(0,0,0,0.12);}.md-button.md-default-theme[disabled] , .md-button[disabled] { background-color: transparent;}md-card.md-default-theme , md-card { color: rgba(0,0,0,0.87); background-color: rgb(238,238,238); border-radius: 2px;}md-card.md-default-theme md-card-header md-card-avatar md-icon , md-card md-card-header md-card-avatar md-icon { color: rgb(250,250,250); background-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-checked .md-ripple , md-checkbox.md-checked .md-ripple { color: rgb(117,117,117);}md-checkbox.md-default-theme[disabled].md-checked .md-icon , md-checkbox[disabled].md-checked .md-icon { background-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme[disabled].md-checked .md-icon:after , md-checkbox[disabled].md-checked .md-icon:after { border-color: rgb(238,238,238);}md-chips.md-default-theme md-chip , md-chips md-chip { background: rgb(224,224,224); color: rgb(66,66,66);}md-chips.md-default-theme md-chip md-icon , md-chips md-chip md-icon { color: rgb(97,97,97);}md-chips.md-default-theme md-chip._md-chip-editing , md-chips md-chip._md-chip-editing { background: transparent; color: rgb(66,66,66);}md-chips.md-default-theme md-chip-remove .md-button md-icon path , md-chips md-chip-remove .md-button md-icon path { fill: rgb(158,158,158);}.md-contact-suggestion span.md-contact-email { color: rgb(189,189,189);}md-content.md-default-theme , md-content { color: rgba(0,0,0,0.87); background-color: rgb(250,250,250);}/** Theme styles for mdCalendar. */.md-calendar.md-default-theme , .md-calendar { background: rgb(255,255,255); color: rgba(0,0,0,0.87);}.md-calendar.md-default-theme tr:last-child td , .md-calendar tr:last-child td { border-bottom-color: rgb(238,238,238);}.md-default-theme .md-calendar-day-header , .md-calendar-day-header { background: rgb(224,224,224); color: rgba(0,0,0,0.87);}.md-calendar-date.md-focus .md-default-theme .md-calendar-date-selection-indicator, .md-calendar-date.md-focus .md-calendar-date-selection-indicator, .md-default-theme .md-calendar-date-selection-indicator:hover , .md-calendar-date-selection-indicator:hover { background: rgb(224,224,224);}.md-default-theme .md-calendar-date-disabled, .md-calendar-date-disabled,.md-default-theme .md-calLine truncated
md-autocomplete.md-default-theme.md-hue-1 , md-autocomplete.md-hue-1 { background: rgb(255,255,255);}md-autocomplete.md-default-theme.md-hue-1[disabled]:not([md-floating-label]) , md-autocomplete.md-hue-1[disabled]:not([md-floating-label]) { background: rgb(245,245,245);}md-autocomplete.md-default-theme.md-hue-1 button md-icon path , md-autocomplete.md-hue-1 button md-icon path { fill: rgb(117,117,117);}md-autocomplete.md-default-theme.md-hue-1 button:after , md-autocomplete.md-hue-1 button:after { background: rgba(117,117,117,0.3);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-1 , .md-autocomplete-suggestions-container.md-hue-1 { background: rgb(255,255,255);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-1 li , .md-autocomplete-suggestions-container.md-hue-1 li { color: rgb(33,33,33);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-1 li .highlight , .md-autocomplete-suggestions-container.md-hue-1 li .highlight { color: rgb(117,117,117);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-1 li:hover, .md-autocomplete-suggestions-container.md-hue-1 li:hover, .md-autocomplete-suggestions-container.md-default-theme.md-hue-1 li.selected , .md-autocomplete-suggestions-container.md-hue-1 li.selected { background: rgb(238,238,238);}md-backdrop { background-color: rgba(33,33,33,0.0);}md-backdrop.md-opaque.md-default-theme.md-hue-1 , md-backdrop.md-opaque.md-hue-1 { background-color: rgba(33,33,33,1.0);}md-bottom-sheet.md-default-theme.md-hue-1 , md-bottom-sheet.md-hue-1 { background-color: rgb(250,250,250); border-top-color: rgb(224,224,224);}md-bottom-sheet.md-default-theme.md-hue-1 .md-subheader , md-bottom-sheet.md-hue-1 .md-subheader { background-color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-1:not([disabled]):hover , .md-button.md-hue-1:not([disabled]):hover { background-color: rgba(158,158,158,0.2);}.md-button.md-default-theme.md-hue-1:not([disabled]).md-focused , .md-button.md-hue-1:not([disabled]).md-focused { background-color: rgba(158,158,158,0.2);}.md-button.md-default-theme.md-hue-1:not([disabled]).md-icon-button:hover , .md-button.md-hue-1:not([disabled]).md-icon-button:hover { background-color: transparent;}.md-button.md-default-theme.md-hue-1.md-raised , .md-button.md-hue-1.md-raised { color: rgb(33,33,33); background-color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-1.md-raised:not([disabled]) md-icon , .md-button.md-hue-1.md-raised:not([disabled]) md-icon { color: rgb(33,33,33);}.md-button.md-default-theme.md-hue-1.md-raised:not([disabled]):hover , .md-button.md-hue-1.md-raised:not([disabled]):hover { background-color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-1.md-raised:not([disabled]).md-focused , .md-button.md-hue-1.md-raised:not([disabled]).md-focused { background-color: rgb(238,238,238);}.md-button.md-default-theme.md-hue-1.md-raised[disabled], .md-button.md-hue-1.md-raised[disabled], .md-button.md-default-theme.md-hue-1.md-fab[disabled] , .md-button.md-hue-1.md-fab[disabled] { background-color: rgba(0,0,0,0.12);}.md-button.md-default-theme.md-hue-1[disabled] , .md-button.md-hue-1[disabled] { background-color: transparent;}md-card.md-default-theme.md-hue-1 , md-card.md-hue-1 { color: rgba(0,0,0,0.87); background-color: rgb(238,238,238); border-radius: 2px;}md-card.md-default-theme.md-hue-1 md-card-header md-card-avatar md-icon , md-card.md-hue-1 md-card-header md-card-avatar md-icon { color: rgb(238,238,238); background-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-1.md-checked .md-ripple , md-checkbox.md-hue-1.md-checked .md-ripple { color: rgb(117,117,117);}md-checkbox.md-default-theme.md-hue-1[disabled].md-checked .md-icon , md-checkbox.md-hue-1[disabled].md-checked .md-icon { background-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-1[disabled].md-checked .md-icon:after , md-checkbox.md-hue-1[disabled].md-checked .md-icon:after { border-color: rgb(238,238,238);}md-chips.md-default-theme.md-hue-1 md-chip , md-chips.md-hue-1 md-chip { background: rgb(224,224,224); color: rgb(66,66,66);}md-chips.md-default-theme.md-hue-1 md-chip md-icon , md-chips.md-hue-1 md-chip md-icon { color: rgb(97,97,97);}md-chips.md-default-theme.md-hue-1 md-chip._md-chip-editing , md-chips.md-hue-1 md-chip._md-chip-editing { background: transparent; color: rgb(66,66,66);}md-chips.md-default-theme.md-hue-1 md-chip-remove .md-button md-icon path , md-chips.md-hue-1 md-chip-remove .md-button md-icon path { fill: rgb(158,158,158);}.md-contact-suggestion span.md-contact-email { color: rgb(189,189,189);}md-content.md-default-theme.md-hue-1 , md-content.md-hue-1 { color: rgba(0,0,0,0.87); background-color: rgb(250,250,250);}/** Theme styles for mdCalendar. */.md-calendar.md-default-theme.md-hue-1 , .md-calendar.md-hue-1 { background: rgb(255,255,255); color: rgba(0,0,0,0.87);}.md-calendar.md-default-theme.md-hue-1 tr:last-chLine truncated
md-autocomplete.md-default-theme.md-hue-2 , md-autocomplete.md-hue-2 { background: rgb(255,255,255);}md-autocomplete.md-default-theme.md-hue-2[disabled]:not([md-floating-label]) , md-autocomplete.md-hue-2[disabled]:not([md-floating-label]) { background: rgb(245,245,245);}md-autocomplete.md-default-theme.md-hue-2 button md-icon path , md-autocomplete.md-hue-2 button md-icon path { fill: rgb(117,117,117);}md-autocomplete.md-default-theme.md-hue-2 button:after , md-autocomplete.md-hue-2 button:after { background: rgba(117,117,117,0.3);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-2 , .md-autocomplete-suggestions-container.md-hue-2 { background: rgb(255,255,255);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-2 li , .md-autocomplete-suggestions-container.md-hue-2 li { color: rgb(33,33,33);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-2 li .highlight , .md-autocomplete-suggestions-container.md-hue-2 li .highlight { color: rgb(117,117,117);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-2 li:hover, .md-autocomplete-suggestions-container.md-hue-2 li:hover, .md-autocomplete-suggestions-container.md-default-theme.md-hue-2 li.selected , .md-autocomplete-suggestions-container.md-hue-2 li.selected { background: rgb(238,238,238);}md-backdrop { background-color: rgba(33,33,33,0.0);}md-backdrop.md-opaque.md-default-theme.md-hue-2 , md-backdrop.md-opaque.md-hue-2 { background-color: rgba(33,33,33,1.0);}md-bottom-sheet.md-default-theme.md-hue-2 , md-bottom-sheet.md-hue-2 { background-color: rgb(250,250,250); border-top-color: rgb(224,224,224);}md-bottom-sheet.md-default-theme.md-hue-2 .md-subheader , md-bottom-sheet.md-hue-2 .md-subheader { background-color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-2:not([disabled]):hover , .md-button.md-hue-2:not([disabled]):hover { background-color: rgba(158,158,158,0.2);}.md-button.md-default-theme.md-hue-2:not([disabled]).md-focused , .md-button.md-hue-2:not([disabled]).md-focused { background-color: rgba(158,158,158,0.2);}.md-button.md-default-theme.md-hue-2:not([disabled]).md-icon-button:hover , .md-button.md-hue-2:not([disabled]).md-icon-button:hover { background-color: transparent;}.md-button.md-default-theme.md-hue-2.md-raised , .md-button.md-hue-2.md-raised { color: rgb(33,33,33); background-color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-2.md-raised:not([disabled]) md-icon , .md-button.md-hue-2.md-raised:not([disabled]) md-icon { color: rgb(33,33,33);}.md-button.md-default-theme.md-hue-2.md-raised:not([disabled]):hover , .md-button.md-hue-2.md-raised:not([disabled]):hover { background-color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-2.md-raised:not([disabled]).md-focused , .md-button.md-hue-2.md-raised:not([disabled]).md-focused { background-color: rgb(238,238,238);}.md-button.md-default-theme.md-hue-2.md-raised[disabled], .md-button.md-hue-2.md-raised[disabled], .md-button.md-default-theme.md-hue-2.md-fab[disabled] , .md-button.md-hue-2.md-fab[disabled] { background-color: rgba(0,0,0,0.12);}.md-button.md-default-theme.md-hue-2[disabled] , .md-button.md-hue-2[disabled] { background-color: transparent;}md-card.md-default-theme.md-hue-2 , md-card.md-hue-2 { color: rgba(0,0,0,0.87); background-color: rgb(238,238,238); border-radius: 2px;}md-card.md-default-theme.md-hue-2 md-card-header md-card-avatar md-icon , md-card.md-hue-2 md-card-header md-card-avatar md-icon { color: rgb(224,224,224); background-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-2.md-checked .md-ripple , md-checkbox.md-hue-2.md-checked .md-ripple { color: rgb(117,117,117);}md-checkbox.md-default-theme.md-hue-2[disabled].md-checked .md-icon , md-checkbox.md-hue-2[disabled].md-checked .md-icon { background-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-2[disabled].md-checked .md-icon:after , md-checkbox.md-hue-2[disabled].md-checked .md-icon:after { border-color: rgb(238,238,238);}md-chips.md-default-theme.md-hue-2 md-chip , md-chips.md-hue-2 md-chip { background: rgb(224,224,224); color: rgb(66,66,66);}md-chips.md-default-theme.md-hue-2 md-chip md-icon , md-chips.md-hue-2 md-chip md-icon { color: rgb(97,97,97);}md-chips.md-default-theme.md-hue-2 md-chip._md-chip-editing , md-chips.md-hue-2 md-chip._md-chip-editing { background: transparent; color: rgb(66,66,66);}md-chips.md-default-theme.md-hue-2 md-chip-remove .md-button md-icon path , md-chips.md-hue-2 md-chip-remove .md-button md-icon path { fill: rgb(158,158,158);}.md-contact-suggestion span.md-contact-email { color: rgb(189,189,189);}md-content.md-default-theme.md-hue-2 , md-content.md-hue-2 { color: rgba(0,0,0,0.87); background-color: rgb(250,250,250);}/** Theme styles for mdCalendar. */.md-calendar.md-default-theme.md-hue-2 , .md-calendar.md-hue-2 { background: rgb(255,255,255); color: rgba(0,0,0,0.87);}.md-calendar.md-default-theme.md-hue-2 tr:last-chLine truncated
md-autocomplete.md-default-theme.md-hue-3 , md-autocomplete.md-hue-3 { background: rgb(255,255,255);}md-autocomplete.md-default-theme.md-hue-3[disabled]:not([md-floating-label]) , md-autocomplete.md-hue-3[disabled]:not([md-floating-label]) { background: rgb(245,245,245);}md-autocomplete.md-default-theme.md-hue-3 button md-icon path , md-autocomplete.md-hue-3 button md-icon path { fill: rgb(117,117,117);}md-autocomplete.md-default-theme.md-hue-3 button:after , md-autocomplete.md-hue-3 button:after { background: rgba(117,117,117,0.3);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-3 , .md-autocomplete-suggestions-container.md-hue-3 { background: rgb(255,255,255);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-3 li , .md-autocomplete-suggestions-container.md-hue-3 li { color: rgb(33,33,33);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-3 li .highlight , .md-autocomplete-suggestions-container.md-hue-3 li .highlight { color: rgb(117,117,117);}.md-autocomplete-suggestions-container.md-default-theme.md-hue-3 li:hover, .md-autocomplete-suggestions-container.md-hue-3 li:hover, .md-autocomplete-suggestions-container.md-default-theme.md-hue-3 li.selected , .md-autocomplete-suggestions-container.md-hue-3 li.selected { background: rgb(238,238,238);}md-backdrop { background-color: rgba(33,33,33,0.0);}md-backdrop.md-opaque.md-default-theme.md-hue-3 , md-backdrop.md-opaque.md-hue-3 { background-color: rgba(33,33,33,1.0);}md-bottom-sheet.md-default-theme.md-hue-3 , md-bottom-sheet.md-hue-3 { background-color: rgb(250,250,250); border-top-color: rgb(224,224,224);}md-bottom-sheet.md-default-theme.md-hue-3 .md-subheader , md-bottom-sheet.md-hue-3 .md-subheader { background-color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-3:not([disabled]):hover , .md-button.md-hue-3:not([disabled]):hover { background-color: rgba(158,158,158,0.2);}.md-button.md-default-theme.md-hue-3:not([disabled]).md-focused , .md-button.md-hue-3:not([disabled]).md-focused { background-color: rgba(158,158,158,0.2);}.md-button.md-default-theme.md-hue-3:not([disabled]).md-icon-button:hover , .md-button.md-hue-3:not([disabled]).md-icon-button:hover { background-color: transparent;}.md-button.md-default-theme.md-hue-3.md-raised , .md-button.md-hue-3.md-raised { color: rgb(33,33,33); background-color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-3.md-raised:not([disabled]) md-icon , .md-button.md-hue-3.md-raised:not([disabled]) md-icon { color: rgb(33,33,33);}.md-button.md-default-theme.md-hue-3.md-raised:not([disabled]):hover , .md-button.md-hue-3.md-raised:not([disabled]):hover { background-color: rgb(250,250,250);}.md-button.md-default-theme.md-hue-3.md-raised:not([disabled]).md-focused , .md-button.md-hue-3.md-raised:not([disabled]).md-focused { background-color: rgb(238,238,238);}.md-button.md-default-theme.md-hue-3.md-raised[disabled], .md-button.md-hue-3.md-raised[disabled], .md-button.md-default-theme.md-hue-3.md-fab[disabled] , .md-button.md-hue-3.md-fab[disabled] { background-color: rgba(0,0,0,0.12);}.md-button.md-default-theme.md-hue-3[disabled] , .md-button.md-hue-3[disabled] { background-color: transparent;}md-card.md-default-theme.md-hue-3 , md-card.md-hue-3 { color: rgba(0,0,0,0.87); background-color: rgb(238,238,238); border-radius: 2px;}md-card.md-default-theme.md-hue-3 md-card-header md-card-avatar md-icon , md-card.md-hue-3 md-card-header md-card-avatar md-icon { color: rgb(158,158,158); background-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-3.md-checked .md-ripple , md-checkbox.md-hue-3.md-checked .md-ripple { color: rgb(117,117,117);}md-checkbox.md-default-theme.md-hue-3[disabled].md-checked .md-icon , md-checkbox.md-hue-3[disabled].md-checked .md-icon { background-color: rgba(0,0,0,0.38);}md-checkbox.md-default-theme.md-hue-3[disabled].md-checked .md-icon:after , md-checkbox.md-hue-3[disabled].md-checked .md-icon:after { border-color: rgb(238,238,238);}md-chips.md-default-theme.md-hue-3 md-chip , md-chips.md-hue-3 md-chip { background: rgb(224,224,224); color: rgb(66,66,66);}md-chips.md-default-theme.md-hue-3 md-chip md-icon , md-chips.md-hue-3 md-chip md-icon { color: rgb(97,97,97);}md-chips.md-default-theme.md-hue-3 md-chip._md-chip-editing , md-chips.md-hue-3 md-chip._md-chip-editing { background: transparent; color: rgb(66,66,66);}md-chips.md-default-theme.md-hue-3 md-chip-remove .md-button md-icon path , md-chips.md-hue-3 md-chip-remove .md-button md-icon path { fill: rgb(158,158,158);}.md-contact-suggestion span.md-contact-email { color: rgb(189,189,189);}md-content.md-default-theme.md-hue-3 , md-content.md-hue-3 { color: rgba(0,0,0,0.87); background-color: rgb(250,250,250);}/** Theme styles for mdCalendar. */.md-calendar.md-default-theme.md-hue-3 , .md-calendar.md-hue-3 { background: rgb(255,255,255); color: rgba(0,0,0,0.87);}.md-calendar.md-default-theme.md-hue-3 tr:last-chLine truncated
md-bottom-sheet.md-default-theme.md-list md-list-item, md-bottom-sheet.md-list md-list-item{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-primary, .md-button.md-primary{color:rgb(77,128,128)}.md-button.md-default-theme.md-primary.md-fab, .md-button.md-primary.md-fab,.md-button.md-default-theme.md-primary.md-raised, .md-button.md-primary.md-raised{color:rgba(255,255,255,0.87);background-color:rgb(77,128,128)}.md-button.md-default-theme.md-primary.md-fab:not([disabled]) md-icon, .md-button.md-primary.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-primary.md-raised:not([disabled]) md-icon{color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-primary.md-fab:not([disabled]).md-focused, .md-button.md-primary.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-primary.md-fab:not([disabled]):hover, .md-button.md-primary.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-primary.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-primary.md-raised:not([disabled]):hover, .md-button.md-primary.md-raised:not([disabled]):hover{background-color:rgb(142,191,187)}.md-button.md-default-theme.md-primary:not([disabled]) md-icon, .md-button.md-primary:not([disabled]) md-icon{color:rgb(77,128,128)}._md a.md-default-theme:not(.md-button).md-primary, ._md a:not(.md-button).md-primary{color:rgb(77,128,128)}._md a.md-default-theme:not(.md-button).md-primary:hover, ._md a:not(.md-button).md-primary:hover{color:rgb(125,179,176)}md-card.md-default-theme .md-card-image, md-card .md-card-image{border-radius:2px 2px 0 0}md-card.md-default-theme md-card-header md-card-header-text .md-subhead, md-card md-card-header md-card-header-text .md-subhead,md-card.md-default-theme md-card-title md-card-title-text:not(:only-child) .md-subhead, md-card md-card-title md-card-title-text:not(:only-child) .md-subhead{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme .md-ink-ripple, md-checkbox .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme:not(.md-checked) .md-icon, md-checkbox:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme:not([disabled]).md-primary .md-ripple, md-checkbox:not([disabled]).md-primary .md-ripple{color:rgb(142,191,187)}md-checkbox.md-default-theme:not([disabled]).md-primary.md-checked .md-ripple, md-checkbox:not([disabled]).md-primary.md-checked .md-ripple{color:rgb(117,117,117)}md-checkbox.md-default-theme:not([disabled]).md-primary .md-ink-ripple, md-checkbox:not([disabled]).md-primary .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme:not([disabled]).md-primary.md-checked .md-ink-ripple, md-checkbox:not([disabled]).md-primary.md-checked .md-ink-ripple{color:rgba(77,128,128,0.87)}md-checkbox.md-default-theme:not([disabled]).md-primary:not(.md-checked) .md-icon, md-checkbox:not([disabled]).md-primary:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme:not([disabled]).md-primary.md-checked .md-icon, md-checkbox:not([disabled]).md-primary.md-checked .md-icon{background-color:rgba(77,128,128,0.87)}md-checkbox.md-default-theme:not([disabled]).md-primary.md-checked.md-focused .md-container:before, md-checkbox:not([disabled]).md-primary.md-checked.md-focused .md-container:before{background-color:rgba(77,128,128,0.26)}md-checkbox.md-default-theme:not([disabled]).md-primary.md-checked .md-icon:after, md-checkbox:not([disabled]).md-primary.md-checked .md-icon:after{border-color:rgba(255,255,255,0.87)}md-checkbox.md-default-theme:not([disabled]).md-primary .md-indeterminate[disabled] .md-container, md-checkbox:not([disabled]).md-primary .md-indeterminate[disabled] .md-container{color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme[disabled]:not(.md-checked) .md-icon, md-checkbox[disabled]:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme[disabled] .md-icon:after, md-checkbox[disabled] .md-icon:after{border-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme[disabled] .md-label, md-checkbox[disabled] .md-label{color:rgba(0,0,0,0.38)}md-chips.md-default-theme .md-chips, md-chips .md-chips{box-shadow:0 1px rgba(0,0,0,0.12)}md-chips.md-default-theme .md-chips.md-focused, md-chips .md-chips.md-focused{box-shadow:0 2px rgb(77,128,128)}md-chips.md-default-theme .md-chips .md-chip-input-container input, md-chips .md-chips .md-chip-input-container input{color:rgba(0,0,0,0.87)}md-chips.md-default-theme .md-chips .md-chip-input-container input:-moz-placeholder, md-chips .md-chips .md-chip-input-container input:-moz-placeholder,md-chips.md-default-theme .md-chips .md-chip-input-container input::-moz-placeholder, md-chips .md-chips .md-chip-input-container input::-moz-placeholder{color:rgba(0,0,0,0.38)}md-chips.md-default-theme .md-chips .md-chip-input-container input:-ms-input-placeholder, md-chips .md-chips .md-chip-input-container input:Line truncated
md-bottom-sheet.md-default-theme.md-hue-1.md-list md-list-item, md-bottom-sheet.md-hue-1.md-list md-list-item{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-1.md-primary, .md-button.md-hue-1.md-primary{color:rgb(178,214,211)}.md-button.md-default-theme.md-hue-1.md-primary.md-fab, .md-button.md-hue-1.md-primary.md-fab,.md-button.md-default-theme.md-hue-1.md-primary.md-raised, .md-button.md-hue-1.md-primary.md-raised{color:rgba(255,255,255,0.87);background-color:rgb(178,214,211)}.md-button.md-default-theme.md-hue-1.md-primary.md-fab:not([disabled]) md-icon, .md-button.md-hue-1.md-primary.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-hue-1.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-hue-1.md-primary.md-raised:not([disabled]) md-icon{color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-hue-1.md-primary.md-fab:not([disabled]).md-focused, .md-button.md-hue-1.md-primary.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-1.md-primary.md-fab:not([disabled]):hover, .md-button.md-hue-1.md-primary.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-hue-1.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-hue-1.md-primary.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-1.md-primary.md-raised:not([disabled]):hover, .md-button.md-hue-1.md-primary.md-raised:not([disabled]):hover{background-color:rgb(142,191,187)}.md-button.md-default-theme.md-hue-1.md-primary:not([disabled]) md-icon, .md-button.md-hue-1.md-primary:not([disabled]) md-icon{color:rgb(178,214,211)}._md a.md-default-theme.md-hue-1:not(.md-button).md-primary, ._md a.md-hue-1:not(.md-button).md-primary{color:rgb(178,214,211)}._md a.md-default-theme.md-hue-1:not(.md-button).md-primary:hover, ._md a.md-hue-1:not(.md-button).md-primary:hover{color:rgb(125,179,176)}md-card.md-default-theme.md-hue-1 .md-card-image, md-card.md-hue-1 .md-card-image{border-radius:2px 2px 0 0}md-card.md-default-theme.md-hue-1 md-card-header md-card-header-text .md-subhead, md-card.md-hue-1 md-card-header md-card-header-text .md-subhead,md-card.md-default-theme.md-hue-1 md-card-title md-card-title-text:not(:only-child) .md-subhead, md-card.md-hue-1 md-card-title md-card-title-text:not(:only-child) .md-subhead{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-1 .md-ink-ripple, md-checkbox.md-hue-1 .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-1:not(.md-checked) .md-icon, md-checkbox.md-hue-1:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary .md-ripple, md-checkbox.md-hue-1:not([disabled]).md-primary .md-ripple{color:rgb(142,191,187)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary.md-checked .md-ripple, md-checkbox.md-hue-1:not([disabled]).md-primary.md-checked .md-ripple{color:rgb(117,117,117)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary .md-ink-ripple, md-checkbox.md-hue-1:not([disabled]).md-primary .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary.md-checked .md-ink-ripple, md-checkbox.md-hue-1:not([disabled]).md-primary.md-checked .md-ink-ripple{color:rgba(178,214,211,0.87)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary:not(.md-checked) .md-icon, md-checkbox.md-hue-1:not([disabled]).md-primary:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary.md-checked .md-icon, md-checkbox.md-hue-1:not([disabled]).md-primary.md-checked .md-icon{background-color:rgba(178,214,211,0.87)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary.md-checked.md-focused .md-container:before, md-checkbox.md-hue-1:not([disabled]).md-primary.md-checked.md-focused .md-container:before{background-color:rgba(178,214,211,0.26)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary.md-checked .md-icon:after, md-checkbox.md-hue-1:not([disabled]).md-primary.md-checked .md-icon:after{border-color:rgba(255,255,255,0.87)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-primary .md-indeterminate[disabled] .md-container, md-checkbox.md-hue-1:not([disabled]).md-primary .md-indeterminate[disabled] .md-container{color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-1[disabled]:not(.md-checked) .md-icon, md-checkbox.md-hue-1[disabled]:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-1[disabled] .md-icon:after, md-checkbox.md-hue-1[disabled] .md-icon:after{border-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-1[disabled] .md-label, md-checkbox.md-hue-1[disabled] .md-label{color:rgba(0,0,0,0.38)}md-chips.md-default-theme.md-hue-1 .md-chips, md-chips.md-hue-1 .md-chips{box-shadow:0 1px rgba(0,0,0,0.12)}md-chips.md-default-theme.md-hue-1 .md-chips.md-focused, md-chips.md-hue-1 .md-chips.md-focused{box-shadow:0 2px rgb(178,214,211)}md-chips.md-default-theme.Line truncated
md-bottom-sheet.md-default-theme.md-hue-2.md-list md-list-item, md-bottom-sheet.md-hue-2.md-list md-list-item{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-2.md-primary, .md-button.md-hue-2.md-primary{color:rgb(99,153,151)}.md-button.md-default-theme.md-hue-2.md-primary.md-fab, .md-button.md-hue-2.md-primary.md-fab,.md-button.md-default-theme.md-hue-2.md-primary.md-raised, .md-button.md-hue-2.md-primary.md-raised{color:rgba(255,255,255,0.87);background-color:rgb(99,153,151)}.md-button.md-default-theme.md-hue-2.md-primary.md-fab:not([disabled]) md-icon, .md-button.md-hue-2.md-primary.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-hue-2.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-hue-2.md-primary.md-raised:not([disabled]) md-icon{color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-hue-2.md-primary.md-fab:not([disabled]).md-focused, .md-button.md-hue-2.md-primary.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-2.md-primary.md-fab:not([disabled]):hover, .md-button.md-hue-2.md-primary.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-hue-2.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-hue-2.md-primary.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-2.md-primary.md-raised:not([disabled]):hover, .md-button.md-hue-2.md-primary.md-raised:not([disabled]):hover{background-color:rgb(142,191,187)}.md-button.md-default-theme.md-hue-2.md-primary:not([disabled]) md-icon, .md-button.md-hue-2.md-primary:not([disabled]) md-icon{color:rgb(99,153,151)}._md a.md-default-theme.md-hue-2:not(.md-button).md-primary, ._md a.md-hue-2:not(.md-button).md-primary{color:rgb(99,153,151)}._md a.md-default-theme.md-hue-2:not(.md-button).md-primary:hover, ._md a.md-hue-2:not(.md-button).md-primary:hover{color:rgb(125,179,176)}md-card.md-default-theme.md-hue-2 .md-card-image, md-card.md-hue-2 .md-card-image{border-radius:2px 2px 0 0}md-card.md-default-theme.md-hue-2 md-card-header md-card-header-text .md-subhead, md-card.md-hue-2 md-card-header md-card-header-text .md-subhead,md-card.md-default-theme.md-hue-2 md-card-title md-card-title-text:not(:only-child) .md-subhead, md-card.md-hue-2 md-card-title md-card-title-text:not(:only-child) .md-subhead{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-2 .md-ink-ripple, md-checkbox.md-hue-2 .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-2:not(.md-checked) .md-icon, md-checkbox.md-hue-2:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary .md-ripple, md-checkbox.md-hue-2:not([disabled]).md-primary .md-ripple{color:rgb(142,191,187)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary.md-checked .md-ripple, md-checkbox.md-hue-2:not([disabled]).md-primary.md-checked .md-ripple{color:rgb(117,117,117)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary .md-ink-ripple, md-checkbox.md-hue-2:not([disabled]).md-primary .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary.md-checked .md-ink-ripple, md-checkbox.md-hue-2:not([disabled]).md-primary.md-checked .md-ink-ripple{color:rgba(99,153,151,0.87)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary:not(.md-checked) .md-icon, md-checkbox.md-hue-2:not([disabled]).md-primary:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary.md-checked .md-icon, md-checkbox.md-hue-2:not([disabled]).md-primary.md-checked .md-icon{background-color:rgba(99,153,151,0.87)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary.md-checked.md-focused .md-container:before, md-checkbox.md-hue-2:not([disabled]).md-primary.md-checked.md-focused .md-container:before{background-color:rgba(99,153,151,0.26)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary.md-checked .md-icon:after, md-checkbox.md-hue-2:not([disabled]).md-primary.md-checked .md-icon:after{border-color:rgba(255,255,255,0.87)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-primary .md-indeterminate[disabled] .md-container, md-checkbox.md-hue-2:not([disabled]).md-primary .md-indeterminate[disabled] .md-container{color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-2[disabled]:not(.md-checked) .md-icon, md-checkbox.md-hue-2[disabled]:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-2[disabled] .md-icon:after, md-checkbox.md-hue-2[disabled] .md-icon:after{border-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-2[disabled] .md-label, md-checkbox.md-hue-2[disabled] .md-label{color:rgba(0,0,0,0.38)}md-chips.md-default-theme.md-hue-2 .md-chips, md-chips.md-hue-2 .md-chips{box-shadow:0 1px rgba(0,0,0,0.12)}md-chips.md-default-theme.md-hue-2 .md-chips.md-focused, md-chips.md-hue-2 .md-chips.md-focused{box-shadow:0 2px rgb(99,153,151)}md-chips.md-default-theme.md-hue-2Line truncated
md-bottom-sheet.md-default-theme.md-hue-3.md-list md-list-item, md-bottom-sheet.md-hue-3.md-list md-list-item{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-3.md-primary, .md-button.md-hue-3.md-primary{color:rgb(0,176,192)}.md-button.md-default-theme.md-hue-3.md-primary.md-fab, .md-button.md-hue-3.md-primary.md-fab,.md-button.md-default-theme.md-hue-3.md-primary.md-raised, .md-button.md-hue-3.md-primary.md-raised{color:rgba(255,255,255,0.87);background-color:rgb(0,176,192)}.md-button.md-default-theme.md-hue-3.md-primary.md-fab:not([disabled]) md-icon, .md-button.md-hue-3.md-primary.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-hue-3.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-hue-3.md-primary.md-raised:not([disabled]) md-icon{color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-hue-3.md-primary.md-fab:not([disabled]).md-focused, .md-button.md-hue-3.md-primary.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-3.md-primary.md-fab:not([disabled]):hover, .md-button.md-hue-3.md-primary.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-hue-3.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-hue-3.md-primary.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-3.md-primary.md-raised:not([disabled]):hover, .md-button.md-hue-3.md-primary.md-raised:not([disabled]):hover{background-color:rgb(142,191,187)}.md-button.md-default-theme.md-hue-3.md-primary:not([disabled]) md-icon, .md-button.md-hue-3.md-primary:not([disabled]) md-icon{color:rgb(0,176,192)}._md a.md-default-theme.md-hue-3:not(.md-button).md-primary, ._md a.md-hue-3:not(.md-button).md-primary{color:rgb(0,176,192)}._md a.md-default-theme.md-hue-3:not(.md-button).md-primary:hover, ._md a.md-hue-3:not(.md-button).md-primary:hover{color:rgb(125,179,176)}md-card.md-default-theme.md-hue-3 .md-card-image, md-card.md-hue-3 .md-card-image{border-radius:2px 2px 0 0}md-card.md-default-theme.md-hue-3 md-card-header md-card-header-text .md-subhead, md-card.md-hue-3 md-card-header md-card-header-text .md-subhead,md-card.md-default-theme.md-hue-3 md-card-title md-card-title-text:not(:only-child) .md-subhead, md-card.md-hue-3 md-card-title md-card-title-text:not(:only-child) .md-subhead{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-3 .md-ink-ripple, md-checkbox.md-hue-3 .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-3:not(.md-checked) .md-icon, md-checkbox.md-hue-3:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary .md-ripple, md-checkbox.md-hue-3:not([disabled]).md-primary .md-ripple{color:rgb(142,191,187)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary.md-checked .md-ripple, md-checkbox.md-hue-3:not([disabled]).md-primary.md-checked .md-ripple{color:rgb(117,117,117)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary .md-ink-ripple, md-checkbox.md-hue-3:not([disabled]).md-primary .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary.md-checked .md-ink-ripple, md-checkbox.md-hue-3:not([disabled]).md-primary.md-checked .md-ink-ripple{color:rgba(0,176,192,0.87)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary:not(.md-checked) .md-icon, md-checkbox.md-hue-3:not([disabled]).md-primary:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary.md-checked .md-icon, md-checkbox.md-hue-3:not([disabled]).md-primary.md-checked .md-icon{background-color:rgba(0,176,192,0.87)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary.md-checked.md-focused .md-container:before, md-checkbox.md-hue-3:not([disabled]).md-primary.md-checked.md-focused .md-container:before{background-color:rgba(0,176,192,0.26)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary.md-checked .md-icon:after, md-checkbox.md-hue-3:not([disabled]).md-primary.md-checked .md-icon:after{border-color:rgba(255,255,255,0.87)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-primary .md-indeterminate[disabled] .md-container, md-checkbox.md-hue-3:not([disabled]).md-primary .md-indeterminate[disabled] .md-container{color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-3[disabled]:not(.md-checked) .md-icon, md-checkbox.md-hue-3[disabled]:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-3[disabled] .md-icon:after, md-checkbox.md-hue-3[disabled] .md-icon:after{border-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-3[disabled] .md-label, md-checkbox.md-hue-3[disabled] .md-label{color:rgba(0,0,0,0.38)}md-chips.md-default-theme.md-hue-3 .md-chips, md-chips.md-hue-3 .md-chips{box-shadow:0 1px rgba(0,0,0,0.12)}md-chips.md-default-theme.md-hue-3 .md-chips.md-focused, md-chips.md-hue-3 .md-chips.md-focused{box-shadow:0 2px rgb(0,176,192)}md-chips.md-default-theme.md-hue-3 .md-chiLine truncated
.md-button.md-default-theme.md-fab md-icon, .md-button.md-fab md-icon{color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-fab, .md-button.md-fab{background-color:rgb(86,176,76);color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-fab:not([disabled]) .md-icon, .md-button.md-fab:not([disabled]) .md-icon{color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-fab:not([disabled]).md-focused, .md-button.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-fab:not([disabled]):hover, .md-button.md-fab:not([disabled]):hover{background-color:rgb(0,200,83)}.md-button.md-default-theme.md-accent, .md-button.md-accent{color:rgb(86,176,76)}.md-button.md-default-theme.md-accent.md-fab, .md-button.md-accent.md-fab,.md-button.md-default-theme.md-accent.md-raised, .md-button.md-accent.md-raised{color:rgba(255,255,255,0.87);background-color:rgb(86,176,76)}.md-button.md-default-theme.md-accent.md-fab:not([disabled]) md-icon, .md-button.md-accent.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-accent.md-raised:not([disabled]) md-icon{color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-accent.md-fab:not([disabled]).md-focused, .md-button.md-accent.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-accent.md-fab:not([disabled]):hover, .md-button.md-accent.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-accent.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-accent.md-raised:not([disabled]):hover, .md-button.md-accent.md-raised:not([disabled]):hover{background-color:rgb(0,200,83)}.md-button.md-default-theme.md-accent:not([disabled]) md-icon, .md-button.md-accent:not([disabled]) md-icon{color:rgb(86,176,76)}.md-button.md-default-theme.md-accent[disabled], .md-button.md-accent[disabled],.md-button.md-default-theme.md-fab[disabled], .md-button.md-fab[disabled],.md-button.md-default-theme.md-raised[disabled], .md-button.md-raised[disabled],.md-button.md-default-theme.md-warn[disabled], .md-button.md-warn[disabled],.md-button.md-default-theme[disabled], .md-button[disabled]{color:rgba(0,0,0,0.38);cursor:default}.md-button.md-default-theme.md-accent[disabled] md-icon, .md-button.md-accent[disabled] md-icon,.md-button.md-default-theme.md-fab[disabled] md-icon, .md-button.md-fab[disabled] md-icon,.md-button.md-default-theme.md-raised[disabled] md-icon, .md-button.md-raised[disabled] md-icon,.md-button.md-default-theme.md-warn[disabled] md-icon, .md-button.md-warn[disabled] md-icon,.md-button.md-default-theme[disabled] md-icon, .md-button[disabled] md-icon{color:rgba(0,0,0,0.38)}._md a.md-default-theme:not(.md-button).md-accent:hover, ._md a:not(.md-button).md-accent:hover{color:rgb(56,142,60)}._md a.md-default-theme:not(.md-button).md-accent, ._md a:not(.md-button).md-accent{color:rgb(86,176,76)}._md a.md-default-theme:not(.md-button).md-accent:hover, ._md a:not(.md-button).md-accent:hover{color:rgb(0,200,83)}md-checkbox.md-default-theme .md-ripple, md-checkbox .md-ripple{color:rgb(0,200,83)}md-checkbox.md-default-theme.md-checked.md-focused .md-container:before, md-checkbox.md-checked.md-focused .md-container:before{background-color:rgba(86,176,76,0.26)}md-checkbox.md-default-theme.md-checked .md-ink-ripple, md-checkbox.md-checked .md-ink-ripple{color:rgba(86,176,76,0.87)}md-checkbox.md-default-theme.md-checked .md-icon, md-checkbox.md-checked .md-icon{background-color:rgba(86,176,76,0.87)}md-checkbox.md-default-theme.md-checked .md-icon:after, md-checkbox.md-checked .md-icon:after{border-color:rgba(255,255,255,0.87)}.md-accent .md-default-theme .md-datepicker-input-container.md-datepicker-focused, .md-accent .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:rgb(86,176,76)}.md-accent .md-default-theme .md-datepicker-open .md-datepicker-calendar-icon, .md-accent .md-datepicker-open .md-datepicker-calendar-icon,.md-default-theme .md-datepicker-open.md-accent .md-datepicker-calendar-icon, .md-datepicker-open.md-accent .md-datepicker-calendar-icon{color:rgb(86,176,76)}md-icon.md-default-theme.md-accent, md-icon.md-accent{color:rgb(86,176,76)}md-input-container.md-default-theme:not(.md-input-invalid).md-input-focused.md-accent .md-input, md-input-container:not(.md-input-invalid).md-input-focused.md-accent .md-input{border-color:rgb(86,176,76)}md-input-container.md-default-theme:not(.md-input-invalid).md-input-focused.md-accent label, md-input-container:not(.md-input-invalid).md-input-focused.md-accent label,md-input-container.md-default-theme:not(.md-input-invalid).md-input-focused.md-accent md-icon, md-input-container:not(.md-input-invalid).md-input-focused.md-accent md-icon{color:rgb(86,176,76)}md-list.md-default-theme md-list-item>md-icon.md-highlight.md-accent, md-list md-list-item>md-icon.md-highlight.md-accent{color:rgb(86,176,76)}md-nav-bar.md-default-theme md-nav-ink-bar, md-nav-bar md-nav-ink-bar{cLine truncated
.md-button.md-default-theme.md-hue-1.md-fab md-icon, .md-button.md-hue-1.md-fab md-icon{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-1.md-fab, .md-button.md-hue-1.md-fab{background-color:rgb(250,250,250);color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-1.md-fab:not([disabled]) .md-icon, .md-button.md-hue-1.md-fab:not([disabled]) .md-icon{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-1.md-fab:not([disabled]).md-focused, .md-button.md-hue-1.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-1.md-fab:not([disabled]):hover, .md-button.md-hue-1.md-fab:not([disabled]):hover{background-color:rgb(0,200,83)}.md-button.md-default-theme.md-hue-1.md-accent, .md-button.md-hue-1.md-accent{color:rgb(250,250,250)}.md-button.md-default-theme.md-hue-1.md-accent.md-fab, .md-button.md-hue-1.md-accent.md-fab,.md-button.md-default-theme.md-hue-1.md-accent.md-raised, .md-button.md-hue-1.md-accent.md-raised{color:rgba(0,0,0,0.87);background-color:rgb(250,250,250)}.md-button.md-default-theme.md-hue-1.md-accent.md-fab:not([disabled]) md-icon, .md-button.md-hue-1.md-accent.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-hue-1.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-hue-1.md-accent.md-raised:not([disabled]) md-icon{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-1.md-accent.md-fab:not([disabled]).md-focused, .md-button.md-hue-1.md-accent.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-1.md-accent.md-fab:not([disabled]):hover, .md-button.md-hue-1.md-accent.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-hue-1.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-hue-1.md-accent.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-1.md-accent.md-raised:not([disabled]):hover, .md-button.md-hue-1.md-accent.md-raised:not([disabled]):hover{background-color:rgb(0,200,83)}.md-button.md-default-theme.md-hue-1.md-accent:not([disabled]) md-icon, .md-button.md-hue-1.md-accent:not([disabled]) md-icon{color:rgb(250,250,250)}.md-button.md-default-theme.md-hue-1.md-accent[disabled], .md-button.md-hue-1.md-accent[disabled],.md-button.md-default-theme.md-hue-1.md-fab[disabled], .md-button.md-hue-1.md-fab[disabled],.md-button.md-default-theme.md-hue-1.md-raised[disabled], .md-button.md-hue-1.md-raised[disabled],.md-button.md-default-theme.md-hue-1.md-warn[disabled], .md-button.md-hue-1.md-warn[disabled],.md-button.md-default-theme.md-hue-1[disabled], .md-button.md-hue-1[disabled]{color:rgba(0,0,0,0.38);cursor:default}.md-button.md-default-theme.md-hue-1.md-accent[disabled] md-icon, .md-button.md-hue-1.md-accent[disabled] md-icon,.md-button.md-default-theme.md-hue-1.md-fab[disabled] md-icon, .md-button.md-hue-1.md-fab[disabled] md-icon,.md-button.md-default-theme.md-hue-1.md-raised[disabled] md-icon, .md-button.md-hue-1.md-raised[disabled] md-icon,.md-button.md-default-theme.md-hue-1.md-warn[disabled] md-icon, .md-button.md-hue-1.md-warn[disabled] md-icon,.md-button.md-default-theme.md-hue-1[disabled] md-icon, .md-button.md-hue-1[disabled] md-icon{color:rgba(0,0,0,0.38)}._md a.md-default-theme.md-hue-1:not(.md-button).md-accent:hover, ._md a.md-hue-1:not(.md-button).md-accent:hover{color:rgb(56,142,60)}._md a.md-default-theme.md-hue-1:not(.md-button).md-accent, ._md a.md-hue-1:not(.md-button).md-accent{color:rgb(250,250,250)}._md a.md-default-theme.md-hue-1:not(.md-button).md-accent:hover, ._md a.md-hue-1:not(.md-button).md-accent:hover{color:rgb(0,200,83)}md-checkbox.md-default-theme.md-hue-1 .md-ripple, md-checkbox.md-hue-1 .md-ripple{color:rgb(0,200,83)}md-checkbox.md-default-theme.md-hue-1.md-checked.md-focused .md-container:before, md-checkbox.md-hue-1.md-checked.md-focused .md-container:before{background-color:rgba(250,250,250,0.26)}md-checkbox.md-default-theme.md-hue-1.md-checked .md-ink-ripple, md-checkbox.md-hue-1.md-checked .md-ink-ripple{color:rgba(250,250,250,0.87)}md-checkbox.md-default-theme.md-hue-1.md-checked .md-icon, md-checkbox.md-hue-1.md-checked .md-icon{background-color:rgba(250,250,250,0.87)}md-checkbox.md-default-theme.md-hue-1.md-checked .md-icon:after, md-checkbox.md-hue-1.md-checked .md-icon:after{border-color:rgba(0,0,0,0.87)}.md-accent .md-default-theme.md-hue-1 .md-datepicker-input-container.md-datepicker-focused, .md-accent .md-hue-1 .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:rgb(250,250,250)}.md-accent .md-default-theme.md-hue-1 .md-datepicker-open .md-datepicker-calendar-icon, .md-accent .md-hue-1 .md-datepicker-open .md-datepicker-calendar-icon,.md-default-theme.md-hue-1 .md-datepicker-open.md-accent .md-datepicker-calendar-icon, .md-hue-1 .md-datepicker-open.md-accent .md-datepicker-calendar-icon{color:rgb(250,250,250)}md-icon.md-default-theme.md-hue-1.md-accent, md-icon.md-hue-1.md-accent{color:rgb(250,250,250)}md-input-container.md-default-theme.md-hue-1:not(.md-input-invalid).md-input-focused.md-accent .md-input, md-input-container.mdLine truncated
.md-button.md-default-theme.md-hue-2.md-fab md-icon, .md-button.md-hue-2.md-fab md-icon{color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-hue-2.md-fab, .md-button.md-hue-2.md-fab{background-color:rgb(136,199,129);color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-hue-2.md-fab:not([disabled]) .md-icon, .md-button.md-hue-2.md-fab:not([disabled]) .md-icon{color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-hue-2.md-fab:not([disabled]).md-focused, .md-button.md-hue-2.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-2.md-fab:not([disabled]):hover, .md-button.md-hue-2.md-fab:not([disabled]):hover{background-color:rgb(0,200,83)}.md-button.md-default-theme.md-hue-2.md-accent, .md-button.md-hue-2.md-accent{color:rgb(136,199,129)}.md-button.md-default-theme.md-hue-2.md-accent.md-fab, .md-button.md-hue-2.md-accent.md-fab,.md-button.md-default-theme.md-hue-2.md-accent.md-raised, .md-button.md-hue-2.md-accent.md-raised{color:rgba(255,255,255,0.87);background-color:rgb(136,199,129)}.md-button.md-default-theme.md-hue-2.md-accent.md-fab:not([disabled]) md-icon, .md-button.md-hue-2.md-accent.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-hue-2.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-hue-2.md-accent.md-raised:not([disabled]) md-icon{color:rgba(255,255,255,0.87)}.md-button.md-default-theme.md-hue-2.md-accent.md-fab:not([disabled]).md-focused, .md-button.md-hue-2.md-accent.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-2.md-accent.md-fab:not([disabled]):hover, .md-button.md-hue-2.md-accent.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-hue-2.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-hue-2.md-accent.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-2.md-accent.md-raised:not([disabled]):hover, .md-button.md-hue-2.md-accent.md-raised:not([disabled]):hover{background-color:rgb(0,200,83)}.md-button.md-default-theme.md-hue-2.md-accent:not([disabled]) md-icon, .md-button.md-hue-2.md-accent:not([disabled]) md-icon{color:rgb(136,199,129)}.md-button.md-default-theme.md-hue-2.md-accent[disabled], .md-button.md-hue-2.md-accent[disabled],.md-button.md-default-theme.md-hue-2.md-fab[disabled], .md-button.md-hue-2.md-fab[disabled],.md-button.md-default-theme.md-hue-2.md-raised[disabled], .md-button.md-hue-2.md-raised[disabled],.md-button.md-default-theme.md-hue-2.md-warn[disabled], .md-button.md-hue-2.md-warn[disabled],.md-button.md-default-theme.md-hue-2[disabled], .md-button.md-hue-2[disabled]{color:rgba(0,0,0,0.38);cursor:default}.md-button.md-default-theme.md-hue-2.md-accent[disabled] md-icon, .md-button.md-hue-2.md-accent[disabled] md-icon,.md-button.md-default-theme.md-hue-2.md-fab[disabled] md-icon, .md-button.md-hue-2.md-fab[disabled] md-icon,.md-button.md-default-theme.md-hue-2.md-raised[disabled] md-icon, .md-button.md-hue-2.md-raised[disabled] md-icon,.md-button.md-default-theme.md-hue-2.md-warn[disabled] md-icon, .md-button.md-hue-2.md-warn[disabled] md-icon,.md-button.md-default-theme.md-hue-2[disabled] md-icon, .md-button.md-hue-2[disabled] md-icon{color:rgba(0,0,0,0.38)}._md a.md-default-theme.md-hue-2:not(.md-button).md-accent:hover, ._md a.md-hue-2:not(.md-button).md-accent:hover{color:rgb(56,142,60)}._md a.md-default-theme.md-hue-2:not(.md-button).md-accent, ._md a.md-hue-2:not(.md-button).md-accent{color:rgb(136,199,129)}._md a.md-default-theme.md-hue-2:not(.md-button).md-accent:hover, ._md a.md-hue-2:not(.md-button).md-accent:hover{color:rgb(0,200,83)}md-checkbox.md-default-theme.md-hue-2 .md-ripple, md-checkbox.md-hue-2 .md-ripple{color:rgb(0,200,83)}md-checkbox.md-default-theme.md-hue-2.md-checked.md-focused .md-container:before, md-checkbox.md-hue-2.md-checked.md-focused .md-container:before{background-color:rgba(136,199,129,0.26)}md-checkbox.md-default-theme.md-hue-2.md-checked .md-ink-ripple, md-checkbox.md-hue-2.md-checked .md-ink-ripple{color:rgba(136,199,129,0.87)}md-checkbox.md-default-theme.md-hue-2.md-checked .md-icon, md-checkbox.md-hue-2.md-checked .md-icon{background-color:rgba(136,199,129,0.87)}md-checkbox.md-default-theme.md-hue-2.md-checked .md-icon:after, md-checkbox.md-hue-2.md-checked .md-icon:after{border-color:rgba(255,255,255,0.87)}.md-accent .md-default-theme.md-hue-2 .md-datepicker-input-container.md-datepicker-focused, .md-accent .md-hue-2 .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:rgb(136,199,129)}.md-accent .md-default-theme.md-hue-2 .md-datepicker-open .md-datepicker-calendar-icon, .md-accent .md-hue-2 .md-datepicker-open .md-datepicker-calendar-icon,.md-default-theme.md-hue-2 .md-datepicker-open.md-accent .md-datepicker-calendar-icon, .md-hue-2 .md-datepicker-open.md-accent .md-datepicker-calendar-icon{color:rgb(136,199,129)}md-icon.md-default-theme.md-hue-2.md-accent, md-icon.md-hue-2.md-accent{color:rgb(136,199,129)}md-input-container.md-default-theme.md-hue-2:not(.md-input-invalid).md-input-focused.md-accLine truncated
.md-button.md-default-theme.md-hue-3.md-fab md-icon, .md-button.md-hue-3.md-fab md-icon{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-3.md-fab, .md-button.md-hue-3.md-fab{background-color:rgb(0,200,83);color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-3.md-fab:not([disabled]) .md-icon, .md-button.md-hue-3.md-fab:not([disabled]) .md-icon{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-3.md-fab:not([disabled]).md-focused, .md-button.md-hue-3.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-3.md-fab:not([disabled]):hover, .md-button.md-hue-3.md-fab:not([disabled]):hover{background-color:rgb(0,200,83)}.md-button.md-default-theme.md-hue-3.md-accent, .md-button.md-hue-3.md-accent{color:rgb(0,200,83)}.md-button.md-default-theme.md-hue-3.md-accent.md-fab, .md-button.md-hue-3.md-accent.md-fab,.md-button.md-default-theme.md-hue-3.md-accent.md-raised, .md-button.md-hue-3.md-accent.md-raised{color:rgba(0,0,0,0.87);background-color:rgb(0,200,83)}.md-button.md-default-theme.md-hue-3.md-accent.md-fab:not([disabled]) md-icon, .md-button.md-hue-3.md-accent.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-hue-3.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-hue-3.md-accent.md-raised:not([disabled]) md-icon{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-3.md-accent.md-fab:not([disabled]).md-focused, .md-button.md-hue-3.md-accent.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-3.md-accent.md-fab:not([disabled]):hover, .md-button.md-hue-3.md-accent.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-hue-3.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-hue-3.md-accent.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-3.md-accent.md-raised:not([disabled]):hover, .md-button.md-hue-3.md-accent.md-raised:not([disabled]):hover{background-color:rgb(0,200,83)}.md-button.md-default-theme.md-hue-3.md-accent:not([disabled]) md-icon, .md-button.md-hue-3.md-accent:not([disabled]) md-icon{color:rgb(0,200,83)}.md-button.md-default-theme.md-hue-3.md-accent[disabled], .md-button.md-hue-3.md-accent[disabled],.md-button.md-default-theme.md-hue-3.md-fab[disabled], .md-button.md-hue-3.md-fab[disabled],.md-button.md-default-theme.md-hue-3.md-raised[disabled], .md-button.md-hue-3.md-raised[disabled],.md-button.md-default-theme.md-hue-3.md-warn[disabled], .md-button.md-hue-3.md-warn[disabled],.md-button.md-default-theme.md-hue-3[disabled], .md-button.md-hue-3[disabled]{color:rgba(0,0,0,0.38);cursor:default}.md-button.md-default-theme.md-hue-3.md-accent[disabled] md-icon, .md-button.md-hue-3.md-accent[disabled] md-icon,.md-button.md-default-theme.md-hue-3.md-fab[disabled] md-icon, .md-button.md-hue-3.md-fab[disabled] md-icon,.md-button.md-default-theme.md-hue-3.md-raised[disabled] md-icon, .md-button.md-hue-3.md-raised[disabled] md-icon,.md-button.md-default-theme.md-hue-3.md-warn[disabled] md-icon, .md-button.md-hue-3.md-warn[disabled] md-icon,.md-button.md-default-theme.md-hue-3[disabled] md-icon, .md-button.md-hue-3[disabled] md-icon{color:rgba(0,0,0,0.38)}._md a.md-default-theme.md-hue-3:not(.md-button).md-accent:hover, ._md a.md-hue-3:not(.md-button).md-accent:hover{color:rgb(56,142,60)}._md a.md-default-theme.md-hue-3:not(.md-button).md-accent, ._md a.md-hue-3:not(.md-button).md-accent{color:rgb(0,200,83)}._md a.md-default-theme.md-hue-3:not(.md-button).md-accent:hover, ._md a.md-hue-3:not(.md-button).md-accent:hover{color:rgb(0,200,83)}md-checkbox.md-default-theme.md-hue-3 .md-ripple, md-checkbox.md-hue-3 .md-ripple{color:rgb(0,200,83)}md-checkbox.md-default-theme.md-hue-3.md-checked.md-focused .md-container:before, md-checkbox.md-hue-3.md-checked.md-focused .md-container:before{background-color:rgba(0,200,83,0.26)}md-checkbox.md-default-theme.md-hue-3.md-checked .md-ink-ripple, md-checkbox.md-hue-3.md-checked .md-ink-ripple{color:rgba(0,200,83,0.87)}md-checkbox.md-default-theme.md-hue-3.md-checked .md-icon, md-checkbox.md-hue-3.md-checked .md-icon{background-color:rgba(0,200,83,0.87)}md-checkbox.md-default-theme.md-hue-3.md-checked .md-icon:after, md-checkbox.md-hue-3.md-checked .md-icon:after{border-color:rgba(0,0,0,0.87)}.md-accent .md-default-theme.md-hue-3 .md-datepicker-input-container.md-datepicker-focused, .md-accent .md-hue-3 .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:rgb(0,200,83)}.md-accent .md-default-theme.md-hue-3 .md-datepicker-open .md-datepicker-calendar-icon, .md-accent .md-hue-3 .md-datepicker-open .md-datepicker-calendar-icon,.md-default-theme.md-hue-3 .md-datepicker-open.md-accent .md-datepicker-calendar-icon, .md-hue-3 .md-datepicker-open.md-accent .md-datepicker-calendar-icon{color:rgb(0,200,83)}md-icon.md-default-theme.md-hue-3.md-accent, md-icon.md-hue-3.md-accent{color:rgb(0,200,83)}md-input-container.md-default-theme.md-hue-3:not(.md-input-invalid).md-input-focused.md-accent .md-input, md-input-container.md-hue-3:not(.md-input-invalid).md-Line truncated
.md-button.md-default-theme.md-warn, .md-button.md-warn{color:rgb(255,87,34)}.md-button.md-default-theme.md-warn.md-fab, .md-button.md-warn.md-fab,.md-button.md-default-theme.md-warn.md-raised, .md-button.md-warn.md-raised{color:rgb(255,255,255);background-color:rgb(255,87,34)}.md-button.md-default-theme.md-warn.md-fab:not([disabled]) md-icon, .md-button.md-warn.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-warn.md-raised:not([disabled]) md-icon{color:rgb(255,255,255)}.md-button.md-default-theme.md-warn.md-fab:not([disabled]).md-focused, .md-button.md-warn.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-warn.md-fab:not([disabled]):hover, .md-button.md-warn.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-warn.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-warn.md-raised:not([disabled]):hover, .md-button.md-warn.md-raised:not([disabled]):hover{background-color:rgb(244,81,30)}.md-button.md-default-theme.md-warn:not([disabled]) md-icon, .md-button.md-warn:not([disabled]) md-icon{color:rgb(255,87,34)}._md a.md-default-theme:not(.md-button).md-warn, ._md a:not(.md-button).md-warn{color:rgb(255,87,34)}._md a.md-default-theme:not(.md-button).md-warn:hover, ._md a:not(.md-button).md-warn:hover{color:rgb(230,74,25)}md-checkbox.md-default-theme:not([disabled]).md-warn .md-ripple, md-checkbox:not([disabled]).md-warn .md-ripple{color:rgb(244,81,30)}md-checkbox.md-default-theme:not([disabled]).md-warn .md-ink-ripple, md-checkbox:not([disabled]).md-warn .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme:not([disabled]).md-warn.md-checked .md-ink-ripple, md-checkbox:not([disabled]).md-warn.md-checked .md-ink-ripple{color:rgba(255,87,34,0.87)}md-checkbox.md-default-theme:not([disabled]).md-warn:not(.md-checked) .md-icon, md-checkbox:not([disabled]).md-warn:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme:not([disabled]).md-warn.md-checked .md-icon, md-checkbox:not([disabled]).md-warn.md-checked .md-icon{background-color:rgba(255,87,34,0.87)}md-checkbox.md-default-theme:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before, md-checkbox:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before{background-color:rgba(255,87,34,0.26)}md-checkbox.md-default-theme:not([disabled]).md-warn.md-checked .md-icon:after, md-checkbox:not([disabled]).md-warn.md-checked .md-icon:after{border-color:rgb(238,238,238)}.md-default-theme .md-datepicker-input-container.md-datepicker-invalid, .md-datepicker-input-container.md-datepicker-invalid,.md-warn .md-default-theme .md-datepicker-input-container.md-datepicker-focused, .md-warn .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:rgb(221,44,0)}.md-default-theme .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-datepicker-open.md-warn .md-datepicker-calendar-icon,.md-warn .md-default-theme .md-datepicker-open .md-datepicker-calendar-icon, .md-warn .md-datepicker-open .md-datepicker-calendar-icon{color:rgb(221,44,0)}md-icon.md-default-theme.md-warn, md-icon.md-warn{color:rgb(255,87,34)}md-input-container.md-default-theme label.md-required:after, md-input-container label.md-required:after{color:rgb(221,44,0)}md-input-container.md-default-theme .md-input-message-animation, md-input-container .md-input-message-animation,md-input-container.md-default-theme .md-input-messages-animation, md-input-container .md-input-messages-animation{color:rgb(221,44,0)}md-input-container.md-default-theme:not(.md-input-invalid).md-input-focused.md-warn .md-input, md-input-container:not(.md-input-invalid).md-input-focused.md-warn .md-input{border-color:rgb(221,44,0)}md-input-container.md-default-theme:not(.md-input-invalid).md-input-focused.md-warn label, md-input-container:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-default-theme:not(.md-input-invalid).md-input-focused.md-warn md-icon, md-input-container:not(.md-input-invalid).md-input-focused.md-warn md-icon{color:rgb(221,44,0)}md-input-container.md-default-theme.md-input-invalid .md-input, md-input-container.md-input-invalid .md-input{border-color:rgb(221,44,0)}md-input-container.md-default-theme.md-input-invalid .md-char-counter, md-input-container.md-input-invalid .md-char-counter,md-input-container.md-default-theme.md-input-invalid .md-input-message-animation, md-input-container.md-input-invalid .md-input-message-animation,md-input-container.md-default-theme.md-input-invalid label, md-input-container.md-input-invalid label{color:rgb(221,44,0)}md-progress-circular.md-default-theme.md-warn path, md-progress-circular.md-warn path{stroke:rgb(255,87,34)}md-progress-linear.md-default-theme.md-warn .md-container, md-progress-linear.md-warn .md-container{background-color:rgb(255,204,188)}md-progress-linear.md-default-theme.mLine truncated
.md-button.md-default-theme.md-hue-1.md-warn, .md-button.md-hue-1.md-warn{color:rgb(255,138,101)}.md-button.md-default-theme.md-hue-1.md-warn.md-fab, .md-button.md-hue-1.md-warn.md-fab,.md-button.md-default-theme.md-hue-1.md-warn.md-raised, .md-button.md-hue-1.md-warn.md-raised{color:rgba(0,0,0,0.87);background-color:rgb(255,138,101)}.md-button.md-default-theme.md-hue-1.md-warn.md-fab:not([disabled]) md-icon, .md-button.md-hue-1.md-warn.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-hue-1.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-hue-1.md-warn.md-raised:not([disabled]) md-icon{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-1.md-warn.md-fab:not([disabled]).md-focused, .md-button.md-hue-1.md-warn.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-1.md-warn.md-fab:not([disabled]):hover, .md-button.md-hue-1.md-warn.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-hue-1.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-hue-1.md-warn.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-1.md-warn.md-raised:not([disabled]):hover, .md-button.md-hue-1.md-warn.md-raised:not([disabled]):hover{background-color:rgb(244,81,30)}.md-button.md-default-theme.md-hue-1.md-warn:not([disabled]) md-icon, .md-button.md-hue-1.md-warn:not([disabled]) md-icon{color:rgb(255,138,101)}._md a.md-default-theme.md-hue-1:not(.md-button).md-warn, ._md a.md-hue-1:not(.md-button).md-warn{color:rgb(255,138,101)}._md a.md-default-theme.md-hue-1:not(.md-button).md-warn:hover, ._md a.md-hue-1:not(.md-button).md-warn:hover{color:rgb(230,74,25)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn .md-ripple, md-checkbox.md-hue-1:not([disabled]).md-warn .md-ripple{color:rgb(244,81,30)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn .md-ink-ripple, md-checkbox.md-hue-1:not([disabled]).md-warn .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn.md-checked .md-ink-ripple, md-checkbox.md-hue-1:not([disabled]).md-warn.md-checked .md-ink-ripple{color:rgba(255,138,101,0.87)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn:not(.md-checked) .md-icon, md-checkbox.md-hue-1:not([disabled]).md-warn:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn.md-checked .md-icon, md-checkbox.md-hue-1:not([disabled]).md-warn.md-checked .md-icon{background-color:rgba(255,138,101,0.87)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before, md-checkbox.md-hue-1:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before{background-color:rgba(255,138,101,0.26)}md-checkbox.md-default-theme.md-hue-1:not([disabled]).md-warn.md-checked .md-icon:after, md-checkbox.md-hue-1:not([disabled]).md-warn.md-checked .md-icon:after{border-color:rgb(238,238,238)}.md-default-theme.md-hue-1 .md-datepicker-input-container.md-datepicker-invalid, .md-hue-1 .md-datepicker-input-container.md-datepicker-invalid,.md-warn .md-default-theme.md-hue-1 .md-datepicker-input-container.md-datepicker-focused, .md-warn .md-hue-1 .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:rgb(221,44,0)}.md-default-theme.md-hue-1 .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-hue-1 .md-datepicker-open.md-warn .md-datepicker-calendar-icon,.md-warn .md-default-theme.md-hue-1 .md-datepicker-open .md-datepicker-calendar-icon, .md-warn .md-hue-1 .md-datepicker-open .md-datepicker-calendar-icon{color:rgb(221,44,0)}md-icon.md-default-theme.md-hue-1.md-warn, md-icon.md-hue-1.md-warn{color:rgb(255,138,101)}md-input-container.md-default-theme.md-hue-1 label.md-required:after, md-input-container.md-hue-1 label.md-required:after{color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-1 .md-input-message-animation, md-input-container.md-hue-1 .md-input-message-animation,md-input-container.md-default-theme.md-hue-1 .md-input-messages-animation, md-input-container.md-hue-1 .md-input-messages-animation{color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn .md-input, md-input-container.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn .md-input{border-color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn label, md-input-container.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-default-theme.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn md-icon, md-input-container.md-hue-1:not(.md-input-invalid).md-input-focused.md-warn md-icon{color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-1.md-input-invalid .md-input, md-input-container.md-hue-1.md-input-invalid .md-input{border-color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-1.md-input-invalid .md-char-counter, md-input-containeLine truncated
.md-button.md-default-theme.md-hue-2.md-warn, .md-button.md-hue-2.md-warn{color:rgb(216,67,21)}.md-button.md-default-theme.md-hue-2.md-warn.md-fab, .md-button.md-hue-2.md-warn.md-fab,.md-button.md-default-theme.md-hue-2.md-warn.md-raised, .md-button.md-hue-2.md-warn.md-raised{color:rgb(255,255,255);background-color:rgb(216,67,21)}.md-button.md-default-theme.md-hue-2.md-warn.md-fab:not([disabled]) md-icon, .md-button.md-hue-2.md-warn.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-hue-2.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-hue-2.md-warn.md-raised:not([disabled]) md-icon{color:rgb(255,255,255)}.md-button.md-default-theme.md-hue-2.md-warn.md-fab:not([disabled]).md-focused, .md-button.md-hue-2.md-warn.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-2.md-warn.md-fab:not([disabled]):hover, .md-button.md-hue-2.md-warn.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-hue-2.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-hue-2.md-warn.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-2.md-warn.md-raised:not([disabled]):hover, .md-button.md-hue-2.md-warn.md-raised:not([disabled]):hover{background-color:rgb(244,81,30)}.md-button.md-default-theme.md-hue-2.md-warn:not([disabled]) md-icon, .md-button.md-hue-2.md-warn:not([disabled]) md-icon{color:rgb(216,67,21)}._md a.md-default-theme.md-hue-2:not(.md-button).md-warn, ._md a.md-hue-2:not(.md-button).md-warn{color:rgb(216,67,21)}._md a.md-default-theme.md-hue-2:not(.md-button).md-warn:hover, ._md a.md-hue-2:not(.md-button).md-warn:hover{color:rgb(230,74,25)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn .md-ripple, md-checkbox.md-hue-2:not([disabled]).md-warn .md-ripple{color:rgb(244,81,30)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn .md-ink-ripple, md-checkbox.md-hue-2:not([disabled]).md-warn .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn.md-checked .md-ink-ripple, md-checkbox.md-hue-2:not([disabled]).md-warn.md-checked .md-ink-ripple{color:rgba(216,67,21,0.87)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn:not(.md-checked) .md-icon, md-checkbox.md-hue-2:not([disabled]).md-warn:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn.md-checked .md-icon, md-checkbox.md-hue-2:not([disabled]).md-warn.md-checked .md-icon{background-color:rgba(216,67,21,0.87)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before, md-checkbox.md-hue-2:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before{background-color:rgba(216,67,21,0.26)}md-checkbox.md-default-theme.md-hue-2:not([disabled]).md-warn.md-checked .md-icon:after, md-checkbox.md-hue-2:not([disabled]).md-warn.md-checked .md-icon:after{border-color:rgb(238,238,238)}.md-default-theme.md-hue-2 .md-datepicker-input-container.md-datepicker-invalid, .md-hue-2 .md-datepicker-input-container.md-datepicker-invalid,.md-warn .md-default-theme.md-hue-2 .md-datepicker-input-container.md-datepicker-focused, .md-warn .md-hue-2 .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:rgb(221,44,0)}.md-default-theme.md-hue-2 .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-hue-2 .md-datepicker-open.md-warn .md-datepicker-calendar-icon,.md-warn .md-default-theme.md-hue-2 .md-datepicker-open .md-datepicker-calendar-icon, .md-warn .md-hue-2 .md-datepicker-open .md-datepicker-calendar-icon{color:rgb(221,44,0)}md-icon.md-default-theme.md-hue-2.md-warn, md-icon.md-hue-2.md-warn{color:rgb(216,67,21)}md-input-container.md-default-theme.md-hue-2 label.md-required:after, md-input-container.md-hue-2 label.md-required:after{color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-2 .md-input-message-animation, md-input-container.md-hue-2 .md-input-message-animation,md-input-container.md-default-theme.md-hue-2 .md-input-messages-animation, md-input-container.md-hue-2 .md-input-messages-animation{color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn .md-input, md-input-container.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn .md-input{border-color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn label, md-input-container.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-default-theme.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn md-icon, md-input-container.md-hue-2:not(.md-input-invalid).md-input-focused.md-warn md-icon{color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-2.md-input-invalid .md-input, md-input-container.md-hue-2.md-input-invalid .md-input{border-color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-2.md-input-invalid .md-char-counter, md-input-container.md-hue-2.md-inLine truncated
.md-button.md-default-theme.md-hue-3.md-warn, .md-button.md-hue-3.md-warn{color:rgb(255,158,128)}.md-button.md-default-theme.md-hue-3.md-warn.md-fab, .md-button.md-hue-3.md-warn.md-fab,.md-button.md-default-theme.md-hue-3.md-warn.md-raised, .md-button.md-hue-3.md-warn.md-raised{color:rgba(0,0,0,0.87);background-color:rgb(255,158,128)}.md-button.md-default-theme.md-hue-3.md-warn.md-fab:not([disabled]) md-icon, .md-button.md-hue-3.md-warn.md-fab:not([disabled]) md-icon,.md-button.md-default-theme.md-hue-3.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-hue-3.md-warn.md-raised:not([disabled]) md-icon{color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-3.md-warn.md-fab:not([disabled]).md-focused, .md-button.md-hue-3.md-warn.md-fab:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-3.md-warn.md-fab:not([disabled]):hover, .md-button.md-hue-3.md-warn.md-fab:not([disabled]):hover,.md-button.md-default-theme.md-hue-3.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-hue-3.md-warn.md-raised:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-3.md-warn.md-raised:not([disabled]):hover, .md-button.md-hue-3.md-warn.md-raised:not([disabled]):hover{background-color:rgb(244,81,30)}.md-button.md-default-theme.md-hue-3.md-warn:not([disabled]) md-icon, .md-button.md-hue-3.md-warn:not([disabled]) md-icon{color:rgb(255,158,128)}._md a.md-default-theme.md-hue-3:not(.md-button).md-warn, ._md a.md-hue-3:not(.md-button).md-warn{color:rgb(255,158,128)}._md a.md-default-theme.md-hue-3:not(.md-button).md-warn:hover, ._md a.md-hue-3:not(.md-button).md-warn:hover{color:rgb(230,74,25)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn .md-ripple, md-checkbox.md-hue-3:not([disabled]).md-warn .md-ripple{color:rgb(244,81,30)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn .md-ink-ripple, md-checkbox.md-hue-3:not([disabled]).md-warn .md-ink-ripple{color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn.md-checked .md-ink-ripple, md-checkbox.md-hue-3:not([disabled]).md-warn.md-checked .md-ink-ripple{color:rgba(255,158,128,0.87)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn:not(.md-checked) .md-icon, md-checkbox.md-hue-3:not([disabled]).md-warn:not(.md-checked) .md-icon{border-color:rgba(0,0,0,0.54)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn.md-checked .md-icon, md-checkbox.md-hue-3:not([disabled]).md-warn.md-checked .md-icon{background-color:rgba(255,158,128,0.87)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before, md-checkbox.md-hue-3:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before{background-color:rgba(255,158,128,0.26)}md-checkbox.md-default-theme.md-hue-3:not([disabled]).md-warn.md-checked .md-icon:after, md-checkbox.md-hue-3:not([disabled]).md-warn.md-checked .md-icon:after{border-color:rgb(238,238,238)}.md-default-theme.md-hue-3 .md-datepicker-input-container.md-datepicker-invalid, .md-hue-3 .md-datepicker-input-container.md-datepicker-invalid,.md-warn .md-default-theme.md-hue-3 .md-datepicker-input-container.md-datepicker-focused, .md-warn .md-hue-3 .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:rgb(221,44,0)}.md-default-theme.md-hue-3 .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-hue-3 .md-datepicker-open.md-warn .md-datepicker-calendar-icon,.md-warn .md-default-theme.md-hue-3 .md-datepicker-open .md-datepicker-calendar-icon, .md-warn .md-hue-3 .md-datepicker-open .md-datepicker-calendar-icon{color:rgb(221,44,0)}md-icon.md-default-theme.md-hue-3.md-warn, md-icon.md-hue-3.md-warn{color:rgb(255,158,128)}md-input-container.md-default-theme.md-hue-3 label.md-required:after, md-input-container.md-hue-3 label.md-required:after{color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-3 .md-input-message-animation, md-input-container.md-hue-3 .md-input-message-animation,md-input-container.md-default-theme.md-hue-3 .md-input-messages-animation, md-input-container.md-hue-3 .md-input-messages-animation{color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn .md-input, md-input-container.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn .md-input{border-color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn label, md-input-container.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-default-theme.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn md-icon, md-input-container.md-hue-3:not(.md-input-invalid).md-input-focused.md-warn md-icon{color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-3.md-input-invalid .md-input, md-input-container.md-hue-3.md-input-invalid .md-input{border-color:rgb(221,44,0)}md-input-container.md-default-theme.md-hue-3.md-input-invalid .md-char-counter, md-input-containeLine truncated
md-autocomplete.md-default-theme, md-autocomplete{background:rgb(255,255,255)}md-autocomplete.md-default-theme[disabled]:not([md-floating-label]), md-autocomplete[disabled]:not([md-floating-label]){background:rgb(245,245,245)}md-autocomplete.md-default-theme button md-icon path, md-autocomplete button md-icon path{fill:rgb(117,117,117)}md-autocomplete.md-default-theme button:after, md-autocomplete button:after{background:rgba(117,117,117,0.3)}.md-autocomplete-suggestions-container.md-default-theme, .md-autocomplete-suggestions-container{background:rgb(255,255,255)}.md-autocomplete-suggestions-container.md-default-theme li, .md-autocomplete-suggestions-container li{color:rgb(33,33,33)}.md-autocomplete-suggestions-container.md-default-theme li .highlight, .md-autocomplete-suggestions-container li .highlight{color:rgb(117,117,117)}.md-autocomplete-suggestions-container.md-default-theme li.selected, .md-autocomplete-suggestions-container li.selected,.md-autocomplete-suggestions-container.md-default-theme li:hover, .md-autocomplete-suggestions-container li:hover{background:rgb(238,238,238)}md-backdrop{background-color:rgba(33,33,33,0.0)}md-backdrop.md-opaque.md-default-theme, md-backdrop.md-opaque{background-color:rgba(33,33,33,1.0)}md-bottom-sheet.md-default-theme, md-bottom-sheet{background-color:rgb(250,250,250);border-top-color:rgb(224,224,224)}md-bottom-sheet.md-default-theme .md-subheader, md-bottom-sheet .md-subheader{background-color:rgb(250,250,250);color:rgba(0,0,0,0.87)}.md-button.md-default-theme:not([disabled]).md-focused, .md-button:not([disabled]).md-focused,.md-button.md-default-theme:not([disabled]):hover, .md-button:not([disabled]):hover{background-color:rgba(158,158,158,0.2)}.md-button.md-default-theme:not([disabled]).md-icon-button:hover, .md-button:not([disabled]).md-icon-button:hover{background-color:transparent}.md-button.md-default-theme.md-raised, .md-button.md-raised{color:rgb(33,33,33);background-color:rgb(250,250,250)}.md-button.md-default-theme.md-raised:not([disabled]) md-icon, .md-button.md-raised:not([disabled]) md-icon{color:rgb(33,33,33)}.md-button.md-default-theme.md-raised:not([disabled]):hover, .md-button.md-raised:not([disabled]):hover{background-color:rgb(250,250,250)}.md-button.md-default-theme.md-raised:not([disabled]).md-focused, .md-button.md-raised:not([disabled]).md-focused{background-color:rgb(238,238,238)}.md-button.md-default-theme.md-fab[disabled], .md-button.md-fab[disabled],.md-button.md-default-theme.md-raised[disabled], .md-button.md-raised[disabled]{background-color:rgba(0,0,0,0.12)}.md-button.md-default-theme[disabled], .md-button[disabled]{background-color:transparent}md-card.md-default-theme, md-card{color:rgba(0,0,0,0.87);background-color:rgb(255,255,255);border-radius:2px}md-card.md-default-theme md-card-header md-card-avatar md-icon, md-card md-card-header md-card-avatar md-icon{color:rgb(250,250,250);background-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-checked .md-ripple, md-checkbox.md-checked .md-ripple{color:rgb(117,117,117)}md-checkbox.md-default-theme[disabled].md-checked .md-icon, md-checkbox[disabled].md-checked .md-icon{background-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme[disabled].md-checked .md-icon:after, md-checkbox[disabled].md-checked .md-icon:after{border-color:rgb(238,238,238)}md-chips.md-default-theme md-chip, md-chips md-chip{background:rgb(224,224,224);color:rgb(66,66,66)}md-chips.md-default-theme md-chip md-icon, md-chips md-chip md-icon{color:rgb(97,97,97)}md-chips.md-default-theme md-chip._md-chip-editing, md-chips md-chip._md-chip-editing{background:transparent;color:rgb(66,66,66)}md-chips.md-default-theme md-chip-remove .md-button md-icon path, md-chips md-chip-remove .md-button md-icon path{fill:rgb(158,158,158)}.md-contact-suggestion span.md-contact-email{color:rgb(189,189,189)}md-content.md-default-theme, md-content{color:rgba(0,0,0,0.87);background-color:rgb(250,250,250)}.md-calendar.md-default-theme, .md-calendar{background:rgb(255,255,255);color:rgba(0,0,0,0.87)}.md-calendar.md-default-theme tr:last-child td, .md-calendar tr:last-child td{border-bottom-color:rgb(238,238,238)}.md-default-theme .md-calendar-day-header, .md-calendar-day-header{background:rgb(224,224,224);color:rgba(0,0,0,0.87)}.md-calendar-date.md-focus .md-default-theme .md-calendar-date-selection-indicator, .md-calendar-date.md-focus .md-calendar-date-selection-indicator,.md-default-theme .md-calendar-date-selection-indicator:hover, .md-calendar-date-selection-indicator:hover{background:rgb(224,224,224)}.md-default-theme .md-calendar-date-disabled, .md-calendar-date-disabled,.md-default-theme .md-calendar-month-label-disabled, .md-calendar-month-label-disabled{color:rgba(0,0,0,0.435)}.md-default-theme .md-datepicker-calendar-pane, .md-datepicker-calendar-pane{border-color:rgb(255,255,255)}.md-default-theme .md-datepicker-calendar, .md-datepicker-calendar{background:rgb(255,255,255)}.md-default-theme .md-datepicker-input-mask-oLine truncated
md-autocomplete.md-default-theme.md-hue-1, md-autocomplete.md-hue-1{background:rgb(255,255,255)}md-autocomplete.md-default-theme.md-hue-1[disabled]:not([md-floating-label]), md-autocomplete.md-hue-1[disabled]:not([md-floating-label]){background:rgb(245,245,245)}md-autocomplete.md-default-theme.md-hue-1 button md-icon path, md-autocomplete.md-hue-1 button md-icon path{fill:rgb(117,117,117)}md-autocomplete.md-default-theme.md-hue-1 button:after, md-autocomplete.md-hue-1 button:after{background:rgba(117,117,117,0.3)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-1, .md-autocomplete-suggestions-container.md-hue-1{background:rgb(255,255,255)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-1 li, .md-autocomplete-suggestions-container.md-hue-1 li{color:rgb(33,33,33)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-1 li .highlight, .md-autocomplete-suggestions-container.md-hue-1 li .highlight{color:rgb(117,117,117)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-1 li.selected, .md-autocomplete-suggestions-container.md-hue-1 li.selected,.md-autocomplete-suggestions-container.md-default-theme.md-hue-1 li:hover, .md-autocomplete-suggestions-container.md-hue-1 li:hover{background:rgb(238,238,238)}md-backdrop{background-color:rgba(33,33,33,0.0)}md-backdrop.md-opaque.md-default-theme.md-hue-1, md-backdrop.md-opaque.md-hue-1{background-color:rgba(33,33,33,1.0)}md-bottom-sheet.md-default-theme.md-hue-1, md-bottom-sheet.md-hue-1{background-color:rgb(250,250,250);border-top-color:rgb(224,224,224)}md-bottom-sheet.md-default-theme.md-hue-1 .md-subheader, md-bottom-sheet.md-hue-1 .md-subheader{background-color:rgb(250,250,250);color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-1:not([disabled]).md-focused, .md-button.md-hue-1:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-1:not([disabled]):hover, .md-button.md-hue-1:not([disabled]):hover{background-color:rgba(158,158,158,0.2)}.md-button.md-default-theme.md-hue-1:not([disabled]).md-icon-button:hover, .md-button.md-hue-1:not([disabled]).md-icon-button:hover{background-color:transparent}.md-button.md-default-theme.md-hue-1.md-raised, .md-button.md-hue-1.md-raised{color:rgb(33,33,33);background-color:rgb(250,250,250)}.md-button.md-default-theme.md-hue-1.md-raised:not([disabled]) md-icon, .md-button.md-hue-1.md-raised:not([disabled]) md-icon{color:rgb(33,33,33)}.md-button.md-default-theme.md-hue-1.md-raised:not([disabled]):hover, .md-button.md-hue-1.md-raised:not([disabled]):hover{background-color:rgb(250,250,250)}.md-button.md-default-theme.md-hue-1.md-raised:not([disabled]).md-focused, .md-button.md-hue-1.md-raised:not([disabled]).md-focused{background-color:rgb(238,238,238)}.md-button.md-default-theme.md-hue-1.md-fab[disabled], .md-button.md-hue-1.md-fab[disabled],.md-button.md-default-theme.md-hue-1.md-raised[disabled], .md-button.md-hue-1.md-raised[disabled]{background-color:rgba(0,0,0,0.12)}.md-button.md-default-theme.md-hue-1[disabled], .md-button.md-hue-1[disabled]{background-color:transparent}md-card.md-default-theme.md-hue-1, md-card.md-hue-1{color:rgba(0,0,0,0.87);background-color:rgb(255,255,255);border-radius:2px}md-card.md-default-theme.md-hue-1 md-card-header md-card-avatar md-icon, md-card.md-hue-1 md-card-header md-card-avatar md-icon{color:rgb(255,255,255);background-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-1.md-checked .md-ripple, md-checkbox.md-hue-1.md-checked .md-ripple{color:rgb(117,117,117)}md-checkbox.md-default-theme.md-hue-1[disabled].md-checked .md-icon, md-checkbox.md-hue-1[disabled].md-checked .md-icon{background-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-1[disabled].md-checked .md-icon:after, md-checkbox.md-hue-1[disabled].md-checked .md-icon:after{border-color:rgb(238,238,238)}md-chips.md-default-theme.md-hue-1 md-chip, md-chips.md-hue-1 md-chip{background:rgb(224,224,224);color:rgb(66,66,66)}md-chips.md-default-theme.md-hue-1 md-chip md-icon, md-chips.md-hue-1 md-chip md-icon{color:rgb(97,97,97)}md-chips.md-default-theme.md-hue-1 md-chip._md-chip-editing, md-chips.md-hue-1 md-chip._md-chip-editing{background:transparent;color:rgb(66,66,66)}md-chips.md-default-theme.md-hue-1 md-chip-remove .md-button md-icon path, md-chips.md-hue-1 md-chip-remove .md-button md-icon path{fill:rgb(158,158,158)}.md-contact-suggestion span.md-contact-email{color:rgb(189,189,189)}md-content.md-default-theme.md-hue-1, md-content.md-hue-1{color:rgba(0,0,0,0.87);background-color:rgb(250,250,250)}.md-calendar.md-default-theme.md-hue-1, .md-calendar.md-hue-1{background:rgb(255,255,255);color:rgba(0,0,0,0.87)}.md-calendar.md-default-theme.md-hue-1 tr:last-child td, .md-calendar.md-hue-1 tr:last-child td{border-bottom-color:rgb(238,238,238)}.md-default-theme.md-hue-1 .md-calendar-day-header, .md-hue-1 .md-calendar-day-header{background:rgb(224,224,224);color:rgba(0,0,0,0.87)}.md-calendar-date.md-focus .md-default-theme.md-hue-1 .md-calendar-date-selection-indicatorLine truncated
md-autocomplete.md-default-theme.md-hue-2, md-autocomplete.md-hue-2{background:rgb(255,255,255)}md-autocomplete.md-default-theme.md-hue-2[disabled]:not([md-floating-label]), md-autocomplete.md-hue-2[disabled]:not([md-floating-label]){background:rgb(245,245,245)}md-autocomplete.md-default-theme.md-hue-2 button md-icon path, md-autocomplete.md-hue-2 button md-icon path{fill:rgb(117,117,117)}md-autocomplete.md-default-theme.md-hue-2 button:after, md-autocomplete.md-hue-2 button:after{background:rgba(117,117,117,0.3)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-2, .md-autocomplete-suggestions-container.md-hue-2{background:rgb(255,255,255)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-2 li, .md-autocomplete-suggestions-container.md-hue-2 li{color:rgb(33,33,33)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-2 li .highlight, .md-autocomplete-suggestions-container.md-hue-2 li .highlight{color:rgb(117,117,117)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-2 li.selected, .md-autocomplete-suggestions-container.md-hue-2 li.selected,.md-autocomplete-suggestions-container.md-default-theme.md-hue-2 li:hover, .md-autocomplete-suggestions-container.md-hue-2 li:hover{background:rgb(238,238,238)}md-backdrop{background-color:rgba(33,33,33,0.0)}md-backdrop.md-opaque.md-default-theme.md-hue-2, md-backdrop.md-opaque.md-hue-2{background-color:rgba(33,33,33,1.0)}md-bottom-sheet.md-default-theme.md-hue-2, md-bottom-sheet.md-hue-2{background-color:rgb(250,250,250);border-top-color:rgb(224,224,224)}md-bottom-sheet.md-default-theme.md-hue-2 .md-subheader, md-bottom-sheet.md-hue-2 .md-subheader{background-color:rgb(250,250,250);color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-2:not([disabled]).md-focused, .md-button.md-hue-2:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-2:not([disabled]):hover, .md-button.md-hue-2:not([disabled]):hover{background-color:rgba(158,158,158,0.2)}.md-button.md-default-theme.md-hue-2:not([disabled]).md-icon-button:hover, .md-button.md-hue-2:not([disabled]).md-icon-button:hover{background-color:transparent}.md-button.md-default-theme.md-hue-2.md-raised, .md-button.md-hue-2.md-raised{color:rgb(33,33,33);background-color:rgb(250,250,250)}.md-button.md-default-theme.md-hue-2.md-raised:not([disabled]) md-icon, .md-button.md-hue-2.md-raised:not([disabled]) md-icon{color:rgb(33,33,33)}.md-button.md-default-theme.md-hue-2.md-raised:not([disabled]):hover, .md-button.md-hue-2.md-raised:not([disabled]):hover{background-color:rgb(250,250,250)}.md-button.md-default-theme.md-hue-2.md-raised:not([disabled]).md-focused, .md-button.md-hue-2.md-raised:not([disabled]).md-focused{background-color:rgb(238,238,238)}.md-button.md-default-theme.md-hue-2.md-fab[disabled], .md-button.md-hue-2.md-fab[disabled],.md-button.md-default-theme.md-hue-2.md-raised[disabled], .md-button.md-hue-2.md-raised[disabled]{background-color:rgba(0,0,0,0.12)}.md-button.md-default-theme.md-hue-2[disabled], .md-button.md-hue-2[disabled]{background-color:transparent}md-card.md-default-theme.md-hue-2, md-card.md-hue-2{color:rgba(0,0,0,0.87);background-color:rgb(255,255,255);border-radius:2px}md-card.md-default-theme.md-hue-2 md-card-header md-card-avatar md-icon, md-card.md-hue-2 md-card-header md-card-avatar md-icon{color:rgb(245,245,245);background-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-2.md-checked .md-ripple, md-checkbox.md-hue-2.md-checked .md-ripple{color:rgb(117,117,117)}md-checkbox.md-default-theme.md-hue-2[disabled].md-checked .md-icon, md-checkbox.md-hue-2[disabled].md-checked .md-icon{background-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-2[disabled].md-checked .md-icon:after, md-checkbox.md-hue-2[disabled].md-checked .md-icon:after{border-color:rgb(238,238,238)}md-chips.md-default-theme.md-hue-2 md-chip, md-chips.md-hue-2 md-chip{background:rgb(224,224,224);color:rgb(66,66,66)}md-chips.md-default-theme.md-hue-2 md-chip md-icon, md-chips.md-hue-2 md-chip md-icon{color:rgb(97,97,97)}md-chips.md-default-theme.md-hue-2 md-chip._md-chip-editing, md-chips.md-hue-2 md-chip._md-chip-editing{background:transparent;color:rgb(66,66,66)}md-chips.md-default-theme.md-hue-2 md-chip-remove .md-button md-icon path, md-chips.md-hue-2 md-chip-remove .md-button md-icon path{fill:rgb(158,158,158)}.md-contact-suggestion span.md-contact-email{color:rgb(189,189,189)}md-content.md-default-theme.md-hue-2, md-content.md-hue-2{color:rgba(0,0,0,0.87);background-color:rgb(250,250,250)}.md-calendar.md-default-theme.md-hue-2, .md-calendar.md-hue-2{background:rgb(255,255,255);color:rgba(0,0,0,0.87)}.md-calendar.md-default-theme.md-hue-2 tr:last-child td, .md-calendar.md-hue-2 tr:last-child td{border-bottom-color:rgb(238,238,238)}.md-default-theme.md-hue-2 .md-calendar-day-header, .md-hue-2 .md-calendar-day-header{background:rgb(224,224,224);color:rgba(0,0,0,0.87)}.md-calendar-date.md-focus .md-default-theme.md-hue-2 .md-calendar-date-selection-indicatorLine truncated
md-autocomplete.md-default-theme.md-hue-3, md-autocomplete.md-hue-3{background:rgb(255,255,255)}md-autocomplete.md-default-theme.md-hue-3[disabled]:not([md-floating-label]), md-autocomplete.md-hue-3[disabled]:not([md-floating-label]){background:rgb(245,245,245)}md-autocomplete.md-default-theme.md-hue-3 button md-icon path, md-autocomplete.md-hue-3 button md-icon path{fill:rgb(117,117,117)}md-autocomplete.md-default-theme.md-hue-3 button:after, md-autocomplete.md-hue-3 button:after{background:rgba(117,117,117,0.3)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-3, .md-autocomplete-suggestions-container.md-hue-3{background:rgb(255,255,255)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-3 li, .md-autocomplete-suggestions-container.md-hue-3 li{color:rgb(33,33,33)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-3 li .highlight, .md-autocomplete-suggestions-container.md-hue-3 li .highlight{color:rgb(117,117,117)}.md-autocomplete-suggestions-container.md-default-theme.md-hue-3 li.selected, .md-autocomplete-suggestions-container.md-hue-3 li.selected,.md-autocomplete-suggestions-container.md-default-theme.md-hue-3 li:hover, .md-autocomplete-suggestions-container.md-hue-3 li:hover{background:rgb(238,238,238)}md-backdrop{background-color:rgba(33,33,33,0.0)}md-backdrop.md-opaque.md-default-theme.md-hue-3, md-backdrop.md-opaque.md-hue-3{background-color:rgba(33,33,33,1.0)}md-bottom-sheet.md-default-theme.md-hue-3, md-bottom-sheet.md-hue-3{background-color:rgb(250,250,250);border-top-color:rgb(224,224,224)}md-bottom-sheet.md-default-theme.md-hue-3 .md-subheader, md-bottom-sheet.md-hue-3 .md-subheader{background-color:rgb(250,250,250);color:rgba(0,0,0,0.87)}.md-button.md-default-theme.md-hue-3:not([disabled]).md-focused, .md-button.md-hue-3:not([disabled]).md-focused,.md-button.md-default-theme.md-hue-3:not([disabled]):hover, .md-button.md-hue-3:not([disabled]):hover{background-color:rgba(158,158,158,0.2)}.md-button.md-default-theme.md-hue-3:not([disabled]).md-icon-button:hover, .md-button.md-hue-3:not([disabled]).md-icon-button:hover{background-color:transparent}.md-button.md-default-theme.md-hue-3.md-raised, .md-button.md-hue-3.md-raised{color:rgb(33,33,33);background-color:rgb(250,250,250)}.md-button.md-default-theme.md-hue-3.md-raised:not([disabled]) md-icon, .md-button.md-hue-3.md-raised:not([disabled]) md-icon{color:rgb(33,33,33)}.md-button.md-default-theme.md-hue-3.md-raised:not([disabled]):hover, .md-button.md-hue-3.md-raised:not([disabled]):hover{background-color:rgb(250,250,250)}.md-button.md-default-theme.md-hue-3.md-raised:not([disabled]).md-focused, .md-button.md-hue-3.md-raised:not([disabled]).md-focused{background-color:rgb(238,238,238)}.md-button.md-default-theme.md-hue-3.md-fab[disabled], .md-button.md-hue-3.md-fab[disabled],.md-button.md-default-theme.md-hue-3.md-raised[disabled], .md-button.md-hue-3.md-raised[disabled]{background-color:rgba(0,0,0,0.12)}.md-button.md-default-theme.md-hue-3[disabled], .md-button.md-hue-3[disabled]{background-color:transparent}md-card.md-default-theme.md-hue-3, md-card.md-hue-3{color:rgba(0,0,0,0.87);background-color:rgb(255,255,255);border-radius:2px}md-card.md-default-theme.md-hue-3 md-card-header md-card-avatar md-icon, md-card.md-hue-3 md-card-header md-card-avatar md-icon{color:rgb(224,224,224);background-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-3.md-checked .md-ripple, md-checkbox.md-hue-3.md-checked .md-ripple{color:rgb(117,117,117)}md-checkbox.md-default-theme.md-hue-3[disabled].md-checked .md-icon, md-checkbox.md-hue-3[disabled].md-checked .md-icon{background-color:rgba(0,0,0,0.38)}md-checkbox.md-default-theme.md-hue-3[disabled].md-checked .md-icon:after, md-checkbox.md-hue-3[disabled].md-checked .md-icon:after{border-color:rgb(238,238,238)}md-chips.md-default-theme.md-hue-3 md-chip, md-chips.md-hue-3 md-chip{background:rgb(224,224,224);color:rgb(66,66,66)}md-chips.md-default-theme.md-hue-3 md-chip md-icon, md-chips.md-hue-3 md-chip md-icon{color:rgb(97,97,97)}md-chips.md-default-theme.md-hue-3 md-chip._md-chip-editing, md-chips.md-hue-3 md-chip._md-chip-editing{background:transparent;color:rgb(66,66,66)}md-chips.md-default-theme.md-hue-3 md-chip-remove .md-button md-icon path, md-chips.md-hue-3 md-chip-remove .md-button md-icon path{fill:rgb(158,158,158)}.md-contact-suggestion span.md-contact-email{color:rgb(189,189,189)}md-content.md-default-theme.md-hue-3, md-content.md-hue-3{color:rgba(0,0,0,0.87);background-color:rgb(250,250,250)}.md-calendar.md-default-theme.md-hue-3, .md-calendar.md-hue-3{background:rgb(255,255,255);color:rgba(0,0,0,0.87)}.md-calendar.md-default-theme.md-hue-3 tr:last-child td, .md-calendar.md-hue-3 tr:last-child td{border-bottom-color:rgb(238,238,238)}.md-default-theme.md-hue-3 .md-calendar-day-header, .md-hue-3 .md-calendar-day-header{background:rgb(224,224,224);color:rgba(0,0,0,0.87)}.md-calendar-date.md-focus .md-default-theme.md-hue-3 .md-calendar-date-selection-indicatorLine truncated
+1 -1
View File
@@ -1,2 +1,2 @@
!function(){"use strict";function a(a,d){a.state("administration",{"abstract":!0,views:{administration:{templateUrl:"administration.html",controller:"AdministrationController",controllerAs:"app"}}}).state("administration.rights",{url:"/rights",views:{module:{templateUrl:"rights.html"}}}).state("administration.rights.edit",{url:"/:userId/:folderId/edit",views:{acl:{templateUrl:"UIxAdministrationAclEditor",controller:"AdministrationAclController",controllerAs:"acl"}},resolve:{stateUser:b,stateFolder:c}}),d.otherwise("/rights")}function b(a,b,c){var d;return d=_.find(c.$users,function(a){return a.uid==b.userId}),angular.isUndefined(d)?c.$filter(b.userId).then(function(e){return d=_.find(c.$users,function(a){return a.uid==b.userId}),angular.isUndefined(d)?a.reject("User with ID "+b.userId+" not found"):d.$folders().then(function(){return d})}):d}function c(a,b,c,d,e,f){var g,h,i=c(b.folderId);return g=_.find(d.$$folders,function(a){return a.name==i}),h="Appointment"==g.type?new f({id:g.name.split("/").pop(),owner:g.owner,name:g.displayName}):new e({id:g.name.split("/").pop(),owner:g.owner,name:g.displayName}),d.selectedFolder=h.id,h}function d(a,b,c){b.$on("$stateChangeError",function(b,d,e,f,g,h){a.error(h),c.go("administration.rights")}),b.$on("$routeChangeError",function(b,c,d,e){a.error(b,c,d,e)})}angular.module("SOGo.AdministrationUI",["ui.router","SOGo.Common","SOGo.Authentication","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.SchedulerUI"]).config(a).run(d),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["$q","$stateParams","User"],c.$inject=["$state","$stateParams","decodeUriFilter","stateUser","AddressBook","Calendar"],d.$inject=["$log","$rootScope","$state"]}(),function(){"use strict";function a(a,b,c,d,e,f,g){function h(){return angular.isDefined(f.$cards)?"../"+f.owner+"/Contacts/"+f.id+"/UIxContactsUserRightsEditor":"../"+f.owner+"/Calendar/"+f.id+"/UIxCalUserRightsEditor"}function i(a){f.$acl.$selectAllRights(a)}function j(a,b){return b&&b.target.parentNode.classList.contains("md-secondary")?!1:void(q.selectedUid==a.uid?q.selectedUid=null:(q.selectedUid=a.uid,q.selectedUser=a,q.selectedUser.$rights()))}function k(a){return g.$filter(a,f.$acl.users,{dry:!0})}function m(b){a(function(){f.$acl.$removeUser(b.uid,f.owner)},500)}function n(a){a&&f.$acl.$addUser(a,f.owner).then(function(a){q.userToAdd="",q.searchText="",q.selectedUid=null,a&&j(a)})}function o(){b.go("administration.rights").then(function(){delete q.user.selectedFolder,q.user=null})}function p(){f.$acl.$saveUsersRights(f.owner).then(function(){d.show(d.simple().content(l("ACLs saved")).position("bottom right").hideDelay(3e3)),c("xs")&&o()})}var q=this;q.user=e,q.folder=f,q.folderType=angular.isDefined(f.$cards)?"AddressBook":"Calendar",q.selectedUser=null,q.selectedUid=null,q.selectUser=j,q.selectAllRights=i,q.removeUser=m,q.getTemplate=h,q.close=o,q.save=p,q.userToAdd="",q.searchText="",q.userFilter=k,q.addUser=n,f.$acl.$users(f.owner).then(function(a){q.users=a})}a.$inject=["$timeout","$state","$mdMedia","$mdToast","stateUser","stateFolder","User"],angular.module("SOGo.AdministrationUI").controller("AdministrationAclController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h){function i(b){a.go("administration."+b),c(e["gt-md"])||d("left").close()}function j(a){h.$filter(a)}function k(a){m.selectedUser==m.users[a]?m.selectedUser=null:m.users[a].$folders().then(function(){m.selectedUser=m.users[a]})}function l(b){a.go("administration.rights.edit",{userId:m.selectedUser.uid,folderId:g(b.name)})}var m=this;m.service=h,m.selectedUser=null,m.users=h.$users,m.go=i,m.filter=j,m.selectUser=k,m.selectFolder=l}a.$inject=["$state","$mdToast","$mdMedia","$mdSidenav","sgConstant","Dialog","encodeUriFilter","User"],angular.module("SOGo.AdministrationUI").controller("AdministrationController",a)}();
!function(){"use strict";function a(a,d){a.state("administration",{abstract:!0,views:{administration:{templateUrl:"administration.html",controller:"AdministrationController",controllerAs:"app"}}}).state("administration.rights",{url:"/rights",views:{module:{templateUrl:"rights.html"}}}).state("administration.rights.edit",{url:"/:userId/:folderId/edit",views:{acl:{templateUrl:"UIxAdministrationAclEditor",controller:"AdministrationAclController",controllerAs:"acl"}},resolve:{stateUser:b,stateFolder:c}}),d.otherwise("/rights")}function b(a,b,c){var d;return d=_.find(c.$users,function(a){return a.uid==b.userId}),angular.isUndefined(d)?c.$filter(b.userId).then(function(e){return d=_.find(c.$users,function(a){return a.uid==b.userId}),angular.isUndefined(d)?a.reject("User with ID "+b.userId+" not found"):d.$folders().then(function(){return d})}):d}function c(a,b,c,d,e,f){var g,h,i=c(b.folderId);return g=_.find(d.$$folders,function(a){return a.name==i}),h="Appointment"==g.type?new f({id:g.name.split("/").pop(),owner:g.owner,name:g.displayName}):new e({id:g.name.split("/").pop(),owner:g.owner,name:g.displayName}),d.selectedFolder=h.id,h}function d(a,b,c){b.$on("$stateChangeError",function(b,d,e,f,g,h){a.error(h),c.go("administration.rights")}),b.$on("$routeChangeError",function(b,c,d,e){a.error(b,c,d,e)})}angular.module("SOGo.AdministrationUI",["ui.router","SOGo.Common","SOGo.Authentication","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.SchedulerUI"]).config(a).run(d),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["$q","$stateParams","User"],c.$inject=["$state","$stateParams","decodeUriFilter","stateUser","AddressBook","Calendar"],d.$inject=["$log","$rootScope","$state"]}(),function(){"use strict";function a(a,b,c,d,e,f,g){function h(){return angular.isDefined(f.$cards)?"../"+f.owner+"/Contacts/"+f.id+"/UIxContactsUserRightsEditor":"../"+f.owner+"/Calendar/"+f.id+"/UIxCalUserRightsEditor"}function i(a){f.$acl.$selectAllRights(a)}function j(a,b){return(!b||!b.target.parentNode.classList.contains("md-secondary"))&&void(q.selectedUid==a.uid?q.selectedUid=null:(q.selectedUid=a.uid,q.selectedUser=a,q.selectedUser.$rights()))}function k(a){return g.$filter(a,f.$acl.users,{dry:!0})}function m(b){a(function(){f.$acl.$removeUser(b.uid,f.owner)},500)}function n(a){a&&f.$acl.$addUser(a,f.owner).then(function(a){q.userToAdd="",q.searchText="",q.selectedUid=null,a&&j(a)})}function o(){b.go("administration.rights").then(function(){delete q.user.selectedFolder,q.user=null})}function p(){f.$acl.$saveUsersRights(f.owner).then(function(){d.show(d.simple().content(l("ACLs saved")).position("bottom right").hideDelay(3e3)),c("xs")&&o()})}var q=this;q.user=e,q.folder=f,q.folderType=angular.isDefined(f.$cards)?"AddressBook":"Calendar",q.selectedUser=null,q.selectedUid=null,q.selectUser=j,q.selectAllRights=i,q.removeUser=m,q.getTemplate=h,q.close=o,q.save=p,q.userToAdd="",q.searchText="",q.userFilter=k,q.addUser=n,f.$acl.$users(f.owner).then(function(a){q.users=a})}a.$inject=["$timeout","$state","$mdMedia","$mdToast","stateUser","stateFolder","User"],angular.module("SOGo.AdministrationUI").controller("AdministrationAclController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h){function i(b){a.go("administration."+b),c(e["gt-md"])||d("left").close()}function j(a){h.$filter(a)}function k(a){m.selectedUser==m.users[a]?m.selectedUser=null:m.users[a].$folders().then(function(){m.selectedUser=m.users[a]})}function l(b){a.go("administration.rights.edit",{userId:m.selectedUser.uid,folderId:g(b.name)})}var m=this;m.service=h,m.selectedUser=null,m.users=h.$users,m.go=i,m.filter=j,m.selectUser=k,m.selectFolder=l}a.$inject=["$state","$mdToast","$mdMedia","$mdSidenav","sgConstant","Dialog","encodeUriFilter","User"],angular.module("SOGo.AdministrationUI").controller("AdministrationController",a)}();
//# sourceMappingURL=Administration.js.map
@@ -1 +1 @@
{"version":3,"sources":["Administration/Administration.app.js","Administration/AdministrationAclController.js","Administration/AdministrationController.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","abstract","views","administration","templateUrl","controller","controllerAs","url","module","acl","resolve","stateUser","stateFolder","otherwise","$q","$stateParams","User","user","_","find","$users","uid","userId","angular","isUndefined","$filter","then","users","reject","$folders","$state","decodeUriFilter","AddressBook","Calendar","folder","o","folderId","$$folders","name","type","id","split","pop","owner","displayName","selectedFolder","runBlock","$log","$rootScope","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","config","run","$inject","AdministrationAclController","$timeout","$mdMedia","$mdToast","getTemplate","isDefined","$cards","selectAllRights","$acl","$selectAllRights","selectUser","$event","target","parentNode","classList","contains","vm","selectedUid","selectedUser","$rights","userFilter","$query","dry","removeUser","$removeUser","addUser","data","$addUser","userToAdd","searchText","close","save","$saveUsersRights","show","simple","content","l","position","hideDelay","this","folderType","AdministrationController","$mdSidenav","sgConstant","Dialog","encodeUriFilter","filter","i","selectFolder","service"],"mappings":"CAGA,WACE,YAUA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,kBACLC,YAAU,EACVC,OACEC,gBACEC,YAAa,sBACbC,WAAY,2BACZC,aAAc,UAInBN,MAAM,yBACLO,IAAK,UACLL,OACEM,QACEJ,YAAa,kBAIlBJ,MAAM,8BACLO,IAAK,0BACLL,OACEO,KACEL,YAAa,6BACbC,WAAY,8BACZC,aAAc,QAGlBI,SACEC,UAAWA,EACXC,YAAaA,KAKnBb,EAAmBc,UAAU,WAO/B,QAASF,GAAUG,EAAIC,EAAcC,GACnC,GAAIC,EAMJ,OAJAA,GAAOC,EAAEC,KAAKH,EAAKI,OAAQ,SAASH,GAClC,MAAOA,GAAKI,KAAON,EAAaO,SAG9BC,QAAQC,YAAYP,GACfD,EAAKS,QAAQV,EAAaO,QAAQI,KAAK,SAASC,GAIrD,MAHAV,GAAOC,EAAEC,KAAKH,EAAKI,OAAQ,SAASH,GAClC,MAAOA,GAAKI,KAAON,EAAaO,SAE9BC,QAAQC,YAAYP,GACfH,EAAGc,OAAO,gBAAkBb,EAAaO,OAAS,cAIlDL,EAAKY,WAAWH,KAAK,WAC1B,MAAOT,OAORA,EAOT,QAASL,GAAYkB,EAAQf,EAAcgB,EAAiBpB,EAAWqB,EAAaC,GAClF,GAAIC,GAAQC,EACRC,EAAWL,EAAgBhB,EAAaqB,SAkB5C,OAhBAF,GAAShB,EAAEC,KAAKR,EAAU0B,UAAW,SAASH,GAC5C,MAAOA,GAAOI,MAAQF,IAItBD,EADiB,eAAfD,EAAOK,KACL,GAAIN,IAAWO,GAAIN,EAAOI,KAAKG,MAAM,KAAKC,MAC3BC,MAAOT,EAAOS,MACdL,KAAMJ,EAAOU,cAE5B,GAAIZ,IAAcQ,GAAIN,EAAOI,KAAKG,MAAM,KAAKC,MAC3BC,MAAOT,EAAOS,MACdL,KAAMJ,EAAOU,cAGrCjC,EAAUkC,eAAiBV,EAAEK,GAEtBL,EAOT,QAASW,GAASC,EAAMC,EAAYlB,GAClCkB,EAAWC,IAAI,oBAAqB,SAASC,EAAOC,EAASC,EAAUC,EAAWC,EAAYC,GAC5FR,EAAKQ,MAAMA,GACXzB,EAAO0B,GAAG,2BAEZR,EAAWC,IAAI,oBAAqB,SAASC,EAAOO,EAASC,EAAUC,GACrEZ,EAAKQ,MAAML,EAAOO,EAASC,EAAUC,KApHzCpC,QAAQf,OAAO,yBAA0B,YAAa,cAAe,sBAAuB,qBAAsB,kBAAmB,qBAClIoD,OAAO/D,GACPgE,IAAIf,GAKPjD,EAAUiE,SAAW,iBAAkB,sBA2CvCnD,EAAUmD,SAAW,KAAM,eAAgB,QAgC3ClD,EAAYkD,SAAW,SAAU,eAAgB,kBAAmB,YAAa,cAAe,YA2BhGhB,EAASgB,SAAW,OAAQ,aAAc,aChH5C,WACE,YAMA,SAASC,GAA4BC,EAAUlC,EAAQmC,EAAUC,EAAUvD,EAAWC,EAAaI,GAwBjG,QAASmD,KACP,MAAI5C,SAAQ6C,UAAUxD,EAAYyD,QACzB,MAAQzD,EAAY+B,MAAQ,aAAe/B,EAAY4B,GAAK,+BAE9D,MAAQ5B,EAAY+B,MAAQ,aAAe/B,EAAY4B,GAAK,0BAGrE,QAAS8B,GAAgBrD,GACvBL,EAAY2D,KAAKC,iBAAiBvD,GAGpC,QAASwD,GAAWxD,EAAMyD,GACxB,MAAIA,IAAUA,EAAOC,OAAOC,WAAWC,UAAUC,SAAS,iBACjD,OACLC,EAAGC,aAAe/D,EAAKI,IACzB0D,EAAGC,YAAc,MAGjBD,EAAGC,YAAc/D,EAAKI,IACtB0D,EAAGE,aAAehE,EAClB8D,EAAGE,aAAaC,YAIpB,QAASC,GAAWC,GAClB,MAAOpE,GAAKS,QAAQ2D,EAAQxE,EAAY2D,KAAK5C,OAAS0D,KAAK,IAG7D,QAASC,GAAWrE,GAClB+C,EAAS,WACPpD,EAAY2D,KAAKgB,YAAYtE,EAAKI,IAAKT,EAAY+B,QAClD,KAGL,QAAS6C,GAAQC,GACXA,GACF7E,EAAY2D,KAAKmB,SAASD,EAAM7E,EAAY+B,OAAOjB,KAAK,SAAST,GAC/D8D,EAAGY,UAAY,GACfZ,EAAGa,WAAa,GAChBb,EAAGC,YAAc,KACb/D,GACFwD,EAAWxD,KAKnB,QAAS4E,KACP/D,EAAO0B,GAAG,yBAAyB9B,KAAK,iBAC/BqD,GAAG9D,KAAK4B,eACfkC,EAAG9D,KAAO,OAId,QAAS6E,KACPlF,EAAY2D,KAAKwB,iBAAiBnF,EAAY+B,OAAOjB,KAAK,WACxDwC,EAAS8B,KACP9B,EAAS+B,SACNC,QAAQC,EAAE,eACVC,SAAS,gBACTC,UAAU,MAGXpC,EAAS,OACX4B,MAtFN,GAAId,GAAKuB,IAETvB,GAAG9D,KAAON,EACVoE,EAAG7C,OAAStB,EACZmE,EAAGwB,WAAahF,QAAQ6C,UAAUxD,EAAYyD,QAAS,cAAgB,WACvEU,EAAGE,aAAe,KAClBF,EAAGC,YAAc,KACjBD,EAAGN,WAAaA,EAChBM,EAAGT,gBAAkBA,EACrBS,EAAGO,WAAaA,EAChBP,EAAGZ,YAAcA,EACjBY,EAAGc,MAAQA,EACXd,EAAGe,KAAOA,EAEVf,EAAGY,UAAY,GACfZ,EAAGa,WAAa,GAChBb,EAAGI,WAAaA,EAChBJ,EAAGS,QAAUA,EAEb5E,EAAY2D,KAAKnD,OAAOR,EAAY+B,OAAOjB,KAAK,SAAS+D,GACvDV,EAAGpD,MAAQ8D,IAtBf1B,EAA4BD,SAAW,WAAY,SAAU,WAAY,WAAY,YAAa,cAAe,QA6FjHvC,QACGf,OAAO,yBACPH,WAAW,8BAA+B0D,MCrG/C,WACE,YAMA,SAASyC,GAAyB1E,EAAQoC,EAAUD,EAAUwC,EAAYC,EAAYC,EAAQC,EAAiB5F,GAa7G,QAASwC,GAAGhD,GACVsB,EAAO0B,GAAG,kBAAoBhD,GAEzByD,EAASyC,EAAW,WACvBD,EAAW,QAAQZ,QAGvB,QAASgB,GAAOjB,GACd5E,EAAKS,QAAQmE,GAGf,QAASnB,GAAWqC,GACd/B,EAAGE,cAAgBF,EAAGpD,MAAMmF,GAC9B/B,EAAGE,aAAe,KAIlBF,EAAGpD,MAAMmF,GAAGjF,WAAWH,KAAK,WAC1BqD,EAAGE,aAAeF,EAAGpD,MAAMmF,KAKjC,QAASC,GAAa7E,GACpBJ,EAAO0B,GAAG,8BAA+BlC,OAAQyD,EAAGE,aAAa5D,IAAKe,SAAUwE,EAAgB1E,EAAOI,QApCzG,GAAIyC,GAAKuB,IAETvB,GAAGiC,QAAUhG,EAEb+D,EAAGE,aAAe,KAClBF,EAAGpD,MAAQX,EAAKI,OAEhB2D,EAAGvB,GAAKA,EACRuB,EAAG8B,OAASA,EACZ9B,EAAGN,WAAaALine truncated
{"version":3,"sources":["Administration/Administration.app.js","Administration/AdministrationAclController.js","Administration/AdministrationController.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","abstract","views","administration","templateUrl","controller","controllerAs","url","module","acl","resolve","stateUser","stateFolder","otherwise","$q","$stateParams","User","user","_","find","$users","uid","userId","angular","isUndefined","$filter","then","users","reject","$folders","$state","decodeUriFilter","AddressBook","Calendar","folder","o","folderId","$$folders","name","type","id","split","pop","owner","displayName","selectedFolder","runBlock","$log","$rootScope","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","config","run","$inject","AdministrationAclController","$timeout","$mdMedia","$mdToast","getTemplate","isDefined","$cards","selectAllRights","$acl","$selectAllRights","selectUser","$event","target","parentNode","classList","contains","vm","selectedUid","selectedUser","$rights","userFilter","$query","dry","removeUser","$removeUser","addUser","data","$addUser","userToAdd","searchText","close","save","$saveUsersRights","show","simple","content","l","position","hideDelay","this","folderType","AdministrationController","$mdSidenav","sgConstant","Dialog","encodeUriFilter","filter","i","selectFolder","service"],"mappings":"CAGA,WACE,YAUA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,kBACLC,UAAU,EACVC,OACEC,gBACEC,YAAa,sBACbC,WAAY,2BACZC,aAAc,UAInBN,MAAM,yBACLO,IAAK,UACLL,OACEM,QACEJ,YAAa,kBAIlBJ,MAAM,8BACLO,IAAK,0BACLL,OACEO,KACEL,YAAa,6BACbC,WAAY,8BACZC,aAAc,QAGlBI,SACEC,UAAWA,EACXC,YAAaA,KAKnBb,EAAmBc,UAAU,WAO/B,QAASF,GAAUG,EAAIC,EAAcC,GACnC,GAAIC,EAMJ,OAJAA,GAAOC,EAAEC,KAAKH,EAAKI,OAAQ,SAASH,GAClC,MAAOA,GAAKI,KAAON,EAAaO,SAG9BC,QAAQC,YAAYP,GACfD,EAAKS,QAAQV,EAAaO,QAAQI,KAAK,SAASC,GAIrD,MAHAV,GAAOC,EAAEC,KAAKH,EAAKI,OAAQ,SAASH,GAClC,MAAOA,GAAKI,KAAON,EAAaO,SAE9BC,QAAQC,YAAYP,GACfH,EAAGc,OAAO,gBAAkBb,EAAaO,OAAS,cAIlDL,EAAKY,WAAWH,KAAK,WAC1B,MAAOT,OAORA,EAOT,QAASL,GAAYkB,EAAQf,EAAcgB,EAAiBpB,EAAWqB,EAAaC,GAClF,GAAIC,GAAQC,EACRC,EAAWL,EAAgBhB,EAAaqB,SAkB5C,OAhBAF,GAAShB,EAAEC,KAAKR,EAAU0B,UAAW,SAASH,GAC5C,MAAOA,GAAOI,MAAQF,IAItBD,EADiB,eAAfD,EAAOK,KACL,GAAIN,IAAWO,GAAIN,EAAOI,KAAKG,MAAM,KAAKC,MAC3BC,MAAOT,EAAOS,MACdL,KAAMJ,EAAOU,cAE5B,GAAIZ,IAAcQ,GAAIN,EAAOI,KAAKG,MAAM,KAAKC,MAC3BC,MAAOT,EAAOS,MACdL,KAAMJ,EAAOU,cAGrCjC,EAAUkC,eAAiBV,EAAEK,GAEtBL,EAOT,QAASW,GAASC,EAAMC,EAAYlB,GAClCkB,EAAWC,IAAI,oBAAqB,SAASC,EAAOC,EAASC,EAAUC,EAAWC,EAAYC,GAC5FR,EAAKQ,MAAMA,GACXzB,EAAO0B,GAAG,2BAEZR,EAAWC,IAAI,oBAAqB,SAASC,EAAOO,EAASC,EAAUC,GACrEZ,EAAKQ,MAAML,EAAOO,EAASC,EAAUC,KApHzCpC,QAAQf,OAAO,yBAA0B,YAAa,cAAe,sBAAuB,qBAAsB,kBAAmB,qBAClIoD,OAAO/D,GACPgE,IAAIf,GAKPjD,EAAUiE,SAAW,iBAAkB,sBA2CvCnD,EAAUmD,SAAW,KAAM,eAAgB,QAgC3ClD,EAAYkD,SAAW,SAAU,eAAgB,kBAAmB,YAAa,cAAe,YA2BhGhB,EAASgB,SAAW,OAAQ,aAAc,aChH5C,WACE,YAMA,SAASC,GAA4BC,EAAUlC,EAAQmC,EAAUC,EAAUvD,EAAWC,EAAaI,GAwBjG,QAASmD,KACP,MAAI5C,SAAQ6C,UAAUxD,EAAYyD,QACzB,MAAQzD,EAAY+B,MAAQ,aAAe/B,EAAY4B,GAAK,+BAE9D,MAAQ5B,EAAY+B,MAAQ,aAAe/B,EAAY4B,GAAK,0BAGrE,QAAS8B,GAAgBrD,GACvBL,EAAY2D,KAAKC,iBAAiBvD,GAGpC,QAASwD,GAAWxD,EAAMyD,GACxB,QAAIA,IAAUA,EAAOC,OAAOC,WAAWC,UAAUC,SAAS,uBAEtDC,EAAGC,aAAe/D,EAAKI,IACzB0D,EAAGC,YAAc,MAGjBD,EAAGC,YAAc/D,EAAKI,IACtB0D,EAAGE,aAAehE,EAClB8D,EAAGE,aAAaC,YAIpB,QAASC,GAAWC,GAClB,MAAOpE,GAAKS,QAAQ2D,EAAQxE,EAAY2D,KAAK5C,OAAS0D,KAAK,IAG7D,QAASC,GAAWrE,GAClB+C,EAAS,WACPpD,EAAY2D,KAAKgB,YAAYtE,EAAKI,IAAKT,EAAY+B,QAClD,KAGL,QAAS6C,GAAQC,GACXA,GACF7E,EAAY2D,KAAKmB,SAASD,EAAM7E,EAAY+B,OAAOjB,KAAK,SAAST,GAC/D8D,EAAGY,UAAY,GACfZ,EAAGa,WAAa,GAChBb,EAAGC,YAAc,KACb/D,GACFwD,EAAWxD,KAKnB,QAAS4E,KACP/D,EAAO0B,GAAG,yBAAyB9B,KAAK,iBAC/BqD,GAAG9D,KAAK4B,eACfkC,EAAG9D,KAAO,OAId,QAAS6E,KACPlF,EAAY2D,KAAKwB,iBAAiBnF,EAAY+B,OAAOjB,KAAK,WACxDwC,EAAS8B,KACP9B,EAAS+B,SACNC,QAAQC,EAAE,eACVC,SAAS,gBACTC,UAAU,MAGXpC,EAAS,OACX4B,MAtFN,GAAId,GAAKuB,IAETvB,GAAG9D,KAAON,EACVoE,EAAG7C,OAAStB,EACZmE,EAAGwB,WAAahF,QAAQ6C,UAAUxD,EAAYyD,QAAS,cAAgB,WACvEU,EAAGE,aAAe,KAClBF,EAAGC,YAAc,KACjBD,EAAGN,WAAaA,EAChBM,EAAGT,gBAAkBA,EACrBS,EAAGO,WAAaA,EAChBP,EAAGZ,YAAcA,EACjBY,EAAGc,MAAQA,EACXd,EAAGe,KAAOA,EAEVf,EAAGY,UAAY,GACfZ,EAAGa,WAAa,GAChBb,EAAGI,WAAaA,EAChBJ,EAAGS,QAAUA,EAEb5E,EAAY2D,KAAKnD,OAAOR,EAAY+B,OAAOjB,KAAK,SAAS+D,GACvDV,EAAGpD,MAAQ8D,IAtBf1B,EAA4BD,SAAW,WAAY,SAAU,WAAY,WAAY,YAAa,cAAe,QA6FjHvC,QACGf,OAAO,yBACPH,WAAW,8BAA+B0D,MCrG/C,WACE,YAMA,SAASyC,GAAyB1E,EAAQoC,EAAUD,EAAUwC,EAAYC,EAAYC,EAAQC,EAAiB5F,GAa7G,QAASwC,GAAGhD,GACVsB,EAAO0B,GAAG,kBAAoBhD,GAEzByD,EAASyC,EAAW,WACvBD,EAAW,QAAQZ,QAGvB,QAASgB,GAAOjB,GACd5E,EAAKS,QAAQmE,GAGf,QAASnB,GAAWqC,GACd/B,EAAGE,cAAgBF,EAAGpD,MAAMmF,GAC9B/B,EAAGE,aAAe,KAIlBF,EAAGpD,MAAMmF,GAAGjF,WAAWH,KAAK,WAC1BqD,EAAGE,aAAeF,EAAGpD,MAAMmF,KAKjC,QAASC,GAAa7E,GACpBJ,EAAO0B,GAAG,8BAA+BlC,OAAQyD,EAAGE,aAAa5D,IAAKe,SAAUwE,EAAgB1E,EAAOI,QApCzG,GAAIyC,GAAKuB,IAETvB,GAAGiC,QAAUhG,EAEb+D,EAAGE,aAAe,KAClBF,EAAGpD,MAAQX,EAAKI,OAEhB2D,EAAGvB,GAAKA,EACRuB,EAAG8B,OAASA,EACZ9B,EAAGN,WAAaA,EAChLine truncated
@@ -1,2 +1,2 @@
!function(){"use strict";function a(){}a.$factory=["$q","$timeout","$log","sgSettings","Resource","User",function(b,c,d,e,f,g){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL"),e.activeUser()),activeUser:e.activeUser(),$User:g}),new a}];try{angular.module("SOGo.AdministrationUI")}catch(b){angular.module("SOGo.AdministrationUI",["SOGo.Common"])}angular.module("SOGo.AdministrationUI").factory("Administration",a.$factory)}();
!function(){"use strict";function a(){}a.$factory=["$q","$timeout","$log","sgSettings","Resource","User",function(b,c,d,e,f,g){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL"),e.activeUser()),activeUser:e.activeUser(),$User:g}),new a}];try{angular.module("SOGo.AdministrationUI")}catch(a){angular.module("SOGo.AdministrationUI",["SOGo.Common"])}angular.module("SOGo.AdministrationUI").factory("Administration",a.$factory)}();
//# sourceMappingURL=Administration.services.js.map
+3 -3
View File
@@ -1,4 +1,4 @@
function l(){var a,b,c=arguments[0],d=c,e=arguments;for(labels[c]?d=labels[c]:clabels[c]&&(d=clabels[c]),a=1,b=0;a<e.length;a++,b++)d=d.replace("%{"+b+"}",e[a]);return a=1,e.length>1&&(d=d.replace(/%((%)|s|d)/g,function(b){var c=null;if(b[2])c=b[2];else{switch(c=e[a],b){case"%d":c=parseFloat(c),isNaN(c)&&(c=0)}a++}return c})),d}function hexToRgb(a){var b=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return b?{r:parseInt(b[1],16),g:parseInt(b[2],16),b:parseInt(b[3],16)}:null}function contrast(a){var b,c,d=1;if(b=hexToRgb(a)){c=[b.r/255,b.g/255,b.b/255];for(var e=0;e<c.length;++e)c[e]<=.03928?c[e]=c[e]/12.92:c[e]=Math.pow((c[e]+.055)/1.055,2.4);d=.2126*c[0]+.7152*c[1]+.0722*c[2]}return d>.179?"black":"white"}function guid(){function a(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return(a()+a()+"-"+a()+"-4"+a().substr(0,3)+"-"+a()+"-"+a()+a()+a()).toLowerCase()}!function(){"use strict";function a(a,b,c,d,e){d.definePalette("sogo-green",{50:"eaf5e9",100:"cbe5c8",200:"aad6a5",300:"88c781",400:"66b86a",500:"56b04c",600:"4da143",700:"388e3c",800:"367d2e",900:"225e1b",A100:"fafafa",A200:"69f0ae",A400:"00e676",A700:"00c853",contrastDefaultColor:"dark",contrastLightColors:["300","400","500","600","700","800","900"]}),d.definePalette("sogo-blue",{50:"f0faf9",100:"e1f5f3",200:"ceebe8",300:"bfe0dd",400:"b2d6d3",500:"a1ccc8",600:"8ebfbb",700:"7db3b0",800:"639997",900:"4d8080",A100:"d4f7fa",A200:"c3f5fa",A400:"53e3f0",A700:"00b0c0",contrastDefaultColor:"light",contrastDarkColors:["50","100","200"]}),d.definePalette("sogo-paper",{50:"fcf7f8",100:"f7f1dc",200:"ede5ca",300:"e6d8ba",400:"e2d2a3",500:"d6c48d",600:"baa870",700:"857545",800:"524517",900:"433809",1000:"000000",A100:"ffffff",A200:"eeeeee",A400:"bdbdbd",A700:"616161",contrastDefaultColor:"dark",contrastLightColors:["800","900"]}),d.theme("default").primaryPalette("sogo-blue",{"default":"900","hue-1":"400","hue-2":"800","hue-3":"A700"}).accentPalette("sogo-green",{"default":"500","hue-1":"A100","hue-2":"300","hue-3":"A700"}),DebugEnabled||(a.debugEnabled(!1),b.debugInfoEnabled(!1),e.disableWarnings(),d.generateThemesOnDemand(!0)),c.interceptors.push("AuthInterceptor"),c.interceptors.push("ErrorInterceptor")}function b(a,b){return{response:function(c){return c&&/^application\/json/.test(c.config.headers.Accept)&&/^<!DOCTYPE html>/.test(c.data)?(a.location.reload(!0),b.reject()):c}}}function c(a,b){return{responseError:function(c){return/^application\/json/.test(c.config.headers.Accept)&&a.$broadcast("http:Error",c),b.reject(c)}}}angular.module("SOGo.Common",["ngAnimate","ngMessages","ngSanitize","ngMaterial","mdColors"]).value("sgSettings",{isPopup:document.body.classList.contains("popup"),baseURL:function(){return ApplicationBaseURL||null},resourcesURL:function(){return ResourcesURL||null},activeUser:function(a){var b={login:UserLogin||null,identification:UserIdentification||null,email:UserEmail||null,language:UserLanguage||null,folderURL:UserFolderURL||null,isSuperUser:IsSuperUser||null,path:{calendar:UserCalendarPath||null,contacts:UserContactsPath||null,mail:UserMailPath||null,preferences:UserPreferencesPath||null,administration:IsSuperUser?UserAdministrationPath:null,help:HelpURL||null,logoff:UserLogoffPath||null}};return a?b[a]:b},minimumSearchLength:function(){return angular.isNumber(minimumSearchLength)?minimumSearchLength:2}}).constant("sgColors",{selection:["#FFFFFF","#330033","#C0C0C0","#999999","#666666","#333333","#000000","#FFCCCC","#FF6666","#FF0000","#CC0000","#990000","#660000","#330000","#FFCC99","#FF9966","#FF9900","#FF6600","#CC6600","#993300","#663300","#FFFF99","#FFFF66","#FFCC66","#FFCC33","#CC9933","#996633","#663333","#FFFFCC","#FFFF33","#FFFF00","#FFCC00","#999900","#666600","#333300","#CCCCCC","#66FF99","#33FF33","#33CC00","#009900","#006600","#003300","#99FFFF","#33FFFF","#66CCCC","#00CCCC","#339999","#336666","#003333","#CCFFFF","#66FFFF","#33CCFF","#3366FF","#3333FF","#000099","#000066","#CCCCFF","#9999FF","#6666CC","#6633FF","#6600CC","#333399","#330099","#FFCCFF","#FF99FF","#CC66CC","#CC33CC","#993399","#663366","#99FF99"]}).constant("sgConstant",{xs:"(max-width: 599px)","gt-xs":"(min-width: 600px)",sm:"(min-width: 600px) and (max-width: 959px)","gt-sm":"(min-width: 960px)",md:"(min-width: 960px) and (max-width: 1023px)","gt-md":"(min-width: 1024px)",lg:"(min-width: 1024px) and (max-width: 1279px)","gt-lg":"(min-width: 1280px)",xl:"(min-width: 1920px)",print:"print"}).config(a).factory("AuthInterceptor",b).factory("ErrorInterceptor",c),a.$inject=["$logProvider","$compileProvider","$httpProvider","$mdThemingProvider","$mdAriaProvider"],b.$inject=["$window","$q"],c.$inject=["$rootScope","$q"]}(),function(){"use strict";function a(a){c=a}function b(a,b,d){function e(a){var b=a.join("");return b}function f(a,b,c,d,e,f){if(e){var g="rgb("+e.value[0]+","+e.value[1]+","+e.value[2]+")",h="rgb("+e.contrast[0]+","+e.contrast[1]+","+e.contrast[2]+")",i={theme:c,palette:d,value:g,contrast:h,hue:f};s.insertRule(a(i),t),t+=1,Line truncated
},a.prototype.$resetRights=function(a){var b=this;a?_.map(_.keys(this.rights),function(a){angular.isString(b.rights[a])?b.rights[a]="None":b.rights[a]=0}):this.$shadowRights&&(this.rights=angular.copy(this.$shadowRights))},a.prototype.$folders=function(b){var c=this,d=a.$q.defer(),e={type:b};return this.$$folders?d.resolve(this.$$folders):a.$$resource.userResource(this.uid).fetch(null,"foldersSearch",e).then(function(a){c.$$folders=a.folders,d.resolve(a.folders)}),d.promise},a.prototype.$omit=function(){var a={};return angular.forEach(this,function(b,c){"constructor"!=c&&"$"!=c[0]&&(a[c]=b)}),a},a.prototype.toString=function(){return"[User "+this.c_email+"]"}}(),function(){"use strict";function a(){return{restrict:"AE",scope:{},bindToController:{size:"@",email:"=sgEmail",src:"=sgSrc"},transclude:!0,template:["<md-icon ng-transclude></md-icon>",'<img class="ng-hide" ng-src="{{vm.url}}" />'].join(""),link:b,controller:"sgAvatarImageController",controllerAs:"vm"}}function b(a,b,c,d){var e=b.find("img"),f=b.find("md-icon");c.size&&(e.attr("width",c.size),e.attr("height",c.size),f.css("font-size",c.size+"px")),d.img=e,d.genericImg=f}function c(a,b,c,d,e,f){function g(a){var b=f(a,k.size,e.defaults.SOGoAlternateAvatar);c({method:"GET",url:b,cache:!0,headers:{Accept:"image/*"}}).then(function(){k.url||(k.url=b,k.urlEmail=a,i())},function(){h()})}function h(){k.url=null,k.urlEmail=null,k.img.addClass("ng-hide"),k.genericImg.removeClass("ng-hide")}function i(){k.genericImg.addClass("ng-hide"),k.img.removeClass("ng-hide")}function j(){b.addClass("sg-avatar-image--zoomable"),l=function(){b.toggleClass("sg-avatar-image--zoom")},b.on("click",l)}var k,l;k=this,a.$on("$destroy",function(){l&&b.off("click",l)}),e.ready().then(function(){a.$watch(function(){return k.email},function(a,b){a&&k.urlEmail!=a?(h(),e.defaults.SOGoGravatarEnabled&&g(a)):a||h()})}),"sg-src"in b[0].attributes&&a.$watch(function(){return k.src},function(a){a&&(k.url=a,k.urlEmail=""+k.email,j(),i())})}c.$inject=["$scope","$element","$http","$q","Preferences","Gravatar"],angular.module("SOGo.Common").directive("sgAvatarImage",a).controller("sgAvatarImageController",c)}(),function(){"use strict";function a(a,b,c,d){function e(e,g){return e.on("click",function(a){this.hasAttribute("disabled")&&a.stopImmediatePropagation()}),function(e,g,h,i){function j(a,b,c,d,e){var f;if(angular.isDefined(d)){if(f=a(d),!f.constant)throw Error("Expected constant expression for `"+c+"`, but saw `"+d+"`.");return f(b)}return e}function k(a){g[0].hasAttribute("disabled")||e.$apply(function(){var b=i.$viewValue==m?n:m;i.$setViewValue(b,a&&a.type),i.$render()})}function l(){i.$viewValue==m?g.addClass(f):g.removeClass(f)}var m=j(a,e,"sgTrueValue",h.sgTrueValue,!0),n=j(a,e,"sgFalseValue",h.sgFalseValue,!1);i=i||d.fakeNgModel(),c(g),b.expectWithText(g,"aria-label"),g.on("click",k),i.$render=l}}var f="sg-checked";return{restrict:"E",replace:!0,transclude:!0,require:"?ngModel",template:['<button class="md-button sg-checkmark" type="button">'," <md-icon>check</md-icon>"," <span ng-transclude></span","</button>"].join(""),compile:e}}angular.module("SOGo.Common").directive("sgCheckmark",a),a.$inject=["$parse","$mdAria","$mdTheming","$mdUtil"]}(),function(){"use strict";function a(){function a(a,b,c,d){d.$render=function(){a.sgColor=d.$viewValue,a.sgIconColor=contrast(d.$viewValue)}}return{restrict:"E",require:"ngModel",template:["<md-menu>",' <md-button class="md-icon-button"',' label:aria-label="Options"'," ng-style=\"{ 'background-color': sgColor }\"",' ng-click="$mdOpenMenu()"',' md-menu-origin="md-menu-origin">',' <md-icon ng-style="{ color: sgIconColor }">color_lens</md-icon>'," </md-button>",' <md-menu-content width="3">',' <md-content class="md-padding">',' <md-grid-list class="sg-color-picker" md-cols="7" md-row-height="1:1" md-gutter="0.5em">',' <md-grid-tile ng-repeat="color in ::sgColors track by $index"'," ng-style=\"::{ 'background-color': color }\"",' ng-class="::{ selected: color == sgColor }"',' ng-click="setColor($event, color)"><md-icon ng-style="::{ color: color }">check_box</md-icon></md-grid-tile>'," </md-grid-list>"," </md-content>"," </md-menu-content>","</md-menu>"].join(""),replace:!0,controller:b,link:a}}function b(a,b,c){var d=b.controller("ngModel");a.sgColors=c.selection,a.setColor=function(b,c){b&&(_.forEach(b.currentTarget.parentElement.children,function(a){a.classList.remove("selected")}),b.currentTarget.classList.add("selected")),a.sgColor=c,a.sgIconColor=contrast(c),d.$setViewValue(c)}}b.$inject=["$scope","$element","sgColors"],angular.module("SOGo.Common").directive("sgColorPicker",a)}(),function(){"use strict";function a(a){function b(b,c,d){var e=b.$watch(function(a){return a.$eval(d.sgCompile)},function(d){c.html(d),a(c.contents())(b),e()})}return{restrict:"A",link:b}}a.$inject=["$compile"],angular.module(Line truncated
}},b.prototype.handleWindowBlur=function(){this.inputFocusedOnWindowBlur=document.activeElement===this.inputElement},b.prototype.evalAttr=function(a){this.$attrs[a]&&this.$scope.$parent.$eval(this.$attrs[a])}}(),function(){"use strict";function a(a,b){function c(a,c){return function(d,e,f,g){function h(){var a=g.$viewValue;l=g.$viewValue,c.sgToggleGridAttr&&(m=c.sgToggleGridAttr,a=_.map(g.$viewValue,c.sgToggleGridAttr)),_.forEach(o,function(b){var c=angular.element(b);_.includes(a,c.attr("value"))&&c.addClass("sg-active")})}function i(a){var b=_.findIndex(l,function(b){return m?b[m]==a:b==a});if(0>b)if(m){var c={};c[m]=a,l.push(c)}else l.push(a);else l.splice(b,1);d.$apply(function(){g.$setViewValue(l),g.$setDirty()})}var j,k,l,m,n,o=a.find("md-grid-tile");for(g=g||b.fakeNgModel(),g.$render=h,n=function(){var a=angular.element(this),b=a.attr("value");a.toggleClass("sg-active"),i(b)},k=0;k<o.length;k++)j=angular.element(o[k]),j.addClass("sg-icon-button"),j.find("figure").addClass("md-icon"),j.on("click",n)}}return{restrict:"A",require:"?ngModel",compile:c}}a.$inject=["$parse","$mdUtil"],angular.module("SOGo.Common").directive("sgToggleGrid",a)}(),function(){"use strict";function a(a,b){function c(c,d,e,f){var g=[];f.onInputBlur=function(){var c;this.inputHasFocus=!1,c=function(){var a=this.getChipBuffer().trim();this.validateModel();var b=this.ngModelCtrl.$valid;this.userInputNgModelCtrl&&(b&=this.userInputNgModelCtrl.$valid),a&&b&&(this.appendChip(a),this.resetChipBuffer())}.bind(this),this.autocompleteCtrl?(g.push(c),a.addEventListener("click",function(a){for(;g.length>0;){var c=g.splice(0,1)[0];b(function(){b(c)})}},!1)):c()}}return{link:c,require:"mdChips",restrict:"A"}}a.$inject=["$window","$timeout"],angular.module("SOGo.Common").directive("sgTransformOnBlur",a)}(),function(){"use strict";function a(){function a(a,b,c,d){console.debug("scroll shrink height = "+b.prop("offsetHeight"))}return{restrict:"C",link:a}}angular.module("SOGo.Common").directive("sgVariableScrollShrink",a)}(),String.prototype.endsWith=function(a){return-1!==this.indexOf(a,this.length-a.length)},String.prototype.startsWith=function(a,b){return b=angular.isNumber(b)?b:0,this.lastIndexOf(a,b)===b},String.prototype._base64_keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",String.prototype.base64encode=function(){for(var a,b,c,d,e,f,g,h="",i=0,j=this.utf8encode();i<j.length;)a=j.charCodeAt(i++),b=j.charCodeAt(i++),c=j.charCodeAt(i++),d=a>>2,e=(3&a)<<4|b>>4,f=(15&b)<<2|c>>6,g=63&c,isNaN(b)?f=g=64:isNaN(c)&&(g=64),h=h+this._base64_keyStr.charAt(d)+this._base64_keyStr.charAt(e)+this._base64_keyStr.charAt(f)+this._base64_keyStr.charAt(g);return h},String.prototype.base64decode=function(){for(var a,b,c,d,e,f,g,h="",i=0,j=""+this;i<j.length;)d=this._base64_keyStr.indexOf(j.charAt(i++)),e=this._base64_keyStr.indexOf(j.charAt(i++)),f=this._base64_keyStr.indexOf(j.charAt(i++)),g=this._base64_keyStr.indexOf(j.charAt(i++)),a=d<<2|e>>4,b=(15&e)<<4|f>>2,c=(3&f)<<6|g,h+=String.fromCharCode(a),64!=f&&(h+=String.fromCharCode(b)),64!=g&&(h+=String.fromCharCode(c));return h},String.prototype.md5=function(){if(this.length){var a=function(a){function b(a,b){return a<<b|a>>>32-b}function c(a,b){var c,d,e,f,g;return e=2147483648&a,f=2147483648&b,c=1073741824&a,d=1073741824&b,g=(1073741823&a)+(1073741823&b),c&d?2147483648^g^e^f:c|d?1073741824&g?3221225472^g^e^f:1073741824^g^e^f:g^e^f}function d(a,b,c){return a&b|~a&c}function e(a,b,c){return a&c|b&~c}function f(a,b,c){return a^b^c}function g(a,b,c){return b^(a|~c)}function h(a,e,f,g,h,i,j){return a=c(a,c(c(d(e,f,g),h),j)),c(b(a,i),e)}function i(a,d,f,g,h,i,j){return a=c(a,c(c(e(d,f,g),h),j)),c(b(a,i),d)}function j(a,d,e,g,h,i,j){return a=c(a,c(c(f(d,e,g),h),j)),c(b(a,i),d)}function k(a,d,e,f,h,i,j){return a=c(a,c(c(g(d,e,f),h),j)),c(b(a,i),d)}function l(a){for(var b,c=a.length,d=c+8,e=(d-d%64)/64,f=16*(e+1),g=Array(f-1),h=0,i=0;c>i;)b=(i-i%4)/4,h=i%4*8,g[b]=g[b]|a.charCodeAt(i)<<h,i++;return b=(i-i%4)/4,h=i%4*8,g[b]=g[b]|128<<h,g[f-2]=c<<3,g[f-1]=c>>>29,g}function m(a){var b,c,d="",e="";for(c=0;3>=c;c++)b=a>>>8*c&255,e="0"+b.toString(16),d+=e.substr(e.length-2,2);return d}function n(a){a=a.replace(/rn/g,"n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(d>>6|192),b+=String.fromCharCode(63&d|128)):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128),b+=String.fromCharCode(63&d|128))}return b}var o,p,q,r,s,t,u,v,w,x=Array(),y=7,z=12,A=17,B=22,C=5,D=9,E=14,F=20,G=4,H=11,I=16,J=23,K=6,L=10,M=15,N=21;for(a=n(a),x=l(a),t=1732584193,u=4023233417,v=2562383102,w=271733878,o=0;o<x.length;o+=16)p=t,q=u,r=v,s=w,t=h(t,u,v,w,x[o+0],y,3614090360),w=h(w,t,u,v,x[o+1],z,3905402710),v=h(v,w,t,u,x[o+2],A,606105819),u=h(u,v,w,t,x[o+3],B,3250441966),t=h(t,u,v,w,x[o+4],y,4118548399),w=h(w,t,u,v,x[o+5],z,1200080426),v=h(v,w,t,u,x[o+6],A,2821735955),u=h(u,v,w,t,x[o+7],B,4249261313),t=h(t,u,v,w,x[o+8],y,177003541Line truncated
function l(){var a,b,c=arguments[0],d=c,e=arguments;for(labels[c]?d=labels[c]:clabels[c]&&(d=clabels[c]),a=1,b=0;a<e.length;a++,b++)d=d.replace("%{"+b+"}",e[a]);return a=1,e.length>1&&(d=d.replace(/%((%)|s|d)/g,function(b){var c=null;if(b[2])c=b[2];else{switch(c=e[a],b){case"%d":c=parseFloat(c),isNaN(c)&&(c=0)}a++}return c})),d}function hexToRgb(a){var b=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return b?{r:parseInt(b[1],16),g:parseInt(b[2],16),b:parseInt(b[3],16)}:null}function contrast(a){var b,c,d=1;if(b=hexToRgb(a)){c=[b.r/255,b.g/255,b.b/255];for(var e=0;e<c.length;++e)c[e]<=.03928?c[e]=c[e]/12.92:c[e]=Math.pow((c[e]+.055)/1.055,2.4);d=.2126*c[0]+.7152*c[1]+.0722*c[2]}return d>.179?"black":"white"}function guid(){function a(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return(a()+a()+"-"+a()+"-4"+a().substr(0,3)+"-"+a()+"-"+a()+a()+a()).toLowerCase()}!function(){"use strict";function a(a,b,c,d,e){d.definePalette("sogo-green",{50:"eaf5e9",100:"cbe5c8",200:"aad6a5",300:"88c781",400:"66b86a",500:"56b04c",600:"4da143",700:"388e3c",800:"367d2e",900:"225e1b",A100:"fafafa",A200:"69f0ae",A400:"00e676",A700:"00c853",contrastDefaultColor:"dark",contrastLightColors:["300","400","500","600","700","800","900"]}),d.definePalette("sogo-blue",{50:"f0faf9",100:"e1f5f3",200:"ceebe8",300:"bfe0dd",400:"b2d6d3",500:"a1ccc8",600:"8ebfbb",700:"7db3b0",800:"639997",900:"4d8080",A100:"d4f7fa",A200:"c3f5fa",A400:"53e3f0",A700:"00b0c0",contrastDefaultColor:"light",contrastDarkColors:["50","100","200"]}),d.definePalette("sogo-paper",{50:"fcf7f8",100:"f7f1dc",200:"ede5ca",300:"e6d8ba",400:"e2d2a3",500:"d6c48d",600:"baa870",700:"857545",800:"524517",900:"433809",1000:"000000",A100:"ffffff",A200:"eeeeee",A400:"bdbdbd",A700:"616161",contrastDefaultColor:"dark",contrastLightColors:["800","900"]}),d.theme("default").primaryPalette("sogo-blue",{default:"900","hue-1":"400","hue-2":"800","hue-3":"A700"}).accentPalette("sogo-green",{default:"500","hue-1":"A100","hue-2":"300","hue-3":"A700"}),DebugEnabled||(a.debugEnabled(!1),b.debugInfoEnabled(!1),e.disableWarnings(),d.generateThemesOnDemand(!0)),c.interceptors.push("AuthInterceptor"),c.interceptors.push("ErrorInterceptor")}function b(a,b){return{response:function(c){return c&&/^application\/json/.test(c.config.headers.Accept)&&/^[\n\r ]*<!DOCTYPE html>/.test(c.data)?(a.location.reload(!0),b.reject()):c}}}function c(a,b){return{responseError:function(c){return/^application\/json/.test(c.config.headers.Accept)&&a.$broadcast("http:Error",c),b.reject(c)}}}angular.module("SOGo.Common",["ngAnimate","ngMessages","ngSanitize","ngMaterial","mdColors"]).value("sgSettings",{isPopup:document.body.classList.contains("popup"),baseURL:function(){return ApplicationBaseURL||null},resourcesURL:function(){return ResourcesURL||null},activeUser:function(a){var b={login:UserLogin||null,identification:UserIdentification||null,email:UserEmail||null,language:UserLanguage||null,folderURL:UserFolderURL||null,isSuperUser:IsSuperUser||null,path:{calendar:UserCalendarPath||null,contacts:UserContactsPath||null,mail:UserMailPath||null,preferences:UserPreferencesPath||null,administration:IsSuperUser?UserAdministrationPath:null,help:HelpURL||null,logoff:UserLogoffPath||null}};return a?b[a]:b},minimumSearchLength:function(){return angular.isNumber(minimumSearchLength)?minimumSearchLength:2}}).constant("sgColors",{selection:["#FFFFFF","#330033","#C0C0C0","#999999","#666666","#333333","#000000","#FFCCCC","#FF6666","#FF0000","#CC0000","#990000","#660000","#330000","#FFCC99","#FF9966","#FF9900","#FF6600","#CC6600","#993300","#663300","#FFFF99","#FFFF66","#FFCC66","#FFCC33","#CC9933","#996633","#663333","#FFFFCC","#FFFF33","#FFFF00","#FFCC00","#999900","#666600","#333300","#CCCCCC","#66FF99","#33FF33","#33CC00","#009900","#006600","#003300","#99FFFF","#33FFFF","#66CCCC","#00CCCC","#339999","#336666","#003333","#CCFFFF","#66FFFF","#33CCFF","#3366FF","#3333FF","#000099","#000066","#CCCCFF","#9999FF","#6666CC","#6633FF","#6600CC","#333399","#330099","#FFCCFF","#FF99FF","#CC66CC","#CC33CC","#993399","#663366","#99FF99"]}).constant("sgConstant",{xs:"(max-width: 599px)","gt-xs":"(min-width: 600px)",sm:"(min-width: 600px) and (max-width: 959px)","gt-sm":"(min-width: 960px)",md:"(min-width: 960px) and (max-width: 1023px)","gt-md":"(min-width: 1024px)",lg:"(min-width: 1024px) and (max-width: 1279px)","gt-lg":"(min-width: 1280px)",xl:"(min-width: 1920px)",print:"print"}).config(a).factory("AuthInterceptor",b).factory("ErrorInterceptor",c),a.$inject=["$logProvider","$compileProvider","$httpProvider","$mdThemingProvider","$mdAriaProvider"],b.$inject=["$window","$q"],c.$inject=["$rootScope","$q"]}(),function(){"use strict";function a(a){c=a}function b(a,b,d){function e(a){var b=a.join("");return b}function f(a,b,c,d,e,f){if(e){var g="rgb("+e.value[0]+","+e.value[1]+","+e.value[2]+")",h="rgb("+e.contrast[0]+","+e.contrast[1]+","+e.contrast[2]+")",i={theme:c,palette:d,value:g,contrast:h,hue:f};s.insertRule(a(i),t),tLine truncated
this.$confirmation=b,b)},a.prototype.$rightsAreDirty=function(){return this.rights&&!_.isEqual(this.rights,this.$shadowRights)},a.prototype.$resetRights=function(a){var b=this;a?_.map(_.keys(this.rights),function(a){angular.isString(b.rights[a])?b.rights[a]="None":b.rights[a]=0}):this.$shadowRights&&(this.rights=angular.copy(this.$shadowRights))},a.prototype.$folders=function(b){var c=this,d=a.$q.defer(),e={type:b};return this.$$folders?d.resolve(this.$$folders):a.$$resource.userResource(this.uid).fetch(null,"foldersSearch",e).then(function(a){c.$$folders=a.folders,d.resolve(a.folders)}),d.promise},a.prototype.$omit=function(){var a={};return angular.forEach(this,function(b,c){"constructor"!=c&&"$"!=c[0]&&(a[c]=b)}),a},a.prototype.toString=function(){return"[User "+this.c_email+"]"}}(),function(){"use strict";function a(){return{restrict:"AE",scope:{},bindToController:{size:"@",email:"=sgEmail",src:"=sgSrc"},transclude:!0,template:["<md-icon ng-transclude></md-icon>",'<img class="ng-hide" ng-src="{{vm.url}}" />'].join(""),link:b,controller:"sgAvatarImageController",controllerAs:"vm"}}function b(a,b,c,d){var e=b.find("img"),f=b.find("md-icon");c.size&&(e.attr("width",c.size),e.attr("height",c.size),f.css("font-size",c.size+"px")),d.img=e,d.genericImg=f}function c(a,b,c,d,e,f){function g(a){var b=f(a,k.size,e.defaults.SOGoAlternateAvatar);c({method:"GET",url:b,cache:!0,headers:{Accept:"image/*"}}).then(function(){k.url||(k.url=b,k.urlEmail=a,i())},function(){h()})}function h(){k.url=null,k.urlEmail=null,k.img.addClass("ng-hide"),k.genericImg.removeClass("ng-hide")}function i(){k.genericImg.addClass("ng-hide"),k.img.removeClass("ng-hide")}function j(){b.addClass("sg-avatar-image--zoomable"),l=function(){b.toggleClass("sg-avatar-image--zoom")},b.on("click",l)}var k,l;k=this,a.$on("$destroy",function(){l&&b.off("click",l)}),e.ready().then(function(){a.$watch(function(){return k.email},function(a,b){a&&k.urlEmail!=a?(h(),e.defaults.SOGoGravatarEnabled&&g(a)):a||h()})}),"sg-src"in b[0].attributes&&a.$watch(function(){return k.src},function(a){a&&(k.url=a,k.urlEmail=""+k.email,j(),i())})}c.$inject=["$scope","$element","$http","$q","Preferences","Gravatar"],angular.module("SOGo.Common").directive("sgAvatarImage",a).controller("sgAvatarImageController",c)}(),function(){"use strict";function a(a,b,c,d){function e(e,g){return e.on("click",function(a){this.hasAttribute("disabled")&&a.stopImmediatePropagation()}),function(e,g,h,i){function j(a,b,c,d,e){var f;if(angular.isDefined(d)){if(f=a(d),!f.constant)throw Error("Expected constant expression for `"+c+"`, but saw `"+d+"`.");return f(b)}return e}function k(a){g[0].hasAttribute("disabled")||e.$apply(function(){var b=i.$viewValue==m?n:m;i.$setViewValue(b,a&&a.type),i.$render()})}function l(){i.$viewValue==m?g.addClass(f):g.removeClass(f)}var m=j(a,e,"sgTrueValue",h.sgTrueValue,!0),n=j(a,e,"sgFalseValue",h.sgFalseValue,!1);i=i||d.fakeNgModel(),c(g),b.expectWithText(g,"aria-label"),g.on("click",k),i.$render=l}}var f="sg-checked";return{restrict:"E",replace:!0,transclude:!0,require:"?ngModel",template:['<button class="md-button sg-checkmark" type="button">'," <md-icon>check</md-icon>"," <span ng-transclude></span","</button>"].join(""),compile:e}}angular.module("SOGo.Common").directive("sgCheckmark",a),a.$inject=["$parse","$mdAria","$mdTheming","$mdUtil"]}(),function(){"use strict";function a(){function a(a,b,c,d){d.$render=function(){a.sgColor=d.$viewValue,a.sgIconColor=contrast(d.$viewValue)}}return{restrict:"E",require:"ngModel",template:["<md-menu>",' <md-button class="md-icon-button"',' label:aria-label="Options"'," ng-style=\"{ 'background-color': sgColor }\"",' ng-click="$mdOpenMenu()"',' md-menu-origin="md-menu-origin">',' <md-icon ng-style="{ color: sgIconColor }">color_lens</md-icon>'," </md-button>",' <md-menu-content width="3">',' <md-content class="md-padding">',' <md-grid-list class="sg-color-picker" md-cols="7" md-row-height="1:1" md-gutter="0.5em">',' <md-grid-tile ng-repeat="color in ::sgColors track by $index"'," ng-style=\"::{ 'background-color': color }\"",' ng-class="::{ selected: color == sgColor }"',' ng-click="setColor($event, color)"><md-icon ng-style="::{ color: color }">check_box</md-icon></md-grid-tile>'," </md-grid-list>"," </md-content>"," </md-menu-content>","</md-menu>"].join(""),replace:!0,controller:b,link:a}}function b(a,b,c){var d=b.controller("ngModel");a.sgColors=c.selection,a.setColor=function(b,c){b&&(_.forEach(b.currentTarget.parentElement.children,function(a){a.classList.remove("selected")}),b.currentTarget.classList.add("selected")),a.sgColor=c,a.sgIconColor=contrast(c),d.$setViewValue(c)}}b.$inject=["$scope","$element","sgColors"],angular.module("SOGo.Common").directive("sgColorPicker",a)}(),function(){"use strict";function a(a){function b(b,c,d){var e=b.$watch(function(a){return a.$eval(dLine truncated
if(this.isTimeOpen){var b=this.$mdUtil.getClosest(a.target,"sg-time-pane");b||this.closeTimePane(),this.$scope.$digest()}},b.prototype.handleWindowBlur=function(){this.inputFocusedOnWindowBlur=document.activeElement===this.inputElement},b.prototype.evalAttr=function(a){this.$attrs[a]&&this.$scope.$parent.$eval(this.$attrs[a])}}(),function(){"use strict";function a(a,b){function c(a,c){return function(d,e,f,g){function h(){var a=g.$viewValue;l=g.$viewValue,c.sgToggleGridAttr&&(m=c.sgToggleGridAttr,a=_.map(g.$viewValue,c.sgToggleGridAttr)),_.forEach(o,function(b){var c=angular.element(b);_.includes(a,c.attr("value"))&&c.addClass("sg-active")})}function i(a){var b=_.findIndex(l,function(b){return m?b[m]==a:b==a});if(b<0)if(m){var c={};c[m]=a,l.push(c)}else l.push(a);else l.splice(b,1);d.$apply(function(){g.$setViewValue(l),g.$setDirty()})}var j,k,l,m,n,o=a.find("md-grid-tile");for(g=g||b.fakeNgModel(),g.$render=h,n=function(){var a=angular.element(this),b=a.attr("value");a.toggleClass("sg-active"),i(b)},k=0;k<o.length;k++)j=angular.element(o[k]),j.addClass("sg-icon-button"),j.find("figure").addClass("md-icon"),j.on("click",n)}}return{restrict:"A",require:"?ngModel",compile:c}}a.$inject=["$parse","$mdUtil"],angular.module("SOGo.Common").directive("sgToggleGrid",a)}(),function(){"use strict";function a(a,b){function c(c,d,e,f){var g=[];f.onInputBlur=function(){var c;this.inputHasFocus=!1,c=function(){var a=this.getChipBuffer().trim();this.validateModel();var b=this.ngModelCtrl.$valid;this.userInputNgModelCtrl&&(b&=this.userInputNgModelCtrl.$valid),a&&b&&(this.appendChip(a),this.resetChipBuffer())}.bind(this),this.autocompleteCtrl?(g.push(c),a.addEventListener("click",function(a){for(;g.length>0;){var c=g.splice(0,1)[0];b(function(){b(c)})}},!1)):c()}}return{link:c,require:"mdChips",restrict:"A"}}a.$inject=["$window","$timeout"],angular.module("SOGo.Common").directive("sgTransformOnBlur",a)}(),function(){"use strict";function a(){function a(a,b,c,d){console.debug("scroll shrink height = "+b.prop("offsetHeight"))}return{restrict:"C",link:a}}angular.module("SOGo.Common").directive("sgVariableScrollShrink",a)}(),String.prototype.endsWith=function(a){return this.indexOf(a,this.length-a.length)!==-1},String.prototype.startsWith=function(a,b){return b=angular.isNumber(b)?b:0,this.lastIndexOf(a,b)===b},String.prototype._base64_keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",String.prototype.base64encode=function(){for(var a,b,c,d,e,f,g,h="",i=0,j=this.utf8encode();i<j.length;)a=j.charCodeAt(i++),b=j.charCodeAt(i++),c=j.charCodeAt(i++),d=a>>2,e=(3&a)<<4|b>>4,f=(15&b)<<2|c>>6,g=63&c,isNaN(b)?f=g=64:isNaN(c)&&(g=64),h=h+this._base64_keyStr.charAt(d)+this._base64_keyStr.charAt(e)+this._base64_keyStr.charAt(f)+this._base64_keyStr.charAt(g);return h},String.prototype.base64decode=function(){for(var a,b,c,d,e,f,g,h="",i=0,j=""+this;i<j.length;)d=this._base64_keyStr.indexOf(j.charAt(i++)),e=this._base64_keyStr.indexOf(j.charAt(i++)),f=this._base64_keyStr.indexOf(j.charAt(i++)),g=this._base64_keyStr.indexOf(j.charAt(i++)),a=d<<2|e>>4,b=(15&e)<<4|f>>2,c=(3&f)<<6|g,h+=String.fromCharCode(a),64!=f&&(h+=String.fromCharCode(b)),64!=g&&(h+=String.fromCharCode(c));return h},String.prototype.md5=function(){if(this.length){var a=function(a){function b(a,b){return a<<b|a>>>32-b}function c(a,b){var c,d,e,f,g;return e=2147483648&a,f=2147483648&b,c=1073741824&a,d=1073741824&b,g=(1073741823&a)+(1073741823&b),c&d?2147483648^g^e^f:c|d?1073741824&g?3221225472^g^e^f:1073741824^g^e^f:g^e^f}function d(a,b,c){return a&b|~a&c}function e(a,b,c){return a&c|b&~c}function f(a,b,c){return a^b^c}function g(a,b,c){return b^(a|~c)}function h(a,e,f,g,h,i,j){return a=c(a,c(c(d(e,f,g),h),j)),c(b(a,i),e)}function i(a,d,f,g,h,i,j){return a=c(a,c(c(e(d,f,g),h),j)),c(b(a,i),d)}function j(a,d,e,g,h,i,j){return a=c(a,c(c(f(d,e,g),h),j)),c(b(a,i),d)}function k(a,d,e,f,h,i,j){return a=c(a,c(c(g(d,e,f),h),j)),c(b(a,i),d)}function l(a){for(var b,c=a.length,d=c+8,e=(d-d%64)/64,f=16*(e+1),g=Array(f-1),h=0,i=0;i<c;)b=(i-i%4)/4,h=i%4*8,g[b]=g[b]|a.charCodeAt(i)<<h,i++;return b=(i-i%4)/4,h=i%4*8,g[b]=g[b]|128<<h,g[f-2]=c<<3,g[f-1]=c>>>29,g}function m(a){var b,c,d="",e="";for(c=0;c<=3;c++)b=a>>>8*c&255,e="0"+b.toString(16),d+=e.substr(e.length-2,2);return d}function n(a){a=a.replace(/rn/g,"n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);d<128?b+=String.fromCharCode(d):d>127&&d<2048?(b+=String.fromCharCode(d>>6|192),b+=String.fromCharCode(63&d|128)):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128),b+=String.fromCharCode(63&d|128))}return b}var o,p,q,r,s,t,u,v,w,x=Array(),y=7,z=12,A=17,B=22,C=5,D=9,E=14,F=20,G=4,H=11,I=16,J=23,K=6,L=10,M=15,N=21;for(a=n(a),x=l(a),t=1732584193,u=4023233417,v=2562383102,w=271733878,o=0;o<x.length;o+=16)p=t,q=u,r=v,s=w,t=h(t,u,v,w,x[o+0],y,3614090360),w=h(w,t,u,v,x[o+1],z,3905402710),v=h(v,w,t,u,x[o+2],A,606105819),u=h(u,v,w,t,x[o+3],B,3250441966),t=h(t,u,v,w,x[o+4],y,4118548399),w=h(w,t,Line truncated
//# sourceMappingURL=Common.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"sources":["Common/utils.js","Common/Common.app.js","Common/mdColors.app.js","Common/decodeUri.filter.js","Common/encodeUri.filter.js","Common/ensureTarget.filter.js","Common/last.filter.js","Common/ln2br.filter.js","Common/loc.filter.js","Common/range.filter.js","Common/stripTags.filter.js","Common/url.filter.js","Common/AclController.js","Common/navController.js","Common/Acl.service.js","Common/Alarm.service.js","Common/Authentication.service.js","Common/Dialog.service.js","Common/Gravatar.service.js","Common/Resource.service.js","Common/sgFocus.service.js","Common/sgHotkeys.service.js","Common/User.service.js","Common/sgAvatarImage.directive.js","Common/sgCheckmark.directive.js","Common/sgColorPicker.directive.js","Common/sgCompile.directive.js","Common/sgDatepickerReadonlyInput.directive.js","Common/sgDraggable.directive.js","Common/sgDroppable.directive.js","Common/sgEnter.directive.js","Common/sgEscape.directive.js","Common/sgFocus.directive.js","Common/sgFolderStylesheet.directive.js","Common/sgPlaceholder.directive.js","Common/sgResetOnDisabled.directive.js","Common/sgRippleClick.directive.js","Common/sgSearch.directive.js","Common/sgSelectOnly.directive.js","Common/sgSubscribe.directive.js","Common/sgTimepicker.directive.js","Common/sgToggleGrid.directive.js","Common/sgTransformOnBlur.directive.js","Common/sgVariableScrollShrink.directive.js"],"names":["l","i","j","key","arguments","value","args","labels","clabels","length","replace","m","val","parseFloat","isNaN","hexToRgb","hex","result","exec","r","parseInt","g","b","contrast","color","c","Math","pow","guid","S4","random","toString","substring","substr","toLowerCase","configure","$logProvider","$compileProvider","$httpProvider","$mdThemingProvider","$mdAriaProvider","definePalette","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","contrastDefaultColor","contrastLightColors","contrastDarkColors","1000","theme","primaryPalette","default","hue-1","hue-2","hue-3","accentPalette","DebugEnabled","debugEnabled","debugInfoEnabled","disableWarnings","generateThemesOnDemand","interceptors","push","AuthInterceptor","$window","$q","response","test","config","headers","Accept","data","location","reload","reject","ErrorInterceptor","$rootScope","responseError","rejection","$broadcast","angular","module","isPopup","document","body","classList","contains","baseURL","ApplicationBaseURL","resourcesURL","ResourcesURL","activeUser","param","settings","login","UserLogin","identification","UserIdentification","email","UserEmail","language","UserLanguage","folderURL","UserFolderURL","isSuperUser","IsSuperUser","path","calendar","UserCalendarPath","contacts","UserContactsPath","mail","UserMailPath","preferences","UserPreferencesPath","administration","UserAdministrationPath","help","HelpURL","logoff","UserLogoffPath","minimumSearchLength","isNumber","constant","selection","xs","gt-xs","sm","gt-sm","md","gt-md","lg","gt-lg","xl","print","factory","$inject","_$mdThemingProvider","runBlock","$interpolate","$document","$log","buildCssSelectors","selectors","join","addRule","fgInterpolate","bgInterpolate","themeName","paletteName","colorArray","hueName","colorValue","colorContrast","context","palette","hue","customSheet","insertRule","index","addBorderRule","bdrInterpolate","getStyleSheet","style","head","querySelector","createElement","title","appendChild","createTextNode","sheet","fgDefault","bgDefault","bdrDefault","fgDefaultHue","bgDefaultHue","fgColor","bgColor","bdrColor","fgHue","bgHue","cssRules","deleteRule","forEach","_THEMES","_PALETTES","colors","primary","name","hues","run","decodeUri","decodeURIComponent","filter","encodeUri","encodeURIComponent","ensureTarget","$sce","element","tree","find","attr","trustAs","html","last","a","_","ln2br","text","String","undefined","loc","range","n","res","stripTags","url","indexOf","AclController","$timeout","$mdDialog","Dialog","usersWithACL","User","folder","userFilter","$query","$filter","$acl","users","closeModal","$resetUsersRights","hide","saveModal","$saveUsersRights","then","status","alert","confirmChange","user","confirmation","$confirmRights","vm","showing","message","removeUser","$removeUser","uid","addUser","$addUser","userToAdd","searchText","selectedUid","selectUser","selectAllRights","$selectAllRights","$event","target","parentNode","selectedUser","$rights","this","controller","navController","$scope","$interval","$http","$mdSidenav","$mdToast","$mdMedia","sgConstant","sgSettings","Resource","Alarm","leftIsClose","isOpen","onHttpError","event","isString","statusText","show","template","hideDelay","position","debug","resource","centerIsClose","currentDay","window","get","secondsBeforeTomorrow","toggleLeft","isGtMedium","triggerHandler","toggle","toggleRight","toggleCenter","options","save","post","state","$watch","newVal","$on","getAlarms","Acl","folderId","Settings","extend","$$resource","$User","prototype","$users","owner","_this","deferred","defer","acls","iLine truncated
{"version":3,"sources":["Common/utils.js","Common/Common.app.js","Common/mdColors.app.js","Common/decodeUri.filter.js","Common/encodeUri.filter.js","Common/ensureTarget.filter.js","Common/last.filter.js","Common/ln2br.filter.js","Common/loc.filter.js","Common/range.filter.js","Common/stripTags.filter.js","Common/url.filter.js","Common/AclController.js","Common/navController.js","Common/Acl.service.js","Common/Alarm.service.js","Common/Authentication.service.js","Common/Dialog.service.js","Common/Gravatar.service.js","Common/Resource.service.js","Common/sgFocus.service.js","Common/sgHotkeys.service.js","Common/User.service.js","Common/sgAvatarImage.directive.js","Common/sgCheckmark.directive.js","Common/sgColorPicker.directive.js","Common/sgCompile.directive.js","Common/sgDatepickerReadonlyInput.directive.js","Common/sgDraggable.directive.js","Common/sgDroppable.directive.js","Common/sgEnter.directive.js","Common/sgEscape.directive.js","Common/sgFocus.directive.js","Common/sgFolderStylesheet.directive.js","Common/sgPlaceholder.directive.js","Common/sgResetOnDisabled.directive.js","Common/sgRippleClick.directive.js","Common/sgSearch.directive.js","Common/sgSelectOnly.directive.js","Common/sgSubscribe.directive.js","Common/sgTimepicker.directive.js","Common/sgToggleGrid.directive.js","Common/sgTransformOnBlur.directive.js","Common/sgVariableScrollShrink.directive.js"],"names":["l","i","j","key","arguments","value","args","labels","clabels","length","replace","m","val","parseFloat","isNaN","hexToRgb","hex","result","exec","r","parseInt","g","b","contrast","color","c","Math","pow","guid","S4","random","toString","substring","substr","toLowerCase","configure","$logProvider","$compileProvider","$httpProvider","$mdThemingProvider","$mdAriaProvider","definePalette","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","contrastDefaultColor","contrastLightColors","contrastDarkColors","1000","theme","primaryPalette","default","hue-1","hue-2","hue-3","accentPalette","DebugEnabled","debugEnabled","debugInfoEnabled","disableWarnings","generateThemesOnDemand","interceptors","push","AuthInterceptor","$window","$q","response","test","config","headers","Accept","data","location","reload","reject","ErrorInterceptor","$rootScope","responseError","rejection","$broadcast","angular","module","isPopup","document","body","classList","contains","baseURL","ApplicationBaseURL","resourcesURL","ResourcesURL","activeUser","param","settings","login","UserLogin","identification","UserIdentification","email","UserEmail","language","UserLanguage","folderURL","UserFolderURL","isSuperUser","IsSuperUser","path","calendar","UserCalendarPath","contacts","UserContactsPath","mail","UserMailPath","preferences","UserPreferencesPath","administration","UserAdministrationPath","help","HelpURL","logoff","UserLogoffPath","minimumSearchLength","isNumber","constant","selection","xs","gt-xs","sm","gt-sm","md","gt-md","lg","gt-lg","xl","print","factory","$inject","_$mdThemingProvider","runBlock","$interpolate","$document","$log","buildCssSelectors","selectors","join","addRule","fgInterpolate","bgInterpolate","themeName","paletteName","colorArray","hueName","colorValue","colorContrast","context","palette","hue","customSheet","insertRule","index","addBorderRule","bdrInterpolate","getStyleSheet","style","head","querySelector","createElement","title","appendChild","createTextNode","sheet","fgDefault","bgDefault","bdrDefault","fgDefaultHue","bgDefaultHue","fgColor","bgColor","bdrColor","fgHue","bgHue","cssRules","deleteRule","forEach","_THEMES","_PALETTES","colors","primary","name","hues","run","decodeUri","decodeURIComponent","filter","encodeUri","encodeURIComponent","ensureTarget","$sce","element","tree","find","attr","trustAs","html","last","a","_","ln2br","text","String","undefined","loc","range","n","res","stripTags","url","indexOf","AclController","$timeout","$mdDialog","Dialog","usersWithACL","User","folder","userFilter","$query","$filter","$acl","users","closeModal","$resetUsersRights","hide","saveModal","$saveUsersRights","then","status","alert","confirmChange","user","confirmation","$confirmRights","vm","showing","message","removeUser","$removeUser","uid","addUser","$addUser","userToAdd","searchText","selectedUid","selectUser","selectAllRights","$selectAllRights","$event","target","parentNode","selectedUser","$rights","this","controller","navController","$scope","$interval","$http","$mdSidenav","$mdToast","$mdMedia","sgConstant","sgSettings","Resource","Alarm","leftIsClose","isOpen","onHttpError","event","isString","statusText","show","template","hideDelay","position","debug","resource","centerIsClose","currentDay","window","get","secondsBeforeTomorrow","toggleLeft","isGtMedium","triggerHandler","toggle","toggleRight","toggleCenter","options","save","post","state","$watch","newVal","$on","getAlarms","Acl","folderId","Settings","extend","$$resource","$User","prototype","$users","owner","_this","deferred","defer","acls","iLine truncated
@@ -65,38 +65,43 @@
template: [
'<md-toast>',
' <div class="md-toast-content">',
' <md-input-container>',
' <label style="color: white;">{{ summary }}</label>',
' <md-select ng-model="reminder">',
' <md-option value=5>',
l('5 minutes'),
' </md-option>',
' <md-option value=10>',
l('10 minutes'),
' </md-option>',
' <md-option value=15>',
l('15 minutes'),
' </md-option>',
' <md-option value=30>',
l('30 minutes'),
' </md-option>',
' <md-option value=45>',
l('45 minutes'),
' </md-option>',
' <md-option value=60>',
l('1 hour'),
' </md-option>',
' <md-option value=1440>',
l('1 day'),
' </md-option>',
' </md-select>',
' </md-input-container>',
' <md-button ng-click="cancel()">',
l('Cancel'),
' </md-button>',
' <md-button ng-click="ok()">',
l('Ok'),
' </md-button>',
' <div layout="column" layout="start end">',
' <p class="sg-padded--top">{{ summary }}</p>',
' <div layout="row" layout-align="start center">',
' <md-input-container>',
' <label style="color: white">{{ "Snooze for " | loc }}</label>',
' <md-select ng-model="reminder">',
' <md-option value="5">',
l('5 minutes'),
' </md-option>',
' <md-option value="10">',
l('10 minutes'),
' </md-option>',
' <md-option value="15">',
l('15 minutes'),
' </md-option>',
' <md-option value="30">',
l('30 minutes'),
' </md-option>',
' <md-option value="45">',
l('45 minutes'),
' </md-option>',
' <md-option value="60">',
l('1 hour'),
' </md-option>',
' <md-option value="1440">',
l('1 day'),
' </md-option>',
' </md-select>',
' </md-input-container>',
' <md-button ng-click="cancel()">',
l('Cancel'),
' </md-button>',
' <md-button ng-click="ok()">',
l('Ok'),
' </md-button>',
' </div>',
' </div>',
' </div>',
'</md-toast>'
].join(''),
@@ -109,9 +114,9 @@
/**
* @ngInject
*/
AlarmController.$inject = ['scope', '$sanitize', '$mdToast', 'url'];
function AlarmController(scope, $sanitize, $mdToast, url) {
scope.summary = $sanitize(data.summary);
AlarmController.$inject = ['scope', '$mdToast', 'url'];
function AlarmController(scope, $mdToast, url) {
scope.summary = data.summary;
scope.reminder = '10';
scope.cancel = function() {
$mdToast.hide();
@@ -243,7 +243,7 @@
response: function(response) {
// When expecting JSON but receiving HTML, assume session has expired and reload page
if (response && /^application\/json/.test(response.config.headers.Accept) &&
/^<!DOCTYPE html>/.test(response.data)) {
/^[\n\r ]*<!DOCTYPE html>/.test(response.data)) {
$window.location.reload(true);
return $q.reject();
}
@@ -49,7 +49,9 @@
*/
Resource.prototype.userResource = function(uid) {
var path = _.compact(this._activeUser.folderURL.split('/'));
path.splice(path.length - 1, 1, escape(uid));
if (uid)
path.splice(path.length - 1, 1, escape(uid));
return new Resource(this._http, this._q, '/' + path.join('/'), this._activeUser);
};
+1 -1
View File
@@ -1,2 +1,2 @@
!function(){"use strict";function a(a,h){a.state("app",{url:"/addressbooks","abstract":!0,views:{addressbooks:{templateUrl:"UIxContactFoldersView",controller:"AddressBooksController",controllerAs:"app"}},resolve:{stateAddressbooks:b}}).state("app.addressbook",{url:"/:addressbookId",views:{addressbook:{templateUrl:"addressbook",controller:"AddressBookController",controllerAs:"addressbook"}},resolve:{stateAddressbook:c}}).state("app.addressbook.new",{url:"/{contactType:(?:card|list)}/new",views:{card:{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}},resolve:{stateCard:d}}).state("app.addressbook.card",{url:"/:cardId","abstract":!0,views:{card:{template:"<ui-view/>"}},resolve:{stateCard:e},onEnter:f,onExit:g}).state("app.addressbook.card.view",{url:"/view",views:{"card@app.addressbook":{templateUrl:"UIxContactViewTemplate",controller:"CardController",controllerAs:"editor"}}}).state("app.addressbook.card.editor",{url:"/edit",views:{"card@app.addressbook":{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}}}),h.otherwise("/addressbooks/personal")}function b(a){return a.$findAll(window.contactFolders)}function c(a,b,c,d){var e=_.find(d.$findAll(),function(a){return a.id==c.addressbookId});return e?(delete e.selectedCard,e.$reload(),e):a.reject("Addressbook "+c.addressbookId+" not found")}function d(a,b,c){var d="v"+a.contactType,e=new c({pid:a.addressbookId,c_component:d});return b.selectedCard=!0,e}function e(a,b,c){var d;return(d=_.find(c.$cards,function(a){return a.id==b.cardId}))?d.$reload():void a.go("app.addressbook")}function f(a,b){b.selectedCard=a.cardId}function g(a){delete c.selectedCard}function h(a,b,c){a.$on("$stateChangeError",function(a,d,e,f,g,h){b.error(h),c.go("app.addressbook",{addressbookId:"personal"})}),a.$on("$routeChangeError",function(a,c,d,e){b.error(a,c,d,e)})}angular.module("SOGo.ContactsUI",["ngCookies","ui.router","angularFileUpload","ck","SOGo.Common","SOGo.PreferencesUI","SOGo.MailerUI"]).config(a).run(h),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["AddressBook"],c.$inject=["$q","$state","$stateParams","AddressBook"],d.$inject=["$stateParams","stateAddressbook","Card"],e.$inject=["$state","$stateParams","stateAddressbook"],f.$inject=["$stateParams","stateAddressbook"],g.$inject=["stateAddressbook"],h.$inject=["$rootScope","$log","$state"]}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q){function r(a){a.push(o.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:H})),a.push(o.createHotkey({key:l("key_create_card"),description:l("Create a new address book card"),callback:angular.bind(M,u,"card")})),a.push(o.createHotkey({key:l("key_create_list"),description:l("Create a new list"),callback:angular.bind(M,u,"list")})),a.push(o.createHotkey({key:"space",description:l("Toggle item"),callback:t})),a.push(o.createHotkey({key:"shift+space",description:l("Toggle range of items"),callback:t})),a.push(o.createHotkey({key:"up",description:l("View next item"),callback:w})),a.push(o.createHotkey({key:"down",description:l("View previous item"),callback:x})),a.push(o.createHotkey({key:"shift+up",description:l("Add next item to selection"),callback:y})),a.push(o.createHotkey({key:"shift+down",description:l("Add previous item to selection"),callback:z})),a.push(o.createHotkey({key:"backspace",description:l("Delete selected card or address book"),callback:A})),_.forEach(a,function(a){o.registerHotkey(a)})}function s(a){d.go("app.addressbook.card.view",{cardId:a.id})}function t(a,b){var c,d,e,f=M.selectedFolder;if(b||(b=f.$selectedCard()),b.selected=!b.selected,M.mode.multiple+=b.selected?1:-1,a.shiftKey&&f.$selectedCount()>1){for(c=f.idsMap[b.id],d=c-2;d>=0&&!f.$cards[d].selected;)d--;if(0>d)for(d=c+2;d<f.getLength()&&!f.$cards[d].selected;)d++;if(d>=0&&d<f.getLength())for(e=Math.min(c,d);e<=Math.max(c,d);e++)f.$cards[e].selected=!0}a.preventDefault(),a.stopPropagation()}function u(a){d.go("app.addressbook.new",{contactType:a})}function v(){_.forEach(M.selectedFolder.$cards,function(a){a.selected=!1}),M.mode.multiple=0}function w(a){var b=M.selectedFolder.$selectedCardIndex();return angular.isDefined(b)?(b--,M.selectedFolder.$topIndex>0&&M.selectedFolder.$topIndex--):(b=M.selectedFolder.$cards.length()-1,M.selectedFolder.$topIndex=M.selectedFolder.getLength()),b>-1&&s(M.selectedFolder.$cards[b]),a.preventDefault(),b}function x(a){var b=M.selectedFolder.$selectedCardIndex();return angular.isDefined(b)?(b++,M.selectedFolder.$topIndex<M.selectedFolder.$cards.length&&M.selectedFolder.$topIndex++):b=0,b<M.selectedFolder.$cards.length?s(M.selectedFolder.$cards[b]):b=-1,a.preventDefault(),b}function y(a){var b;M.selectedFolder.hasSelectedCard()&&(b=w(a),b>=0&&t(a,M.selectedFolder.$cards[b]))}function z(a){var b;M.selectedFolder.hasSelectedCard()&&(b=x(a),b>=0&&t(a,M.selectedFolder.$cards[b]))}function A(a){var b=M.selectedFolder.$selectedCards();_.size(b)>0&&m.confirm(l("Line truncated
!function(){"use strict";function a(a,h){a.state("app",{url:"/addressbooks",abstract:!0,views:{addressbooks:{templateUrl:"UIxContactFoldersView",controller:"AddressBooksController",controllerAs:"app"}},resolve:{stateAddressbooks:b}}).state("app.addressbook",{url:"/:addressbookId",views:{addressbook:{templateUrl:"addressbook",controller:"AddressBookController",controllerAs:"addressbook"}},resolve:{stateAddressbook:c}}).state("app.addressbook.new",{url:"/{contactType:(?:card|list)}/new",views:{card:{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}},resolve:{stateCard:d}}).state("app.addressbook.card",{url:"/:cardId",abstract:!0,views:{card:{template:"<ui-view/>"}},resolve:{stateCard:e},onEnter:f,onExit:g}).state("app.addressbook.card.view",{url:"/view",views:{"card@app.addressbook":{templateUrl:"UIxContactViewTemplate",controller:"CardController",controllerAs:"editor"}}}).state("app.addressbook.card.editor",{url:"/edit",views:{"card@app.addressbook":{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}}}),h.otherwise("/addressbooks/personal")}function b(a){return a.$findAll(window.contactFolders)}function c(a,b,c,d){var e=_.find(d.$findAll(),function(a){return a.id==c.addressbookId});return e?(delete e.selectedCard,e.$reload(),e):a.reject("Addressbook "+c.addressbookId+" not found")}function d(a,b,c){var d="v"+a.contactType,e=new c({pid:a.addressbookId,c_component:d});return b.selectedCard=!0,e}function e(a,b,c){var d;return(d=_.find(c.$cards,function(a){return a.id==b.cardId}))?d.$reload():void a.go("app.addressbook")}function f(a,b){b.selectedCard=a.cardId}function g(a){delete c.selectedCard}function h(a,b,c){a.$on("$stateChangeError",function(a,d,e,f,g,h){b.error(h),c.go("app.addressbook",{addressbookId:"personal"})}),a.$on("$routeChangeError",function(a,c,d,e){b.error(a,c,d,e)})}angular.module("SOGo.ContactsUI",["ngCookies","ui.router","angularFileUpload","ck","SOGo.Common","SOGo.PreferencesUI","SOGo.MailerUI"]).config(a).run(h),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["AddressBook"],c.$inject=["$q","$state","$stateParams","AddressBook"],d.$inject=["$stateParams","stateAddressbook","Card"],e.$inject=["$state","$stateParams","stateAddressbook"],f.$inject=["$stateParams","stateAddressbook"],g.$inject=["stateAddressbook"],h.$inject=["$rootScope","$log","$state"]}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q){function r(a){a.push(o.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:H})),a.push(o.createHotkey({key:l("key_create_card"),description:l("Create a new address book card"),callback:angular.bind(M,u,"card")})),a.push(o.createHotkey({key:l("key_create_list"),description:l("Create a new list"),callback:angular.bind(M,u,"list")})),a.push(o.createHotkey({key:"space",description:l("Toggle item"),callback:t})),a.push(o.createHotkey({key:"shift+space",description:l("Toggle range of items"),callback:t})),a.push(o.createHotkey({key:"up",description:l("View next item"),callback:w})),a.push(o.createHotkey({key:"down",description:l("View previous item"),callback:x})),a.push(o.createHotkey({key:"shift+up",description:l("Add next item to selection"),callback:y})),a.push(o.createHotkey({key:"shift+down",description:l("Add previous item to selection"),callback:z})),a.push(o.createHotkey({key:"backspace",description:l("Delete selected card or address book"),callback:A})),_.forEach(a,function(a){o.registerHotkey(a)})}function s(a){d.go("app.addressbook.card.view",{cardId:a.id})}function t(a,b){var c,d,e,f=M.selectedFolder;if(b||(b=f.$selectedCard()),b.selected=!b.selected,M.mode.multiple+=b.selected?1:-1,a.shiftKey&&f.$selectedCount()>1){for(c=f.idsMap[b.id],d=c-2;d>=0&&!f.$cards[d].selected;)d--;if(d<0)for(d=c+2;d<f.getLength()&&!f.$cards[d].selected;)d++;if(d>=0&&d<f.getLength())for(e=Math.min(c,d);e<=Math.max(c,d);e++)f.$cards[e].selected=!0}a.preventDefault(),a.stopPropagation()}function u(a){d.go("app.addressbook.new",{contactType:a})}function v(){_.forEach(M.selectedFolder.$cards,function(a){a.selected=!1}),M.mode.multiple=0}function w(a){var b=M.selectedFolder.$selectedCardIndex();return angular.isDefined(b)?(b--,M.selectedFolder.$topIndex>0&&M.selectedFolder.$topIndex--):(b=M.selectedFolder.$cards.length()-1,M.selectedFolder.$topIndex=M.selectedFolder.getLength()),b>-1&&s(M.selectedFolder.$cards[b]),a.preventDefault(),b}function x(a){var b=M.selectedFolder.$selectedCardIndex();return angular.isDefined(b)?(b++,M.selectedFolder.$topIndex<M.selectedFolder.$cards.length&&M.selectedFolder.$topIndex++):b=0,b<M.selectedFolder.$cards.length?s(M.selectedFolder.$cards[b]):b=-1,a.preventDefault(),b}function y(a){var b;M.selectedFolder.hasSelectedCard()&&(b=w(a),b>=0&&t(a,M.selectedFolder.$cards[b]))}function z(a){var b;M.selectedFolder.hasSelectedCard()&&(b=x(a),b>=0&&t(a,M.selectedFolder.$cards[b]))}function A(a){var b=M.selectedFolder.$selectedCards();_.size(b)>0&&m.confirm(l("WarnLine truncated
//# sourceMappingURL=Contacts.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"sources":["Contacts/Contacts.app.js","Contacts/AddressBookController.js","Contacts/AddressBooksController.js","Contacts/CardController.js","Contacts/sgAddress.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","abstract","views","addressbooks","templateUrl","controller","controllerAs","resolve","stateAddressbooks","addressbook","stateAddressbook","card","stateCard","stateNewCard","template","onEnter","onEnterCard","onExit","onExitCard","card@app.addressbook","otherwise","AddressBook","$findAll","window","contactFolders","$q","$state","$stateParams","_","find","id","addressbookId","selectedCard","$reload","reject","Card","tag","contactType","pid","c_component","$cards","cardObject","cardId","go","stateMailbox","runBlock","$rootScope","$log","$on","event","toState","toParams","fromState","fromParams","error","current","previous","rejection","angular","module","config","run","$inject","AddressBookController","$scope","$window","$timeout","$mdDialog","$mdToast","Account","focus","Dialog","Settings","sgHotkeys","_registerHotkeys","keys","push","createHotkey","key","l","description","callback","searchMode","bind","vm","newComponent","toggleCardSelection","_nextCard","_previousCard","_addNextCardToSelection","_addPreviousCardToSelection","confirmDeleteSelectedCards","forEach","registerHotkey","selectCard","$event","selectedIndex","nextSelectedIndex","i","folder","selectedFolder","$selectedCard","selected","mode","multiple","shiftKey","$selectedCount","idsMap","getLength","Math","min","max","preventDefault","stopPropagation","type","unselectCards","index","$selectedCardIndex","isDefined","$topIndex","length","hasSelectedCard","selectedCards","$selectedCards","size","confirm","ok","then","$deleteCards","_selectedCardsOperation","operation","dstId","srcFolder","allCards","cards","ids","clearCardView","promise","success","filter","$isCard","show","simple","content","position","hideDelay","$copyCards","$moveCards","map","indexOf","copySelectedCards","moveSelectedCards","selectAll","sort","field","$filter","sortedBy","$query","search","cancelSearch","newMessage","recipients","accounts","account","o","$getMailboxes","mailboxes","$newMessage","message","extend","editable","to","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","locals","stateAccount","stateMessage","newMessageWithRecipient","recipient","fn","newMessageWithSelectedCards","promises","$isList","expandable","refs","ref","email","$shortFormat","c_mail","all","uniq","this","hotkeys","service","deregisterHotkey","AddressBooksController","$mdMedia","$mdSidenav","FileUploader","sgConstant","User","confirmDelete","select","params","editMode","value","close","newAddressbook","prompt","name","isEditable","isRemote","owner","UserLogin","$add","edit","originalAddressbook","$omit","revertEditing","save","$rename","data","status","alert","isSubscription","$delete","response","statusText","importCards","CardsImportDialogController","scope","filterByExtension","item","isTextFile","test","join","uploader","ApplicationBaseURL","autoUpload","queueLimit","filters","onSuccessItem","headers","msg","hide","imported","onErrorItem","showLinks","LinksDialogController","urls","when","$reloadAll","showProperties","PropertiesDialogController","srcAddressBook","saveProperties","$save","init","cancel","share","$acl","$users","usersWithACL","users","subscribeToFolder","addressbookData","console","debug","$subscribe","isDroppableFolder","dstFolder","isOwned","acls","objectCreator","dragSelectedCards","activeUser","CardController","sgSettings","currentFolder","transformCategory","input","isString","addOrgUnit","$addOrgUnit","addBirthday","birthday","Date","addScreenName","$addScreenName","addEmail","$addEmail","addPhone","$addPhone","addUrl","$addUrl","addAddress","$addAddress","userFilter","excludedCards","minimumSearchLength","dry","excludeLists","form","$valid","copy","reset","$reset","$setPristine","isNew","$fullname","toggleRawSource","showRawSource","rawSource","$$resource","post","allEmailTypes","$EMAIL_TYPES","allTelTypes","$TEL_TYPES","allUrlTypes","$URL_TYPES","allAddressTypes","$ADDRESS_TYPES","categories","userFilterResults","sgAddress","restrict","addressLines","lines","locality_region","street","street2","locality","region","country","postalcode","directive"],"mappings":"CAGA,WACE,YAUA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,OACLC,IAAK,gBACLC,YAAU,EACVC,OACEC,cACEC,YAAa,wBACbC,WAAY,yBACZC,aAAc,QAGlBC,SACEC,kBAAmBA,KAGtBT,MAAM,mBACLC,IAAK,kBACLE,OACEO,aACEL,YAAa,cACbC,WAAY,wBACZC,aAAc,gBAGlBC,SACEG,iBAAkBA,KAGrBX,MAAM,uBACLC,IAAK,mCACLE,OACES,MACEP,YAAa,2BACbC,WAAY,iBACZC,aAAc,WAGlBC,SACEK,UAAWC,KAGdd,MAAM,wBACLC,IAAK,WACLC,YAAU,EACVC,OACES,MACEG,SAAU,eAGdP,SACEK,UAAWA,GAEbG,QAASC,EACTC,OAAQC,IAETnB,MAAM,6BACLC,IAAK,QACLE,OACEiB,wBACEf,YAAa,yBACbC,WAAY,iBACZC,aAAc,aAInBP,MAAM,+BACLC,IAAK,QACLE,OACEiB,wBACEf,YAAa,2BACbC,WAAY,iBACZC,aAAc,aAMtBR,EAAmBsB,UAAU,0BAO/B,QAASZ,GAAkBa,GACzB,MAAOA,GAAYCLine truncated
{"version":3,"sources":["Contacts/Contacts.app.js","Contacts/AddressBookController.js","Contacts/AddressBooksController.js","Contacts/CardController.js","Contacts/sgAddress.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","abstract","views","addressbooks","templateUrl","controller","controllerAs","resolve","stateAddressbooks","addressbook","stateAddressbook","card","stateCard","stateNewCard","template","onEnter","onEnterCard","onExit","onExitCard","card@app.addressbook","otherwise","AddressBook","$findAll","window","contactFolders","$q","$state","$stateParams","_","find","id","addressbookId","selectedCard","$reload","reject","Card","tag","contactType","pid","c_component","$cards","cardObject","cardId","go","stateMailbox","runBlock","$rootScope","$log","$on","event","toState","toParams","fromState","fromParams","error","current","previous","rejection","angular","module","config","run","$inject","AddressBookController","$scope","$window","$timeout","$mdDialog","$mdToast","Account","focus","Dialog","Settings","sgHotkeys","_registerHotkeys","keys","push","createHotkey","key","l","description","callback","searchMode","bind","vm","newComponent","toggleCardSelection","_nextCard","_previousCard","_addNextCardToSelection","_addPreviousCardToSelection","confirmDeleteSelectedCards","forEach","registerHotkey","selectCard","$event","selectedIndex","nextSelectedIndex","i","folder","selectedFolder","$selectedCard","selected","mode","multiple","shiftKey","$selectedCount","idsMap","getLength","Math","min","max","preventDefault","stopPropagation","type","unselectCards","index","$selectedCardIndex","isDefined","$topIndex","length","hasSelectedCard","selectedCards","$selectedCards","size","confirm","ok","then","$deleteCards","_selectedCardsOperation","operation","dstId","srcFolder","allCards","cards","ids","clearCardView","promise","success","filter","$isCard","show","simple","content","position","hideDelay","$copyCards","$moveCards","map","indexOf","copySelectedCards","moveSelectedCards","selectAll","sort","field","$filter","sortedBy","$query","search","cancelSearch","newMessage","recipients","accounts","account","o","$getMailboxes","mailboxes","$newMessage","message","extend","editable","to","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","locals","stateAccount","stateMessage","newMessageWithRecipient","recipient","fn","newMessageWithSelectedCards","promises","$isList","expandable","refs","ref","email","$shortFormat","c_mail","all","uniq","this","hotkeys","service","deregisterHotkey","AddressBooksController","$mdMedia","$mdSidenav","FileUploader","sgConstant","User","confirmDelete","select","params","editMode","value","close","newAddressbook","prompt","name","isEditable","isRemote","owner","UserLogin","$add","edit","originalAddressbook","$omit","revertEditing","save","$rename","data","status","alert","isSubscription","$delete","catch","response","statusText","importCards","CardsImportDialogController","scope","filterByExtension","item","isTextFile","test","join","uploader","ApplicationBaseURL","autoUpload","queueLimit","filters","onSuccessItem","headers","msg","hide","imported","onErrorItem","showLinks","LinksDialogController","urls","when","$reloadAll","showProperties","PropertiesDialogController","srcAddressBook","saveProperties","$save","init","cancel","share","$acl","$users","usersWithACL","users","subscribeToFolder","addressbookData","console","debug","$subscribe","isDroppableFolder","dstFolder","isOwned","acls","objectCreator","dragSelectedCards","activeUser","CardController","sgSettings","currentFolder","transformCategory","input","isString","addOrgUnit","$addOrgUnit","addBirthday","birthday","Date","addScreenName","$addScreenName","addEmail","$addEmail","addPhone","$addPhone","addUrl","$addUrl","addAddress","$addAddress","userFilter","excludedCards","minimumSearchLength","dry","excludeLists","form","$valid","copy","reset","$reset","$setPristine","isNew","$fullname","toggleRawSource","showRawSource","rawSource","$$resource","post","allEmailTypes","$EMAIL_TYPES","allTelTypes","$TEL_TYPES","allUrlTypes","$URL_TYPES","allAddressTypes","$ADDRESS_TYPES","categories","userFilterResults","sgAddress","restrict","addressLines","lines","locality_region","street","street2","locality","region","country","postalcode","directive"],"mappings":"CAGA,WACE,YAUA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,OACLC,IAAK,gBACLC,UAAU,EACVC,OACEC,cACEC,YAAa,wBACbC,WAAY,yBACZC,aAAc,QAGlBC,SACEC,kBAAmBA,KAGtBT,MAAM,mBACLC,IAAK,kBACLE,OACEO,aACEL,YAAa,cACbC,WAAY,wBACZC,aAAc,gBAGlBC,SACEG,iBAAkBA,KAGrBX,MAAM,uBACLC,IAAK,mCACLE,OACES,MACEP,YAAa,2BACbC,WAAY,iBACZC,aAAc,WAGlBC,SACEK,UAAWC,KAGdd,MAAM,wBACLC,IAAK,WACLC,UAAU,EACVC,OACES,MACEG,SAAU,eAGdP,SACEK,UAAWA,GAEbG,QAASC,EACTC,OAAQC,IAETnB,MAAM,6BACLC,IAAK,QACLE,OACEiB,wBACEf,YAAa,yBACbC,WAAY,iBACZC,aAAc,aAInBP,MAAM,+BACLC,IAAK,QACLE,OACEiB,wBACEf,YAAa,2BACbC,WAAY,iBACZC,aAAc,aAMtBR,EAAmBsB,UAAU,0BAO/B,QAASZ,GAAkBa,GACzB,MAALine truncated
@@ -1,2 +1,2 @@
!function(){"use strict";function a(b){if("function"!=typeof b.then)if(this.init(b),this.name&&!this.id){var c=a.$$resource.create("createFolder",this.name);this.$unwrap(c),this.acls={objectEditor:1,objectCreator:1,objectEraser:1}}else this.id&&(this.$acl=new a.$$Acl("Contacts/"+this.id));else this.$unwrap(b)}a.$factory=["$q","$timeout","$log","sgSettings","sgAddressBook_PRELOAD","Resource","Card","Acl","Preferences",function(b,c,d,e,f,g,h,i,j){return angular.extend(a,{$q:b,$timeout:c,$log:d,PRELOAD:f,$$resource:new g(e.activeUser("folderURL")+"Contacts",e.activeUser()),$Card:h,$$Acl:i,$Preferences:j,$query:{search:"name_or_address",value:"",sort:"c_cn",asc:1},activeUser:e.activeUser(),selectedFolder:null,$refreshTimeout:null}),j.ready().then(function(){j.settings.Contact.SortingState&&(a.$query.sort=j.settings.Contact.SortingState[0],a.$query.asc=parseInt(j.settings.Contact.SortingState[1]))}),a}];try{angular.module("SOGo.ContactsUI")}catch(b){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").constant("sgAddressBook_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("AddressBook",a.$factory),a.$filterAll=function(b,c,d){var e={search:b};return b?(angular.isUndefined(a.$cards)&&(a.$cards=[]),angular.extend(e,c),a.$$resource.fetch(null,"allContactSearch",e).then(function(c){var e,f,g,h=function(a){return this.id==a.id};for(e=d?_.filter(c.contacts,function(a){return _.isUndefined(_.find(d,_.bind(h,a)))}):c.contacts,g=a.$cards.length-1;g>=0;g--)f=a.$cards[g],_.isUndefined(_.find(e,_.bind(h,f)))&&a.$cards.splice(g,1);return _.forEach(e,function(c,d){if(_.isUndefined(_.find(a.$cards,_.bind(h,c)))){var e=new a.$Card(_.mapKeys(c,function(a,b){return b.toLowerCase()}),b);a.$cards.splice(d,0,e)}}),a.$log.debug(a.$cards),a.$cards})):(a.$cards=[],a.$q.when(a.$cards))},a.$add=function(a){var b,c,d;b=a.isSubscription?this.$subscriptions:this.$addressbooks,c=_.find(b,function(b){return"personal"==a.id||"personal"!=b.id&&1===b.name.localeCompare(a.name)}),d=c?_.indexOf(_.map(b,"id"),c.id):1,b.splice(d,0,a)},a.$findAll=function(b){var c=this;return b&&(this.$addressbooks=[],this.$subscriptions=[],this.$remotes=[],angular.forEach(b,function(b,d){var e=new a(b);e.isRemote?c.$remotes.push(e):e.isSubscription?c.$subscriptions.push(e):c.$addressbooks.push(e)})),_.union(this.$addressbooks,this.$subscriptions,this.$remotes)},a.$subscribe=function(b,c){var d=this;return a.$$resource.userResource(b).fetch(c,"subscribe").then(function(b){var c=new a(b);return _.isUndefined(_.find(d.$subscriptions,function(a){return a.id==b.id}))&&a.$add(c),c})},a.$reloadAll=function(){var b=this;return a.$$resource.fetch("addressbooksList").then(function(c){_.forEach(c.addressbooks,function(c){var d,e;d=c.isRemote?b.$remotes:c.owner!=a.activeUser.login?b.$subscriptions:b.$addressbooks,e=_.find(d,function(a){return a.id==c.id}),e&&e.init(c)})})},a.prototype.init=function(b,c){var d=this;this.$$cards||(this.$$cards=[]),this.idsMap={},this.$cards=[],angular.forEach(b,function(a,b){"headers"!=b&&"cards"!=b&&(d[b]=a)}),this.isOwned=a.activeUser.isSuperUser||this.owner==a.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=a.activeUser.login},a.prototype.$id=function(){return this.id?a.$q.when(this.id):this.$futureAddressBookData.then(function(a){return a.id})},a.prototype.getLength=function(){return this.$cards.length},a.prototype.getItemAtIndex=function(a){var b;return!this.$isLoading&&a>=0&&a<this.$cards.length&&(b=this.$cards[a],this.$lastVisibleIndex=Math.max(0,a-3),this.$loadCard(b))?b:null},a.prototype.$loadCard=function(b){var c,d,e,f,g=b.id,h=this.idsMap[g],i=this.$cards.length,j=!1;if(angular.isUndefined(this.ids)&&b.id)j=!0;else if(angular.isDefined(h)&&h<this.$cards.length&&(b.$loaded!=a.$Card.STATUS.NOT_LOADED&&(j=!0),c=Math.min(h+a.PRELOAD.LOOKAHEAD,i-1),this.$cards[c].$loaded!=a.$Card.STATUS.NOT_LOADED?(d=Math.max(h-a.PRELOAD.LOOKAHEAD,0),this.$cards[d].$loaded!=a.$Card.STATUS.LOADED&&(c=h,h=Math.max(h-a.PRELOAD.SIZE,0))):c=Math.min(h+a.PRELOAD.SIZE,i-1),this.$cards[h].$loaded==a.$Card.STATUS.NOT_LOADED||this.$cards[c].$loaded==a.$Card.STATUS.NOT_LOADED)){for(e=[];c>h&&i>h;h++)this.$cards[h].$loaded!=a.$Card.STATUS.NOT_LOADED?c++:(e.push(this.$cards[h].id),this.$cards[h].$loaded=a.$Card.STATUS.LOADING);a.$log.debug("Loading Ids "+e.join(" ")+" ("+e.length+" cards)"),e.length>0&&(f=a.$$resource.post(this.id,"headers",{ids:e}),this.$unwrapHeaders(f))}return j},a.prototype.hasSelectedCard=function(){return angular.isDefined(this.selectedCard)},a.prototype.isSelectedCard=function(a){return this.hasSelectedCard()&&this.selectedCard==a},a.prototype.$selectedCard=function(){var a=this;return _.find(this.$cards,function(b){return b.id==a.selectedCard})},a.prototype.$selectedCardIndex=function(){return _.indexOf(_.map(this.$cards,"id"),this.selectedCard)},a.prototype.$selectedCards=function(){return _.filter(this.$cards,function(a){return a.selected})},a.prototype.$selectedCount=function(){Line truncated
!function(){"use strict";function a(b){if("function"!=typeof b.then)if(this.init(b),this.name&&!this.id){var c=a.$$resource.create("createFolder",this.name);this.$unwrap(c),this.acls={objectEditor:1,objectCreator:1,objectEraser:1}}else this.id&&(this.$acl=new a.$$Acl("Contacts/"+this.id));else this.$unwrap(b)}a.$factory=["$q","$timeout","$log","sgSettings","sgAddressBook_PRELOAD","Resource","Card","Acl","Preferences",function(b,c,d,e,f,g,h,i,j){return angular.extend(a,{$q:b,$timeout:c,$log:d,PRELOAD:f,$$resource:new g(e.activeUser("folderURL")+"Contacts",e.activeUser()),$Card:h,$$Acl:i,$Preferences:j,$query:{search:"name_or_address",value:"",sort:"c_cn",asc:1},activeUser:e.activeUser(),selectedFolder:null,$refreshTimeout:null}),j.ready().then(function(){j.settings.Contact.SortingState&&(a.$query.sort=j.settings.Contact.SortingState[0],a.$query.asc=parseInt(j.settings.Contact.SortingState[1]))}),a}];try{angular.module("SOGo.ContactsUI")}catch(a){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").constant("sgAddressBook_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("AddressBook",a.$factory),a.$filterAll=function(b,c,d){var e={search:b};return b?(angular.isUndefined(a.$cards)&&(a.$cards=[]),angular.extend(e,c),a.$$resource.fetch(null,"allContactSearch",e).then(function(c){var e,f,g,h=function(a){return this.id==a.id};for(e=d?_.filter(c.contacts,function(a){return _.isUndefined(_.find(d,_.bind(h,a)))}):c.contacts,g=a.$cards.length-1;g>=0;g--)f=a.$cards[g],_.isUndefined(_.find(e,_.bind(h,f)))&&a.$cards.splice(g,1);return _.forEach(e,function(c,d){if(_.isUndefined(_.find(a.$cards,_.bind(h,c)))){var e=new a.$Card(_.mapKeys(c,function(a,b){return b.toLowerCase()}),b);a.$cards.splice(d,0,e)}}),a.$log.debug(a.$cards),a.$cards})):(a.$cards=[],a.$q.when(a.$cards))},a.$add=function(a){var b,c,d;b=a.isSubscription?this.$subscriptions:this.$addressbooks,c=_.find(b,function(b){return"personal"==a.id||"personal"!=b.id&&1===b.name.localeCompare(a.name)}),d=c?_.indexOf(_.map(b,"id"),c.id):1,b.splice(d,0,a)},a.$findAll=function(b){var c=this;return b&&(this.$addressbooks=[],this.$subscriptions=[],this.$remotes=[],angular.forEach(b,function(b,d){var e=new a(b);e.isRemote?c.$remotes.push(e):e.isSubscription?c.$subscriptions.push(e):c.$addressbooks.push(e)})),_.union(this.$addressbooks,this.$subscriptions,this.$remotes)},a.$subscribe=function(b,c){var d=this;return a.$$resource.userResource(b).fetch(c,"subscribe").then(function(b){var c=new a(b);return _.isUndefined(_.find(d.$subscriptions,function(a){return a.id==b.id}))&&a.$add(c),c})},a.$reloadAll=function(){var b=this;return a.$$resource.fetch("addressbooksList").then(function(c){_.forEach(c.addressbooks,function(c){var d,e;d=c.isRemote?b.$remotes:c.owner!=a.activeUser.login?b.$subscriptions:b.$addressbooks,e=_.find(d,function(a){return a.id==c.id}),e&&e.init(c)})})},a.prototype.init=function(b,c){var d=this;this.$$cards||(this.$$cards=[]),this.idsMap={},this.$cards=[],angular.forEach(b,function(a,b){"headers"!=b&&"cards"!=b&&(d[b]=a)}),this.isOwned=a.activeUser.isSuperUser||this.owner==a.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=a.activeUser.login},a.prototype.$id=function(){return this.id?a.$q.when(this.id):this.$futureAddressBookData.then(function(a){return a.id})},a.prototype.getLength=function(){return this.$cards.length},a.prototype.getItemAtIndex=function(a){var b;return!this.$isLoading&&a>=0&&a<this.$cards.length&&(b=this.$cards[a],this.$lastVisibleIndex=Math.max(0,a-3),this.$loadCard(b))?b:null},a.prototype.$loadCard=function(b){var c,d,e,f,g=b.id,h=this.idsMap[g],i=this.$cards.length,j=!1;if(angular.isUndefined(this.ids)&&b.id)j=!0;else if(angular.isDefined(h)&&h<this.$cards.length&&(b.$loaded!=a.$Card.STATUS.NOT_LOADED&&(j=!0),c=Math.min(h+a.PRELOAD.LOOKAHEAD,i-1),this.$cards[c].$loaded!=a.$Card.STATUS.NOT_LOADED?(d=Math.max(h-a.PRELOAD.LOOKAHEAD,0),this.$cards[d].$loaded!=a.$Card.STATUS.LOADED&&(c=h,h=Math.max(h-a.PRELOAD.SIZE,0))):c=Math.min(h+a.PRELOAD.SIZE,i-1),this.$cards[h].$loaded==a.$Card.STATUS.NOT_LOADED||this.$cards[c].$loaded==a.$Card.STATUS.NOT_LOADED)){for(e=[];h<c&&h<i;h++)this.$cards[h].$loaded!=a.$Card.STATUS.NOT_LOADED?c++:(e.push(this.$cards[h].id),this.$cards[h].$loaded=a.$Card.STATUS.LOADING);a.$log.debug("Loading Ids "+e.join(" ")+" ("+e.length+" cards)"),e.length>0&&(f=a.$$resource.post(this.id,"headers",{ids:e}),this.$unwrapHeaders(f))}return j},a.prototype.hasSelectedCard=function(){return angular.isDefined(this.selectedCard)},a.prototype.isSelectedCard=function(a){return this.hasSelectedCard()&&this.selectedCard==a},a.prototype.$selectedCard=function(){var a=this;return _.find(this.$cards,function(b){return b.id==a.selectedCard})},a.prototype.$selectedCardIndex=function(){return _.indexOf(_.map(this.$cards,"id"),this.selectedCard)},a.prototype.$selectedCards=function(){return _.filter(this.$cards,function(a){return a.selected})},a.prototype.$selectedCount=function(){Line truncated
//# sourceMappingURL=Contacts.services.js.map
@@ -1 +1 @@
{"version":3,"sources":["Contacts/AddressBook.service.js","Contacts/Card.service.js"],"names":["AddressBook","futureAddressBookData","then","this","init","name","id","newAddressBookData","$$resource","create","$unwrap","acls","objectEditor","objectCreator","objectEraser","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","AddressBook_PRELOAD","Resource","Card","Acl","Preferences","angular","extend","PRELOAD","activeUser","$Card","$Preferences","$query","search","value","sort","asc","selectedFolder","$refreshTimeout","ready","settings","Contact","SortingState","parseInt","module","e","constant","LOOKAHEAD","SIZE","factory","$filterAll","options","excludedCards","params","isUndefined","$cards","fetch","response","results","card","index","compareIds","data","_","filter","contacts","find","bind","length","splice","forEach","mapKeys","key","toLowerCase","debug","when","$add","addressbook","list","sibling","i","isSubscription","$subscriptions","$addressbooks","o","localeCompare","indexOf","map","$findAll","_this","$remotes","isRemote","push","union","$subscribe","uid","path","userResource","addressbookData","$reloadAll","addressbooks","group","owner","login","prototype","$$cards","idsMap","isOwned","isSuperUser","$id","$futureAddressBookData","getLength","getItemAtIndex","$isLoading","$lastVisibleIndex","Math","max","$loadCard","endIndex","ids","futureHeadersData","cardId","startIndex","loaded","isDefined","$loaded","STATUS","NOT_LOADED","min","LOADED","LOADING","join","post","$unwrapHeaders","hasSelectedCard","selectedCard","isSelectedCard","$selectedCard","$selectedCardIndex","$selectedCards","selected","$selectedCount","count","$startRefreshTimeout","cancel","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","$reload","timeInterval","$filter","query","dry","copy","partial","addressbookId","futureData","fields","idFieldIndex","cards","headers","invokeMap","pid","oldIndex","removedCards","findIndex","zipObject","$rename","$save","$delete","promise","d","defer","remove","resolve","reject","$_deleteCards","forEachRight","selectedIndex","$deleteCards","uids","$copyCards","folder","$moveCards","save","$omit","exportCards","selectedOnly","selectedUIDs","selectedCards","download","type","$topIndex","reduce","isError","isObject","j","cardHeaders","futureCardData","newCardData","newguid","isNew","$TEL_TYPES","$EMAIL_TYPES","$URL_TYPES","$ADDRESS_TYPES","Card_STATUS","SOGoContactsCategories","$categories","SOGoAlternateAvatar","$alternateAvatar","DELAYED_LOADING","DELAYED_MS","$find","$unwrapCollection","filterCategories","re","RegExp","category","collection","$futureCardData","refs","categories","c_screenname","$$fullname","$fullname","$$email","$preferredEmail","$$image","image","avatar","no_404","url","isgroup","c_component","$avatarIcon","$isList","notes","note","email","emails","reference","birthday","dlp","$mdDateLocaleProvider","parseDate","$birthday","formatDate","c_name","empty","action","ref","$shadowData","attribute","selectedIDs","names","fn","c_cn","html","c_givenname","nickname","c_sn","c_org","$description","description","title","role","orgUnits","unit","test","c_mail","$shortFormat","fullname","$isCard","condition","expandable","$addOrgUnit","orgUnit","$addEmail","$addScreenName","screenName","$addPhone","phones","$addUrl","urls","$addAddress","postoffice","street","street2","locality","region","country","postalcode","addresses","$addMember","explode","$reset","deep","format","toString","desc"],"mappings":"CAEA,WACE,YAOA,SAASA,GAAYC,GAEnB,GAA0C,kBAA/BA,GAAsBC,KAE/B,GADAC,KAAKC,KAAKH,GACNE,KAAKE,OAASF,KAAKG,GAAI,CAEzB,GAAIC,GAAqBP,EAAYQ,WAAWC,OAAO,eAAgBN,KAAKE,KAC5EF,MAAKO,QAAQH,GACbJ,KAAKQ,MAAQC,aAAgB,EAAGC,cAAiB,EAAGC,aAAgB,OAE7DX,MAAKG,KACZH,KAAKY,KAAO,GAAIf,GAAYgB,MAAM,YAAcb,KAAKG,SAKvDH,MAAKO,QAAQT,GASjBD,EAAYiB,UAAY,KAAM,WAAY,OAAQ,aAAc,wBAAyB,WAAY,OAAQ,MAAO,cAAe,SAASC,EAAIC,EAAUC,EAAMC,EAAUC,EAAqBC,EAAUC,EAAMC,EAAKC,GAsBlN,MArBAC,SAAQC,OAAO5B,GACbkB,GAAIA,EACJC,SAAUA,EACVC,KAAMA,EACNS,QAASP,EACTd,WAAY,GAAIe,GAASF,EAASS,WAAW,aAAe,WAAYT,EAASS,cACjFC,MAAOP,EACPR,MAAOS,EACPO,aAAcN,EACdO,QAASC,OAAQ,kBAAmBC,MAAO,GAAIC,KAAM,OAAQC,IAAK,GAClEP,WAAYT,EAASS,aACrBQ,eAAgB,KAChBC,gBAAiB,OAGnBb,EAAYc,QAAQtC,KAAK,WACnBwB,EAAYe,SAASC,QAAQC,eAC/B3C,EAAYiC,OAAOG,KAAOV,EAAYe,SAASC,QAAQC,aAAa,GACpE3C,EAAYiC,OAAOI,IAAMO,SAASlB,EAAYe,SAASC,QAAQC,aAAa,OAGzE3C,GAOT,KACE2B,QAAQkB,OAAO,mBAEjB,MAAMC,GACJnB,QAAQkB,OAAO,mBAAoB,cAAe,uBAEpDlB,QAAQkB,OAAO,mBACZE,SAAS,yBACRC,UAAW,GACXC,KAAM,MAEPC,QAAQ,cAAelD,EAAYiB,UAUtCjB,EAAYmD,WAAa,SAASjB,EAAQkB,EAASC,GACjD,GAAIC,IAAWpB,OAAQA,EAEvB,OAAKA,IAKDP,QAAQ4B,YAAYvD,EAAYwD,UAElCxD,EAAYwD,WAGd7B,QAAQC,OAAO0B,EAAQF,GAEhBpD,EAAYQ,WAAWiD,MAAM,KAAM,mBAAoBH,GAAQpD,KAAK,SAASwD,GAClF,GAAIC,GAASC,EAAMC,EACfC,EAAa,SAASC,GACpB,MAAO5D,MAAKG,IAAMyD,EAAKzD,GAY7B,KAREqD,EAFEN,EAEQW,EAAEC,OAAOP,EAASQ,SAAU,SAASH,GAC7C,MAAOC,GAAET,YAAYS,EAAEG,KAAKd,EAAeW,EAAEI,KAAKN,EAAYC,OAItDL,EAASQ,SAGhBL,EAAQ7D,EAAYwD,OAAOa,OAAS,EAAGR,GAAS,EAAGA,IACtDD,EAAO5D,EAAYwD,OAAOK,GACtBG,EAAET,YAAYS,EAAEG,KAAKR,ELine truncated
{"version":3,"sources":["Contacts/AddressBook.service.js","Contacts/Card.service.js"],"names":["AddressBook","futureAddressBookData","then","this","init","name","id","newAddressBookData","$$resource","create","$unwrap","acls","objectEditor","objectCreator","objectEraser","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","AddressBook_PRELOAD","Resource","Card","Acl","Preferences","angular","extend","PRELOAD","activeUser","$Card","$Preferences","$query","search","value","sort","asc","selectedFolder","$refreshTimeout","ready","settings","Contact","SortingState","parseInt","module","e","constant","LOOKAHEAD","SIZE","factory","$filterAll","options","excludedCards","params","isUndefined","$cards","fetch","response","results","card","index","compareIds","data","_","filter","contacts","find","bind","length","splice","forEach","mapKeys","key","toLowerCase","debug","when","$add","addressbook","list","sibling","i","isSubscription","$subscriptions","$addressbooks","o","localeCompare","indexOf","map","$findAll","_this","$remotes","isRemote","push","union","$subscribe","uid","path","userResource","addressbookData","$reloadAll","addressbooks","group","owner","login","prototype","$$cards","idsMap","isOwned","isSuperUser","$id","$futureAddressBookData","getLength","getItemAtIndex","$isLoading","$lastVisibleIndex","Math","max","$loadCard","endIndex","ids","futureHeadersData","cardId","startIndex","loaded","isDefined","$loaded","STATUS","NOT_LOADED","min","LOADED","LOADING","join","post","$unwrapHeaders","hasSelectedCard","selectedCard","isSelectedCard","$selectedCard","$selectedCardIndex","$selectedCards","selected","$selectedCount","count","$startRefreshTimeout","cancel","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","$reload","timeInterval","$filter","query","dry","copy","partial","addressbookId","futureData","fields","idFieldIndex","cards","headers","invokeMap","pid","oldIndex","removedCards","findIndex","zipObject","$rename","$save","$delete","promise","d","defer","remove","resolve","reject","$_deleteCards","forEachRight","selectedIndex","$deleteCards","uids","$copyCards","folder","$moveCards","save","$omit","exportCards","selectedOnly","selectedUIDs","selectedCards","download","type","$topIndex","reduce","isError","isObject","j","cardHeaders","futureCardData","newCardData","newguid","isNew","$TEL_TYPES","$EMAIL_TYPES","$URL_TYPES","$ADDRESS_TYPES","Card_STATUS","SOGoContactsCategories","$categories","SOGoAlternateAvatar","$alternateAvatar","DELAYED_LOADING","DELAYED_MS","$find","$unwrapCollection","filterCategories","re","RegExp","category","collection","$futureCardData","refs","categories","c_screenname","$$fullname","$fullname","$$email","$preferredEmail","$$image","image","avatar","no_404","url","isgroup","c_component","$avatarIcon","$isList","notes","note","email","emails","reference","birthday","dlp","$mdDateLocaleProvider","parseDate","$birthday","formatDate","c_name","empty","action","ref","$shadowData","attribute","export","selectedIDs","names","fn","c_cn","html","c_givenname","nickname","c_sn","c_org","$description","description","title","role","orgUnits","unit","test","c_mail","$shortFormat","fullname","$isCard","condition","expandable","$addOrgUnit","orgUnit","$addEmail","$addScreenName","screenName","$addPhone","phones","$addUrl","urls","$addAddress","postoffice","street","street2","locality","region","country","postalcode","addresses","$addMember","explode","$reset","deep","format","toString","desc"],"mappings":"CAEA,WACE,YAOA,SAASA,GAAYC,GAEnB,GAA0C,kBAA/BA,GAAsBC,KAE/B,GADAC,KAAKC,KAAKH,GACNE,KAAKE,OAASF,KAAKG,GAAI,CAEzB,GAAIC,GAAqBP,EAAYQ,WAAWC,OAAO,eAAgBN,KAAKE,KAC5EF,MAAKO,QAAQH,GACbJ,KAAKQ,MAAQC,aAAgB,EAAGC,cAAiB,EAAGC,aAAgB,OAE7DX,MAAKG,KACZH,KAAKY,KAAO,GAAIf,GAAYgB,MAAM,YAAcb,KAAKG,SAKvDH,MAAKO,QAAQT,GASjBD,EAAYiB,UAAY,KAAM,WAAY,OAAQ,aAAc,wBAAyB,WAAY,OAAQ,MAAO,cAAe,SAASC,EAAIC,EAAUC,EAAMC,EAAUC,EAAqBC,EAAUC,EAAMC,EAAKC,GAsBlN,MArBAC,SAAQC,OAAO5B,GACbkB,GAAIA,EACJC,SAAUA,EACVC,KAAMA,EACNS,QAASP,EACTd,WAAY,GAAIe,GAASF,EAASS,WAAW,aAAe,WAAYT,EAASS,cACjFC,MAAOP,EACPR,MAAOS,EACPO,aAAcN,EACdO,QAASC,OAAQ,kBAAmBC,MAAO,GAAIC,KAAM,OAAQC,IAAK,GAClEP,WAAYT,EAASS,aACrBQ,eAAgB,KAChBC,gBAAiB,OAGnBb,EAAYc,QAAQtC,KAAK,WACnBwB,EAAYe,SAASC,QAAQC,eAC/B3C,EAAYiC,OAAOG,KAAOV,EAAYe,SAASC,QAAQC,aAAa,GACpE3C,EAAYiC,OAAOI,IAAMO,SAASlB,EAAYe,SAASC,QAAQC,aAAa,OAGzE3C,GAOT,KACE2B,QAAQkB,OAAO,mBAEjB,MAAMC,GACJnB,QAAQkB,OAAO,mBAAoB,cAAe,uBAEpDlB,QAAQkB,OAAO,mBACZE,SAAS,yBACRC,UAAW,GACXC,KAAM,MAEPC,QAAQ,cAAelD,EAAYiB,UAUtCjB,EAAYmD,WAAa,SAASjB,EAAQkB,EAASC,GACjD,GAAIC,IAAWpB,OAAQA,EAEvB,OAAKA,IAKDP,QAAQ4B,YAAYvD,EAAYwD,UAElCxD,EAAYwD,WAGd7B,QAAQC,OAAO0B,EAAQF,GAEhBpD,EAAYQ,WAAWiD,MAAM,KAAM,mBAAoBH,GAAQpD,KAAK,SAASwD,GAClF,GAAIC,GAASC,EAAMC,EACfC,EAAa,SAASC,GACpB,MAAO5D,MAAKG,IAAMyD,EAAKzD,GAY7B,KAREqD,EAFEN,EAEQW,EAAEC,OAAOP,EAASQ,SAAU,SAASH,GAC7C,MAAOC,GAAET,YAAYS,EAAEG,KAAKd,EAAeW,EAAEI,KAAKN,EAAYC,OAItDL,EAASQ,SAGhBL,EAAQ7D,EAAYwD,OAAOa,OAAS,EAAGR,GAAS,EAAGA,IACtDD,EAAO5D,EAAYwD,OAAOK,GACtBG,EAAET,YAAYS,EAAELine truncated
+1 -1
View File
@@ -1,2 +1,2 @@
!function(){"use strict";function a(a,h){a.state("mail",{url:"/Mail","abstract":!0,views:{message:{template:"<ui-view/>"}},resolve:{stateAccounts:b}}).state("mail.account",{url:"/:accountId","abstract":!0,template:'<ui-view id="account"/>',resolve:{stateAccount:c}}).state("mail.account.mailbox",{url:"/:mailboxId","abstract":!0,template:'<ui-view id="mailbox"/>',resolve:{stateMailbox:d}}).state("mail.account.mailbox.newMessage",{url:"/new",views:{"message@":{template:"<ui-view/>",controller:"MessageEditorControllerPopup"}},resolve:{stateMessage:e}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{"message@":{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMessage:f}}).state("mail.account.mailbox.message.edit",{url:"/edit",views:{"message@":{templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor"}},resolve:{stateContent:g}}).state("mail.account.mailbox.message.action",{url:"/{actionName:(?:reply|replyall|forward)}",views:{message:{templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor"}}}),h.otherwise("/Mail/0/folderINBOX/new")}function b(a,b){var c,d=[];return window&&window.opener&&window.opener.$mailboxController?(c=window.opener.$mailboxController.accounts,a.when(c)):(c=b.$findAll(),angular.forEach(c,function(a,b){var c=a.$getMailboxes();d.push(c.then(function(b){return a}))}),a.all(d))}function c(a,b){return _.find(b,function(b){return b.id==a.accountId})}function d(a,b,c){var d,e=c(a.mailboxId);return(d=function(a){var b=_.find(a,function(a){return a.path==e});return b||angular.forEach(a,function(a){!b&&a.children&&a.children.length>0&&(b=d(a.children))}),b})(b.$mailboxes)}function e(a){return a.$newMessage()}function f(a,b,c,d,e,f){var g,h;return window&&window.opener&&window.opener.$messageController&&window.opener.$messageController.message.uid==parseInt(c.messageId)?(h=new f(e.$account.id,e,window.opener.$messageController.message.$omit({privateAttributes:!0})),b.when(h)):(g={uid:c.messageId.toString()},h=new f(e.$account.id,e,g),h.$reload())}function g(a){return a.$editableContent()}function h(a,b,c){b.$on("$stateChangeError",function(b,d,e,f,g,h){c.error(h),a.close()}),b.$on("$routeChangeError",function(a,b,d,e){c.error(a,b,d,e)})}function i(a,b,c,d){b.show({hasBackdrop:!1,disableParentScroll:!1,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccounts:c,stateMessage:d,stateRecipients:[]}})["finally"](function(){a.close()})}angular.module("SOGo.MailerUI",["ngCookies","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","SOGo.SchedulerUI","ngAnimate","SOGo.PreferencesUI"]).config(a).run(h).controller("MessageEditorControllerPopup",i),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["$q","Account"],c.$inject=["$stateParams","stateAccounts"],d.$inject=["$stateParams","stateAccount","decodeUriFilter"],e.$inject=["stateAccount"],f.$inject=["encodeUriFilter","$q","$stateParams","$state","stateMailbox","Message"],g.$inject=["stateMessage"],h.$inject=["$window","$rootScope","$log"],i.$inject=["$window","$mdDialog","stateAccounts","stateMessage"]}();
!function(){"use strict";function a(a,h){a.state("mail",{url:"/Mail",abstract:!0,views:{message:{template:"<ui-view/>"}},resolve:{stateAccounts:b}}).state("mail.account",{url:"/:accountId",abstract:!0,template:'<ui-view id="account"/>',resolve:{stateAccount:c}}).state("mail.account.mailbox",{url:"/:mailboxId",abstract:!0,template:'<ui-view id="mailbox"/>',resolve:{stateMailbox:d}}).state("mail.account.mailbox.newMessage",{url:"/new",views:{"message@":{template:"<ui-view/>",controller:"MessageEditorControllerPopup"}},resolve:{stateMessage:e}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{"message@":{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMessage:f}}).state("mail.account.mailbox.message.edit",{url:"/edit",views:{"message@":{templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor"}},resolve:{stateContent:g}}).state("mail.account.mailbox.message.action",{url:"/{actionName:(?:reply|replyall|forward)}",views:{message:{templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor"}}}),h.otherwise("/Mail/0/folderINBOX/new")}function b(a,b){var c,d=[];return window&&window.opener&&window.opener.$mailboxController?(c=window.opener.$mailboxController.accounts,a.when(c)):(c=b.$findAll(),angular.forEach(c,function(a,b){var c=a.$getMailboxes();d.push(c.then(function(b){return a}))}),a.all(d))}function c(a,b){return _.find(b,function(b){return b.id==a.accountId})}function d(a,b,c){var d,e=c(a.mailboxId);return(d=function(a){var b=_.find(a,function(a){return a.path==e});return b||angular.forEach(a,function(a){!b&&a.children&&a.children.length>0&&(b=d(a.children))}),b})(b.$mailboxes)}function e(a){return a.$newMessage()}function f(a,b,c,d,e,f){var g,h;return window&&window.opener&&window.opener.$messageController&&window.opener.$messageController.message.uid==parseInt(c.messageId)?(h=new f(e.$account.id,e,window.opener.$messageController.message.$omit({privateAttributes:!0})),b.when(h)):(g={uid:c.messageId.toString()},h=new f(e.$account.id,e,g),h.$reload())}function g(a){return a.$editableContent()}function h(a,b,c){b.$on("$stateChangeError",function(b,d,e,f,g,h){c.error(h),a.close()}),b.$on("$routeChangeError",function(a,b,d,e){c.error(a,b,d,e)})}function i(a,b,c,d){b.show({hasBackdrop:!1,disableParentScroll:!1,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccounts:c,stateMessage:d,stateRecipients:[]}}).finally(function(){a.close()})}angular.module("SOGo.MailerUI",["ngCookies","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","SOGo.SchedulerUI","ngAnimate","SOGo.PreferencesUI"]).config(a).run(h).controller("MessageEditorControllerPopup",i),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["$q","Account"],c.$inject=["$stateParams","stateAccounts"],d.$inject=["$stateParams","stateAccount","decodeUriFilter"],e.$inject=["stateAccount"],f.$inject=["encodeUriFilter","$q","$stateParams","$state","stateMailbox","Message"],g.$inject=["stateMessage"],h.$inject=["$window","$rootScope","$log"],i.$inject=["$window","$mdDialog","stateAccounts","stateMessage"]}();
//# sourceMappingURL=Mailer.app.popup.js.map
@@ -1 +1 @@
{"version":3,"sources":["Mailer/Mailer.popup.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","abstract","views","message","template","resolve","stateAccounts","stateAccount","stateMailbox","message@","controller","stateMessage","stateNewMessage","templateUrl","controllerAs","stateContent","otherwise","$q","Account","accounts","promises","window","opener","$mailboxController","when","$findAll","angular","forEach","account","i","mailboxes","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","decodeUriFilter","_find","mailboxId","mailbox","o","path","children","length","$mailboxes","$newMessage","encodeUriFilter","$state","Message","data","$messageController","uid","parseInt","messageId","$account","$omit","privateAttributes","toString","$reload","$editableContent","runBlock","$window","$rootScope","$log","$on","event","toState","toParams","fromState","fromParams","error","close","current","previous","rejection","MessageEditorControllerPopup","$mdDialog","show","hasBackdrop","disableParentScroll","clickOutsideToClose","escapeToClose","locals","stateRecipients","module","config","run","$inject"],"mappings":"CAGA,WACE,YAWA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,QACLC,IAAK,QACLC,YAAU,EACVC,OACEC,SACEC,SAAU,eAGdC,SACEC,cAAeA,KAGlBP,MAAM,gBACLC,IAAK,cACLC,YAAU,EACVG,SAAU,0BACVC,SACEE,aAAcA,KAGjBR,MAAM,wBACLC,IAAK,cACLC,YAAU,EACVG,SAAU,0BACVC,SACEG,aAAcA,KAGjBT,MAAM,mCACLC,IAAK,OACLE,OACEO,YACEL,SAAU,aACVM,WAAY,iCAGhBL,SACEM,aAAcC,KAGjBb,MAAM,gCACLC,IAAK,cACLE,OACEO,YACEI,YAAa,sBACbH,WAAY,oBACZI,aAAc,WAGlBT,SACEM,aAAcA,KAGjBZ,MAAM,qCACLC,IAAK,QACLE,OACEO,YACEI,YAAa,gBACbH,WAAY,0BACZI,aAAc,WAGlBT,SACEU,aAAcA,KAGjBhB,MAAM,uCACLC,IAAK,2CACLE,OACEC,SACEU,YAAa,gBACbH,WAAY,0BACZI,aAAc,aAMtBhB,EAAmBkB,UAAU,2BAO/B,QAASV,GAAcW,EAAIC,GACzB,GAAIC,GAAUC,IAEd,OAAIC,SACAA,OAAOC,QACPD,OAAOC,OAAOC,oBAEhBJ,EAAWE,OAAOC,OAAOC,mBAAmBJ,SACrCF,EAAGO,KAAKL,KAGfA,EAAWD,EAAQO,WAEnBC,QAAQC,QAAQR,EAAU,SAASS,EAASC,GAC1C,GAAIC,GAAYF,EAAQG,eACxBX,GAASY,KAAKF,EAAUG,KAAK,SAASC,GACpC,MAAON,QAGJX,EAAGkB,IAAIf,IAQlB,QAASb,GAAa6B,EAAc9B,GAClC,MAAO+B,GAAEC,KAAKhC,EAAe,SAASsB,GACpC,MAAOA,GAAQW,IAAMH,EAAaI,YAQtC,QAAShC,GAAa4B,EAAc7B,EAAckC,GAChD,GACIC,GADAC,EAAYF,EAAgBL,EAAaO,UAgB7C,QAbAD,EAAQ,SAASZ,GACf,GAAIc,GAAUP,EAAEC,KAAKR,EAAW,SAASe,GACvC,MAAOA,GAAEC,MAAQH,GASnB,OAPKC,IACHlB,QAAQC,QAAQG,EAAW,SAASe,IAC7BD,GAAWC,EAAEE,UAAYF,EAAEE,SAASC,OAAS,IAChDJ,EAAUF,EAAMG,EAAEE,aAIjBH,IAEIrC,EAAa0C,YAO5B,QAASrC,GAAgBL,GACvB,MAAOA,GAAa2C,cAOtB,QAASvC,GAAawC,EAAiBlC,EAAImB,EAAcgB,EAAQ5C,EAAc6C,GAC7E,GAAIC,GAAMnD,CAEV,OAAIkB,SACAA,OAAOC,QACPD,OAAOC,OAAOiC,oBACdlC,OAAOC,OAAOiC,mBAAmBpD,QAAQqD,KAAOC,SAASrB,EAAasB,YAExEvD,EAAU,GAAIkD,GAAQ7C,EAAamD,SAASpB,GACtB/B,EACAa,OAAOC,OAAOiC,mBAAmBpD,QAAQyD,OAAOC,mBAAmB,KAClF5C,EAAGO,KAAKrB,KAIfmD,GAASE,IAAKpB,EAAasB,UAAUI,YACrC3D,EAAU,GAAIkD,GAAQ7C,EAAamD,SAASpB,GAAI/B,EAAc8C,GACvDnD,EAAQ4D,WAQnB,QAAShD,GAAaJ,GACpB,MAAOA,GAAaqD,mBAOtB,QAASC,GAASC,EAASC,EAAYC,GACrCD,EAAWE,IAAI,oBAAqB,SAASC,EAAOC,EAASC,EAAUC,EAAWC,EAAYC,GAC5FP,EAAKO,MAAMA,GACXT,EAAQU,UAEVT,EAAWE,IAAI,oBAAqB,SAASC,EAAOO,EAASC,EAAUC,GACrEX,EAAKO,MAAML,EAAOO,EAASC,EAAUC,KAQzC,QAASC,GAA6Bd,EAASe,EAAW3E,EAAeK,GACvEsE,EACGC,MACCC,aAAa,EACbC,qBAAqB,EACrBC,qBAAqB,EACrBC,eAAe,EACfzE,YAAa,gBACbH,WAAY,0BACZI,aAAc,SACdyE,QACEjF,cAAeA,EACfK,aAAcA,EACd6E,sBAZNP,WAeW,WACPf,EAAQU,UArOdlD,QAAQ+D,OAAO,iBAAkB,YAAa,YAAa,KAAM,oBAAqB,cAAe,kBAAmB,mBAAoB,YAAa,uBACtJC,OAAO9F,GACP+F,IAAI1B,GACJvD,WAAW,+BAAgCsE,GAK9CpF,EAAUgG,SAAW,iBAAkB,sBAuFvCtF,EAAcsF,SAAW,KAAM,WA2B/BrF,EAAaqF,SAAW,eAAgB,iBAUxCpF,EAAaoF,SAAW,eAAgB,eAAgB,mBAwBxDhF,EAAgBgF,SAAW,gBAQ3BjF,EAAaiF,SAAW,kBAAmB,KAAM,eAAgB,SAAU,eAAgB,WAyB3F7E,EAAa6E,SAAW,gBAQxB3B,EAAS2B,SAAW,UAAW,aAAc,QAc7CZ,EAA6BY,SAAW,UAAW,YAAa,gBAAiB","file":"Mailer.app.popup.js","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.MailerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.MailerUI', ['ngCookies', 'ui.router', 'ck', 'angularFileUpload', 'SOGo.Common', 'SOGo.ContactsUI', 'SOGo.SchedulerUI', 'ngAnimate', 'SOGo.PreferencesUI'])\n .config(configure)\n .run(runBlock)\n .controller('MessageEditorControllerPopup', MessageEditorControllerPopup);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('mail', {\n url: '/Mail',\n abstract: true,\n views: {\n message: {\n template: '<ui-view/>'\n }\n },\n resolve: {\n stateAccounts: stateAccounts\n }\n })\n .state('mail.account', {\n url: '/:accountId',\n abstract: true,\n template: '<ui-view id=\"account\"/>',\n resolve: {\n stateAccount: stateAccount\n }\n })\n .state('mail.account.mailbox', {\n url: '/:mailboxId',\n abstract: true,\n template: '<ui-vieLine truncated
{"version":3,"sources":["Mailer/Mailer.popup.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","abstract","views","message","template","resolve","stateAccounts","stateAccount","stateMailbox","message@","controller","stateMessage","stateNewMessage","templateUrl","controllerAs","stateContent","otherwise","$q","Account","accounts","promises","window","opener","$mailboxController","when","$findAll","angular","forEach","account","i","mailboxes","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","decodeUriFilter","_find","mailboxId","mailbox","o","path","children","length","$mailboxes","$newMessage","encodeUriFilter","$state","Message","data","$messageController","uid","parseInt","messageId","$account","$omit","privateAttributes","toString","$reload","$editableContent","runBlock","$window","$rootScope","$log","$on","event","toState","toParams","fromState","fromParams","error","close","current","previous","rejection","MessageEditorControllerPopup","$mdDialog","show","hasBackdrop","disableParentScroll","clickOutsideToClose","escapeToClose","locals","stateRecipients","finally","module","config","run","$inject"],"mappings":"CAGA,WACE,YAWA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,QACLC,IAAK,QACLC,UAAU,EACVC,OACEC,SACEC,SAAU,eAGdC,SACEC,cAAeA,KAGlBP,MAAM,gBACLC,IAAK,cACLC,UAAU,EACVG,SAAU,0BACVC,SACEE,aAAcA,KAGjBR,MAAM,wBACLC,IAAK,cACLC,UAAU,EACVG,SAAU,0BACVC,SACEG,aAAcA,KAGjBT,MAAM,mCACLC,IAAK,OACLE,OACEO,YACEL,SAAU,aACVM,WAAY,iCAGhBL,SACEM,aAAcC,KAGjBb,MAAM,gCACLC,IAAK,cACLE,OACEO,YACEI,YAAa,sBACbH,WAAY,oBACZI,aAAc,WAGlBT,SACEM,aAAcA,KAGjBZ,MAAM,qCACLC,IAAK,QACLE,OACEO,YACEI,YAAa,gBACbH,WAAY,0BACZI,aAAc,WAGlBT,SACEU,aAAcA,KAGjBhB,MAAM,uCACLC,IAAK,2CACLE,OACEC,SACEU,YAAa,gBACbH,WAAY,0BACZI,aAAc,aAMtBhB,EAAmBkB,UAAU,2BAO/B,QAASV,GAAcW,EAAIC,GACzB,GAAIC,GAAUC,IAEd,OAAIC,SACAA,OAAOC,QACPD,OAAOC,OAAOC,oBAEhBJ,EAAWE,OAAOC,OAAOC,mBAAmBJ,SACrCF,EAAGO,KAAKL,KAGfA,EAAWD,EAAQO,WAEnBC,QAAQC,QAAQR,EAAU,SAASS,EAASC,GAC1C,GAAIC,GAAYF,EAAQG,eACxBX,GAASY,KAAKF,EAAUG,KAAK,SAASC,GACpC,MAAON,QAGJX,EAAGkB,IAAIf,IAQlB,QAASb,GAAa6B,EAAc9B,GAClC,MAAO+B,GAAEC,KAAKhC,EAAe,SAASsB,GACpC,MAAOA,GAAQW,IAAMH,EAAaI,YAQtC,QAAShC,GAAa4B,EAAc7B,EAAckC,GAChD,GACIC,GADAC,EAAYF,EAAgBL,EAAaO,UAgB7C,QAbAD,EAAQ,SAASZ,GACf,GAAIc,GAAUP,EAAEC,KAAKR,EAAW,SAASe,GACvC,MAAOA,GAAEC,MAAQH,GASnB,OAPKC,IACHlB,QAAQC,QAAQG,EAAW,SAASe,IAC7BD,GAAWC,EAAEE,UAAYF,EAAEE,SAASC,OAAS,IAChDJ,EAAUF,EAAMG,EAAEE,aAIjBH,IAEIrC,EAAa0C,YAO5B,QAASrC,GAAgBL,GACvB,MAAOA,GAAa2C,cAOtB,QAASvC,GAAawC,EAAiBlC,EAAImB,EAAcgB,EAAQ5C,EAAc6C,GAC7E,GAAIC,GAAMnD,CAEV,OAAIkB,SACAA,OAAOC,QACPD,OAAOC,OAAOiC,oBACdlC,OAAOC,OAAOiC,mBAAmBpD,QAAQqD,KAAOC,SAASrB,EAAasB,YAExEvD,EAAU,GAAIkD,GAAQ7C,EAAamD,SAASpB,GACtB/B,EACAa,OAAOC,OAAOiC,mBAAmBpD,QAAQyD,OAAOC,mBAAmB,KAClF5C,EAAGO,KAAKrB,KAIfmD,GAASE,IAAKpB,EAAasB,UAAUI,YACrC3D,EAAU,GAAIkD,GAAQ7C,EAAamD,SAASpB,GAAI/B,EAAc8C,GACvDnD,EAAQ4D,WAQnB,QAAShD,GAAaJ,GACpB,MAAOA,GAAaqD,mBAOtB,QAASC,GAASC,EAASC,EAAYC,GACrCD,EAAWE,IAAI,oBAAqB,SAASC,EAAOC,EAASC,EAAUC,EAAWC,EAAYC,GAC5FP,EAAKO,MAAMA,GACXT,EAAQU,UAEVT,EAAWE,IAAI,oBAAqB,SAASC,EAAOO,EAASC,EAAUC,GACrEX,EAAKO,MAAML,EAAOO,EAASC,EAAUC,KAQzC,QAASC,GAA6Bd,EAASe,EAAW3E,EAAeK,GACvEsE,EACGC,MACCC,aAAa,EACbC,qBAAqB,EACrBC,qBAAqB,EACrBC,eAAe,EACfzE,YAAa,gBACbH,WAAY,0BACZI,aAAc,SACdyE,QACEjF,cAAeA,EACfK,aAAcA,EACd6E,sBAGHC,QAAQ,WACPvB,EAAQU,UArOdlD,QAAQgE,OAAO,iBAAkB,YAAa,YAAa,KAAM,oBAAqB,cAAe,kBAAmB,mBAAoB,YAAa,uBACtJC,OAAO/F,GACPgG,IAAI3B,GACJvD,WAAW,+BAAgCsE,GAK9CpF,EAAUiG,SAAW,iBAAkB,sBAuFvCvF,EAAcuF,SAAW,KAAM,WA2B/BtF,EAAasF,SAAW,eAAgB,iBAUxCrF,EAAaqF,SAAW,eAAgB,eAAgB,mBAwBxDjF,EAAgBiF,SAAW,gBAQ3BlF,EAAakF,SAAW,kBAAmB,KAAM,eAAgB,SAAU,eAAgB,WAyB3F9E,EAAa8E,SAAW,gBAQxB5B,EAAS4B,SAAW,UAAW,aAAc,QAc7Cb,EAA6Ba,SAAW,UAAW,YAAa,gBAAiB","file":"Mailer.app.popup.js","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.MailerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.MailerUI', ['ngCookies', 'ui.router', 'ck', 'angularFileUpload', 'SOGo.Common', 'SOGo.ContactsUI', 'SOGo.SchedulerUI', 'ngAnimate', 'SOGo.PreferencesUI'])\n .config(configure)\n .run(runBlock)\n .controller('MessageEditorControllerPopup', MessageEditorControllerPopup);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('mail', {\n url: '/Mail',\n abstract: true,\n views: {\n message: {\n template: '<ui-view/>'\n }\n },\n resolve: {\n stateAccounts: stateAccounts\n }\n })\n .state('mail.account', {\n url: '/:accountId',\n abstract: true,\n template: '<ui-view id=\"account\"/>',\n resolve: {\n stateAccount: stateAccount\n }\n })\n .state('mail.account.mailbox', {\n url: '/:mailboxId',\n abstract: true,\n templatLine truncated
+1 -1
View File
@@ -1,2 +1,2 @@
!function(){"use strict";function a(a,l){a.state("mail",{url:"/Mail",views:{mailboxes:{templateUrl:"UIxMailMainFrame",controller:"MailboxesController",controllerAs:"app"}},resolve:{stateAccounts:b}}).state("mail.account",{url:"/:accountId","abstract":!0,views:{mailbox:{template:"<ui-view/>"}},resolve:{stateAccount:c}}).state("mail.account.virtualMailbox",{url:"/virtual",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:g}}).state("mail.account.virtualMailbox.message",{url:"/:mailboxId/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMailbox:h,stateMessages:f,stateMessage:i},onEnter:j,onExit:k}).state("mail.account.inbox",{url:"/inbox",onEnter:e}).state("mail.account.mailbox",{url:"/:mailboxId",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:d,stateMessages:f}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},onEnter:j,onExit:k,resolve:{stateMessage:i}}),l.otherwise("/Mail/0/inbox")}function b(a,b){var c=b.$findAll(window.mailAccounts),d=[];return angular.forEach(c,function(a,b){var c=a.$getMailboxes();d.push(c.then(function(b){return a}))}),a.all(d)}function c(a,b){return _.find(b,function(b){return b.id==a.accountId})}function d(a,b,c,d,e,f){var g,h,i=e(c.mailboxId);return h=function(a){var b=_.find(a,function(a){return a.path==i});return b||angular.forEach(a,function(a){!b&&a.children&&a.children.length>0&&(b=h(a.children))}),b},f.selectedFolder&&!f.$virtualMode&&(f.selectedFolder.$isLoading=!0),g=h(d.$mailboxes),g?(g.$topIndex=0,g):b.go("mail.account.inbox")}function e(a,b,c,d){a.location.hash=b.href("mail.account.mailbox",{accountId:d.id,mailboxId:c(d.$mailboxes[0].path)})}function f(a,b){return a.$virtualMode?[]:b.$filter()}function g(a,b){return b.$virtualMode?b.selectedFolder:a.reject("No virtual mailbox defined")}function h(a,b,c,d){var e=c(d.mailboxId);return b.$virtualMode?(b.selectedFolder.resetSelectedMessage(),_.find(b.selectedFolder.$mailboxes,function(a){return a.path==e})):a.reject("No virtual mailbox defined for message")}function i(a,b,c,d,e,f){var g;return(g=_.find(e.$messages,function(a){return a.uid==parseInt(c.messageId)}))?g.$reload({useCache:!0}):void d.go("mail.account.mailbox",{accountId:e.$account.id,mailboxId:b(e.path)})}function j(a,b){b.selectedMessage=parseInt(a.messageId)}function k(a){delete a.selectedMessage}function l(a,b,c){a.$on("$stateChangeError",function(a,d,e,f,g,h){b.error(h),a.preventDefault(),"mail.account.inbox"!=d.name?c.go("mail.account.inbox"):c.go("mail")}),a.$on("$routeChangeError",function(a,c,d,e){b.error(a,c,d,e)})}angular.module("SOGo.MailerUI",["ngCookies","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","SOGo.SchedulerUI","ngAnimate","SOGo.PreferencesUI"]).config(a).run(l),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["$q","Account"],c.$inject=["$stateParams","stateAccounts"],d.$inject=["$q","$state","$stateParams","stateAccount","decodeUriFilter","Mailbox"],e.$inject=["$window","$state","encodeUriFilter","stateAccount"],f.$inject=["Mailbox","stateMailbox"],g.$inject=["$q","Mailbox"],h.$inject=["$q","Mailbox","decodeUriFilter","$stateParams"],i.$inject=["Mailbox","encodeUriFilter","$stateParams","$state","stateMailbox","stateMessages"],j.$inject=["$stateParams","stateMailbox"],k.$inject=["stateMailbox"],l.$inject=["$rootScope","$log","$state"]}();
!function(){"use strict";function a(a,l){a.state("mail",{url:"/Mail",views:{mailboxes:{templateUrl:"UIxMailMainFrame",controller:"MailboxesController",controllerAs:"app"}},resolve:{stateAccounts:b}}).state("mail.account",{url:"/:accountId",abstract:!0,views:{mailbox:{template:"<ui-view/>"}},resolve:{stateAccount:c}}).state("mail.account.virtualMailbox",{url:"/virtual",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:g}}).state("mail.account.virtualMailbox.message",{url:"/:mailboxId/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMailbox:h,stateMessages:f,stateMessage:i},onEnter:j,onExit:k}).state("mail.account.inbox",{url:"/inbox",onEnter:e}).state("mail.account.mailbox",{url:"/:mailboxId",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:d,stateMessages:f}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},onEnter:j,onExit:k,resolve:{stateMessage:i}}),l.otherwise("/Mail/0/inbox")}function b(a,b){var c=b.$findAll(window.mailAccounts),d=[];return angular.forEach(c,function(a,b){var c=a.$getMailboxes();d.push(c.then(function(b){return a}))}),a.all(d)}function c(a,b){return _.find(b,function(b){return b.id==a.accountId})}function d(a,b,c,d,e,f){var g,h,i=e(c.mailboxId);return h=function(a){var b=_.find(a,function(a){return a.path==i});return b||angular.forEach(a,function(a){!b&&a.children&&a.children.length>0&&(b=h(a.children))}),b},f.selectedFolder&&!f.$virtualMode&&(f.selectedFolder.$isLoading=!0),g=h(d.$mailboxes),g?(g.$topIndex=0,g):b.go("mail.account.inbox")}function e(a,b,c,d){a.location.hash=b.href("mail.account.mailbox",{accountId:d.id,mailboxId:c(d.$mailboxes[0].path)})}function f(a,b){return a.$virtualMode?[]:b.$filter()}function g(a,b){return b.$virtualMode?b.selectedFolder:a.reject("No virtual mailbox defined")}function h(a,b,c,d){var e=c(d.mailboxId);return b.$virtualMode?(b.selectedFolder.resetSelectedMessage(),_.find(b.selectedFolder.$mailboxes,function(a){return a.path==e})):a.reject("No virtual mailbox defined for message")}function i(a,b,c,d,e,f){var g;return(g=_.find(e.$messages,function(a){return a.uid==parseInt(c.messageId)}))?g.$reload({useCache:!0}):void d.go("mail.account.mailbox",{accountId:e.$account.id,mailboxId:b(e.path)})}function j(a,b){b.selectedMessage=parseInt(a.messageId)}function k(a){delete a.selectedMessage}function l(a,b,c){a.$on("$stateChangeError",function(a,d,e,f,g,h){b.error(h),a.preventDefault(),"mail.account.inbox"!=d.name?c.go("mail.account.inbox"):c.go("mail")}),a.$on("$routeChangeError",function(a,c,d,e){b.error(a,c,d,e)})}angular.module("SOGo.MailerUI",["ngCookies","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","SOGo.SchedulerUI","ngAnimate","SOGo.PreferencesUI"]).config(a).run(l),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["$q","Account"],c.$inject=["$stateParams","stateAccounts"],d.$inject=["$q","$state","$stateParams","stateAccount","decodeUriFilter","Mailbox"],e.$inject=["$window","$state","encodeUriFilter","stateAccount"],f.$inject=["Mailbox","stateMailbox"],g.$inject=["$q","Mailbox"],h.$inject=["$q","Mailbox","decodeUriFilter","$stateParams"],i.$inject=["Mailbox","encodeUriFilter","$stateParams","$state","stateMailbox","stateMessages"],j.$inject=["$stateParams","stateMailbox"],k.$inject=["stateMailbox"],l.$inject=["$rootScope","$log","$state"]}();
//# sourceMappingURL=Mailer.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"sources":["Mailer/Mailer.app.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","mailboxes","templateUrl","controller","controllerAs","resolve","stateAccounts","abstract","mailbox","template","stateAccount","mailbox@mail","stateMailbox","stateVirtualMailbox","message","stateVirtualMailboxOfMessage","stateMessages","stateMessage","onEnter","onEnterMessage","onExit","onExitMessage","onEnterInbox","otherwise","$q","Account","accounts","$findAll","window","mailAccounts","promises","angular","forEach","account","i","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","$state","decodeUriFilter","Mailbox","_find","mailboxId","o","path","children","length","selectedFolder","$virtualMode","$isLoading","$mailboxes","$topIndex","go","$window","encodeUriFilter","location","hash","href","$filter","reject","resetSelectedMessage","mailboxObject","$messages","messageObject","uid","parseInt","messageId","$reload","useCache","$account","selectedMessage","runBlock","$rootScope","$log","$on","event","toState","toParams","fromState","fromParams","error","preventDefault","name","current","previous","rejection","module","config","run","$inject"],"mappings":"CAGA,WACE,YAUA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,QACLC,IAAK,QACLC,OACEC,WACEC,YAAa,mBACbC,WAAY,sBACZC,aAAc,QAGlBC,SACEC,cAAeA,KAGlBR,MAAM,gBACLC,IAAK,cACLQ,YAAU,EACVP,OACEQ,SACEC,SAAU,eAGdJ,SACEK,aAAcA,KAGjBZ,MAAM,+BACLC,IAAK,WACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcC,KAGjBf,MAAM,uCACLC,IAAK,yBACLC,OACGc,SACCZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBC,SACEO,aAAcG,EACdC,cAAeA,EACfC,aAAcA,GAEhBC,QAASC,EACTC,OAAQC,IAETvB,MAAM,sBACLC,IAAK,SACLmB,QAASI,IAEVxB,MAAM,wBACLC,IAAK,cACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcA,EACdI,cAAeA,KAgBlBlB,MAAM,gCACLC,IAAK,cACLC,OACEc,SACEZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBc,QAASC,EACTC,OAAQC,EACRhB,SACEY,aAAcA,KA4BpBpB,EAAmB0B,UAAU,iBAO/B,QAASjB,GAAckB,EAAIC,GACzB,GAAIC,GAAWD,EAAQE,SAASC,OAAOC,cACnCC,IAQJ,OANAC,SAAQC,QAAQN,EAAU,SAASO,EAASC,GAC1C,GAAIjC,GAAYgC,EAAQE,eACxBL,GAASM,KAAKnC,EAAUoC,KAAK,SAASC,GACpC,MAAOL,QAGJT,EAAGe,IAAIT,GAOhB,QAASpB,GAAa8B,EAAclC,GAClC,MAAOmC,GAAEC,KAAKpC,EAAe,SAAS2B,GACpC,MAAOA,GAAQU,IAAMH,EAAaI,YAQtC,QAAShC,GAAaY,EAAIqB,EAAQL,EAAc9B,EAAcoC,EAAiBC,GAC7E,GAAIvC,GAEAwC,EADAC,EAAYH,EAAgBN,EAAaS,UAuB7C,OAnBAD,GAAQ,SAAS/C,GACf,GAAIO,GAAUiC,EAAEC,KAAKzC,EAAW,SAASiD,GACvC,MAAOA,GAAEC,MAAQF,GASnB,OAPKzC,IACHuB,QAAQC,QAAQ/B,EAAW,SAASiD,IAC7B1C,GAAW0C,EAAEE,UAAYF,EAAEE,SAASC,OAAS,IAChD7C,EAAUwC,EAAME,EAAEE,aAIjB5C,GAGLuC,EAAQO,iBAAmBP,EAAQQ,eACrCR,EAAQO,eAAeE,YAAa,GAEtChD,EAAUwC,EAAMtC,EAAa+C,YAEzBjD,GACFA,EAAQkD,UAAY,EACblD,GAIAqC,EAAOc,GAAG,sBAOrB,QAASrC,GAAasC,EAASf,EAAQgB,EAAiBnD,GACtDkD,EAAQE,SAASC,KAAOlB,EAAOmB,KAAK,wBACCpB,UAAWlC,EAAaiC,GACxBM,UAAWY,EAAgBnD,EAAa+C,WAAW,GAAGN,QAO7F,QAASnC,GAAc+B,EAASnC,GAC9B,MAAImC,GAAQQ,gBAGL3C,EAAaqD,UAgBtB,QAASpD,GAAoBW,EAAIuB,GAC/B,MAAIA,GAAQQ,aACHR,EAAQO,eAER9B,EAAG0C,OAAO,8BAQrB,QAASnD,GAA6BS,EAAIuB,EAASD,EAAiBN,GAClE,GAAIS,GAAYH,EAAgBN,EAAaS,UAE7C,OAAIF,GAAQQ,cACVR,EAAQO,eAAea,uBAChB1B,EAAEC,KAAKK,EAAQO,eAAeG,WAAY,SAASW,GACxD,MAAOA,GAAcjB,MAAQF,KAIxBzB,EAAG0C,OAAO,0CAOrB,QAASjD,GAAa8B,EAASc,EAAiBrB,EAAcK,EAAQjC,EAAcI,GAClF,GAAIF,EAMJ,QAJAA,EAAU2B,EAAEC,KAAK9B,EAAayD,UAAW,SAASC,GAChD,MAAOA,GAAcC,KAAOC,SAAShC,EAAaiC,cAI3C3D,EAAQ4D,SAASC,UAAU,QAIlC9B,GAAOc,GAAG,wBAA0Bf,UAAWhC,EAAagE,SAASjC,GAAIM,UAAWY,EAAgBjD,EAAauC,QAQrH,QAAShC,GAAeqB,EAAc5B,GACpCA,EAAaiE,gBAAkBL,SAAShC,EAAaiC,WAOvD,QAASpD,GAAcT,SACdA,GAAaiE,gBAetB,QAASC,GAASC,EAAYC,EAAMnC,GAClCkC,EAAWE,IAAI,oBAAqB,SAASC,EAAOC,EAASC,EAAUC,EAAWC,EAAYC,GAC5FP,EAAKO,MAAMA,GACXL,EAAMM,iBACc,sBAAhBL,EAAQM,KACV5C,EAAOc,GAAG,sBAEVd,EAAOc,GAAG,UAEdoB,EAAWE,IAAI,oBAAqB,SAASC,EAAOQ,EAASC,EAAUC,GACrEZ,EAAKO,MAAML,EAAOQ,EAASC,EAAUC,KAjUzC7D,QAAQ8D,OAAO,iBAAkB,YAAa,YAAa,KAAM,oBAAqB,cAAe,kBAAmB,mBAAoB,YAAa,uBACtJC,OAAOnG,GACPoG,IAAIjB,GAKPnF,EAAUqG,SAAW,iBAAkB,sBAuIvC1F,EAAc0F,SAAW,KAAM,WAiB/BtF,EAAasF,SAAW,eAAgB,iBAUxCpF,EAAaoF,SAAW,KAAM,SAAU,eAAgB,eAAgB,kBAAmB,WAsC3F1E,EAAa0E,SAAW,UAAW,SAAU,kBAAmB,gBAUhEhF,EAAcgF,SAAW,UAAW,gBAoBpCnF,EAAoBmF,SAAW,KAAM,WAYrCjF,EAA6BiF,SAAW,KAAM,UAAW,kBAAmB,gBAiB5E/E,EAAa+E,SAAW,UAAW,kBAAmB,eAAgB,SAAU,eAAgB,iBAoBhG7E,EAAe6E,SAAW,eAAgB,gBAQ1C3E,EAAc2E,SAAW,gBAgBzBlB,EAASkB,SAAW,aAAc,OAAQ","file":"Mailer.js","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.MailerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.MailerUI', ['ngCookies', 'ui.router', 'ck', 'angularFileUpload', 'SOGo.Common', 'SOGo.ContactsUI', 'SOGo.SchedulerUI', 'ngAnimate', 'SOGo.PreferencesUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('mail', {\n url: '/Mail',\n views: {\n mailboxes: {\n templateUrl: 'UIxMaLine truncated
{"version":3,"sources":["Mailer/Mailer.app.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","mailboxes","templateUrl","controller","controllerAs","resolve","stateAccounts","abstract","mailbox","template","stateAccount","mailbox@mail","stateMailbox","stateVirtualMailbox","message","stateVirtualMailboxOfMessage","stateMessages","stateMessage","onEnter","onEnterMessage","onExit","onExitMessage","onEnterInbox","otherwise","$q","Account","accounts","$findAll","window","mailAccounts","promises","angular","forEach","account","i","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","$state","decodeUriFilter","Mailbox","_find","mailboxId","o","path","children","length","selectedFolder","$virtualMode","$isLoading","$mailboxes","$topIndex","go","$window","encodeUriFilter","location","hash","href","$filter","reject","resetSelectedMessage","mailboxObject","$messages","messageObject","uid","parseInt","messageId","$reload","useCache","$account","selectedMessage","runBlock","$rootScope","$log","$on","event","toState","toParams","fromState","fromParams","error","preventDefault","name","current","previous","rejection","module","config","run","$inject"],"mappings":"CAGA,WACE,YAUA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,QACLC,IAAK,QACLC,OACEC,WACEC,YAAa,mBACbC,WAAY,sBACZC,aAAc,QAGlBC,SACEC,cAAeA,KAGlBR,MAAM,gBACLC,IAAK,cACLQ,UAAU,EACVP,OACEQ,SACEC,SAAU,eAGdJ,SACEK,aAAcA,KAGjBZ,MAAM,+BACLC,IAAK,WACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcC,KAGjBf,MAAM,uCACLC,IAAK,yBACLC,OACGc,SACCZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBC,SACEO,aAAcG,EACdC,cAAeA,EACfC,aAAcA,GAEhBC,QAASC,EACTC,OAAQC,IAETvB,MAAM,sBACLC,IAAK,SACLmB,QAASI,IAEVxB,MAAM,wBACLC,IAAK,cACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcA,EACdI,cAAeA,KAgBlBlB,MAAM,gCACLC,IAAK,cACLC,OACEc,SACEZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBc,QAASC,EACTC,OAAQC,EACRhB,SACEY,aAAcA,KA4BpBpB,EAAmB0B,UAAU,iBAO/B,QAASjB,GAAckB,EAAIC,GACzB,GAAIC,GAAWD,EAAQE,SAASC,OAAOC,cACnCC,IAQJ,OANAC,SAAQC,QAAQN,EAAU,SAASO,EAASC,GAC1C,GAAIjC,GAAYgC,EAAQE,eACxBL,GAASM,KAAKnC,EAAUoC,KAAK,SAASC,GACpC,MAAOL,QAGJT,EAAGe,IAAIT,GAOhB,QAASpB,GAAa8B,EAAclC,GAClC,MAAOmC,GAAEC,KAAKpC,EAAe,SAAS2B,GACpC,MAAOA,GAAQU,IAAMH,EAAaI,YAQtC,QAAShC,GAAaY,EAAIqB,EAAQL,EAAc9B,EAAcoC,EAAiBC,GAC7E,GAAIvC,GAEAwC,EADAC,EAAYH,EAAgBN,EAAaS,UAuB7C,OAnBAD,GAAQ,SAAS/C,GACf,GAAIO,GAAUiC,EAAEC,KAAKzC,EAAW,SAASiD,GACvC,MAAOA,GAAEC,MAAQF,GASnB,OAPKzC,IACHuB,QAAQC,QAAQ/B,EAAW,SAASiD,IAC7B1C,GAAW0C,EAAEE,UAAYF,EAAEE,SAASC,OAAS,IAChD7C,EAAUwC,EAAME,EAAEE,aAIjB5C,GAGLuC,EAAQO,iBAAmBP,EAAQQ,eACrCR,EAAQO,eAAeE,YAAa,GAEtChD,EAAUwC,EAAMtC,EAAa+C,YAEzBjD,GACFA,EAAQkD,UAAY,EACblD,GAIAqC,EAAOc,GAAG,sBAOrB,QAASrC,GAAasC,EAASf,EAAQgB,EAAiBnD,GACtDkD,EAAQE,SAASC,KAAOlB,EAAOmB,KAAK,wBACCpB,UAAWlC,EAAaiC,GACxBM,UAAWY,EAAgBnD,EAAa+C,WAAW,GAAGN,QAO7F,QAASnC,GAAc+B,EAASnC,GAC9B,MAAImC,GAAQQ,gBAGL3C,EAAaqD,UAgBtB,QAASpD,GAAoBW,EAAIuB,GAC/B,MAAIA,GAAQQ,aACHR,EAAQO,eAER9B,EAAG0C,OAAO,8BAQrB,QAASnD,GAA6BS,EAAIuB,EAASD,EAAiBN,GAClE,GAAIS,GAAYH,EAAgBN,EAAaS,UAE7C,OAAIF,GAAQQ,cACVR,EAAQO,eAAea,uBAChB1B,EAAEC,KAAKK,EAAQO,eAAeG,WAAY,SAASW,GACxD,MAAOA,GAAcjB,MAAQF,KAIxBzB,EAAG0C,OAAO,0CAOrB,QAASjD,GAAa8B,EAASc,EAAiBrB,EAAcK,EAAQjC,EAAcI,GAClF,GAAIF,EAMJ,QAJAA,EAAU2B,EAAEC,KAAK9B,EAAayD,UAAW,SAASC,GAChD,MAAOA,GAAcC,KAAOC,SAAShC,EAAaiC,cAI3C3D,EAAQ4D,SAASC,UAAU,QAIlC9B,GAAOc,GAAG,wBAA0Bf,UAAWhC,EAAagE,SAASjC,GAAIM,UAAWY,EAAgBjD,EAAauC,QAQrH,QAAShC,GAAeqB,EAAc5B,GACpCA,EAAaiE,gBAAkBL,SAAShC,EAAaiC,WAOvD,QAASpD,GAAcT,SACdA,GAAaiE,gBAetB,QAASC,GAASC,EAAYC,EAAMnC,GAClCkC,EAAWE,IAAI,oBAAqB,SAASC,EAAOC,EAASC,EAAUC,EAAWC,EAAYC,GAC5FP,EAAKO,MAAMA,GACXL,EAAMM,iBACc,sBAAhBL,EAAQM,KACV5C,EAAOc,GAAG,sBAEVd,EAAOc,GAAG,UAEdoB,EAAWE,IAAI,oBAAqB,SAASC,EAAOQ,EAASC,EAAUC,GACrEZ,EAAKO,MAAML,EAAOQ,EAASC,EAAUC,KAjUzC7D,QAAQ8D,OAAO,iBAAkB,YAAa,YAAa,KAAM,oBAAqB,cAAe,kBAAmB,mBAAoB,YAAa,uBACtJC,OAAOnG,GACPoG,IAAIjB,GAKPnF,EAAUqG,SAAW,iBAAkB,sBAuIvC1F,EAAc0F,SAAW,KAAM,WAiB/BtF,EAAasF,SAAW,eAAgB,iBAUxCpF,EAAaoF,SAAW,KAAM,SAAU,eAAgB,eAAgB,kBAAmB,WAsC3F1E,EAAa0E,SAAW,UAAW,SAAU,kBAAmB,gBAUhEhF,EAAcgF,SAAW,UAAW,gBAoBpCnF,EAAoBmF,SAAW,KAAM,WAYrCjF,EAA6BiF,SAAW,KAAM,UAAW,kBAAmB,gBAiB5E/E,EAAa+E,SAAW,UAAW,kBAAmB,eAAgB,SAAU,eAAgB,iBAoBhG7E,EAAe6E,SAAW,eAAgB,gBAQ1C3E,EAAc2E,SAAW,gBAgBzBlB,EAASkB,SAAW,aAAc,OAAQ","file":"Mailer.js","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.MailerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.MailerUI', ['ngCookies', 'ui.router', 'ck', 'angularFileUpload', 'SOGo.Common', 'SOGo.ContactsUI', 'SOGo.SchedulerUI', 'ngAnimate', 'SOGo.PreferencesUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('mail', {\n url: '/Mail',\n views: {\n mailboxes: {\n templateUrl: 'UIxMaLine truncated
+2 -2
View File
@@ -1,3 +1,3 @@
!function(){"use strict";function a(b){"function"!=typeof b.then&&(angular.extend(this,b),_.forEach(this.identities,function(a){a.fullName?a.full=a.fullName+" <"+a.email+">":a.full="<"+a.email+">"}),a.$log.debug("Account: "+JSON.stringify(b,void 0,2)))}a.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function(b,c,d,e,f,g,h,i){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL")+"Mail",e.activeUser()),$Preferences:g,$Mailbox:h,$Message:i}),a}];try{angular.module("SOGo.MailerUI")}catch(b){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",a.$factory),a.$findAll=function(b){return b?a.$unwrapCollection(b):a.$$resource.fetch("","mailAccounts").then(function(b){return a.$unwrapCollection(b)})},a.$unwrapCollection=function(b){var c=[];return angular.forEach(b,function(b,d){b.id=d,c[d]=new a(b)}),a.$accounts=c,c},a.prototype.getLength=function(){return this.$flattenMailboxes().length},a.prototype.getItemAtIndex=function(a){var b;return b=this.$flattenMailboxes(),a>=0&&a<b.length?b[a]:null},a.prototype.$getMailboxes=function(b){var c=this;return!this.$mailboxes||b&&b.reload?a.$Mailbox.$find(this,b).then(function(b){return c.$mailboxes=b,c.$expanded=!1,a.$Preferences.ready().then(function(){var b,d=function(a){_.forEach(a,function(a){a.$expanded=b.indexOf("/"+a.id)>=0,a.children&&a.children.length>0&&d(a.children)})};a.$Preferences.settings.Mail.ExpandedFolders&&(b=angular.isString(a.$Preferences.settings.Mail.ExpandedFolders)?angular.fromJson(a.$Preferences.settings.Mail.ExpandedFolders):a.$Preferences.settings.Mail.ExpandedFolders,c.$expanded=b.indexOf("/"+c.id)>=0,b.length>0&&d(c.$mailboxes)),a.$accounts&&(c.$expanded|=1==a.$accounts.length),c.$flattenMailboxes({reload:!0})}),c.$mailboxes}):a.$q.when(this.$mailboxes)},a.prototype.$flattenMailboxes=function(b){var c=this,d=[],e=[],f=function(a){_.forEach(a,function(a){d.push(a),(b&&b.all||a.$expanded)&&a.children&&a.children.length>0&&f(a.children)})};return!this.$$flattenMailboxes||b&&(b.reload||b.all)?(f(this.$mailboxes),b&&b.all||(c.$$flattenMailboxes=d,b&&b.saveState&&(_.forEach(a.$accounts,function(a){a.$expanded&&e.push("/"+a.id),_.reduce(a.$$flattenMailboxes,function(a,b){return b.$expanded&&a.push("/"+b.id),a},e)}),a.$$resource.post(null,"saveFoldersState",e)))):d=this.$$flattenMailboxes,d},a.prototype.$getMailboxByType=function(a){var b,c=function(b){var d=_.find(b,function(b){return b.type==a});return d||angular.forEach(b,function(a){!d&&a.children&&a.children.length>0&&(d=c(a.children))}),d};return b=c(this.$mailboxes)},a.prototype.$getMailboxByPath=function(a){var b=null,c=function(b){var d=_.find(b,function(b){return b.path==a});return d||angular.forEach(b,function(a){!d&&a.children&&a.children.length>0&&(d=c(a.children))}),d};return b=c(this.$mailboxes)},a.prototype.$newMailbox=function(b,c){var d=this;return a.$$resource.post(b.toString(),"createFolder",{name:c}).then(function(){d.$getMailboxes({reload:!0})})},a.prototype.updateQuota=function(a){var b,c,d;b=Math.round(1e4*a.usedSpace/a.maxQuota)/100,c=l("quotasFormat"),d=c.formatted(b,Math.round(a.maxQuota/10.24)/100),this.$quota={percent:b,description:d}},a.prototype.$newMessage=function(){var b=this;return a.$$resource.fetch(this.id.toString(),"compose").then(function(c){a.$log.debug("New message (compose): "+JSON.stringify(c,void 0,2));var d=new a.$Message(c.accountId,b.$getMailboxByPath(c.mailboxPath),c);return d}).then(function(b){return a.$$resource.fetch(b.$absolutePath({asDraft:!0}),"edit").then(function(c){return a.$log.debug("New message (edit): "+JSON.stringify(c,void 0,2)),angular.extend(b.editable,c),b.isNew=!0,b})})},a.prototype.$addDelegate=function(b){var c=this,d=a.$q.defer(),e={uid:b.uid};return!b.uid||_.indexOf(_.map(this.delegates,"uid"),b.uid)>-1?d.resolve():a.$$resource.fetch(this.id.toString(),"addDelegate",e).then(function(){c.delegates.push(b),d.resolve(c.users)},function(a,b){d.reject(l("An error occured please try again."))}),d.promise},a.prototype.$removeDelegate=function(b){var c=this,d={uid:b};return a.$$resource.fetch(this.id.toString(),"removeDelegate",d).then(function(){var a=_.indexOf(_.map(c.delegates,"uid"),b);a>=0&&c.delegates.splice(a,1)})}}(),function(){"use strict";function a(b,c){if(this.$account=b,"function"!=typeof c.then){if(this.init(c),this.name&&!this.path){var d=a.$$resource.create("createFolder",this.name);this.$unwrap(d)}}else this.$unwrap(c)}a.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function(b,c,d,e,f,g,h,i,j){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL")+"Mail",e.activeUser()),$Message:g,$$Acl:h,$Preferences:i,$query:{sort:"arrival",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,PRELOAD:j}),i.ready().then(function(){i.settings.Mail.SortingState&&(a.$query.sort=i.settings.Mail.SortingState[0],a.Line truncated
})}function J(a){var b=P.selectedFolder.hasSelectedMessage(),c=P.selectedFolder.$selectedMessages(),d=P.selectedFolder.$selectedCount();_.size(c)>0&&P.selectedFolder.$moveMessages(c,"/"+a).then(function(a){g.show(g.simple().content(l("%{0} message(s) moved",d)).position("top right").hideDelay(2e3)),q.$virtualMode?b&&e.go("mail.account.virtualMailbox"):F(b,a)})}function K(){var a=0;_.forEach(E(),function(b){for(var c=0,d=b.$messages.length;d>c;c++)b.$messages[c].selected=!0;a+=d}),P.mode.multiple=a}function L(){_.forEach(E(),function(a){_.forEach(a.$messages,function(a){a.selected=!1})}),P.mode.multiple=0}function M(){var a=P.selectedFolder.$selectedMessages();_.size(a)>0&&P.selectedFolder.$flagMessages(a,"\\Flagged","add").then(function(a){_.forEach(a,function(a){a.isflagged=!0})})}function N(){var a=P.selectedFolder.$selectedMessages();_.size(a)>0&&P.selectedFolder.$flagMessages(a,"seen","remove").then(function(a){_.forEach(a,function(a){a.isread&&a.$mailbox.unseenCount++,a.isread=!1})})}function O(){var a=P.selectedFolder.$selectedMessages();_.size(a)>0&&P.selectedFolder.$flagMessages(a,"seen","add").then(function(a){_.forEach(a,function(a){a.isread||a.$mailbox.unseenCount--,a.isread=!0})})}var P=this,Q=null,R=angular.element(a.document).find("title").attr("sg-default")||"SOGo",S=[];a.$mailboxController=P,P.service=q,P.accounts=h,P.account=i,P.selectedFolder=j,P.selectMessage=C,P.toggleMessageSelection=D,P.sort=t,P.sortedBy=u,P.searchMode=v,P.cancelSearch=w,P.newMessage=x,P.mode={search:!1,multiple:0},P.confirmDeleteSelectedMessages=G,P.markOrUnMarkMessagesAsJunk=H,P.copySelectedMessages=I,P.moveSelectedMessages=J,P.markSelectedMessagesAsFlagged=M,P.markSelectedMessagesAsUnread=N,P.markSelectedMessagesAsRead=O,P.selectAll=K,P.unselectMessages=L,j.selectFolder(),r(S),angular.element(a).on("beforeunload",s),b.$on("$destroy",function(){angular.element(a).off("beforeunload",s),_.forEach(S,function(a){k.deregisterHotkey(a)})}),b.$watch(function(){return P.selectedFolder.unseenCount},function(b){var c=R+" - ";b&&(c+="("+b+") "),c+=P.selectedFolder.name,a.document.title=c})}function b(a){return a[0].controller.prototype.resetScroll=function(){"messagesList"==this.$element.parent().attr("id")?this.updateSize():this.scrollTo(0)},a}a.$inject=["$window","$scope","$timeout","$q","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","sgHotkeys","encodeUriFilter","sgFocus","Dialog","Account","Mailbox"],angular.module("material.components.virtualRepeat").decorator("mdVirtualRepeatContainerDirective",b),b.$inject=["$delegate"],angular.module("SOGo.MailerUI").controller("MailboxController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u){function v(a){a.push(o.createHotkey({key:"backspace",description:l("Delete selected message or folder"),callback:function(){q.selectedFolder&&!q.selectedFolder.hasSelectedMessage()&&L(q.selectedFolder)}})),_.forEach(a,function(a){o.registerHotkey(a)})}function w(a){V.showingAdvancedSearch=!0,V.search.mailbox=a,g(i["gt-md"])||h("left").close()}function x(){V.showingAdvancedSearch=!1,V.service.$virtualMode=!1,T=V.accounts[0],U=V.searchPreviousMailbox,b.go("mail.account.mailbox",{accountId:T.id,mailboxId:k(U.path)})}function y(){if(q.selectedFolder.$isLoading)V.virtualMailbox.stopSearch();else{var a,c=[],d=function(a){_.forEach(a,function(a){c.push(a),a.children&&a.children.length>0&&d(a.children)})};V.virtualMailbox=new r(V.accounts[0]),q.$virtualMode||(V.searchPreviousMailbox=q.selectedFolder),q.selectedFolder=V.virtualMailbox,q.$virtualMode=!0,angular.isDefined(V.search.mailbox)?(a=V.accounts[0].$getMailboxByPath(V.search.mailbox),c.push(a),V.search.subfolders&&a.children.length&&d(a.children)):c=V.accounts[0].$flattenMailboxes(),V.virtualMailbox.setMailboxes(c),V.virtualMailbox.startSearch(V.search.match,V.search.params),b.go("mail.account.virtualMailbox",{accountId:V.accounts[0].id})}}function z(a){return V.currentSearchParam=a,j("advancedSearch"),!1}function A(a){if(a.length&&V.currentSearchParam.length){var b=0,c=V.currentSearchParam;return a.startsWith("!")&&(b=1,a=a.substring(1).trim()),V.currentSearchParam="",{searchBy:c,searchInput:a,negative:b}}}function B(a){a.$expanded=!a.$expanded,a.$flattenMailboxes({reload:!0,saveState:!0}),c(function(){angular.element(d).triggerHandler("resize")},150)}function C(a){function b(a,b,c,d){function e(){b.cancel()}var f=this;f.loading=!0,f.filter={name:""},f.metadataForFolder=c,f.account=new p({id:d.id,name:d.name}),f.close=e,f.account.$getMailboxes({reload:!0,all:!0}).then(function(){f.loading=!1})}e.show({templateUrl:a.id+"/subscribe",controller:b,controllerAs:"subscriptions",clickOutsideToClose:!0,escapeToClose:!0,locals:{metadataForFolder:O,srcAccount:a}})["finally"](function(){a.$getMailboxes({reload:!0})}),b.$inject=["$scope","$mdDialog","metadataForFolder","srcAccount"]}function D(a){m.prompt(l("New Folder..."),l("Enter the new name of your folder")).then(function(b){a.$newMailbox(aLine truncated
!function(){"use strict";function a(b){"function"!=typeof b.then&&(angular.extend(this,b),_.forEach(this.identities,function(a){a.fullName?a.full=a.fullName+" <"+a.email+">":a.full="<"+a.email+">"}),a.$log.debug("Account: "+JSON.stringify(b,void 0,2)))}a.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function(b,c,d,e,f,g,h,i){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL")+"Mail",e.activeUser()),$Preferences:g,$Mailbox:h,$Message:i}),a}];try{angular.module("SOGo.MailerUI")}catch(a){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",a.$factory),a.$findAll=function(b){return b?a.$unwrapCollection(b):a.$$resource.fetch("","mailAccounts").then(function(b){return a.$unwrapCollection(b)})},a.$unwrapCollection=function(b){var c=[];return angular.forEach(b,function(b,d){b.id=d,c[d]=new a(b)}),a.$accounts=c,c},a.prototype.getLength=function(){return this.$flattenMailboxes().length},a.prototype.getItemAtIndex=function(a){var b;return b=this.$flattenMailboxes(),a>=0&&a<b.length?b[a]:null},a.prototype.$getMailboxes=function(b){var c=this;return!this.$mailboxes||b&&b.reload?a.$Mailbox.$find(this,b).then(function(b){return c.$mailboxes=b,c.$expanded=!1,a.$Preferences.ready().then(function(){var b,d=function(a){_.forEach(a,function(a){a.$expanded=b.indexOf("/"+a.id)>=0,a.children&&a.children.length>0&&d(a.children)})};a.$Preferences.settings.Mail.ExpandedFolders&&(b=angular.isString(a.$Preferences.settings.Mail.ExpandedFolders)?angular.fromJson(a.$Preferences.settings.Mail.ExpandedFolders):a.$Preferences.settings.Mail.ExpandedFolders,c.$expanded=b.indexOf("/"+c.id)>=0,b.length>0&&d(c.$mailboxes)),a.$accounts&&(c.$expanded|=1==a.$accounts.length),c.$flattenMailboxes({reload:!0})}),c.$mailboxes}):a.$q.when(this.$mailboxes)},a.prototype.$flattenMailboxes=function(b){var c=this,d=[],e=[],f=function(a){_.forEach(a,function(a){d.push(a),(b&&b.all||a.$expanded)&&a.children&&a.children.length>0&&f(a.children)})};return!this.$$flattenMailboxes||b&&(b.reload||b.all)?(f(this.$mailboxes),b&&b.all||(c.$$flattenMailboxes=d,b&&b.saveState&&(_.forEach(a.$accounts,function(a){a.$expanded&&e.push("/"+a.id),_.reduce(a.$$flattenMailboxes,function(a,b){return b.$expanded&&a.push("/"+b.id),a},e)}),a.$$resource.post(null,"saveFoldersState",e)))):d=this.$$flattenMailboxes,d},a.prototype.$getMailboxByType=function(a){var b,c=function(b){var d=_.find(b,function(b){return b.type==a});return d||angular.forEach(b,function(a){!d&&a.children&&a.children.length>0&&(d=c(a.children))}),d};return b=c(this.$mailboxes)},a.prototype.$getMailboxByPath=function(a){var b=null,c=function(b){var d=_.find(b,function(b){return b.path==a});return d||angular.forEach(b,function(a){!d&&a.children&&a.children.length>0&&(d=c(a.children))}),d};return b=c(this.$mailboxes)},a.prototype.$newMailbox=function(b,c){var d=this;return a.$$resource.post(b.toString(),"createFolder",{name:c}).then(function(){d.$getMailboxes({reload:!0})})},a.prototype.updateQuota=function(a){var b,c,d;b=Math.round(1e4*a.usedSpace/a.maxQuota)/100,c=l("quotasFormat"),d=c.formatted(b,Math.round(a.maxQuota/10.24)/100),this.$quota={percent:b,description:d}},a.prototype.$newMessage=function(){var b=this;return a.$$resource.fetch(this.id.toString(),"compose").then(function(c){a.$log.debug("New message (compose): "+JSON.stringify(c,void 0,2));var d=new a.$Message(c.accountId,b.$getMailboxByPath(c.mailboxPath),c);return d}).then(function(b){return a.$$resource.fetch(b.$absolutePath({asDraft:!0}),"edit").then(function(c){return a.$log.debug("New message (edit): "+JSON.stringify(c,void 0,2)),angular.extend(b.editable,c),b.isNew=!0,b})})},a.prototype.$addDelegate=function(b){var c=this,d=a.$q.defer(),e={uid:b.uid};return!b.uid||_.indexOf(_.map(this.delegates,"uid"),b.uid)>-1?d.resolve():a.$$resource.fetch(this.id.toString(),"addDelegate",e).then(function(){c.delegates.push(b),d.resolve(c.users)},function(a,b){d.reject(l("An error occured please try again."))}),d.promise},a.prototype.$removeDelegate=function(b){var c=this,d={uid:b};return a.$$resource.fetch(this.id.toString(),"removeDelegate",d).then(function(){var a=_.indexOf(_.map(c.delegates,"uid"),b);a>=0&&c.delegates.splice(a,1)})}}(),function(){"use strict";function a(b,c){if(this.$account=b,"function"!=typeof c.then){if(this.init(c),this.name&&!this.path){var d=a.$$resource.create("createFolder",this.name);this.$unwrap(d)}}else this.$unwrap(c)}a.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function(b,c,d,e,f,g,h,i,j){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL")+"Mail",e.activeUser()),$Message:g,$$Acl:h,$Preferences:i,$query:{sort:"arrival",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,PRELOAD:j}),i.ready().then(function(){i.settings.Mail.SortingState&&(a.$query.sort=i.settings.Mail.SortingState[0],a.Line truncated
})}function J(a){var b=P.selectedFolder.hasSelectedMessage(),c=P.selectedFolder.$selectedMessages(),d=P.selectedFolder.$selectedCount();_.size(c)>0&&P.selectedFolder.$moveMessages(c,"/"+a).then(function(a){g.show(g.simple().content(l("%{0} message(s) moved",d)).position("top right").hideDelay(2e3)),q.$virtualMode?b&&e.go("mail.account.virtualMailbox"):F(b,a)})}function K(){var a=0;_.forEach(E(),function(b){for(var c=0,d=b.$messages.length;c<d;c++)b.$messages[c].selected=!0;a+=d}),P.mode.multiple=a}function L(){_.forEach(E(),function(a){_.forEach(a.$messages,function(a){a.selected=!1})}),P.mode.multiple=0}function M(){var a=P.selectedFolder.$selectedMessages();_.size(a)>0&&P.selectedFolder.$flagMessages(a,"\\Flagged","add").then(function(a){_.forEach(a,function(a){a.isflagged=!0})})}function N(){var a=P.selectedFolder.$selectedMessages();_.size(a)>0&&P.selectedFolder.$flagMessages(a,"seen","remove").then(function(a){_.forEach(a,function(a){a.isread&&a.$mailbox.unseenCount++,a.isread=!1})})}function O(){var a=P.selectedFolder.$selectedMessages();_.size(a)>0&&P.selectedFolder.$flagMessages(a,"seen","add").then(function(a){_.forEach(a,function(a){a.isread||a.$mailbox.unseenCount--,a.isread=!0})})}var P=this,Q=null,R=angular.element(a.document).find("title").attr("sg-default")||"SOGo",S=[];a.$mailboxController=P,P.service=q,P.accounts=h,P.account=i,P.selectedFolder=j,P.selectMessage=C,P.toggleMessageSelection=D,P.sort=t,P.sortedBy=u,P.searchMode=v,P.cancelSearch=w,P.newMessage=x,P.mode={search:!1,multiple:0},P.confirmDeleteSelectedMessages=G,P.markOrUnMarkMessagesAsJunk=H,P.copySelectedMessages=I,P.moveSelectedMessages=J,P.markSelectedMessagesAsFlagged=M,P.markSelectedMessagesAsUnread=N,P.markSelectedMessagesAsRead=O,P.selectAll=K,P.unselectMessages=L,j.selectFolder(),r(S),angular.element(a).on("beforeunload",s),b.$on("$destroy",function(){angular.element(a).off("beforeunload",s),_.forEach(S,function(a){k.deregisterHotkey(a)})}),b.$watch(function(){return P.selectedFolder.unseenCount},function(b){var c=R+" - ";b&&(c+="("+b+") "),c+=P.selectedFolder.name,a.document.title=c})}function b(a){return a[0].controller.prototype.resetScroll=function(){"messagesList"==this.$element.parent().attr("id")?this.updateSize():this.scrollTo(0)},a}a.$inject=["$window","$scope","$timeout","$q","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","sgHotkeys","encodeUriFilter","sgFocus","Dialog","Account","Mailbox"],angular.module("material.components.virtualRepeat").decorator("mdVirtualRepeatContainerDirective",b),b.$inject=["$delegate"],angular.module("SOGo.MailerUI").controller("MailboxController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u){function v(a){a.push(o.createHotkey({key:"backspace",description:l("Delete selected message or folder"),callback:function(){q.selectedFolder&&!q.selectedFolder.hasSelectedMessage()&&L(q.selectedFolder)}})),_.forEach(a,function(a){o.registerHotkey(a)})}function w(a){V.showingAdvancedSearch=!0,V.search.mailbox=a,g(i["gt-md"])||h("left").close()}function x(){V.showingAdvancedSearch=!1,V.service.$virtualMode=!1,T=V.accounts[0],U=V.searchPreviousMailbox,b.go("mail.account.mailbox",{accountId:T.id,mailboxId:k(U.path)})}function y(){if(q.selectedFolder.$isLoading)V.virtualMailbox.stopSearch();else{var a,c=[],d=function(a){_.forEach(a,function(a){c.push(a),a.children&&a.children.length>0&&d(a.children)})};V.virtualMailbox=new r(V.accounts[0]),q.$virtualMode||(V.searchPreviousMailbox=q.selectedFolder),q.selectedFolder=V.virtualMailbox,q.$virtualMode=!0,angular.isDefined(V.search.mailbox)?(a=V.accounts[0].$getMailboxByPath(V.search.mailbox),c.push(a),V.search.subfolders&&a.children.length&&d(a.children)):c=V.accounts[0].$flattenMailboxes(),V.virtualMailbox.setMailboxes(c),V.virtualMailbox.startSearch(V.search.match,V.search.params),b.go("mail.account.virtualMailbox",{accountId:V.accounts[0].id})}}function z(a){return V.currentSearchParam=a,j("advancedSearch"),!1}function A(a){if(a.length&&V.currentSearchParam.length){var b=0,c=V.currentSearchParam;return a.startsWith("!")&&(b=1,a=a.substring(1).trim()),V.currentSearchParam="",{searchBy:c,searchInput:a,negative:b}}}function B(a){a.$expanded=!a.$expanded,a.$flattenMailboxes({reload:!0,saveState:!0}),c(function(){angular.element(d).triggerHandler("resize")},150)}function C(a){function b(a,b,c,d){function e(){b.cancel()}var f=this;f.loading=!0,f.filter={name:""},f.metadataForFolder=c,f.account=new p({id:d.id,name:d.name}),f.close=e,f.account.$getMailboxes({reload:!0,all:!0}).then(function(){f.loading=!1})}e.show({templateUrl:a.id+"/subscribe",controller:b,controllerAs:"subscriptions",clickOutsideToClose:!0,escapeToClose:!0,locals:{metadataForFolder:O,srcAccount:a}}).finally(function(){a.$getMailboxes({reload:!0})}),b.$inject=["$scope","$mdDialog","metadataForFolder","srcAccount"]}function D(a){m.prompt(l("New Folder..."),l("Enter the new name of your folder")).then(function(b){a.$newMailbox(a.idLine truncated
//# sourceMappingURL=Mailer.services.js.map
@@ -1 +1 @@
{"version":3,"sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgIMIP.directive.js","Mailer/sgZoomableImage.directive.js"],"names":["Account","futureAccountData","then","angular","extend","this","_","forEach","identities","identity","fullName","full","email","$log","debug","JSON","stringify","undefined","$factory","$q","$timeout","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Mailbox","$Message","module","e","factory","$findAll","data","$unwrapCollection","fetch","o","collection","i","id","$accounts","prototype","getLength","$flattenMailboxes","length","getItemAtIndex","index","expandedMailboxes","$getMailboxes","options","_this","$mailboxes","reload","$find","$expanded","ready","expandedFolders","_visit","mailboxes","indexOf","children","settings","Mail","ExpandedFolders","isString","fromJson","when","allMailboxes","push","all","$$flattenMailboxes","saveState","account","reduce","mailbox","post","$getMailboxByType","type","_find","find","$getMailboxByPath","path","$newMailbox","name","toString","updateQuota","percent","format","description","Math","round","usedSpace","maxQuota","l","formatted","$quota","$newMessage","message","accountId","mailboxPath","$absolutePath","asDraft","editable","isNew","$addDelegate","user","deferred","defer","param","uid","map","delegates","resolve","users","status","reject","promise","$removeDelegate","splice","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","PRELOAD","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","quotas","split","component","asCSSIdentifier","join","$isLoading","$messages","uidsMap","$id","$acl","$isEditable","isEditable","$isNoInferiors","isNoInferiors","isUndefined","$shadowData","$omit","selectFolder","$lastVisibleIndex","max","$loadMessage","$selectedMessages","filter","selected","$selectedCount","isSelectedMessage","messageId","selectedMessage","$selectedMessage","$selectedMessageIndex","hasSelectedMessage","isDefined","$filter","sortingAttributes","filters","unseenCount","cancel","searchInput","secondFilter","match","searchBy","copy","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","timeInterval","endIndex","uids","futureHeadersData","startIndex","loaded","subject","min","loading","$unwrapHeaders","flags","isNoSelect","$rename","findParent","parent","parentMailbox","$save","sibling","localeCompare","$compact","$setFolderAs","$emptyTrash","$markAsRead","$flagMessages","messages","operation","msgUIDs","saveSelectedMessages","selectedMessages","selectedUIDs","download","exportFolder","$delete","$_deleteMessages","unseen","firstIndex","isread","forEachRight","selectedIndex","findIndex","$deleteMessages","$markOrUnMarkMessagesAsJunk","method","$copyMessages","folder","$moveMessages","$reset","value","key","save","response","error","$futureMailboxData","headers","$topIndex","invokeMap","threaded","msgs","msg","zipObject","isError","j","messageHeaders","$updateSubscribe","action","subscribed","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","to","cc","bcc","$formatFullAddresses","Message_STATUS","STATUS","$avatar","avatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","filterTags","query","excludedTags","re","RegExp","results","keys","tag","pair","search","includes","color","buildPath","nocache","draftId","$setUID","oldUID","attr","constructor","shortname","first","last","replace","image","$shortRecipients","result","count","total","$shortAddress","address","allowReplyAll","recipientsCount","isDraft","loadUnsafeContent","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","formattedMessage","$smime","validSignature","valid","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","element","elements","querySelectorAll","removeAttr","compile","$editableContent","from","toLowerCase","text","$plainContent","addTag","$addOrRemoveTag","removeTag","$imipAction","$reload","$sendMDN","shouldAskReceipt","$deleteAttachment","filename","attachmentAttrs","attachment","toggleFlag","isflagged","$loaded","useCache","$futureMessageData","$reply","$newDraft","$replyAll","$forward","origin","$send","startsWith","isanswered","isforwarded","privateAttributes","saveMessage","VirtualMailbox","setMailboxes","startSearch","params","stopSearch","resetSelectedMessage","len","k","transform","messagesMap","sum","allMessages","promises","assign","flatten","MailboxController","$window","$scope","$state","$mdDialog","$mdToast","stateAccountLine truncated
{"version":3,"sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgIMIP.directive.js","Mailer/sgZoomableImage.directive.js"],"names":["Account","futureAccountData","then","angular","extend","this","_","forEach","identities","identity","fullName","full","email","$log","debug","JSON","stringify","undefined","$factory","$q","$timeout","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Mailbox","$Message","module","e","factory","$findAll","data","$unwrapCollection","fetch","o","collection","i","id","$accounts","prototype","getLength","$flattenMailboxes","length","getItemAtIndex","index","expandedMailboxes","$getMailboxes","options","_this","$mailboxes","reload","$find","$expanded","ready","expandedFolders","_visit","mailboxes","indexOf","children","settings","Mail","ExpandedFolders","isString","fromJson","when","allMailboxes","push","all","$$flattenMailboxes","saveState","account","reduce","mailbox","post","$getMailboxByType","type","_find","find","$getMailboxByPath","path","$newMailbox","name","toString","updateQuota","percent","format","description","Math","round","usedSpace","maxQuota","l","formatted","$quota","$newMessage","message","accountId","mailboxPath","$absolutePath","asDraft","editable","isNew","$addDelegate","user","deferred","defer","param","uid","map","delegates","resolve","users","status","reject","promise","$removeDelegate","splice","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","PRELOAD","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","quotas","split","component","asCSSIdentifier","join","$isLoading","$messages","uidsMap","$id","$acl","$isEditable","isEditable","$isNoInferiors","isNoInferiors","isUndefined","$shadowData","$omit","selectFolder","$lastVisibleIndex","max","$loadMessage","$selectedMessages","filter","selected","$selectedCount","isSelectedMessage","messageId","selectedMessage","$selectedMessage","$selectedMessageIndex","hasSelectedMessage","isDefined","$filter","sortingAttributes","filters","unseenCount","cancel","searchInput","secondFilter","match","searchBy","copy","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","timeInterval","endIndex","uids","futureHeadersData","startIndex","loaded","subject","min","loading","$unwrapHeaders","flags","isNoSelect","$rename","findParent","parent","parentMailbox","$save","sibling","localeCompare","$compact","$setFolderAs","$emptyTrash","$markAsRead","$flagMessages","messages","operation","msgUIDs","saveSelectedMessages","selectedMessages","selectedUIDs","download","exportFolder","$delete","$_deleteMessages","unseen","firstIndex","isread","forEachRight","selectedIndex","findIndex","$deleteMessages","$markOrUnMarkMessagesAsJunk","method","$copyMessages","folder","$moveMessages","$reset","value","key","save","response","error","$futureMailboxData","headers","$topIndex","invokeMap","threaded","msgs","msg","zipObject","isError","j","messageHeaders","$updateSubscribe","action","subscribed","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","to","cc","bcc","$formatFullAddresses","Message_STATUS","STATUS","$avatar","avatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","filterTags","query","excludedTags","re","RegExp","results","keys","tag","pair","search","includes","color","buildPath","nocache","draftId","$setUID","oldUID","attr","constructor","shortname","first","last","replace","image","$shortRecipients","result","count","total","$shortAddress","address","allowReplyAll","recipientsCount","isDraft","loadUnsafeContent","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","formattedMessage","$smime","validSignature","valid","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","element","elements","querySelectorAll","removeAttr","compile","$editableContent","from","toLowerCase","text","$plainContent","addTag","$addOrRemoveTag","removeTag","$imipAction","$reload","$sendMDN","shouldAskReceipt","$deleteAttachment","filename","attachmentAttrs","attachment","toggleFlag","isflagged","$loaded","useCache","$futureMessageData","$reply","$newDraft","$replyAll","$forward","origin","$send","startsWith","isanswered","isforwarded","privateAttributes","saveMessage","VirtualMailbox","setMailboxes","startSearch","params","finally","stopSearch","resetSelectedMessage","len","k","transform","messagesMap","sum","allMessages","promises","assign","flatten","MailboxController","$window","$scope","$state","$mdDialog","$mdToast","stLine truncated
@@ -93,25 +93,31 @@
*/
function $parentControllers() {
var originMessage, ctrls = {};
if ($window.opener) {
if ($window.opener.$mailboxController) {
if ($window.opener.$mailboxController.selectedFolder.type == 'draft') {
ctrls.draftMailboxCtrl = $window.opener.$mailboxController;
if ($window.opener.$messageController &&
$window.opener.$messageController.message.uid == stateMessage.uid) {
// The draft is opened in the parent window
ctrls.draftMessageCtrl = $window.opener.$messageController;
try {
if ($window.opener) {
if ('$mailboxController' in $window.opener &&
'selectedFolder' in $window.opener.$mailboxController) {
if ($window.opener.$mailboxController.selectedFolder.type == 'draft') {
ctrls.draftMailboxCtrl = $window.opener.$mailboxController;
if ('$messageController' in $window.opener &&
$window.opener.$messageController.message.uid == stateMessage.uid) {
// The draft is opened in the parent window
ctrls.draftMessageCtrl = $window.opener.$messageController;
}
}
}
else if (stateMessage.origin) {
originMessage = stateMessage.origin.message;
if ($window.opener.$mailboxController.selectedFolder.$id() == originMessage.$mailbox.$id()) {
// The message mailbox is opened in the parent window
ctrls.originMailboxCtrl = $window.opener.$mailboxController;
else if (stateMessage.origin) {
originMessage = stateMessage.origin.message;
if ($window.opener.$mailboxController.selectedFolder.$id() == originMessage.$mailbox.$id()) {
// The message mailbox is opened in the parent window
ctrls.originMailboxCtrl = $window.opener.$mailboxController;
}
}
}
}
}
catch (e) {}
return ctrls;
}
+1 -1
View File
@@ -1,2 +1,2 @@
!function(){"use strict";function a(a,c){a.state("preferences",{"abstract":!0,views:{preferences:{templateUrl:"preferences.html",controller:"PreferencesController",controllerAs:"app"}},resolve:{statePreferences:b}}).state("preferences.general",{url:"/general",views:{module:{templateUrl:"generalPreferences.html"}}}).state("preferences.calendars",{url:"/calendars",views:{module:{templateUrl:"calendarsPreferences.html"}}}).state("preferences.addressbooks",{url:"/addressbooks",views:{module:{templateUrl:"addressbooksPreferences.html"}}}).state("preferences.mailer",{url:"/mailer",views:{module:{templateUrl:"mailerPreferences.html"}}}),c.otherwise("/general")}function b(a){return a}function c(a){a.$on("$routeChangeError",function(a,b,c,d){console.error(a,b,c,d)})}angular.module("SOGo.PreferencesUI",["ui.router","ck","SOGo.Common","SOGo.MailerUI","SOGo.ContactsUI","SOGo.Authentication","as.sortable"]).config(a).run(c),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["Preferences"],c.$inject=["$rootScope"]}(),function(){"use strict";function a(a,b,c,d,e){function f(){return d>0?!1:!e}function g(){a.cancel()}function h(){a.hide()}var i=this;i.defaultPort=143,i.defaults=b,i.account=c,i.accountId=d,i.customFromIsReadonly=f,i.cancel=g,i.save=h,i.account.encryption?"ssl"==i.account.encryption&&(i.defaultPort=993):i.account.encryption="none"}a.$inject=["$mdDialog","defaults","account","accountId","mailCustomFromEnabled"],angular.module("SOGo.PreferencesUI").controller("AccountDialogController",a)}(),function(){"use strict";function a(a,b,c,d,e,f){function g(){c.cancel()}function h(){return o.filter.rules&&o.filter.rules.length>0&&o.filter.actions&&o.filter.actions.length>0}function i(a){c.hide()}function j(a){o.filter.rules||(o.filter.rules=[]),o.filter.rules.push({field:"subject",operator:"contains"})}function k(a){o.filter.rules.splice(a,1)}function m(a){o.filter.actions||(o.filter.actions=[]),o.filter.actions.push({method:"discard"})}function n(a){o.filter.actions.splice(a,1)}var o=this,p=b.sieveCapabilities,q=b.forwardEnabled,r=(b.vacationEnabled,"UTF-8"==b.sieveFolderEncoding?"name":"path");o.filter=d,o.mailboxes=e,o.labels=f,o.cancel=g,o.hasRulesAndActions=h,o.save=i,o.addMailFilterRule=j,o.removeMailFilterRule=k,o.addMailFilterAction=m,o.removeMailFilterAction=n,o.fieldLabels={subject:l("Subject"),from:l("From"),to:l("To"),cc:l("Cc"),to_or_cc:l("To or Cc"),size:l("Size (Kb)"),header:l("Header")},p.indexOf("body")>-1&&(o.fieldLabels.body=l("Body")),o.methodLabels={discard:l("Discard the message"),keep:l("Keep the message"),stop:l("Stop processing filter rules")},q&&(o.methodLabels.redirect=l("Forward the message to")),o.mailboxes=_.map(e,function(a){return{level:a.level,name:a.name,path:a[r]}}),p.indexOf("reject")>-1&&(o.methodLabels.reject=l("Send a reject message")),p.indexOf("fileinto")>-1&&(o.methodLabels.fileinto=l("File the message in")),(p.indexOf("imapflags")>-1||p.indexOf("imap4flags")>-1)&&(o.methodLabels.addflag=l("Flag the message with")),o.numberOperatorLabels={under:l("is under"),over:l("is over")},o.textOperatorLabels={is:l("is"),is_not:l("is not"),contains:l("contains"),contains_not:l("does not contain"),matches:l("matches"),matches_not:l("does not match")},p.indexOf("regex")>-1&&(o.textOperatorLabels.regex=l("matches regex"),o.textOperatorLabels.regex_not=l("does not match regex")),o.flagLabels={seen:l("Seen"),deleted:l("Deleted"),answered:l("Answered"),flagged:l("Flagged"),junk:l("Junk"),not_junk:l("Not Junk")}}a.$inject=["$scope","$window","$mdDialog","filter","mailboxes","labels"],angular.module("SOGo.PreferencesUI").controller("FiltersDialogController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o){function p(a,b){b.$valid&&(d("xs")&&e("left").close(),c.go("preferences."+a))}function q(a){j.confirm(l("Warning"),l("Save preferences and reload page now?"),{ok:l("Yes"),cancel:l("No")}).then(function(){G(a,{quick:!0}).then(function(){b.location.reload(!0)})})}function r(a){Q.preferences.defaults.SOGoCalendarCategoriesColors["New category"]="#aaa",Q.preferences.defaults.SOGoCalendarCategories.push("New category"),i("calendarCategory_"+(Q.preferences.defaults.SOGoCalendarCategories.length-1)),a.$setDirty()}function s(a,b){var c=Q.preferences.defaults.SOGoCalendarCategories[a];Q.preferences.defaults.SOGoCalendarCategories.splice(a,1),delete Q.preferences.defaults.SOGoCalendarCategoriesColors[c],b.$setDirty()}function t(a){Q.preferences.defaults.SOGoContactsCategories.push(""),i("contactCategory_"+(Q.preferences.defaults.SOGoContactsCategories.length-1)),a.$setDirty()}function u(a,b){Q.preferences.defaults.SOGoContactsCategories.splice(a,1),b.$setDirty()}function v(a,b){var c;Q.preferences.defaults.AuxiliaryMailAccounts.push({}),c=_.last(Q.preferences.defaults.AuxiliaryMailAccounts),angular.extend(c,{name:"",identities:[{fullName:"",email:""}],receipts:{receiptAction:"ignore",receiptNonRecipientAction:"ignore",receiptOutsideDomainAction:"ignore",receiptAnyAction:"ignLine truncated
!function(){"use strict";function a(a,c){a.state("preferences",{abstract:!0,views:{preferences:{templateUrl:"preferences.html",controller:"PreferencesController",controllerAs:"app"}},resolve:{statePreferences:b}}).state("preferences.general",{url:"/general",views:{module:{templateUrl:"generalPreferences.html"}}}).state("preferences.calendars",{url:"/calendars",views:{module:{templateUrl:"calendarsPreferences.html"}}}).state("preferences.addressbooks",{url:"/addressbooks",views:{module:{templateUrl:"addressbooksPreferences.html"}}}).state("preferences.mailer",{url:"/mailer",views:{module:{templateUrl:"mailerPreferences.html"}}}),c.otherwise("/general")}function b(a){return a}function c(a){a.$on("$routeChangeError",function(a,b,c,d){console.error(a,b,c,d)})}angular.module("SOGo.PreferencesUI",["ui.router","ck","SOGo.Common","SOGo.MailerUI","SOGo.ContactsUI","SOGo.Authentication","as.sortable"]).config(a).run(c),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["Preferences"],c.$inject=["$rootScope"]}(),function(){"use strict";function a(a,b,c,d,e){function f(){return!(d>0)&&!e}function g(){a.cancel()}function h(){a.hide()}var i=this;i.defaultPort=143,i.defaults=b,i.account=c,i.accountId=d,i.customFromIsReadonly=f,i.cancel=g,i.save=h,i.account.encryption?"ssl"==i.account.encryption&&(i.defaultPort=993):i.account.encryption="none"}a.$inject=["$mdDialog","defaults","account","accountId","mailCustomFromEnabled"],angular.module("SOGo.PreferencesUI").controller("AccountDialogController",a)}(),function(){"use strict";function a(a,b,c,d,e,f){function g(){c.cancel()}function h(){return o.filter.rules&&o.filter.rules.length>0&&o.filter.actions&&o.filter.actions.length>0}function i(a){c.hide()}function j(a){o.filter.rules||(o.filter.rules=[]),o.filter.rules.push({field:"subject",operator:"contains"})}function k(a){o.filter.rules.splice(a,1)}function m(a){o.filter.actions||(o.filter.actions=[]),o.filter.actions.push({method:"discard"})}function n(a){o.filter.actions.splice(a,1)}var o=this,p=b.sieveCapabilities,q=b.forwardEnabled,r=(b.vacationEnabled,"UTF-8"==b.sieveFolderEncoding?"name":"path");o.filter=d,o.mailboxes=e,o.labels=f,o.cancel=g,o.hasRulesAndActions=h,o.save=i,o.addMailFilterRule=j,o.removeMailFilterRule=k,o.addMailFilterAction=m,o.removeMailFilterAction=n,o.fieldLabels={subject:l("Subject"),from:l("From"),to:l("To"),cc:l("Cc"),to_or_cc:l("To or Cc"),size:l("Size (Kb)"),header:l("Header")},p.indexOf("body")>-1&&(o.fieldLabels.body=l("Body")),o.methodLabels={discard:l("Discard the message"),keep:l("Keep the message"),stop:l("Stop processing filter rules")},q&&(o.methodLabels.redirect=l("Forward the message to")),o.mailboxes=_.map(e,function(a){return{level:a.level,name:a.name,path:a[r]}}),p.indexOf("reject")>-1&&(o.methodLabels.reject=l("Send a reject message")),p.indexOf("fileinto")>-1&&(o.methodLabels.fileinto=l("File the message in")),(p.indexOf("imapflags")>-1||p.indexOf("imap4flags")>-1)&&(o.methodLabels.addflag=l("Flag the message with")),o.numberOperatorLabels={under:l("is under"),over:l("is over")},o.textOperatorLabels={is:l("is"),is_not:l("is not"),contains:l("contains"),contains_not:l("does not contain"),matches:l("matches"),matches_not:l("does not match")},p.indexOf("regex")>-1&&(o.textOperatorLabels.regex=l("matches regex"),o.textOperatorLabels.regex_not=l("does not match regex")),o.flagLabels={seen:l("Seen"),deleted:l("Deleted"),answered:l("Answered"),flagged:l("Flagged"),junk:l("Junk"),not_junk:l("Not Junk")}}a.$inject=["$scope","$window","$mdDialog","filter","mailboxes","labels"],angular.module("SOGo.PreferencesUI").controller("FiltersDialogController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o){function p(a,b){b.$valid&&(d("xs")&&e("left").close(),c.go("preferences."+a))}function q(a){j.confirm(l("Warning"),l("Save preferences and reload page now?"),{ok:l("Yes"),cancel:l("No")}).then(function(){G(a,{quick:!0}).then(function(){b.location.reload(!0)})})}function r(a){Q.preferences.defaults.SOGoCalendarCategoriesColors["New category"]="#aaa",Q.preferences.defaults.SOGoCalendarCategories.push("New category"),i("calendarCategory_"+(Q.preferences.defaults.SOGoCalendarCategories.length-1)),a.$setDirty()}function s(a,b){var c=Q.preferences.defaults.SOGoCalendarCategories[a];Q.preferences.defaults.SOGoCalendarCategories.splice(a,1),delete Q.preferences.defaults.SOGoCalendarCategoriesColors[c],b.$setDirty()}function t(a){Q.preferences.defaults.SOGoContactsCategories.push(""),i("contactCategory_"+(Q.preferences.defaults.SOGoContactsCategories.length-1)),a.$setDirty()}function u(a,b){Q.preferences.defaults.SOGoContactsCategories.splice(a,1),b.$setDirty()}function v(a,b){var c;Q.preferences.defaults.AuxiliaryMailAccounts.push({}),c=_.last(Q.preferences.defaults.AuxiliaryMailAccounts),angular.extend(c,{name:"",identities:[{fullName:"",email:""}],receipts:{receiptAction:"ignore",receiptNonRecipientAction:"ignore",receiptOutsideDomainAction:"ignore",receiptAnyAction:"ignorLine truncated
//# sourceMappingURL=Preferences.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"sources":["Preferences/Preferences.app.js","Preferences/AccountDialogController.js","Preferences/FiltersDialogController.js","Preferences/PreferencesController.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","abstract","views","preferences","templateUrl","controller","controllerAs","resolve","statePreferences","url","module","otherwise","Preferences","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","angular","config","run","$inject","AccountDialogController","$mdDialog","defaults","account","accountId","mailCustomFromEnabled","customFromIsReadonly","cancel","save","hide","vm","this","defaultPort","encryption","FiltersDialogController","$scope","$window","filter","mailboxes","labels","hasRulesAndActions","rules","length","actions","form","addMailFilterRule","push","field","operator","removeMailFilterRule","index","splice","addMailFilterAction","method","removeMailFilterAction","sieveCapabilities","forwardEnabled","sieveFolderPathAttribute","vacationEnabled","sieveFolderEncoding","fieldLabels","subject","l","from","to","cc","to_or_cc","size","header","indexOf","body","methodLabels","discard","keep","stop","redirect","_","map","mailbox","level","name","path","reject","fileinto","addflag","numberOperatorLabels","under","over","textOperatorLabels","is","is_not","contains","contains_not","matches","matches_not","regex","regex_not","flagLabels","seen","deleted","answered","flagged","junk","not_junk","PreferencesController","$q","$state","$mdMedia","$mdSidenav","$mdToast","sgSettings","focus","Dialog","User","Account","Authentication","go","$valid","close","onLanguageChange","confirm","ok","then","quick","location","reload","addCalendarCategory","SOGoCalendarCategoriesColors","SOGoCalendarCategories","$setDirty","removeCalendarCategory","key","addContactCategory","SOGoContactsCategories","removeContactCategory","addMailAccount","ev","AuxiliaryMailAccounts","last","extend","identities","fullName","email","receipts","receiptAction","receiptNonRecipientAction","receiptOutsideDomainAction","receiptAnyAction","show","targetEvent","locals","window","pop","editMailAccount","removeMailAccount","addMailLabel","guid","SOGoMailLabelsColors","removeMailLabel","addMailFilter","match","SOGoSieveFilters","editMailFilter","copy","removeMailFilter","addDefaultEmailAddresses","v","isDefined","Vacation","autoReplyEmailAddresses","split","union","defaultEmailAddresses","join","userFilter","search","excludedUsers","minimumSearchLength","$filter","users","forEach","user","$$image","image","avatar","c_email","no_404","confirmChanges","$event","target","$dirty","preventDefault","stopPropagation","tagName","parentNode","href","options","i","sendForm","addresses","defaultAddresses","domains","domain","forwardConstraints","Forward","enabled","forwardAddress","adr","toLowerCase","alert","$save","data","simple","content","position","hideDelay","$setPristine","canChangePassword","passwords","newPassword","newPasswordConfirmation","changePassword","title","undefined","msg","timeZonesListFilter","timeZonesList","value","toUpperCase","updateVacationDates","d","toggleVacationStartDate","toggleVacationEndDate","startDateEnabled","endDateEnabled","startDate","getTime","endDate","Date","addDays","tomorrow","validateVacationStartDate","date","r","validateVacationEndDate","today","beginOfDay","timeZonesSearchText","sieveVariablesCapability","id","$getMailboxes","allMailboxes","$flattenMailboxes","all","ready","SOGoAlternateAvatar","$alternateAvatar"],"mappings":"CAGA,WACE,YAUA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,eACLC,YAAU,EACVC,OACEC,aACEC,YAAa,mBACbC,WAAY,wBACZC,aAAc,QAGlBC,SACEC,iBAAkBA,KAGrBR,MAAM,uBACLS,IAAK,WACLP,OACEQ,QACEN,YAAa,8BAIlBJ,MAAM,yBACLS,IAAK,aACLP,OACEQ,QACEN,YAAa,gCAIlBJ,MAAM,4BACLS,IAAK,gBACLP,OACEQ,QACEN,YAAa,mCAIlBJ,MAAM,sBACLS,IAAK,UACLP,OACEQ,QACEN,YAAa,6BAMrBL,EAAmBY,UAAU,YAO/B,QAASH,GAAiBI,GACxB,MAAOA,GAOT,QAASC,GAASC,GAChBA,EAAWC,IAAI,oBAAqB,SAASC,EAAOC,EAASC,EAAUC,GACrEC,QAAQC,MAAML,EAAOC,EAASC,EAAUC,KA1E5CG,QAAQZ,OAAO,sBAAuB,YAAa,KAAM,cAAe,gBAAiB,kBAAmB,sBAAuB,gBAChIa,OAAO1B,GACP2B,IAAIX,GAKPhB,EAAU4B,SAAW,iBAAkB,sBAwDvCjB,EAAiBiB,SAAW,eAQ5BZ,EAASY,SAAW,iBC1EtB,WACE,YAMA,SAASC,GAAwBC,EAAWC,EAAUC,EAASC,EAAWC,GAgBxE,QAASC,KACP,MAAIF,GAAY,GACP,GAEDC,EAGV,QAASE,KACPN,EAAUM,SAGZ,QAASC,KACPP,EAAUQ,OA3BZ,GAAIC,GAAKC,IAETD,GAAGE,YAAc,IACjBF,EAAGR,SAAWA,EACdQ,EAAGP,QAAUA,EACbO,EAAGN,UAAYA,EACfM,EAAGJ,qBAAuBA,EAC1BI,EAAGH,OAASA,EACZG,EAAGF,KAAOA,EAELE,EAAGP,QAAQU,WAEkB,OAAzBH,EAAGP,QAAQU,aAClBH,EAAGE,YAAc,KAFjBF,EAAGP,QAAQU,WAAa,OAb5Bb,EAAwBD,SAAW,YAAa,WAAY,UAAW,YAAa,yBAiCpFH,QACGZ,OAAO,sBACPL,WAAW,0BAA2BqB,MCzC3C,WACE,YAMA,SAASc,GAAwBC,EAAQC,EAASf,EAAWgB,EAAQC,EAAWC,GAsF9E,QAASZ,KACPN,EAAUM,SAGZ,QAASa,KACP,MAAOV,GAAGO,OAAOI,OAASX,EAAGO,OAAOI,MAAMC,OAAS,GACjDZ,EAAGO,OAAOM,SAAWb,EAAGO,OAAOM,QAAQD,OAAS,EAGpD,QAASd,GAAKgB,GACZvB,EAAUQ,OAGZ,QAASgB,GAAkBnC,GACpBoB,EAAGO,OAAOI,QACbX,EAAGO,OAAOI,UAEZX,EAAGO,OAAOI,MAAMK,MAAOC,MAAO,UAAWC,SAAU,aAGrD,QAASC,GAAqBC,GALine truncated
{"version":3,"sources":["Preferences/Preferences.app.js","Preferences/AccountDialogController.js","Preferences/FiltersDialogController.js","Preferences/PreferencesController.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","abstract","views","preferences","templateUrl","controller","controllerAs","resolve","statePreferences","url","module","otherwise","Preferences","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","angular","config","run","$inject","AccountDialogController","$mdDialog","defaults","account","accountId","mailCustomFromEnabled","customFromIsReadonly","cancel","save","hide","vm","this","defaultPort","encryption","FiltersDialogController","$scope","$window","filter","mailboxes","labels","hasRulesAndActions","rules","length","actions","form","addMailFilterRule","push","field","operator","removeMailFilterRule","index","splice","addMailFilterAction","method","removeMailFilterAction","sieveCapabilities","forwardEnabled","sieveFolderPathAttribute","vacationEnabled","sieveFolderEncoding","fieldLabels","subject","l","from","to","cc","to_or_cc","size","header","indexOf","body","methodLabels","discard","keep","stop","redirect","_","map","mailbox","level","name","path","reject","fileinto","addflag","numberOperatorLabels","under","over","textOperatorLabels","is","is_not","contains","contains_not","matches","matches_not","regex","regex_not","flagLabels","seen","deleted","answered","flagged","junk","not_junk","PreferencesController","$q","$state","$mdMedia","$mdSidenav","$mdToast","sgSettings","focus","Dialog","User","Account","Authentication","go","$valid","close","onLanguageChange","confirm","ok","then","quick","location","reload","addCalendarCategory","SOGoCalendarCategoriesColors","SOGoCalendarCategories","$setDirty","removeCalendarCategory","key","addContactCategory","SOGoContactsCategories","removeContactCategory","addMailAccount","ev","AuxiliaryMailAccounts","last","extend","identities","fullName","email","receipts","receiptAction","receiptNonRecipientAction","receiptOutsideDomainAction","receiptAnyAction","show","targetEvent","locals","window","catch","pop","editMailAccount","removeMailAccount","addMailLabel","guid","SOGoMailLabelsColors","removeMailLabel","addMailFilter","match","SOGoSieveFilters","editMailFilter","copy","removeMailFilter","addDefaultEmailAddresses","v","isDefined","Vacation","autoReplyEmailAddresses","split","union","defaultEmailAddresses","join","userFilter","search","excludedUsers","minimumSearchLength","$filter","users","forEach","user","$$image","image","avatar","c_email","no_404","confirmChanges","$event","target","$dirty","preventDefault","stopPropagation","tagName","parentNode","href","options","i","sendForm","addresses","defaultAddresses","domains","domain","forwardConstraints","Forward","enabled","forwardAddress","adr","toLowerCase","alert","$save","data","simple","content","position","hideDelay","$setPristine","canChangePassword","passwords","newPassword","newPasswordConfirmation","changePassword","title","finally","undefined","msg","timeZonesListFilter","timeZonesList","value","toUpperCase","updateVacationDates","d","toggleVacationStartDate","toggleVacationEndDate","startDateEnabled","endDateEnabled","startDate","getTime","endDate","Date","addDays","tomorrow","validateVacationStartDate","date","r","validateVacationEndDate","today","beginOfDay","timeZonesSearchText","sieveVariablesCapability","id","$getMailboxes","allMailboxes","$flattenMailboxes","all","ready","SOGoAlternateAvatar","$alternateAvatar"],"mappings":"CAGA,WACE,YAUA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,eACLC,UAAU,EACVC,OACEC,aACEC,YAAa,mBACbC,WAAY,wBACZC,aAAc,QAGlBC,SACEC,iBAAkBA,KAGrBR,MAAM,uBACLS,IAAK,WACLP,OACEQ,QACEN,YAAa,8BAIlBJ,MAAM,yBACLS,IAAK,aACLP,OACEQ,QACEN,YAAa,gCAIlBJ,MAAM,4BACLS,IAAK,gBACLP,OACEQ,QACEN,YAAa,mCAIlBJ,MAAM,sBACLS,IAAK,UACLP,OACEQ,QACEN,YAAa,6BAMrBL,EAAmBY,UAAU,YAO/B,QAASH,GAAiBI,GACxB,MAAOA,GAOT,QAASC,GAASC,GAChBA,EAAWC,IAAI,oBAAqB,SAASC,EAAOC,EAASC,EAAUC,GACrEC,QAAQC,MAAML,EAAOC,EAASC,EAAUC,KA1E5CG,QAAQZ,OAAO,sBAAuB,YAAa,KAAM,cAAe,gBAAiB,kBAAmB,sBAAuB,gBAChIa,OAAO1B,GACP2B,IAAIX,GAKPhB,EAAU4B,SAAW,iBAAkB,sBAwDvCjB,EAAiBiB,SAAW,eAQ5BZ,EAASY,SAAW,iBC1EtB,WACE,YAMA,SAASC,GAAwBC,EAAWC,EAAUC,EAASC,EAAWC,GAgBxE,QAASC,KACP,QAAIF,EAAY,KAGRC,EAGV,QAASE,KACPN,EAAUM,SAGZ,QAASC,KACPP,EAAUQ,OA3BZ,GAAIC,GAAKC,IAETD,GAAGE,YAAc,IACjBF,EAAGR,SAAWA,EACdQ,EAAGP,QAAUA,EACbO,EAAGN,UAAYA,EACfM,EAAGJ,qBAAuBA,EAC1BI,EAAGH,OAASA,EACZG,EAAGF,KAAOA,EAELE,EAAGP,QAAQU,WAEkB,OAAzBH,EAAGP,QAAQU,aAClBH,EAAGE,YAAc,KAFjBF,EAAGP,QAAQU,WAAa,OAb5Bb,EAAwBD,SAAW,YAAa,WAAY,UAAW,YAAa,yBAiCpFH,QACGZ,OAAO,sBACPL,WAAW,0BAA2BqB,MCzC3C,WACE,YAMA,SAASc,GAAwBC,EAAQC,EAASf,EAAWgB,EAAQC,EAAWC,GAsF9E,QAASZ,KACPN,EAAUM,SAGZ,QAASa,KACP,MAAOV,GAAGO,OAAOI,OAASX,EAAGO,OAAOI,MAAMC,OAAS,GACjDZ,EAAGO,OAAOM,SAAWb,EAAGO,OAAOM,QAAQD,OAAS,EAGpD,QAASd,GAAKgB,GACZvB,EAAUQ,OAGZ,QAASgB,GAAkBnC,GACpBoB,EAAGO,OAAOI,QACbX,EAAGO,OAAOI,UAEZX,EAAGO,OAAOI,MAAMK,MAAOC,MAAO,UAAWC,SAAU,aAGrD,QALine truncated
@@ -1,2 +1,2 @@
!function(){"use strict";function a(){var b=this;this.defaults={},this.settings={},this.defaultsPromise=a.$$resource.fetch("jsonDefaults").then(function(c){var d=c||{},e=_.fromPairs(_.map(d.SOGoMailLabelsColors,function(a,b){return"$"==b.charAt(0)?["_"+b,a]:[b,a]}));return d.SOGoMailLabelsColors=e,d.SOGoRememberLastModule&&(d.SOGoLoginModule="Last"),d.SOGoMailAutoSave=parseInt(d.SOGoMailAutoSave)||0,d.SOGoMailComposeFontSizeEnabled=parseInt(d.SOGoMailComposeFontSize)>0,window.CKEDITOR&&d.SOGoMailComposeFontSizeEnabled&&(window.CKEDITOR.config.fontSize_defaultLabel=d.SOGoMailComposeFontSize,window.CKEDITOR.addCss(".cke_editable { font-size: "+d.SOGoMailComposeFontSize+"px; }")),d.Vacation?(d.Vacation.startDate?d.Vacation.startDate=new Date(1e3*parseInt(d.Vacation.startDate)):(d.Vacation.startDateEnabled=0,d.Vacation.startDate=new Date,d.Vacation.startDate=d.Vacation.startDate.beginOfDay(),d.Vacation.startDate.addDays(1)),d.Vacation.endDate?d.Vacation.endDate=new Date(1e3*parseInt(d.Vacation.endDate)):(d.Vacation.endDateEnabled=0,d.Vacation.endDate=new Date(d.Vacation.startDate.getTime()),d.Vacation.endDate.addDays(1)),d.Vacation.autoReplyEmailAddresses&&d.Vacation.autoReplyEmailAddresses.length?d.Vacation.autoReplyEmailAddresses=d.Vacation.autoReplyEmailAddresses.join(","):delete d.Vacation.autoReplyEmailAddresses):d.Vacation={},angular.isUndefined(d.Vacation.autoReplyEmailAddresses)&&angular.isDefined(window.defaultEmailAddresses)&&(d.Vacation.autoReplyEmailAddresses=window.defaultEmailAddresses),angular.isUndefined(d.Vacation.daysBetweenResponse)&&(d.Vacation.daysBetweenResponse=7),angular.isUndefined(d.Vacation.startDate)&&(d.Vacation.startDateEnabled=0,d.Vacation.startDate=new Date),angular.isUndefined(d.Vacation.endDate)&&(d.Vacation.endDateEnabled=0,d.Vacation.endDate=new Date),d.Forward&&d.Forward.forwardAddress&&(d.Forward.forwardAddress=d.Forward.forwardAddress.join(",")),angular.isUndefined(d.SOGoCalendarCategoriesColors)&&(d.SOGoCalendarCategoriesColors={},d.SOGoCalendarCategories=[]),angular.isUndefined(d.SOGoContactsCategories)&&(d.SOGoContactsCategories=[]),angular.extend(b.defaults,d),b.$mdDateLocaleProvider=a.$mdDateLocaleProvider,angular.extend(b.$mdDateLocaleProvider,d.locale),angular.extend(b.$mdDateLocaleProvider,{firstDayOfWeek:d.SOGoFirstDayOfWeek,firstWeekOfYear:d.SOGoFirstWeekOfYear}),b.$mdDateLocaleProvider.firstDayOfWeek=parseInt(d.SOGoFirstDayOfWeek),b.$mdDateLocaleProvider.weekNumberFormatter=function(a){return l("Week %d",a)},b.$mdDateLocaleProvider.msgCalendar=l("Calender"),b.$mdDateLocaleProvider.msgOpenCalendar=l("Open Calendar"),b.$mdDateLocaleProvider.parseDate=function(a){return a?a.parseDate(b.$mdDateLocaleProvider,d.SOGoShortDateFormat):new Date(NaN)},b.$mdDateLocaleProvider.formatDate=function(a){return a?a.format(b.$mdDateLocaleProvider,a.$dateFormat||d.SOGoShortDateFormat):""},b.$mdDateLocaleProvider.parseTime=function(a){return a?a.parseDate(b.$mdDateLocaleProvider,d.SOGoTimeFormat):new Date(NaN)},b.$mdDateLocaleProvider.formatTime=function(a){return a?a.format(b.$mdDateLocaleProvider,d.SOGoTimeFormat):""},b.defaults}),this.settingsPromise=a.$$resource.fetch("jsonSettings").then(function(c){return c.Calendar&&(c.Calendar.PreventInvitationsWhitelist?c.Calendar.PreventInvitationsWhitelist=_.map(c.Calendar.PreventInvitationsWhitelist,function(c,d){var e=/^(.+)\s<(\S+)>$/.exec(c),f=new a.$User({uid:d,cn:e[1],c_email:e[2]});return f.$$image||b.avatar(f.c_email,32,{no_404:!0}).then(function(a){f.$$image=a}),f}):c.Calendar.PreventInvitationsWhitelist=[]),angular.extend(b.settings,c),b.settings})}a.$factory=["$q","$timeout","$log","$mdDateLocale","sgSettings","Gravatar","Resource","User",function(b,c,d,e,f,g,h,i){return angular.extend(a,{$q:b,$timeout:c,$log:d,$mdDateLocaleProvider:e,$gravatar:g,$$resource:new h(f.activeUser("folderURL"),f.activeUser()),$resourcesURL:f.resourcesURL(),$User:i}),new a}];try{angular.module("SOGo.PreferencesUI")}catch(b){angular.module("SOGo.PreferencesUI",["SOGo.Common"])}angular.module("SOGo.PreferencesUI").factory("Preferences",a.$factory),a.prototype.ready=function(){return a.$q.all([this.defaultsPromise,this.settingsPromise])},a.prototype.avatar=function(b,c,d){var e=this;return this.ready().then(function(){var f,g=e.defaults.SOGoAlternateAvatar;return f=e.defaults.SOGoGravatarEnabled?a.$gravatar(b,c,g,d):[a.$resourcesURL,"img","ic_person_grey_24px.svg"].join("/"),d&&d.dstObject&&d.dstAttr&&(d.dstObject[d.dstAttr]=f),f})},a.prototype.$save=function(){return a.$$resource.save("Preferences",this.$omit(!0)).then(function(a){return a})},a.prototype.$omit=function(a){var b,c,d;return b={},d={},angular.forEach(this,function(c,d){"constructor"!=d&&"$"!=d[0]&&(a?b[d]=angular.copy(c):b[d]=c)}),c=_.fromPairs(_.map(b.defaults.SOGoMailLabelsColors,function(a,b){return"_"==b.charAt(0)&&"$"==b.charAt(1)?b.length>2&&"$"==b.charAt(2)?[a[0].toLowerCase().replace(/[ \(\)\/\{%\*<>\\\"]/g,"_"),a]:[b.substring(1),a]:[b,a]})),b.defaults.SOGoMailLabelsColors=c,b.Line truncated
!function(){"use strict";function a(){var b=this;this.defaults={},this.settings={},this.defaultsPromise=a.$$resource.fetch("jsonDefaults").then(function(c){var d=c||{},e=_.fromPairs(_.map(d.SOGoMailLabelsColors,function(a,b){return"$"==b.charAt(0)?["_"+b,a]:[b,a]}));return d.SOGoMailLabelsColors=e,d.SOGoRememberLastModule&&(d.SOGoLoginModule="Last"),d.SOGoMailAutoSave=parseInt(d.SOGoMailAutoSave)||0,d.SOGoMailComposeFontSizeEnabled=parseInt(d.SOGoMailComposeFontSize)>0,window.CKEDITOR&&d.SOGoMailComposeFontSizeEnabled&&(window.CKEDITOR.config.fontSize_defaultLabel=d.SOGoMailComposeFontSize,window.CKEDITOR.addCss(".cke_editable { font-size: "+d.SOGoMailComposeFontSize+"px; }")),d.Vacation?(d.Vacation.startDate?d.Vacation.startDate=new Date(1e3*parseInt(d.Vacation.startDate)):(d.Vacation.startDateEnabled=0,d.Vacation.startDate=new Date,d.Vacation.startDate=d.Vacation.startDate.beginOfDay(),d.Vacation.startDate.addDays(1)),d.Vacation.endDate?d.Vacation.endDate=new Date(1e3*parseInt(d.Vacation.endDate)):(d.Vacation.endDateEnabled=0,d.Vacation.endDate=new Date(d.Vacation.startDate.getTime()),d.Vacation.endDate.addDays(1)),d.Vacation.autoReplyEmailAddresses&&d.Vacation.autoReplyEmailAddresses.length?d.Vacation.autoReplyEmailAddresses=d.Vacation.autoReplyEmailAddresses.join(","):delete d.Vacation.autoReplyEmailAddresses):d.Vacation={},angular.isUndefined(d.Vacation.autoReplyEmailAddresses)&&angular.isDefined(window.defaultEmailAddresses)&&(d.Vacation.autoReplyEmailAddresses=window.defaultEmailAddresses),angular.isUndefined(d.Vacation.daysBetweenResponse)&&(d.Vacation.daysBetweenResponse=7),angular.isUndefined(d.Vacation.startDate)&&(d.Vacation.startDateEnabled=0,d.Vacation.startDate=new Date),angular.isUndefined(d.Vacation.endDate)&&(d.Vacation.endDateEnabled=0,d.Vacation.endDate=new Date),d.Forward&&d.Forward.forwardAddress&&(d.Forward.forwardAddress=d.Forward.forwardAddress.join(",")),angular.isUndefined(d.SOGoCalendarCategoriesColors)&&(d.SOGoCalendarCategoriesColors={},d.SOGoCalendarCategories=[]),angular.isUndefined(d.SOGoContactsCategories)&&(d.SOGoContactsCategories=[]),angular.extend(b.defaults,d),b.$mdDateLocaleProvider=a.$mdDateLocaleProvider,angular.extend(b.$mdDateLocaleProvider,d.locale),angular.extend(b.$mdDateLocaleProvider,{firstDayOfWeek:d.SOGoFirstDayOfWeek,firstWeekOfYear:d.SOGoFirstWeekOfYear}),b.$mdDateLocaleProvider.firstDayOfWeek=parseInt(d.SOGoFirstDayOfWeek),b.$mdDateLocaleProvider.weekNumberFormatter=function(a){return l("Week %d",a)},b.$mdDateLocaleProvider.msgCalendar=l("Calender"),b.$mdDateLocaleProvider.msgOpenCalendar=l("Open Calendar"),b.$mdDateLocaleProvider.parseDate=function(a){return a?a.parseDate(b.$mdDateLocaleProvider,d.SOGoShortDateFormat):new Date(NaN)},b.$mdDateLocaleProvider.formatDate=function(a){return a?a.format(b.$mdDateLocaleProvider,a.$dateFormat||d.SOGoShortDateFormat):""},b.$mdDateLocaleProvider.parseTime=function(a){return a?a.parseDate(b.$mdDateLocaleProvider,d.SOGoTimeFormat):new Date(NaN)},b.$mdDateLocaleProvider.formatTime=function(a){return a?a.format(b.$mdDateLocaleProvider,d.SOGoTimeFormat):""},b.defaults}),this.settingsPromise=a.$$resource.fetch("jsonSettings").then(function(c){return c.Calendar&&(c.Calendar.PreventInvitationsWhitelist?c.Calendar.PreventInvitationsWhitelist=_.map(c.Calendar.PreventInvitationsWhitelist,function(c,d){var e=/^(.+)\s<(\S+)>$/.exec(c),f=new a.$User({uid:d,cn:e[1],c_email:e[2]});return f.$$image||b.avatar(f.c_email,32,{no_404:!0}).then(function(a){f.$$image=a}),f}):c.Calendar.PreventInvitationsWhitelist=[]),angular.extend(b.settings,c),b.settings})}a.$factory=["$q","$timeout","$log","$mdDateLocale","sgSettings","Gravatar","Resource","User",function(b,c,d,e,f,g,h,i){return angular.extend(a,{$q:b,$timeout:c,$log:d,$mdDateLocaleProvider:e,$gravatar:g,$$resource:new h(f.activeUser("folderURL"),f.activeUser()),$resourcesURL:f.resourcesURL(),$User:i}),new a}];try{angular.module("SOGo.PreferencesUI")}catch(a){angular.module("SOGo.PreferencesUI",["SOGo.Common"])}angular.module("SOGo.PreferencesUI").factory("Preferences",a.$factory),a.prototype.ready=function(){return a.$q.all([this.defaultsPromise,this.settingsPromise])},a.prototype.avatar=function(b,c,d){var e=this;return this.ready().then(function(){var f,g=e.defaults.SOGoAlternateAvatar;return f=e.defaults.SOGoGravatarEnabled?a.$gravatar(b,c,g,d):[a.$resourcesURL,"img","ic_person_grey_24px.svg"].join("/"),d&&d.dstObject&&d.dstAttr&&(d.dstObject[d.dstAttr]=f),f})},a.prototype.$save=function(){return a.$$resource.save("Preferences",this.$omit(!0)).then(function(a){return a})},a.prototype.$omit=function(a){var b,c,d;return b={},d={},angular.forEach(this,function(c,d){"constructor"!=d&&"$"!=d[0]&&(a?b[d]=angular.copy(c):b[d]=c)}),c=_.fromPairs(_.map(b.defaults.SOGoMailLabelsColors,function(a,b){return"_"==b.charAt(0)&&"$"==b.charAt(1)?b.length>2&&"$"==b.charAt(2)?[a[0].toLowerCase().replace(/[ \(\)\/\{%\*<>\\\"]/g,"_"),a]:[b.substring(1),a]:[b,a]})),b.defaults.SOGoMailLabelsColors=c,b.Line truncated
//# sourceMappingURL=Preferences.services.js.map
@@ -1,4 +1,4 @@
!function(){"use strict";function a(b){if(this.init(b),this.name&&!this.id){var c=a.$$resource.create("createFolder",this.name);this.$unwrap(c)}}a.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Component","Acl",function(b,c,d,e,f,g,h,i){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL")+"Calendar",e.activeUser()),$Preferences:g,$Component:h,$$Acl:i,activeUser:e.activeUser(),$view:null}),a}];try{angular.module("SOGo.SchedulerUI")}catch(b){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").value("CalendarSettings",{EventDragDayLength:96,EventDragHorizontalOffset:3,ConflictHTTPErrorCode:409}).factory("Calendar",a.$factory),a.$defaultCalendar=function(){var b,c=a.$Preferences.defaults.SOGoDefaultCalendar;return"first"==c&&(b=_.find(a.$findAll(null,!0),function(a){return a.active}))?b.id:"personal"},a.$add=function(b){var c,d,e;c=b.isWebCalendar?this.$webcalendars:b.isSubscription?this.$subscriptions:this.$calendars,d=_.find(c,function(a){return"personal"==b.id||"personal"!=a.id&&1===a.name.localeCompare(b.name)}),e=d?_.indexOf(_.map(c,"id"),d.id):1,c.splice(e,0,b),this.$Preferences.ready().then(function(){a.$Preferences.settings.Calendar.FoldersOrder&&a.saveFoldersOrder(_.flatMap(a.$findAll(),"id"))}),a.$reloadAll()},a.$findAll=function(b,c){var d=this;if(b)this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],angular.forEach(b,function(b,c){var e=new a(b);e.isWebCalendar?d.$webcalendars.push(e):e.isSubscription?d.$subscriptions.push(e):d.$calendars.push(e)});else if(angular.isUndefined(this.$calendars))return this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],a.$$resource.fetch("calendarslist").then(function(b){return a.$findAll(b.calendars,c)});return c?_.union(this.$calendars,_.filter(this.$subscriptions,function(a){return a.isOwned||a.acls.objectCreator})):_.union(this.$calendars,this.$subscriptions,this.$webcalendars)},a.$reloadAll=function(){var b=this;a.$$resource.fetch("calendarslist").then(function(c){_.forEach(c.calendars,function(c){var d,e;d=c.isWebCalendar?b.$webcalendars:c.owner!=a.activeUser.login?b.$subscriptions:b.$calendars,e=_.find(d,function(a){return a.id==c.id}),e&&e.init(c)})})},a.$get=function(b){var c;return c=_.find(a.$calendars,function(a){return a.id==b}),c||(c=_.find(a.$subscriptions,function(a){return a.id==b})),c||(c=_.find(a.$webcalendars,function(a){return a.id==b})),c},a.$getIndex=function(b){var c;return c=_.indexOf(_.map(a.$calendars,"id"),b),0>c&&(c=_.indexOf(_.map(a.$subscriptions,"id"),b)),0>c&&(c=_.indexOf(_.map(a.$webcalendars,"id"),b)),c},a.$subscribe=function(b,c){var d=this;return a.$$resource.userResource(b).fetch(c,"subscribe").then(function(b){var c=new a(angular.extend({active:1},b));return _.find(d.$subscriptions,function(a){return a.id==b.id})||a.$add(c),c})},a.$addWebCalendar=function(b){var c=this,d=a.$q.defer();return _.find(c.$webcalendars,function(a){return a.urls.webCalendarURL==b})?d.reject():a.$$resource.post(null,"addWebCalendar",{url:b}).then(function(c){angular.extend(c,{isWebCalendar:!0,isEditable:!0,isRemote:!1,owner:a.activeUser.login,urls:{webCalendarURL:b}});var e=new a(c);a.$$resource.fetch(e.id,"reload").then(function(b){a.$log.debug(JSON.stringify(b,void 0,2)),a.$add(e),d.resolve()},function(a){401==a.status?d.resolve(e):d.reject()})},d.reject),d.promise},a.reloadWebCalendars=function(){var b=[];return _.forEach(this.$webcalendars,function(c){var d=a.$$resource.fetch(c.id,"reload");d.then(function(a){c.$error=!1},function(a){c.$error=l(a.statusText)}),b.push(d)}),a.$q.all(b)},a.$deleteComponents=function(b){var c={},d=[];return _.forEach(b,function(a){angular.isDefined(c[a.pid])||(c[a.pid]=[]),c[a.pid].push(a.id)}),_.forEach(c,function(b,c){d.push(a.$$resource.post(c,"batchDelete",{uids:b}))}),a.$q.all(d)},a.saveFoldersOrder=function(b){return this.$$resource.post(null,"saveFoldersOrder",{folders:b}).then(function(){return a.$Preferences.settings.Calendar.FoldersOrder=b,b?void 0:a.$$resource.fetch("calendarslist").then(function(b){return a.$findAll(b.calendars)})})},a.prototype.init=function(b){this.color=this.color||"#AAAAAA",this.active=1,angular.extend(this,b),this.id&&(this.$acl=new a.$$Acl("Calendar/"+this.id)),this.isOwned=a.activeUser.isSuperUser||this.owner==a.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=a.activeUser.login,angular.isUndefined(this.$shadowData)&&(this.$shadowData=this.$omit())},a.prototype.$id=function(){return this.id?a.$q.when(this.id):this.$futureCalendarData.then(function(a){return a.id})},a.prototype.getClassName=function(a){return angular.isUndefined(a)&&(a="fg"),a+"-folder"+this.id},a.prototype.$rename=function(){var b,c,d=this;return this.name==this.$shadowData.name?a.$q.when():(c=this.isWebCalendar?a.$webcalendars:this.isSubscription?a.$subscriptions:a.$calendars,b=_.indexOf(_.map(c,"id"),this.id),b>-1?this.$save().then(function(){c.splice(b,1),a.$add(d)}):a.$q.reject()Line truncated
G.filter=A,G.filteredBy=B,G.sort=C,G.sortedBy=D,G.reload=E,G.cancelSearch=F,G.mode={search:!1,multiple:0},n(H),i.ready().then(function(){var a="events";"tasksListView"==i.settings.Calendar.SelectedList&&(G.selectedList=1,a="tasks"),o(a,{reload:!0})}),a.$on("calendars:list",function(){m.$filter(G.componentType,{reload:!0})}),a.$on("calendar:dragend",y),b.$on("$destroy",function(){_.forEach(H,function(a){f.deregisterHotkey(a)})})}a.$inject=["$rootScope","$scope","$timeout","$state","$mdDialog","sgHotkeys","sgFocus","Dialog","Preferences","CalendarSettings","Calendar","Component"],angular.module("SOGo.SchedulerUI").controller("CalendarListController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o){function p(a,b,c){return a.sortableScope.element[0]==b.element[0]}function q(){m.saveFoldersOrder(_.flatMap(m.$findAll(),"id"))}function r(){G.sortableMode=!G.sortableMode,G.filter.name=""}function s(){m.saveFoldersOrder()}function t(a){i.prompt(l("New calendar"),l("Name of the Calendar")).then(function(a){var b=new m({name:a,isEditable:!0,isRemote:!1,owner:UserLogin});b.$id().then(function(){m.$add(b)})})}function u(){function a(a,b,c,d){var e=this,f=c.split("/"),g=f[2];e.title=l("Please identify yourself to %{0}").formatted(g),e.authenticate=function(a){!a.$valid&&a.$error.required||d.setCredentials(e.username,e.password).then(function(a){b.hide()},function(b){a.password.$setValidity("credentials",!1)})},e.cancel=function(){b.cancel()}}i.prompt(l("Subscribe to a web calendar..."),l("URL of the Calendar"),{inputType:"url"}).then(function(b){m.$addWebCalendar(b).then(function(c){angular.isObject(c)&&d.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxWebCalendarAuthDialog",controller:a,controllerAs:"$WebCalendarAuthDialogController",locals:{url:b,calendar:c}})})}),a.$inject=["scope","$mdDialog","url","calendar"]}function v(a){a.isSubscription?a.$delete()["catch"](function(b,c){i.alert(l('An error occured while deleting the calendar "%{0}".',a.name),l(b.error))}):i.confirm(l("Warning"),l('Are you sure you want to delete the calendar "%{0}"?',a.name),{ok:l("Delete")}).then(function(){a.$delete()["catch"](function(b,c){i.alert(l('An error occured while deleting the calendar "%{0}".',a.name),l(b.error))})})}function w(b,c){function e(b,c,d){function e(a){var b=0===a.type.indexOf("text")||/\.(ics)$/.test(a.name);return b||f.show({template:["<md-toast>",' <div class="md-toast-content">',' <md-icon class="md-warn md-hue-1">error_outline</md-icon>'," <span>"+l("Select an iCalendar file (.ics).")+"</span>"," </div>","</md-toast>"].join(""),position:"top right",hideDelay:3e3}),b}var h=this;h.uploader=new g({url:ApplicationBaseURL+[d.id,"import"].join("/"),autoUpload:!0,queueLimit:1,filters:[{name:e,fn:e}],onSuccessItem:function(b,d,e,g){var h;c.hide(),0===d.imported?h=l("No event was imported."):(h=l("A total of %{0} events were imported in the calendar.",d.imported),a.$emit("calendars:list")),f.show(f.simple().content(h).position("top right").hideDelay(3e3))},onErrorItem:function(a,b,c,d){f.show({template:["<md-toast>",' <div class="md-toast-content">',' <md-icon class="md-warn md-hue-1">error_outline</md-icon>'," <span>"+l("An error occurred while importing calendar.")+"</span>"," </div>","</md-toast>"].join(""),position:"top right",hideDelay:3e3})}}),h.close=function(){c.hide()}}d.show({parent:angular.element(document.body),targetEvent:b,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxCalendarImportDialog",controller:e,controllerAs:"$CalendarImportDialogController",locals:{folder:c}}),e.$inject=["scope","$mdDialog","folder"]}function x(a){_.forEach(m.$findAll(),function(b){a.id==b.id?b.active=1:b.active=0})}function y(){_.forEach(m.$findAll(),function(a){a.active=1})}function z(a){function b(a,b){function c(){a.hide()}var d=this;d.calendar=b,d.close=c}d.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:a.id+"/links",controller:b,controllerAs:"links",locals:{calendar:a}}),b.$inject=["$mdDialog","calendar"]}function A(a){function b(a,b,c){function d(){f.calendar.$save(),c.init(f.calendar.$omit()),b.hide()}function e(){b.cancel()}var f=this;f.calendar=new m(c.$omit()),f.saveProperties=d,f.close=e,a.$watch(function(){return f.calendar.color},function(){c.color=f.calendar.color})}var c=a.color;d.show({templateUrl:a.id+"/properties",controller:b,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcCalendar:a}})["catch"](function(){a.color=c}),b.$inject=["$scope","$mdDialog","srcCalendar"]}function B(a){G.calendarName=a.name,G.editMode=a.id,h("calendarName_"+a.id)}function C(a){a.$reset(),G.editMode=!1}function D(a){a.$rename().then(function(a){G.editMode=!1})}function E(a){a.$acl.$users().then(function(){d.show({templateUrl:a.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:a.$acl.users,UseLine truncated
b>0?(this.currentEventCoordinates.start=this.originalEventCoordinates.start,this.currentEventCoordinates.duration=b):0>b&&(this.currentEventCoordinates.start=this.originalEventCoordinates.start+b,this.currentEventCoordinates.duration=-b));var i;this.currentEventCoordinates.start<0?(i=Math.ceil(-this.currentEventCoordinates.start/f.EventDragDayLength),this.currentEventCoordinates.start+=i*f.EventDragDayLength,this.currentEventCoordinates.dayNumber-=i):this.currentEventCoordinates.start>=f.EventDragDayLength&&(i=Math.floor(this.currentEventCoordinates.start/f.EventDragDayLength),this.currentEventCoordinates.start-=i*f.EventDragDayLength,this.currentEventCoordinates.dayNumber+=i),c.debug("event coordinates "+JSON.stringify(this.currentEventCoordinates)),a.$emit("calendar:drag")},getContainerBasedCoordinates:function(a,b){var c=b||this.currentCoordinates,d=c.getDelta(a.coordinates),e=a.element;return(d.x<a.daysOffset||d.x>e.clientWidth||d.y<0||d.y>e.clientHeight)&&(d=null),d},prepareWithEventType:function(a){var b={multiday:this.getEventMultiDayViewCoordinates,"multiday-allday":this.getEventMultiDayAllDayViewCoordinates,monthly:this.getEventMonthlyViewCoordinates,unknown:null},c=b[a];this.eventType=a,this.getEventViewCoordinates=c},getEventMultiDayViewCoordinates:function(a,b){var c=this.getEventMultiDayAllDayViewCoordinates(a,b);if(c){var d=a.quarterHeight,e=this.getContainerBasedCoordinates(a,b);e.y+=a.element.scrollTop,c.y=Math.floor((e.y-f.EventDragHorizontalOffset)/d);var g=f.EventDragDayLength-1;c.y<0?c.y=0:c.y>g&&(c.y=g)}return c},getEventMultiDayAllDayViewCoordinates:function(a,b){var c,d=this.getContainerBasedCoordinates(a,b);if(d){c=new r;var f=a.dayWidth,g=a.daysOffset;c.x=Math.floor((d.x-g)/f);var h=0,i=e.$view.maxX;if("move-event"!=this.dragMode){var j=k.calendarData();j&&(h=i=j.index)}c.x<h?c.x=h:c.x>i&&(c.x=i),c.y=0}else c=null;return c},getEventMonthlyViewCoordinates:function(a,b){var c,d=this.getContainerBasedCoordinates(a,b);if(d){c=new r;var e=a.maxX,f=0,g=a.dayWidth,h=a.daysOffset,i=a.dayHeight,j=Math.floor((d.y-f)/i);0>j&&(j=0),c.x=Math.floor((d.x-h)/g),c.x<0?c.x=0:c.x>e&&(c.x=e),c.x+=(e+1)*j,c.y=0}else c=null;return c},getDistance:function(){return this.currentCoordinates.getDistance(this.originalCoordinates)},setTimeFromQuarters:function(a,b){var c,d;c=Math.floor(b/4),d=b%4*15,a.setHours(c,d)}}}return{restrict:"CA",require:"^sgCalendarDay",link:h}}a.$inject=["$rootScope","$timeout","$log","Preferences","Calendar","CalendarSettings","Component"],angular.module("SOGo.SchedulerUI").directive("sgDraggableCalendarBlock",a)}(),function(){"use strict";function a(a,b,c,d,e,f){return{restrict:"CA",scope:{onDrop:"&sgOnDrop"},link:function(b,c,d,e){var f=a.$on("calendar:dragend",b.onDrop);b.$on("$destroy",f)}}}a.$inject=["$rootScope","$timeout","$mdGesture","Calendar","CalendarSettings","Component"],angular.module("SOGo.SchedulerUI").directive("sgDroppableBlock",a)}(),function(){"use strict";function a(){function a(a,b,c,d){function e(){return b.find("sg-calendar-day")}function f(){return d.quarterHeight}var g=a.$watch(f,function(b){if(b){g(),a.quarterHeight=b;var c=a.$watch(e,function(b){b.length&&(c(),a.days=b,a.updateLine())})}})}return{restrict:"C",require:"^^sgCalendarScrollView",link:a,controller:b}}function b(a,b,c){function d(b){var d=new Date,h=d.getDayString(),i=d.getHours(),j=4*a.quarterHeight,k=d.getMinutes(),l=a.quarterHeight/15,m=parseInt(i*j+k*l-1);(b||h!=a.nowDay)&&(a.lineElement&&a.lineElement.remove(),a.lineElement=e(h,a.days),a.nowDay=h),a.lineElement&&(a.lineElement.css("top",m+"px"),f=c(angular.bind(g,a.updateLine),6e4))}function e(a,c){var d=angular.element("<sg-now-line>");return h.isMultiColumn?c&&c[0].attributes["sg-day"].value==a&&b.append(d):_.forEach(c,function(b){b.attributes["sg-day"].value==a&&angular.element(b).find("div").eq(0).append(d)}),d}var f,g=this,h=b.controller("sgCalendarScrollView");a.nowDay=null,a.lineElement=null,a.updateLine=d,a.$on("$destroy",function(){f&&c.cancel(f)})}b.$inject=["$scope","$element","$timeout"],angular.module("SOGo.SchedulerUI").directive("sgNowLine",a)}();
!function(){"use strict";function a(b){if(this.init(b),this.name&&!this.id){var c=a.$$resource.create("createFolder",this.name);this.$unwrap(c)}}a.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Component","Acl",function(b,c,d,e,f,g,h,i){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL")+"Calendar",e.activeUser()),$Preferences:g,$Component:h,$$Acl:i,activeUser:e.activeUser(),$view:null}),a}];try{angular.module("SOGo.SchedulerUI")}catch(a){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").value("CalendarSettings",{EventDragDayLength:96,EventDragHorizontalOffset:3,ConflictHTTPErrorCode:409}).factory("Calendar",a.$factory),a.$defaultCalendar=function(){var b,c=a.$Preferences.defaults.SOGoDefaultCalendar;return"first"==c&&(b=_.find(a.$findAll(null,!0),function(a){return a.active}))?b.id:"personal"},a.$add=function(b){var c,d,e;c=b.isWebCalendar?this.$webcalendars:b.isSubscription?this.$subscriptions:this.$calendars,d=_.find(c,function(a){return"personal"==b.id||"personal"!=a.id&&1===a.name.localeCompare(b.name)}),e=d?_.indexOf(_.map(c,"id"),d.id):1,c.splice(e,0,b),this.$Preferences.ready().then(function(){a.$Preferences.settings.Calendar.FoldersOrder&&a.saveFoldersOrder(_.flatMap(a.$findAll(),"id"))}),a.$reloadAll()},a.$findAll=function(b,c){var d=this;if(b)this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],angular.forEach(b,function(b,c){var e=new a(b);e.isWebCalendar?d.$webcalendars.push(e):e.isSubscription?d.$subscriptions.push(e):d.$calendars.push(e)});else if(angular.isUndefined(this.$calendars))return this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],a.$$resource.fetch("calendarslist").then(function(b){return a.$findAll(b.calendars,c)});return c?_.union(this.$calendars,_.filter(this.$subscriptions,function(a){return a.isOwned||a.acls.objectCreator})):_.union(this.$calendars,this.$subscriptions,this.$webcalendars)},a.$reloadAll=function(){var b=this;a.$$resource.fetch("calendarslist").then(function(c){_.forEach(c.calendars,function(c){var d,e;d=c.isWebCalendar?b.$webcalendars:c.owner!=a.activeUser.login?b.$subscriptions:b.$calendars,e=_.find(d,function(a){return a.id==c.id}),e&&e.init(c)})})},a.$get=function(b){var c;return c=_.find(a.$calendars,function(a){return a.id==b}),c||(c=_.find(a.$subscriptions,function(a){return a.id==b})),c||(c=_.find(a.$webcalendars,function(a){return a.id==b})),c},a.$getIndex=function(b){var c;return c=_.indexOf(_.map(a.$calendars,"id"),b),c<0&&(c=_.indexOf(_.map(a.$subscriptions,"id"),b)),c<0&&(c=_.indexOf(_.map(a.$webcalendars,"id"),b)),c},a.$subscribe=function(b,c){var d=this;return a.$$resource.userResource(b).fetch(c,"subscribe").then(function(b){var c=new a(angular.extend({active:1},b));return _.find(d.$subscriptions,function(a){return a.id==b.id})||a.$add(c),c})},a.$addWebCalendar=function(b){var c=this,d=a.$q.defer();return _.find(c.$webcalendars,function(a){return a.urls.webCalendarURL==b})?d.reject():a.$$resource.post(null,"addWebCalendar",{url:b}).then(function(c){angular.extend(c,{isWebCalendar:!0,isEditable:!0,isRemote:!1,owner:a.activeUser.login,urls:{webCalendarURL:b}});var e=new a(c);a.$$resource.fetch(e.id,"reload").then(function(b){a.$log.debug(JSON.stringify(b,void 0,2)),a.$add(e),d.resolve()},function(a){401==a.status?d.resolve(e):d.reject()})},d.reject),d.promise},a.reloadWebCalendars=function(){var b=[];return _.forEach(this.$webcalendars,function(c){var d=a.$$resource.fetch(c.id,"reload");d.then(function(a){c.$error=!1},function(a){c.$error=l(a.statusText)}),b.push(d)}),a.$q.all(b)},a.$deleteComponents=function(b){var c={},d=[];return _.forEach(b,function(a){angular.isDefined(c[a.pid])||(c[a.pid]=[]),c[a.pid].push(a.id)}),_.forEach(c,function(b,c){d.push(a.$$resource.post(c,"batchDelete",{uids:b}))}),a.$q.all(d)},a.saveFoldersOrder=function(b){return this.$$resource.post(null,"saveFoldersOrder",{folders:b}).then(function(){if(a.$Preferences.settings.Calendar.FoldersOrder=b,!b)return a.$$resource.fetch("calendarslist").then(function(b){return a.$findAll(b.calendars)})})},a.prototype.init=function(b){this.color=this.color||"#AAAAAA",this.active=1,angular.extend(this,b),this.id&&(this.$acl=new a.$$Acl("Calendar/"+this.id)),this.isOwned=a.activeUser.isSuperUser||this.owner==a.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=a.activeUser.login,angular.isUndefined(this.$shadowData)&&(this.$shadowData=this.$omit())},a.prototype.$id=function(){return this.id?a.$q.when(this.id):this.$futureCalendarData.then(function(a){return a.id})},a.prototype.getClassName=function(a){return angular.isUndefined(a)&&(a="fg"),a+"-folder"+this.id},a.prototype.$rename=function(){var b,c,d=this;return this.name==this.$shadowData.name?a.$q.when():(c=this.isWebCalendar?a.$webcalendars:this.isSubscription?a.$subscriptions:a.$calendars,b=_.indexOf(_.map(c,"id"),this.id),b>-1?this.$save().then(function(){c.splice(b,1),a.$add(d)}):a.$q.reject())},Line truncated
H.unselectComponents=q,H.selectAll=r,H.searchMode=t,H.toggleComponentSelection=s,H.confirmDeleteSelectedComponents=u,H.openEvent=v,H.openTask=w,H.newComponent=y,H.filterpopup=A,H.filter=B,H.filteredBy=C,H.sort=D,H.sortedBy=E,H.reload=F,H.cancelSearch=G,H.mode={search:!1,multiple:0},o(I),i.ready().then(function(){var a="events";"tasksListView"==i.settings.Calendar.SelectedList&&(H.selectedList=1,a="tasks"),p(a,{reload:!0})}),a.$on("calendars:list",function(){m.$filter(H.componentType,{reload:!0})}),a.$on("calendar:dragend",z),b.$on("$destroy",function(){_.forEach(I,function(a){f.deregisterHotkey(a)})})}a.$inject=["$rootScope","$scope","$timeout","$state","$mdDialog","sgHotkeys","sgFocus","Dialog","Preferences","CalendarSettings","Calendar","Component","Alarm"],angular.module("SOGo.SchedulerUI").controller("CalendarListController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o){function p(a,b,c){return a.sortableScope.element[0]==b.element[0]}function q(){m.saveFoldersOrder(_.flatMap(m.$findAll(),"id"))}function r(){G.sortableMode=!G.sortableMode,G.filter.name=""}function s(){m.saveFoldersOrder()}function t(a){i.prompt(l("New calendar"),l("Name of the Calendar")).then(function(a){var b=new m({name:a,isEditable:!0,isRemote:!1,owner:UserLogin});b.$id().then(function(){m.$add(b)})})}function u(){function a(a,b,c,d){var e=this,f=c.split("/"),g=f[2];e.title=l("Please identify yourself to %{0}").formatted(g),e.authenticate=function(a){!a.$valid&&a.$error.required||d.setCredentials(e.username,e.password).then(function(a){b.hide()},function(b){a.password.$setValidity("credentials",!1)})},e.cancel=function(){b.cancel()}}i.prompt(l("Subscribe to a web calendar..."),l("URL of the Calendar"),{inputType:"url"}).then(function(b){m.$addWebCalendar(b).then(function(c){angular.isObject(c)&&d.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxWebCalendarAuthDialog",controller:a,controllerAs:"$WebCalendarAuthDialogController",locals:{url:b,calendar:c}})})}),a.$inject=["scope","$mdDialog","url","calendar"]}function v(a){a.isSubscription?a.$delete().catch(function(b,c){i.alert(l('An error occured while deleting the calendar "%{0}".',a.name),l(b.error))}):i.confirm(l("Warning"),l('Are you sure you want to delete the calendar "%{0}"?',a.name),{ok:l("Delete")}).then(function(){a.$delete().catch(function(b,c){i.alert(l('An error occured while deleting the calendar "%{0}".',a.name),l(b.error))})})}function w(b,c){function e(b,c,d){function e(a){var b=0===a.type.indexOf("text")||/\.(ics)$/.test(a.name);return b||f.show({template:["<md-toast>",' <div class="md-toast-content">',' <md-icon class="md-warn md-hue-1">error_outline</md-icon>'," <span>"+l("Select an iCalendar file (.ics).")+"</span>"," </div>","</md-toast>"].join(""),position:"top right",hideDelay:3e3}),b}var h=this;h.uploader=new g({url:ApplicationBaseURL+[d.id,"import"].join("/"),autoUpload:!0,queueLimit:1,filters:[{name:e,fn:e}],onSuccessItem:function(b,d,e,g){var h;c.hide(),0===d.imported?h=l("No event was imported."):(h=l("A total of %{0} events were imported in the calendar.",d.imported),a.$emit("calendars:list")),f.show(f.simple().content(h).position("top right").hideDelay(3e3))},onErrorItem:function(a,b,c,d){f.show({template:["<md-toast>",' <div class="md-toast-content">',' <md-icon class="md-warn md-hue-1">error_outline</md-icon>'," <span>"+l("An error occurred while importing calendar.")+"</span>"," </div>","</md-toast>"].join(""),position:"top right",hideDelay:3e3})}}),h.close=function(){c.hide()}}d.show({parent:angular.element(document.body),targetEvent:b,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxCalendarImportDialog",controller:e,controllerAs:"$CalendarImportDialogController",locals:{folder:c}}),e.$inject=["scope","$mdDialog","folder"]}function x(a){_.forEach(m.$findAll(),function(b){a.id==b.id?b.active=1:b.active=0})}function y(){_.forEach(m.$findAll(),function(a){a.active=1})}function z(a){function b(a,b){function c(){a.hide()}var d=this;d.calendar=b,d.close=c}d.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:a.id+"/links",controller:b,controllerAs:"links",locals:{calendar:a}}),b.$inject=["$mdDialog","calendar"]}function A(a){function b(a,b,c){function d(){f.calendar.$save(),c.init(f.calendar.$omit()),b.hide()}function e(){b.cancel()}var f=this;f.calendar=new m(c.$omit()),f.saveProperties=d,f.close=e,a.$watch(function(){return f.calendar.color},function(){c.color=f.calendar.color})}var c=a.color;d.show({templateUrl:a.id+"/properties",controller:b,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcCalendar:a}}).catch(function(){a.color=c}),b.$inject=["$scope","$mdDialog","srcCalendar"]}function B(a){G.calendarName=a.name,G.editMode=a.id,h("calendarName_"+a.id)}function C(a){a.$reset(),G.editMode=!1}function D(a){a.$rename().then(function(a){G.editMode=!1})}function E(a){a.$acl.$users().thenLine truncated
this.currentEventCoordinates.duration=-b)):"change-end"==this.dragMode&&(b=this.originalEventCoordinates.duration+g,b>0?(this.currentEventCoordinates.start=this.originalEventCoordinates.start,this.currentEventCoordinates.duration=b):b<0&&(this.currentEventCoordinates.start=this.originalEventCoordinates.start+b,this.currentEventCoordinates.duration=-b));var i;this.currentEventCoordinates.start<0?(i=Math.ceil(-this.currentEventCoordinates.start/f.EventDragDayLength),this.currentEventCoordinates.start+=i*f.EventDragDayLength,this.currentEventCoordinates.dayNumber-=i):this.currentEventCoordinates.start>=f.EventDragDayLength&&(i=Math.floor(this.currentEventCoordinates.start/f.EventDragDayLength),this.currentEventCoordinates.start-=i*f.EventDragDayLength,this.currentEventCoordinates.dayNumber+=i),c.debug("event coordinates "+JSON.stringify(this.currentEventCoordinates)),a.$emit("calendar:drag")},getContainerBasedCoordinates:function(a,b){var c=b||this.currentCoordinates,d=c.getDelta(a.coordinates),e=a.element;return(d.x<a.daysOffset||d.x>e.clientWidth||d.y<0||d.y>e.clientHeight)&&(d=null),d},prepareWithEventType:function(a){var b={multiday:this.getEventMultiDayViewCoordinates,"multiday-allday":this.getEventMultiDayAllDayViewCoordinates,monthly:this.getEventMonthlyViewCoordinates,unknown:null},c=b[a];this.eventType=a,this.getEventViewCoordinates=c},getEventMultiDayViewCoordinates:function(a,b){var c=this.getEventMultiDayAllDayViewCoordinates(a,b);if(c){var d=a.quarterHeight,e=this.getContainerBasedCoordinates(a,b);e.y+=a.element.scrollTop,c.y=Math.floor((e.y-f.EventDragHorizontalOffset)/d);var g=f.EventDragDayLength-1;c.y<0?c.y=0:c.y>g&&(c.y=g)}return c},getEventMultiDayAllDayViewCoordinates:function(a,b){var c,d=this.getContainerBasedCoordinates(a,b);if(d){c=new r;var f=a.dayWidth,g=a.daysOffset;c.x=Math.floor((d.x-g)/f);var h=0,i=e.$view.maxX;if("move-event"!=this.dragMode){var j=k.calendarData();j&&(h=i=j.index)}c.x<h?c.x=h:c.x>i&&(c.x=i),c.y=0}else c=null;return c},getEventMonthlyViewCoordinates:function(a,b){var c,d=this.getContainerBasedCoordinates(a,b);if(d){c=new r;var e=a.maxX,f=0,g=a.dayWidth,h=a.daysOffset,i=a.dayHeight,j=Math.floor((d.y-f)/i);j<0&&(j=0),c.x=Math.floor((d.x-h)/g),c.x<0?c.x=0:c.x>e&&(c.x=e),c.x+=(e+1)*j,c.y=0}else c=null;return c},getDistance:function(){return this.currentCoordinates.getDistance(this.originalCoordinates)},setTimeFromQuarters:function(a,b){var c,d;c=Math.floor(b/4),d=b%4*15,a.setHours(c,d)}}}return{restrict:"CA",require:"^sgCalendarDay",link:h}}a.$inject=["$rootScope","$timeout","$log","Preferences","Calendar","CalendarSettings","Component"],angular.module("SOGo.SchedulerUI").directive("sgDraggableCalendarBlock",a)}(),function(){"use strict";function a(a,b,c,d,e,f){return{restrict:"CA",scope:{onDrop:"&sgOnDrop"},link:function(b,c,d,e){var f=a.$on("calendar:dragend",b.onDrop);b.$on("$destroy",f)}}}a.$inject=["$rootScope","$timeout","$mdGesture","Calendar","CalendarSettings","Component"],angular.module("SOGo.SchedulerUI").directive("sgDroppableBlock",a)}(),function(){"use strict";function a(){function a(a,b,c,d){function e(){return b.find("sg-calendar-day")}function f(){return d.quarterHeight}var g=a.$watch(f,function(b){if(b){g(),a.quarterHeight=b;var c=a.$watch(e,function(b){b.length&&(c(),a.days=b,a.updateLine())})}})}return{restrict:"C",require:"^^sgCalendarScrollView",link:a,controller:b}}function b(a,b,c){function d(b){var d=new Date,h=d.getDayString(),i=d.getHours(),j=4*a.quarterHeight,k=d.getMinutes(),l=a.quarterHeight/15,m=parseInt(i*j+k*l-1);(b||h!=a.nowDay)&&(a.lineElement&&a.lineElement.remove(),a.lineElement=e(h,a.days),a.nowDay=h),a.lineElement&&(a.lineElement.css("top",m+"px"),f=c(angular.bind(g,a.updateLine),6e4))}function e(a,c){var d=angular.element("<sg-now-line>");return h.isMultiColumn?c&&c[0].attributes["sg-day"].value==a&&b.append(d):_.forEach(c,function(b){b.attributes["sg-day"].value==a&&angular.element(b).find("div").eq(0).append(d)}),d}var f,g=this,h=b.controller("sgCalendarScrollView");a.nowDay=null,a.lineElement=null,a.updateLine=d,a.$on("$destroy",function(){f&&c.cancel(f)})}b.$inject=["$scope","$element","$timeout"],angular.module("SOGo.SchedulerUI").directive("sgNowLine",a)}();
//# sourceMappingURL=Scheduler.services.js.map
@@ -1 +1 @@
{"version":3,"sources":["Scheduler/Calendar.service.js","Scheduler/Component.service.js","Scheduler/CalendarController.js","Scheduler/CalendarListController.js","Scheduler/CalendarsController.js","Scheduler/ComponentController.js","Scheduler/sgCalendarDay.directive.js","Scheduler/sgCalendarDayBlock.directive.js","Scheduler/sgCalendarDayTable.directive.js","Scheduler/sgCalendarGhost.directive.js","Scheduler/sgCalendarMonthDay.directive.js","Scheduler/sgCalendarMonthEvent.directive.js","Scheduler/sgCalendarScrollView.directive.js","Scheduler/sgCalendarTable.directive.js","Scheduler/sgCategoryStylesheet.directive.js","Scheduler/sgDraggableCalendarBlock.directive.js","Scheduler/sgDroppableBlock.directive.js","Scheduler/sgNowLine.directive.js"],"names":["Calendar","futureCalendarData","this","init","name","id","newCalendarData","$$resource","create","$unwrap","$factory","$q","$timeout","$log","Settings","Resource","Preferences","Component","Acl","angular","extend","activeUser","$Preferences","$Component","$$Acl","$view","module","e","value","EventDragDayLength","EventDragHorizontalOffset","ConflictHTTPErrorCode","factory","$defaultCalendar","calendar","defaultCalendar","defaults","SOGoDefaultCalendar","_","find","$findAll","active","$add","list","sibling","i","isWebCalendar","$webcalendars","isSubscription","$subscriptions","$calendars","o","localeCompare","indexOf","map","splice","ready","then","settings","FoldersOrder","saveFoldersOrder","flatMap","$reloadAll","data","writable","_this","forEach","push","isUndefined","fetch","calendars","union","filter","isOwned","acls","objectCreator","calendarData","group","owner","login","$get","$getIndex","$subscribe","uid","path","userResource","$addWebCalendar","url","d","defer","urls","webCalendarURL","reject","post","isEditable","isRemote","debug","JSON","stringify","undefined","resolve","response","status","promise","reloadWebCalendars","promises","$error","l","statusText","all","$deleteComponents","components","component","isDefined","pid","uids","folders","prototype","color","$acl","isSuperUser","$shadowData","$omit","$id","when","$futureCalendarData","getClassName","base","$rename","$save","$delete","remove","$reset","key","save","error","setCredentials","username","password","download","type","$setActivation","$getComponent","componentId","recurrenceId","$find","isError","isObject","futureComponentData","newComponentData","newguid","isNew","$rootScope","Component_STATUS","Card","Gravatar","STATUS","$Card","$gravatar","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","$refreshTimeout","$ghost","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","SOGoCalendarCategoriesColors","SOGoTimeFormat","constant","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","$selectedCount","count","$events","event","selected","length","$tasks","task","$startRefreshTimeout","cancel","refreshViewCheck","SOGoRefreshViewCheck","f","bind","$emit","timeInterval","$isLoading","$loaded","$filter","options","now","Date","day","getDate","month","getMonth","year","getFullYear","queryKey","capitalize","params","otherType","dirty","keys","$unwrapCollection","calendarId","occurrenceId","join","filterCategories","query","re","RegExp","category","saveSelectedList","componentType","$eventsBlocksForView","view","date","firstDayOfWeek","viewAction","startDate","endDate","SOGoFirstDayOfWeek","beginOfWeek","setTime","getTime","addDays","setDate","setMonth","endOfWeek","$eventsBlocks","j","dayDates","dayNumbers","deferred","toLowerCase","sd","getDayString","ed","views","reduceComponent","associateComponent","objects","eventData","componentData","zipObject","eventsFields","start","c_startdate","hour","getHourString","blocks","categories","block","nbr","isFirst","$views","viewIndex","viewData","allDayBlocks","reduce","events","flatten","days","dayIndex","dayNumber","calendarName","fields","invokeMap","$resetGhost","pointerHandler","startHour","endHour","$parseDate","dateString","time","substring","split","no_time","repeat","alarm","action","quantity","unit","reference","relation","delta","isString","setMinutes","Math","round","getMinutes","end","minutesTo","setDelta","dueDate","due","completedDate","completed","c_category","$isRecurrent","byDayMask","occurrence","frequency","byday","toString","interval","monthdays","months","until","$hasCustomRepeat","hasCustomRepeat","classification","units","M","H","D","W","match","exec","SOGoCalendarDefaultReminder","$hasAlarm","sendAppointmentNotifications","SOGoAppointmentSendEMailNotifications","destinationCalendar","updateFreeBusy","b","isReadOnly","isEditableOccurrence","isInvitation","userHasRSVP","isInvitationOccurrence","enablePercentComplete","coversFreeBusy","quarter","freebusy","updateFreeBusyCoverage","roundedStart","roundedEnd","startQuarter","endQuarter","daysUpTo","index","hourKey","currentDay","dayKey","getHours","beginLine truncated
{"version":3,"sources":["Scheduler/Calendar.service.js","Scheduler/Component.service.js","Scheduler/CalendarController.js","Scheduler/CalendarListController.js","Scheduler/CalendarsController.js","Scheduler/ComponentController.js","Scheduler/sgCalendarDay.directive.js","Scheduler/sgCalendarDayBlock.directive.js","Scheduler/sgCalendarDayTable.directive.js","Scheduler/sgCalendarGhost.directive.js","Scheduler/sgCalendarMonthDay.directive.js","Scheduler/sgCalendarMonthEvent.directive.js","Scheduler/sgCalendarScrollView.directive.js","Scheduler/sgCalendarTable.directive.js","Scheduler/sgCategoryStylesheet.directive.js","Scheduler/sgDraggableCalendarBlock.directive.js","Scheduler/sgDroppableBlock.directive.js","Scheduler/sgNowLine.directive.js"],"names":["Calendar","futureCalendarData","this","init","name","id","newCalendarData","$$resource","create","$unwrap","$factory","$q","$timeout","$log","Settings","Resource","Preferences","Component","Acl","angular","extend","activeUser","$Preferences","$Component","$$Acl","$view","module","e","value","EventDragDayLength","EventDragHorizontalOffset","ConflictHTTPErrorCode","factory","$defaultCalendar","calendar","defaultCalendar","defaults","SOGoDefaultCalendar","_","find","$findAll","active","$add","list","sibling","i","isWebCalendar","$webcalendars","isSubscription","$subscriptions","$calendars","o","localeCompare","indexOf","map","splice","ready","then","settings","FoldersOrder","saveFoldersOrder","flatMap","$reloadAll","data","writable","_this","forEach","push","isUndefined","fetch","calendars","union","filter","isOwned","acls","objectCreator","calendarData","group","owner","login","$get","$getIndex","$subscribe","uid","path","userResource","$addWebCalendar","url","d","defer","urls","webCalendarURL","reject","post","isEditable","isRemote","debug","JSON","stringify","undefined","resolve","response","status","promise","reloadWebCalendars","promises","$error","l","statusText","all","$deleteComponents","components","component","isDefined","pid","uids","folders","prototype","color","$acl","isSuperUser","$shadowData","$omit","$id","when","$futureCalendarData","getClassName","base","$rename","$save","$delete","remove","$reset","key","save","error","setCredentials","username","password","export","download","type","$setActivation","$getComponent","componentId","recurrenceId","$find","isError","isObject","futureComponentData","newComponentData","newguid","isNew","$rootScope","Component_STATUS","Card","Gravatar","STATUS","$Card","$gravatar","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","$refreshTimeout","$ghost","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","SOGoCalendarCategoriesColors","SOGoTimeFormat","constant","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","$selectedCount","count","$events","event","selected","length","$tasks","task","$startRefreshTimeout","cancel","refreshViewCheck","SOGoRefreshViewCheck","f","bind","$emit","timeInterval","$isLoading","$loaded","$filter","options","now","Date","day","getDate","month","getMonth","year","getFullYear","queryKey","capitalize","params","otherType","dirty","keys","$unwrapCollection","calendarId","occurrenceId","join","filterCategories","query","re","RegExp","category","saveSelectedList","componentType","$eventsBlocksForView","view","date","firstDayOfWeek","viewAction","startDate","endDate","SOGoFirstDayOfWeek","beginOfWeek","setTime","getTime","addDays","setDate","setMonth","endOfWeek","$eventsBlocks","j","dayDates","dayNumbers","deferred","toLowerCase","sd","getDayString","ed","views","reduceComponent","associateComponent","objects","eventData","componentData","zipObject","eventsFields","start","c_startdate","hour","getHourString","blocks","categories","block","nbr","isFirst","$views","viewIndex","viewData","allDayBlocks","reduce","events","flatten","days","dayIndex","dayNumber","calendarName","fields","invokeMap","$resetGhost","pointerHandler","startHour","endHour","$parseDate","dateString","time","substring","split","no_time","repeat","alarm","action","quantity","unit","reference","relation","delta","isString","setMinutes","Math","round","getMinutes","end","minutesTo","setDelta","dueDate","due","completedDate","completed","c_category","$isRecurrent","byDayMask","occurrence","frequency","byday","toString","interval","monthdays","months","until","$hasCustomRepeat","hasCustomRepeat","classification","units","M","H","D","W","match","exec","SOGoCalendarDefaultReminder","$hasAlarm","sendAppointmentNotifications","SOGoAppointmentSendEMailNotifications","destinationCalendar","attendees","attendee","image","email","updateFreeBusy","b","isReadOnly","isEditableOccurrence","isInvitation","userHasRSVP","isInvitationOccurrence","enablePercentComplete","coversFreeBusy","quarter","freebusy","updateFreeBusyCoverage","roundedStart","roundedEnd","startQuarter","endQuarter","daysUpTo","index","Line truncated
Loaded 100 of 181 files, more files were not shown because too many files have changed in this diff. Show more