ldap-rest 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +48 -0
- package/bin/cleanup-external-users.mjs +219 -0
- package/bin/index.mjs +54 -0
- package/bin/sync-james.mjs +190 -0
- package/dist/abstract/ldapFlat.js +1 -0
- package/dist/abstract/plugin.js +1 -0
- package/dist/abstract/twakePlugin.js +1 -0
- package/dist/bin/index.js +1 -0
- package/dist/config/args.js +1 -0
- package/dist/lib/auth/base.js +1 -0
- package/dist/lib/authz/base.js +1 -0
- package/dist/lib/expressFormatedResponses.js +1 -0
- package/dist/lib/ldapActions.js +1 -0
- package/dist/lib/parseConfig.js +1 -0
- package/dist/lib/utils.js +1 -0
- package/dist/logger/winston.js +1 -0
- package/dist/plugins/auth/authzLinid1.js +1 -0
- package/dist/plugins/auth/authzPerBranch.js +1 -0
- package/dist/plugins/auth/crowdsec.js +1 -0
- package/dist/plugins/auth/llng.js +1 -0
- package/dist/plugins/auth/openidconnect.js +1 -0
- package/dist/plugins/auth/rateLimit.js +1 -0
- package/dist/plugins/auth/token.js +1 -0
- package/dist/plugins/configApi.js +1 -0
- package/dist/plugins/demo/helloworld.js +1 -0
- package/dist/plugins/ldap/bulkImport.js +1 -0
- package/dist/plugins/ldap/departmentSync.js +1 -0
- package/dist/plugins/ldap/externalUsersInGroups.js +1 -0
- package/dist/plugins/ldap/flatGeneric.js +1 -0
- package/dist/plugins/ldap/groups.js +1 -0
- package/dist/plugins/ldap/onChange.js +1 -0
- package/dist/plugins/ldap/organization.js +1 -0
- package/dist/plugins/ldap/trash.js +1 -0
- package/dist/plugins/priority.json.js +1 -0
- package/dist/plugins/static.js +1 -0
- package/dist/plugins/twake/calendarResources.js +1 -0
- package/dist/plugins/twake/james.js +1 -0
- package/dist/plugins/weblogs.js +1 -0
- package/dist/src/abstract/ldapFlat.d.ts +94 -0
- package/dist/src/abstract/plugin.d.ts +43 -0
- package/dist/src/abstract/twakePlugin.d.ts +90 -0
- package/dist/src/bin/index.d.ts +43 -0
- package/dist/src/browser/ldap-group-editor/LdapGroupEditor.d.ts +31 -0
- package/dist/src/browser/ldap-group-editor/api/GroupApiClient.d.ts +23 -0
- package/dist/src/browser/ldap-group-editor/components/CreateGroupModal.d.ts +19 -0
- package/dist/src/browser/ldap-group-editor/components/GroupPropertyEditor.d.ts +30 -0
- package/dist/src/browser/ldap-group-editor/components/GroupTree.d.ts +17 -0
- package/dist/src/browser/ldap-group-editor/components/MoveGroupModal.d.ts +20 -0
- package/dist/src/browser/ldap-group-editor/index.d.ts +6 -0
- package/dist/src/browser/ldap-group-editor/types.d.ts +58 -0
- package/dist/src/browser/ldap-resource-editor/api/ResourceApiClient.d.ts +53 -0
- package/dist/src/browser/ldap-resource-editor/cache/CacheManager.d.ts +65 -0
- package/dist/src/browser/ldap-resource-editor/index.d.ts +6 -0
- package/dist/src/browser/ldap-resource-editor/types.d.ts +78 -0
- package/dist/src/browser/ldap-tree-viewer/LdapTreeViewer.d.ts +26 -0
- package/dist/src/browser/ldap-tree-viewer/api/LdapApiClient.d.ts +30 -0
- package/dist/src/browser/ldap-tree-viewer/components/TreeNode.d.ts +17 -0
- package/dist/src/browser/ldap-tree-viewer/components/TreeRoot.d.ts +14 -0
- package/dist/src/browser/ldap-tree-viewer/index.d.ts +7 -0
- package/dist/src/browser/ldap-tree-viewer/store/Store.d.ts +18 -0
- package/dist/src/browser/ldap-tree-viewer/store/actions.d.ts +28 -0
- package/dist/src/browser/ldap-tree-viewer/store/reducers.d.ts +7 -0
- package/dist/src/browser/ldap-tree-viewer/types.d.ts +34 -0
- package/dist/src/browser/ldap-unit-editor/LdapUnitEditor.d.ts +27 -0
- package/dist/src/browser/ldap-unit-editor/api/UnitApiClient.d.ts +24 -0
- package/dist/src/browser/ldap-unit-editor/components/MoveUnitModal.d.ts +28 -0
- package/dist/src/browser/ldap-unit-editor/components/UnitPropertyEditor.d.ts +28 -0
- package/dist/src/browser/ldap-unit-editor/components/UnitTree.d.ts +18 -0
- package/dist/src/browser/ldap-unit-editor/index.d.ts +6 -0
- package/dist/src/browser/ldap-unit-editor/types.d.ts +55 -0
- package/dist/src/browser/ldap-user-editor/LdapUserEditor.d.ts +32 -0
- package/dist/src/browser/ldap-user-editor/api/UserApiClient.d.ts +55 -0
- package/dist/src/browser/ldap-user-editor/cache/CacheManager.d.ts +65 -0
- package/dist/src/browser/ldap-user-editor/components/MoveUserModal.d.ts +28 -0
- package/dist/src/browser/ldap-user-editor/components/PointerField.d.ts +22 -0
- package/dist/src/browser/ldap-user-editor/components/UserEditor.d.ts +46 -0
- package/dist/src/browser/ldap-user-editor/components/UserList.d.ts +24 -0
- package/dist/src/browser/ldap-user-editor/components/UserTree.d.ts +24 -0
- package/dist/src/browser/ldap-user-editor/index.d.ts +7 -0
- package/dist/src/browser/ldap-user-editor/types.d.ts +67 -0
- package/dist/src/browser/shared/components/Modal.d.ts +38 -0
- package/dist/src/browser/shared/components/StatusMessage.d.ts +48 -0
- package/dist/src/browser/shared/index.d.ts +10 -0
- package/dist/src/browser/shared/types/index.d.ts +65 -0
- package/dist/src/browser/shared/utils/dom.d.ts +33 -0
- package/dist/src/browser/shared/utils/form.d.ts +28 -0
- package/dist/src/browser/shared/utils/schema.d.ts +29 -0
- package/dist/src/config/args.d.ts +128 -0
- package/dist/src/config/schema.d.ts +18 -0
- package/dist/src/hooks.d.ts +76 -0
- package/dist/src/lib/auth/base.d.ts +9 -0
- package/dist/src/lib/authz/base.d.ts +63 -0
- package/dist/src/lib/expressFormatedResponses.d.ts +26 -0
- package/dist/src/lib/ldapActions.d.ts +91 -0
- package/dist/src/lib/parseConfig.d.ts +23 -0
- package/dist/src/lib/utils.d.ts +73 -0
- package/dist/src/logger/winston.d.ts +3 -0
- package/dist/src/plugins/auth/authzLinid1.d.ts +46 -0
- package/dist/src/plugins/auth/authzPerBranch.d.ts +59 -0
- package/dist/src/plugins/auth/crowdsec.d.ts +29 -0
- package/dist/src/plugins/auth/llng.d.ts +8 -0
- package/dist/src/plugins/auth/openidconnect.d.ts +11 -0
- package/dist/src/plugins/auth/rateLimit.d.ts +24 -0
- package/dist/src/plugins/auth/token.d.ts +17 -0
- package/dist/src/plugins/configApi.d.ts +24 -0
- package/dist/src/plugins/demo/helloworld.d.ts +12 -0
- package/dist/src/plugins/ldap/bulkImport.d.ts +48 -0
- package/dist/src/plugins/ldap/departmentSync.d.ts +35 -0
- package/dist/src/plugins/ldap/externalUsersInGroups.d.ts +21 -0
- package/dist/src/plugins/ldap/flatGeneric.d.ts +31 -0
- package/dist/src/plugins/ldap/groups.d.ts +95 -0
- package/dist/src/plugins/ldap/onChange.d.ts +32 -0
- package/dist/src/plugins/ldap/organization.d.ts +65 -0
- package/dist/src/plugins/ldap/trash.d.ts +52 -0
- package/dist/src/plugins/static.d.ts +7 -0
- package/dist/src/plugins/twake/calendarResources.d.ts +31 -0
- package/dist/src/plugins/twake/james.d.ts +83 -0
- package/dist/src/plugins/weblogs.d.ts +8 -0
- package/docs/DEVELOPER_GUIDE.md +298 -0
- package/docs/OPENAPI.md +440 -0
- package/docs/PLUGIN_DEPENDENCIES.md +612 -0
- package/docs/README.md +466 -0
- package/docs/api/REFERENCE.md +983 -0
- package/docs/api/REST_API.md +1237 -0
- package/docs/authentication.md +469 -0
- package/docs/authzLinid1.md +521 -0
- package/docs/authzPerBranch.md +596 -0
- package/docs/browser/LIBRARIES.md +1196 -0
- package/docs/examples/EXAMPLES.md +1659 -0
- package/docs/examples/twake-mailbox-type-nomenclature.ldif +37 -0
- package/docs/examples/twake-mailbox-type-schema-amendment.ldif +30 -0
- package/docs/jamesTeamMailboxes.md +343 -0
- package/docs/ldapBulkImport.md +722 -0
- package/docs/ldapExternalUsersInGroups.md +325 -0
- package/docs/ldapFlatGeneric.md +444 -0
- package/docs/ldapGroups.md +589 -0
- package/docs/ldapOrganizations.md +659 -0
- package/docs/ldapTrash.md +260 -0
- package/docs/linagora.png +0 -0
- package/docs/onChange.md +318 -0
- package/docs/plugins/DEVELOPMENT.md +1219 -0
- package/docs/presenterm-fr.md +721 -0
- package/docs/presenterm.md +721 -0
- package/docs/schemas/SCHEMAS.md +1212 -0
- package/docs/static.md +410 -0
- package/docs/twakeCalendarResources.md +148 -0
- package/docs/twakeJames.md +661 -0
- package/docs/weblogs.md +399 -0
- package/examples/web/ldap-group-editor.html +113 -0
- package/examples/web/ldap-tree-viewer.html +368 -0
- package/examples/web/ldap-unit-editor.html +108 -0
- package/examples/web/ldap-user-editor.html +412 -0
- package/package.json +458 -0
- package/static/browser/common-demo.css +450 -0
- package/static/browser/ldap-group-editor/LdapGroupEditor.js +207 -0
- package/static/browser/ldap-group-editor/LdapGroupEditor.js.map +1 -0
- package/static/browser/ldap-group-editor/api/GroupApiClient.js +112 -0
- package/static/browser/ldap-group-editor/api/GroupApiClient.js.map +1 -0
- package/static/browser/ldap-group-editor/components/CreateGroupModal.js +212 -0
- package/static/browser/ldap-group-editor/components/CreateGroupModal.js.map +1 -0
- package/static/browser/ldap-group-editor/components/GroupPropertyEditor.js +497 -0
- package/static/browser/ldap-group-editor/components/GroupPropertyEditor.js.map +1 -0
- package/static/browser/ldap-group-editor/components/GroupTree.js +153 -0
- package/static/browser/ldap-group-editor/components/GroupTree.js.map +1 -0
- package/static/browser/ldap-group-editor/components/MoveGroupModal.js +235 -0
- package/static/browser/ldap-group-editor/components/MoveGroupModal.js.map +1 -0
- package/static/browser/ldap-group-editor/index.js +2 -0
- package/static/browser/ldap-group-editor/index.js.map +1 -0
- package/static/browser/ldap-group-editor/types.js +2 -0
- package/static/browser/ldap-group-editor/types.js.map +1 -0
- package/static/browser/ldap-group-editor.esm.js +1399 -0
- package/static/browser/ldap-group-editor.esm.js.map +1 -0
- package/static/browser/ldap-group-editor.js +1407 -0
- package/static/browser/ldap-group-editor.js.map +1 -0
- package/static/browser/ldap-group-editor.min.js +2 -0
- package/static/browser/ldap-group-editor.min.js.map +1 -0
- package/static/browser/ldap-resource-editor/api/ResourceApiClient.js +226 -0
- package/static/browser/ldap-resource-editor/api/ResourceApiClient.js.map +1 -0
- package/static/browser/ldap-resource-editor/cache/CacheManager.js +123 -0
- package/static/browser/ldap-resource-editor/cache/CacheManager.js.map +1 -0
- package/static/browser/ldap-resource-editor/index.js +2 -0
- package/static/browser/ldap-resource-editor/index.js.map +1 -0
- package/static/browser/ldap-resource-editor/types.js +2 -0
- package/static/browser/ldap-resource-editor/types.js.map +1 -0
- package/static/browser/ldap-tree-viewer/LdapTreeViewer.js +187 -0
- package/static/browser/ldap-tree-viewer/LdapTreeViewer.js.map +1 -0
- package/static/browser/ldap-tree-viewer/api/LdapApiClient.js +50 -0
- package/static/browser/ldap-tree-viewer/api/LdapApiClient.js.map +1 -0
- package/static/browser/ldap-tree-viewer/components/TreeNode.js +140 -0
- package/static/browser/ldap-tree-viewer/components/TreeNode.js.map +1 -0
- package/static/browser/ldap-tree-viewer/components/TreeRoot.js +98 -0
- package/static/browser/ldap-tree-viewer/components/TreeRoot.js.map +1 -0
- package/static/browser/ldap-tree-viewer/index.js +2 -0
- package/static/browser/ldap-tree-viewer/index.js.map +1 -0
- package/static/browser/ldap-tree-viewer/store/Store.js +29 -0
- package/static/browser/ldap-tree-viewer/store/Store.js.map +1 -0
- package/static/browser/ldap-tree-viewer/store/actions.js +53 -0
- package/static/browser/ldap-tree-viewer/store/actions.js.map +1 -0
- package/static/browser/ldap-tree-viewer/store/reducers.js +79 -0
- package/static/browser/ldap-tree-viewer/store/reducers.js.map +1 -0
- package/static/browser/ldap-tree-viewer/types.js +2 -0
- package/static/browser/ldap-tree-viewer/types.js.map +1 -0
- package/static/browser/ldap-tree-viewer.css +2 -0
- package/static/browser/ldap-tree-viewer.css.map +1 -0
- package/static/browser/ldap-tree-viewer.esm.js +606 -0
- package/static/browser/ldap-tree-viewer.esm.js.map +1 -0
- package/static/browser/ldap-tree-viewer.js +614 -0
- package/static/browser/ldap-tree-viewer.js.map +1 -0
- package/static/browser/ldap-tree-viewer.min.js +2 -0
- package/static/browser/ldap-tree-viewer.min.js.map +1 -0
- package/static/browser/ldap-unit-editor/LdapUnitEditor.js +119 -0
- package/static/browser/ldap-unit-editor/LdapUnitEditor.js.map +1 -0
- package/static/browser/ldap-unit-editor/api/UnitApiClient.js +95 -0
- package/static/browser/ldap-unit-editor/api/UnitApiClient.js.map +1 -0
- package/static/browser/ldap-unit-editor/components/MoveUnitModal.js +295 -0
- package/static/browser/ldap-unit-editor/components/MoveUnitModal.js.map +1 -0
- package/static/browser/ldap-unit-editor/components/UnitPropertyEditor.js +321 -0
- package/static/browser/ldap-unit-editor/components/UnitPropertyEditor.js.map +1 -0
- package/static/browser/ldap-unit-editor/components/UnitTree.js +197 -0
- package/static/browser/ldap-unit-editor/components/UnitTree.js.map +1 -0
- package/static/browser/ldap-unit-editor/index.js +2 -0
- package/static/browser/ldap-unit-editor/index.js.map +1 -0
- package/static/browser/ldap-unit-editor/types.js +2 -0
- package/static/browser/ldap-unit-editor/types.js.map +1 -0
- package/static/browser/ldap-unit-editor.esm.js +1013 -0
- package/static/browser/ldap-unit-editor.esm.js.map +1 -0
- package/static/browser/ldap-unit-editor.js +1021 -0
- package/static/browser/ldap-unit-editor.js.map +1 -0
- package/static/browser/ldap-unit-editor.min.js +2 -0
- package/static/browser/ldap-unit-editor.min.js.map +1 -0
- package/static/browser/ldap-user-editor/LdapUserEditor.js +184 -0
- package/static/browser/ldap-user-editor/LdapUserEditor.js.map +1 -0
- package/static/browser/ldap-user-editor/api/UserApiClient.js +209 -0
- package/static/browser/ldap-user-editor/api/UserApiClient.js.map +1 -0
- package/static/browser/ldap-user-editor/cache/CacheManager.js +123 -0
- package/static/browser/ldap-user-editor/cache/CacheManager.js.map +1 -0
- package/static/browser/ldap-user-editor/components/MoveUserModal.js +302 -0
- package/static/browser/ldap-user-editor/components/MoveUserModal.js.map +1 -0
- package/static/browser/ldap-user-editor/components/PointerField.js +152 -0
- package/static/browser/ldap-user-editor/components/PointerField.js.map +1 -0
- package/static/browser/ldap-user-editor/components/UserEditor.js +608 -0
- package/static/browser/ldap-user-editor/components/UserEditor.js.map +1 -0
- package/static/browser/ldap-user-editor/components/UserList.js +181 -0
- package/static/browser/ldap-user-editor/components/UserList.js.map +1 -0
- package/static/browser/ldap-user-editor/components/UserTree.js +164 -0
- package/static/browser/ldap-user-editor/components/UserTree.js.map +1 -0
- package/static/browser/ldap-user-editor/index.js +2 -0
- package/static/browser/ldap-user-editor/index.js.map +1 -0
- package/static/browser/ldap-user-editor/types.js +2 -0
- package/static/browser/ldap-user-editor/types.js.map +1 -0
- package/static/browser/ldap-user-editor.css +2 -0
- package/static/browser/ldap-user-editor.css.map +1 -0
- package/static/browser/ldap-user-editor.esm.js +1897 -0
- package/static/browser/ldap-user-editor.esm.js.map +1 -0
- package/static/browser/ldap-user-editor.js +1905 -0
- package/static/browser/ldap-user-editor.js.map +1 -0
- package/static/browser/ldap-user-editor.min.js +2 -0
- package/static/browser/ldap-user-editor.min.js.map +1 -0
- package/static/browser/shared/components/Modal.js +121 -0
- package/static/browser/shared/components/Modal.js.map +1 -0
- package/static/browser/shared/components/StatusMessage.js +119 -0
- package/static/browser/shared/components/StatusMessage.js.map +1 -0
- package/static/browser/shared/index.js +7 -0
- package/static/browser/shared/index.js.map +1 -0
- package/static/browser/shared/types/index.js +37 -0
- package/static/browser/shared/types/index.js.map +1 -0
- package/static/browser/shared/utils/dom.js +78 -0
- package/static/browser/shared/utils/dom.js.map +1 -0
- package/static/browser/shared/utils/form.js +234 -0
- package/static/browser/shared/utils/form.js.map +1 -0
- package/static/browser/shared/utils/schema.js +121 -0
- package/static/browser/shared/utils/schema.js.map +1 -0
- package/static/browser/shared.esm.js +694 -0
- package/static/browser/shared.esm.js.map +1 -0
- package/static/browser/shared.js +723 -0
- package/static/browser/shared.js.map +1 -0
- package/static/browser/shared.min.js +2 -0
- package/static/browser/shared.min.js.map +1 -0
- package/static/schemas/ad/computers.json +92 -0
- package/static/schemas/ad/groups.json +55 -0
- package/static/schemas/ad/organizations.json +66 -0
- package/static/schemas/ad/users.json +116 -0
- package/static/schemas/standard/devices.json +72 -0
- package/static/schemas/standard/groups.json +54 -0
- package/static/schemas/standard/organizations.json +49 -0
- package/static/schemas/standard/users.json +86 -0
- package/static/schemas/twake/groups.json +75 -0
- package/static/schemas/twake/nomenclature/twakeAccountStatus.json +31 -0
- package/static/schemas/twake/nomenclature/twakeDeliveryMode.json +31 -0
- package/static/schemas/twake/nomenclature/twakeListType.json +31 -0
- package/static/schemas/twake/nomenclature/twakeMailboxType.json +31 -0
- package/static/schemas/twake/nomenclature/twakeTitle.json +31 -0
- package/static/schemas/twake/organizations.json +52 -0
- package/static/schemas/twake/positions.json +32 -0
- package/static/schemas/twake/users.json +112 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ldap-user-editor.js","sources":["../../../../src/browser/ldap-user-editor/cache/CacheManager.ts","../../../../src/browser/ldap-user-editor/api/UserApiClient.ts","../../../../src/browser/ldap-user-editor/components/UserTree.ts","../../../../src/browser/ldap-user-editor/components/PointerField.ts","../../../../src/browser/ldap-user-editor/components/MoveUserModal.ts","../../../../src/browser/ldap-user-editor/components/UserEditor.ts","../../../../src/browser/ldap-user-editor/components/UserList.ts","../../../../src/browser/ldap-user-editor/LdapUserEditor.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).LdapUserEditor={})}(this,function(e){"use strict";class t{constructor(e={}){this.cache=new Map,this.ttl=e.ttl??3e5,this.maxEntries=e.maxEntries??200}get(e){const t=this.cache.get(e);return t?Date.now()-t.timestamp>=this.ttl?(this.cache.delete(e),null):(t.accessCount++,t.timestamp=Date.now(),t.data):null}set(e,t){this.cache.size>=this.maxEntries&&!this.cache.has(e)&&this.evictLRU(),this.cache.set(e,{data:t,timestamp:Date.now(),accessCount:0})}has(e){return null!==this.get(e)}invalidate(e){this.cache.delete(e)}invalidatePattern(e){const t=new RegExp("^"+e.replace(/\*/g,".*").replace(/\?/g,".")+"$");for(const e of this.cache.keys())t.test(e)&&this.cache.delete(e)}clear(){this.cache.clear()}getStats(){return{size:this.cache.size,maxSize:this.maxEntries,ttl:this.ttl,keys:Array.from(this.cache.keys())}}evictLRU(){let e=null,t=1/0,n=1/0;for(const[s,i]of this.cache.entries())(i.accessCount<n||i.accessCount===n&&i.timestamp<t)&&(e=s,t=i.timestamp,n=i.accessCount);e&&this.cache.delete(e)}cleanExpired(){const e=Date.now();let t=0;for(const[n,s]of this.cache.entries())e-s.timestamp>=this.ttl&&(this.cache.delete(n),t++);return t}}class n{constructor(e="",n){this.baseUrl=e||("undefined"!=typeof window?window.location.origin:""),this.cache=new t(n),"undefined"!=typeof window&&window.setInterval(()=>this.cache.cleanExpired(),3e5)}getApiBase(){return`${this.baseUrl}/api/v1`}getFirstValue(e){return e?Array.isArray(e)?e[0]||"":String(e):""}async cachedFetch(e,t){const n=t?.method||"GET";if("GET"===n){const t=this.cache.get(e);if(null!==t)return t}const s=await fetch(e,t);if(!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);const i=await s.json();return"GET"===n&&this.cache.set(e,i),i}async getConfig(){return this.cachedFetch(`${this.getApiBase()}/config`)}async getSchema(e){const t=e.startsWith("http")?e:`${this.baseUrl}${e}`;return this.cachedFetch(t)}async getUsers(e=""){const t=e?`${this.getApiBase()}/ldap/users?match=${encodeURIComponent(e)}&attribute=uid`:`${this.getApiBase()}/ldap/users`,n=await this.cachedFetch(t);return Array.isArray(n)?n:Object.values(n)}async getUser(e){const t=`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`;return this.cachedFetch(t)}async updateUser(e,t){const n=await fetch(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){const e=await n.text();throw new Error(e||"Failed to update user")}const s=await n.json();return this.cache.invalidate(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`),this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`),s}async createUser(e){const t=await fetch(`${this.getApiBase()}/ldap/users`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const e=await t.text();throw new Error(e||"Failed to create user")}const n=await t.json();return this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`),n}async deleteUser(e){const t=await fetch(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok){const e=await t.text();throw new Error(e||"Failed to delete user")}this.cache.invalidate(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`),this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`)}async moveUser(e,t){const n=await fetch(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}/move`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetOrgDn:t})});if(!n.ok){const e=await n.text();throw new Error(e||"Failed to move user")}const s=await n.json();return this.cache.invalidate(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`),this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`),s}async getPointerOptions(e){try{const t=await this.getConfig(),n=t.features?.ldapFlatGeneric?.flatResources?.find(t=>e===t.base||e.startsWith(t.base));if(n&&n.endpoints?.list){const e=`${this.baseUrl}${n.endpoints.list}`,t=await this.cachedFetch(e),s=Array.isArray(t)?t:Object.values(t);let i="cn";const r=n.mainAttribute;if(n.schemaUrl)try{const e=await this.getSchema(n.schemaUrl),t=Object.entries(e.attributes).find(([,e])=>"displayName"===e.role);t&&(i=t[0])}catch(e){}return s.map(e=>{const t=this.getFirstValue(e[i]),n=this.getFirstValue(e[r]);return{dn:e.dn,label:t||n||e.dn}})}throw new Error(`No flatResource found in config for branch: ${e}`)}catch(t){return console.error("Failed to load pointer options for branch:",e,t),[]}}clearCache(){this.cache.clear()}invalidateCache(e){this.cache.invalidatePattern(e)}getCacheStats(){return this.cache.getStats()}getCache(){return this.cache}}class s{constructor(e,n,s){this.expandedNodes=new Set,this.selectedDn=null,this.rootDn=null,this.container=e,this.baseUrl=n,this.onSelectOrg=s,this.cache=new t,window.setInterval(()=>this.cache.cleanExpired(),3e5)}async cachedFetch(e){const t=this.cache.get(e);if(null!==t)return t;const n=await fetch(e);if(!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);const s=await n.json();return this.cache.set(e,s),s}async init(){this.container.innerHTML='\n <div class="sidebar">\n <div class="sidebar-header">\n <h2>\n <span class="material-icons">account_tree</span>\n Organizations\n </h2>\n </div>\n <div id="org-tree-viewer" class="user-tree">\n <div class="loading"><div class="spinner"></div></div>\n </div>\n </div>\n ';try{const e=await this.cachedFetch(`${this.baseUrl}/api/v1/ldap/organizations/top`);this.rootDn=e.dn,await this.renderTree()}catch(e){console.error("Failed to init tree:",e);const t=this.container.querySelector("#org-tree-viewer");t&&(t.innerHTML='<div class="empty-state"><span class="material-icons">error</span><p>Failed to load organization tree</p></div>')}}async renderTree(){const e=this.container.querySelector("#org-tree-viewer");if(e&&this.rootDn)try{const t=await this.renderNode(this.rootDn,0);e.innerHTML=t,this.attachEventListeners()}catch(t){console.error("Failed to render tree:",t),e.innerHTML='<div class="empty-state"><span class="material-icons">error</span><p>Error rendering tree</p></div>'}}async renderNode(e,t){const n=this.expandedNodes.has(e),s=this.selectedDn===e,i=20*t,r=await this.cachedFetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(e)}`);let a=e;r.ou?a=Array.isArray(r.ou)?r.ou[0]:r.ou:r.cn&&(a=Array.isArray(r.cn)?r.cn[0]:r.cn);let o=`\n <div class="tree-node ${s?"active":""}" style="padding-left: ${i}px">\n <span class="material-icons tree-node-toggle" data-dn="${e}">\n ${n?"expand_more":"chevron_right"}\n </span>\n <span class="material-icons">business</span>\n <span class="tree-node-label" data-dn="${e}">${a}</span>\n </div>\n `;if(n)try{const n=(await this.cachedFetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(e)}/subnodes`)).filter(e=>{const t=Array.isArray(e.objectClass)?e.objectClass:e.objectClass?[e.objectClass]:[];return t.includes("organizationalUnit")||t.includes("organization")});for(const e of n)o+=await this.renderNode(e.dn,t+1)}catch(t){console.error("Failed to load subnodes for",e,t)}return o}attachEventListeners(){this.container.querySelectorAll(".tree-node-toggle").forEach(e=>{e.addEventListener("click",async t=>{t.stopPropagation();const n=e.getAttribute("data-dn");n&&(this.expandedNodes.has(n)?this.expandedNodes.delete(n):this.expandedNodes.add(n),await this.renderTree())})}),this.container.querySelectorAll(".tree-node-label").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const n=e.getAttribute("data-dn");n&&(this.selectedDn=n,this.renderTree(),this.onSelectOrg(n))})})}async refresh(){await this.renderTree()}destroy(){this.container.innerHTML=""}}class i{constructor(e,t,n,s,i){this.options=[],this.api=e,this.fieldName=t,this.attribute=n,this.value=s,this.onChange=i}async init(){await this.loadOptions()}async loadOptions(){try{const e="array"===this.attribute.type?this.attribute.items?.branch?.[0]:this.attribute.branch?.[0];if(!e)return void(this.options=[]);this.options=await this.api.getPointerOptions(e)}catch(e){console.error("Failed to load pointer options:",e),this.options=[]}}render(){const e="array"===this.attribute.type,t=this.attribute.required||!1;return e?this.renderArray(t):this.renderSingle(t)}renderSingle(e){const t=Array.isArray(this.value)?this.value[0]||"":this.value||"";return`\n <div class="form-group">\n <label class="form-label">\n ${this.fieldName}\n ${e?'<span class="required">*</span>':""}\n </label>\n <select\n class="form-select pointer-field-select"\n data-field="${this.fieldName}"\n ${e?"required":""}\n >\n <option value="">Select...</option>\n ${this.options.map(e=>`\n <option value="${e.dn}" ${t===e.dn?"selected":""}>\n ${e.label}\n </option>\n `).join("")}\n </select>\n </div>\n `}renderArray(e){const t=Array.isArray(this.value)?this.value:[];return`\n <div class="form-group">\n <label class="form-label">\n ${this.fieldName}\n ${e?'<span class="required">*</span>':""}\n </label>\n <div class="array-field" data-field="${this.fieldName}">\n ${t.map((e,t)=>`\n <div class="array-item" data-index="${t}">\n <select class="form-select pointer-array-item">\n <option value="">Select...</option>\n ${this.options.map(t=>`\n <option value="${t.dn}" ${e===t.dn?"selected":""}>\n ${t.label}\n </option>\n `).join("")}\n </select>\n <button type="button" class="btn btn-secondary btn-icon remove-array-item">\n <span class="material-icons">remove</span>\n </button>\n </div>\n `).join("")}\n <button type="button" class="btn btn-secondary add-array-item">\n <span class="material-icons">add</span>\n Add ${this.fieldName}\n </button>\n </div>\n </div>\n `}attachHandlers(e){"array"===this.attribute.type?this.attachArrayHandlers(e):this.attachSingleHandlers(e)}attachSingleHandlers(e){const t=e.querySelector(`select[data-field="${this.fieldName}"]`);t?.addEventListener("change",()=>{this.onChange(t.value)})}attachArrayHandlers(e){const t=e.querySelector(`.array-field[data-field="${this.fieldName}"]`);if(!t)return;t.querySelectorAll(".pointer-array-item").forEach((e,t)=>{e.addEventListener("change",()=>{const n=Array.isArray(this.value)?[...this.value]:[];n[t]=e.value,this.onChange(n)})}),t.querySelectorAll(".remove-array-item").forEach((e,t)=>{e.addEventListener("click",()=>{const e=Array.isArray(this.value)?[...this.value]:[];e.splice(t,1),this.onChange(e)})});const n=t.querySelector(".add-array-item");n?.addEventListener("click",()=>{const e=Array.isArray(this.value)?[...this.value]:[];e.push(""),this.onChange(e)})}}class r{constructor(e,t,n){this.modal=null,this.selectedOrgDn=null,this.expandedNodes=new Set,this.rootDn=null,this.api=e,this.currentOrgDn=t,this.onMove=n}static escapeHtml(e){if(null==e)return"";const t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(e).replace(/[&<>"'/]/g,e=>t[e])}async show(){this.modal=document.createElement("div"),this.modal.className="modal-overlay active",this.modal.innerHTML='\n <div class="modal-container" style="max-width: 600px;">\n <div class="modal-header">\n <h3 style="margin: 0; display: flex; align-items: center; gap: 0.5rem;">\n <span class="material-icons">folder_open</span>\n Move User to Organization\n </h3>\n <button class="modal-close" id="modal-close-btn">\n <span class="material-icons">close</span>\n </button>\n </div>\n <div class="modal-body">\n <div id="move-modal-alert"></div>\n <div style="margin-bottom: 1rem; color: #666; font-size: 0.9rem;">\n Select the target organization where you want to move this user.\n </div>\n <div id="organization-tree-container" style="max-height: 400px; overflow-y: auto; border: 1px solid #ddd; border-radius: 4px; padding: 0.5rem;">\n <div class="loading">\n <div class="spinner"></div>\n <p style="margin-top: 1rem">Loading organizations...</p>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-secondary" id="modal-cancel-btn">\n Cancel\n </button>\n <button type="button" class="btn btn-primary" id="modal-move-btn" disabled>\n <span class="material-icons">drive_file_move</span>\n Move User\n </button>\n </div>\n </div>\n ',document.body.appendChild(this.modal),this.attachHandlers(),await this.loadOrganizationTree()}attachHandlers(){if(!this.modal)return;const e=this.modal.querySelector("#modal-close-btn");e?.addEventListener("click",()=>this.close());const t=this.modal.querySelector("#modal-cancel-btn");t?.addEventListener("click",()=>this.close());const n=this.modal.querySelector("#modal-move-btn");n?.addEventListener("click",()=>this.handleMove()),this.modal.addEventListener("click",e=>{e.target===this.modal&&this.close()});const s=e=>{"Escape"===e.key&&(this.close(),document.removeEventListener("keydown",s))};document.addEventListener("keydown",s)}async loadOrganizationTree(){console.log("loadOrganizationTree called");const e=this.modal?.querySelector("#organization-tree-container");if(e)try{console.log("Fetching top organization...");const e=await this.api.cachedFetch(`${this.api.baseUrl||window.location.origin}/api/v1/ldap/organizations/top`);console.log("Top org:",e),this.rootDn=e.dn,this.expandedNodes.add(this.rootDn),console.log("Calling renderTree..."),await this.renderTree(),console.log("renderTree completed")}catch(t){console.error("Error in loadOrganizationTree:",t),e.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>Failed to load organizations: ${r.escapeHtml(t.message)}</div>\n </div>\n `}else console.log("Container not found")}async renderTree(){console.log("renderTree called");const e=this.modal?.querySelector("#organization-tree-container");if(e&&this.rootDn)try{console.log("renderTree: calling renderNode for",this.rootDn);const t=await this.renderNode(this.rootDn,0);console.log("renderTree: got html, length:",t.length),e.innerHTML=t,console.log("renderTree: html set, attaching handlers"),this.attachTreeHandlers(),console.log("renderTree: handlers attached")}catch(t){console.error("Error in renderTree:",t),e.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>Error rendering tree: ${r.escapeHtml(t.message)}</div>\n </div>\n `}else console.log("renderTree: no container or rootDn",{container:e,rootDn:this.rootDn})}async renderNode(e,t){console.log("renderNode called for",e,"level",t);const n=this.expandedNodes.has(e),s=e===this.currentOrgDn,i=e===this.selectedOrgDn,a=20*t,o=this.api.baseUrl||window.location.origin;console.log("Fetching node details from:",`${o}/api/v1/ldap/organizations/${encodeURIComponent(e)}`);const c=await this.api.cachedFetch(`${o}/api/v1/ldap/organizations/${encodeURIComponent(e)}`);console.log("Got node:",c);const l=Array.isArray(c.ou)?c.ou[0]:c.ou,d=(c.twakeDepartmentPath?Array.isArray(c.twakeDepartmentPath)?c.twakeDepartmentPath[0]:c.twakeDepartmentPath:void 0)||l||e;let h=`\n <div\n class="org-node ${s?"org-current":""} ${i?"org-selected":""}"\n data-org-dn="${r.escapeHtml(e)}"\n style="\n padding: 0.5rem;\n padding-left: ${a+8}px;\n cursor: ${s?"not-allowed":"pointer"};\n background: ${s?"#f5f5f5":i?"#e3f2fd":"white"};\n opacity: ${s?"0.6":"1"};\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border-left: 2px solid ${i?"#2196f3":"transparent"};\n "\n >\n <span class="material-icons tree-toggle" data-dn="${r.escapeHtml(e)}" style="cursor: pointer; font-size: 1.2rem;">\n ${n?"expand_more":"chevron_right"}\n </span>\n <span class="material-icons" style="font-size: 1.2rem; color: ${s?"#999":"#2196f3"};">\n ${s?"business":"folder"}\n </span>\n <span style="flex: 1; font-weight: ${i?"600":"500"};">\n ${r.escapeHtml(d)}\n ${s?'<span style="font-size: 0.85rem; color: #666; margin-left: 0.5rem;">(current)</span>':""}\n </span>\n ${i?'<span class="material-icons" style="color: #2196f3;">check_circle</span>':""}\n </div>\n `;if(n)try{const n=await this.api.cachedFetch(`${o}/api/v1/ldap/organizations/${encodeURIComponent(e)}/subnodes?objectClass=organizationalUnit`);for(const e of n)h+=await this.renderNode(e.dn,t+1)}catch{}return h}attachTreeHandlers(){const e=this.modal?.querySelectorAll(".tree-toggle");e?.forEach(e=>{e.addEventListener("click",async t=>{t.stopPropagation();const n=e.getAttribute("data-dn");n&&(this.expandedNodes.has(n)?this.expandedNodes.delete(n):this.expandedNodes.add(n),await this.renderTree())})});const t=this.modal?.querySelectorAll(".org-node");t?.forEach(e=>{const t=e.getAttribute("data-org-dn");t&&t!==this.currentOrgDn&&e.addEventListener("click",()=>{this.selectOrganization(t)})})}async selectOrganization(e){this.selectedOrgDn=e,await this.renderTree();const t=this.modal?.querySelector("#modal-move-btn");t&&(t.disabled=!1)}async handleMove(){if(!this.selectedOrgDn)return;const e=this.modal?.querySelector("#modal-move-btn"),t=this.modal?.querySelector("#move-modal-alert");e&&(e.disabled=!0,e.innerHTML='\n <span class="spinner" style="width: 1rem; height: 1rem; border-width: 2px;"></span>\n Moving...\n ');try{this.onMove(this.selectedOrgDn),this.close()}catch(n){t&&(t.innerHTML=`\n <div class="alert alert-error" style="margin-bottom: 1rem;">\n <span class="material-icons">error</span>\n <div>Move failed: ${r.escapeHtml(n.message)}</div>\n </div>\n `),e&&(e.disabled=!1,e.innerHTML='\n <span class="material-icons">drive_file_move</span>\n Move User\n ')}}close(){this.modal&&(this.modal.remove(),this.modal=null)}}class a{static escapeHtml(e){if(null==e)return"";const t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(e).replace(/[&<>"'/]/g,e=>t[e])}constructor(e,t,n,s,i){this.user=null,this.schema=null,this.formData={},this.pointerFields=new Map,this.ldapBase="",this.container=e,this.api=t,this.userDn=n,this.onSaved=s,this.onDeleted=i}async init(){try{this.showLoading(),await this.loadUserAndSchema(),this.render(),await this.initPointerFields(),this.attachHandlers()}catch(e){this.showError(e.message)}}showLoading(){this.container.innerHTML='\n <div class="loading">\n <div class="spinner"></div>\n <p style="margin-top: 1rem">Loading user data...</p>\n </div>\n '}showError(e){this.container.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${a.escapeHtml(e)}</div>\n </div>\n `}async loadUserAndSchema(){const e=await this.api.getConfig();this.ldapBase=e.ldapBase;const t=e.features?.ldapFlatGeneric?.flatResources?.find(e=>"users"===e.pluralName||"users"===e.name),n=t?.schemaUrl;if(!n)throw new Error("Users schema not configured");[this.schema,this.user]=await Promise.all([this.api.getSchema(n),this.api.getUser(this.userDn)]),this.schema&&this.replacePlaceholders(this.schema),this.formData={...this.user}}replacePlaceholders(e){for(const t of Object.values(e.attributes))t.branch&&(t.branch=t.branch.map(e=>e.replace(/__LDAP_BASE__/g,this.ldapBase))),t.items?.branch&&(t.items.branch=t.items.branch.map(e=>e.replace(/__LDAP_BASE__/g,this.ldapBase)))}getFirstValue(e){return e?Array.isArray(e)?e[0]||"":String(e):""}getFieldByRole(e){if(!this.schema||!this.user)return"";const t=Object.entries(this.schema.attributes).find(([,t])=>t.role===e);if(!t)return"";const[n]=t;return this.getFirstValue(this.user[n])}render(){if(!this.user||!this.schema)return;const e=this.getFieldByRole("displayName"),t=this.getFirstValue(this.user[this.schema.entity.mainAttribute]),n=e||t||"User";this.container.innerHTML=`\n <div class="editor-container">\n <div class="editor-header">\n <span class="material-icons">person</span>\n <div class="editor-title">\n <h3>${a.escapeHtml(n)}</h3>\n <div class="dn">${a.escapeHtml(this.userDn)}</div>\n </div>\n </div>\n\n <div id="alert-container"></div>\n\n <form id="user-edit-form" class="editor-form">\n ${this.renderFormSections()}\n\n <div class="editor-actions" style="margin-top: 2rem; display: flex; justify-content: space-between; align-items: center;">\n <div style="display: flex; gap: 0.5rem;">\n <button type="button" class="btn btn-secondary" id="move-user-btn">\n <span class="material-icons">drive_file_move</span>\n Move User\n </button>\n <button type="button" class="btn btn-secondary" id="delete-user-btn" style="background: #d32f2f; color: white;">\n <span class="material-icons">person_remove</span>\n Delete User\n </button>\n </div>\n <button type="submit" class="btn btn-primary">\n <span class="material-icons">save</span>\n Save Changes\n </button>\n </div>\n </form>\n </div>\n `}renderFormSections(){if(!this.schema)return"";const e={},t=[];for(const[n,s]of Object.entries(this.schema.attributes))"objectClass"!==n&&(s.group?(e[s.group]||(e[s.group]=[]),e[s.group].push(n)):t.push(n));let n=Object.entries(e).map(([e,t])=>`\n <div class="form-section">\n <div class="form-section-title">${a.escapeHtml(e)}</div>\n <div class="form-row">\n ${t.map(e=>this.renderField(e)).filter(e=>e).join("")}\n </div>\n </div>\n `).join("");return t.length>0&&(n+=`\n <div class="form-section">\n <div class="form-section-title">Other Fields</div>\n <div class="form-row">\n ${t.map(e=>this.renderField(e)).filter(e=>e).join("")}\n </div>\n </div>\n `),n}renderField(e){const t=this.schema?.attributes[e];return t?t.fixed||"organizationLink"===t.role||"organizationPath"===t.role?"":"identifier"===t.role?this.renderIdentifierField(e):"pointer"===t.type||"pointer"===t.items?.type?`<div id="pointer-${a.escapeHtml(e)}"></div>`:"array"===t.type?this.renderArrayField(e,t):"number"===t.type||"integer"===t.type?this.renderNumberField(e,t):this.renderStringField(e,t):""}renderIdentifierField(e){const t=this.formData[e],n=Array.isArray(t)?t[0]:t||"";return`\n <div class="form-group">\n <label class="form-label">${a.escapeHtml(e)}</label>\n <input\n type="text"\n class="form-input"\n value="${a.escapeHtml(n)}"\n disabled\n />\n </div>\n `}renderStringField(e,t){const n=this.formData[e]||"",s=t.test?.includes("@")?"email":"userPassword"===e?"password":"text";return`\n <div class="form-group">\n <label class="form-label">\n ${a.escapeHtml(e)}\n ${t.required?'<span class="required">*</span>':""}\n </label>\n <input\n type="${a.escapeHtml(s)}"\n class="form-input"\n name="${a.escapeHtml(e)}"\n value="${a.escapeHtml(n)}"\n ${t.required?"required":""}\n />\n </div>\n `}renderNumberField(e,t){const n=this.formData[e]||"";return`\n <div class="form-group">\n <label class="form-label">\n ${a.escapeHtml(e)}\n ${t.required?'<span class="required">*</span>':""}\n </label>\n <input\n type="number"\n class="form-input"\n name="${a.escapeHtml(e)}"\n value="${a.escapeHtml(n)}"\n ${t.required?"required":""}\n />\n </div>\n `}renderArrayField(e,t){const n=Array.isArray(this.formData[e])?this.formData[e]:[],s="string"===t.items?.type&&t.items?.test?.includes("@")?"email":"text";return`\n <div class="form-group">\n <label class="form-label">\n ${a.escapeHtml(e)}\n ${t.required?'<span class="required">*</span>':""}\n </label>\n <div class="array-field" data-field="${a.escapeHtml(e)}">\n ${n.map((e,t)=>`\n <div class="array-item" data-index="${t}">\n <input\n type="${a.escapeHtml(s)}"\n class="form-input array-string-item"\n value="${a.escapeHtml(e)}"\n />\n <button type="button" class="btn btn-secondary btn-icon remove-array-item">\n <span class="material-icons">remove</span>\n </button>\n </div>\n `).join("")}\n <button type="button" class="btn btn-secondary add-array-item" data-field="${a.escapeHtml(e)}">\n <span class="material-icons">add</span>\n Add ${a.escapeHtml(e)}\n </button>\n </div>\n </div>\n `}async initPointerFields(){if(!this.schema)return;const e=Object.entries(this.schema.attributes).filter(([,e])=>("pointer"===e.type||"pointer"===e.items?.type)&&!e.fixed).map(([e])=>e);for(const t of e){const e=this.schema.attributes[t],n=this.formData[t],s=new i(this.api,t,e,n,e=>{this.formData[t]=e,this.rerenderPointerField(t)});await s.init(),this.pointerFields.set(t,s);const r=this.container.querySelector(`#pointer-${t}`);r&&(r.innerHTML=s.render(),s.attachHandlers(r))}}rerenderPointerField(e){const t=this.pointerFields.get(e);if(!t)return;const n=this.container.querySelector(`#pointer-${e}`);n&&(n.innerHTML=t.render(),t.attachHandlers(n))}attachHandlers(){const e=this.container.querySelector("#user-edit-form");e?.addEventListener("submit",e=>this.handleSubmit(e));const t=this.container.querySelector("#move-user-btn");t?.addEventListener("click",()=>this.handleMove());const n=this.container.querySelector("#delete-user-btn");n?.addEventListener("click",()=>this.handleDelete()),this.container.querySelectorAll("input[name]").forEach(e=>{e.addEventListener("input",()=>{const t=e.name,n=this.schema?.attributes[t];this.formData[t]="number"===n?.type||"integer"===n?.type?e.value?parseInt(e.value,10):"":e.value})}),this.attachArrayFieldHandlers()}attachArrayFieldHandlers(){this.container.querySelectorAll(".array-field").forEach(e=>{const t=e.getAttribute("data-field");t&&(e.querySelectorAll(".array-string-item").forEach((e,n)=>{e.addEventListener("input",()=>{const s=Array.isArray(this.formData[t])?[...this.formData[t]]:[];s[n]=e.value,this.formData[t]=s})}),e.querySelectorAll(".remove-array-item").forEach((e,n)=>{e.addEventListener("click",()=>{const e=Array.isArray(this.formData[t])?[...this.formData[t]]:[];e.splice(n,1),this.formData[t]=e,this.rerenderArrayField(t)})}))}),this.container.querySelectorAll(".add-array-item").forEach(e=>{e.addEventListener("click",()=>{const t=e.getAttribute("data-field");if(!t)return;const n=Array.isArray(this.formData[t])?[...this.formData[t]]:[];n.push(""),this.formData[t]=n,this.rerenderArrayField(t)})})}rerenderArrayField(e){const t=this.schema?.attributes[e];if(!t)return;const n=this.container.querySelector(`.array-field[data-field="${e}"]`)?.parentElement;if(n){const s="pointer"===t.type||"pointer"===t.items?.type?this.pointerFields.get(e)?.render()||"":this.renderArrayField(e,t);if(n.outerHTML=s,"pointer"===t.type||"pointer"===t.items?.type){const t=this.container.querySelector(`#pointer-${e}`);if(t){const n=this.pointerFields.get(e);n?.attachHandlers(t)}}else this.attachArrayFieldHandlers()}}async handleSubmit(e){e.preventDefault();const t=this.container.querySelector("#alert-container"),n=this.container.querySelector('button[type="submit"]');t&&(t.innerHTML=""),n&&(n.disabled=!0);try{await this.api.updateUser(this.userDn,this.formData),t&&(t.innerHTML='\n <div class="alert alert-success">\n <span class="material-icons">check_circle</span>\n <div>User updated successfully!</div>\n </div>\n '),this.onSaved&&this.onSaved()}catch(e){t&&(t.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${a.escapeHtml(e.message)}</div>\n </div>\n `)}finally{n&&(n.disabled=!1)}}async handleMove(){if(!this.user||!this.schema)return;const e=Object.entries(this.schema.attributes).find(([,e])=>"organizationLink"===e.role);if(!e)return void alert("This user type does not support moving between organizations");const[t]=e,n=Array.isArray(this.user[t])?String(this.user[t][0]):String(this.user[t]||"");if(!n)return void alert("User does not have an organization link");const s=new r(this.api,n,async e=>{await this.performMove(e)});await s.show()}async performMove(e){const t=this.container.querySelector("#alert-container"),n=this.container.querySelector("#move-user-btn");t&&(t.innerHTML=""),n&&(n.disabled=!0,n.innerHTML='\n <span class="spinner" style="width: 1rem; height: 1rem; border-width: 2px;"></span>\n Moving...\n ');try{const n=await this.api.moveUser(this.userDn,e);t&&(t.innerHTML='\n <div class="alert alert-success">\n <span class="material-icons">check_circle</span>\n <div>User moved successfully!</div>\n </div>\n '),n.newDn&&(this.userDn=n.newDn),await this.init(),this.onSaved&&this.onSaved()}catch(e){throw t&&(t.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${a.escapeHtml(e.message)}</div>\n </div>\n `),n&&(n.disabled=!1,n.innerHTML='\n <span class="material-icons">drive_file_move</span>\n Move User\n '),e}}async handleDelete(){if(!confirm(`Are you sure you want to delete this user?\n\n${this.userDn}`))return;const e=this.container.querySelector("#alert-container"),t=this.container.querySelector("#delete-user-btn");e&&(e.innerHTML=""),t&&(t.disabled=!0);try{await this.api.deleteUser(this.userDn),e&&(e.innerHTML='\n <div class="alert alert-success">\n <span class="material-icons">check_circle</span>\n <div>User deleted successfully!</div>\n </div>\n '),this.onDeleted&&this.onDeleted()}catch(n){e&&(e.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${a.escapeHtml(n.message)}</div>\n </div>\n `),t&&(t.disabled=!1)}}async refresh(){await this.init()}}class o{constructor(e,t,n,s){this.users=[],this.searchQuery="",this.schema=null,this.config=null,this.container=e,this.api=t,this.orgDn=n,this.onSelectUser=s}async init(){this.config=await this.api.getConfig();const e=this.config.features?.ldapFlatGeneric?.flatResources?.find(e=>"users"===e.pluralName||"users"===e.name);e?.schemaUrl&&(this.schema=await this.api.getSchema(e.schemaUrl)),this.render(),await this.loadUsers()}render(){this.container.innerHTML='\n <div class="user-list-container">\n <div class="user-list-header">\n <h2>\n <span class="material-icons">people</span>\n Users\n </h2>\n <div class="search-box">\n <span class="material-icons">search</span>\n <input\n type="text"\n placeholder="Search users in this organization..."\n id="user-list-search-input"\n />\n </div>\n </div>\n <div class="user-list" id="user-list-items">\n <div class="loading">\n <div class="spinner"></div>\n </div>\n </div>\n </div>\n ';const e=this.container.querySelector("#user-list-search-input");e?.addEventListener("input",e=>{this.searchQuery=e.target.value,this.renderUserList()})}async loadUsers(){const e=this.container.querySelector("#user-list-items");if(e)try{e.innerHTML='<div class="loading"><div class="spinner"></div></div>';const t=this.api.baseUrl||window.location.origin,n=this.schema?.entity?.objectClass?.[1]||"twakeAccount",s=await fetch(`${t}/api/v1/ldap/organizations/${encodeURIComponent(this.orgDn)}/subnodes?objectClass=${encodeURIComponent(n)}`);if(!s.ok)throw new Error("Failed to fetch organization users");const i=await s.json(),r=this.schema?.entity?.objectClass||[],a=this.schema?.entity?.mainAttribute||"";this.users=i.filter(e=>{const t=Array.isArray(e.objectClass)?e.objectClass:[e.objectClass];return!!e[a]&&r.every(e=>t.includes(e))}),this.renderUserList()}catch(t){console.error("Failed to load users:",t),e.innerHTML='<div class="empty-state"><span class="material-icons">error</span><p>Failed to load users</p></div>'}}getFirstValue(e){return e?Array.isArray(e)?e[0]||"":String(e):""}getFieldNameByRole(e){if(!this.schema)return null;const t=Object.entries(this.schema.attributes).find(([,t])=>t.role===e);return t?t[0]:null}getFieldValueByRole(e,t){const n=this.getFieldNameByRole(t);return n?this.getFirstValue(e[n]):""}renderUserList(){const e=this.container.querySelector("#user-list-items");if(!e)return;const t=this.getFieldNameByRole("displayName"),n=this.schema?.entity?.mainAttribute||"",s=this.getFieldNameByRole("primaryEmail"),i=this.searchQuery?this.users.filter(e=>{const i=t?this.getFirstValue(e[t]).toLowerCase():"",r=this.getFirstValue(e[n]).toLowerCase(),a=s?this.getFirstValue(e[s]).toLowerCase():"",o=this.searchQuery.toLowerCase();return i.includes(o)||r.includes(o)||a.includes(o)}):this.users;0!==i.length?(e.innerHTML=i.map(e=>{const i=t?this.getFirstValue(e[t]):"",r=this.getFirstValue(e[n]),a=s?this.getFirstValue(e[s]):"",o=i||r||"Unknown";return`\n <div\n class="tree-node"\n data-dn="${e.dn}"\n >\n <span class="material-icons">person</span>\n <div class="tree-node-content">\n <div class="tree-node-name">\n ${o}\n </div>\n ${a?`<div class="tree-node-email">${a}</div>`:""}\n </div>\n </div>\n `}).join(""),e.querySelectorAll(".tree-node").forEach(e=>{e.addEventListener("click",()=>{const t=e.getAttribute("data-dn");t&&this.onSelectUser(t)})})):e.innerHTML='<div class="empty-state"><span class="material-icons">person_search</span><p>No users found</p></div>'}async refresh(){await this.loadUsers()}}e.LdapUserEditor=class{constructor(e){this.container=null,this.userTree=null,this.userEditor=null,this.userList=null,this.currentUserDn=null,this.currentOrgDn=null,this.config=null,this.options={apiBaseUrl:"undefined"!=typeof window?window.location.origin:"",...e},this.api=new n(this.options.apiBaseUrl)}async init(){if(this.container=document.getElementById(this.options.containerId),!this.container)throw new Error(`Container #${this.options.containerId} not found`);this.config=await this.api.getConfig(),this.render(),await this.initComponents()}render(){this.container&&(this.container.innerHTML='\n <div class="ldap-user-editor">\n <div class="editor-layout">\n <div id="user-tree-container" class="demo-panel"></div>\n <div id="user-editor-container" class="demo-panel">\n <div class="empty-state">\n <span class="material-icons">person_search</span>\n <p>Select a user from the list to edit</p>\n </div>\n </div>\n </div>\n </div>\n ')}async initComponents(){const e=document.getElementById("user-tree-container");if(e){this.userTree=new s(e,this.options.apiBaseUrl||window.location.origin,e=>this.onOrganizationSelected(e));try{await this.userTree.init()}catch(e){this.handleError(e)}}}async onOrganizationSelected(e){const t=document.getElementById("user-editor-container");if(t){this.currentOrgDn=e,this.currentUserDn=null;try{this.userList=new o(t,this.api,e,e=>this.onUserSelected(e)),await this.userList.init()}catch(e){this.handleError(e),t.innerHTML='\n <div class="empty-state">\n <span class="material-icons">error</span>\n <p>Failed to load users for this organization</p>\n </div>\n '}}}async onUserSelected(e){this.currentUserDn=e;const t=document.getElementById("user-editor-container");if(t){this.userEditor=new a(t,this.api,e,()=>{this.options.onUserSaved&&this.options.onUserSaved(e),this.currentOrgDn&&this.userList&&this.userList.refresh()},()=>{this.deleteUser(e)});try{await this.userEditor.init()}catch(e){this.handleError(e)}}}handleError(e){console.error("LDAP User Editor error:",e),this.options.onError&&this.options.onError(e)}async refresh(){await(this.userTree?.refresh()),this.currentUserDn&&await(this.userEditor?.refresh())}destroy(){this.container&&(this.container.innerHTML=""),this.userTree=null,this.userEditor=null,this.currentUserDn=null}async createUser(e){try{const t=await this.api.createUser(e);return this.userList&&await this.userList.refresh(),t}catch(e){throw this.handleError(e),e}}async deleteUser(e){try{if(await this.api.deleteUser(e),this.currentUserDn===e){this.currentUserDn=null;const e=document.getElementById("user-editor-container");e&&(e.innerHTML='\n <div class="empty-state">\n <span class="material-icons">person_search</span>\n <p>Select a user from the list to edit</p>\n </div>\n ')}this.userList&&await this.userList.refresh()}catch(e){throw this.handleError(e),e}}getConfig(){return this.config}getApi(){return this.api}getCurrentOrgDn(){return this.currentOrgDn}getCurrentUserDn(){return this.currentUserDn}}});
|
|
2
|
+
//# sourceMappingURL=ldap-user-editor.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ldap-user-editor.min.js","sources":["../../../../src/browser/ldap-user-editor/cache/CacheManager.ts","../../../../src/browser/ldap-user-editor/api/UserApiClient.ts","../../../../src/browser/ldap-user-editor/components/UserTree.ts","../../../../src/browser/ldap-user-editor/components/PointerField.ts","../../../../src/browser/ldap-user-editor/components/MoveUserModal.ts","../../../../src/browser/ldap-user-editor/components/UserEditor.ts","../../../../src/browser/ldap-user-editor/components/UserList.ts","../../../../src/browser/ldap-user-editor/LdapUserEditor.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["CacheManager","constructor","options","this","cache","Map","ttl","maxEntries","get","key","entry","Date","now","timestamp","delete","accessCount","data","set","size","has","evictLRU","invalidate","invalidatePattern","pattern","regex","RegExp","replace","keys","test","clear","getStats","maxSize","Array","from","lruKey","lruTime","Infinity","lruCount","entries","cleanExpired","cleaned","UserApiClient","baseUrl","cacheOptions","window","location","origin","setInterval","getApiBase","getFirstValue","value","isArray","String","cachedFetch","url","method","cached","res","fetch","ok","Error","status","statusText","json","getConfig","getSchema","schemaUrl","startsWith","getUsers","search","encodeURIComponent","Object","values","getUser","dn","updateUser","headers","body","JSON","stringify","error","text","result","createUser","deleteUser","moveUser","targetOrgDn","getPointerOptions","branch","config","resource","features","ldapFlatGeneric","flatResources","find","r","base","endpoints","list","items","displayNameField","identifierField","mainAttribute","schema","displayField","attributes","attr","role","e","map","item","displayName","identifier","label","console","clearCache","invalidateCache","getCacheStats","getCache","UserTree","container","onSelectOrg","expandedNodes","Set","selectedDn","rootDn","init","innerHTML","topOrg","renderTree","treeEl","querySelector","html","renderNode","attachEventListeners","level","isExpanded","isSelected","indent","node","ou","cn","orgs","filter","n","classes","objectClass","includes","subnode","querySelectorAll","forEach","el","addEventListener","async","stopPropagation","getAttribute","add","refresh","destroy","PointerField","api","fieldName","attribute","onChange","loadOptions","type","render","isRequired","required","renderArray","renderSingle","currentValue","opt","join","val","idx","attachHandlers","attachArrayHandlers","attachSingleHandlers","select","arrayContainer","btn","splice","addBtn","push","MoveUserModal","currentOrgDn","onMove","modal","selectedOrgDn","escapeHtml","m","show","document","createElement","className","appendChild","loadOrganizationTree","closeBtn","close","cancelBtn","moveBtn","handleMove","target","handleEscape","removeEventListener","log","message","length","attachTreeHandlers","isCurrentOrg","twakeDepartmentPath","undefined","subnodes","toggles","toggle","nodes","orgDn","selectOrganization","disabled","alertContainer","remove","UserEditor","userDn","onSaved","onDeleted","user","formData","pointerFields","ldapBase","showLoading","loadUserAndSchema","initPointerFields","showError","usersResource","pluralName","name","Promise","all","replacePlaceholders","b","getFieldByRole","field","entity","userName","renderFormSections","groupedFields","ungroupedFields","group","title","fields","renderField","f","fixed","renderIdentifierField","renderArrayField","renderNumberField","renderStringField","displayValue","inputType","pointerFieldNames","pointerField","newValue","rerenderPointerField","placeholder","form","handleSubmit","deleteBtn","handleDelete","input","parseInt","attachArrayFieldHandlers","rerenderArrayField","parentElement","newHtml","outerHTML","preventDefault","submitBtn","orgLinkField","alert","orgLinkFieldName","performMove","newDn","confirm","UserList","onSelectUser","users","searchQuery","loadUsers","searchInput","renderUserList","listEl","expectedObjectClasses","every","expected","getFieldNameByRole","getFieldValueByRole","emailField","filteredUsers","toLowerCase","email","query","userTree","userEditor","userList","currentUserDn","apiBaseUrl","getElementById","containerId","initComponents","treeContainer","onOrganizationSelected","handleError","editorContainer","onUserSelected","onUserSaved","onError","userData","getApi","getCurrentOrgDn","getCurrentUserDn"],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { getElementByIdSafe, escapeHtml } from '../utils/dom.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Reusable Modal component
|
|
5
|
+
* @module browser/shared/components/Modal
|
|
6
|
+
*/
|
|
7
|
+
class Modal {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.overlay = null;
|
|
10
|
+
this.options = options;
|
|
11
|
+
this.overlay = getElementByIdSafe(options.id);
|
|
12
|
+
if (!this.overlay) {
|
|
13
|
+
throw new Error(`Modal overlay with id "${options.id}" not found`);
|
|
14
|
+
}
|
|
15
|
+
this.attachEventListeners();
|
|
16
|
+
}
|
|
17
|
+
attachEventListeners() {
|
|
18
|
+
if (!this.overlay)
|
|
19
|
+
return;
|
|
20
|
+
// Close button
|
|
21
|
+
const closeBtn = this.overlay.querySelector('.close-button');
|
|
22
|
+
if (closeBtn) {
|
|
23
|
+
closeBtn.addEventListener('click', () => this.close());
|
|
24
|
+
}
|
|
25
|
+
// Cancel button
|
|
26
|
+
const cancelBtn = this.overlay.querySelector('[data-modal-cancel]');
|
|
27
|
+
if (cancelBtn) {
|
|
28
|
+
cancelBtn.addEventListener('click', () => this.close());
|
|
29
|
+
}
|
|
30
|
+
// Click outside to close
|
|
31
|
+
this.overlay.addEventListener('click', e => {
|
|
32
|
+
if (e.target === this.overlay) {
|
|
33
|
+
this.close();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
// Escape key to close
|
|
37
|
+
document.addEventListener('keydown', e => {
|
|
38
|
+
if (e.key === 'Escape' && this.isOpen()) {
|
|
39
|
+
this.close();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
open() {
|
|
44
|
+
if (this.overlay) {
|
|
45
|
+
this.overlay.classList.add('active');
|
|
46
|
+
document.body.style.overflow = 'hidden'; // Prevent background scroll
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
close() {
|
|
50
|
+
if (this.overlay) {
|
|
51
|
+
this.overlay.classList.remove('active');
|
|
52
|
+
document.body.style.overflow = ''; // Restore scroll
|
|
53
|
+
if (this.options.onClose) {
|
|
54
|
+
this.options.onClose();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
isOpen() {
|
|
59
|
+
return this.overlay?.classList.contains('active') || false;
|
|
60
|
+
}
|
|
61
|
+
getFormElement() {
|
|
62
|
+
return this.overlay?.querySelector('form') || null;
|
|
63
|
+
}
|
|
64
|
+
resetForm() {
|
|
65
|
+
const form = this.getFormElement();
|
|
66
|
+
if (form) {
|
|
67
|
+
form.reset();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
setContent(html) {
|
|
71
|
+
const contentEl = this.overlay?.querySelector('[data-modal-content]');
|
|
72
|
+
if (contentEl) {
|
|
73
|
+
contentEl.innerHTML = html;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
setTitle(title) {
|
|
77
|
+
const titleEl = this.overlay?.querySelector('.modal-header h2');
|
|
78
|
+
if (titleEl) {
|
|
79
|
+
titleEl.textContent = title;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Create modal HTML structure
|
|
84
|
+
*/
|
|
85
|
+
static createModalHTML(options) {
|
|
86
|
+
const formId = options.formId || `${options.id}-form`;
|
|
87
|
+
const submitLabel = options.submitLabel || 'Submit';
|
|
88
|
+
return `
|
|
89
|
+
<div class="modal-overlay" id="${escapeHtml(options.id)}">
|
|
90
|
+
<div class="modal">
|
|
91
|
+
<div class="modal-header">
|
|
92
|
+
<h2>${escapeHtml(options.title)}</h2>
|
|
93
|
+
<button class="close-button" type="button">
|
|
94
|
+
<span class="material-icons">close</span>
|
|
95
|
+
</button>
|
|
96
|
+
</div>
|
|
97
|
+
<form id="${escapeHtml(formId)}">
|
|
98
|
+
<div data-modal-content></div>
|
|
99
|
+
<div class="modal-footer">
|
|
100
|
+
<button type="button" class="secondary" data-modal-cancel>
|
|
101
|
+
Cancel
|
|
102
|
+
</button>
|
|
103
|
+
<button type="submit" class="primary">${escapeHtml(submitLabel)}</button>
|
|
104
|
+
</div>
|
|
105
|
+
</form>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
`;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Create and inject modal into DOM
|
|
112
|
+
*/
|
|
113
|
+
static create(options) {
|
|
114
|
+
const html = Modal.createModalHTML(options);
|
|
115
|
+
document.body.insertAdjacentHTML('beforeend', html);
|
|
116
|
+
return new Modal(options);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export { Modal };
|
|
121
|
+
//# sourceMappingURL=Modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.js","sources":["../../../../../src/browser/shared/components/Modal.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { getElementByIdSafe, escapeHtml } from '../utils/dom.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Status message component for displaying notifications
|
|
5
|
+
* @module browser/shared/components/StatusMessage
|
|
6
|
+
*/
|
|
7
|
+
class StatusMessage {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.container = null;
|
|
10
|
+
this.timeoutId = null;
|
|
11
|
+
this.options = {
|
|
12
|
+
duration: 5000,
|
|
13
|
+
dismissible: true,
|
|
14
|
+
...options,
|
|
15
|
+
};
|
|
16
|
+
this.container = getElementByIdSafe(options.containerId);
|
|
17
|
+
if (!this.container) {
|
|
18
|
+
throw new Error(`Status container with id "${options.containerId}" not found`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Show a status message
|
|
23
|
+
*/
|
|
24
|
+
show(message, type = 'info') {
|
|
25
|
+
if (!this.container)
|
|
26
|
+
return;
|
|
27
|
+
// Clear any existing timeout
|
|
28
|
+
if (this.timeoutId !== null) {
|
|
29
|
+
window.clearTimeout(this.timeoutId);
|
|
30
|
+
this.timeoutId = null;
|
|
31
|
+
}
|
|
32
|
+
const iconMap = {
|
|
33
|
+
error: 'error_outline',
|
|
34
|
+
success: 'check_circle',
|
|
35
|
+
info: 'info',
|
|
36
|
+
warning: 'warning',
|
|
37
|
+
};
|
|
38
|
+
const icon = iconMap[type] || 'info';
|
|
39
|
+
let html = `
|
|
40
|
+
<div class="status-message ${escapeHtml(type)}">
|
|
41
|
+
<span class="material-icons">${icon}</span>
|
|
42
|
+
<span class="status-message-text">${escapeHtml(message)}</span>
|
|
43
|
+
`;
|
|
44
|
+
if (this.options.dismissible) {
|
|
45
|
+
html += `
|
|
46
|
+
<button class="status-message-close" type="button" aria-label="Close">
|
|
47
|
+
<span class="material-icons">close</span>
|
|
48
|
+
</button>
|
|
49
|
+
`;
|
|
50
|
+
}
|
|
51
|
+
html += '</div>';
|
|
52
|
+
this.container.innerHTML = html;
|
|
53
|
+
// Attach close button handler
|
|
54
|
+
if (this.options.dismissible) {
|
|
55
|
+
const closeBtn = this.container.querySelector('.status-message-close');
|
|
56
|
+
if (closeBtn) {
|
|
57
|
+
closeBtn.addEventListener('click', () => this.hide());
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Auto-hide after duration
|
|
61
|
+
if (this.options.duration && this.options.duration > 0) {
|
|
62
|
+
this.timeoutId = window.setTimeout(() => {
|
|
63
|
+
this.hide();
|
|
64
|
+
}, this.options.duration);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Show error message
|
|
69
|
+
*/
|
|
70
|
+
error(message) {
|
|
71
|
+
this.show(message, 'error');
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Show success message
|
|
75
|
+
*/
|
|
76
|
+
success(message) {
|
|
77
|
+
this.show(message, 'success');
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Show info message
|
|
81
|
+
*/
|
|
82
|
+
info(message) {
|
|
83
|
+
this.show(message, 'info');
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Show warning message
|
|
87
|
+
*/
|
|
88
|
+
warning(message) {
|
|
89
|
+
this.show(message, 'warning');
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Hide the status message
|
|
93
|
+
*/
|
|
94
|
+
hide() {
|
|
95
|
+
if (this.container) {
|
|
96
|
+
this.container.innerHTML = '';
|
|
97
|
+
}
|
|
98
|
+
if (this.timeoutId !== null) {
|
|
99
|
+
window.clearTimeout(this.timeoutId);
|
|
100
|
+
this.timeoutId = null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get the container element
|
|
105
|
+
*/
|
|
106
|
+
getContainer() {
|
|
107
|
+
return this.container;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Simple functional API for showing status messages
|
|
112
|
+
*/
|
|
113
|
+
function showStatus(containerId, message, type = 'info', duration = 5000) {
|
|
114
|
+
const statusMessage = new StatusMessage({ containerId, duration });
|
|
115
|
+
statusMessage.show(message, type);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export { StatusMessage, showStatus };
|
|
119
|
+
//# sourceMappingURL=StatusMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusMessage.js","sources":["../../../../../src/browser/shared/components/StatusMessage.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createElement, escapeHtml, getElementByIdSafe, querySelectorAllSafe, querySelectorSafe, setInnerHTML, toTitleCase } from './utils/dom.js';
|
|
2
|
+
export { collectPointerArrayValues, generateFormField, getFieldLabel, groupSchemaFields, processFormData } from './utils/form.js';
|
|
3
|
+
export { clearPointerOptionsCache, getOrganizationPath, loadPointerOptions, loadSchema, replacePlaceholders, replaceSchemaPlaceholders } from './utils/schema.js';
|
|
4
|
+
export { Modal } from './components/Modal.js';
|
|
5
|
+
export { StatusMessage, showStatus } from './components/StatusMessage.js';
|
|
6
|
+
export { THEMES } from './types/index.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared TypeScript types for browser components
|
|
3
|
+
* @module browser/shared/types
|
|
4
|
+
*/
|
|
5
|
+
const THEMES = {
|
|
6
|
+
purple: {
|
|
7
|
+
name: 'Purple',
|
|
8
|
+
primaryColor: '#6200ee',
|
|
9
|
+
primaryColorDark: '#3700b3',
|
|
10
|
+
gradientStart: '#667eea',
|
|
11
|
+
gradientEnd: '#764ba2',
|
|
12
|
+
},
|
|
13
|
+
blue: {
|
|
14
|
+
name: 'Blue',
|
|
15
|
+
primaryColor: '#185a9d',
|
|
16
|
+
primaryColorDark: '#0d3a6b',
|
|
17
|
+
gradientStart: '#43cea2',
|
|
18
|
+
gradientEnd: '#185a9d',
|
|
19
|
+
},
|
|
20
|
+
pink: {
|
|
21
|
+
name: 'Pink',
|
|
22
|
+
primaryColor: '#f5576c',
|
|
23
|
+
primaryColorDark: '#d43d50',
|
|
24
|
+
gradientStart: '#f093fb',
|
|
25
|
+
gradientEnd: '#f5576c',
|
|
26
|
+
},
|
|
27
|
+
green: {
|
|
28
|
+
name: 'Green',
|
|
29
|
+
primaryColor: '#00c853',
|
|
30
|
+
primaryColorDark: '#009624',
|
|
31
|
+
gradientStart: '#56ab2f',
|
|
32
|
+
gradientEnd: '#a8e063',
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export { THEMES };
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/browser/shared/types/index.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;AAGG;AAuEI,MAAM,MAAM,GAA0B;AAC3C,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,WAAW,EAAE,SAAS;AACvB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,WAAW,EAAE,SAAS;AACvB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,WAAW,EAAE,SAAS;AACvB,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,WAAW,EAAE,SAAS;AACvB,KAAA;;;;;"}
|