@skyux/inline-form 8.7.2 → 9.0.0-alpha.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 (23) hide show
  1. package/documentation.json +25 -25
  2. package/esm2022/lib/modules/inline-form/inline-form-adapter.service.mjs +60 -0
  3. package/esm2022/lib/modules/inline-form/inline-form.component.mjs +226 -0
  4. package/{esm2020 → esm2022}/lib/modules/inline-form/inline-form.module.mjs +5 -5
  5. package/esm2022/lib/modules/shared/sky-inline-form-resources.module.mjs +50 -0
  6. package/fesm2022/skyux-inline-form.mjs +400 -0
  7. package/{fesm2020 → fesm2022}/skyux-inline-form.mjs.map +1 -1
  8. package/lib/modules/inline-form/inline-form.component.d.ts +1 -1
  9. package/package.json +10 -16
  10. package/esm2020/lib/modules/inline-form/inline-form-adapter.service.mjs +0 -63
  11. package/esm2020/lib/modules/inline-form/inline-form.component.mjs +0 -224
  12. package/esm2020/lib/modules/shared/sky-inline-form-resources.module.mjs +0 -50
  13. package/fesm2015/skyux-inline-form.mjs +0 -400
  14. package/fesm2015/skyux-inline-form.mjs.map +0 -1
  15. package/fesm2020/skyux-inline-form.mjs +0 -400
  16. /package/{esm2020 → esm2022}/index.mjs +0 -0
  17. /package/{esm2020 → esm2022}/lib/modules/inline-form/animations/slide-dissolve.mjs +0 -0
  18. /package/{esm2020 → esm2022}/lib/modules/inline-form/types/inline-form-button-action.mjs +0 -0
  19. /package/{esm2020 → esm2022}/lib/modules/inline-form/types/inline-form-button-config.mjs +0 -0
  20. /package/{esm2020 → esm2022}/lib/modules/inline-form/types/inline-form-button-layout.mjs +0 -0
  21. /package/{esm2020 → esm2022}/lib/modules/inline-form/types/inline-form-close-args.mjs +0 -0
  22. /package/{esm2020 → esm2022}/lib/modules/inline-form/types/inline-form-config.mjs +0 -0
  23. /package/{esm2020 → esm2022}/skyux-inline-form.mjs +0 -0
@@ -0,0 +1,400 @@
1
+ import * as i4 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { NgModule, Injectable, EventEmitter, Component, ChangeDetectionStrategy, Input, Output } from '@angular/core';
5
+ import * as i2 from '@skyux/i18n';
6
+ import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
7
+ import { Subject, ReplaySubject, zip } from 'rxjs';
8
+ import { takeUntil } from 'rxjs/operators';
9
+ import { trigger, transition, query, style, animate, group } from '@angular/animations';
10
+ import * as i3 from '@skyux/core';
11
+
12
+ /**
13
+ * NOTICE: DO NOT MODIFY THIS FILE!
14
+ * The contents of this file were automatically generated by
15
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-inline-form' schematic.
16
+ * To update this file, simply rerun the command.
17
+ */
18
+ const RESOURCES = {
19
+ 'EN-US': {
20
+ skyux_inline_form_button_cancel: { message: 'Cancel' },
21
+ skyux_inline_form_button_delete: { message: 'Delete' },
22
+ skyux_inline_form_button_done: { message: 'Done' },
23
+ skyux_inline_form_button_save: { message: 'Save' },
24
+ },
25
+ };
26
+ class SkyInlineFormResourcesProvider {
27
+ getString(localeInfo, name) {
28
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
29
+ }
30
+ }
31
+ /**
32
+ * Import into any component library module that needs to use resource strings.
33
+ */
34
+ class SkyInlineFormResourcesModule {
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
36
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormResourcesModule, exports: [SkyI18nModule] }); }
37
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormResourcesModule, providers: [
38
+ {
39
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
40
+ useClass: SkyInlineFormResourcesProvider,
41
+ multi: true,
42
+ },
43
+ ], imports: [SkyI18nModule] }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormResourcesModule, decorators: [{
46
+ type: NgModule,
47
+ args: [{
48
+ exports: [SkyI18nModule],
49
+ providers: [
50
+ {
51
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
52
+ useClass: SkyInlineFormResourcesProvider,
53
+ multi: true,
54
+ },
55
+ ],
56
+ }]
57
+ }] });
58
+
59
+ const skySlideDissolve = trigger('skySlideDissolve', [
60
+ transition('* <=> *', [
61
+ // Expand animations
62
+ query('.sky-slide-dissolve-last:enter', [
63
+ style({ height: 0, opacity: 0 }),
64
+ animate('200ms ease-in', style({ height: '*', opacity: 0 })),
65
+ ], { optional: true }),
66
+ query('.sky-slide-dissolve-last:enter', [
67
+ style({ opacity: 0 }),
68
+ animate('200ms ease-in', style({ opacity: 1 })),
69
+ ], { optional: true }),
70
+ // Collapse animations
71
+ // The expanded content should fade out immediately to prevent
72
+ // any overlap with the read-only content that's returning to the screen.
73
+ query('.sky-slide-dissolve-last:leave', [animate('0ms', style({ opacity: 0 }))], { optional: true }),
74
+ group([
75
+ query('.sky-slide-dissolve-first:enter', [
76
+ style({ opacity: 0, height: 0 }),
77
+ animate('100ms ease-in', style({ opacity: 1, height: '*' })),
78
+ ], { optional: true }),
79
+ query('.sky-slide-dissolve-last:leave', [animate('200ms ease-in', style({ height: 0 }))], { optional: true }),
80
+ ]),
81
+ ]),
82
+ ]);
83
+
84
+ const SKY_TABBABLE_SELECTOR = [
85
+ 'a[href]',
86
+ 'area[href]',
87
+ "input:not([disabled]):not([tabindex='-1'])",
88
+ "button:not([disabled]):not([tabindex='-1'])",
89
+ "select:not([disabled]):not([tabindex='-1'])",
90
+ "textarea:not([disabled]):not([tabindex='-1'])",
91
+ 'iframe',
92
+ 'object',
93
+ 'embed',
94
+ "*[tabindex]:not([tabindex='-1'])",
95
+ '*[contenteditable=true]',
96
+ ].join(', ');
97
+ /**
98
+ * @internal
99
+ */
100
+ class SkyInlineFormAdapterService {
101
+ applyAutofocus(inlineFormElementRef) {
102
+ const inputWithAutofocus = inlineFormElementRef.nativeElement.querySelector('[autofocus]');
103
+ if (inputWithAutofocus) {
104
+ inputWithAutofocus.focus();
105
+ }
106
+ else {
107
+ const focusEl = inlineFormElementRef.nativeElement.querySelector('.sky-inline-form-content');
108
+ const focusableChildren = this.#loadFocusableChildren(focusEl);
109
+ this.#focusFirstElement(focusableChildren);
110
+ }
111
+ }
112
+ #loadFocusableChildren(elem) {
113
+ const elements = Array.prototype.slice.call(elem.querySelectorAll(SKY_TABBABLE_SELECTOR));
114
+ return elements.filter((element) => {
115
+ return this.#isVisible(element);
116
+ });
117
+ }
118
+ #isVisible(element) {
119
+ const style = window.getComputedStyle(element);
120
+ const isHidden = style.display === 'none' || style.visibility === 'hidden';
121
+ if (isHidden) {
122
+ return false;
123
+ }
124
+ /* istanbul ignore next */
125
+ const hasBounds = !!(element.offsetWidth ||
126
+ element.offsetHeight ||
127
+ element.getClientRects().length);
128
+ return hasBounds;
129
+ }
130
+ #focusFirstElement(list) {
131
+ if (list.length > 0) {
132
+ list[0].focus();
133
+ }
134
+ }
135
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
136
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormAdapterService }); }
137
+ }
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormAdapterService, decorators: [{
139
+ type: Injectable
140
+ }] });
141
+
142
+ var SkyInlineFormButtonLayout;
143
+ (function (SkyInlineFormButtonLayout) {
144
+ /**
145
+ * Displays custom buttons.
146
+ */
147
+ SkyInlineFormButtonLayout[SkyInlineFormButtonLayout["Custom"] = 0] = "Custom";
148
+ /**
149
+ * Displays Done and Cancel buttons.
150
+ */
151
+ SkyInlineFormButtonLayout[SkyInlineFormButtonLayout["DoneCancel"] = 1] = "DoneCancel";
152
+ /**
153
+ * Displays Done, Delete, and Cancel buttons.
154
+ */
155
+ SkyInlineFormButtonLayout[SkyInlineFormButtonLayout["DoneDeleteCancel"] = 2] = "DoneDeleteCancel";
156
+ /**
157
+ * Displays Save and Cancel buttons.
158
+ */
159
+ SkyInlineFormButtonLayout[SkyInlineFormButtonLayout["SaveCancel"] = 3] = "SaveCancel";
160
+ /**
161
+ * Displays Save, Delete, and Cancel buttons.
162
+ */
163
+ SkyInlineFormButtonLayout[SkyInlineFormButtonLayout["SaveDeleteCancel"] = 4] = "SaveDeleteCancel";
164
+ })(SkyInlineFormButtonLayout || (SkyInlineFormButtonLayout = {}));
165
+
166
+ /**
167
+ * Renders form content in the current view instead of a separate modal.
168
+ */
169
+ class SkyInlineFormComponent {
170
+ /**
171
+ * Configuration options for the buttons to display with the inline form.
172
+ * @required
173
+ */
174
+ set config(value) {
175
+ if (value !== this.#_config && !!value) {
176
+ this.#_config = value;
177
+ this.#setupButtons();
178
+ }
179
+ }
180
+ get config() {
181
+ return this.#_config;
182
+ }
183
+ /**
184
+ * Whether to display the inline form. Users can toggle between displaying
185
+ * and hiding the inline form.
186
+ * @default false
187
+ */
188
+ set showForm(value) {
189
+ this.#_showForm = value;
190
+ /* istanbul ignore else */
191
+ if (value) {
192
+ // setTimeout() prevents applyAutofocus() from firing
193
+ // until after *ngIf has added the form element to the DOM.
194
+ this.#skyAppWindowRef.nativeWindow.setTimeout(() => {
195
+ this.#adapter.applyAutofocus(this.#elementRef);
196
+ });
197
+ }
198
+ }
199
+ get showForm() {
200
+ return this.#_showForm;
201
+ }
202
+ #_config;
203
+ #_showForm;
204
+ #ngUnsubscribe;
205
+ #adapter;
206
+ #elementRef;
207
+ #resourcesService;
208
+ #skyAppWindowRef;
209
+ #changeDetectorRef;
210
+ constructor(adapter, elementRef, resourcesService, skyAppWindowRef, changeDetectorRef) {
211
+ /**
212
+ * Fires when users close the inline form.
213
+ */
214
+ this.close = new EventEmitter();
215
+ this.#_showForm = false;
216
+ this.#ngUnsubscribe = new Subject();
217
+ this.#adapter = adapter;
218
+ this.#elementRef = elementRef;
219
+ this.#resourcesService = resourcesService;
220
+ this.#skyAppWindowRef = skyAppWindowRef;
221
+ this.#changeDetectorRef = changeDetectorRef;
222
+ }
223
+ ngOnInit() {
224
+ this.#setupButtons();
225
+ }
226
+ ngOnDestroy() {
227
+ this.#ngUnsubscribe.next();
228
+ this.#ngUnsubscribe.complete();
229
+ this.close.complete();
230
+ }
231
+ closeInlineForm(event) {
232
+ const args = {
233
+ reason: event.action,
234
+ };
235
+ this.close.emit(args);
236
+ }
237
+ #setupButtons() {
238
+ if (this.#isValidCustomConfig(this.config) &&
239
+ this.config &&
240
+ this.config.buttons) {
241
+ this.buttons = this.#getCustomButtons(this.config.buttons);
242
+ this.#changeDetectorRef.markForCheck();
243
+ return;
244
+ }
245
+ this.#getPresetButtons()
246
+ .pipe(takeUntil(this.#ngUnsubscribe))
247
+ .subscribe((buttons) => {
248
+ this.buttons = buttons;
249
+ this.#changeDetectorRef.markForCheck();
250
+ });
251
+ }
252
+ #getPresetButtons() {
253
+ const emitter = new ReplaySubject(1);
254
+ const buttonType = this.config
255
+ ? this.config.buttonLayout
256
+ : SkyInlineFormButtonLayout.DoneCancel;
257
+ switch (buttonType) {
258
+ /* istanbul ignore next */
259
+ default:
260
+ case SkyInlineFormButtonLayout.DoneCancel:
261
+ zip(this.#resourcesService.getString('skyux_inline_form_button_done'), this.#resourcesService.getString('skyux_inline_form_button_cancel'))
262
+ .pipe(takeUntil(this.#ngUnsubscribe))
263
+ .subscribe((values) => {
264
+ emitter.next([
265
+ {
266
+ text: values[0],
267
+ styleType: 'primary',
268
+ action: 'done',
269
+ },
270
+ {
271
+ text: values[1],
272
+ styleType: 'link',
273
+ action: 'cancel',
274
+ },
275
+ ]);
276
+ });
277
+ break;
278
+ case SkyInlineFormButtonLayout.SaveCancel:
279
+ zip(this.#resourcesService.getString('skyux_inline_form_button_save'), this.#resourcesService.getString('skyux_inline_form_button_cancel'))
280
+ .pipe(takeUntil(this.#ngUnsubscribe))
281
+ .subscribe((values) => {
282
+ emitter.next([
283
+ {
284
+ text: values[0],
285
+ styleType: 'primary',
286
+ action: 'save',
287
+ },
288
+ {
289
+ text: values[1],
290
+ styleType: 'link',
291
+ action: 'cancel',
292
+ },
293
+ ]);
294
+ });
295
+ break;
296
+ case SkyInlineFormButtonLayout.DoneDeleteCancel:
297
+ zip(this.#resourcesService.getString('skyux_inline_form_button_done'), this.#resourcesService.getString('skyux_inline_form_button_delete'), this.#resourcesService.getString('skyux_inline_form_button_cancel'))
298
+ .pipe(takeUntil(this.#ngUnsubscribe))
299
+ .subscribe((values) => {
300
+ emitter.next([
301
+ {
302
+ text: values[0],
303
+ styleType: 'primary',
304
+ action: 'done',
305
+ },
306
+ {
307
+ text: values[1],
308
+ styleType: 'default',
309
+ action: 'delete',
310
+ },
311
+ {
312
+ text: values[2],
313
+ styleType: 'link',
314
+ action: 'cancel',
315
+ },
316
+ ]);
317
+ });
318
+ break;
319
+ case SkyInlineFormButtonLayout.SaveDeleteCancel:
320
+ zip(this.#resourcesService.getString('skyux_inline_form_button_save'), this.#resourcesService.getString('skyux_inline_form_button_delete'), this.#resourcesService.getString('skyux_inline_form_button_cancel'))
321
+ .pipe(takeUntil(this.#ngUnsubscribe))
322
+ .subscribe((values) => {
323
+ emitter.next([
324
+ {
325
+ text: values[0],
326
+ styleType: 'primary',
327
+ action: 'save',
328
+ },
329
+ {
330
+ text: values[1],
331
+ styleType: 'default',
332
+ action: 'delete',
333
+ },
334
+ {
335
+ text: values[2],
336
+ styleType: 'link',
337
+ action: 'cancel',
338
+ },
339
+ ]);
340
+ });
341
+ break;
342
+ }
343
+ return emitter.asObservable();
344
+ }
345
+ #getCustomButtons(buttonConfigs) {
346
+ const buttons = [];
347
+ buttonConfigs.forEach((config) => {
348
+ /* istanbul ignore next */
349
+ const styleType = config.styleType || 'default';
350
+ buttons.push({
351
+ action: config.action,
352
+ disabled: config.disabled,
353
+ styleType: styleType,
354
+ text: config.text,
355
+ });
356
+ });
357
+ return buttons;
358
+ }
359
+ #isValidCustomConfig(config) {
360
+ return (!!config &&
361
+ !!config.buttons &&
362
+ config.buttons.length > 0 &&
363
+ config.buttonLayout === SkyInlineFormButtonLayout.Custom);
364
+ }
365
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormComponent, deps: [{ token: SkyInlineFormAdapterService }, { token: i0.ElementRef }, { token: i2.SkyLibResourcesService }, { token: i3.SkyAppWindowRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
366
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyInlineFormComponent, selector: "sky-inline-form", inputs: { config: "config", template: "template", showForm: "showForm" }, outputs: { close: "close" }, providers: [SkyInlineFormAdapterService], ngImport: i0, template: "<div [@skySlideDissolve]=\"showForm\">\n <div *ngIf=\"!showForm\" class=\"sky-slide-dissolve-first\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"template && showForm\" class=\"sky-slide-dissolve-last\">\n <div class=\"sky-inline-form sky-shadow sky-box sky-elevation-3\">\n <div class=\"sky-inline-form-content\">\n <ng-container [ngTemplateOutlet]=\"template\"> </ng-container>\n </div>\n <div class=\"sky-inline-form-footer\">\n <button\n *ngFor=\"let button of buttons\"\n class=\"sky-btn {{ 'sky-btn-' + button.styleType }}\"\n type=\"button\"\n [disabled]=\"button.disabled ? true : null\"\n [ngClass]=\"{ 'sky-btn-disabled': button.disabled }\"\n (click)=\"closeInlineForm(button)\"\n >\n {{ button.text }}\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".sky-inline-form{background:#eeeeef;border:1px solid #cdcfd2;padding:10px;width:100%}.sky-inline-form .sky-inline-form-footer{margin-top:20px}.sky-inline-form .sky-inline-form-footer button{margin:0 5px 0 0}:host-context(.sky-theme-modern) .sky-inline-form{background-color:#fff;border:none;padding:15px}:host-context(.sky-theme-modern) .sky-inline-form .sky-inline-form-footer{margin-top:30px}:host-context(.sky-theme-modern) .sky-inline-form .sky-inline-form-footer button{margin-right:10px}.sky-theme-modern .sky-inline-form{background-color:#fff;border:none;padding:15px}.sky-theme-modern .sky-inline-form .sky-inline-form-footer{margin-top:30px}.sky-theme-modern .sky-inline-form .sky-inline-form-footer button{margin-right:10px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-inline-form{background-color:#232427}.sky-theme-modern.sky-theme-mode-dark .sky-inline-form{background-color:#232427}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [skySlideDissolve], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
367
+ }
368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormComponent, decorators: [{
369
+ type: Component,
370
+ args: [{ selector: 'sky-inline-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [SkyInlineFormAdapterService], animations: [skySlideDissolve], template: "<div [@skySlideDissolve]=\"showForm\">\n <div *ngIf=\"!showForm\" class=\"sky-slide-dissolve-first\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"template && showForm\" class=\"sky-slide-dissolve-last\">\n <div class=\"sky-inline-form sky-shadow sky-box sky-elevation-3\">\n <div class=\"sky-inline-form-content\">\n <ng-container [ngTemplateOutlet]=\"template\"> </ng-container>\n </div>\n <div class=\"sky-inline-form-footer\">\n <button\n *ngFor=\"let button of buttons\"\n class=\"sky-btn {{ 'sky-btn-' + button.styleType }}\"\n type=\"button\"\n [disabled]=\"button.disabled ? true : null\"\n [ngClass]=\"{ 'sky-btn-disabled': button.disabled }\"\n (click)=\"closeInlineForm(button)\"\n >\n {{ button.text }}\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".sky-inline-form{background:#eeeeef;border:1px solid #cdcfd2;padding:10px;width:100%}.sky-inline-form .sky-inline-form-footer{margin-top:20px}.sky-inline-form .sky-inline-form-footer button{margin:0 5px 0 0}:host-context(.sky-theme-modern) .sky-inline-form{background-color:#fff;border:none;padding:15px}:host-context(.sky-theme-modern) .sky-inline-form .sky-inline-form-footer{margin-top:30px}:host-context(.sky-theme-modern) .sky-inline-form .sky-inline-form-footer button{margin-right:10px}.sky-theme-modern .sky-inline-form{background-color:#fff;border:none;padding:15px}.sky-theme-modern .sky-inline-form .sky-inline-form-footer{margin-top:30px}.sky-theme-modern .sky-inline-form .sky-inline-form-footer button{margin-right:10px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-inline-form{background-color:#232427}.sky-theme-modern.sky-theme-mode-dark .sky-inline-form{background-color:#232427}\n"] }]
371
+ }], ctorParameters: function () { return [{ type: SkyInlineFormAdapterService }, { type: i0.ElementRef }, { type: i2.SkyLibResourcesService }, { type: i3.SkyAppWindowRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { config: [{
372
+ type: Input
373
+ }], template: [{
374
+ type: Input
375
+ }], showForm: [{
376
+ type: Input
377
+ }], close: [{
378
+ type: Output
379
+ }] } });
380
+
381
+ class SkyInlineFormModule {
382
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
383
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormModule, declarations: [SkyInlineFormComponent], imports: [CommonModule, SkyInlineFormResourcesModule], exports: [SkyInlineFormComponent] }); }
384
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormModule, imports: [CommonModule, SkyInlineFormResourcesModule] }); }
385
+ }
386
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyInlineFormModule, decorators: [{
387
+ type: NgModule,
388
+ args: [{
389
+ declarations: [SkyInlineFormComponent],
390
+ imports: [CommonModule, SkyInlineFormResourcesModule],
391
+ exports: [SkyInlineFormComponent],
392
+ }]
393
+ }] });
394
+
395
+ /**
396
+ * Generated bundle index. Do not edit.
397
+ */
398
+
399
+ export { SkyInlineFormButtonLayout, SkyInlineFormModule, SkyInlineFormComponent as λ1 };
400
+ //# sourceMappingURL=skyux-inline-form.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-inline-form.mjs","sources":["../../../../../libs/components/inline-form/src/lib/modules/shared/sky-inline-form-resources.module.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/animations/slide-dissolve.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form-adapter.service.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/types/inline-form-button-layout.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form.component.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form.component.html","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form.module.ts","../../../../../libs/components/inline-form/src/skyux-inline-form.ts"],"sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-inline-form' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_inline_form_button_cancel: { message: 'Cancel' },\n skyux_inline_form_button_delete: { message: 'Delete' },\n skyux_inline_form_button_done: { message: 'Done' },\n skyux_inline_form_button_save: { message: 'Save' },\n },\n};\n\nexport class SkyInlineFormResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyInlineFormResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyInlineFormResourcesModule {}\n","import {\n AnimationTriggerMetadata,\n animate,\n group,\n query,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const skySlideDissolve: AnimationTriggerMetadata = trigger(\n 'skySlideDissolve',\n [\n transition('* <=> *', [\n // Expand animations\n query(\n '.sky-slide-dissolve-last:enter',\n [\n style({ height: 0, opacity: 0 }),\n animate('200ms ease-in', style({ height: '*', opacity: 0 })),\n ],\n { optional: true }\n ),\n query(\n '.sky-slide-dissolve-last:enter',\n [\n style({ opacity: 0 }),\n animate('200ms ease-in', style({ opacity: 1 })),\n ],\n { optional: true }\n ),\n\n // Collapse animations\n // The expanded content should fade out immediately to prevent\n // any overlap with the read-only content that's returning to the screen.\n query(\n '.sky-slide-dissolve-last:leave',\n [animate('0ms', style({ opacity: 0 }))],\n { optional: true }\n ),\n\n group([\n query(\n '.sky-slide-dissolve-first:enter',\n [\n style({ opacity: 0, height: 0 }),\n animate('100ms ease-in', style({ opacity: 1, height: '*' })),\n ],\n { optional: true }\n ),\n query(\n '.sky-slide-dissolve-last:leave',\n [animate('200ms ease-in', style({ height: 0 }))],\n { optional: true }\n ),\n ]),\n ]),\n ]\n);\n","import { ElementRef, Injectable } from '@angular/core';\n\nconst SKY_TABBABLE_SELECTOR = [\n 'a[href]',\n 'area[href]',\n \"input:not([disabled]):not([tabindex='-1'])\",\n \"button:not([disabled]):not([tabindex='-1'])\",\n \"select:not([disabled]):not([tabindex='-1'])\",\n \"textarea:not([disabled]):not([tabindex='-1'])\",\n 'iframe',\n 'object',\n 'embed',\n \"*[tabindex]:not([tabindex='-1'])\",\n '*[contenteditable=true]',\n].join(', ');\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInlineFormAdapterService {\n public applyAutofocus(inlineFormElementRef: ElementRef): void {\n const inputWithAutofocus =\n inlineFormElementRef.nativeElement.querySelector('[autofocus]');\n\n if (inputWithAutofocus) {\n inputWithAutofocus.focus();\n } else {\n const focusEl: HTMLElement =\n inlineFormElementRef.nativeElement.querySelector(\n '.sky-inline-form-content'\n );\n const focusableChildren = this.#loadFocusableChildren(focusEl);\n\n this.#focusFirstElement(focusableChildren);\n }\n }\n\n #loadFocusableChildren(elem: HTMLElement): HTMLElement[] {\n const elements: Array<HTMLElement> = Array.prototype.slice.call(\n elem.querySelectorAll(SKY_TABBABLE_SELECTOR)\n );\n\n return elements.filter((element) => {\n return this.#isVisible(element);\n });\n }\n\n #isVisible(element: HTMLElement): boolean {\n const style = window.getComputedStyle(element);\n const isHidden = style.display === 'none' || style.visibility === 'hidden';\n if (isHidden) {\n return false;\n }\n\n /* istanbul ignore next */\n const hasBounds = !!(\n element.offsetWidth ||\n element.offsetHeight ||\n element.getClientRects().length\n );\n return hasBounds;\n }\n\n #focusFirstElement(list: Array<HTMLElement>): void {\n if (list.length > 0) {\n list[0].focus();\n }\n }\n}\n","export enum SkyInlineFormButtonLayout {\n /**\n * Displays custom buttons.\n */\n Custom = 0,\n /**\n * Displays Done and Cancel buttons.\n */\n DoneCancel = 1,\n /**\n * Displays Done, Delete, and Cancel buttons.\n */\n DoneDeleteCancel = 2,\n /**\n * Displays Save and Cancel buttons.\n */\n SaveCancel = 3,\n /**\n * Displays Save, Delete, and Cancel buttons.\n */\n SaveDeleteCancel = 4,\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { SkyAppWindowRef } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Observable, ReplaySubject, Subject, zip as observableZip } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { skySlideDissolve } from './animations/slide-dissolve';\nimport { SkyInlineFormAdapterService } from './inline-form-adapter.service';\nimport { SkyInlineFormButtonConfig } from './types/inline-form-button-config';\nimport { SkyInlineFormButtonLayout } from './types/inline-form-button-layout';\nimport { SkyInlineFormCloseArgs } from './types/inline-form-close-args';\nimport { SkyInlineFormConfig } from './types/inline-form-config';\n\n/**\n * Renders form content in the current view instead of a separate modal.\n */\n@Component({\n selector: 'sky-inline-form',\n templateUrl: './inline-form.component.html',\n styleUrls: ['./inline-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SkyInlineFormAdapterService],\n animations: [skySlideDissolve],\n})\nexport class SkyInlineFormComponent implements OnInit, OnDestroy {\n /**\n * Configuration options for the buttons to display with the inline form.\n * @required\n */\n @Input()\n public set config(value: SkyInlineFormConfig | undefined) {\n if (value !== this.#_config && !!value) {\n this.#_config = value;\n this.#setupButtons();\n }\n }\n\n public get config(): SkyInlineFormConfig | undefined {\n return this.#_config;\n }\n\n /**\n * The template to instantiate the inline form.\n * @required\n */\n @Input()\n public template: TemplateRef<unknown> | undefined;\n\n /**\n * Whether to display the inline form. Users can toggle between displaying\n * and hiding the inline form.\n * @default false\n */\n @Input()\n public set showForm(value: boolean | undefined) {\n this.#_showForm = value;\n\n /* istanbul ignore else */\n if (value) {\n // setTimeout() prevents applyAutofocus() from firing\n // until after *ngIf has added the form element to the DOM.\n this.#skyAppWindowRef.nativeWindow.setTimeout(() => {\n this.#adapter.applyAutofocus(this.#elementRef);\n });\n }\n }\n\n public get showForm(): boolean | undefined {\n return this.#_showForm;\n }\n\n /**\n * Fires when users close the inline form.\n */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public close = new EventEmitter<SkyInlineFormCloseArgs>();\n\n // TODO: handle buttons being set asynchronously (\"| undefined\") when setting autofocus\n public buttons!: SkyInlineFormButtonConfig[];\n\n #_config: SkyInlineFormConfig | undefined;\n\n #_showForm: boolean | undefined = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #adapter: SkyInlineFormAdapterService;\n #elementRef: ElementRef;\n #resourcesService: SkyLibResourcesService;\n #skyAppWindowRef: SkyAppWindowRef;\n #changeDetectorRef: ChangeDetectorRef;\n\n constructor(\n adapter: SkyInlineFormAdapterService,\n elementRef: ElementRef,\n resourcesService: SkyLibResourcesService,\n skyAppWindowRef: SkyAppWindowRef,\n changeDetectorRef: ChangeDetectorRef\n ) {\n this.#adapter = adapter;\n this.#elementRef = elementRef;\n this.#resourcesService = resourcesService;\n this.#skyAppWindowRef = skyAppWindowRef;\n this.#changeDetectorRef = changeDetectorRef;\n }\n\n public ngOnInit(): void {\n this.#setupButtons();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.close.complete();\n }\n\n public closeInlineForm(event: SkyInlineFormButtonConfig): void {\n const args: SkyInlineFormCloseArgs = {\n reason: event.action,\n };\n this.close.emit(args);\n }\n\n #setupButtons(): void {\n if (\n this.#isValidCustomConfig(this.config) &&\n this.config &&\n this.config.buttons\n ) {\n this.buttons = this.#getCustomButtons(this.config.buttons);\n this.#changeDetectorRef.markForCheck();\n return;\n }\n\n this.#getPresetButtons()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((buttons: SkyInlineFormButtonConfig[]) => {\n this.buttons = buttons;\n this.#changeDetectorRef.markForCheck();\n });\n }\n\n #getPresetButtons(): Observable<SkyInlineFormButtonConfig[]> {\n const emitter = new ReplaySubject<SkyInlineFormButtonConfig[]>(1);\n\n const buttonType = this.config\n ? this.config.buttonLayout\n : SkyInlineFormButtonLayout.DoneCancel;\n\n switch (buttonType) {\n /* istanbul ignore next */\n default:\n case SkyInlineFormButtonLayout.DoneCancel:\n observableZip(\n this.#resourcesService.getString('skyux_inline_form_button_done'),\n this.#resourcesService.getString('skyux_inline_form_button_cancel')\n )\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values: string[]) => {\n emitter.next([\n {\n text: values[0],\n styleType: 'primary',\n action: 'done',\n },\n {\n text: values[1],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n\n case SkyInlineFormButtonLayout.SaveCancel:\n observableZip(\n this.#resourcesService.getString('skyux_inline_form_button_save'),\n this.#resourcesService.getString('skyux_inline_form_button_cancel')\n )\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values: string[]) => {\n emitter.next([\n {\n text: values[0],\n styleType: 'primary',\n action: 'save',\n },\n {\n text: values[1],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n\n case SkyInlineFormButtonLayout.DoneDeleteCancel:\n observableZip(\n this.#resourcesService.getString('skyux_inline_form_button_done'),\n this.#resourcesService.getString('skyux_inline_form_button_delete'),\n this.#resourcesService.getString('skyux_inline_form_button_cancel')\n )\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values: string[]) => {\n emitter.next([\n {\n text: values[0],\n styleType: 'primary',\n action: 'done',\n },\n {\n text: values[1],\n styleType: 'default',\n action: 'delete',\n },\n {\n text: values[2],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n\n case SkyInlineFormButtonLayout.SaveDeleteCancel:\n observableZip(\n this.#resourcesService.getString('skyux_inline_form_button_save'),\n this.#resourcesService.getString('skyux_inline_form_button_delete'),\n this.#resourcesService.getString('skyux_inline_form_button_cancel')\n )\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values: string[]) => {\n emitter.next([\n {\n text: values[0],\n styleType: 'primary',\n action: 'save',\n },\n {\n text: values[1],\n styleType: 'default',\n action: 'delete',\n },\n {\n text: values[2],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n }\n\n return emitter.asObservable();\n }\n\n #getCustomButtons(\n buttonConfigs: SkyInlineFormButtonConfig[]\n ): SkyInlineFormButtonConfig[] {\n const buttons: SkyInlineFormButtonConfig[] = [];\n\n buttonConfigs.forEach((config: SkyInlineFormButtonConfig) => {\n /* istanbul ignore next */\n const styleType = config.styleType || 'default';\n\n buttons.push({\n action: config.action,\n disabled: config.disabled,\n styleType: styleType,\n text: config.text,\n } as SkyInlineFormButtonConfig);\n });\n\n return buttons;\n }\n\n #isValidCustomConfig(config: SkyInlineFormConfig | undefined): boolean {\n return (\n !!config &&\n !!config.buttons &&\n config.buttons.length > 0 &&\n config.buttonLayout === SkyInlineFormButtonLayout.Custom\n );\n }\n}\n","<div [@skySlideDissolve]=\"showForm\">\n <div *ngIf=\"!showForm\" class=\"sky-slide-dissolve-first\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"template && showForm\" class=\"sky-slide-dissolve-last\">\n <div class=\"sky-inline-form sky-shadow sky-box sky-elevation-3\">\n <div class=\"sky-inline-form-content\">\n <ng-container [ngTemplateOutlet]=\"template\"> </ng-container>\n </div>\n <div class=\"sky-inline-form-footer\">\n <button\n *ngFor=\"let button of buttons\"\n class=\"sky-btn {{ 'sky-btn-' + button.styleType }}\"\n type=\"button\"\n [disabled]=\"button.disabled ? true : null\"\n [ngClass]=\"{ 'sky-btn-disabled': button.disabled }\"\n (click)=\"closeInlineForm(button)\"\n >\n {{ button.text }}\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyInlineFormResourcesModule } from '../shared/sky-inline-form-resources.module';\n\nimport { SkyInlineFormComponent } from './inline-form.component';\n\n@NgModule({\n declarations: [SkyInlineFormComponent],\n imports: [CommonModule, SkyInlineFormResourcesModule],\n exports: [SkyInlineFormComponent],\n})\nexport class SkyInlineFormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableZip","i1.SkyInlineFormAdapterService"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-inline-form.mjs","sources":["../../../../../libs/components/inline-form/src/lib/modules/shared/sky-inline-form-resources.module.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/animations/slide-dissolve.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form-adapter.service.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/types/inline-form-button-layout.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form.component.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form.component.html","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form.module.ts","../../../../../libs/components/inline-form/src/skyux-inline-form.ts"],"sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-inline-form' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_inline_form_button_cancel: { message: 'Cancel' },\n skyux_inline_form_button_delete: { message: 'Delete' },\n skyux_inline_form_button_done: { message: 'Done' },\n skyux_inline_form_button_save: { message: 'Save' },\n },\n};\n\nexport class SkyInlineFormResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyInlineFormResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyInlineFormResourcesModule {}\n","import {\n AnimationTriggerMetadata,\n animate,\n group,\n query,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const skySlideDissolve: AnimationTriggerMetadata = trigger(\n 'skySlideDissolve',\n [\n transition('* <=> *', [\n // Expand animations\n query(\n '.sky-slide-dissolve-last:enter',\n [\n style({ height: 0, opacity: 0 }),\n animate('200ms ease-in', style({ height: '*', opacity: 0 })),\n ],\n { optional: true }\n ),\n query(\n '.sky-slide-dissolve-last:enter',\n [\n style({ opacity: 0 }),\n animate('200ms ease-in', style({ opacity: 1 })),\n ],\n { optional: true }\n ),\n\n // Collapse animations\n // The expanded content should fade out immediately to prevent\n // any overlap with the read-only content that's returning to the screen.\n query(\n '.sky-slide-dissolve-last:leave',\n [animate('0ms', style({ opacity: 0 }))],\n { optional: true }\n ),\n\n group([\n query(\n '.sky-slide-dissolve-first:enter',\n [\n style({ opacity: 0, height: 0 }),\n animate('100ms ease-in', style({ opacity: 1, height: '*' })),\n ],\n { optional: true }\n ),\n query(\n '.sky-slide-dissolve-last:leave',\n [animate('200ms ease-in', style({ height: 0 }))],\n { optional: true }\n ),\n ]),\n ]),\n ]\n);\n","import { ElementRef, Injectable } from '@angular/core';\n\nconst SKY_TABBABLE_SELECTOR = [\n 'a[href]',\n 'area[href]',\n \"input:not([disabled]):not([tabindex='-1'])\",\n \"button:not([disabled]):not([tabindex='-1'])\",\n \"select:not([disabled]):not([tabindex='-1'])\",\n \"textarea:not([disabled]):not([tabindex='-1'])\",\n 'iframe',\n 'object',\n 'embed',\n \"*[tabindex]:not([tabindex='-1'])\",\n '*[contenteditable=true]',\n].join(', ');\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInlineFormAdapterService {\n public applyAutofocus(inlineFormElementRef: ElementRef): void {\n const inputWithAutofocus =\n inlineFormElementRef.nativeElement.querySelector('[autofocus]');\n\n if (inputWithAutofocus) {\n inputWithAutofocus.focus();\n } else {\n const focusEl: HTMLElement =\n inlineFormElementRef.nativeElement.querySelector(\n '.sky-inline-form-content'\n );\n const focusableChildren = this.#loadFocusableChildren(focusEl);\n\n this.#focusFirstElement(focusableChildren);\n }\n }\n\n #loadFocusableChildren(elem: HTMLElement): HTMLElement[] {\n const elements: Array<HTMLElement> = Array.prototype.slice.call(\n elem.querySelectorAll(SKY_TABBABLE_SELECTOR)\n );\n\n return elements.filter((element) => {\n return this.#isVisible(element);\n });\n }\n\n #isVisible(element: HTMLElement): boolean {\n const style = window.getComputedStyle(element);\n const isHidden = style.display === 'none' || style.visibility === 'hidden';\n if (isHidden) {\n return false;\n }\n\n /* istanbul ignore next */\n const hasBounds = !!(\n element.offsetWidth ||\n element.offsetHeight ||\n element.getClientRects().length\n );\n return hasBounds;\n }\n\n #focusFirstElement(list: Array<HTMLElement>): void {\n if (list.length > 0) {\n list[0].focus();\n }\n }\n}\n","export enum SkyInlineFormButtonLayout {\n /**\n * Displays custom buttons.\n */\n Custom = 0,\n /**\n * Displays Done and Cancel buttons.\n */\n DoneCancel = 1,\n /**\n * Displays Done, Delete, and Cancel buttons.\n */\n DoneDeleteCancel = 2,\n /**\n * Displays Save and Cancel buttons.\n */\n SaveCancel = 3,\n /**\n * Displays Save, Delete, and Cancel buttons.\n */\n SaveDeleteCancel = 4,\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { SkyAppWindowRef } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Observable, ReplaySubject, Subject, zip as observableZip } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { skySlideDissolve } from './animations/slide-dissolve';\nimport { SkyInlineFormAdapterService } from './inline-form-adapter.service';\nimport { SkyInlineFormButtonConfig } from './types/inline-form-button-config';\nimport { SkyInlineFormButtonLayout } from './types/inline-form-button-layout';\nimport { SkyInlineFormCloseArgs } from './types/inline-form-close-args';\nimport { SkyInlineFormConfig } from './types/inline-form-config';\n\n/**\n * Renders form content in the current view instead of a separate modal.\n */\n@Component({\n selector: 'sky-inline-form',\n templateUrl: './inline-form.component.html',\n styleUrls: ['./inline-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SkyInlineFormAdapterService],\n animations: [skySlideDissolve],\n})\nexport class SkyInlineFormComponent implements OnInit, OnDestroy {\n /**\n * Configuration options for the buttons to display with the inline form.\n * @required\n */\n @Input()\n public set config(value: SkyInlineFormConfig | undefined) {\n if (value !== this.#_config && !!value) {\n this.#_config = value;\n this.#setupButtons();\n }\n }\n\n public get config(): SkyInlineFormConfig | undefined {\n return this.#_config;\n }\n\n /**\n * The template to instantiate the inline form.\n * @required\n */\n @Input()\n public template: TemplateRef<unknown> | undefined;\n\n /**\n * Whether to display the inline form. Users can toggle between displaying\n * and hiding the inline form.\n * @default false\n */\n @Input()\n public set showForm(value: boolean | undefined) {\n this.#_showForm = value;\n\n /* istanbul ignore else */\n if (value) {\n // setTimeout() prevents applyAutofocus() from firing\n // until after *ngIf has added the form element to the DOM.\n this.#skyAppWindowRef.nativeWindow.setTimeout(() => {\n this.#adapter.applyAutofocus(this.#elementRef);\n });\n }\n }\n\n public get showForm(): boolean | undefined {\n return this.#_showForm;\n }\n\n /**\n * Fires when users close the inline form.\n */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public close = new EventEmitter<SkyInlineFormCloseArgs>();\n\n // TODO: handle buttons being set asynchronously (\"| undefined\") when setting autofocus\n public buttons!: SkyInlineFormButtonConfig[];\n\n #_config: SkyInlineFormConfig | undefined;\n\n #_showForm: boolean | undefined = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #adapter: SkyInlineFormAdapterService;\n #elementRef: ElementRef;\n #resourcesService: SkyLibResourcesService;\n #skyAppWindowRef: SkyAppWindowRef;\n #changeDetectorRef: ChangeDetectorRef;\n\n constructor(\n adapter: SkyInlineFormAdapterService,\n elementRef: ElementRef,\n resourcesService: SkyLibResourcesService,\n skyAppWindowRef: SkyAppWindowRef,\n changeDetectorRef: ChangeDetectorRef\n ) {\n this.#adapter = adapter;\n this.#elementRef = elementRef;\n this.#resourcesService = resourcesService;\n this.#skyAppWindowRef = skyAppWindowRef;\n this.#changeDetectorRef = changeDetectorRef;\n }\n\n public ngOnInit(): void {\n this.#setupButtons();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.close.complete();\n }\n\n public closeInlineForm(event: SkyInlineFormButtonConfig): void {\n const args: SkyInlineFormCloseArgs = {\n reason: event.action,\n };\n this.close.emit(args);\n }\n\n #setupButtons(): void {\n if (\n this.#isValidCustomConfig(this.config) &&\n this.config &&\n this.config.buttons\n ) {\n this.buttons = this.#getCustomButtons(this.config.buttons);\n this.#changeDetectorRef.markForCheck();\n return;\n }\n\n this.#getPresetButtons()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((buttons: SkyInlineFormButtonConfig[]) => {\n this.buttons = buttons;\n this.#changeDetectorRef.markForCheck();\n });\n }\n\n #getPresetButtons(): Observable<SkyInlineFormButtonConfig[]> {\n const emitter = new ReplaySubject<SkyInlineFormButtonConfig[]>(1);\n\n const buttonType = this.config\n ? this.config.buttonLayout\n : SkyInlineFormButtonLayout.DoneCancel;\n\n switch (buttonType) {\n /* istanbul ignore next */\n default:\n case SkyInlineFormButtonLayout.DoneCancel:\n observableZip(\n this.#resourcesService.getString('skyux_inline_form_button_done'),\n this.#resourcesService.getString('skyux_inline_form_button_cancel')\n )\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values: string[]) => {\n emitter.next([\n {\n text: values[0],\n styleType: 'primary',\n action: 'done',\n },\n {\n text: values[1],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n\n case SkyInlineFormButtonLayout.SaveCancel:\n observableZip(\n this.#resourcesService.getString('skyux_inline_form_button_save'),\n this.#resourcesService.getString('skyux_inline_form_button_cancel')\n )\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values: string[]) => {\n emitter.next([\n {\n text: values[0],\n styleType: 'primary',\n action: 'save',\n },\n {\n text: values[1],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n\n case SkyInlineFormButtonLayout.DoneDeleteCancel:\n observableZip(\n this.#resourcesService.getString('skyux_inline_form_button_done'),\n this.#resourcesService.getString('skyux_inline_form_button_delete'),\n this.#resourcesService.getString('skyux_inline_form_button_cancel')\n )\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values: string[]) => {\n emitter.next([\n {\n text: values[0],\n styleType: 'primary',\n action: 'done',\n },\n {\n text: values[1],\n styleType: 'default',\n action: 'delete',\n },\n {\n text: values[2],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n\n case SkyInlineFormButtonLayout.SaveDeleteCancel:\n observableZip(\n this.#resourcesService.getString('skyux_inline_form_button_save'),\n this.#resourcesService.getString('skyux_inline_form_button_delete'),\n this.#resourcesService.getString('skyux_inline_form_button_cancel')\n )\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values: string[]) => {\n emitter.next([\n {\n text: values[0],\n styleType: 'primary',\n action: 'save',\n },\n {\n text: values[1],\n styleType: 'default',\n action: 'delete',\n },\n {\n text: values[2],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n }\n\n return emitter.asObservable();\n }\n\n #getCustomButtons(\n buttonConfigs: SkyInlineFormButtonConfig[]\n ): SkyInlineFormButtonConfig[] {\n const buttons: SkyInlineFormButtonConfig[] = [];\n\n buttonConfigs.forEach((config: SkyInlineFormButtonConfig) => {\n /* istanbul ignore next */\n const styleType = config.styleType || 'default';\n\n buttons.push({\n action: config.action,\n disabled: config.disabled,\n styleType: styleType,\n text: config.text,\n } as SkyInlineFormButtonConfig);\n });\n\n return buttons;\n }\n\n #isValidCustomConfig(config: SkyInlineFormConfig | undefined): boolean {\n return (\n !!config &&\n !!config.buttons &&\n config.buttons.length > 0 &&\n config.buttonLayout === SkyInlineFormButtonLayout.Custom\n );\n }\n}\n","<div [@skySlideDissolve]=\"showForm\">\n <div *ngIf=\"!showForm\" class=\"sky-slide-dissolve-first\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"template && showForm\" class=\"sky-slide-dissolve-last\">\n <div class=\"sky-inline-form sky-shadow sky-box sky-elevation-3\">\n <div class=\"sky-inline-form-content\">\n <ng-container [ngTemplateOutlet]=\"template\"> </ng-container>\n </div>\n <div class=\"sky-inline-form-footer\">\n <button\n *ngFor=\"let button of buttons\"\n class=\"sky-btn {{ 'sky-btn-' + button.styleType }}\"\n type=\"button\"\n [disabled]=\"button.disabled ? true : null\"\n [ngClass]=\"{ 'sky-btn-disabled': button.disabled }\"\n (click)=\"closeInlineForm(button)\"\n >\n {{ button.text }}\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyInlineFormResourcesModule } from '../shared/sky-inline-form-resources.module';\n\nimport { SkyInlineFormComponent } from './inline-form.component';\n\n@NgModule({\n declarations: [SkyInlineFormComponent],\n imports: [CommonModule, SkyInlineFormResourcesModule],\n exports: [SkyInlineFormComponent],\n})\nexport class SkyInlineFormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableZip","i1.SkyInlineFormAdapterService"],"mappings":"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"}
@@ -39,5 +39,5 @@ export declare class SkyInlineFormComponent implements OnInit, OnDestroy {
39
39
  ngOnDestroy(): void;
40
40
  closeInlineForm(event: SkyInlineFormButtonConfig): void;
41
41
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyInlineFormComponent, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyInlineFormComponent, "sky-inline-form", never, { "config": "config"; "template": "template"; "showForm": "showForm"; }, { "close": "close"; }, never, ["*"], false, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyInlineFormComponent, "sky-inline-form", never, { "config": { "alias": "config"; "required": false; }; "template": { "alias": "template"; "required": false; }; "showForm": { "alias": "showForm"; "required": false; }; }, { "close": "close"; }, never, ["*"], false, never>;
43
43
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/inline-form",
3
- "version": "8.7.2",
3
+ "version": "9.0.0-alpha.1",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -21,31 +21,25 @@
21
21
  },
22
22
  ".": {
23
23
  "types": "./index.d.ts",
24
- "esm2020": "./esm2020/skyux-inline-form.mjs",
25
- "es2020": "./fesm2020/skyux-inline-form.mjs",
26
- "es2015": "./fesm2015/skyux-inline-form.mjs",
27
- "node": "./fesm2015/skyux-inline-form.mjs",
28
- "default": "./fesm2020/skyux-inline-form.mjs"
24
+ "esm2022": "./esm2022/skyux-inline-form.mjs",
25
+ "esm": "./esm2022/skyux-inline-form.mjs",
26
+ "default": "./fesm2022/skyux-inline-form.mjs"
29
27
  },
30
28
  "./documentation.json": {
31
29
  "default": "./documentation.json"
32
30
  }
33
31
  },
34
32
  "peerDependencies": {
35
- "@angular/animations": "^15.2.9",
36
- "@angular/common": "^15.2.9",
37
- "@angular/core": "^15.2.9",
38
- "@skyux/core": "8.7.2",
39
- "@skyux/i18n": "8.7.2"
33
+ "@angular/animations": "^16.1.7",
34
+ "@angular/common": "^16.1.7",
35
+ "@angular/core": "^16.1.7",
36
+ "@skyux/core": "9.0.0-alpha.1",
37
+ "@skyux/i18n": "9.0.0-alpha.1"
40
38
  },
41
39
  "dependencies": {
42
40
  "tslib": "^2.5.0"
43
41
  },
44
- "module": "fesm2015/skyux-inline-form.mjs",
45
- "es2020": "fesm2020/skyux-inline-form.mjs",
46
- "esm2020": "esm2020/skyux-inline-form.mjs",
47
- "fesm2020": "fesm2020/skyux-inline-form.mjs",
48
- "fesm2015": "fesm2015/skyux-inline-form.mjs",
42
+ "module": "fesm2022/skyux-inline-form.mjs",
49
43
  "typings": "index.d.ts",
50
44
  "sideEffects": false
51
45
  }