novo-elements 8.3.0 → 8.4.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/addons/ace-editor/AceEditor.d.ts +4 -2
- package/addons/code-editor/CodeEditor.d.ts +31 -0
- package/addons/code-editor/CodeEditor.module.d.ts +9 -0
- package/addons/code-editor/CodeEditor.scss +5 -0
- package/addons/code-editor/index.d.ts +2 -0
- package/addons/code-editor/novo-elements-addons-code-editor.d.ts +5 -0
- package/addons/code-editor/package.json +10 -0
- package/addons/index.d.ts +1 -0
- package/elements/aside/aside.component.scss +1 -1
- package/elements/calendar/Calendar.module.d.ts +2 -3
- package/elements/checkbox/CheckList.scss +1 -1
- package/elements/checkbox/Checkbox.scss +1 -1
- package/elements/common/overlay/Overlay.d.ts +1 -0
- package/elements/date-picker/DatePicker.module.d.ts +2 -2
- package/elements/date-picker/DatePickerInput.d.ts +8 -5
- package/elements/date-picker/MultiDateInput.d.ts +0 -1
- package/elements/date-time-picker/DateTimePicker.module.d.ts +2 -3
- package/elements/drag-drop/drag-drop-box.d.ts +45 -0
- package/elements/drag-drop/drag-drop.module.d.ts +7 -0
- package/elements/drag-drop/index.d.ts +2 -0
- package/elements/drag-drop/novo-elements-elements-drag-drop.d.ts +5 -0
- package/elements/drag-drop/package.json +10 -0
- package/elements/dropdown/Dropdown.d.ts +7 -1
- package/elements/field/formats/date-time-format.d.ts +2 -2
- package/elements/form/Control.d.ts +9 -6
- package/elements/form/ControlTemplates.d.ts +1 -1
- package/elements/form/Form.module.d.ts +6 -6
- package/elements/form/controls/code-editor/CodeEditorControl.d.ts +5 -0
- package/elements/form/controls/code-editor/index.d.ts +1 -0
- package/elements/form/controls/index.d.ts +2 -1
- package/elements/form/extras/FormExtras.module.d.ts +4 -4
- package/elements/form/extras/file/FileInput.d.ts +15 -16
- package/elements/form/extras/file/FileInput.scss +58 -30
- package/elements/index.d.ts +1 -0
- package/elements/query-builder/condition-builder/condition-builder.component.scss +1 -1
- package/elements/query-builder/condition-definitions/address-condition.definition.d.ts +1 -1
- package/elements/select-search/select-search.component.scss +1 -1
- package/elements/table/Table.module.d.ts +5 -6
- package/elements/time-picker/TimePicker.d.ts +2 -3
- package/elements/time-picker/TimePicker.module.d.ts +3 -4
- package/elements/time-picker/TimePickerInput.d.ts +0 -1
- package/esm2020/addons/ace-editor/AceEditor.mjs +8 -4
- package/esm2020/addons/ckeditor/CKEditor.mjs +8 -1
- package/esm2020/addons/code-editor/CodeEditor.mjs +129 -0
- package/esm2020/addons/code-editor/CodeEditor.module.mjs +19 -0
- package/esm2020/addons/code-editor/index.mjs +3 -0
- package/esm2020/addons/code-editor/novo-elements-addons-code-editor.mjs +5 -0
- package/esm2020/addons/index.mjs +2 -1
- package/esm2020/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.mjs +1 -1
- package/esm2020/elements/calendar/Calendar.module.mjs +5 -7
- package/esm2020/elements/calendar/calendar.component.mjs +3 -3
- package/esm2020/elements/calendar/month-select/month-select.component.mjs +3 -3
- package/esm2020/elements/calendar/month-view/month-view.component.mjs +3 -3
- package/esm2020/elements/calendar/year-select/year-select.component.mjs +3 -3
- package/esm2020/elements/common/overlay/Overlay.mjs +11 -5
- package/esm2020/elements/data-table/cell-headers/data-table-header-cell.component.mjs +1 -1
- package/esm2020/elements/data-table/data-table-clear-button.component.mjs +1 -1
- package/esm2020/elements/data-table/data-table.component.mjs +2 -2
- package/esm2020/elements/date-picker/DatePicker.module.mjs +6 -6
- package/esm2020/elements/date-picker/DatePickerInput.mjs +50 -29
- package/esm2020/elements/date-picker/DateRangeInput.mjs +10 -16
- package/esm2020/elements/date-picker/MultiDateInput.mjs +1 -17
- package/esm2020/elements/date-time-picker/DateTimePicker.module.mjs +4 -5
- package/esm2020/elements/drag-drop/drag-drop-box.mjs +224 -0
- package/esm2020/elements/drag-drop/drag-drop.module.mjs +16 -0
- package/esm2020/elements/drag-drop/index.mjs +3 -0
- package/esm2020/elements/drag-drop/novo-elements-elements-drag-drop.mjs +5 -0
- package/esm2020/elements/dropdown/Dropdown.mjs +29 -4
- package/esm2020/elements/field/formats/date-format.mjs +5 -5
- package/esm2020/elements/field/formats/date-range-format.mjs +5 -5
- package/esm2020/elements/field/formats/date-time-format.mjs +12 -12
- package/esm2020/elements/field/formats/time-format.mjs +6 -6
- package/esm2020/elements/form/Control.mjs +20 -8
- package/esm2020/elements/form/ControlTemplates.mjs +54 -27
- package/esm2020/elements/form/Form.module.mjs +12 -13
- package/esm2020/elements/form/NovoFormControl.mjs +1 -2
- package/esm2020/elements/form/controls/code-editor/CodeEditorControl.mjs +9 -0
- package/esm2020/elements/form/controls/code-editor/index.mjs +2 -0
- package/esm2020/elements/form/controls/index.mjs +3 -2
- package/esm2020/elements/form/controls/timezone/TimezoneControl.mjs +2 -2
- package/esm2020/elements/form/extras/FormExtras.module.mjs +8 -9
- package/esm2020/elements/form/extras/file/FileInput.mjs +38 -261
- package/esm2020/elements/index.mjs +2 -1
- package/esm2020/elements/query-builder/condition-definitions/address-condition.definition.mjs +2 -2
- package/esm2020/elements/query-builder/condition-group/condition-group.component.mjs +1 -1
- package/esm2020/elements/simple-table/cell-header.mjs +2 -2
- package/esm2020/elements/simple-table/cell.mjs +1 -1
- package/esm2020/elements/tabbed-group-picker/TabbedGroupPicker.mjs +1 -1
- package/esm2020/elements/table/Table.mjs +1 -1
- package/esm2020/elements/table/Table.module.mjs +1 -6
- package/esm2020/elements/table/extras/dropdown-cell/DropdownCell.mjs +1 -1
- package/esm2020/elements/time-picker/TimePicker.mjs +5 -6
- package/esm2020/elements/time-picker/TimePicker.module.mjs +4 -5
- package/esm2020/elements/time-picker/TimePickerInput.mjs +3 -65
- package/esm2020/index.mjs +1 -1
- package/esm2020/novo-elements.module.mjs +9 -3
- package/esm2020/novo-elements.providers.mjs +2 -2
- package/esm2020/services/date-format/DateFormat.mjs +153 -47
- package/esm2020/services/global/global.service.mjs +7 -1
- package/esm2020/utils/date/Date.mjs +1 -1
- package/esm2020/utils/date/index.mjs +3 -2
- package/esm2020/utils/date/timezone-support.mjs +87 -0
- package/fesm2015/novo-elements-addons-ace-editor.mjs +7 -3
- package/fesm2015/novo-elements-addons-ace-editor.mjs.map +1 -1
- package/fesm2015/novo-elements-addons-ckeditor.mjs +7 -0
- package/fesm2015/novo-elements-addons-ckeditor.mjs.map +1 -1
- package/fesm2015/novo-elements-addons-code-editor.mjs +150 -0
- package/fesm2015/novo-elements-addons-code-editor.mjs.map +1 -0
- package/fesm2015/novo-elements-addons.mjs +155 -5
- package/fesm2015/novo-elements-addons.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-breadcrumbs.mjs +1 -1
- package/fesm2015/novo-elements-elements-breadcrumbs.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-calendar.mjs +12 -13
- package/fesm2015/novo-elements-elements-calendar.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-common.mjs +10 -2
- package/fesm2015/novo-elements-elements-common.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-data-table.mjs +3 -3
- package/fesm2015/novo-elements-elements-data-table.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-date-picker.mjs +64 -62
- package/fesm2015/novo-elements-elements-date-picker.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-date-time-picker.mjs +3 -4
- package/fesm2015/novo-elements-elements-date-time-picker.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-drag-drop.mjs +245 -0
- package/fesm2015/novo-elements-elements-drag-drop.mjs.map +1 -0
- package/fesm2015/novo-elements-elements-dropdown.mjs +28 -3
- package/fesm2015/novo-elements-elements-dropdown.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-field.mjs +19 -19
- package/fesm2015/novo-elements-elements-field.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-form.mjs +124 -300
- package/fesm2015/novo-elements-elements-form.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-query-builder.mjs +1 -1
- package/fesm2015/novo-elements-elements-query-builder.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-simple-table.mjs +2 -2
- package/fesm2015/novo-elements-elements-simple-table.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-tabbed-group-picker.mjs +1 -1
- package/fesm2015/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-table.mjs +2 -6
- package/fesm2015/novo-elements-elements-table.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-time-picker.mjs +7 -71
- package/fesm2015/novo-elements-elements-time-picker.mjs.map +1 -1
- package/fesm2015/novo-elements-elements.mjs +1 -0
- package/fesm2015/novo-elements-elements.mjs.map +1 -1
- package/fesm2015/novo-elements-services.mjs +158 -46
- package/fesm2015/novo-elements-services.mjs.map +1 -1
- package/fesm2015/novo-elements-utils.mjs +88 -1
- package/fesm2015/novo-elements-utils.mjs.map +1 -1
- package/fesm2015/novo-elements.mjs +8 -2
- package/fesm2015/novo-elements.mjs.map +1 -1
- package/fesm2020/novo-elements-addons-ace-editor.mjs +7 -3
- package/fesm2020/novo-elements-addons-ace-editor.mjs.map +1 -1
- package/fesm2020/novo-elements-addons-ckeditor.mjs +7 -0
- package/fesm2020/novo-elements-addons-ckeditor.mjs.map +1 -1
- package/fesm2020/novo-elements-addons-code-editor.mjs +150 -0
- package/fesm2020/novo-elements-addons-code-editor.mjs.map +1 -0
- package/fesm2020/novo-elements-addons.mjs +155 -5
- package/fesm2020/novo-elements-addons.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-breadcrumbs.mjs +1 -1
- package/fesm2020/novo-elements-elements-breadcrumbs.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-calendar.mjs +12 -13
- package/fesm2020/novo-elements-elements-calendar.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-common.mjs +8 -2
- package/fesm2020/novo-elements-elements-common.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-data-table.mjs +3 -3
- package/fesm2020/novo-elements-elements-data-table.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-date-picker.mjs +62 -62
- package/fesm2020/novo-elements-elements-date-picker.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-date-time-picker.mjs +3 -4
- package/fesm2020/novo-elements-elements-date-time-picker.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-drag-drop.mjs +244 -0
- package/fesm2020/novo-elements-elements-drag-drop.mjs.map +1 -0
- package/fesm2020/novo-elements-elements-dropdown.mjs +28 -3
- package/fesm2020/novo-elements-elements-dropdown.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-field.mjs +19 -19
- package/fesm2020/novo-elements-elements-field.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-form.mjs +125 -302
- package/fesm2020/novo-elements-elements-form.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-query-builder.mjs +1 -1
- package/fesm2020/novo-elements-elements-query-builder.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-simple-table.mjs +2 -2
- package/fesm2020/novo-elements-elements-simple-table.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-tabbed-group-picker.mjs +1 -1
- package/fesm2020/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-table.mjs +2 -6
- package/fesm2020/novo-elements-elements-table.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-time-picker.mjs +7 -71
- package/fesm2020/novo-elements-elements-time-picker.mjs.map +1 -1
- package/fesm2020/novo-elements-elements.mjs +1 -0
- package/fesm2020/novo-elements-elements.mjs.map +1 -1
- package/fesm2020/novo-elements-services.mjs +158 -46
- package/fesm2020/novo-elements-services.mjs.map +1 -1
- package/fesm2020/novo-elements-utils.mjs +88 -1
- package/fesm2020/novo-elements-utils.mjs.map +1 -1
- package/fesm2020/novo-elements.mjs +8 -2
- package/fesm2020/novo-elements.mjs.map +1 -1
- package/novo-elements.module.d.ts +1 -1
- package/novo-elements.scss +1 -1
- package/package.json +23 -4
- package/services/date-format/DateFormat.d.ts +62 -3
- package/services/global/global.service.d.ts +3 -0
- package/styles/content/root.scss +1 -1
- package/styles/themes/light-test.scss +1 -1
- package/styles/themes/light.scss +1 -1
- package/styles/variables.scss +1 -1
- package/utils/date/index.d.ts +2 -1
- package/utils/date/timezone-support.d.ts +5 -0
|
@@ -54,7 +54,6 @@ export class NovoMultiDateInputElement {
|
|
|
54
54
|
set value(value) {
|
|
55
55
|
if (this.value !== value) {
|
|
56
56
|
this._value = value;
|
|
57
|
-
this._setFormValue(value);
|
|
58
57
|
this.onChangeCallback(this._value);
|
|
59
58
|
}
|
|
60
59
|
}
|
|
@@ -67,16 +66,6 @@ export class NovoMultiDateInputElement {
|
|
|
67
66
|
}
|
|
68
67
|
ngOnInit() {
|
|
69
68
|
this.userDefinedFormat = this.format ? !this.format.match(/^(DD\/MM\/YYYY|MM\/DD\/YYYY)$/g) : false;
|
|
70
|
-
// if (!this.userDefinedFormat && this.textMaskEnabled && !this.allowInvalidDate) {
|
|
71
|
-
// this.maskOptions = this.maskOptions || {
|
|
72
|
-
// mask: this.dateFormatService.getDateMask(),
|
|
73
|
-
// pipe: createAutoCorrectedDatePipe(this.format || this.labels.dateFormatString().toLowerCase()),
|
|
74
|
-
// keepCharPositions: false,
|
|
75
|
-
// guide: true,
|
|
76
|
-
// };
|
|
77
|
-
// } else {
|
|
78
|
-
// this.maskOptions = { mask: false };
|
|
79
|
-
// }
|
|
80
69
|
}
|
|
81
70
|
formatter(value) {
|
|
82
71
|
const [dateTimeValue, formatted] = this.dateFormatService.parseString(value, false, 'date');
|
|
@@ -128,11 +117,6 @@ export class NovoMultiDateInputElement {
|
|
|
128
117
|
registerOnTouched(fn) {
|
|
129
118
|
this.onTouchedCallback = fn;
|
|
130
119
|
}
|
|
131
|
-
_setFormValue(value) {
|
|
132
|
-
if (this.value) {
|
|
133
|
-
// this.formattedStartDate = this.formatDateValue(this.value.startDate);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
120
|
/**
|
|
137
121
|
* This method closes the panel, and if a value is specified, also sets the associated
|
|
138
122
|
* control to that value. It will also mark the control as dirty if this interaction
|
|
@@ -254,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
254
238
|
type: HostBinding,
|
|
255
239
|
args: ['class.disabled']
|
|
256
240
|
}] } });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlEYXRlSW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy9kYXRlLXBpY2tlci9NdWx0aURhdGVJbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxLQUFLO0FBQ0wsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxNQUFNO0FBQ04sT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBTyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBRW5ELHNEQUFzRDtBQUN0RCxNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztJQUN4RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFvQ0YsTUFBTSxPQUFPLHlCQUF5QjtJQTBEcEMsWUFDUyxPQUFtQixFQUNuQixNQUF3QixFQUN2QixHQUFzQixFQUN2QixpQkFBb0M7UUFIcEMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN2QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBN0R0Qyx1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQVcsRUFB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TUFBTTtzQkFETCxLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBR04sU0FBUztzQkFEUixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsTUFBTTtnQkFJUCxPQUFPO3NCQUROLFNBQVM7dUJBQUMsNEJBQTRCO2dCQUc3QixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFNTSxLQUFLO3NCQUFqQixLQUFLO2dCQWNGLFFBQVE7c0JBRlgsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOR1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLy8gQXBwXG5pbXBvcnQgeyBOb3ZvT3ZlcmxheVRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnbm92by1lbGVtZW50cy9lbGVtZW50cy9jb21tb24nO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdFNlcnZpY2UsIE5vdm9MYWJlbFNlcnZpY2UgfSBmcm9tICdub3ZvLWVsZW1lbnRzL3NlcnZpY2VzJztcbmltcG9ydCB7IEhlbHBlcnMsIEtleSB9IGZyb20gJ25vdm8tZWxlbWVudHMvdXRpbHMnO1xuXG4vLyBWYWx1ZSBhY2Nlc3NvciBmb3IgdGhlIGNvbXBvbmVudCAoc3VwcG9ydHMgbmdNb2RlbClcbmNvbnN0IE1VTFRJX0RBVEVfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOb3ZvTXVsdGlEYXRlSW5wdXRFbGVtZW50KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdub3ZvLW11bHRpLWRhdGUtaW5wdXQnLFxuICBwcm92aWRlcnM6IFtNVUxUSV9EQVRFX1ZBTFVFX0FDQ0VTU09SXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bm92by1jaGlwLWxpc3Q+XG4gICAgICA8bm92by1jaGlwICpuZ0Zvcj1cImxldCBkYXRlIG9mIHZhbHVlIHwgZGVmYXVsdDogW11cIiAocmVtb3ZlZCk9XCJyZW1vdmUoJGV2ZW50LCBkYXRlKVwiPlxuICAgICAgICB7eyBkYXRlIHwgZGF0ZTogZm9ybWF0IH19XG4gICAgICAgIDxub3ZvLWljb24gbm92b0NoaXBSZW1vdmU+Y2xvc2U8L25vdm8taWNvbj5cbiAgICAgIDwvbm92by1jaGlwPlxuICAgIDwvbm92by1jaGlwLWxpc3Q+XG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwidmFsdWUubGVuZ3RoID4gY2hpcHNDb3VudFwiPlxuICAgICAgPHVsIGNsYXNzPVwic3VtbWFyeVwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHR5cGUgb2Ygbm90U2hvd25cIj4rIHt7IHR5cGUuY291bnQgfX0ge3sgbGFiZWxzLm1vcmUgfX0ge3sgdHlwZS50eXBlIH19PC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjaGlwLWlucHV0LWNvbnRhaW5lclwiIChjbGljayk9XCJfaGFuZGxlRm9jdXMoJGV2ZW50KVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlclwiICpuZ0lmPVwiIXZhbHVlLmxlbmd0aFwiIGRhdGEtYXV0b21hdGlvbi1pZD1cIm11bHRpLWRhdGUtaW5wdXRcIj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8bm92by1pY29uIGNsYXNzPVwicGFuZWwtdG9nZ2xlXCIgW2NsYXNzLnNlbGVjdGVkXT1cInBhbmVsT3BlblwiIChjbGljayk9XCJvcGVuUGFuZWwoKVwiPmNhbGVuZGFyPC9ub3ZvLWljb24+XG4gICAgPGxhYmVsIGNsYXNzPVwiY2xlYXItYWxsXCIgKm5nSWY9XCJ2YWx1ZS5sZW5ndGhcIiAoY2xpY2spPVwiY2xlYXJWYWx1ZSgpXCI+e3sgbGFiZWxzLmNsZWFyQWxsIH19IDxpIGNsYXNzPVwiYmhpLXRpbWVzXCI+PC9pPjwvbGFiZWw+XG4gICAgPG5vdm8tb3ZlcmxheS10ZW1wbGF0ZSBbcGFyZW50XT1cImVsZW1lbnRcIiBwb3NpdGlvbj1cImFib3ZlLWJlbG93XCI+XG4gICAgICA8bm92by1kYXRlLXBpY2tlclxuICAgICAgICBbc3RhcnRdPVwic3RhcnRcIlxuICAgICAgICBbZW5kXT1cImVuZFwiXG4gICAgICAgIGlubGluZT1cInRydWVcIlxuICAgICAgICBtb2RlPVwibXVsdGlwbGVcIlxuICAgICAgICAob25TZWxlY3QpPVwic2V0VmFsdWVBbmRDbG9zZSgkZXZlbnQpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgIFt3ZWVrU3RhcnRdPVwid2Vla1N0YXJ0XCJcbiAgICAgID48L25vdm8tZGF0ZS1waWNrZXI+XG4gICAgPC9ub3ZvLW92ZXJsYXktdGVtcGxhdGU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL011bHRpRGF0ZUlucHV0LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTm92b011bHRpRGF0ZUlucHV0RWxlbWVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwdWJsaWMgZm9ybWF0dGVkU3RhcnREYXRlOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIGZvcm1hdHRlZEVuZERhdGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIHVzZXJEZWZpbmVkRm9ybWF0OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZztcbiAgQElucHV0KClcbiAgc3RhcnQ6IERhdGU7XG4gIEBJbnB1dCgpXG4gIGVuZDogRGF0ZTtcbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KClcbiAgZm9ybWF0OiBzdHJpbmcgPSAnc2hvcnREYXRlJztcbiAgQElucHV0KClcbiAgYWxsb3dJbnZhbGlkRGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICB3ZWVrU3RhcnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpXG4gIGNoaXBzQ291bnQ6IG51bWJlciA9IDU7XG4gIEBPdXRwdXQoKVxuICBibHVyRXZlbnQ6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgQE91dHB1dCgpXG4gIGZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgLyoqIEVsZW1lbnQgZm9yIHRoZSBwYW5lbCBjb250YWluaW5nIHRoZSBhdXRvY29tcGxldGUgb3B0aW9ucy4gKi9cbiAgQFZpZXdDaGlsZChOb3ZvT3ZlcmxheVRlbXBsYXRlQ29tcG9uZW50KVxuICBvdmVybGF5OiBOb3ZvT3ZlcmxheVRlbXBsYXRlQ29tcG9uZW50O1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IERhdGVbXSA9IFtdO1xuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIG5vdFNob3duOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKSBnZXQgdmFsdWUoKTogRGF0ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cbiAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fc2V0Rm9ybVZhbHVlKHZhbHVlKTtcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLl92YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgU3RhdGVcbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZCcpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSAhIXZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHVibGljIGxhYmVsczogTm92b0xhYmVsU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIGRhdGVGb3JtYXRTZXJ2aWNlOiBEYXRlRm9ybWF0U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMubGFiZWxzLmRhdGVGb3JtYXRTdHJpbmcoKS50b1VwcGVyQ2FzZSgpIHx8IHRoaXMubGFiZWxzLmRhdGVGb3JtYXRQbGFjZWhvbGRlcjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXNlckRlZmluZWRGb3JtYXQgPSB0aGlzLmZvcm1hdCA/ICF0aGlzLmZvcm1hdC5tYXRjaCgvXihERFxcL01NXFwvWVlZWXxNTVxcL0REXFwvWVlZWSkkL2cpIDogZmFsc2U7XG4gICAgLy8gaWYgKCF0aGlzLnVzZXJEZWZpbmVkRm9ybWF0ICYmIHRoaXMudGV4dE1hc2tFbmFibGVkICYmICF0aGlzLmFsbG93SW52YWxpZERhdGUpIHtcbiAgICAvLyAgIHRoaXMubWFza09wdGlvbnMgPSB0aGlzLm1hc2tPcHRpb25zIHx8IHtcbiAgICAvLyAgICAgbWFzazogdGhpcy5kYXRlRm9ybWF0U2VydmljZS5nZXREYXRlTWFzaygpLFxuICAgIC8vICAgICBwaXBlOiBjcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGUodGhpcy5mb3JtYXQgfHwgdGhpcy5sYWJlbHMuZGF0ZUZvcm1hdFN0cmluZygpLnRvTG93ZXJDYXNlKCkpLFxuICAgIC8vICAgICBrZWVwQ2hhclBvc2l0aW9uczogZmFsc2UsXG4gICAgLy8gICAgIGd1aWRlOiB0cnVlLFxuICAgIC8vICAgfTtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgdGhpcy5tYXNrT3B0aW9ucyA9IHsgbWFzazogZmFsc2UgfTtcbiAgICAvLyB9XG4gIH1cblxuICBmb3JtYXR0ZXIodmFsdWUpIHtcbiAgICBjb25zdCBbZGF0ZVRpbWVWYWx1ZSwgZm9ybWF0dGVkXSA9IHRoaXMuZGF0ZUZvcm1hdFNlcnZpY2UucGFyc2VTdHJpbmcodmFsdWUsIGZhbHNlLCAnZGF0ZScpO1xuICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gIH1cblxuICAvKiogQkVHSU46IENvbnZlbmllbnQgUGFuZWwgTWV0aG9kcy4gKi9cbiAgb3BlblBhbmVsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5wYW5lbE9wZW4gPyB0aGlzLm92ZXJsYXkuY2xvc2VQYW5lbCgpIDogdGhpcy5vdmVybGF5Lm9wZW5QYW5lbCgpO1xuICAgIH1cbiAgfVxuICBjbG9zZVBhbmVsKCk6IHZvaWQge1xuICAgIHRoaXMub3ZlcmxheSAmJiB0aGlzLm92ZXJsYXkuY2xvc2VQYW5lbCgpO1xuICB9XG4gIGdldCBwYW5lbE9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheSAmJiB0aGlzLm92ZXJsYXkucGFuZWxPcGVuO1xuICB9XG4gIC8qKiBFTkQ6IENvbnZlbmllbnQgUGFuZWwgTWV0aG9kcy4gKi9cblxuICBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICgoZXZlbnQua2V5ID09PSBLZXkuRXNjYXBlIHx8IGV2ZW50LmtleSA9PT0gS2V5LkVudGVyIHx8IGV2ZW50LmtleSA9PT0gS2V5LlRhYikgJiYgdGhpcy5wYW5lbE9wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgX2hhbmRsZUJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJsdXJFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIF9oYW5kbGVGb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgdGhpcy5mb2N1c0V2ZW50LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcmVtb3ZlKGV2ZW50OiBhbnksIGRhdGU6IERhdGUpIHtcbiAgICBjb25zdCBjdXJyZW50ID0gbmV3IFNldCh0aGlzLnZhbHVlKTtcbiAgICBpZiAoY3VycmVudC5oYXMoZGF0ZSkpIHtcbiAgICAgIGN1cnJlbnQuZGVsZXRlKGRhdGUpO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gWy4uLmN1cnJlbnRdO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjayA9IChfOiBhbnkpID0+IHtcbiAgICAvLyBwbGFjZWhvbGRlclxuICB9O1xuXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgLy8gcGxhY2Vob2xkZXJcbiAgfTtcblxuICBwcml2YXRlIF9zZXRGb3JtVmFsdWUodmFsdWU6IERhdGVbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAvLyB0aGlzLmZvcm1hdHRlZFN0YXJ0RGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZVZhbHVlKHRoaXMudmFsdWUuc3RhcnREYXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgY2xvc2VzIHRoZSBwYW5lbCwgYW5kIGlmIGEgdmFsdWUgaXMgc3BlY2lmaWVkLCBhbHNvIHNldHMgdGhlIGFzc29jaWF0ZWRcbiAgICogY29udHJvbCB0byB0aGF0IHZhbHVlLiBJdCB3aWxsIGFsc28gbWFyayB0aGUgY29udHJvbCBhcyBkaXJ0eSBpZiB0aGlzIGludGVyYWN0aW9uXG4gICAqIHN0ZW1tZWQgZnJvbSB0aGUgdXNlci5cbiAgICovXG4gIHB1YmxpYyBzZXRWYWx1ZUFuZENsb3NlKGV2ZW50OiBEYXRlW10gPSBbXSk6IHZvaWQge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50O1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgLy8gdGhpcy5jbG9zZVBhbmVsKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYW55IHByZXZpb3VzIHNlbGVjdGVkIG9wdGlvbiBhbmQgZW1pdCBhIHNlbGVjdGlvbiBjaGFuZ2UgZXZlbnQgZm9yIHRoaXMgb3B0aW9uXG4gICAqL1xuICBwdWJsaWMgY2xlYXJWYWx1ZSgpIHtcbiAgICB0aGlzLnZhbHVlID0gW107XG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzVmFsdWUoKSB7XG4gICAgcmV0dXJuICFIZWxwZXJzLmlzRW1wdHkodGhpcy52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlEYXRlSW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy9kYXRlLXBpY2tlci9NdWx0aURhdGVJbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxLQUFLO0FBQ0wsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxNQUFNO0FBQ04sT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBTyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBRW5ELHNEQUFzRDtBQUN0RCxNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztJQUN4RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFvQ0YsTUFBTSxPQUFPLHlCQUF5QjtJQTBEcEMsWUFDUyxPQUFtQixFQUNuQixNQUF3QixFQUN2QixHQUFzQixFQUN2QixpQkFBb0M7UUFIcEMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN2QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBN0R0Qyx1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQVcsRUFB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c0JBQWpCLEtBQUs7Z0JBYUYsUUFBUTtzQkFGWCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5HXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vLyBBcHBcbmltcG9ydCB7IE5vdm9PdmVybGF5VGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdub3ZvLWVsZW1lbnRzL2VsZW1lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBEYXRlRm9ybWF0U2VydmljZSwgTm92b0xhYmVsU2VydmljZSB9IGZyb20gJ25vdm8tZWxlbWVudHMvc2VydmljZXMnO1xuaW1wb3J0IHsgSGVscGVycywgS2V5IH0gZnJvbSAnbm92by1lbGVtZW50cy91dGlscyc7XG5cbi8vIFZhbHVlIGFjY2Vzc29yIGZvciB0aGUgY29tcG9uZW50IChzdXBwb3J0cyBuZ01vZGVsKVxuY29uc3QgTVVMVElfREFURV9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5vdm9NdWx0aURhdGVJbnB1dEVsZW1lbnQpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25vdm8tbXVsdGktZGF0ZS1pbnB1dCcsXG4gIHByb3ZpZGVyczogW01VTFRJX0RBVEVfVkFMVUVfQUNDRVNTT1JdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxub3ZvLWNoaXAtbGlzdD5cbiAgICAgIDxub3ZvLWNoaXAgKm5nRm9yPVwibGV0IGRhdGUgb2YgdmFsdWUgfCBkZWZhdWx0OiBbXVwiIChyZW1vdmVkKT1cInJlbW92ZSgkZXZlbnQsIGRhdGUpXCI+XG4gICAgICAgIHt7IGRhdGUgfCBkYXRlOiBmb3JtYXQgfX1cbiAgICAgICAgPG5vdm8taWNvbiBub3ZvQ2hpcFJlbW92ZT5jbG9zZTwvbm92by1pY29uPlxuICAgICAgPC9ub3ZvLWNoaXA+XG4gICAgPC9ub3ZvLWNoaXAtbGlzdD5cbiAgICA8IS0tIDxkaXYgKm5nSWY9XCJ2YWx1ZS5sZW5ndGggPiBjaGlwc0NvdW50XCI+XG4gICAgICA8dWwgY2xhc3M9XCJzdW1tYXJ5XCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdHlwZSBvZiBub3RTaG93blwiPisge3sgdHlwZS5jb3VudCB9fSB7eyBsYWJlbHMubW9yZSB9fSB7eyB0eXBlLnR5cGUgfX08L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj4gLS0+XG4gICAgPGRpdiBjbGFzcz1cImNoaXAtaW5wdXQtY29udGFpbmVyXCIgKGNsaWNrKT1cIl9oYW5kbGVGb2N1cygkZXZlbnQpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInBsYWNlaG9sZGVyXCIgKm5nSWY9XCIhdmFsdWUubGVuZ3RoXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibXVsdGktZGF0ZS1pbnB1dFwiPnt7IHBsYWNlaG9sZGVyIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxub3ZvLWljb24gY2xhc3M9XCJwYW5lbC10b2dnbGVcIiBbY2xhc3Muc2VsZWN0ZWRdPVwicGFuZWxPcGVuXCIgKGNsaWNrKT1cIm9wZW5QYW5lbCgpXCI+Y2FsZW5kYXI8L25vdm8taWNvbj5cbiAgICA8bGFiZWwgY2xhc3M9XCJjbGVhci1hbGxcIiAqbmdJZj1cInZhbHVlLmxlbmd0aFwiIChjbGljayk9XCJjbGVhclZhbHVlKClcIj57eyBsYWJlbHMuY2xlYXJBbGwgfX0gPGkgY2xhc3M9XCJiaGktdGltZXNcIj48L2k+PC9sYWJlbD5cbiAgICA8bm92by1vdmVybGF5LXRlbXBsYXRlIFtwYXJlbnRdPVwiZWxlbWVudFwiIHBvc2l0aW9uPVwiYWJvdmUtYmVsb3dcIj5cbiAgICAgIDxub3ZvLWRhdGUtcGlja2VyXG4gICAgICAgIFtzdGFydF09XCJzdGFydFwiXG4gICAgICAgIFtlbmRdPVwiZW5kXCJcbiAgICAgICAgaW5saW5lPVwidHJ1ZVwiXG4gICAgICAgIG1vZGU9XCJtdWx0aXBsZVwiXG4gICAgICAgIChvblNlbGVjdCk9XCJzZXRWYWx1ZUFuZENsb3NlKCRldmVudClcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgW3dlZWtTdGFydF09XCJ3ZWVrU3RhcnRcIlxuICAgICAgPjwvbm92by1kYXRlLXBpY2tlcj5cbiAgICA8L25vdm8tb3ZlcmxheS10ZW1wbGF0ZT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vTXVsdGlEYXRlSW5wdXQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvTXVsdGlEYXRlSW5wdXRFbGVtZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHB1YmxpYyBmb3JtYXR0ZWRTdGFydERhdGU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgZm9ybWF0dGVkRW5kRGF0ZTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgdXNlckRlZmluZWRGb3JtYXQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBzdGFydDogRGF0ZTtcbiAgQElucHV0KClcbiAgZW5kOiBEYXRlO1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKVxuICBmb3JtYXQ6IHN0cmluZyA9ICdzaG9ydERhdGUnO1xuICBASW5wdXQoKVxuICBhbGxvd0ludmFsaWREYXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIHdlZWtTdGFydDogbnVtYmVyID0gMDtcbiAgQElucHV0KClcbiAgY2hpcHNDb3VudDogbnVtYmVyID0gNTtcbiAgQE91dHB1dCgpXG4gIGJsdXJFdmVudDogRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICBAT3V0cHV0KClcbiAgZm9jdXNFdmVudDogRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuXG4gIC8qKiBFbGVtZW50IGZvciB0aGUgcGFuZWwgY29udGFpbmluZyB0aGUgYXV0b2NvbXBsZXRlIG9wdGlvbnMuICovXG4gIEBWaWV3Q2hpbGQoTm92b092ZXJsYXlUZW1wbGF0ZUNvbXBvbmVudClcbiAgb3ZlcmxheTogTm92b092ZXJsYXlUZW1wbGF0ZUNvbXBvbmVudDtcblxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBEYXRlW10gPSBbXTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBub3RTaG93bjogYW55ID0ge307XG5cbiAgQElucHV0KCkgZ2V0IHZhbHVlKCk6IERhdGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHNldCB2YWx1ZSh2YWx1ZSkge1xuICAgIGlmICh0aGlzLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLl92YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgU3RhdGVcbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZCcpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSAhIXZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHVibGljIGxhYmVsczogTm92b0xhYmVsU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIGRhdGVGb3JtYXRTZXJ2aWNlOiBEYXRlRm9ybWF0U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMubGFiZWxzLmRhdGVGb3JtYXRTdHJpbmcoKS50b1VwcGVyQ2FzZSgpIHx8IHRoaXMubGFiZWxzLmRhdGVGb3JtYXRQbGFjZWhvbGRlcjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXNlckRlZmluZWRGb3JtYXQgPSB0aGlzLmZvcm1hdCA/ICF0aGlzLmZvcm1hdC5tYXRjaCgvXihERFxcL01NXFwvWVlZWXxNTVxcL0REXFwvWVlZWSkkL2cpIDogZmFsc2U7XG4gIH1cblxuICBmb3JtYXR0ZXIodmFsdWUpIHtcbiAgICBjb25zdCBbZGF0ZVRpbWVWYWx1ZSwgZm9ybWF0dGVkXSA9IHRoaXMuZGF0ZUZvcm1hdFNlcnZpY2UucGFyc2VTdHJpbmcodmFsdWUsIGZhbHNlLCAnZGF0ZScpO1xuICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gIH1cblxuICAvKiogQkVHSU46IENvbnZlbmllbnQgUGFuZWwgTWV0aG9kcy4gKi9cbiAgb3BlblBhbmVsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5wYW5lbE9wZW4gPyB0aGlzLm92ZXJsYXkuY2xvc2VQYW5lbCgpIDogdGhpcy5vdmVybGF5Lm9wZW5QYW5lbCgpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlUGFuZWwoKTogdm9pZCB7XG4gICAgdGhpcy5vdmVybGF5ICYmIHRoaXMub3ZlcmxheS5jbG9zZVBhbmVsKCk7XG4gIH1cblxuICBnZXQgcGFuZWxPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkgJiYgdGhpcy5vdmVybGF5LnBhbmVsT3BlbjtcbiAgfVxuICAvKiogRU5EOiBDb252ZW5pZW50IFBhbmVsIE1ldGhvZHMuICovXG5cbiAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoKGV2ZW50LmtleSA9PT0gS2V5LkVzY2FwZSB8fCBldmVudC5rZXkgPT09IEtleS5FbnRlciB8fCBldmVudC5rZXkgPT09IEtleS5UYWIpICYmIHRoaXMucGFuZWxPcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIF9oYW5kbGVCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5ibHVyRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICBfaGFuZGxlRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5QYW5lbCgpO1xuICAgIHRoaXMuZm9jdXNFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHJlbW92ZShldmVudDogYW55LCBkYXRlOiBEYXRlKSB7XG4gICAgY29uc3QgY3VycmVudCA9IG5ldyBTZXQodGhpcy52YWx1ZSk7XG4gICAgaWYgKGN1cnJlbnQuaGFzKGRhdGUpKSB7XG4gICAgICBjdXJyZW50LmRlbGV0ZShkYXRlKTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IFsuLi5jdXJyZW50XTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2sgPSAoXzogYW55KSA9PiB7XG4gICAgLy8gcGxhY2Vob2xkZXJcbiAgfTtcblxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrID0gKCkgPT4ge1xuICAgIC8vIHBsYWNlaG9sZGVyXG4gIH07XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGNsb3NlcyB0aGUgcGFuZWwsIGFuZCBpZiBhIHZhbHVlIGlzIHNwZWNpZmllZCwgYWxzbyBzZXRzIHRoZSBhc3NvY2lhdGVkXG4gICAqIGNvbnRyb2wgdG8gdGhhdCB2YWx1ZS4gSXQgd2lsbCBhbHNvIG1hcmsgdGhlIGNvbnRyb2wgYXMgZGlydHkgaWYgdGhpcyBpbnRlcmFjdGlvblxuICAgKiBzdGVtbWVkIGZyb20gdGhlIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgc2V0VmFsdWVBbmRDbG9zZShldmVudDogRGF0ZVtdID0gW10pOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBldmVudDtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIC8vIHRoaXMuY2xvc2VQYW5lbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFueSBwcmV2aW91cyBzZWxlY3RlZCBvcHRpb24gYW5kIGVtaXQgYSBzZWxlY3Rpb24gY2hhbmdlIGV2ZW50IGZvciB0aGlzIG9wdGlvblxuICAgKi9cbiAgcHVibGljIGNsZWFyVmFsdWUoKSB7XG4gICAgdGhpcy52YWx1ZSA9IFtdO1xuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1ZhbHVlKCkge1xuICAgIHJldHVybiAhSGVscGVycy5pc0VtcHR5KHRoaXMudmFsdWUpO1xuICB9XG59XG4iXX0=
|
|
@@ -4,7 +4,6 @@ import { NgModule } from '@angular/core';
|
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
// Vendor
|
|
6
6
|
import { IMaskDirectiveModule } from 'angular-imask';
|
|
7
|
-
import { TextMaskModule } from 'angular2-text-mask';
|
|
8
7
|
// APP
|
|
9
8
|
import { NovoOverlayModule } from 'novo-elements/elements/common';
|
|
10
9
|
import { NovoDatePickerModule } from 'novo-elements/elements/date-picker';
|
|
@@ -15,14 +14,14 @@ import * as i0 from "@angular/core";
|
|
|
15
14
|
export class NovoDateTimePickerModule {
|
|
16
15
|
}
|
|
17
16
|
NovoDateTimePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
-
NovoDateTimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDateTimePickerModule, declarations: [NovoDateTimePickerElement, NovoDateTimePickerInputElement], imports: [CommonModule, FormsModule, NovoDatePickerModule, NovoTimePickerModule, IMaskDirectiveModule,
|
|
19
|
-
NovoDateTimePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDateTimePickerModule, imports: [[CommonModule, FormsModule, NovoDatePickerModule, NovoTimePickerModule, IMaskDirectiveModule,
|
|
17
|
+
NovoDateTimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDateTimePickerModule, declarations: [NovoDateTimePickerElement, NovoDateTimePickerInputElement], imports: [CommonModule, FormsModule, NovoDatePickerModule, NovoTimePickerModule, IMaskDirectiveModule, NovoOverlayModule], exports: [NovoDateTimePickerElement, NovoDateTimePickerInputElement] });
|
|
18
|
+
NovoDateTimePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDateTimePickerModule, imports: [[CommonModule, FormsModule, NovoDatePickerModule, NovoTimePickerModule, IMaskDirectiveModule, NovoOverlayModule]] });
|
|
20
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDateTimePickerModule, decorators: [{
|
|
21
20
|
type: NgModule,
|
|
22
21
|
args: [{
|
|
23
|
-
imports: [CommonModule, FormsModule, NovoDatePickerModule, NovoTimePickerModule, IMaskDirectiveModule,
|
|
22
|
+
imports: [CommonModule, FormsModule, NovoDatePickerModule, NovoTimePickerModule, IMaskDirectiveModule, NovoOverlayModule],
|
|
24
23
|
declarations: [NovoDateTimePickerElement, NovoDateTimePickerInputElement],
|
|
25
24
|
exports: [NovoDateTimePickerElement, NovoDateTimePickerInputElement],
|
|
26
25
|
}]
|
|
27
26
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVRpbWVQaWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvZGF0ZS10aW1lLXBpY2tlci9EYXRlVGltZVBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxTQUFTO0FBQ1QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE1BQU07QUFDTixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPdkUsTUFBTSxPQUFPLHdCQUF3Qjs7c0hBQXhCLHdCQUF3Qjt1SEFBeEIsd0JBQXdCLGlCQUhwQix5QkFBeUIsRUFBRSw4QkFBOEIsYUFEOUQsWUFBWSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsYUFFOUcseUJBQXlCLEVBQUUsOEJBQThCO3VIQUV4RCx3QkFBd0IsWUFKMUIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDOzRGQUk5Ryx3QkFBd0I7a0JBTHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDekgsWUFBWSxFQUFFLENBQUMseUJBQXlCLEVBQUUsOEJBQThCLENBQUM7b0JBQ3pFLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixFQUFFLDhCQUE4QixDQUFDO2lCQUNyRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5HMlxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8vIFZlbmRvclxuaW1wb3J0IHsgSU1hc2tEaXJlY3RpdmVNb2R1bGUgfSBmcm9tICdhbmd1bGFyLWltYXNrJztcbi8vIEFQUFxuaW1wb3J0IHsgTm92b092ZXJsYXlNb2R1bGUgfSBmcm9tICdub3ZvLWVsZW1lbnRzL2VsZW1lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBOb3ZvRGF0ZVBpY2tlck1vZHVsZSB9IGZyb20gJ25vdm8tZWxlbWVudHMvZWxlbWVudHMvZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgTm92b1RpbWVQaWNrZXJNb2R1bGUgfSBmcm9tICdub3ZvLWVsZW1lbnRzL2VsZW1lbnRzL3RpbWUtcGlja2VyJztcbmltcG9ydCB7IE5vdm9EYXRlVGltZVBpY2tlckVsZW1lbnQgfSBmcm9tICcuL0RhdGVUaW1lUGlja2VyJztcbmltcG9ydCB7IE5vdm9EYXRlVGltZVBpY2tlcklucHV0RWxlbWVudCB9IGZyb20gJy4vRGF0ZVRpbWVQaWNrZXJJbnB1dCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBOb3ZvRGF0ZVBpY2tlck1vZHVsZSwgTm92b1RpbWVQaWNrZXJNb2R1bGUsIElNYXNrRGlyZWN0aXZlTW9kdWxlLCBOb3ZvT3ZlcmxheU1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW05vdm9EYXRlVGltZVBpY2tlckVsZW1lbnQsIE5vdm9EYXRlVGltZVBpY2tlcklucHV0RWxlbWVudF0sXG4gIGV4cG9ydHM6IFtOb3ZvRGF0ZVRpbWVQaWNrZXJFbGVtZW50LCBOb3ZvRGF0ZVRpbWVQaWNrZXJJbnB1dEVsZW1lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvRGF0ZVRpbWVQaWNrZXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2 } from '@angular/core';
|
|
2
|
+
import { ReplaySubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NovoDragBoxParent {
|
|
5
|
+
constructor(elementRef, renderer) {
|
|
6
|
+
this.elementRef = elementRef;
|
|
7
|
+
this.renderer = renderer;
|
|
8
|
+
this.$destroy = new ReplaySubject(1);
|
|
9
|
+
this.novoDragDropFinish = new EventEmitter();
|
|
10
|
+
this.mutationObserver = new MutationObserver(this.mutationDetected.bind(this));
|
|
11
|
+
}
|
|
12
|
+
get itemsReordered() {
|
|
13
|
+
return this.trackedItems.map(item => item.item);
|
|
14
|
+
}
|
|
15
|
+
get element() {
|
|
16
|
+
return this.elementRef.nativeElement;
|
|
17
|
+
}
|
|
18
|
+
ngAfterViewInit() {
|
|
19
|
+
this.registerChildren();
|
|
20
|
+
this.mutationObserver.observe(this.element, { childList: true });
|
|
21
|
+
}
|
|
22
|
+
ngOnDestroy() {
|
|
23
|
+
this.$destroy.next();
|
|
24
|
+
this.$destroy.complete();
|
|
25
|
+
}
|
|
26
|
+
registerChildren() {
|
|
27
|
+
if (this.items && this.items.length !== this.element.children.length) {
|
|
28
|
+
throw new Error(`Could not match item list to children list - drag box contains ${this.items.length} items, but has ${this.element.children.length} elements`);
|
|
29
|
+
}
|
|
30
|
+
this.trackedItems = [];
|
|
31
|
+
for (let i = 0; i < this.element.children.length; i++) {
|
|
32
|
+
this.registerChild(this.element.children[i], i);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
registerChild(element, index) {
|
|
36
|
+
const listeners = [
|
|
37
|
+
this.renderer.listen(element, 'dragstart', this.onDragStart.bind(this)),
|
|
38
|
+
this.renderer.listen(element, 'drop', this.onDragFinish.bind(this)),
|
|
39
|
+
this.renderer.listen(element, 'dragend', this.onDragStop.bind(this))
|
|
40
|
+
];
|
|
41
|
+
element.draggable = true;
|
|
42
|
+
this.$destroy.subscribe(() => listeners.forEach(cb => cb()));
|
|
43
|
+
this.trackedItems.push({
|
|
44
|
+
item: this.items[index],
|
|
45
|
+
element
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
mutationDetected(mutations) {
|
|
49
|
+
if (this.pickedUp) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const addedNodes = new Set();
|
|
53
|
+
const removedNodes = new Set();
|
|
54
|
+
for (let mutation of mutations) {
|
|
55
|
+
mutation.addedNodes.forEach((a) => {
|
|
56
|
+
if (!removedNodes.delete(a)) {
|
|
57
|
+
addedNodes.add(a);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
mutation.removedNodes.forEach((a) => {
|
|
61
|
+
if (!addedNodes.delete(a)) {
|
|
62
|
+
removedNodes.add(a);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
addedNodes.forEach(node => {
|
|
67
|
+
const idx = Array.prototype.indexOf.call(this.element.children, node);
|
|
68
|
+
this.registerChild(node, idx);
|
|
69
|
+
});
|
|
70
|
+
if (removedNodes.size > 0) {
|
|
71
|
+
this.trackedItems = this.trackedItems.filter(item => !removedNodes.has(item.element));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/** Per-item listeners */
|
|
75
|
+
onDragStart(event) {
|
|
76
|
+
if (this.shouldBlockDragStart(event)) {
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const dataTransfer = event.dataTransfer;
|
|
81
|
+
// Present a native 'move item' effect
|
|
82
|
+
dataTransfer.effectAllowed = 'move';
|
|
83
|
+
this.pickedUp = event.target;
|
|
84
|
+
event.stopPropagation();
|
|
85
|
+
this.savedOrder = [...this.trackedItems];
|
|
86
|
+
}
|
|
87
|
+
// Equivalent of "finally" - this runs whether or not the drag finished on a valid ending location
|
|
88
|
+
onDragStop(event) {
|
|
89
|
+
this.pickedUp = null;
|
|
90
|
+
this.savedOrder = null;
|
|
91
|
+
event.stopPropagation();
|
|
92
|
+
}
|
|
93
|
+
onDragFinish(event) {
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
event.stopPropagation();
|
|
96
|
+
if (!this.element.contains(event.currentTarget)) {
|
|
97
|
+
// this is for a different drag region - ignore
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const draggedItem = this.trackedItems.find(item => item.element === this.pickedUp)?.item;
|
|
101
|
+
this.trackedItems = Array.prototype.map.call(this.element.children, child => {
|
|
102
|
+
const item = this.trackedItems.find(item => item.element === child);
|
|
103
|
+
if (!item) {
|
|
104
|
+
throw new Error('DragDrop: Error - could not reassociate an item post-drag');
|
|
105
|
+
}
|
|
106
|
+
return item;
|
|
107
|
+
});
|
|
108
|
+
this.novoDragDropFinish.emit({
|
|
109
|
+
draggedItem,
|
|
110
|
+
allItems: this.itemsReordered,
|
|
111
|
+
event
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/** - end per-item listeners */
|
|
115
|
+
onDragOver(event) {
|
|
116
|
+
if (!this.pickedUp) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
let target = event.target;
|
|
120
|
+
if (!this.element.contains(target)) {
|
|
121
|
+
target = null;
|
|
122
|
+
}
|
|
123
|
+
// In some cases (maybe browser-specific) we may have this event reported from a sub-element of a drag destination.
|
|
124
|
+
// We need to go upwards in the tree to find the actual target
|
|
125
|
+
if (target && !target.draggable) {
|
|
126
|
+
target = this.findDraggableParentOfElement(target);
|
|
127
|
+
}
|
|
128
|
+
// Check if this drag event is within this drag box
|
|
129
|
+
if (target && target.parentElement === this.element) {
|
|
130
|
+
event.stopPropagation();
|
|
131
|
+
event.preventDefault();
|
|
132
|
+
if (event.dataTransfer) {
|
|
133
|
+
event.dataTransfer.dropEffect = 'move';
|
|
134
|
+
}
|
|
135
|
+
this.applyTempSort(this.pickedUp, target);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
// if not within this drag box, then move this item back to its original position and show a diabled drag effect
|
|
139
|
+
if (event.dataTransfer) {
|
|
140
|
+
event.dataTransfer.dropEffect = 'none';
|
|
141
|
+
}
|
|
142
|
+
this.resetSorting();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
findDraggableParentOfElement(target) {
|
|
146
|
+
const parentElement = target.parentElement;
|
|
147
|
+
if (!parentElement) {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
else if (parentElement.draggable) {
|
|
151
|
+
return parentElement;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
return this.findDraggableParentOfElement(parentElement);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
applyTempSort(showXElement, inPlaceOfY) {
|
|
158
|
+
if (showXElement === inPlaceOfY) {
|
|
159
|
+
// same element - ignoring
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
// Apply the "preview" effect from dragging one item to another
|
|
163
|
+
const aIndex = Array.prototype.indexOf.call(this.elementRef.nativeElement.children, showXElement);
|
|
164
|
+
const bIndex = Array.prototype.indexOf.call(this.elementRef.nativeElement.children, inPlaceOfY);
|
|
165
|
+
const diff = bIndex - aIndex;
|
|
166
|
+
let insertPosition;
|
|
167
|
+
if (diff > 0) {
|
|
168
|
+
insertPosition = 'afterend';
|
|
169
|
+
}
|
|
170
|
+
else if (diff < 0) {
|
|
171
|
+
insertPosition = 'beforebegin';
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
throw new Error('DragDrop: Two elements are in the same position');
|
|
175
|
+
}
|
|
176
|
+
inPlaceOfY.insertAdjacentElement(insertPosition, showXElement);
|
|
177
|
+
}
|
|
178
|
+
resetSorting() {
|
|
179
|
+
// return to the order of elements from the last time we called onDragPickup
|
|
180
|
+
if (!this.savedOrder) {
|
|
181
|
+
throw new Error('DragDrop: Cannot reset sorting with no saved order');
|
|
182
|
+
}
|
|
183
|
+
const boxElem = this.elementRef.nativeElement;
|
|
184
|
+
for (let i = 0; i < boxElem.children.length; i++) {
|
|
185
|
+
const item = boxElem.children[i];
|
|
186
|
+
if (this.savedOrder[i].element !== item && i > 0) {
|
|
187
|
+
this.savedOrder[i - 1].element.insertAdjacentElement('afterend', this.savedOrder[i].element);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// If the user has provided classes indicating they only want a certain region to be draggable, ignore
|
|
192
|
+
// this drag event if it is outside of there.
|
|
193
|
+
shouldBlockDragStart(event) {
|
|
194
|
+
const dragTarget = event.target;
|
|
195
|
+
// TODO: Allow for multiple drag targets, and drag exclusion targets
|
|
196
|
+
const userDragTarget = dragTarget.querySelector('.novo-drag-target');
|
|
197
|
+
if (userDragTarget) {
|
|
198
|
+
return !this.isElementWithinEventBounds(userDragTarget, event);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
isElementWithinEventBounds(element, event) {
|
|
202
|
+
const rect = element.getBoundingClientRect();
|
|
203
|
+
const isInside = event.clientX > rect.left && event.clientX < rect.right &&
|
|
204
|
+
event.clientY < rect.bottom && event.clientY > rect.top;
|
|
205
|
+
return isInside;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
NovoDragBoxParent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDragBoxParent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
209
|
+
NovoDragBoxParent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: NovoDragBoxParent, selector: "[novoDragDrop]", inputs: { items: ["novoDragDrop", "items"] }, outputs: { novoDragDropFinish: "novoDragDropFinish" }, host: { listeners: { "window:dragover": "onDragOver($event)" } }, ngImport: i0 });
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDragBoxParent, decorators: [{
|
|
211
|
+
type: Directive,
|
|
212
|
+
args: [{
|
|
213
|
+
selector: '[novoDragDrop]'
|
|
214
|
+
}]
|
|
215
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { items: [{
|
|
216
|
+
type: Input,
|
|
217
|
+
args: ['novoDragDrop']
|
|
218
|
+
}], novoDragDropFinish: [{
|
|
219
|
+
type: Output
|
|
220
|
+
}], onDragOver: [{
|
|
221
|
+
type: HostListener,
|
|
222
|
+
args: ['window:dragover', ['$event']]
|
|
223
|
+
}] } });
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLWJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL2RyYWctZHJvcC9kcmFnLWRyb3AtYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBZ0JyQyxNQUFNLE9BQU8saUJBQWlCO0lBbUIxQixZQUFvQixVQUFzQixFQUFVLFFBQW1CO1FBQW5ELGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBZHZFLGFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztRQUk1Qix1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQVExRSxxQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUVDLENBQUM7SUFONUUsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBTUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVB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QkFBZ0I7aUJBQzdCO3lIQVEwQixLQUFLO3NCQUEzQixLQUFLO3VCQUFDLGNBQWM7Z0JBRVgsa0JBQWtCO3NCQUEzQixNQUFNO2dCQStIUCxVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vdm9EcmFnRmluaXNoRXZlbnQ8VD4ge1xuICAgIGRyYWdnZWRJdGVtOiBUO1xuICAgIGFsbEl0ZW1zOiBUW107XG4gICAgZXZlbnQ6IERyYWdFdmVudDtcbn1cblxuaW50ZXJmYWNlIE5vdm9EcmFnSXRlbTxUPiB7XG4gICAgaXRlbTogVDtcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbm92b0RyYWdEcm9wXSdcbn0pXG5leHBvcnQgY2xhc3MgTm92b0RyYWdCb3hQYXJlbnQ8VD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcGlja2VkVXA/OiBIVE1MRWxlbWVudDtcbiAgICBzYXZlZE9yZGVyPzogTm92b0RyYWdJdGVtPFQ+W107XG5cbiAgICAkZGVzdHJveSA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuXG4gICAgQElucHV0KCdub3ZvRHJhZ0Ryb3AnKSBpdGVtczogVFtdO1xuXG4gICAgQE91dHB1dCgpIG5vdm9EcmFnRHJvcEZpbmlzaCA9IG5ldyBFdmVudEVtaXR0ZXI8Tm92b0RyYWdGaW5pc2hFdmVudDxUPj4oKTtcblxuICAgIHByaXZhdGUgdHJhY2tlZEl0ZW1zOiBOb3ZvRHJhZ0l0ZW08VD5bXTtcblxuICAgIGdldCBpdGVtc1Jlb3JkZXJlZCgpOiBUW10ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFja2VkSXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5pdGVtKTtcbiAgICB9XG5cbiAgICBtdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5tdXRhdGlvbkRldGVjdGVkLmJpbmQodGhpcykpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxuXG4gICAgZ2V0IGVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuICAgIFxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlckNoaWxkcmVuKCk7XG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudCwgeyBjaGlsZExpc3Q6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuJGRlc3Ryb3kubmV4dCgpO1xuICAgICAgICB0aGlzLiRkZXN0cm95LmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckNoaWxkcmVuKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCAhPT0gdGhpcy5lbGVtZW50LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgbWF0Y2ggaXRlbSBsaXN0IHRvIGNoaWxkcmVuIGxpc3QgLSBkcmFnIGJveCBjb250YWlucyAke3RoaXMuaXRlbXMubGVuZ3RofSBpdGVtcywgYnV0IGhhcyAke3RoaXMuZWxlbWVudC5jaGlsZHJlbi5sZW5ndGh9IGVsZW1lbnRzYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50cmFja2VkSXRlbXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJDaGlsZCh0aGlzLmVsZW1lbnQuY2hpbGRyZW5baV0gYXMgSFRNTEVsZW1lbnQsIGkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJDaGlsZChlbGVtZW50OiBIVE1MRWxlbWVudCwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBsaXN0ZW5lcnMgPSBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihlbGVtZW50LCAnZHJhZ3N0YXJ0JywgdGhpcy5vbkRyYWdTdGFydC5iaW5kKHRoaXMpKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGVsZW1lbnQsICdkcm9wJywgdGhpcy5vbkRyYWdGaW5pc2guYmluZCh0aGlzKSksXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihlbGVtZW50LCAnZHJhZ2VuZCcsIHRoaXMub25EcmFnU3RvcC5iaW5kKHRoaXMpKVxuICAgICAgICBdO1xuICAgICAgICBlbGVtZW50LmRyYWdnYWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuJGRlc3Ryb3kuc3Vic2NyaWJlKCgpID0+IGxpc3RlbmVycy5mb3JFYWNoKGNiID0+IGNiKCkpKTtcbiAgICAgICAgdGhpcy50cmFja2VkSXRlbXMucHVzaCh7XG4gICAgICAgICAgICBpdGVtOiB0aGlzLml0ZW1zW2luZGV4XSxcbiAgICAgICAgICAgIGVsZW1lbnRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbXV0YXRpb25EZXRlY3RlZChtdXRhdGlvbnM6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICAgICAgaWYgKHRoaXMucGlja2VkVXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhZGRlZE5vZGVzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZE5vZGVzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcbiAgICAgICAgZm9yIChsZXQgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgICAgICBtdXRhdGlvbi5hZGRlZE5vZGVzLmZvckVhY2goKGE6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZW1vdmVkTm9kZXMuZGVsZXRlKGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZGVkTm9kZXMuYWRkKGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbXV0YXRpb24ucmVtb3ZlZE5vZGVzLmZvckVhY2goKGE6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFhZGRlZE5vZGVzLmRlbGV0ZShhKSkge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVkTm9kZXMuYWRkKGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGFkZGVkTm9kZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodGhpcy5lbGVtZW50LmNoaWxkcmVuLCBub2RlKTtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJDaGlsZChub2RlLCBpZHgpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlbW92ZWROb2Rlcy5zaXplID4gMCkge1xuICAgICAgICAgICAgdGhpcy50cmFja2VkSXRlbXMgPSB0aGlzLnRyYWNrZWRJdGVtcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgaXRlbSA9PiAhcmVtb3ZlZE5vZGVzLmhhcyhpdGVtLmVsZW1lbnQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBQZXItaXRlbSBsaXN0ZW5lcnMgKi9cblxuICAgIG9uRHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkQmxvY2tEcmFnU3RhcnQoZXZlbnQpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGFUcmFuc2ZlciA9IGV2ZW50LmRhdGFUcmFuc2ZlcjtcbiAgICAgICAgLy8gUHJlc2VudCBhIG5hdGl2ZSAnbW92ZSBpdGVtJyBlZmZlY3RcbiAgICAgICAgZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAnbW92ZSc7XG4gICAgICAgIHRoaXMucGlja2VkVXAgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnNhdmVkT3JkZXIgPSBbLi4udGhpcy50cmFja2VkSXRlbXNdO1xuICAgIH1cblxuICAgIC8vIEVxdWl2YWxlbnQgb2YgXCJmaW5hbGx5XCIgLSB0aGlzIHJ1bnMgd2hldGhlciBvciBub3QgdGhlIGRyYWcgZmluaXNoZWQgb24gYSB2YWxpZCBlbmRpbmcgbG9jYXRpb25cbiAgICBvbkRyYWdTdG9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waWNrZWRVcCA9IG51bGw7XG4gICAgICAgIHRoaXMuc2F2ZWRPcmRlciA9IG51bGw7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIG9uRHJhZ0ZpbmlzaChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudC5jb250YWlucyhldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBmb3IgYSBkaWZmZXJlbnQgZHJhZyByZWdpb24gLSBpZ25vcmVcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkcmFnZ2VkSXRlbSA9IHRoaXMudHJhY2tlZEl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmVsZW1lbnQgPT09IHRoaXMucGlja2VkVXApPy5pdGVtO1xuICAgICAgICB0aGlzLnRyYWNrZWRJdGVtcyA9IEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbCh0aGlzLmVsZW1lbnQuY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnRyYWNrZWRJdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5lbGVtZW50ID09PSBjaGlsZCk7XG4gICAgICAgICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RyYWdEcm9wOiBFcnJvciAtIGNvdWxkIG5vdCByZWFzc29jaWF0ZSBhbiBpdGVtIHBvc3QtZHJhZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm5vdm9EcmFnRHJvcEZpbmlzaC5lbWl0KHtcbiAgICAgICAgICAgIGRyYWdnZWRJdGVtLFxuICAgICAgICAgICAgYWxsSXRlbXM6IHRoaXMuaXRlbXNSZW9yZGVyZWQsXG4gICAgICAgICAgICBldmVudFxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgfVxuICAgIFxuICAgIC8qKiAtIGVuZCBwZXItaXRlbSBsaXN0ZW5lcnMgKi9cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpkcmFnb3ZlcicsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5waWNrZWRVcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgICAgIHRhcmdldCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSW4gc29tZSBjYXNlcyAobWF5YmUgYnJvd3Nlci1zcGVjaWZpYykgd2UgbWF5IGhhdmUgdGhpcyBldmVudCByZXBvcnRlZCBmcm9tIGEgc3ViLWVsZW1lbnQgb2YgYSBkcmFnIGRlc3RpbmF0aW9uLlxuICAgICAgICAvLyBXZSBuZWVkIHRvIGdvIHVwd2FyZHMgaW4gdGhlIHRyZWUgdG8gZmluZCB0aGUgYWN0dWFsIHRhcmdldFxuICAgICAgICBpZiAodGFyZ2V0ICYmICF0YXJnZXQuZHJhZ2dhYmxlKSB7XG4gICAgICAgICAgICB0YXJnZXQgPSB0aGlzLmZpbmREcmFnZ2FibGVQYXJlbnRPZkVsZW1lbnQodGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGRyYWcgZXZlbnQgaXMgd2l0aGluIHRoaXMgZHJhZyBib3hcbiAgICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQucGFyZW50RWxlbWVudCA9PT0gdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnbW92ZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFwcGx5VGVtcFNvcnQodGhpcy5waWNrZWRVcCwgdGFyZ2V0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGlmIG5vdCB3aXRoaW4gdGhpcyBkcmFnIGJveCwgdGhlbiBtb3ZlIHRoaXMgaXRlbSBiYWNrIHRvIGl0cyBvcmlnaW5hbCBwb3NpdGlvbiBhbmQgc2hvdyBhIGRpYWJsZWQgZHJhZyBlZmZlY3RcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIpIHtcbiAgICAgICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmVzZXRTb3J0aW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmREcmFnZ2FibGVQYXJlbnRPZkVsZW1lbnQodGFyZ2V0OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0YXJnZXQucGFyZW50RWxlbWVudDtcbiAgICAgICAgaWYgKCFwYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChwYXJlbnRFbGVtZW50LmRyYWdnYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmVudEVsZW1lbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maW5kRHJhZ2dhYmxlUGFyZW50T2ZFbGVtZW50KHBhcmVudEVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBseVRlbXBTb3J0KHNob3dYRWxlbWVudDogSFRNTEVsZW1lbnQsIGluUGxhY2VPZlk6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGlmIChzaG93WEVsZW1lbnQgPT09IGluUGxhY2VPZlkpIHtcbiAgICAgICAgICAgIC8vIHNhbWUgZWxlbWVudCAtIGlnbm9yaW5nXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQXBwbHkgdGhlIFwicHJldmlld1wiIGVmZmVjdCBmcm9tIGRyYWdnaW5nIG9uZSBpdGVtIHRvIGFub3RoZXJcbiAgICAgICAgY29uc3QgYUluZGV4ID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbiwgc2hvd1hFbGVtZW50KTtcbiAgICAgICAgY29uc3QgYkluZGV4ID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbiwgaW5QbGFjZU9mWSk7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBiSW5kZXggLSBhSW5kZXg7XG4gICAgICAgIGxldCBpbnNlcnRQb3NpdGlvbjogSW5zZXJ0UG9zaXRpb247XG4gICAgICAgIGlmIChkaWZmID4gMCkge1xuICAgICAgICAgICAgaW5zZXJ0UG9zaXRpb24gPSAnYWZ0ZXJlbmQnO1xuICAgICAgICB9IGVsc2UgaWYgKGRpZmYgPCAwKSB7XG4gICAgICAgICAgICBpbnNlcnRQb3NpdGlvbiA9ICdiZWZvcmViZWdpbic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RyYWdEcm9wOiBUd28gZWxlbWVudHMgYXJlIGluIHRoZSBzYW1lIHBvc2l0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgaW5QbGFjZU9mWS5pbnNlcnRBZGphY2VudEVsZW1lbnQoaW5zZXJ0UG9zaXRpb24sIHNob3dYRWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldFNvcnRpbmcoKTogdm9pZCB7XG4gICAgICAgIC8vIHJldHVybiB0byB0aGUgb3JkZXIgb2YgZWxlbWVudHMgZnJvbSB0aGUgbGFzdCB0aW1lIHdlIGNhbGxlZCBvbkRyYWdQaWNrdXBcbiAgICAgICAgaWYgKCF0aGlzLnNhdmVkT3JkZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRHJhZ0Ryb3A6IENhbm5vdCByZXNldCBzb3J0aW5nIHdpdGggbm8gc2F2ZWQgb3JkZXInKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBib3hFbGVtID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYm94RWxlbS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGJveEVsZW0uY2hpbGRyZW5baV07XG4gICAgICAgICAgICBpZiAodGhpcy5zYXZlZE9yZGVyW2ldLmVsZW1lbnQgIT09IGl0ZW0gJiYgaSA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmVkT3JkZXJbaSAtIDFdLmVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmVuZCcsIHRoaXMuc2F2ZWRPcmRlcltpXS5lbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoZSB1c2VyIGhhcyBwcm92aWRlZCBjbGFzc2VzIGluZGljYXRpbmcgdGhleSBvbmx5IHdhbnQgYSBjZXJ0YWluIHJlZ2lvbiB0byBiZSBkcmFnZ2FibGUsIGlnbm9yZVxuICAgIC8vIHRoaXMgZHJhZyBldmVudCBpZiBpdCBpcyBvdXRzaWRlIG9mIHRoZXJlLlxuICAgIHByaXZhdGUgc2hvdWxkQmxvY2tEcmFnU3RhcnQoZXZlbnQ6IERyYWdFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkcmFnVGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAvLyBUT0RPOiBBbGxvdyBmb3IgbXVsdGlwbGUgZHJhZyB0YXJnZXRzLCBhbmQgZHJhZyBleGNsdXNpb24gdGFyZ2V0c1xuICAgICAgICBjb25zdCB1c2VyRHJhZ1RhcmdldCA9IGRyYWdUYXJnZXQucXVlcnlTZWxlY3RvcignLm5vdm8tZHJhZy10YXJnZXQnKTtcbiAgICAgICAgaWYgKHVzZXJEcmFnVGFyZ2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuaXNFbGVtZW50V2l0aGluRXZlbnRCb3VuZHModXNlckRyYWdUYXJnZXQsIGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc0VsZW1lbnRXaXRoaW5FdmVudEJvdW5kcyhlbGVtZW50OiBFbGVtZW50LCBldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBpc0luc2lkZSA9IGV2ZW50LmNsaWVudFggPiByZWN0LmxlZnQgJiYgZXZlbnQuY2xpZW50WCA8IHJlY3QucmlnaHQgJiZcbiAgICAgICAgICAgIGV2ZW50LmNsaWVudFkgPCByZWN0LmJvdHRvbSAmJiBldmVudC5jbGllbnRZID4gcmVjdC50b3A7XG4gICAgICAgIHJldHVybiBpc0luc2lkZTtcbiAgICB9XG59Il19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { NovoDragBoxParent } from './drag-drop-box';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NovoDragDropModule {
|
|
5
|
+
}
|
|
6
|
+
NovoDragDropModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
NovoDragDropModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDragDropModule, declarations: [NovoDragBoxParent], exports: [NovoDragBoxParent] });
|
|
8
|
+
NovoDragDropModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDragDropModule });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDragDropModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
declarations: [NovoDragBoxParent],
|
|
13
|
+
exports: [NovoDragBoxParent]
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL2RyYWctZHJvcC9kcmFnLWRyb3AubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBT3BELE1BQU0sT0FBTyxrQkFBa0I7O2dIQUFsQixrQkFBa0I7aUhBQWxCLGtCQUFrQixpQkFIWixpQkFBaUIsYUFDdEIsaUJBQWlCO2lIQUVsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFKOUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdm9EcmFnQm94UGFyZW50IH0gZnJvbSAnLi9kcmFnLWRyb3AtYm94JztcblxuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW05vdm9EcmFnQm94UGFyZW50XSxcbiAgICBleHBvcnRzOiBbTm92b0RyYWdCb3hQYXJlbnRdXG59KVxuZXhwb3J0IGNsYXNzIE5vdm9EcmFnRHJvcE1vZHVsZSB7fSJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './drag-drop-box';
|
|
2
|
+
export * from './drag-drop.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy9kcmFnLWRyb3AvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kcmFnLWRyb3AtYm94JztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1kcm9wLm1vZHVsZSc7XG5cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm92by1lbGVtZW50cy1lbGVtZW50cy1kcmFnLWRyb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy9kcmFnLWRyb3Avbm92by1lbGVtZW50cy1lbGVtZW50cy1kcmFnLWRyb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|