@leavittsoftware/web 1.26.2 → 2.1.0

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 (43) hide show
  1. package/leavitt/company-select/company-select.js +3 -3
  2. package/leavitt/company-select/company-select.js.map +1 -1
  3. package/leavitt/file-explorer/add-folder-modal.js +2 -2
  4. package/leavitt/file-explorer/add-folder-modal.js.map +1 -1
  5. package/leavitt/file-explorer/file-explorer.js +16 -10
  6. package/leavitt/file-explorer/file-explorer.js.map +1 -1
  7. package/leavitt/file-explorer/file-modal.js +2 -2
  8. package/leavitt/file-explorer/file-modal.js.map +1 -1
  9. package/leavitt/file-explorer/folder-modal.js +2 -2
  10. package/leavitt/file-explorer/folder-modal.js.map +1 -1
  11. package/leavitt/person-company-select/person-company-select.js +3 -3
  12. package/leavitt/person-company-select/person-company-select.js.map +1 -1
  13. package/leavitt/person-group-select/person-group-select.js +3 -3
  14. package/leavitt/person-group-select/person-group-select.js.map +1 -1
  15. package/leavitt/person-select/person-select.js +2 -2
  16. package/leavitt/person-select/person-select.js.map +1 -1
  17. package/leavitt/user-feedback/user-feedback.js +9 -7
  18. package/leavitt/user-feedback/user-feedback.js.map +1 -1
  19. package/package.json +2 -2
  20. package/titanium/address-input/google-address-input.js +3 -3
  21. package/titanium/address-input/google-address-input.js.map +1 -1
  22. package/titanium/hacks/dialog-zindex-hack.js +4 -1
  23. package/titanium/hacks/dialog-zindex-hack.js.map +1 -1
  24. package/titanium/service-worker-notifier/service-worker-notifier.js +2 -2
  25. package/titanium/service-worker-notifier/service-worker-notifier.js.map +1 -1
  26. package/titanium/snackbar/show-snackbar-event.d.ts +9 -0
  27. package/titanium/snackbar/show-snackbar-event.js +9 -0
  28. package/titanium/snackbar/show-snackbar-event.js.map +1 -0
  29. package/titanium/snackbar/snackbar-stack.d.ts +23 -0
  30. package/titanium/snackbar/snackbar-stack.js +86 -0
  31. package/titanium/snackbar/snackbar-stack.js.map +1 -0
  32. package/titanium/snackbar/snackbars/http-error-snackbar.d.ts +23 -0
  33. package/titanium/snackbar/snackbars/http-error-snackbar.js +134 -0
  34. package/titanium/snackbar/snackbars/http-error-snackbar.js.map +1 -0
  35. package/titanium/snackbar/snackbars/simple-snackbar.d.ts +23 -0
  36. package/titanium/snackbar/snackbars/simple-snackbar.js +134 -0
  37. package/titanium/snackbar/snackbars/simple-snackbar.js.map +1 -0
  38. package/titanium/snackbar/types/snackbar-options.d.ts +8 -0
  39. package/titanium/snackbar/types/snackbar-options.js +2 -0
  40. package/titanium/snackbar/types/snackbar-options.js.map +1 -0
  41. package/titanium/snackbar/snackbar.d.ts +0 -78
  42. package/titanium/snackbar/snackbar.js +0 -337
  43. package/titanium/snackbar/snackbar.js.map +0 -1
@@ -1,78 +0,0 @@
1
- import { HttpError } from '../../leavitt/api-service/HttpError';
2
- import { LitElement, TemplateResult } from 'lit';
3
- import '@material/web/button/text-button';
4
- export declare class BasicSnackBar {
5
- _isComponent: boolean;
6
- open(message: string | TemplateResult, options?: SnackbarOptions): void;
7
- close(): void;
8
- }
9
- export declare let TitaniumSnackbarSingleton: BasicSnackBar;
10
- export type SnackbarOptions = {
11
- actionText?: string | null;
12
- autoHide?: boolean;
13
- noAction?: boolean;
14
- };
15
- /**
16
- * Material design snackbar.
17
- *
18
- * @element titanium-snackbar
19
- *
20
- * Only one snackbar is intended to be used per site.
21
- * Use TitaniumSnackbarSingleton export to fetch the instance of the snackbar when you need to use it.
22
- * ex.
23
- * import { TitaniumSnackbarSingleton } from '@leavittsoftware/web/snackbar/snackbar';
24
- * TitaniumSnackbarSingleton.open('Hello world');
25
- *
26
- * @cssprop {Color} [--titanium-snackbar-background-color=#323232] - Snackbar background color
27
- * @cssprop {Color} [--titanium-snackbar-text-color=#f1f1f1] - Color of the text in the snackbar
28
- *
29
- */
30
- export declare class TitaniumSnackbar extends LitElement implements BasicSnackBar {
31
- #private;
32
- /**
33
- * True when opened
34
- */
35
- protected accessor opened: boolean;
36
- /**
37
- * True when closing
38
- */
39
- protected accessor closing: boolean;
40
- /**
41
- * True when opening
42
- */
43
- protected accessor opening: boolean;
44
- /**
45
- * Hides the action button
46
- */
47
- protected accessor noaction: boolean;
48
- /**
49
- * Text used on the button
50
- */
51
- protected accessor actionText: string;
52
- /**
53
- * Message used in the snackbar.
54
- */
55
- protected accessor message: string | TemplateResult;
56
- /**
57
- * @ignore
58
- */
59
- _isComponent: boolean;
60
- constructor();
61
- /**
62
- * Opens the snackbar with the supplied message.
63
- *
64
- * optional options object:
65
- * actionText?: string | null;
66
- * autoHide?: boolean;
67
- * noAction?: boolean;
68
- *
69
- */
70
- open(message: string | TemplateResult | HttpError, options?: SnackbarOptions): Promise<unknown>;
71
- /**
72
- * Closes the snackbar
73
- */
74
- close(): void;
75
- static styles: import("lit").CSSResult;
76
- render(): TemplateResult<1>;
77
- }
78
- //# sourceMappingURL=snackbar.d.ts.map
@@ -1,337 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement, nothing } from 'lit';
3
- import { property, customElement } from 'lit/decorators.js';
4
- import '@material/web/button/text-button';
5
- export class BasicSnackBar {
6
- constructor() {
7
- this._isComponent = false;
8
- }
9
- open(message, options) {
10
- const msg = typeof message === 'string' ? message : message.values;
11
- alert(msg);
12
- console.warn('Titanium Snackbar.open called before an instance was created. Did you forget to add the Titanium Snackbar element to your project?', options);
13
- }
14
- close() {
15
- console.warn('Titanium Snackbar.close called before an instance was created. Did you forget to add the TitaniumSnackbar element to your project?');
16
- }
17
- }
18
- export let TitaniumSnackbarSingleton = new BasicSnackBar();
19
- /**
20
- * Material design snackbar.
21
- *
22
- * @element titanium-snackbar
23
- *
24
- * Only one snackbar is intended to be used per site.
25
- * Use TitaniumSnackbarSingleton export to fetch the instance of the snackbar when you need to use it.
26
- * ex.
27
- * import { TitaniumSnackbarSingleton } from '@leavittsoftware/web/snackbar/snackbar';
28
- * TitaniumSnackbarSingleton.open('Hello world');
29
- *
30
- * @cssprop {Color} [--titanium-snackbar-background-color=#323232] - Snackbar background color
31
- * @cssprop {Color} [--titanium-snackbar-text-color=#f1f1f1] - Color of the text in the snackbar
32
- *
33
- */
34
- let TitaniumSnackbar = class TitaniumSnackbar extends LitElement {
35
- #opened_accessor_storage;
36
- /**
37
- * True when opened
38
- */
39
- get opened() { return this.#opened_accessor_storage; }
40
- set opened(value) { this.#opened_accessor_storage = value; }
41
- #closing_accessor_storage;
42
- /**
43
- * True when closing
44
- */
45
- get closing() { return this.#closing_accessor_storage; }
46
- set closing(value) { this.#closing_accessor_storage = value; }
47
- #opening_accessor_storage;
48
- /**
49
- * True when opening
50
- */
51
- get opening() { return this.#opening_accessor_storage; }
52
- set opening(value) { this.#opening_accessor_storage = value; }
53
- #noaction_accessor_storage;
54
- /**
55
- * Hides the action button
56
- */
57
- get noaction() { return this.#noaction_accessor_storage; }
58
- set noaction(value) { this.#noaction_accessor_storage = value; }
59
- #actionText_accessor_storage;
60
- /**
61
- * Text used on the button
62
- */
63
- get actionText() { return this.#actionText_accessor_storage; }
64
- set actionText(value) { this.#actionText_accessor_storage = value; }
65
- #message_accessor_storage;
66
- /**
67
- * Message used in the snackbar.
68
- */
69
- get message() { return this.#message_accessor_storage; }
70
- set message(value) { this.#message_accessor_storage = value; }
71
- #animationTimer;
72
- #animationFrame;
73
- #resolve;
74
- #closeTimeoutHandle;
75
- constructor() {
76
- super();
77
- /**
78
- * @ignore
79
- */
80
- this._isComponent = true;
81
- if (!TitaniumSnackbarSingleton || !TitaniumSnackbarSingleton._isComponent) {
82
- /* eslint-disable @typescript-eslint/no-this-alias */
83
- TitaniumSnackbarSingleton = this;
84
- }
85
- else {
86
- console.warn('More than one <titanium-snackbar> element has been used in this web application, consider removing one.');
87
- }
88
- }
89
- /**
90
- * Opens the snackbar with the supplied message.
91
- *
92
- * optional options object:
93
- * actionText?: string | null;
94
- * autoHide?: boolean;
95
- * noAction?: boolean;
96
- *
97
- */
98
- open(message, options) {
99
- return new Promise((resolve) => {
100
- //reset
101
- clearTimeout(this.#closeTimeoutHandle);
102
- this.noaction = false;
103
- this.actionText = 'DISMISS';
104
- if (typeof message !== 'string' && message?.type === 'HttpError') {
105
- const error = message;
106
- this.message = html ` <http-error>
107
- <span error>${this.#addNewLineBreaks(error.message)}</span>
108
- <span status>${error.statusCode}</span>
109
- <span action>${error.action}</span>
110
- ${error.detail ? html ` <code detail>${this.#addNewLineBreaks(error.detail)}</code>` : nothing}
111
- </http-error>`;
112
- }
113
- else if (message) {
114
- this.message = message;
115
- }
116
- if (options) {
117
- if (options.actionText) {
118
- this.actionText = options.actionText;
119
- }
120
- if (options.noAction) {
121
- this.noaction = true;
122
- }
123
- if (options.autoHide) {
124
- this.#closeTimeoutHandle = window.setTimeout(() => {
125
- this.close();
126
- }, 5000);
127
- }
128
- }
129
- this.#resolve = resolve;
130
- this.closing = false;
131
- this.opened = false;
132
- this.opening = true;
133
- this.#runNextAnimationFrame_(() => {
134
- this.opened = true;
135
- this.#animationTimer = window.setTimeout(() => {
136
- this.#handleAnimationTimerEnd_();
137
- }, 150);
138
- });
139
- });
140
- }
141
- /**
142
- * Closes the snackbar
143
- */
144
- close() {
145
- if (!this.opened) {
146
- return;
147
- }
148
- cancelAnimationFrame(this.#animationFrame);
149
- this.#animationFrame = 0;
150
- this.closing = true;
151
- this.opened = false;
152
- this.opening = false;
153
- clearTimeout(this.#animationTimer);
154
- this.#animationTimer = window.setTimeout(() => {
155
- this.#handleAnimationTimerEnd_();
156
- }, 75);
157
- this.#resolve();
158
- }
159
- /**
160
- * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.
161
- */
162
- #runNextAnimationFrame_(callback) {
163
- cancelAnimationFrame(this.#animationFrame);
164
- this.#animationFrame = requestAnimationFrame(() => {
165
- this.#animationFrame = 0;
166
- clearTimeout(this.#animationFrame);
167
- this.#animationFrame = window.setTimeout(callback, 0);
168
- });
169
- }
170
- #handleAnimationTimerEnd_() {
171
- this.opening = false;
172
- this.closing = false;
173
- }
174
- #addNewLineBreaks(text) {
175
- const lines = text.split('\n');
176
- const l = lines.length;
177
- return lines.map((line, i) => (i === l - 1 ? line : html `${line}<br />`));
178
- }
179
- static { this.styles = css `
180
- :host {
181
- display: none;
182
- min-width: 240px;
183
- flex-direction: column;
184
- font-family: Roboto, Noto, sans-serif;
185
- -webkit-font-smoothing: antialiased;
186
- position: fixed;
187
- bottom: 0;
188
- left: 0;
189
- margin: 16px;
190
- padding: 8px;
191
- border-radius: 4px;
192
- background: var(--md-sys-color-inverse-surface);
193
- color: var(--md-sys-color-inverse-on-surface);
194
- font-size: 14px;
195
- -webkit-box-shadow:
196
- 0 3px 5px -1px rgba(0, 0, 0, 0.2),
197
- 0 6px 10px 0 rgba(0, 0, 0, 0.14),
198
- 0 1px 18px 0 rgba(0, 0, 0, 0.12);
199
- box-shadow:
200
- 0 3px 5px -1px rgba(0, 0, 0, 0.2),
201
- 0 6px 10px 0 rgba(0, 0, 0, 0.14),
202
- 0 1px 18px 0 rgba(0, 0, 0, 0.12);
203
-
204
- -webkit-box-sizing: border-box;
205
- box-sizing: border-box;
206
- -webkit-transform: scale(0.8);
207
- -ms-transform: scale(0.8);
208
- transform: scale(0.8);
209
- z-index: 2;
210
- opacity: 0;
211
- }
212
-
213
- :host([opening]),
214
- :host([opened]),
215
- :host([closing]) {
216
- display: flex;
217
- }
218
-
219
- :host([closing]) {
220
- -webkit-transform: scale(1);
221
- -ms-transform: scale(1);
222
- transform: scale(1);
223
- -webkit-transition: opacity 75ms linear;
224
- -o-transition: opacity 75ms linear;
225
- transition: opacity 75ms linear;
226
- }
227
-
228
- :host([opening]) {
229
- -webkit-transition:
230
- opacity 75ms linear,
231
- -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);
232
- transition:
233
- opacity 75ms linear,
234
- -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);
235
- -o-transition:
236
- opacity 75ms linear,
237
- transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);
238
- transition:
239
- opacity 75ms linear,
240
- transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);
241
- transition:
242
- opacity 75ms linear,
243
- transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1),
244
- -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);
245
- }
246
-
247
- :host([opened]) {
248
- -webkit-transform: scale(1);
249
- -ms-transform: scale(1);
250
- transform: scale(1);
251
- opacity: 1;
252
- }
253
-
254
- http-error {
255
- display: grid;
256
- gap: 24px;
257
- grid:
258
- 'action status'
259
- 'error error';
260
- }
261
-
262
- http-error [detail] {
263
- font-size: 12px;
264
- overflow-y: auto;
265
- overflow-y: auto;
266
- max-height: 400px;
267
- grid-column: 1 / -1;
268
- }
269
-
270
- http-error [error] {
271
- grid-area: error;
272
- }
273
-
274
- http-error [status] {
275
- grid-area: status;
276
- font-size: 12px;
277
- justify-self: end;
278
- }
279
-
280
- http-error [action] {
281
- grid-area: action;
282
-
283
- font-size: 12px;
284
- }
285
-
286
- span[main] {
287
- max-width: 600px;
288
- overflow: hidden;
289
- margin: 12px;
290
- }
291
-
292
- md-text-button {
293
- --md-text-button-label-text-color: var(--md-sys-color-inverse-primary);
294
- align-self: flex-end;
295
- }
296
-
297
- [hidden] {
298
- display: none !important;
299
- }
300
- `; }
301
- render() {
302
- return html `
303
- <span main>${this.message}</span>
304
- <md-text-button
305
- ?hidden=${this.noaction}
306
- @click=${() => {
307
- clearTimeout(this.#closeTimeoutHandle);
308
- this.close();
309
- }}
310
- >${this.actionText}
311
- </md-text-button>
312
- `;
313
- }
314
- };
315
- __decorate([
316
- property({ type: Boolean, reflect: true })
317
- ], TitaniumSnackbar.prototype, "opened", null);
318
- __decorate([
319
- property({ type: Boolean, reflect: true })
320
- ], TitaniumSnackbar.prototype, "closing", null);
321
- __decorate([
322
- property({ type: Boolean, reflect: true })
323
- ], TitaniumSnackbar.prototype, "opening", null);
324
- __decorate([
325
- property({ type: Boolean, reflect: true })
326
- ], TitaniumSnackbar.prototype, "noaction", null);
327
- __decorate([
328
- property({ type: String })
329
- ], TitaniumSnackbar.prototype, "actionText", null);
330
- __decorate([
331
- property({ type: String })
332
- ], TitaniumSnackbar.prototype, "message", null);
333
- TitaniumSnackbar = __decorate([
334
- customElement('titanium-snackbar')
335
- ], TitaniumSnackbar);
336
- export { TitaniumSnackbar };
337
- //# sourceMappingURL=snackbar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snackbar.js","sourceRoot":"","sources":["snackbar.ts"],"names":[],"mappings":"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"}