@verdocs/web-sdk 2.1.4 → 2.2.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.
Files changed (112) hide show
  1. package/dist/cjs/Profiles-244e8254.js +95 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/verdocs-auth.cjs.entry.js +3 -44
  4. package/dist/cjs/{verdocs-checkbox_5.cjs.entry.js → verdocs-checkbox_4.cjs.entry.js} +0 -39
  5. package/dist/cjs/verdocs-help-icon.cjs.entry.js +45 -0
  6. package/dist/cjs/verdocs-settings-api-keys_4.cjs.entry.js +4546 -0
  7. package/dist/cjs/verdocs-settings.cjs.entry.js +42 -0
  8. package/dist/cjs/verdocs-table.cjs.entry.js +27 -0
  9. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  10. package/dist/collection/collection-manifest.json +6 -0
  11. package/dist/collection/components/controls/verdocs-table/verdocs-table.css +25 -0
  12. package/dist/collection/components/controls/verdocs-table/verdocs-table.js +71 -0
  13. package/dist/collection/components/controls/verdocs-table/verdocs-table.stories.js +25 -0
  14. package/dist/collection/components/embeds/verdocs-settings/verdocs-settings.css +29 -0
  15. package/dist/collection/components/embeds/verdocs-settings/verdocs-settings.js +98 -0
  16. package/dist/collection/components/embeds/verdocs-settings/verdocs-settings.stories.js +10 -0
  17. package/dist/collection/components/settings/verdocs-settings-api-keys/verdocs-settings-api-keys.css +38 -0
  18. package/dist/collection/components/settings/verdocs-settings-api-keys/verdocs-settings-api-keys.js +179 -0
  19. package/dist/collection/components/settings/verdocs-settings-api-keys/verdocs-settings-api-keys.stories.js +11 -0
  20. package/dist/collection/components/settings/verdocs-settings-members/verdocs-settings-members.css +38 -0
  21. package/dist/collection/components/settings/verdocs-settings-members/verdocs-settings-members.js +210 -0
  22. package/dist/collection/components/settings/verdocs-settings-members/verdocs-settings-members.stories.js +17 -0
  23. package/dist/collection/components/settings/verdocs-settings-organization/TimeZones.js +144 -0
  24. package/dist/collection/components/settings/verdocs-settings-organization/verdocs-settings-organization.css +33 -0
  25. package/dist/collection/components/settings/verdocs-settings-organization/verdocs-settings-organization.js +226 -0
  26. package/dist/collection/components/settings/verdocs-settings-organization/verdocs-settings-organization.stories.js +13 -0
  27. package/dist/collection/components/settings/verdocs-settings-profile/verdocs-settings-profile.css +33 -0
  28. package/dist/collection/components/settings/verdocs-settings-profile/verdocs-settings-profile.js +187 -0
  29. package/dist/collection/components/settings/verdocs-settings-profile/verdocs-settings-profile.stories.js +13 -0
  30. package/dist/components/EnvelopeStore.js +1 -1
  31. package/dist/components/Organizations.js +32 -0
  32. package/dist/components/Profiles.js +57 -0
  33. package/dist/components/Strings.js +6 -0
  34. package/dist/components/TemplateStore.js +1 -1
  35. package/dist/components/index.d.ts +6 -0
  36. package/dist/components/index.js +6 -0
  37. package/dist/components/index3.js +3979 -168
  38. package/dist/components/index4.js +194 -0
  39. package/dist/components/verdocs-auth.js +2 -42
  40. package/dist/components/verdocs-settings-api-keys.d.ts +11 -0
  41. package/dist/components/verdocs-settings-api-keys.js +6 -0
  42. package/dist/components/verdocs-settings-api-keys2.js +108 -0
  43. package/dist/components/verdocs-settings-members.d.ts +11 -0
  44. package/dist/components/verdocs-settings-members.js +6 -0
  45. package/dist/components/verdocs-settings-members2.js +123 -0
  46. package/dist/components/verdocs-settings-organization.d.ts +11 -0
  47. package/dist/components/verdocs-settings-organization.js +6 -0
  48. package/dist/components/verdocs-settings-organization2.js +331 -0
  49. package/dist/components/verdocs-settings-profile.d.ts +11 -0
  50. package/dist/components/verdocs-settings-profile.js +6 -0
  51. package/dist/components/verdocs-settings-profile2.js +142 -0
  52. package/dist/components/verdocs-settings.d.ts +11 -0
  53. package/dist/components/verdocs-settings.js +119 -0
  54. package/dist/components/verdocs-table.d.ts +11 -0
  55. package/dist/components/verdocs-table.js +6 -0
  56. package/dist/components/verdocs-table2.js +41 -0
  57. package/dist/custom-elements.json +1999 -0
  58. package/dist/docs.json +485 -1
  59. package/dist/esm/Profiles-7645e6f1.js +88 -0
  60. package/dist/esm/loader.js +1 -1
  61. package/dist/esm/verdocs-auth.entry.js +1 -42
  62. package/dist/esm/{verdocs-checkbox_5.entry.js → verdocs-checkbox_4.entry.js} +1 -39
  63. package/dist/esm/verdocs-help-icon.entry.js +41 -0
  64. package/dist/esm/verdocs-settings-api-keys_4.entry.js +4539 -0
  65. package/dist/esm/verdocs-settings.entry.js +38 -0
  66. package/dist/esm/verdocs-table.entry.js +23 -0
  67. package/dist/esm/verdocs-web-sdk.js +1 -1
  68. package/dist/esm-es5/Profiles-7645e6f1.js +1 -0
  69. package/dist/esm-es5/loader.js +1 -1
  70. package/dist/esm-es5/verdocs-auth.entry.js +1 -1
  71. package/dist/esm-es5/verdocs-checkbox_4.entry.js +1 -0
  72. package/dist/esm-es5/verdocs-help-icon.entry.js +1 -0
  73. package/dist/esm-es5/verdocs-settings-api-keys_4.entry.js +1 -0
  74. package/dist/esm-es5/verdocs-settings.entry.js +1 -0
  75. package/dist/esm-es5/verdocs-table.entry.js +1 -0
  76. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  77. package/dist/types/components/controls/verdocs-table/verdocs-table.d.ts +21 -0
  78. package/dist/types/components/controls/verdocs-table/verdocs-table.stories.d.ts +7 -0
  79. package/dist/types/components/embeds/verdocs-settings/verdocs-settings.d.ts +22 -0
  80. package/dist/types/components/embeds/verdocs-settings/verdocs-settings.stories.d.ts +4 -0
  81. package/dist/types/components/settings/verdocs-settings-api-keys/verdocs-settings-api-keys.d.ts +44 -0
  82. package/dist/types/components/settings/verdocs-settings-api-keys/verdocs-settings-api-keys.stories.d.ts +4 -0
  83. package/dist/types/components/settings/verdocs-settings-members/verdocs-settings-members.d.ts +43 -0
  84. package/dist/types/components/settings/verdocs-settings-members/verdocs-settings-members.stories.d.ts +8 -0
  85. package/dist/types/components/settings/verdocs-settings-organization/TimeZones.d.ts +1 -0
  86. package/dist/types/components/settings/verdocs-settings-organization/verdocs-settings-organization.d.ts +42 -0
  87. package/dist/types/components/settings/verdocs-settings-organization/verdocs-settings-organization.stories.d.ts +6 -0
  88. package/dist/types/components/settings/verdocs-settings-profile/verdocs-settings-profile.d.ts +38 -0
  89. package/dist/types/components/settings/verdocs-settings-profile/verdocs-settings-profile.stories.d.ts +6 -0
  90. package/dist/types/components.d.ts +208 -0
  91. package/dist/verdocs-web-sdk/p-075dc36d.js +1 -0
  92. package/dist/verdocs-web-sdk/p-144d4ed1.system.entry.js +1 -0
  93. package/dist/verdocs-web-sdk/p-268a29a9.system.entry.js +1 -0
  94. package/dist/verdocs-web-sdk/p-40361f22.entry.js +1 -0
  95. package/dist/verdocs-web-sdk/p-647cdb84.system.js +1 -1
  96. package/dist/verdocs-web-sdk/p-7213a107.system.entry.js +1 -0
  97. package/dist/verdocs-web-sdk/p-84f9fe5d.entry.js +1 -0
  98. package/dist/verdocs-web-sdk/p-ab26744f.system.entry.js +1 -0
  99. package/dist/verdocs-web-sdk/p-cbebc039.system.js +1 -0
  100. package/dist/verdocs-web-sdk/p-d309ef6f.entry.js +1 -0
  101. package/dist/verdocs-web-sdk/p-db4cfbfe.entry.js +1 -0
  102. package/dist/verdocs-web-sdk/p-df90b36d.entry.js +1 -0
  103. package/dist/verdocs-web-sdk/p-e248947e.system.entry.js +1 -0
  104. package/dist/verdocs-web-sdk/p-e9d2b68a.entry.js +1 -0
  105. package/dist/verdocs-web-sdk/p-febebe69.system.entry.js +1 -0
  106. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  107. package/package.json +3 -2
  108. package/dist/esm-es5/verdocs-checkbox_5.entry.js +0 -1
  109. package/dist/verdocs-web-sdk/p-25916fc3.entry.js +0 -1
  110. package/dist/verdocs-web-sdk/p-300a240d.entry.js +0 -1
  111. package/dist/verdocs-web-sdk/p-5e5eb075.system.entry.js +0 -1
  112. package/dist/verdocs-web-sdk/p-b75d3b7f.system.entry.js +0 -1
@@ -0,0 +1,194 @@
1
+ import { getRenderingRef, forceUpdate } from '@stencil/core/internal/client';
2
+
3
+ const appendToMap = (map, propName, value) => {
4
+ const items = map.get(propName);
5
+ if (!items) {
6
+ map.set(propName, [value]);
7
+ }
8
+ else if (!items.includes(value)) {
9
+ items.push(value);
10
+ }
11
+ };
12
+ const debounce = (fn, ms) => {
13
+ let timeoutId;
14
+ return (...args) => {
15
+ if (timeoutId) {
16
+ clearTimeout(timeoutId);
17
+ }
18
+ timeoutId = setTimeout(() => {
19
+ timeoutId = 0;
20
+ fn(...args);
21
+ }, ms);
22
+ };
23
+ };
24
+
25
+ /**
26
+ * Check if a possible element isConnected.
27
+ * The property might not be there, so we check for it.
28
+ *
29
+ * We want it to return true if isConnected is not a property,
30
+ * otherwise we would remove these elements and would not update.
31
+ *
32
+ * Better leak in Edge than to be useless.
33
+ */
34
+ const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
35
+ const cleanupElements = debounce((map) => {
36
+ for (let key of map.keys()) {
37
+ map.set(key, map.get(key).filter(isConnected));
38
+ }
39
+ }, 2000);
40
+ const stencilSubscription = () => {
41
+ if (typeof getRenderingRef !== 'function') {
42
+ // If we are not in a stencil project, we do nothing.
43
+ // This function is not really exported by @stencil/core.
44
+ return {};
45
+ }
46
+ const elmsToUpdate = new Map();
47
+ return {
48
+ dispose: () => elmsToUpdate.clear(),
49
+ get: (propName) => {
50
+ const elm = getRenderingRef();
51
+ if (elm) {
52
+ appendToMap(elmsToUpdate, propName, elm);
53
+ }
54
+ },
55
+ set: (propName) => {
56
+ const elements = elmsToUpdate.get(propName);
57
+ if (elements) {
58
+ elmsToUpdate.set(propName, elements.filter(forceUpdate));
59
+ }
60
+ cleanupElements(elmsToUpdate);
61
+ },
62
+ reset: () => {
63
+ elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));
64
+ cleanupElements(elmsToUpdate);
65
+ },
66
+ };
67
+ };
68
+
69
+ const unwrap = (val) => (typeof val === 'function' ? val() : val);
70
+ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
71
+ const unwrappedState = unwrap(defaultState);
72
+ let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));
73
+ const handlers = {
74
+ dispose: [],
75
+ get: [],
76
+ set: [],
77
+ reset: [],
78
+ };
79
+ const reset = () => {
80
+ var _a;
81
+ // When resetting the state, the default state may be a function - unwrap it to invoke it.
82
+ // otherwise, the state won't be properly reset
83
+ states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));
84
+ handlers.reset.forEach((cb) => cb());
85
+ };
86
+ const dispose = () => {
87
+ // Call first dispose as resetting the state would
88
+ // cause less updates ;)
89
+ handlers.dispose.forEach((cb) => cb());
90
+ reset();
91
+ };
92
+ const get = (propName) => {
93
+ handlers.get.forEach((cb) => cb(propName));
94
+ return states.get(propName);
95
+ };
96
+ const set = (propName, value) => {
97
+ const oldValue = states.get(propName);
98
+ if (shouldUpdate(value, oldValue, propName)) {
99
+ states.set(propName, value);
100
+ handlers.set.forEach((cb) => cb(propName, value, oldValue));
101
+ }
102
+ };
103
+ const state = (typeof Proxy === 'undefined'
104
+ ? {}
105
+ : new Proxy(unwrappedState, {
106
+ get(_, propName) {
107
+ return get(propName);
108
+ },
109
+ ownKeys(_) {
110
+ return Array.from(states.keys());
111
+ },
112
+ getOwnPropertyDescriptor() {
113
+ return {
114
+ enumerable: true,
115
+ configurable: true,
116
+ };
117
+ },
118
+ has(_, propName) {
119
+ return states.has(propName);
120
+ },
121
+ set(_, propName, value) {
122
+ set(propName, value);
123
+ return true;
124
+ },
125
+ }));
126
+ const on = (eventName, callback) => {
127
+ handlers[eventName].push(callback);
128
+ return () => {
129
+ removeFromArray(handlers[eventName], callback);
130
+ };
131
+ };
132
+ const onChange = (propName, cb) => {
133
+ const unSet = on('set', (key, newValue) => {
134
+ if (key === propName) {
135
+ cb(newValue);
136
+ }
137
+ });
138
+ // We need to unwrap the defaultState because it might be a function.
139
+ // Otherwise we might not be sending the right reset value.
140
+ const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));
141
+ return () => {
142
+ unSet();
143
+ unReset();
144
+ };
145
+ };
146
+ const use = (...subscriptions) => {
147
+ const unsubs = subscriptions.reduce((unsubs, subscription) => {
148
+ if (subscription.set) {
149
+ unsubs.push(on('set', subscription.set));
150
+ }
151
+ if (subscription.get) {
152
+ unsubs.push(on('get', subscription.get));
153
+ }
154
+ if (subscription.reset) {
155
+ unsubs.push(on('reset', subscription.reset));
156
+ }
157
+ if (subscription.dispose) {
158
+ unsubs.push(on('dispose', subscription.dispose));
159
+ }
160
+ return unsubs;
161
+ }, []);
162
+ return () => unsubs.forEach((unsub) => unsub());
163
+ };
164
+ const forceUpdate = (key) => {
165
+ const oldValue = states.get(key);
166
+ handlers.set.forEach((cb) => cb(key, oldValue, oldValue));
167
+ };
168
+ return {
169
+ state,
170
+ get,
171
+ set,
172
+ on,
173
+ onChange,
174
+ use,
175
+ dispose,
176
+ reset,
177
+ forceUpdate,
178
+ };
179
+ };
180
+ const removeFromArray = (array, item) => {
181
+ const index = array.indexOf(item);
182
+ if (index >= 0) {
183
+ array[index] = array[array.length - 1];
184
+ array.length--;
185
+ }
186
+ };
187
+
188
+ const createStore = (defaultState, shouldUpdate) => {
189
+ const map = createObservableMap(defaultState, shouldUpdate);
190
+ map.use(stencilSubscription());
191
+ return map;
192
+ };
193
+
194
+ export { createStore as c };
@@ -1,6 +1,8 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { d as decodeAccessTokenBody } from './Types.js';
3
+ import { i as isOrgAvailable } from './Organizations.js';
3
4
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
5
+ import { c as createBusinessAccount } from './Profiles.js';
4
6
  import { V as VerdocsToast } from './Toast.js';
5
7
  import { S as SDKError } from './errors.js';
6
8
  import { d as defineCustomElement$6 } from './verdocs-button2.js';
@@ -9,21 +11,6 @@ import { d as defineCustomElement$4 } from './verdocs-select-input2.js';
9
11
  import { d as defineCustomElement$3 } from './verdocs-spinner2.js';
10
12
  import { d as defineCustomElement$2 } from './verdocs-text-input2.js';
11
13
 
12
- /**
13
- * An Organization is the top level object for ownership for Members, Documents, and Templates.
14
- *
15
- * @module
16
- */
17
- /**
18
- * Check if an organization name is available. Typically used during the sign-up process. This endpoint is rate-limited
19
- * to prevent abuse. Developers experiencing problems with testing new applications should contact support.
20
- */
21
- var isOrgAvailable = function (endpoint, name) {
22
- return endpoint.api //
23
- .post('/organizations/check-availability', { name: name }, { baseURL: endpoint.getBaseURLv2() })
24
- .then(function (r) { return r.data; });
25
- };
26
-
27
14
  /**
28
15
  * Authenticate to Verdocs via user/password authentication
29
16
  *
@@ -76,33 +63,6 @@ var resendVerification = function (endpoint, accessToken) {
76
63
  .then(function (r) { return r.data; });
77
64
  };
78
65
 
79
- /**
80
- * Get the user's available profiles. The current profile will be marked with `current: true`.
81
- *
82
- * ```typescript
83
- * import {Profiles} from '@verdocs/js-sdk/Users';
84
- *
85
- * const profiles = await Profiles.getProfiles()
86
- * ```
87
- */
88
- /**
89
- * Create a user account and parent organization. This endpoint is for creating a new organization. Users joining an
90
- * existing organization should be invited, and follow their invitation links/instructions to create their accounts.
91
- *
92
- * ```typescript
93
- * import {Profiles} from '@verdocs/js-sdk/Users';
94
- *
95
- * const newAccount = await Profiles.createBusinessAccount({
96
- * orgName: 'ORG', email: 'a@b.com', password: '12345678', firstName: 'FIRST', lastName: 'LAST'
97
- * });
98
- * ```
99
- */
100
- var createBusinessAccount = function (endpoint, params) {
101
- return endpoint.api //
102
- .post('/user/business', params)
103
- .then(function (r) { return r.data; });
104
- };
105
-
106
66
  const verdocsAuthCss = "verdocs-auth{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}verdocs-auth .form{background:#ffffff;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-direction:column;flex-direction:column;display:-ms-flexbox;display:flex;padding:20px;width:300px;max-width:100%}verdocs-auth .logo{margin:20px 0 30px;width:128px;max-width:100%}verdocs-auth h3{text-align:center;font-weight:400;font-size:16px;line-height:1.75;margin:0}verdocs-auth h4{text-align:center;font-weight:400;font-size:14px;line-height:1.43;margin:0}verdocs-auth h4 verdocs-button button.normal .button-label{padding:0}verdocs-auth .buttons{gap:20px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center}verdocs-auth .status-result{display:none}verdocs-auth .status-result.debug{white-space:pre-wrap;font-size:14px;background:#fff;padding:10px;display:block;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center}verdocs-auth form{width:100%}verdocs-auth verdocs-text-input{margin-bottom:10px}verdocs-auth .account-option{gap:8px;margin:20px 0 8px 0;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}verdocs-auth p+p{margin-top:0}verdocs-auth verdocs-help-icon{margin-top:18px;display:-ms-flexbox;display:flex;width:32px;height:32px;-ms-flex:0 0 32px;flex:0 0 32px}";
107
67
 
108
68
  const RECHECK_INTERVAL = 5000;
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface VerdocsSettingsApiKeys extends Components.VerdocsSettingsApiKeys, HTMLElement {}
4
+ export const VerdocsSettingsApiKeys: {
5
+ prototype: VerdocsSettingsApiKeys;
6
+ new (): VerdocsSettingsApiKeys;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { V as VerdocsSettingsApiKeys$1, d as defineCustomElement$1 } from './verdocs-settings-api-keys2.js';
2
+
3
+ const VerdocsSettingsApiKeys = VerdocsSettingsApiKeys$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { VerdocsSettingsApiKeys, defineCustomElement };
@@ -0,0 +1,108 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import './Types.js';
3
+ import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
4
+ import { c as capitalize } from './Strings.js';
5
+ import { V as VerdocsToast } from './Toast.js';
6
+ import { S as SDKError } from './errors.js';
7
+ import { d as defineCustomElement$2 } from './verdocs-button2.js';
8
+ import { d as defineCustomElement$1 } from './verdocs-table2.js';
9
+
10
+ /**
11
+ * API keys are used to authenticate server-to-server calls. (API keys should **never** be used for client-to-server operations!)
12
+ * To generate a key, either use the Verdocs admin interface and make note of the client_id and client_secret generated, or call
13
+ * createKey as shown below. Then call {@link Users.Auth.authenticateApp} to obtain an access token using the provided ID and
14
+ * secret. Note that server-to-server authentication requests return shorter-lived tokens, so it is important to check the `exp`
15
+ * field and re-authenticate as needed for subsequent calls.
16
+ *
17
+ * API keys may be updated or rotated at any time. Regular rotation is recommended. Rotation will not expire or invalidate
18
+ * existing server-to-server sessions, so it may be done at any time without disrupting your application.
19
+ *
20
+ * @module
21
+ */
22
+ /**
23
+ * Get a list of keys for a given organization. The caller must have admin access to the organization.
24
+ *
25
+ * ```typescript
26
+ * import {ApiKeys} from '@verdocs/js-sdk/Organizations';
27
+ *
28
+ * const keys = await ApiKeys.getKeys(ORGID);
29
+ * ```
30
+ */
31
+ var getKeys = function (endpoint, organizationId) {
32
+ return endpoint.api //
33
+ .get("/organizations/".concat(organizationId, "/api_key"))
34
+ .then(function (r) { return r.data; });
35
+ };
36
+
37
+ const verdocsSettingsApiKeysCss = "verdocs-settings-api-keys{display:-ms-flexbox;display:flex;padding:10px;font-size:18px;-ms-flex-wrap:nowrap;flex-wrap:nowrap;border-radius:6px;color:#33364b;-ms-flex-direction:column;flex-direction:column;font-family:\"Inter\", \"Barlow\", sans-serif}verdocs-settings-api-keys .table{margin:12px 0}verdocs-settings-api-keys .role{font-size:12px;width:32px;height:32px;border-radius:32px;background:#777777;color:#ffffff;font-weight:700;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}verdocs-settings-api-keys .col.col-actions{-ms-flex-align:center;align-items:center;text-align:center}verdocs-settings-api-keys .col.col-actions svg{cursor:pointer;width:24px;height:24px;fill:#777777}verdocs-settings-api-keys .col.col-actions svg:hover{fill:red}";
38
+
39
+ const VerdocsSettingsApiKeys = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
40
+ constructor() {
41
+ super();
42
+ this.__registerHost();
43
+ this.sdkError = createEvent(this, "sdkError", 7);
44
+ this.memberInvited = createEvent(this, "memberInvited", 7);
45
+ this.memberUpdated = createEvent(this, "memberUpdated", 7);
46
+ this.memberRemoved = createEvent(this, "memberRemoved", 7);
47
+ this.endpoint = VerdocsEndpoint.getDefault();
48
+ this.keys = [];
49
+ }
50
+ componentWillLoad() {
51
+ this.endpoint.loadSession();
52
+ if (!this.endpoint.session) {
53
+ console.log('[SETTINGS] Must be authenticated');
54
+ return;
55
+ }
56
+ }
57
+ async componentDidLoad() {
58
+ var _a, _b, _c;
59
+ try {
60
+ this.keys = await getKeys(this.endpoint, this.endpoint.session.organization_id);
61
+ }
62
+ catch (e) {
63
+ (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
64
+ VerdocsToast('Unable to load members. Please try again later');
65
+ }
66
+ }
67
+ render() {
68
+ if (!this.endpoint.session) {
69
+ console.log('[SETTINGS] Must be authenticated');
70
+ return h(Host, { class: "authentication-required" }, "Must be authenticated");
71
+ }
72
+ return (h(Host, null, h("h1", null, "API Keys"), h("verdocs-table", { data: this.keys, columns: [
73
+ { id: 'name', header: 'Name' },
74
+ { id: 'client_id', header: 'Client ID' },
75
+ { id: 'profile_id', header: 'Acts as', renderCell: (_, row) => { var _a, _b; return `${capitalize((_a = row.profile) === null || _a === void 0 ? void 0 : _a.first_name)} ${capitalize((_b = row.profile) === null || _b === void 0 ? void 0 : _b.last_name)}`; } },
76
+ ] }), h("verdocs-button", { label: "Add API Key", size: "normal", disabled: true })));
77
+ }
78
+ static get style() { return verdocsSettingsApiKeysCss; }
79
+ }, [0, "verdocs-settings-api-keys", {
80
+ "endpoint": [16],
81
+ "keys": [32]
82
+ }]);
83
+ function defineCustomElement() {
84
+ if (typeof customElements === "undefined") {
85
+ return;
86
+ }
87
+ const components = ["verdocs-settings-api-keys", "verdocs-button", "verdocs-table"];
88
+ components.forEach(tagName => { switch (tagName) {
89
+ case "verdocs-settings-api-keys":
90
+ if (!customElements.get(tagName)) {
91
+ customElements.define(tagName, VerdocsSettingsApiKeys);
92
+ }
93
+ break;
94
+ case "verdocs-button":
95
+ if (!customElements.get(tagName)) {
96
+ defineCustomElement$2();
97
+ }
98
+ break;
99
+ case "verdocs-table":
100
+ if (!customElements.get(tagName)) {
101
+ defineCustomElement$1();
102
+ }
103
+ break;
104
+ } });
105
+ }
106
+ defineCustomElement();
107
+
108
+ export { VerdocsSettingsApiKeys as V, defineCustomElement as d };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface VerdocsSettingsMembers extends Components.VerdocsSettingsMembers, HTMLElement {}
4
+ export const VerdocsSettingsMembers: {
5
+ prototype: VerdocsSettingsMembers;
6
+ new (): VerdocsSettingsMembers;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { V as VerdocsSettingsMembers$1, d as defineCustomElement$1 } from './verdocs-settings-members2.js';
2
+
3
+ const VerdocsSettingsMembers = VerdocsSettingsMembers$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { VerdocsSettingsMembers, defineCustomElement };
@@ -0,0 +1,123 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import './Types.js';
3
+ import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
4
+ import { c as capitalize } from './Strings.js';
5
+ import { V as VerdocsToast } from './Toast.js';
6
+ import { S as SDKError } from './errors.js';
7
+ import { d as defineCustomElement$2 } from './verdocs-button2.js';
8
+ import { d as defineCustomElement$1 } from './verdocs-table2.js';
9
+
10
+ /**
11
+ * An Organization Member (aka Profile) is an individual user with access to an organization.
12
+ *
13
+ * @module
14
+ */
15
+ var getMembers = function (endpoint, organizationId) {
16
+ return endpoint.api //
17
+ .get("/organizations/".concat(organizationId, "/profiles"))
18
+ .then(function (r) { return r.data; });
19
+ };
20
+
21
+ const verdocsSettingsMembersCss = "verdocs-settings-members{display:-ms-flexbox;display:flex;padding:10px;font-size:18px;-ms-flex-wrap:nowrap;flex-wrap:nowrap;border-radius:6px;color:#33364b;-ms-flex-direction:column;flex-direction:column;font-family:\"Inter\", \"Barlow\", sans-serif}verdocs-settings-members .table{margin:12px 0}verdocs-settings-members .role{font-size:12px;width:32px;height:32px;border-radius:32px;background:#777777;color:#ffffff;font-weight:700;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}verdocs-settings-members .col.col-actions{-ms-flex-align:center;align-items:center;text-align:center}verdocs-settings-members .col.col-actions svg{cursor:pointer;width:24px;height:24px;fill:#777777}verdocs-settings-members .col.col-actions svg:hover{fill:red}";
22
+
23
+ const TrashIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" /></svg>`;
24
+ const getRoleLabel = (roles) => {
25
+ if (roles.find(role => role.name === 'owner') !== undefined)
26
+ return 'Owner';
27
+ if (roles.find(role => role.name === 'admin') !== undefined)
28
+ return 'Admin';
29
+ if (roles.find(role => role.name === 'member') !== undefined)
30
+ return 'Member';
31
+ if (roles.find(role => role.name === 'basic_user') !== undefined)
32
+ return 'Basic User';
33
+ if (roles.find(role => role.name === 'contact') !== undefined)
34
+ return 'Contact';
35
+ };
36
+ const getRoleColor = (roles) => {
37
+ if (roles.find(role => role.name === 'owner') !== undefined)
38
+ return '#9333ea';
39
+ if (roles.find(role => role.name === 'admin') !== undefined)
40
+ return '#2563eb';
41
+ if (roles.find(role => role.name === 'member') !== undefined)
42
+ return '#16a34a';
43
+ if (roles.find(role => role.name === 'basic_user') !== undefined)
44
+ return '#ea580c';
45
+ if (roles.find(role => role.name === 'contact') !== undefined)
46
+ return '#52525B';
47
+ };
48
+ const VerdocsSettingsMembers = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
49
+ constructor() {
50
+ super();
51
+ this.__registerHost();
52
+ this.sdkError = createEvent(this, "sdkError", 7);
53
+ this.memberInvited = createEvent(this, "memberInvited", 7);
54
+ this.memberUpdated = createEvent(this, "memberUpdated", 7);
55
+ this.memberRemoved = createEvent(this, "memberRemoved", 7);
56
+ this.endpoint = VerdocsEndpoint.getDefault();
57
+ this.members = [];
58
+ }
59
+ componentWillLoad() {
60
+ this.endpoint.loadSession();
61
+ if (!this.endpoint.session) {
62
+ console.log('[SETTINGS] Must be authenticated');
63
+ return;
64
+ }
65
+ }
66
+ async componentDidLoad() {
67
+ var _a, _b, _c;
68
+ try {
69
+ this.members = await getMembers(this.endpoint, this.endpoint.session.organization_id);
70
+ }
71
+ catch (e) {
72
+ (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
73
+ VerdocsToast('Unable to load members. Please try again later');
74
+ }
75
+ }
76
+ render() {
77
+ if (!this.endpoint.session) {
78
+ console.log('[SETTINGS] Must be authenticated');
79
+ return h(Host, { class: "authentication-required" }, "Must be authenticated");
80
+ }
81
+ return (h(Host, null, h("h1", null, "Members"), h("verdocs-table", { data: this.members, columns: [
82
+ {
83
+ id: 'name',
84
+ renderHeader: () => 'Member',
85
+ renderCell: (_, row) => (h("div", { style: { display: 'flex', flexDirection: 'row', gap: '10px', alignItems: 'center' } }, h("div", { class: "role", style: { backgroundColor: getRoleColor(row.roles) } }, row.first_name.charAt(0), " ", row.last_name.charAt(0)), h("span", null, capitalize(row.first_name), " ", capitalize(row.last_name)))),
86
+ },
87
+ { id: 'email', header: 'E-mail Address' },
88
+ { id: 'phone', header: 'Phone Number' },
89
+ { id: 'roles', header: 'Role', renderCell: (_, row) => `${getRoleLabel(row.roles)}` },
90
+ { id: 'actions', header: 'Actions', renderCell: () => h("span", { innerHTML: TrashIcon, onClick: () => { } }) },
91
+ ] }), h("verdocs-button", { label: "Invite New Member", size: "normal", disabled: true })));
92
+ }
93
+ static get style() { return verdocsSettingsMembersCss; }
94
+ }, [0, "verdocs-settings-members", {
95
+ "endpoint": [16],
96
+ "members": [32]
97
+ }]);
98
+ function defineCustomElement() {
99
+ if (typeof customElements === "undefined") {
100
+ return;
101
+ }
102
+ const components = ["verdocs-settings-members", "verdocs-button", "verdocs-table"];
103
+ components.forEach(tagName => { switch (tagName) {
104
+ case "verdocs-settings-members":
105
+ if (!customElements.get(tagName)) {
106
+ customElements.define(tagName, VerdocsSettingsMembers);
107
+ }
108
+ break;
109
+ case "verdocs-button":
110
+ if (!customElements.get(tagName)) {
111
+ defineCustomElement$2();
112
+ }
113
+ break;
114
+ case "verdocs-table":
115
+ if (!customElements.get(tagName)) {
116
+ defineCustomElement$1();
117
+ }
118
+ break;
119
+ } });
120
+ }
121
+ defineCustomElement();
122
+
123
+ export { VerdocsSettingsMembers as V, defineCustomElement as d };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface VerdocsSettingsOrganization extends Components.VerdocsSettingsOrganization, HTMLElement {}
4
+ export const VerdocsSettingsOrganization: {
5
+ prototype: VerdocsSettingsOrganization;
6
+ new (): VerdocsSettingsOrganization;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { V as VerdocsSettingsOrganization$1, d as defineCustomElement$1 } from './verdocs-settings-organization2.js';
2
+
3
+ const VerdocsSettingsOrganization = VerdocsSettingsOrganization$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { VerdocsSettingsOrganization, defineCustomElement };