{"version":3,"sources":["webpack:///app.650bfc.min.js","webpack:///./app/smb-app.js","webpack:///./app/components/userSelectorDialog/userSelectorDialog.template.html","webpack:///./app/imgs/airbaselogo.png","webpack:///./app/services/deleteDialogService/deleteDialog.template.html","webpack:///./app/components/_app/app.js","webpack:///./app/components/assignedUsers/assignedUsers.js","webpack:///./app/components/contentSearch/contentSearch.js","webpack:///./app/components/contentSearchResults/contentSearchResults.js","webpack:///./app/components/contentTypeConfig/contentTypeConfig.js","webpack:///./app/components/contentTypeConfigForm/contentTypeConfigForm.js","webpack:///./app/components/contentTypeGroupConfig/contentTypeGroupConfig.js","webpack:///./app/components/contentTypeGroupConfigForm/contentTypeGroupConfigForm.js","webpack:///./app/components/contentTypeGroupSearch/contentTypeGroupSearch.js","webpack:///./app/components/contentTypeGroupSearchResults/contentTypeGroupSearchResults.js","webpack:///./app/components/contentTypeGroups/contentTypeGroups.js","webpack:///./app/components/contentTypeGroupsConfig/contentTypeGroupsConfig.js","webpack:///./app/components/contentTypeGroupsSearch/contentTypeGroupsSearch.js","webpack:///./app/components/contentTypes/contentTypes.js","webpack:///./app/components/contentTypesConfig/contentTypesConfig.js","webpack:///./app/components/contentTypesSearch/contentTypesSearch.js","webpack:///./app/components/contentUpload/contentUpload.js","webpack:///./app/components/documentContextMenu/documentContextMenu.js","webpack:///./app/components/documentDetails/documentDetails.js","webpack:///./app/components/documentHistory/documentHistory.js","webpack:///./app/components/documentHitList/documentHitList.js","webpack:///./app/components/documentIndexes/documentIndexes.js","webpack:///./app/components/documentIndexesEdit/documentIndexesEdit.js","webpack:///./app/components/documentNotes/documentNotes.js","webpack:///./app/components/documentView/documentView.js","webpack:///./app/components/home/home.js","webpack:///./app/components/icon/icon.js","webpack:///./app/components/index.js","webpack:///./app/components/indexTypeConfig/indexTypeConfig.js","webpack:///./app/components/indexTypesPanel/indexTypesPanel.js","webpack:///./app/components/itemSelector/itemSelector.js","webpack:///./app/components/login/login.js","webpack:///./app/components/register/register.js","webpack:///./app/components/status/status.js","webpack:///./app/components/statusConfig/statusConfig.js","webpack:///./app/components/todolist/todolist.js","webpack:///./app/components/todolistContextMenu/todolistContextMenu.js","webpack:///./app/components/trash/trash.js","webpack:///./app/components/user/user.js","webpack:///./app/components/userAdmin/userAdmin.js","webpack:///./app/components/userGroup/userGroup.js","webpack:///./app/components/userGroups/userGroups.js","webpack:///./app/components/userSelectorDialog/userSelectorDialog.js","webpack:///./app/components/users/users.js","webpack:///./app/dataStores/contentConfigDataStores/contentTypeConfigDataStore.js","webpack:///./app/dataStores/contentConfigDataStores/contentTypeGroupConfigDataStore.js","webpack:///./app/dataStores/contentConfigDataStores/contentTypeGroupTagTypesConfigDataStore.js","webpack:///./app/dataStores/contentConfigDataStores/contentTypeGroupsConfigDataStore.js","webpack:///./app/dataStores/contentConfigDataStores/contentTypeTagTypeConfigDataStore.js","webpack:///./app/dataStores/contentConfigDataStores/statusConfigDataStore.js","webpack:///./app/dataStores/contentSearchDataStore.js","webpack:///./app/dataStores/contentTypeGroupsDataStore.js","webpack:///./app/dataStores/contentTypeGroupsSearchDataStore.js","webpack:///./app/dataStores/contentTypesDataStore.js","webpack:///./app/dataStores/contentTypesSearchDataStore.js","webpack:///./app/dataStores/contentUploadDataStore.js","webpack:///./app/dataStores/deletedItemsDataStore.js","webpack:///./app/dataStores/documentDataStore.js","webpack:///./app/dataStores/documentDetailsPanelDataStore.js","webpack:///./app/dataStores/documentHistoryDataStore.js","webpack:///./app/dataStores/documentIndexDataStore.js","webpack:///./app/dataStores/documentNotesDataStore.js","webpack:///./app/dataStores/iconDataStore.js","webpack:///./app/dataStores/index.js","webpack:///./app/dataStores/indexTypesDataStore.js","webpack:///./app/dataStores/panelDetailsDataStore.js","webpack:///./app/dataStores/statusDataStore.js","webpack:///./app/dataStores/toDoListDataStore.js","webpack:///./app/dataStores/userDataStore.js","webpack:///./app/dataStores/userGroupDataStore.js","webpack:///./app/dataStores/userGroupsDataStore.js","webpack:///./app/dataStores/usersDataStore.js","webpack:///./app/services/aclService.js","webpack:///./app/services/contentConfigServices/contentTypeConfigService.js","webpack:///./app/services/contentConfigServices/contentTypeGroupConfigService.js","webpack:///./app/services/contentConfigServices/contentTypeGroupTagTypeConfigService.js","webpack:///./app/services/contentConfigServices/contentTypeTagTypeConfigService.js","webpack:///./app/services/contentConfigServices/statusConfigService.js","webpack:///./app/services/contentSearchService.js","webpack:///./app/services/contentTypeAcls.js","webpack:///./app/services/contentTypeGroupsSearchService.js","webpack:///./app/services/contentTypeGroupsService.js","webpack:///./app/services/contentTypesSearchService.js","webpack:///./app/services/contentTypesService.js","webpack:///./app/services/contentUploadService.js","webpack:///./app/services/deleteDialogService/deleteDialogService.js","webpack:///./app/services/deletedItemsService.js","webpack:///./app/services/documentHistoryService.js","webpack:///./app/services/documentNotesService.js","webpack:///./app/services/documentViewerNavigationService.js","webpack:///./app/services/environmentService.js","webpack:///./app/services/iconService.js","webpack:///./app/services/index.js","webpack:///./app/services/indexTypesDataTypes.js","webpack:///./app/services/indexTypesService.js","webpack:///./app/services/libraryConfigService.js","webpack:///./app/services/sortService.js","webpack:///./app/services/statusService.js","webpack:///./app/services/toDoListService.js","webpack:///./app/services/toolbarService.js","webpack:///./app/services/userGroupFilterService.js","webpack:///./app/components/_app/app.template.html","webpack:///./app/components/assignedUsers/assignedUsers.template.html","webpack:///./app/components/contentSearch/contentSearch.template.html","webpack:///./app/components/contentSearchResults/contentSearchResults.template.html","webpack:///./app/components/contentTypeConfig/contentTypeConfig.template.html","webpack:///./app/components/contentTypeConfigForm/contentTypeConfigForm.template.html","webpack:///./app/components/contentTypeGroupConfig/contentTypeGroupConfig.template.html","webpack:///./app/components/contentTypeGroupConfigForm/contentTypeGroupConfigForm.template.html","webpack:///./app/components/contentTypeGroupSearch/contentTypeGroupSearch.template.html","webpack:///./app/components/contentTypeGroupSearchResults/contentTypeGroupSearchResults.template.html","webpack:///./app/components/contentTypeGroups/contentTypeGroups.template.html","webpack:///./app/components/contentTypeGroupsConfig/contentTypeGroupsConfig.template.html","webpack:///./app/components/contentTypeGroupsSearch/contentTypeGroupsSearch.template.html","webpack:///./app/components/contentTypes/contentTypes.template.html","webpack:///./app/components/contentTypesConfig/contentTypesConfig.template.html","webpack:///./app/components/contentTypesSearch/contentTypesSearch.template.html","webpack:///./app/components/contentUpload/contentUpload.template.html","webpack:///./app/components/documentContextMenu/documentContextMenu.template.html","webpack:///./app/components/documentDetails/documentDetails.template.html","webpack:///./app/components/documentHistory/documentHistory.template.html","webpack:///./app/components/documentHitList/documentHitList.template.html","webpack:///./app/components/documentIndexes/documentIndexes.template.html","webpack:///./app/components/documentIndexesEdit/documentIndexesEdit.template.html","webpack:///./app/components/documentNotes/documentNotes.template.html","webpack:///./app/components/documentView/documentView.template.html","webpack:///./app/components/errorMessages.html","webpack:///./app/components/home/home.template.html","webpack:///./app/components/icon/icon.template.html","webpack:///./app/components/indexTypeConfig/indexTypeConfig.template.html","webpack:///./app/components/indexTypesPanel/indexTypesPanel.template.html","webpack:///./app/components/itemSelector/itemSelector.template.html","webpack:///./app/components/login/login.template.html","webpack:///./app/components/register/register.template.html","webpack:///./app/components/status/status.template.html","webpack:///./app/components/statusConfig/statusConfig.template.html","webpack:///./app/components/todolist/todolist.template.html","webpack:///./app/components/todolistContextMenu/todolistContextMenu.template.html","webpack:///./app/components/trash/trash.template.html","webpack:///./app/components/user/user.template.html","webpack:///./app/components/userAdmin/userAdmin.template.html","webpack:///./app/components/userGroup/userGroup.template.html","webpack:///./app/components/userGroups/userGroups.template.html","webpack:///./app/components/users/users.template.html"],"names":["webpackJsonp","module","exports","__webpack_require__","loadAppAsync","initInjector","angular","injector","$http","get","pxEnvironmentService","settingsService","gettextCatalog","loadLanguages","then","language","toLowerCase","loadRemote","catch","setCurrentLanguage","tosPath","head","serverLegalPath","legalLanguage","lang","currentLanguage","legalLang","strings","bootstrapApp","resolvedLang","config","$mdThemingProvider","generateThemesOnDemand","run","element","document","ready","bootstrap","AppController","pxProgressService","smbEnvironmentService","$mdTheming","vm","this","generateTheme","environment","progressUI","definePalette","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","contrastDefaultColor","theme","primaryPalette","default","hue-1","hue-2","hue-3","accentPalette","warnPalette","controller","path","html","window","c","put","p","MainDirective","restrict","MainController","controllerAs","templateUrl","bindToController","scope","$window","$state","smbToDoListDataStore","smbPanelDetailsDataStore","smbToolbarService","pxAuthService","isUserAdmin","hasUserAdminRights","isContentAdmin","hasContentAdminRights","logout","invalidateLogin","todoListDS","clear","go","onClickBackArrow","backArrowState","backArrowStateParams","openLink","url","open","isAuthenticated","loadCount","init","panelDetailsDS","userName","displayName","privileges","isSiteAdmin","mobileNavOpen","$rootScope","$injector","$on","e","to","data","hasSidePanel","reset","redirect","rule","parent","name","isFunction","preventDefault","params","reload","current","$urlRouterProvider","$stateProvider","$httpProvider","pxAppIdentifierInterceptorProvider","inject","injectionArgs","arguments","invoke","apply","setAppId","defaults","headers","interceptors","push","otherwise","state","views","main","template","deploymentId","auth","abstract","app","app@useradmin","usergroupId","userId","app@contentConfig","groupId","typeId","privs","hasTrashPriv","core","trash","manageTrash","app@import","app@search","previous","documentGroupId","documentTypeId","documentId","filter","position","text","split","join","$sce","htmlCode","trustAsHtml","directive","AssignedUsersDirective","AssignedUsersController","assignedUsers","selectedUser","isContentStatusSelected","onChange","undefined","ContentSearchDirective","ContentSearchController","smbStatusDataStore","smbUsersDataStore","smbIndexTypesDataStore","smbContentSearchDataStore","smbContentTypeGroupConfigDataStore","smbContentTypeConfigDataStore","smbIconTypes","indexFileChanged","fileInput","files","length","filename","onStatusChange","status","Status","JSON","parse","type","ARCHIVAL_STATUS","search","indextypes","TagTypeId","indexValue","indexTypesDS","assignedUserId","UserId","setTagValues","set","getString","TODO_STATUS","defaultIconType","SVG","docDateStart","Date","docDateEnd","contentTypeDS","contentTypeGroupDS","statusDS","usersDS","contentStatuses","todoStatuses","getContentTypeGroup","getContentType","getIndexTypes","indexTypes","map","it","extend","defaultValue","loadStatuses","contentStatus","Constraints","DataSetValues","s","todoStatus","getUsers","ContentSearchResultsDirective","ContentSearchResultsController","smbDocumentViewerNavigationService","contentSearchDS","documentNavigation","getDocuments","ContentTypeConfigDirective","contentTypeGroupId","contentTypeId","ContentTypeConfigController","$scope","$q","sbToastService","smbSortService","smbStatusConfigDataStore","smbContentTypeGroupTagTypesConfigDataStore","smbContentTypeTagTypeConfigDataStore","onSubmit","contentType","FolderName","IconName","isLoading","visible","saveContentType","FolderId","typeIsDirty","createNewIndexTypes","addIndexTypes","contentTypeIndexes","concat","assignedDate","updateStatuses","indexTypesAreDirty","statusIsDirty","showSimple","message","folderName","finally","getTagTypes","response","resolve","newIndexTypes","i","hasOwnProperty","all","addTagType","tt","index","indexOf","saveStatuses","setTagTypes","onContentTypeChange","onAddIndexType","item","contentTypeGroupIndexes","onDeleteIndexType","TagTypeName","sort","sortTagTypeByName","onSequence","index1","index2","canSwap","tmp","lowerBound","upperBound","onEditIndexType","x","title","readOnly","sortObjectByStringProperty","Object","assign","tagTypes","match","t","find","ContentTypeConfigFormDirective","ContentTypeConfigFormController","$mdDialog","smbIconDataStore","setIcon","event","show","userSelectorTemplateUrl","targetEvent","clickOutsideToClose","locals","users","icons","multiSelect","icon","contentTypeIcon","IconUserFriendlyName","IconId","originalIconId","emitChange","onNameChange","typeName","iconSearchText","loadIcons","$watch","ContentTypeGroupConfigDirective","ContentTypeGroupConfigController","smbIndexTypesDataTypes","loading","group","LibraryName","saveGroup","saveUserGroups","saveIndexTypes","documentGroupName","groupIsDirty","saveContentTypeGroup","id","viewRightsUserGroups","fullRightsUserGroups","editRightsUserGroups","newPromises","contentTypeGroup","LibraryId","editPromises","editIndexTypes","editTagType","onGroupChange","editIndexType","indexType","newIndexType","sortIndexTypesByName","indexTypePool","userGroupsWithViewRights","ug","userGroupsWithFullRights","userGroupsWithEditRights","ContentTypeGroupConfigFormDirective","ContentTypeGroupConfigFormController","smbUserGroupsDataStore","addUserGroups","target","removeTarget","groupUserGroups","newGroups","userGroups","UserGroupId","selectedUserGroups","forEach","removed","g","splice","removeUserGroup","Links","IconUri","viewUserGroups","fullUserGroups","addUserGroup","onNameBlur","groupName","groupIcon","getUserGroups","ContentTypeGroupSearchDirective","ContentTypeGroupSearchController","getDocumentTypeGroupIndexTypes","groupIndexTypes","ContentTypeGroupSearchResultsDirective","ContentTypeGroupSearchResultsController","getContentTypeGroupSearchResults","ContentTypeGroupsDirective","ContentTypeGroupsController","smbContentTypeGroupsDataStore","contentTypeGroupsDataStore","loadFullAccessGroups","ContentTypeGroupsConfigDirective","ContentTypeGroupsConfigController","smbContentTypeGroupsConfigDataStore","smbDeleteDialogService","deleteContentTypeGroup","deleteGroup","noop","iconType","loadGroups","ContentTypeGroupsSearchDirective","ContentTypeGroupsSearchController","smbContentTypeGroupsSearchDataStore","contentTypeGroupsSearchDataStore","loadAllGroups","ContentTypesDirective","ContentTypesController","smbContentTypesDataStore","contentTypesDataStore","getContentTypes","ContentTypesConfigDirective","ContentTypesConfigController","deleteDocumentType","documentType","purgeText","purge","deleteContentType","deleteMessage","deleteIssueMessage","contentTypesDS","ContentTypesSearchDirective","ContentTypesSearchController","smbContentTypesSearchDataStore","contentTypesSearchDS","ContentDirective","ContentController","smbContentUploadDataStore","file","$digest","upload","uploadDS","uploadDocument","setIndexTypes","uploadedDocument","DocumentId","onFileInputClick","ev","isIE","isFireFox","querySelector","click","DocumentContextMenuDirective","DocumentContextMenuController","$timeout","smbDocumentDataStore","smbDocumentDetailsPanelDataStore","changeStatus","Label","StatusType","selected","selectedStatus","saveStatus","changeAssingedUser","assignedUser","user","AssignedUser","parsedStatus","parsedUser","contentstatus","contentStatusTagTypeId","Value","todostatus","todoStatusTagTypeId","assigneduserid","assignedUserIdTagTypeId","assigneddate","assignedDateTagTypeId","date","mm","getMonth","dd","getDate","getFullYear","setDocumentStatus","submitSuccess","submitFailure","Error","toDoListDS","console","log","Message","deleteDocument","delete","back","documentDS","detailsPanelDS","loadUserPermissions","sv","csv","tsv","getDocumentStatus","documentContentStatusValue","Tags","documentToDoStatusValue","documentAssignedUserId","getUsersWithModifyRights","userslist","u","UserName","EmailAddress","documentAssignedDate","DocumentDetailsDirective","DocumentDetailsController","detailsDS","DocumentHistoryDirective","link","newVal","docRevisions","loadRevisions","DocumentHistoryController","smbDocumentHistoryDataStore","sbDocumentDetailService","getVersions","revisions","v","DateCreated","CreatedBy","latest","originalFileName","OriginalFileName","extension","promoteRevision","revision","stopPropagation","replace","VersionNumber","isLatest","uploadRevision","err","value","documentHistoryDS","activeTab","loadHistory","DocumentHitListDirective","viewOnSelect","documents","onSelectDocument","DocumentHitListController","onClick","DocumentIndexesDirective","DocumentIndexesController","smbDocumentIndexDataStore","indexDS","documentDetailsDS","getIndexes","indexValues","lhs","rhs","sequence","DocumentIndexesEditDirective","DocumentIndexesEditController","saveIndexes","fieldsStatus","isValid","indexes","toggle","fieldPanel","canEditFields","indexTypePanelModel","DocumentNotesDirective","attrs","scroll","scrollElment","scrollTop","scrollHeight","loaded","$watchCollection","DocumentNotesController","smbDocumentNotesDataStore","postComment","newCommentText","note","notesDS","createNote","authService","loadNotes","DocumentViewDirective","DocumentViewController","loadDoc","loadDocument","docPages","pageUrls","backState","backStateParams","unsubscribe","onUploadSuccess","HomeDirective","HomeController","$mdMedia","media","items","label","isTodoList","IconDirective","iconUri","iconName","IconController","loadIcon","getIconData","IconExtension","iconData","iconTypes","_prevUrl","IndexTypeConfigDirective","currentIndexTypes","currentIndexTypesTitle","indexTypesPool","indexTypesPoolTitle","indexTypesPoolAddLabel","allowEditName","allowEditDefaultValue","allowDelete","onNewItem","onEditItem","onDelete","enableSequencing","IndexTypeConfigController","setActive","active","activeEdit","copyIndexType","saveEdit","indexTypeConflict","indexTypeConflictMessage","cancelEdit","addIndexType","dataType","smbIndexTypeDataTypes","val","DataType","DataTypeName","DefaultValue","addFromPool","remove","indexTypeName","swapIndexTypesOrder","dataTypes","STRING","NUMERIC","DATE","defineProperty","configurable","enumerable","IndexesDirective","IndexesController","stringFieldRegex","keys","fieldsForm","$error","ItemSelectorDirective","ItemSelectorController","multiple","toggleSelection","isDragging","LoginDirective","LoginController","RegisterDirective","authToken","RegisterController","agreeToTerms","StatusDirective","StatusController","onStatusSelected","StatusConfigDirective","readonly","StatusConfigController","checkExistingChips","chip","checkExistingStatuses","existingStatuses","exists","onAddContentStatus","onAddToDoStatus","onDeleteContentStatus","onDeleteToDoStatus","ToDoListDirective","ToDoListController","viewState","doc","ToDoListContextMenuDirective","ToDoListContextMenuController","sortByDate","dateActive","dateAscending","dateDescending","typeActive","statusActive","todolistDS","ASCENDING","DESCENDING","sortByType","typeAscending","typeDescending","sortByStatus","statusAscending","statusDescending","TrashDirective","TrashController","smbDeletedItemsDataStore","confirm","textContent","ariaLabel","ok","cancel","purgeAll","restore","setLoading","initTasks","load","deletedItemsDS","showLogo","UserDirective","UserController","smbUserDataStore","updateUserLock","IsLocked","lockUser","toast","unlockUser","res","existsError","address","errorMessage","UserExists","InvalidPassword","submitForm","backdrop","showLoader","updateUser","hideLoader","Password","VerifyPassword","addUser","toastVisible","getUser","UserAdminDirective","UserAdminController","UserGroupDirective","userGroupId","UserGroupController","smbUserGroupDataStore","userExists","usr","currentUsers","len","addUsers","groupUsers","userGroup","Embedded","Users","newUsers","selectedUsers","removeUser","userIndex","save","saveUserGroup","systemName","doneLoading","userGroupDS","getUserGroup","UserGroupsDirective","UserGroupsController","editUserGroup","UserSelectorController","stringify","fullItems","style","width","filterPhrase","add","hide","UserGroupName","nameEmail","UsersDirective","UsersController","editUser","createUser","ContentTypeConfigDataStore","smbContentTypeConfigService","smbStatusConfigService","_contentType","copy","_newContentType","updateContentType","addContentType","getStatuses","statuses","factory","ContentTypeGroupDataStore","smbUserGroupFilterService","smbLibraryConfigService","smbContentTypeGroupConfigService","smbAclService","smbContentTypeGroupTagTypeConfigService","getLibrary","_contentTypeGroup","getLibraryDetails","details","_contentTypeGroupDetails","filterUserGroups","_newContentTypeGroup","lib","editContentTypeGroup","createContentTypeGroup","createTagType","_contentStatus","_todoStatus","_assignedUserId","_assignedDate","editUserGroups","createViewAccessRights","createFullAccessRights","createEditAccessRights","saveDocumentGroupAcls","assignUserGroupsToContentTypeGroup","acls","assignUserGroupsToLibrary","ContentTypeGroupName","Icon","contentTypeGroupDetails","getUserGroupsWithViewRights","getUserGroupsWithFullRights","getUserGroupsWithEditRights","ContentTypeGroupTagTypesConfigDataStore","_tagTypes","tagtype","tagType","parseFloat","parseInt","reject","ContentTypeGroupsConfigDataStore","getLibraries","libraries","_groups","links","self","Self","deleteLibrary","library","groups","ContentTypeTagTypeConfigDataStore","smbContentTypeTagTypeConfigService","associations","StatusConfigDataStore","folderId","setStatuses","_contentStatusValues","_todoStatusValues","contentStatusValues","todoStatusValues","ContentSearchDataStore","smbContentSearchService","_tagValues","types","_documents","d","DocumentAutoName","substring","StatusInformation","tagValues","tag","mappedTag","smbContentTypeGroupsService","getAllContentTypeGroups","_allGroups","getFullAccessContentTypeGroups","_fullAccessGroups","allGroups","fullAccessGroups","smbContentTypeGroupsSearchService","ContentTypesDataStore","smbContentTypesService","_contentTypes","_groupId","contentTypes","ContentTypesSearchDataStore","smbContentTypesSearchService","ContentUploadDataStore","smbContentUploadService","handler","_uploadHandlers","_uploadedDocument","uploadFile","post","PromoteUri","DeletedItemsDataStore","smbDeletedItemsService","getAdminTrash","_adminTrash","DeletedItem","purgedItem","embedded","__data","Document","Folder","restoredItem","purgePromises","adminTrash","isDoc","now","getItemName","uri","FolderIconUri","deleted","DateDeleted","deletedBy","DeletedByUserName","ItemName","DocumentDataStore","sbDocumentService","SMB_RIGHTS","SMB_RIGHTS_TYPE","getDocument","docView","_document","_pageCount","PageCount","_pages","Id","Url","PageTemplate","PageTemplateParam","getUserPermissionsForDocumentGroup","acl","_acl","pageCount","pages","cacheBust","getTime","canEditStatus","hasAdminAccess","hasAllPermissions","editRights","param","hasFullRights","hasFullAccess","DocumentDetailsPanelDataStore","closePanel","_currentPanel","panelName","isOpen","_fieldPanel","_fieldEdit","_history","_comments","showFieldPanel","showFieldEdit","showHistory","showComments","fieldEditPanel","historyPanel","commentsPanel","DocumentHistoryDataStore","smbDocumentHistoryService","getHistory","history","hi","final","tokenStringFilterReplace","ActivityDate","tokenStringExtractDate","str","tokenRegex","token","capture","parts","attrPart","datestring","DocumentIndexDataStore","smbIndexTypesService","useCached","canUseCached","_indexValues","_indexTypes","_contentTypeId","getDocumentIndexes","_documentId","TypedTags","toNumber","isNumber","toDate","isDate","num","isNaN","m","substr","y","iv","temp","DocumentNotesDataStore","smbDocumentNotesService","getNotes","notes","reverse","_notes","unshift","IconDataStore","smbIconService","_icons","getIcons","iconImage","isBinary","blob","Blob","imageData","objUrl","URL","createObjectURL","IndexTypesDataStore","_typeId","_groupIndexTypes","IndexValue","isDefined","tagcollection","ft","contentStatusId","todoStatusId","assignedDateId","PanelDetailsDataStore","_isOpen","_isOpenInline","showPanel","isOpenInline","StatusDataStore","smbStatusService","ToDoListDataStore","$interval","smbToDoListService","DateAssigned","a","b","result","sortDate","localeCompare","sortByString","_interval","CONST_TODOLIST_POLL_INTERVAL","getCount","count","_count","UserDataStore","sbUserService","Roles","_user","_newUser","setSiteAdmin","setUserAdmin","UserGroupDataStore","sbUserGroupService","_userGroup","_newUserGroup","updateUserGroup","containsUser","UserGroupsDataStore","sbUserGroupsService","_userGroups","UsersDataStore","sbUsersService","_users","AclService","pxUriPathService","PX_PERMISSION_TYPE","PX_ACL_CONST","PX_OBJECT_TYPE","SMB_SITE_ADMIN_GROUP","Acl","right","objectType","objectId","_right","_objectType","_objectId","createAdminRights","admin","LIBRARY","fullRights","viewRights","resolvePath","toServerAcl","getAclWithMostAccess","fromServerAcl","getUserPermissionsForDocumentType","reduce","prev","curr","cmp","cmpAcl","acl1","acl2","Privileges","prototype","hasViewAccess","hasEditAccess","perm","serverAcl","RoleName","Permissions","DOCUMENT","FOLDER","permissionVal","FULLCONTROL","MaxPermission","newPerm","PermissionValue","Allow","Deny","READ","ADDDOC","MODDOC","READDOC","DELDOC","READFOLD","DNLDDOC","MODFOLD","defineProperties","rights","r","constant","ContentTypeConfigService","patch","ContentTypeGroupConfigService","ContentTypeGroupTagTypeConfigService","ContentTypeTagTypeConfigService","StatusConfigService","tagTypeId","constraints","ContentSearchService","Documents","VIEW_RIGHTS","FULL_RIGHTS","EDIT_RIGHTS","READ_DOCUMENTS","CREATE_DOCUMENTS","MODIFY_DOCUMENTS","ContentTypeGroupsSearchService","smbContentTypeAcls","IsPrivate","ContentTypeGroupsService","ContentTypesSearchService","ContentTypesService","UploadService","revisionUploadClickHandler","targetButton","targetInput","revisionButton","prop","buttons","inputs","props","k","getAttribute","revisionInput","clickHandler","addEventListener","removeEventListener","startUpload","isRevision","FileName","sendChunk","offset","chunkSize","endOffset","size","readSlice","Content-Type","startByte","endByte","fn","slice","mozSlice","webkitSlice","uploadInChunks","serverTempFile","patchUri","Location","chunk","fileData","finalizeUpload","x-sharebase-fileref","_uploadFile","revisionUploadSuccess","DeleteDialogService","showPurgeOption","deleteDialogTemplateUrl","DeleteDialogController","permanentlyDelete","DeletedItemsService","resp","RestoreUri","DocumentHistoryService","DocumentNotesService","Comments","commentToDocumentNote","comment","CommentText","CommentId","CommentDate","lastActivityDate","LastActivityDate","replyToUrl","ReplyToUri","DocumentViewerNavigationService","_previousState","_previousStateParams","_defaultState","EnvironmentService","ua","navigator","userAgent","service","create","merge","InstallTrigger","IconService","request","method","Accept","getMediaType","cache","responseType","mediaType","JPEG","GIF","PNG","ICO","_binaryTypes","0","1","2","3","4","STRING_MAX_LENGTH","IndexTypesService","LibraryConfigService","libraryId","serverAPIPath","SortService","propertyName","direction","obj1","obj2","string1","string2","sortObjectByDateProperty","date1","date2","y1","m1","d1","y2","m2","d2","StatusService","ToDoListService","ToolbarService","addContextMenuAction","action","_contextMenuActions","setContextMenuActions","actions","backArrow","showContextMenu","_title","_backArrowState","_showLogo","_showContextMenu","_backArrowStateParams","showBackButton","contextMenuActions","UserGroupFilterService","_userGroupsWithViewRights","_userGroupsWithFullRights","_userGroupsWithEditRights","permission"],"mappings":"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","file":"app.650bfc.min.js","sourcesContent":["webpackJsonp([1],[\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* globals DEBUG */\n\t\n\t/* manually bootstrap app once translations are determined */\n\t(function resolveBootstrap() {\n\t\n\t loadAppAsync()\n\t\t\t.then(function(resolvedLang){ bootstrapApp(resolvedLang); });\n\t\n\t function loadAppAsync() {\n\t\t\t\n\t var initInjector = angular.injector(['ng', 'phoenix', 'site.settings','gettext']);\n\t var $http = initInjector.get('$http');\n\t var pxEnvironmentService = initInjector.get('pxEnvironmentService');\n\t var settingsService = initInjector.get('settingsService');\n\t var gettextCatalog = initInjector.get('gettextCatalog');\n\t\n\t\t\t// determine the current locale and use angular-gettext to get the\n\t\t\t// correct catalog strings. Also use this info to set the proper path to the\n\t\t\t// terms and conditions (legalLanguage)\n\t\t\treturn pxEnvironmentService.loadLanguages()\n\t\t\t\t.then(function(language){\n\t\t\t\t\tlanguage = language.toLowerCase();\n\t\t\t\t\tif (language === 'en' || language === 'en-us') {\n\t\t\t\t\t\treturn 'en';\n\t\t\t\t\t}\n\t\n\t\t\t\t\treturn gettextCatalog.loadRemote('lang/' + language + '.json')\n\t\t\t\t\t\t.then(function(){\n\t\t\t\t\t\t\treturn gettextCatalog.loadRemote('lang/sharebase/' + language + '.json');\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function(){\n\t\t\t\t\t\t\treturn language;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function(){\n\t\t\t\t\t\t\treturn 'en';\n\t\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.then(function(language) {\n\t\t\t\t\tgettextCatalog.setCurrentLanguage(language);\n\t\n\t\t\t\t\tvar tosPath = '/' + language + '/terms-of-use-and-subscription/index.htm';\n\t\t\t\t\treturn $http.head(settingsService.serverLegalPath + tosPath)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tpxEnvironmentService.legalLanguage = language;\n\t\t\t\t\t\t\treturn {lang: gettextCatalog.currentLanguage, legalLang: language, strings: gettextCatalog.strings };\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function() {\n\t\t\t\t\t\t\tpxEnvironmentService.legalLanguage = 'en';\n\t\t\t\t\t\t\treturn {lang: gettextCatalog.currentLanguage, legalLang: 'en', strings: gettextCatalog.strings };\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\n\t }\n\t\n\t function bootstrapApp(resolvedLang) {\n\t\t\t/* we create a new module \n\t\t\t *\t\t- config block to generate MD themes on app load\n\t\t\t *\t\t- run block to set the resolved language/strings\n\t\t\t *\t\t- depend on original auto bootstrap module - smb-app.app\n\t\t\t */\n\t\t\tangular.module('asyncAppLoader',['smb-app.app'])\n\t\t\t\t.config(['$mdThemingProvider',\tfunction ($mdThemingProvider) {\t\t\t\t\t\t\n\t\t\t\t\t//seems mdThemes are not generated during manual bootstrap, so allow themes to be generated after config block\n\t\t\t\t\t$mdThemingProvider.generateThemesOnDemand(true);\n\t\t\t\t}])\n\t\t\t\t.run([\n\t\t\t\t\t'gettextCatalog',\n\t\t\t\t\t'pxEnvironmentService',\n\t\t\t\t\tfunction(gettextCatalog, pxEnvironmentService){\t\t\t\t\t\n\t\t\t\t\t\t//set resolved language\n\t\t\t\t\t\tif(resolvedLang){\n\t\t\t\t\t\t\tgettextCatalog.setCurrentLanguage(resolvedLang.lang);\n\t\t\t\t\t\t\tgettextCatalog.strings = resolvedLang.strings;\n\t\t\t\t\t\t\tpxEnvironmentService.legalLanguage = resolvedLang.legalLang;\n\t\t\t\t\t\t}\n\t\t\t\t}]);\n\t\n\t\t\t//now bootstrap app\n\t angular.element(document).ready(function() {\n\t angular.bootstrap(document, ['asyncAppLoader']);\t\t\t\n\t });\n\t }\n\t}());\n\t\n\t(function () {\n\t\t'use strict';\n\t\tangular.module('smb-app',\n\t\t\t[\n\t\t\t\t'ngMaterial',\n\t\t\t\t'ui.router',\n\t\t\t\t'ngMessages',\n\t\t\t\t'site.settings',\n\t\t\t\t'phoenix',\n\t\t\t\t'phoenix.acl',\n\t\t\t\t'phoenix.appIdentifier',\n\t\t\t\t'sharebase',\n\t\t\t\t'gettext'\n\t\t\t])\n\t\t\t.config([\n\t\t\t\t'$mdThemingProvider',\n\t\t\t\tfunction ($mdThemingProvider) {\n\t\t\t\t\t//color theme declarations\n\t\t\t\t\t//http://www.google.com/design/spec/style/color.html#color-color-palette\n\t\t\t\t\t$mdThemingProvider.definePalette('sharebase', {\n\t\t\t\t\t\t'50': '00586E',\n\t\t\t\t\t\t'100': '7fdcf2',\n\t\t\t\t\t\t'200': 'ebf2f3',\n\t\t\t\t\t\t'300': '00586E',\n\t\t\t\t\t\t'400': '00586E',\n\t\t\t\t\t\t'500': '00586E',\n\t\t\t\t\t\t'600': '00586E',\n\t\t\t\t\t\t'700': '00586E',\n\t\t\t\t\t\t'800': '00586E',\n\t\t\t\t\t\t'900': '00586E',\n\t\t\t\t\t\t'A100': '00586E',\n\t\t\t\t\t\t'A200': '00cbee',\n\t\t\t\t\t\t'A400': '00cbee',\n\t\t\t\t\t\t'A700': '00cbee',\n\t\t\t\t\t\t'contrastDefaultColor': 'dark' // whether, by default, text (contrast)\n\t\t\t\t\t});\n\t\n\t\t\t\t\t$mdThemingProvider.theme('sharebase')\n\t\t\t\t\t\t.primaryPalette('sharebase', {\n\t\t\t\t\t\t\t'default': '50',\n\t\t\t\t\t\t\t'hue-1': '100',\n\t\t\t\t\t\t\t'hue-2': '200',\n\t\t\t\t\t\t\t'hue-3': 'A100'\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.accentPalette('blue', {\n\t\t\t\t\t\t\t'hue-1': '50',\n\t\t\t\t\t\t\t'hue-2': '100',\n\t\t\t\t\t\t\t'hue-3': 'A100'\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.warnPalette('red', {\n\t\t\t\t\t\t\t'default': '500',\n\t\t\t\t\t\t\t'hue-1': '100',\n\t\t\t\t\t\t\t'hue-2': '700',\n\t\t\t\t\t\t\t'hue-3': 'A100'\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t])\n\t\t\t.run([\n\t\t\t\t'gettextCatalog',\n\t\t\t\tfunction(gettextCatalog){\n\t\t\t\t\tif (false) {\n\t\t\t\t\t\tgettextCatalog.showTranslatedMarkers = true;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t}])\n\t\t\t.controller('smbAppController', ['pxProgressService', 'smbEnvironmentService', '$mdTheming', AppController]);\n\t\n\t\tfunction AppController(pxProgressService, smbEnvironmentService, $mdTheming) {\n\t\t\tvar vm = this;\n\t\t\t//generate the predefined theme named sharebase\n\t\t\t$mdTheming.generateTheme('sharebase');\n\t\n\t\t\tvm.environment = smbEnvironmentService;\n\t\t\tvm.progressUI = pxProgressService;\n\t\t}\n\t}());\n\t\n\t__webpack_require__(21);\n\t__webpack_require__(89);\n\t__webpack_require__(125);\n\t__webpack_require__(154);\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/userSelectorDialog/userSelectorDialog.template.html';\n\tvar html = \"
19, 'showFilter': vm.showFilter }\\\">
19\\\" ng-click=\\\"vm.showFilter = !vm.showFilter\\\"> filter_list done clear
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__.p + \"./assets/airbaselogo.929f20.png\";\n\n/***/ }),\n/* 3 */,\n/* 4 */,\n/* 5 */,\n/* 6 */\n/***/ (function(module, exports) {\n\n\tvar path = 'services/deleteDialogService/deleteDialog.template.html';\n\tvar html = \"

{{vm.title}}

{{vm.message}}

{{vm.purgeText}}

{{::'Permanently Delete' | translate}}
Cancel Delete
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 7 */,\n/* 8 */,\n/* 9 */,\n/* 10 */,\n/* 11 */,\n/* 12 */,\n/* 13 */,\n/* 14 */,\n/* 15 */,\n/* 16 */,\n/* 17 */,\n/* 18 */,\n/* 19 */,\n/* 20 */,\n/* 21 */\n57,\n/* 22 */\n57,\n/* 23 */\n57,\n/* 24 */\n57,\n/* 25 */\n57,\n/* 26 */\n57,\n/* 27 */\n57,\n/* 28 */\n57,\n/* 29 */\n57,\n/* 30 */\n57,\n/* 31 */\n57,\n/* 32 */\n57,\n/* 33 */\n57,\n/* 34 */\n57,\n/* 35 */\n57,\n/* 36 */\n57,\n/* 37 */\n57,\n/* 38 */\n57,\n/* 39 */\n57,\n/* 40 */\n57,\n/* 41 */\n57,\n/* 42 */\n57,\n/* 43 */\n57,\n/* 44 */\n57,\n/* 45 */\n57,\n/* 46 */\n57,\n/* 47 */\n57,\n/* 48 */\n57,\n/* 49 */\n57,\n/* 50 */\n57,\n/* 51 */\n57,\n/* 52 */\n57,\n/* 53 */\n57,\n/* 54 */\n57,\n/* 55 */\n57,\n/* 56 */\n57,\n/* 57 */,\n/* 58 */,\n/* 59 */,\n/* 60 */,\n/* 61 */,\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app.app', [\n\t\t\t\t'smb-app'\n\t\t\t])\n\t\t\t.run([\n\t\t\t\t'$rootScope', \n\t\t\t\t'$state', \n\t\t\t\t'$injector', \n\t\t\t\t'pxAuthService', \n\t\t\t\t'smbPanelDetailsDataStore',\n\t\t\t\tfunction ($rootScope, $state, $injector, pxAuthService, smbPanelDetailsDataStore) {\n\t\t\t\t\n\t\t\t\t$rootScope.$on('$stateChangeStart', function (e, to) {\n\t\t\t\t\t// closes side panel for any route that does not explicitly\n\t\t\t\t\t// support side panel, this makes sure side panels get closed\n\t\t\t\t\t// on state changes\n\t\t\t\t\tif (!(to.data && to.data.hasSidePanel)) {\n\t\t\t\t\t\tsmbPanelDetailsDataStore.reset();\n\t\t\t\t\t}\n\t\n\t\t\t\t\tvar rule = to.data ? to.data.rule : null;\n\t\t\t\t\tvar redirect;\n\t\n\t\t\t\t\t// If user is not authenticated, they can only reach the login and register states\n\t\t\t\t\tif (!pxAuthService.isAuthenticated && !(to.parent === 'loginComponent' || to.name === 'register')) {\n\t\t\t\t\t\tredirect = {\n\t\t\t\t\t\t\tto: 'login'\n\t\t\t\t\t\t};\n\t\t\t\t\t} else if (angular.isFunction(rule)) {\n\t\t\t\t\t\tredirect = rule($injector);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (redirect && redirect.to !== to.name) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t$state.go(redirect.to, redirect.params, { reload: redirect.to === $state.current.name });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}])\n\t\t\t.config([\n\t\t\t\t'$urlRouterProvider',\n\t\t\t\t'$stateProvider',\n\t\t\t\t'$httpProvider',\n\t\t\t\t'pxAppIdentifierInterceptorProvider',\n\t\t\t\tfunction ($urlRouterProvider, $stateProvider, $httpProvider, pxAppIdentifierInterceptorProvider) {\n\t\t\t\t\tpxAppIdentifierInterceptorProvider.setAppId('AirBase');\n\t\n\t\t\t\t\tif (!$httpProvider.defaults.headers.get) {\n\t\t\t\t\t\t$httpProvider.defaults.headers.get = {};\n\t\t\t\t\t}\n\t\n\t\t\t\t\t//disable IE ajax request caching\n\t \t\t\t$httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';\n\t\n\t\t\t\t\t//http intercepetors\n\t\t\t\t\t$httpProvider.interceptors.push('pxAuthInterceptor');\n\t\t\t\t\t$httpProvider.interceptors.push('pxAppIdentifierInterceptor');\n\t\t\t\t\t\n\t\t\t\t\t// defualt state\n\t\t\t\t\t$urlRouterProvider.otherwise('/');\n\t\n\t\t\t\t\t//state definitions\n\t\t\t\t\t$stateProvider\n\t\t\t\t\t\t.state('register', {\n\t\t\t\t\t\t\turl: '/register/:deploymentId?auth',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\tmain: {\n\t\t\t\t\t\t\t\t\ttemplate: function(params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('loginComponent', {\n\t\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\t\turl: '',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('content', {\n\t\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\t\turl: '/',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('content.home', {\n\t\t\t\t\t\t\turl: '',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('useradmin', {\n\t\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\t\turl: '/useradmin',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\trule: inject(['pxAuthService', function (pxAuthService) {\n\t\t\t\t\t\t\t\t\t// only site admins and user admins can access these pages\n\t\t\t\t\t\t\t\t\tif (!pxAuthService.isSiteAdmin && !pxAuthService.isUserAdmin) {\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tto: 'content.home'\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('useradmin.home', {\n\t\t\t\t\t\t\turl: '',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('useradmin.home.usergroups', {\n\t\t\t\t\t\t\turl: '/usergroups',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@useradmin': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('useradmin.home.usergroups.details', {\n\t\t\t\t\t\t\turl: '/:usergroupId',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@useradmin': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('useradmin.home.users', {\n\t\t\t\t\t\t\turl: '/users',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@useradmin': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('useradmin.home.users.details', {\n\t\t\t\t\t\t\turl: '/:userId',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@useradmin': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('contentConfig', {\n\t\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\t\turl: '/contentconfiguration',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\trule: inject(['pxAuthService', function (pxAuthService) {\n\t\t\t\t\t\t\t\t\t// only site admins can access content configuration\n\t\t\t\t\t\t\t\t\tif (!pxAuthService.isSiteAdmin) {\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tto: 'content.home'\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('contentConfig.groups', {\n\t\t\t\t\t\t\turl: '/contenttypegroups',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('contentConfig.groups.details', {\n\t\t\t\t\t\t\turl: '/:groupId',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@contentConfig': { template: function (params) { return ''; } }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('contentConfig.types', {\n\t\t\t\t\t\t\turl: '/contenttypegroups/:groupId/contenttypes',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) { return ''; }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('contentConfig.types.details', {\n\t\t\t\t\t\t\turl: '/:typeId',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@contentConfig': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) { return ''; }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('documentTrash', {\n\t\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\t\turl: '/trash',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\trule: inject(['pxAuthService', function (pxAuthService) {\n\t\t\t\t\t\t\t\t\tvar privs = pxAuthService.privileges;\n\t\t\t\t\t\t\t\t\tvar hasTrashPriv = privs.core && privs.core.trash ?\n\t\t\t\t\t\t\t\t\t\tprivs.core.trash.manageTrash :\n\t\t\t\t\t\t\t\t\t\tfalse;\n\t\n\t\t\t\t\t\t\t\t\t// only site admins can access content configuration\n\t\t\t\t\t\t\t\t\tif (!pxAuthService.isSiteAdmin && !hasTrashPriv) {\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tto: 'content.home'\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('documentTrash.home', {\n\t\t\t\t\t\t\turl: '',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('import', {\n\t\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\t\turl: '/import',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('import.contentTypeGroups', {\n\t\t\t\t\t\t\turl: '',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('import.contentTypeGroups.contentTypes', {\n\t\t\t\t\t\t\turl: '/:groupId',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@import': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('import.contentTypeGroups.contentTypes.content', {\n\t\t\t\t\t\t\turl: '/:typeId',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@import': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('search', {\n\t\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\t\turl: '/search',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('search.contentTypeGroups', {\n\t\t\t\t\t\t\turl: '',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('search.contentTypeGroups.contentTypes', {\n\t\t\t\t\t\t\turl: '/:groupId',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@search': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('search.contentTypeGroups.contentTypes.groupSearch', {\n\t\t\t\t\t\t\turl: '/all',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@search': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('search.contentTypeGroups.contentTypes.groupSearch.results', {\n\t\t\t\t\t\t\turl: '/results',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@search': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('search.contentTypeGroups.contentTypes.search', {\n\t\t\t\t\t\t\turl: '/:typeId',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@search': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('search.contentTypeGroups.contentTypes.search.results', {\n\t\t\t\t\t\t\turl: '/results',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app@search': {\n\t\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('todo', {\n\t\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\t\turl: '/mytodolist',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('todo.list', {\n\t\t\t\t\t\t\turl: '',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\t'app': { template: ''}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('document', {\n\t\t\t\t\t\t\turl: '/documentgroups/:documentGroupId/documenttypes/:documentTypeId/documents/:documentId',\n\t\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\tmain: {\n\t\t\t\t\t\t\t\t\ttemplate: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.state('document.view', {\n\t\t\t\t\t\t\turl: '',\n\t\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t\tapp: {\n\t\t\t\t\t\t\t\t\ttemplate: function(params) {\n\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\tfunction inject() {\n\t\t\t\t\t\tvar injectionArgs = arguments;\n\t\t\t\t\t\treturn function injectableWrapper($injector) {\n\t\t\t\t\t\t\t$injector = $injector || angular.injector(['ng']);\n\t\n\t\t\t\t\t\t\treturn $injector.invoke.apply($injector, injectionArgs);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t])\n\t\t\t// This is from the demo and will eventually be removed. We will need to discuss theming items.\n\t\t\t// This maps a number to a color and is used in various components that list items to color them by\n\t\t\t// the list index.\n\t\t\t/* jshint maxcomplexity:12 */\n\t\t\t.filter('colorFilter', function () {\n\t\t\t\treturn function (position) {\n\t\t\t\t\tposition = (position % 11) + 1;\n\t\t\t\t\tswitch (position) {\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\treturn 'blue';\n\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\treturn 'green';\n\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\treturn 'lightBlue';\n\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\treturn 'yellow';\n\t\t\t\t\t\tcase 5:\n\t\t\t\t\t\t\treturn 'onbaseBlue';\n\t\t\t\t\t\tcase 6:\n\t\t\t\t\t\t\treturn 'lightGreen';\n\t\t\t\t\t\tcase 7:\n\t\t\t\t\t\t\treturn 'sharebaseBlue';\n\t\t\t\t\t\tcase 8:\n\t\t\t\t\t\t\treturn 'orange';\n\t\t\t\t\t\tcase 9:\n\t\t\t\t\t\t\treturn 'gray';\n\t\t\t\t\t\tcase 10:\n\t\t\t\t\t\t\treturn 'darkGreen';\n\t\t\t\t\t\tcase 11:\n\t\t\t\t\t\t\treturn 'yellow';\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn 'green';\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t})\n\t\t\t// Removes div elements and precedes the text that was previously\n\t\t\t// contained in the div with a br element\n\t\t\t.filter('lineBreak', function() {\n\t\t\t\treturn function(text) {\n\t\t\t\t\treturn text\n\t\t\t\t\t\t.split('

').join('
')\n\t\t\t\t\t\t.split('
').join('
')\n\t\t\t\t\t\t.split('
').join('');\n\t\t\t\t};\n\t\t\t})\n\t\t\t// Escapes html in text so it can be used with the ng-bind-html directive\n\t\t\t.filter('trustHTML', ['$sce', function($sce) {\n\t\t\t\treturn function(htmlCode) {\n\t\t\t\t\treturn $sce.trustAsHtml(htmlCode);\n\t\t\t\t};\n\t\t\t}])\n\t\t\t.directive('smbMain',\n\t\t\t[\n\t\t\t\tMainDirective\n\t\t\t])\n\t\t\t.controller('MainController',\n\t\t\t[\n\t\t\t\t'$window',\n\t\t\t\t'$state',\n\t\t\t\t'smbToDoListDataStore',\n\t\t\t\t'smbPanelDetailsDataStore',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'pxAuthService',\n\t\t\t\t'pxEnvironmentService',\n\t\t\t\tMainController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(163);\n\t\tfunction MainDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: MainController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction MainController($window, $state, smbToDoListDataStore, smbPanelDetailsDataStore, smbToolbarService, pxAuthService, pxEnvironmentService) {\n\t\t\tvar vm = this;\t\t\n\t\t\tvm.todoListDS = smbToDoListDataStore;\n\t\n\t\t\t// Wrap in check to make sure user is authenticated, because this controller\n\t\t\t// may be created before user logs in\n\t\t\tif (pxAuthService.isAuthenticated) {\n\t\t\t\tvm.todoListDS.loadCount();\n\t\t\t\tvm.todoListDS.init();\n\t\t\t}\n\t\n\t\t\tvm.logout = logout;\n\t\t\tvm.openLink = openLink;\n\t\t\tvm.isUserAdmin = isUserAdmin;\n\t\t\tvm.isContentAdmin = isContentAdmin;\n\t\t\tvm.smbToolbarService = smbToolbarService;\n\t\t\tvm.panelDetailsDS = smbPanelDetailsDataStore;\n\t\t\tvm.pxEnvironmentService = pxEnvironmentService;\n\t\t\tvm.userName = pxAuthService.displayName;\n\t\t\tvm.privileges = pxAuthService.privileges;\n\t\t\tvm.isSiteAdmin = pxAuthService.isSiteAdmin;\n\t\n\t\t\t// flag that determines if the mobile navigation\n\t\t\t// via a sidebar is open or closed\n\t\t\tvm.mobileNavOpen = false;\n\t\n\t\t\tvm.onClickBackArrow = onClickBackArrow;\n\t\n\t\t\tfunction isUserAdmin() {\n\t\t\t\treturn smbToolbarService.hasUserAdminRights;\n\t\t\t}\n\t\n\t\t\tfunction isContentAdmin() {\n\t\t\t\treturn smbToolbarService.hasContentAdminRights;\n\t\t\t}\n\t\n\t\t\tfunction logout() {\n\t\t\t\tpxAuthService.invalidateLogin();\n\t\t\t\tvm.todoListDS.clear();\n\t\t\t\t$state.go('login');\n\t\t\t}\n\t\n\t\t\tfunction onClickBackArrow() {\n\t\t\t\t$state.go(vm.smbToolbarService.backArrowState, vm.smbToolbarService.backArrowStateParams);\n\t\t\t}\n\t\n\t\t\tfunction openLink(url) {\n\t\t\t\t$window.open(url,'_blank');\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbAssignedUsers',[AssignedUsersDirective])\n\t\t\t.controller('AssignedUsersController', [\n\t\t\t\tAssignedUsersController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(164);\n\t\tfunction AssignedUsersDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: AssignedUsersController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tassignedUsers: '=',\n\t\t\t\t\tselectedUser: '=',\n\t\t\t\t\tisContentStatusSelected: '='\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction AssignedUsersController() {\n\t\t\tvar vm = this;\n\t\t\tvm.onChange = onChange;\n\t\n\t\t\tfunction onChange() {\n\t\t\t\tif (vm.selectedUser === '') {\n\t\t\t\t\tvm.selectedUser = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentSearch', [ContentSearchDirective])\n\t\t\t.controller('ContentSearchController',\n\t\t\t[\n\t\t\t\t'$state',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbStatusDataStore',\n\t\t\t\t'smbUsersDataStore',\n\t\t\t\t'smbIndexTypesDataStore',\n\t\t\t\t'smbContentSearchDataStore',\n\t\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\tContentSearchController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(165);\n\t\tfunction ContentSearchDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentSearchController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: {\n\t\t\t\t\tgroupId: '@',\n\t\t\t\t\ttypeId: '@'\n\t\t\t\t},\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentSearchController($state, gettextCatalog, pxProgressService, smbToolbarService, smbStatusDataStore, smbUsersDataStore, smbIndexTypesDataStore,\n\t\t\t\t\t\t\t\t\t\t\tsmbContentSearchDataStore, smbContentTypeGroupConfigDataStore, smbContentTypeConfigDataStore, smbIconTypes) {\n\t\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Search Document Type'), 'search.contentTypeGroups.contentTypes');\n\t\n\t\t\tvar vm = this;\n\t\t\tvar ARCHIVAL_STATUS = 'Archival Status';\n\t\t\tvar TODO_STATUS = 'ToDo Status';\n\t\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\n\t\t\tvm.docDateStart = new Date();\n\t\t\tvm.docDateEnd = new Date();\n\t\n\t\t\tvm.search = search;\n\t\n\t\t\tvm.contentTypeDS = smbContentTypeConfigDataStore;\n\t\t\tvm.contentTypeGroupDS = smbContentTypeGroupConfigDataStore;\n\t\t\tvm.indexTypesDS = smbIndexTypesDataStore;\n\t\t\tvm.statusDS = smbStatusDataStore;\n\t\t\tvm.usersDS = smbUsersDataStore;\n\t\t\tvm.filename = null;\n\t\n\t\t\tvm.indextypes = [];\n\t\t\tvm.contentStatuses = [];\n\t\t\tvm.todoStatuses = [];\n\t\t\tvm.status = null;\n\t\t\tvm.selectedUser = null;\n\t\t\tvm.isContentStatusSelected = false;\n\t\t\tvm.onStatusChange = onStatusChange;\n\t\n\t\t\tvm.indexFileChanged = indexFileChanged;\n\t\n\t\t\tfunction indexFileChanged(fileInput) {\n\t\t\t\tif (fileInput.files.length === 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvm.filename = fileInput.files[0].name;\n\t\t\t}\n\t\n\t\t\tvm.contentTypeGroupDS.getContentTypeGroup(vm.groupId)\n\t\t\t.then(function () {\n\t\t\t\tvm.contentTypeDS.getContentType(vm.groupId, vm.typeId);\n\t\t\t})\n\t\t\t.then(function () {\n\t\t\t\tvm.indexTypesDS.getIndexTypes(vm.typeId).then(function () {\n\t\t\t\t\tvm.indextypes = vm.indexTypesDS.indexTypes.map(function(it) {\n\t\t\t\t\t\treturn angular.extend({}, it, {defaultValue: undefined});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t})\n\t\t\t.then(function() {\n\t\t\t\treturn vm.statusDS.loadStatuses(vm.typeId);\n\t\t\t})\n\t\t\t.then(function() {\n\t\t\t\tvm.contentStatuses = [];\n\t\t\t\tif (vm.statusDS.contentStatus[0]) {\n\t\t\t\t\tvm.contentStatuses = vm.statusDS.contentStatus[0].Constraints.DataSetValues.map(function(s) {\n\t\t\t\t\t\treturn {TagTypeId: vm.statusDS.contentStatus[0].TagTypeId, indexValue: s, type: ARCHIVAL_STATUS};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tvm.todoStatuses = [];\n\t\t\t\tif (vm.statusDS.todoStatus[0]) {\n\t\t\t\t\tvm.todoStatuses = vm.statusDS.todoStatus[0].Constraints.DataSetValues.map(function(s) {\n\t\t\t\t\t\treturn {TagTypeId: vm.statusDS.todoStatus[0].TagTypeId, indexValue: s, type: TODO_STATUS};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(function() {\n\t\t\t\treturn vm.usersDS.getUsers();\n\t\t\t});\n\t\n\t\t\tfunction onStatusChange() {\n\t\t\t\tif (vm.status) {\n\t\t\t\t\tvar Status = JSON.parse(vm.status);\n\t\t\t\t\tif (Status.type === ARCHIVAL_STATUS) {\n\t\t\t\t\t\tvm.isContentStatusSelected = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvm.isContentStatusSelected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvm.isContentStatusSelected = false;\n\t\t\t\t\tvm.status = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction search() {\n\t\t\t\tif (vm.status) {\n\t\t\t\t\tvm.status = JSON.parse(vm.status);\n\t\t\t\t\tvm.indextypes.push({TagTypeId: vm.status.TagTypeId, indexValue: vm.status.indexValue});\n\t\t\t\t}\n\t\t\t\tif (vm.selectedUser && !vm.isContentStatusSelected) {\n\t\t\t\t\tvm.selectedUser = JSON.parse(vm.selectedUser);\n\t\t\t\t\tvm.indextypes.push({TagTypeId: vm.indexTypesDS.assignedUserId, indexValue: vm.selectedUser.UserId});\n\t\t\t\t}\n\t\t\t\tsmbContentSearchDataStore.setTagValues(vm.indextypes);\n\t\t\t\t$state.go('search.contentTypeGroups.contentTypes.search.results',{ groupId: vm.groupId, typeId: vm.typeId });\n\t\t\t}\n\t\t}\n\t}());\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentSearchResults', [ContentSearchResultsDirective])\n\t\t\t.controller('ContentSearchResultsController',\n\t\t\t[\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\t'smbContentSearchDataStore',\n\t\t\t\t'smbDocumentViewerNavigationService',\n\t\t\t\tContentSearchResultsController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(166);\n\t\tfunction ContentSearchResultsDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentSearchResultsController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tgroupId: '@',\n\t\t\t\t\ttypeId: '@'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentSearchResultsController(gettextCatalog, smbToolbarService, smbContentTypeGroupConfigDataStore, smbContentTypeConfigDataStore, smbIconTypes, smbContentSearchDataStore, smbDocumentViewerNavigationService) {\n\t\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Search Results'), 'search.contentTypeGroups.contentTypes.search');\n\t\n\t\t\tvar vm = this;\n\t\t\tvm.contentSearchDS = smbContentSearchDataStore;\n\t\t\tvm.contentTypeGroupDS = smbContentTypeGroupConfigDataStore;\n\t\t\tvm.contentTypeDS = smbContentTypeConfigDataStore;\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\t\tvm.documentNavigation = smbDocumentViewerNavigationService;\n\t\n\t\t\t(function loadSearchResults() {\n\t\t\t\tsmbContentSearchDataStore.getDocuments(vm.groupId, vm.typeId);\n\t\t\t})();\n\t\t}\n\t}());\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* jshint maxstatements: false */\n\t(function () {\n\t\t'use strict';\n\t\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.smbContentTypeConfig\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t *\n\t\t * @description\n\t\t * Displays a form that can be used for creating new content types or editing\n\t\t * existing content types.\n\t\t *\n\t\t * @usage Create a new content type\n\t\t *\n\t\t * \n\t\t *\n\t\t * @usage Edit an existing content type\n\t\t *\n\t\t * \n\t\t *\n\t\t * @element input\n\t\t * @param {number=} contentTypeGroupId Id of the content type group the content type belongs to\n\t\t * @element input\n\t\t * @param {number=} contentTypeId An optional id of an existing content type. If provided, the form\n\t\t * will be used to edit the content type. If omitted, the form will be used to create a new content type.\n\t\t */\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypeConfig', ContentTypeConfigDirective)\n\t\t\t.controller('smbContentTypeConfigController', [\n\t\t\t\t'$scope',\n\t\t\t\t'$q',\n\t\t\t\t'$state',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbSortService',\n\t\t\t\t'smbStatusConfigDataStore',\n\t\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t\t'smbContentTypeGroupTagTypesConfigDataStore',\n\t\t\t\t'smbContentTypeTagTypeConfigDataStore',\n\t\t\t\tContentTypeConfigController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(167);\n\t\tfunction ContentTypeConfigDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbContentTypeConfigController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: {\n\t\t\t\t\tcontentTypeGroupId: '@',\n\t\t\t\t\tcontentTypeId: '@'\n\t\t\t\t},\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypeConfigController(\n\t\t\t$scope,\n\t\t\t$q,\n\t\t\t$state,\n\t\t\tgettextCatalog,\n\t\t\tpxProgressService,\n\t\t\tsbToastService,\n\t\t\tsmbToolbarService,\n\t\t\tsmbSortService,\n\t\t\tsmbStatusConfigDataStore,\n\t\t\tsmbContentTypeConfigDataStore,\n\t\t\tsmbContentTypeGroupTagTypesConfigDataStore,\n\t\t\tsmbContentTypeTagTypeConfigDataStore\n\t\t) {\n\t\t\tvar vm = this;\n\t\t\tvm.isLoading = false;\n\t\n\t\t\t// Set toolbar state, including the title, back arrow target state, and hide contextual toolbar and side panel\n\t\t\tvar title = vm.contentTypeId ? gettextCatalog.getString('Edit Document Type') : gettextCatalog.getString('Create Document Type');\n\t\t\tsmbToolbarService.set(title, 'contentConfig.types', false, false);\n\t\t\tsmbToolbarService.backArrowStateParams = { groupId: vm.contentTypeGroupId };\n\t\n\t\t\t// Dirty flags for the various types. These are used to determine if\n\t\t\t// an asterisk should be displayed next to a section's label.\n\t\t\tvm.typeIsDirty = false;\n\t\t\tvm.indexTypesAreDirty = false;\n\t\t\tvm.statusIsDirty = false;\n\t\n\t\t\t// The different types being edited in this section.\n\t\t\tvm.contentType = null;\n\t\t\tvm.contentTypeIndexes = [];\n\t\t\tvm.contentTypeGroupIndexes = [];\n\t\n\t\t\t// Event handlers for the subcomponents\n\t\t\tvm.onSubmit = onSubmit;\n\t\t\tvm.onContentTypeChange = onContentTypeChange;\n\t\t\tvm.onAddIndexType = onAddIndexType;\n\t\t\tvm.onEditIndexType = onEditIndexType;\n\t\t\tvm.onDeleteIndexType = onDeleteIndexType;\n\t\t\tvm.onStatusChange = onStatusChange;\n\t\t\tvm.onSequence = onSequence;\n\t\n\t\t\tvm.contentStatus = null;\n\t\t\tvm.todoStatus = null;\n\t\t\tvm.assignedUserId = null;\n\t\t\tvm.assignedDate = null;\n\t\t\tvm.contentStatuses = [];\n\t\t\tvm.todoStatuses = [];\n\t\t\tvm.readOnly = false;\n\t\n\t\t\tvar sortTagTypeByName = smbSortService.sortObjectByStringProperty('TagTypeName');\n\t\n\t\t\t/*** Controller initialization ***/\n\t\t\t(function initConentTypeConfigController() {\n\t\t\t\tvm.typeIsDirty = false;\n\t\t\t\tvm.indexTypesAreDirty = false;\n\t\t\t\tvm.statusIsDirty = false;\n\t\n\t\t\t\tvm.isLoading = true;\n\t\t\t\tpxProgressService.visible = true;\n\t\n\t\t\t\tsmbContentTypeConfigDataStore\n\t\t\t\t\t.getContentType(vm.contentTypeGroupId, vm.contentTypeId)\n\t\t\t\t\t\t.then(function() { /* Copy object so we don't mutate the one on the data store. */\n\t\t\t\t\t\t\tvm.contentType = Object.assign({}, smbContentTypeConfigDataStore.contentType);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() { /* Load content type level tag types */\n\t\t\t\t\t\t\treturn smbContentTypeTagTypeConfigDataStore.getTagTypes(vm.contentTypeId);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() { /* Copy array and objects in array so we don't mutate the ones on the data store. */\n\t\t\t\t\t\t\tvm.contentTypeIndexes = smbContentTypeTagTypeConfigDataStore.tagTypes\n\t\t\t\t\t\t\t\t.filter(function(tt) {\n\t\t\t\t\t\t\t\t\treturn !(tt.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\t\treturn Object.assign({}, tt, {\n\t\t\t\t\t\t\t\t\t\tConstraints: Object.assign({}, tt.Constraints)\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tif (vm.contentTypeId) {\n\t\t\t\t\t\t\t\tvm.contentStatus = smbContentTypeTagTypeConfigDataStore.contentStatus\n\t\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\t\treturn Object.assign({}, tt);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tvm.todoStatus = smbContentTypeTagTypeConfigDataStore.todoStatus\n\t\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\t\treturn Object.assign({}, tt);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tvm.assignedUserId = smbContentTypeTagTypeConfigDataStore.assignedUserId\n\t\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\t\treturn Object.assign({}, tt);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tvm.assignedDate = smbContentTypeTagTypeConfigDataStore.assignedDate\n\t\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\t\treturn Object.assign({}, tt);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn $q.resolve([]);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tvm.contentStatuses = [];\n\t\t\t\t\t\t\tvm.todoStatuses = [];\n\t\t\t\t\t\t\tif (vm.contentTypeId) {\n\t\t\t\t\t\t\t\tif (vm.contentStatus[0]) {\n\t\t\t\t\t\t\t\t\tvm.contentStatuses = (vm.contentStatus[0].Constraints.DataSetValues) ? vm.contentStatus[0].Constraints.DataSetValues : [];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (vm.todoStatus[0]) {\n\t\t\t\t\t\t\t\t\tvm.todoStatuses = (vm.todoStatus[0].Constraints.DataSetValues) ? vm.todoStatus[0].Constraints.DataSetValues : [];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvm.readOnly = (vm.contentStatuses.length + vm.todoStatuses.length) > 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() { /* Load content type group level tag types */\n\t\t\t\t\t\t\treturn smbContentTypeGroupTagTypesConfigDataStore.getTagTypes(vm.contentTypeGroupId);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() { /* Copy objects, filter out those that are already assigned to the content type. */\n\t\t\t\t\t\t\tvm.contentTypeGroupIndexes = smbContentTypeGroupTagTypesConfigDataStore.tagTypes\n\t\t\t\t\t\t\t\t.filter(function(tt) {\n\t\t\t\t\t\t\t\t\tvar t = vm.contentTypeIndexes.find(function(i) { return i.TagTypeId === tt.TagTypeId; });\n\t\t\t\t\t\t\t\t\treturn t ? false : true;\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\t\treturn Object.assign({}, tt, {\n\t\t\t\t\t\t\t\t\t\tConstraints: Object.assign({}, tt.Constraints)\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t\t// sort alphabetically by name\n\t\t\t\t\t\t\tvm.contentTypeGroupIndexes.sort(sortTagTypeByName);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.finally(function() { /* done */\n\t\t\t\t\t\t\tvm.isLoading = false;\n\t\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t\t});\n\t\t\t}());\n\t\n\t\t\tfunction onSubmit() {\n\t\t\t\tif (vm.contentType && vm.contentType.FolderName && vm.contentType.IconName) {\n\t\t\t\t\tvm.isLoading = true;\n\t\t\t\t\tpxProgressService.visible = true;\n\t\n\t\t\t\t\tsaveContentType()\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tvm.contentType = smbContentTypeConfigDataStore.contentType;\n\t\t\t\t\t\t\tvm.contentTypeId = vm.contentType.FolderId;\n\t\t\t\t\t\t\tvm.typeIsDirty = false;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\treturn loadStatuses();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() { /* Create any new index types on the content type group */\n\t\t\t\t\t\t\treturn createNewIndexTypes();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\treturn addIndexTypes(vm.contentTypeIndexes\n\t\t\t\t\t\t\t.concat(vm.contentStatus)\n\t\t\t\t\t\t\t.concat(vm.todoStatus)\n\t\t\t\t\t\t\t.concat(vm.assignedUserId)\n\t\t\t\t\t\t\t.concat(vm.assignedDate));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\treturn updateStatuses();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tvm.indexTypesAreDirty = false;\n\t\t\t\t\t\t\tvm.statusIsDirty = false;\n\t\t\t\t\t\t\t$state.go('contentConfig.types', {groupId: vm.contentTypeGroupId});\n\t\t\t\t\t\t\tsbToastService.showSimple(vm.contentTypeId ? gettextCatalog.getString('Document type saved!') : gettextCatalog.getString('New document type created!'));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\t\tif (e.status === 409) {\n\t\t\t\t\t\t\t\tvar message = gettextCatalog.getString('{{folderName}} document type already exists', { folderName: vm.contentType.FolderName });\n\t\t\t\t\t\t\t\tsbToastService.showSimple(message);\n\t\t\t\t\t\t\t} else if (typeof e.data === 'string' && e.status !== 500) {\n\t\t\t\t\t\t\t\tsbToastService.showSimple(e.data);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('An unknown error has occurred'));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\t\tvm.isLoading = false;\n\t\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction loadStatuses() {\n\t\t\t\treturn smbContentTypeTagTypeConfigDataStore.getTagTypes(vm.contentTypeId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tvm.contentStatus = smbContentTypeTagTypeConfigDataStore.contentStatus;\n\t\t\t\t\tvm.todoStatus = smbContentTypeTagTypeConfigDataStore.todoStatus;\n\t\t\t\t\tvm.assignedUserId = smbContentTypeTagTypeConfigDataStore.assignedUserId;\n\t\t\t\t\tvm.assignedDate = smbContentTypeTagTypeConfigDataStore.assignedDate;\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t\t}\n\t\t\tfunction saveContentType() {\n\t\t\t\tif (vm.typeIsDirty || vm.contentType.FolderName) {\n\t\t\t\t\treturn smbContentTypeConfigDataStore.saveContentType(vm.contentTypeGroupId, vm.contentType);\n\t\t\t\t} else {\n\t\t\t\t\treturn $q.resolve(vm.contentType);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction createNewIndexTypes() {\n\t\t\t\tif (vm.indexTypesAreDirty) {\n\t\t\t\t\tvar newIndexTypes = vm.contentTypeIndexes.filter(function(i) {\n\t\t\t\t\t\treturn !i.hasOwnProperty('TagTypeId');\n\t\t\t\t\t});\n\t\n\t\t\t\t\treturn $q.all(\n\t\t\t\t\t\tnewIndexTypes.map(function(i) {\n\t\t\t\t\t\t\treturn smbContentTypeGroupTagTypesConfigDataStore.addTagType(vm.contentTypeGroupId, i)\n\t\t\t\t\t\t\t\t.then(function(tt) {\n\t\t\t\t\t\t\t\t\tvar index = vm.contentTypeIndexes.indexOf(i);\n\t\t\t\t\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\t\t\t\t\tvm.contentTypeIndexes[index] = tt;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn tt;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn $q.resolve([]);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction updateStatuses() {\n\t\t\t\tif (vm.statusIsDirty) {\n\t\t\t\t\tvm.contentStatus[0].Constraints.DataSetValues = vm.contentStatuses;\n\t\t\t\t\tvm.todoStatus[0].Constraints.DataSetValues = vm.todoStatuses;\n\t\n\t\t\t\t\treturn smbStatusConfigDataStore.saveStatuses(vm.contentTypeId, vm.contentStatus[0], vm.todoStatus[0]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn $q.resolve([]);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction addIndexTypes(indexTypes) {\n\t\t\t\tif (vm.indexTypesAreDirty) {\n\t\t\t\t\tvm.statusIsDirty = true;\n\t\t\t\t\treturn smbContentTypeTagTypeConfigDataStore.setTagTypes(vm.contentTypeId, indexTypes);\n\t\t\t\t} else {\n\t\t\t\t\treturn $q.resolve(indexTypes);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction onContentTypeChange(contentType) {\n\t\t\t\tvm.typeIsDirty = true;\n\t\t\t\tvm.contentType = contentType;\n\t\t\t}\n\t\n\t\t\tfunction onAddIndexType(item) {\n\t\t\t\tvm.indexTypesAreDirty = true;\n\t\t\t\tvm.contentTypeIndexes = vm.contentTypeIndexes.concat(item);\n\t\t\t\tvm.contentTypeGroupIndexes = vm.contentTypeGroupIndexes.filter(function(i) {\n\t\t\t\t\treturn i.TagTypeId !== item.TagTypeId;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction onDeleteIndexType(item) {\n\t\t\t\tvm.indexTypesAreDirty = true;\n\t\t\t\tvm.contentTypeIndexes = vm.contentTypeIndexes.filter(function(tt) {\n\t\t\t\t\treturn tt.TagTypeName !== item.TagTypeName;\n\t\t\t\t});\n\t\n\t\t\t\tif (item.TagTypeId) {\n\t\t\t\t\t// this tag type exists, need to add it back to group tag types\n\t\t\t\t\tvm.contentTypeGroupIndexes = vm.contentTypeGroupIndexes.concat([item]);\n\t\t\t\t\tvm.contentTypeGroupIndexes.sort(sortTagTypeByName);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction onStatusChange() {\n\t\t\t\tvm.statusIsDirty = true;\n\t\t\t}\n\t\n\t\t\tfunction onSequence(index1, index2) {\n\t\t\t\tif (canSwap(index1, index2, 0, vm.contentTypeIndexes.length - 1)) {\n\t\t\t\t\tvar tmp = vm.contentTypeIndexes[index1];\n\t\t\t\t\tvm.contentTypeIndexes[index1] = vm.contentTypeIndexes[index2];\n\t\t\t\t\tvm.contentTypeIndexes[index2] = tmp;\n\t\t\t\t\tvm.indexTypesAreDirty = true;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction canSwap(index1, index2, lowerBound, upperBound) {\n\t\t\t\t// 1. cannot swap if index1 and index 2 are equal\n\t\t\t\t// 2. Cannot swap if index 1 or index 2 is below the lower bound\n\t\t\t\t// 3. cannot swap if index1 or index 2 is above the upper bound\n\t\t\t\tif (index1 === index2) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else if (index1 < lowerBound || index2 < lowerBound) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else if (index1 > upperBound || index2 > upperBound) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction onEditIndexType(item) {\n\t\t\t\tvm.indexTypesAreDirty = true;\n\t\t\t\tvm.contentTypeIndexes = vm.contentTypeIndexes.map(function(x) {\n\t\t\t\t\treturn x.TagTypeId === item.TagTypeId ? angular.extend({}, x, item) : x;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\t// user selector dialog template\n\t\tvar userSelectorTemplateUrl = __webpack_require__(1);\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypeConfigForm', ContentTypeConfigFormDirective)\n\t\t\t.controller('smbContentTypeConfigFormController', [\n\t\t\t\t'$scope',\n\t\t\t\t'$mdDialog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbIconDataStore',\n\t\t\t\tContentTypeConfigFormController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(168);\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.smbContentTypeConfigForm\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * @description\n\t\t *\n\t\t * The configuration form for creating and editing content types\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t */\n\t\tfunction ContentTypeConfigFormDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbContentTypeConfigFormController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tcontentType: '=',\n\t\t\t\t\tonChange: '&'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypeConfigFormController($scope, $mdDialog, pxProgressService, smbIconDataStore) {\n\t\t\tvar vm = this;\n\t\t\tvm.isLoading = false;\n\t\n\t\t\tvm.iconSearchText = '';\n\t\t\tvm.contentTypeIcon = null;\n\t\n\t\t\tvm.onNameChange = onNameChange;\n\t\t\tvm.setIcon = setIcon;\n\t\n\t\t\tvar originalIconId = -1;\n\t\t\t// cache initial value of content type name so we can later see\n\t\t\t// if the value actually changed.\n\t\t\tvar typeName = '';\n\t\t\t/*** Controller initialization ***/\n\t\t\t(function initContentTypeConfigFormController() {\n\t\t\t\tvm.isLoading = true;\n\t\t\t\tpxProgressService.visible = true;\n\t\t\t\tsmbIconDataStore.loadIcons()\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t$scope.$watch('vm.contentType', function() {\n\t\t\t\t\t\t\tif (vm.contentType) {\n\t\t\t\t\t\t\t\tvm.contentTypeIcon = smbIconDataStore.icons.find(function(i) {\n\t\t\t\t\t\t\t\t\treturn i.IconUserFriendlyName === vm.contentType.IconName;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\toriginalIconId = (vm.contentTypeIcon && vm.contentTypeIcon.IconId) || originalIconId;\n\t\t\t\t\t\t\t\ttypeName = vm.contentType.FolderName;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tvm.isLoading = false;\n\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t});\n\t\t\t}());\n\t\n\t\t\tvar userSelectorTemplateUrl = __webpack_require__(1);\n\t\t\tfunction setIcon(event) {\n\t\t\t\t$mdDialog.show({\n\t\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\t\ttargetEvent: event,\n\t\t\t\t\tclickOutsideToClose: true,\n\t\t\t\t\tlocals: {\n\t\t\t\t\t\tusers: smbIconDataStore.icons,\n\t\t\t\t\t\tmultiSelect: false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(function (icon) {\n\t\t\t\t\tif (icon.length === 1) {\n\t\t\t\t\t\tvm.contentTypeIcon = icon[0];\n\t\t\t\t\t\tvm.contentType.IconName = vm.contentTypeIcon.IconUserFriendlyName;\n\t\t\t\t\t\tvm.contentType.IconId = vm.contentTypeIcon.IconId;\n\t\t\t\t\t\tif (vm.contentTypeIcon.IconId !== originalIconId) {\n\t\t\t\t\t\t\toriginalIconId = -1;\n\t\t\t\t\t\t\temitChange();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, function () {\n\t\t\t\t\t//cancel\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction onNameChange() {\n\t\t\t\tif (vm.contentType.FolderName !== typeName) {\n\t\t\t\t\temitChange();\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction emitChange() {\n\t\t\t\tvm.onChange({contentType: vm.contentType});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypeGroupConfig', [ContentTypeGroupConfigDirective])\n\t\t\t.controller('ContentTypeGroupConfigController',\n\t\t\t[\n\t\t\t\t'$http',\n\t\t\t\t'$q',\n\t\t\t\t'$state',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbSortService',\n\t\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbIndexTypesDataTypes',\n\t\t\t\t'smbContentTypeGroupTagTypesConfigDataStore',\n\t\t\t\tContentTypeGroupConfigController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(169);\n\t\tfunction ContentTypeGroupConfigDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentTypeGroupConfigController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tgroupId: '@'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypeGroupConfigController(\n\t\t\t$http,\n\t\t\t$q,\n\t\t\t$state,\n\t\t\tgettextCatalog,\n\t\t\tpxProgressService,\n\t\t\tsbToastService,\n\t\t\tsmbSortService,\n\t\t\tsmbContentTypeGroupConfigDataStore,\n\t\t\tsmbToolbarService,\n\t\t\tsmbIndexTypesDataTypes,\n\t\t\tsmbContentTypeGroupTagTypesConfigDataStore\n\t\t) {\n\t\t\tvar vm = this;\n\t\t\tvar title = vm.groupId ? gettextCatalog.getString('Edit Document Group') : gettextCatalog.getString('Create Document Group');\n\t\t\tsmbToolbarService.set(title, 'contentConfig.groups');\n\t\n\t\t\tvm.loading = false;\n\t\t\tvm.onSubmit = onSubmit;\n\t\n\t\t\t/*** Group related properties ***/\n\t\t\tvm.group = null;\n\t\t\tvm.viewRightsUserGroups = [];\n\t\t\tvm.fullRightsUserGroups = [];\n\t\t\tvm.editRightsUserGroups = [];\n\t\t\tvm.groupIsDirty = false;\n\t\t\tvm.onGroupChange = onGroupChange;\n\t\n\t\t\t/*** Index type related properties ***/\n\t\t\tvm.indexTypes = [];\n\t\t\tvm.indexTypePool = [];\n\t\t\tvar newIndexTypes = [];\n\t\t\tvar editIndexTypes = [];\n\t\t\tvm.indexTypesAreDirty = false;\n\t\t\tvm.newIndexType = newIndexType;\n\t\t\tvm.editIndexType = editIndexType;\n\t\n\t\t\tvar sortIndexTypesByName = smbSortService.sortObjectByStringProperty('TagTypeName');\n\t\n\t\t\t/*** Controller initialization ***/\n\t\t\t(function initContentTypeGroupConfigController() {\n\t\t\t\tvm.groupIsDirty = false;\n\t\t\t\tvm.indexTypesAreDirty = false;\n\t\n\t\t\t\tvm.loading = true;\n\t\t\t\tpxProgressService.visible = true;\n\t\t\t\tsmbContentTypeGroupConfigDataStore\n\t\t\t\t\t.getContentTypeGroup(vm.groupId)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tvm.group = Object.assign({}, smbContentTypeGroupConfigDataStore.contentTypeGroup);\n\t\t\t\t\t\tvm.viewRightsUserGroups = smbContentTypeGroupConfigDataStore.userGroupsWithViewRights.map(function(ug) { return Object.assign({}, ug); });\n\t\t\t\t\t\tvm.fullRightsUserGroups = smbContentTypeGroupConfigDataStore.userGroupsWithFullRights.map(function(ug) { return Object.assign({}, ug); });\n\t\t\t\t\t\tvm.editRightsUserGroups = smbContentTypeGroupConfigDataStore.userGroupsWithEditRights.map(function(ug) { return Object.assign({}, ug); });\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\treturn smbContentTypeGroupTagTypesConfigDataStore.getTagTypes(vm.groupId);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tvm.indexTypes = smbContentTypeGroupTagTypesConfigDataStore.tagTypes.map(function(tt) {\n\t\t\t\t\t\t\treturn Object.assign({}, tt, {\n\t\t\t\t\t\t\t\tConstraints: Object.assign({}, tt.Constraints)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tvm.indexTypes.sort(sortIndexTypesByName);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tvm.isLoading = false;\n\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t});\n\t\t\t}());\n\t\n\t\t\tfunction onSubmit() {\n\t\t\t\tvm.loading = true;\n\t\t\t\tpxProgressService.visible = true;\n\t\t\t\tif (vm.group && vm.group.LibraryName && vm.group.IconName) {\n\t\t\t\t\tsaveGroup()\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\treturn saveUserGroups();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\treturn saveIndexTypes();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t$state.go('contentConfig.groups');\n\t\t\t\t\t\tvar message = vm.groupId ? gettextCatalog.getString('Document group saved!') : gettextCatalog.getString('Document group created!');\n\t\t\t\t\t\tsbToastService.showSimple(message);\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\tif (e.status === 409) {\n\t\t\t\t\t\t\tvar message = gettextCatalog.getString('\"{{documentGroupName}}\" document group already exists!', { documentGroupName: vm.group.LibraryName });\n\t\t\t\t\t\t\tsbToastService.showSimple(message);\n\t\t\t\t\t\t} else if (typeof e.data === 'string' && e.status !== 500) {\n\t\t\t\t\t\t\tsbToastService.showSimple(e.data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('An unknown error has occurred'));\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tvm.loading = false;\n\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction saveGroup() {\n\t\t\t\tif (vm.groupIsDirty) {\n\t\t\t\t\tvar p;\n\t\t\t\t\tif (vm.groupId) {\n\t\t\t\t\t\tp = smbContentTypeGroupConfigDataStore.saveContentTypeGroup({\n\t\t\t\t\t\t\tid: vm.groupId,\n\t\t\t\t\t\t\tname: vm.group.LibraryName,\n\t\t\t\t\t\t\ticon: vm.group.IconId\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp = smbContentTypeGroupConfigDataStore.saveContentTypeGroup({\n\t\t\t\t\t\t\tname: vm.group.LibraryName,\n\t\t\t\t\t\t\ticon: vm.group.IconId\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn p;\n\t\t\t\t} else {\n\t\t\t\t\treturn $q.resolve(vm.group);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction saveUserGroups() {\n\t\t\t\tif (vm.groupIsDirty) {\n\t\t\t\t\treturn smbContentTypeGroupConfigDataStore.saveUserGroups(vm.viewRightsUserGroups, vm.fullRightsUserGroups, vm.editRightsUserGroups);\n\t\t\t\t} else {\n\t\t\t\t\treturn $q.resolve(vm.viewRightsUserGroups.concat(vm.fullRightsUserGroups).concat(vm.editRightsUserGroups));\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction saveIndexTypes() {\n\t\t\t\tif (vm.indexTypesAreDirty) {\n\t\n\t\t\t\t\tvar newPromises = newIndexTypes.map(function(tt) {\n\t\t\t\t\t\treturn smbContentTypeGroupTagTypesConfigDataStore.addTagType(smbContentTypeGroupConfigDataStore.contentTypeGroup.LibraryId, tt);\n\t\t\t\t\t});\n\t\n\t\t\t\t\tvar editPromises = editIndexTypes.map(function(tt) {\n\t\t\t\t\t\treturn smbContentTypeGroupTagTypesConfigDataStore.editTagType(smbContentTypeGroupConfigDataStore.contentTypeGroup.LibraryId, tt);\n\t\t\t\t\t});\n\t\n\t\t\t\t\treturn $q.all(newPromises.concat(editPromises));\n\t\t\t\t} else {\n\t\t\t\t\treturn $q.resolve(vm.indexTypes);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t/*** Group Config Form component event handlers ***/\n\t\n\t\t\t/**\n\t\t\t * Possible Arguments:\n\t\t\t * group - The content type group object in the group form component\n\t\t\t * viewUserGroups - The view rights user groups list in the group form component\n\t\t\t * fullUserGroups - The full rights user groups list in the group form component\n\t\t\t */\n\t\t\tfunction onGroupChange() {\n\t\t\t\tvm.groupIsDirty = true;\n\t\t\t}\n\t\n\t\t\t/*** Index Types Config component event handlers ***/\n\t\n\t\t\tfunction editIndexType(indexType) {\n\t\t\t\tvm.indexTypesAreDirty = true;\n\t\t\t\tvm.indexTypes = vm.indexTypes.map(function(x) {\n\t\t\t\t\treturn x.TagTypeName === indexType.TagTypeName ? angular.extend({}, x, indexType) : x;\n\t\t\t\t});\n\t\t\t\tif (indexType.TagTypeId) {\n\t\t\t\t\t// this is an existing tag type, keep track of it via the editIndexTypes array\n\t\t\t\t\teditIndexTypes.push(indexType);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction newIndexType(indexType) {\n\t\t\t\tvm.indexTypesAreDirty = true;\n\t\t\t\tvm.indexTypes = vm.indexTypes.concat([indexType]);\n\t\t\t\tvm.indexTypes.sort(sortIndexTypesByName);\n\t\t\t\tnewIndexTypes.push(indexType);\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\t// user selector template\n\t\tvar userSelectorTemplateUrl = __webpack_require__(1);\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypeGroupConfigForm', ContentTypeGroupConfigFormDirective)\n\t\t\t.controller('smbContentTypeGroupConfigFormController',[\n\t\t\t\t'$scope',\n\t\t\t\t'$mdDialog',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbIconDataStore',\n\t\t\t\t'smbUserGroupsDataStore',\n\t\t\t\tContentTypeGroupConfigFormController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(170);\n\t\tfunction ContentTypeGroupConfigFormDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbContentTypeGroupConfigFormController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tgroup: '=',\n\t\t\t\t\tviewRightsUserGroups: '=',\n\t\t\t\t\tfullRightsUserGroups: '=',\n\t\t\t\t\teditRightsUserGroups: '=',\n\t\t\t\t\tonChange: '&'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypeGroupConfigFormController($scope, $mdDialog, sbToastService, smbIconDataStore, smbUserGroupsDataStore) {\n\t\t\tvar vm = this;\n\t\t\tvm.isLoading = false;\n\t\t\t// Icon configuration\n\t\t\tvm.groupIcon = null;\n\t\n\t\t\tvm.onNameBlur = onNameBlur;\n\t\t\tvm.addUserGroup = addUserGroup;\n\t\t\tvm.addUserGroups = addUserGroups;\n\t\t\tvm.removeUserGroup = removeUserGroup;\n\t\t\tvm.setIcon = setIcon;\n\t\n\t\t\tvar groupName = '';\n\t\t\t(function initContentTypeGroupConfigFormController() {\n\t\t\t\tvm.isLoading = true;\n\t\t\t\tsmbIconDataStore.loadIcons()\n\t\t\t\t.then(function() {\n\t\t\t\t\t$scope.$watch('vm.group', function() {\n\t\t\t\t\t\tif (vm.group) {\n\t\t\t\t\t\t\tvm.groupIcon = smbIconDataStore.icons.find(function(icon) { return icon.IconUserFriendlyName === vm.group.IconName; });\n\t\t\t\t\t\t\tgroupName = vm.group.LibraryName;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.then(function() {\n\t\t\t\t\treturn smbUserGroupsDataStore.getUserGroups();\n\t\t\t\t})\n\t\t\t\t.finally(function() { vm.isLoading = false; });\n\t\t\t}());\n\t\n\t\t\tfunction addUserGroups(event, target, removeTarget) {\n\t\t\t\tvar groupUserGroups = target;\n\t\t\t\tvar newGroups = smbUserGroupsDataStore.userGroups.filter(function (group) {\n\t\n\t\t\t\t\tfor (var x = 0; x < groupUserGroups.length; x++) {\n\t\t\t\t\t\tif (groupUserGroups[x].UserGroupId === group.UserGroupId) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\n\t\t\t\t$mdDialog.show({\n\t\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\t\ttargetEvent: event,\n\t\t\t\t\tclickOutsideToClose: true,\n\t\t\t\t\tlocals: {\n\t\t\t\t\t\tusers: newGroups,\n\t\t\t\t\t\tmultiSelect: true\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(function (selectedUserGroups) {\n\t\t\t\t\t//new user groups\n\t\t\t\t\tselectedUserGroups.forEach(function(group) {\n\t\t\t\t\t\ttarget.push(group);\n\t\t\t\t\t\t// If the user group exists in another access rights array, it should\n\t\t\t\t\t\t// only be in one, use this flag to prevent iterating over\n\t\t\t\t\t\t// subsequent arrays when we know it is not necessary to do so.\n\t\t\t\t\t\t// Doing this because I can't think of a better way that scales and\n\t\t\t\t\t\t// this is n cubed.\n\t\t\t\t\t\tvar removed = false;\n\t\t\t\t\t\tremoveTarget.forEach(function(target) {\n\t\t\t\t\t\t\tif (!removed) {\n\t\t\t\t\t\t\t\tvar g = target.find(function(ug) {\n\t\t\t\t\t\t\t\t\treturn ug.UserGroupId === group.UserGroupId;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (g) {\n\t\t\t\t\t\t\t\t\ttarget.splice(target.indexOf(g), 1);\n\t\t\t\t\t\t\t\t\tremoved = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\temitChange();\n\t\t\t\t}, function () {\n\t\t\t\t\t//cancel\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction removeUserGroup(group, target) {\n\t\t\t\tvar index = target.indexOf(group);\n\t\t\t\tif (index === -1) { return; }\n\t\n\t\t\t\ttarget.splice(index, 1);\n\t\t\t\temitChange();\n\t\t\t}\n\t\n\t\t\tfunction setIcon(event) {\n\t\t\t\t$mdDialog.show({\n\t\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\t\ttargetEvent: event,\n\t\t\t\t\tclickOutsideToClose: true,\n\t\t\t\t\tlocals: {\n\t\t\t\t\t\tusers: smbIconDataStore.icons,\n\t\t\t\t\t\tmultiSelect: false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(function (icon) {\n\t\t\t\t\tif (icon.length === 1) {\n\t\t\t\t\t\tvm.group.IconName = icon[0].IconUserFriendlyName;\n\t\t\t\t\t\tvm.group.IconId = icon[0].IconId;\n\t\t\t\t\t\tif (!vm.group.Links) {\n\t\t\t\t\t\t\tvm.group.Links = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvm.group.Links.IconUri = icon[0].IconUri;\n\t\t\t\t\t\tvm.onChange({ group: vm.group, viewUserGroups: vm.viewRightsUserGroups, fullUserGroups: vm.fullRightsUserGroups });\n\t\t\t\t\t}\n\t\t\t\t}, function () {\n\t\t\t\t\t//cancel\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction addUserGroup() {\n\t\t\t\temitChange();\n\t\t\t}\n\t\n\t\t\tfunction onNameBlur() {\n\t\t\t\tif (vm.group.LibraryName !== groupName) {\n\t\t\t\t\temitChange();\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction emitChange() {\n\t\t\t\tvm.onChange({group: vm.group, viewUserGroups: vm.viewRightsUserGroups, fullUserGroups: vm.fullRightsUserGroups});\n\t\t\t}\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypeGroupSearch',\n\t\t\t[\n\t\t\t\tContentTypeGroupSearchDirective\n\t\t\t])\n\t\t\t.controller('ContentTypeGroupSearchController',\n\t\t\t[\n\t\t\t\t'$state',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbIndexTypesDataStore',\n\t\t\t\t'smbContentSearchDataStore',\n\t\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\tContentTypeGroupSearchController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(171);\n\t\tfunction ContentTypeGroupSearchDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentTypeGroupSearchController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: {\n\t\t\t\t\tgroupId: '@'\n\t\t\t\t},\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypeGroupSearchController($state, gettextCatalog, pxProgressService, smbToolbarService, smbIndexTypesDataStore, \n\t\t\t\t\t\t\t\t\t\t\tsmbContentSearchDataStore, smbContentTypeGroupConfigDataStore, smbContentTypeConfigDataStore, smbIconTypes) {\n\t\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Search Document Type Group'), 'search.contentTypeGroups.contentTypes', false, false);\n\t\n\t\t\tvar vm = this;\n\t\n\t\t\tvm.search = search;\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\t\tvm.contentTypeDS = smbContentTypeConfigDataStore;\n\t\t\tvm.contentTypeGroupDS = smbContentTypeGroupConfigDataStore;\n\t\t\tvm.indexTypesDS = smbIndexTypesDataStore;\n\t\t\tvm.filename = null;\n\t\n\t\t\tvm.indextypes = [];\n\t\n\t\t\tvm.contentTypeGroupDS.getContentTypeGroup(vm.groupId)\t\t\n\t\t\t.then(function () {\n\t\t\t\tvm.indexTypesDS.getDocumentTypeGroupIndexTypes(vm.groupId).then(function () {\n\t\t\t\t\tvm.indextypes = vm.indexTypesDS.groupIndexTypes;\n\t\t\t\t});\n\t\t\t});\n\t\n\t\t\tfunction search() {\n\t\t\t\tsmbContentSearchDataStore.setTagValues(vm.indextypes);\n\t\t\t\t$state.go('search.contentTypeGroups.contentTypes.groupSearch.results',{ groupId: vm.groupId});\n\t\t\t}\n\t\t}\n\t}());\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypeGroupSearchResults',\n\t\t\t[\n\t\t\t\tContentTypeGroupSearchResultsDirective\n\t\t\t])\n\t\t\t.controller('ContentTypeGroupSearchResultsController',\n\t\t\t[\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\t'smbContentSearchDataStore',\n\t\t\t\t'smbDocumentViewerNavigationService',\n\t\t\t\tContentTypeGroupSearchResultsController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(172);\n\t\tfunction ContentTypeGroupSearchResultsDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentTypeGroupSearchResultsController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tgroupId: '@'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypeGroupSearchResultsController(smbToolbarService, gettextCatalog, smbContentTypeGroupConfigDataStore,\n\t\t\t\t\t\t\t\t\tsmbContentTypeConfigDataStore, smbIconTypes, smbContentSearchDataStore, smbDocumentViewerNavigationService) {\n\t\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Document Group Search Results'), 'search.contentTypeGroups.contentTypes.groupSearch');\n\t\n\t\t\tvar vm = this;\n\t\t\tvm.contentSearchDS = smbContentSearchDataStore;\n\t\t\tvm.contentTypeGroupDS = smbContentTypeGroupConfigDataStore;\n\t\t\tvm.contentTypeDS = smbContentTypeConfigDataStore;\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\t\tvm.documentNavigation = smbDocumentViewerNavigationService;\n\t\n\t\t\t(function loadSearchResults() {\n\t\t\t\tsmbContentSearchDataStore.getContentTypeGroupSearchResults(vm.groupId);\n\t\t\t})();\n\t\t}\n\t}());\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypeGroups', [ContentTypeGroupsDirective])\n\t\t\t.controller('ContentTypeGroupsController',\n\t\t\t[\n\t\t\t\t'$state',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbContentTypeGroupsDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\tContentTypeGroupsController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(173);\n\t\tfunction ContentTypeGroupsDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentTypeGroupsController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypeGroupsController($state, gettextCatalog, pxProgressService, smbToolbarService, smbContentTypeGroupsDataStore, smbIconTypes) {\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Document Groups'), 'content.home');\n\t\n\t\t\tvar vm = this;\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\t\tvm.contentTypeGroupsDataStore = smbContentTypeGroupsDataStore;\n\t\n\t\t\tpxProgressService.visible = true;\n\t\t\tsmbContentTypeGroupsDataStore.loadFullAccessGroups()\n\t\t\t\t.then(function () {\n\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t});\n\t\t}\n\t}());\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypeGroupsConfig', [ContentTypeGroupsConfigDirective])\n\t\t\t.controller('ContentTypeGroupsConfigController', [\n\t\t\t\t'$mdDialog',\n\t\t\t\t'pxAuthService',\n\t\t\t\t'sbToastService',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbIconTypes',\n\t\t\t\t'smbContentTypeGroupsConfigDataStore',\n\t\t\t\t'smbDeleteDialogService',\n\t\t\t\tContentTypeGroupsConfigController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(174);\n\t\tfunction ContentTypeGroupsConfigDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentTypeGroupsConfigController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypeGroupsConfigController($mdDialog, pxAuthService, sbToastService, gettextCatalog, pxProgressService, smbToolbarService, smbIconTypes, smbContentTypeGroupsConfigDataStore, smbDeleteDialogService) {\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Document Groups Configuration'), 'content.home', false, false);\n\t\n\t\t\tvar vm = this;\n\t\t\tvm.iconType = smbIconTypes[smbIconTypes.SVG];\n\t\t\tvm.contentTypeGroupsDataStore = smbContentTypeGroupsConfigDataStore;\n\t\t\tvm.deleteContentTypeGroup = deleteContentTypeGroup;\n\t\n\t\t\tpxProgressService.visible = true;\n\t\t\tvm.contentTypeGroupsDataStore\n\t\t\t\t.loadGroups()\n\t\t\t\t.finally(function () { \n\t\t\t\t\tpxProgressService.visible = false; \n\t\t\t\t});\n\t\n\t\t\tfunction deleteContentTypeGroup(event, group) {\n\t\t\t\tvar title = gettextCatalog.getString('Delete Document Type Group');\n\t\t\t\tvar message = gettextCatalog.getString('Would you like to delete \"{{typeName}}\"? Deleting this group will permanently deleted all related types and documents, and can\\'t be undone!', { \n\t\t\t\t\ttypeName: group.name \n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tsmbDeleteDialogService\n\t\t\t\t\t.show(event, title, message)\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\tpxProgressService.visible = true;\n\t\t\t\t\t\tsmbContentTypeGroupsConfigDataStore\n\t\t\t\t\t\t\t.deleteGroup(group.id)\n\t\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('{{groupName}} was deleted!', { groupName: group.name }));\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to delete group'));\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.finally(function () {\n\t\t\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}, angular.noop);\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypeGroupsSearch', [ContentTypeGroupsSearchDirective])\n\t\t\t.controller('ContentTypeGroupsSearchController',\n\t\t\t[\n\t\t\t\t'$state',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbContentTypeGroupsSearchDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\tContentTypeGroupsSearchController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(175);\n\t\tfunction ContentTypeGroupsSearchDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentTypeGroupsSearchController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypeGroupsSearchController($state, gettextCatalog, pxProgressService, smbToolbarService, smbContentTypeGroupsSearchDataStore, smbIconTypes) {\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Search Document Groups'), 'content.home');\n\t\n\t\t\tvar vm = this;\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\t\tvm.contentTypeGroupsSearchDataStore = smbContentTypeGroupsSearchDataStore;\n\t\n\t\t\tpxProgressService.visible = true;\n\t\t\tsmbContentTypeGroupsSearchDataStore.loadAllGroups()\n\t\t\t\t.then(function () {\n\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t});\n\t\t}\n\t}());\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypes', [ContentTypesDirective])\n\t\t\t.controller('ContentTypesController',\n\t\t\t[\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbContentTypesDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\tContentTypesController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(176);\n\t\tfunction ContentTypesDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentTypesController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: {\n\t\t\t\t\tgroupId: '@'\n\t\t\t\t},\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypesController(gettextCatalog, pxProgressService, smbToolbarService, smbContentTypesDataStore, smbIconTypes) {\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Document Types'), 'import.contentTypeGroups');\n\t\n\t\t\tvar vm = this;\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\t\tvm.contentTypesDataStore = smbContentTypesDataStore;\n\t\n\t\t\tsmbContentTypesDataStore.getContentTypes(vm.groupId);\n\t\t}\n\t}());\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\tvar templateUrl = __webpack_require__(177);\n\t\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.smbContentTypesConfig\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * \n\t\t * @description\n\t\t * Displays the configuration section for a list of content types that belong\n\t\t * to a specific content type group.\n\t\t * \n\t\t * @usage\n\t\t * \n\t\t * \n\t\t * \n\t\t * @element input\n\t\t * @param {number=} contentTypeGroupId The id of the content type group whose content types are being displayed.\n\t\t */\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.directive('smbContentTypesConfig', ContentTypesConfigDirective)\n\t\t\t.controller('ContentTypesConfigController', [\n\t\t\t\t'$mdDialog',\n\t\t\t\t'pxAuthService',\n\t\t\t\t'sbToastService',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbContentTypesDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\t'smbDeleteDialogService',\n\t\t\t\tContentTypesConfigController\n\t\t\t]);\n\t\t\n\t\tfunction ContentTypesConfigDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentTypesConfigController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tcontentTypeGroupId: '@'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypesConfigController($mdDialog, pxAuthService, sbToastService, gettextCatalog, pxProgressService, smbToolbarService, smbContentTypesDataStore, smbIconTypes, smbDeleteDialogService) {\n\t\t\tvar vm = this;\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\t\tvm.deleteDocumentType = deleteDocumentType;\n\t\n\t\t\t// TODO: Add group name?\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Document Types Configuration'), 'contentConfig.groups');\n\t\n\t\t\tvm.contentTypesDS = smbContentTypesDataStore;\n\t\n\t\t\t// TODO: Error handling\n\t\t\tsmbContentTypesDataStore.getContentTypes(vm.contentTypeGroupId);\n\t\n\t\t\tfunction deleteDocumentType(event, documentType) {\t\n\t\t\t\tvar title = gettextCatalog.getString('Delete Document Type');\n\t\t\t\tvar message = gettextCatalog.getString('Would you like to delete \"{{typeName}}\"?', { \n\t\t\t\t\ttypeName: documentType.FolderName \n\t\t\t\t});\n\t\t\t\tvar purgeText = gettextCatalog.getString('Selecting this checkbox will enable permanent deletion of this document type and all related documents that can\\'t be undone!');\n\t\t\t\t\n\t\t\t\tsmbDeleteDialogService\n\t\t\t\t\t.show(event, title, message, pxAuthService.isSiteAdmin, purgeText)\n\t\t\t\t\t.then(function (purge) {\n\t\t\t\t\t\tpxProgressService.visible = true;\n\t\t\t\t\t\tsmbContentTypesDataStore\n\t\t\t\t\t\t\t.deleteContentType(documentType.FolderId, purge)\n\t\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\t\tvar deleteMessage = gettextCatalog.getString('{{typeName}} was deleted!', { \n\t\t\t\t\t\t\t\t\ttypeName: documentType.FolderName \n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tsbToastService.showSimple(deleteMessage);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\t\t\tvar deleteIssueMessage = gettextCatalog.getString('Unable to delete group');\n\t\t\t\t\t\t\t\tsbToastService.showSimple(deleteIssueMessage);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.finally(function () {\n\t\t\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}, angular.noop());\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.smbContentTypesConfig\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t *\n\t\t * @description\n\t\t * Displays the configuration section for a list of content types that belong\n\t\t * to a specific content type group.\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t *\n\t\t * @element input\n\t\t * @param {number=} contentTypeGroupId The id of the content type group whose content types are being displayed.\n\t\t */\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContentTypesSearch', ContentTypesSearchDirective)\n\t\t\t.controller('ContentTypesSearchController',\n\t\t\t[\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbContentTypesSearchDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\tContentTypesSearchController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(178);\n\t\tfunction ContentTypesSearchDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentTypesSearchController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tgroupId: '@'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentTypesSearchController(gettextCatalog, smbToolbarService, smbContentTypesSearchDataStore, smbIconTypes) {\n\t\t\tvar vm = this;\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\n\t\t\t// TODO: Add group name?\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Search Document Types'), 'search.contentTypeGroups');\n\t\t\tsmbToolbarService.backArrowStateParams = undefined;\n\t\n\t\t\tvm.contentTypesSearchDS = smbContentTypesSearchDataStore;\n\t\n\t\t\t// TODO: Error handling\n\t\t\tsmbContentTypesSearchDataStore.getContentTypes(vm.groupId);\n\t\t}\n\t}());\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbContent',[ContentDirective])\n\t\t\t.controller('ContentTypesController',\n\t\t\t[\n\t\t\t\t'$scope',\n\t\t\t\t'$state',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbEnvironmentService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbContentUploadDataStore',\n\t\t\t\t'smbIndexTypesDataStore',\n\t\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\t'smbDocumentViewerNavigationService',\n\t\t\t\tContentController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(179);\n\t\tfunction ContentDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ContentController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: {\n\t\t\t\t\tcontentTypeGroupId: '@',\n\t\t\t\t\tcontentTypeId: '@'\n\t\t\t\t},\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ContentController($scope, $state, gettextCatalog, pxProgressService, sbToastService, smbEnvironmentService, smbToolbarService,\n\t\t\tsmbContentUploadDataStore, smbIndexTypesDataStore, smbContentTypeGroupConfigDataStore, smbContentTypeConfigDataStore, smbIconTypes,\n\t\t\tsmbDocumentViewerNavigationService) {\n\t\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Add Document'), 'import.contentTypeGroups.contentTypes');\n\t\n\t\t\tvar vm = this;\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\n\t\t\tvm.uploadDS = smbContentUploadDataStore;\n\t\t\tvm.indexTypesDS = smbIndexTypesDataStore;\n\t\t\tvm.contentTypeDS = smbContentTypeConfigDataStore;\n\t\t\tvm.contentTypeGroupDS = smbContentTypeGroupConfigDataStore;\n\t\t\tvm.filename = null;\n\t\t\tvm.file = null;\n\t\t\tvm.onFileInputClick = onFileInputClick;\n\t\n\t\t\tvm.indexFileChanged = indexFileChanged;\n\t\t\tvm.upload = upload;\n\t\n\t\t\tfunction indexFileChanged(fileInput) {\n\t\t\t\tif (fileInput.files.length === 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvm.filename = fileInput.files[0].name;\n\t\t\t\tvm.file = fileInput.files[0];\n\t\t\t\t$scope.$digest(); // probably not the best way, but this seemed to fix the problem of not updating label right away\n\t\t\t}\n\t\n\t\t\tvm.contentTypeGroupDS.getContentTypeGroup(vm.contentTypeGroupId)\n\t\t\t\t.then(function () {\n\t\t\t\t\tvm.contentTypeDS.getContentType(vm.contentTypeGroupId, vm.contentTypeId);\n\t\t\t\t})\n\t\t\t\t.then(function () {\n\t\t\t\t\tvm.indexTypesDS.getIndexTypes(vm.contentTypeId);\n\t\t\t\t});\n\t\n\t\t\tfunction upload() {\n\t\t\t\tif (vm.file) {\n\t\t\t\t\tvm.uploadDS.uploadDocument(vm.contentTypeId, vm.file)\n\t\t\t\t\t.then(function indexTypesUpload() {\n\t\t\t\t\t\tvm.indexTypesDS.setIndexTypes(vm.indexTypesDS.indexTypes, vm.uploadDS.uploadedDocument.data.DocumentId, vm.contentTypeId)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Document Uploaded Successfully'));\n\t\t\t\t\t\t}).then(function openViewer() {\n\t\t\t\t\t\t\tsmbDocumentViewerNavigationService.go(vm.contentTypeGroupId, vm.contentTypeId, vm.uploadDS.uploadedDocument.data.DocumentId);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Please select a file to upload'));\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction onFileInputClick(ev) {\n\t\t\t\t// If running in IE or Firefox, need to programatically trigger the input file.\n\t\t\t\t// Unlike Chrome, when embedding a file input in a button, clicking\n\t\t\t\t// the button doesn't trigger the file input.\n\t\t\t\tif (smbEnvironmentService.isIE || smbEnvironmentService.isFireFox) {\n\t\t\t\t\tvar fileInput = ev.target.querySelector('input[type=\"file\"]');\n\t\t\t\t\tif (fileInput) {\n\t\t\t\t\t\tfileInput.click();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\t// load user selector template via webpack\n\t\tvar userSelectorTemplateUrl = __webpack_require__(1);\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbDocumentContextMenu', DocumentContextMenuDirective)\n\t\t\t.controller('smbDocumentContextMenuController', [\n\t\t\t\t'$scope',\n\t\t\t\t'$timeout',\n\t\t\t\t'$state',\n\t\t\t\t'$q', \n\t\t\t\t'$mdDialog',\n\t\t\t\t'pxAuthService',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbDocumentDataStore',\n\t\t\t\t'smbStatusDataStore',\n\t\t\t\t'smbToDoListDataStore',\n\t\t\t\t'smbDocumentDetailsPanelDataStore',\n\t\t\t\t'smbDocumentViewerNavigationService',\n\t\t\t\t'smbDeleteDialogService',\n\t\t\t\t'gettextCatalog',\n\t\t\t\tDocumentContextMenuController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(180);\n\t\tfunction DocumentContextMenuDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbDocumentContextMenuController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: {\n\t\t\t\t\tdocumentId: '@',\n\t\t\t\t\tdocumentTypeId: '@',\n\t\t\t\t\tdocumentGroupId: '@'\n\t\t\t\t},\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction DocumentContextMenuController($scope, $timeout,$state, $q, $mdDialog, pxAuthService, sbToastService, smbToolbarService, smbDocumentDataStore, smbStatusDataStore, smbToDoListDataStore, smbDocumentDetailsPanelDataStore, smbDocumentViewerNavigationService, smbDeleteDialogService, gettextCatalog) {\n\t\t\tvar vm = this;\n\t\t\tvm.smbToolbarService = smbToolbarService;\n\t\t\tvm.documentDS = smbDocumentDataStore;\n\t\t\tvm.toDoListDS = smbToDoListDataStore;\n\t\t\tvm.detailsPanelDS = smbDocumentDetailsPanelDataStore;\n\t\n\t\t\t(function initDocumentContextMenuController() {\n\t\t\t\tsmbDocumentDataStore.loadUserPermissions(vm.documentGroupId)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\treturn smbStatusDataStore.loadStatuses(vm.documentTypeId);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function getStatusValues() {\n\t\t\t\t\t\tvm.contentStatuses = smbStatusDataStore.contentStatus[0].Constraints.DataSetValues.map(function(sv) {\n\t\t\t\t\t\t\tvar csv = {};\n\t\t\t\t\t\t\tcsv.Label = sv;\n\t\t\t\t\t\t\tcsv.StatusType = 'Content Status';\n\t\t\t\t\t\t\treturn csv; \n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tvm.todoStatuses = smbStatusDataStore.todoStatus[0].Constraints.DataSetValues.map(function(sv) {\n\t\t\t\t\t\t\tvar tsv = {};\n\t\t\t\t\t\t\ttsv.Label = sv;\n\t\t\t\t\t\t\ttsv.StatusType = 'ToDo Status';\n\t\t\t\t\t\t\treturn tsv; \n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t})\n\t\t\t\t\t.then(function getTagTypeIds() {\n\t\t\t\t\t\tvm.contentStatusTagTypeId = smbStatusDataStore.contentStatus[0].TagTypeId;\n\t\t\t\t\t\tvm.todoStatusTagTypeId = smbStatusDataStore.todoStatus[0].TagTypeId;\n\t\t\t\t\t\tvm.assignedUserIdTagTypeId = smbStatusDataStore.assignedUserId[0].TagTypeId;\n\t\t\t\t\t\tvm.assignedDateTagTypeId = smbStatusDataStore.assignedDate[0].TagTypeId;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function getDocumentStatusValues() {\n\t\t\t\t\t\treturn smbStatusDataStore.getDocumentStatus(vm.documentId);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function mapDocumentStatusValues(response) {\n\t\t\t\t\t\tvm.documentContentStatusValue = response.filter(function(tt) {\n\t\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t\t\t})[0].Tags || [];\n\t\t\t\t\t\tvm.documentToDoStatusValue = response.filter(function(tt) {\n\t\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t\t\t})[0].Tags || [];\n\t\t\t\t\t\tvm.documentAssignedUserId = response.filter(function(tt) {\n\t\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t\t\t})[0].Tags || 0;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function getUsersList() {\n\t\t\t\t\t\treturn smbStatusDataStore.getUsersWithModifyRights(vm.documentId);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function(userslist) {\n\t\t\t\t\t\tvm.users = userslist.map(function mapusers(u) {\n\t\t\t\t\t\t\tvar user = {};\n\t\t\t\t\t\t\tuser.UserId = u.UserId;\n\t\t\t\t\t\t\tuser.UserName = u.UserName;\n\t\t\t\t\t\t\tuser.EmailAddress = u.EmailAddress;\n\t\t\t\t\t\t\treturn user;\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.then(function setUIStatusValues() {\n\t\t\t\t\t\tif (vm.documentContentStatusValue.length > 0 && vm.documentContentStatusValue[0].length !== 0) {\n\t\t\t\t\t\t\t//vm.status = JSON.stringify({ Label: vm.documentContentStatusValue[0], StatusType: 'Content Status' });\n\t\t\t\t\t\t\tvm.status = { Label: vm.documentContentStatusValue[0], StatusType: 'Content Status' };\n\t\t\t\t\t\t\tvm.isContentStatusSelected = true;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (vm.documentToDoStatusValue.length > 0 && vm.documentToDoStatusValue[0].length !== 0) {\n\t\t\t\t\t\t\t//vm.status = JSON.stringify({Label: vm.documentToDoStatusValue[0], StatusType: 'ToDo Status\n\t\t\t\t\t\t\tvm.status = {Label: vm.documentToDoStatusValue[0], StatusType: 'ToDo Status'};\n\t\t\t\t\t\t\tvm.isContentStatusSelected = false;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (vm.documentAssignedUserId && vm.documentAssignedUserId[0] > 0) {\n\t\t\t\t\t\t\tvm.assignedUser = vm.users.filter(function(u) {\n\t\t\t\t\t\t\t\treturn u.UserId === JSON.parse(vm.documentAssignedUserId[0]);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t//vm.assignedUser = JSON.stringify(vm.assignedUser[0]);\n\t\t\t\t\t\t\tvm.assignedUser = vm.assignedUser[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function () {\n\t\t\t\t\t\t//hide tiles till loaded\n\t\t\t\t\t\t$timeout(function () { vm.loading = false; }, 50);\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t}());\n\t\t\tvm.loading = true;\n\t\t\tvm.documentContentStatusValue = null;\n\t\t\tvm.documentToDoStatusValue = null;\n\t\t\tvm.documentAssignedUserId = null;\n\t\t\tvm.documentAssignedDate = null;\n\t\n\t\t\tvm.contentStatuses = [];\n\t\t\tvm.todoStatuses = [];\n\t\t\tvm.users = [];\n\t\t\tvm.statusIsDirty = false;\n\t\n\t\t\tvm.contentStatusTagTypeId = null;\n\t\t\tvm.todoStatusTagTypeId = null;\n\t\t\tvm.assignedUserIdTagTypeId = null;\n\t\t\tvm.assignedDateTagTypeId = null;\n\t\n\t\t\tvm.onChange = onChange;\n\t\t\tvm.saveStatus = saveStatus;\n\t\t\tvm.changeStatus = changeStatus;\n\t\t\tvm.changeAssingedUser = changeAssingedUser;\n\t\t\tvm.deleteDocument = deleteDocument;\n\t\n\t\t\tvm.isContentStatusSelected = false;\n\t\n\t\t\tfunction changeStatus(event) {\n\t\t\t\tvar status = vm.todoStatuses.concat(vm.contentStatuses);\n\t\t\t\t//select current status\n\t\t\t\tstatus = status.map(function (s) {\n\t\t\t\t\tif (vm.status && (s.Label === vm.status.Label && s.StatusType === vm.status.StatusType)) {\n\t\t\t\t\t\ts.selected = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ts.selected = false;\n\t\t\t\t\t}\n\t\t\t\t\treturn s;\n\t\t\t\t});\n\t\n\t\t\t\t$mdDialog.show({\n\t\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\t\ttargetEvent: event,\n\t\t\t\t\tclickOutsideToClose: true,\n\t\t\t\t\tlocals: {\n\t\t\t\t\t\tusers: status,\n\t\t\t\t\t\tmultiSelect: false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(function (selectedStatus) {\n\t\t\t\t\t//new user groups\n\t\t\t\t\tif (selectedStatus.length === 1) {\n\t\t\t\t\t\tvm.status = selectedStatus[0];\n\t\t\t\t\t\tonChange();\n\t\t\t\t\t\tvm.saveStatus();\n\t\t\t\t\t}\n\t\t\t\t}, function () {\n\t\t\t\t\t//cancel\n\t\t\t\t});\n\t\t\t}\n\t\t\tfunction changeAssingedUser(event) {\n\t\t\t\tvar users = vm.users;\n\t\t\t\t//select current assigned user\n\t\t\t\tif (vm.assignedUser) {\n\t\t\t\t\tusers = users.map(function (user) {\n\t\t\t\t\t\tif (user.UserId === vm.assignedUser.UserId) {\n\t\t\t\t\t\t\tuser.selected = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tuser.selected = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn user;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\n\t\t\t\t$mdDialog.show({\n\t\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\t\ttargetEvent: event,\n\t\t\t\t\tclickOutsideToClose: true,\n\t\t\t\t\tlocals: {\n\t\t\t\t\t\tusers: users,\n\t\t\t\t\t\tmultiSelect: false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(function (selectedUser) {\n\t\t\t\t\t//new user groups\n\t\t\t\t\tif (selectedUser.length === 1) {\n\t\t\t\t\t\tvm.assignedUser = selectedUser[0];\n\t\t\t\t\t\tonChange();\n\t\t\t\t\t\tvm.saveStatus();\n\t\t\t\t\t}\n\t\t\t\t}, function () {\n\t\t\t\t\t//cancel\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction onChange() {\n\t\n\t\t\t\tvar Status = vm.status;\n\t\t\t\tvm.statusIsDirty = false;\n\t\t\t\tif (Status && Status.StatusType === 'Content Status') {\n\t\t\t\t\tvm.isContentStatusSelected = true;\n\t\t\t\t\tvm.statusIsDirty = true;\n\t\t\t\t}\n\t\t\t\telse if (Status && Status.StatusType === 'ToDo Status') {\n\t\t\t\t\tvar AssignedUser = vm.assignedUser;\n\t\t\t\t\tvm.isContentStatusSelected = false;\n\t\t\t\t\tif (AssignedUser && AssignedUser.UserId > 0) {\n\t\t\t\t\t\tvm.statusIsDirty = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction saveStatus() {\n\t\t\t\tvar parsedStatus = vm.status;\n\t\t\t\tvar parsedUser = vm.assignedUser;\n\t\n\t\t\t\tvar contentstatus = {};\n\t\t\t\tcontentstatus.TagTypeId = vm.contentStatusTagTypeId;\n\t\t\t\tcontentstatus.Value = parsedStatus.StatusType === 'Content Status' ? parsedStatus.Label : null;\n\t\n\t\t\t\tvar todostatus = {};\n\t\t\t\ttodostatus.TagTypeId = vm.todoStatusTagTypeId;\n\t\t\t\ttodostatus.Value = parsedStatus.StatusType === 'ToDo Status' ? parsedStatus.Label : null;\n\t\n\t\t\t\tvar assigneduserid = {};\n\t\t\t\tassigneduserid.TagTypeId = vm.assignedUserIdTagTypeId;\n\t\t\t\tassigneduserid.Value = parsedStatus.StatusType === 'ToDo Status' && parsedUser ? parsedUser.UserId : 0;\n\t\n\t\t\t\tvar assigneddate = {};\n\t\t\t\tassigneddate.TagTypeId = vm.assignedDateTagTypeId;\n\t\t\t\tvar date = new Date();\n\t\t\t\tvar mm = date.getMonth() + 1;\n\t\t\t\tif (mm < 10) {\n\t\t\t\t\tmm = '0' + mm;\n\t\t\t\t}\n\t\t\t\tvar dd = date.getDate();\n\t\t\t\tif (dd < 10) {\n\t\t\t\t\tdd = '0' + dd;\n\t\t\t\t}\n\t\t\t\tassigneddate.Value = [mm, dd, date.getFullYear()].join('');\n\t\n\t\t\t\tvar Status = [];\n\t\t\t\tStatus.push(contentstatus);\n\t\t\t\tStatus.push(todostatus);\n\t\t\t\tStatus.push(assigneduserid);\n\t\t\t\tStatus.push(assigneddate);\n\t\n\t\t\t\tsmbStatusDataStore.setDocumentStatus(Status, vm.documentId).then(submitSuccess, submitFailure);\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tfunction submitSuccess(response) {\n\t\t\t\tif (response.Error) {\n\t\t\t\t\tsubmitFailure(response.Error);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvm.statusIsDirty = false;\n\t\t\t\tvm.toDoListDS.loadCount();\n\t\t\t}\n\t\n\t\t\tfunction submitFailure(e) {\n\t\t\t\t//failure\n\t\t\t\tconsole.log(e.data.Message);\n\t\t\t}\n\t\n\t\t\tfunction deleteDocument(event) {\n\t\t\t\tvar title = gettextCatalog.getString('Delete Document');\n\t\t\t\tvar message = gettextCatalog.getString('Would you like to delete this document?');\n\t\t\t\tvar purgeText = gettextCatalog.getString('Selecting this checkbox will enable permanent deletion of this document that can\\'t be undone!');\n\t\n\t\t\t\tsmbDeleteDialogService\n\t\t\t\t\t.show(event, title, message, pxAuthService.isSiteAdmin, purgeText)\n\t\t\t\t\t.then(function(purge) {\n\t\t\t\t\t\treturn smbDocumentDataStore\n\t\t\t\t\t\t\t.delete(purge)\n\t\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\t\treturn $q.all([\n\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Document deleted')),\n\t\t\t\t\t\t\t\t\tsmbDocumentViewerNavigationService.back()\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(function() {\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to delete document'));\n\t\t\t\t\t\t\t});\t\t\t\t\n\t\t\t\t\t}, angular.noop);\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbDocumentDetails', DocumentDetailsDirective)\n\t\t\t.controller('smbDocumentDetailsController', ['smbDocumentDetailsPanelDataStore', DocumentDetailsController]);\n\t\n\t\tvar templateUrl = __webpack_require__(181);\n\t\tfunction DocumentDetailsDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbDocumentDetailsController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tdocumentGroupId: '@',\n\t\t\t\t\tdocumentTypeId: '@',\n\t\t\t\t\tdocumentId: '@'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction DocumentDetailsController(smbDocumentDetailsPanelDataStore) {\n\t\t\tvar vm = this;\n\t\t\tvm.detailsDS = smbDocumentDetailsPanelDataStore;\n\t\t}\n\t}());\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbDocumentHistory', DocumentHistoryDirective)\n\t\t\t.controller('smbDocumentHistoryController', [\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbDocumentHistoryDataStore',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxAuthService',\n\t\t\t\t'sbToastService',\n\t\t\t\t'sbDocumentDetailService',\n\t\t\t\t'smbDocumentDataStore',\n\t\t\t\t'smbContentUploadDataStore',\n\t\t\t\tDocumentHistoryController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(182);\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.documentHistory\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * @description\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t */\n\t\tfunction DocumentHistoryDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbDocumentHistoryController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tdocumentId: '@',\n\t\t\t\t\tcontentTypeId: '@'\n\t\t\t\t},\n\t\t\t\tlink: function (scope) {\n\t\t\t\t\tscope.$watch('vm.activeTab',function (newVal) {\n\t\t\t\t\t\tif (newVal === 1 && scope.vm.docRevisions.length === 0) {\n\t\t\t\t\t\t\tscope.vm.loadRevisions();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction DocumentHistoryController(pxProgressService, smbDocumentHistoryDataStore, gettextCatalog, pxAuthService, sbToastService, sbDocumentDetailService, smbDocumentDataStore, smbContentUploadDataStore) {\n\t\t\tvar vm = this;\n\t\t\tvm.loading = false;\n\t\t\tvm.documentHistoryDS = smbDocumentHistoryDataStore;\n\t\t\tvm.activeTab = 0;\n\t\n\t\t\tvm.documentDS = smbDocumentDataStore;\n\t\t\tvm.docRevisions = [];\n\t\t\tvm.promoteRevision = promoteRevision;\n\t\t\tvm.isLatest = isLatest;\n\t\t\tvm.uploadRevision = uploadRevision;\n\t\t\tvm.loadRevisions = loadRevisions;\n\t\n\t\t\t(function initDocumentIndexesController() {\n\t\t\t\tvm.loading = true;\n\t\t\t\tpxProgressService.visible = true;\n\t\t\t\tvm.documentHistoryDS.loadHistory(vm.documentId, vm.documentTypeId, false)\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tvm.loading = false;\n\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t});\n\t\t\t}());\n\t\n\t\t\tfunction loadRevisions() {\n\t\t\t\treturn sbDocumentDetailService.getVersions(vm.documentId)\n\t\t\t\t\t.then(function (revisions) {\n\t\t\t\t\t\tvm.docRevisions = revisions.map(function (v) {\n\t\t\t\t\t\t\treturn Object.assign({}, v, {\n\t\t\t\t\t\t\t\tDateCreated: new Date(v.DateCreated),\n\t\t\t\t\t\t\t\tCreatedBy: v.CreatedBy === pxAuthService.displayName ? 'You' : v.CreatedBy\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn revisions;\n\t\t\t\t\t}).then(function () {\n\t\t\t\t\t\tvar latest = vm.docRevisions[vm.docRevisions.length - 1];\n\t\t\t\t\t\tvar originalFileName = latest.OriginalFileName.split('.');\n\t\t\t\t\t\tvm.extension = originalFileName[originalFileName.length - 1];\n\t\t\t\t\t\tvm.extension = vm.extension && '.' + vm.extension;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction promoteRevision(ev, revision) {\n\t\t\t\tev.preventDefault();\n\t\t\t\tev.stopPropagation();\n\t\t\t\tsmbContentUploadDataStore.promoteRevision(revision)\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\treturn loadRevisions();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Successfully made revision {rev} the current revision'.replace('{rev}', revision.VersionNumber)));\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction isLatest(revision) {\n\t\t\t\treturn vm.docRevisions.indexOf(revision) === vm.docRevisions.length - 1;\n\t\t\t}\n\t\n\t\t\tfunction uploadRevision(fileInput) {\n\t\t\t\tif (!fileInput.files.length) {\n\t\t\t\t\t// no files have been selected, don't try to upload\n\t\t\t\t\t// non-existant file\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tvar file = fileInput.files[0];\n\t\t\t\tsmbContentUploadDataStore.uploadRevision(vm.documentId, file)\n\t\t\t\t\t.then(function () { /* Reload revisions after creating new one. */\n\t\t\t\t\t\treturn loadRevisions();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function () { /* Reset file input and display success message */\n\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('New revision saved'));\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function (err) {\n\t\t\t\t\t\t// show error message\n\t\t\t\t\t\tsbToastService.showSimple(err.data.Message);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function () { /* Reset file input */\n\t\t\t\t\t\tfileInput.value = '';\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbDocumentHitList', DocumentHitListDirective)\n\t\t\t.controller('smbDocumentHitListController', ['smbDocumentViewerNavigationService', DocumentHitListController]);\n\t\n\t\tvar templateUrl = __webpack_require__(183);\n\t\tfunction DocumentHitListDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbDocumentHitListController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tviewOnSelect: '=',\n\t\t\t\t\tdocuments: '=',\n\t\t\t\t\tonSelectDocument: '&'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction DocumentHitListController(smbDocumentViewerNavigationService) {\n\t\t\tvar vm = this;\n\t\t\tvm.onClick = onClick;\n\t\n\t\t\tfunction onClick(document) {\n\t\t\t\tvm.onSelectDocument({ document: document });\n\t\t\t\tif (vm.viewOnSelect) {\n\t\t\t\t\tsmbDocumentViewerNavigationService.go(document.LibraryId, document.FolderId, document.DocumentId);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t}\n\t}());\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbDocumentIndexes', DocumentIndexesDirective)\n\t\t\t.controller('smbDocumentIndexesController', [\n\t\t\t\t'$state',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbDocumentIndexDataStore',\n\t\t\t\t'smbDocumentDataStore',\n\t\t\t\t'smbDocumentDetailsPanelDataStore',\n\t\t\t\tDocumentIndexesController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(184);\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.smbDocumentIndexes\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * @description\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t */\n\t\tfunction DocumentIndexesDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbDocumentIndexesController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tdocumentId: '@',\n\t\t\t\t\tdocumentTypeId: '@',\n\t\t\t\t\tdocumentGroupId: '@'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction DocumentIndexesController($state, pxProgressService, smbDocumentIndexDataStore, smbDocumentDataStore, smbDocumentDetailsPanelDataStore) {\n\t\t\tvar vm = this;\n\t\t\tvm.loading = false;\n\t\t\tvm.indexDS = smbDocumentIndexDataStore;\n\t\t\tvm.documentDS = smbDocumentDataStore;\n\t\t\tvm.documentDetailsDS = smbDocumentDetailsPanelDataStore;\n\t\n\t\t\t(function initDocumentIndexesController() {\n\t\t\t\tvm.loading = true;\n\t\t\t\tpxProgressService.visible = true;\n\t\t\t\tvm.indexDS.getIndexes(vm.documentId, vm.documentTypeId, false)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tvm.indexDS.indexValues.sort(function(lhs, rhs) {\n\t\t\t\t\t\t\tif (lhs.sequence < rhs.sequence) {\n\t\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t\t} else if (lhs.sequence === rhs.sequence) {\n\t\t\t\t\t\t\t\treturn 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tvm.documentDS.loadUserPermissions(vm.documentGroupId);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tvm.loading = false;\n\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t});\n\t\t\t}());\n\t\t}\n\t}());\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbDocumentIndexesEdit', DocumentIndexesEditDirective)\n\t\t\t.controller('smbDocumentIndexesEditController', [\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbDocumentIndexDataStore',\n\t\t\t\t'smbIndexTypesDataStore',\n\t\t\t\t'smbDocumentDataStore',\n\t\t\t\t'smbDocumentDetailsPanelDataStore',\n\t\t\t\tDocumentIndexesEditController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(185);\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.smbDocumentIndexesEdit\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * @description\n\t\t *\n\t\t * Document index edit component for the document viewer\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t */\n\t\tfunction DocumentIndexesEditDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbDocumentIndexesEditController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tdocumentId: '@',\n\t\t\t\t\tdocumentTypeId: '@',\n\t\t\t\t\tdocumentGroupId: '@'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction DocumentIndexesEditController(\n\t\t\tgettextCatalog,\n\t\t\tpxProgressService,\n\t\t\tsbToastService,\n\t\t\tsmbDocumentIndexDataStore,\n\t\t\tsmbIndexTypesDataStore,\n\t\t\tsmbDocumentDataStore,\n\t\t\tsmbDocumentDetailsPanelDataStore\n\t\t) {\n\t\t\tvar vm = this;\n\t\t\tvm.loading = false;\n\t\t\tvm.indexDS = smbDocumentIndexDataStore;\n\t\t\tvm.indexes = [];\n\t\t\tvm.saveIndexes = saveIndexes;\n\t\t\tvm.documentDetailsDS = smbDocumentDetailsPanelDataStore;\n\t\t\tvm.fieldsStatus = {\n\t\t\t\tisValid: true\n\t\t\t};\n\t\n\t\t\t(function initDocumentIndexesEditController() {\n\t\t\t\tvm.loading = true;\n\t\t\t\tpxProgressService.visible = true;\n\t\t\t\tsmbDocumentDataStore.loadUserPermissions(vm.documentGroupId)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tif (smbDocumentDataStore.canEditFields) {\n\t\t\t\t\t\t\treturn vm.indexDS.getIndexes(vm.documentId, vm.documentTypeId, true);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Current user can't edit fields, go back to the display page\n\t\t\t\t\t\t\tsmbDocumentDetailsPanelDataStore.toggle(smbDocumentDetailsPanelDataStore.fieldPanel);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\tif (data !== false) {\n\t\t\t\t\t\t\tvm.indexes = vm.indexDS.indexTypePanelModel;\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tvm.loading = false;\n\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t});\n\t\t\t}());\n\t\n\t\t\tfunction saveIndexes() {\t\n\t\t\t\tif(vm.fieldsStatus.isValid) {\n\t\t\t\t\tpxProgressService.visible = vm.loading = true;\n\t\t\t\t\tsmbIndexTypesDataStore.setIndexTypes(vm.indexes, vm.documentId, vm.documentTypeId)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Fields updated!'));\n\t\t\t\t\t\t\tsmbDocumentDetailsPanelDataStore.toggle(smbDocumentDetailsPanelDataStore.fieldPanel);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function(){\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to update fields.'));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\t\tvm.loading = false;\n\t\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbDocumentNotes', ['$timeout', DocumentNotesDirective])\n\t\t\t.controller('smbDocumentNotesController', ['smbDocumentNotesDataStore', 'pxAuthService', DocumentNotesController]);\n\t\n\t\tvar templateUrl = __webpack_require__(186);\n\t\tfunction DocumentNotesDirective($timeout) {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbDocumentNotesController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: {\n\t\t\t\t\tdocumentId: '@'\n\t\t\t\t},\n\t\t\t\tscope: {},\n\t\t\t\tlink: function(scope, element, attrs){\n\t\t\t\t\tscope.$watchCollection('vm.notesDS.notes', function (newVal) {\n\t\t\t\t\t\tif (!newVal) { return;}\n\t\t\t\t\t\tscroll();\n\t\t\t\t\t});\n\t\t\t\t\tfunction scroll() {\n\t\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\t\tvar scrollElment = element[0].querySelector('.smb-app-doc-comments__comment-list');\n\t\t\t\t\t\t\tif (scrollElment) {\n\t\t\t\t\t\t\t\tscrollElment.scrollTop = scrollElment.scrollHeight;\n\t\t\t\t\t\t\t\tscope.vm.loaded = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 100);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tscroll();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction DocumentNotesController(smbDocumentNotesDataStore, pxAuthService) {\n\t\t\tvar vm = this;\n\t\t\tvm.loaded = false;\n\t\t\tvm.notesDS = smbDocumentNotesDataStore;\n\t\t\tvm.authService = pxAuthService; \n\t\t\tvm.notesDS.loadNotes(vm.documentId);\n\t\t\tvm.newCommentText = '';\n\t\t\tvm.postComment = postComment;\n\t\n\t\t\tfunction postComment() {\n\t\t\t\tif (vm.newCommentText) {\n\t\t\t\t\tvar note = { text: vm.newCommentText };\n\t\t\t\t\tvm.notesDS.createNote(vm.documentId, note)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tvm.newCommentText = '';\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbDocumentView', DocumentViewDirective)\n\t\t\t.controller('smbDocumentViewController', [\n\t\t\t\t'$scope',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbPanelDetailsDataStore',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbDocumentDataStore',\n\t\t\t\t'smbContentUploadDataStore',\n\t\t\t\t'smbDocumentViewerNavigationService',\n\t\t\t\tDocumentViewController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(187);\n\t\tfunction DocumentViewDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbDocumentViewController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: {\n\t\t\t\t\tdocumentGroupId: '@',\n\t\t\t\t\tdocumentTypeId: '@',\n\t\t\t\t\tdocumentId: '@'\n\t\t\t\t},\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction DocumentViewController($scope, pxProgressService, smbPanelDetailsDataStore, smbToolbarService, smbDocumentDataStore, smbContentUploadDataStore, smbDocumentViewerNavigationService) {\n\t\t\tvar vm = this;\n\t\t\tpxProgressService.visible = true; \n\t\t\tvm.docPages = [];\n\t\t\tvm.panelDetailsDS = smbPanelDetailsDataStore;\n\t\n\t\t\t(function initDocumentViewController() {\n\t\t\t\tsmbToolbarService.backArrowState = smbDocumentViewerNavigationService.backState;\n\t\t\t\tif (smbDocumentViewerNavigationService.backStateParams) {\n\t\t\t\t\tsmbToolbarService.backArrowStateParams = smbDocumentViewerNavigationService.backStateParams;\n\t\t\t\t}\n\t\n\t\t\t\tloadDoc();\n\t\n\t\t\t\tvar unsubscribe = smbContentUploadDataStore.onUploadSuccess(function() {\n\t\t\t\t\tloadDoc();\n\t\t\t\t});\n\t\n\t\t\t\t$scope.$on('$destroy', function() {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t});\n\t\t\t}());\n\t\n\t\t\tfunction loadDoc() {\n\t\t\t\treturn smbDocumentDataStore.loadDocument(vm.documentId)\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\tvm.docPages = smbDocumentDataStore.pageUrls;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function(){\t\t\t\t\t\n\t\t\t\t\t\tpxProgressService.visible = false; \n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbHome', [HomeDirective])\n\t\t\t.controller('HomeController',\n\t\t\t[\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'$mdMedia',\n\t\t\t\t'smbToDoListDataStore',\n\t\t\t\t'smbToolbarService',\n\t\t\t\tHomeController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(189);\n\t\tfunction HomeDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: HomeController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction HomeController(gettextCatalog, $mdMedia, smbToDoListDataStore, smbToolbarService) {\n\t\t\tsmbToolbarService.reset();\n\t\n\t\t\tvar vm = this;\n\t\t\tvm.media = $mdMedia;\n\t\t\tvm.todoListDS = smbToDoListDataStore;\n\t\t\tvm.items = [\n\t\t\t\t{ label: gettextCatalog.getString('Find Documents'), icon: 'search', state: 'search.contentTypeGroups' },\n\t\t\t\t{ label: gettextCatalog.getString('Add Documents'), icon: 'note_add', state: 'import.contentTypeGroups' },\n\t\t\t\t{ label: gettextCatalog.getString('My To-Do List'), icon: 'assignment', state: 'todo.list', isTodoList: true }\n\t\t\t];\n\t\t}\n\t}());\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() { \n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbIcon', IconDirective)\n\t\t\t.controller('smbIconController', ['$scope', 'smbIconTypes', 'smbIconDataStore', IconController]);\n\t\n\t\tvar templateUrl = __webpack_require__(190);\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.smbIcon2\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * @description\n\t\t *\n\t\t * A component for retrieving and displaying user configurable icons. This component currently only works for\n\t\t * SVG icons. Binary image files are not yet supported, but will be in the future.\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t */\n\t\tfunction IconDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbIconController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\ticonUri: '@',\n\t\t\t\t\ticonName: '@',\n\t\t\t\t\ticonType: '@'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction IconController($scope, smbIconTypes, smbIconDataStore) {\n\t\t\tvar vm = this;\n\t\t\tvm.iconTypes = smbIconTypes;\n\t\t\tvm.iconData = null;\n\t\n\t\t\tvar _prevUrl;\n\t\n\t\t\tfunction loadIcon() {\n\t\t\t\tsmbIconDataStore.getIconData({IconUri: vm.iconUri, IconExtension: vm.iconType})\n\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\tvm.iconData = data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\t$scope.$watch('vm.iconUri', function() {\n\t\t\t\tif (_prevUrl !== vm.iconUri) {\n\t\t\t\t\t_prevUrl = vm.iconUri;\n\t\t\t\t\tloadIcon();\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\tloadIcon();\n\t\t}\n\t}());\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(62);\n\t__webpack_require__(22);\n\t__webpack_require__(63);\n\t__webpack_require__(64);\n\t__webpack_require__(65);\n\t__webpack_require__(66);\n\t__webpack_require__(23);\n\t__webpack_require__(67);\n\t__webpack_require__(24);\n\t__webpack_require__(68);\n\t__webpack_require__(25);\n\t__webpack_require__(69);\n\t__webpack_require__(26);\n\t__webpack_require__(70);\n\t__webpack_require__(71);\n\t__webpack_require__(27);\n\t__webpack_require__(72);\n\t__webpack_require__(73);\n\t__webpack_require__(28);\n\t__webpack_require__(74);\n\t__webpack_require__(29);\n\t__webpack_require__(75);\n\t__webpack_require__(76);\n\t__webpack_require__(30);\n\t__webpack_require__(77);\n\t__webpack_require__(31);\n\t__webpack_require__(78);\n\t__webpack_require__(32);\n\t__webpack_require__(79);\n\t__webpack_require__(33);\n\t__webpack_require__(80);\n\t__webpack_require__(81);\n\t__webpack_require__(34);\n\t__webpack_require__(82);\n\t__webpack_require__(35);\n\t__webpack_require__(83);\n\t__webpack_require__(36);\n\t__webpack_require__(84);\n\t__webpack_require__(37);\n\t__webpack_require__(85);\n\t__webpack_require__(38);\n\t__webpack_require__(86);\n\t__webpack_require__(39);\n\t__webpack_require__(188);\n\t__webpack_require__(87);\n\t__webpack_require__(40);\n\t__webpack_require__(88);\n\t__webpack_require__(41);\n\t__webpack_require__(90);\n\t__webpack_require__(42);\n\t__webpack_require__(91);\n\t__webpack_require__(43);\n\t__webpack_require__(92);\n\t__webpack_require__(44);\n\t__webpack_require__(93);\n\t__webpack_require__(45);\n\t__webpack_require__(94);\n\t__webpack_require__(46);\n\t__webpack_require__(95);\n\t__webpack_require__(47);\n\t__webpack_require__(96);\n\t__webpack_require__(48);\n\t__webpack_require__(97);\n\t__webpack_require__(49);\n\t__webpack_require__(98);\n\t__webpack_require__(50);\n\t__webpack_require__(99);\n\t__webpack_require__(51);\n\t__webpack_require__(100);\n\t__webpack_require__(52);\n\t__webpack_require__(101);\n\t__webpack_require__(102);\n\t__webpack_require__(53);\n\t__webpack_require__(103);\n\t__webpack_require__(54);\n\t__webpack_require__(104);\n\t__webpack_require__(55);\n\t__webpack_require__(105);\n\t__webpack_require__(56);\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbIndexTypeConfig', IndexTypeConfigDirective)\n\t\t\t.controller('smbIndexTypeConfigController', [\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbIndexTypesDataTypes',\n\t\t\t\tIndexTypeConfigController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(191);\n\t\tfunction IndexTypeConfigDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbIndexTypeConfigController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tcurrentIndexTypes: '=',\n\t\t\t\t\tcurrentIndexTypesTitle: '@',\n\t\t\t\t\tindexTypesPool: '=',\n\t\t\t\t\tindexTypesPoolTitle: '@',\n\t\t\t\t\tindexTypesPoolAddLabel: '@',\n\t\t\t\t\tallowEditName: '=',\n\t\t\t\t\tallowEditDefaultValue: '=',\n\t\t\t\t\tallowDelete: '=',\n\t\t\t\t\tonNewItem: '&',\n\t\t\t\t\tonEditItem: '&',\n\t\t\t\t\tonDelete: '&',\n\t\t\t\t\tenableSequencing: '=',\n\t\t\t\t\tonSequence: '&'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction IndexTypeConfigController(gettextCatalog, sbToastService, smbIndexTypesDataTypes) {\n\t\t\tvar vm = this;\n\t\t\tvm.active = -1;\n\t\t\tvm.newIndexType = {\n\t\t\t\tname: '',\n\t\t\t\tdataType: {val: -1},\n\t\t\t\tdefaultValue: ''\n\t\t\t};\n\t\n\t\t\tvm.smbIndexTypeDataTypes = smbIndexTypesDataTypes;\n\t\t\tvm.currentIndexTypes = vm.currentIndexTypes || [];\n\t\t\tvm.indexTypesPool = vm.indexTypesPool || [];\n\t\n\t\t\tvm.currentIndexTypesTitle = vm.currentIndexTypesTitle || gettextCatalog.getString('Curent Index Types');\n\t\n\t\t\tvm.dataTypes = [\n\t\t\t\t{\n\t\t\t\t\tlabel: smbIndexTypesDataTypes[smbIndexTypesDataTypes.STRING],\n\t\t\t\t\tval: smbIndexTypesDataTypes.STRING\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: smbIndexTypesDataTypes[smbIndexTypesDataTypes.NUMERIC],\n\t\t\t\t\tval: smbIndexTypesDataTypes.NUMERIC\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: smbIndexTypesDataTypes[smbIndexTypesDataTypes.DATE],\n\t\t\t\t\tval: smbIndexTypesDataTypes.DATE\n\t\t\t\t}\n\t\t\t];\n\t\n\t\t\tvm.setActive = setActive;\n\t\t\tvm.saveEdit = saveEdit;\n\t\t\tvm.cancelEdit = cancelEdit;\n\t\t\tvm.addIndexType = addIndexType;\n\t\t\tvm.addFromPool = addFromPool;\n\t\t\tvm.remove = remove;\n\t\t\tvm.swapIndexTypesOrder = swapIndexTypesOrder;\n\t\n\t\t\tObject.defineProperty(vm, 'allowEdit', {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\tget: function() { return vm.allowEditName || vm.allowEditDefaultValue; }\n\t\t\t});\n\t\n\t\t\tvar activeEdit = null;\n\t\n\t\t\tfunction setActive(index) {\n\t\t\t\tvm.active = index;\n\t\t\t\tactiveEdit = copyIndexType(vm.currentIndexTypes[vm.active]);\n\t\t\t}\n\t\n\t\t\tfunction saveEdit() {\n\t\t\t\tvar target = vm.currentIndexTypes[vm.active];\n\t\t\t\tif (!indexTypeConflict(target)) {\n\t\t\t\t\tvm.onEditItem({item: target});\n\t\t\t\t\tvm.active = -1;\n\t\t\t\t\tactiveEdit = null;\n\t\t\t\t} else {\n\t\t\t\t\tindexTypeConflictMessage(target.TagTypeName);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction cancelEdit() {\n\t\t\t\tvm.currentIndexTypes[vm.active] = activeEdit;\n\t\t\t\tvm.active = -1;\n\t\t\t\tactiveEdit = null;\n\t\t\t}\n\t\n\t\t\tfunction copyIndexType(indexType) {\n\t\t\t\treturn Object.assign({}, indexType, {\n\t\t\t\t\tConstraints: Object.assign({}, indexType.Constraints),\n\t\t\t\t\tLinks: Object.assign({}, indexType.Links)\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction addIndexType() {\n\t\t\t\tif (vm.newIndexType && vm.newIndexType.name && vm.newIndexType.dataType && vm.smbIndexTypeDataTypes[vm.newIndexType.dataType.val]) {\n\t\t\t\t\tvar newIndexType = {\n\t\t\t\t\t\tTagTypeName: vm.newIndexType.name,\n\t\t\t\t\t\tDataType: vm.newIndexType.dataType.val,\n\t\t\t\t\t\tDataTypeName: vm.smbIndexTypeDataTypes[vm.newIndexType.dataType.val],\n\t\t\t\t\t\tConstraints: {},\n\t\t\t\t\t\tLinks: {}\n\t\t\t\t\t};\n\t\t\t\t\tif (vm.newIndexType.defaultValue) {\n\t\t\t\t\t\tnewIndexType.Constraints.DefaultValue = vm.newIndexType.defaultValue;\n\t\t\t\t\t}\n\t\t\t\t\tif (!indexTypeConflict(newIndexType)) {\n\t\t\t\t\t\tvm.onNewItem({item: newIndexType});\n\t\t\t\t\t\tvm.newIndexType.name = '';\n\t\t\t\t\t\tvm.newIndexType.dataType = {val: -1};\n\t\t\t\t\t\tvm.newIndexType.defaultValue = '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tindexTypeConflictMessage(newIndexType.TagTypeName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction addFromPool(index) {\n\t\t\t\tvm.onNewItem({item: vm.indexTypesPool[index]});\n\t\t\t}\n\t\n\t\t\tfunction remove(index) {\n\t\t\t\tvm.onDelete({item: vm.currentIndexTypes[index]});\n\t\t\t}\n\t\n\t\t\tfunction indexTypeConflict(indexType) {\n\t\t\t\tvar it = vm.currentIndexTypes.find(function(tt) {\n\t\t\t\t\treturn tt.TagTypeName.toLowerCase() === indexType.TagTypeName.toLowerCase() && tt.TagTypeId !== indexType.TagTypeId;\n\t\t\t\t});\n\t\n\t\t\t\tif (!it && vm.indexTypesPool) {\n\t\t\t\t\tit = vm.indexTypesPool.find(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.toLowerCase() === indexType.TagTypeName.toLowerCase() && tt.TagTypeId !== indexType.TagTypeId;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\n\t\t\t\treturn it ? true : false;\n\t\t\t}\n\t\n\t\t\tfunction indexTypeConflictMessage(indexTypeName) {\n\t\t\t\tvar message = gettextCatalog.getString('\"{{indexTypeName}}\" index type already exists!', { indexTypeName: indexTypeName });\n\t\t\t\tsbToastService.showSimple(message);\n\t\t\t}\n\t\n\t\t\tfunction swapIndexTypesOrder(index1, index2) {\n\t\t\t\tif (vm.enableSequencing) {\n\t\t\t\t\tvm.onSequence({index1: index1, index2: index2});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbIndexes',[IndexesDirective])\n\t\t\t.controller('IndexesController', [\n\t\t\t\t'smbIndexTypesDataTypes',\n\t\t\t\tIndexesController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(192);\n\t\tfunction IndexesDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: IndexesController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tindextypes: '=',\n\t\t\t\t\tstatus: '='\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction IndexesController(smbIndexTypesDataTypes) {\n\t\t\tvar vm = this;\n\t\t\tvm.dataTypes = smbIndexTypesDataTypes;\n\t\t\tvm.stringFieldRegex = /^[^<>:\"/\\\\|?*]*$/i;\n\t\n\t\t\tif(vm.status) {\n\t\t\t\tObject.defineProperty(vm.status, 'isValid', {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget : function(){\n\t\t\t\t\t\treturn Object.keys(vm.fieldsForm.$error).length < 1;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* globals EasyScroller */\n\t(function () {\n\t\t'use strict';\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.directive:smbItemSelector\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * @description\n\t\t *\n\t\t * `smbItemSelector` is a hortizonal scrolling list of items\n\t\t *\n\t\t * @param {array=} items The items to show in scroller\n\t\t *\n\t\t * @param {bool} multiple The ability to select multiple items\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t */\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbItemSelector', ['$window','$timeout', ItemSelectorDirective])\n\t\t\t.controller('ItemSelectorController', [ItemSelectorController]);\n\t\n\t\tvar templateUrl = __webpack_require__(193);\n\t\tfunction ItemSelectorDirective($window, $timeout) {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: [ItemSelectorController],\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\tbindToController: {\n\t\t\t\t\titems: '=',\n\t\t\t\t\tmultiple: '='\n\t\t\t\t},\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tscope: true,\n\t\t\t\tlink: function (scope, element) {\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ItemSelectorController() {\n\t\t\tvar vm = this;\n\t\t\tvm.toggleSelection = function (item) {\n\t\t\t\tif (vm.isDragging) { return; }\n\t\t\t\tif (!vm.multiple) {\n\t\t\t\t\tvm.items = vm.items.map(function (i) {\n\t\t\t\t\t\ti.selected = false;\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t});\n\t\t\t\t\titem.selected = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\titem.selected = !item.selected;\n\t\t\t};\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbLogin', LoginDirective)\n\t\t\t.controller('smbLoginController', [\n\t\t\t\t'gettextCatalog',\n\t\t\t\tLoginController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(194);\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.smbLogin\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * @description\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t */\n\t\tfunction LoginDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbLoginController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: { }\n\t\t\t};\n\t\t}\n\t\n\t\tfunction LoginController(gettextCatalog) {\n\t\t}\n\t}());\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * email address and product type\n\t * pending registrations\n\t */\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.directive('smbRegister', [\n\t\t\t\tRegisterDirective\n\t\t\t])\n\t\t\t.controller('smbRegisterController', [\n\t\t\t\t'pxEnvironmentService',\n\t\t\t\tRegisterController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(195);\n\t\tfunction RegisterDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbRegisterController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tdeploymentId: '@',\n\t\t\t\t\tauthToken: '@'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction RegisterController(pxEnvironmentService) {\n\t\t\tvar vm = this;\n\t\t\tvm.pxEnvironmentService = pxEnvironmentService;\n\t\t\tvm.agreeToTerms = false;\n\t\t}\n\t}());\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbStatus',[StatusDirective])\n\t\t\t.controller('StatusController', [\n\t\t\t\tStatusController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(196);\n\t\tfunction StatusDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: StatusController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tcontentStatuses: '=',\n\t\t\t\t\ttodoStatuses: '=',\n\t\t\t\t\tstatus: '=',\n\t\t\t\t\tonStatusChange: '&'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction StatusController() {\n\t\t\tvar vm = this;\n\t\t\tvm.onStatusSelected = onStatusSelected;\n\t\n\t\t\tfunction onStatusSelected() {\n\t\t\t\tvm.onStatusChange();\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbStatusConfig', StatusConfigDirective)\n\t\t\t.controller('smbStatusConfigController', [\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbStatusConfigDataStore',\n\t\t\t\tStatusConfigController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(197);\n\t\tfunction StatusConfigDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbStatusConfigController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\t\t\t\tcontentStatuses: '=',\n\t\t\t\t\ttodoStatuses: '=',\n\t\t\t\t\tonStatusChange: '&',\n\t\t\t\t\treadonly: '='\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction StatusConfigController(gettextCatalog, sbToastService, smbStatusConfigDataStore) {\n\t\t\tvar vm = this;\n\t\n\t\t\tvm.statusDS = smbStatusConfigDataStore;\n\t\t\tvm.existingStatuses = null;\n\t\n\t\t\tvm.checkExistingStatuses = checkExistingStatuses;\n\t\n\t\t\tvm.onAddContentStatus = onAddContentStatus;\n\t\t\tvm.onDeleteContentStatus = onDeleteContentStatus;\n\t\t\tvm.onAddToDoStatus = onAddToDoStatus;\n\t\t\tvm.onDeleteToDoStatus = onDeleteToDoStatus;\n\t\n\t\t\tfunction checkExistingChips(chip) {\n\t\t\t\tvar g = vm.contentStatuses.find(function(g) { return g === chip; });\n\t\t\t\tif (!g) {\n\t\t\t\t\tg = vm.todoStatuses.find(function(g) { return g === chip; });\n\t\t\t\t}\n\t\n\t\t\t\treturn g ? true : false;\n\t\t\t}\n\t\n\t\t\tfunction isReadOnly() {\n\t\t\t\treturn !!vm.readonly;\n\t\t\t}\n\t\n\t\t\tfunction checkExistingStatuses(status) {\n\t\t\t\tif (vm.existingStatuses === null) {\n\t\t\t\t\tvm.existingStatuses = vm.contentStatuses.concat(vm.todoStatuses);\n\t\t\t\t}\n\t\n\t\t\t\tvar exists = checkExistingChips(status);\n\t\t\t\tif (exists) {\n\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Status already exists!'));\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn status;\n\t\t\t}\n\t\n\t\t\tfunction onAddContentStatus(chip) {\n\t\t\t\tvm.onStatusChange();\n\t\t\t\treturn chip;\n\t\t\t}\n\t\n\t\t\tfunction onAddToDoStatus(chip) {\n\t\t\t\tvm.onStatusChange();\n\t\t\t\treturn chip;\n\t\t\t}\n\t\n\t\t\tfunction onDeleteContentStatus(chip) {\n\t\t\t\tvm.onStatusChange();\n\t\t\t\treturn chip;\n\t\t\t}\n\t\n\t\t\tfunction onDeleteToDoStatus(chip) {\n\t\t\t\tvm.onStatusChange();\n\t\t\t\treturn chip;\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbToDoList', [ToDoListDirective])\n\t\t\t.controller('ToDoListController',\n\t\t\t[\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbToDoListDataStore',\n\t\t\t\t'smbIconTypes',\n\t\t\t\t'smbDocumentViewerNavigationService',\n\t\t\t\tToDoListController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(198);\n\t\tfunction ToDoListDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: ToDoListController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {\n\t\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ToDoListController(gettextCatalog, smbToolbarService, smbToDoListDataStore, smbIconTypes, smbDocumentViewerNavigationService) {\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('My To Do List'), 'content.home', false, false);\n\t\n\t\t\tvar vm = this;\n\t\t\tvm.toDoListDS = smbToDoListDataStore;\n\t\t\tvm.viewState = viewState;\n\t\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\n\t\t\t(function loadToDoList() {\n\t\t\t\tsmbToDoListDataStore.getDocuments();\n\t\t\t})();\n\t\n\t\t\tfunction viewState(doc) {\n\t\t\t\tsmbDocumentViewerNavigationService.go(doc.LibraryId, doc.FolderId, doc.DocumentId);\n\t\t\t}\n\t\t}\n\t}());\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbToDoListContextMenu', ToDoListContextMenuDirective)\n\t\t\t.controller('smbToDoListContextMenuController', [\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbToDoListDataStore',\n\t\t\t\tToDoListContextMenuController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(199);\n\t\tfunction ToDoListContextMenuDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbToDoListContextMenuController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: { }\n\t\t\t};\n\t\t}\n\t\n\t\tfunction ToDoListContextMenuController(smbToolbarService, smbToDoListDataStore) {\n\t\t\tvar vm = this;\n\t\t\tvm.smbToolbarService = smbToolbarService;\n\t\t\tvm.todolistDS = smbToDoListDataStore;\n\t\n\t\t\tvm.dateAscending = false;\n\t\t\tvm.dateDescending = true;\n\t\t\tvm.typeAscending = false;\n\t\t\tvm.typeDescending = false;\n\t\t\tvm.statusAscending = false;\n\t\t\tvm.statusDescending = false;\n\t\n\t\t\tvm.sortByDate = sortByDate;\n\t\t\tvm.sortByType = sortByType;\n\t\t\tvm.sortByStatus = sortByStatus;\n\t\t\tvm.dateActive = true;\n\t\t\tvm.typeActive = false;\n\t\t\tvm.statusActive = false;\n\t\n\t\t\tvar ASCENDING = true;\n\t\t\tvar DESCENDING = false;\n\t\n\t\t\tfunction sortByDate() {\n\t\t\t\tif (vm.dateActive) {\n\t\t\t\t\tvm.dateAscending = !vm.dateAscending;\n\t\t\t\t\tvm.dateDescending = !vm.dateDescending;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvm.dateActive = true;\n\t\t\t\t\tvm.typeActive = false;\n\t\t\t\t\tvm.statusActive = false;\n\t\t\t\t\tvm.dateAscending = true;\n\t\t\t\t\tvm.dateDescending = false;\n\t\t\t\t}\n\t\t\t\tif (vm.dateAscending) {\n\t\t\t\t\tvm.todolistDS.sortByDate(ASCENDING);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvm.todolistDS.sortByDate(DESCENDING);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction sortByType() {\n\t\t\t\tif (vm.typeActive) {\n\t\t\t\t\tvm.typeAscending = !vm.typeAscending;\n\t\t\t\t\tvm.typeDescending = !vm.typeDescending;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvm.dateActive = false;\n\t\t\t\t\tvm.typeActive = true;\n\t\t\t\t\tvm.statusActive = false;\n\t\t\t\t\tvm.typeAscending = true;\n\t\t\t\t\tvm.typeDescending = false;\n\t\t\t\t}\n\t\t\t\tif (vm.typeAscending) {\n\t\t\t\t\tvm.todolistDS.sortByType(ASCENDING);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvm.todolistDS.sortByType(DESCENDING);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction sortByStatus() {\n\t\t\t\tif (vm.statusActive) {\n\t\t\t\t\tvm.statusAscending = !vm.statusAscending;\n\t\t\t\t\tvm.statusDescending = !vm.statusDescending;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvm.dateActive = false;\n\t\t\t\t\tvm.typeActive = false;\n\t\t\t\t\tvm.statusActive = true;\n\t\t\t\t\tvm.statusAscending = true;\n\t\t\t\t\tvm.statusDescending = false;\n\t\t\t\t}\n\t\t\t\tif (vm.statusAscending) {\n\t\t\t\t\tvm.todolistDS.sortByStatus(ASCENDING);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvm.todolistDS.sortByStatus(DESCENDING);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\tvar templateUrl = __webpack_require__(200);\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.directive('smbTrash', [\n\t\t\t\tTrashDirective\n\t\t\t])\n\t\t\t.controller('TrashController', [\n\t\t\t\t'$q',\n\t\t\t\t'$mdDialog',\n\t\t\t\t'pxProgressSerivce',\n\t\t\t\t'settingsService',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbDeletedItemsDataStore',\n\t\t\t\t'gettextCatalog',\n\t\t\t\tTrashController\n\t\t\t]);\n\t\n\t\tfunction TrashDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: TrashController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction TrashController($q, $mdDialog, pxProgressService, settingsService, sbToastService, smbToolbarService, smbDeletedItemsDataStore, gettextCatalog) {\n\t\t\tvar vm = this;\n\t\t\tvar initTasks = [\n\t\t\t\tsmbDeletedItemsDataStore.load()\n\t\t\t];\n\t\t\tvm.deletedItemsDS = smbDeletedItemsDataStore;\n\t\t\tvm.purge = purge;\n\t\t\tvm.restore = restore;\n\t\t\tvm.purgeAll = purgeAll;\n\t\t\tsmbToolbarService.reset();\n\t\t\tsmbToolbarService.showLogo = false;\n\t\t\tsmbToolbarService.title = gettextCatalog.getString('System Trash');\n\t\n\t\t\tsetLoading(true);\n\t\t\t$q.all(initTasks)\n\t\t\t\t.finally(setLoading(false));\n\t\t\t\n\t\t\tfunction purge(event, item) {\n\t\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t\t.title(gettextCatalog.getString('Delete'))\n\t\t\t\t\t.textContent(gettextCatalog.getString('Would you like to permanently delete \"{{name}}\"?', {\n\t\t\t\t\t\tname: item.name\n\t\t\t\t\t}))\n\t\t\t\t\t.ariaLabel(gettextCatalog.getString('Confirm permanent document deletion'))\n\t\t\t\t\t.targetEvent(event)\n\t\t\t\t\t.ok(gettextCatalog.getString('Permanently Delete'))\n\t\t\t\t\t.cancel(gettextCatalog.getString('Cancel'));\n\t\n\t\t\t\t$mdDialog\n\t\t\t\t\t.show(confirm)\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\tsmbDeletedItemsDataStore\n\t\t\t\t\t\t\t.purge(item)\n\t\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Successfully deleted'));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to purge item'));\n\t\t\t\t\t\t});\n\t\t\t\t}, angular.noop);\n\t\t\t}\n\t\n\t\t\tfunction purgeAll(event) {\n\t\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t\t.title(gettextCatalog.getString('Empty Trash'))\n\t\t\t\t\t.textContent(gettextCatalog.getString('Would you like to empty the trash? All documents in the trash will be permanently deleted.'))\n\t\t\t\t\t.ariaLabel(gettextCatalog.getString('Confirm emptying trash'))\n\t\t\t\t\t.targetEvent(event)\n\t\t\t\t\t.ok(gettextCatalog.getString('Empty Trash'))\n\t\t\t\t\t.cancel(gettextCatalog.getString('Cancel'));\n\t\n\t\t\t\t$mdDialog\n\t\t\t\t\t.show(confirm)\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\tsmbDeletedItemsDataStore\n\t\t\t\t\t\t\t.purgeAll()\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Trash was emptied'));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to empty trash'));\n\t\t\t\t\t\t});\n\t\n\t\t\t\t}, angular.noop);\n\t\t\t}\n\t\n\t\t\tfunction restore(item) {\n\t\t\t\tsmbDeletedItemsDataStore\n\t\t\t\t\t.restore(item)\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Successfully restored'));\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to restore document'));\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction setLoading(isLoading) {\n\t\t\t\tisLoading = typeof(isLoading) === 'boolean' ? isLoading : false;\n\t\t\t\tpxProgressService.visible = isLoading;\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.directive:smbadminUser\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * @description\n\t\t *\n\t\t * `sbadminInviteUsers` form to invite users to a deployment\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t *\n\t\t *\n\t\t * @element input\n\t\t * @param {number=} userId The id of the deployment to user to view details\n\t\t */\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbadminUser', UserDirective)\n\t\t\t.controller('smbadminUserController', [\n\t\t\t\t'$state',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbUserDataStore',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'gettextCatalog',\n\t\t\t\tUserController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(201);\n\t\tfunction UserDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbadminUserController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: {\n\t\t\t\t\tuserId: '@'\n\t\t\t\t},\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\tfunction UserController($state, sbToastService, smbToolbarService, smbUserDataStore, pxProgressService, gettextCatalog) {\n\t\t\tvar isLoading = true;\n\t\t\tvar vm = this;\n\t\n\t\t\tvar title = vm.userId ? gettextCatalog.getString('Edit User') : gettextCatalog.getString('Create User');\n\t\t\tsmbToolbarService.set(title, 'useradmin.home.users');\n\t\n\t\t\tvm.smbUserDataStore = smbUserDataStore;\n\t\t\tvm.updateUserLock = updateUserLock;\n\t\t\tvm.submitForm = submitForm;\n\t\t\tvm.toastVisible = false;\n\t\t\tvm.errorMessage = null;\n\t\n\t\t\tfunction updateUserLock() {\n\t\t\t\tif (isLoading || !vm.userId) { return; }\n\t\n\t\t\t\tif (smbUserDataStore.user.IsLocked) {\n\t\t\t\t\tsmbUserDataStore.lockUser(smbUserDataStore.user.UserId).then(function () {\n\t\t\t\t\t\tvar message = gettextCatalog.getString('{{userName}} is now locked', { userName: smbUserDataStore.user.UserName });\n\t\t\t\t\t\ttoast(message);\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tsmbUserDataStore.unlockUser(smbUserDataStore.user.UserId).then(function () {\n\t\t\t\t\tvar message = gettextCatalog.getString('{{userName}} is now unlocked', { userName: smbUserDataStore.user.UserName });\n\t\t\t\t\ttoast(message);\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction submitSuccess(response) {\n\t\t\t\t//REMOVE for ticket SBWEB-363\n\t\t\t\tif (response.Error) {\n\t\t\t\t\tsubmitFailure(response);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t//end of REMOVE\n\t\n\t\t\t\t//success\n\t\t\t\t//route\n\t\t\t\t$state.go('^');\n\t\n\t\t\t\tvar message = vm.userId !== null ? gettextCatalog.getString('User updated successfully') : gettextCatalog.getString('User created successfully');\n\t\t\t\ttoast(message);\n\t\t\t}\n\t\n\t\t\tfunction submitFailure(res) {\n\t\t\t\t// Depending on what type of request we make (create or update) we will get a different type of error object\n\t\t\t\t// This function handles both expected types of objects and displays messages for those.\n\t\t\t\t// Create requests (POST) will always get 200 and some API error object, update requests will always return an HTTP error response\n\t\t\t\t// so we can use the status to determine the error\n\t\t\t\tvar existsError = gettextCatalog.getString('A user with the email address {{address}} already exists', { address: smbUserDataStore.user.EmailAddress });\n\t\t\t\tif (res.status) {\n\t\t\t\t\t// assume HTTP error\n\t\t\t\t\tswitch (res.status) {\n\t\t\t\t\t\tcase 409:\n\t\t\t\t\t\t\tvm.errorMessage = existsError;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 500:\n\t\t\t\t\t\t\t// Most likely data is missing from request\n\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred, please make sure all required information has been provided');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 400:\n\t\t\t\t\t\t\t// Happens when the user does not exist\n\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred, the user you are trying to update could not be found');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred. If the problem continues please contact support');\n\t\t\t\t\t}\n\t\t\t\t} else if (res.Error) {\n\t\t\t\t\t// API error object\n\t\t\t\t\tif (res.UserExists) {\n\t\t\t\t\t\tvm.errorMessage = existsError;\n\t\t\t\t\t} else if (res.InvalidPassword) {\n\t\t\t\t\t\t// Invalid password message is translated\n\t\t\t\t\t\tvm.errorMessage = res.Error;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//failure\n\t\t\t\tpxProgressService.visible = false;\n\t\t\t}\n\t\n\t\t\tfunction submitForm() {\n\t\n\t\t\t\tif (!vm.userId) {\n\t\t\t\t\t//create user\n\t\t\t\t\tif (smbUserDataStore.user.Password !== vm.VerifyPassword) {\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Passwords do not match');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tpxProgressService.backdrop = true;\n\t\t\t\t\tshowLoader();\n\t\n\t\t\t\t\tvm.errorMessage = null;\n\t\t\t\t\tsmbUserDataStore.addUser(smbUserDataStore.user)\n\t\t\t\t\t\t.then(submitSuccess, submitFailure)\n\t\t\t\t\t\t.finally(hideLoader);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tpxProgressService.backdrop = true;\n\t\t\t\tshowLoader();\n\t\t\t\t//update user\n\t\t\t\tsmbUserDataStore.updateUser(smbUserDataStore.user).then(submitSuccess, submitFailure)\n\t\t\t\t\t.finally(hideLoader);\n\t\t\t}\n\t\n\t\t\tfunction toast(message) {\n\t\t\t\tvm.toastVisible = true;\n\t\t\t\tsbToastService.showSimple(message)\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tvm.toastVisible = false;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction showLoader() {\n\t\t\t\tpxProgressService.visible = true;\n\t\t\t}\n\t\t\tfunction hideLoader() {\n\t\t\t\tisLoading = false;\n\t\t\t\tpxProgressService.visible = false;\n\t\t\t}\n\t\t\t//initialize\n\t\t\t(function loadUser() {\n\t\t\t\tpxProgressService.visible = true;\n\t\n\t\t\t\tvm.smbUserDataStore.getUser(vm.userId)\n\t\t\t\t\t.finally(hideLoader);\n\t\t\t}());\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbUserAdministration',\n\t\t\t[\n\t\t\t\tUserAdminDirective\n\t\t\t])\n\t\t\t.controller('UserAdminController',\n\t\t\t[\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'gettextCatalog',\n\t\t\t\tUserAdminController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(202);\n\t\tfunction UserAdminDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: UserAdminController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\tfunction UserAdminController(smbToolbarService, gettextCatalog) {\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('User Administration'), 'content.home', false, false);\n\t\n\t\t\tvar vm = this;\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\t// user selector template loaded via webpack\n\t\tvar userSelectorTemplateUrl = __webpack_require__(1);\n\t\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.directive:smbadminUserGroup\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * @description\n\t\t *\n\t\t * `smbadminUserGroup` displays a User Group to add/edit\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t *\n\t\t * @element input\n\t\t * @param {number=} UserGroupId The id of the User Group to display\n\t\t */\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.directive('smbadminUserGroup',\n\t\t\t[\n\t\t\t\tUserGroupDirective\n\t\t\t])\n\t\t\t.controller('smbadminUserGroupController',\n\t\t\t[\n\t\t\t\t'$state',\n\t\t\t\t'$mdDialog',\n\t\t\t\t'sbToastService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbUserGroupDataStore',\n\t\t\t\t'smbUsersDataStore',\n\t\t\t\t'pxAuthService',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'gettextCatalog',\n\t\t\t\tUserGroupController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(203);\n\t\tfunction UserGroupDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbadminUserGroupController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: {\n\t\t\t\t\tdeploymentId: '@',\n\t\t\t\t\tuserGroupId: '@'\n\t\t\t\t},\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction UserGroupController($state, $mdDialog, sbToastService, smbToolbarService, smbUserGroupDataStore, smbUsersDataStore, pxAuthService, pxProgressService, gettextCatalog) {\n\t\t\tvar vm = this;\n\t\n\t\t\tvar title = vm.userGroupId ? gettextCatalog.getString('Edit User Group') : gettextCatalog.getString('Create User Group');\n\t\t\tsmbToolbarService.set(title, 'useradmin.home.usergroups');\n\t\n\t\t\tvm.deploymentId = pxAuthService.deploymentId;\n\t\t\tvm.loading = false;\n\t\t\tvm.doneLoading = doneLoading;\n\t\t\tvm.userGroupDS = smbUserGroupDataStore;\n\t\t\tvm.usersDS = smbUsersDataStore;\n\t\t\tvm.removeUser = removeUser;\n\t\t\tvm.addUsers = addUsers;\n\t\t\tvm.save = save;\n\t\t\tvm.systemName = null;\n\t\t\tvm.userExists = userExists;\n\t\n\t\t\tvar currentUsers = null;\n\t\n\t\t\t(function initUserGroupController() {\n\t\t\t\tisLoading();\n\t\n\t\t\t\tvm.systemName = pxAuthService.systemName;\n\t\t\t\tvm.userGroupDS.getUserGroup(vm.userGroupId, vm.systemName)\n\t\t\t\t\t.then(function loadUserGroup(group) {\n\t\t\t\t\t\tcurrentUsers = group.Embedded.Users.map(function (usr) { return Object.assign({}, usr); });\n\t\t\t\t\t})\n\t\t\t\t\t.then(function loadUsers() {\n\t\t\t\t\t\tsmbUsersDataStore.getUsers();\n\t\t\t\t\t})\n\t\t\t\t\t.finally(doneLoading);\n\t\t\t})();\n\t\n\t\t\tfunction userExists(usr) {\n\t\t\t\tif (!currentUsers) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\n\t\t\t\tvar exists = false;\n\t\t\t\tvar len = currentUsers.length;\n\t\n\t\t\t\tfor (var i = 0; i < len && !exists; ++i) {\n\t\t\t\t\tif (usr.UserId === currentUsers[i].UserId) {\n\t\t\t\t\t\texists = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn exists;\n\t\t\t}\n\t\n\t\t\tfunction addUsers(event) {\n\t\t\t\tvar groupUsers = smbUserGroupDataStore.userGroup.Embedded.Users;\n\t\t\t\tvar newUsers = smbUsersDataStore.users.filter(function (user) {\n\t\n\t\t\t\t\tfor (var x = 0; x < groupUsers.length; x++) {\n\t\t\t\t\t\tif (groupUsers[x].UserId === user.UserId) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\n\t\t\t\t$mdDialog.show({\n\t\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\t\ttargetEvent: event,\n\t\t\t\t\tclickOutsideToClose: true,\n\t\t\t\t\tlocals: {\n\t\t\t\t\t\tusers: newUsers,\n\t\t\t\t\t\tmultiSelect: true\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(function (selectedUsers) {\n\t\t\t\t\t//new users\n\t\t\t\t\tfor (var i = 0; i < selectedUsers.length; i++) {\n\t\t\t\t\t\tsmbUserGroupDataStore.userGroup.Embedded.Users.push(selectedUsers[i]);\n\t\t\t\t\t}\n\t\t\t\t}, function () {\n\t\t\t\t\t//cancel\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction removeUser(user) {\n\t\t\t\tvar userIndex = smbUserGroupDataStore.userGroup.Embedded.Users.indexOf(user);\n\t\t\t\tif (userIndex === -1) { return; }\n\t\t\t\tsmbUserGroupDataStore.userGroup.Embedded.Users.splice(userIndex, 1);\n\t\t\t}\n\t\n\t\t\tfunction save() {\n\t\t\t\tpxProgressService.backdrop = true;\n\t\t\t\tisLoading();\n\t\n\t\t\t\tsmbUserGroupDataStore.saveUserGroup(vm.systemName)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\tvm.userGroup = response;\n\t\t\t\t\t\t$state.go('^');\n\t\t\t\t\t\tvar message = vm.userGroupId ? gettextCatalog.getString('User group saved!') : gettextCatalog.getString('New user group created!');\n\t\t\t\t\t\tsbToastService.showSimple(message);\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\tvm.errorMessage = e.data.Message;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(doneLoading);\n\t\t\t}\n\t\n\t\t\tfunction isLoading() {\n\t\t\t\tvm.loading = true;\n\t\t\t\tpxProgressService.visible = true;\n\t\t\t}\n\t\n\t\t\tfunction doneLoading() {\n\t\t\t\tvm.loading = false;\n\t\t\t\tpxProgressService.visible = false;\n\t\t\t}\n\t\n\t\t}\n\t})();\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbadminUserGroups', [UserGroupsDirective])\n\t\t\t.controller('smbadminUserGroupsController',\n\t\t\t[\n\t\t\t\t'$state',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbUserGroupsDataStore',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'gettextCatalog',\n\t\t\t\tUserGroupsController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(204);\n\t\tfunction UserGroupsDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: UserGroupsController,\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\tfunction UserGroupsController($state, smbToolbarService, smbUserGroupsDataStore, pxProgressService, gettextCatalog) {\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('User Groups Configuration'), 'useradmin.home');\n\t\n\t\t\tvar vm = this;\n\t\t\tvm.loading = false;\n\t\t\tvm.userGroupDS = smbUserGroupsDataStore;\n\t\t\tvm.addUserGroup = addUserGroup;\n\t\t\tvm.editUserGroup = editUserGroup;\n\t\n\t\t\t(function loadUserGroups() {\n\t\t\t\tisLoading();\n\t\t\t\tsmbUserGroupsDataStore.getUserGroups().finally(doneLoading);\n\t\t\t})();\n\t\n\t\t\tfunction editUserGroup(group) {\n\t\t\t\t$state.go('useradmin.home.usergroups.details', { usergroupId: group.UserGroupId });\n\t\t\t}\n\t\n\t\t\tfunction addUserGroup() {\n\t\t\t\t$state.go('useradmin.home.usergroups.details');\n\t\t\t}\n\t\n\t\t\tfunction isLoading() {\n\t\t\t\tvm.loading = true;\n\t\t\t\tpxProgressService.visible = true;\n\t\t\t}\n\t\n\t\t\tfunction doneLoading() {\n\t\t\t\tvm.loading = false;\n\t\t\t\tpxProgressService.visible = false;\n\t\t\t}\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.controller('smbUserSelectorController', [\n\t\t\t\t'$mdDialog',\n\t\t\t\t'users',\n\t\t\t\t'multiSelect',\n\t\t\t\tUserSelectorController]);\n\t\n\t\tfunction UserSelectorController($mdDialog, users, multiSelect) {\n\t\t\tvar vm = this;\n\t\t\tvm.users = JSON.parse(JSON.stringify(users)); //clear object reference\n\t\t\tvm.fullItems = JSON.parse(JSON.stringify(users));\n\t\t\tvm.multiple = multiSelect ? true : false;\n\t\t\tvm.style = { width: (vm.fullItems.length * 170) + 'px' };\n\t\t\tvm.filterPhrase = '';\n\t\n\t\t\tvm.cancel = function () {\n\t\t\t\t$mdDialog.cancel();\n\t\t\t};\n\t\t\tvm.add = function () {\n\t\t\t\t$mdDialog.hide(vm.users.filter(function (user) { return user.selected; }));\n\t\t\t};\n\t\n\t\t\tvm.filter = function () {\n\t\t\t\tif (vm.filterPhrase === '') {\n\t\t\t\t\tvm.users = JSON.parse(JSON.stringify(vm.fullItems));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvar filter = vm.filterPhrase.toLowerCase();\n\t\t\t\tvm.users = vm.fullItems.filter(function (item) {\n\t\t\t\t\tif (item.UserGroupId) {\n\t\t\t\t\t\treturn item.UserGroupName.toLowerCase().indexOf(filter) > -1;\n\t\t\t\t\t}\n\t\t\t\t\telse if (item.UserId) {\n\t\t\t\t\t\tvar nameEmail = item.UserName.toLowerCase() + ' ' + item.EmailAddress.toLowerCase();\n\t\t\t\t\t\treturn nameEmail.toLowerCase().indexOf(filter) > -1;\n\t\t\t\t\t}\n\t\t\t\t\telse if (item.StatusType) {\n\t\t\t\t\t\treturn item.Label.toLowerCase().indexOf(filter) > -1;\n\t\t\t\t\t}\n\t\t\t\t\telse if (item.IconUserFriendlyName) {\n\t\t\t\t\t\treturn item.IconUserFriendlyName.toLowerCase().indexOf(filter) > -1;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t};\n\t\t}\n\t}());\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @name smb-app.directive:smbadminUsers\n\t\t * @module smb-app\n\t\t * @restrict E\n\t\t * @description\n\t\t *\n\t\t * `smbadminUsers` displays a deployments users\n\t\t *\n\t\t * @usage\n\t\t *\n\t\t * \n\t\t *\n\t\t * @element input\n\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\n\t\t */\n\t\n\t\tangular.module('smb-app')\n\t\t\t.directive('smbadminUsers', [UsersDirective])\n\t\t\t.controller('smbadminUsersController',\n\t\t\t[\n\t\t\t\t'$state',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxProgressService',\n\t\t\t\t'smbToolbarService',\n\t\t\t\t'smbUsersDataStore',\n\t\t\t\tUsersController\n\t\t\t]);\n\t\n\t\tvar templateUrl = __webpack_require__(205);\n\t\tfunction UsersDirective() {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tcontroller: 'smbadminUsersController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: templateUrl,\n\t\t\t\tbindToController: true,\n\t\t\t\tscope: {}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction UsersController($state, gettextCatalog, pxProgressService, smbToolbarService, smbUsersDataStore) {\n\t\t\tvar vm = this;\n\t\t\tsmbToolbarService.set(gettextCatalog.getString('Users Configuration'), 'useradmin.home');\n\t\n\t\t\tvm.smbUsersDataStore = smbUsersDataStore;\n\t\t\tvm.pxProgressService = pxProgressService;\n\t\t\tvm.editUser = editUser;\n\t\t\tvm.createUser = createUser;\n\t\n\t\t\tfunction editUser(user) {\n\t\t\t\t$state.go('useradmin.home.users.details', { userId: user.UserId });\n\t\t\t}\n\t\n\t\t\tfunction createUser() {\n\t\t\t\t$state.go('useradmin.home.users.details', { userId: '' });\n\t\t\t}\n\t\n\t\t\t//initialize\n\t\t\t(function loadUsers() {\n\t\t\t\tpxProgressService.visible = true;\n\t\t\t\tvm.smbUsersDataStore.getUsers().finally(function () { pxProgressService.visible = false; });\n\t\t\t}());\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeConfigDataStore', \n\t\t\t[\n\t\t\t\t'$q', \n\t\t\t\t'smbContentTypeConfigService',\n\t\t\t\t'smbStatusConfigService',\n\t\t\t\t'smbContentTypeTagTypeConfigDataStore',\n\t\t\t\tContentTypeConfigDataStore\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeConfigDataStore\n\t\t * \n\t\t * @description\n\t\t * Data store that manages state for the content type configuration section.\n\t\t */\n\t\tfunction ContentTypeConfigDataStore($q, smbContentTypeConfigService, smbStatusConfigService, smbContentTypeTagTypeConfigDataStore) {\n\t\n\t\t\tvar _contentType;\n\t\t\tvar _newContentType = {\n\t\t\t\tFolderName: '',\n\t\t\t\tIconName: ''\n\t\t\t};\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeConfigDataStore.getContentType\n\t\t\t\t * @methodOf smb-app.smbContentTypeConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads the data store with a content type by id\n\t\t\t\t * \n\t\t\t\t * @param {String} groupId Id of the content type group the type belongs to\n\t\t\t\t * @param {String} id The content type id\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to the content type being loaded\n\t\t\t\t */\n\t\t\t\tgetContentType: getContentType,\n\t\t\t\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeConfigDataStore.saveContentType\n\t\t\t\t * @methodOf smb-app.smbContentTypeConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Saves changes to the current content type. Creates it if it is a new one and\n\t\t\t\t * updates it if it is an existing one.\n\t\t\t\t * \n\t\t\t\t * @param {String} groupId The id of the content type group it belongs to\n\t\t\t\t * @param {ContentType} contentType The content type object to save.\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to the saved content type\n\t\t\t\t */\n\t\t\t\tsaveContentType: saveContentType,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypeConfigDataStore.contentType\n\t\t\t\t * @propertyOf smb-app.smbContentTypeConfigDataStore\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Returns the current content type\n\t\t\t\t */\n\t\t\t\tget contentType() { return _contentType; }\n\t\t\t};\n\t\n\t\t\tfunction getContentType(groupId, id) {\n\t\t\t\tif (!id) {\n\t\t\t\t\t_contentType = angular.copy(_newContentType);\n\t\t\t\t\treturn $q.resolve(_contentType);\n\t\t\t\t}\n\t\n\t\t\t\treturn smbContentTypeConfigService.getContentType(groupId, id)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t_contentType = response;\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction saveContentType(groupId, contentType) {\n\t\t\t\tvar folder = null;\n\t\t\t\tif (contentType.FolderId) {\n\t\t\t\t\treturn smbContentTypeConfigService.updateContentType(groupId, contentType)\n\t\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\t\t_contentType = res;\n\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturn smbContentTypeConfigService.addContentType(groupId, contentType)\n\t\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\t\t_contentType = res;\n\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function loadStatuses() {\n\t\t\t\t\t\t\treturn smbStatusConfigService.getStatuses(groupId);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function mapStatuses(statuses) {\n\t\t\t\t\t\t\treturn smbContentTypeTagTypeConfigDataStore.setTagTypes(_contentType.FolderId, statuses);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeGroupConfigDataStore',\n\t\t\t[\n\t\t\t\t'$q',\n\t\t\t\t'smbUserGroupFilterService',\n\t\t\t\t'smbLibraryConfigService',\n\t\t\t\t'smbContentTypeGroupConfigService',\n\t\t\t\t'smbAclService',\n\t\t\t\t'smbContentTypeGroupTagTypeConfigService',\n\t\t\t\tContentTypeGroupDataStore\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeGroupConfigDataStore\n\t\t *\n\t\t * @description\n\t\t * A data store for managing local content type groups state for\n\t\t * the configuration section.\n\t\t */\n\t\tfunction ContentTypeGroupDataStore($q, smbUserGroupFilterService, smbLibraryConfigService, smbContentTypeGroupConfigService, smbAclService, smbContentTypeGroupTagTypeConfigService) {\n\t\t\tvar _contentTypeGroup = null;\n\t\t\tvar _contentTypeGroupDetails = null;\n\t\n\t\t\tvar _userGroupsWithViewRights = null;\n\t\t\tvar _userGroupsWithFullRights = null;\n\t\n\t\t\tvar _newContentTypeGroup = {\n\t\t\t\tContentTypeGroupName: '',\n\t\t\t\tIcon: ''\n\t\t\t};\n\t\n\t\t\t// Create the following Status related indexes when creating a Library and assign to itself\n\t\t\tvar _contentStatus = {\n\t\t\t\tTagTypeName: '&&_AirBase_Content_Status',\n\t\t\t\tDataType: 0\n\t\t\t};\n\t\n\t\t\tvar _todoStatus = {\n\t\t\t\tTagTypeName: '&&_AirBase_ToDo_Status',\n\t\t\t\tDataType: 0\n\t\t\t};\n\t\n\t\t\tvar _assignedUserId = {\n\t\t\t\tTagTypeName: '&&_AirBase_Assigned_UserId',\n\t\t\t\tDataType: 1\n\t\t\t};\n\t\n\t\t\tvar _assignedDate = {\n\t\t\t\tTagTypeName: '&&_AirBase_Assigned_Date',\n\t\t\t\tDataType: 2\n\t\t\t};\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypeGroupConfigDataStore#getContentTypeGroup\n\t\t\t\t * @propertyOf smb-app.smbContentTypeGroupConfigDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * The currently selected content type group.\n\t\t\t\t */\n\t\t\t\tgetContentTypeGroup: getContentTypeGroup,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupConfigDataStore#saveContentTypeGroup\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Add/Edit a content type group in the system.\n\t\t\t\t *\n\t\t\t\t * @param {Object} group An object that represents a new content type group\n\t\t\t\t * @param {String} group.id The id of the group being edited (only for edit)\n\t\t\t\t * @param {String} group.name The name of the new content type group\n\t\t\t\t * @param {String} group.icon The name of the selected icon for the new content type group\n\t\t\t\t */\n\t\t\t\tsaveContentTypeGroup: saveContentTypeGroup,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupConfigDataStore#assignUserGroupsToContentTypeGroup\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Assign User Groups to Content Type Group\n\t\t\t\t *\n\t\t\t\t * @param {Object} group An object that represents a new content type group\n\t\t\t\t * @param {String} group.id The id of the group being edited (only for edit)\n\t\t\t\t * @param {String} group.name The name of the new content type group\n\t\t\t\t * @param {String} group.icon The name of the selected icon for the new content type group\n\t\t\t\t */\n\t\t\t\tassignUserGroupsToContentTypeGroup: assignUserGroupsToContentTypeGroup,\n\t\n\t\t\t\tget contentTypeGroup() { return _contentTypeGroup; },\n\t\n\t\t\t\tget contentTypeGroupDetails() { return _contentTypeGroupDetails; },\n\t\n\t\t\t\tget userGroupsWithViewRights() { return smbUserGroupFilterService.getUserGroupsWithViewRights(); },\n\t\n\t\t\t\tget userGroupsWithFullRights() { return smbUserGroupFilterService.getUserGroupsWithFullRights(); },\n\t\n\t\t\t\tget userGroupsWithEditRights() { return smbUserGroupFilterService.getUserGroupsWithEditRights(); },\n\t\n\t\t\t\tsaveUserGroups: saveUserGroups\n\t\t\t};\n\t\n\t\t\tfunction getContentTypeGroup(contentTypeGroupId) {\n\t\t\t\tif (!contentTypeGroupId) {\n\t\t\t\t\t_contentTypeGroup = angular.copy(_newContentTypeGroup);\n\t\t\t\t\t_contentTypeGroupDetails = [];\n\t\n\t\t\t\t\tsmbUserGroupFilterService.filterUserGroups(_contentTypeGroupDetails);\n\t\n\t\t\t\t\treturn $q.resolve(_contentTypeGroup);\n\t\t\t\t}\n\t\t\t\treturn smbLibraryConfigService\n\t\t\t\t\t.getLibrary(contentTypeGroupId)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t_contentTypeGroup = response;\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (contentTypeGroup) {\n\t\t\t\t\t\treturn smbLibraryConfigService\n\t\t\t\t\t\t\t.getLibraryDetails(contentTypeGroup);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (details) {\n\t\t\t\t\t\t_contentTypeGroupDetails = details;\n\t\n\t\t\t\t\t\tsmbUserGroupFilterService.filterUserGroups(details);\n\t\n\t\t\t\t\t\treturn _contentTypeGroup;\n\t\t\t\t\t});\n\t\n\t\t\t}\n\t\n\t\t\tfunction saveContentTypeGroup(contentTypeGroup)\n\t\t\t{\n\t\t\t\tvar lib = null;\n\t\t\t\tif (contentTypeGroup.id) {\n\t\t\t\t\tlib = { LibraryId: contentTypeGroup.id, LibraryName: contentTypeGroup.name, IconId: contentTypeGroup.icon };\n\t\t\t\t\treturn smbContentTypeGroupConfigService.editContentTypeGroup(lib)\n\t\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t\t_contentTypeGroup = response;\n\t\t\t\t\t\t\treturn response;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlib = { LibraryName: contentTypeGroup.name, IconId: contentTypeGroup.icon };\n\t\t\t\t\treturn smbContentTypeGroupConfigService.createContentTypeGroup(lib)\n\t\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t\t_contentTypeGroup = response;\n\t\t\t\t\t\t\treturn response;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function createContentStatus() {\n\t\t\t\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.createTagType(_contentTypeGroup.LibraryId, _contentStatus);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function createToDoStatus() {\n\t\t\t\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.createTagType(_contentTypeGroup.LibraryId, _todoStatus);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function createAssignedUserId() {\n\t\t\t\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.createTagType(_contentTypeGroup.LibraryId, _assignedUserId);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function createAssignedDate() {\n\t\t\t\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.createTagType(_contentTypeGroup.LibraryId, _assignedDate);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction saveUserGroups(viewUserGroups, fullUserGroups, editUserGroups) {\n\t\t\t\tviewUserGroups = viewUserGroups.map(function(g) {\n\t\t\t\t\treturn smbAclService.createViewAccessRights(_contentTypeGroup.LibraryId, g);\n\t\t\t\t});\n\t\n\t\t\t\tfullUserGroups = fullUserGroups.map(function(g) {\n\t\t\t\t\treturn smbAclService.createFullAccessRights(_contentTypeGroup.LibraryId, g);\n\t\t\t\t});\n\t\n\t\t\t\teditUserGroups = editUserGroups.map(function(g) {\n\t\t\t\t\treturn smbAclService.createEditAccessRights(_contentTypeGroup.LibraryId, g);\n\t\t\t\t});\n\t\n\t\t\t\treturn smbAclService.saveDocumentGroupAcls(_contentTypeGroup.LibraryId, viewUserGroups.concat(fullUserGroups).concat(editUserGroups));\n\t\t\t}\n\t\n\t\t\tfunction assignUserGroupsToContentTypeGroup(acls)\n\t\t\t{\n\t\t\t\treturn smbLibraryConfigService.assignUserGroupsToLibrary(acls, _contentTypeGroup.LibraryId);\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeGroupTagTypesConfigDataStore', [\n\t\t\t\t'$q',\n\t\t\t\t'smbContentTypeGroupTagTypeConfigService',\n\t\t\t\t'smbIndexTypesDataTypes',\n\t\t\t\tContentTypeGroupTagTypesConfigDataStore\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeGroupTagTypesConfigDataStore\n\t\t *\n\t\t * @description\n\t\t * State management of tag types for content type group configuration.\n\t\t */\n\t\tfunction ContentTypeGroupTagTypesConfigDataStore($q, smbContentTypeGroupTagTypeConfigService, smbIndexTypesDataTypes) {\n\t\n\t\t\tvar _tagTypes;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypeGroupTagTypesConfigDataStore#tagTypes\n\t\t\t\t * @propertyOf smb-app.smbContentTypeGroupTagTypesConfigDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Get a colleciton of @see TagType objects that have previously been loaded.\n\t\t\t\t *\n\t\t\t\t * @returns {TagType[]} A collection of @see TagType objects\n\t\t\t\t */\n\t\t\t\tget tagTypes() { return _tagTypes; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupTagTypesConfigDataStore#getTagTypes\n\t\t\t\t * @propertyOf smb-app.smbContentTypeGroupTagTypesConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Load all tag types for a single content type group.\n\t\t\t\t *\n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection\n\t\t\t\t * of @see TagType objects.\n\t\t\t\t */\n\t\t\t\tgetTagTypes: getTagTypes,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupTagTypesConfigDataStore#addTagType\n\t\t\t\t * @propertyOf smb-app.smbContentTypeGroupTagTypesConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Create a new tag type and add it to the tagTypes property\n\t\t\t\t *\n\t\t\t\t * @returns {Deferred} A promise that resolves to the newly\n\t\t\t\t * created tag type.\n\t\t\t\t */\n\t\t\t\taddTagType: addTagType,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupTagTypesConfigDataStore#editTagType\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupTagTypesConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Saves changes to an existing @see TagType object.\n\t\t\t\t *\n\t\t\t\t * @param {ObjectId} groupId Id of the document type group that owns the tag type.\n\t\t\t\t * @param {TagType} tagType The tag type object to save.\n\t\t\t\t *\n\t\t\t\t * @returns {Promise} A promise that resolves to the saved tag type.\n\t\t\t\t */\n\t\t\t\teditTagType: editTagType\n\t\t\t};\n\t\n\t\t\tfunction getTagTypes(groupId) {\n\t\t\t\tif (!(typeof groupId === 'number' || typeof groupId === 'string') || groupId === '') {\n\t\t\t\t\t_tagTypes = [];\n\t\t\t\t\treturn $q.resolve(_tagTypes);\n\t\t\t\t}\n\t\n\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.getTagTypes(groupId)\n\t\t\t\t\t.then(function(tagTypes) {\n\t\t\t\t\t\t_tagTypes = tagTypes.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\treturn !(tagtype.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.map(function(tagType) {\n\t\t\t\t\t\t\tif (tagType.DataType === smbIndexTypesDataTypes.NUMERIC && tagType.Constraints && tagType.Constraints.DefaultValue) {\n\t\t\t\t\t\t\t\ttagType.Constraints.DefaultValue = tagType.Constraints.DefaultValue.indexOf('.') >= 0 ?\n\t\t\t\t\t\t\t\t\tparseFloat(tagType.Constraints.DefaultValue) : parseInt(tagType.Constraints.DefaultValue, 10);\n\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\treturn tagType;\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn tagTypes;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction editTagType(groupId, tagType) {\n\t\t\t\tif (typeof groupId !== 'number' && typeof groupId !== 'string') {\n\t\t\t\t\treturn $q.reject(new Error('Missing required group id'));\n\t\t\t\t} else if (!tagType) {\n\t\t\t\t\treturn $q.reject(new Error('Missing required tag type'));\n\t\t\t\t} else if (!tagType.TagTypeName) {\n\t\t\t\t\treturn $q.reject(new Error('The tag type must have a name'));\n\t\t\t\t} else if (!smbIndexTypesDataTypes[tagType.DataType]) {\n\t\t\t\t\treturn $q.reject(new Error('The tag type must have a data type'));\n\t\t\t\t} else if (!tagType.TagTypeId) {\n\t\t\t\t\treturn $q.reject(new Error('Missing required tag type id'));\n\t\t\t\t}\n\t\n\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.editTagType(groupId, tagType)\n\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\tif (!_tagTypes) {\n\t\t\t\t\t\t\t_tagTypes = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_tagTypes = _tagTypes.map(function(tt) { return tt.TagTypeId === tagType.TagTypeId ? data : tt; });\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction addTagType(groupId, tagType) {\n\t\t\t\tif (typeof groupId !== 'number' && typeof groupId !== 'string') {\n\t\t\t\t\treturn $q.reject(new Error('Missing required group id'));\n\t\t\t\t} else if (!tagType) {\n\t\t\t\t\treturn $q.reject(new Error('Missing required tag type'));\n\t\t\t\t} else if (!tagType.TagTypeName) {\n\t\t\t\t\treturn $q.reject(new Error('The tag type must have a name'));\n\t\t\t\t} else if (!smbIndexTypesDataTypes[tagType.DataType]) {\n\t\t\t\t\treturn $q.reject(new Error('The tag type must have a data type'));\n\t\t\t\t}\n\t\n\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.createTagType(groupId, tagType)\n\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\tif (!_tagTypes) {\n\t\t\t\t\t\t\t_tagTypes = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_tagTypes.push(data);\n\t\t\t\t\t\treturn data;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeGroupsConfigDataStore', ['$q', 'smbLibraryConfigService', ContentTypeGroupsConfigDataStore]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeGroupsConfigDataStore\n\t\t * \n\t\t * @description\n\t\t * A data store for managing local content type groups state for\n\t\t * the configuration section.\n\t\t */\n\t\tfunction ContentTypeGroupsConfigDataStore($q, smbLibraryConfigService) {\n\t\t\tvar _groups;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypeGroupsConfigDataStore#groups\n\t\t\t\t * @propertyOf smb-app.smbContentTypeGroupsConfigDataStore\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * An array of all content type groups in the system.\n\t\t\t\t */\n\t\t\t\tget groups() { return _groups; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupsConfigDataStore#loadGroups\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupsConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads all content type groups from the API.\n\t\t\t\t * \n\t\t\t\t * @returns {Promise} A promise that resolves to an array of all content type groups in the system.\n\t\t\t\t */\n\t\t\t\tloadGroups: loadGroups,\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbContentTypeGroupsConfigDataStore#deleteGroup\n\t\t\t\t* @methodOf smb-app.smbContentTypeGroupsConfigDataStore\n\t\t\t\t* @kind function\n\t\t\t\t* \n\t\t\t\t* @description\n\t\t\t\t* Deletes a content type group.\n\t\t\t\t* \n\t\t\t\t* @param {Number} groupId The document type group id.\n\t\t\t\t* @param {Boolean} purge Permanently deleted the document type group if true.\n\t\t\t\t* @returns {Promise} A promise that resolves if the delete was successful.\n\t\t\t\t*/\n\t\t\t\tdeleteGroup: deleteGroup\n\t\t\t};\n\t\n\t\t\tfunction loadGroups() {\n\t\t\t\treturn smbLibraryConfigService.getLibraries()\n\t\t\t\t\t.then(function (libraries) {\n\t\t\t\t\t\t_groups = libraries.map(function mapLibraryDetails(lib) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: lib.LibraryId,\n\t\t\t\t\t\t\t\tname: lib.LibraryName,\n\t\t\t\t\t\t\t\ticon: lib.IconName,\n\t\t\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t\t\tself: lib.Links.Self,\n\t\t\t\t\t\t\t\t\ticon: lib.Links.IconUri\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\treturn _groups;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction deleteGroup(groupId) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.resolve(new Error('No type ID provided.'));\n\t\t\t\t} else {\n\t\t\t\t\treturn smbLibraryConfigService\n\t\t\t\t\t\t.deleteLibrary(groupId)\n\t\t\t\t\t\t.then(function(){\n\t\t\t\t\t\t\t_groups = _groups.filter(function(library){\n\t\t\t\t\t\t\t\treturn library.id !== groupId;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeTagTypeConfigDataStore', [\n\t\t\t\t'$q',\n\t\t\t\t'smbContentTypeTagTypeConfigService',\n\t\t\t\t'smbIndexTypesDataTypes',\n\t\t\t\tContentTypeTagTypeConfigDataStore\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeTagTypeConfigDataStore\n\t\t *\n\t\t * @description\n\t\t * Manages state for index type configuration at the content type level\n\t\t */\n\t\tfunction ContentTypeTagTypeConfigDataStore($q, smbContentTypeTagTypeConfigService, smbIndexTypesDataTypes) {\n\t\n\t\t\tvar _tagTypes;\n\t\t\tvar _contentStatus;\n\t\t\tvar _todoStatus;\n\t\t\tvar _assignedUserId;\n\t\t\tvar _assignedDate;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypeTagTypeConfigDataStore#tagTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypeTagTypeConfigDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Holds the current collection of tag types for a single content type.\n\t\t\t\t *\n\t\t\t\t * @returns {TagType[]} A collection of @see TagType objects\n\t\t\t\t */\n\t\t\t\tget tagTypes() { return _tagTypes; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeTagTypeConfigDataStore#getTagTypes,\n\t\t\t\t * @methodOf smb-app.smbContentTypeTagTypeConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Gets the tag types for a content type and sets the tagTypes property\n\t\t\t\t *\n\t\t\t\t * @param {String|Number} id The content type id\n\t\t\t\t *\n\t\t\t\t * @returns {Promise} A promise that resolves to a collection of\n\t\t\t\t * @see TagType objects\n\t\t\t\t */\n\t\t\t\tgetTagTypes: getTagTypes,\n\t\n\t\t\t\tget contentStatus() { return _contentStatus; },\n\t\n\t\t\t\tget todoStatus() { return _todoStatus; },\n\t\n\t\t\t\tget assignedUserId() { return _assignedUserId; },\n\t\n\t\t\t\tget assignedDate() { return _assignedDate; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeTagTypeConfigDataStore#setTagTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypeTagTypeConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Sets the tag type associations for a content type. This function\n\t\t\t\t * will completely replace the current collection of tag types for a\n\t\t\t\t * content type.\n\t\t\t\t *\n\t\t\t\t * @param {String|Number} id The content type id\n\t\t\t\t * @param {TagType[]} tagTypes The tag types to associate the content type with\n\t\t\t\t *\n\t\t\t\t * @returns {Promise} A promise that resolves to the tag types given as an argument.\n\t\t\t\t */\n\t\t\t\tsetTagTypes: setTagTypes\n\t\t\t};\n\t\n\t\t\tfunction getTagTypes(id) {\n\t\t\t\tif (!(typeof id === 'number' || typeof id === 'string') || id === '') {\n\t\t\t\t\t_tagTypes = [];\n\t\t\t\t\treturn $q.resolve(_tagTypes);\n\t\t\t\t}\n\t\n\t\t\t\treturn smbContentTypeTagTypeConfigService.getTagTypes(id)\n\t\t\t\t\t.then(function(tt) {\n\t\t\t\t\t\t_tagTypes = tt.map(function(tagType) {\n\t\t\t\t\t\t\tif (tagType.DataType === smbIndexTypesDataTypes.NUMERIC && tagType.Constraints && tagType.Constraints.DefaultValue) {\n\t\t\t\t\t\t\t\ttagType.Constraints.DefaultValue = tagType.Constraints.DefaultValue.indexOf('.') >= 0 ?\n\t\t\t\t\t\t\t\t\tparseFloat(tagType.Constraints.DefaultValue) : parseInt(tagType.Constraints.DefaultValue, 10);\n\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\treturn tagType;\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t_contentStatus = _tagTypes.filter(function(tt) {\n\t\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t\t\t});\n\t\t\t\t\t\t_todoStatus = _tagTypes.filter(function(tt) {\n\t\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t\t\t});\n\t\t\t\t\t\t_assignedUserId = _tagTypes.filter(function(tt) {\n\t\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t\t\t});\n\t\t\t\t\t\t_assignedDate = _tagTypes.filter(function(tt) {\n\t\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn _tagTypes;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction setTagTypes(id, tagTypes) {\n\t\t\t\tif (!(typeof id === 'number' || typeof id === 'string')) {\n\t\t\t\t\treturn $q.reject(new Error('Missing required document type id'));\n\t\t\t\t} else if (!tagTypes) {\n\t\t\t\t\treturn $q.reject(new Error('Missing required tag types'));\n\t\t\t\t}\n\t\n\t\t\t\tvar associations = tagTypes.map(function(tt) { return {TagTypeId: tt.TagTypeId, Constraints: tt.Constraints}; });\n\t\t\t\treturn smbContentTypeTagTypeConfigService.setTagTypes(id, associations)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t_tagTypes = tagTypes;\n\t\t\t\t\t\treturn _tagTypes;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbStatusConfigDataStore', [\n\t\t\t\t'$q', \n\t\t\t\t'smbStatusConfigService', \n\t\t\t\tStatusConfigDataStore\n\t\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbStatusConfigDataStore\n\t\t * \n\t\t * @description\n\t\t * Data store that manages state for the content type configuration section.\n\t\t */\n\t\tfunction StatusConfigDataStore($q, smbStatusConfigService) {\n\t\n\t\t\tvar _contentStatus;\n\t\t\tvar _todoStatus;\n\t\t\tvar _assignedUserId;\n\t\t\tvar _assignedDate;\n\t\n\t\t\tvar _contentStatusValues = [];\n\t\t\tvar _todoStatusValues = [];\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbStatusConfigDataStore.getContentStatuses\n\t\t\t\t * @methodOf smb-app.smbStatusConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads the data store with a content type by id\n\t\t\t\t * \n\t\t\t\t * @param {String} groupId Id of the content type group the type belongs to\n\t\t\t\t * @param {String} id The content type id\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to the content type being loaded\n\t\t\t\t */\n\t\t\t\tget contentStatus() { return _contentStatus; },\n\t\n\t\t\t\tget todoStatus() { return _todoStatus; },\n\t\n\t\t\t\tget contentStatusValues() { return _contentStatusValues; },\n\t\n\t\t\t\tget todoStatusValues() { return _todoStatusValues; },\n\t\n\t\t\t\tget assignedUserId() { return _assignedUserId; },\n\t\n\t\t\t\tget assignedDate() { return _assignedDate; },\n\t\n\t\t\t\tloadStatuses: loadStatuses,\n\t\n\t\t\t\t// loadStatusValues: loadStatusValues,\n\t\t\t\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbStatusConfigDataStore.saveContentStatuses\n\t\t\t\t * @methodOf smb-app.smbStatusConfigDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Saves changes to the current content type. Creates it if it is a new one and\n\t\t\t\t * updates it if it is an existing one.\n\t\t\t\t * \n\t\t\t\t * @param {String} groupId The id of the content type group it belongs to\n\t\t\t\t * @param {ContentType} contentType The content type object to save.\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to the saved content type\n\t\t\t\t */\n\t\n\t\t\t\tsaveStatuses: saveStatuses\n\t\t\t};\n\t\n\t\t\tfunction loadStatuses(groupId) {\n\t\t\t\treturn smbStatusConfigService.getStatuses(groupId)\n\t\t\t\t.then(function mapStatuses(statuses) {\n\t\t\t\t\t_contentStatus = statuses.filter(function filterCStatuses(s) {\n\t\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t\t});\n\t\t\t\t\t_todoStatus = statuses.filter(function filterTStatuses(s) {\n\t\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t\t});\n\t\t\t\t\t_assignedUserId = statuses.filter(function filterCStatuses(s) {\n\t\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t\t});\n\t\t\t\t\t_assignedDate = statuses.filter(function filterTStatuses(s) {\n\t\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t\t});\n\t\t\t\t\treturn statuses;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\t// function loadStatusValues(folderId, contentStatus, todoStatus) {\n\t\t\t// \treturn smbStatusConfigService.getStatusValues(folderId, contentStatus.TagTypeId)\n\t\t\t// \t\t\t.then(function setContentStatusValues(response) {\n\t\t\t// \t\t\t\t_contentStatusValues = response.data;\n\t\t\t// \t\t\t\treturn response.data;\n\t\t\t// \t\t\t})\n\t\t\t// \t\t\t.then(function loadToDoStatusValues() {\n\t\t\t// \t\t\t\treturn smbStatusConfigService.getStatusValues(folderId, todoStatus.TagTypeId);\n\t\t\t// \t\t\t})\n\t\t\t// \t\t\t.then(function setToDoStatusValues(response) {\n\t\t\t// \t\t\t\t_todoStatusValues = response.data;\n\t\t\t// \t\t\t\treturn response.data;\n\t\t\t// \t\t\t});\n\t\t\t// }\n\t\n\t\t\tfunction saveStatuses(folderId, contentStatus, todoStatus) {\n\t\t\t\treturn smbStatusConfigService.setStatuses(folderId, contentStatus.TagTypeId, contentStatus.Constraints)\n\t\t\t\t\t.then(function saveToDoStatuses() {\n\t\t\t\t\t\treturn smbStatusConfigService.setStatuses(folderId, todoStatus.TagTypeId, todoStatus.Constraints);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentSearchDataStore', ['$q', 'smbContentSearchService', ContentSearchDataStore]);\n\t\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypesDataStore\n\t\t * \n\t\t * @description\n\t\t * Manages the state for the content types configuration.\n\t\t */\n\t\tfunction ContentSearchDataStore($q, smbContentSearchService) {\n\t\t\tvar _groupId;\n\t\t\tvar _typeId;\n\t\t\tvar _tagValues = [];\n\t\n\t\t\tvar _documents = null;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypesDataStore.contentTypes\n\t\t\t\t * @propertyOf smb-app.smbContentTypesDataStore\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * All content types that belong to the current content type group.\n\t\t\t\t */\n\t\t\t\tget documents() {\n\t\t\t\t\treturn _documents;\n\t\t\t\t},\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypesDataStore.getDocuments\n\t\t\t\t * @methodOf smb-app.smbContentTypesDataStore\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads and returns all content types for a specific content type group by group id.\n\t\t\t\t * \n\t\t\t\t * @param {Number} groupId The content type group id\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of content types.\n\t\t\t\t */\n\t\t\t\tgetDocuments: getDocuments,\n\t\n\t\t\t\tgetContentTypeGroupSearchResults: getContentTypeGroupSearchResults,\n\t\t\t\t\n\t\t\t\tsetTagValues: setTagValues\n\t\t\t};\t\n\t\n\t\t\tfunction getDocuments(groupId, typeId) {\n\t\t\t\treturn smbContentSearchService.getDocuments(groupId, typeId, _tagValues)\n\t\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t\t_documents = types.map(function(doc) {\n\t\t\t\t\t\t\t\tvar d;\n\t\t\t\t\t\t\t\td = doc;\n\t\t\t\t\t\t\t\tvar index = doc.DocumentAutoName ? doc.DocumentAutoName.indexOf('&&_AirBase_') : -1;\n\t\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\t\td.DocumentAutoName = doc.DocumentAutoName.substring(0, index > 0 ? index - 5 : 0);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvar contentStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_Content_Status/));\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tvar todoStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_ToDo_Status/));\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (contentStatus != null && contentStatus.length > 0 && contentStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\t\t\td.Status = contentStatus[0].Tags[0];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (todoStatus != null && todoStatus.length > 0 && todoStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\t\t\td.Status = todoStatus[0].Tags[0];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\td.Status = '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn types;\n\t\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getContentTypeGroupSearchResults(groupId) {\n\t\t\t\treturn smbContentSearchService.getContentTypeGroupSearchResults(groupId, _tagValues)\n\t\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t\t_documents = types.map(function(doc) {\n\t\t\t\t\t\t\t\tvar d;\n\t\t\t\t\t\t\t\td = doc;\n\t\t\t\t\t\t\t\tvar index = doc.DocumentAutoName ? doc.DocumentAutoName.indexOf('&&_AirBase_') : -1;\n\t\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\t\td.DocumentAutoName = doc.DocumentAutoName.substring(0, index > 0 ? index - 5 : 0);\n\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tvar contentStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_Content_Status/));\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tvar todoStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_ToDo_Status/));\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (contentStatus != null && contentStatus.length > 0 && contentStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\t\t\td.Status = contentStatus[0].Tags[0];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (todoStatus != null && todoStatus.length > 0 && todoStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\t\t\td.Status = todoStatus[0].Tags[0];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\td.Status = '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn types;\n\t\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction setTagValues(tagValues) {\n\t\t\t\t_tagValues = tagValues\n\t\t\t\t.filter(function filterTags(t) {\n\t\t\t\t\t\tif (t.indexValue) {\n\t\t\t\t\t\t\treturn t;\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.map(function mapSearchTags(tag) {\n\t\t\t\t\tvar mappedTag = {};\n\t\t\t\t\tmappedTag.TagTypeId = tag.TagTypeId;\n\t\t\t\t\tif (tag.DataTypeName === 'Date')\n\t\t\t\t\t{\n\t\t\t\t\t\tvar date = tag.indexValue;\n\t\n\t\t\t\t\t\tvar mm = date.getMonth() + 1;\n\t\t\t\t\t\tif (mm < 10)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmm = '0' + mm;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar dd = date.getDate();\n\t\t\t\t\t\tif (dd < 10)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdd = '0' + dd;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tmappedTag.Value = [mm, dd, date.getFullYear()].join('');\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tmappedTag.Value = tag.indexValue;\n\t\t\t\t\t}\n\t\t\t\t\treturn mappedTag;\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t}\n\t}());\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeGroupsDataStore', ['$q', 'smbContentTypeGroupsService', contentTypeGroupsDataStore]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeGroupsDataStore\n\t\t * \n\t\t * @description\n\t\t * A data store for managing local content type groups state for\n\t\t * the configuration section.\n\t\t */\n\t\tfunction contentTypeGroupsDataStore($q, smbContentTypeGroupsService) {\n\t\t\tvar _allGroups;\n\t\t\tvar _fullAccessGroups;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypeGroupsDataStore#groups\n\t\t\t\t * @propertyOf smb-app.smbContentTypeGroupsDataStore\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * An array of all content type groups in the system.\n\t\t\t\t */\n\t\t\t\tget allGroups() { return _allGroups; },\n\t\n\t\t\t\tget fullAccessGroups() { return _fullAccessGroups; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupsDataStore#loadGroups\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupsDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads all content type groups from the API.\n\t\t\t\t * \n\t\t\t\t * @returns {Promise} A promise that resolves to an array of all content type groups in the system.\n\t\t\t\t */\n\t\t\t\tloadAllGroups: loadAllGroups,\n\t\n\t\t\t\tloadFullAccessGroups: loadFullAccessGroups\n\t\t\t};\n\t\n\t\t\tfunction loadAllGroups() {\n\t\t\t\treturn smbContentTypeGroupsService.getAllContentTypeGroups()\n\t\t\t\t\t.then(function (groups) {\n\t\t\t\t\t\treturn groups.map(function mapLibraryDetails(lib) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: lib.LibraryId,\n\t\t\t\t\t\t\t\tname: lib.LibraryName,\n\t\t\t\t\t\t\t\ticon: lib.IconName,\n\t\t\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t\t\tself: lib.Links.Self,\n\t\t\t\t\t\t\t\t\ticon: lib.Links.IconUri\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (groups) {\n\t\t\t\t\t\t_allGroups = groups;\n\t\t\t\t\t\treturn groups;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction loadFullAccessGroups() {\n\t\t\t\treturn smbContentTypeGroupsService.getFullAccessContentTypeGroups()\n\t\t\t\t\t.then(function (groups) {\n\t\t\t\t\t\treturn groups.map(function mapLibraryDetails(lib) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: lib.LibraryId,\n\t\t\t\t\t\t\t\tname: lib.LibraryName,\n\t\t\t\t\t\t\t\ticon: lib.IconName,\n\t\t\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t\t\tself: lib.Links.Self,\n\t\t\t\t\t\t\t\t\ticon: lib.Links.IconUri\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (groups) {\n\t\t\t\t\t\t_fullAccessGroups = groups;\n\t\t\t\t\t\treturn groups;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeGroupsSearchDataStore', ['$q', 'smbContentTypeGroupsSearchService', contentTypeGroupsSearchDataStore]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeGroupsDataStore\n\t\t * \n\t\t * @description\n\t\t * A data store for managing local content type groups state for\n\t\t * the configuration section.\n\t\t */\n\t\tfunction contentTypeGroupsSearchDataStore($q, smbContentTypeGroupsSearchService) {\n\t\t\tvar _allGroups;\n\t\t\tvar _fullAccessGroups;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypeGroupsDataStore#groups\n\t\t\t\t * @propertyOf smb-app.smbContentTypeGroupsDataStore\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * An array of all content type groups in the system.\n\t\t\t\t */\n\t\t\t\tget allGroups() { return _allGroups; },\n\t\n\t\t\t\tget fullAccessGroups() { return _fullAccessGroups; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupsDataStore#loadGroups\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupsDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads all content type groups from the API.\n\t\t\t\t * \n\t\t\t\t * @returns {Promise} A promise that resolves to an array of all content type groups in the system.\n\t\t\t\t */\n\t\t\t\tloadAllGroups: loadAllGroups,\n\t\n\t\t\t\tloadFullAccessGroups: loadFullAccessGroups\n\t\t\t};\n\t\n\t\t\tfunction loadAllGroups() {\n\t\t\t\treturn smbContentTypeGroupsSearchService.getAllContentTypeGroups()\n\t\t\t\t\t.then(function (groups) {\n\t\t\t\t\t\treturn groups.map(function mapLibraryDetails(lib) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: lib.LibraryId,\n\t\t\t\t\t\t\t\tname: lib.LibraryName,\n\t\t\t\t\t\t\t\ticon: lib.IconName,\n\t\t\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t\t\tself: lib.Links.Self,\n\t\t\t\t\t\t\t\t\ticon: lib.Links.IconUri\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (groups) {\n\t\t\t\t\t\t_allGroups = groups;\n\t\t\t\t\t\treturn groups;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction loadFullAccessGroups() {\n\t\t\t\treturn smbContentTypeGroupsSearchService.getFullAccessContentTypeGroups()\n\t\t\t\t\t.then(function (groups) {\n\t\t\t\t\t\treturn groups.map(function mapLibraryDetails(lib) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: lib.LibraryId,\n\t\t\t\t\t\t\t\tname: lib.LibraryName,\n\t\t\t\t\t\t\t\ticon: lib.IconName,\n\t\t\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t\t\tself: lib.Links.Self,\n\t\t\t\t\t\t\t\t\ticon: lib.Links.IconUri\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (groups) {\n\t\t\t\t\t\t_fullAccessGroups = groups;\n\t\t\t\t\t\treturn groups;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypesDataStore', ['$q', 'smbContentTypesService', ContentTypesDataStore]);\n\t\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypesDataStore\n\t\t * \n\t\t * @description\n\t\t * Manages the state for the content types configuration.\n\t\t */\n\t\tfunction ContentTypesDataStore($q, smbContentTypesService) {\n\t\t\tvar _groupId;\n\t\t\tvar _contentTypes;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypesDataStore.contentTypes\n\t\t\t\t * @propertyOf smb-app.smbContentTypesDataStore\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * All content types that belong to the current content type group.\n\t\t\t\t */\n\t\t\t\tget contentTypes() {\n\t\t\t\t\treturn _contentTypes;\n\t\t\t\t},\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypesDataStore.getContentTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypesDataStore\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads and returns all content types for a specific content type group by group id.\n\t\t\t\t * \n\t\t\t\t * @param {Number} groupId The content type group id\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of content types.\n\t\t\t\t */\n\t\t\t\tgetContentTypes: getContentTypes,\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypesDataStore.deleteContentType\n\t\t\t\t * @methodOf smb-app.smbContentTypesDataStore\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Deletes a document type with the specified ID.\n\t\t\t\t * \n\t\t\t\t * @param {Number} typeId The document type id\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that will resolve if the deletion was successful.\n\t\t\t\t */\n\t\t\t\tdeleteContentType: deleteContentType\n\t\t\t};\t\n\t\n\t\t\tfunction getContentTypes(groupId) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.resolve(_contentTypes);\n\t\t\t\t} else {\n\t\t\t\t\treturn smbContentTypesService.getContentTypes(groupId)\n\t\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t\t_contentTypes = types;\n\t\t\t\t\t\t\t_groupId = groupId;\n\t\t\t\t\t\t\treturn types;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction deleteContentType(typeId, purge){\n\t\t\t\tif (!typeId) {\n\t\t\t\t\treturn $q.resolve(new Error('No type ID provided.'));\n\t\t\t\t} else {\n\t\t\t\t\treturn smbContentTypesService\n\t\t\t\t\t\t.deleteContentType(typeId, purge)\n\t\t\t\t\t\t.then(function(){\n\t\t\t\t\t\t\t_contentTypes = _contentTypes.filter(function(contentType){\n\t\t\t\t\t\t\t\treturn contentType.FolderId !== typeId;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypesSearchDataStore', ['$q', 'smbContentTypesSearchService', ContentTypesSearchDataStore]);\n\t\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypesDataStore\n\t\t * \n\t\t * @description\n\t\t * Manages the state for the content types configuration.\n\t\t */\n\t\tfunction ContentTypesSearchDataStore($q, smbContentTypesSearchService) {\n\t\t\tvar _groupId;\n\t\t\tvar _contentTypes;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypesDataStore.contentTypes\n\t\t\t\t * @propertyOf smb-app.smbContentTypesDataStore\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * All content types that belong to the current content type group.\n\t\t\t\t */\n\t\t\t\tget contentTypes() {\n\t\t\t\t\treturn _contentTypes;\n\t\t\t\t},\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypesDataStore.getContentTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypesDataStore\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads and returns all content types for a specific content type group by group id.\n\t\t\t\t * \n\t\t\t\t * @param {Number} groupId The content type group id\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of content types.\n\t\t\t\t */\n\t\t\t\tgetContentTypes: getContentTypes\n\t\t\t};\t\n\t\n\t\t\tfunction getContentTypes(groupId) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.resolve(_contentTypes);\n\t\t\t\t} else {\n\t\t\t\t\treturn smbContentTypesSearchService.getContentTypes(groupId)\n\t\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t\t_contentTypes = types;\n\t\t\t\t\t\t\t_groupId = groupId;\n\t\t\t\t\t\t\treturn types;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t}\n\t}());\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentUploadDataStore', ['$http', '$q', 'gettextCatalog', 'sbToastService', 'smbContentUploadService', ContentUploadDataStore]);\n\t\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentUploadDataStore\n\t\t * \n\t\t * @description\n\t\t * Manages the state for the content types configuration.\n\t\t */\n\t\tfunction ContentUploadDataStore($http, $q, gettextCatalog, sbToastService, smbContentUploadService) {\n\t\t\tvar _uploadedDocument = null;\n\t\t\tvar _uploadHandlers = [];\n\t\n\t\t\treturn {\n\t\n\t\t\t\tget uploadedDocument() {\n\t\t\t\t\treturn _uploadedDocument;\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tuploadDocument: uploadDocument,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentUploadDataStore#onUploadSuccess\n\t\t\t\t * @methodOf smb-app.smbContentUploadDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Add a function that gets called when a file is successfully uploaded.\n\t\t\t\t * \n\t\t\t\t * @param {Function} handler The function to be called when a file is uploaded\n\t\t\t\t * @returns {Function} A function that can be called to remove your handler.\n\t\t\t\t * \n\t\t\t\t * @example\n\t\t\t\t * function SomeController($scope, smbContentUploadDataStore) {\n\t\t\t\t * var removeHandler = smbContentUploadDataStore.onUploadSuccess(function() {\n\t\t\t\t * console.log('uploaded a new file');\n\t\t\t\t * });\n\t\t\t\t * \t\t $scope.$on('$destroy', function() {\n\t\t\t\t * removeHandler();\n\t\t\t\t * });\n\t\t\t\t * }\n\t\t\t\t */\n\t\t\t\tonUploadSuccess: onUploadSuccess,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentUploadDataStore#uploadRevision\n\t\t\t\t * @methodOf smb-app.smbContentUploadDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Upload a file as a new revision for an existing document\n\t\t\t\t * \n\t\t\t\t * @param {Number} documentId Id of the document that gets the new revision\n\t\t\t\t * @param {Object} file Browser file object for the file to upload.\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise\n\t\t\t\t */\n\t\t\t\tuploadRevision: uploadRevision,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentUploadDataStore#promoteRevision\n\t\t\t\t * @methodOf smb-app.smbContentUploadDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Promote a document revision to the current revsion\n\t\t\t\t * This will be treated as an uploaded file, therefore the upload handlers will be executed on success.\n\t\t\t\t * \n\t\t\t\t * @param {Object} revision The revision object to promote\n\t\t\t\t * @returns {Deferred} A promise that resolves to the document that was saved as the current revision.\n\t\t\t\t */\n\t\t\t\tpromoteRevision: promoteRevision\n\t\t\t};\n\t\n\t\t\tfunction onUploadSuccess(handler) {\n\t\t\t\tif (typeof handler !== 'function') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\t_uploadHandlers.push(handler);\n\t\t\t\treturn function() {\n\t\t\t\t\tvar i = _uploadHandlers.indexOf(handler);\n\t\t\t\t\t_uploadHandlers.splice(i, 1);\n\t\t\t\t};\n\t\t\t}\n\t\n\t\t\tfunction uploadRevision(documentId, file) {\n\t\t\t\treturn smbContentUploadService.uploadRevision(documentId, file)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\t_uploadedDocument = res;\n\t\t\t\t\t\t_uploadHandlers.forEach(function(handler) { handler(_uploadedDocument); });\n\t\t\t\t\t\treturn _uploadedDocument;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction uploadDocument(folderId, file) {\n\t\t\t\treturn smbContentUploadService.uploadFile(folderId, file)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\t_uploadedDocument = response;\n\t\t\t\t\t_uploadHandlers.forEach(function(handler) { handler(_uploadedDocument); });\n\t\t\t\t\treturn _uploadedDocument;\n\t\t\t\t})\n\t\t\t\t.catch(function(err) {\n\t\t\t\t\tsbToastService.showSimple(err.data.Message);\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction promoteRevision(document) {\n\t\t\t\treturn $http.post(document.Links.PromoteUri)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\t_uploadedDocument = response;\n\t\t\t\t\t\t_uploadHandlers.forEach(function(handler) { handler(_uploadedDocument); });\n\t\t\t\t\t\treturn _uploadedDocument;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbDeletedItemsDataStore', [\n\t\t\t\t'$q',\n\t\t\t\t'smbDeletedItemsService',\n\t\t\t\tDeletedItemsDataStore\n\t\t\t]);\n\t\n\t\tfunction DeletedItemsDataStore($q, smbDeletedItemsService){\n\t\t\tvar _adminTrash;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentDataStore#load\n\t\t\t\t * @methodOf smb-app.smbDeletedItemsDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Loads the trash for the AirBase deployment.\n\t\t\t\t *\n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to an object containing admin trash.\n\t\t\t\t */\n\t\t\t\tload: load,\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentDataStore#purge\n\t\t\t\t * @methodOf smb-app.smbDeletedItemsDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Permanently deleted the provided item.\n\t\t\t\t *\n\t\t\t\t * @param {object} purgeddItem The trash item to permanently delete.\n\t\t\t\t * @returns {Deferred} Returns a promise that resolves if the deletio nwas successful\n\t\t\t\t */\n\t\t\t\tpurge: purge,\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentDataStore#purgeAll\n\t\t\t\t * @methodOf smb-app.smbDeletedItemsDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Permanently deleteds all admin trash items in the datastore.\n\t\t\t\t *\n\t\t\t\t * @returns {Deferred} Returns a promise that resolves if all individual purges succeeded.\n\t\t\t\t */\n\t\t\t\tpurgeAll: purgeAll,\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentDataStore#restore\n\t\t\t\t * @methodOf smb-app.smbDeletedItemsDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Restores the provided item from the trash.\n\t\t\t\t *\n\t\t\t\t * @param {object} restoredItem The trash item to restore.\n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to a server representation of the restored item.\n\t\t\t\t */\n\t\t\t\trestore: restore,\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentDataStore#adminTrash\n\t\t\t\t * @propertyOf smb-app.smbDocumentDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Gets the administratively viewable trash for the deployment.\n\t\t\t\t *\n\t\t\t\t * @returns {array} Returns a list of deleted admins from the deployment.\n\t\t\t\t */\n\t\t\t\tget adminTrash() { return _adminTrash; }\n\t\t\t};\n\t\n\t\t\tfunction load() {\n\t\t\t\treturn smbDeletedItemsService\n\t\t\t\t\t.getAdminTrash()\n\t\t\t\t\t.then(function(trash){\n\t\t\t\t\t\t_adminTrash = trash.map(function(t){\n\t\t\t\t\t\t\treturn new DeletedItem(t);\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\treturn _adminTrash;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction purge(purgedItem) {\n\t\t\t\tvar embedded = purgedItem.__data.Embedded;\n\t\t\t\treturn smbDeletedItemsService\n\t\t\t\t\t.purge(embedded.Document || embedded.Folder)\n\t\t\t\t\t.then(function(item){\n\t\t\t\t\t\t_adminTrash = _adminTrash.filter(function(t){\n\t\t\t\t\t\t\treturn t.id !== purgedItem.id;\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\treturn purgedItem;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction restore(restoredItem) {\n\t\t\t\treturn smbDeletedItemsService\n\t\t\t\t\t.restore(restoredItem.__data)\n\t\t\t\t\t.then(function(item){\n\t\t\t\t\t\t_adminTrash = _adminTrash.filter(function(t){\n\t\t\t\t\t\t\treturn t.id !== restoredItem.id;\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction purgeAll() {\n\t\t\t\tvar purgePromises = _adminTrash.map(function(t){\n\t\t\t\t\tvar embedded = t.__data.Embedded;\n\t\t\t\t\treturn smbDeletedItemsService.purge(embedded.Document || embedded.Folder);\n\t\t\t\t});\n\t\n\t\t\t\treturn $q.all(purgePromises)\n\t\t\t\t\t.then(function(){\n\t\t\t\t\t\t_adminTrash = [];\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\n\t\tfunction DeletedItem(trash) {\n\t\t\tvar isDoc = !!trash.Embedded.Document;\n\t\t\tthis.id = isDoc ? trash.Embedded.Document.DocumentId : trash.Embedded.Folder.FolderId;\n\t\n\t\t\t// differentiate folders and documents with shared IDs in the client\n\t\t\tthis.id += ('-' + Date.now());\n\t\n\t\t\tthis.name = getItemName(isDoc, trash);\n\t\t\tthis.icon = {\n\t\t\t\turi : isDoc ? trash.Links.FolderIconUri : trash.Embedded.Folder.Links.IconUri,\n\t\t\t\tname : isDoc ? '' : trash.Embedded.Folder.IconName\n\t\t\t};\n\t\t\tthis.deleted = trash.DateDeleted;\n\t\t\tthis.deletedBy = trash.DeletedByUserName;\n\t\t\tthis.__data = trash;\n\t\t}\n\t\n\t\t/**\n\t\t * @private\n\t\t * @description\n\t\t * Helper function that returns the correct name to use based on the item type.\n\t\t *\n\t\t * @param {boolean} isDoc Set to true if the item is a document and false if it is not.\n\t\t * @param {Object} item The item to get the name from.\n\t\t * @returns {string} Returns a string that can be used as the items display name in the trash.\n\t\t */\n\t\tfunction getItemName(isDoc, item) {\n\t\t\tif (!isDoc) {\n\t\t\t\treturn item.ItemName;\n\t\t\t}\n\t\n\t\t\t// Truncate any status value from the auto name\n\t\t\t// Statuses are set as tag types that have the prefix &&_AirBase,\n\t\t\t// so find the first instance of this and remove everything after it.\n\t\t\t// We substract 5 from the index so as to remove any trailing pipes as well.\n\t\t\t// This may be unneccessary as well, it looks like status value are not being\n\t\t\t// added to the auto name anymore, this just needs to be confirmed.\n\t\t\tvar name = item.Embedded.Document.DocumentAutoName;\n\t\t\tif (name === null) {\n\t\t\t\t// If there is no autoname, the value will be null,\n\t\t\t\t// so set it to an empty string, so there are no null reference errors.\n\t\t\t\tname = '';\n\t\t\t}\n\t\t\tvar index = name.indexOf('&&_AirBase_');\n\t\t\tif (index >= 0) {\n\t\t\t\tname = name.substring(0, index > 0 ? index - 5 : 0);\n\t\t\t}\n\t\n\t\t\treturn name;\n\t\t}\n\t})();\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbDocumentDataStore', [\n\t\t\t\t'$q',\n\t\t\t\t'sbDocumentService',\n\t\t\t\t'smbAclService',\n\t\t\t\t'SMB_RIGHTS',\n\t\t\t\t'SMB_RIGHTS_TYPE',\n\t\t\t\tDocumentDataStore\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbDocumentDataStore\n\t\t *\n\t\t * @description\n\t\t * A datastore that manages the state of a document and its content.\n\t\t */\n\t\tfunction DocumentDataStore($q, sbDocumentService, smbAclService, SMB_RIGHTS, SMB_RIGHTS_TYPE) {\n\t\n\t\t\tvar _document = null;\n\t\t\tvar _pageCount = null;\n\t\t\tvar _pages = [];\n\t\t\tvar _acl = null;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentDataStore#loadDocument\n\t\t\t\t * @methodOf smb-app.smbDocumentDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Loads a document by id\n\t\t\t\t *\n\t\t\t\t * @param {String} documentId The document id\n\t\t\t\t *\n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to an object that represents a document.\n\t\t\t\t */\n\t\t\t\tloadDocument: loadDocument,\n\t\n\t\t\t\tloadUserPermissions: loadUserPermissions,\n\t\t\t\tdelete: deleteDocument,\n\t\n\t\t\t\tget document() { return _document; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentDataStore#pageCount\n\t\t\t\t * @propertyOf smb-app.smbDocumentDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Gets the number of pages in the document\n\t\t\t\t *\n\t\t\t\t * @returns {number} Returns the number of pages in the selected document.\n\t\t\t\t */\n\t\t\t\tget pageCount() { return _pageCount; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentDataStore#pages\n\t\t\t\t * @propertyOf smb-app.smbDocumentDataStore\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Gets the document pages\n\t\t\t\t *\n\t\t\t\t * @returns\n\t\t\t\t * Returns an array of object that represent the document pages\n\t\t\t\t */\n\t\t\t\tget pages() { return _pages; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentDataStore#pageUrls\n\t\t\t\t * @propertyOf smb-app.smbDocumentDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Get an array of urls that can be used to retrieve the individual\n\t\t\t\t * pages of a document.\n\t\t\t\t *\n\t\t\t\t * @returns {String[]} An array of urls as strings.\n\t\t\t\t */\n\t\t\t\tget pageUrls() {\n\t\t\t\t\t// pxScrollViewer will not retrieve an updated page if the url has not changed\n\t\t\t\t\t// which it doesn't in our case\n\t\t\t\t\tvar cacheBust = new Date().getTime();\n\t\t\t\t\treturn _pages.map(function(p) { return p.Url + '&airbase_cache_bust=' + cacheBust; });\n\t\t\t\t},\n\t\n\t\t\t\tget acl() { return _acl; },\n\t\n\t\t\t\tget canEditFields() { return this.canEditStatus; },\n\t\n\t\t\t\tget canEditStatus() { return !!_acl && (_acl.hasAdminAccess() || _acl.hasAllPermissions(SMB_RIGHTS[SMB_RIGHTS_TYPE.editRights].param)); },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentDataStore#hasFullRights\n\t\t\t\t * @propertyOf smb-app.smbDocumentDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Returns true if the current user has full rights to the current document.\n\t\t\t\t */\n\t\t\t\tget hasFullRights() { return !!_acl && (_acl.hasAdminAccess() || _acl.hasFullAccess()); }\n\t\t\t};\n\t\n\t\t\tfunction loadDocument(documentId) {\n\t\t\t\treturn sbDocumentService\n\t\t\t\t\t.getDocument(documentId)\n\t\t\t\t\t.then(function (docView) {\n\t\t\t\t\t\t_document = docView;\n\t\t\t\t\t\t_pageCount = docView.PageCount;\n\t\n\t\t\t\t\t\t_pages = [];\n\t\t\t\t\t\tfor (var i = 1; i <= docView.PageCount; i++) {\n\t\t\t\t\t\t\t_pages.push({\n\t\t\t\t\t\t\t\tId: i,\n\t\t\t\t\t\t\t\tUrl: docView.PageTemplate.replace(docView.PageTemplateParam, i)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn _document;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction loadUserPermissions(documentGroupId) {\n\t\t\t\treturn smbAclService.getUserPermissionsForDocumentGroup(documentGroupId)\n\t\t\t\t\t.then(function(acl) {\n\t\t\t\t\t\t_acl = acl;\n\t\t\t\t\t\treturn _acl;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction deleteDocument(purge){\n\t\t\t\tif(!_document) {\n\t\t\t\t\treturn $q.reject(new Error('No document loaded.'));\n\t\t\t\t} \n\t\t\t\t\n\t\t\t\treturn sbDocumentService\n\t\t\t\t\t.deleteDocument(_document.Embedded.Document.DocumentId, purge)\n\t\t\t\t\t.then(function(){\n\t\t\t\t\t\t_document = null;\n\t\t\t\t\t});\t\t\t\t\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbDocumentDetailsPanelDataStore', ['smbPanelDetailsDataStore', DocumentDetailsPanelDataStore]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbDocumentDetailsPanelDataStore\n\t\t *\n\t\t * @description\n\t\t * This datastore manages the state of the document details related content\n\t\t * within the application's side panel. It consumes the general smbPanelDetailsDataStore\n\t\t * to control the side panel itself.\n\t\t */\n\t\tfunction DocumentDetailsPanelDataStore(smbPanelDetailsDataStore) {\n\t\t\t// Panel names\n\t\t\tvar _fieldPanel = 'index-panel';\n\t\t\tvar _fieldEdit = 'index-edit';\n\t\t\tvar _history = 'history';\n\t\t\tvar _comments = 'comments';\n\t\n\t\t\tvar _currentPanel;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentDetailsPanelDataStore#showFieldPanel\n\t\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Returns true if the document field panel should be displayed in\n\t\t\t\t * the document details panel.\n\t\t\t\t */\n\t\t\t\tget showFieldPanel() { return _currentPanel === _fieldPanel; }, /* TODO: Change name to `showFieldPanel` */\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentDetailsPanelDataStore#showFieldEdit\n\t\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Returns true if the field edit form should be displayed in the document details panel.\n\t\t\t\t */\n\t\t\t\tget showFieldEdit() { return _currentPanel === _fieldEdit; }, /* TODO: Change name to `showFieldEdit` */\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentDetailsPanelDataStore#showHistory\n\t\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Returns true if the history panel should be displayed in the document details panel.\n\t\t\t\t */\n\t\t\t\tget showHistory() { return _currentPanel === _history; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentDetailsPanelDataStore#showComments\n\t\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Returns true if the comments panel should be displayed in the document details panel.\n\t\t\t\t */\n\t\t\t\tget showComments() { return _currentPanel === _comments; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentDetailsPanelDataStore#fieldPanel\n\t\t\t\t * @propertyOf smb-app.smbDcoumentDetailsPanelDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Constant that represents the name of the field panel.\n\t\t\t\t */\n\t\t\t\tget fieldPanel() { return _fieldPanel; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDcoumentDetailsPanelDataStore#fieldEditPanel\n\t\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Constant that represents the name of the field edit form panel.\n\t\t\t\t */\n\t\t\t\tget fieldEditPanel() { return _fieldEdit; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDcoumentDetailsPanelDataStore#historyPanel\n\t\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Constant that represents the name of the history panel.\n\t\t\t\t */\n\t\t\t\tget historyPanel() { return _history; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDcoumentDetailsPanelDataStore#commentsPanel\n\t\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Constant that represents the name of the comments panel.\n\t\t\t\t */\n\t\t\t\tget commentsPanel() { return _comments; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDcoumentDetailsPanelDataStore#toggle\n\t\t\t\t * @methodOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t\t * @kind method\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Toggle the document details side panel with a specific page of the panel.\n\t\t\t\t * If passing the name of the panel page that is currently displayed, it will\n\t\t\t\t * close the entire side panel. If the side panel is already open but toggled\n\t\t\t\t * with a different page, the side panel will stay open and will switch to\n\t\t\t\t * the new page. If the argument is not a valid document details panel page,\n\t\t\t\t * then nothing happens.\n\t\t\t\t *\n\t\t\t\t * @param {string} panelName Then name of document details panel to display.\n\t\t\t\t */\n\t\t\t\ttoggle: toggle,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDcoumentDetailsPanelDataStore#closePanel\n\t\t\t\t * @methodOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t\t * @kind method\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Closes the document details panel as well as the general app side panel.\n\t\t\t\t */\n\t\t\t\tclosePanel: closePanel\n\t\t\t};\n\t\n\t\t\tfunction closePanel() {\n\t\t\t\t_currentPanel = undefined;\n\t\t\t\tsmbPanelDetailsDataStore.reset();\n\t\t\t}\n\t\n\t\t\tfunction toggle(panelName) {\n\t\t\t\tif (!smbPanelDetailsDataStore.isOpen) {\n\t\t\t\t\t_currentPanel = undefined;\n\t\t\t\t}\n\t\n\t\t\t\tif ([_fieldPanel, _fieldEdit, _history, _comments].indexOf(panelName) < 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tif (panelName === _currentPanel) {\n\t\t\t\t\t// close the panel\n\t\t\t\t\tclosePanel();\n\t\t\t\t} else {\n\t\t\t\t\tif (!_currentPanel) {\n\t\t\t\t\t\tsmbPanelDetailsDataStore.toggle();\n\t\t\t\t\t}\n\t\t\t\t\t_currentPanel = panelName;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbDocumentHistoryDataStore', ['smbDocumentHistoryService', DocumentHistoryDataStore]);\n\t\t\t\n\t\tvar tokenRegex = /\\[@(.*?)\\[\\/\\]/g; \n\t\t// will capture with User=5]john from [@User=5]john[/]\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbDocumentNotesDataStore\n\t\t * \n\t\t * @description\n\t\t * Manages state for the notes for a single document.\n\t\t */\n\t\tfunction DocumentHistoryDataStore(smbDocumentHistoryService) {\n\t\t\tvar _history;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentNotesDataStore#notes\n\t\t\t\t * @propertyOf smb-app.smbDocumentNotesDataStore\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Returns the current collection of notes\n\t\t\t\t * \n\t\t\t\t * @returns {DocumentNote[]} An array of @see DocumentNote objects\n\t\t\t\t */\n\t\t\t\tget history() { return _history; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentNotesDataStore#loadNotes\n\t\t\t\t * @propertyOf smb-app.smbDocumentNotesDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads the document notes for a specific document by id\n\t\t\t\t * \n\t\t\t\t * @param {String} documentId The document id\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of @see DocumentNote objects\n\t\t\t\t */\n\t\t\t\tloadHistory: loadHistory\n\t\n\t\t\t};\n\t\n\t\t\tfunction loadHistory(documentId) {\n\t\t\t\treturn smbDocumentHistoryService.getHistory(documentId)\n\t\t\t\t\t.then(function(history) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t_history = history.map(function(hi) { \n\t\t\t\t\t\t\tvar final = hi.Message.replace('&&_AirBase_Assigned_Date', 'assigned date')\n\t\t\t\t\t\t\t.replace('&&_AirBase_ToDo_Status', 'To Do Status')\n\t\t\t\t\t\t\t.replace('&&_AirBase_Content_Status', 'Status')\n\t\t\t\t\t\t\t.replace('&&_AirBase_Assigned_UserId', 'assgined user')\n\t\t\t\t\t\t\t.replace(/\\./g, '');\n\t\t\t\t\t\t\treturn {'Message' : tokenStringFilterReplace(final), 'UserName': hi.UserName, 'ActivityDate': tokenStringExtractDate(final)};\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn _history;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction tokenStringFilterReplace (str) {\n\t\t\t\tif (!str) {\n\t\t\t\t\treturn str;\n\t\t\t\t}\n\t\n\t\t\t\treturn str.replace(tokenRegex, function (token, capture) {\n\t\t\t\t\t// the captured text is in the form \"User=5]john\"\n\t\t\t\t\tvar parts = capture.split(']');\n\t\t\t\t\tvar attrPart = parts[0].split('=');\n\t\t\t\t\tif (attrPart[0] === 'User') {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t\tif (attrPart[0] === 'Document') {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t\tif (attrPart[0] === 'Action' && attrPart[1] === 'tagged') {\n\t\t\t\t\t\treturn 'modified field value on';\n\t\t\t\t\t}\n\t\t\t\t\tif (attrPart[0] === 'Action' && attrPart[1] === 'untagged') {\n\t\t\t\t\t\treturn 'removed field value ';\n\t\t\t\t\t}\n\t\t\t\t\tif (attrPart[0] === 'Action' && attrPart[1] === 'commented') {\n\t\t\t\t\t\treturn 'commented ';\n\t\t\t\t\t}\n\t\t\t\t\tif (attrPart[0] === 'Date') {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvar message = parts[1];\n\t\t\t\t\treturn parts[1];\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction tokenStringExtractDate(str) {\n\t\t\t\tif (!str) {\n\t\t\t\t\treturn str;\n\t\t\t\t}\n\t\n\t\t\t\tvar datestring = '';\n\t\t\t\tstr = str.replace(tokenRegex, function (token, capture) {\n\t\t\t\t\t// the captured text is in the form \"User=5]john\"\n\t\t\t\t\tvar parts = capture.split(']');\n\t\t\t\t\tvar attrPart = parts[0].split('=');\n\t\t\t\t\tif (attrPart[0] === 'Date') {\n\t\t\t\t\t\tdatestring = parts[1];\n\t\t\t\t\t\treturn parts[1];\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t\treturn '';\n\t\t\t\t});\n\t\n\t\t\t\treturn datestring + '.';\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbDocumentIndexDataStore', [\n\t\t\t\t'$q',\n\t\t\t\t'smbIndexTypesDataTypes',\n\t\t\t\t'smbIndexTypesService',\n\t\t\t\tDocumentIndexDataStore\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbDocumentIndexDataStore\n\t\t *\n\t\t * @description\n\t\t * Service for managing index values for a single document\n\t\t */\n\t\tfunction DocumentIndexDataStore($q, smbIndexTypesDataTypes, smbIndexTypesService) {\n\t\n\t\t\tvar _indexTypes;\n\t\t\tvar _indexValues;\n\t\t\tvar _documentId;\n\t\t\tvar _contentTypeId;\n\t\n\t\t\treturn {\n\t\n\t\t\t\tget indexTypes() { return _indexTypes; },\n\t\t\t\tget indexValues() { return _indexValues; },\n\t\n\t\t\t\tget indexTypePanelModel() {\n\t\t\t\t\treturn _indexTypes.map(function(indexType) {\n\t\t\t\t\t\tvar val = _indexValues.find(function(iv) { return iv.TagTypeName === indexType.TagTypeName; });\n\t\t\t\t\t\tvar temp = angular.extend({}, indexType);\n\t\t\t\t\t\tif (val && val.Tags && val.Tags.length > 0) {\n\t\t\t\t\t\t\ttemp.defaultValue = val.Tags[0];\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (temp.DataType === smbIndexTypesDataTypes.NUMERIC) {\n\t\t\t\t\t\t\ttemp.defaultValue = parseFloat(temp.defaultValue);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn temp;\n\t\t\t\t\t});\n\t\t\t\t},\n\t\n\t\t\t\tgetIndexes: getIndexes\n\t\n\t\t\t};\n\t\n\t\t\tfunction getIndexes(documentId, contentTypeId, useCached) {\n\t\t\t\tif (canUseCached(documentId, contentTypeId, useCached)) {\n\t\t\t\t\treturn $q.resolve(_indexValues);\n\t\t\t\t} else {\n\t\t\t\t\treturn smbIndexTypesService.getIndexTypes(contentTypeId)\n\t\t\t\t\t\t.then(function(types) {\n\t\t\t\t\t\t\t_indexTypes = types.filter(function(tt) {\n\t\t\t\t\t\t\t\treturn !(tt.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t_contentTypeId = contentTypeId;\n\t\t\t\t\t\t\treturn smbIndexTypesService.getDocumentIndexes(documentId);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\t\t_documentId = documentId;\n\t\t\t\t\t\t\t_indexValues = [];\n\t\n\t\t\t\t\t\t\tvar sequence = 0;\n\t\n\t\t\t\t\t\t\t_indexValues = data.TypedTags.filter(function(tt) {\n\t\t\t\t\t\t\t\treturn !(tt.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\tvar val = tt.Tags[0];\n\t\t\t\t\t\t\t\tvar indexType = _indexTypes.find(function(it) { return it.TagTypeName === tt.TagTypeName; });\n\t\n\t\t\t\t\t\t\t\tif (indexType && indexType.DataType === smbIndexTypesDataTypes.NUMERIC && val) {\n\t\t\t\t\t\t\t\t\ttt.Tags[0] = toNumber(val);\n\t\t\t\t\t\t\t\t\ttt.isNumber = true;\n\t\t\t\t\t\t\t\t} else if (indexType && indexType.DataType === smbIndexTypesDataTypes.DATE && val) {\n\t\t\t\t\t\t\t\t\ttt.Tags[0] = toDate(val);\n\t\t\t\t\t\t\t\t\ttt.isDate = true;\n\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\tvar i = _indexTypes.indexOf(indexType);\n\t\t\t\t\t\t\t\tif (i < 0) {\n\t\t\t\t\t\t\t\t\ti = sequence;\n\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\ttt.sequence = i;\n\t\t\t\t\t\t\t\tsequence++;\n\t\t\t\t\t\t\t\treturn tt;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn _indexValues;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction canUseCached(documentId, contentTypeId, useCached) {\n\t\t\t\treturn useCached && documentId === _documentId && contentTypeId === _contentTypeId &&\n\t\t\t\t\t_indexTypes && _indexValues;\n\t\t\t}\n\t\n\t\t\tfunction toNumber(val) {\n\t\t\t\tif (!val && typeof val !== 'number') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tvar num = parseFloat(val);\n\t\t\t\treturn isNaN(num) ? undefined : num;\n\t\t\t}\n\t\n\t\t\tfunction toDate(val) {\n\t\t\t\tif (!val) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tvar m = parseInt(val.substr(0, 2));\n\t\t\t\tvar d = parseInt(val.substr(2, 2));\n\t\t\t\tvar y = parseInt(val.substr(4));\n\t\n\t\t\t\treturn new Date(y, m - 1, d);\n\t\t\t}\n\t\t}\n\t\t\n\t}());\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbDocumentNotesDataStore', ['smbDocumentNotesService', DocumentNotesDataStore]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbDocumentNotesDataStore\n\t\t * \n\t\t * @description\n\t\t * Manages state for the notes for a single document.\n\t\t */\n\t\tfunction DocumentNotesDataStore(smbDocumentNotesService) {\n\t\t\tvar _notes;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbDocumentNotesDataStore#notes\n\t\t\t\t * @propertyOf smb-app.smbDocumentNotesDataStore\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Returns the current collection of notes\n\t\t\t\t * \n\t\t\t\t * @returns {DocumentNote[]} An array of @see DocumentNote objects\n\t\t\t\t */\n\t\t\t\tget notes() { return _notes; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentNotesDataStore#loadNotes\n\t\t\t\t * @propertyOf smb-app.smbDocumentNotesDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads the document notes for a specific document by id\n\t\t\t\t * \n\t\t\t\t * @param {String} documentId The document id\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of @see DocumentNote objects\n\t\t\t\t */\n\t\t\t\tloadNotes: loadNotes,\n\t\n\t\t\t\tcreateNote: createNote\n\t\t\t};\n\t\n\t\t\tfunction loadNotes(documentId) {\n\t\t\t\treturn smbDocumentNotesService.getNotes(documentId)\n\t\t\t\t\t.then(function(notes) {\n\t\t\t\t\t\tnotes.reverse();\n\t\t\t\t\t\t_notes = notes;\n\t\t\t\t\t\treturn notes;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction createNote(documentId, note) {\n\t\t\t\treturn smbDocumentNotesService.createNote(documentId, note)\n\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\tif (!_notes) {\n\t\t\t\t\t\t\t_notes = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_notes.unshift(data);\n\t\t\t\t\t\treturn data;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbIconDataStore', ['$q', '$sce', 'smbIconService', IconDataStore]);\n\t\n\t\t/**\n\t\t * @typedef {Object} Icon\n\t\t * @property {String} IconFriendlyUserName A human readable label for an icon\n\t\t * @property {String} IconExtension The icon data type as a capitalized version of the extension\n\t\t * @property {String} IconUri The url to get the icon data\n\t\t */\n\t\n\t\tfunction IconDataStore($q, $sce, smbIconService) {\n\t\t\tvar _icons;\n\t\n\t\t\treturn {\n\t\t\t\tget icons() { return _icons; },\n\t\t\t\tloadIcons: loadIcons,\n\t\t\t\tgetIconData: getIconData\n\t\t\t};\n\t\n\t\t\tfunction loadIcons() {\n\t\t\t\tif (!_icons) {\n\t\t\t\t\treturn smbIconService.getIcons()\n\t\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\t\t_icons = data;\n\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturn $q.resolve(_icons);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction getIconData(icon) {\n\t\t\t\treturn smbIconService.getIconData(icon.IconUri, icon.IconExtension)\n\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\tvar iconImage = { isBinary: data.isBinary };\n\t\t\t\t\t\tif (data.isBinary) {\n\t\t\t\t\t\t\tvar blob = new Blob([data.imageData], {type: data.contentType});\n\t\t\t\t\t\t\tvar objUrl = URL.createObjectURL(blob);\n\t\t\t\t\t\t\ticonImage.data = objUrl;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ticonImage.data = $sce.trustAsHtml(data.imageData);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn iconImage;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(106);\n\t__webpack_require__(107);\n\t__webpack_require__(108);\n\t__webpack_require__(109);\n\t__webpack_require__(110);\n\t__webpack_require__(111);\n\t__webpack_require__(112);\n\t__webpack_require__(113);\n\t__webpack_require__(114);\n\t__webpack_require__(115);\n\t__webpack_require__(116);\n\t__webpack_require__(117);\n\t__webpack_require__(118);\n\t__webpack_require__(119);\n\t__webpack_require__(120);\n\t__webpack_require__(121);\n\t__webpack_require__(122);\n\t__webpack_require__(123);\n\t__webpack_require__(124);\n\t__webpack_require__(126);\n\t__webpack_require__(127);\n\t__webpack_require__(128);\n\t__webpack_require__(129);\n\t__webpack_require__(130);\n\t__webpack_require__(131);\n\t__webpack_require__(132);\n\t__webpack_require__(133);\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbIndexTypesDataStore', ['$q', 'smbIndexTypesService', 'smbIndexTypesDataTypes', IndexTypesDataStore]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbIndexTypesDataStore\n\t\t *\n\t\t * @description\n\t\t * Manages the state for the content types configuration.\n\t\t */\n\t\tfunction IndexTypesDataStore($q, smbIndexTypesService, smbIndexTypesDataTypes) {\n\t\t\tvar _typeId;\n\t\t\tvar _groupId;\n\t\t\tvar _indexTypes;\n\t\t\tvar _groupIndexTypes;\n\t\t\tvar _contentStatus = {\n\t\t\t\tTagTypeId: 0,\n\t\t\t\tValue: ''\n\t\t\t};\n\t\t\tvar _todoStatus = {\n\t\t\t\tTagTypeId: 0,\n\t\t\t\tValue: ''\n\t\t\t};\n\t\t\tvar _assignedUserId = {\n\t\t\t\tTagTypeId: 0,\n\t\t\t\tValue: ''\n\t\t\t};\n\t\t\tvar _assignedDate = {\n\t\t\t\tTagTypeId: 0,\n\t\t\t\tValue: ''\n\t\t\t};\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbIndexTypesDataStore.indexTypes\n\t\t\t\t * @propertyOf smb-app.smbIndexTypesDataStore\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * All content types that belong to the current content type group.\n\t\t\t\t */\n\t\t\t\tget indexTypes() {\n\t\t\t\t\treturn _indexTypes;\n\t\t\t\t},\n\t\n\t\t\t\tget groupIndexTypes() {\n\t\t\t\t\treturn _groupIndexTypes;\n\t\t\t\t},\n\t\n\t\t\t\tget contentStatusId() { return _contentStatus.TagTypeId; },\n\t\n\t\t\t\tget todoStatusId() { return _todoStatus.TagTypeId; },\n\t\n\t\t\t\tget assignedUserId() { return _assignedUserId.TagTypeId; },\n\t\n\t\t\t\tget assignedDateId() { return _assignedDate.TagTypeId; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbIndexTypesDataStore.getindexTypes\n\t\t\t\t * @methodOf smb-app.smbIndexTypesDataStore\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Loads and returns all content types for a specific content type group by group id.\n\t\t\t\t *\n\t\t\t\t * @param {Number} groupId The content type group id\n\t\t\t\t *\n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of content types.\n\t\t\t\t */\n\t\t\t\tgetIndexTypes: getIndexTypes,\n\t\n\t\t\t\tgetDocumentTypeGroupIndexTypes: getDocumentTypeGroupIndexTypes,\n\t\n\t\t\t\tsetIndexTypes: setIndexTypes\n\t\t\t};\n\t\n\t\t\tfunction getIndexTypes(typeId) {\n\t\t\t\tif (!typeId) {\n\t\t\t\t\treturn $q.resolve(_indexTypes);\n\t\t\t\t} else {\n\t\t\t\t\treturn smbIndexTypesService.getIndexTypes(typeId)\n\t\t\t\t\t\t.then(function(types) {\n\t\t\t\t\t\t\t_contentStatus.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t\t\t\t})[0].TagTypeId;\n\t\n\t\t\t\t\t\t\t_todoStatus.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t\t\t\t})[0].TagTypeId;\n\t\n\t\t\t\t\t\t\t_assignedUserId.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t\t\t\t})[0].TagTypeId;\n\t\n\t\t\t\t\t\t\t_assignedDate.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t\t\t\t})[0].TagTypeId;\n\t\t\t\t\t\t\treturn types;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t\t_indexTypes = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\t\treturn !(tagtype.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\tif (tt.DataType === smbIndexTypesDataTypes.NUMERIC && tt.Constraints && tt.Constraints.DefaultValue) {\n\t\t\t\t\t\t\t\t\tvar val = tt.Constraints.DefaultValue;\n\t\t\t\t\t\t\t\t\ttt.Constraints.DefaultValue = val.indexOf('.') >= 0 ? parseFloat(val) : parseInt(val, 10);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn tt;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\tif (tt.Constraints) {\n\t\t\t\t\t\t\t\t\ttt.defaultValue = tt.Constraints.DefaultValue;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn tt;\n\t\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t\t_typeId = typeId;\n\t\t\t\t\t\t\treturn types;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction getDocumentTypeGroupIndexTypes(groupId) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.resolve(_groupIndexTypes);\n\t\t\t\t} else {\n\t\t\t\t\treturn smbIndexTypesService.getDocumentTypeGroupIndexTypes(groupId)\n\t\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t\t_groupId = groupId;\n\t\t\t\t\t\t\t_groupIndexTypes = types\n\t\t\t\t\t\t\t\t.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\t\t\treturn !(tagtype.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.map(function(it) {\n\t\t\t\t\t\t\t\t\tif (it.Constraints) {\n\t\t\t\t\t\t\t\t\t\tit.defaultValue = it.Constraints.DefaultValue;\n\t\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\t\tif (it.DataType === smbIndexTypesDataTypes.NUMERIC) {\n\t\t\t\t\t\t\t\t\t\tit.indexValue = +it.IndexValue;\n\t\n\t\t\t\t\t\t\t\t\t\tif(angular.isDefined(it.defaultValue)) { \n\t\t\t\t\t\t\t\t\t\t\tit.defaultValue = +it.defaultValue;\n\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\treturn it;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn _groupIndexTypes;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction setIndexTypes(indexes, documentId, typeId) {\n\t\t\t\tvar tagcollection = indexes\n\t\t\t\t.filter(function filterTags(t) {\n\t\t\t\t\t\tif (t.indexValue) {\n\t\t\t\t\t\t\treturn t;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t.map(function mapTags(t) {\n\t\t\t\t\tvar tag = {};\n\t\t\t\t\ttag.TagTypeId = t.TagTypeId;\n\t\n\t\t\t\t\tif (t.DataTypeName === 'Date')\n\t\t\t\t\t{\n\t\t\t\t\t\tvar date = t.indexValue;\n\t\n\t\t\t\t\t\tvar mm = date.getMonth() + 1;\n\t\t\t\t\t\tif (mm < 10)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmm = '0' + mm;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar dd = date.getDate();\n\t\t\t\t\t\tif (dd < 10)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdd = '0' + dd;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\ttag.Value = [mm, dd, date.getFullYear()].join('');\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\ttag.Value = t.indexValue;\n\t\t\t\t\t}\n\t\n\t\t\t\t\treturn tag;\n\t\t\t\t});\n\t\n\t\t\t\treturn smbIndexTypesService.getIndexTypes(typeId)\n\t\t\t\t.then(function(types) {\n\t\t\t\t\t_contentStatus.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t\t})[0].TagTypeId;\n\t\n\t\t\t\t\t_todoStatus.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t\t})[0].TagTypeId;\n\t\n\t\t\t\t\t_assignedUserId.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t\t})[0].TagTypeId;\n\t\n\t\t\t\t\t_assignedDate.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t\t})[0].TagTypeId;\n\t\t\t\t})\n\t\t\t\t.then(function() {\n\t\t\t\t\treturn smbIndexTypesService.getDocumentIndexes(documentId);\n\t\t\t\t})\n\t\t\t\t.then(function(ft) {\n\t\t\t\t\tvar value = null;\n\t\t\t\t\tvalue = ft.TypedTags.find(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t\t});\n\t\t\t\t\t_contentStatus.Value = value.Tags[0] ? value.Tags[0] : '';\n\t\t\t\t\tvalue = null;\n\t\t\t\t\tvalue = ft.TypedTags.find(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t\t});\n\t\t\t\t\t_todoStatus.Value = value.Tags[0] ? value.Tags[0] : '';\n\t\t\t\t\tvalue = null;\n\t\t\t\t\tvalue = ft.TypedTags.find(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t\t});\n\t\t\t\t\t_assignedUserId.Value = value.Tags[0] ? value.Tags[0] : '';\n\t\t\t\t\tvalue = null;\n\t\t\t\t\tvalue = ft.TypedTags.find(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t\t});\n\t\t\t\t\t_assignedDate.Value = value.Tags[0] ? value.Tags[0] : '';\n\t\t\t\t})\n\t\t\t\t.then(function() {\n\t\t\t\t\tif (_contentStatus.Value) {\n\t\t\t\t\t\ttagcollection.push(_contentStatus);\n\t\t\t\t\t}\n\t\t\t\t\tif (_todoStatus.Value) {\n\t\t\t\t\t\ttagcollection.push(_todoStatus);\n\t\t\t\t\t}\n\t\t\t\t\tif (_assignedUserId.Value) {\n\t\t\t\t\t\ttagcollection.push(_assignedUserId);\n\t\t\t\t\t}\n\t\t\t\t\tif (_assignedDate.Value) {\n\t\t\t\t\t\ttagcollection.push(_assignedDate);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(function() {\n\t\t\t\t\treturn smbIndexTypesService.setIndexTypes(tagcollection, documentId);\n\t\t\t\t})\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbPanelDetailsDataStore', ['$mdMedia',PanelDetailsDataStore]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbPanelDetailsDataStore\n\t\t *\n\t\t * @description\n\t\t * Manages the state of the application's side panel.\n\t\t */\n\t\tfunction PanelDetailsDataStore($mdMedia) {\n\t\t\tvar _isOpen = false;\n\t\t\tvar _isOpenInline = false;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbPanelDetailsDataStore#isOpen\n\t\t\t\t * @propertyOf smb-app.smbPanelDetailsDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Returns true if the side panel is currently open.\n\t\t\t\t *\n\t\t\t\t * @returns {boolean} A boolean flag that indicates whether the side panel is open (true)\n\t\t\t\t * or closed (false).\n\t\t\t\t */\n\t\t\t\tget isOpen() { return _isOpen; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbPanelDetailsDataStore#isOpen\n\t\t\t\t * @propertyOf smb-app.smbPanelDetailsDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Use to open or close the side panel. Set to true to open the side panel\n\t\t\t\t * and false to close the side panel.\n\t\t\t\t *\n\t\t\t\t * @param {boolean} val The value to set the property to.\n\t\t\t\t */\n\t\t\t\tset isOpen(val) { _isOpen = val; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbPanelDetailsDataStore#isOpenInline\n\t\t\t\t * @propertyOf smb-app.smbPanelDetailsDataStore\n\t\t\t\t * @kind property\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Indicates if the side panel is open in inline mode.\n\t\t\t\t *\n\t\t\t\t * @returns {boolean} True if the panel is open inline\n\t\t\t\t */\n\t\t\t\tget isOpenInline() { return _isOpenInline; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbPanelDetailsDataStore#toggle\n\t\t\t\t * @methodOf smb-app.smbPanelDetailsDataStore\n\t\t\t\t * @kind method\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Toggle the side panel. Opens it if it is currently closed and closes it if\n\t\t\t\t * it is currently open.\n\t\t\t\t */\n\t\t\t\ttoggle: toggle,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbPanelDetailsDataStore#reset\n\t\t\t\t * @methodOf smb-app.smbPanelDetailsDataStore\n\t\t\t\t * @kind method\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Resets the state of the side panel back to default (which is closed).\n\t\t\t\t */\n\t\t\t\treset: reset,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbPanelDetailsDataStore#showPanel\n\t\t\t\t * @methodOf smb-app.smbPanelDetailsDataStore\n\t\t\t\t * @kind method\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Returns true if the panel should be open.\n\t\t\t\t *\n\t\t\t\t * @returns {boolean} True if the panel should be open.\n\t\t\t\t */\n\t\t\t\tshowPanel: showPanel\n\t\t\t};\n\t\n\t\t\tfunction toggle() {\n\t\t\t\t_isOpen = !_isOpen;\n\t\t\t\tif ($mdMedia('gt-sm')) {\n\t\t\t\t\t_isOpenInline = !_isOpenInline;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction showPanel() {\n\t\t\t\treturn _isOpen || _isOpenInline;\n\t\t\t}\n\t\n\t\t\tfunction reset() {\n\t\t\t\t_isOpen = false;\n\t\t\t\t_isOpenInline = false;\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbStatusDataStore', [\n\t\t\t\t'$q', \n\t\t\t\t'smbStatusService', \n\t\t\t\tStatusDataStore\n\t\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbStatusDataStore\n\t\t * \n\t\t * @description\n\t\t * Data store that manages state for the content type uration section.\n\t\t */\n\t\tfunction StatusDataStore($q, smbStatusService) {\n\t\n\t\t\tvar _contentStatus;\n\t\t\tvar _todoStatus;\n\t\t\tvar _assignedUserId;\n\t\t\tvar _assignedDate;\n\t\n\t\t\tvar _contentStatusValues = [];\n\t\t\tvar _todoStatusValues = [];\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbStatusDataStore.getContentStatuses\n\t\t\t\t * @methodOf smb-app.smbStatusDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads the data store with a content type by id\n\t\t\t\t * \n\t\t\t\t * @param {String} groupId Id of the content type group the type belongs to\n\t\t\t\t * @param {String} id The content type id\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to the content type being loaded\n\t\t\t\t */\n\t\t\t\tget contentStatus() { return _contentStatus; },\n\t\n\t\t\t\tget todoStatus() { return _todoStatus; },\n\t\n\t\t\t\tget contentStatusValues() { return _contentStatusValues; },\n\t\n\t\t\t\tget todoStatusValues() { return _todoStatusValues; },\n\t\n\t\t\t\tget assignedUserId() { return _assignedUserId; },\n\t\n\t\t\t\tget assignedDate() { return _assignedDate; },\n\t\n\t\t\t\tloadStatuses: loadStatuses,\n\t\n\t\t\t\tgetDocumentStatus: getDocumentStatus,\n\t\n\t\t\t\tgetUsersWithModifyRights: getUsersWithModifyRights,\n\t\n\t\t\t\tsetDocumentStatus: setDocumentStatus\n\t\t\t};\n\t\n\t\t\tfunction loadStatuses(folderId) {\n\t\t\t\treturn smbStatusService.getStatuses(folderId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\treturn response.filter(function statuses(tt) {\n\t\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_.*/);\n\t\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.then(function mapStatuses(statuses) {\n\t\t\t\t\t_contentStatus = statuses.filter(function filterCStatuses(s) {\n\t\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t\t});\n\t\t\t\t\t_todoStatus = statuses.filter(function filterTStatuses(s) {\n\t\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t\t});\n\t\t\t\t\t_assignedUserId = statuses.filter(function filterCStatuses(s) {\n\t\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t\t});\n\t\t\t\t\t_assignedDate = statuses.filter(function filterTStatuses(s) {\n\t\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t\t});\n\t\t\t\t\treturn statuses;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getDocumentStatus(documentId) {\n\t\t\t\treturn smbStatusService.getDocumentStatus(documentId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getUsersWithModifyRights(documentId) {\n\t\t\t\treturn smbStatusService.getUsers(documentId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction setDocumentStatus(status, documentId) {\n\t\t\t\treturn smbStatusService.setDocumentStatus(status, documentId);\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbToDoListDataStore', ['$q', '$interval', 'gettextCatalog', 'smbToDoListService', 'smbSortService', ToDoListDataStore]);\n\t\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypesDataStore\n\t\t * \n\t\t * @description\n\t\t * Manages the state for the content types configuration.\n\t\t */\n\t\tfunction ToDoListDataStore($q, $interval, gettextCatalog, smbToDoListService, smbSortService) {\n\t\n\t\t\tvar _documents = null;\n\t\n\t\t\tvar ASSIGNED_DATE = '&&_AirBase_Assigned_Date';\n\t\t\tvar CONST_TODOLIST_POLL_INTERVAL = 20000;\n\t\t\tvar _count = 0;\t\n\t\t\tvar _interval;\t\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbContentTypesDataStore.contentTypes\n\t\t\t\t * @propertyOf smb-app.smbContentTypesDataStore\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * All content types that belong to the current content type group.\n\t\t\t\t */\n\t\t\t\tget documents() {\n\t\t\t\t\treturn _documents;\n\t\t\t\t},\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name toDoListDataStore.getDocuments\n\t\t\t\t * @methodOf smb-app.toDoListDataStore\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Loads and returns all content types for a specific content type group by group id.\n\t\t\t\t * \n\t\t\t\t * @param {Number} groupId The content type group id\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of content types.\n\t\t\t\t */\n\t\t\t\tgetDocuments: getDocuments,\n\t\n\t\t\t\tsortByDate: sortByDate,\n\t\n\t\t\t\tsortByType: sortByType,\n\t\n\t\t\t\tsortByStatus: sortByStatus,\n\t\n\t\t\t\tloadCount: loadCount,\n\t\n\t\t\t\tinit: init,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbToDoListDataStore#clear\n\t\t\t\t * @methodOf smb-app.toDoListDataStore\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Clears the interval that was initiated by @see init\n\t\t\t\t */\n\t\t\t\tclear: clear,\n\t\n\t\t\t\tget count() { return _count; }\n\t\t\t\t\n\t\t\t};\t\n\t\n\t\t\tfunction getDocuments() {\n\t\t\t\treturn smbToDoListService.getDocuments()\n\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t_documents = types.map(function(doc) {\n\t\t\t\t\t\t\tvar d;\n\t\t\t\t\t\t\td = doc;\n\t\t\t\t\t\t\tvar index = doc.DocumentAutoName ? doc.DocumentAutoName.indexOf('&&_AirBase_') : -1;\n\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\td.DocumentAutoName = doc.DocumentAutoName.substring(0, index > 0 ? index - 5 : 0);\n\t\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar contentStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_Content_Status/));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvar todoStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_ToDo_Status/));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\td.DateAssigned = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_Assigned_Date/));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (contentStatus != null && contentStatus.length > 0 && contentStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\t\td.Status = contentStatus[0].Tags[0];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (todoStatus != null && todoStatus.length > 0 && todoStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\t\td.Status = todoStatus[0].Tags[0];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\td.Status = '';\n\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\tif (d.DateAssigned != null && d.DateAssigned.length > 0) {\n\t\t\t\t\t\t\t\td.DateAssigned = d.DateAssigned[0].Tags[0];\n\t\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsortByDate(false);\n\t\t\t\t\t\treturn _documents;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction sortByDate(params) {\n\t\t\t\t_documents.sort(function(a, b) {\n\t\t\t\t\tvar result = smbSortService.sortDate(new Date(b.DateAssigned.replace(/T(\\d:){2}(\\d){1}/, '')), new Date(a.DateAssigned.replace(/T(\\d:){2}(\\d){1}/, '')));\n\t\t\t\t\tif (result === 0 && a.DocumentAutoName !== null && b.DocumentAutoName !== null) {\n\t\t\t\t\t\tresult = a.DocumentAutoName.toLowerCase().localeCompare(b.DocumentAutoName.toLowerCase());\n\t\t\t\t\t}\n\t\t\t\t\treturn result;\n\t\t\t\t});\n\t\t\t\tif (!params) {\n\t\t\t\t\t_documents.reverse();\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction sortByType(params) {\n\t\t\t\t_documents.sort(function(a,b) {\n\t\t\t\t\treturn smbSortService.sortByString(a.LibraryName + a.FolderName, b.LibraryName + b.FolderName, params);\n\t\t\t\t});\t\t\t\n\t\t\t}\n\t\n\t\t\tfunction sortByStatus(params) {\n\t\t\t\t_documents.sort(smbSortService.sortObjectByStringProperty('Status', params));\n\t\t\t}\n\t\n\t\t\tfunction init() {\n\t\t\t\tif (!_interval) {\n\t\t\t\t\t_interval = $interval(function() {\n\t\t\t\t\t\tloadCount();\n\t\t\t\t\t}, CONST_TODOLIST_POLL_INTERVAL);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction clear() {\n\t\t\t\tif (angular.isDefined(_interval)) {\n\t\t\t\t\t$interval.cancel(_interval);\n\t\t\t\t\t_interval = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction loadCount() {\n\t\t\t\treturn smbToDoListService.getCount()\n\t\t\t\t\t.then(function (count) {\n\t\t\t\t\t\t_count = count;\n\t\t\t\t\t\treturn count;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\t/**\n\t\t* @ngdoc service\n\t\t* @name smb-app.smbUserDataStore\n\t\t* \n\t\t* @description \n\t\t* A datastore used to retrieve and interact with a smb-app user\n\t\t**/\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbUserDataStore',\n\t\t\t[\n\t\t\t\t'$q',\n\t\t\t\t'pxAuthService',\n\t\t\t\t'sbUserService',\n\t\t\t\tUserDataStore\n\t\t\t]);\n\t\n\t\tfunction UserDataStore($q, pxAuthService, sbUserService) {\n\t\t\tvar _user = null;\n\t\t\tvar _newUser = {\n\t\t\t\t'UserName': null,\n\t\t\t\t'EmailAddress': null,\n\t\t\t\t'Password': null,\n\t\t\t\t'Embedded': {\n\t\t\t\t\t'Roles': []\n\t\t\t\t}\n\t\t\t};\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbUserDataStore#getUser\n\t\t\t\t* @methodOf smb-app.smbUserDataStore\n\t\t\t\t* @kind function\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Gets a user\n\t\t\t\t*\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a user\n\t\t\t\t* \n\t\t\t\t*/\n\t\t\t\tgetUser: getUser,\n\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbUserDataStore#addUser\n\t\t\t\t* @methodOf smb-app.smbUserDataStore\n\t\t\t\t* @kind function\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Adds a new user\n\t\t\t\t*\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a new user\n\t\t\t\t* \n\t\t\t\t*/\n\t\t\t\taddUser: addUser,\n\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbUserDataStore#updateUser\n\t\t\t\t* @methodOf smb-app.smbUserDataStore\n\t\t\t\t* @kind function\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Gets an updated user\n\t\t\t\t*\n\t\t\t\t* @returns {Deferred} A promise that will resolve with an updated user\n\t\t\t\t* \n\t\t\t\t*/\n\t\t\t\tupdateUser: updateUser,\n\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbUserDataStore#lockUser\n\t\t\t\t* @methodOf smb-app.smbUserDataStore\n\t\t\t\t* @kind function\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Locks a user\n\t\t\t\t*\n\t\t\t\t* @returns {Deferred} A promise that will resolve\n\t\t\t\t* \n\t\t\t\t*/\n\t\t\t\tlockUser: lockUser,\n\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbUserDataStore#unlockUser\n\t\t\t\t* @methodOf smb-app.smbUserDataStore\n\t\t\t\t* @kind function\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Unlocks a user\n\t\t\t\t*\n\t\t\t\t* @returns {Deferred} A promise that will resolve\n\t\t\t\t* \n\t\t\t\t*/\n\t\t\t\tunlockUser: unlockUser,\n\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc property\n\t\t\t\t* @name smbUserDataStore#user\n\t\t\t\t* @propertyOf smb-app.smbUserDataStore\n\t\t\t\t* @kind property\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* A user\n\t\t\t\t* \n\t\t\t\t* @returns {object} A user\n\t\t\t\t*/\n\t\t\t\tget user() { return _user; },\n\t\t\t\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc property\n\t\t\t\t* @name smbUserDataStore#isSiteAdmin\n\t\t\t\t* @propertyOf smb-app.smbUserDataStore\n\t\t\t\t* @kind property\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Set user site admin role\n\t\t\t\t*/\n\t\t\t\tset isSiteAdmin(val) { setSiteAdmin(val); setUserAdmin(val);},\n\t\t\t\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc property\n\t\t\t\t* @name smbUserDataStore#isSiteAdmin\n\t\t\t\t* @propertyOf smb-app.smbUserDataStore\n\t\t\t\t* @kind property\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Get user site admin role\n\t\t\t\t*/\n\t\t\t\tget isSiteAdmin() { return _user ? _user.Embedded.Roles.indexOf('SiteAdmin') > -1 : false;},\n\t\t\t\t/**\n\t\t\t\t* @ngdoc property\n\t\t\t\t* @name smbUserDataStore#isUsereAdmin\n\t\t\t\t* @propertyOf smb-app.smbUserDataStore\n\t\t\t\t* @kind property\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Set user user admin role\n\t\t\t\t*/\n\t\t\t\tset isUserAdmin(val) { setUserAdmin(val);},\n\t\t\t\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc property\n\t\t\t\t* @name smbUserDataStore#isUsereAdmin\n\t\t\t\t* @propertyOf smb-app.smbUserDataStore\n\t\t\t\t* @kind property\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Get user user admin role\n\t\t\t\t*/\n\t\t\t\tget isUserAdmin() { return _user ? _user.Embedded.Roles.indexOf('UserAdmin') > -1 : false;}\n\t\t\t};\n\t\n\t\t\tfunction getUser(userId) {\n\t\t\t\tif (!userId) {\n\t\t\t\t\t_user = angular.copy(_newUser);\n\t\t\t\t\treturn $q.resolve(_user);\n\t\t\t\t}\n\t\t\t\treturn sbUserService.getUser(userId, pxAuthService.deploymentId).then(function (response) {\n\t\t\t\t\t//clean duplicate roles\n\t\t\t\t\tresponse.Embedded.Roles = response.Embedded.Roles.filter(function (v, i, a) { return a.indexOf(v) === i; });\n\t\t\t\t\t_user = response;\n\t\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction addUser(user) {\n\t\t\t\treturn sbUserService.addUser(user, pxAuthService.systemName).then(function (response) {\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction updateUser(user) {\n\t\t\t\treturn sbUserService.updateUser(user, pxAuthService.deploymentId).then(function (response) {\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction lockUser(userId) {\n\t\t\t\treturn sbUserService.lockUser(userId, pxAuthService.deploymentId).then(function (response) {\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction unlockUser(userId) {\n\t\t\t\treturn sbUserService.unlockUser(userId, pxAuthService.deploymentId).then(function (response) {\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction setSiteAdmin(val) {\n\t\t\t\tvar index = _user.Embedded.Roles.indexOf('SiteAdmin');\n\t\t\t\tif (!val && index > -1) {\n\t\t\t\t\t//remove role\n\t\t\t\t\t_user.Embedded.Roles.splice(index, 1);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tif (val && index === -1) {\n\t\t\t\t\t//add role\n\t\t\t\t\t_user.Embedded.Roles.push('SiteAdmin');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction setUserAdmin(val) {\n\t\t\t\tvar index = _user.Embedded.Roles.indexOf('UserAdmin');\n\t\t\t\tif (!val && index > -1) {\n\t\t\t\t\t//remove role\n\t\t\t\t\t_user.Embedded.Roles.splice(index, 1);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tif (val && index === -1) {\n\t\t\t\t\t//add role\n\t\t\t\t\t_user.Embedded.Roles.push('UserAdmin');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t})();\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\t/**\n\t\t* @ngdoc service\n\t\t* @name smb-app.smbUserGroupDataStore\n\t\t* \n\t\t* @description \n\t\t* A datastore used to retrieve and interact with a smb-app user group\n\t\t**/\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbUserGroupDataStore',\n\t\t\t[\n\t\t\t\t'$q',\n\t\t\t\t'pxAuthService',\n\t\t\t\t'sbUserGroupService',\n\t\t\t\t'smbSortService',\n\t\t\t\tUserGroupDataStore\n\t\t\t]);\n\t\n\t\tfunction UserGroupDataStore($q, pxAuthService, sbUserGroupService, smbSortService) {\n\t\t\tvar _userGroup = null;\n\t\n\t\t\tvar _newUserGroup = {\n\t\t\t\tUserGroupName: '',\n\t\t\t\tEmbedded: {\n\t\t\t\t\tUsers: []\n\t\t\t\t}\n\t\t\t};\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbUserGroupDataStore#getUserGroup\n\t\t\t\t* @methodOf smb-app.smbUserGroupDataStore\n\t\t\t\t* @kind function\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Gets a user group\n\t\t\t\t*\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a user group\n\t\t\t\t* \n\t\t\t\t*/\n\t\t\t\tgetUserGroup: getUserGroup,\n\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbUserGroupDataStore#saveUserGroup\n\t\t\t\t* @methodOf smb-app.smbUserGroupDataStore\n\t\t\t\t* @kind function\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Saves a UserGroup\n\t\t\t\t*\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a saved user group\n\t\t\t\t* \n\t\t\t\t*/\n\t\t\t\tsaveUserGroup: saveUserGroup,\n\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbUserGroupDataStore#containsUser\n\t\t\t\t* @methodOf smb-app.smbUserGroupDataStore\n\t\t\t\t* @kind function\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Determines whether a user exists in the user group's collection of users\n\t\t\t\t*\n\t\t\t\t* @returns {boolean} A boolean represnetation of a user's existance in the user group's collection of users\n\t\t\t\t* \n\t\t\t\t*/\n\t\t\t\tcontainsUser: containsUser,\n\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc property\n\t\t\t\t* @name smbUserGroupDataStore#userGroup\n\t\t\t\t* @propertyOf smb-app.smbUserGroupDataStore\n\t\t\t\t* @kind property\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* A user group\n\t\t\t\t* \n\t\t\t\t* @returns {object} A user group\n\t\t\t\t*/\n\t\t\t\tget userGroup() { return _userGroup; }\n\t\t\t};\n\t\n\t\t\tfunction getUserGroup(userGroupId) {\n\t\t\t\tif (!userGroupId) {\n\t\t\t\t\t_userGroup = angular.copy(_newUserGroup);\n\t\n\t\t\t\t\treturn $q.resolve(_userGroup);\n\t\t\t\t}\n\t\t\t\treturn sbUserGroupService\n\t\t\t\t\t.getUserGroup(userGroupId, pxAuthService.systemName)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\tresponse.Embedded.Users.sort(smbSortService.sortObjectByStringProperty('UserName'));\n\t\t\t\t\t\t_userGroup = response;\t\t\t\t\n\t\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction saveUserGroup() {\n\t\t\t\tif (_userGroup.UserGroupId) {\n\t\t\t\t\treturn sbUserGroupService\n\t\t\t\t\t\t.updateUserGroup(_userGroup, pxAuthService.systemName)\n\t\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t\t_userGroup = response;\n\t\n\t\t\t\t\t\t\treturn response;\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturn sbUserGroupService\n\t\t\t\t\t\t.addUserGroup(_userGroup, pxAuthService.systemName)\n\t\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t\t_userGroup = response;\n\t\n\t\t\t\t\t\t\treturn response;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction containsUser(user) {\n\t\t\t\tfor (var i = 0; i < _userGroup.Embedded.Users.length; i++) {\n\t\t\t\t\tif (_userGroup.Embedded.Users[i].UserId === user.UserId) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\n\t})();\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\t/**\n\t\t* @ngdoc service\n\t\t* @name smb-app.smbUserGroupsDataStore\n\t\t* \n\t\t* @description \n\t\t* A datastore used to retrieve smb-app user groups\n\t\t**/\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbUserGroupsDataStore',\n\t\t\t[\n\t\t\t\t'pxAuthService',\n\t\t\t\t'sbUserGroupsService',\n\t\t\t\tUserGroupsDataStore\n\t\t\t]);\n\t\n\t\tfunction UserGroupsDataStore(pxAuthService, sbUserGroupsService) {\n\t\t\tvar _userGroups = [];\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbUserGroupsDataStore#getUserGroups\n\t\t\t\t* @methodOf smb-app.smbUserGroupsDataStore\n\t\t\t\t* @kind function\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Gets a collection of user groups\n\t\t\t\t*\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a collection of user groups\n\t\t\t\t* \n\t\t\t\t*/\n\t\t\t\tgetUserGroups: getUserGroups,\n\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc property\n\t\t\t\t* @name smbUserGroupsDataStore#userGroups\n\t\t\t\t* @propertyOf smb-app.smbUserGroupsDataStore\n\t\t\t\t* @kind property\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* A collection of user groups\n\t\t\t\t* \n\t\t\t\t* @returns {array} An array of user groups\n\t\t\t\t*/\n\t\t\t\tget userGroups() { return _userGroups; }\n\t\t\t};\n\t\n\t\t\tfunction getUserGroups() {\n\t\t\t\treturn sbUserGroupsService\n\t\t\t\t\t.getUserGroups(pxAuthService.systemName)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t_userGroups = response;\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\n\t})();\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\t/**\n\t\t* @ngdoc service\n\t\t* @name smb-app.smbUsersDataStore\n\t\t* \n\t\t* @description \n\t\t* A datastore used to retrieve smb-app users\n\t\t**/\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbUsersDataStore',\n\t\t\t[\n\t\t\t\t'pxAuthService',\n\t\t\t\t'sbUsersService',\n\t\t\t\tUsersDataStore\n\t\t\t]);\n\t\n\t\tfunction UsersDataStore(pxAuthService, sbUsersService) {\n\t\t\tvar _users = [];\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t* @ngdoc method\n\t\t\t\t* @name smbUsersDataStore#getUsers\n\t\t\t\t* @methodOf smb-app.smbUsersDataStore\n\t\t\t\t* @kind function\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* Gets a collection of users\n\t\t\t\t*\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a collection of users\n\t\t\t\t* \n\t\t\t\t*/\n\t\t\t\tgetUsers: getUsers,\n\t\n\t\t\t\t/**\n\t\t\t\t* @ngdoc property\n\t\t\t\t* @name smbUsersDataStore#users\n\t\t\t\t* @propertyOf smb-app.smbUsersDataStore\n\t\t\t\t* @kind property\n\t\t\t\t*\n\t\t\t\t* @description\n\t\t\t\t* A collection of users\n\t\t\t\t* \n\t\t\t\t* @returns {array} An array of users\n\t\t\t\t*/\n\t\t\t\tget users() { return _users; }\n\t\t\t};\n\t\n\t\t\tfunction getUsers() {\n\t\t\t\treturn sbUsersService\n\t\t\t\t\t.getUsers(pxAuthService.systemName)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t_users = response;\t\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\n\t})();\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports) {\n\n\t/* jshint maxcomplexity: false */\n\t/* jshint maxstatements: false */\n\t/* jshint bitwise: false */\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.constant('SMB_SITE_ADMIN_GROUP', '&&_AIRBASE_SITE_ADMIN')\n\t\t\t.constant('SMB_RIGHTS_TYPE', {\n\t\t\t\tadmin: 1,\n\t\t\t\tfullRights: 2,\n\t\t\t\tviewRights: 3,\n\t\t\t\teditRights: 4\n\t\t\t})\n\t\t\t.factory('SMB_RIGHTS', ['gettextCatalog', 'PX_PERMISSION_TYPE', 'SMB_SITE_ADMIN_GROUP', function(gettextCatalog, PX_PERMISSION_TYPE, SMB_SITE_ADMIN_GROUP) {\n\t\t\t\treturn [\n\t\t\t\t\t{id: '', param: 0, name: ''},\n\t\t\t\t\t{id: 1, param: PX_PERMISSION_TYPE.FULLCONTROL, name: SMB_SITE_ADMIN_GROUP},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 2,\n\t\t\t\t\t\tparam: PX_PERMISSION_TYPE.READ | PX_PERMISSION_TYPE.ADDDOC | PX_PERMISSION_TYPE.READDOC | PX_PERMISSION_TYPE.MODDOC | PX_PERMISSION_TYPE.DELDOC | PX_PERMISSION_TYPE.READFOLD | PX_PERMISSION_TYPE.MODFOLD | PX_PERMISSION_TYPE.DNLDDOC,\n\t\t\t\t\t\tname: gettextCatalog.getString('Full Rights')\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 3,\n\t\t\t\t\t\tparam: PX_PERMISSION_TYPE.READ | PX_PERMISSION_TYPE.READDOC | PX_PERMISSION_TYPE.READFOLD,\n\t\t\t\t\t\tname: gettextCatalog.getString('View Rights')\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 4,\n\t\t\t\t\t\tparam: PX_PERMISSION_TYPE.READ | PX_PERMISSION_TYPE.ADDDOC | PX_PERMISSION_TYPE.READDOC | PX_PERMISSION_TYPE.MODDOC | PX_PERMISSION_TYPE.READFOLD | PX_PERMISSION_TYPE.MODFOLD | PX_PERMISSION_TYPE.DNLDDOC,\n\t\t\t\t\t\tname: gettextCatalog.getString('Edit Rights')\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t}])\n\t\t\t/**\n\t\t\t * @ngdoc service\n\t\t\t * @name smb-app.smbAclService\n\t\t\t *\n\t\t\t * @description\n\t\t\t * A service for easily creating document groups based on the\n\t\t\t * three different predefined access levels for document groups.\n\t\t\t */\n\t\t\t.factory('smbAclService', [\n\t\t\t\t'$http',\n\t\t\t\t'$q',\n\t\t\t\t'pxUriPathService',\n\t\t\t\t'PX_PERMISSION_TYPE',\n\t\t\t\t'PX_ACL_CONST',\n\t\t\t\t'PX_OBJECT_TYPE',\n\t\t\t\t'SMB_RIGHTS_TYPE',\n\t\t\t\t'SMB_RIGHTS',\n\t\t\t\t'SMB_SITE_ADMIN_GROUP',\n\t\t\t\tAclService\n\t\t\t]);\n\t\n\t\tfunction AclService(\n\t\t\t$http,\n\t\t\t$q,\n\t\t\tpxUriPathService,\n\t\t\tPX_PERMISSION_TYPE,\n\t\t\tPX_ACL_CONST,\n\t\t\tPX_OBJECT_TYPE,\n\t\t\tSMB_RIGHTS_TYPE,\n\t\t\tSMB_RIGHTS,\n\t\t\tSMB_SITE_ADMIN_GROUP\n\t\t) {\n\t\n\t\t\t/**\n\t\t\t * @description\n\t\t\t * An object that represents a single user group's access level to\n\t\t\t * a single document group.\n\t\t\t *\n\t\t\t * @param {any} right The access rights for the document group and user group\n\t\t\t * @param {any} objectType The object type; can be document, document group, or document type. Almost always library.\n\t\t\t * @param {any} objectId The id of the object; typically the document group id.\n\t\t\t * @param {any} userGroup The user group the access rights are for.\n\t\t\t */\n\t\t\tfunction Acl(right, objectType, objectId, userGroup) {\n\t\t\t\tthis._right = right;\n\t\t\t\tthis._objectType = objectType;\n\t\t\t\tthis._objectId = objectId;\n\t\t\t\tthis._userGroup = userGroup;\n\t\t\t}\n\t\n\t\t\t/**\n\t\t\t * @description\n\t\t\t * Returns true if the acl represents admin rights to the given object.\n\t\t\t *\n\t\t\t * @returns {Boolean} True if the acl represents admin rights and false otherwise.\n\t\t\t */\n\t\t\tAcl.prototype.hasAdminAccess = function hasAdminAccess() {\n\t\t\t\treturn this._right.id === SMB_RIGHTS_TYPE.admin;\n\t\t\t};\n\t\n\t\t\t/**\n\t\t\t * @description\n\t\t\t * Returns true if the acl represents full access rights to the given object.\n\t\t\t *\n\t\t\t * @returns {Boolean} True if the acl represents full access rights and false otherwise.\n\t\t\t */\n\t\t\tAcl.prototype.hasFullAccess = function hasFullAccess() {\n\t\t\t\treturn this.hasAllPermissions(SMB_RIGHTS[SMB_RIGHTS_TYPE.fullRights].param);\n\t\t\t};\n\t\n\t\t\t/**\n\t\t\t * @description\n\t\t\t * Returns true if the acl represents view access rights to the given object\n\t\t\t *\n\t\t\t * @returns {Boolean} True if the acl represents view access rights and false otherwise.\n\t\t\t */\n\t\t\tAcl.prototype.hasViewAccess = function hasViewAccess() {\n\t\t\t\treturn this.hasAllPermissions(SMB_RIGHTS[SMB_RIGHTS_TYPE.viewRights].param);\n\t\t\t};\n\t\n\t\t\t/**\n\t\t\t * @description\n\t\t\t * Returns true if the acl represents edit access rights to the given object.\n\t\t\t */\n\t\t\tAcl.prototype.hasEditAccess = function hasEditAccess() {\n\t\t\t\treturn this.hasAllPermissions(SMB_RIGHTS[SMB_RIGHTS_TYPE.editRights].param);\n\t\t\t};\n\t\n\t\t\t/**\n\t\t\t * Check if the ACL has all of the specified permissions.\n\t\t\t *\n\t\t\t * @param {number} perm The permissions to check against the acl.\n\t\t\t * @returns {boolean} True if the instance has access to all given permissions and false otherwise.\n\t\t\t */\n\t\t\tAcl.prototype.hasAllPermissions = function hasAllPermissions(perm) {\n\t\t\t\treturn (this._right.param & perm) === perm;\n\t\t\t};\n\t\n\t\t\t/**\n\t\t\t * @description\n\t\t\t * Creates an object that represents the acl type expected by the Phoenix API.\n\t\t\t *\n\t\t\t * @returns {Object} An ACL object that is compatible with the Phoenix API.\n\t\t\t */\n\t\t\tAcl.prototype.toServerAcl = function() {\n\t\t\t\tvar serverAcl = {\n\t\t\t\t\tRoleName: null,\n\t\t\t\t\tUserGroupId: this._userGroup.UserGroupId,\n\t\t\t\t\tUserGroupName: this._userGroup.UserGroupName,\n\t\t\t\t\tEmbedded: { Permissions: [] }\n\t\t\t\t};\n\t\n\t\t\t\tswitch (this._objectType) {\n\t\t\t\t\tcase PX_OBJECT_TYPE.DOCUMENT:\n\t\t\t\t\t\tserverAcl.DocumentId = this._objectId;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase PX_OBJECT_TYPE.FOLDER:\n\t\t\t\t\t\tserverAcl.FolderId = this._objectId;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase PX_OBJECT_TYPE.LIBRARY:\n\t\t\t\t\t\tserverAcl.LibraryId = this._objectId;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\n\t\t\t\tvar permissionVal = PX_PERMISSION_TYPE.FULLCONTROL;\n\t\t\t\twhile (permissionVal < PX_ACL_CONST.MaxPermission) {\n\t\t\t\t\tvar newPerm = {\n\t\t\t\t\t\tPermissionValue: permissionVal,\n\t\t\t\t\t\tAllow: false,\n\t\t\t\t\t\tDeny: false\n\t\t\t\t\t};\n\t\n\t\t\t\t\tif (this._right.id === SMB_RIGHTS_TYPE.admin) {\n\t\t\t\t\t\tnewPerm.Allow = permissionVal === PX_PERMISSION_TYPE.FULLCONTROL;\n\t\t\t\t\t} else if (this._right.id === SMB_RIGHTS_TYPE.fullRights) {\n\t\t\t\t\t\tnewPerm.Allow = permissionVal === PX_PERMISSION_TYPE.READ ||\n\t\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.ADDDOC ||\n\t\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.MODDOC ||\n\t\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.READDOC ||\n\t\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.DELDOC ||\n\t\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.READFOLD ||\n\t\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.DNLDDOC ||\n\t\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.MODFOLD;\n\t\t\t\t\t} else if (this._right.id === SMB_RIGHTS_TYPE.viewRights) {\n\t\t\t\t\t\tnewPerm.Allow = permissionVal === PX_PERMISSION_TYPE.READ ||\n\t\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.READDOC ||\n\t\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.READFOLD;\n\t\t\t\t\t} else if (this._right.id === SMB_RIGHTS_TYPE.editRights) {\n\t\t\t\t\t\tvar x = this._right.param & permissionVal;\n\t\t\t\t\t\tnewPerm.Allow = x === permissionVal;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tserverAcl.Embedded.Permissions.push(newPerm);\n\t\n\t\t\t\t\tif (permissionVal < 0) {\n\t\t\t\t\t\tpermissionVal = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t/* jshint -W016 */\n\t\t\t\t\t\tpermissionVal <<= 1;\n\t\t\t\t\t\t/* jshint +W016 */\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn serverAcl;\n\t\t\t};\n\t\n\t\t\tObject.defineProperties(Acl.prototype, {\n\t\t\t\t'objectId': {\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return this._objectId; }\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\t/**\n\t\t\t * @description\n\t\t\t * A factory method that creates an Acl instance from a Phoenix API representation\n\t\t\t * of an ACL.\n\t\t\t *\n\t\t\t * @param {Object} serverAcl A Phoenix API ACL object.\n\t\t\t *\n\t\t\t * @returns {Acl} An Acl instance that represents the API acl.\n\t\t\t */\n\t\t\tAcl.fromServerAcl = function fromServerAcl(serverAcl) {\n\t\t\t\tvar rights = SMB_RIGHTS.find(function(r) {\n\t\t\t\t\treturn r.param === serverAcl.Privileges;\n\t\t\t\t});\n\t\n\t\t\t\tif (!rights) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\treturn new Acl(rights, serverAcl.LibraryId, {\n\t\t\t\t\tUserGroupId: serverAcl.UserGroupId,\n\t\t\t\t\tUserGroupName: serverAcl.UserGroupName\n\t\t\t\t});\n\t\t\t};\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbAclService#createAdminRights\n\t\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Creates and admin level acl for a document group\n\t\t\t\t *\n\t\t\t\t * @param {ObjectId} documentGroupId The document group to create the acl for\n\t\t\t\t * @param {ObjectId} userGroupId Id of the admin user group.\n\t\t\t\t *\n\t\t\t\t * @returns {Acl} An instance of @see Acl\n\t\t\t\t */\n\t\t\t\tcreateAdminRights: createAdminRights,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbAclService#createFullAccessRights\n\t\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Creates a full access level acl for a specific document group\n\t\t\t\t *\n\t\t\t\t * @param {ObjectId} documentGroupId The document group to create the acl for\n\t\t\t\t * @param {Object} userGroup The user group to create the ACL for\n\t\t\t\t */\n\t\t\t\tcreateFullAccessRights: createFullAccessRights,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbAclService#createViewAccessRights\n\t\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Creates a view access acl for a specific document group\n\t\t\t\t *\n\t\t\t\t * @param {ObjectId} documentGroupId The document group id to create the acl for\n\t\t\t\t * @param {Object} userGroup The user group to create the acl for\n\t\t\t\t */\n\t\t\t\tcreateViewAccessRights: createViewAccessRights,\n\t\n\t\t\t\tcreateEditAccessRights: createEditAccessRights,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbAclService#saveDocumentGroupAcls\n\t\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Save a list of Acl objects for a specific document group.\n\t\t\t\t *\n\t\t\t\t * @param {ObjectId} documentGroupId The id of the document group to save the acls to\n\t\t\t\t * @param {Acl[]} acls An array of Acl objects.\n\t\t\t\t *\n\t\t\t\t * @returns {Promise} An object that resolves to an array of the Acl objects\n\t\t\t\t * that were just saved.\n\t\t\t\t */\n\t\t\t\tsaveDocumentGroupAcls: saveDocumentGroupAcls,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbAclService#getUserPermissionsForDocumentGroup\n\t\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Gets the current user's permission for a document group.\n\t\t\t\t *\n\t\t\t\t * @param {ObjectId} documentGroupId The id of the document group whose user permissions are being retrieved.\n\t\t\t\t *\n\t\t\t\t * @returns {Promise} A promise that resolves to an Acl object.\n\t\t\t\t */\n\t\t\t\tgetUserPermissionsForDocumentGroup: getUserPermissionsForDocumentGroup,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbAclService#getUserPermissionsForDocumentType\n\t\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t\t * @kind function\n\t\t\t\t *\n\t\t\t\t * @description\n\t\t\t\t * Gets the current user's permission for a document type.\n\t\t\t\t *\n\t\t\t\t * @param {ObjectId} documentTypeId The id of the document type whose user permissions are being retrieved.\n\t\t\t\t *\n\t\t\t\t * @returns {Promise} A promise that resolves to an Acl object.\n\t\t\t\t */\n\t\t\t\tgetUserPermissionsForDocumentType: getUserPermissionsForDocumentType\n\t\t\t};\n\t\n\t\t\tfunction createAdminRights(documentGroupId, userGroupId) {\n\t\t\t\treturn new Acl(SMB_RIGHTS[SMB_RIGHTS_TYPE.admin], PX_OBJECT_TYPE.LIBRARY, documentGroupId, {\n\t\t\t\t\tUserGroupId: userGroupId,\n\t\t\t\t\tUserGroupName: SMB_SITE_ADMIN_GROUP\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction createFullAccessRights(documentGroupId, userGroup) {\n\t\t\t\treturn new Acl(SMB_RIGHTS[SMB_RIGHTS_TYPE.fullRights], PX_OBJECT_TYPE.LIBRARY, documentGroupId, userGroup);\n\t\t\t}\n\t\n\t\t\tfunction createViewAccessRights(documentGroupId, userGroup) {\n\t\t\t\treturn new Acl(SMB_RIGHTS[SMB_RIGHTS_TYPE.viewRights], PX_OBJECT_TYPE.LIBRARY, documentGroupId, userGroup);\n\t\t\t}\n\t\n\t\t\tfunction createEditAccessRights(documentGroupId, userGroup) {\n\t\t\t\treturn new Acl(SMB_RIGHTS[SMB_RIGHTS_TYPE.editRights], PX_OBJECT_TYPE.LIBRARY, documentGroupId, userGroup);\n\t\t\t}\n\t\n\t\t\tfunction saveDocumentGroupAcls(documentGroupId, acls) {\n\t\t\t\tvar url = pxUriPathService.resolvePath('/libraries/' + documentGroupId + '/permissions/replace');\n\t\t\t\tacls = acls.map(function(acl) { return acl.toServerAcl(); });\n\t\t\t\treturn $http.post(url, acls)\n\t\t\t\t\t.then(function() { return acls; });\n\t\t\t}\n\t\n\t\t\tfunction getUserPermissionsForDocumentGroup(documentGroupId) {\n\t\t\t\tvar url = '/libraries/' + documentGroupId + '/permissionsforuser';\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath(url))\n\t\t\t\t\t.then(function(res) { return res.data; })\n\t\t\t\t\t.then(getAclWithMostAccess)\n\t\t\t\t\t.then(Acl.fromServerAcl);\n\t\t\t}\n\t\n\t\t\tfunction getUserPermissionsForDocumentType(documentTypeId) {\n\t\t\t\tvar url = '/f/' + documentTypeId + '/permissionsforuser';\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath(url))\n\t\t\t\t\t.then(function(res) { return res.data; })\n\t\t\t\t\t.then(getAclWithMostAccess)\n\t\t\t\t\t.then(Acl.fromServerAcl);\n\t\t\t}\n\t\n\t\t\tfunction getAclWithMostAccess(acls) {\n\t\t\t\treturn acls.reduce(function(prev, curr) {\n\t\t\t\t\tvar cmp = cmpAcl(prev, curr);\n\t\t\t\t\treturn cmp <= 0 ? prev : curr;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction cmpAcl(acl1, acl2) {\n\t\t\t\treturn acl2.Privileges - acl1.Privileges;\n\t\t\t}\n\t\n\t\t\tfunction filterOwnerAcl(acl) {\n\t\t\t\treturn acl.RoleName !== 'Owner';\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeConfigService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', ContentTypeConfigService]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeConfigService\n\t\t * \n\t\t * @description\n\t\t * Exposes methods for retrieving, updating, and creating content types.\n\t\t */\n\t\tfunction ContentTypeConfigService($http, $q, gettextCatalog, pxUriPathService) {\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeConfigService.getContentType\n\t\t\t\t * @methodOf smb-app.smbContentTypeConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Retrieves a single content type by id.\n\t\t\t\t * \n\t\t\t\t * @param {String} groupId Id of the content type group the type belongs to\n\t\t\t\t * @param {String} id The id of the content type to retrieve.\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to the content type.\n\t\t\t\t */\n\t\t\t\tgetContentType: getContentType,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeConfigService.addContentType\n\t\t\t\t * @methodOf smb-app.smbContentTypeConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Creates a new content type that belongs to a specific content type group\n\t\t\t\t * \n\t\t\t\t * @param {String} groupId Id of the content type group the new content type belongs to\n\t\t\t\t * @param {Object} contentType An object that represents the new content type\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to the newly created content type.\n\t\t\t\t */\n\t\t\t\taddContentType: addContentType,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeConfigService.updateContentType\n\t\t\t\t * @methodOf smb-app.smbContentTypeConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Updates an existing content type\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to the updated content type.\n\t\t\t\t */\n\t\t\t\tupdateContentType: updateContentType\n\t\t\t};\n\t\n\t\t\tfunction getContentType(groupId, id) {\n\t\t\t\tif (!id) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type id')));\n\t\t\t\t}\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + id);\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction addContentType(groupId, contentType) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t\t} else if (!contentType) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type')));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/folders');\n\t\t\t\treturn $http.post(uri, contentType)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction updateContentType(groupId, contentType) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t\t} else if (!contentType) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type')));\n\t\t\t\t}\n\t\t\t\treturn $http.patch(pxUriPathService.resolvePath('/f/' + contentType.FolderId), contentType)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\treturn res.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeGroupConfigService',\n\t\t\t[\n\t\t\t\t'$http',\n\t\t\t\t'pxUriPathService',\n\t\t\t\tContentTypeGroupConfigService\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeGroupConfigService\n\t\t * \n\t\t * @description\n\t\t * A service that exposes methods for creating and updating content type groups.\n\t\t */\n\t\tfunction ContentTypeGroupConfigService($http, pxUriPathService) {\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupConfigService#createContentTypeGroup\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Creates a new content type group in the system.\n\t\t\t\t * \n\t\t\t\t * @param {Object} group An object representing the content type group to create\n\t\t\t\t *\n\t\t\t\t * @returns {Promise} A promise that resolves to the newly created content type group\n\t\t\t\t */\n\t\t\t\tcreateContentTypeGroup: createContentTypeGroup,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupConfigService#createContentTypeGroup\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Saves changes made to an existing content type group\n\t\t\t\t * \n\t\t\t\t * @param {Object} group An object that represents an existing content type group\n\t\t\t\t * \n\t\t\t\t * @returns {Promise} A promise that resolves to the content type group that was changed\n\t\t\t\t */\n\t\t\t\teditContentTypeGroup: editContentTypeGroup\n\t\t\t};\n\t\n\t\t\tfunction createContentTypeGroup(group) {\n\t\t\t\treturn $http.post(pxUriPathService.resolvePath('/libraries'), group)\n\t\t\t\t\t.then(function (res) { return res.data; });\n\t\t\t}\n\t\n\t\t\tfunction editContentTypeGroup(group) {\n\t\t\t\treturn $http.patch(pxUriPathService.resolvePath('/libraries/' + group.LibraryId), group)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\treturn res.data;\n\t\t\t\t\t});\n\t\t\t}\t\n\t\t}\n\t}());\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeGroupTagTypeConfigService', [\n\t\t\t\t'$http',\n\t\t\t\t'$q',\n\t\t\t\t'pxUriPathService',\n\t\t\t\tContentTypeGroupTagTypeConfigService\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @typedef {Object} TagTypeConstraints\n\t\t * @property {String} DefaultValue A default value for a tag type\n\t\t * @property {String[]} DataSetValues An array of values for the tag type. If this exists\n\t\t * the tag type value must be one of the values in this array.\n\t\t */\n\t\n\t\t/**\n\t\t * @typedef {Object} TagTypeLinks\n\t\t * @property {String} TagValuesUri Uri to get all tag values associated to a tag type.\n\t\t * @property {String} DataSetValuesUri Uri to get the data set values for a tag type.\n\t\t */\n\t\t\n\t\t/**\n\t\t * @typedef {Object} TagType\n\t\t * @property {Number} TagTypeId The unique id of the tag type.\n\t\t * @property {String} TagTypeName The name of the tag type.\n\t\t * @property {String} FlavorName The flavor name? TODO: Not sure what this is\n\t\t * @property {Number} DataType Numeric representation of the data type.\n\t\t * @property {String} DataTypeName String representation of the data type.\n\t\t * @property {TagTypeConstraints} Constraints The contraints for the tag type.\n\t\t * @property {TagTypeLinks} Links The related links for a tag type.\n\t\t */\n\t\n\t\t/**\n\t\t * @typedef {Object} CreateTagType\n\t\t * @description\n\t\t * Defines the minimum required properties on an object used to create a new tag type.\n\t\t * @property {String} TagTypeName The name for the new tag type.\n\t\t * @property {Number} DataType Numeric representation of the tag types data type.\n\t\t * @property {TagTypeConstraints} Contraints Can optionally specify the constraints when creating the tag type.\n\t\t */\n\t\n\t\t/**\n\t\t* @ngdoc service\n\t\t* @name smb-app.smbContentTypeGroupTagTypeConfigService\n\t\t*\n\t\t* @description\n\t\t* Exposes methods for configuring tag types for content type groups\n\t\t*/\n\t\tfunction ContentTypeGroupTagTypeConfigService($http, $q, pxUriPathService) {\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupTagTypeConfigService#getTagTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupTagTypeConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets the collection of all tag types associated with a content type group.\n\t\t\t\t * \n\t\t\t\t * @param {String} groupId Id of the content type group\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of\n\t\t\t\t * all TagType objects associated with the content type group.\n\t\t\t\t */\n\t\t\t\tgetTagTypes: getTagTypes,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupTagTypeConfigService#createTagType\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupTagTypeConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Creates a new tag type and associates it with a content type group.\n\t\t\t\t * \n\t\t\t\t * @param {String} groupId Id of the content type group to associate the\n\t\t\t\t * new tag type with.\n\t\t\t\t * @param {CreateTagType} tagType The tag type object to create\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} Returns a promise that resolves to the newly\n\t\t\t\t * created tag type.\n\t\t\t\t */\n\t\t\t\tcreateTagType: createTagType,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupTagTypeConfigService#editTagType\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupTagTYpeConfigService\n\t\t\t\t * @kind method\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Saves changes to an existing tag type.\n\t\t\t\t * \n\t\t\t\t * @param {ObjectId} groupId Id the the document type group that owns the tag type.\n\t\t\t\t * @param {TagType} tagType The tag type object to update\n\t\t\t\t * \n\t\t\t\t * @returns {Promise} A promise that resolves to the tag type that was updated.\n\t\t\t\t */\n\t\t\t\teditTagType: editTagType\n\t\t\t};\n\t\n\t\t\tfunction getTagTypes(groupId) {\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/tagtypes');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\treturn res.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction createTagType(groupId, tagType) {\n\t\t\t\tif (!tagType) {\n\t\t\t\t\treturn $q.reject(new Error('Invalid request: Must specify the tag type to create'));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/tagtypes');\n\t\t\t\treturn $http.post(uri, tagType)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\treturn res.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction editTagType(groupId, tagType) {\n\t\t\t\tvar url = '/libraries/' + groupId + '/tagtypes/' + tagType.TagTypeId;\n\t\t\t\treturn $http.patch(pxUriPathService.resolvePath(url), tagType)\n\t\t\t\t\t.then(function(res) { return res.data; });\n\t\t\t}\n\t\n\t\t}\n\t}());\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeTagTypeConfigService', [\n\t\t\t\t'$http',\n\t\t\t\t'$q',\n\t\t\t\t'pxUriPathService',\n\t\t\t\tContentTypeTagTypeConfigService\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @typedef {Object} TagTypeAssoication\n\t\t * @param {Number} TagTypeId The id of the tag type being associated with an item\n\t\t */\n\t\n\t\t/**\n\t\t* @ngdoc service\n\t\t* @name smb-app.smbContentTypeTagTypeConfigService\n\t\t*\n\t\t* @description\n\t\t* Exposes methods for adding and removing index types from a library\n\t\t*/\n\t\tfunction ContentTypeTagTypeConfigService($http, $q, pxUriPathService) {\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeTagTypeConfigService#getTagTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypeTagTypeConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets all tag types that are associated with a content type.\n\t\t\t\t * \n\t\t\t\t * @param {String|Number} id The content type id\n\t\t\t\t * \n\t\t\t\t * @returns {Promise} A promise that resolves to a collection of @see TagType objects.\n\t\t\t\t */\n\t\t\t\tgetTagTypes: getTagTypes,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeTagTypeConfigService#setTagTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypeTagTypeConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Sets the tag type associations for a single content type. This function will\n\t\t\t\t * completely replace the current set of associations on the content type with\n\t\t\t\t * this new set.\n\t\t\t\t * \n\t\t\t\t * @param {String|Number} id The content type id\n\t\t\t\t * @param {TagTypeAssoication[]} associations The collection of tag type associations to\n\t\t\t\t * put on the content type. \n\t\t\t\t */\n\t\t\t\tsetTagTypes: setTagTypes\n\t\t\t};\n\t\n\t\t\tfunction getTagTypes(id) {\n\t\t\t\tif (!(typeof id === 'string' || typeof id === 'number')) {\n\t\t\t\t\treturn $q.reject(new Error('Missing required document type id'));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + id + '/tagtypes');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\treturn res.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction setTagTypes(id, associations) {\n\t\t\t\tif (!(typeof id === 'string' || typeof id === 'number')) {\n\t\t\t\t\treturn $q.reject(new Error('Missing required document type id'));\n\t\t\t\t} else if (!associations) {\n\t\t\t\t\treturn $q.reject(new Error('Must specify the associations to add to the document type.'));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + id + '/tagtypes');\n\t\t\t\treturn $http.put(uri, associations)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\treturn associations;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbStatusConfigService', [\n\t\t\t\t'$http',\n\t\t\t\t'$q',\n\t\t\t\t'pxUriPathService',\n\t\t\t\tStatusConfigService\n\t\t\t]);\n\t\n\t\tfunction StatusConfigService($http, $q, pxUriPathService) {\n\t\n\t\t\treturn {\n\t\t\t\tgetStatuses: getStatuses,\n\t\n\t\t\t\tsetStatuses: setStatuses\n\t\t\t};\n\t\n\t\t\tfunction getStatuses(groupId) {\n\t\t\t\tif (!(typeof groupId === 'string' || typeof groupId === 'number')) {\n\t\t\t\t\treturn $q.reject(new Error('Missing required document type group id'));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/tagtypes');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\treturn res.data.filter(function statuses(tt) {\n\t\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_.*/);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction setStatuses(folderId, tagTypeId, constraints) {\n\t\t\t\tif (!(typeof folderId === 'string' || typeof folderId === 'number')) {\n\t\t\t\t\treturn $q.reject(new Error('Missing required document type id'));\n\t\t\t\t} else if (!constraints) {\n\t\t\t\t\treturn $q.reject(new Error('Must specify the constraints to add to the document type.'));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + folderId + '/tagtypes/' + tagTypeId + '/constraints');\n\t\t\t\treturn $http.put(uri, constraints)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\treturn constraints;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentSearchService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', ContentSearchService]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypesService\n\t\t * \n\t\t * @description\n\t\t * Exposes methods for retrieving content types that belong to a content\n\t\t * type group.\n\t\t */\n\t\tfunction ContentSearchService($http, $q, gettextCatalog, pxUriPathService) {\n\t\t\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypesService.getContentTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypesService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets all content types the belong to a content type group\n\t\t\t\t * \n\t\t\t\t * @param {Number} groupId Id of the content type group\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that will resolve to a collection of content types\n\t\t\t\t */\n\t\t\t\tgetDocuments: getDocuments,\n\t\n\t\t\t\tgetContentTypeGroupSearchResults: getContentTypeGroupSearchResults\n\t\t\t};\n\t\n\t\t\tfunction getDocuments(groupId, typeId, tagValues) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/documenttypes/' + typeId + '/search');\n\t\t\t\treturn $http.post(uri, tagValues)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response.data.Embedded.Documents;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getContentTypeGroupSearchResults(groupId, tagValues) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/documenttypegroups/' + groupId + '/search');\n\t\t\t\treturn $http.post(uri, tagValues)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response.data.Embedded.Documents;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeAcls', [\n\t\t\t\t'SMB_RIGHTS_TYPE',\n\t\t\t\t'SMB_RIGHTS',\n\t\t\t\tfunction(SMB_RIGHTS_TYPE, SMB_RIGHTS) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tVIEW_RIGHTS: SMB_RIGHTS[SMB_RIGHTS_TYPE.viewRights].param,\n\t\t\t\t\t\tFULL_RIGHTS: SMB_RIGHTS[SMB_RIGHTS_TYPE.fullRights].param,\n\t\t\t\t\t\tEDIT_RIGHTS: SMB_RIGHTS[SMB_RIGHTS_TYPE.editRights].param,\n\t\t\t\t\t\tREAD_DOCUMENTS: 16,\n\t\t\t\t\t\tCREATE_DOCUMENTS: 8,\n\t\t\t\t\t\tMODIFY_DOCUMENTS: 2\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t]);\n\t}());\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeGroupsSearchService',\n\t\t\t[\n\t\t\t\t'$http',\n\t\t\t\t'pxUriPathService',\n\t\t\t\t'smbContentTypeAcls',\n\t\t\t\tContentTypeGroupsSearchService\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeGroupsService\n\t\t * \n\t\t * @description\n\t\t * A service that exposes methods for creating and updating content type groups.\n\t\t */\n\t\tfunction ContentTypeGroupsSearchService($http, pxUriPathService, smbContentTypeAcls) {\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupsService#createContentTypeGroup\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupsService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Creates a new content type group in the system.\n\t\t\t\t * \n\t\t\t\t * @param {Object} group An object representing the content type group to create\n\t\t\t\t *\n\t\t\t\t * @returns {Promise} A promise that resolves to the newly created content type group\n\t\t\t\t */\n\t\t\t\tgetAllContentTypeGroups: getAllContentTypeGroups,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupsService#createContentTypeGroup\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupsService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Saves changes made to an existing content type group\n\t\t\t\t * \n\t\t\t\t * @param {Object} group An object that represents an existing content type group\n\t\t\t\t * \n\t\t\t\t * @returns {Promise} A promise that resolves to the content type group that was changed\n\t\t\t\t */\n\t\t\t\tgetFullAccessContentTypeGroups: getFullAccessContentTypeGroups\n\t\t\t};\n\t\n\t\t\tfunction getAllContentTypeGroups() {\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/libraries?acl=' + smbContentTypeAcls.READ_DOCUMENTS))\n\t\t\t\t\t.then(function (res) { return res.data.filter(function (lib) {\n\t\t\t\t\t\treturn !lib.IsPrivate;\n\t\t\t\t\t}); \n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getFullAccessContentTypeGroups() {\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/libraries?acl=' + smbContentTypeAcls.CREATE_DOCUMENTS))\n\t\t\t\t\t.then(function (res) { return res.data.filter(function (lib) {\n\t\t\t\t\t\treturn !lib.IsPrivate;\n\t\t\t\t\t}); \n\t\t\t\t});\n\t\t\t}\t\n\t\t}\n\t}());\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypeGroupsService',\n\t\t\t[\n\t\t\t\t'$http',\n\t\t\t\t'pxUriPathService',\n\t\t\t\t'smbContentTypeAcls',\n\t\t\t\tContentTypeGroupsService\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypeGroupsService\n\t\t * \n\t\t * @description\n\t\t * A service that exposes methods for creating and updating content type groups.\n\t\t */\n\t\tfunction ContentTypeGroupsService($http, pxUriPathService, smbContentTypeAcls) {\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupsService#createContentTypeGroup\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupsService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Creates a new content type group in the system.\n\t\t\t\t * \n\t\t\t\t * @param {Object} group An object representing the content type group to create\n\t\t\t\t *\n\t\t\t\t * @returns {Promise} A promise that resolves to the newly created content type group\n\t\t\t\t */\n\t\t\t\tgetAllContentTypeGroups: getAllContentTypeGroups,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypeGroupsService#createContentTypeGroup\n\t\t\t\t * @methodOf smb-app.smbContentTypeGroupsService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Saves changes made to an existing content type group\n\t\t\t\t * \n\t\t\t\t * @param {Object} group An object that represents an existing content type group\n\t\t\t\t * \n\t\t\t\t * @returns {Promise} A promise that resolves to the content type group that was changed\n\t\t\t\t */\n\t\t\t\tgetFullAccessContentTypeGroups: getFullAccessContentTypeGroups\n\t\t\t};\n\t\n\t\t\tfunction getAllContentTypeGroups() {\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/libraries?acl=' + smbContentTypeAcls.READ_DOCUMENTS))\n\t\t\t\t\t.then(function (res) { return res.data.filter(function (lib) {\n\t\t\t\t\t\treturn !lib.IsPrivate;\n\t\t\t\t\t}); \n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getFullAccessContentTypeGroups() {\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/libraries?acl=' + smbContentTypeAcls.CREATE_DOCUMENTS))\n\t\t\t\t\t.then(function (res) { return res.data.filter(function (lib) {\n\t\t\t\t\t\treturn !lib.IsPrivate;\n\t\t\t\t\t}); \n\t\t\t\t});\n\t\t\t}\t\n\t\t}\n\t}());\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypesSearchService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', ContentTypesSearchService]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypesService\n\t\t * \n\t\t * @description\n\t\t * Exposes methods for retrieving content types that belong to a content\n\t\t * type group.\n\t\t */\n\t\tfunction ContentTypesSearchService($http, $q, gettextCatalog, pxUriPathService) {\n\t\t\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypesService.getContentTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypesService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets all content types the belong to a content type group\n\t\t\t\t * \n\t\t\t\t * @param {Number} groupId Id of the content type group\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that will resolve to a collection of content types\n\t\t\t\t */\n\t\t\t\tgetContentTypes: getContentTypes\n\t\t\t};\n\t\n\t\t\tfunction getContentTypes(groupId) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/folders');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response.data.filter(function (lib) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn !lib.IsPrivate;\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbContentTypesService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', ContentTypesService]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypesService\n\t\t * \n\t\t * @description\n\t\t * Exposes methods for retrieving content types that belong to a content\n\t\t * type group.\n\t\t */\n\t\tfunction ContentTypesService($http, $q, gettextCatalog, pxUriPathService) {\n\t\t\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypesService.getContentTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypesService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets all content types the belong to a content type group\n\t\t\t\t * \n\t\t\t\t * @param {Number} groupId Id of the content type group\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that will resolve to a collection of content types\n\t\t\t\t */\n\t\t\t\tgetContentTypes: getContentTypes,\n\t\t\t\tdeleteContentType: deleteContentType\n\t\t\t};\n\t\n\t\t\tfunction getContentTypes(groupId) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/folders');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction deleteContentType(typeId, purge) {\n\t\t\t\tif (!typeId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type id')));\n\t\t\t\t}\n\t\n\t\t\t\tpurge = typeof(purge) === 'boolean' ? purge : false;\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/f/{id}?purge={purge}', {\n\t\t\t\t\tid: typeId,\n\t\t\t\t\tpurge: purge\n\t\t\t\t});\n\t\n\t\t\t\treturn $http.delete(uri);\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbContentUploadService',\n\t\t\t[\n\t\t\t\t'$http',\n\t\t\t\t'$q',\n\t\t\t\t'pxUriPathService',\n\t\t\t\tUploadService\n\t\t\t]);\n\t\n\t\tfunction UploadService($http, $q, pxUriPathService) {\n\t\n\t\t\tvar chunkSize = 1024 * 512;\n\t\n\t\t\treturn {\n\t\n\t\t\t\t/**\n\t\t\t\t* @name uploadFile\n\t\t\t\t* @kind function\n\t\t\t\t* @description\n\t\t\t\t* Uploads a file. This method will chunk the file and upload\n\t\t\t\t* incrementally so as not to avoid request timeouts and content length \n\t\t\t\t* restrictions\n\t\t\t\t*\n\t\t\t\t* @param {number} folderId - The folder to which this document should be posted\n\t\t\t\t* @param {Object} file - A file object which was generated by a browser events\n\t\t\t\t* \n\t\t\t\t* @returns {Deferred} A promise that will resolve when the file\n\t\t\t\t* has finished uploading, or a rejection with an error if a problem\n\t\t\t\t* occurs during the upload process.\n\t\t\t\t*\n\t\t\t\t* @example\n\t\t\t\t* function onFileDrop(e) {\n\t\t\t\t* e.preventDefault();\n\t\t\t\t* e.stopPropagation();\n\t\t\t\t*\n\t\t\t\t* var files = e.originalEvent.dataTransfer.files;\n\t\t\t\t* \n\t\t\t\t* pxUpload.uploadFile(folderId, files[0])\n\t\t\t\t* .then(function() {\n\t\t\t\t* console.log('success!');\n\t\t\t\t* })\n\t\t\t\t* .catch(function(){\n\t\t\t\t* console.log('error!');\n\t\t\t\t* })\n\t\t\t\t* }\n\t\t\t\t*/\n\t\t\t\tuploadFile: uploadFile,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name uploadRevision\n\t\t\t\t * @kind function\n\t\t\t\t * @description\n\t\t\t\t * Upload a file that will be saved as a new revision to an existing document.\n\t\t\t\t * \n\t\t\t\t * @param {Number} documentId The id of the document the revision belongs to.\n\t\t\t\t * @param {Object} file A file object that was generated by browser events.\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that will resolve when the file has finished\n\t\t\t\t * uploading, or a rejection with an error if a problem occurs during the upload process.\n\t\t\t\t */\n\t\t\t\tuploadRevision: uploadRevision,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name revisionUploadSuccess\n\t\t\t\t * @kind property\n\t\t\t\t * @description\n\t\t\t\t * Event that gets emitted when a new revision has been successfully uploaded.\n\t\t\t\t */\n\t\t\t\tget revisionUploadSuccess() { return '@AirBase/RevisionUploadSuccess'; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name revisionUploadClickHandler\n\t\t\t\t * @kind property\n\t\t\t\t * @description\n\t\t\t\t * Click handler for revision upload buttons. Had to do it this way because\n\t\t\t\t * the button click wasn't natively invoking the file input when there is an\n\t\t\t\t * element within the button as well.\n\t\t\t\t * \n\t\t\t\t * @param {Object} scope Angular scope element for the target directive\n\t\t\t\t * @param {Object} element Angular element that represents the directive\n\t\t\t\t * @param {String} targetButton HTML id of the target button\n\t\t\t\t * @param {String} targetInput HTML id of the target file input\n\t\t\t\t */\n\t\t\t\trevisionUploadClickHandler: revisionUploadClickHandler\n\t\t\t};\n\t\n\t\t\tfunction revisionUploadClickHandler(scope, element, targetButton, targetInput) {\n\t\t\t\tvar buttons = element.find('button');\n\t\t\t\tvar inputs = element.find('input');\n\t\n\t\t\t\tvar revisionButton;\n\t\t\t\tvar props = Object.keys(buttons).filter(function(k) { return k !== 'length'; });\n\t\t\t\tvar prop;\n\t\t\t\tfor (prop in props) {\n\t\t\t\t\tif (buttons[prop].getAttribute('id') === targetButton) {\n\t\t\t\t\t\trevisionButton = buttons[prop];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\tvar revisionInput;\n\t\t\t\tprops = Object.keys(inputs).filter(function(k) { return k !== 'length'; });\n\t\t\t\tfor (prop in props) {\n\t\t\t\t\tif (inputs[prop].getAttribute('id') === targetInput) {\n\t\t\t\t\t\trevisionInput = inputs[prop];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\tif (revisionButton && revisionInput) {\n\t\n\t\t\t\t\tvar clickHandler = function() { revisionInput.click(); };\n\t\t\t\t\trevisionButton.addEventListener('click', clickHandler);\n\t\t\t\t\t\n\t\t\t\t\tscope.$on('$destroy', function() {\n\t\t\t\t\t\trevisionButton.removeEventListener('click', clickHandler);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction startUpload(id, file, isRevision) {\n\t\t\t\tvar uri = isRevision === true ? '/documents/{id}/revisions/temp' : '/f/{id}/temp';\n\t\t\t\turi = pxUriPathService.resolvePath(uri.replace('{id}', id));\n\t\n\t\t\t\treturn $http.post(uri, { FileName: file.name})\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\treturn res.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction sendChunk(file, uri, offset, chunkSize) {\n\t\t\t\tvar endOffset = offset + chunkSize;\n\t\t\t\tif (endOffset >= file.size) {\n\t\t\t\t\tendOffset = file.size;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvar data = readSlice(file, offset, endOffset);\n\t\n\t\t\t\treturn $http.patch(uri, data, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/octet-stream'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction readSlice(file, startByte, endByte) {\n\t\t\t\tvar fn = 'slice';\n\t\t\t\t\n\t\t\t\tif (file.slice) {\n\t\t\t\t\tfn = 'slice';\n\t\t\t\t} else if (file.mozSlice) {\n\t\t\t\t\tfn = 'mozSlice';\n\t\t\t\t} else if (file.webkitSlice) {\n\t\t\t\t\tfn = 'webkitSlice';\n\t\t\t\t}\n\t\n\t\t\t\treturn file[fn](startByte, endByte);\n\t\t\t}\n\t\n\t\t\tfunction uploadInChunks(file, serverTempFile) {\n\t\t\t\tvar patchUri = serverTempFile.Links.Location;\n\t\n\t\t\t\treturn $q(function(resolve, reject) {\n\t\n\t\t\t\t\t(function chunk(offset, fileData) {\n\t\t\t\t\t\tif (offset <= file.size) {\n\t\t\t\t\t\t\treturn sendChunk(file, patchUri, offset, chunkSize)\n\t\t\t\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\t\t\t\tchunk(offset + chunkSize, response.data);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.catch(reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve(fileData);\n\t\t\t\t\t\t}\n\t\t\t\t\t}(0));\n\t\t\t\t\t\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction finalizeUpload(id, fileData, isRevision) {\n\t\t\t\tvar uri = isRevision === true ? '/documents/{id}/revisions' : '/f/{id}/documents';\n\t\t\t\turi = pxUriPathService.resolvePath(uri.replace('{id}', id));\n\t\n\t\t\t\treturn $http.post(uri, {}, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'x-sharebase-fileref': JSON.stringify(fileData)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\t/**\n\t\t\t * Uploads a file to the phoenix API. The file can either be\n\t\t\t * a new document or a revision to an existing document.\n\t\t\t * \n\t\t\t * @private\n\t\t\t * \n\t\t\t * @param {Number} id Folder id if uploading a new document and document id if uploading a revision.\n\t\t\t * @param {Object} file JavaScript file object representing the file to upload.\n\t\t\t * @param {Boolean} isRevision Flag that indicates if the file is a revision. Set to true to\n\t\t\t * upload a revion; defaults to false.\n\t\t\t */\n\t\t\tfunction _uploadFile(id, file, isRevision) {\n\t\t\t\treturn startUpload(id, file, isRevision)\n\t\t\t\t\t.then(function(serverTempFile) {\n\t\t\t\t\t\treturn uploadInChunks(file, serverTempFile);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function(fileData) {\n\t\t\t\t\t\treturn finalizeUpload(id, fileData, isRevision);\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction uploadRevision(documentId, file) {\n\t\t\t\treturn _uploadFile(documentId, file, true);\n\t\t\t}\n\t\n\t\t\tfunction uploadFile(folderId, file) {\n\t\t\t\treturn _uploadFile(folderId, file);\n\t\t\t}\n\t\t}\n\t\n\t})();\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t(function(){\n\t\t'usestrict';\n\t\tvar deleteDialogTemplateUrl = __webpack_require__(6);\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbDeleteDialogService',[\n\t\t\t\t'$mdDialog',\n\t\t\t\tDeleteDialogService\n\t\t\t])\n\t\t\t.controller('DeleteDialogController', [\n\t\t\t\t'$mdDialog',\n\t\t\t\t'title',\n\t\t\t\t'message',\n\t\t\t\t'showPurgeOption',\n\t\t\t\t'purgeText',\n\t\t\t\tDeleteDialogController\n\t\t\t]);\n\t\n\t\tfunction DeleteDialogService($mdDialog){\n\t\t\treturn {\n\t\t\t\tshow: function(event, title, message, showPurgeOption, purgeText) {\t\t\t\n\t\t\t\t\treturn $mdDialog.show({\n\t\t\t\t\t\tcontroller: 'DeleteDialogController',\n\t\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\t\ttemplateUrl: deleteDialogTemplateUrl,\n\t\t\t\t\t\ttargetEvent: event,\n\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\ttitle: title,\n\t\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\t\tshowPurgeOption: showPurgeOption,\n\t\t\t\t\t\t\tpurgeText: purgeText \n\t\t\t\t\t\t},\n\t\t\t\t\t\tclickOutsideToClose: false\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\tfunction DeleteDialogController($mdDialog, title, message, showPurgeOption, purgeText) {\n\t\t\tvar vm = this;\n\t\t\tvm.title = title;\n\t\t\tvm.message = message;\n\t\t\tvm.showPurgeOption = showPurgeOption || false;\n\t\t\tvm.purgeText = purgeText;\n\t\t\tvm.permanentlyDelete = false;\n\t\t\tvm.delete = function() {\n\t\t\t\t$mdDialog.hide(vm.permanentlyDelete);\n\t\t\t};\n\t\t\tvm.cancel = function() {\n\t\t\t\t$mdDialog.cancel();\n\t\t\t};\n\t\t}\n\t})();\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbDeletedItemsService', [\n\t\t\t\t'$http',\n\t\t\t\t'$q',\n\t\t\t\t'pxUriPathService',\n\t\t\t\tDeletedItemsService\n\t\t\t]);\n\t\n\t\tfunction DeletedItemsService($http, $q, pxUriPathService) {\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentNotesService#getAdminTrash\n\t\t\t\t * @methodOf smb-app.smbDeletedItemsService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets the collection of all deleted items from the deployment.\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of deleted document objects.\n\t\t\t\t */\n\t\t\t\tgetAdminTrash: getAdminTrash,\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentNotesService#purge\n\t\t\t\t * @methodOf smb-app.smbDeletedItemsService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Permanently deleted the provided item from the system.\n\t\t\t\t * \n\t\t\t\t * @param {object} item The trash item to permanently delete.\n\t\t\t\t *\n\t\t\t\t * @returns {Deferred} A promise that resolves if the purge succeeded.\n\t\t\t\t */\n\t\t\t\tpurge: purge,\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentNotesService#restore\n\t\t\t\t * @methodOf smb-app.smbDeletedItemsService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Restores the provided item and removes it from trash.\n\t\t\t\t * \n\t\t\t\t * @param {object} item The trash item to restore.\n\t\t\t\t *\n\t\t\t\t * @returns {Deferred} A promise that resolves to the restored item.\n\t\t\t\t */\n\t\t\t\trestore: restore\n\t\t\t};\n\t\n\t\t\tfunction getAdminTrash() {\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/admin/trash');\n\t\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function(resp) {\n\t\t\t\t\t\treturn resp.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction restore(item){\t\n\t\t\t\tvar p = $q.reject(new Error('Invalid item to restore.'));\n\t\t\t\tif(item && item.Links) {\t\t\n\t\t\t\t\tp = $http.patch(item.Links.RestoreUri)\n\t\t\t\t\t\t.then(function(resp){\n\t\t\t\t\t\t\treturn resp.data;\n\t\t\t\t\t\t});\t\t\t\t\n\t\t\t\t}\n\t\n\t\t\t\treturn p;\n\t\t\t}\n\t\n\t\t\tfunction purge(item) {\n\t\t\t\tvar p = $q.reject(new Error('Must provide a valid item to purge.'));\n\t\t\t\tif(item && item.Links) {\n\t\t\t\t\tvar uri = item.Links.Self + '?purge=true';\n\t\t\t\t\tp = $http.delete(uri);\n\t\t\t\t}\n\t\n\t\t\t\treturn p;\n\t\t\t}\n\t\t}\n\t})();\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbDocumentHistoryService', [\n\t\t\t\t'$http',\n\t\t\t\t'$q',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxUriPathService',\n\t\t\t\tDocumentHistoryService\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbDocumentNotesService\n\t\t * \n\t\t * @description\n\t\t * Exposes methods for retrieving and creating document notes.\n\t\t */\n\t\tfunction DocumentHistoryService($http, $q, gettextCatalog, pxUriPathService) {\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentNotesService#getNotes\n\t\t\t\t * @methodOf smb-app.smbDocumentNotesService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets the collection of all notes for a document\n\t\t\t\t * \n\t\t\t\t * @param {String} documentId Id of the document whose notes are being retrieved.\n\t\t\t\t *\n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of @see DocumentNote objects\n\t\t\t\t */\n\t\t\t\tgetHistory: getHistory\n\t\n\t\t\t};\n\t\n\t\t\tfunction getHistory(documentId) {\n\t\t\t\tif (!documentId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document id')));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = '/documents/' + documentId + '/activities?top=-1&descend=false';\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath(uri))\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\treturn response.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\t/**\n\t\t * @typedef {Object} DocumentNote\n\t\t * @property {Number} id A unique id for the note object\n\t\t * @property {String} text The note text\n\t\t * @property {Date} date Timestamp when the note was created\n\t\t * @property {Date} lastActivityDate Last date of note activity TODO: Find out exactly what this is\n\t\t * @property {String} userName Name of the user that created the note\n\t\t * @property {String} replyToUrl A link for replying to the note TODO: Don't know if we are supporting this\n\t\t */\n\t\n\t\t/**\n\t\t * @typedef {Object} NewDocumentNote\n\t\t * @description\n\t\t * An object that represents a new document note\n\t\t * @property {String} text The note text\n\t\t */\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbDocumentNotesService', [\n\t\t\t\t'$http',\n\t\t\t\t'$q',\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxUriPathService',\n\t\t\t\tDocumentNotesService\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbDocumentNotesService\n\t\t * \n\t\t * @description\n\t\t * Exposes methods for retrieving and creating document notes.\n\t\t */\n\t\tfunction DocumentNotesService($http, $q, gettextCatalog, pxUriPathService) {\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentNotesService#getNotes\n\t\t\t\t * @methodOf smb-app.smbDocumentNotesService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets the collection of all notes for a document\n\t\t\t\t * \n\t\t\t\t * @param {String} documentId Id of the document whose notes are being retrieved.\n\t\t\t\t *\n\t\t\t\t * @returns {Deferred} A promise that resolves to a collection of @see DocumentNote objects\n\t\t\t\t */\n\t\t\t\tgetNotes: getNotes,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbDocumentNotesService#createNote\n\t\t\t\t * @methodOf smb-app.smbDocumentNotesService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Create a new note for a document\n\t\t\t\t * \n\t\t\t\t * @param {NewDocumentNote} An object representing a new document note\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that resolves to the newly created document note.\n\t\t\t\t */\n\t\t\t\tcreateNote: createNote\n\t\t\t};\n\t\n\t\t\tfunction getNotes(documentId) {\n\t\t\t\tif (!documentId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document id')));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = '/documents/' + documentId + '/comments';\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath(uri))\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\treturn response.data.Embedded.Comments;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\treturn data.map(commentToDocumentNote);\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction createNote(documentId, note) {\n\t\t\t\tif (!documentId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document id')));\n\t\t\t\t} else if (!(note && note.text)) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required note text')));\n\t\t\t\t}\n\t\n\t\t\t\tvar comment = { CommentText: note.text };\n\t\n\t\t\t\tvar uri = '/documents/' + documentId + '/comments';\n\t\t\t\treturn $http.post(pxUriPathService.resolvePath(uri), comment)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\treturn response.data;\n\t\t\t\t\t})\n\t\t\t\t\t.then(commentToDocumentNote);\n\t\t\t}\n\t\n\t\t\tfunction commentToDocumentNote(comment) {\n\t\t\t\treturn {\n\t\t\t\t\tid: comment.CommentId,\n\t\t\t\t\ttext: comment.CommentText,\n\t\t\t\t\tdate: comment.CommentDate,\n\t\t\t\t\tlastActivityDate: comment.LastActivityDate,\n\t\t\t\t\tuserName: comment.UserName,\n\t\t\t\t\treplyToUrl: comment.Links && comment.Links.ReplyToUri\n\t\t\t\t};\n\t\t\t}\n\t\n\t\t}\n\t}());\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbDocumentViewerNavigationService', [\n\t\t\t\t'$state', \n\t\t\t\t'$q',\n\t\t\t\tDocumentViewerNavigationService\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbDocumentViewerNavigationService\n\t\t *\n\t\t * @description\n\t\t * Small service that provides a convience method for navigating to\n\t\t * the document viewer.\n\t\t */\n\t\tfunction DocumentViewerNavigationService($state, $q) {\n\t\t\tvar _previousState;\n\t\t\tvar _previousStateParams;\n\t\n\t\t\tvar _defaultState = 'content.home';\n\t\n\t\t\treturn {\n\t\t\t\tgo: go,\n\t\t\t\tback: back,\n\t\n\t\t\t\tget backState() { return _previousState ? _previousState.name : _defaultState; },\n\t\n\t\t\t\tget backStateParams() { return _previousStateParams; }\n\t\t\t};\n\t\n\t\t\tfunction go(documentGroupId, documentTypeId, documentId) {\n\t\t\t\t_previousState = $state.current;\n\t\t\t\t_previousStateParams = $state.params || null;\n\t\n\t\t\t\t$state.go('document.view', {\n\t\t\t\t\tdocumentGroupId: documentGroupId,\n\t\t\t\t\tdocumentTypeId: documentTypeId,\n\t\t\t\t\tdocumentId: documentId\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction back() {\n\t\t\t\tvar p = $q.reject(new Error('No applicable previous state.'));\n\t\t\t\tif (_previousState) {\n\t\t\t\t\tp = _previousStateParams ? \n\t\t\t\t\t\t$state.go(_previousState.name, _previousStateParams) :\n\t\t\t\t\t\t$state.go(_previousState.name);\t\t\t\t\n\t\t\t\t} else if(angular.isDefined($state.params.documentGroupId) && angular.isDefined($state.params.documentTypeId)) {\n\t\t\t\t\t// default to document type group search\n\t\t\t\t\tp = $state.go('search.contentTypeGroups.contentTypes.search', {\n\t\t\t\t\t\tgroupId: $state.params.documentGroupId,\n\t\t\t\t\t\ttypeId: $state.params.documentTypeId\n\t\t\t\t\t});\n\t\t\t\t}\n\t\n\t\t\t\treturn p;\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular\n\t\t\t.module('smb-app')\n\t\t\t.factory('smbEnvironmentService', [\n\t\t\t\t'$window',\n\t\t\t\t'pxEnvironmentService',\n\t\t\t\tEnvironmentService\n\t\t\t]);\n\t\n\t\tfunction EnvironmentService($window, pxEnvironmentService) {\n\t\t\tvar ua = $window.navigator.userAgent;\n\t\t\tvar defaults = {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true\n\t\t\t};\n\t\n\t\t\t// http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n\t\t\tvar service = Object.create(pxEnvironmentService, {\n\t\t\t\tisIE: angular.merge({\n\t\t\t\t\tvalue: ua.indexOf('Trident') >= 0\n\t\t\t\t}, defaults),\n\t\t\t\tisFireFox: angular.merge({\n\t\t\t\t\tvalue: ua.indexOf('Mozilla') >= 0 && (typeof $window.InstallTrigger !== 'undefined')\n\t\t\t\t}, defaults)\n\t\t\t});\n\t\n\t\t\treturn service;\n\t\t}\n\t}());\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.constant('smbIconTypes', {\n\t\t\t\tJPEG: 0,\n\t\t\t\tGIF: 1,\n\t\t\t\tPNG: 2,\n\t\t\t\tICO: 3,\n\t\t\t\tSVG: 4,\n\t\t\t\t0: 'JPEG',\n\t\t\t\t1: 'GIF',\n\t\t\t\t2: 'PNG',\n\t\t\t\t3: 'ICO',\n\t\t\t\t4: 'SVG'\n\t\t\t})\n\t\t\t.factory('smbIconService', ['$http', 'pxUriPathService', 'smbIconTypes', IconService]);\n\t\n\t\tfunction IconService($http, pxUriPathService, smbIconTypes) {\n\t\n\t\t\tvar _binaryTypes = [\n\t\t\t\tsmbIconTypes[smbIconTypes.JPEG],\n\t\t\t\tsmbIconTypes[smbIconTypes.GIF],\n\t\t\t\tsmbIconTypes[smbIconTypes.PNG],\n\t\t\t\tsmbIconTypes[smbIconTypes.ICO]\n\t\t\t];\n\t\n\t\t\treturn {\n\t\n\t\t\t\tgetIcons: getIcons,\n\t\t\t\tgetIconData: getIconData\n\t\n\t\t\t};\n\t\n\t\t\tfunction getIcons() {\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/systemicons/SMB'))\n\t\t\t\t\t.then(function(res) { return res.data; });\n\t\t\t}\n\t\n\t\t\tfunction getIconData(url, type) {\n\t\t\t\tvar request = {\n\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\turl: url,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: getMediaType(type)\n\t\t\t\t\t},\n\t\t\t\t\tcache: true\n\t\t\t\t};\n\t\n\t\t\t\tif (isBinary(type)) {\n\t\t\t\t\trequest.responseType = 'arraybuffer';\n\t\t\t\t}\n\t\n\t\t\t\treturn $http(request)\n\t\t\t\t\t.then(function(res) { \n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\timageData: res.data,\n\t\t\t\t\t\t\tisBinary: isBinary(type),\n\t\t\t\t\t\t\tcontentType: res.headers('Content-Type')\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getMediaType(type) {\n\t\t\t\tvar mediaType = 'image/';\n\t\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase smbIconTypes[smbIconTypes.JPEG]:\n\t\t\t\t\t\treturn mediaType + 'jpeg';\n\t\t\t\t\tcase smbIconTypes[smbIconTypes.GIF]:\n\t\t\t\t\t\treturn mediaType + 'gif';\n\t\t\t\t\tcase smbIconTypes[smbIconTypes.PNG]:\n\t\t\t\t\t\treturn mediaType + 'png';\n\t\t\t\t\tcase smbIconTypes[smbIconTypes.ICO]:\n\t\t\t\t\t\treturn mediaType + 'ico';\n\t\t\t\t\tcase smbIconTypes[smbIconTypes.SVG]:\n\t\t\t\t\t\treturn mediaType + 'svg+xml';\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error('Unsupported data type for smbIcon');\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction isBinary(type) {\n\t\t\t\treturn _binaryTypes.indexOf(type) >= 0;\n\t\t\t}\n\t\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(134);\n\t__webpack_require__(135);\n\t__webpack_require__(136);\n\t__webpack_require__(137);\n\t__webpack_require__(138);\n\t__webpack_require__(139);\n\t__webpack_require__(140);\n\t__webpack_require__(141);\n\t__webpack_require__(142);\n\t__webpack_require__(143);\n\t__webpack_require__(144);\n\t__webpack_require__(145);\n\t__webpack_require__(146);\n\t__webpack_require__(6);\n\t__webpack_require__(147);\n\t__webpack_require__(148);\n\t__webpack_require__(149);\n\t__webpack_require__(150);\n\t__webpack_require__(151);\n\t__webpack_require__(152);\n\t__webpack_require__(153);\n\t__webpack_require__(155);\n\t__webpack_require__(156);\n\t__webpack_require__(157);\n\t__webpack_require__(158);\n\t__webpack_require__(159);\n\t__webpack_require__(160);\n\t__webpack_require__(161);\n\t__webpack_require__(162);\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.constant('smbIndexTypesDataTypes', {\n\t\t\t\tSTRING: 0,\n\t\t\t\tNUMERIC: 1,\n\t\t\t\tDATE: 2,\n\t\t\t\t0: 'Text',\n\t\t\t\t1: 'Number',\n\t\t\t\t2: 'Date',\n\t\t\t\tSTRING_MAX_LENGTH: 256\n\t\t\t});\n\t}());\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbIndexTypesService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', IndexTypesService]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbIndexTypesService\n\t\t * \n\t\t * @description\n\t\t * Exposes methods for retrieving content types that belong to a content\n\t\t * type group.\n\t\t */\n\t\tfunction IndexTypesService($http, $q, gettextCatalog, pxUriPathService) {\n\t\t\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbIndexTypesService.getIndexTypes\n\t\t\t\t * @methodOf smb-app.smbIndexTypesService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets all content types the belong to a content type group\n\t\t\t\t * \n\t\t\t\t * @param {Number} typeId Id of the content type group\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that will resolve to a collection of content types\n\t\t\t\t */\n\t\t\t\tgetIndexTypes: getIndexTypes,\n\t\n\t\t\t\tgetDocumentTypeGroupIndexTypes: getDocumentTypeGroupIndexTypes,\n\t\n\t\t\t\tsetIndexTypes: setIndexTypes,\n\t\n\t\t\t\tgetDocumentIndexes: getDocumentIndexes\n\t\t\t};\n\t\n\t\t\tfunction getIndexTypes(typeId) {\n\t\t\t\tif (!typeId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type id')));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + typeId + '/tagtypes');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getDocumentTypeGroupIndexTypes(groupId) {\n\t\t\t\tif (!groupId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/tagtypes');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction setIndexTypes(indexes, documentId) {\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/documents/' + documentId + '/systemtags');\n\t\t\t\treturn $http.put(uri, indexes)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getDocumentIndexes(documentId) {\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/documents/' + documentId + '/tags');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function(res) { return res.data; });\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbLibraryConfigService',\t[\n\t\t\t\t'$q',\n\t\t\t\t'$http',\n\t\t\t\t'pxUriPathService',\n\t\t\t\t'settingsService',\n\t\t\t\t'gettextCatalog',\n\t\t\t\tLibraryConfigService\n\t\t\t]);\n\t\n\t\tvar path = '/libraries';\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbLibraryConfigService\n\t\t * \n\t\t * @description\n\t\t * A service that exposes methods for configuring content type libraries.\n\t\t */\n\t\tfunction LibraryConfigService($q, $http, pxUriPathService, settingsService, gettextCatalog) {\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbLibraryConfigService#getLibrary\n\t\t\t\t * @methodOf smb-app.smbLibraryConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets a single content type library by id\n\t\t\t\t * \n\t\t\t\t * @param {String} libraryId The id of the library being retrieved\n\t\n\t\t\t\t * @returns {Promise} A promise that resolves to the content type library\n\t\t\t\t * with the matching id.\n\t\t\t\t */\n\t\t\t\tgetLibrary: getLibrary,\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbLibraryConfigService#deleteLibrary\n\t\t\t\t * @methodOf smb-app.smbLibraryConfigService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Deletes a single content type library by id\n\t\t\t\t * \n\t\t\t\t * @param {String} libraryId The id of the library being deleted\n\t\n\t\t\t\t * @returns {Promise} A promise that resolves if the deleted succeeded.\n\t\t\t\t */\n\t\t\t\tdeleteLibrary: deleteLibrary,\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbLibraryConfigService#getLibraries\n\t\t\t\t * @methodOf smb-app.smbLibraryConfigServices\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets the collection of all content type libraries for the deployment\n\t\t\t\t * \n\t\t\t\t * @returns {Promise} A promise that resolves to an array of content type\n\t\t\t\t * library objects.\n\t\t\t\t */\n\t\t\t\tgetLibraries: getLibraries,\n\t\n\t\t\t\tgetLibraryDetails: getLibraryDetails,\n\t\n\t\t\t\tassignUserGroupsToLibrary: assignUserGroupsToLibrary\n\t\n\t\t\t};\n\t\n\t\t\tfunction getLibrary(libraryId) {\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath(path + '/' + libraryId))\n\t\t\t\t\t.then(function (response) { return response.data; });\n\t\t\t}\n\t\n\t\t\tfunction getLibraries() {\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath(path))\n\t\t\t\t\t.then(function (response) { return response.data; });\n\t\t\t}\n\t\n\t\t\tfunction getLibraryDetails(library) {\n\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/libraries/' + library.LibraryId + '/permissions', {\n\t\t\t\t}).then(function (response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction assignUserGroupsToLibrary(acls, libraryId) {\n\t\t\t\treturn $http.post(settingsService.serverAPIPath + '/libraries/' + libraryId + '/permissions/replace', acls)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction deleteLibrary(libraryId) {\n\t\t\t\tif (!libraryId) {\n\t\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required library id')));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/{id}', {\n\t\t\t\t\tid: libraryId\n\t\t\t\t});\n\t\n\t\t\t\treturn $http.delete(uri);\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbSortService', [SortService]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbSortService\n\t\t * \n\t\t * @description\n\t\t * A service that provides sorting functions for the different data types\n\t\t * in the application. The methods in this service are intended to be passed\n\t\t * to an arrays sort function. As a result, all of the methods are pure functions\n\t\t * which do not rely on `this`.\n\t\t */\n\t\tfunction SortService() {\n\t\n\t\t\treturn {\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbSortService.sortObjectStringByProperty\n\t\t\t\t * @methodOf smb-app.smbSortService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Creates and returns a function that can be to sort an array of\n\t\t\t\t * objects by a specific string property.\n\t\t\t\t * \n\t\t\t\t * @param {String} propertyName The name of the property the objects should\n\t\t\t\t * be sorted by\n\t\t\t\t * \n\t\t\t\t * @returns {Function} A function that can be used in array's sort method to\n\t\t\t\t * sort objects by a specific property anem\n\t\t\t\t */\n\t\t\t\tsortObjectByStringProperty: sortObjectByStringProperty,\n\t\n\t\t\t\tsortObjectByDateProperty: sortObjectByDateProperty,\n\t\n\t\t\t\tsortDate: sortDate,\n\t\n\t\t\t\tsortByString: sortByString\n\t\t\t};\n\t\n\t\t\tfunction sortObjectByStringProperty(propertyName, direction) {\n\t\t\t\treturn function (obj1, obj2) {\n\t\t\t\t\treturn sortByString(obj1[propertyName], obj2[propertyName], direction);\n\t\t\t\t};\n\t\t\t}\n\t\n\t\t\tfunction sortByString(string1, string2, direction) {\n\t\t\t\tif (direction) {\n\t\t\t\t\treturn string1.toLowerCase().localeCompare(string2.toLowerCase());\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn string2.toLowerCase().localeCompare(string1.toLowerCase());\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction sortObjectByDateProperty(propertyName) {\n\t\t\t\treturn function(obj1, obj2) {\n\t\t\t\t\treturn sortDate(obj1[propertyName], obj2[propertyName]);\n\t\t\t\t};\n\t\t\t}\n\t\n\t\t\tfunction sortDate(date1, date2) {\n\t\t\t\tvar y1 = date1.getFullYear();\n\t\t\t\tvar m1 = date1.getMonth();\n\t\t\t\tvar d1 = date1.getDate();\n\t\n\t\t\t\tvar y2 = date2.getFullYear();\n\t\t\t\tvar m2 = date2.getMonth();\n\t\t\t\tvar d2 = date2.getDate();\n\t\n\t\t\t\tif (y1 < y2) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else if (y1 > y2) {\n\t\t\t\t\treturn -1;\n\t\t\t\t} else if (m1 < m2) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else if (m1 > m2) {\n\t\t\t\t\treturn -1;\n\t\t\t\t} else if (d1 < d2) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else if (d1 > d2) {\n\t\t\t\t\treturn -1;\n\t\t\t\t} else {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports) {\n\n\t(function() {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbStatusService', [\n\t\t\t\t'$http',\n\t\t\t\t'$q',\n\t\t\t\t'smbContentTypeAcls',\n\t\t\t\t'pxUriPathService',\n\t\t\t\tStatusService\n\t\t\t]);\n\t\n\t\tfunction StatusService($http, $q, smbContentTypeAcls, pxUriPathService) {\n\t\n\t\t\treturn {\n\t\t\t\tgetStatuses: getStatuses,\n\t\n\t\t\t\tgetDocumentStatus: getDocumentStatus,\n\t\n\t\t\t\tgetUsers: getUsers,\n\t\n\t\t\t\tsetDocumentStatus: setDocumentStatus\n\t\t\t};\n\t\n\t\t\tfunction getStatuses(folderId) {\n\t\t\t\tif (!(typeof folderId === 'string' || typeof folderId === 'number')) {\n\t\t\t\t\treturn $q.reject(new Error('Missing required document type id'));\n\t\t\t\t}\n\t\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + folderId + '/tagtypes');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\treturn res.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getDocumentStatus(documentId) {\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/documents/' + documentId + '/status');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function(res) { \n\t\t\t\t\t\treturn res.data.TypedTags; \n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getUsers(documentId) {\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/documents/' + documentId + '/users?acl=' + smbContentTypeAcls.MODIFY_DOCUMENTS);\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction setDocumentStatus(status, documentId) {\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/documents/' + documentId + '/status');\n\t\t\t\treturn $http.put(uri, status)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbToDoListService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', ToDoListService]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbContentTypesService\n\t\t * \n\t\t * @description\n\t\t * Exposes methods for retrieving content types that belong to a content\n\t\t * type group.\n\t\t */\n\t\tfunction ToDoListService($http, $q, gettextCatalog, pxUriPathService) {\n\t\t\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbContentTypesService.getContentTypes\n\t\t\t\t * @methodOf smb-app.smbContentTypesService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Gets all content types the belong to a content type group\n\t\t\t\t * \n\t\t\t\t * @param {Number} groupId Id of the content type group\n\t\t\t\t * \n\t\t\t\t * @returns {Deferred} A promise that will resolve to a collection of content types\n\t\t\t\t */\n\t\t\t\tgetDocuments: getDocuments,\n\t\n\t\t\t\tgetCount: getCount\n\t\t\t};\n\t\n\t\t\tfunction getDocuments() {\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/todolist');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tfunction getCount() {\n\t\t\t\tvar tagValues = [];\n\t\t\t\tvar uri = pxUriPathService.resolvePath('/todolist/count');\n\t\t\t\treturn $http.get(uri)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\treturn response.data;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbToolbarService',\n\t\t\t[\n\t\t\t\t'pxAuthService',\n\t\t\t\tToolbarService\n\t\t\t]);\n\t\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbToolbarService\n\t * \n\t * @description \n\t * A service used to retrieve and interact with ShareBase app \n\t * content toolbar\n\t * \n\t **/\n\t\tfunction ToolbarService(pxAuthService) {\n\t\t\tvar _title = null;\n\t\t\tvar _backArrowState = 'content.home';\n\t\t\tvar _showLogo = false;\n\t\t\tvar _showContextMenu = false;\n\t\t\tvar _contextMenuActions = [];\n\t\t\tvar _backArrowStateParams = null;\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t * @ngdoc property\n\t * @name smbToolbarService#title\n\t * @propertyOf smb-app.smbToolbarService\n\t * @kind property\n\t *\n\t * @description\n\t * Title assigned to content toolbar\n\t *\n\t * @returns {string} value of title \n\t * \n\t */\n\t\t\t\tget title() { return _title; },\n\t\t\t\t\n\t\t\t\t/**\n\t * @ngdoc property\n\t * @name smbToolbarService#title\n\t * @propertyOf smb-app.smbToolbarService\n\t * @kind property\n\t *\n\t * @description\n\t * Set the title for content toolbar\n\t *\n\t * @returns {string} value of title \n\t * @param {string} val Title to assign to content toolbar \n\t */\n\t\t\t\tset title(val) { _title = val; },\n\t\n\t\t\t\t/**\n\t * @ngdoc property\n\t * @name smbToolbarService#backArrowState\n\t * @propertyOf smb-app.smbToolbarService\n\t * @kind property\n\t *\n\t * @description\n\t * Get the state assigned to back arrow on the toolbar\n\t *\n\t * @returns {string} value of title \n\t * \n\t */\n\t\t\t\tget backArrowState() { return _backArrowState; },\n\t\n\t\t\t\t/**\n\t * @ngdoc property\n\t * @name smbToolbarService#backArrowState\n\t * @propertyOf smb-app.smbToolbarService\n\t * @kind property\n\t *\n\t * @description\n\t * Set the state to back arrow on the toolbar\n\t *\n\t * @returns {string} value of backArrowState \n\t * @param {string} val Back Arrow State to assign to content toolbar \n\t */\n\t\t\t\tset backArrowState(val) { _backArrowState = val; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbToolbarService#backArrowState\n\t\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Get the state params object for the toolbar's back button.\n\t\t\t\t * \n\t\t\t\t * @returns {Object} State parameters for back button\n\t\t\t\t */\n\t\t\t\tget backArrowStateParams() { return _backArrowStateParams; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbToolbarService#backArrowStateParams\n\t\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Optionally set stat parameters for the back arrow state.\n\t\t\t\t * \n\t\t\t\t * @param {Object} val An object of state parameters\n\t\t\t\t */\n\t\t\t\tset backArrowStateParams(val) { _backArrowStateParams = val; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbToolbarService#hasUserAdminRights\n\t\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Returns true if the current user has user administration rights\n\t\t\t\t * \n\t\t\t\t * @returns {Boolean} Returns true if user is a user admin and false otherwise\n\t\t\t\t */\n\t\t\t\tget hasUserAdminRights() { return pxAuthService.isUserAdmin || pxAuthService.isSiteAdmin; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbToolbarService#hasContentAdminRights\n\t\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Returns true if the current user has content administration rights\n\t\t\t\t * \n\t\t\t\t * @returns {Boolean} Returns true if user has correct rights for content administration\n\t\t\t\t * and false if they do not.\n\t\t\t\t */\n\t\t\t\tget hasContentAdminRights() { return pxAuthService.isSiteAdmin; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbToolbarService#showLogo\n\t\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Returns true if the app logo should be displayed.\n\t\t\t\t * \n\t\t\t\t * @returns {Boolean} True if the toolbar should display and false if\n\t\t\t\t * it should hide the logo.\n\t\t\t\t */\n\t\t\t\tget showLogo() { return _showLogo; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbToolbarService#showLogo\n\t\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Set the flag to show or hide the application logo\n\t\t\t\t * \n\t\t\t\t * @param {Boolean} val Value to set the flag to\n\t\t\t\t */\n\t\t\t\tset showLogo(val) { _showLogo = val; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbToolbarService#showBackButton\n\t\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Flag that determines if the toolbar will display the back button.\n\t\t\t\t * If true, the back button will be displayed.\n\t\t\t\t * \n\t\t\t\t * @returns {Boolean} True if the back button should be displayed and false\n\t\t\t\t * if it should be hidden.\n\t\t\t\t */\n\t\t\t\tget showBackButton() { return !_showLogo; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbToolbarService#showContextMenu\n\t\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Flag that returns true if the context menu is displayed and false if it\n\t\t\t\t * is not. Defaults to false to hide the context menu.\n\t\t\t\t * \n\t\t\t\t * @returns {Boolean} True if the context menu is displayed and false if\n\t\t\t\t * it is hidden.\n\t\t\t\t */\n\t\t\t\tget showContextMenu() { return _showContextMenu; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbToolbarService#showContextMenu\n\t\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Set the flag that determine whether to display or hide the context \n\t\t\t\t * menu\n\t\t\t\t * \n\t\t\t\t * @param {Boolean} val Value to set the flag to.\n\t\t\t\t */\n\t\t\t\tset showContextMenu(val) { _showContextMenu = val; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc property\n\t\t\t\t * @name smbToolbarService#contextMenuActions\n\t\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t\t * @kind property\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Get the list of action objects for the context menu.\n\t\t\t\t * \n\t\t\t\t * @returns {Object[]} Collection of context menu actions\n\t\t\t\t */\n\t\t\t\tget contextMenuActions() { return _contextMenuActions; },\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbToolbarService#reset\n\t\t\t\t * @methodOf smb-app.smbToolbarService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Reset the state of the toolbar service to all default values.\n\t\t\t\t */\n\t\t\t\treset: reset,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbToolbarService#addContextMenuAction\n\t\t\t\t * @methodOf smb-app.smbToolbarService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Add a new context menu action to the existing list of context menu actions.\n\t\t\t\t * \n\t\t\t\t * @param {Object} action The content menu action to add\n\t\t\t\t */\n\t\t\t\taddContextMenuAction: addContextMenuAction,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbToolbarService#set\n\t\t\t\t * @methodOf smb-app.smbToolbarService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Set the state of the toolbar service properties.\n\t\t\t\t * \n\t\t\t\t * @param {String} title Title to display in toolbar\n\t\t\t\t * @param {String} backArrow Target state for the back arrow\n\t\t\t\t * @param {Boolean} showLogo Flag that indicates if the logo should be shown\n\t\t\t\t * @param {Boolean} showContextMenu Flag that indicates if the context menu should be shown\n\t\t\t\t */\n\t\t\t\tset: set,\n\t\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbToolbarService#setContextMenuActions\n\t\t\t\t * @methodOf smb-app.smbToolbarService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Replace the current set of context menu actions with a new\n\t\t\t\t * collection of actions\n\t\t\t\t * \n\t\t\t\t * @param {Object[]} actions An array of context menu action objects\n\t\t\t\t */\n\t\t\t\tsetContextMenuActions: setContextMenuActions\n\t\t\t};\n\t\n\t\t\tfunction addContextMenuAction(action) {\n\t\t\t\t_contextMenuActions = _contextMenuActions.concat(action);\n\t\t\t}\n\t\n\t\t\tfunction setContextMenuActions(actions) {\n\t\t\t\tif (actions) {\n\t\t\t\t\t_contextMenuActions = actions;\n\t\t\t\t} else {\n\t\t\t\t\t_contextMenuActions = [];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfunction reset() {\n\t\t\t\tset('', 'content.home', true, false);\n\t\t\t}\n\t\n\t\t\tfunction set(title, backArrow, showLogo, showContextMenu) {\n\t\t\t\tif (typeof title === 'string') {\n\t\t\t\t\t_title = title;\n\t\t\t\t}\n\t\n\t\t\t\tif (backArrow) {\n\t\t\t\t\t_backArrowState = backArrow;\n\t\t\t\t}\n\t\n\t\t\t\t_showLogo = showLogo;\n\t\t\t\t_showContextMenu = showContextMenu;\n\t\t\t}\n\t\t}\n\t\n\t}());\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports) {\n\n\t(function () {\n\t\t'use strict';\n\t\n\t\tangular.module('smb-app')\n\t\t\t.factory('smbUserGroupFilterService',\n\t\t\t[\n\t\t\t\t'smbSortService',\n\t\t\t\t'smbContentTypeAcls',\n\t\t\t\tUserGroupFilterService\n\t\t\t]);\n\t\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbUserGroupFilterService\n\t\t * \n\t\t * @description\n\t\t * A service that exposes methods for extracting content type group assignment details.\n\t\t */\n\t\tfunction UserGroupFilterService(smbSortService, smbContentTypeAcls) {\n\t\t\tvar _userGroupsWithViewRights = [];\n\t\t\tvar _userGroupsWithFullRights = [];\n\t\t\tvar _userGroupsWithEditRights = [];\n\t\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * @ngdoc method\n\t\t\t\t * @name smbUserGroupFilterService#filterUserGroups\n\t\t\t\t * @methodOf smb-app.smbUserGroupFilterService\n\t\t\t\t * @kind function\n\t\t\t\t * \n\t\t\t\t * @description\n\t\t\t\t * Filters and separates User Groups into two lists, one with View rights and Full rights\n\t\t\t\t * \n\t\t\t\t * @param {Object} details, The details object from wchich the details have to be extracted\n\t\t\t\t */\n\t\t\t\tfilterUserGroups: filterUserGroups,\n\t\n\t\t\t\tgetUserGroupsWithViewRights: getUserGroupsWithViewRights,\n\t\n\t\t\t\tgetUserGroupsWithFullRights: getUserGroupsWithFullRights,\n\t\n\t\t\t\tgetUserGroupsWithEditRights: getUserGroupsWithEditRights,\n\t\t\t};\n\t\n\t\t\tfunction filterUserGroups(details) {\n\t\t\t\t_userGroupsWithViewRights = [];\n\t\t\t\t_userGroupsWithFullRights = [];\n\t\t\t\t_userGroupsWithEditRights = [];\n\t\n\t\t\t\tdetails.forEach(function (permission) {\n\t\t\t\t\tif (permission.UserGroupId > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tswitch (permission.Privileges) {\n\t\t\t\t\t\t\tcase smbContentTypeAcls.VIEW_RIGHTS:\n\t\t\t\t\t\t\t\t_userGroupsWithViewRights.push(permission);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase smbContentTypeAcls.EDIT_RIGHTS:\n\t\t\t\t\t\t\t\t_userGroupsWithEditRights.push(permission);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase smbContentTypeAcls.FULL_RIGHTS:\n\t\t\t\t\t\t\t\t_userGroupsWithFullRights.push(permission);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\t_userGroupsWithViewRights.sort(smbSortService.sortObjectByStringProperty('UserGroupName'));\n\t\t\t\t_userGroupsWithFullRights.sort(smbSortService.sortObjectByStringProperty('UserGroupName'));\n\t\t\t\t_userGroupsWithEditRights.sort(smbSortService.sortObjectByStringProperty('UserGroupName'));\n\t\t\t}\n\t\n\t\t\tfunction getUserGroupsWithEditRights() {\n\t\t\t\treturn _userGroupsWithEditRights;\n\t\t\t}\n\t\n\t\t\tfunction getUserGroupsWithViewRights() {\n\t\t\t\treturn _userGroupsWithViewRights;\n\t\t\t}\n\t\n\t\t\tfunction getUserGroupsWithFullRights() {\n\t\t\t\treturn _userGroupsWithFullRights;\n\t\t\t}\n\t\t}\n\t}());\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar path = 'components/_app/app.template.html';\n\tvar html = \"
arrow_back

{{vm.smbToolbarService.title}}

people User Administration settings Document Groups Configuration delete Deleted Items home Home assignment
{{vm.todoListDS.count}}
My To-Do List
input Logout info_outline Help Acceptable Use Policy Privacy Policy Terms of Use
arrow_back

{{vm.smbToolbarService.title}}

menu
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/assignedUsers/assignedUsers.template.html';\n\tvar html = \" Assigned User
None {{user.UserName}}
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentSearch/contentSearch.template.html';\n\tvar html = \"
Document Type

{{vm.contentTypeDS.contentType.FolderName}}

{{vm.contentTypeGroupDS.contentTypeGroup.LibraryName}}

Index Types
Search
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentSearchResults/contentSearchResults.template.html';\n\tvar html = \"\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypeConfig/contentTypeConfig.template.html';\n\tvar html = \"
Type Configuration Field Configuration Status Configuration
Cancel Update Create
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypeConfigForm/contentTypeConfigForm.template.html';\n\tvar html = \"
Icon
{{!vm.contentTypeIcon ? 'add':'edit'}}

{{vm.contentTypeIcon.IconUserFriendlyName}}

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypeGroupConfig/contentTypeGroupConfig.template.html';\n\tvar html = \"
Group Configuration Field Configuration
Cancel Update Create
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypeGroupConfigForm/contentTypeGroupConfigForm.template.html';\n\tvar html = \"
Icon
{{!vm.group.IconId ? 'add' : 'edit'}}

{{vm.group.IconName}}

User Groups (View Rights)
add clear supervisor_account

{{group.UserGroupName}}

User Groups (Edit Rights)
add clear supervisor_account

{{group.UserGroupName}}

User Groups (Full Rights)
add clear supervisor_account

{{group.UserGroupName}}

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypeGroupSearch/contentTypeGroupSearch.template.html';\n\tvar html = \"
Document Type Group

{{vm.contentTypeGroupDS.contentTypeGroup.LibraryName}}

Index Types
Search
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypeGroupSearchResults/contentTypeGroupSearchResults.template.html';\n\tvar html = \"\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypeGroups/contentTypeGroups.template.html';\n\tvar html = \" 0\\\">

{{item.name}}

warning

No document groups available

Groups you have access to will be listed here.

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypeGroupsConfig/contentTypeGroupsConfig.template.html';\n\tvar html = \"
add settings edit Edit Group delete Delete Group

{{item.name}}

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypeGroupsSearch/contentTypeGroupsSearch.template.html';\n\tvar html = \" 0\\\">

{{item.name}}

warning

No document groups available

Groups you have access to will be listed here.

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypes/contentTypes.template.html';\n\tvar html = \" 0\\\">

{{item.FolderName}}

warning

No document types available

Types you have access to will be listed here.

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypesConfig/contentTypesConfig.template.html';\n\tvar html = \"
add delete

{{item.FolderName}}

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentTypesSearch/contentTypesSearch.template.html';\n\tvar html = \" 0\\\">

{{item.FolderName}}

search

All Document Types

warning

No document types available

Types you have access to will be listed here.

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/contentUpload/contentUpload.template.html';\n\tvar html = \"
Document Type

{{vm.contentTypeDS.contentType.FolderName}}

{{vm.contentTypeGroupDS.contentTypeGroup.LibraryName}}

Document

{{vm.filename}}

No file selected

Browse
Index Types
Cancel Upload
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/documentContextMenu/documentContextMenu.template.html';\n\tvar html = \"
You do not have the required permissions to edit the status. info_outline
{{vm.status.StatusType === 'Content Status' ? 'archive' : 'assignment'}}

{{vm.status.Label}}

account_circle

Unassigned

{{vm.assignedUser.UserName}}

Delete delete Download get_app View Fields vpn_key View History info View Comments chat_bubble
more_vertical delete Delete get_app Download vpn_key Fields info History chat_bubble Comments
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/documentDetails/documentDetails.template.html';\n\tvar html = \"
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/documentHistory/documentHistory.template.html';\n\tvar html = \"

Document Details

{{item.UserName}} {{item.Message}} {{item.ActivityDate}}

Revision {{revision.VersionNumber}} uploaded by {{revision.CreatedBy}}

Added on {{revision.DateCreated | date }}

Download Make Current Current Revision

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/documentHitList/documentHitList.template.html';\n\tvar html = \" 0\\\">

{{doc.LibraryName}} / {{doc.FolderName}}

{{doc.DocumentAutoName}}

{{doc.Status}}

search

No documents found!

Try widening your search or using different criteria.

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/documentIndexes/documentIndexes.template.html';\n\tvar html = \"

Fields

{{tag.TagTypeName}}:

{{tag.Tags[0]}}

{{tag.Tags[0] | date: 'MMM dd, yyyy'}}

Edit
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/documentIndexesEdit/documentIndexesEdit.template.html';\n\tvar html = \"

Edit Fields

Cancel Update
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/documentNotes/documentNotes.template.html';\n\tvar html = \"

Comments

{{note.date | sbSimpleDateTimeString}}

{{note.date | sbSimpleDateTimeString}}
account_circle

{{note.userName}}

add
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/documentView/documentView.template.html';\n\tvar html = \"
close
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/errorMessages.html';\n\tvar html = \"
This field is required.
Your field is too short
Your field is too long
You must supply a valid email address.
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/home/home.template.html';\n\tvar html = \"
{{item.icon}}

{{vm.media('gt-xs') ? item.label : item.shortLabel}}

{{vm.todoListDS.count}}
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/icon/icon.template.html';\n\tvar html = \"\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/indexTypeConfig/indexTypeConfig.template.html';\n\tvar html = \"
Add New Field
{{dt.label}} 2\\\">
add
{{vm.indexTypesPoolTitle}}
add {{vm.indexTypesPoolAddLabel}}
{{vm.currentIndexTypesTitle}}
mode_edit check clear delete
0\\\" ng-click=\\\"vm.swapIndexTypesOrder($index, $index-1)\\\"> arrow_upward Move up in sequence arrow_downward Move down in sequence
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/indexTypesPanel/indexTypesPanel.template.html';\n\tvar html = \"
{{index.TagTypeName}}
Please remove invalid characters.
( "<>|^*:! )
Please enter a valid number.
Please enter a valid date.
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/itemSelector/itemSelector.template.html';\n\tvar html = \"
error

No available items

0\\\" class=main-selector layout=row>
done

{{item.IconUserFriendlyName}}

clear assignment archive
done

{{item.Label}}

account_circle supervisor_account
done
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/login/login.template.html';\n\tvar html = \"
Acceptable Use Policy Privacy Policy Terms of Use
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/register/register.template.html';\n\tvar html = \" {{::'I agree to the terms and conditions on behalf of my ogranization' | translate}} Next \";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 196 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/status/status.template.html';\n\tvar html = \" Document Status
None {{status.indexValue}} Archival Status {{status.indexValue}}
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/statusConfig/statusConfig.template.html';\n\tvar html = \" To-Do Status
Archival Status
Note: deleted statuses will not be removed from existing documents.
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 198 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/todolist/todolist.template.html';\n\tvar html = \"
0\\\" layout-fill>
assignment_turned_in

You're all caught up!

Items assigned to you will appear here.

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/todolistContextMenu/todolistContextMenu.template.html';\n\tvar html = \"
Date arrow_drop_up arrow_drop_down Group / Type arrow_drop_up arrow_drop_down Status arrow_drop_up arrow_drop_down
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/trash/trash.template.html';\n\tvar html = \" 0\\\" layout-fill layout=column layout-align=\\\"start stretch\\\">
Empty Trash

{{trashPiece.name}}

Deleted {{date}} by {{trashPiece.deletedBy}}

restore_page delete_forever
delete

Trash is empty

When users delete items they'll appear here

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/user/user.template.html';\n\tvar html = \"
User Settings lock

Lock Account

User Roles settings

Site Administrator

Allow users to control features of this deployment such as document groups.

people

User Administrator

Allow users to add/edit/delete users and groups for this deployment.

{{::'Cancel' | translate}} {{::'Update' | translate}} {{::'Create' | translate}}
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/userAdmin/userAdmin.template.html';\n\tvar html = \"
people

User Groups

person

Users

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/userGroup/userGroup.template.html';\n\tvar html = \"
You must supply a User Group name.
Your name must be less than 50 characters.
Assigned Users
add clear account_circle

{{user.UserName}}

{{user.EmailAddress}}
Cancel Update Create
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/userGroups/userGroups.template.html';\n\tvar html = \"
add supervisor_account

{{group.UserGroupName}}{{group.UserCount}}

\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ }),\n/* 205 */\n/***/ (function(module, exports) {\n\n\tvar path = 'components/users/users.template.html';\n\tvar html = \"
add lock account_circle

{{user.UserName}}

{{user.EmailAddress}}
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ })\n]);\n\n\n// WEBPACK FOOTER //\n// app.650bfc.min.js","/* globals DEBUG */\n\n/* manually bootstrap app once translations are determined */\n(function resolveBootstrap() {\n\n loadAppAsync()\n\t\t.then(function(resolvedLang){ bootstrapApp(resolvedLang); });\n\n function loadAppAsync() {\n\t\t\n var initInjector = angular.injector(['ng', 'phoenix', 'site.settings','gettext']);\n var $http = initInjector.get('$http');\n var pxEnvironmentService = initInjector.get('pxEnvironmentService');\n var settingsService = initInjector.get('settingsService');\n var gettextCatalog = initInjector.get('gettextCatalog');\n\n\t\t// determine the current locale and use angular-gettext to get the\n\t\t// correct catalog strings. Also use this info to set the proper path to the\n\t\t// terms and conditions (legalLanguage)\n\t\treturn pxEnvironmentService.loadLanguages()\n\t\t\t.then(function(language){\n\t\t\t\tlanguage = language.toLowerCase();\n\t\t\t\tif (language === 'en' || language === 'en-us') {\n\t\t\t\t\treturn 'en';\n\t\t\t\t}\n\n\t\t\t\treturn gettextCatalog.loadRemote('lang/' + language + '.json')\n\t\t\t\t\t.then(function(){\n\t\t\t\t\t\treturn gettextCatalog.loadRemote('lang/sharebase/' + language + '.json');\n\t\t\t\t\t})\n\t\t\t\t\t.then(function(){\n\t\t\t\t\t\treturn language;\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(){\n\t\t\t\t\t\treturn 'en';\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.then(function(language) {\n\t\t\t\tgettextCatalog.setCurrentLanguage(language);\n\n\t\t\t\tvar tosPath = '/' + language + '/terms-of-use-and-subscription/index.htm';\n\t\t\t\treturn $http.head(settingsService.serverLegalPath + tosPath)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tpxEnvironmentService.legalLanguage = language;\n\t\t\t\t\t\treturn {lang: gettextCatalog.currentLanguage, legalLang: language, strings: gettextCatalog.strings };\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function() {\n\t\t\t\t\t\tpxEnvironmentService.legalLanguage = 'en';\n\t\t\t\t\t\treturn {lang: gettextCatalog.currentLanguage, legalLang: 'en', strings: gettextCatalog.strings };\n\t\t\t\t\t});\n\t\t\t});\n\n }\n\n function bootstrapApp(resolvedLang) {\n\t\t/* we create a new module \n\t\t *\t\t- config block to generate MD themes on app load\n\t\t *\t\t- run block to set the resolved language/strings\n\t\t *\t\t- depend on original auto bootstrap module - smb-app.app\n\t\t */\n\t\tangular.module('asyncAppLoader',['smb-app.app'])\n\t\t\t.config(['$mdThemingProvider',\tfunction ($mdThemingProvider) {\t\t\t\t\t\t\n\t\t\t\t//seems mdThemes are not generated during manual bootstrap, so allow themes to be generated after config block\n\t\t\t\t$mdThemingProvider.generateThemesOnDemand(true);\n\t\t\t}])\n\t\t\t.run([\n\t\t\t\t'gettextCatalog',\n\t\t\t\t'pxEnvironmentService',\n\t\t\t\tfunction(gettextCatalog, pxEnvironmentService){\t\t\t\t\t\n\t\t\t\t\t//set resolved language\n\t\t\t\t\tif(resolvedLang){\n\t\t\t\t\t\tgettextCatalog.setCurrentLanguage(resolvedLang.lang);\n\t\t\t\t\t\tgettextCatalog.strings = resolvedLang.strings;\n\t\t\t\t\t\tpxEnvironmentService.legalLanguage = resolvedLang.legalLang;\n\t\t\t\t\t}\n\t\t\t}]);\n\n\t\t//now bootstrap app\n angular.element(document).ready(function() {\n angular.bootstrap(document, ['asyncAppLoader']);\t\t\t\n });\n }\n}());\n\n(function () {\n\t'use strict';\n\tangular.module('smb-app',\n\t\t[\n\t\t\t'ngMaterial',\n\t\t\t'ui.router',\n\t\t\t'ngMessages',\n\t\t\t'site.settings',\n\t\t\t'phoenix',\n\t\t\t'phoenix.acl',\n\t\t\t'phoenix.appIdentifier',\n\t\t\t'sharebase',\n\t\t\t'gettext'\n\t\t])\n\t\t.config([\n\t\t\t'$mdThemingProvider',\n\t\t\tfunction ($mdThemingProvider) {\n\t\t\t\t//color theme declarations\n\t\t\t\t//http://www.google.com/design/spec/style/color.html#color-color-palette\n\t\t\t\t$mdThemingProvider.definePalette('sharebase', {\n\t\t\t\t\t'50': '00586E',\n\t\t\t\t\t'100': '7fdcf2',\n\t\t\t\t\t'200': 'ebf2f3',\n\t\t\t\t\t'300': '00586E',\n\t\t\t\t\t'400': '00586E',\n\t\t\t\t\t'500': '00586E',\n\t\t\t\t\t'600': '00586E',\n\t\t\t\t\t'700': '00586E',\n\t\t\t\t\t'800': '00586E',\n\t\t\t\t\t'900': '00586E',\n\t\t\t\t\t'A100': '00586E',\n\t\t\t\t\t'A200': '00cbee',\n\t\t\t\t\t'A400': '00cbee',\n\t\t\t\t\t'A700': '00cbee',\n\t\t\t\t\t'contrastDefaultColor': 'dark' // whether, by default, text (contrast)\n\t\t\t\t});\n\n\t\t\t\t$mdThemingProvider.theme('sharebase')\n\t\t\t\t\t.primaryPalette('sharebase', {\n\t\t\t\t\t\t'default': '50',\n\t\t\t\t\t\t'hue-1': '100',\n\t\t\t\t\t\t'hue-2': '200',\n\t\t\t\t\t\t'hue-3': 'A100'\n\t\t\t\t\t})\n\t\t\t\t\t.accentPalette('blue', {\n\t\t\t\t\t\t'hue-1': '50',\n\t\t\t\t\t\t'hue-2': '100',\n\t\t\t\t\t\t'hue-3': 'A100'\n\t\t\t\t\t})\n\t\t\t\t\t.warnPalette('red', {\n\t\t\t\t\t\t'default': '500',\n\t\t\t\t\t\t'hue-1': '100',\n\t\t\t\t\t\t'hue-2': '700',\n\t\t\t\t\t\t'hue-3': 'A100'\n\t\t\t\t\t});\n\t\t\t}\n\t\t])\n\t\t.run([\n\t\t\t'gettextCatalog',\n\t\t\tfunction(gettextCatalog){\n\t\t\t\tif (DEBUG) {\n\t\t\t\t\tgettextCatalog.showTranslatedMarkers = true;\n\t\t\t\t}\n\t\t\t\t\n\t\t}])\n\t\t.controller('smbAppController', ['pxProgressService', 'smbEnvironmentService', '$mdTheming', AppController]);\n\n\tfunction AppController(pxProgressService, smbEnvironmentService, $mdTheming) {\n\t\tvar vm = this;\n\t\t//generate the predefined theme named sharebase\n\t\t$mdTheming.generateTheme('sharebase');\n\n\t\tvm.environment = smbEnvironmentService;\n\t\tvm.progressUI = pxProgressService;\n\t}\n}());\n\nrequire('./app.style');\nrequire('./components');\nrequire('./dataStores');\nrequire('./services');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/smb-app.js\n// module id = 0\n// module chunks = 1","var path = 'components/userSelectorDialog/userSelectorDialog.template.html';\nvar html = \"
19, 'showFilter': vm.showFilter }\\\">
19\\\" ng-click=\\\"vm.showFilter = !vm.showFilter\\\"> filter_list done clear
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/userSelectorDialog/userSelectorDialog.template.html\n// module id = 1\n// module chunks = 1","module.exports = __webpack_public_path__ + \"./assets/airbaselogo.929f20.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/imgs/airbaselogo.png\n// module id = 2\n// module chunks = 1","var path = 'services/deleteDialogService/deleteDialog.template.html';\nvar html = \"

{{vm.title}}

{{vm.message}}

{{vm.purgeText}}

{{::'Permanently Delete' | translate}}
Cancel Delete
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/deleteDialogService/deleteDialog.template.html\n// module id = 6\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app.app', [\n\t\t\t'smb-app'\n\t\t])\n\t\t.run([\n\t\t\t'$rootScope', \n\t\t\t'$state', \n\t\t\t'$injector', \n\t\t\t'pxAuthService', \n\t\t\t'smbPanelDetailsDataStore',\n\t\t\tfunction ($rootScope, $state, $injector, pxAuthService, smbPanelDetailsDataStore) {\n\t\t\t\n\t\t\t$rootScope.$on('$stateChangeStart', function (e, to) {\n\t\t\t\t// closes side panel for any route that does not explicitly\n\t\t\t\t// support side panel, this makes sure side panels get closed\n\t\t\t\t// on state changes\n\t\t\t\tif (!(to.data && to.data.hasSidePanel)) {\n\t\t\t\t\tsmbPanelDetailsDataStore.reset();\n\t\t\t\t}\n\n\t\t\t\tvar rule = to.data ? to.data.rule : null;\n\t\t\t\tvar redirect;\n\n\t\t\t\t// If user is not authenticated, they can only reach the login and register states\n\t\t\t\tif (!pxAuthService.isAuthenticated && !(to.parent === 'loginComponent' || to.name === 'register')) {\n\t\t\t\t\tredirect = {\n\t\t\t\t\t\tto: 'login'\n\t\t\t\t\t};\n\t\t\t\t} else if (angular.isFunction(rule)) {\n\t\t\t\t\tredirect = rule($injector);\n\t\t\t\t}\n\n\t\t\t\tif (redirect && redirect.to !== to.name) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$state.go(redirect.to, redirect.params, { reload: redirect.to === $state.current.name });\n\t\t\t\t}\n\t\t\t});\n\t\t}])\n\t\t.config([\n\t\t\t'$urlRouterProvider',\n\t\t\t'$stateProvider',\n\t\t\t'$httpProvider',\n\t\t\t'pxAppIdentifierInterceptorProvider',\n\t\t\tfunction ($urlRouterProvider, $stateProvider, $httpProvider, pxAppIdentifierInterceptorProvider) {\n\t\t\t\tpxAppIdentifierInterceptorProvider.setAppId('AirBase');\n\n\t\t\t\tif (!$httpProvider.defaults.headers.get) {\n\t\t\t\t\t$httpProvider.defaults.headers.get = {};\n\t\t\t\t}\n\n\t\t\t\t//disable IE ajax request caching\n \t\t\t$httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';\n\n\t\t\t\t//http intercepetors\n\t\t\t\t$httpProvider.interceptors.push('pxAuthInterceptor');\n\t\t\t\t$httpProvider.interceptors.push('pxAppIdentifierInterceptor');\n\t\t\t\t\n\t\t\t\t// defualt state\n\t\t\t\t$urlRouterProvider.otherwise('/');\n\n\t\t\t\t//state definitions\n\t\t\t\t$stateProvider\n\t\t\t\t\t.state('register', {\n\t\t\t\t\t\turl: '/register/:deploymentId?auth',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\tmain: {\n\t\t\t\t\t\t\t\ttemplate: function(params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('loginComponent', {\n\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\turl: '',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('content', {\n\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\turl: '/',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('content.home', {\n\t\t\t\t\t\turl: '',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('useradmin', {\n\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\turl: '/useradmin',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\trule: inject(['pxAuthService', function (pxAuthService) {\n\t\t\t\t\t\t\t\t// only site admins and user admins can access these pages\n\t\t\t\t\t\t\t\tif (!pxAuthService.isSiteAdmin && !pxAuthService.isUserAdmin) {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tto: 'content.home'\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}])\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('useradmin.home', {\n\t\t\t\t\t\turl: '',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('useradmin.home.usergroups', {\n\t\t\t\t\t\turl: '/usergroups',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@useradmin': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('useradmin.home.usergroups.details', {\n\t\t\t\t\t\turl: '/:usergroupId',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@useradmin': {\n\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('useradmin.home.users', {\n\t\t\t\t\t\turl: '/users',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@useradmin': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('useradmin.home.users.details', {\n\t\t\t\t\t\turl: '/:userId',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@useradmin': {\n\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('contentConfig', {\n\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\turl: '/contentconfiguration',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\trule: inject(['pxAuthService', function (pxAuthService) {\n\t\t\t\t\t\t\t\t// only site admins can access content configuration\n\t\t\t\t\t\t\t\tif (!pxAuthService.isSiteAdmin) {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tto: 'content.home'\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}])\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('contentConfig.groups', {\n\t\t\t\t\t\turl: '/contenttypegroups',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('contentConfig.groups.details', {\n\t\t\t\t\t\turl: '/:groupId',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@contentConfig': { template: function (params) { return ''; } }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('contentConfig.types', {\n\t\t\t\t\t\turl: '/contenttypegroups/:groupId/contenttypes',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app': {\n\t\t\t\t\t\t\t\ttemplate: function (params) { return ''; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('contentConfig.types.details', {\n\t\t\t\t\t\turl: '/:typeId',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@contentConfig': {\n\t\t\t\t\t\t\t\ttemplate: function (params) { return ''; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('documentTrash', {\n\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\turl: '/trash',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\trule: inject(['pxAuthService', function (pxAuthService) {\n\t\t\t\t\t\t\t\tvar privs = pxAuthService.privileges;\n\t\t\t\t\t\t\t\tvar hasTrashPriv = privs.core && privs.core.trash ?\n\t\t\t\t\t\t\t\t\tprivs.core.trash.manageTrash :\n\t\t\t\t\t\t\t\t\tfalse;\n\n\t\t\t\t\t\t\t\t// only site admins can access content configuration\n\t\t\t\t\t\t\t\tif (!pxAuthService.isSiteAdmin && !hasTrashPriv) {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tto: 'content.home'\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}])\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('documentTrash.home', {\n\t\t\t\t\t\turl: '',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('import', {\n\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\turl: '/import',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('import.contentTypeGroups', {\n\t\t\t\t\t\turl: '',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('import.contentTypeGroups.contentTypes', {\n\t\t\t\t\t\turl: '/:groupId',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@import': {\n\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('import.contentTypeGroups.contentTypes.content', {\n\t\t\t\t\t\turl: '/:typeId',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@import': {\n\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('search', {\n\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\turl: '/search',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('search.contentTypeGroups', {\n\t\t\t\t\t\turl: '',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('search.contentTypeGroups.contentTypes', {\n\t\t\t\t\t\turl: '/:groupId',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@search': {\n\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('search.contentTypeGroups.contentTypes.groupSearch', {\n\t\t\t\t\t\turl: '/all',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@search': {\n\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('search.contentTypeGroups.contentTypes.groupSearch.results', {\n\t\t\t\t\t\turl: '/results',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@search': {\n\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('search.contentTypeGroups.contentTypes.search', {\n\t\t\t\t\t\turl: '/:typeId',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@search': {\n\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('search.contentTypeGroups.contentTypes.search.results', {\n\t\t\t\t\t\turl: '/results',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app@search': {\n\t\t\t\t\t\t\t\ttemplate: function (params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('todo', {\n\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\turl: '/mytodolist',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'main': { template: '' }\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('todo.list', {\n\t\t\t\t\t\turl: '',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\t'app': { template: ''}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('document', {\n\t\t\t\t\t\turl: '/documentgroups/:documentGroupId/documenttypes/:documentTypeId/documents/:documentId',\n\t\t\t\t\t\tabstract: true,\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\tmain: {\n\t\t\t\t\t\t\t\ttemplate: ''\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.state('document.view', {\n\t\t\t\t\t\turl: '',\n\t\t\t\t\t\tviews: {\n\t\t\t\t\t\t\tapp: {\n\t\t\t\t\t\t\t\ttemplate: function(params) {\n\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\tfunction inject() {\n\t\t\t\t\tvar injectionArgs = arguments;\n\t\t\t\t\treturn function injectableWrapper($injector) {\n\t\t\t\t\t\t$injector = $injector || angular.injector(['ng']);\n\n\t\t\t\t\t\treturn $injector.invoke.apply($injector, injectionArgs);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t])\n\t\t// This is from the demo and will eventually be removed. We will need to discuss theming items.\n\t\t// This maps a number to a color and is used in various components that list items to color them by\n\t\t// the list index.\n\t\t/* jshint maxcomplexity:12 */\n\t\t.filter('colorFilter', function () {\n\t\t\treturn function (position) {\n\t\t\t\tposition = (position % 11) + 1;\n\t\t\t\tswitch (position) {\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\treturn 'blue';\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\treturn 'green';\n\t\t\t\t\tcase 3:\n\t\t\t\t\t\treturn 'lightBlue';\n\t\t\t\t\tcase 4:\n\t\t\t\t\t\treturn 'yellow';\n\t\t\t\t\tcase 5:\n\t\t\t\t\t\treturn 'onbaseBlue';\n\t\t\t\t\tcase 6:\n\t\t\t\t\t\treturn 'lightGreen';\n\t\t\t\t\tcase 7:\n\t\t\t\t\t\treturn 'sharebaseBlue';\n\t\t\t\t\tcase 8:\n\t\t\t\t\t\treturn 'orange';\n\t\t\t\t\tcase 9:\n\t\t\t\t\t\treturn 'gray';\n\t\t\t\t\tcase 10:\n\t\t\t\t\t\treturn 'darkGreen';\n\t\t\t\t\tcase 11:\n\t\t\t\t\t\treturn 'yellow';\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn 'green';\n\t\t\t\t}\n\t\t\t};\n\t\t})\n\t\t// Removes div elements and precedes the text that was previously\n\t\t// contained in the div with a br element\n\t\t.filter('lineBreak', function() {\n\t\t\treturn function(text) {\n\t\t\t\treturn text\n\t\t\t\t\t.split('

').join('
')\n\t\t\t\t\t.split('
').join('
')\n\t\t\t\t\t.split('
').join('');\n\t\t\t};\n\t\t})\n\t\t// Escapes html in text so it can be used with the ng-bind-html directive\n\t\t.filter('trustHTML', ['$sce', function($sce) {\n\t\t\treturn function(htmlCode) {\n\t\t\t\treturn $sce.trustAsHtml(htmlCode);\n\t\t\t};\n\t\t}])\n\t\t.directive('smbMain',\n\t\t[\n\t\t\tMainDirective\n\t\t])\n\t\t.controller('MainController',\n\t\t[\n\t\t\t'$window',\n\t\t\t'$state',\n\t\t\t'smbToDoListDataStore',\n\t\t\t'smbPanelDetailsDataStore',\n\t\t\t'smbToolbarService',\n\t\t\t'pxAuthService',\n\t\t\t'pxEnvironmentService',\n\t\t\tMainController\n\t\t]);\n\n\tvar templateUrl = require('./app.template');\n\tfunction MainDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: MainController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction MainController($window, $state, smbToDoListDataStore, smbPanelDetailsDataStore, smbToolbarService, pxAuthService, pxEnvironmentService) {\n\t\tvar vm = this;\t\t\n\t\tvm.todoListDS = smbToDoListDataStore;\n\n\t\t// Wrap in check to make sure user is authenticated, because this controller\n\t\t// may be created before user logs in\n\t\tif (pxAuthService.isAuthenticated) {\n\t\t\tvm.todoListDS.loadCount();\n\t\t\tvm.todoListDS.init();\n\t\t}\n\n\t\tvm.logout = logout;\n\t\tvm.openLink = openLink;\n\t\tvm.isUserAdmin = isUserAdmin;\n\t\tvm.isContentAdmin = isContentAdmin;\n\t\tvm.smbToolbarService = smbToolbarService;\n\t\tvm.panelDetailsDS = smbPanelDetailsDataStore;\n\t\tvm.pxEnvironmentService = pxEnvironmentService;\n\t\tvm.userName = pxAuthService.displayName;\n\t\tvm.privileges = pxAuthService.privileges;\n\t\tvm.isSiteAdmin = pxAuthService.isSiteAdmin;\n\n\t\t// flag that determines if the mobile navigation\n\t\t// via a sidebar is open or closed\n\t\tvm.mobileNavOpen = false;\n\n\t\tvm.onClickBackArrow = onClickBackArrow;\n\n\t\tfunction isUserAdmin() {\n\t\t\treturn smbToolbarService.hasUserAdminRights;\n\t\t}\n\n\t\tfunction isContentAdmin() {\n\t\t\treturn smbToolbarService.hasContentAdminRights;\n\t\t}\n\n\t\tfunction logout() {\n\t\t\tpxAuthService.invalidateLogin();\n\t\t\tvm.todoListDS.clear();\n\t\t\t$state.go('login');\n\t\t}\n\n\t\tfunction onClickBackArrow() {\n\t\t\t$state.go(vm.smbToolbarService.backArrowState, vm.smbToolbarService.backArrowStateParams);\n\t\t}\n\n\t\tfunction openLink(url) {\n\t\t\t$window.open(url,'_blank');\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/_app/app.js\n// module id = 62\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbAssignedUsers',[AssignedUsersDirective])\n\t\t.controller('AssignedUsersController', [\n\t\t\tAssignedUsersController\n\t\t]);\n\n\tvar templateUrl = require('./assignedUsers.template');\n\tfunction AssignedUsersDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: AssignedUsersController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tassignedUsers: '=',\n\t\t\t\tselectedUser: '=',\n\t\t\t\tisContentStatusSelected: '='\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction AssignedUsersController() {\n\t\tvar vm = this;\n\t\tvm.onChange = onChange;\n\n\t\tfunction onChange() {\n\t\t\tif (vm.selectedUser === '') {\n\t\t\t\tvm.selectedUser = undefined;\n\t\t\t}\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/assignedUsers/assignedUsers.js\n// module id = 63\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentSearch', [ContentSearchDirective])\n\t\t.controller('ContentSearchController',\n\t\t[\n\t\t\t'$state',\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbStatusDataStore',\n\t\t\t'smbUsersDataStore',\n\t\t\t'smbIndexTypesDataStore',\n\t\t\t'smbContentSearchDataStore',\n\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t'smbIconTypes',\n\t\t\tContentSearchController\n\t\t]);\n\n\tvar templateUrl = require('./contentSearch.template');\n\tfunction ContentSearchDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentSearchController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: {\n\t\t\t\tgroupId: '@',\n\t\t\t\ttypeId: '@'\n\t\t\t},\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction ContentSearchController($state, gettextCatalog, pxProgressService, smbToolbarService, smbStatusDataStore, smbUsersDataStore, smbIndexTypesDataStore,\n\t\t\t\t\t\t\t\t\t\tsmbContentSearchDataStore, smbContentTypeGroupConfigDataStore, smbContentTypeConfigDataStore, smbIconTypes) {\n\n\t\tsmbToolbarService.set(gettextCatalog.getString('Search Document Type'), 'search.contentTypeGroups.contentTypes');\n\n\t\tvar vm = this;\n\t\tvar ARCHIVAL_STATUS = 'Archival Status';\n\t\tvar TODO_STATUS = 'ToDo Status';\n\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\n\t\tvm.docDateStart = new Date();\n\t\tvm.docDateEnd = new Date();\n\n\t\tvm.search = search;\n\n\t\tvm.contentTypeDS = smbContentTypeConfigDataStore;\n\t\tvm.contentTypeGroupDS = smbContentTypeGroupConfigDataStore;\n\t\tvm.indexTypesDS = smbIndexTypesDataStore;\n\t\tvm.statusDS = smbStatusDataStore;\n\t\tvm.usersDS = smbUsersDataStore;\n\t\tvm.filename = null;\n\n\t\tvm.indextypes = [];\n\t\tvm.contentStatuses = [];\n\t\tvm.todoStatuses = [];\n\t\tvm.status = null;\n\t\tvm.selectedUser = null;\n\t\tvm.isContentStatusSelected = false;\n\t\tvm.onStatusChange = onStatusChange;\n\n\t\tvm.indexFileChanged = indexFileChanged;\n\n\t\tfunction indexFileChanged(fileInput) {\n\t\t\tif (fileInput.files.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvm.filename = fileInput.files[0].name;\n\t\t}\n\n\t\tvm.contentTypeGroupDS.getContentTypeGroup(vm.groupId)\n\t\t.then(function () {\n\t\t\tvm.contentTypeDS.getContentType(vm.groupId, vm.typeId);\n\t\t})\n\t\t.then(function () {\n\t\t\tvm.indexTypesDS.getIndexTypes(vm.typeId).then(function () {\n\t\t\t\tvm.indextypes = vm.indexTypesDS.indexTypes.map(function(it) {\n\t\t\t\t\treturn angular.extend({}, it, {defaultValue: undefined});\n\t\t\t\t});\n\t\t\t});\n\t\t})\n\t\t.then(function() {\n\t\t\treturn vm.statusDS.loadStatuses(vm.typeId);\n\t\t})\n\t\t.then(function() {\n\t\t\tvm.contentStatuses = [];\n\t\t\tif (vm.statusDS.contentStatus[0]) {\n\t\t\t\tvm.contentStatuses = vm.statusDS.contentStatus[0].Constraints.DataSetValues.map(function(s) {\n\t\t\t\t\treturn {TagTypeId: vm.statusDS.contentStatus[0].TagTypeId, indexValue: s, type: ARCHIVAL_STATUS};\n\t\t\t\t});\n\t\t\t}\n\t\t\tvm.todoStatuses = [];\n\t\t\tif (vm.statusDS.todoStatus[0]) {\n\t\t\t\tvm.todoStatuses = vm.statusDS.todoStatus[0].Constraints.DataSetValues.map(function(s) {\n\t\t\t\t\treturn {TagTypeId: vm.statusDS.todoStatus[0].TagTypeId, indexValue: s, type: TODO_STATUS};\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t\t.then(function() {\n\t\t\treturn vm.usersDS.getUsers();\n\t\t});\n\n\t\tfunction onStatusChange() {\n\t\t\tif (vm.status) {\n\t\t\t\tvar Status = JSON.parse(vm.status);\n\t\t\t\tif (Status.type === ARCHIVAL_STATUS) {\n\t\t\t\t\tvm.isContentStatusSelected = true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvm.isContentStatusSelected = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvm.isContentStatusSelected = false;\n\t\t\t\tvm.status = undefined;\n\t\t\t}\n\t\t}\n\n\t\tfunction search() {\n\t\t\tif (vm.status) {\n\t\t\t\tvm.status = JSON.parse(vm.status);\n\t\t\t\tvm.indextypes.push({TagTypeId: vm.status.TagTypeId, indexValue: vm.status.indexValue});\n\t\t\t}\n\t\t\tif (vm.selectedUser && !vm.isContentStatusSelected) {\n\t\t\t\tvm.selectedUser = JSON.parse(vm.selectedUser);\n\t\t\t\tvm.indextypes.push({TagTypeId: vm.indexTypesDS.assignedUserId, indexValue: vm.selectedUser.UserId});\n\t\t\t}\n\t\t\tsmbContentSearchDataStore.setTagValues(vm.indextypes);\n\t\t\t$state.go('search.contentTypeGroups.contentTypes.search.results',{ groupId: vm.groupId, typeId: vm.typeId });\n\t\t}\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentSearch/contentSearch.js\n// module id = 64\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentSearchResults', [ContentSearchResultsDirective])\n\t\t.controller('ContentSearchResultsController',\n\t\t[\n\t\t\t'gettextCatalog',\n\t\t\t'smbToolbarService',\n\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t'smbIconTypes',\n\t\t\t'smbContentSearchDataStore',\n\t\t\t'smbDocumentViewerNavigationService',\n\t\t\tContentSearchResultsController\n\t\t]);\n\n\tvar templateUrl = require('./contentSearchResults.template');\n\tfunction ContentSearchResultsDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentSearchResultsController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tgroupId: '@',\n\t\t\t\ttypeId: '@'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction ContentSearchResultsController(gettextCatalog, smbToolbarService, smbContentTypeGroupConfigDataStore, smbContentTypeConfigDataStore, smbIconTypes, smbContentSearchDataStore, smbDocumentViewerNavigationService) {\n\n\t\tsmbToolbarService.set(gettextCatalog.getString('Search Results'), 'search.contentTypeGroups.contentTypes.search');\n\n\t\tvar vm = this;\n\t\tvm.contentSearchDS = smbContentSearchDataStore;\n\t\tvm.contentTypeGroupDS = smbContentTypeGroupConfigDataStore;\n\t\tvm.contentTypeDS = smbContentTypeConfigDataStore;\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\tvm.documentNavigation = smbDocumentViewerNavigationService;\n\n\t\t(function loadSearchResults() {\n\t\t\tsmbContentSearchDataStore.getDocuments(vm.groupId, vm.typeId);\n\t\t})();\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentSearchResults/contentSearchResults.js\n// module id = 65\n// module chunks = 1","/* jshint maxstatements: false */\n(function () {\n\t'use strict';\n\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.smbContentTypeConfig\n\t * @module smb-app\n\t * @restrict E\n\t *\n\t * @description\n\t * Displays a form that can be used for creating new content types or editing\n\t * existing content types.\n\t *\n\t * @usage Create a new content type\n\t *\n\t * \n\t *\n\t * @usage Edit an existing content type\n\t *\n\t * \n\t *\n\t * @element input\n\t * @param {number=} contentTypeGroupId Id of the content type group the content type belongs to\n\t * @element input\n\t * @param {number=} contentTypeId An optional id of an existing content type. If provided, the form\n\t * will be used to edit the content type. If omitted, the form will be used to create a new content type.\n\t */\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypeConfig', ContentTypeConfigDirective)\n\t\t.controller('smbContentTypeConfigController', [\n\t\t\t'$scope',\n\t\t\t'$q',\n\t\t\t'$state',\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'sbToastService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbSortService',\n\t\t\t'smbStatusConfigDataStore',\n\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t'smbContentTypeGroupTagTypesConfigDataStore',\n\t\t\t'smbContentTypeTagTypeConfigDataStore',\n\t\t\tContentTypeConfigController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypeConfig.template');\n\tfunction ContentTypeConfigDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbContentTypeConfigController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: {\n\t\t\t\tcontentTypeGroupId: '@',\n\t\t\t\tcontentTypeId: '@'\n\t\t\t},\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction ContentTypeConfigController(\n\t\t$scope,\n\t\t$q,\n\t\t$state,\n\t\tgettextCatalog,\n\t\tpxProgressService,\n\t\tsbToastService,\n\t\tsmbToolbarService,\n\t\tsmbSortService,\n\t\tsmbStatusConfigDataStore,\n\t\tsmbContentTypeConfigDataStore,\n\t\tsmbContentTypeGroupTagTypesConfigDataStore,\n\t\tsmbContentTypeTagTypeConfigDataStore\n\t) {\n\t\tvar vm = this;\n\t\tvm.isLoading = false;\n\n\t\t// Set toolbar state, including the title, back arrow target state, and hide contextual toolbar and side panel\n\t\tvar title = vm.contentTypeId ? gettextCatalog.getString('Edit Document Type') : gettextCatalog.getString('Create Document Type');\n\t\tsmbToolbarService.set(title, 'contentConfig.types', false, false);\n\t\tsmbToolbarService.backArrowStateParams = { groupId: vm.contentTypeGroupId };\n\n\t\t// Dirty flags for the various types. These are used to determine if\n\t\t// an asterisk should be displayed next to a section's label.\n\t\tvm.typeIsDirty = false;\n\t\tvm.indexTypesAreDirty = false;\n\t\tvm.statusIsDirty = false;\n\n\t\t// The different types being edited in this section.\n\t\tvm.contentType = null;\n\t\tvm.contentTypeIndexes = [];\n\t\tvm.contentTypeGroupIndexes = [];\n\n\t\t// Event handlers for the subcomponents\n\t\tvm.onSubmit = onSubmit;\n\t\tvm.onContentTypeChange = onContentTypeChange;\n\t\tvm.onAddIndexType = onAddIndexType;\n\t\tvm.onEditIndexType = onEditIndexType;\n\t\tvm.onDeleteIndexType = onDeleteIndexType;\n\t\tvm.onStatusChange = onStatusChange;\n\t\tvm.onSequence = onSequence;\n\n\t\tvm.contentStatus = null;\n\t\tvm.todoStatus = null;\n\t\tvm.assignedUserId = null;\n\t\tvm.assignedDate = null;\n\t\tvm.contentStatuses = [];\n\t\tvm.todoStatuses = [];\n\t\tvm.readOnly = false;\n\n\t\tvar sortTagTypeByName = smbSortService.sortObjectByStringProperty('TagTypeName');\n\n\t\t/*** Controller initialization ***/\n\t\t(function initConentTypeConfigController() {\n\t\t\tvm.typeIsDirty = false;\n\t\t\tvm.indexTypesAreDirty = false;\n\t\t\tvm.statusIsDirty = false;\n\n\t\t\tvm.isLoading = true;\n\t\t\tpxProgressService.visible = true;\n\n\t\t\tsmbContentTypeConfigDataStore\n\t\t\t\t.getContentType(vm.contentTypeGroupId, vm.contentTypeId)\n\t\t\t\t\t.then(function() { /* Copy object so we don't mutate the one on the data store. */\n\t\t\t\t\t\tvm.contentType = Object.assign({}, smbContentTypeConfigDataStore.contentType);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() { /* Load content type level tag types */\n\t\t\t\t\t\treturn smbContentTypeTagTypeConfigDataStore.getTagTypes(vm.contentTypeId);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() { /* Copy array and objects in array so we don't mutate the ones on the data store. */\n\t\t\t\t\t\tvm.contentTypeIndexes = smbContentTypeTagTypeConfigDataStore.tagTypes\n\t\t\t\t\t\t\t.filter(function(tt) {\n\t\t\t\t\t\t\t\treturn !(tt.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\treturn Object.assign({}, tt, {\n\t\t\t\t\t\t\t\t\tConstraints: Object.assign({}, tt.Constraints)\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tif (vm.contentTypeId) {\n\t\t\t\t\t\t\tvm.contentStatus = smbContentTypeTagTypeConfigDataStore.contentStatus\n\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\treturn Object.assign({}, tt);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvm.todoStatus = smbContentTypeTagTypeConfigDataStore.todoStatus\n\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\treturn Object.assign({}, tt);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvm.assignedUserId = smbContentTypeTagTypeConfigDataStore.assignedUserId\n\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\treturn Object.assign({}, tt);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvm.assignedDate = smbContentTypeTagTypeConfigDataStore.assignedDate\n\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\treturn Object.assign({}, tt);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn $q.resolve([]);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tvm.contentStatuses = [];\n\t\t\t\t\t\tvm.todoStatuses = [];\n\t\t\t\t\t\tif (vm.contentTypeId) {\n\t\t\t\t\t\t\tif (vm.contentStatus[0]) {\n\t\t\t\t\t\t\t\tvm.contentStatuses = (vm.contentStatus[0].Constraints.DataSetValues) ? vm.contentStatus[0].Constraints.DataSetValues : [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (vm.todoStatus[0]) {\n\t\t\t\t\t\t\t\tvm.todoStatuses = (vm.todoStatus[0].Constraints.DataSetValues) ? vm.todoStatus[0].Constraints.DataSetValues : [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvm.readOnly = (vm.contentStatuses.length + vm.todoStatuses.length) > 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() { /* Load content type group level tag types */\n\t\t\t\t\t\treturn smbContentTypeGroupTagTypesConfigDataStore.getTagTypes(vm.contentTypeGroupId);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() { /* Copy objects, filter out those that are already assigned to the content type. */\n\t\t\t\t\t\tvm.contentTypeGroupIndexes = smbContentTypeGroupTagTypesConfigDataStore.tagTypes\n\t\t\t\t\t\t\t.filter(function(tt) {\n\t\t\t\t\t\t\t\tvar t = vm.contentTypeIndexes.find(function(i) { return i.TagTypeId === tt.TagTypeId; });\n\t\t\t\t\t\t\t\treturn t ? false : true;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\t\treturn Object.assign({}, tt, {\n\t\t\t\t\t\t\t\t\tConstraints: Object.assign({}, tt.Constraints)\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// sort alphabetically by name\n\t\t\t\t\t\tvm.contentTypeGroupIndexes.sort(sortTagTypeByName);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() { /* done */\n\t\t\t\t\t\tvm.isLoading = false;\n\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t});\n\t\t}());\n\n\t\tfunction onSubmit() {\n\t\t\tif (vm.contentType && vm.contentType.FolderName && vm.contentType.IconName) {\n\t\t\t\tvm.isLoading = true;\n\t\t\t\tpxProgressService.visible = true;\n\n\t\t\t\tsaveContentType()\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tvm.contentType = smbContentTypeConfigDataStore.contentType;\n\t\t\t\t\t\tvm.contentTypeId = vm.contentType.FolderId;\n\t\t\t\t\t\tvm.typeIsDirty = false;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\treturn loadStatuses();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() { /* Create any new index types on the content type group */\n\t\t\t\t\t\treturn createNewIndexTypes();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\treturn addIndexTypes(vm.contentTypeIndexes\n\t\t\t\t\t\t.concat(vm.contentStatus)\n\t\t\t\t\t\t.concat(vm.todoStatus)\n\t\t\t\t\t\t.concat(vm.assignedUserId)\n\t\t\t\t\t\t.concat(vm.assignedDate));\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\treturn updateStatuses();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tvm.indexTypesAreDirty = false;\n\t\t\t\t\t\tvm.statusIsDirty = false;\n\t\t\t\t\t\t$state.go('contentConfig.types', {groupId: vm.contentTypeGroupId});\n\t\t\t\t\t\tsbToastService.showSimple(vm.contentTypeId ? gettextCatalog.getString('Document type saved!') : gettextCatalog.getString('New document type created!'));\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\tif (e.status === 409) {\n\t\t\t\t\t\t\tvar message = gettextCatalog.getString('{{folderName}} document type already exists', { folderName: vm.contentType.FolderName });\n\t\t\t\t\t\t\tsbToastService.showSimple(message);\n\t\t\t\t\t\t} else if (typeof e.data === 'string' && e.status !== 500) {\n\t\t\t\t\t\t\tsbToastService.showSimple(e.data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('An unknown error has occurred'));\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tvm.isLoading = false;\n\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction loadStatuses() {\n\t\t\treturn smbContentTypeTagTypeConfigDataStore.getTagTypes(vm.contentTypeId)\n\t\t\t.then(function(response) {\n\t\t\t\tvm.contentStatus = smbContentTypeTagTypeConfigDataStore.contentStatus;\n\t\t\t\tvm.todoStatus = smbContentTypeTagTypeConfigDataStore.todoStatus;\n\t\t\t\tvm.assignedUserId = smbContentTypeTagTypeConfigDataStore.assignedUserId;\n\t\t\t\tvm.assignedDate = smbContentTypeTagTypeConfigDataStore.assignedDate;\n\t\t\t\treturn response;\n\t\t\t});\n\t\t}\n\t\tfunction saveContentType() {\n\t\t\tif (vm.typeIsDirty || vm.contentType.FolderName) {\n\t\t\t\treturn smbContentTypeConfigDataStore.saveContentType(vm.contentTypeGroupId, vm.contentType);\n\t\t\t} else {\n\t\t\t\treturn $q.resolve(vm.contentType);\n\t\t\t}\n\t\t}\n\n\t\tfunction createNewIndexTypes() {\n\t\t\tif (vm.indexTypesAreDirty) {\n\t\t\t\tvar newIndexTypes = vm.contentTypeIndexes.filter(function(i) {\n\t\t\t\t\treturn !i.hasOwnProperty('TagTypeId');\n\t\t\t\t});\n\n\t\t\t\treturn $q.all(\n\t\t\t\t\tnewIndexTypes.map(function(i) {\n\t\t\t\t\t\treturn smbContentTypeGroupTagTypesConfigDataStore.addTagType(vm.contentTypeGroupId, i)\n\t\t\t\t\t\t\t.then(function(tt) {\n\t\t\t\t\t\t\t\tvar index = vm.contentTypeIndexes.indexOf(i);\n\t\t\t\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\t\t\t\tvm.contentTypeIndexes[index] = tt;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn tt;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn $q.resolve([]);\n\t\t\t}\n\t\t}\n\n\t\tfunction updateStatuses() {\n\t\t\tif (vm.statusIsDirty) {\n\t\t\t\tvm.contentStatus[0].Constraints.DataSetValues = vm.contentStatuses;\n\t\t\t\tvm.todoStatus[0].Constraints.DataSetValues = vm.todoStatuses;\n\n\t\t\t\treturn smbStatusConfigDataStore.saveStatuses(vm.contentTypeId, vm.contentStatus[0], vm.todoStatus[0]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn $q.resolve([]);\n\t\t\t}\n\t\t}\n\n\t\tfunction addIndexTypes(indexTypes) {\n\t\t\tif (vm.indexTypesAreDirty) {\n\t\t\t\tvm.statusIsDirty = true;\n\t\t\t\treturn smbContentTypeTagTypeConfigDataStore.setTagTypes(vm.contentTypeId, indexTypes);\n\t\t\t} else {\n\t\t\t\treturn $q.resolve(indexTypes);\n\t\t\t}\n\t\t}\n\n\t\tfunction onContentTypeChange(contentType) {\n\t\t\tvm.typeIsDirty = true;\n\t\t\tvm.contentType = contentType;\n\t\t}\n\n\t\tfunction onAddIndexType(item) {\n\t\t\tvm.indexTypesAreDirty = true;\n\t\t\tvm.contentTypeIndexes = vm.contentTypeIndexes.concat(item);\n\t\t\tvm.contentTypeGroupIndexes = vm.contentTypeGroupIndexes.filter(function(i) {\n\t\t\t\treturn i.TagTypeId !== item.TagTypeId;\n\t\t\t});\n\t\t}\n\n\t\tfunction onDeleteIndexType(item) {\n\t\t\tvm.indexTypesAreDirty = true;\n\t\t\tvm.contentTypeIndexes = vm.contentTypeIndexes.filter(function(tt) {\n\t\t\t\treturn tt.TagTypeName !== item.TagTypeName;\n\t\t\t});\n\n\t\t\tif (item.TagTypeId) {\n\t\t\t\t// this tag type exists, need to add it back to group tag types\n\t\t\t\tvm.contentTypeGroupIndexes = vm.contentTypeGroupIndexes.concat([item]);\n\t\t\t\tvm.contentTypeGroupIndexes.sort(sortTagTypeByName);\n\t\t\t}\n\t\t}\n\n\t\tfunction onStatusChange() {\n\t\t\tvm.statusIsDirty = true;\n\t\t}\n\n\t\tfunction onSequence(index1, index2) {\n\t\t\tif (canSwap(index1, index2, 0, vm.contentTypeIndexes.length - 1)) {\n\t\t\t\tvar tmp = vm.contentTypeIndexes[index1];\n\t\t\t\tvm.contentTypeIndexes[index1] = vm.contentTypeIndexes[index2];\n\t\t\t\tvm.contentTypeIndexes[index2] = tmp;\n\t\t\t\tvm.indexTypesAreDirty = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction canSwap(index1, index2, lowerBound, upperBound) {\n\t\t\t// 1. cannot swap if index1 and index 2 are equal\n\t\t\t// 2. Cannot swap if index 1 or index 2 is below the lower bound\n\t\t\t// 3. cannot swap if index1 or index 2 is above the upper bound\n\t\t\tif (index1 === index2) {\n\t\t\t\treturn false;\n\t\t\t} else if (index1 < lowerBound || index2 < lowerBound) {\n\t\t\t\treturn false;\n\t\t\t} else if (index1 > upperBound || index2 > upperBound) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tfunction onEditIndexType(item) {\n\t\t\tvm.indexTypesAreDirty = true;\n\t\t\tvm.contentTypeIndexes = vm.contentTypeIndexes.map(function(x) {\n\t\t\t\treturn x.TagTypeId === item.TagTypeId ? angular.extend({}, x, item) : x;\n\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeConfig/contentTypeConfig.js\n// module id = 66\n// module chunks = 1","(function() {\n\t'use strict';\n\n\t// user selector dialog template\n\tvar userSelectorTemplateUrl = require('../userSelectorDialog/userSelectorDialog.template');\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypeConfigForm', ContentTypeConfigFormDirective)\n\t\t.controller('smbContentTypeConfigFormController', [\n\t\t\t'$scope',\n\t\t\t'$mdDialog',\n\t\t\t'pxProgressService',\n\t\t\t'smbIconDataStore',\n\t\t\tContentTypeConfigFormController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypeConfigForm.template');\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.smbContentTypeConfigForm\n\t * @module smb-app\n\t * @restrict E\n\t * @description\n\t *\n\t * The configuration form for creating and editing content types\n\t *\n\t * @usage\n\t *\n\t * \n\t */\n\tfunction ContentTypeConfigFormDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbContentTypeConfigFormController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tcontentType: '=',\n\t\t\t\tonChange: '&'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction ContentTypeConfigFormController($scope, $mdDialog, pxProgressService, smbIconDataStore) {\n\t\tvar vm = this;\n\t\tvm.isLoading = false;\n\n\t\tvm.iconSearchText = '';\n\t\tvm.contentTypeIcon = null;\n\n\t\tvm.onNameChange = onNameChange;\n\t\tvm.setIcon = setIcon;\n\n\t\tvar originalIconId = -1;\n\t\t// cache initial value of content type name so we can later see\n\t\t// if the value actually changed.\n\t\tvar typeName = '';\n\t\t/*** Controller initialization ***/\n\t\t(function initContentTypeConfigFormController() {\n\t\t\tvm.isLoading = true;\n\t\t\tpxProgressService.visible = true;\n\t\t\tsmbIconDataStore.loadIcons()\n\t\t\t\t.then(function() {\n\t\t\t\t\t$scope.$watch('vm.contentType', function() {\n\t\t\t\t\t\tif (vm.contentType) {\n\t\t\t\t\t\t\tvm.contentTypeIcon = smbIconDataStore.icons.find(function(i) {\n\t\t\t\t\t\t\t\treturn i.IconUserFriendlyName === vm.contentType.IconName;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toriginalIconId = (vm.contentTypeIcon && vm.contentTypeIcon.IconId) || originalIconId;\n\t\t\t\t\t\t\ttypeName = vm.contentType.FolderName;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tvm.isLoading = false;\n\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t});\n\t\t}());\n\n\t\tvar userSelectorTemplateUrl = require('../userSelectorDialog/userSelectorDialog.template');\n\t\tfunction setIcon(event) {\n\t\t\t$mdDialog.show({\n\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\ttargetEvent: event,\n\t\t\t\tclickOutsideToClose: true,\n\t\t\t\tlocals: {\n\t\t\t\t\tusers: smbIconDataStore.icons,\n\t\t\t\t\tmultiSelect: false\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(function (icon) {\n\t\t\t\tif (icon.length === 1) {\n\t\t\t\t\tvm.contentTypeIcon = icon[0];\n\t\t\t\t\tvm.contentType.IconName = vm.contentTypeIcon.IconUserFriendlyName;\n\t\t\t\t\tvm.contentType.IconId = vm.contentTypeIcon.IconId;\n\t\t\t\t\tif (vm.contentTypeIcon.IconId !== originalIconId) {\n\t\t\t\t\t\toriginalIconId = -1;\n\t\t\t\t\t\temitChange();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, function () {\n\t\t\t\t//cancel\n\t\t\t});\n\t\t}\n\n\t\tfunction onNameChange() {\n\t\t\tif (vm.contentType.FolderName !== typeName) {\n\t\t\t\temitChange();\n\t\t\t}\n\t\t}\n\n\t\tfunction emitChange() {\n\t\t\tvm.onChange({contentType: vm.contentType});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeConfigForm/contentTypeConfigForm.js\n// module id = 67\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypeGroupConfig', [ContentTypeGroupConfigDirective])\n\t\t.controller('ContentTypeGroupConfigController',\n\t\t[\n\t\t\t'$http',\n\t\t\t'$q',\n\t\t\t'$state',\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'sbToastService',\n\t\t\t'smbSortService',\n\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t'smbToolbarService',\n\t\t\t'smbIndexTypesDataTypes',\n\t\t\t'smbContentTypeGroupTagTypesConfigDataStore',\n\t\t\tContentTypeGroupConfigController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypeGroupConfig.template');\n\tfunction ContentTypeGroupConfigDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentTypeGroupConfigController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tgroupId: '@'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction ContentTypeGroupConfigController(\n\t\t$http,\n\t\t$q,\n\t\t$state,\n\t\tgettextCatalog,\n\t\tpxProgressService,\n\t\tsbToastService,\n\t\tsmbSortService,\n\t\tsmbContentTypeGroupConfigDataStore,\n\t\tsmbToolbarService,\n\t\tsmbIndexTypesDataTypes,\n\t\tsmbContentTypeGroupTagTypesConfigDataStore\n\t) {\n\t\tvar vm = this;\n\t\tvar title = vm.groupId ? gettextCatalog.getString('Edit Document Group') : gettextCatalog.getString('Create Document Group');\n\t\tsmbToolbarService.set(title, 'contentConfig.groups');\n\n\t\tvm.loading = false;\n\t\tvm.onSubmit = onSubmit;\n\n\t\t/*** Group related properties ***/\n\t\tvm.group = null;\n\t\tvm.viewRightsUserGroups = [];\n\t\tvm.fullRightsUserGroups = [];\n\t\tvm.editRightsUserGroups = [];\n\t\tvm.groupIsDirty = false;\n\t\tvm.onGroupChange = onGroupChange;\n\n\t\t/*** Index type related properties ***/\n\t\tvm.indexTypes = [];\n\t\tvm.indexTypePool = [];\n\t\tvar newIndexTypes = [];\n\t\tvar editIndexTypes = [];\n\t\tvm.indexTypesAreDirty = false;\n\t\tvm.newIndexType = newIndexType;\n\t\tvm.editIndexType = editIndexType;\n\n\t\tvar sortIndexTypesByName = smbSortService.sortObjectByStringProperty('TagTypeName');\n\n\t\t/*** Controller initialization ***/\n\t\t(function initContentTypeGroupConfigController() {\n\t\t\tvm.groupIsDirty = false;\n\t\t\tvm.indexTypesAreDirty = false;\n\n\t\t\tvm.loading = true;\n\t\t\tpxProgressService.visible = true;\n\t\t\tsmbContentTypeGroupConfigDataStore\n\t\t\t\t.getContentTypeGroup(vm.groupId)\n\t\t\t\t.then(function() {\n\t\t\t\t\tvm.group = Object.assign({}, smbContentTypeGroupConfigDataStore.contentTypeGroup);\n\t\t\t\t\tvm.viewRightsUserGroups = smbContentTypeGroupConfigDataStore.userGroupsWithViewRights.map(function(ug) { return Object.assign({}, ug); });\n\t\t\t\t\tvm.fullRightsUserGroups = smbContentTypeGroupConfigDataStore.userGroupsWithFullRights.map(function(ug) { return Object.assign({}, ug); });\n\t\t\t\t\tvm.editRightsUserGroups = smbContentTypeGroupConfigDataStore.userGroupsWithEditRights.map(function(ug) { return Object.assign({}, ug); });\n\t\t\t\t})\n\t\t\t\t.then(function() {\n\t\t\t\t\treturn smbContentTypeGroupTagTypesConfigDataStore.getTagTypes(vm.groupId);\n\t\t\t\t})\n\t\t\t\t.then(function() {\n\t\t\t\t\tvm.indexTypes = smbContentTypeGroupTagTypesConfigDataStore.tagTypes.map(function(tt) {\n\t\t\t\t\t\treturn Object.assign({}, tt, {\n\t\t\t\t\t\t\tConstraints: Object.assign({}, tt.Constraints)\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\tvm.indexTypes.sort(sortIndexTypesByName);\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tvm.isLoading = false;\n\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t});\n\t\t}());\n\n\t\tfunction onSubmit() {\n\t\t\tvm.loading = true;\n\t\t\tpxProgressService.visible = true;\n\t\t\tif (vm.group && vm.group.LibraryName && vm.group.IconName) {\n\t\t\t\tsaveGroup()\n\t\t\t\t.then(function() {\n\t\t\t\t\treturn saveUserGroups();\n\t\t\t\t})\n\t\t\t\t.then(function() {\n\t\t\t\t\treturn saveIndexTypes();\n\t\t\t\t})\n\t\t\t\t.then(function() {\n\t\t\t\t\t$state.go('contentConfig.groups');\n\t\t\t\t\tvar message = vm.groupId ? gettextCatalog.getString('Document group saved!') : gettextCatalog.getString('Document group created!');\n\t\t\t\t\tsbToastService.showSimple(message);\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tif (e.status === 409) {\n\t\t\t\t\t\tvar message = gettextCatalog.getString('\"{{documentGroupName}}\" document group already exists!', { documentGroupName: vm.group.LibraryName });\n\t\t\t\t\t\tsbToastService.showSimple(message);\n\t\t\t\t\t} else if (typeof e.data === 'string' && e.status !== 500) {\n\t\t\t\t\t\tsbToastService.showSimple(e.data);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('An unknown error has occurred'));\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tvm.loading = false;\n\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction saveGroup() {\n\t\t\tif (vm.groupIsDirty) {\n\t\t\t\tvar p;\n\t\t\t\tif (vm.groupId) {\n\t\t\t\t\tp = smbContentTypeGroupConfigDataStore.saveContentTypeGroup({\n\t\t\t\t\t\tid: vm.groupId,\n\t\t\t\t\t\tname: vm.group.LibraryName,\n\t\t\t\t\t\ticon: vm.group.IconId\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tp = smbContentTypeGroupConfigDataStore.saveContentTypeGroup({\n\t\t\t\t\t\tname: vm.group.LibraryName,\n\t\t\t\t\t\ticon: vm.group.IconId\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn p;\n\t\t\t} else {\n\t\t\t\treturn $q.resolve(vm.group);\n\t\t\t}\n\t\t}\n\n\t\tfunction saveUserGroups() {\n\t\t\tif (vm.groupIsDirty) {\n\t\t\t\treturn smbContentTypeGroupConfigDataStore.saveUserGroups(vm.viewRightsUserGroups, vm.fullRightsUserGroups, vm.editRightsUserGroups);\n\t\t\t} else {\n\t\t\t\treturn $q.resolve(vm.viewRightsUserGroups.concat(vm.fullRightsUserGroups).concat(vm.editRightsUserGroups));\n\t\t\t}\n\t\t}\n\n\t\tfunction saveIndexTypes() {\n\t\t\tif (vm.indexTypesAreDirty) {\n\n\t\t\t\tvar newPromises = newIndexTypes.map(function(tt) {\n\t\t\t\t\treturn smbContentTypeGroupTagTypesConfigDataStore.addTagType(smbContentTypeGroupConfigDataStore.contentTypeGroup.LibraryId, tt);\n\t\t\t\t});\n\n\t\t\t\tvar editPromises = editIndexTypes.map(function(tt) {\n\t\t\t\t\treturn smbContentTypeGroupTagTypesConfigDataStore.editTagType(smbContentTypeGroupConfigDataStore.contentTypeGroup.LibraryId, tt);\n\t\t\t\t});\n\n\t\t\t\treturn $q.all(newPromises.concat(editPromises));\n\t\t\t} else {\n\t\t\t\treturn $q.resolve(vm.indexTypes);\n\t\t\t}\n\t\t}\n\n\t\t/*** Group Config Form component event handlers ***/\n\n\t\t/**\n\t\t * Possible Arguments:\n\t\t * group - The content type group object in the group form component\n\t\t * viewUserGroups - The view rights user groups list in the group form component\n\t\t * fullUserGroups - The full rights user groups list in the group form component\n\t\t */\n\t\tfunction onGroupChange() {\n\t\t\tvm.groupIsDirty = true;\n\t\t}\n\n\t\t/*** Index Types Config component event handlers ***/\n\n\t\tfunction editIndexType(indexType) {\n\t\t\tvm.indexTypesAreDirty = true;\n\t\t\tvm.indexTypes = vm.indexTypes.map(function(x) {\n\t\t\t\treturn x.TagTypeName === indexType.TagTypeName ? angular.extend({}, x, indexType) : x;\n\t\t\t});\n\t\t\tif (indexType.TagTypeId) {\n\t\t\t\t// this is an existing tag type, keep track of it via the editIndexTypes array\n\t\t\t\teditIndexTypes.push(indexType);\n\t\t\t}\n\t\t}\n\n\t\tfunction newIndexType(indexType) {\n\t\t\tvm.indexTypesAreDirty = true;\n\t\t\tvm.indexTypes = vm.indexTypes.concat([indexType]);\n\t\t\tvm.indexTypes.sort(sortIndexTypesByName);\n\t\t\tnewIndexTypes.push(indexType);\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupConfig/contentTypeGroupConfig.js\n// module id = 68\n// module chunks = 1","(function() {\n\t'use strict';\n\n\t// user selector template\n\tvar userSelectorTemplateUrl = require('../userSelectorDialog/userSelectorDialog.template');\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypeGroupConfigForm', ContentTypeGroupConfigFormDirective)\n\t\t.controller('smbContentTypeGroupConfigFormController',[\n\t\t\t'$scope',\n\t\t\t'$mdDialog',\n\t\t\t'sbToastService',\n\t\t\t'smbIconDataStore',\n\t\t\t'smbUserGroupsDataStore',\n\t\t\tContentTypeGroupConfigFormController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypeGroupConfigForm.template');\n\tfunction ContentTypeGroupConfigFormDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbContentTypeGroupConfigFormController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tgroup: '=',\n\t\t\t\tviewRightsUserGroups: '=',\n\t\t\t\tfullRightsUserGroups: '=',\n\t\t\t\teditRightsUserGroups: '=',\n\t\t\t\tonChange: '&'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction ContentTypeGroupConfigFormController($scope, $mdDialog, sbToastService, smbIconDataStore, smbUserGroupsDataStore) {\n\t\tvar vm = this;\n\t\tvm.isLoading = false;\n\t\t// Icon configuration\n\t\tvm.groupIcon = null;\n\n\t\tvm.onNameBlur = onNameBlur;\n\t\tvm.addUserGroup = addUserGroup;\n\t\tvm.addUserGroups = addUserGroups;\n\t\tvm.removeUserGroup = removeUserGroup;\n\t\tvm.setIcon = setIcon;\n\n\t\tvar groupName = '';\n\t\t(function initContentTypeGroupConfigFormController() {\n\t\t\tvm.isLoading = true;\n\t\t\tsmbIconDataStore.loadIcons()\n\t\t\t.then(function() {\n\t\t\t\t$scope.$watch('vm.group', function() {\n\t\t\t\t\tif (vm.group) {\n\t\t\t\t\t\tvm.groupIcon = smbIconDataStore.icons.find(function(icon) { return icon.IconUserFriendlyName === vm.group.IconName; });\n\t\t\t\t\t\tgroupName = vm.group.LibraryName;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t})\n\t\t\t.then(function() {\n\t\t\t\treturn smbUserGroupsDataStore.getUserGroups();\n\t\t\t})\n\t\t\t.finally(function() { vm.isLoading = false; });\n\t\t}());\n\n\t\tfunction addUserGroups(event, target, removeTarget) {\n\t\t\tvar groupUserGroups = target;\n\t\t\tvar newGroups = smbUserGroupsDataStore.userGroups.filter(function (group) {\n\n\t\t\t\tfor (var x = 0; x < groupUserGroups.length; x++) {\n\t\t\t\t\tif (groupUserGroups[x].UserGroupId === group.UserGroupId) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\t$mdDialog.show({\n\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\ttargetEvent: event,\n\t\t\t\tclickOutsideToClose: true,\n\t\t\t\tlocals: {\n\t\t\t\t\tusers: newGroups,\n\t\t\t\t\tmultiSelect: true\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(function (selectedUserGroups) {\n\t\t\t\t//new user groups\n\t\t\t\tselectedUserGroups.forEach(function(group) {\n\t\t\t\t\ttarget.push(group);\n\t\t\t\t\t// If the user group exists in another access rights array, it should\n\t\t\t\t\t// only be in one, use this flag to prevent iterating over\n\t\t\t\t\t// subsequent arrays when we know it is not necessary to do so.\n\t\t\t\t\t// Doing this because I can't think of a better way that scales and\n\t\t\t\t\t// this is n cubed.\n\t\t\t\t\tvar removed = false;\n\t\t\t\t\tremoveTarget.forEach(function(target) {\n\t\t\t\t\t\tif (!removed) {\n\t\t\t\t\t\t\tvar g = target.find(function(ug) {\n\t\t\t\t\t\t\t\treturn ug.UserGroupId === group.UserGroupId;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (g) {\n\t\t\t\t\t\t\t\ttarget.splice(target.indexOf(g), 1);\n\t\t\t\t\t\t\t\tremoved = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\temitChange();\n\t\t\t}, function () {\n\t\t\t\t//cancel\n\t\t\t});\n\t\t}\n\n\t\tfunction removeUserGroup(group, target) {\n\t\t\tvar index = target.indexOf(group);\n\t\t\tif (index === -1) { return; }\n\n\t\t\ttarget.splice(index, 1);\n\t\t\temitChange();\n\t\t}\n\n\t\tfunction setIcon(event) {\n\t\t\t$mdDialog.show({\n\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\ttargetEvent: event,\n\t\t\t\tclickOutsideToClose: true,\n\t\t\t\tlocals: {\n\t\t\t\t\tusers: smbIconDataStore.icons,\n\t\t\t\t\tmultiSelect: false\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(function (icon) {\n\t\t\t\tif (icon.length === 1) {\n\t\t\t\t\tvm.group.IconName = icon[0].IconUserFriendlyName;\n\t\t\t\t\tvm.group.IconId = icon[0].IconId;\n\t\t\t\t\tif (!vm.group.Links) {\n\t\t\t\t\t\tvm.group.Links = {};\n\t\t\t\t\t}\n\t\t\t\t\tvm.group.Links.IconUri = icon[0].IconUri;\n\t\t\t\t\tvm.onChange({ group: vm.group, viewUserGroups: vm.viewRightsUserGroups, fullUserGroups: vm.fullRightsUserGroups });\n\t\t\t\t}\n\t\t\t}, function () {\n\t\t\t\t//cancel\n\t\t\t});\n\t\t}\n\n\t\tfunction addUserGroup() {\n\t\t\temitChange();\n\t\t}\n\n\t\tfunction onNameBlur() {\n\t\t\tif (vm.group.LibraryName !== groupName) {\n\t\t\t\temitChange();\n\t\t\t}\n\t\t}\n\n\t\tfunction emitChange() {\n\t\t\tvm.onChange({group: vm.group, viewUserGroups: vm.viewRightsUserGroups, fullUserGroups: vm.fullRightsUserGroups});\n\t\t}\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupConfigForm/contentTypeGroupConfigForm.js\n// module id = 69\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypeGroupSearch',\n\t\t[\n\t\t\tContentTypeGroupSearchDirective\n\t\t])\n\t\t.controller('ContentTypeGroupSearchController',\n\t\t[\n\t\t\t'$state',\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbIndexTypesDataStore',\n\t\t\t'smbContentSearchDataStore',\n\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t'smbIconTypes',\n\t\t\tContentTypeGroupSearchController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypeGroupSearch.template');\n\tfunction ContentTypeGroupSearchDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentTypeGroupSearchController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: {\n\t\t\t\tgroupId: '@'\n\t\t\t},\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction ContentTypeGroupSearchController($state, gettextCatalog, pxProgressService, smbToolbarService, smbIndexTypesDataStore, \n\t\t\t\t\t\t\t\t\t\tsmbContentSearchDataStore, smbContentTypeGroupConfigDataStore, smbContentTypeConfigDataStore, smbIconTypes) {\n\n\t\tsmbToolbarService.set(gettextCatalog.getString('Search Document Type Group'), 'search.contentTypeGroups.contentTypes', false, false);\n\n\t\tvar vm = this;\n\n\t\tvm.search = search;\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\tvm.contentTypeDS = smbContentTypeConfigDataStore;\n\t\tvm.contentTypeGroupDS = smbContentTypeGroupConfigDataStore;\n\t\tvm.indexTypesDS = smbIndexTypesDataStore;\n\t\tvm.filename = null;\n\n\t\tvm.indextypes = [];\n\n\t\tvm.contentTypeGroupDS.getContentTypeGroup(vm.groupId)\t\t\n\t\t.then(function () {\n\t\t\tvm.indexTypesDS.getDocumentTypeGroupIndexTypes(vm.groupId).then(function () {\n\t\t\t\tvm.indextypes = vm.indexTypesDS.groupIndexTypes;\n\t\t\t});\n\t\t});\n\n\t\tfunction search() {\n\t\t\tsmbContentSearchDataStore.setTagValues(vm.indextypes);\n\t\t\t$state.go('search.contentTypeGroups.contentTypes.groupSearch.results',{ groupId: vm.groupId});\n\t\t}\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupSearch/contentTypeGroupSearch.js\n// module id = 70\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypeGroupSearchResults',\n\t\t[\n\t\t\tContentTypeGroupSearchResultsDirective\n\t\t])\n\t\t.controller('ContentTypeGroupSearchResultsController',\n\t\t[\n\t\t\t'smbToolbarService',\n\t\t\t'gettextCatalog',\n\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t'smbIconTypes',\n\t\t\t'smbContentSearchDataStore',\n\t\t\t'smbDocumentViewerNavigationService',\n\t\t\tContentTypeGroupSearchResultsController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypeGroupSearchResults.template');\n\tfunction ContentTypeGroupSearchResultsDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentTypeGroupSearchResultsController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tgroupId: '@'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction ContentTypeGroupSearchResultsController(smbToolbarService, gettextCatalog, smbContentTypeGroupConfigDataStore,\n\t\t\t\t\t\t\t\tsmbContentTypeConfigDataStore, smbIconTypes, smbContentSearchDataStore, smbDocumentViewerNavigationService) {\n\n\t\tsmbToolbarService.set(gettextCatalog.getString('Document Group Search Results'), 'search.contentTypeGroups.contentTypes.groupSearch');\n\n\t\tvar vm = this;\n\t\tvm.contentSearchDS = smbContentSearchDataStore;\n\t\tvm.contentTypeGroupDS = smbContentTypeGroupConfigDataStore;\n\t\tvm.contentTypeDS = smbContentTypeConfigDataStore;\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\tvm.documentNavigation = smbDocumentViewerNavigationService;\n\n\t\t(function loadSearchResults() {\n\t\t\tsmbContentSearchDataStore.getContentTypeGroupSearchResults(vm.groupId);\n\t\t})();\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupSearchResults/contentTypeGroupSearchResults.js\n// module id = 71\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypeGroups', [ContentTypeGroupsDirective])\n\t\t.controller('ContentTypeGroupsController',\n\t\t[\n\t\t\t'$state',\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbContentTypeGroupsDataStore',\n\t\t\t'smbIconTypes',\n\t\t\tContentTypeGroupsController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypeGroups.template');\n\tfunction ContentTypeGroupsDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentTypeGroupsController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction ContentTypeGroupsController($state, gettextCatalog, pxProgressService, smbToolbarService, smbContentTypeGroupsDataStore, smbIconTypes) {\n\t\tsmbToolbarService.set(gettextCatalog.getString('Document Groups'), 'content.home');\n\n\t\tvar vm = this;\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\tvm.contentTypeGroupsDataStore = smbContentTypeGroupsDataStore;\n\n\t\tpxProgressService.visible = true;\n\t\tsmbContentTypeGroupsDataStore.loadFullAccessGroups()\n\t\t\t.then(function () {\n\t\t\t\tpxProgressService.visible = false;\n\t\t\t});\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroups/contentTypeGroups.js\n// module id = 72\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypeGroupsConfig', [ContentTypeGroupsConfigDirective])\n\t\t.controller('ContentTypeGroupsConfigController', [\n\t\t\t'$mdDialog',\n\t\t\t'pxAuthService',\n\t\t\t'sbToastService',\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbIconTypes',\n\t\t\t'smbContentTypeGroupsConfigDataStore',\n\t\t\t'smbDeleteDialogService',\n\t\t\tContentTypeGroupsConfigController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypeGroupsConfig.template');\n\tfunction ContentTypeGroupsConfigDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentTypeGroupsConfigController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction ContentTypeGroupsConfigController($mdDialog, pxAuthService, sbToastService, gettextCatalog, pxProgressService, smbToolbarService, smbIconTypes, smbContentTypeGroupsConfigDataStore, smbDeleteDialogService) {\n\t\tsmbToolbarService.set(gettextCatalog.getString('Document Groups Configuration'), 'content.home', false, false);\n\n\t\tvar vm = this;\n\t\tvm.iconType = smbIconTypes[smbIconTypes.SVG];\n\t\tvm.contentTypeGroupsDataStore = smbContentTypeGroupsConfigDataStore;\n\t\tvm.deleteContentTypeGroup = deleteContentTypeGroup;\n\n\t\tpxProgressService.visible = true;\n\t\tvm.contentTypeGroupsDataStore\n\t\t\t.loadGroups()\n\t\t\t.finally(function () { \n\t\t\t\tpxProgressService.visible = false; \n\t\t\t});\n\n\t\tfunction deleteContentTypeGroup(event, group) {\n\t\t\tvar title = gettextCatalog.getString('Delete Document Type Group');\n\t\t\tvar message = gettextCatalog.getString('Would you like to delete \"{{typeName}}\"? Deleting this group will permanently deleted all related types and documents, and can\\'t be undone!', { \n\t\t\t\ttypeName: group.name \n\t\t\t});\n\t\t\t\n\t\t\tsmbDeleteDialogService\n\t\t\t\t.show(event, title, message)\n\t\t\t\t.then(function () {\n\t\t\t\t\tpxProgressService.visible = true;\n\t\t\t\t\tsmbContentTypeGroupsConfigDataStore\n\t\t\t\t\t\t.deleteGroup(group.id)\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('{{groupName}} was deleted!', { groupName: group.name }));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to delete group'));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.finally(function () {\n\t\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t\t});\n\t\t\t\t}, angular.noop);\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupsConfig/contentTypeGroupsConfig.js\n// module id = 73\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypeGroupsSearch', [ContentTypeGroupsSearchDirective])\n\t\t.controller('ContentTypeGroupsSearchController',\n\t\t[\n\t\t\t'$state',\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbContentTypeGroupsSearchDataStore',\n\t\t\t'smbIconTypes',\n\t\t\tContentTypeGroupsSearchController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypeGroupsSearch.template');\n\tfunction ContentTypeGroupsSearchDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentTypeGroupsSearchController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction ContentTypeGroupsSearchController($state, gettextCatalog, pxProgressService, smbToolbarService, smbContentTypeGroupsSearchDataStore, smbIconTypes) {\n\t\tsmbToolbarService.set(gettextCatalog.getString('Search Document Groups'), 'content.home');\n\n\t\tvar vm = this;\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\tvm.contentTypeGroupsSearchDataStore = smbContentTypeGroupsSearchDataStore;\n\n\t\tpxProgressService.visible = true;\n\t\tsmbContentTypeGroupsSearchDataStore.loadAllGroups()\n\t\t\t.then(function () {\n\t\t\t\tpxProgressService.visible = false;\n\t\t\t});\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupsSearch/contentTypeGroupsSearch.js\n// module id = 74\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypes', [ContentTypesDirective])\n\t\t.controller('ContentTypesController',\n\t\t[\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbContentTypesDataStore',\n\t\t\t'smbIconTypes',\n\t\t\tContentTypesController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypes.template');\n\tfunction ContentTypesDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentTypesController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: {\n\t\t\t\tgroupId: '@'\n\t\t\t},\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction ContentTypesController(gettextCatalog, pxProgressService, smbToolbarService, smbContentTypesDataStore, smbIconTypes) {\n\t\tsmbToolbarService.set(gettextCatalog.getString('Document Types'), 'import.contentTypeGroups');\n\n\t\tvar vm = this;\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\tvm.contentTypesDataStore = smbContentTypesDataStore;\n\n\t\tsmbContentTypesDataStore.getContentTypes(vm.groupId);\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypes/contentTypes.js\n// module id = 75\n// module chunks = 1","(function () {\n\t'use strict';\n\tvar templateUrl = require('./contentTypesConfig.template');\n\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.smbContentTypesConfig\n\t * @module smb-app\n\t * @restrict E\n\t * \n\t * @description\n\t * Displays the configuration section for a list of content types that belong\n\t * to a specific content type group.\n\t * \n\t * @usage\n\t * \n\t * \n\t * \n\t * @element input\n\t * @param {number=} contentTypeGroupId The id of the content type group whose content types are being displayed.\n\t */\n\n\tangular\n\t\t.module('smb-app')\n\t\t.directive('smbContentTypesConfig', ContentTypesConfigDirective)\n\t\t.controller('ContentTypesConfigController', [\n\t\t\t'$mdDialog',\n\t\t\t'pxAuthService',\n\t\t\t'sbToastService',\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbContentTypesDataStore',\n\t\t\t'smbIconTypes',\n\t\t\t'smbDeleteDialogService',\n\t\t\tContentTypesConfigController\n\t\t]);\n\t\n\tfunction ContentTypesConfigDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentTypesConfigController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tcontentTypeGroupId: '@'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction ContentTypesConfigController($mdDialog, pxAuthService, sbToastService, gettextCatalog, pxProgressService, smbToolbarService, smbContentTypesDataStore, smbIconTypes, smbDeleteDialogService) {\n\t\tvar vm = this;\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\t\tvm.deleteDocumentType = deleteDocumentType;\n\n\t\t// TODO: Add group name?\n\t\tsmbToolbarService.set(gettextCatalog.getString('Document Types Configuration'), 'contentConfig.groups');\n\n\t\tvm.contentTypesDS = smbContentTypesDataStore;\n\n\t\t// TODO: Error handling\n\t\tsmbContentTypesDataStore.getContentTypes(vm.contentTypeGroupId);\n\n\t\tfunction deleteDocumentType(event, documentType) {\t\n\t\t\tvar title = gettextCatalog.getString('Delete Document Type');\n\t\t\tvar message = gettextCatalog.getString('Would you like to delete \"{{typeName}}\"?', { \n\t\t\t\ttypeName: documentType.FolderName \n\t\t\t});\n\t\t\tvar purgeText = gettextCatalog.getString('Selecting this checkbox will enable permanent deletion of this document type and all related documents that can\\'t be undone!');\n\t\t\t\n\t\t\tsmbDeleteDialogService\n\t\t\t\t.show(event, title, message, pxAuthService.isSiteAdmin, purgeText)\n\t\t\t\t.then(function (purge) {\n\t\t\t\t\tpxProgressService.visible = true;\n\t\t\t\t\tsmbContentTypesDataStore\n\t\t\t\t\t\t.deleteContentType(documentType.FolderId, purge)\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\tvar deleteMessage = gettextCatalog.getString('{{typeName}} was deleted!', { \n\t\t\t\t\t\t\t\ttypeName: documentType.FolderName \n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tsbToastService.showSimple(deleteMessage);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\t\tvar deleteIssueMessage = gettextCatalog.getString('Unable to delete group');\n\t\t\t\t\t\t\tsbToastService.showSimple(deleteIssueMessage);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.finally(function () {\n\t\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t\t});\n\t\t\t\t}, angular.noop());\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypesConfig/contentTypesConfig.js\n// module id = 76\n// module chunks = 1","(function () {\n\t'use strict';\n\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.smbContentTypesConfig\n\t * @module smb-app\n\t * @restrict E\n\t *\n\t * @description\n\t * Displays the configuration section for a list of content types that belong\n\t * to a specific content type group.\n\t *\n\t * @usage\n\t *\n\t * \n\t *\n\t * @element input\n\t * @param {number=} contentTypeGroupId The id of the content type group whose content types are being displayed.\n\t */\n\n\tangular.module('smb-app')\n\t\t.directive('smbContentTypesSearch', ContentTypesSearchDirective)\n\t\t.controller('ContentTypesSearchController',\n\t\t[\n\t\t\t'gettextCatalog',\n\t\t\t'smbToolbarService',\n\t\t\t'smbContentTypesSearchDataStore',\n\t\t\t'smbIconTypes',\n\t\t\tContentTypesSearchController\n\t\t]);\n\n\tvar templateUrl = require('./contentTypesSearch.template');\n\tfunction ContentTypesSearchDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentTypesSearchController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tgroupId: '@'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction ContentTypesSearchController(gettextCatalog, smbToolbarService, smbContentTypesSearchDataStore, smbIconTypes) {\n\t\tvar vm = this;\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\n\t\t// TODO: Add group name?\n\t\tsmbToolbarService.set(gettextCatalog.getString('Search Document Types'), 'search.contentTypeGroups');\n\t\tsmbToolbarService.backArrowStateParams = undefined;\n\n\t\tvm.contentTypesSearchDS = smbContentTypesSearchDataStore;\n\n\t\t// TODO: Error handling\n\t\tsmbContentTypesSearchDataStore.getContentTypes(vm.groupId);\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypesSearch/contentTypesSearch.js\n// module id = 77\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbContent',[ContentDirective])\n\t\t.controller('ContentTypesController',\n\t\t[\n\t\t\t'$scope',\n\t\t\t'$state',\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'sbToastService',\n\t\t\t'smbEnvironmentService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbContentUploadDataStore',\n\t\t\t'smbIndexTypesDataStore',\n\t\t\t'smbContentTypeGroupConfigDataStore',\n\t\t\t'smbContentTypeConfigDataStore',\n\t\t\t'smbIconTypes',\n\t\t\t'smbDocumentViewerNavigationService',\n\t\t\tContentController\n\t\t]);\n\n\tvar templateUrl = require('./contentUpload.template');\n\tfunction ContentDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ContentController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: {\n\t\t\t\tcontentTypeGroupId: '@',\n\t\t\t\tcontentTypeId: '@'\n\t\t\t},\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction ContentController($scope, $state, gettextCatalog, pxProgressService, sbToastService, smbEnvironmentService, smbToolbarService,\n\t\tsmbContentUploadDataStore, smbIndexTypesDataStore, smbContentTypeGroupConfigDataStore, smbContentTypeConfigDataStore, smbIconTypes,\n\t\tsmbDocumentViewerNavigationService) {\n\n\t\tsmbToolbarService.set(gettextCatalog.getString('Add Document'), 'import.contentTypeGroups.contentTypes');\n\n\t\tvar vm = this;\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\n\t\tvm.uploadDS = smbContentUploadDataStore;\n\t\tvm.indexTypesDS = smbIndexTypesDataStore;\n\t\tvm.contentTypeDS = smbContentTypeConfigDataStore;\n\t\tvm.contentTypeGroupDS = smbContentTypeGroupConfigDataStore;\n\t\tvm.filename = null;\n\t\tvm.file = null;\n\t\tvm.onFileInputClick = onFileInputClick;\n\n\t\tvm.indexFileChanged = indexFileChanged;\n\t\tvm.upload = upload;\n\n\t\tfunction indexFileChanged(fileInput) {\n\t\t\tif (fileInput.files.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvm.filename = fileInput.files[0].name;\n\t\t\tvm.file = fileInput.files[0];\n\t\t\t$scope.$digest(); // probably not the best way, but this seemed to fix the problem of not updating label right away\n\t\t}\n\n\t\tvm.contentTypeGroupDS.getContentTypeGroup(vm.contentTypeGroupId)\n\t\t\t.then(function () {\n\t\t\t\tvm.contentTypeDS.getContentType(vm.contentTypeGroupId, vm.contentTypeId);\n\t\t\t})\n\t\t\t.then(function () {\n\t\t\t\tvm.indexTypesDS.getIndexTypes(vm.contentTypeId);\n\t\t\t});\n\n\t\tfunction upload() {\n\t\t\tif (vm.file) {\n\t\t\t\tvm.uploadDS.uploadDocument(vm.contentTypeId, vm.file)\n\t\t\t\t.then(function indexTypesUpload() {\n\t\t\t\t\tvm.indexTypesDS.setIndexTypes(vm.indexTypesDS.indexTypes, vm.uploadDS.uploadedDocument.data.DocumentId, vm.contentTypeId)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Document Uploaded Successfully'));\n\t\t\t\t\t}).then(function openViewer() {\n\t\t\t\t\t\tsmbDocumentViewerNavigationService.go(vm.contentTypeGroupId, vm.contentTypeId, vm.uploadDS.uploadedDocument.data.DocumentId);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Please select a file to upload'));\n\t\t\t}\n\t\t}\n\n\t\tfunction onFileInputClick(ev) {\n\t\t\t// If running in IE or Firefox, need to programatically trigger the input file.\n\t\t\t// Unlike Chrome, when embedding a file input in a button, clicking\n\t\t\t// the button doesn't trigger the file input.\n\t\t\tif (smbEnvironmentService.isIE || smbEnvironmentService.isFireFox) {\n\t\t\t\tvar fileInput = ev.target.querySelector('input[type=\"file\"]');\n\t\t\t\tif (fileInput) {\n\t\t\t\t\tfileInput.click();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentUpload/contentUpload.js\n// module id = 78\n// module chunks = 1","(function () {\n\t'use strict';\n\n\t// load user selector template via webpack\n\tvar userSelectorTemplateUrl = require('../userSelectorDialog/userSelectorDialog.template');\n\n\tangular.module('smb-app')\n\t\t.directive('smbDocumentContextMenu', DocumentContextMenuDirective)\n\t\t.controller('smbDocumentContextMenuController', [\n\t\t\t'$scope',\n\t\t\t'$timeout',\n\t\t\t'$state',\n\t\t\t'$q', \n\t\t\t'$mdDialog',\n\t\t\t'pxAuthService',\n\t\t\t'sbToastService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbDocumentDataStore',\n\t\t\t'smbStatusDataStore',\n\t\t\t'smbToDoListDataStore',\n\t\t\t'smbDocumentDetailsPanelDataStore',\n\t\t\t'smbDocumentViewerNavigationService',\n\t\t\t'smbDeleteDialogService',\n\t\t\t'gettextCatalog',\n\t\t\tDocumentContextMenuController\n\t\t]);\n\n\tvar templateUrl = require('./documentContextMenu.template');\n\tfunction DocumentContextMenuDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbDocumentContextMenuController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: {\n\t\t\t\tdocumentId: '@',\n\t\t\t\tdocumentTypeId: '@',\n\t\t\t\tdocumentGroupId: '@'\n\t\t\t},\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction DocumentContextMenuController($scope, $timeout,$state, $q, $mdDialog, pxAuthService, sbToastService, smbToolbarService, smbDocumentDataStore, smbStatusDataStore, smbToDoListDataStore, smbDocumentDetailsPanelDataStore, smbDocumentViewerNavigationService, smbDeleteDialogService, gettextCatalog) {\n\t\tvar vm = this;\n\t\tvm.smbToolbarService = smbToolbarService;\n\t\tvm.documentDS = smbDocumentDataStore;\n\t\tvm.toDoListDS = smbToDoListDataStore;\n\t\tvm.detailsPanelDS = smbDocumentDetailsPanelDataStore;\n\n\t\t(function initDocumentContextMenuController() {\n\t\t\tsmbDocumentDataStore.loadUserPermissions(vm.documentGroupId)\n\t\t\t\t.then(function() {\n\t\t\t\t\treturn smbStatusDataStore.loadStatuses(vm.documentTypeId);\n\t\t\t\t})\n\t\t\t\t.then(function getStatusValues() {\n\t\t\t\t\tvm.contentStatuses = smbStatusDataStore.contentStatus[0].Constraints.DataSetValues.map(function(sv) {\n\t\t\t\t\t\tvar csv = {};\n\t\t\t\t\t\tcsv.Label = sv;\n\t\t\t\t\t\tcsv.StatusType = 'Content Status';\n\t\t\t\t\t\treturn csv; \n\t\t\t\t\t});\n\n\t\t\t\t\tvm.todoStatuses = smbStatusDataStore.todoStatus[0].Constraints.DataSetValues.map(function(sv) {\n\t\t\t\t\t\tvar tsv = {};\n\t\t\t\t\t\ttsv.Label = sv;\n\t\t\t\t\t\ttsv.StatusType = 'ToDo Status';\n\t\t\t\t\t\treturn tsv; \n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t})\n\t\t\t\t.then(function getTagTypeIds() {\n\t\t\t\t\tvm.contentStatusTagTypeId = smbStatusDataStore.contentStatus[0].TagTypeId;\n\t\t\t\t\tvm.todoStatusTagTypeId = smbStatusDataStore.todoStatus[0].TagTypeId;\n\t\t\t\t\tvm.assignedUserIdTagTypeId = smbStatusDataStore.assignedUserId[0].TagTypeId;\n\t\t\t\t\tvm.assignedDateTagTypeId = smbStatusDataStore.assignedDate[0].TagTypeId;\n\t\t\t\t})\n\t\t\t\t.then(function getDocumentStatusValues() {\n\t\t\t\t\treturn smbStatusDataStore.getDocumentStatus(vm.documentId);\n\t\t\t\t})\n\t\t\t\t.then(function mapDocumentStatusValues(response) {\n\t\t\t\t\tvm.documentContentStatusValue = response.filter(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t\t})[0].Tags || [];\n\t\t\t\t\tvm.documentToDoStatusValue = response.filter(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t\t})[0].Tags || [];\n\t\t\t\t\tvm.documentAssignedUserId = response.filter(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t\t})[0].Tags || 0;\n\t\t\t\t})\n\t\t\t\t.then(function getUsersList() {\n\t\t\t\t\treturn smbStatusDataStore.getUsersWithModifyRights(vm.documentId);\n\t\t\t\t})\n\t\t\t\t.then(function(userslist) {\n\t\t\t\t\tvm.users = userslist.map(function mapusers(u) {\n\t\t\t\t\t\tvar user = {};\n\t\t\t\t\t\tuser.UserId = u.UserId;\n\t\t\t\t\t\tuser.UserName = u.UserName;\n\t\t\t\t\t\tuser.EmailAddress = u.EmailAddress;\n\t\t\t\t\t\treturn user;\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.then(function setUIStatusValues() {\n\t\t\t\t\tif (vm.documentContentStatusValue.length > 0 && vm.documentContentStatusValue[0].length !== 0) {\n\t\t\t\t\t\t//vm.status = JSON.stringify({ Label: vm.documentContentStatusValue[0], StatusType: 'Content Status' });\n\t\t\t\t\t\tvm.status = { Label: vm.documentContentStatusValue[0], StatusType: 'Content Status' };\n\t\t\t\t\t\tvm.isContentStatusSelected = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (vm.documentToDoStatusValue.length > 0 && vm.documentToDoStatusValue[0].length !== 0) {\n\t\t\t\t\t\t//vm.status = JSON.stringify({Label: vm.documentToDoStatusValue[0], StatusType: 'ToDo Status\n\t\t\t\t\t\tvm.status = {Label: vm.documentToDoStatusValue[0], StatusType: 'ToDo Status'};\n\t\t\t\t\t\tvm.isContentStatusSelected = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (vm.documentAssignedUserId && vm.documentAssignedUserId[0] > 0) {\n\t\t\t\t\t\tvm.assignedUser = vm.users.filter(function(u) {\n\t\t\t\t\t\t\treturn u.UserId === JSON.parse(vm.documentAssignedUserId[0]);\n\t\t\t\t\t\t});\n\t\t\t\t\t\t//vm.assignedUser = JSON.stringify(vm.assignedUser[0]);\n\t\t\t\t\t\tvm.assignedUser = vm.assignedUser[0];\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.finally(function () {\n\t\t\t\t\t//hide tiles till loaded\n\t\t\t\t\t$timeout(function () { vm.loading = false; }, 50);\n\t\t\t\t});\n\t\t\t\t\n\t\t}());\n\t\tvm.loading = true;\n\t\tvm.documentContentStatusValue = null;\n\t\tvm.documentToDoStatusValue = null;\n\t\tvm.documentAssignedUserId = null;\n\t\tvm.documentAssignedDate = null;\n\n\t\tvm.contentStatuses = [];\n\t\tvm.todoStatuses = [];\n\t\tvm.users = [];\n\t\tvm.statusIsDirty = false;\n\n\t\tvm.contentStatusTagTypeId = null;\n\t\tvm.todoStatusTagTypeId = null;\n\t\tvm.assignedUserIdTagTypeId = null;\n\t\tvm.assignedDateTagTypeId = null;\n\n\t\tvm.onChange = onChange;\n\t\tvm.saveStatus = saveStatus;\n\t\tvm.changeStatus = changeStatus;\n\t\tvm.changeAssingedUser = changeAssingedUser;\n\t\tvm.deleteDocument = deleteDocument;\n\n\t\tvm.isContentStatusSelected = false;\n\n\t\tfunction changeStatus(event) {\n\t\t\tvar status = vm.todoStatuses.concat(vm.contentStatuses);\n\t\t\t//select current status\n\t\t\tstatus = status.map(function (s) {\n\t\t\t\tif (vm.status && (s.Label === vm.status.Label && s.StatusType === vm.status.StatusType)) {\n\t\t\t\t\ts.selected = true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ts.selected = false;\n\t\t\t\t}\n\t\t\t\treturn s;\n\t\t\t});\n\n\t\t\t$mdDialog.show({\n\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\ttargetEvent: event,\n\t\t\t\tclickOutsideToClose: true,\n\t\t\t\tlocals: {\n\t\t\t\t\tusers: status,\n\t\t\t\t\tmultiSelect: false\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(function (selectedStatus) {\n\t\t\t\t//new user groups\n\t\t\t\tif (selectedStatus.length === 1) {\n\t\t\t\t\tvm.status = selectedStatus[0];\n\t\t\t\t\tonChange();\n\t\t\t\t\tvm.saveStatus();\n\t\t\t\t}\n\t\t\t}, function () {\n\t\t\t\t//cancel\n\t\t\t});\n\t\t}\n\t\tfunction changeAssingedUser(event) {\n\t\t\tvar users = vm.users;\n\t\t\t//select current assigned user\n\t\t\tif (vm.assignedUser) {\n\t\t\t\tusers = users.map(function (user) {\n\t\t\t\t\tif (user.UserId === vm.assignedUser.UserId) {\n\t\t\t\t\t\tuser.selected = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tuser.selected = false;\n\t\t\t\t\t}\n\t\t\t\t\treturn user;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$mdDialog.show({\n\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\ttargetEvent: event,\n\t\t\t\tclickOutsideToClose: true,\n\t\t\t\tlocals: {\n\t\t\t\t\tusers: users,\n\t\t\t\t\tmultiSelect: false\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(function (selectedUser) {\n\t\t\t\t//new user groups\n\t\t\t\tif (selectedUser.length === 1) {\n\t\t\t\t\tvm.assignedUser = selectedUser[0];\n\t\t\t\t\tonChange();\n\t\t\t\t\tvm.saveStatus();\n\t\t\t\t}\n\t\t\t}, function () {\n\t\t\t\t//cancel\n\t\t\t});\n\t\t}\n\n\t\tfunction onChange() {\n\n\t\t\tvar Status = vm.status;\n\t\t\tvm.statusIsDirty = false;\n\t\t\tif (Status && Status.StatusType === 'Content Status') {\n\t\t\t\tvm.isContentStatusSelected = true;\n\t\t\t\tvm.statusIsDirty = true;\n\t\t\t}\n\t\t\telse if (Status && Status.StatusType === 'ToDo Status') {\n\t\t\t\tvar AssignedUser = vm.assignedUser;\n\t\t\t\tvm.isContentStatusSelected = false;\n\t\t\t\tif (AssignedUser && AssignedUser.UserId > 0) {\n\t\t\t\t\tvm.statusIsDirty = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction saveStatus() {\n\t\t\tvar parsedStatus = vm.status;\n\t\t\tvar parsedUser = vm.assignedUser;\n\n\t\t\tvar contentstatus = {};\n\t\t\tcontentstatus.TagTypeId = vm.contentStatusTagTypeId;\n\t\t\tcontentstatus.Value = parsedStatus.StatusType === 'Content Status' ? parsedStatus.Label : null;\n\n\t\t\tvar todostatus = {};\n\t\t\ttodostatus.TagTypeId = vm.todoStatusTagTypeId;\n\t\t\ttodostatus.Value = parsedStatus.StatusType === 'ToDo Status' ? parsedStatus.Label : null;\n\n\t\t\tvar assigneduserid = {};\n\t\t\tassigneduserid.TagTypeId = vm.assignedUserIdTagTypeId;\n\t\t\tassigneduserid.Value = parsedStatus.StatusType === 'ToDo Status' && parsedUser ? parsedUser.UserId : 0;\n\n\t\t\tvar assigneddate = {};\n\t\t\tassigneddate.TagTypeId = vm.assignedDateTagTypeId;\n\t\t\tvar date = new Date();\n\t\t\tvar mm = date.getMonth() + 1;\n\t\t\tif (mm < 10) {\n\t\t\t\tmm = '0' + mm;\n\t\t\t}\n\t\t\tvar dd = date.getDate();\n\t\t\tif (dd < 10) {\n\t\t\t\tdd = '0' + dd;\n\t\t\t}\n\t\t\tassigneddate.Value = [mm, dd, date.getFullYear()].join('');\n\n\t\t\tvar Status = [];\n\t\t\tStatus.push(contentstatus);\n\t\t\tStatus.push(todostatus);\n\t\t\tStatus.push(assigneduserid);\n\t\t\tStatus.push(assigneddate);\n\n\t\t\tsmbStatusDataStore.setDocumentStatus(Status, vm.documentId).then(submitSuccess, submitFailure);\n\t\t\treturn;\n\t\t}\n\n\t\tfunction submitSuccess(response) {\n\t\t\tif (response.Error) {\n\t\t\t\tsubmitFailure(response.Error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvm.statusIsDirty = false;\n\t\t\tvm.toDoListDS.loadCount();\n\t\t}\n\n\t\tfunction submitFailure(e) {\n\t\t\t//failure\n\t\t\tconsole.log(e.data.Message);\n\t\t}\n\n\t\tfunction deleteDocument(event) {\n\t\t\tvar title = gettextCatalog.getString('Delete Document');\n\t\t\tvar message = gettextCatalog.getString('Would you like to delete this document?');\n\t\t\tvar purgeText = gettextCatalog.getString('Selecting this checkbox will enable permanent deletion of this document that can\\'t be undone!');\n\n\t\t\tsmbDeleteDialogService\n\t\t\t\t.show(event, title, message, pxAuthService.isSiteAdmin, purgeText)\n\t\t\t\t.then(function(purge) {\n\t\t\t\t\treturn smbDocumentDataStore\n\t\t\t\t\t\t.delete(purge)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\treturn $q.all([\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Document deleted')),\n\t\t\t\t\t\t\t\tsmbDocumentViewerNavigationService.back()\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function() {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to delete document'));\n\t\t\t\t\t\t});\t\t\t\t\n\t\t\t\t}, angular.noop);\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentContextMenu/documentContextMenu.js\n// module id = 79\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbDocumentDetails', DocumentDetailsDirective)\n\t\t.controller('smbDocumentDetailsController', ['smbDocumentDetailsPanelDataStore', DocumentDetailsController]);\n\n\tvar templateUrl = require('./documentDetails.template');\n\tfunction DocumentDetailsDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbDocumentDetailsController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tdocumentGroupId: '@',\n\t\t\t\tdocumentTypeId: '@',\n\t\t\t\tdocumentId: '@'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction DocumentDetailsController(smbDocumentDetailsPanelDataStore) {\n\t\tvar vm = this;\n\t\tvm.detailsDS = smbDocumentDetailsPanelDataStore;\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentDetails/documentDetails.js\n// module id = 80\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbDocumentHistory', DocumentHistoryDirective)\n\t\t.controller('smbDocumentHistoryController', [\n\t\t\t'pxProgressService',\n\t\t\t'smbDocumentHistoryDataStore',\n\t\t\t'gettextCatalog',\n\t\t\t'pxAuthService',\n\t\t\t'sbToastService',\n\t\t\t'sbDocumentDetailService',\n\t\t\t'smbDocumentDataStore',\n\t\t\t'smbContentUploadDataStore',\n\t\t\tDocumentHistoryController\n\t\t]);\n\n\tvar templateUrl = require('./documentHistory.template');\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.documentHistory\n\t * @module smb-app\n\t * @restrict E\n\t * @description\n\t *\n\t * @usage\n\t *\n\t * \n\t */\n\tfunction DocumentHistoryDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbDocumentHistoryController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tdocumentId: '@',\n\t\t\t\tcontentTypeId: '@'\n\t\t\t},\n\t\t\tlink: function (scope) {\n\t\t\t\tscope.$watch('vm.activeTab',function (newVal) {\n\t\t\t\t\tif (newVal === 1 && scope.vm.docRevisions.length === 0) {\n\t\t\t\t\t\tscope.vm.loadRevisions();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction DocumentHistoryController(pxProgressService, smbDocumentHistoryDataStore, gettextCatalog, pxAuthService, sbToastService, sbDocumentDetailService, smbDocumentDataStore, smbContentUploadDataStore) {\n\t\tvar vm = this;\n\t\tvm.loading = false;\n\t\tvm.documentHistoryDS = smbDocumentHistoryDataStore;\n\t\tvm.activeTab = 0;\n\n\t\tvm.documentDS = smbDocumentDataStore;\n\t\tvm.docRevisions = [];\n\t\tvm.promoteRevision = promoteRevision;\n\t\tvm.isLatest = isLatest;\n\t\tvm.uploadRevision = uploadRevision;\n\t\tvm.loadRevisions = loadRevisions;\n\n\t\t(function initDocumentIndexesController() {\n\t\t\tvm.loading = true;\n\t\t\tpxProgressService.visible = true;\n\t\t\tvm.documentHistoryDS.loadHistory(vm.documentId, vm.documentTypeId, false)\n\t\t\t\t.finally(function() {\n\t\t\t\t\tvm.loading = false;\n\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t});\n\t\t}());\n\n\t\tfunction loadRevisions() {\n\t\t\treturn sbDocumentDetailService.getVersions(vm.documentId)\n\t\t\t\t.then(function (revisions) {\n\t\t\t\t\tvm.docRevisions = revisions.map(function (v) {\n\t\t\t\t\t\treturn Object.assign({}, v, {\n\t\t\t\t\t\t\tDateCreated: new Date(v.DateCreated),\n\t\t\t\t\t\t\tCreatedBy: v.CreatedBy === pxAuthService.displayName ? 'You' : v.CreatedBy\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\treturn revisions;\n\t\t\t\t}).then(function () {\n\t\t\t\t\tvar latest = vm.docRevisions[vm.docRevisions.length - 1];\n\t\t\t\t\tvar originalFileName = latest.OriginalFileName.split('.');\n\t\t\t\t\tvm.extension = originalFileName[originalFileName.length - 1];\n\t\t\t\t\tvm.extension = vm.extension && '.' + vm.extension;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction promoteRevision(ev, revision) {\n\t\t\tev.preventDefault();\n\t\t\tev.stopPropagation();\n\t\t\tsmbContentUploadDataStore.promoteRevision(revision)\n\t\t\t\t.then(function () {\n\t\t\t\t\treturn loadRevisions();\n\t\t\t\t})\n\t\t\t\t.then(function () {\n\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Successfully made revision {rev} the current revision'.replace('{rev}', revision.VersionNumber)));\n\t\t\t\t});\n\t\t}\n\n\t\tfunction isLatest(revision) {\n\t\t\treturn vm.docRevisions.indexOf(revision) === vm.docRevisions.length - 1;\n\t\t}\n\n\t\tfunction uploadRevision(fileInput) {\n\t\t\tif (!fileInput.files.length) {\n\t\t\t\t// no files have been selected, don't try to upload\n\t\t\t\t// non-existant file\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar file = fileInput.files[0];\n\t\t\tsmbContentUploadDataStore.uploadRevision(vm.documentId, file)\n\t\t\t\t.then(function () { /* Reload revisions after creating new one. */\n\t\t\t\t\treturn loadRevisions();\n\t\t\t\t})\n\t\t\t\t.then(function () { /* Reset file input and display success message */\n\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('New revision saved'));\n\t\t\t\t})\n\t\t\t\t.catch(function (err) {\n\t\t\t\t\t// show error message\n\t\t\t\t\tsbToastService.showSimple(err.data.Message);\n\t\t\t\t})\n\t\t\t\t.finally(function () { /* Reset file input */\n\t\t\t\t\tfileInput.value = '';\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentHistory/documentHistory.js\n// module id = 81\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbDocumentHitList', DocumentHitListDirective)\n\t\t.controller('smbDocumentHitListController', ['smbDocumentViewerNavigationService', DocumentHitListController]);\n\n\tvar templateUrl = require('./documentHitList.template');\n\tfunction DocumentHitListDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbDocumentHitListController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tviewOnSelect: '=',\n\t\t\t\tdocuments: '=',\n\t\t\t\tonSelectDocument: '&'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction DocumentHitListController(smbDocumentViewerNavigationService) {\n\t\tvar vm = this;\n\t\tvm.onClick = onClick;\n\n\t\tfunction onClick(document) {\n\t\t\tvm.onSelectDocument({ document: document });\n\t\t\tif (vm.viewOnSelect) {\n\t\t\t\tsmbDocumentViewerNavigationService.go(document.LibraryId, document.FolderId, document.DocumentId);\n\t\t\t}\n\t\t}\n\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentHitList/documentHitList.js\n// module id = 82\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbDocumentIndexes', DocumentIndexesDirective)\n\t\t.controller('smbDocumentIndexesController', [\n\t\t\t'$state',\n\t\t\t'pxProgressService',\n\t\t\t'smbDocumentIndexDataStore',\n\t\t\t'smbDocumentDataStore',\n\t\t\t'smbDocumentDetailsPanelDataStore',\n\t\t\tDocumentIndexesController\n\t\t]);\n\n\tvar templateUrl = require('./documentIndexes.template');\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.smbDocumentIndexes\n\t * @module smb-app\n\t * @restrict E\n\t * @description\n\t *\n\t * @usage\n\t *\n\t * \n\t */\n\tfunction DocumentIndexesDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbDocumentIndexesController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tdocumentId: '@',\n\t\t\t\tdocumentTypeId: '@',\n\t\t\t\tdocumentGroupId: '@'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction DocumentIndexesController($state, pxProgressService, smbDocumentIndexDataStore, smbDocumentDataStore, smbDocumentDetailsPanelDataStore) {\n\t\tvar vm = this;\n\t\tvm.loading = false;\n\t\tvm.indexDS = smbDocumentIndexDataStore;\n\t\tvm.documentDS = smbDocumentDataStore;\n\t\tvm.documentDetailsDS = smbDocumentDetailsPanelDataStore;\n\n\t\t(function initDocumentIndexesController() {\n\t\t\tvm.loading = true;\n\t\t\tpxProgressService.visible = true;\n\t\t\tvm.indexDS.getIndexes(vm.documentId, vm.documentTypeId, false)\n\t\t\t\t.then(function() {\n\t\t\t\t\tvm.indexDS.indexValues.sort(function(lhs, rhs) {\n\t\t\t\t\t\tif (lhs.sequence < rhs.sequence) {\n\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t} else if (lhs.sequence === rhs.sequence) {\n\t\t\t\t\t\t\treturn 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.then(function() {\n\t\t\t\t\tvm.documentDS.loadUserPermissions(vm.documentGroupId);\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tvm.loading = false;\n\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t});\n\t\t}());\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentIndexes/documentIndexes.js\n// module id = 83\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbDocumentIndexesEdit', DocumentIndexesEditDirective)\n\t\t.controller('smbDocumentIndexesEditController', [\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'sbToastService',\n\t\t\t'smbDocumentIndexDataStore',\n\t\t\t'smbIndexTypesDataStore',\n\t\t\t'smbDocumentDataStore',\n\t\t\t'smbDocumentDetailsPanelDataStore',\n\t\t\tDocumentIndexesEditController\n\t\t]);\n\n\tvar templateUrl = require('./documentIndexesEdit.template');\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.smbDocumentIndexesEdit\n\t * @module smb-app\n\t * @restrict E\n\t * @description\n\t *\n\t * Document index edit component for the document viewer\n\t *\n\t * @usage\n\t *\n\t * \n\t */\n\tfunction DocumentIndexesEditDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbDocumentIndexesEditController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tdocumentId: '@',\n\t\t\t\tdocumentTypeId: '@',\n\t\t\t\tdocumentGroupId: '@'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction DocumentIndexesEditController(\n\t\tgettextCatalog,\n\t\tpxProgressService,\n\t\tsbToastService,\n\t\tsmbDocumentIndexDataStore,\n\t\tsmbIndexTypesDataStore,\n\t\tsmbDocumentDataStore,\n\t\tsmbDocumentDetailsPanelDataStore\n\t) {\n\t\tvar vm = this;\n\t\tvm.loading = false;\n\t\tvm.indexDS = smbDocumentIndexDataStore;\n\t\tvm.indexes = [];\n\t\tvm.saveIndexes = saveIndexes;\n\t\tvm.documentDetailsDS = smbDocumentDetailsPanelDataStore;\n\t\tvm.fieldsStatus = {\n\t\t\tisValid: true\n\t\t};\n\n\t\t(function initDocumentIndexesEditController() {\n\t\t\tvm.loading = true;\n\t\t\tpxProgressService.visible = true;\n\t\t\tsmbDocumentDataStore.loadUserPermissions(vm.documentGroupId)\n\t\t\t\t.then(function() {\n\t\t\t\t\tif (smbDocumentDataStore.canEditFields) {\n\t\t\t\t\t\treturn vm.indexDS.getIndexes(vm.documentId, vm.documentTypeId, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Current user can't edit fields, go back to the display page\n\t\t\t\t\t\tsmbDocumentDetailsPanelDataStore.toggle(smbDocumentDetailsPanelDataStore.fieldPanel);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(function(data) {\n\t\t\t\t\tif (data !== false) {\n\t\t\t\t\t\tvm.indexes = vm.indexDS.indexTypePanelModel;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tvm.loading = false;\n\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t});\n\t\t}());\n\n\t\tfunction saveIndexes() {\t\n\t\t\tif(vm.fieldsStatus.isValid) {\n\t\t\t\tpxProgressService.visible = vm.loading = true;\n\t\t\t\tsmbIndexTypesDataStore.setIndexTypes(vm.indexes, vm.documentId, vm.documentTypeId)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Fields updated!'));\n\t\t\t\t\t\tsmbDocumentDetailsPanelDataStore.toggle(smbDocumentDetailsPanelDataStore.fieldPanel);\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(){\n\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to update fields.'));\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tvm.loading = false;\n\t\t\t\t\t\tpxProgressService.visible = false;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentIndexesEdit/documentIndexesEdit.js\n// module id = 84\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbDocumentNotes', ['$timeout', DocumentNotesDirective])\n\t\t.controller('smbDocumentNotesController', ['smbDocumentNotesDataStore', 'pxAuthService', DocumentNotesController]);\n\n\tvar templateUrl = require('./documentNotes.template');\n\tfunction DocumentNotesDirective($timeout) {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbDocumentNotesController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: {\n\t\t\t\tdocumentId: '@'\n\t\t\t},\n\t\t\tscope: {},\n\t\t\tlink: function(scope, element, attrs){\n\t\t\t\tscope.$watchCollection('vm.notesDS.notes', function (newVal) {\n\t\t\t\t\tif (!newVal) { return;}\n\t\t\t\t\tscroll();\n\t\t\t\t});\n\t\t\t\tfunction scroll() {\n\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\tvar scrollElment = element[0].querySelector('.smb-app-doc-comments__comment-list');\n\t\t\t\t\t\tif (scrollElment) {\n\t\t\t\t\t\t\tscrollElment.scrollTop = scrollElment.scrollHeight;\n\t\t\t\t\t\t\tscope.vm.loaded = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 100);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tscroll();\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction DocumentNotesController(smbDocumentNotesDataStore, pxAuthService) {\n\t\tvar vm = this;\n\t\tvm.loaded = false;\n\t\tvm.notesDS = smbDocumentNotesDataStore;\n\t\tvm.authService = pxAuthService; \n\t\tvm.notesDS.loadNotes(vm.documentId);\n\t\tvm.newCommentText = '';\n\t\tvm.postComment = postComment;\n\n\t\tfunction postComment() {\n\t\t\tif (vm.newCommentText) {\n\t\t\t\tvar note = { text: vm.newCommentText };\n\t\t\t\tvm.notesDS.createNote(vm.documentId, note)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tvm.newCommentText = '';\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentNotes/documentNotes.js\n// module id = 85\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbDocumentView', DocumentViewDirective)\n\t\t.controller('smbDocumentViewController', [\n\t\t\t'$scope',\n\t\t\t'pxProgressService',\n\t\t\t'smbPanelDetailsDataStore',\n\t\t\t'smbToolbarService',\n\t\t\t'smbDocumentDataStore',\n\t\t\t'smbContentUploadDataStore',\n\t\t\t'smbDocumentViewerNavigationService',\n\t\t\tDocumentViewController\n\t\t]);\n\n\tvar templateUrl = require('./documentView.template');\n\tfunction DocumentViewDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbDocumentViewController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: {\n\t\t\t\tdocumentGroupId: '@',\n\t\t\t\tdocumentTypeId: '@',\n\t\t\t\tdocumentId: '@'\n\t\t\t},\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction DocumentViewController($scope, pxProgressService, smbPanelDetailsDataStore, smbToolbarService, smbDocumentDataStore, smbContentUploadDataStore, smbDocumentViewerNavigationService) {\n\t\tvar vm = this;\n\t\tpxProgressService.visible = true; \n\t\tvm.docPages = [];\n\t\tvm.panelDetailsDS = smbPanelDetailsDataStore;\n\n\t\t(function initDocumentViewController() {\n\t\t\tsmbToolbarService.backArrowState = smbDocumentViewerNavigationService.backState;\n\t\t\tif (smbDocumentViewerNavigationService.backStateParams) {\n\t\t\t\tsmbToolbarService.backArrowStateParams = smbDocumentViewerNavigationService.backStateParams;\n\t\t\t}\n\n\t\t\tloadDoc();\n\n\t\t\tvar unsubscribe = smbContentUploadDataStore.onUploadSuccess(function() {\n\t\t\t\tloadDoc();\n\t\t\t});\n\n\t\t\t$scope.$on('$destroy', function() {\n\t\t\t\tunsubscribe();\n\t\t\t});\n\t\t}());\n\n\t\tfunction loadDoc() {\n\t\t\treturn smbDocumentDataStore.loadDocument(vm.documentId)\n\t\t\t\t.then(function () {\n\t\t\t\t\tvm.docPages = smbDocumentDataStore.pageUrls;\n\t\t\t\t})\n\t\t\t\t.finally(function(){\t\t\t\t\t\n\t\t\t\t\tpxProgressService.visible = false; \n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentView/documentView.js\n// module id = 86\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbHome', [HomeDirective])\n\t\t.controller('HomeController',\n\t\t[\n\t\t\t'gettextCatalog',\n\t\t\t'$mdMedia',\n\t\t\t'smbToDoListDataStore',\n\t\t\t'smbToolbarService',\n\t\t\tHomeController\n\t\t]);\n\n\tvar templateUrl = require('./home.template');\n\tfunction HomeDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: HomeController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction HomeController(gettextCatalog, $mdMedia, smbToDoListDataStore, smbToolbarService) {\n\t\tsmbToolbarService.reset();\n\n\t\tvar vm = this;\n\t\tvm.media = $mdMedia;\n\t\tvm.todoListDS = smbToDoListDataStore;\n\t\tvm.items = [\n\t\t\t{ label: gettextCatalog.getString('Find Documents'), icon: 'search', state: 'search.contentTypeGroups' },\n\t\t\t{ label: gettextCatalog.getString('Add Documents'), icon: 'note_add', state: 'import.contentTypeGroups' },\n\t\t\t{ label: gettextCatalog.getString('My To-Do List'), icon: 'assignment', state: 'todo.list', isTodoList: true }\n\t\t];\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/home/home.js\n// module id = 87\n// module chunks = 1","(function() { \n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbIcon', IconDirective)\n\t\t.controller('smbIconController', ['$scope', 'smbIconTypes', 'smbIconDataStore', IconController]);\n\n\tvar templateUrl = require('./icon.template');\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.smbIcon2\n\t * @module smb-app\n\t * @restrict E\n\t * @description\n\t *\n\t * A component for retrieving and displaying user configurable icons. This component currently only works for\n\t * SVG icons. Binary image files are not yet supported, but will be in the future.\n\t *\n\t * @usage\n\t *\n\t * \n\t */\n\tfunction IconDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbIconController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\ticonUri: '@',\n\t\t\t\ticonName: '@',\n\t\t\t\ticonType: '@'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction IconController($scope, smbIconTypes, smbIconDataStore) {\n\t\tvar vm = this;\n\t\tvm.iconTypes = smbIconTypes;\n\t\tvm.iconData = null;\n\n\t\tvar _prevUrl;\n\n\t\tfunction loadIcon() {\n\t\t\tsmbIconDataStore.getIconData({IconUri: vm.iconUri, IconExtension: vm.iconType})\n\t\t\t\t.then(function(data) {\n\t\t\t\t\tvm.iconData = data;\n\t\t\t\t});\n\t\t}\n\n\t\t$scope.$watch('vm.iconUri', function() {\n\t\t\tif (_prevUrl !== vm.iconUri) {\n\t\t\t\t_prevUrl = vm.iconUri;\n\t\t\t\tloadIcon();\n\t\t\t}\n\t\t});\n\n\t\tloadIcon();\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/icon/icon.js\n// module id = 88\n// module chunks = 1","require('./_app/app');\nrequire('./_app/app.style');\nrequire('./assignedUsers/assignedUsers');\nrequire('./contentSearch/contentSearch');\nrequire('./contentSearchResults/contentSearchResults');\nrequire('./contentTypeConfig/contentTypeConfig');\nrequire('./contentTypeConfig/contentTypeConfig.style');\nrequire('./contentTypeConfigForm/contentTypeConfigForm');\nrequire('./contentTypeConfigForm/contentTypeConfigForm.style');\nrequire('./contentTypeGroupConfig/contentTypeGroupConfig');\nrequire('./contentTypeGroupConfig/contentTypeGroupConfig.style');\nrequire('./contentTypeGroupConfigForm/contentTypeGroupConfigForm');\nrequire('./contentTypeGroupConfigForm/contentTypeGroupConfigForm.style');\nrequire('./contentTypeGroupSearch/contentTypeGroupSearch');\nrequire('./contentTypeGroupSearchResults/contentTypeGroupSearchResults');\nrequire('./contentTypeGroupSearchResults/contentTypeGroupSearchResults.style');\nrequire('./contentTypeGroups/contentTypeGroups');\nrequire('./contentTypeGroupsConfig/contentTypeGroupsConfig');\nrequire('./contentTypeGroupsConfig/contentTypeGroupsConfig.style');\nrequire('./contentTypeGroupsSearch/contentTypeGroupsSearch');\nrequire('./contentTypeGroupsSearch/contentTypeGroupsSearch.style');\nrequire('./contentTypes/contentTypes');\nrequire('./contentTypesConfig/contentTypesConfig');\nrequire('./contentTypesConfig/contentTypesConfig.style');\nrequire('./contentTypesSearch/contentTypesSearch');\nrequire('./contentTypesSearch/contentTypesSearch.style');\nrequire('./contentUpload/contentUpload');\nrequire('./contentUpload/contentUpload.style');\nrequire('./documentContextMenu/documentContextMenu');\nrequire('./documentContextMenu/documentContextMenu.style');\nrequire('./documentDetails/documentDetails');\nrequire('./documentHistory/documentHistory');\nrequire('./documentHistory/documentHistory.style');\nrequire('./documentHitList/documentHitList');\nrequire('./documentHitList/documentHitList.style');\nrequire('./documentIndexes/documentIndexes');\nrequire('./documentIndexes/documentIndexes.style');\nrequire('./documentIndexesEdit/documentIndexesEdit');\nrequire('./documentIndexesEdit/documentIndexesEdit.style');\nrequire('./documentNotes/documentNotes');\nrequire('./documentNotes/documentNotes.style');\nrequire('./documentView/documentView');\nrequire('./documentView/documentView.style');\nrequire('./errorMessages');\nrequire('./home/home');\nrequire('./home/home.style');\nrequire('./icon/icon');\nrequire('./icon/icon.style');\nrequire('./indexTypeConfig/indexTypeConfig');\nrequire('./indexTypeConfig/indexTypeConfig.style');\nrequire('./indexTypesPanel/indexTypesPanel');\nrequire('./indexTypesPanel/indexTypesPanel.style');\nrequire('./itemSelector/itemSelector');\nrequire('./itemSelector/itemSelector.style');\nrequire('./login/login');\nrequire('./login/login.style');\nrequire('./register/register');\nrequire('./register/register.style');\nrequire('./status/status');\nrequire('./status/status.style');\nrequire('./statusConfig/statusConfig');\nrequire('./statusConfig/statusConfig.style');\nrequire('./todolist/todolist');\nrequire('./todolist/todolist.style');\nrequire('./todolistContextMenu/todolistContextMenu');\nrequire('./todolistContextMenu/todolistContextMenu.style');\nrequire('./trash/trash');\nrequire('./trash/trash.style');\nrequire('./user/user');\nrequire('./user/user.style');\nrequire('./userAdmin/userAdmin');\nrequire('./userGroup/userGroup');\nrequire('./userGroup/userGroup.style');\nrequire('./userGroups/userGroups');\nrequire('./userGroups/userGroups.style');\nrequire('./userSelectorDialog/userSelectorDialog');\nrequire('./userSelectorDialog/userSelectorDialog.style');\nrequire('./users/users');\nrequire('./users/users.style');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/index.js\n// module id = 89\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbIndexTypeConfig', IndexTypeConfigDirective)\n\t\t.controller('smbIndexTypeConfigController', [\n\t\t\t'gettextCatalog',\n\t\t\t'sbToastService',\n\t\t\t'smbIndexTypesDataTypes',\n\t\t\tIndexTypeConfigController\n\t\t]);\n\n\tvar templateUrl = require('./indexTypeConfig.template');\n\tfunction IndexTypeConfigDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbIndexTypeConfigController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tcurrentIndexTypes: '=',\n\t\t\t\tcurrentIndexTypesTitle: '@',\n\t\t\t\tindexTypesPool: '=',\n\t\t\t\tindexTypesPoolTitle: '@',\n\t\t\t\tindexTypesPoolAddLabel: '@',\n\t\t\t\tallowEditName: '=',\n\t\t\t\tallowEditDefaultValue: '=',\n\t\t\t\tallowDelete: '=',\n\t\t\t\tonNewItem: '&',\n\t\t\t\tonEditItem: '&',\n\t\t\t\tonDelete: '&',\n\t\t\t\tenableSequencing: '=',\n\t\t\t\tonSequence: '&'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction IndexTypeConfigController(gettextCatalog, sbToastService, smbIndexTypesDataTypes) {\n\t\tvar vm = this;\n\t\tvm.active = -1;\n\t\tvm.newIndexType = {\n\t\t\tname: '',\n\t\t\tdataType: {val: -1},\n\t\t\tdefaultValue: ''\n\t\t};\n\n\t\tvm.smbIndexTypeDataTypes = smbIndexTypesDataTypes;\n\t\tvm.currentIndexTypes = vm.currentIndexTypes || [];\n\t\tvm.indexTypesPool = vm.indexTypesPool || [];\n\n\t\tvm.currentIndexTypesTitle = vm.currentIndexTypesTitle || gettextCatalog.getString('Curent Index Types');\n\n\t\tvm.dataTypes = [\n\t\t\t{\n\t\t\t\tlabel: smbIndexTypesDataTypes[smbIndexTypesDataTypes.STRING],\n\t\t\t\tval: smbIndexTypesDataTypes.STRING\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: smbIndexTypesDataTypes[smbIndexTypesDataTypes.NUMERIC],\n\t\t\t\tval: smbIndexTypesDataTypes.NUMERIC\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: smbIndexTypesDataTypes[smbIndexTypesDataTypes.DATE],\n\t\t\t\tval: smbIndexTypesDataTypes.DATE\n\t\t\t}\n\t\t];\n\n\t\tvm.setActive = setActive;\n\t\tvm.saveEdit = saveEdit;\n\t\tvm.cancelEdit = cancelEdit;\n\t\tvm.addIndexType = addIndexType;\n\t\tvm.addFromPool = addFromPool;\n\t\tvm.remove = remove;\n\t\tvm.swapIndexTypesOrder = swapIndexTypesOrder;\n\n\t\tObject.defineProperty(vm, 'allowEdit', {\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tget: function() { return vm.allowEditName || vm.allowEditDefaultValue; }\n\t\t});\n\n\t\tvar activeEdit = null;\n\n\t\tfunction setActive(index) {\n\t\t\tvm.active = index;\n\t\t\tactiveEdit = copyIndexType(vm.currentIndexTypes[vm.active]);\n\t\t}\n\n\t\tfunction saveEdit() {\n\t\t\tvar target = vm.currentIndexTypes[vm.active];\n\t\t\tif (!indexTypeConflict(target)) {\n\t\t\t\tvm.onEditItem({item: target});\n\t\t\t\tvm.active = -1;\n\t\t\t\tactiveEdit = null;\n\t\t\t} else {\n\t\t\t\tindexTypeConflictMessage(target.TagTypeName);\n\t\t\t}\n\t\t}\n\n\t\tfunction cancelEdit() {\n\t\t\tvm.currentIndexTypes[vm.active] = activeEdit;\n\t\t\tvm.active = -1;\n\t\t\tactiveEdit = null;\n\t\t}\n\n\t\tfunction copyIndexType(indexType) {\n\t\t\treturn Object.assign({}, indexType, {\n\t\t\t\tConstraints: Object.assign({}, indexType.Constraints),\n\t\t\t\tLinks: Object.assign({}, indexType.Links)\n\t\t\t});\n\t\t}\n\n\t\tfunction addIndexType() {\n\t\t\tif (vm.newIndexType && vm.newIndexType.name && vm.newIndexType.dataType && vm.smbIndexTypeDataTypes[vm.newIndexType.dataType.val]) {\n\t\t\t\tvar newIndexType = {\n\t\t\t\t\tTagTypeName: vm.newIndexType.name,\n\t\t\t\t\tDataType: vm.newIndexType.dataType.val,\n\t\t\t\t\tDataTypeName: vm.smbIndexTypeDataTypes[vm.newIndexType.dataType.val],\n\t\t\t\t\tConstraints: {},\n\t\t\t\t\tLinks: {}\n\t\t\t\t};\n\t\t\t\tif (vm.newIndexType.defaultValue) {\n\t\t\t\t\tnewIndexType.Constraints.DefaultValue = vm.newIndexType.defaultValue;\n\t\t\t\t}\n\t\t\t\tif (!indexTypeConflict(newIndexType)) {\n\t\t\t\t\tvm.onNewItem({item: newIndexType});\n\t\t\t\t\tvm.newIndexType.name = '';\n\t\t\t\t\tvm.newIndexType.dataType = {val: -1};\n\t\t\t\t\tvm.newIndexType.defaultValue = '';\n\t\t\t\t} else {\n\t\t\t\t\tindexTypeConflictMessage(newIndexType.TagTypeName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction addFromPool(index) {\n\t\t\tvm.onNewItem({item: vm.indexTypesPool[index]});\n\t\t}\n\n\t\tfunction remove(index) {\n\t\t\tvm.onDelete({item: vm.currentIndexTypes[index]});\n\t\t}\n\n\t\tfunction indexTypeConflict(indexType) {\n\t\t\tvar it = vm.currentIndexTypes.find(function(tt) {\n\t\t\t\treturn tt.TagTypeName.toLowerCase() === indexType.TagTypeName.toLowerCase() && tt.TagTypeId !== indexType.TagTypeId;\n\t\t\t});\n\n\t\t\tif (!it && vm.indexTypesPool) {\n\t\t\t\tit = vm.indexTypesPool.find(function(tt) {\n\t\t\t\t\treturn tt.TagTypeName.toLowerCase() === indexType.TagTypeName.toLowerCase() && tt.TagTypeId !== indexType.TagTypeId;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn it ? true : false;\n\t\t}\n\n\t\tfunction indexTypeConflictMessage(indexTypeName) {\n\t\t\tvar message = gettextCatalog.getString('\"{{indexTypeName}}\" index type already exists!', { indexTypeName: indexTypeName });\n\t\t\tsbToastService.showSimple(message);\n\t\t}\n\n\t\tfunction swapIndexTypesOrder(index1, index2) {\n\t\t\tif (vm.enableSequencing) {\n\t\t\t\tvm.onSequence({index1: index1, index2: index2});\n\t\t\t}\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/indexTypeConfig/indexTypeConfig.js\n// module id = 90\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbIndexes',[IndexesDirective])\n\t\t.controller('IndexesController', [\n\t\t\t'smbIndexTypesDataTypes',\n\t\t\tIndexesController\n\t\t]);\n\n\tvar templateUrl = require('./indexTypesPanel.template');\n\tfunction IndexesDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: IndexesController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tindextypes: '=',\n\t\t\t\tstatus: '='\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction IndexesController(smbIndexTypesDataTypes) {\n\t\tvar vm = this;\n\t\tvm.dataTypes = smbIndexTypesDataTypes;\n\t\tvm.stringFieldRegex = /^[^<>:\"/\\\\|?*]*$/i;\n\n\t\tif(vm.status) {\n\t\t\tObject.defineProperty(vm.status, 'isValid', {\n\t\t\t\tenumerable: true,\n\t\t\t\tget : function(){\n\t\t\t\t\treturn Object.keys(vm.fieldsForm.$error).length < 1;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/indexTypesPanel/indexTypesPanel.js\n// module id = 91\n// module chunks = 1","/* globals EasyScroller */\n(function () {\n\t'use strict';\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.directive:smbItemSelector\n\t * @module smb-app\n\t * @restrict E\n\t * @description\n\t *\n\t * `smbItemSelector` is a hortizonal scrolling list of items\n\t *\n\t * @param {array=} items The items to show in scroller\n\t *\n\t * @param {bool} multiple The ability to select multiple items\n\t *\n\t * @usage\n\t *\n\t * \n\t */\n\n\tangular.module('smb-app')\n\t\t.directive('smbItemSelector', ['$window','$timeout', ItemSelectorDirective])\n\t\t.controller('ItemSelectorController', [ItemSelectorController]);\n\n\tvar templateUrl = require('./itemSelector.template');\n\tfunction ItemSelectorDirective($window, $timeout) {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: [ItemSelectorController],\n\t\t\tcontrollerAs: 'vm',\n\t\t\tbindToController: {\n\t\t\t\titems: '=',\n\t\t\t\tmultiple: '='\n\t\t\t},\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tscope: true,\n\t\t\tlink: function (scope, element) {\n\t\t\t\t\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction ItemSelectorController() {\n\t\tvar vm = this;\n\t\tvm.toggleSelection = function (item) {\n\t\t\tif (vm.isDragging) { return; }\n\t\t\tif (!vm.multiple) {\n\t\t\t\tvm.items = vm.items.map(function (i) {\n\t\t\t\t\ti.selected = false;\n\t\t\t\t\treturn i;\n\t\t\t\t});\n\t\t\t\titem.selected = true;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titem.selected = !item.selected;\n\t\t};\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/itemSelector/itemSelector.js\n// module id = 92\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbLogin', LoginDirective)\n\t\t.controller('smbLoginController', [\n\t\t\t'gettextCatalog',\n\t\t\tLoginController\n\t\t]);\n\n\tvar templateUrl = require('./login.template');\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.smbLogin\n\t * @module smb-app\n\t * @restrict E\n\t * @description\n\t *\n\t * @usage\n\t *\n\t * \n\t */\n\tfunction LoginDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbLoginController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: { }\n\t\t};\n\t}\n\n\tfunction LoginController(gettextCatalog) {\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/login/login.js\n// module id = 93\n// module chunks = 1","/**\n * email address and product type\n * pending registrations\n */\n(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('smb-app')\n\t\t.directive('smbRegister', [\n\t\t\tRegisterDirective\n\t\t])\n\t\t.controller('smbRegisterController', [\n\t\t\t'pxEnvironmentService',\n\t\t\tRegisterController\n\t\t]);\n\n\tvar templateUrl = require('./register.template');\n\tfunction RegisterDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbRegisterController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tdeploymentId: '@',\n\t\t\t\tauthToken: '@'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction RegisterController(pxEnvironmentService) {\n\t\tvar vm = this;\n\t\tvm.pxEnvironmentService = pxEnvironmentService;\n\t\tvm.agreeToTerms = false;\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/register/register.js\n// module id = 94\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbStatus',[StatusDirective])\n\t\t.controller('StatusController', [\n\t\t\tStatusController\n\t\t]);\n\n\tvar templateUrl = require('./status.template');\n\tfunction StatusDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: StatusController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tcontentStatuses: '=',\n\t\t\t\ttodoStatuses: '=',\n\t\t\t\tstatus: '=',\n\t\t\t\tonStatusChange: '&'\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction StatusController() {\n\t\tvar vm = this;\n\t\tvm.onStatusSelected = onStatusSelected;\n\n\t\tfunction onStatusSelected() {\n\t\t\tvm.onStatusChange();\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/status/status.js\n// module id = 95\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbStatusConfig', StatusConfigDirective)\n\t\t.controller('smbStatusConfigController', [\n\t\t\t'gettextCatalog',\n\t\t\t'sbToastService',\n\t\t\t'smbStatusConfigDataStore',\n\t\t\tStatusConfigController\n\t\t]);\n\n\tvar templateUrl = require('./statusConfig.template');\n\tfunction StatusConfigDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbStatusConfigController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\t\t\t\tcontentStatuses: '=',\n\t\t\t\ttodoStatuses: '=',\n\t\t\t\tonStatusChange: '&',\n\t\t\t\treadonly: '='\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction StatusConfigController(gettextCatalog, sbToastService, smbStatusConfigDataStore) {\n\t\tvar vm = this;\n\n\t\tvm.statusDS = smbStatusConfigDataStore;\n\t\tvm.existingStatuses = null;\n\n\t\tvm.checkExistingStatuses = checkExistingStatuses;\n\n\t\tvm.onAddContentStatus = onAddContentStatus;\n\t\tvm.onDeleteContentStatus = onDeleteContentStatus;\n\t\tvm.onAddToDoStatus = onAddToDoStatus;\n\t\tvm.onDeleteToDoStatus = onDeleteToDoStatus;\n\n\t\tfunction checkExistingChips(chip) {\n\t\t\tvar g = vm.contentStatuses.find(function(g) { return g === chip; });\n\t\t\tif (!g) {\n\t\t\t\tg = vm.todoStatuses.find(function(g) { return g === chip; });\n\t\t\t}\n\n\t\t\treturn g ? true : false;\n\t\t}\n\n\t\tfunction isReadOnly() {\n\t\t\treturn !!vm.readonly;\n\t\t}\n\n\t\tfunction checkExistingStatuses(status) {\n\t\t\tif (vm.existingStatuses === null) {\n\t\t\t\tvm.existingStatuses = vm.contentStatuses.concat(vm.todoStatuses);\n\t\t\t}\n\n\t\t\tvar exists = checkExistingChips(status);\n\t\t\tif (exists) {\n\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Status already exists!'));\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn status;\n\t\t}\n\n\t\tfunction onAddContentStatus(chip) {\n\t\t\tvm.onStatusChange();\n\t\t\treturn chip;\n\t\t}\n\n\t\tfunction onAddToDoStatus(chip) {\n\t\t\tvm.onStatusChange();\n\t\t\treturn chip;\n\t\t}\n\n\t\tfunction onDeleteContentStatus(chip) {\n\t\t\tvm.onStatusChange();\n\t\t\treturn chip;\n\t\t}\n\n\t\tfunction onDeleteToDoStatus(chip) {\n\t\t\tvm.onStatusChange();\n\t\t\treturn chip;\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/statusConfig/statusConfig.js\n// module id = 96\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbToDoList', [ToDoListDirective])\n\t\t.controller('ToDoListController',\n\t\t[\n\t\t\t'gettextCatalog',\n\t\t\t'smbToolbarService',\n\t\t\t'smbToDoListDataStore',\n\t\t\t'smbIconTypes',\n\t\t\t'smbDocumentViewerNavigationService',\n\t\t\tToDoListController\n\t\t]);\n\n\tvar templateUrl = require('./todolist.template');\n\tfunction ToDoListDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: ToDoListController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {\n\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction ToDoListController(gettextCatalog, smbToolbarService, smbToDoListDataStore, smbIconTypes, smbDocumentViewerNavigationService) {\n\t\tsmbToolbarService.set(gettextCatalog.getString('My To Do List'), 'content.home', false, false);\n\n\t\tvar vm = this;\n\t\tvm.toDoListDS = smbToDoListDataStore;\n\t\tvm.viewState = viewState;\n\t\tvm.defaultIconType = smbIconTypes[smbIconTypes.SVG];\n\n\t\t(function loadToDoList() {\n\t\t\tsmbToDoListDataStore.getDocuments();\n\t\t})();\n\n\t\tfunction viewState(doc) {\n\t\t\tsmbDocumentViewerNavigationService.go(doc.LibraryId, doc.FolderId, doc.DocumentId);\n\t\t}\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/todolist/todolist.js\n// module id = 97\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.directive('smbToDoListContextMenu', ToDoListContextMenuDirective)\n\t\t.controller('smbToDoListContextMenuController', [\n\t\t\t'smbToolbarService',\n\t\t\t'smbToDoListDataStore',\n\t\t\tToDoListContextMenuController\n\t\t]);\n\n\tvar templateUrl = require('./todolistContextMenu.template.html');\n\tfunction ToDoListContextMenuDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbToDoListContextMenuController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: { }\n\t\t};\n\t}\n\n\tfunction ToDoListContextMenuController(smbToolbarService, smbToDoListDataStore) {\n\t\tvar vm = this;\n\t\tvm.smbToolbarService = smbToolbarService;\n\t\tvm.todolistDS = smbToDoListDataStore;\n\n\t\tvm.dateAscending = false;\n\t\tvm.dateDescending = true;\n\t\tvm.typeAscending = false;\n\t\tvm.typeDescending = false;\n\t\tvm.statusAscending = false;\n\t\tvm.statusDescending = false;\n\n\t\tvm.sortByDate = sortByDate;\n\t\tvm.sortByType = sortByType;\n\t\tvm.sortByStatus = sortByStatus;\n\t\tvm.dateActive = true;\n\t\tvm.typeActive = false;\n\t\tvm.statusActive = false;\n\n\t\tvar ASCENDING = true;\n\t\tvar DESCENDING = false;\n\n\t\tfunction sortByDate() {\n\t\t\tif (vm.dateActive) {\n\t\t\t\tvm.dateAscending = !vm.dateAscending;\n\t\t\t\tvm.dateDescending = !vm.dateDescending;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvm.dateActive = true;\n\t\t\t\tvm.typeActive = false;\n\t\t\t\tvm.statusActive = false;\n\t\t\t\tvm.dateAscending = true;\n\t\t\t\tvm.dateDescending = false;\n\t\t\t}\n\t\t\tif (vm.dateAscending) {\n\t\t\t\tvm.todolistDS.sortByDate(ASCENDING);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvm.todolistDS.sortByDate(DESCENDING);\n\t\t\t}\n\t\t}\n\n\t\tfunction sortByType() {\n\t\t\tif (vm.typeActive) {\n\t\t\t\tvm.typeAscending = !vm.typeAscending;\n\t\t\t\tvm.typeDescending = !vm.typeDescending;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvm.dateActive = false;\n\t\t\t\tvm.typeActive = true;\n\t\t\t\tvm.statusActive = false;\n\t\t\t\tvm.typeAscending = true;\n\t\t\t\tvm.typeDescending = false;\n\t\t\t}\n\t\t\tif (vm.typeAscending) {\n\t\t\t\tvm.todolistDS.sortByType(ASCENDING);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvm.todolistDS.sortByType(DESCENDING);\n\t\t\t}\n\t\t}\n\n\t\tfunction sortByStatus() {\n\t\t\tif (vm.statusActive) {\n\t\t\t\tvm.statusAscending = !vm.statusAscending;\n\t\t\t\tvm.statusDescending = !vm.statusDescending;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvm.dateActive = false;\n\t\t\t\tvm.typeActive = false;\n\t\t\t\tvm.statusActive = true;\n\t\t\t\tvm.statusAscending = true;\n\t\t\t\tvm.statusDescending = false;\n\t\t\t}\n\t\t\tif (vm.statusAscending) {\n\t\t\t\tvm.todolistDS.sortByStatus(ASCENDING);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvm.todolistDS.sortByStatus(DESCENDING);\n\t\t\t}\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/todolistContextMenu/todolistContextMenu.js\n// module id = 98\n// module chunks = 1","(function () {\n\t'use strict';\n\tvar templateUrl = require('./trash.template');\n\tangular\n\t\t.module('smb-app')\n\t\t.directive('smbTrash', [\n\t\t\tTrashDirective\n\t\t])\n\t\t.controller('TrashController', [\n\t\t\t'$q',\n\t\t\t'$mdDialog',\n\t\t\t'pxProgressSerivce',\n\t\t\t'settingsService',\n\t\t\t'sbToastService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbDeletedItemsDataStore',\n\t\t\t'gettextCatalog',\n\t\t\tTrashController\n\t\t]);\n\n\tfunction TrashDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: TrashController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction TrashController($q, $mdDialog, pxProgressService, settingsService, sbToastService, smbToolbarService, smbDeletedItemsDataStore, gettextCatalog) {\n\t\tvar vm = this;\n\t\tvar initTasks = [\n\t\t\tsmbDeletedItemsDataStore.load()\n\t\t];\n\t\tvm.deletedItemsDS = smbDeletedItemsDataStore;\n\t\tvm.purge = purge;\n\t\tvm.restore = restore;\n\t\tvm.purgeAll = purgeAll;\n\t\tsmbToolbarService.reset();\n\t\tsmbToolbarService.showLogo = false;\n\t\tsmbToolbarService.title = gettextCatalog.getString('System Trash');\n\n\t\tsetLoading(true);\n\t\t$q.all(initTasks)\n\t\t\t.finally(setLoading(false));\n\t\t\n\t\tfunction purge(event, item) {\n\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t.title(gettextCatalog.getString('Delete'))\n\t\t\t\t.textContent(gettextCatalog.getString('Would you like to permanently delete \"{{name}}\"?', {\n\t\t\t\t\tname: item.name\n\t\t\t\t}))\n\t\t\t\t.ariaLabel(gettextCatalog.getString('Confirm permanent document deletion'))\n\t\t\t\t.targetEvent(event)\n\t\t\t\t.ok(gettextCatalog.getString('Permanently Delete'))\n\t\t\t\t.cancel(gettextCatalog.getString('Cancel'));\n\n\t\t\t$mdDialog\n\t\t\t\t.show(confirm)\n\t\t\t\t\t.then(function () {\n\t\t\t\t\tsmbDeletedItemsDataStore\n\t\t\t\t\t\t.purge(item)\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Successfully deleted'));\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to purge item'));\n\t\t\t\t\t});\n\t\t\t}, angular.noop);\n\t\t}\n\n\t\tfunction purgeAll(event) {\n\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t.title(gettextCatalog.getString('Empty Trash'))\n\t\t\t\t.textContent(gettextCatalog.getString('Would you like to empty the trash? All documents in the trash will be permanently deleted.'))\n\t\t\t\t.ariaLabel(gettextCatalog.getString('Confirm emptying trash'))\n\t\t\t\t.targetEvent(event)\n\t\t\t\t.ok(gettextCatalog.getString('Empty Trash'))\n\t\t\t\t.cancel(gettextCatalog.getString('Cancel'));\n\n\t\t\t$mdDialog\n\t\t\t\t.show(confirm)\n\t\t\t\t.then(function () {\n\t\t\t\t\tsmbDeletedItemsDataStore\n\t\t\t\t\t\t.purgeAll()\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Trash was emptied'));\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to empty trash'));\n\t\t\t\t\t});\n\n\t\t\t}, angular.noop);\n\t\t}\n\n\t\tfunction restore(item) {\n\t\t\tsmbDeletedItemsDataStore\n\t\t\t\t.restore(item)\n\t\t\t\t.then(function () {\n\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Successfully restored'));\n\t\t\t\t})\n\t\t\t\t.catch(function () {\n\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Unable to restore document'));\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setLoading(isLoading) {\n\t\t\tisLoading = typeof(isLoading) === 'boolean' ? isLoading : false;\n\t\t\tpxProgressService.visible = isLoading;\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/trash/trash.js\n// module id = 99\n// module chunks = 1","(function () {\n\t'use strict';\n\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.directive:smbadminUser\n\t * @module smb-app\n\t * @restrict E\n\t * @description\n\t *\n\t * `sbadminInviteUsers` form to invite users to a deployment\n\t *\n\t * @usage\n\t *\n\t * \n\t *\n\t *\n\t * @element input\n\t * @param {number=} userId The id of the deployment to user to view details\n\t */\n\n\tangular.module('smb-app')\n\t\t.directive('smbadminUser', UserDirective)\n\t\t.controller('smbadminUserController', [\n\t\t\t'$state',\n\t\t\t'sbToastService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbUserDataStore',\n\t\t\t'pxProgressService',\n\t\t\t'gettextCatalog',\n\t\t\tUserController\n\t\t]);\n\n\tvar templateUrl = require('./user.template');\n\tfunction UserDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbadminUserController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: {\n\t\t\t\tuserId: '@'\n\t\t\t},\n\t\t\tscope: {}\n\t\t};\n\t}\n\tfunction UserController($state, sbToastService, smbToolbarService, smbUserDataStore, pxProgressService, gettextCatalog) {\n\t\tvar isLoading = true;\n\t\tvar vm = this;\n\n\t\tvar title = vm.userId ? gettextCatalog.getString('Edit User') : gettextCatalog.getString('Create User');\n\t\tsmbToolbarService.set(title, 'useradmin.home.users');\n\n\t\tvm.smbUserDataStore = smbUserDataStore;\n\t\tvm.updateUserLock = updateUserLock;\n\t\tvm.submitForm = submitForm;\n\t\tvm.toastVisible = false;\n\t\tvm.errorMessage = null;\n\n\t\tfunction updateUserLock() {\n\t\t\tif (isLoading || !vm.userId) { return; }\n\n\t\t\tif (smbUserDataStore.user.IsLocked) {\n\t\t\t\tsmbUserDataStore.lockUser(smbUserDataStore.user.UserId).then(function () {\n\t\t\t\t\tvar message = gettextCatalog.getString('{{userName}} is now locked', { userName: smbUserDataStore.user.UserName });\n\t\t\t\t\ttoast(message);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsmbUserDataStore.unlockUser(smbUserDataStore.user.UserId).then(function () {\n\t\t\t\tvar message = gettextCatalog.getString('{{userName}} is now unlocked', { userName: smbUserDataStore.user.UserName });\n\t\t\t\ttoast(message);\n\t\t\t});\n\t\t}\n\n\t\tfunction submitSuccess(response) {\n\t\t\t//REMOVE for ticket SBWEB-363\n\t\t\tif (response.Error) {\n\t\t\t\tsubmitFailure(response);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t//end of REMOVE\n\n\t\t\t//success\n\t\t\t//route\n\t\t\t$state.go('^');\n\n\t\t\tvar message = vm.userId !== null ? gettextCatalog.getString('User updated successfully') : gettextCatalog.getString('User created successfully');\n\t\t\ttoast(message);\n\t\t}\n\n\t\tfunction submitFailure(res) {\n\t\t\t// Depending on what type of request we make (create or update) we will get a different type of error object\n\t\t\t// This function handles both expected types of objects and displays messages for those.\n\t\t\t// Create requests (POST) will always get 200 and some API error object, update requests will always return an HTTP error response\n\t\t\t// so we can use the status to determine the error\n\t\t\tvar existsError = gettextCatalog.getString('A user with the email address {{address}} already exists', { address: smbUserDataStore.user.EmailAddress });\n\t\t\tif (res.status) {\n\t\t\t\t// assume HTTP error\n\t\t\t\tswitch (res.status) {\n\t\t\t\t\tcase 409:\n\t\t\t\t\t\tvm.errorMessage = existsError;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 500:\n\t\t\t\t\t\t// Most likely data is missing from request\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred, please make sure all required information has been provided');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 400:\n\t\t\t\t\t\t// Happens when the user does not exist\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred, the user you are trying to update could not be found');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred. If the problem continues please contact support');\n\t\t\t\t}\n\t\t\t} else if (res.Error) {\n\t\t\t\t// API error object\n\t\t\t\tif (res.UserExists) {\n\t\t\t\t\tvm.errorMessage = existsError;\n\t\t\t\t} else if (res.InvalidPassword) {\n\t\t\t\t\t// Invalid password message is translated\n\t\t\t\t\tvm.errorMessage = res.Error;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//failure\n\t\t\tpxProgressService.visible = false;\n\t\t}\n\n\t\tfunction submitForm() {\n\n\t\t\tif (!vm.userId) {\n\t\t\t\t//create user\n\t\t\t\tif (smbUserDataStore.user.Password !== vm.VerifyPassword) {\n\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Passwords do not match');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tpxProgressService.backdrop = true;\n\t\t\t\tshowLoader();\n\n\t\t\t\tvm.errorMessage = null;\n\t\t\t\tsmbUserDataStore.addUser(smbUserDataStore.user)\n\t\t\t\t\t.then(submitSuccess, submitFailure)\n\t\t\t\t\t.finally(hideLoader);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tpxProgressService.backdrop = true;\n\t\t\tshowLoader();\n\t\t\t//update user\n\t\t\tsmbUserDataStore.updateUser(smbUserDataStore.user).then(submitSuccess, submitFailure)\n\t\t\t\t.finally(hideLoader);\n\t\t}\n\n\t\tfunction toast(message) {\n\t\t\tvm.toastVisible = true;\n\t\t\tsbToastService.showSimple(message)\n\t\t\t\t.finally(function() {\n\t\t\t\t\tvm.toastVisible = false;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction showLoader() {\n\t\t\tpxProgressService.visible = true;\n\t\t}\n\t\tfunction hideLoader() {\n\t\t\tisLoading = false;\n\t\t\tpxProgressService.visible = false;\n\t\t}\n\t\t//initialize\n\t\t(function loadUser() {\n\t\t\tpxProgressService.visible = true;\n\n\t\t\tvm.smbUserDataStore.getUser(vm.userId)\n\t\t\t\t.finally(hideLoader);\n\t\t}());\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/user/user.js\n// module id = 100\n// module chunks = 1","(function () {\n\t'use strict';\n\tangular.module('smb-app')\n\t\t.directive('smbUserAdministration',\n\t\t[\n\t\t\tUserAdminDirective\n\t\t])\n\t\t.controller('UserAdminController',\n\t\t[\n\t\t\t'smbToolbarService',\n\t\t\t'gettextCatalog',\n\t\t\tUserAdminController\n\t\t]);\n\n\tvar templateUrl = require('./userAdmin.template');\n\tfunction UserAdminDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: UserAdminController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {}\n\t\t};\n\t}\n\tfunction UserAdminController(smbToolbarService, gettextCatalog) {\n\t\tsmbToolbarService.set(gettextCatalog.getString('User Administration'), 'content.home', false, false);\n\n\t\tvar vm = this;\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/userAdmin/userAdmin.js\n// module id = 101\n// module chunks = 1","(function () {\n\t'use strict';\n\n\t// user selector template loaded via webpack\n\tvar userSelectorTemplateUrl = require('../userSelectorDialog/userSelectorDialog.template');\n\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.directive:smbadminUserGroup\n\t * @module smb-app\n\t * @restrict E\n\t * @description\n\t *\n\t * `smbadminUserGroup` displays a User Group to add/edit\n\t *\n\t * @usage\n\t *\n\t * \n\t *\n\t * @element input\n\t * @param {number=} UserGroupId The id of the User Group to display\n\t */\n\n\tangular\n\t\t.module('smb-app')\n\t\t.directive('smbadminUserGroup',\n\t\t[\n\t\t\tUserGroupDirective\n\t\t])\n\t\t.controller('smbadminUserGroupController',\n\t\t[\n\t\t\t'$state',\n\t\t\t'$mdDialog',\n\t\t\t'sbToastService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbUserGroupDataStore',\n\t\t\t'smbUsersDataStore',\n\t\t\t'pxAuthService',\n\t\t\t'pxProgressService',\n\t\t\t'gettextCatalog',\n\t\t\tUserGroupController\n\t\t]);\n\n\tvar templateUrl = require('./userGroup.template');\n\tfunction UserGroupDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbadminUserGroupController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: {\n\t\t\t\tdeploymentId: '@',\n\t\t\t\tuserGroupId: '@'\n\t\t\t},\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction UserGroupController($state, $mdDialog, sbToastService, smbToolbarService, smbUserGroupDataStore, smbUsersDataStore, pxAuthService, pxProgressService, gettextCatalog) {\n\t\tvar vm = this;\n\n\t\tvar title = vm.userGroupId ? gettextCatalog.getString('Edit User Group') : gettextCatalog.getString('Create User Group');\n\t\tsmbToolbarService.set(title, 'useradmin.home.usergroups');\n\n\t\tvm.deploymentId = pxAuthService.deploymentId;\n\t\tvm.loading = false;\n\t\tvm.doneLoading = doneLoading;\n\t\tvm.userGroupDS = smbUserGroupDataStore;\n\t\tvm.usersDS = smbUsersDataStore;\n\t\tvm.removeUser = removeUser;\n\t\tvm.addUsers = addUsers;\n\t\tvm.save = save;\n\t\tvm.systemName = null;\n\t\tvm.userExists = userExists;\n\n\t\tvar currentUsers = null;\n\n\t\t(function initUserGroupController() {\n\t\t\tisLoading();\n\n\t\t\tvm.systemName = pxAuthService.systemName;\n\t\t\tvm.userGroupDS.getUserGroup(vm.userGroupId, vm.systemName)\n\t\t\t\t.then(function loadUserGroup(group) {\n\t\t\t\t\tcurrentUsers = group.Embedded.Users.map(function (usr) { return Object.assign({}, usr); });\n\t\t\t\t})\n\t\t\t\t.then(function loadUsers() {\n\t\t\t\t\tsmbUsersDataStore.getUsers();\n\t\t\t\t})\n\t\t\t\t.finally(doneLoading);\n\t\t})();\n\n\t\tfunction userExists(usr) {\n\t\t\tif (!currentUsers) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar exists = false;\n\t\t\tvar len = currentUsers.length;\n\n\t\t\tfor (var i = 0; i < len && !exists; ++i) {\n\t\t\t\tif (usr.UserId === currentUsers[i].UserId) {\n\t\t\t\t\texists = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn exists;\n\t\t}\n\n\t\tfunction addUsers(event) {\n\t\t\tvar groupUsers = smbUserGroupDataStore.userGroup.Embedded.Users;\n\t\t\tvar newUsers = smbUsersDataStore.users.filter(function (user) {\n\n\t\t\t\tfor (var x = 0; x < groupUsers.length; x++) {\n\t\t\t\t\tif (groupUsers[x].UserId === user.UserId) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\t$mdDialog.show({\n\t\t\t\tcontroller: 'smbUserSelectorController',\n\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\ttemplateUrl: userSelectorTemplateUrl,\n\t\t\t\ttargetEvent: event,\n\t\t\t\tclickOutsideToClose: true,\n\t\t\t\tlocals: {\n\t\t\t\t\tusers: newUsers,\n\t\t\t\t\tmultiSelect: true\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(function (selectedUsers) {\n\t\t\t\t//new users\n\t\t\t\tfor (var i = 0; i < selectedUsers.length; i++) {\n\t\t\t\t\tsmbUserGroupDataStore.userGroup.Embedded.Users.push(selectedUsers[i]);\n\t\t\t\t}\n\t\t\t}, function () {\n\t\t\t\t//cancel\n\t\t\t});\n\t\t}\n\n\t\tfunction removeUser(user) {\n\t\t\tvar userIndex = smbUserGroupDataStore.userGroup.Embedded.Users.indexOf(user);\n\t\t\tif (userIndex === -1) { return; }\n\t\t\tsmbUserGroupDataStore.userGroup.Embedded.Users.splice(userIndex, 1);\n\t\t}\n\n\t\tfunction save() {\n\t\t\tpxProgressService.backdrop = true;\n\t\t\tisLoading();\n\n\t\t\tsmbUserGroupDataStore.saveUserGroup(vm.systemName)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\tvm.userGroup = response;\n\t\t\t\t\t$state.go('^');\n\t\t\t\t\tvar message = vm.userGroupId ? gettextCatalog.getString('User group saved!') : gettextCatalog.getString('New user group created!');\n\t\t\t\t\tsbToastService.showSimple(message);\n\t\t\t\t})\n\t\t\t\t.catch(function (e) {\n\t\t\t\t\tvm.errorMessage = e.data.Message;\n\t\t\t\t})\n\t\t\t\t.finally(doneLoading);\n\t\t}\n\n\t\tfunction isLoading() {\n\t\t\tvm.loading = true;\n\t\t\tpxProgressService.visible = true;\n\t\t}\n\n\t\tfunction doneLoading() {\n\t\t\tvm.loading = false;\n\t\t\tpxProgressService.visible = false;\n\t\t}\n\n\t}\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/userGroup/userGroup.js\n// module id = 102\n// module chunks = 1","(function () {\n\t'use strict';\n\tangular.module('smb-app')\n\t\t.directive('smbadminUserGroups', [UserGroupsDirective])\n\t\t.controller('smbadminUserGroupsController',\n\t\t[\n\t\t\t'$state',\n\t\t\t'smbToolbarService',\n\t\t\t'smbUserGroupsDataStore',\n\t\t\t'pxProgressService',\n\t\t\t'gettextCatalog',\n\t\t\tUserGroupsController\n\t\t]);\n\n\tvar templateUrl = require('./userGroups.template');\n\tfunction UserGroupsDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: UserGroupsController,\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {}\n\t\t};\n\t}\n\tfunction UserGroupsController($state, smbToolbarService, smbUserGroupsDataStore, pxProgressService, gettextCatalog) {\n\t\tsmbToolbarService.set(gettextCatalog.getString('User Groups Configuration'), 'useradmin.home');\n\n\t\tvar vm = this;\n\t\tvm.loading = false;\n\t\tvm.userGroupDS = smbUserGroupsDataStore;\n\t\tvm.addUserGroup = addUserGroup;\n\t\tvm.editUserGroup = editUserGroup;\n\n\t\t(function loadUserGroups() {\n\t\t\tisLoading();\n\t\t\tsmbUserGroupsDataStore.getUserGroups().finally(doneLoading);\n\t\t})();\n\n\t\tfunction editUserGroup(group) {\n\t\t\t$state.go('useradmin.home.usergroups.details', { usergroupId: group.UserGroupId });\n\t\t}\n\n\t\tfunction addUserGroup() {\n\t\t\t$state.go('useradmin.home.usergroups.details');\n\t\t}\n\n\t\tfunction isLoading() {\n\t\t\tvm.loading = true;\n\t\t\tpxProgressService.visible = true;\n\t\t}\n\n\t\tfunction doneLoading() {\n\t\t\tvm.loading = false;\n\t\t\tpxProgressService.visible = false;\n\t\t}\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/userGroups/userGroups.js\n// module id = 103\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.controller('smbUserSelectorController', [\n\t\t\t'$mdDialog',\n\t\t\t'users',\n\t\t\t'multiSelect',\n\t\t\tUserSelectorController]);\n\n\tfunction UserSelectorController($mdDialog, users, multiSelect) {\n\t\tvar vm = this;\n\t\tvm.users = JSON.parse(JSON.stringify(users)); //clear object reference\n\t\tvm.fullItems = JSON.parse(JSON.stringify(users));\n\t\tvm.multiple = multiSelect ? true : false;\n\t\tvm.style = { width: (vm.fullItems.length * 170) + 'px' };\n\t\tvm.filterPhrase = '';\n\n\t\tvm.cancel = function () {\n\t\t\t$mdDialog.cancel();\n\t\t};\n\t\tvm.add = function () {\n\t\t\t$mdDialog.hide(vm.users.filter(function (user) { return user.selected; }));\n\t\t};\n\n\t\tvm.filter = function () {\n\t\t\tif (vm.filterPhrase === '') {\n\t\t\t\tvm.users = JSON.parse(JSON.stringify(vm.fullItems));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tvar filter = vm.filterPhrase.toLowerCase();\n\t\t\tvm.users = vm.fullItems.filter(function (item) {\n\t\t\t\tif (item.UserGroupId) {\n\t\t\t\t\treturn item.UserGroupName.toLowerCase().indexOf(filter) > -1;\n\t\t\t\t}\n\t\t\t\telse if (item.UserId) {\n\t\t\t\t\tvar nameEmail = item.UserName.toLowerCase() + ' ' + item.EmailAddress.toLowerCase();\n\t\t\t\t\treturn nameEmail.toLowerCase().indexOf(filter) > -1;\n\t\t\t\t}\n\t\t\t\telse if (item.StatusType) {\n\t\t\t\t\treturn item.Label.toLowerCase().indexOf(filter) > -1;\n\t\t\t\t}\n\t\t\t\telse if (item.IconUserFriendlyName) {\n\t\t\t\t\treturn item.IconUserFriendlyName.toLowerCase().indexOf(filter) > -1;\n\t\t\t\t}\n\t\t\t});\n\n\t\t};\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/userSelectorDialog/userSelectorDialog.js\n// module id = 104\n// module chunks = 1","(function () {\n\t'use strict';\n\n\t/**\n\t * @ngdoc directive\n\t * @name smb-app.directive:smbadminUsers\n\t * @module smb-app\n\t * @restrict E\n\t * @description\n\t *\n\t * `smbadminUsers` displays a deployments users\n\t *\n\t * @usage\n\t *\n\t * \n\t *\n\t * @element input\n\t * @param {number=} deploymentId The id of the deployment display api tokens for\n\t */\n\n\tangular.module('smb-app')\n\t\t.directive('smbadminUsers', [UsersDirective])\n\t\t.controller('smbadminUsersController',\n\t\t[\n\t\t\t'$state',\n\t\t\t'gettextCatalog',\n\t\t\t'pxProgressService',\n\t\t\t'smbToolbarService',\n\t\t\t'smbUsersDataStore',\n\t\t\tUsersController\n\t\t]);\n\n\tvar templateUrl = require('./users.template');\n\tfunction UsersDirective() {\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tcontroller: 'smbadminUsersController',\n\t\t\tcontrollerAs: 'vm',\n\t\t\ttemplateUrl: templateUrl,\n\t\t\tbindToController: true,\n\t\t\tscope: {}\n\t\t};\n\t}\n\n\tfunction UsersController($state, gettextCatalog, pxProgressService, smbToolbarService, smbUsersDataStore) {\n\t\tvar vm = this;\n\t\tsmbToolbarService.set(gettextCatalog.getString('Users Configuration'), 'useradmin.home');\n\n\t\tvm.smbUsersDataStore = smbUsersDataStore;\n\t\tvm.pxProgressService = pxProgressService;\n\t\tvm.editUser = editUser;\n\t\tvm.createUser = createUser;\n\n\t\tfunction editUser(user) {\n\t\t\t$state.go('useradmin.home.users.details', { userId: user.UserId });\n\t\t}\n\n\t\tfunction createUser() {\n\t\t\t$state.go('useradmin.home.users.details', { userId: '' });\n\t\t}\n\n\t\t//initialize\n\t\t(function loadUsers() {\n\t\t\tpxProgressService.visible = true;\n\t\t\tvm.smbUsersDataStore.getUsers().finally(function () { pxProgressService.visible = false; });\n\t\t}());\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/users/users.js\n// module id = 105\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeConfigDataStore', \n\t\t[\n\t\t\t'$q', \n\t\t\t'smbContentTypeConfigService',\n\t\t\t'smbStatusConfigService',\n\t\t\t'smbContentTypeTagTypeConfigDataStore',\n\t\t\tContentTypeConfigDataStore\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeConfigDataStore\n\t * \n\t * @description\n\t * Data store that manages state for the content type configuration section.\n\t */\n\tfunction ContentTypeConfigDataStore($q, smbContentTypeConfigService, smbStatusConfigService, smbContentTypeTagTypeConfigDataStore) {\n\n\t\tvar _contentType;\n\t\tvar _newContentType = {\n\t\t\tFolderName: '',\n\t\t\tIconName: ''\n\t\t};\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeConfigDataStore.getContentType\n\t\t\t * @methodOf smb-app.smbContentTypeConfigDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads the data store with a content type by id\n\t\t\t * \n\t\t\t * @param {String} groupId Id of the content type group the type belongs to\n\t\t\t * @param {String} id The content type id\n\t\t\t * \n\t\t\t * @returns {Deferred} Returns a promise that resolves to the content type being loaded\n\t\t\t */\n\t\t\tgetContentType: getContentType,\n\t\t\t\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeConfigDataStore.saveContentType\n\t\t\t * @methodOf smb-app.smbContentTypeConfigDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Saves changes to the current content type. Creates it if it is a new one and\n\t\t\t * updates it if it is an existing one.\n\t\t\t * \n\t\t\t * @param {String} groupId The id of the content type group it belongs to\n\t\t\t * @param {ContentType} contentType The content type object to save.\n\t\t\t * \n\t\t\t * @returns {Deferred} Returns a promise that resolves to the saved content type\n\t\t\t */\n\t\t\tsaveContentType: saveContentType,\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypeConfigDataStore.contentType\n\t\t\t * @propertyOf smb-app.smbContentTypeConfigDataStore\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Returns the current content type\n\t\t\t */\n\t\t\tget contentType() { return _contentType; }\n\t\t};\n\n\t\tfunction getContentType(groupId, id) {\n\t\t\tif (!id) {\n\t\t\t\t_contentType = angular.copy(_newContentType);\n\t\t\t\treturn $q.resolve(_contentType);\n\t\t\t}\n\n\t\t\treturn smbContentTypeConfigService.getContentType(groupId, id)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\t_contentType = response;\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction saveContentType(groupId, contentType) {\n\t\t\tvar folder = null;\n\t\t\tif (contentType.FolderId) {\n\t\t\t\treturn smbContentTypeConfigService.updateContentType(groupId, contentType)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\t_contentType = res;\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn smbContentTypeConfigService.addContentType(groupId, contentType)\n\t\t\t\t\t.then(function(res) {\n\t\t\t\t\t\t_contentType = res;\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function loadStatuses() {\n\t\t\t\t\t\treturn smbStatusConfigService.getStatuses(groupId);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function mapStatuses(statuses) {\n\t\t\t\t\t\treturn smbContentTypeTagTypeConfigDataStore.setTagTypes(_contentType.FolderId, statuses);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentConfigDataStores/contentTypeConfigDataStore.js\n// module id = 106\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeGroupConfigDataStore',\n\t\t[\n\t\t\t'$q',\n\t\t\t'smbUserGroupFilterService',\n\t\t\t'smbLibraryConfigService',\n\t\t\t'smbContentTypeGroupConfigService',\n\t\t\t'smbAclService',\n\t\t\t'smbContentTypeGroupTagTypeConfigService',\n\t\t\tContentTypeGroupDataStore\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeGroupConfigDataStore\n\t *\n\t * @description\n\t * A data store for managing local content type groups state for\n\t * the configuration section.\n\t */\n\tfunction ContentTypeGroupDataStore($q, smbUserGroupFilterService, smbLibraryConfigService, smbContentTypeGroupConfigService, smbAclService, smbContentTypeGroupTagTypeConfigService) {\n\t\tvar _contentTypeGroup = null;\n\t\tvar _contentTypeGroupDetails = null;\n\n\t\tvar _userGroupsWithViewRights = null;\n\t\tvar _userGroupsWithFullRights = null;\n\n\t\tvar _newContentTypeGroup = {\n\t\t\tContentTypeGroupName: '',\n\t\t\tIcon: ''\n\t\t};\n\n\t\t// Create the following Status related indexes when creating a Library and assign to itself\n\t\tvar _contentStatus = {\n\t\t\tTagTypeName: '&&_AirBase_Content_Status',\n\t\t\tDataType: 0\n\t\t};\n\n\t\tvar _todoStatus = {\n\t\t\tTagTypeName: '&&_AirBase_ToDo_Status',\n\t\t\tDataType: 0\n\t\t};\n\n\t\tvar _assignedUserId = {\n\t\t\tTagTypeName: '&&_AirBase_Assigned_UserId',\n\t\t\tDataType: 1\n\t\t};\n\n\t\tvar _assignedDate = {\n\t\t\tTagTypeName: '&&_AirBase_Assigned_Date',\n\t\t\tDataType: 2\n\t\t};\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypeGroupConfigDataStore#getContentTypeGroup\n\t\t\t * @propertyOf smb-app.smbContentTypeGroupConfigDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * The currently selected content type group.\n\t\t\t */\n\t\t\tgetContentTypeGroup: getContentTypeGroup,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupConfigDataStore#saveContentTypeGroup\n\t\t\t * @methodOf smb-app.smbContentTypeGroupConfigDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Add/Edit a content type group in the system.\n\t\t\t *\n\t\t\t * @param {Object} group An object that represents a new content type group\n\t\t\t * @param {String} group.id The id of the group being edited (only for edit)\n\t\t\t * @param {String} group.name The name of the new content type group\n\t\t\t * @param {String} group.icon The name of the selected icon for the new content type group\n\t\t\t */\n\t\t\tsaveContentTypeGroup: saveContentTypeGroup,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupConfigDataStore#assignUserGroupsToContentTypeGroup\n\t\t\t * @methodOf smb-app.smbContentTypeGroupConfigDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Assign User Groups to Content Type Group\n\t\t\t *\n\t\t\t * @param {Object} group An object that represents a new content type group\n\t\t\t * @param {String} group.id The id of the group being edited (only for edit)\n\t\t\t * @param {String} group.name The name of the new content type group\n\t\t\t * @param {String} group.icon The name of the selected icon for the new content type group\n\t\t\t */\n\t\t\tassignUserGroupsToContentTypeGroup: assignUserGroupsToContentTypeGroup,\n\n\t\t\tget contentTypeGroup() { return _contentTypeGroup; },\n\n\t\t\tget contentTypeGroupDetails() { return _contentTypeGroupDetails; },\n\n\t\t\tget userGroupsWithViewRights() { return smbUserGroupFilterService.getUserGroupsWithViewRights(); },\n\n\t\t\tget userGroupsWithFullRights() { return smbUserGroupFilterService.getUserGroupsWithFullRights(); },\n\n\t\t\tget userGroupsWithEditRights() { return smbUserGroupFilterService.getUserGroupsWithEditRights(); },\n\n\t\t\tsaveUserGroups: saveUserGroups\n\t\t};\n\n\t\tfunction getContentTypeGroup(contentTypeGroupId) {\n\t\t\tif (!contentTypeGroupId) {\n\t\t\t\t_contentTypeGroup = angular.copy(_newContentTypeGroup);\n\t\t\t\t_contentTypeGroupDetails = [];\n\n\t\t\t\tsmbUserGroupFilterService.filterUserGroups(_contentTypeGroupDetails);\n\n\t\t\t\treturn $q.resolve(_contentTypeGroup);\n\t\t\t}\n\t\t\treturn smbLibraryConfigService\n\t\t\t\t.getLibrary(contentTypeGroupId)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\t_contentTypeGroup = response;\n\t\t\t\t\treturn response;\n\t\t\t\t})\n\t\t\t\t.then(function (contentTypeGroup) {\n\t\t\t\t\treturn smbLibraryConfigService\n\t\t\t\t\t\t.getLibraryDetails(contentTypeGroup);\n\t\t\t\t})\n\t\t\t\t.then(function (details) {\n\t\t\t\t\t_contentTypeGroupDetails = details;\n\n\t\t\t\t\tsmbUserGroupFilterService.filterUserGroups(details);\n\n\t\t\t\t\treturn _contentTypeGroup;\n\t\t\t\t});\n\n\t\t}\n\n\t\tfunction saveContentTypeGroup(contentTypeGroup)\n\t\t{\n\t\t\tvar lib = null;\n\t\t\tif (contentTypeGroup.id) {\n\t\t\t\tlib = { LibraryId: contentTypeGroup.id, LibraryName: contentTypeGroup.name, IconId: contentTypeGroup.icon };\n\t\t\t\treturn smbContentTypeGroupConfigService.editContentTypeGroup(lib)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t_contentTypeGroup = response;\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlib = { LibraryName: contentTypeGroup.name, IconId: contentTypeGroup.icon };\n\t\t\t\treturn smbContentTypeGroupConfigService.createContentTypeGroup(lib)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t_contentTypeGroup = response;\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function createContentStatus() {\n\t\t\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.createTagType(_contentTypeGroup.LibraryId, _contentStatus);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function createToDoStatus() {\n\t\t\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.createTagType(_contentTypeGroup.LibraryId, _todoStatus);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function createAssignedUserId() {\n\t\t\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.createTagType(_contentTypeGroup.LibraryId, _assignedUserId);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function createAssignedDate() {\n\t\t\t\t\t\treturn smbContentTypeGroupTagTypeConfigService.createTagType(_contentTypeGroup.LibraryId, _assignedDate);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction saveUserGroups(viewUserGroups, fullUserGroups, editUserGroups) {\n\t\t\tviewUserGroups = viewUserGroups.map(function(g) {\n\t\t\t\treturn smbAclService.createViewAccessRights(_contentTypeGroup.LibraryId, g);\n\t\t\t});\n\n\t\t\tfullUserGroups = fullUserGroups.map(function(g) {\n\t\t\t\treturn smbAclService.createFullAccessRights(_contentTypeGroup.LibraryId, g);\n\t\t\t});\n\n\t\t\teditUserGroups = editUserGroups.map(function(g) {\n\t\t\t\treturn smbAclService.createEditAccessRights(_contentTypeGroup.LibraryId, g);\n\t\t\t});\n\n\t\t\treturn smbAclService.saveDocumentGroupAcls(_contentTypeGroup.LibraryId, viewUserGroups.concat(fullUserGroups).concat(editUserGroups));\n\t\t}\n\n\t\tfunction assignUserGroupsToContentTypeGroup(acls)\n\t\t{\n\t\t\treturn smbLibraryConfigService.assignUserGroupsToLibrary(acls, _contentTypeGroup.LibraryId);\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentConfigDataStores/contentTypeGroupConfigDataStore.js\n// module id = 107\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeGroupTagTypesConfigDataStore', [\n\t\t\t'$q',\n\t\t\t'smbContentTypeGroupTagTypeConfigService',\n\t\t\t'smbIndexTypesDataTypes',\n\t\t\tContentTypeGroupTagTypesConfigDataStore\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeGroupTagTypesConfigDataStore\n\t *\n\t * @description\n\t * State management of tag types for content type group configuration.\n\t */\n\tfunction ContentTypeGroupTagTypesConfigDataStore($q, smbContentTypeGroupTagTypeConfigService, smbIndexTypesDataTypes) {\n\n\t\tvar _tagTypes;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypeGroupTagTypesConfigDataStore#tagTypes\n\t\t\t * @propertyOf smb-app.smbContentTypeGroupTagTypesConfigDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Get a colleciton of @see TagType objects that have previously been loaded.\n\t\t\t *\n\t\t\t * @returns {TagType[]} A collection of @see TagType objects\n\t\t\t */\n\t\t\tget tagTypes() { return _tagTypes; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupTagTypesConfigDataStore#getTagTypes\n\t\t\t * @propertyOf smb-app.smbContentTypeGroupTagTypesConfigDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Load all tag types for a single content type group.\n\t\t\t *\n\t\t\t * @returns {Deferred} A promise that resolves to a collection\n\t\t\t * of @see TagType objects.\n\t\t\t */\n\t\t\tgetTagTypes: getTagTypes,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupTagTypesConfigDataStore#addTagType\n\t\t\t * @propertyOf smb-app.smbContentTypeGroupTagTypesConfigDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Create a new tag type and add it to the tagTypes property\n\t\t\t *\n\t\t\t * @returns {Deferred} A promise that resolves to the newly\n\t\t\t * created tag type.\n\t\t\t */\n\t\t\taddTagType: addTagType,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupTagTypesConfigDataStore#editTagType\n\t\t\t * @methodOf smb-app.smbContentTypeGroupTagTypesConfigDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Saves changes to an existing @see TagType object.\n\t\t\t *\n\t\t\t * @param {ObjectId} groupId Id of the document type group that owns the tag type.\n\t\t\t * @param {TagType} tagType The tag type object to save.\n\t\t\t *\n\t\t\t * @returns {Promise} A promise that resolves to the saved tag type.\n\t\t\t */\n\t\t\teditTagType: editTagType\n\t\t};\n\n\t\tfunction getTagTypes(groupId) {\n\t\t\tif (!(typeof groupId === 'number' || typeof groupId === 'string') || groupId === '') {\n\t\t\t\t_tagTypes = [];\n\t\t\t\treturn $q.resolve(_tagTypes);\n\t\t\t}\n\n\t\t\treturn smbContentTypeGroupTagTypeConfigService.getTagTypes(groupId)\n\t\t\t\t.then(function(tagTypes) {\n\t\t\t\t\t_tagTypes = tagTypes.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\treturn !(tagtype.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t})\n\t\t\t\t\t.map(function(tagType) {\n\t\t\t\t\t\tif (tagType.DataType === smbIndexTypesDataTypes.NUMERIC && tagType.Constraints && tagType.Constraints.DefaultValue) {\n\t\t\t\t\t\t\ttagType.Constraints.DefaultValue = tagType.Constraints.DefaultValue.indexOf('.') >= 0 ?\n\t\t\t\t\t\t\t\tparseFloat(tagType.Constraints.DefaultValue) : parseInt(tagType.Constraints.DefaultValue, 10);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn tagType;\n\t\t\t\t\t});\n\t\t\t\t\treturn tagTypes;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction editTagType(groupId, tagType) {\n\t\t\tif (typeof groupId !== 'number' && typeof groupId !== 'string') {\n\t\t\t\treturn $q.reject(new Error('Missing required group id'));\n\t\t\t} else if (!tagType) {\n\t\t\t\treturn $q.reject(new Error('Missing required tag type'));\n\t\t\t} else if (!tagType.TagTypeName) {\n\t\t\t\treturn $q.reject(new Error('The tag type must have a name'));\n\t\t\t} else if (!smbIndexTypesDataTypes[tagType.DataType]) {\n\t\t\t\treturn $q.reject(new Error('The tag type must have a data type'));\n\t\t\t} else if (!tagType.TagTypeId) {\n\t\t\t\treturn $q.reject(new Error('Missing required tag type id'));\n\t\t\t}\n\n\t\t\treturn smbContentTypeGroupTagTypeConfigService.editTagType(groupId, tagType)\n\t\t\t\t.then(function(data) {\n\t\t\t\t\tif (!_tagTypes) {\n\t\t\t\t\t\t_tagTypes = [];\n\t\t\t\t\t}\n\t\t\t\t\t_tagTypes = _tagTypes.map(function(tt) { return tt.TagTypeId === tagType.TagTypeId ? data : tt; });\n\t\t\t\t});\n\t\t}\n\n\t\tfunction addTagType(groupId, tagType) {\n\t\t\tif (typeof groupId !== 'number' && typeof groupId !== 'string') {\n\t\t\t\treturn $q.reject(new Error('Missing required group id'));\n\t\t\t} else if (!tagType) {\n\t\t\t\treturn $q.reject(new Error('Missing required tag type'));\n\t\t\t} else if (!tagType.TagTypeName) {\n\t\t\t\treturn $q.reject(new Error('The tag type must have a name'));\n\t\t\t} else if (!smbIndexTypesDataTypes[tagType.DataType]) {\n\t\t\t\treturn $q.reject(new Error('The tag type must have a data type'));\n\t\t\t}\n\n\t\t\treturn smbContentTypeGroupTagTypeConfigService.createTagType(groupId, tagType)\n\t\t\t\t.then(function(data) {\n\t\t\t\t\tif (!_tagTypes) {\n\t\t\t\t\t\t_tagTypes = [];\n\t\t\t\t\t}\n\t\t\t\t\t_tagTypes.push(data);\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentConfigDataStores/contentTypeGroupTagTypesConfigDataStore.js\n// module id = 108\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeGroupsConfigDataStore', ['$q', 'smbLibraryConfigService', ContentTypeGroupsConfigDataStore]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeGroupsConfigDataStore\n\t * \n\t * @description\n\t * A data store for managing local content type groups state for\n\t * the configuration section.\n\t */\n\tfunction ContentTypeGroupsConfigDataStore($q, smbLibraryConfigService) {\n\t\tvar _groups;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypeGroupsConfigDataStore#groups\n\t\t\t * @propertyOf smb-app.smbContentTypeGroupsConfigDataStore\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * An array of all content type groups in the system.\n\t\t\t */\n\t\t\tget groups() { return _groups; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupsConfigDataStore#loadGroups\n\t\t\t * @methodOf smb-app.smbContentTypeGroupsConfigDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads all content type groups from the API.\n\t\t\t * \n\t\t\t * @returns {Promise} A promise that resolves to an array of all content type groups in the system.\n\t\t\t */\n\t\t\tloadGroups: loadGroups,\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbContentTypeGroupsConfigDataStore#deleteGroup\n\t\t\t* @methodOf smb-app.smbContentTypeGroupsConfigDataStore\n\t\t\t* @kind function\n\t\t\t* \n\t\t\t* @description\n\t\t\t* Deletes a content type group.\n\t\t\t* \n\t\t\t* @param {Number} groupId The document type group id.\n\t\t\t* @param {Boolean} purge Permanently deleted the document type group if true.\n\t\t\t* @returns {Promise} A promise that resolves if the delete was successful.\n\t\t\t*/\n\t\t\tdeleteGroup: deleteGroup\n\t\t};\n\n\t\tfunction loadGroups() {\n\t\t\treturn smbLibraryConfigService.getLibraries()\n\t\t\t\t.then(function (libraries) {\n\t\t\t\t\t_groups = libraries.map(function mapLibraryDetails(lib) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: lib.LibraryId,\n\t\t\t\t\t\t\tname: lib.LibraryName,\n\t\t\t\t\t\t\ticon: lib.IconName,\n\t\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t\tself: lib.Links.Self,\n\t\t\t\t\t\t\t\ticon: lib.Links.IconUri\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\n\t\t\t\t\treturn _groups;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction deleteGroup(groupId) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.resolve(new Error('No type ID provided.'));\n\t\t\t} else {\n\t\t\t\treturn smbLibraryConfigService\n\t\t\t\t\t.deleteLibrary(groupId)\n\t\t\t\t\t.then(function(){\n\t\t\t\t\t\t_groups = _groups.filter(function(library){\n\t\t\t\t\t\t\treturn library.id !== groupId;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentConfigDataStores/contentTypeGroupsConfigDataStore.js\n// module id = 109\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeTagTypeConfigDataStore', [\n\t\t\t'$q',\n\t\t\t'smbContentTypeTagTypeConfigService',\n\t\t\t'smbIndexTypesDataTypes',\n\t\t\tContentTypeTagTypeConfigDataStore\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeTagTypeConfigDataStore\n\t *\n\t * @description\n\t * Manages state for index type configuration at the content type level\n\t */\n\tfunction ContentTypeTagTypeConfigDataStore($q, smbContentTypeTagTypeConfigService, smbIndexTypesDataTypes) {\n\n\t\tvar _tagTypes;\n\t\tvar _contentStatus;\n\t\tvar _todoStatus;\n\t\tvar _assignedUserId;\n\t\tvar _assignedDate;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypeTagTypeConfigDataStore#tagTypes\n\t\t\t * @methodOf smb-app.smbContentTypeTagTypeConfigDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Holds the current collection of tag types for a single content type.\n\t\t\t *\n\t\t\t * @returns {TagType[]} A collection of @see TagType objects\n\t\t\t */\n\t\t\tget tagTypes() { return _tagTypes; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeTagTypeConfigDataStore#getTagTypes,\n\t\t\t * @methodOf smb-app.smbContentTypeTagTypeConfigDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Gets the tag types for a content type and sets the tagTypes property\n\t\t\t *\n\t\t\t * @param {String|Number} id The content type id\n\t\t\t *\n\t\t\t * @returns {Promise} A promise that resolves to a collection of\n\t\t\t * @see TagType objects\n\t\t\t */\n\t\t\tgetTagTypes: getTagTypes,\n\n\t\t\tget contentStatus() { return _contentStatus; },\n\n\t\t\tget todoStatus() { return _todoStatus; },\n\n\t\t\tget assignedUserId() { return _assignedUserId; },\n\n\t\t\tget assignedDate() { return _assignedDate; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeTagTypeConfigDataStore#setTagTypes\n\t\t\t * @methodOf smb-app.smbContentTypeTagTypeConfigDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Sets the tag type associations for a content type. This function\n\t\t\t * will completely replace the current collection of tag types for a\n\t\t\t * content type.\n\t\t\t *\n\t\t\t * @param {String|Number} id The content type id\n\t\t\t * @param {TagType[]} tagTypes The tag types to associate the content type with\n\t\t\t *\n\t\t\t * @returns {Promise} A promise that resolves to the tag types given as an argument.\n\t\t\t */\n\t\t\tsetTagTypes: setTagTypes\n\t\t};\n\n\t\tfunction getTagTypes(id) {\n\t\t\tif (!(typeof id === 'number' || typeof id === 'string') || id === '') {\n\t\t\t\t_tagTypes = [];\n\t\t\t\treturn $q.resolve(_tagTypes);\n\t\t\t}\n\n\t\t\treturn smbContentTypeTagTypeConfigService.getTagTypes(id)\n\t\t\t\t.then(function(tt) {\n\t\t\t\t\t_tagTypes = tt.map(function(tagType) {\n\t\t\t\t\t\tif (tagType.DataType === smbIndexTypesDataTypes.NUMERIC && tagType.Constraints && tagType.Constraints.DefaultValue) {\n\t\t\t\t\t\t\ttagType.Constraints.DefaultValue = tagType.Constraints.DefaultValue.indexOf('.') >= 0 ?\n\t\t\t\t\t\t\t\tparseFloat(tagType.Constraints.DefaultValue) : parseInt(tagType.Constraints.DefaultValue, 10);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn tagType;\n\t\t\t\t\t});\n\n\t\t\t\t\t_contentStatus = _tagTypes.filter(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t\t});\n\t\t\t\t\t_todoStatus = _tagTypes.filter(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t\t});\n\t\t\t\t\t_assignedUserId = _tagTypes.filter(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t\t});\n\t\t\t\t\t_assignedDate = _tagTypes.filter(function(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t\t});\n\t\t\t\t\treturn _tagTypes;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setTagTypes(id, tagTypes) {\n\t\t\tif (!(typeof id === 'number' || typeof id === 'string')) {\n\t\t\t\treturn $q.reject(new Error('Missing required document type id'));\n\t\t\t} else if (!tagTypes) {\n\t\t\t\treturn $q.reject(new Error('Missing required tag types'));\n\t\t\t}\n\n\t\t\tvar associations = tagTypes.map(function(tt) { return {TagTypeId: tt.TagTypeId, Constraints: tt.Constraints}; });\n\t\t\treturn smbContentTypeTagTypeConfigService.setTagTypes(id, associations)\n\t\t\t\t.then(function() {\n\t\t\t\t\t_tagTypes = tagTypes;\n\t\t\t\t\treturn _tagTypes;\n\t\t\t\t});\n\t\t}\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentConfigDataStores/contentTypeTagTypeConfigDataStore.js\n// module id = 110\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbStatusConfigDataStore', [\n\t\t\t'$q', \n\t\t\t'smbStatusConfigService', \n\t\t\tStatusConfigDataStore\n\t\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbStatusConfigDataStore\n\t * \n\t * @description\n\t * Data store that manages state for the content type configuration section.\n\t */\n\tfunction StatusConfigDataStore($q, smbStatusConfigService) {\n\n\t\tvar _contentStatus;\n\t\tvar _todoStatus;\n\t\tvar _assignedUserId;\n\t\tvar _assignedDate;\n\n\t\tvar _contentStatusValues = [];\n\t\tvar _todoStatusValues = [];\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbStatusConfigDataStore.getContentStatuses\n\t\t\t * @methodOf smb-app.smbStatusConfigDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads the data store with a content type by id\n\t\t\t * \n\t\t\t * @param {String} groupId Id of the content type group the type belongs to\n\t\t\t * @param {String} id The content type id\n\t\t\t * \n\t\t\t * @returns {Deferred} Returns a promise that resolves to the content type being loaded\n\t\t\t */\n\t\t\tget contentStatus() { return _contentStatus; },\n\n\t\t\tget todoStatus() { return _todoStatus; },\n\n\t\t\tget contentStatusValues() { return _contentStatusValues; },\n\n\t\t\tget todoStatusValues() { return _todoStatusValues; },\n\n\t\t\tget assignedUserId() { return _assignedUserId; },\n\n\t\t\tget assignedDate() { return _assignedDate; },\n\n\t\t\tloadStatuses: loadStatuses,\n\n\t\t\t// loadStatusValues: loadStatusValues,\n\t\t\t\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbStatusConfigDataStore.saveContentStatuses\n\t\t\t * @methodOf smb-app.smbStatusConfigDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Saves changes to the current content type. Creates it if it is a new one and\n\t\t\t * updates it if it is an existing one.\n\t\t\t * \n\t\t\t * @param {String} groupId The id of the content type group it belongs to\n\t\t\t * @param {ContentType} contentType The content type object to save.\n\t\t\t * \n\t\t\t * @returns {Deferred} Returns a promise that resolves to the saved content type\n\t\t\t */\n\n\t\t\tsaveStatuses: saveStatuses\n\t\t};\n\n\t\tfunction loadStatuses(groupId) {\n\t\t\treturn smbStatusConfigService.getStatuses(groupId)\n\t\t\t.then(function mapStatuses(statuses) {\n\t\t\t\t_contentStatus = statuses.filter(function filterCStatuses(s) {\n\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t});\n\t\t\t\t_todoStatus = statuses.filter(function filterTStatuses(s) {\n\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t});\n\t\t\t\t_assignedUserId = statuses.filter(function filterCStatuses(s) {\n\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t});\n\t\t\t\t_assignedDate = statuses.filter(function filterTStatuses(s) {\n\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t});\n\t\t\t\treturn statuses;\n\t\t\t});\n\t\t}\n\n\t\t// function loadStatusValues(folderId, contentStatus, todoStatus) {\n\t\t// \treturn smbStatusConfigService.getStatusValues(folderId, contentStatus.TagTypeId)\n\t\t// \t\t\t.then(function setContentStatusValues(response) {\n\t\t// \t\t\t\t_contentStatusValues = response.data;\n\t\t// \t\t\t\treturn response.data;\n\t\t// \t\t\t})\n\t\t// \t\t\t.then(function loadToDoStatusValues() {\n\t\t// \t\t\t\treturn smbStatusConfigService.getStatusValues(folderId, todoStatus.TagTypeId);\n\t\t// \t\t\t})\n\t\t// \t\t\t.then(function setToDoStatusValues(response) {\n\t\t// \t\t\t\t_todoStatusValues = response.data;\n\t\t// \t\t\t\treturn response.data;\n\t\t// \t\t\t});\n\t\t// }\n\n\t\tfunction saveStatuses(folderId, contentStatus, todoStatus) {\n\t\t\treturn smbStatusConfigService.setStatuses(folderId, contentStatus.TagTypeId, contentStatus.Constraints)\n\t\t\t\t.then(function saveToDoStatuses() {\n\t\t\t\t\treturn smbStatusConfigService.setStatuses(folderId, todoStatus.TagTypeId, todoStatus.Constraints);\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentConfigDataStores/statusConfigDataStore.js\n// module id = 111\n// module chunks = 1","(function () {\n\t'use strict';\n\t\n\tangular.module('smb-app')\n\t\t.factory('smbContentSearchDataStore', ['$q', 'smbContentSearchService', ContentSearchDataStore]);\n\t\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypesDataStore\n\t * \n\t * @description\n\t * Manages the state for the content types configuration.\n\t */\n\tfunction ContentSearchDataStore($q, smbContentSearchService) {\n\t\tvar _groupId;\n\t\tvar _typeId;\n\t\tvar _tagValues = [];\n\n\t\tvar _documents = null;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypesDataStore.contentTypes\n\t\t\t * @propertyOf smb-app.smbContentTypesDataStore\n\t\t\t * \n\t\t\t * @description\n\t\t\t * All content types that belong to the current content type group.\n\t\t\t */\n\t\t\tget documents() {\n\t\t\t\treturn _documents;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypesDataStore.getDocuments\n\t\t\t * @methodOf smb-app.smbContentTypesDataStore\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads and returns all content types for a specific content type group by group id.\n\t\t\t * \n\t\t\t * @param {Number} groupId The content type group id\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that resolves to a collection of content types.\n\t\t\t */\n\t\t\tgetDocuments: getDocuments,\n\n\t\t\tgetContentTypeGroupSearchResults: getContentTypeGroupSearchResults,\n\t\t\t\n\t\t\tsetTagValues: setTagValues\n\t\t};\t\n\n\t\tfunction getDocuments(groupId, typeId) {\n\t\t\treturn smbContentSearchService.getDocuments(groupId, typeId, _tagValues)\n\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t_documents = types.map(function(doc) {\n\t\t\t\t\t\t\tvar d;\n\t\t\t\t\t\t\td = doc;\n\t\t\t\t\t\t\tvar index = doc.DocumentAutoName ? doc.DocumentAutoName.indexOf('&&_AirBase_') : -1;\n\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\td.DocumentAutoName = doc.DocumentAutoName.substring(0, index > 0 ? index - 5 : 0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar contentStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_Content_Status/));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvar todoStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_ToDo_Status/));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (contentStatus != null && contentStatus.length > 0 && contentStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\t\td.Status = contentStatus[0].Tags[0];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (todoStatus != null && todoStatus.length > 0 && todoStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\t\td.Status = todoStatus[0].Tags[0];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\td.Status = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn types;\n\t\t\t\t\t});\n\t\t}\n\n\t\tfunction getContentTypeGroupSearchResults(groupId) {\n\t\t\treturn smbContentSearchService.getContentTypeGroupSearchResults(groupId, _tagValues)\n\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t_documents = types.map(function(doc) {\n\t\t\t\t\t\t\tvar d;\n\t\t\t\t\t\t\td = doc;\n\t\t\t\t\t\t\tvar index = doc.DocumentAutoName ? doc.DocumentAutoName.indexOf('&&_AirBase_') : -1;\n\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\td.DocumentAutoName = doc.DocumentAutoName.substring(0, index > 0 ? index - 5 : 0);\n\t\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar contentStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_Content_Status/));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvar todoStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_ToDo_Status/));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (contentStatus != null && contentStatus.length > 0 && contentStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\t\td.Status = contentStatus[0].Tags[0];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (todoStatus != null && todoStatus.length > 0 && todoStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\t\td.Status = todoStatus[0].Tags[0];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\td.Status = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn types;\n\t\t\t\t\t});\n\t\t}\n\n\t\tfunction setTagValues(tagValues) {\n\t\t\t_tagValues = tagValues\n\t\t\t.filter(function filterTags(t) {\n\t\t\t\t\tif (t.indexValue) {\n\t\t\t\t\t\treturn t;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.map(function mapSearchTags(tag) {\n\t\t\t\tvar mappedTag = {};\n\t\t\t\tmappedTag.TagTypeId = tag.TagTypeId;\n\t\t\t\tif (tag.DataTypeName === 'Date')\n\t\t\t\t{\n\t\t\t\t\tvar date = tag.indexValue;\n\n\t\t\t\t\tvar mm = date.getMonth() + 1;\n\t\t\t\t\tif (mm < 10)\n\t\t\t\t\t{\n\t\t\t\t\t\tmm = '0' + mm;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvar dd = date.getDate();\n\t\t\t\t\tif (dd < 10)\n\t\t\t\t\t{\n\t\t\t\t\t\tdd = '0' + dd;\n\t\t\t\t\t}\n\n\t\t\t\t\tmappedTag.Value = [mm, dd, date.getFullYear()].join('');\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tmappedTag.Value = tag.indexValue;\n\t\t\t\t}\n\t\t\t\treturn mappedTag;\n\t\t\t});\n\t\t}\n\t\t\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentSearchDataStore.js\n// module id = 112\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeGroupsDataStore', ['$q', 'smbContentTypeGroupsService', contentTypeGroupsDataStore]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeGroupsDataStore\n\t * \n\t * @description\n\t * A data store for managing local content type groups state for\n\t * the configuration section.\n\t */\n\tfunction contentTypeGroupsDataStore($q, smbContentTypeGroupsService) {\n\t\tvar _allGroups;\n\t\tvar _fullAccessGroups;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypeGroupsDataStore#groups\n\t\t\t * @propertyOf smb-app.smbContentTypeGroupsDataStore\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * An array of all content type groups in the system.\n\t\t\t */\n\t\t\tget allGroups() { return _allGroups; },\n\n\t\t\tget fullAccessGroups() { return _fullAccessGroups; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupsDataStore#loadGroups\n\t\t\t * @methodOf smb-app.smbContentTypeGroupsDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads all content type groups from the API.\n\t\t\t * \n\t\t\t * @returns {Promise} A promise that resolves to an array of all content type groups in the system.\n\t\t\t */\n\t\t\tloadAllGroups: loadAllGroups,\n\n\t\t\tloadFullAccessGroups: loadFullAccessGroups\n\t\t};\n\n\t\tfunction loadAllGroups() {\n\t\t\treturn smbContentTypeGroupsService.getAllContentTypeGroups()\n\t\t\t\t.then(function (groups) {\n\t\t\t\t\treturn groups.map(function mapLibraryDetails(lib) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: lib.LibraryId,\n\t\t\t\t\t\t\tname: lib.LibraryName,\n\t\t\t\t\t\t\ticon: lib.IconName,\n\t\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t\tself: lib.Links.Self,\n\t\t\t\t\t\t\t\ticon: lib.Links.IconUri\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.then(function (groups) {\n\t\t\t\t\t_allGroups = groups;\n\t\t\t\t\treturn groups;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction loadFullAccessGroups() {\n\t\t\treturn smbContentTypeGroupsService.getFullAccessContentTypeGroups()\n\t\t\t\t.then(function (groups) {\n\t\t\t\t\treturn groups.map(function mapLibraryDetails(lib) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: lib.LibraryId,\n\t\t\t\t\t\t\tname: lib.LibraryName,\n\t\t\t\t\t\t\ticon: lib.IconName,\n\t\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t\tself: lib.Links.Self,\n\t\t\t\t\t\t\t\ticon: lib.Links.IconUri\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.then(function (groups) {\n\t\t\t\t\t_fullAccessGroups = groups;\n\t\t\t\t\treturn groups;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentTypeGroupsDataStore.js\n// module id = 113\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeGroupsSearchDataStore', ['$q', 'smbContentTypeGroupsSearchService', contentTypeGroupsSearchDataStore]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeGroupsDataStore\n\t * \n\t * @description\n\t * A data store for managing local content type groups state for\n\t * the configuration section.\n\t */\n\tfunction contentTypeGroupsSearchDataStore($q, smbContentTypeGroupsSearchService) {\n\t\tvar _allGroups;\n\t\tvar _fullAccessGroups;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypeGroupsDataStore#groups\n\t\t\t * @propertyOf smb-app.smbContentTypeGroupsDataStore\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * An array of all content type groups in the system.\n\t\t\t */\n\t\t\tget allGroups() { return _allGroups; },\n\n\t\t\tget fullAccessGroups() { return _fullAccessGroups; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupsDataStore#loadGroups\n\t\t\t * @methodOf smb-app.smbContentTypeGroupsDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads all content type groups from the API.\n\t\t\t * \n\t\t\t * @returns {Promise} A promise that resolves to an array of all content type groups in the system.\n\t\t\t */\n\t\t\tloadAllGroups: loadAllGroups,\n\n\t\t\tloadFullAccessGroups: loadFullAccessGroups\n\t\t};\n\n\t\tfunction loadAllGroups() {\n\t\t\treturn smbContentTypeGroupsSearchService.getAllContentTypeGroups()\n\t\t\t\t.then(function (groups) {\n\t\t\t\t\treturn groups.map(function mapLibraryDetails(lib) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: lib.LibraryId,\n\t\t\t\t\t\t\tname: lib.LibraryName,\n\t\t\t\t\t\t\ticon: lib.IconName,\n\t\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t\tself: lib.Links.Self,\n\t\t\t\t\t\t\t\ticon: lib.Links.IconUri\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.then(function (groups) {\n\t\t\t\t\t_allGroups = groups;\n\t\t\t\t\treturn groups;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction loadFullAccessGroups() {\n\t\t\treturn smbContentTypeGroupsSearchService.getFullAccessContentTypeGroups()\n\t\t\t\t.then(function (groups) {\n\t\t\t\t\treturn groups.map(function mapLibraryDetails(lib) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: lib.LibraryId,\n\t\t\t\t\t\t\tname: lib.LibraryName,\n\t\t\t\t\t\t\ticon: lib.IconName,\n\t\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t\tself: lib.Links.Self,\n\t\t\t\t\t\t\t\ticon: lib.Links.IconUri\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.then(function (groups) {\n\t\t\t\t\t_fullAccessGroups = groups;\n\t\t\t\t\treturn groups;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentTypeGroupsSearchDataStore.js\n// module id = 114\n// module chunks = 1","(function () {\n\t'use strict';\n\t\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypesDataStore', ['$q', 'smbContentTypesService', ContentTypesDataStore]);\n\t\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypesDataStore\n\t * \n\t * @description\n\t * Manages the state for the content types configuration.\n\t */\n\tfunction ContentTypesDataStore($q, smbContentTypesService) {\n\t\tvar _groupId;\n\t\tvar _contentTypes;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypesDataStore.contentTypes\n\t\t\t * @propertyOf smb-app.smbContentTypesDataStore\n\t\t\t * \n\t\t\t * @description\n\t\t\t * All content types that belong to the current content type group.\n\t\t\t */\n\t\t\tget contentTypes() {\n\t\t\t\treturn _contentTypes;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypesDataStore.getContentTypes\n\t\t\t * @methodOf smb-app.smbContentTypesDataStore\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads and returns all content types for a specific content type group by group id.\n\t\t\t * \n\t\t\t * @param {Number} groupId The content type group id\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that resolves to a collection of content types.\n\t\t\t */\n\t\t\tgetContentTypes: getContentTypes,\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypesDataStore.deleteContentType\n\t\t\t * @methodOf smb-app.smbContentTypesDataStore\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Deletes a document type with the specified ID.\n\t\t\t * \n\t\t\t * @param {Number} typeId The document type id\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that will resolve if the deletion was successful.\n\t\t\t */\n\t\t\tdeleteContentType: deleteContentType\n\t\t};\t\n\n\t\tfunction getContentTypes(groupId) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.resolve(_contentTypes);\n\t\t\t} else {\n\t\t\t\treturn smbContentTypesService.getContentTypes(groupId)\n\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t_contentTypes = types;\n\t\t\t\t\t\t_groupId = groupId;\n\t\t\t\t\t\treturn types;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction deleteContentType(typeId, purge){\n\t\t\tif (!typeId) {\n\t\t\t\treturn $q.resolve(new Error('No type ID provided.'));\n\t\t\t} else {\n\t\t\t\treturn smbContentTypesService\n\t\t\t\t\t.deleteContentType(typeId, purge)\n\t\t\t\t\t.then(function(){\n\t\t\t\t\t\t_contentTypes = _contentTypes.filter(function(contentType){\n\t\t\t\t\t\t\treturn contentType.FolderId !== typeId;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentTypesDataStore.js\n// module id = 115\n// module chunks = 1","(function () {\n\t'use strict';\n\t\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypesSearchDataStore', ['$q', 'smbContentTypesSearchService', ContentTypesSearchDataStore]);\n\t\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypesDataStore\n\t * \n\t * @description\n\t * Manages the state for the content types configuration.\n\t */\n\tfunction ContentTypesSearchDataStore($q, smbContentTypesSearchService) {\n\t\tvar _groupId;\n\t\tvar _contentTypes;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypesDataStore.contentTypes\n\t\t\t * @propertyOf smb-app.smbContentTypesDataStore\n\t\t\t * \n\t\t\t * @description\n\t\t\t * All content types that belong to the current content type group.\n\t\t\t */\n\t\t\tget contentTypes() {\n\t\t\t\treturn _contentTypes;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypesDataStore.getContentTypes\n\t\t\t * @methodOf smb-app.smbContentTypesDataStore\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads and returns all content types for a specific content type group by group id.\n\t\t\t * \n\t\t\t * @param {Number} groupId The content type group id\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that resolves to a collection of content types.\n\t\t\t */\n\t\t\tgetContentTypes: getContentTypes\n\t\t};\t\n\n\t\tfunction getContentTypes(groupId) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.resolve(_contentTypes);\n\t\t\t} else {\n\t\t\t\treturn smbContentTypesSearchService.getContentTypes(groupId)\n\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t_contentTypes = types;\n\t\t\t\t\t\t_groupId = groupId;\n\t\t\t\t\t\treturn types;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentTypesSearchDataStore.js\n// module id = 116\n// module chunks = 1","(function () {\n\t'use strict';\n\t\n\tangular.module('smb-app')\n\t\t.factory('smbContentUploadDataStore', ['$http', '$q', 'gettextCatalog', 'sbToastService', 'smbContentUploadService', ContentUploadDataStore]);\n\t\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentUploadDataStore\n\t * \n\t * @description\n\t * Manages the state for the content types configuration.\n\t */\n\tfunction ContentUploadDataStore($http, $q, gettextCatalog, sbToastService, smbContentUploadService) {\n\t\tvar _uploadedDocument = null;\n\t\tvar _uploadHandlers = [];\n\n\t\treturn {\n\n\t\t\tget uploadedDocument() {\n\t\t\t\treturn _uploadedDocument;\n\t\t\t},\n\t\t\t\n\t\t\tuploadDocument: uploadDocument,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentUploadDataStore#onUploadSuccess\n\t\t\t * @methodOf smb-app.smbContentUploadDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Add a function that gets called when a file is successfully uploaded.\n\t\t\t * \n\t\t\t * @param {Function} handler The function to be called when a file is uploaded\n\t\t\t * @returns {Function} A function that can be called to remove your handler.\n\t\t\t * \n\t\t\t * @example\n\t\t\t * function SomeController($scope, smbContentUploadDataStore) {\n\t\t\t * var removeHandler = smbContentUploadDataStore.onUploadSuccess(function() {\n\t\t\t * console.log('uploaded a new file');\n\t\t\t * });\n\t\t\t * \t\t $scope.$on('$destroy', function() {\n\t\t\t * removeHandler();\n\t\t\t * });\n\t\t\t * }\n\t\t\t */\n\t\t\tonUploadSuccess: onUploadSuccess,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentUploadDataStore#uploadRevision\n\t\t\t * @methodOf smb-app.smbContentUploadDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Upload a file as a new revision for an existing document\n\t\t\t * \n\t\t\t * @param {Number} documentId Id of the document that gets the new revision\n\t\t\t * @param {Object} file Browser file object for the file to upload.\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise\n\t\t\t */\n\t\t\tuploadRevision: uploadRevision,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentUploadDataStore#promoteRevision\n\t\t\t * @methodOf smb-app.smbContentUploadDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Promote a document revision to the current revsion\n\t\t\t * This will be treated as an uploaded file, therefore the upload handlers will be executed on success.\n\t\t\t * \n\t\t\t * @param {Object} revision The revision object to promote\n\t\t\t * @returns {Deferred} A promise that resolves to the document that was saved as the current revision.\n\t\t\t */\n\t\t\tpromoteRevision: promoteRevision\n\t\t};\n\n\t\tfunction onUploadSuccess(handler) {\n\t\t\tif (typeof handler !== 'function') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_uploadHandlers.push(handler);\n\t\t\treturn function() {\n\t\t\t\tvar i = _uploadHandlers.indexOf(handler);\n\t\t\t\t_uploadHandlers.splice(i, 1);\n\t\t\t};\n\t\t}\n\n\t\tfunction uploadRevision(documentId, file) {\n\t\t\treturn smbContentUploadService.uploadRevision(documentId, file)\n\t\t\t\t.then(function(res) {\n\t\t\t\t\t_uploadedDocument = res;\n\t\t\t\t\t_uploadHandlers.forEach(function(handler) { handler(_uploadedDocument); });\n\t\t\t\t\treturn _uploadedDocument;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction uploadDocument(folderId, file) {\n\t\t\treturn smbContentUploadService.uploadFile(folderId, file)\n\t\t\t.then(function(response) {\n\t\t\t\t_uploadedDocument = response;\n\t\t\t\t_uploadHandlers.forEach(function(handler) { handler(_uploadedDocument); });\n\t\t\t\treturn _uploadedDocument;\n\t\t\t})\n\t\t\t.catch(function(err) {\n\t\t\t\tsbToastService.showSimple(err.data.Message);\n\t\t\t});\n\t\t}\n\n\t\tfunction promoteRevision(document) {\n\t\t\treturn $http.post(document.Links.PromoteUri)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\t_uploadedDocument = response;\n\t\t\t\t\t_uploadHandlers.forEach(function(handler) { handler(_uploadedDocument); });\n\t\t\t\t\treturn _uploadedDocument;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/contentUploadDataStore.js\n// module id = 117\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbDeletedItemsDataStore', [\n\t\t\t'$q',\n\t\t\t'smbDeletedItemsService',\n\t\t\tDeletedItemsDataStore\n\t\t]);\n\n\tfunction DeletedItemsDataStore($q, smbDeletedItemsService){\n\t\tvar _adminTrash;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentDataStore#load\n\t\t\t * @methodOf smb-app.smbDeletedItemsDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Loads the trash for the AirBase deployment.\n\t\t\t *\n\t\t\t * @returns {Deferred} Returns a promise that resolves to an object containing admin trash.\n\t\t\t */\n\t\t\tload: load,\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentDataStore#purge\n\t\t\t * @methodOf smb-app.smbDeletedItemsDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Permanently deleted the provided item.\n\t\t\t *\n\t\t\t * @param {object} purgeddItem The trash item to permanently delete.\n\t\t\t * @returns {Deferred} Returns a promise that resolves if the deletio nwas successful\n\t\t\t */\n\t\t\tpurge: purge,\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentDataStore#purgeAll\n\t\t\t * @methodOf smb-app.smbDeletedItemsDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Permanently deleteds all admin trash items in the datastore.\n\t\t\t *\n\t\t\t * @returns {Deferred} Returns a promise that resolves if all individual purges succeeded.\n\t\t\t */\n\t\t\tpurgeAll: purgeAll,\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentDataStore#restore\n\t\t\t * @methodOf smb-app.smbDeletedItemsDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Restores the provided item from the trash.\n\t\t\t *\n\t\t\t * @param {object} restoredItem The trash item to restore.\n\t\t\t * @returns {Deferred} Returns a promise that resolves to a server representation of the restored item.\n\t\t\t */\n\t\t\trestore: restore,\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentDataStore#adminTrash\n\t\t\t * @propertyOf smb-app.smbDocumentDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Gets the administratively viewable trash for the deployment.\n\t\t\t *\n\t\t\t * @returns {array} Returns a list of deleted admins from the deployment.\n\t\t\t */\n\t\t\tget adminTrash() { return _adminTrash; }\n\t\t};\n\n\t\tfunction load() {\n\t\t\treturn smbDeletedItemsService\n\t\t\t\t.getAdminTrash()\n\t\t\t\t.then(function(trash){\n\t\t\t\t\t_adminTrash = trash.map(function(t){\n\t\t\t\t\t\treturn new DeletedItem(t);\n\t\t\t\t\t});\n\n\t\t\t\t\treturn _adminTrash;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction purge(purgedItem) {\n\t\t\tvar embedded = purgedItem.__data.Embedded;\n\t\t\treturn smbDeletedItemsService\n\t\t\t\t.purge(embedded.Document || embedded.Folder)\n\t\t\t\t.then(function(item){\n\t\t\t\t\t_adminTrash = _adminTrash.filter(function(t){\n\t\t\t\t\t\treturn t.id !== purgedItem.id;\n\t\t\t\t\t});\n\n\t\t\t\t\treturn purgedItem;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction restore(restoredItem) {\n\t\t\treturn smbDeletedItemsService\n\t\t\t\t.restore(restoredItem.__data)\n\t\t\t\t.then(function(item){\n\t\t\t\t\t_adminTrash = _adminTrash.filter(function(t){\n\t\t\t\t\t\treturn t.id !== restoredItem.id;\n\t\t\t\t\t});\n\n\t\t\t\t\treturn item;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction purgeAll() {\n\t\t\tvar purgePromises = _adminTrash.map(function(t){\n\t\t\t\tvar embedded = t.__data.Embedded;\n\t\t\t\treturn smbDeletedItemsService.purge(embedded.Document || embedded.Folder);\n\t\t\t});\n\n\t\t\treturn $q.all(purgePromises)\n\t\t\t\t.then(function(){\n\t\t\t\t\t_adminTrash = [];\n\t\t\t\t});\n\t\t}\n\t}\n\n\tfunction DeletedItem(trash) {\n\t\tvar isDoc = !!trash.Embedded.Document;\n\t\tthis.id = isDoc ? trash.Embedded.Document.DocumentId : trash.Embedded.Folder.FolderId;\n\n\t\t// differentiate folders and documents with shared IDs in the client\n\t\tthis.id += ('-' + Date.now());\n\n\t\tthis.name = getItemName(isDoc, trash);\n\t\tthis.icon = {\n\t\t\turi : isDoc ? trash.Links.FolderIconUri : trash.Embedded.Folder.Links.IconUri,\n\t\t\tname : isDoc ? '' : trash.Embedded.Folder.IconName\n\t\t};\n\t\tthis.deleted = trash.DateDeleted;\n\t\tthis.deletedBy = trash.DeletedByUserName;\n\t\tthis.__data = trash;\n\t}\n\n\t/**\n\t * @private\n\t * @description\n\t * Helper function that returns the correct name to use based on the item type.\n\t *\n\t * @param {boolean} isDoc Set to true if the item is a document and false if it is not.\n\t * @param {Object} item The item to get the name from.\n\t * @returns {string} Returns a string that can be used as the items display name in the trash.\n\t */\n\tfunction getItemName(isDoc, item) {\n\t\tif (!isDoc) {\n\t\t\treturn item.ItemName;\n\t\t}\n\n\t\t// Truncate any status value from the auto name\n\t\t// Statuses are set as tag types that have the prefix &&_AirBase,\n\t\t// so find the first instance of this and remove everything after it.\n\t\t// We substract 5 from the index so as to remove any trailing pipes as well.\n\t\t// This may be unneccessary as well, it looks like status value are not being\n\t\t// added to the auto name anymore, this just needs to be confirmed.\n\t\tvar name = item.Embedded.Document.DocumentAutoName;\n\t\tif (name === null) {\n\t\t\t// If there is no autoname, the value will be null,\n\t\t\t// so set it to an empty string, so there are no null reference errors.\n\t\t\tname = '';\n\t\t}\n\t\tvar index = name.indexOf('&&_AirBase_');\n\t\tif (index >= 0) {\n\t\t\tname = name.substring(0, index > 0 ? index - 5 : 0);\n\t\t}\n\n\t\treturn name;\n\t}\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/deletedItemsDataStore.js\n// module id = 118\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbDocumentDataStore', [\n\t\t\t'$q',\n\t\t\t'sbDocumentService',\n\t\t\t'smbAclService',\n\t\t\t'SMB_RIGHTS',\n\t\t\t'SMB_RIGHTS_TYPE',\n\t\t\tDocumentDataStore\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbDocumentDataStore\n\t *\n\t * @description\n\t * A datastore that manages the state of a document and its content.\n\t */\n\tfunction DocumentDataStore($q, sbDocumentService, smbAclService, SMB_RIGHTS, SMB_RIGHTS_TYPE) {\n\n\t\tvar _document = null;\n\t\tvar _pageCount = null;\n\t\tvar _pages = [];\n\t\tvar _acl = null;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentDataStore#loadDocument\n\t\t\t * @methodOf smb-app.smbDocumentDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Loads a document by id\n\t\t\t *\n\t\t\t * @param {String} documentId The document id\n\t\t\t *\n\t\t\t * @returns {Deferred} Returns a promise that resolves to an object that represents a document.\n\t\t\t */\n\t\t\tloadDocument: loadDocument,\n\n\t\t\tloadUserPermissions: loadUserPermissions,\n\t\t\tdelete: deleteDocument,\n\n\t\t\tget document() { return _document; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentDataStore#pageCount\n\t\t\t * @propertyOf smb-app.smbDocumentDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Gets the number of pages in the document\n\t\t\t *\n\t\t\t * @returns {number} Returns the number of pages in the selected document.\n\t\t\t */\n\t\t\tget pageCount() { return _pageCount; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentDataStore#pages\n\t\t\t * @propertyOf smb-app.smbDocumentDataStore\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Gets the document pages\n\t\t\t *\n\t\t\t * @returns\n\t\t\t * Returns an array of object that represent the document pages\n\t\t\t */\n\t\t\tget pages() { return _pages; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentDataStore#pageUrls\n\t\t\t * @propertyOf smb-app.smbDocumentDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Get an array of urls that can be used to retrieve the individual\n\t\t\t * pages of a document.\n\t\t\t *\n\t\t\t * @returns {String[]} An array of urls as strings.\n\t\t\t */\n\t\t\tget pageUrls() {\n\t\t\t\t// pxScrollViewer will not retrieve an updated page if the url has not changed\n\t\t\t\t// which it doesn't in our case\n\t\t\t\tvar cacheBust = new Date().getTime();\n\t\t\t\treturn _pages.map(function(p) { return p.Url + '&airbase_cache_bust=' + cacheBust; });\n\t\t\t},\n\n\t\t\tget acl() { return _acl; },\n\n\t\t\tget canEditFields() { return this.canEditStatus; },\n\n\t\t\tget canEditStatus() { return !!_acl && (_acl.hasAdminAccess() || _acl.hasAllPermissions(SMB_RIGHTS[SMB_RIGHTS_TYPE.editRights].param)); },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentDataStore#hasFullRights\n\t\t\t * @propertyOf smb-app.smbDocumentDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Returns true if the current user has full rights to the current document.\n\t\t\t */\n\t\t\tget hasFullRights() { return !!_acl && (_acl.hasAdminAccess() || _acl.hasFullAccess()); }\n\t\t};\n\n\t\tfunction loadDocument(documentId) {\n\t\t\treturn sbDocumentService\n\t\t\t\t.getDocument(documentId)\n\t\t\t\t.then(function (docView) {\n\t\t\t\t\t_document = docView;\n\t\t\t\t\t_pageCount = docView.PageCount;\n\n\t\t\t\t\t_pages = [];\n\t\t\t\t\tfor (var i = 1; i <= docView.PageCount; i++) {\n\t\t\t\t\t\t_pages.push({\n\t\t\t\t\t\t\tId: i,\n\t\t\t\t\t\t\tUrl: docView.PageTemplate.replace(docView.PageTemplateParam, i)\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\treturn _document;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction loadUserPermissions(documentGroupId) {\n\t\t\treturn smbAclService.getUserPermissionsForDocumentGroup(documentGroupId)\n\t\t\t\t.then(function(acl) {\n\t\t\t\t\t_acl = acl;\n\t\t\t\t\treturn _acl;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction deleteDocument(purge){\n\t\t\tif(!_document) {\n\t\t\t\treturn $q.reject(new Error('No document loaded.'));\n\t\t\t} \n\t\t\t\n\t\t\treturn sbDocumentService\n\t\t\t\t.deleteDocument(_document.Embedded.Document.DocumentId, purge)\n\t\t\t\t.then(function(){\n\t\t\t\t\t_document = null;\n\t\t\t\t});\t\t\t\t\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/documentDataStore.js\n// module id = 119\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbDocumentDetailsPanelDataStore', ['smbPanelDetailsDataStore', DocumentDetailsPanelDataStore]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbDocumentDetailsPanelDataStore\n\t *\n\t * @description\n\t * This datastore manages the state of the document details related content\n\t * within the application's side panel. It consumes the general smbPanelDetailsDataStore\n\t * to control the side panel itself.\n\t */\n\tfunction DocumentDetailsPanelDataStore(smbPanelDetailsDataStore) {\n\t\t// Panel names\n\t\tvar _fieldPanel = 'index-panel';\n\t\tvar _fieldEdit = 'index-edit';\n\t\tvar _history = 'history';\n\t\tvar _comments = 'comments';\n\n\t\tvar _currentPanel;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentDetailsPanelDataStore#showFieldPanel\n\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Returns true if the document field panel should be displayed in\n\t\t\t * the document details panel.\n\t\t\t */\n\t\t\tget showFieldPanel() { return _currentPanel === _fieldPanel; }, /* TODO: Change name to `showFieldPanel` */\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentDetailsPanelDataStore#showFieldEdit\n\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Returns true if the field edit form should be displayed in the document details panel.\n\t\t\t */\n\t\t\tget showFieldEdit() { return _currentPanel === _fieldEdit; }, /* TODO: Change name to `showFieldEdit` */\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentDetailsPanelDataStore#showHistory\n\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Returns true if the history panel should be displayed in the document details panel.\n\t\t\t */\n\t\t\tget showHistory() { return _currentPanel === _history; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentDetailsPanelDataStore#showComments\n\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Returns true if the comments panel should be displayed in the document details panel.\n\t\t\t */\n\t\t\tget showComments() { return _currentPanel === _comments; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentDetailsPanelDataStore#fieldPanel\n\t\t\t * @propertyOf smb-app.smbDcoumentDetailsPanelDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Constant that represents the name of the field panel.\n\t\t\t */\n\t\t\tget fieldPanel() { return _fieldPanel; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDcoumentDetailsPanelDataStore#fieldEditPanel\n\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Constant that represents the name of the field edit form panel.\n\t\t\t */\n\t\t\tget fieldEditPanel() { return _fieldEdit; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDcoumentDetailsPanelDataStore#historyPanel\n\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Constant that represents the name of the history panel.\n\t\t\t */\n\t\t\tget historyPanel() { return _history; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDcoumentDetailsPanelDataStore#commentsPanel\n\t\t\t * @propertyOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Constant that represents the name of the comments panel.\n\t\t\t */\n\t\t\tget commentsPanel() { return _comments; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDcoumentDetailsPanelDataStore#toggle\n\t\t\t * @methodOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t * @kind method\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Toggle the document details side panel with a specific page of the panel.\n\t\t\t * If passing the name of the panel page that is currently displayed, it will\n\t\t\t * close the entire side panel. If the side panel is already open but toggled\n\t\t\t * with a different page, the side panel will stay open and will switch to\n\t\t\t * the new page. If the argument is not a valid document details panel page,\n\t\t\t * then nothing happens.\n\t\t\t *\n\t\t\t * @param {string} panelName Then name of document details panel to display.\n\t\t\t */\n\t\t\ttoggle: toggle,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDcoumentDetailsPanelDataStore#closePanel\n\t\t\t * @methodOf smb-app.smbDocumentDetailsPanelDataStore\n\t\t\t * @kind method\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Closes the document details panel as well as the general app side panel.\n\t\t\t */\n\t\t\tclosePanel: closePanel\n\t\t};\n\n\t\tfunction closePanel() {\n\t\t\t_currentPanel = undefined;\n\t\t\tsmbPanelDetailsDataStore.reset();\n\t\t}\n\n\t\tfunction toggle(panelName) {\n\t\t\tif (!smbPanelDetailsDataStore.isOpen) {\n\t\t\t\t_currentPanel = undefined;\n\t\t\t}\n\n\t\t\tif ([_fieldPanel, _fieldEdit, _history, _comments].indexOf(panelName) < 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (panelName === _currentPanel) {\n\t\t\t\t// close the panel\n\t\t\t\tclosePanel();\n\t\t\t} else {\n\t\t\t\tif (!_currentPanel) {\n\t\t\t\t\tsmbPanelDetailsDataStore.toggle();\n\t\t\t\t}\n\t\t\t\t_currentPanel = panelName;\n\t\t\t}\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/documentDetailsPanelDataStore.js\n// module id = 120\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbDocumentHistoryDataStore', ['smbDocumentHistoryService', DocumentHistoryDataStore]);\n\t\t\n\tvar tokenRegex = /\\[@(.*?)\\[\\/\\]/g; \n\t// will capture with User=5]john from [@User=5]john[/]\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbDocumentNotesDataStore\n\t * \n\t * @description\n\t * Manages state for the notes for a single document.\n\t */\n\tfunction DocumentHistoryDataStore(smbDocumentHistoryService) {\n\t\tvar _history;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentNotesDataStore#notes\n\t\t\t * @propertyOf smb-app.smbDocumentNotesDataStore\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Returns the current collection of notes\n\t\t\t * \n\t\t\t * @returns {DocumentNote[]} An array of @see DocumentNote objects\n\t\t\t */\n\t\t\tget history() { return _history; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentNotesDataStore#loadNotes\n\t\t\t * @propertyOf smb-app.smbDocumentNotesDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads the document notes for a specific document by id\n\t\t\t * \n\t\t\t * @param {String} documentId The document id\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that resolves to a collection of @see DocumentNote objects\n\t\t\t */\n\t\t\tloadHistory: loadHistory\n\n\t\t};\n\n\t\tfunction loadHistory(documentId) {\n\t\t\treturn smbDocumentHistoryService.getHistory(documentId)\n\t\t\t\t.then(function(history) {\n\t\t\t\t\t\n\t\t\t\t\t_history = history.map(function(hi) { \n\t\t\t\t\t\tvar final = hi.Message.replace('&&_AirBase_Assigned_Date', 'assigned date')\n\t\t\t\t\t\t.replace('&&_AirBase_ToDo_Status', 'To Do Status')\n\t\t\t\t\t\t.replace('&&_AirBase_Content_Status', 'Status')\n\t\t\t\t\t\t.replace('&&_AirBase_Assigned_UserId', 'assgined user')\n\t\t\t\t\t\t.replace(/\\./g, '');\n\t\t\t\t\t\treturn {'Message' : tokenStringFilterReplace(final), 'UserName': hi.UserName, 'ActivityDate': tokenStringExtractDate(final)};\n\t\t\t\t\t});\n\t\t\t\t\treturn _history;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction tokenStringFilterReplace (str) {\n\t\t\tif (!str) {\n\t\t\t\treturn str;\n\t\t\t}\n\n\t\t\treturn str.replace(tokenRegex, function (token, capture) {\n\t\t\t\t// the captured text is in the form \"User=5]john\"\n\t\t\t\tvar parts = capture.split(']');\n\t\t\t\tvar attrPart = parts[0].split('=');\n\t\t\t\tif (attrPart[0] === 'User') {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t\tif (attrPart[0] === 'Document') {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t\tif (attrPart[0] === 'Action' && attrPart[1] === 'tagged') {\n\t\t\t\t\treturn 'modified field value on';\n\t\t\t\t}\n\t\t\t\tif (attrPart[0] === 'Action' && attrPart[1] === 'untagged') {\n\t\t\t\t\treturn 'removed field value ';\n\t\t\t\t}\n\t\t\t\tif (attrPart[0] === 'Action' && attrPart[1] === 'commented') {\n\t\t\t\t\treturn 'commented ';\n\t\t\t\t}\n\t\t\t\tif (attrPart[0] === 'Date') {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvar message = parts[1];\n\t\t\t\treturn parts[1];\n\t\t\t});\n\t\t}\n\n\t\tfunction tokenStringExtractDate(str) {\n\t\t\tif (!str) {\n\t\t\t\treturn str;\n\t\t\t}\n\n\t\t\tvar datestring = '';\n\t\t\tstr = str.replace(tokenRegex, function (token, capture) {\n\t\t\t\t// the captured text is in the form \"User=5]john\"\n\t\t\t\tvar parts = capture.split(']');\n\t\t\t\tvar attrPart = parts[0].split('=');\n\t\t\t\tif (attrPart[0] === 'Date') {\n\t\t\t\t\tdatestring = parts[1];\n\t\t\t\t\treturn parts[1];\n\t\t\t\t}\t\t\t\t\n\t\t\t\treturn '';\n\t\t\t});\n\n\t\t\treturn datestring + '.';\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/documentHistoryDataStore.js\n// module id = 121\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbDocumentIndexDataStore', [\n\t\t\t'$q',\n\t\t\t'smbIndexTypesDataTypes',\n\t\t\t'smbIndexTypesService',\n\t\t\tDocumentIndexDataStore\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbDocumentIndexDataStore\n\t *\n\t * @description\n\t * Service for managing index values for a single document\n\t */\n\tfunction DocumentIndexDataStore($q, smbIndexTypesDataTypes, smbIndexTypesService) {\n\n\t\tvar _indexTypes;\n\t\tvar _indexValues;\n\t\tvar _documentId;\n\t\tvar _contentTypeId;\n\n\t\treturn {\n\n\t\t\tget indexTypes() { return _indexTypes; },\n\t\t\tget indexValues() { return _indexValues; },\n\n\t\t\tget indexTypePanelModel() {\n\t\t\t\treturn _indexTypes.map(function(indexType) {\n\t\t\t\t\tvar val = _indexValues.find(function(iv) { return iv.TagTypeName === indexType.TagTypeName; });\n\t\t\t\t\tvar temp = angular.extend({}, indexType);\n\t\t\t\t\tif (val && val.Tags && val.Tags.length > 0) {\n\t\t\t\t\t\ttemp.defaultValue = val.Tags[0];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (temp.DataType === smbIndexTypesDataTypes.NUMERIC) {\n\t\t\t\t\t\ttemp.defaultValue = parseFloat(temp.defaultValue);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn temp;\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tgetIndexes: getIndexes\n\n\t\t};\n\n\t\tfunction getIndexes(documentId, contentTypeId, useCached) {\n\t\t\tif (canUseCached(documentId, contentTypeId, useCached)) {\n\t\t\t\treturn $q.resolve(_indexValues);\n\t\t\t} else {\n\t\t\t\treturn smbIndexTypesService.getIndexTypes(contentTypeId)\n\t\t\t\t\t.then(function(types) {\n\t\t\t\t\t\t_indexTypes = types.filter(function(tt) {\n\t\t\t\t\t\t\treturn !(tt.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t});\n\t\t\t\t\t\t_contentTypeId = contentTypeId;\n\t\t\t\t\t\treturn smbIndexTypesService.getDocumentIndexes(documentId);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\t_documentId = documentId;\n\t\t\t\t\t\t_indexValues = [];\n\n\t\t\t\t\t\tvar sequence = 0;\n\n\t\t\t\t\t\t_indexValues = data.TypedTags.filter(function(tt) {\n\t\t\t\t\t\t\treturn !(tt.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\tvar val = tt.Tags[0];\n\t\t\t\t\t\t\tvar indexType = _indexTypes.find(function(it) { return it.TagTypeName === tt.TagTypeName; });\n\n\t\t\t\t\t\t\tif (indexType && indexType.DataType === smbIndexTypesDataTypes.NUMERIC && val) {\n\t\t\t\t\t\t\t\ttt.Tags[0] = toNumber(val);\n\t\t\t\t\t\t\t\ttt.isNumber = true;\n\t\t\t\t\t\t\t} else if (indexType && indexType.DataType === smbIndexTypesDataTypes.DATE && val) {\n\t\t\t\t\t\t\t\ttt.Tags[0] = toDate(val);\n\t\t\t\t\t\t\t\ttt.isDate = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar i = _indexTypes.indexOf(indexType);\n\t\t\t\t\t\t\tif (i < 0) {\n\t\t\t\t\t\t\t\ti = sequence;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttt.sequence = i;\n\t\t\t\t\t\t\tsequence++;\n\t\t\t\t\t\t\treturn tt;\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn _indexValues;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction canUseCached(documentId, contentTypeId, useCached) {\n\t\t\treturn useCached && documentId === _documentId && contentTypeId === _contentTypeId &&\n\t\t\t\t_indexTypes && _indexValues;\n\t\t}\n\n\t\tfunction toNumber(val) {\n\t\t\tif (!val && typeof val !== 'number') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar num = parseFloat(val);\n\t\t\treturn isNaN(num) ? undefined : num;\n\t\t}\n\n\t\tfunction toDate(val) {\n\t\t\tif (!val) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar m = parseInt(val.substr(0, 2));\n\t\t\tvar d = parseInt(val.substr(2, 2));\n\t\t\tvar y = parseInt(val.substr(4));\n\n\t\t\treturn new Date(y, m - 1, d);\n\t\t}\n\t}\n\t\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/documentIndexDataStore.js\n// module id = 122\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbDocumentNotesDataStore', ['smbDocumentNotesService', DocumentNotesDataStore]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbDocumentNotesDataStore\n\t * \n\t * @description\n\t * Manages state for the notes for a single document.\n\t */\n\tfunction DocumentNotesDataStore(smbDocumentNotesService) {\n\t\tvar _notes;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbDocumentNotesDataStore#notes\n\t\t\t * @propertyOf smb-app.smbDocumentNotesDataStore\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Returns the current collection of notes\n\t\t\t * \n\t\t\t * @returns {DocumentNote[]} An array of @see DocumentNote objects\n\t\t\t */\n\t\t\tget notes() { return _notes; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentNotesDataStore#loadNotes\n\t\t\t * @propertyOf smb-app.smbDocumentNotesDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads the document notes for a specific document by id\n\t\t\t * \n\t\t\t * @param {String} documentId The document id\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that resolves to a collection of @see DocumentNote objects\n\t\t\t */\n\t\t\tloadNotes: loadNotes,\n\n\t\t\tcreateNote: createNote\n\t\t};\n\n\t\tfunction loadNotes(documentId) {\n\t\t\treturn smbDocumentNotesService.getNotes(documentId)\n\t\t\t\t.then(function(notes) {\n\t\t\t\t\tnotes.reverse();\n\t\t\t\t\t_notes = notes;\n\t\t\t\t\treturn notes;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction createNote(documentId, note) {\n\t\t\treturn smbDocumentNotesService.createNote(documentId, note)\n\t\t\t\t.then(function(data) {\n\t\t\t\t\tif (!_notes) {\n\t\t\t\t\t\t_notes = [];\n\t\t\t\t\t}\n\t\t\t\t\t_notes.unshift(data);\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t}\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/documentNotesDataStore.js\n// module id = 123\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbIconDataStore', ['$q', '$sce', 'smbIconService', IconDataStore]);\n\n\t/**\n\t * @typedef {Object} Icon\n\t * @property {String} IconFriendlyUserName A human readable label for an icon\n\t * @property {String} IconExtension The icon data type as a capitalized version of the extension\n\t * @property {String} IconUri The url to get the icon data\n\t */\n\n\tfunction IconDataStore($q, $sce, smbIconService) {\n\t\tvar _icons;\n\n\t\treturn {\n\t\t\tget icons() { return _icons; },\n\t\t\tloadIcons: loadIcons,\n\t\t\tgetIconData: getIconData\n\t\t};\n\n\t\tfunction loadIcons() {\n\t\t\tif (!_icons) {\n\t\t\t\treturn smbIconService.getIcons()\n\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\t_icons = data;\n\t\t\t\t\t\treturn data;\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn $q.resolve(_icons);\n\t\t\t}\n\t\t}\n\n\t\tfunction getIconData(icon) {\n\t\t\treturn smbIconService.getIconData(icon.IconUri, icon.IconExtension)\n\t\t\t\t.then(function(data) {\n\t\t\t\t\tvar iconImage = { isBinary: data.isBinary };\n\t\t\t\t\tif (data.isBinary) {\n\t\t\t\t\t\tvar blob = new Blob([data.imageData], {type: data.contentType});\n\t\t\t\t\t\tvar objUrl = URL.createObjectURL(blob);\n\t\t\t\t\t\ticonImage.data = objUrl;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ticonImage.data = $sce.trustAsHtml(data.imageData);\n\t\t\t\t\t}\n\t\t\t\t\treturn iconImage;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/iconDataStore.js\n// module id = 124\n// module chunks = 1","require('./contentConfigDataStores/contentTypeConfigDataStore');\nrequire('./contentConfigDataStores/contentTypeGroupConfigDataStore');\nrequire('./contentConfigDataStores/contentTypeGroupTagTypesConfigDataStore');\nrequire('./contentConfigDataStores/contentTypeGroupsConfigDataStore');\nrequire('./contentConfigDataStores/contentTypeTagTypeConfigDataStore');\nrequire('./contentConfigDataStores/statusConfigDataStore');\nrequire('./contentSearchDataStore');\nrequire('./contentTypeGroupsDataStore');\nrequire('./contentTypeGroupsSearchDataStore');\nrequire('./contentTypesDataStore');\nrequire('./contentTypesSearchDataStore');\nrequire('./contentUploadDataStore');\nrequire('./deletedItemsDataStore');\nrequire('./documentDataStore');\nrequire('./documentDetailsPanelDataStore');\nrequire('./documentHistoryDataStore');\nrequire('./documentIndexDataStore');\nrequire('./documentNotesDataStore');\nrequire('./iconDataStore');\nrequire('./indexTypesDataStore');\nrequire('./panelDetailsDataStore');\nrequire('./statusDataStore');\nrequire('./toDoListDataStore');\nrequire('./userDataStore');\nrequire('./userGroupDataStore');\nrequire('./userGroupsDataStore');\nrequire('./usersDataStore');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/index.js\n// module id = 125\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbIndexTypesDataStore', ['$q', 'smbIndexTypesService', 'smbIndexTypesDataTypes', IndexTypesDataStore]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbIndexTypesDataStore\n\t *\n\t * @description\n\t * Manages the state for the content types configuration.\n\t */\n\tfunction IndexTypesDataStore($q, smbIndexTypesService, smbIndexTypesDataTypes) {\n\t\tvar _typeId;\n\t\tvar _groupId;\n\t\tvar _indexTypes;\n\t\tvar _groupIndexTypes;\n\t\tvar _contentStatus = {\n\t\t\tTagTypeId: 0,\n\t\t\tValue: ''\n\t\t};\n\t\tvar _todoStatus = {\n\t\t\tTagTypeId: 0,\n\t\t\tValue: ''\n\t\t};\n\t\tvar _assignedUserId = {\n\t\t\tTagTypeId: 0,\n\t\t\tValue: ''\n\t\t};\n\t\tvar _assignedDate = {\n\t\t\tTagTypeId: 0,\n\t\t\tValue: ''\n\t\t};\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbIndexTypesDataStore.indexTypes\n\t\t\t * @propertyOf smb-app.smbIndexTypesDataStore\n\t\t\t *\n\t\t\t * @description\n\t\t\t * All content types that belong to the current content type group.\n\t\t\t */\n\t\t\tget indexTypes() {\n\t\t\t\treturn _indexTypes;\n\t\t\t},\n\n\t\t\tget groupIndexTypes() {\n\t\t\t\treturn _groupIndexTypes;\n\t\t\t},\n\n\t\t\tget contentStatusId() { return _contentStatus.TagTypeId; },\n\n\t\t\tget todoStatusId() { return _todoStatus.TagTypeId; },\n\n\t\t\tget assignedUserId() { return _assignedUserId.TagTypeId; },\n\n\t\t\tget assignedDateId() { return _assignedDate.TagTypeId; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbIndexTypesDataStore.getindexTypes\n\t\t\t * @methodOf smb-app.smbIndexTypesDataStore\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Loads and returns all content types for a specific content type group by group id.\n\t\t\t *\n\t\t\t * @param {Number} groupId The content type group id\n\t\t\t *\n\t\t\t * @returns {Deferred} A promise that resolves to a collection of content types.\n\t\t\t */\n\t\t\tgetIndexTypes: getIndexTypes,\n\n\t\t\tgetDocumentTypeGroupIndexTypes: getDocumentTypeGroupIndexTypes,\n\n\t\t\tsetIndexTypes: setIndexTypes\n\t\t};\n\n\t\tfunction getIndexTypes(typeId) {\n\t\t\tif (!typeId) {\n\t\t\t\treturn $q.resolve(_indexTypes);\n\t\t\t} else {\n\t\t\t\treturn smbIndexTypesService.getIndexTypes(typeId)\n\t\t\t\t\t.then(function(types) {\n\t\t\t\t\t\t_contentStatus.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t\t\t})[0].TagTypeId;\n\n\t\t\t\t\t\t_todoStatus.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t\t\t})[0].TagTypeId;\n\n\t\t\t\t\t\t_assignedUserId.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t\t\t})[0].TagTypeId;\n\n\t\t\t\t\t\t_assignedDate.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t\t\t})[0].TagTypeId;\n\t\t\t\t\t\treturn types;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t_indexTypes = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\treturn !(tagtype.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\tif (tt.DataType === smbIndexTypesDataTypes.NUMERIC && tt.Constraints && tt.Constraints.DefaultValue) {\n\t\t\t\t\t\t\t\tvar val = tt.Constraints.DefaultValue;\n\t\t\t\t\t\t\t\ttt.Constraints.DefaultValue = val.indexOf('.') >= 0 ? parseFloat(val) : parseInt(val, 10);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn tt;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.map(function(tt) {\n\t\t\t\t\t\t\tif (tt.Constraints) {\n\t\t\t\t\t\t\t\ttt.defaultValue = tt.Constraints.DefaultValue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn tt;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t_typeId = typeId;\n\t\t\t\t\t\treturn types;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction getDocumentTypeGroupIndexTypes(groupId) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.resolve(_groupIndexTypes);\n\t\t\t} else {\n\t\t\t\treturn smbIndexTypesService.getDocumentTypeGroupIndexTypes(groupId)\n\t\t\t\t\t.then(function (types) {\n\t\t\t\t\t\t_groupId = groupId;\n\t\t\t\t\t\t_groupIndexTypes = types\n\t\t\t\t\t\t\t.filter(function filterStatuses(tagtype) {\n\t\t\t\t\t\t\t\treturn !(tagtype.TagTypeName.match(/&&_AirBase_.*/));\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.map(function(it) {\n\t\t\t\t\t\t\t\tif (it.Constraints) {\n\t\t\t\t\t\t\t\t\tit.defaultValue = it.Constraints.DefaultValue;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (it.DataType === smbIndexTypesDataTypes.NUMERIC) {\n\t\t\t\t\t\t\t\t\tit.indexValue = +it.IndexValue;\n\n\t\t\t\t\t\t\t\t\tif(angular.isDefined(it.defaultValue)) { \n\t\t\t\t\t\t\t\t\t\tit.defaultValue = +it.defaultValue;\n\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\treturn it;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn _groupIndexTypes;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction setIndexTypes(indexes, documentId, typeId) {\n\t\t\tvar tagcollection = indexes\n\t\t\t.filter(function filterTags(t) {\n\t\t\t\t\tif (t.indexValue) {\n\t\t\t\t\t\treturn t;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t.map(function mapTags(t) {\n\t\t\t\tvar tag = {};\n\t\t\t\ttag.TagTypeId = t.TagTypeId;\n\n\t\t\t\tif (t.DataTypeName === 'Date')\n\t\t\t\t{\n\t\t\t\t\tvar date = t.indexValue;\n\n\t\t\t\t\tvar mm = date.getMonth() + 1;\n\t\t\t\t\tif (mm < 10)\n\t\t\t\t\t{\n\t\t\t\t\t\tmm = '0' + mm;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar dd = date.getDate();\n\t\t\t\t\tif (dd < 10)\n\t\t\t\t\t{\n\t\t\t\t\t\tdd = '0' + dd;\n\t\t\t\t\t}\n\n\t\t\t\t\ttag.Value = [mm, dd, date.getFullYear()].join('');\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttag.Value = t.indexValue;\n\t\t\t\t}\n\n\t\t\t\treturn tag;\n\t\t\t});\n\n\t\t\treturn smbIndexTypesService.getIndexTypes(typeId)\n\t\t\t.then(function(types) {\n\t\t\t\t_contentStatus.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t})[0].TagTypeId;\n\n\t\t\t\t_todoStatus.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t})[0].TagTypeId;\n\n\t\t\t\t_assignedUserId.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t})[0].TagTypeId;\n\n\t\t\t\t_assignedDate.TagTypeId = types.filter(function filterStatuses(tagtype) {\n\t\t\t\t\treturn tagtype.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t})[0].TagTypeId;\n\t\t\t})\n\t\t\t.then(function() {\n\t\t\t\treturn smbIndexTypesService.getDocumentIndexes(documentId);\n\t\t\t})\n\t\t\t.then(function(ft) {\n\t\t\t\tvar value = null;\n\t\t\t\tvalue = ft.TypedTags.find(function(tt) {\n\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t});\n\t\t\t\t_contentStatus.Value = value.Tags[0] ? value.Tags[0] : '';\n\t\t\t\tvalue = null;\n\t\t\t\tvalue = ft.TypedTags.find(function(tt) {\n\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t});\n\t\t\t\t_todoStatus.Value = value.Tags[0] ? value.Tags[0] : '';\n\t\t\t\tvalue = null;\n\t\t\t\tvalue = ft.TypedTags.find(function(tt) {\n\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t});\n\t\t\t\t_assignedUserId.Value = value.Tags[0] ? value.Tags[0] : '';\n\t\t\t\tvalue = null;\n\t\t\t\tvalue = ft.TypedTags.find(function(tt) {\n\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t});\n\t\t\t\t_assignedDate.Value = value.Tags[0] ? value.Tags[0] : '';\n\t\t\t})\n\t\t\t.then(function() {\n\t\t\t\tif (_contentStatus.Value) {\n\t\t\t\t\ttagcollection.push(_contentStatus);\n\t\t\t\t}\n\t\t\t\tif (_todoStatus.Value) {\n\t\t\t\t\ttagcollection.push(_todoStatus);\n\t\t\t\t}\n\t\t\t\tif (_assignedUserId.Value) {\n\t\t\t\t\ttagcollection.push(_assignedUserId);\n\t\t\t\t}\n\t\t\t\tif (_assignedDate.Value) {\n\t\t\t\t\ttagcollection.push(_assignedDate);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(function() {\n\t\t\t\treturn smbIndexTypesService.setIndexTypes(tagcollection, documentId);\n\t\t\t})\n\t\t\t.then(function (response) {\n\t\t\t\treturn response;\n\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/indexTypesDataStore.js\n// module id = 126\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbPanelDetailsDataStore', ['$mdMedia',PanelDetailsDataStore]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbPanelDetailsDataStore\n\t *\n\t * @description\n\t * Manages the state of the application's side panel.\n\t */\n\tfunction PanelDetailsDataStore($mdMedia) {\n\t\tvar _isOpen = false;\n\t\tvar _isOpenInline = false;\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbPanelDetailsDataStore#isOpen\n\t\t\t * @propertyOf smb-app.smbPanelDetailsDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Returns true if the side panel is currently open.\n\t\t\t *\n\t\t\t * @returns {boolean} A boolean flag that indicates whether the side panel is open (true)\n\t\t\t * or closed (false).\n\t\t\t */\n\t\t\tget isOpen() { return _isOpen; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbPanelDetailsDataStore#isOpen\n\t\t\t * @propertyOf smb-app.smbPanelDetailsDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Use to open or close the side panel. Set to true to open the side panel\n\t\t\t * and false to close the side panel.\n\t\t\t *\n\t\t\t * @param {boolean} val The value to set the property to.\n\t\t\t */\n\t\t\tset isOpen(val) { _isOpen = val; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbPanelDetailsDataStore#isOpenInline\n\t\t\t * @propertyOf smb-app.smbPanelDetailsDataStore\n\t\t\t * @kind property\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Indicates if the side panel is open in inline mode.\n\t\t\t *\n\t\t\t * @returns {boolean} True if the panel is open inline\n\t\t\t */\n\t\t\tget isOpenInline() { return _isOpenInline; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbPanelDetailsDataStore#toggle\n\t\t\t * @methodOf smb-app.smbPanelDetailsDataStore\n\t\t\t * @kind method\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Toggle the side panel. Opens it if it is currently closed and closes it if\n\t\t\t * it is currently open.\n\t\t\t */\n\t\t\ttoggle: toggle,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbPanelDetailsDataStore#reset\n\t\t\t * @methodOf smb-app.smbPanelDetailsDataStore\n\t\t\t * @kind method\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Resets the state of the side panel back to default (which is closed).\n\t\t\t */\n\t\t\treset: reset,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbPanelDetailsDataStore#showPanel\n\t\t\t * @methodOf smb-app.smbPanelDetailsDataStore\n\t\t\t * @kind method\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Returns true if the panel should be open.\n\t\t\t *\n\t\t\t * @returns {boolean} True if the panel should be open.\n\t\t\t */\n\t\t\tshowPanel: showPanel\n\t\t};\n\n\t\tfunction toggle() {\n\t\t\t_isOpen = !_isOpen;\n\t\t\tif ($mdMedia('gt-sm')) {\n\t\t\t\t_isOpenInline = !_isOpenInline;\n\t\t\t}\n\t\t}\n\n\t\tfunction showPanel() {\n\t\t\treturn _isOpen || _isOpenInline;\n\t\t}\n\n\t\tfunction reset() {\n\t\t\t_isOpen = false;\n\t\t\t_isOpenInline = false;\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/panelDetailsDataStore.js\n// module id = 127\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbStatusDataStore', [\n\t\t\t'$q', \n\t\t\t'smbStatusService', \n\t\t\tStatusDataStore\n\t\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbStatusDataStore\n\t * \n\t * @description\n\t * Data store that manages state for the content type uration section.\n\t */\n\tfunction StatusDataStore($q, smbStatusService) {\n\n\t\tvar _contentStatus;\n\t\tvar _todoStatus;\n\t\tvar _assignedUserId;\n\t\tvar _assignedDate;\n\n\t\tvar _contentStatusValues = [];\n\t\tvar _todoStatusValues = [];\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbStatusDataStore.getContentStatuses\n\t\t\t * @methodOf smb-app.smbStatusDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads the data store with a content type by id\n\t\t\t * \n\t\t\t * @param {String} groupId Id of the content type group the type belongs to\n\t\t\t * @param {String} id The content type id\n\t\t\t * \n\t\t\t * @returns {Deferred} Returns a promise that resolves to the content type being loaded\n\t\t\t */\n\t\t\tget contentStatus() { return _contentStatus; },\n\n\t\t\tget todoStatus() { return _todoStatus; },\n\n\t\t\tget contentStatusValues() { return _contentStatusValues; },\n\n\t\t\tget todoStatusValues() { return _todoStatusValues; },\n\n\t\t\tget assignedUserId() { return _assignedUserId; },\n\n\t\t\tget assignedDate() { return _assignedDate; },\n\n\t\t\tloadStatuses: loadStatuses,\n\n\t\t\tgetDocumentStatus: getDocumentStatus,\n\n\t\t\tgetUsersWithModifyRights: getUsersWithModifyRights,\n\n\t\t\tsetDocumentStatus: setDocumentStatus\n\t\t};\n\n\t\tfunction loadStatuses(folderId) {\n\t\t\treturn smbStatusService.getStatuses(folderId)\n\t\t\t.then(function(response) {\n\t\t\t\treturn response.filter(function statuses(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_.*/);\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.then(function mapStatuses(statuses) {\n\t\t\t\t_contentStatus = statuses.filter(function filterCStatuses(s) {\n\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Content_Status/);\n\t\t\t\t});\n\t\t\t\t_todoStatus = statuses.filter(function filterTStatuses(s) {\n\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_ToDo_Status/);\n\t\t\t\t});\n\t\t\t\t_assignedUserId = statuses.filter(function filterCStatuses(s) {\n\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Assigned_UserId/);\n\t\t\t\t});\n\t\t\t\t_assignedDate = statuses.filter(function filterTStatuses(s) {\n\t\t\t\t\treturn s.TagTypeName.match(/&&_AirBase_Assigned_Date/);\n\t\t\t\t});\n\t\t\t\treturn statuses;\n\t\t\t});\n\t\t}\n\n\t\tfunction getDocumentStatus(documentId) {\n\t\t\treturn smbStatusService.getDocumentStatus(documentId)\n\t\t\t.then(function(response) {\n\t\t\t\treturn response;\n\t\t\t});\n\t\t}\n\n\t\tfunction getUsersWithModifyRights(documentId) {\n\t\t\treturn smbStatusService.getUsers(documentId)\n\t\t\t.then(function(response) {\n\t\t\t\treturn response.data;\n\t\t\t});\n\t\t}\n\n\t\tfunction setDocumentStatus(status, documentId) {\n\t\t\treturn smbStatusService.setDocumentStatus(status, documentId);\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/statusDataStore.js\n// module id = 128\n// module chunks = 1","(function () {\n\t'use strict';\n\t\n\tangular.module('smb-app')\n\t\t.factory('smbToDoListDataStore', ['$q', '$interval', 'gettextCatalog', 'smbToDoListService', 'smbSortService', ToDoListDataStore]);\n\t\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypesDataStore\n\t * \n\t * @description\n\t * Manages the state for the content types configuration.\n\t */\n\tfunction ToDoListDataStore($q, $interval, gettextCatalog, smbToDoListService, smbSortService) {\n\n\t\tvar _documents = null;\n\n\t\tvar ASSIGNED_DATE = '&&_AirBase_Assigned_Date';\n\t\tvar CONST_TODOLIST_POLL_INTERVAL = 20000;\n\t\tvar _count = 0;\t\n\t\tvar _interval;\t\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbContentTypesDataStore.contentTypes\n\t\t\t * @propertyOf smb-app.smbContentTypesDataStore\n\t\t\t * \n\t\t\t * @description\n\t\t\t * All content types that belong to the current content type group.\n\t\t\t */\n\t\t\tget documents() {\n\t\t\t\treturn _documents;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name toDoListDataStore.getDocuments\n\t\t\t * @methodOf smb-app.toDoListDataStore\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Loads and returns all content types for a specific content type group by group id.\n\t\t\t * \n\t\t\t * @param {Number} groupId The content type group id\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that resolves to a collection of content types.\n\t\t\t */\n\t\t\tgetDocuments: getDocuments,\n\n\t\t\tsortByDate: sortByDate,\n\n\t\t\tsortByType: sortByType,\n\n\t\t\tsortByStatus: sortByStatus,\n\n\t\t\tloadCount: loadCount,\n\n\t\t\tinit: init,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbToDoListDataStore#clear\n\t\t\t * @methodOf smb-app.toDoListDataStore\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Clears the interval that was initiated by @see init\n\t\t\t */\n\t\t\tclear: clear,\n\n\t\t\tget count() { return _count; }\n\t\t\t\n\t\t};\t\n\n\t\tfunction getDocuments() {\n\t\t\treturn smbToDoListService.getDocuments()\n\t\t\t\t.then(function (types) {\n\t\t\t\t\t_documents = types.map(function(doc) {\n\t\t\t\t\t\tvar d;\n\t\t\t\t\t\td = doc;\n\t\t\t\t\t\tvar index = doc.DocumentAutoName ? doc.DocumentAutoName.indexOf('&&_AirBase_') : -1;\n\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\td.DocumentAutoName = doc.DocumentAutoName.substring(0, index > 0 ? index - 5 : 0);\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\tvar contentStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_Content_Status/));\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvar todoStatus = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_ToDo_Status/));\n\t\t\t\t\t\t});\n\t\t\t\t\t\td.DateAssigned = doc.StatusInformation.filter(function(tt) {\n\t\t\t\t\t\t\treturn (tt.TagTypeName.match(/&&_AirBase_Assigned_Date/));\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (contentStatus != null && contentStatus.length > 0 && contentStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\td.Status = contentStatus[0].Tags[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (todoStatus != null && todoStatus.length > 0 && todoStatus[0].Tags[0].length > 0) {\n\t\t\t\t\t\t\td.Status = todoStatus[0].Tags[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\td.Status = '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (d.DateAssigned != null && d.DateAssigned.length > 0) {\n\t\t\t\t\t\t\td.DateAssigned = d.DateAssigned[0].Tags[0];\n\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t});\n\t\t\t\t\tsortByDate(false);\n\t\t\t\t\treturn _documents;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction sortByDate(params) {\n\t\t\t_documents.sort(function(a, b) {\n\t\t\t\tvar result = smbSortService.sortDate(new Date(b.DateAssigned.replace(/T(\\d:){2}(\\d){1}/, '')), new Date(a.DateAssigned.replace(/T(\\d:){2}(\\d){1}/, '')));\n\t\t\t\tif (result === 0 && a.DocumentAutoName !== null && b.DocumentAutoName !== null) {\n\t\t\t\t\tresult = a.DocumentAutoName.toLowerCase().localeCompare(b.DocumentAutoName.toLowerCase());\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t});\n\t\t\tif (!params) {\n\t\t\t\t_documents.reverse();\n\t\t\t}\n\t\t}\n\n\t\tfunction sortByType(params) {\n\t\t\t_documents.sort(function(a,b) {\n\t\t\t\treturn smbSortService.sortByString(a.LibraryName + a.FolderName, b.LibraryName + b.FolderName, params);\n\t\t\t});\t\t\t\n\t\t}\n\n\t\tfunction sortByStatus(params) {\n\t\t\t_documents.sort(smbSortService.sortObjectByStringProperty('Status', params));\n\t\t}\n\n\t\tfunction init() {\n\t\t\tif (!_interval) {\n\t\t\t\t_interval = $interval(function() {\n\t\t\t\t\tloadCount();\n\t\t\t\t}, CONST_TODOLIST_POLL_INTERVAL);\n\t\t\t}\n\t\t}\n\n\t\tfunction clear() {\n\t\t\tif (angular.isDefined(_interval)) {\n\t\t\t\t$interval.cancel(_interval);\n\t\t\t\t_interval = undefined;\n\t\t\t}\n\t\t}\n\n\t\tfunction loadCount() {\n\t\t\treturn smbToDoListService.getCount()\n\t\t\t\t.then(function (count) {\n\t\t\t\t\t_count = count;\n\t\t\t\t\treturn count;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/toDoListDataStore.js\n// module id = 129\n// module chunks = 1","(function () {\n\t'use strict';\n\n\t/**\n\t* @ngdoc service\n\t* @name smb-app.smbUserDataStore\n\t* \n\t* @description \n\t* A datastore used to retrieve and interact with a smb-app user\n\t**/\n\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbUserDataStore',\n\t\t[\n\t\t\t'$q',\n\t\t\t'pxAuthService',\n\t\t\t'sbUserService',\n\t\t\tUserDataStore\n\t\t]);\n\n\tfunction UserDataStore($q, pxAuthService, sbUserService) {\n\t\tvar _user = null;\n\t\tvar _newUser = {\n\t\t\t'UserName': null,\n\t\t\t'EmailAddress': null,\n\t\t\t'Password': null,\n\t\t\t'Embedded': {\n\t\t\t\t'Roles': []\n\t\t\t}\n\t\t};\n\n\t\treturn {\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbUserDataStore#getUser\n\t\t\t* @methodOf smb-app.smbUserDataStore\n\t\t\t* @kind function\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Gets a user\n\t\t\t*\n\t\t\t* @returns {Deferred} A promise that will resolve with a user\n\t\t\t* \n\t\t\t*/\n\t\t\tgetUser: getUser,\n\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbUserDataStore#addUser\n\t\t\t* @methodOf smb-app.smbUserDataStore\n\t\t\t* @kind function\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Adds a new user\n\t\t\t*\n\t\t\t* @returns {Deferred} A promise that will resolve with a new user\n\t\t\t* \n\t\t\t*/\n\t\t\taddUser: addUser,\n\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbUserDataStore#updateUser\n\t\t\t* @methodOf smb-app.smbUserDataStore\n\t\t\t* @kind function\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Gets an updated user\n\t\t\t*\n\t\t\t* @returns {Deferred} A promise that will resolve with an updated user\n\t\t\t* \n\t\t\t*/\n\t\t\tupdateUser: updateUser,\n\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbUserDataStore#lockUser\n\t\t\t* @methodOf smb-app.smbUserDataStore\n\t\t\t* @kind function\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Locks a user\n\t\t\t*\n\t\t\t* @returns {Deferred} A promise that will resolve\n\t\t\t* \n\t\t\t*/\n\t\t\tlockUser: lockUser,\n\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbUserDataStore#unlockUser\n\t\t\t* @methodOf smb-app.smbUserDataStore\n\t\t\t* @kind function\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Unlocks a user\n\t\t\t*\n\t\t\t* @returns {Deferred} A promise that will resolve\n\t\t\t* \n\t\t\t*/\n\t\t\tunlockUser: unlockUser,\n\n\t\t\t/**\n\t\t\t* @ngdoc property\n\t\t\t* @name smbUserDataStore#user\n\t\t\t* @propertyOf smb-app.smbUserDataStore\n\t\t\t* @kind property\n\t\t\t*\n\t\t\t* @description\n\t\t\t* A user\n\t\t\t* \n\t\t\t* @returns {object} A user\n\t\t\t*/\n\t\t\tget user() { return _user; },\n\t\t\t\n\t\t\t/**\n\t\t\t* @ngdoc property\n\t\t\t* @name smbUserDataStore#isSiteAdmin\n\t\t\t* @propertyOf smb-app.smbUserDataStore\n\t\t\t* @kind property\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Set user site admin role\n\t\t\t*/\n\t\t\tset isSiteAdmin(val) { setSiteAdmin(val); setUserAdmin(val);},\n\t\t\t\n\t\t\t/**\n\t\t\t* @ngdoc property\n\t\t\t* @name smbUserDataStore#isSiteAdmin\n\t\t\t* @propertyOf smb-app.smbUserDataStore\n\t\t\t* @kind property\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Get user site admin role\n\t\t\t*/\n\t\t\tget isSiteAdmin() { return _user ? _user.Embedded.Roles.indexOf('SiteAdmin') > -1 : false;},\n\t\t\t/**\n\t\t\t* @ngdoc property\n\t\t\t* @name smbUserDataStore#isUsereAdmin\n\t\t\t* @propertyOf smb-app.smbUserDataStore\n\t\t\t* @kind property\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Set user user admin role\n\t\t\t*/\n\t\t\tset isUserAdmin(val) { setUserAdmin(val);},\n\t\t\t\n\t\t\t/**\n\t\t\t* @ngdoc property\n\t\t\t* @name smbUserDataStore#isUsereAdmin\n\t\t\t* @propertyOf smb-app.smbUserDataStore\n\t\t\t* @kind property\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Get user user admin role\n\t\t\t*/\n\t\t\tget isUserAdmin() { return _user ? _user.Embedded.Roles.indexOf('UserAdmin') > -1 : false;}\n\t\t};\n\n\t\tfunction getUser(userId) {\n\t\t\tif (!userId) {\n\t\t\t\t_user = angular.copy(_newUser);\n\t\t\t\treturn $q.resolve(_user);\n\t\t\t}\n\t\t\treturn sbUserService.getUser(userId, pxAuthService.deploymentId).then(function (response) {\n\t\t\t\t//clean duplicate roles\n\t\t\t\tresponse.Embedded.Roles = response.Embedded.Roles.filter(function (v, i, a) { return a.indexOf(v) === i; });\n\t\t\t\t_user = response;\n\n\t\t\t\treturn response;\n\t\t\t});\n\t\t}\n\n\t\tfunction addUser(user) {\n\t\t\treturn sbUserService.addUser(user, pxAuthService.systemName).then(function (response) {\n\t\t\t\treturn response;\n\t\t\t});\n\t\t}\n\n\t\tfunction updateUser(user) {\n\t\t\treturn sbUserService.updateUser(user, pxAuthService.deploymentId).then(function (response) {\n\t\t\t\treturn response;\n\t\t\t});\n\t\t}\n\n\t\tfunction lockUser(userId) {\n\t\t\treturn sbUserService.lockUser(userId, pxAuthService.deploymentId).then(function (response) {\n\t\t\t\treturn response;\n\t\t\t});\n\t\t}\n\n\t\tfunction unlockUser(userId) {\n\t\t\treturn sbUserService.unlockUser(userId, pxAuthService.deploymentId).then(function (response) {\n\t\t\t\treturn response;\n\t\t\t});\n\t\t}\n\n\t\tfunction setSiteAdmin(val) {\n\t\t\tvar index = _user.Embedded.Roles.indexOf('SiteAdmin');\n\t\t\tif (!val && index > -1) {\n\t\t\t\t//remove role\n\t\t\t\t_user.Embedded.Roles.splice(index, 1);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (val && index === -1) {\n\t\t\t\t//add role\n\t\t\t\t_user.Embedded.Roles.push('SiteAdmin');\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tfunction setUserAdmin(val) {\n\t\t\tvar index = _user.Embedded.Roles.indexOf('UserAdmin');\n\t\t\tif (!val && index > -1) {\n\t\t\t\t//remove role\n\t\t\t\t_user.Embedded.Roles.splice(index, 1);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (val && index === -1) {\n\t\t\t\t//add role\n\t\t\t\t_user.Embedded.Roles.push('UserAdmin');\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/userDataStore.js\n// module id = 130\n// module chunks = 1","(function () {\n\t'use strict';\n\n\t/**\n\t* @ngdoc service\n\t* @name smb-app.smbUserGroupDataStore\n\t* \n\t* @description \n\t* A datastore used to retrieve and interact with a smb-app user group\n\t**/\n\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbUserGroupDataStore',\n\t\t[\n\t\t\t'$q',\n\t\t\t'pxAuthService',\n\t\t\t'sbUserGroupService',\n\t\t\t'smbSortService',\n\t\t\tUserGroupDataStore\n\t\t]);\n\n\tfunction UserGroupDataStore($q, pxAuthService, sbUserGroupService, smbSortService) {\n\t\tvar _userGroup = null;\n\n\t\tvar _newUserGroup = {\n\t\t\tUserGroupName: '',\n\t\t\tEmbedded: {\n\t\t\t\tUsers: []\n\t\t\t}\n\t\t};\n\n\t\treturn {\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbUserGroupDataStore#getUserGroup\n\t\t\t* @methodOf smb-app.smbUserGroupDataStore\n\t\t\t* @kind function\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Gets a user group\n\t\t\t*\n\t\t\t* @returns {Deferred} A promise that will resolve with a user group\n\t\t\t* \n\t\t\t*/\n\t\t\tgetUserGroup: getUserGroup,\n\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbUserGroupDataStore#saveUserGroup\n\t\t\t* @methodOf smb-app.smbUserGroupDataStore\n\t\t\t* @kind function\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Saves a UserGroup\n\t\t\t*\n\t\t\t* @returns {Deferred} A promise that will resolve with a saved user group\n\t\t\t* \n\t\t\t*/\n\t\t\tsaveUserGroup: saveUserGroup,\n\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbUserGroupDataStore#containsUser\n\t\t\t* @methodOf smb-app.smbUserGroupDataStore\n\t\t\t* @kind function\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Determines whether a user exists in the user group's collection of users\n\t\t\t*\n\t\t\t* @returns {boolean} A boolean represnetation of a user's existance in the user group's collection of users\n\t\t\t* \n\t\t\t*/\n\t\t\tcontainsUser: containsUser,\n\n\t\t\t/**\n\t\t\t* @ngdoc property\n\t\t\t* @name smbUserGroupDataStore#userGroup\n\t\t\t* @propertyOf smb-app.smbUserGroupDataStore\n\t\t\t* @kind property\n\t\t\t*\n\t\t\t* @description\n\t\t\t* A user group\n\t\t\t* \n\t\t\t* @returns {object} A user group\n\t\t\t*/\n\t\t\tget userGroup() { return _userGroup; }\n\t\t};\n\n\t\tfunction getUserGroup(userGroupId) {\n\t\t\tif (!userGroupId) {\n\t\t\t\t_userGroup = angular.copy(_newUserGroup);\n\n\t\t\t\treturn $q.resolve(_userGroup);\n\t\t\t}\n\t\t\treturn sbUserGroupService\n\t\t\t\t.getUserGroup(userGroupId, pxAuthService.systemName)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\tresponse.Embedded.Users.sort(smbSortService.sortObjectByStringProperty('UserName'));\n\t\t\t\t\t_userGroup = response;\t\t\t\t\n\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction saveUserGroup() {\n\t\t\tif (_userGroup.UserGroupId) {\n\t\t\t\treturn sbUserGroupService\n\t\t\t\t\t.updateUserGroup(_userGroup, pxAuthService.systemName)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t_userGroup = response;\n\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn sbUserGroupService\n\t\t\t\t\t.addUserGroup(_userGroup, pxAuthService.systemName)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t_userGroup = response;\n\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction containsUser(user) {\n\t\t\tfor (var i = 0; i < _userGroup.Embedded.Users.length; i++) {\n\t\t\t\tif (_userGroup.Embedded.Users[i].UserId === user.UserId) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\t}\n\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/userGroupDataStore.js\n// module id = 131\n// module chunks = 1","(function () {\n\t'use strict';\n\n\t/**\n\t* @ngdoc service\n\t* @name smb-app.smbUserGroupsDataStore\n\t* \n\t* @description \n\t* A datastore used to retrieve smb-app user groups\n\t**/\n\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbUserGroupsDataStore',\n\t\t[\n\t\t\t'pxAuthService',\n\t\t\t'sbUserGroupsService',\n\t\t\tUserGroupsDataStore\n\t\t]);\n\n\tfunction UserGroupsDataStore(pxAuthService, sbUserGroupsService) {\n\t\tvar _userGroups = [];\n\n\t\treturn {\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbUserGroupsDataStore#getUserGroups\n\t\t\t* @methodOf smb-app.smbUserGroupsDataStore\n\t\t\t* @kind function\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Gets a collection of user groups\n\t\t\t*\n\t\t\t* @returns {Deferred} A promise that will resolve with a collection of user groups\n\t\t\t* \n\t\t\t*/\n\t\t\tgetUserGroups: getUserGroups,\n\n\t\t\t/**\n\t\t\t* @ngdoc property\n\t\t\t* @name smbUserGroupsDataStore#userGroups\n\t\t\t* @propertyOf smb-app.smbUserGroupsDataStore\n\t\t\t* @kind property\n\t\t\t*\n\t\t\t* @description\n\t\t\t* A collection of user groups\n\t\t\t* \n\t\t\t* @returns {array} An array of user groups\n\t\t\t*/\n\t\t\tget userGroups() { return _userGroups; }\n\t\t};\n\n\t\tfunction getUserGroups() {\n\t\t\treturn sbUserGroupsService\n\t\t\t\t.getUserGroups(pxAuthService.systemName)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\t_userGroups = response;\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t}\n\t}\n\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/userGroupsDataStore.js\n// module id = 132\n// module chunks = 1","(function () {\n\t'use strict';\n\n\t/**\n\t* @ngdoc service\n\t* @name smb-app.smbUsersDataStore\n\t* \n\t* @description \n\t* A datastore used to retrieve smb-app users\n\t**/\n\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbUsersDataStore',\n\t\t[\n\t\t\t'pxAuthService',\n\t\t\t'sbUsersService',\n\t\t\tUsersDataStore\n\t\t]);\n\n\tfunction UsersDataStore(pxAuthService, sbUsersService) {\n\t\tvar _users = [];\n\n\t\treturn {\n\t\t\t/**\n\t\t\t* @ngdoc method\n\t\t\t* @name smbUsersDataStore#getUsers\n\t\t\t* @methodOf smb-app.smbUsersDataStore\n\t\t\t* @kind function\n\t\t\t*\n\t\t\t* @description\n\t\t\t* Gets a collection of users\n\t\t\t*\n\t\t\t* @returns {Deferred} A promise that will resolve with a collection of users\n\t\t\t* \n\t\t\t*/\n\t\t\tgetUsers: getUsers,\n\n\t\t\t/**\n\t\t\t* @ngdoc property\n\t\t\t* @name smbUsersDataStore#users\n\t\t\t* @propertyOf smb-app.smbUsersDataStore\n\t\t\t* @kind property\n\t\t\t*\n\t\t\t* @description\n\t\t\t* A collection of users\n\t\t\t* \n\t\t\t* @returns {array} An array of users\n\t\t\t*/\n\t\t\tget users() { return _users; }\n\t\t};\n\n\t\tfunction getUsers() {\n\t\t\treturn sbUsersService\n\t\t\t\t.getUsers(pxAuthService.systemName)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\t_users = response;\t\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t}\n\t}\n\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/dataStores/usersDataStore.js\n// module id = 133\n// module chunks = 1","/* jshint maxcomplexity: false */\n/* jshint maxstatements: false */\n/* jshint bitwise: false */\n(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.constant('SMB_SITE_ADMIN_GROUP', '&&_AIRBASE_SITE_ADMIN')\n\t\t.constant('SMB_RIGHTS_TYPE', {\n\t\t\tadmin: 1,\n\t\t\tfullRights: 2,\n\t\t\tviewRights: 3,\n\t\t\teditRights: 4\n\t\t})\n\t\t.factory('SMB_RIGHTS', ['gettextCatalog', 'PX_PERMISSION_TYPE', 'SMB_SITE_ADMIN_GROUP', function(gettextCatalog, PX_PERMISSION_TYPE, SMB_SITE_ADMIN_GROUP) {\n\t\t\treturn [\n\t\t\t\t{id: '', param: 0, name: ''},\n\t\t\t\t{id: 1, param: PX_PERMISSION_TYPE.FULLCONTROL, name: SMB_SITE_ADMIN_GROUP},\n\t\t\t\t{\n\t\t\t\t\tid: 2,\n\t\t\t\t\tparam: PX_PERMISSION_TYPE.READ | PX_PERMISSION_TYPE.ADDDOC | PX_PERMISSION_TYPE.READDOC | PX_PERMISSION_TYPE.MODDOC | PX_PERMISSION_TYPE.DELDOC | PX_PERMISSION_TYPE.READFOLD | PX_PERMISSION_TYPE.MODFOLD | PX_PERMISSION_TYPE.DNLDDOC,\n\t\t\t\t\tname: gettextCatalog.getString('Full Rights')\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 3,\n\t\t\t\t\tparam: PX_PERMISSION_TYPE.READ | PX_PERMISSION_TYPE.READDOC | PX_PERMISSION_TYPE.READFOLD,\n\t\t\t\t\tname: gettextCatalog.getString('View Rights')\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 4,\n\t\t\t\t\tparam: PX_PERMISSION_TYPE.READ | PX_PERMISSION_TYPE.ADDDOC | PX_PERMISSION_TYPE.READDOC | PX_PERMISSION_TYPE.MODDOC | PX_PERMISSION_TYPE.READFOLD | PX_PERMISSION_TYPE.MODFOLD | PX_PERMISSION_TYPE.DNLDDOC,\n\t\t\t\t\tname: gettextCatalog.getString('Edit Rights')\n\t\t\t\t}\n\t\t\t];\n\t\t}])\n\t\t/**\n\t\t * @ngdoc service\n\t\t * @name smb-app.smbAclService\n\t\t *\n\t\t * @description\n\t\t * A service for easily creating document groups based on the\n\t\t * three different predefined access levels for document groups.\n\t\t */\n\t\t.factory('smbAclService', [\n\t\t\t'$http',\n\t\t\t'$q',\n\t\t\t'pxUriPathService',\n\t\t\t'PX_PERMISSION_TYPE',\n\t\t\t'PX_ACL_CONST',\n\t\t\t'PX_OBJECT_TYPE',\n\t\t\t'SMB_RIGHTS_TYPE',\n\t\t\t'SMB_RIGHTS',\n\t\t\t'SMB_SITE_ADMIN_GROUP',\n\t\t\tAclService\n\t\t]);\n\n\tfunction AclService(\n\t\t$http,\n\t\t$q,\n\t\tpxUriPathService,\n\t\tPX_PERMISSION_TYPE,\n\t\tPX_ACL_CONST,\n\t\tPX_OBJECT_TYPE,\n\t\tSMB_RIGHTS_TYPE,\n\t\tSMB_RIGHTS,\n\t\tSMB_SITE_ADMIN_GROUP\n\t) {\n\n\t\t/**\n\t\t * @description\n\t\t * An object that represents a single user group's access level to\n\t\t * a single document group.\n\t\t *\n\t\t * @param {any} right The access rights for the document group and user group\n\t\t * @param {any} objectType The object type; can be document, document group, or document type. Almost always library.\n\t\t * @param {any} objectId The id of the object; typically the document group id.\n\t\t * @param {any} userGroup The user group the access rights are for.\n\t\t */\n\t\tfunction Acl(right, objectType, objectId, userGroup) {\n\t\t\tthis._right = right;\n\t\t\tthis._objectType = objectType;\n\t\t\tthis._objectId = objectId;\n\t\t\tthis._userGroup = userGroup;\n\t\t}\n\n\t\t/**\n\t\t * @description\n\t\t * Returns true if the acl represents admin rights to the given object.\n\t\t *\n\t\t * @returns {Boolean} True if the acl represents admin rights and false otherwise.\n\t\t */\n\t\tAcl.prototype.hasAdminAccess = function hasAdminAccess() {\n\t\t\treturn this._right.id === SMB_RIGHTS_TYPE.admin;\n\t\t};\n\n\t\t/**\n\t\t * @description\n\t\t * Returns true if the acl represents full access rights to the given object.\n\t\t *\n\t\t * @returns {Boolean} True if the acl represents full access rights and false otherwise.\n\t\t */\n\t\tAcl.prototype.hasFullAccess = function hasFullAccess() {\n\t\t\treturn this.hasAllPermissions(SMB_RIGHTS[SMB_RIGHTS_TYPE.fullRights].param);\n\t\t};\n\n\t\t/**\n\t\t * @description\n\t\t * Returns true if the acl represents view access rights to the given object\n\t\t *\n\t\t * @returns {Boolean} True if the acl represents view access rights and false otherwise.\n\t\t */\n\t\tAcl.prototype.hasViewAccess = function hasViewAccess() {\n\t\t\treturn this.hasAllPermissions(SMB_RIGHTS[SMB_RIGHTS_TYPE.viewRights].param);\n\t\t};\n\n\t\t/**\n\t\t * @description\n\t\t * Returns true if the acl represents edit access rights to the given object.\n\t\t */\n\t\tAcl.prototype.hasEditAccess = function hasEditAccess() {\n\t\t\treturn this.hasAllPermissions(SMB_RIGHTS[SMB_RIGHTS_TYPE.editRights].param);\n\t\t};\n\n\t\t/**\n\t\t * Check if the ACL has all of the specified permissions.\n\t\t *\n\t\t * @param {number} perm The permissions to check against the acl.\n\t\t * @returns {boolean} True if the instance has access to all given permissions and false otherwise.\n\t\t */\n\t\tAcl.prototype.hasAllPermissions = function hasAllPermissions(perm) {\n\t\t\treturn (this._right.param & perm) === perm;\n\t\t};\n\n\t\t/**\n\t\t * @description\n\t\t * Creates an object that represents the acl type expected by the Phoenix API.\n\t\t *\n\t\t * @returns {Object} An ACL object that is compatible with the Phoenix API.\n\t\t */\n\t\tAcl.prototype.toServerAcl = function() {\n\t\t\tvar serverAcl = {\n\t\t\t\tRoleName: null,\n\t\t\t\tUserGroupId: this._userGroup.UserGroupId,\n\t\t\t\tUserGroupName: this._userGroup.UserGroupName,\n\t\t\t\tEmbedded: { Permissions: [] }\n\t\t\t};\n\n\t\t\tswitch (this._objectType) {\n\t\t\t\tcase PX_OBJECT_TYPE.DOCUMENT:\n\t\t\t\t\tserverAcl.DocumentId = this._objectId;\n\t\t\t\t\tbreak;\n\t\t\t\tcase PX_OBJECT_TYPE.FOLDER:\n\t\t\t\t\tserverAcl.FolderId = this._objectId;\n\t\t\t\t\tbreak;\n\t\t\t\tcase PX_OBJECT_TYPE.LIBRARY:\n\t\t\t\t\tserverAcl.LibraryId = this._objectId;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar permissionVal = PX_PERMISSION_TYPE.FULLCONTROL;\n\t\t\twhile (permissionVal < PX_ACL_CONST.MaxPermission) {\n\t\t\t\tvar newPerm = {\n\t\t\t\t\tPermissionValue: permissionVal,\n\t\t\t\t\tAllow: false,\n\t\t\t\t\tDeny: false\n\t\t\t\t};\n\n\t\t\t\tif (this._right.id === SMB_RIGHTS_TYPE.admin) {\n\t\t\t\t\tnewPerm.Allow = permissionVal === PX_PERMISSION_TYPE.FULLCONTROL;\n\t\t\t\t} else if (this._right.id === SMB_RIGHTS_TYPE.fullRights) {\n\t\t\t\t\tnewPerm.Allow = permissionVal === PX_PERMISSION_TYPE.READ ||\n\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.ADDDOC ||\n\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.MODDOC ||\n\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.READDOC ||\n\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.DELDOC ||\n\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.READFOLD ||\n\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.DNLDDOC ||\n\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.MODFOLD;\n\t\t\t\t} else if (this._right.id === SMB_RIGHTS_TYPE.viewRights) {\n\t\t\t\t\tnewPerm.Allow = permissionVal === PX_PERMISSION_TYPE.READ ||\n\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.READDOC ||\n\t\t\t\t\t\tpermissionVal === PX_PERMISSION_TYPE.READFOLD;\n\t\t\t\t} else if (this._right.id === SMB_RIGHTS_TYPE.editRights) {\n\t\t\t\t\tvar x = this._right.param & permissionVal;\n\t\t\t\t\tnewPerm.Allow = x === permissionVal;\n\t\t\t\t}\n\n\t\t\t\tserverAcl.Embedded.Permissions.push(newPerm);\n\n\t\t\t\tif (permissionVal < 0) {\n\t\t\t\t\tpermissionVal = 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* jshint -W016 */\n\t\t\t\t\tpermissionVal <<= 1;\n\t\t\t\t\t/* jshint +W016 */\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn serverAcl;\n\t\t};\n\n\t\tObject.defineProperties(Acl.prototype, {\n\t\t\t'objectId': {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\tget: function() { return this._objectId; }\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * @description\n\t\t * A factory method that creates an Acl instance from a Phoenix API representation\n\t\t * of an ACL.\n\t\t *\n\t\t * @param {Object} serverAcl A Phoenix API ACL object.\n\t\t *\n\t\t * @returns {Acl} An Acl instance that represents the API acl.\n\t\t */\n\t\tAcl.fromServerAcl = function fromServerAcl(serverAcl) {\n\t\t\tvar rights = SMB_RIGHTS.find(function(r) {\n\t\t\t\treturn r.param === serverAcl.Privileges;\n\t\t\t});\n\n\t\t\tif (!rights) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn new Acl(rights, serverAcl.LibraryId, {\n\t\t\t\tUserGroupId: serverAcl.UserGroupId,\n\t\t\t\tUserGroupName: serverAcl.UserGroupName\n\t\t\t});\n\t\t};\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbAclService#createAdminRights\n\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Creates and admin level acl for a document group\n\t\t\t *\n\t\t\t * @param {ObjectId} documentGroupId The document group to create the acl for\n\t\t\t * @param {ObjectId} userGroupId Id of the admin user group.\n\t\t\t *\n\t\t\t * @returns {Acl} An instance of @see Acl\n\t\t\t */\n\t\t\tcreateAdminRights: createAdminRights,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbAclService#createFullAccessRights\n\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Creates a full access level acl for a specific document group\n\t\t\t *\n\t\t\t * @param {ObjectId} documentGroupId The document group to create the acl for\n\t\t\t * @param {Object} userGroup The user group to create the ACL for\n\t\t\t */\n\t\t\tcreateFullAccessRights: createFullAccessRights,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbAclService#createViewAccessRights\n\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Creates a view access acl for a specific document group\n\t\t\t *\n\t\t\t * @param {ObjectId} documentGroupId The document group id to create the acl for\n\t\t\t * @param {Object} userGroup The user group to create the acl for\n\t\t\t */\n\t\t\tcreateViewAccessRights: createViewAccessRights,\n\n\t\t\tcreateEditAccessRights: createEditAccessRights,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbAclService#saveDocumentGroupAcls\n\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Save a list of Acl objects for a specific document group.\n\t\t\t *\n\t\t\t * @param {ObjectId} documentGroupId The id of the document group to save the acls to\n\t\t\t * @param {Acl[]} acls An array of Acl objects.\n\t\t\t *\n\t\t\t * @returns {Promise} An object that resolves to an array of the Acl objects\n\t\t\t * that were just saved.\n\t\t\t */\n\t\t\tsaveDocumentGroupAcls: saveDocumentGroupAcls,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbAclService#getUserPermissionsForDocumentGroup\n\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Gets the current user's permission for a document group.\n\t\t\t *\n\t\t\t * @param {ObjectId} documentGroupId The id of the document group whose user permissions are being retrieved.\n\t\t\t *\n\t\t\t * @returns {Promise} A promise that resolves to an Acl object.\n\t\t\t */\n\t\t\tgetUserPermissionsForDocumentGroup: getUserPermissionsForDocumentGroup,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbAclService#getUserPermissionsForDocumentType\n\t\t\t * @methodOf smb-app.smbAclService\n\t\t\t * @kind function\n\t\t\t *\n\t\t\t * @description\n\t\t\t * Gets the current user's permission for a document type.\n\t\t\t *\n\t\t\t * @param {ObjectId} documentTypeId The id of the document type whose user permissions are being retrieved.\n\t\t\t *\n\t\t\t * @returns {Promise} A promise that resolves to an Acl object.\n\t\t\t */\n\t\t\tgetUserPermissionsForDocumentType: getUserPermissionsForDocumentType\n\t\t};\n\n\t\tfunction createAdminRights(documentGroupId, userGroupId) {\n\t\t\treturn new Acl(SMB_RIGHTS[SMB_RIGHTS_TYPE.admin], PX_OBJECT_TYPE.LIBRARY, documentGroupId, {\n\t\t\t\tUserGroupId: userGroupId,\n\t\t\t\tUserGroupName: SMB_SITE_ADMIN_GROUP\n\t\t\t});\n\t\t}\n\n\t\tfunction createFullAccessRights(documentGroupId, userGroup) {\n\t\t\treturn new Acl(SMB_RIGHTS[SMB_RIGHTS_TYPE.fullRights], PX_OBJECT_TYPE.LIBRARY, documentGroupId, userGroup);\n\t\t}\n\n\t\tfunction createViewAccessRights(documentGroupId, userGroup) {\n\t\t\treturn new Acl(SMB_RIGHTS[SMB_RIGHTS_TYPE.viewRights], PX_OBJECT_TYPE.LIBRARY, documentGroupId, userGroup);\n\t\t}\n\n\t\tfunction createEditAccessRights(documentGroupId, userGroup) {\n\t\t\treturn new Acl(SMB_RIGHTS[SMB_RIGHTS_TYPE.editRights], PX_OBJECT_TYPE.LIBRARY, documentGroupId, userGroup);\n\t\t}\n\n\t\tfunction saveDocumentGroupAcls(documentGroupId, acls) {\n\t\t\tvar url = pxUriPathService.resolvePath('/libraries/' + documentGroupId + '/permissions/replace');\n\t\t\tacls = acls.map(function(acl) { return acl.toServerAcl(); });\n\t\t\treturn $http.post(url, acls)\n\t\t\t\t.then(function() { return acls; });\n\t\t}\n\n\t\tfunction getUserPermissionsForDocumentGroup(documentGroupId) {\n\t\t\tvar url = '/libraries/' + documentGroupId + '/permissionsforuser';\n\t\t\treturn $http.get(pxUriPathService.resolvePath(url))\n\t\t\t\t.then(function(res) { return res.data; })\n\t\t\t\t.then(getAclWithMostAccess)\n\t\t\t\t.then(Acl.fromServerAcl);\n\t\t}\n\n\t\tfunction getUserPermissionsForDocumentType(documentTypeId) {\n\t\t\tvar url = '/f/' + documentTypeId + '/permissionsforuser';\n\t\t\treturn $http.get(pxUriPathService.resolvePath(url))\n\t\t\t\t.then(function(res) { return res.data; })\n\t\t\t\t.then(getAclWithMostAccess)\n\t\t\t\t.then(Acl.fromServerAcl);\n\t\t}\n\n\t\tfunction getAclWithMostAccess(acls) {\n\t\t\treturn acls.reduce(function(prev, curr) {\n\t\t\t\tvar cmp = cmpAcl(prev, curr);\n\t\t\t\treturn cmp <= 0 ? prev : curr;\n\t\t\t});\n\t\t}\n\n\t\tfunction cmpAcl(acl1, acl2) {\n\t\t\treturn acl2.Privileges - acl1.Privileges;\n\t\t}\n\n\t\tfunction filterOwnerAcl(acl) {\n\t\t\treturn acl.RoleName !== 'Owner';\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/aclService.js\n// module id = 134\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeConfigService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', ContentTypeConfigService]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeConfigService\n\t * \n\t * @description\n\t * Exposes methods for retrieving, updating, and creating content types.\n\t */\n\tfunction ContentTypeConfigService($http, $q, gettextCatalog, pxUriPathService) {\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeConfigService.getContentType\n\t\t\t * @methodOf smb-app.smbContentTypeConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Retrieves a single content type by id.\n\t\t\t * \n\t\t\t * @param {String} groupId Id of the content type group the type belongs to\n\t\t\t * @param {String} id The id of the content type to retrieve.\n\t\t\t * \n\t\t\t * @returns {Deferred} Returns a promise that resolves to the content type.\n\t\t\t */\n\t\t\tgetContentType: getContentType,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeConfigService.addContentType\n\t\t\t * @methodOf smb-app.smbContentTypeConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Creates a new content type that belongs to a specific content type group\n\t\t\t * \n\t\t\t * @param {String} groupId Id of the content type group the new content type belongs to\n\t\t\t * @param {Object} contentType An object that represents the new content type\n\t\t\t * \n\t\t\t * @returns {Deferred} Returns a promise that resolves to the newly created content type.\n\t\t\t */\n\t\t\taddContentType: addContentType,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeConfigService.updateContentType\n\t\t\t * @methodOf smb-app.smbContentTypeConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Updates an existing content type\n\t\t\t * \n\t\t\t * @returns {Deferred} Returns a promise that resolves to the updated content type.\n\t\t\t */\n\t\t\tupdateContentType: updateContentType\n\t\t};\n\n\t\tfunction getContentType(groupId, id) {\n\t\t\tif (!id) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type id')));\n\t\t\t}\n\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + id);\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction addContentType(groupId, contentType) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t} else if (!contentType) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type')));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/folders');\n\t\t\treturn $http.post(uri, contentType)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction updateContentType(groupId, contentType) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t} else if (!contentType) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type')));\n\t\t\t}\n\t\t\treturn $http.patch(pxUriPathService.resolvePath('/f/' + contentType.FolderId), contentType)\n\t\t\t\t.then(function(res) {\n\t\t\t\t\treturn res.data;\n\t\t\t\t});\n\t\t}\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentConfigServices/contentTypeConfigService.js\n// module id = 135\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeGroupConfigService',\n\t\t[\n\t\t\t'$http',\n\t\t\t'pxUriPathService',\n\t\t\tContentTypeGroupConfigService\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeGroupConfigService\n\t * \n\t * @description\n\t * A service that exposes methods for creating and updating content type groups.\n\t */\n\tfunction ContentTypeGroupConfigService($http, pxUriPathService) {\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupConfigService#createContentTypeGroup\n\t\t\t * @methodOf smb-app.smbContentTypeGroupConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Creates a new content type group in the system.\n\t\t\t * \n\t\t\t * @param {Object} group An object representing the content type group to create\n\t\t\t *\n\t\t\t * @returns {Promise} A promise that resolves to the newly created content type group\n\t\t\t */\n\t\t\tcreateContentTypeGroup: createContentTypeGroup,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupConfigService#createContentTypeGroup\n\t\t\t * @methodOf smb-app.smbContentTypeGroupConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Saves changes made to an existing content type group\n\t\t\t * \n\t\t\t * @param {Object} group An object that represents an existing content type group\n\t\t\t * \n\t\t\t * @returns {Promise} A promise that resolves to the content type group that was changed\n\t\t\t */\n\t\t\teditContentTypeGroup: editContentTypeGroup\n\t\t};\n\n\t\tfunction createContentTypeGroup(group) {\n\t\t\treturn $http.post(pxUriPathService.resolvePath('/libraries'), group)\n\t\t\t\t.then(function (res) { return res.data; });\n\t\t}\n\n\t\tfunction editContentTypeGroup(group) {\n\t\t\treturn $http.patch(pxUriPathService.resolvePath('/libraries/' + group.LibraryId), group)\n\t\t\t\t.then(function(res) {\n\t\t\t\t\treturn res.data;\n\t\t\t\t});\n\t\t}\t\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentConfigServices/contentTypeGroupConfigService.js\n// module id = 136\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeGroupTagTypeConfigService', [\n\t\t\t'$http',\n\t\t\t'$q',\n\t\t\t'pxUriPathService',\n\t\t\tContentTypeGroupTagTypeConfigService\n\t\t]);\n\n\t/**\n\t * @typedef {Object} TagTypeConstraints\n\t * @property {String} DefaultValue A default value for a tag type\n\t * @property {String[]} DataSetValues An array of values for the tag type. If this exists\n\t * the tag type value must be one of the values in this array.\n\t */\n\n\t/**\n\t * @typedef {Object} TagTypeLinks\n\t * @property {String} TagValuesUri Uri to get all tag values associated to a tag type.\n\t * @property {String} DataSetValuesUri Uri to get the data set values for a tag type.\n\t */\n\t\n\t/**\n\t * @typedef {Object} TagType\n\t * @property {Number} TagTypeId The unique id of the tag type.\n\t * @property {String} TagTypeName The name of the tag type.\n\t * @property {String} FlavorName The flavor name? TODO: Not sure what this is\n\t * @property {Number} DataType Numeric representation of the data type.\n\t * @property {String} DataTypeName String representation of the data type.\n\t * @property {TagTypeConstraints} Constraints The contraints for the tag type.\n\t * @property {TagTypeLinks} Links The related links for a tag type.\n\t */\n\n\t/**\n\t * @typedef {Object} CreateTagType\n\t * @description\n\t * Defines the minimum required properties on an object used to create a new tag type.\n\t * @property {String} TagTypeName The name for the new tag type.\n\t * @property {Number} DataType Numeric representation of the tag types data type.\n\t * @property {TagTypeConstraints} Contraints Can optionally specify the constraints when creating the tag type.\n\t */\n\n\t/**\n\t* @ngdoc service\n\t* @name smb-app.smbContentTypeGroupTagTypeConfigService\n\t*\n\t* @description\n\t* Exposes methods for configuring tag types for content type groups\n\t*/\n\tfunction ContentTypeGroupTagTypeConfigService($http, $q, pxUriPathService) {\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupTagTypeConfigService#getTagTypes\n\t\t\t * @methodOf smb-app.smbContentTypeGroupTagTypeConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets the collection of all tag types associated with a content type group.\n\t\t\t * \n\t\t\t * @param {String} groupId Id of the content type group\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that resolves to a collection of\n\t\t\t * all TagType objects associated with the content type group.\n\t\t\t */\n\t\t\tgetTagTypes: getTagTypes,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupTagTypeConfigService#createTagType\n\t\t\t * @methodOf smb-app.smbContentTypeGroupTagTypeConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Creates a new tag type and associates it with a content type group.\n\t\t\t * \n\t\t\t * @param {String} groupId Id of the content type group to associate the\n\t\t\t * new tag type with.\n\t\t\t * @param {CreateTagType} tagType The tag type object to create\n\t\t\t * \n\t\t\t * @returns {Deferred} Returns a promise that resolves to the newly\n\t\t\t * created tag type.\n\t\t\t */\n\t\t\tcreateTagType: createTagType,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupTagTypeConfigService#editTagType\n\t\t\t * @methodOf smb-app.smbContentTypeGroupTagTYpeConfigService\n\t\t\t * @kind method\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Saves changes to an existing tag type.\n\t\t\t * \n\t\t\t * @param {ObjectId} groupId Id the the document type group that owns the tag type.\n\t\t\t * @param {TagType} tagType The tag type object to update\n\t\t\t * \n\t\t\t * @returns {Promise} A promise that resolves to the tag type that was updated.\n\t\t\t */\n\t\t\teditTagType: editTagType\n\t\t};\n\n\t\tfunction getTagTypes(groupId) {\n\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/tagtypes');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function(res) {\n\t\t\t\t\treturn res.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction createTagType(groupId, tagType) {\n\t\t\tif (!tagType) {\n\t\t\t\treturn $q.reject(new Error('Invalid request: Must specify the tag type to create'));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/tagtypes');\n\t\t\treturn $http.post(uri, tagType)\n\t\t\t\t.then(function(res) {\n\t\t\t\t\treturn res.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction editTagType(groupId, tagType) {\n\t\t\tvar url = '/libraries/' + groupId + '/tagtypes/' + tagType.TagTypeId;\n\t\t\treturn $http.patch(pxUriPathService.resolvePath(url), tagType)\n\t\t\t\t.then(function(res) { return res.data; });\n\t\t}\n\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentConfigServices/contentTypeGroupTagTypeConfigService.js\n// module id = 137\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeTagTypeConfigService', [\n\t\t\t'$http',\n\t\t\t'$q',\n\t\t\t'pxUriPathService',\n\t\t\tContentTypeTagTypeConfigService\n\t\t]);\n\n\t/**\n\t * @typedef {Object} TagTypeAssoication\n\t * @param {Number} TagTypeId The id of the tag type being associated with an item\n\t */\n\n\t/**\n\t* @ngdoc service\n\t* @name smb-app.smbContentTypeTagTypeConfigService\n\t*\n\t* @description\n\t* Exposes methods for adding and removing index types from a library\n\t*/\n\tfunction ContentTypeTagTypeConfigService($http, $q, pxUriPathService) {\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeTagTypeConfigService#getTagTypes\n\t\t\t * @methodOf smb-app.smbContentTypeTagTypeConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets all tag types that are associated with a content type.\n\t\t\t * \n\t\t\t * @param {String|Number} id The content type id\n\t\t\t * \n\t\t\t * @returns {Promise} A promise that resolves to a collection of @see TagType objects.\n\t\t\t */\n\t\t\tgetTagTypes: getTagTypes,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeTagTypeConfigService#setTagTypes\n\t\t\t * @methodOf smb-app.smbContentTypeTagTypeConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Sets the tag type associations for a single content type. This function will\n\t\t\t * completely replace the current set of associations on the content type with\n\t\t\t * this new set.\n\t\t\t * \n\t\t\t * @param {String|Number} id The content type id\n\t\t\t * @param {TagTypeAssoication[]} associations The collection of tag type associations to\n\t\t\t * put on the content type. \n\t\t\t */\n\t\t\tsetTagTypes: setTagTypes\n\t\t};\n\n\t\tfunction getTagTypes(id) {\n\t\t\tif (!(typeof id === 'string' || typeof id === 'number')) {\n\t\t\t\treturn $q.reject(new Error('Missing required document type id'));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + id + '/tagtypes');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function(res) {\n\t\t\t\t\treturn res.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setTagTypes(id, associations) {\n\t\t\tif (!(typeof id === 'string' || typeof id === 'number')) {\n\t\t\t\treturn $q.reject(new Error('Missing required document type id'));\n\t\t\t} else if (!associations) {\n\t\t\t\treturn $q.reject(new Error('Must specify the associations to add to the document type.'));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + id + '/tagtypes');\n\t\t\treturn $http.put(uri, associations)\n\t\t\t\t.then(function() {\n\t\t\t\t\treturn associations;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentConfigServices/contentTypeTagTypeConfigService.js\n// module id = 138\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbStatusConfigService', [\n\t\t\t'$http',\n\t\t\t'$q',\n\t\t\t'pxUriPathService',\n\t\t\tStatusConfigService\n\t\t]);\n\n\tfunction StatusConfigService($http, $q, pxUriPathService) {\n\n\t\treturn {\n\t\t\tgetStatuses: getStatuses,\n\n\t\t\tsetStatuses: setStatuses\n\t\t};\n\n\t\tfunction getStatuses(groupId) {\n\t\t\tif (!(typeof groupId === 'string' || typeof groupId === 'number')) {\n\t\t\t\treturn $q.reject(new Error('Missing required document type group id'));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/tagtypes');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function(res) {\n\t\t\t\t\treturn res.data.filter(function statuses(tt) {\n\t\t\t\t\t\treturn tt.TagTypeName.match(/&&_AirBase_.*/);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setStatuses(folderId, tagTypeId, constraints) {\n\t\t\tif (!(typeof folderId === 'string' || typeof folderId === 'number')) {\n\t\t\t\treturn $q.reject(new Error('Missing required document type id'));\n\t\t\t} else if (!constraints) {\n\t\t\t\treturn $q.reject(new Error('Must specify the constraints to add to the document type.'));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + folderId + '/tagtypes/' + tagTypeId + '/constraints');\n\t\t\treturn $http.put(uri, constraints)\n\t\t\t\t.then(function() {\n\t\t\t\t\treturn constraints;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentConfigServices/statusConfigService.js\n// module id = 139\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentSearchService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', ContentSearchService]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypesService\n\t * \n\t * @description\n\t * Exposes methods for retrieving content types that belong to a content\n\t * type group.\n\t */\n\tfunction ContentSearchService($http, $q, gettextCatalog, pxUriPathService) {\n\t\t\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypesService.getContentTypes\n\t\t\t * @methodOf smb-app.smbContentTypesService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets all content types the belong to a content type group\n\t\t\t * \n\t\t\t * @param {Number} groupId Id of the content type group\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that will resolve to a collection of content types\n\t\t\t */\n\t\t\tgetDocuments: getDocuments,\n\n\t\t\tgetContentTypeGroupSearchResults: getContentTypeGroupSearchResults\n\t\t};\n\n\t\tfunction getDocuments(groupId, typeId, tagValues) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/documenttypes/' + typeId + '/search');\n\t\t\treturn $http.post(uri, tagValues)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data.Embedded.Documents;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getContentTypeGroupSearchResults(groupId, tagValues) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/documenttypegroups/' + groupId + '/search');\n\t\t\treturn $http.post(uri, tagValues)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data.Embedded.Documents;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentSearchService.js\n// module id = 140\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeAcls', [\n\t\t\t'SMB_RIGHTS_TYPE',\n\t\t\t'SMB_RIGHTS',\n\t\t\tfunction(SMB_RIGHTS_TYPE, SMB_RIGHTS) {\n\t\t\t\treturn {\n\t\t\t\t\tVIEW_RIGHTS: SMB_RIGHTS[SMB_RIGHTS_TYPE.viewRights].param,\n\t\t\t\t\tFULL_RIGHTS: SMB_RIGHTS[SMB_RIGHTS_TYPE.fullRights].param,\n\t\t\t\t\tEDIT_RIGHTS: SMB_RIGHTS[SMB_RIGHTS_TYPE.editRights].param,\n\t\t\t\t\tREAD_DOCUMENTS: 16,\n\t\t\t\t\tCREATE_DOCUMENTS: 8,\n\t\t\t\t\tMODIFY_DOCUMENTS: 2\n\t\t\t\t};\n\t\t\t}\n\t\t]);\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentTypeAcls.js\n// module id = 141\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeGroupsSearchService',\n\t\t[\n\t\t\t'$http',\n\t\t\t'pxUriPathService',\n\t\t\t'smbContentTypeAcls',\n\t\t\tContentTypeGroupsSearchService\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeGroupsService\n\t * \n\t * @description\n\t * A service that exposes methods for creating and updating content type groups.\n\t */\n\tfunction ContentTypeGroupsSearchService($http, pxUriPathService, smbContentTypeAcls) {\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupsService#createContentTypeGroup\n\t\t\t * @methodOf smb-app.smbContentTypeGroupsService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Creates a new content type group in the system.\n\t\t\t * \n\t\t\t * @param {Object} group An object representing the content type group to create\n\t\t\t *\n\t\t\t * @returns {Promise} A promise that resolves to the newly created content type group\n\t\t\t */\n\t\t\tgetAllContentTypeGroups: getAllContentTypeGroups,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupsService#createContentTypeGroup\n\t\t\t * @methodOf smb-app.smbContentTypeGroupsService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Saves changes made to an existing content type group\n\t\t\t * \n\t\t\t * @param {Object} group An object that represents an existing content type group\n\t\t\t * \n\t\t\t * @returns {Promise} A promise that resolves to the content type group that was changed\n\t\t\t */\n\t\t\tgetFullAccessContentTypeGroups: getFullAccessContentTypeGroups\n\t\t};\n\n\t\tfunction getAllContentTypeGroups() {\n\t\t\treturn $http.get(pxUriPathService.resolvePath('/libraries?acl=' + smbContentTypeAcls.READ_DOCUMENTS))\n\t\t\t\t.then(function (res) { return res.data.filter(function (lib) {\n\t\t\t\t\treturn !lib.IsPrivate;\n\t\t\t\t}); \n\t\t\t});\n\t\t}\n\n\t\tfunction getFullAccessContentTypeGroups() {\n\t\t\treturn $http.get(pxUriPathService.resolvePath('/libraries?acl=' + smbContentTypeAcls.CREATE_DOCUMENTS))\n\t\t\t\t.then(function (res) { return res.data.filter(function (lib) {\n\t\t\t\t\treturn !lib.IsPrivate;\n\t\t\t\t}); \n\t\t\t});\n\t\t}\t\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentTypeGroupsSearchService.js\n// module id = 142\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypeGroupsService',\n\t\t[\n\t\t\t'$http',\n\t\t\t'pxUriPathService',\n\t\t\t'smbContentTypeAcls',\n\t\t\tContentTypeGroupsService\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypeGroupsService\n\t * \n\t * @description\n\t * A service that exposes methods for creating and updating content type groups.\n\t */\n\tfunction ContentTypeGroupsService($http, pxUriPathService, smbContentTypeAcls) {\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupsService#createContentTypeGroup\n\t\t\t * @methodOf smb-app.smbContentTypeGroupsService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Creates a new content type group in the system.\n\t\t\t * \n\t\t\t * @param {Object} group An object representing the content type group to create\n\t\t\t *\n\t\t\t * @returns {Promise} A promise that resolves to the newly created content type group\n\t\t\t */\n\t\t\tgetAllContentTypeGroups: getAllContentTypeGroups,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypeGroupsService#createContentTypeGroup\n\t\t\t * @methodOf smb-app.smbContentTypeGroupsService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Saves changes made to an existing content type group\n\t\t\t * \n\t\t\t * @param {Object} group An object that represents an existing content type group\n\t\t\t * \n\t\t\t * @returns {Promise} A promise that resolves to the content type group that was changed\n\t\t\t */\n\t\t\tgetFullAccessContentTypeGroups: getFullAccessContentTypeGroups\n\t\t};\n\n\t\tfunction getAllContentTypeGroups() {\n\t\t\treturn $http.get(pxUriPathService.resolvePath('/libraries?acl=' + smbContentTypeAcls.READ_DOCUMENTS))\n\t\t\t\t.then(function (res) { return res.data.filter(function (lib) {\n\t\t\t\t\treturn !lib.IsPrivate;\n\t\t\t\t}); \n\t\t\t});\n\t\t}\n\n\t\tfunction getFullAccessContentTypeGroups() {\n\t\t\treturn $http.get(pxUriPathService.resolvePath('/libraries?acl=' + smbContentTypeAcls.CREATE_DOCUMENTS))\n\t\t\t\t.then(function (res) { return res.data.filter(function (lib) {\n\t\t\t\t\treturn !lib.IsPrivate;\n\t\t\t\t}); \n\t\t\t});\n\t\t}\t\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentTypeGroupsService.js\n// module id = 143\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypesSearchService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', ContentTypesSearchService]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypesService\n\t * \n\t * @description\n\t * Exposes methods for retrieving content types that belong to a content\n\t * type group.\n\t */\n\tfunction ContentTypesSearchService($http, $q, gettextCatalog, pxUriPathService) {\n\t\t\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypesService.getContentTypes\n\t\t\t * @methodOf smb-app.smbContentTypesService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets all content types the belong to a content type group\n\t\t\t * \n\t\t\t * @param {Number} groupId Id of the content type group\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that will resolve to a collection of content types\n\t\t\t */\n\t\t\tgetContentTypes: getContentTypes\n\t\t};\n\n\t\tfunction getContentTypes(groupId) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/folders');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data.filter(function (lib) {\n\t\t\t\t\t\t\t\t\t\t\treturn !lib.IsPrivate;\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentTypesSearchService.js\n// module id = 144\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbContentTypesService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', ContentTypesService]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypesService\n\t * \n\t * @description\n\t * Exposes methods for retrieving content types that belong to a content\n\t * type group.\n\t */\n\tfunction ContentTypesService($http, $q, gettextCatalog, pxUriPathService) {\n\t\t\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypesService.getContentTypes\n\t\t\t * @methodOf smb-app.smbContentTypesService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets all content types the belong to a content type group\n\t\t\t * \n\t\t\t * @param {Number} groupId Id of the content type group\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that will resolve to a collection of content types\n\t\t\t */\n\t\t\tgetContentTypes: getContentTypes,\n\t\t\tdeleteContentType: deleteContentType\n\t\t};\n\n\t\tfunction getContentTypes(groupId) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/folders');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction deleteContentType(typeId, purge) {\n\t\t\tif (!typeId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type id')));\n\t\t\t}\n\n\t\t\tpurge = typeof(purge) === 'boolean' ? purge : false;\n\t\t\tvar uri = pxUriPathService.resolvePath('/f/{id}?purge={purge}', {\n\t\t\t\tid: typeId,\n\t\t\t\tpurge: purge\n\t\t\t});\n\n\t\t\treturn $http.delete(uri);\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentTypesService.js\n// module id = 145\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbContentUploadService',\n\t\t[\n\t\t\t'$http',\n\t\t\t'$q',\n\t\t\t'pxUriPathService',\n\t\t\tUploadService\n\t\t]);\n\n\tfunction UploadService($http, $q, pxUriPathService) {\n\n\t\tvar chunkSize = 1024 * 512;\n\n\t\treturn {\n\n\t\t\t/**\n\t\t\t* @name uploadFile\n\t\t\t* @kind function\n\t\t\t* @description\n\t\t\t* Uploads a file. This method will chunk the file and upload\n\t\t\t* incrementally so as not to avoid request timeouts and content length \n\t\t\t* restrictions\n\t\t\t*\n\t\t\t* @param {number} folderId - The folder to which this document should be posted\n\t\t\t* @param {Object} file - A file object which was generated by a browser events\n\t\t\t* \n\t\t\t* @returns {Deferred} A promise that will resolve when the file\n\t\t\t* has finished uploading, or a rejection with an error if a problem\n\t\t\t* occurs during the upload process.\n\t\t\t*\n\t\t\t* @example\n\t\t\t* function onFileDrop(e) {\n\t\t\t* e.preventDefault();\n\t\t\t* e.stopPropagation();\n\t\t\t*\n\t\t\t* var files = e.originalEvent.dataTransfer.files;\n\t\t\t* \n\t\t\t* pxUpload.uploadFile(folderId, files[0])\n\t\t\t* .then(function() {\n\t\t\t* console.log('success!');\n\t\t\t* })\n\t\t\t* .catch(function(){\n\t\t\t* console.log('error!');\n\t\t\t* })\n\t\t\t* }\n\t\t\t*/\n\t\t\tuploadFile: uploadFile,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name uploadRevision\n\t\t\t * @kind function\n\t\t\t * @description\n\t\t\t * Upload a file that will be saved as a new revision to an existing document.\n\t\t\t * \n\t\t\t * @param {Number} documentId The id of the document the revision belongs to.\n\t\t\t * @param {Object} file A file object that was generated by browser events.\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that will resolve when the file has finished\n\t\t\t * uploading, or a rejection with an error if a problem occurs during the upload process.\n\t\t\t */\n\t\t\tuploadRevision: uploadRevision,\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name revisionUploadSuccess\n\t\t\t * @kind property\n\t\t\t * @description\n\t\t\t * Event that gets emitted when a new revision has been successfully uploaded.\n\t\t\t */\n\t\t\tget revisionUploadSuccess() { return '@AirBase/RevisionUploadSuccess'; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name revisionUploadClickHandler\n\t\t\t * @kind property\n\t\t\t * @description\n\t\t\t * Click handler for revision upload buttons. Had to do it this way because\n\t\t\t * the button click wasn't natively invoking the file input when there is an\n\t\t\t * element within the button as well.\n\t\t\t * \n\t\t\t * @param {Object} scope Angular scope element for the target directive\n\t\t\t * @param {Object} element Angular element that represents the directive\n\t\t\t * @param {String} targetButton HTML id of the target button\n\t\t\t * @param {String} targetInput HTML id of the target file input\n\t\t\t */\n\t\t\trevisionUploadClickHandler: revisionUploadClickHandler\n\t\t};\n\n\t\tfunction revisionUploadClickHandler(scope, element, targetButton, targetInput) {\n\t\t\tvar buttons = element.find('button');\n\t\t\tvar inputs = element.find('input');\n\n\t\t\tvar revisionButton;\n\t\t\tvar props = Object.keys(buttons).filter(function(k) { return k !== 'length'; });\n\t\t\tvar prop;\n\t\t\tfor (prop in props) {\n\t\t\t\tif (buttons[prop].getAttribute('id') === targetButton) {\n\t\t\t\t\trevisionButton = buttons[prop];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar revisionInput;\n\t\t\tprops = Object.keys(inputs).filter(function(k) { return k !== 'length'; });\n\t\t\tfor (prop in props) {\n\t\t\t\tif (inputs[prop].getAttribute('id') === targetInput) {\n\t\t\t\t\trevisionInput = inputs[prop];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (revisionButton && revisionInput) {\n\n\t\t\t\tvar clickHandler = function() { revisionInput.click(); };\n\t\t\t\trevisionButton.addEventListener('click', clickHandler);\n\t\t\t\t\n\t\t\t\tscope.$on('$destroy', function() {\n\t\t\t\t\trevisionButton.removeEventListener('click', clickHandler);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction startUpload(id, file, isRevision) {\n\t\t\tvar uri = isRevision === true ? '/documents/{id}/revisions/temp' : '/f/{id}/temp';\n\t\t\turi = pxUriPathService.resolvePath(uri.replace('{id}', id));\n\n\t\t\treturn $http.post(uri, { FileName: file.name})\n\t\t\t\t.then(function(res) {\n\t\t\t\t\treturn res.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction sendChunk(file, uri, offset, chunkSize) {\n\t\t\tvar endOffset = offset + chunkSize;\n\t\t\tif (endOffset >= file.size) {\n\t\t\t\tendOffset = file.size;\n\t\t\t}\n\t\t\t\n\t\t\tvar data = readSlice(file, offset, endOffset);\n\n\t\t\treturn $http.patch(uri, data, {\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/octet-stream'\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction readSlice(file, startByte, endByte) {\n\t\t\tvar fn = 'slice';\n\t\t\t\n\t\t\tif (file.slice) {\n\t\t\t\tfn = 'slice';\n\t\t\t} else if (file.mozSlice) {\n\t\t\t\tfn = 'mozSlice';\n\t\t\t} else if (file.webkitSlice) {\n\t\t\t\tfn = 'webkitSlice';\n\t\t\t}\n\n\t\t\treturn file[fn](startByte, endByte);\n\t\t}\n\n\t\tfunction uploadInChunks(file, serverTempFile) {\n\t\t\tvar patchUri = serverTempFile.Links.Location;\n\n\t\t\treturn $q(function(resolve, reject) {\n\n\t\t\t\t(function chunk(offset, fileData) {\n\t\t\t\t\tif (offset <= file.size) {\n\t\t\t\t\t\treturn sendChunk(file, patchUri, offset, chunkSize)\n\t\t\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\t\t\tchunk(offset + chunkSize, response.data);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(reject);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(fileData);\n\t\t\t\t\t}\n\t\t\t\t}(0));\n\t\t\t\t\n\t\t\t});\n\t\t}\n\n\t\tfunction finalizeUpload(id, fileData, isRevision) {\n\t\t\tvar uri = isRevision === true ? '/documents/{id}/revisions' : '/f/{id}/documents';\n\t\t\turi = pxUriPathService.resolvePath(uri.replace('{id}', id));\n\n\t\t\treturn $http.post(uri, {}, {\n\t\t\t\theaders: {\n\t\t\t\t\t'x-sharebase-fileref': JSON.stringify(fileData)\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Uploads a file to the phoenix API. The file can either be\n\t\t * a new document or a revision to an existing document.\n\t\t * \n\t\t * @private\n\t\t * \n\t\t * @param {Number} id Folder id if uploading a new document and document id if uploading a revision.\n\t\t * @param {Object} file JavaScript file object representing the file to upload.\n\t\t * @param {Boolean} isRevision Flag that indicates if the file is a revision. Set to true to\n\t\t * upload a revion; defaults to false.\n\t\t */\n\t\tfunction _uploadFile(id, file, isRevision) {\n\t\t\treturn startUpload(id, file, isRevision)\n\t\t\t\t.then(function(serverTempFile) {\n\t\t\t\t\treturn uploadInChunks(file, serverTempFile);\n\t\t\t\t})\n\t\t\t\t.then(function(fileData) {\n\t\t\t\t\treturn finalizeUpload(id, fileData, isRevision);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction uploadRevision(documentId, file) {\n\t\t\treturn _uploadFile(documentId, file, true);\n\t\t}\n\n\t\tfunction uploadFile(folderId, file) {\n\t\t\treturn _uploadFile(folderId, file);\n\t\t}\n\t}\n\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/contentUploadService.js\n// module id = 146\n// module chunks = 1","(function(){\n\t'usestrict';\n\tvar deleteDialogTemplateUrl = require('./deleteDialog.template');\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbDeleteDialogService',[\n\t\t\t'$mdDialog',\n\t\t\tDeleteDialogService\n\t\t])\n\t\t.controller('DeleteDialogController', [\n\t\t\t'$mdDialog',\n\t\t\t'title',\n\t\t\t'message',\n\t\t\t'showPurgeOption',\n\t\t\t'purgeText',\n\t\t\tDeleteDialogController\n\t\t]);\n\n\tfunction DeleteDialogService($mdDialog){\n\t\treturn {\n\t\t\tshow: function(event, title, message, showPurgeOption, purgeText) {\t\t\t\n\t\t\t\treturn $mdDialog.show({\n\t\t\t\t\tcontroller: 'DeleteDialogController',\n\t\t\t\t\tcontrollerAs: 'vm',\n\t\t\t\t\ttemplateUrl: deleteDialogTemplateUrl,\n\t\t\t\t\ttargetEvent: event,\n\t\t\t\t\tlocals: {\n\t\t\t\t\t\ttitle: title,\n\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\tshowPurgeOption: showPurgeOption,\n\t\t\t\t\t\tpurgeText: purgeText \n\t\t\t\t\t},\n\t\t\t\t\tclickOutsideToClose: false\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction DeleteDialogController($mdDialog, title, message, showPurgeOption, purgeText) {\n\t\tvar vm = this;\n\t\tvm.title = title;\n\t\tvm.message = message;\n\t\tvm.showPurgeOption = showPurgeOption || false;\n\t\tvm.purgeText = purgeText;\n\t\tvm.permanentlyDelete = false;\n\t\tvm.delete = function() {\n\t\t\t$mdDialog.hide(vm.permanentlyDelete);\n\t\t};\n\t\tvm.cancel = function() {\n\t\t\t$mdDialog.cancel();\n\t\t};\n\t}\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/deleteDialogService/deleteDialogService.js\n// module id = 147\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbDeletedItemsService', [\n\t\t\t'$http',\n\t\t\t'$q',\n\t\t\t'pxUriPathService',\n\t\t\tDeletedItemsService\n\t\t]);\n\n\tfunction DeletedItemsService($http, $q, pxUriPathService) {\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentNotesService#getAdminTrash\n\t\t\t * @methodOf smb-app.smbDeletedItemsService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets the collection of all deleted items from the deployment.\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that resolves to a collection of deleted document objects.\n\t\t\t */\n\t\t\tgetAdminTrash: getAdminTrash,\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentNotesService#purge\n\t\t\t * @methodOf smb-app.smbDeletedItemsService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Permanently deleted the provided item from the system.\n\t\t\t * \n\t\t\t * @param {object} item The trash item to permanently delete.\n\t\t\t *\n\t\t\t * @returns {Deferred} A promise that resolves if the purge succeeded.\n\t\t\t */\n\t\t\tpurge: purge,\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentNotesService#restore\n\t\t\t * @methodOf smb-app.smbDeletedItemsService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Restores the provided item and removes it from trash.\n\t\t\t * \n\t\t\t * @param {object} item The trash item to restore.\n\t\t\t *\n\t\t\t * @returns {Deferred} A promise that resolves to the restored item.\n\t\t\t */\n\t\t\trestore: restore\n\t\t};\n\n\t\tfunction getAdminTrash() {\n\t\t\tvar uri = pxUriPathService.resolvePath('/admin/trash');\n\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function(resp) {\n\t\t\t\t\treturn resp.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction restore(item){\t\n\t\t\tvar p = $q.reject(new Error('Invalid item to restore.'));\n\t\t\tif(item && item.Links) {\t\t\n\t\t\t\tp = $http.patch(item.Links.RestoreUri)\n\t\t\t\t\t.then(function(resp){\n\t\t\t\t\t\treturn resp.data;\n\t\t\t\t\t});\t\t\t\t\n\t\t\t}\n\n\t\t\treturn p;\n\t\t}\n\n\t\tfunction purge(item) {\n\t\t\tvar p = $q.reject(new Error('Must provide a valid item to purge.'));\n\t\t\tif(item && item.Links) {\n\t\t\t\tvar uri = item.Links.Self + '?purge=true';\n\t\t\t\tp = $http.delete(uri);\n\t\t\t}\n\n\t\t\treturn p;\n\t\t}\n\t}\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/deletedItemsService.js\n// module id = 148\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbDocumentHistoryService', [\n\t\t\t'$http',\n\t\t\t'$q',\n\t\t\t'gettextCatalog',\n\t\t\t'pxUriPathService',\n\t\t\tDocumentHistoryService\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbDocumentNotesService\n\t * \n\t * @description\n\t * Exposes methods for retrieving and creating document notes.\n\t */\n\tfunction DocumentHistoryService($http, $q, gettextCatalog, pxUriPathService) {\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentNotesService#getNotes\n\t\t\t * @methodOf smb-app.smbDocumentNotesService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets the collection of all notes for a document\n\t\t\t * \n\t\t\t * @param {String} documentId Id of the document whose notes are being retrieved.\n\t\t\t *\n\t\t\t * @returns {Deferred} A promise that resolves to a collection of @see DocumentNote objects\n\t\t\t */\n\t\t\tgetHistory: getHistory\n\n\t\t};\n\n\t\tfunction getHistory(documentId) {\n\t\t\tif (!documentId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document id')));\n\t\t\t}\n\n\t\t\tvar uri = '/documents/' + documentId + '/activities?top=-1&descend=false';\n\t\t\treturn $http.get(pxUriPathService.resolvePath(uri))\n\t\t\t\t.then(function(response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/documentHistoryService.js\n// module id = 149\n// module chunks = 1","(function () {\n\t'use strict';\n\n\t/**\n\t * @typedef {Object} DocumentNote\n\t * @property {Number} id A unique id for the note object\n\t * @property {String} text The note text\n\t * @property {Date} date Timestamp when the note was created\n\t * @property {Date} lastActivityDate Last date of note activity TODO: Find out exactly what this is\n\t * @property {String} userName Name of the user that created the note\n\t * @property {String} replyToUrl A link for replying to the note TODO: Don't know if we are supporting this\n\t */\n\n\t/**\n\t * @typedef {Object} NewDocumentNote\n\t * @description\n\t * An object that represents a new document note\n\t * @property {String} text The note text\n\t */\n\n\tangular.module('smb-app')\n\t\t.factory('smbDocumentNotesService', [\n\t\t\t'$http',\n\t\t\t'$q',\n\t\t\t'gettextCatalog',\n\t\t\t'pxUriPathService',\n\t\t\tDocumentNotesService\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbDocumentNotesService\n\t * \n\t * @description\n\t * Exposes methods for retrieving and creating document notes.\n\t */\n\tfunction DocumentNotesService($http, $q, gettextCatalog, pxUriPathService) {\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentNotesService#getNotes\n\t\t\t * @methodOf smb-app.smbDocumentNotesService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets the collection of all notes for a document\n\t\t\t * \n\t\t\t * @param {String} documentId Id of the document whose notes are being retrieved.\n\t\t\t *\n\t\t\t * @returns {Deferred} A promise that resolves to a collection of @see DocumentNote objects\n\t\t\t */\n\t\t\tgetNotes: getNotes,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbDocumentNotesService#createNote\n\t\t\t * @methodOf smb-app.smbDocumentNotesService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Create a new note for a document\n\t\t\t * \n\t\t\t * @param {NewDocumentNote} An object representing a new document note\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that resolves to the newly created document note.\n\t\t\t */\n\t\t\tcreateNote: createNote\n\t\t};\n\n\t\tfunction getNotes(documentId) {\n\t\t\tif (!documentId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document id')));\n\t\t\t}\n\n\t\t\tvar uri = '/documents/' + documentId + '/comments';\n\t\t\treturn $http.get(pxUriPathService.resolvePath(uri))\n\t\t\t\t.then(function(response) {\n\t\t\t\t\treturn response.data.Embedded.Comments;\n\t\t\t\t})\n\t\t\t\t.then(function(data) {\n\t\t\t\t\treturn data.map(commentToDocumentNote);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction createNote(documentId, note) {\n\t\t\tif (!documentId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document id')));\n\t\t\t} else if (!(note && note.text)) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required note text')));\n\t\t\t}\n\n\t\t\tvar comment = { CommentText: note.text };\n\n\t\t\tvar uri = '/documents/' + documentId + '/comments';\n\t\t\treturn $http.post(pxUriPathService.resolvePath(uri), comment)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t})\n\t\t\t\t.then(commentToDocumentNote);\n\t\t}\n\n\t\tfunction commentToDocumentNote(comment) {\n\t\t\treturn {\n\t\t\t\tid: comment.CommentId,\n\t\t\t\ttext: comment.CommentText,\n\t\t\t\tdate: comment.CommentDate,\n\t\t\t\tlastActivityDate: comment.LastActivityDate,\n\t\t\t\tuserName: comment.UserName,\n\t\t\t\treplyToUrl: comment.Links && comment.Links.ReplyToUri\n\t\t\t};\n\t\t}\n\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/documentNotesService.js\n// module id = 150\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbDocumentViewerNavigationService', [\n\t\t\t'$state', \n\t\t\t'$q',\n\t\t\tDocumentViewerNavigationService\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbDocumentViewerNavigationService\n\t *\n\t * @description\n\t * Small service that provides a convience method for navigating to\n\t * the document viewer.\n\t */\n\tfunction DocumentViewerNavigationService($state, $q) {\n\t\tvar _previousState;\n\t\tvar _previousStateParams;\n\n\t\tvar _defaultState = 'content.home';\n\n\t\treturn {\n\t\t\tgo: go,\n\t\t\tback: back,\n\n\t\t\tget backState() { return _previousState ? _previousState.name : _defaultState; },\n\n\t\t\tget backStateParams() { return _previousStateParams; }\n\t\t};\n\n\t\tfunction go(documentGroupId, documentTypeId, documentId) {\n\t\t\t_previousState = $state.current;\n\t\t\t_previousStateParams = $state.params || null;\n\n\t\t\t$state.go('document.view', {\n\t\t\t\tdocumentGroupId: documentGroupId,\n\t\t\t\tdocumentTypeId: documentTypeId,\n\t\t\t\tdocumentId: documentId\n\t\t\t});\n\t\t}\n\n\t\tfunction back() {\n\t\t\tvar p = $q.reject(new Error('No applicable previous state.'));\n\t\t\tif (_previousState) {\n\t\t\t\tp = _previousStateParams ? \n\t\t\t\t\t$state.go(_previousState.name, _previousStateParams) :\n\t\t\t\t\t$state.go(_previousState.name);\t\t\t\t\n\t\t\t} else if(angular.isDefined($state.params.documentGroupId) && angular.isDefined($state.params.documentTypeId)) {\n\t\t\t\t// default to document type group search\n\t\t\t\tp = $state.go('search.contentTypeGroups.contentTypes.search', {\n\t\t\t\t\tgroupId: $state.params.documentGroupId,\n\t\t\t\t\ttypeId: $state.params.documentTypeId\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn p;\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/documentViewerNavigationService.js\n// module id = 151\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('smb-app')\n\t\t.factory('smbEnvironmentService', [\n\t\t\t'$window',\n\t\t\t'pxEnvironmentService',\n\t\t\tEnvironmentService\n\t\t]);\n\n\tfunction EnvironmentService($window, pxEnvironmentService) {\n\t\tvar ua = $window.navigator.userAgent;\n\t\tvar defaults = {\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true\n\t\t};\n\n\t\t// http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n\t\tvar service = Object.create(pxEnvironmentService, {\n\t\t\tisIE: angular.merge({\n\t\t\t\tvalue: ua.indexOf('Trident') >= 0\n\t\t\t}, defaults),\n\t\t\tisFireFox: angular.merge({\n\t\t\t\tvalue: ua.indexOf('Mozilla') >= 0 && (typeof $window.InstallTrigger !== 'undefined')\n\t\t\t}, defaults)\n\t\t});\n\n\t\treturn service;\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/environmentService.js\n// module id = 152\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.constant('smbIconTypes', {\n\t\t\tJPEG: 0,\n\t\t\tGIF: 1,\n\t\t\tPNG: 2,\n\t\t\tICO: 3,\n\t\t\tSVG: 4,\n\t\t\t0: 'JPEG',\n\t\t\t1: 'GIF',\n\t\t\t2: 'PNG',\n\t\t\t3: 'ICO',\n\t\t\t4: 'SVG'\n\t\t})\n\t\t.factory('smbIconService', ['$http', 'pxUriPathService', 'smbIconTypes', IconService]);\n\n\tfunction IconService($http, pxUriPathService, smbIconTypes) {\n\n\t\tvar _binaryTypes = [\n\t\t\tsmbIconTypes[smbIconTypes.JPEG],\n\t\t\tsmbIconTypes[smbIconTypes.GIF],\n\t\t\tsmbIconTypes[smbIconTypes.PNG],\n\t\t\tsmbIconTypes[smbIconTypes.ICO]\n\t\t];\n\n\t\treturn {\n\n\t\t\tgetIcons: getIcons,\n\t\t\tgetIconData: getIconData\n\n\t\t};\n\n\t\tfunction getIcons() {\n\t\t\treturn $http.get(pxUriPathService.resolvePath('/systemicons/SMB'))\n\t\t\t\t.then(function(res) { return res.data; });\n\t\t}\n\n\t\tfunction getIconData(url, type) {\n\t\t\tvar request = {\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: url,\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: getMediaType(type)\n\t\t\t\t},\n\t\t\t\tcache: true\n\t\t\t};\n\n\t\t\tif (isBinary(type)) {\n\t\t\t\trequest.responseType = 'arraybuffer';\n\t\t\t}\n\n\t\t\treturn $http(request)\n\t\t\t\t.then(function(res) { \n\t\t\t\t\treturn {\n\t\t\t\t\t\timageData: res.data,\n\t\t\t\t\t\tisBinary: isBinary(type),\n\t\t\t\t\t\tcontentType: res.headers('Content-Type')\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getMediaType(type) {\n\t\t\tvar mediaType = 'image/';\n\n\t\t\tswitch (type) {\n\t\t\t\tcase smbIconTypes[smbIconTypes.JPEG]:\n\t\t\t\t\treturn mediaType + 'jpeg';\n\t\t\t\tcase smbIconTypes[smbIconTypes.GIF]:\n\t\t\t\t\treturn mediaType + 'gif';\n\t\t\t\tcase smbIconTypes[smbIconTypes.PNG]:\n\t\t\t\t\treturn mediaType + 'png';\n\t\t\t\tcase smbIconTypes[smbIconTypes.ICO]:\n\t\t\t\t\treturn mediaType + 'ico';\n\t\t\t\tcase smbIconTypes[smbIconTypes.SVG]:\n\t\t\t\t\treturn mediaType + 'svg+xml';\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error('Unsupported data type for smbIcon');\n\t\t\t}\n\t\t}\n\n\t\tfunction isBinary(type) {\n\t\t\treturn _binaryTypes.indexOf(type) >= 0;\n\t\t}\n\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/iconService.js\n// module id = 153\n// module chunks = 1","require('./aclService');\nrequire('./contentConfigServices/contentTypeConfigService');\nrequire('./contentConfigServices/contentTypeGroupConfigService');\nrequire('./contentConfigServices/contentTypeGroupTagTypeConfigService');\nrequire('./contentConfigServices/contentTypeTagTypeConfigService');\nrequire('./contentConfigServices/statusConfigService');\nrequire('./contentSearchService');\nrequire('./contentTypeAcls');\nrequire('./contentTypeGroupsSearchService');\nrequire('./contentTypeGroupsService');\nrequire('./contentTypesSearchService');\nrequire('./contentTypesService');\nrequire('./contentUploadService');\nrequire('./deleteDialogService/deleteDialog.template');\nrequire('./deleteDialogService/deleteDialogService');\nrequire('./deletedItemsService');\nrequire('./documentHistoryService');\nrequire('./documentNotesService');\nrequire('./documentViewerNavigationService');\nrequire('./environmentService');\nrequire('./iconService');\nrequire('./indexTypesDataTypes');\nrequire('./indexTypesService');\nrequire('./libraryConfigService');\nrequire('./sortService');\nrequire('./statusService');\nrequire('./toDoListService');\nrequire('./toolbarService');\nrequire('./userGroupFilterService');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/index.js\n// module id = 154\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.constant('smbIndexTypesDataTypes', {\n\t\t\tSTRING: 0,\n\t\t\tNUMERIC: 1,\n\t\t\tDATE: 2,\n\t\t\t0: 'Text',\n\t\t\t1: 'Number',\n\t\t\t2: 'Date',\n\t\t\tSTRING_MAX_LENGTH: 256\n\t\t});\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/indexTypesDataTypes.js\n// module id = 155\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbIndexTypesService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', IndexTypesService]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbIndexTypesService\n\t * \n\t * @description\n\t * Exposes methods for retrieving content types that belong to a content\n\t * type group.\n\t */\n\tfunction IndexTypesService($http, $q, gettextCatalog, pxUriPathService) {\n\t\t\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbIndexTypesService.getIndexTypes\n\t\t\t * @methodOf smb-app.smbIndexTypesService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets all content types the belong to a content type group\n\t\t\t * \n\t\t\t * @param {Number} typeId Id of the content type group\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that will resolve to a collection of content types\n\t\t\t */\n\t\t\tgetIndexTypes: getIndexTypes,\n\n\t\t\tgetDocumentTypeGroupIndexTypes: getDocumentTypeGroupIndexTypes,\n\n\t\t\tsetIndexTypes: setIndexTypes,\n\n\t\t\tgetDocumentIndexes: getDocumentIndexes\n\t\t};\n\n\t\tfunction getIndexTypes(typeId) {\n\t\t\tif (!typeId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type id')));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + typeId + '/tagtypes');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getDocumentTypeGroupIndexTypes(groupId) {\n\t\t\tif (!groupId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required document type group id')));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/' + groupId + '/tagtypes');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setIndexTypes(indexes, documentId) {\n\t\t\tvar uri = pxUriPathService.resolvePath('/documents/' + documentId + '/systemtags');\n\t\t\treturn $http.put(uri, indexes)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getDocumentIndexes(documentId) {\n\t\t\tvar uri = pxUriPathService.resolvePath('/documents/' + documentId + '/tags');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function(res) { return res.data; });\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/indexTypesService.js\n// module id = 156\n// module chunks = 1","(function () {\n\t'use strict';\n\t\n\tangular.module('smb-app')\n\t\t.factory('smbLibraryConfigService',\t[\n\t\t\t'$q',\n\t\t\t'$http',\n\t\t\t'pxUriPathService',\n\t\t\t'settingsService',\n\t\t\t'gettextCatalog',\n\t\t\tLibraryConfigService\n\t\t]);\n\n\tvar path = '/libraries';\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbLibraryConfigService\n\t * \n\t * @description\n\t * A service that exposes methods for configuring content type libraries.\n\t */\n\tfunction LibraryConfigService($q, $http, pxUriPathService, settingsService, gettextCatalog) {\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbLibraryConfigService#getLibrary\n\t\t\t * @methodOf smb-app.smbLibraryConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets a single content type library by id\n\t\t\t * \n\t\t\t * @param {String} libraryId The id of the library being retrieved\n\n\t\t\t * @returns {Promise} A promise that resolves to the content type library\n\t\t\t * with the matching id.\n\t\t\t */\n\t\t\tgetLibrary: getLibrary,\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbLibraryConfigService#deleteLibrary\n\t\t\t * @methodOf smb-app.smbLibraryConfigService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Deletes a single content type library by id\n\t\t\t * \n\t\t\t * @param {String} libraryId The id of the library being deleted\n\n\t\t\t * @returns {Promise} A promise that resolves if the deleted succeeded.\n\t\t\t */\n\t\t\tdeleteLibrary: deleteLibrary,\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbLibraryConfigService#getLibraries\n\t\t\t * @methodOf smb-app.smbLibraryConfigServices\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets the collection of all content type libraries for the deployment\n\t\t\t * \n\t\t\t * @returns {Promise} A promise that resolves to an array of content type\n\t\t\t * library objects.\n\t\t\t */\n\t\t\tgetLibraries: getLibraries,\n\n\t\t\tgetLibraryDetails: getLibraryDetails,\n\n\t\t\tassignUserGroupsToLibrary: assignUserGroupsToLibrary\n\n\t\t};\n\n\t\tfunction getLibrary(libraryId) {\n\t\t\treturn $http.get(pxUriPathService.resolvePath(path + '/' + libraryId))\n\t\t\t\t.then(function (response) { return response.data; });\n\t\t}\n\n\t\tfunction getLibraries() {\n\t\t\treturn $http.get(pxUriPathService.resolvePath(path))\n\t\t\t\t.then(function (response) { return response.data; });\n\t\t}\n\n\t\tfunction getLibraryDetails(library) {\n\t\t\treturn $http.get(settingsService.serverAPIPath + '/libraries/' + library.LibraryId + '/permissions', {\n\t\t\t}).then(function (response) {\n\t\t\t\treturn response.data;\n\t\t\t});\n\t\t}\n\n\t\tfunction assignUserGroupsToLibrary(acls, libraryId) {\n\t\t\treturn $http.post(settingsService.serverAPIPath + '/libraries/' + libraryId + '/permissions/replace', acls)\n\t\t\t.then(function (response) {\n\t\t\t\treturn response.data;\n\t\t\t});\n\t\t}\n\n\t\tfunction deleteLibrary(libraryId) {\n\t\t\tif (!libraryId) {\n\t\t\t\treturn $q.reject(new Error(gettextCatalog.getString('Missing required library id')));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/libraries/{id}', {\n\t\t\t\tid: libraryId\n\t\t\t});\n\n\t\t\treturn $http.delete(uri);\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/libraryConfigService.js\n// module id = 157\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbSortService', [SortService]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbSortService\n\t * \n\t * @description\n\t * A service that provides sorting functions for the different data types\n\t * in the application. The methods in this service are intended to be passed\n\t * to an arrays sort function. As a result, all of the methods are pure functions\n\t * which do not rely on `this`.\n\t */\n\tfunction SortService() {\n\n\t\treturn {\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbSortService.sortObjectStringByProperty\n\t\t\t * @methodOf smb-app.smbSortService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Creates and returns a function that can be to sort an array of\n\t\t\t * objects by a specific string property.\n\t\t\t * \n\t\t\t * @param {String} propertyName The name of the property the objects should\n\t\t\t * be sorted by\n\t\t\t * \n\t\t\t * @returns {Function} A function that can be used in array's sort method to\n\t\t\t * sort objects by a specific property anem\n\t\t\t */\n\t\t\tsortObjectByStringProperty: sortObjectByStringProperty,\n\n\t\t\tsortObjectByDateProperty: sortObjectByDateProperty,\n\n\t\t\tsortDate: sortDate,\n\n\t\t\tsortByString: sortByString\n\t\t};\n\n\t\tfunction sortObjectByStringProperty(propertyName, direction) {\n\t\t\treturn function (obj1, obj2) {\n\t\t\t\treturn sortByString(obj1[propertyName], obj2[propertyName], direction);\n\t\t\t};\n\t\t}\n\n\t\tfunction sortByString(string1, string2, direction) {\n\t\t\tif (direction) {\n\t\t\t\treturn string1.toLowerCase().localeCompare(string2.toLowerCase());\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn string2.toLowerCase().localeCompare(string1.toLowerCase());\n\t\t\t}\n\t\t}\n\n\t\tfunction sortObjectByDateProperty(propertyName) {\n\t\t\treturn function(obj1, obj2) {\n\t\t\t\treturn sortDate(obj1[propertyName], obj2[propertyName]);\n\t\t\t};\n\t\t}\n\n\t\tfunction sortDate(date1, date2) {\n\t\t\tvar y1 = date1.getFullYear();\n\t\t\tvar m1 = date1.getMonth();\n\t\t\tvar d1 = date1.getDate();\n\n\t\t\tvar y2 = date2.getFullYear();\n\t\t\tvar m2 = date2.getMonth();\n\t\t\tvar d2 = date2.getDate();\n\n\t\t\tif (y1 < y2) {\n\t\t\t\treturn 1;\n\t\t\t} else if (y1 > y2) {\n\t\t\t\treturn -1;\n\t\t\t} else if (m1 < m2) {\n\t\t\t\treturn 1;\n\t\t\t} else if (m1 > m2) {\n\t\t\t\treturn -1;\n\t\t\t} else if (d1 < d2) {\n\t\t\t\treturn 1;\n\t\t\t} else if (d1 > d2) {\n\t\t\t\treturn -1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/sortService.js\n// module id = 158\n// module chunks = 1","(function() {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbStatusService', [\n\t\t\t'$http',\n\t\t\t'$q',\n\t\t\t'smbContentTypeAcls',\n\t\t\t'pxUriPathService',\n\t\t\tStatusService\n\t\t]);\n\n\tfunction StatusService($http, $q, smbContentTypeAcls, pxUriPathService) {\n\n\t\treturn {\n\t\t\tgetStatuses: getStatuses,\n\n\t\t\tgetDocumentStatus: getDocumentStatus,\n\n\t\t\tgetUsers: getUsers,\n\n\t\t\tsetDocumentStatus: setDocumentStatus\n\t\t};\n\n\t\tfunction getStatuses(folderId) {\n\t\t\tif (!(typeof folderId === 'string' || typeof folderId === 'number')) {\n\t\t\t\treturn $q.reject(new Error('Missing required document type id'));\n\t\t\t}\n\n\t\t\tvar uri = pxUriPathService.resolvePath('/f/' + folderId + '/tagtypes');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function(res) {\n\t\t\t\t\treturn res.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getDocumentStatus(documentId) {\n\t\t\tvar uri = pxUriPathService.resolvePath('/documents/' + documentId + '/status');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function(res) { \n\t\t\t\t\treturn res.data.TypedTags; \n\t\t\t\t});\n\t\t}\n\n\t\tfunction getUsers(documentId) {\n\t\t\tvar uri = pxUriPathService.resolvePath('/documents/' + documentId + '/users?acl=' + smbContentTypeAcls.MODIFY_DOCUMENTS);\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function(res) {\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setDocumentStatus(status, documentId) {\n\t\t\tvar uri = pxUriPathService.resolvePath('/documents/' + documentId + '/status');\n\t\t\treturn $http.put(uri, status)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/statusService.js\n// module id = 159\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbToDoListService', ['$http', '$q', 'gettextCatalog', 'pxUriPathService', ToDoListService]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbContentTypesService\n\t * \n\t * @description\n\t * Exposes methods for retrieving content types that belong to a content\n\t * type group.\n\t */\n\tfunction ToDoListService($http, $q, gettextCatalog, pxUriPathService) {\n\t\t\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbContentTypesService.getContentTypes\n\t\t\t * @methodOf smb-app.smbContentTypesService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Gets all content types the belong to a content type group\n\t\t\t * \n\t\t\t * @param {Number} groupId Id of the content type group\n\t\t\t * \n\t\t\t * @returns {Deferred} A promise that will resolve to a collection of content types\n\t\t\t */\n\t\t\tgetDocuments: getDocuments,\n\n\t\t\tgetCount: getCount\n\t\t};\n\n\t\tfunction getDocuments() {\n\t\t\tvar uri = pxUriPathService.resolvePath('/todolist');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getCount() {\n\t\t\tvar tagValues = [];\n\t\t\tvar uri = pxUriPathService.resolvePath('/todolist/count');\n\t\t\treturn $http.get(uri)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/toDoListService.js\n// module id = 160\n// module chunks = 1","(function () {\n\t'use strict';\n\tangular.module('smb-app')\n\t\t.factory('smbToolbarService',\n\t\t[\n\t\t\t'pxAuthService',\n\t\t\tToolbarService\n\t\t]);\n\t/**\n * @ngdoc service\n * @name smb-app.smbToolbarService\n * \n * @description \n * A service used to retrieve and interact with ShareBase app \n * content toolbar\n * \n **/\n\tfunction ToolbarService(pxAuthService) {\n\t\tvar _title = null;\n\t\tvar _backArrowState = 'content.home';\n\t\tvar _showLogo = false;\n\t\tvar _showContextMenu = false;\n\t\tvar _contextMenuActions = [];\n\t\tvar _backArrowStateParams = null;\n\n\t\treturn {\n\t\t\t/**\n * @ngdoc property\n * @name smbToolbarService#title\n * @propertyOf smb-app.smbToolbarService\n * @kind property\n *\n * @description\n * Title assigned to content toolbar\n *\n * @returns {string} value of title \n * \n */\n\t\t\tget title() { return _title; },\n\t\t\t\n\t\t\t/**\n * @ngdoc property\n * @name smbToolbarService#title\n * @propertyOf smb-app.smbToolbarService\n * @kind property\n *\n * @description\n * Set the title for content toolbar\n *\n * @returns {string} value of title \n * @param {string} val Title to assign to content toolbar \n */\n\t\t\tset title(val) { _title = val; },\n\n\t\t\t/**\n * @ngdoc property\n * @name smbToolbarService#backArrowState\n * @propertyOf smb-app.smbToolbarService\n * @kind property\n *\n * @description\n * Get the state assigned to back arrow on the toolbar\n *\n * @returns {string} value of title \n * \n */\n\t\t\tget backArrowState() { return _backArrowState; },\n\n\t\t\t/**\n * @ngdoc property\n * @name smbToolbarService#backArrowState\n * @propertyOf smb-app.smbToolbarService\n * @kind property\n *\n * @description\n * Set the state to back arrow on the toolbar\n *\n * @returns {string} value of backArrowState \n * @param {string} val Back Arrow State to assign to content toolbar \n */\n\t\t\tset backArrowState(val) { _backArrowState = val; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbToolbarService#backArrowState\n\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Get the state params object for the toolbar's back button.\n\t\t\t * \n\t\t\t * @returns {Object} State parameters for back button\n\t\t\t */\n\t\t\tget backArrowStateParams() { return _backArrowStateParams; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbToolbarService#backArrowStateParams\n\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Optionally set stat parameters for the back arrow state.\n\t\t\t * \n\t\t\t * @param {Object} val An object of state parameters\n\t\t\t */\n\t\t\tset backArrowStateParams(val) { _backArrowStateParams = val; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbToolbarService#hasUserAdminRights\n\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Returns true if the current user has user administration rights\n\t\t\t * \n\t\t\t * @returns {Boolean} Returns true if user is a user admin and false otherwise\n\t\t\t */\n\t\t\tget hasUserAdminRights() { return pxAuthService.isUserAdmin || pxAuthService.isSiteAdmin; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbToolbarService#hasContentAdminRights\n\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Returns true if the current user has content administration rights\n\t\t\t * \n\t\t\t * @returns {Boolean} Returns true if user has correct rights for content administration\n\t\t\t * and false if they do not.\n\t\t\t */\n\t\t\tget hasContentAdminRights() { return pxAuthService.isSiteAdmin; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbToolbarService#showLogo\n\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Returns true if the app logo should be displayed.\n\t\t\t * \n\t\t\t * @returns {Boolean} True if the toolbar should display and false if\n\t\t\t * it should hide the logo.\n\t\t\t */\n\t\t\tget showLogo() { return _showLogo; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbToolbarService#showLogo\n\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Set the flag to show or hide the application logo\n\t\t\t * \n\t\t\t * @param {Boolean} val Value to set the flag to\n\t\t\t */\n\t\t\tset showLogo(val) { _showLogo = val; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbToolbarService#showBackButton\n\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Flag that determines if the toolbar will display the back button.\n\t\t\t * If true, the back button will be displayed.\n\t\t\t * \n\t\t\t * @returns {Boolean} True if the back button should be displayed and false\n\t\t\t * if it should be hidden.\n\t\t\t */\n\t\t\tget showBackButton() { return !_showLogo; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbToolbarService#showContextMenu\n\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Flag that returns true if the context menu is displayed and false if it\n\t\t\t * is not. Defaults to false to hide the context menu.\n\t\t\t * \n\t\t\t * @returns {Boolean} True if the context menu is displayed and false if\n\t\t\t * it is hidden.\n\t\t\t */\n\t\t\tget showContextMenu() { return _showContextMenu; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbToolbarService#showContextMenu\n\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Set the flag that determine whether to display or hide the context \n\t\t\t * menu\n\t\t\t * \n\t\t\t * @param {Boolean} val Value to set the flag to.\n\t\t\t */\n\t\t\tset showContextMenu(val) { _showContextMenu = val; },\n\n\t\t\t/**\n\t\t\t * @ngdoc property\n\t\t\t * @name smbToolbarService#contextMenuActions\n\t\t\t * @propertyOf smb-app.smbToolbarService\n\t\t\t * @kind property\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Get the list of action objects for the context menu.\n\t\t\t * \n\t\t\t * @returns {Object[]} Collection of context menu actions\n\t\t\t */\n\t\t\tget contextMenuActions() { return _contextMenuActions; },\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbToolbarService#reset\n\t\t\t * @methodOf smb-app.smbToolbarService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Reset the state of the toolbar service to all default values.\n\t\t\t */\n\t\t\treset: reset,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbToolbarService#addContextMenuAction\n\t\t\t * @methodOf smb-app.smbToolbarService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Add a new context menu action to the existing list of context menu actions.\n\t\t\t * \n\t\t\t * @param {Object} action The content menu action to add\n\t\t\t */\n\t\t\taddContextMenuAction: addContextMenuAction,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbToolbarService#set\n\t\t\t * @methodOf smb-app.smbToolbarService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Set the state of the toolbar service properties.\n\t\t\t * \n\t\t\t * @param {String} title Title to display in toolbar\n\t\t\t * @param {String} backArrow Target state for the back arrow\n\t\t\t * @param {Boolean} showLogo Flag that indicates if the logo should be shown\n\t\t\t * @param {Boolean} showContextMenu Flag that indicates if the context menu should be shown\n\t\t\t */\n\t\t\tset: set,\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbToolbarService#setContextMenuActions\n\t\t\t * @methodOf smb-app.smbToolbarService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Replace the current set of context menu actions with a new\n\t\t\t * collection of actions\n\t\t\t * \n\t\t\t * @param {Object[]} actions An array of context menu action objects\n\t\t\t */\n\t\t\tsetContextMenuActions: setContextMenuActions\n\t\t};\n\n\t\tfunction addContextMenuAction(action) {\n\t\t\t_contextMenuActions = _contextMenuActions.concat(action);\n\t\t}\n\n\t\tfunction setContextMenuActions(actions) {\n\t\t\tif (actions) {\n\t\t\t\t_contextMenuActions = actions;\n\t\t\t} else {\n\t\t\t\t_contextMenuActions = [];\n\t\t\t}\n\t\t}\n\n\t\tfunction reset() {\n\t\t\tset('', 'content.home', true, false);\n\t\t}\n\n\t\tfunction set(title, backArrow, showLogo, showContextMenu) {\n\t\t\tif (typeof title === 'string') {\n\t\t\t\t_title = title;\n\t\t\t}\n\n\t\t\tif (backArrow) {\n\t\t\t\t_backArrowState = backArrow;\n\t\t\t}\n\n\t\t\t_showLogo = showLogo;\n\t\t\t_showContextMenu = showContextMenu;\n\t\t}\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/toolbarService.js\n// module id = 161\n// module chunks = 1","(function () {\n\t'use strict';\n\n\tangular.module('smb-app')\n\t\t.factory('smbUserGroupFilterService',\n\t\t[\n\t\t\t'smbSortService',\n\t\t\t'smbContentTypeAcls',\n\t\t\tUserGroupFilterService\n\t\t]);\n\n\t/**\n\t * @ngdoc service\n\t * @name smb-app.smbUserGroupFilterService\n\t * \n\t * @description\n\t * A service that exposes methods for extracting content type group assignment details.\n\t */\n\tfunction UserGroupFilterService(smbSortService, smbContentTypeAcls) {\n\t\tvar _userGroupsWithViewRights = [];\n\t\tvar _userGroupsWithFullRights = [];\n\t\tvar _userGroupsWithEditRights = [];\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @name smbUserGroupFilterService#filterUserGroups\n\t\t\t * @methodOf smb-app.smbUserGroupFilterService\n\t\t\t * @kind function\n\t\t\t * \n\t\t\t * @description\n\t\t\t * Filters and separates User Groups into two lists, one with View rights and Full rights\n\t\t\t * \n\t\t\t * @param {Object} details, The details object from wchich the details have to be extracted\n\t\t\t */\n\t\t\tfilterUserGroups: filterUserGroups,\n\n\t\t\tgetUserGroupsWithViewRights: getUserGroupsWithViewRights,\n\n\t\t\tgetUserGroupsWithFullRights: getUserGroupsWithFullRights,\n\n\t\t\tgetUserGroupsWithEditRights: getUserGroupsWithEditRights,\n\t\t};\n\n\t\tfunction filterUserGroups(details) {\n\t\t\t_userGroupsWithViewRights = [];\n\t\t\t_userGroupsWithFullRights = [];\n\t\t\t_userGroupsWithEditRights = [];\n\n\t\t\tdetails.forEach(function (permission) {\n\t\t\t\tif (permission.UserGroupId > 0)\n\t\t\t\t{\n\t\t\t\t\tswitch (permission.Privileges) {\n\t\t\t\t\t\tcase smbContentTypeAcls.VIEW_RIGHTS:\n\t\t\t\t\t\t\t_userGroupsWithViewRights.push(permission);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase smbContentTypeAcls.EDIT_RIGHTS:\n\t\t\t\t\t\t\t_userGroupsWithEditRights.push(permission);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase smbContentTypeAcls.FULL_RIGHTS:\n\t\t\t\t\t\t\t_userGroupsWithFullRights.push(permission);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_userGroupsWithViewRights.sort(smbSortService.sortObjectByStringProperty('UserGroupName'));\n\t\t\t_userGroupsWithFullRights.sort(smbSortService.sortObjectByStringProperty('UserGroupName'));\n\t\t\t_userGroupsWithEditRights.sort(smbSortService.sortObjectByStringProperty('UserGroupName'));\n\t\t}\n\n\t\tfunction getUserGroupsWithEditRights() {\n\t\t\treturn _userGroupsWithEditRights;\n\t\t}\n\n\t\tfunction getUserGroupsWithViewRights() {\n\t\t\treturn _userGroupsWithViewRights;\n\t\t}\n\n\t\tfunction getUserGroupsWithFullRights() {\n\t\t\treturn _userGroupsWithFullRights;\n\t\t}\n\t}\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/services/userGroupFilterService.js\n// module id = 162\n// module chunks = 1","var path = 'components/_app/app.template.html';\nvar html = \"
arrow_back

{{vm.smbToolbarService.title}}

people User Administration settings Document Groups Configuration delete Deleted Items home Home assignment
{{vm.todoListDS.count}}
My To-Do List
input Logout info_outline Help Acceptable Use Policy Privacy Policy Terms of Use
arrow_back

{{vm.smbToolbarService.title}}

menu
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/_app/app.template.html\n// module id = 163\n// module chunks = 1","var path = 'components/assignedUsers/assignedUsers.template.html';\nvar html = \" Assigned User
None {{user.UserName}}
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/assignedUsers/assignedUsers.template.html\n// module id = 164\n// module chunks = 1","var path = 'components/contentSearch/contentSearch.template.html';\nvar html = \"
Document Type

{{vm.contentTypeDS.contentType.FolderName}}

{{vm.contentTypeGroupDS.contentTypeGroup.LibraryName}}

Index Types
Search
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentSearch/contentSearch.template.html\n// module id = 165\n// module chunks = 1","var path = 'components/contentSearchResults/contentSearchResults.template.html';\nvar html = \"\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentSearchResults/contentSearchResults.template.html\n// module id = 166\n// module chunks = 1","var path = 'components/contentTypeConfig/contentTypeConfig.template.html';\nvar html = \"
Type Configuration Field Configuration Status Configuration
Cancel Update Create
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeConfig/contentTypeConfig.template.html\n// module id = 167\n// module chunks = 1","var path = 'components/contentTypeConfigForm/contentTypeConfigForm.template.html';\nvar html = \"
Icon
{{!vm.contentTypeIcon ? 'add':'edit'}}

{{vm.contentTypeIcon.IconUserFriendlyName}}

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeConfigForm/contentTypeConfigForm.template.html\n// module id = 168\n// module chunks = 1","var path = 'components/contentTypeGroupConfig/contentTypeGroupConfig.template.html';\nvar html = \"
Group Configuration Field Configuration
Cancel Update Create
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupConfig/contentTypeGroupConfig.template.html\n// module id = 169\n// module chunks = 1","var path = 'components/contentTypeGroupConfigForm/contentTypeGroupConfigForm.template.html';\nvar html = \"
Icon
{{!vm.group.IconId ? 'add' : 'edit'}}

{{vm.group.IconName}}

User Groups (View Rights)
add clear supervisor_account

{{group.UserGroupName}}

User Groups (Edit Rights)
add clear supervisor_account

{{group.UserGroupName}}

User Groups (Full Rights)
add clear supervisor_account

{{group.UserGroupName}}

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupConfigForm/contentTypeGroupConfigForm.template.html\n// module id = 170\n// module chunks = 1","var path = 'components/contentTypeGroupSearch/contentTypeGroupSearch.template.html';\nvar html = \"
Document Type Group

{{vm.contentTypeGroupDS.contentTypeGroup.LibraryName}}

Index Types
Search
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupSearch/contentTypeGroupSearch.template.html\n// module id = 171\n// module chunks = 1","var path = 'components/contentTypeGroupSearchResults/contentTypeGroupSearchResults.template.html';\nvar html = \"\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupSearchResults/contentTypeGroupSearchResults.template.html\n// module id = 172\n// module chunks = 1","var path = 'components/contentTypeGroups/contentTypeGroups.template.html';\nvar html = \" 0\\\">

{{item.name}}

warning

No document groups available

Groups you have access to will be listed here.

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroups/contentTypeGroups.template.html\n// module id = 173\n// module chunks = 1","var path = 'components/contentTypeGroupsConfig/contentTypeGroupsConfig.template.html';\nvar html = \"
add settings edit Edit Group delete Delete Group

{{item.name}}

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupsConfig/contentTypeGroupsConfig.template.html\n// module id = 174\n// module chunks = 1","var path = 'components/contentTypeGroupsSearch/contentTypeGroupsSearch.template.html';\nvar html = \" 0\\\">

{{item.name}}

warning

No document groups available

Groups you have access to will be listed here.

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypeGroupsSearch/contentTypeGroupsSearch.template.html\n// module id = 175\n// module chunks = 1","var path = 'components/contentTypes/contentTypes.template.html';\nvar html = \" 0\\\">

{{item.FolderName}}

warning

No document types available

Types you have access to will be listed here.

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypes/contentTypes.template.html\n// module id = 176\n// module chunks = 1","var path = 'components/contentTypesConfig/contentTypesConfig.template.html';\nvar html = \"
add delete

{{item.FolderName}}

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypesConfig/contentTypesConfig.template.html\n// module id = 177\n// module chunks = 1","var path = 'components/contentTypesSearch/contentTypesSearch.template.html';\nvar html = \" 0\\\">

{{item.FolderName}}

search

All Document Types

warning

No document types available

Types you have access to will be listed here.

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentTypesSearch/contentTypesSearch.template.html\n// module id = 178\n// module chunks = 1","var path = 'components/contentUpload/contentUpload.template.html';\nvar html = \"
Document Type

{{vm.contentTypeDS.contentType.FolderName}}

{{vm.contentTypeGroupDS.contentTypeGroup.LibraryName}}

Document

{{vm.filename}}

No file selected

Browse
Index Types
Cancel Upload
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/contentUpload/contentUpload.template.html\n// module id = 179\n// module chunks = 1","var path = 'components/documentContextMenu/documentContextMenu.template.html';\nvar html = \"
You do not have the required permissions to edit the status. info_outline
{{vm.status.StatusType === 'Content Status' ? 'archive' : 'assignment'}}

{{vm.status.Label}}

account_circle

Unassigned

{{vm.assignedUser.UserName}}

Delete delete Download get_app View Fields vpn_key View History info View Comments chat_bubble
more_vertical delete Delete get_app Download vpn_key Fields info History chat_bubble Comments
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentContextMenu/documentContextMenu.template.html\n// module id = 180\n// module chunks = 1","var path = 'components/documentDetails/documentDetails.template.html';\nvar html = \"
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentDetails/documentDetails.template.html\n// module id = 181\n// module chunks = 1","var path = 'components/documentHistory/documentHistory.template.html';\nvar html = \"

Document Details

{{item.UserName}} {{item.Message}} {{item.ActivityDate}}

Revision {{revision.VersionNumber}} uploaded by {{revision.CreatedBy}}

Added on {{revision.DateCreated | date }}

Download Make Current Current Revision

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentHistory/documentHistory.template.html\n// module id = 182\n// module chunks = 1","var path = 'components/documentHitList/documentHitList.template.html';\nvar html = \" 0\\\">

{{doc.LibraryName}} / {{doc.FolderName}}

{{doc.DocumentAutoName}}

{{doc.Status}}

search

No documents found!

Try widening your search or using different criteria.

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentHitList/documentHitList.template.html\n// module id = 183\n// module chunks = 1","var path = 'components/documentIndexes/documentIndexes.template.html';\nvar html = \"

Fields

{{tag.TagTypeName}}:

{{tag.Tags[0]}}

{{tag.Tags[0] | date: 'MMM dd, yyyy'}}

Edit
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentIndexes/documentIndexes.template.html\n// module id = 184\n// module chunks = 1","var path = 'components/documentIndexesEdit/documentIndexesEdit.template.html';\nvar html = \"

Edit Fields

Cancel Update
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentIndexesEdit/documentIndexesEdit.template.html\n// module id = 185\n// module chunks = 1","var path = 'components/documentNotes/documentNotes.template.html';\nvar html = \"

Comments

{{note.date | sbSimpleDateTimeString}}

{{note.date | sbSimpleDateTimeString}}
account_circle

{{note.userName}}

add
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentNotes/documentNotes.template.html\n// module id = 186\n// module chunks = 1","var path = 'components/documentView/documentView.template.html';\nvar html = \"
close
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/documentView/documentView.template.html\n// module id = 187\n// module chunks = 1","var path = 'components/errorMessages.html';\nvar html = \"
This field is required.
Your field is too short
Your field is too long
You must supply a valid email address.
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/errorMessages.html\n// module id = 188\n// module chunks = 1","var path = 'components/home/home.template.html';\nvar html = \"
{{item.icon}}

{{vm.media('gt-xs') ? item.label : item.shortLabel}}

{{vm.todoListDS.count}}
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/home/home.template.html\n// module id = 189\n// module chunks = 1","var path = 'components/icon/icon.template.html';\nvar html = \"\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/icon/icon.template.html\n// module id = 190\n// module chunks = 1","var path = 'components/indexTypeConfig/indexTypeConfig.template.html';\nvar html = \"
Add New Field
{{dt.label}} 2\\\">
add
{{vm.indexTypesPoolTitle}}
add {{vm.indexTypesPoolAddLabel}}
{{vm.currentIndexTypesTitle}}
mode_edit check clear delete
0\\\" ng-click=\\\"vm.swapIndexTypesOrder($index, $index-1)\\\"> arrow_upward Move up in sequence arrow_downward Move down in sequence
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/indexTypeConfig/indexTypeConfig.template.html\n// module id = 191\n// module chunks = 1","var path = 'components/indexTypesPanel/indexTypesPanel.template.html';\nvar html = \"
{{index.TagTypeName}}
Please remove invalid characters.
( "<>|^*:! )
Please enter a valid number.
Please enter a valid date.
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/indexTypesPanel/indexTypesPanel.template.html\n// module id = 192\n// module chunks = 1","var path = 'components/itemSelector/itemSelector.template.html';\nvar html = \"
error

No available items

0\\\" class=main-selector layout=row>
done

{{item.IconUserFriendlyName}}

clear assignment archive
done

{{item.Label}}

account_circle supervisor_account
done
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/itemSelector/itemSelector.template.html\n// module id = 193\n// module chunks = 1","var path = 'components/login/login.template.html';\nvar html = \"
Acceptable Use Policy Privacy Policy Terms of Use
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/login/login.template.html\n// module id = 194\n// module chunks = 1","var path = 'components/register/register.template.html';\nvar html = \" {{::'I agree to the terms and conditions on behalf of my ogranization' | translate}} Next \";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/register/register.template.html\n// module id = 195\n// module chunks = 1","var path = 'components/status/status.template.html';\nvar html = \" Document Status
None {{status.indexValue}} Archival Status {{status.indexValue}}
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/status/status.template.html\n// module id = 196\n// module chunks = 1","var path = 'components/statusConfig/statusConfig.template.html';\nvar html = \" To-Do Status
Archival Status
Note: deleted statuses will not be removed from existing documents.
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/statusConfig/statusConfig.template.html\n// module id = 197\n// module chunks = 1","var path = 'components/todolist/todolist.template.html';\nvar html = \"
0\\\" layout-fill>
assignment_turned_in

You're all caught up!

Items assigned to you will appear here.

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/todolist/todolist.template.html\n// module id = 198\n// module chunks = 1","var path = 'components/todolistContextMenu/todolistContextMenu.template.html';\nvar html = \"
Date arrow_drop_up arrow_drop_down Group / Type arrow_drop_up arrow_drop_down Status arrow_drop_up arrow_drop_down
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/todolistContextMenu/todolistContextMenu.template.html\n// module id = 199\n// module chunks = 1","var path = 'components/trash/trash.template.html';\nvar html = \" 0\\\" layout-fill layout=column layout-align=\\\"start stretch\\\">
Empty Trash

{{trashPiece.name}}

Deleted {{date}} by {{trashPiece.deletedBy}}

restore_page delete_forever
delete

Trash is empty

When users delete items they'll appear here

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/trash/trash.template.html\n// module id = 200\n// module chunks = 1","var path = 'components/user/user.template.html';\nvar html = \"
User Settings lock

Lock Account

User Roles settings

Site Administrator

Allow users to control features of this deployment such as document groups.

people

User Administrator

Allow users to add/edit/delete users and groups for this deployment.

{{::'Cancel' | translate}} {{::'Update' | translate}} {{::'Create' | translate}}
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/user/user.template.html\n// module id = 201\n// module chunks = 1","var path = 'components/userAdmin/userAdmin.template.html';\nvar html = \"
people

User Groups

person

Users

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/userAdmin/userAdmin.template.html\n// module id = 202\n// module chunks = 1","var path = 'components/userGroup/userGroup.template.html';\nvar html = \"
You must supply a User Group name.
Your name must be less than 50 characters.
Assigned Users
add clear account_circle

{{user.UserName}}

{{user.EmailAddress}}
Cancel Update Create
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/userGroup/userGroup.template.html\n// module id = 203\n// module chunks = 1","var path = 'components/userGroups/userGroups.template.html';\nvar html = \"
add supervisor_account

{{group.UserGroupName}}{{group.UserCount}}

\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/userGroups/userGroups.template.html\n// module id = 204\n// module chunks = 1","var path = 'components/users/users.template.html';\nvar html = \"
add lock account_circle

{{user.UserName}}

{{user.EmailAddress}}
\";\nwindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/users/users.template.html\n// module id = 205\n// module chunks = 1"],"sourceRoot":""}