angular-slickgrid 3.3.2 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/angular-slickgrid.d.ts +1 -3
- package/app/modules/angular-slickgrid/components/angular-slickgrid.component.d.ts +8 -4
- package/app/modules/angular-slickgrid/extensions/index.d.ts +1 -1
- package/app/modules/angular-slickgrid/extensions/{rowDetailViewExtension.d.ts → slickRowDetailView.d.ts} +40 -27
- package/app/modules/angular-slickgrid/index.d.ts +1 -1
- package/app/modules/angular-slickgrid/models/angularGridInstance.interface.d.ts +1 -1
- package/app/modules/angular-slickgrid/modules/angular-slickgrid.module.d.ts +7 -0
- package/app/modules/angular-slickgrid/services/angularUtil.service.d.ts +3 -0
- package/app/modules/angular-slickgrid/services/bsDropdown.service.d.ts +3 -0
- package/app/modules/angular-slickgrid/services/container.service.d.ts +3 -0
- package/app/modules/angular-slickgrid/services/translater.service.d.ts +3 -0
- package/docs/assets/lib/multiple-select/README.md +17 -0
- package/esm2020/angular-slickgrid.mjs +5 -0
- package/esm2020/app/modules/angular-slickgrid/components/angular-slickgrid.component.mjs +1168 -0
- package/{esm2015/app/modules/angular-slickgrid/constants.js → esm2020/app/modules/angular-slickgrid/constants.mjs} +0 -0
- package/{esm2015/app/modules/angular-slickgrid/extensions/index.js → esm2020/app/modules/angular-slickgrid/extensions/index.mjs} +2 -2
- package/esm2020/app/modules/angular-slickgrid/extensions/slickRowDetailView.mjs +301 -0
- package/esm2020/app/modules/angular-slickgrid/global-grid-options.mjs +243 -0
- package/{esm2015/app/modules/angular-slickgrid/index.js → esm2020/app/modules/angular-slickgrid/index.mjs} +2 -2
- package/{esm2015/app/modules/angular-slickgrid/models/angularComponentOutput.interface.js → esm2020/app/modules/angular-slickgrid/models/angularComponentOutput.interface.mjs} +0 -0
- package/esm2020/app/modules/angular-slickgrid/models/angularGridInstance.interface.mjs +2 -0
- package/{esm2015/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.js → esm2020/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.mjs} +0 -0
- package/{esm2015/app/modules/angular-slickgrid/models/gridOption.interface.js → esm2020/app/modules/angular-slickgrid/models/gridOption.interface.mjs} +0 -0
- package/{esm2015/app/modules/angular-slickgrid/models/index.js → esm2020/app/modules/angular-slickgrid/models/index.mjs} +0 -0
- package/{esm2015/app/modules/angular-slickgrid/models/rowDetailView.interface.js → esm2020/app/modules/angular-slickgrid/models/rowDetailView.interface.mjs} +0 -0
- package/{esm2015/app/modules/angular-slickgrid/models/slickGrid.interface.js → esm2020/app/modules/angular-slickgrid/models/slickGrid.interface.mjs} +0 -0
- package/esm2020/app/modules/angular-slickgrid/modules/angular-slickgrid.module.mjs +46 -0
- package/esm2020/app/modules/angular-slickgrid/services/angularUtil.service.mjs +46 -0
- package/esm2020/app/modules/angular-slickgrid/services/bsDropdown.service.mjs +103 -0
- package/esm2020/app/modules/angular-slickgrid/services/container.service.mjs +26 -0
- package/{esm2015/app/modules/angular-slickgrid/services/index.js → esm2020/app/modules/angular-slickgrid/services/index.mjs} +0 -0
- package/esm2020/app/modules/angular-slickgrid/services/translater.service.mjs +43 -0
- package/{esm2015/app/modules/angular-slickgrid/services/utilities.js → esm2020/app/modules/angular-slickgrid/services/utilities.mjs} +0 -0
- package/{esm2015/app/modules/angular-slickgrid/slickgrid-config.js → esm2020/app/modules/angular-slickgrid/slickgrid-config.mjs} +0 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/fesm2015/{angular-slickgrid.js → angular-slickgrid.mjs} +247 -279
- package/fesm2015/angular-slickgrid.mjs.map +1 -0
- package/fesm2020/angular-slickgrid.mjs +2065 -0
- package/fesm2020/angular-slickgrid.mjs.map +1 -0
- package/package.json +33 -22
- package/angular-slickgrid.metadata.json +0 -1
- package/bundles/angular-slickgrid.umd.js +0 -2642
- package/bundles/angular-slickgrid.umd.js.map +0 -1
- package/esm2015/angular-slickgrid.js +0 -7
- package/esm2015/app/modules/angular-slickgrid/components/angular-slickgrid.component.js +0 -1202
- package/esm2015/app/modules/angular-slickgrid/extensions/rowDetailViewExtension.js +0 -342
- package/esm2015/app/modules/angular-slickgrid/global-grid-options.js +0 -243
- package/esm2015/app/modules/angular-slickgrid/models/angularGridInstance.interface.js +0 -2
- package/esm2015/app/modules/angular-slickgrid/modules/angular-slickgrid.module.js +0 -37
- package/esm2015/app/modules/angular-slickgrid/services/angularUtil.service.js +0 -48
- package/esm2015/app/modules/angular-slickgrid/services/bsDropdown.service.js +0 -103
- package/esm2015/app/modules/angular-slickgrid/services/container.service.js +0 -24
- package/esm2015/app/modules/angular-slickgrid/services/translater.service.js +0 -47
- package/fesm2015/angular-slickgrid.js.map +0 -1
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import { DelimiterType, EventNamingStyle, FileType, Filters, OperatorType } from '@slickgrid-universal/common';
|
|
2
|
-
/** Global Grid Options Defaults */
|
|
3
|
-
export const GlobalGridOptions = {
|
|
4
|
-
alwaysShowVerticalScroll: true,
|
|
5
|
-
autoEdit: false,
|
|
6
|
-
asyncEditorLoading: false,
|
|
7
|
-
autoFitColumnsOnFirstLoad: true,
|
|
8
|
-
autoResize: {
|
|
9
|
-
applyResizeToContainer: true,
|
|
10
|
-
calculateAvailableSizeBy: 'window',
|
|
11
|
-
bottomPadding: 20,
|
|
12
|
-
minHeight: 180,
|
|
13
|
-
minWidth: 300,
|
|
14
|
-
rightPadding: 0
|
|
15
|
-
},
|
|
16
|
-
cellHighlightCssClass: 'slick-cell-modified',
|
|
17
|
-
checkboxSelector: {
|
|
18
|
-
cssClass: 'slick-cell-checkboxsel'
|
|
19
|
-
},
|
|
20
|
-
columnPicker: {
|
|
21
|
-
fadeSpeed: 0,
|
|
22
|
-
hideForceFitButton: false,
|
|
23
|
-
hideSyncResizeButton: true,
|
|
24
|
-
headerColumnValueExtractor: pickerHeaderColumnValueExtractor
|
|
25
|
-
},
|
|
26
|
-
cellMenu: {
|
|
27
|
-
autoAdjustDrop: true,
|
|
28
|
-
autoAlignSide: true,
|
|
29
|
-
hideCloseButton: true,
|
|
30
|
-
hideCommandSection: false,
|
|
31
|
-
hideOptionSection: false,
|
|
32
|
-
},
|
|
33
|
-
contextMenu: {
|
|
34
|
-
autoAdjustDrop: true,
|
|
35
|
-
autoAlignSide: true,
|
|
36
|
-
hideCloseButton: true,
|
|
37
|
-
hideClearAllGrouping: false,
|
|
38
|
-
hideCollapseAllGroups: false,
|
|
39
|
-
hideCommandSection: false,
|
|
40
|
-
hideCopyCellValueCommand: false,
|
|
41
|
-
hideExpandAllGroups: false,
|
|
42
|
-
hideExportCsvCommand: false,
|
|
43
|
-
hideExportExcelCommand: false,
|
|
44
|
-
hideExportTextDelimitedCommand: true,
|
|
45
|
-
hideMenuOnScroll: true,
|
|
46
|
-
hideOptionSection: false,
|
|
47
|
-
iconCopyCellValueCommand: 'fa fa-clone',
|
|
48
|
-
iconExportCsvCommand: 'fa fa-download',
|
|
49
|
-
iconExportExcelCommand: 'fa fa-file-excel-o text-success',
|
|
50
|
-
iconExportTextDelimitedCommand: 'fa fa-download',
|
|
51
|
-
width: 200,
|
|
52
|
-
},
|
|
53
|
-
customFooterOptions: {
|
|
54
|
-
dateFormat: 'YYYY-MM-DD, hh:mm a',
|
|
55
|
-
hideRowSelectionCount: false,
|
|
56
|
-
hideTotalItemCount: false,
|
|
57
|
-
hideLastUpdateTimestamp: true,
|
|
58
|
-
footerHeight: 25,
|
|
59
|
-
leftContainerClass: 'col-xs-12 col-sm-5',
|
|
60
|
-
rightContainerClass: 'col-xs-6 col-sm-7',
|
|
61
|
-
metricSeparator: '|',
|
|
62
|
-
metricTexts: {
|
|
63
|
-
items: 'items',
|
|
64
|
-
itemsKey: 'ITEMS',
|
|
65
|
-
itemsSelected: 'items selected',
|
|
66
|
-
itemsSelectedKey: 'ITEMS_SELECTED',
|
|
67
|
-
of: 'of',
|
|
68
|
-
ofKey: 'OF',
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
dataView: {
|
|
72
|
-
syncGridSelection: true,
|
|
73
|
-
syncGridSelectionWithBackendService: false, // but disable it when using backend services
|
|
74
|
-
},
|
|
75
|
-
datasetIdPropertyName: 'id',
|
|
76
|
-
defaultFilter: Filters.input,
|
|
77
|
-
defaultBackendServiceFilterTypingDebounce: 500,
|
|
78
|
-
defaultColumnSortFieldId: 'id',
|
|
79
|
-
defaultFilterPlaceholder: '🔎︎',
|
|
80
|
-
defaultFilterRangeOperator: OperatorType.rangeInclusive,
|
|
81
|
-
editable: false,
|
|
82
|
-
enableAutoResize: true,
|
|
83
|
-
enableAutoSizeColumns: true,
|
|
84
|
-
enableCellNavigation: false,
|
|
85
|
-
enableColumnPicker: true,
|
|
86
|
-
enableColumnReorder: true,
|
|
87
|
-
enableColumnResizeOnDoubleClick: true,
|
|
88
|
-
enableContextMenu: true,
|
|
89
|
-
enableExcelExport: true,
|
|
90
|
-
enableExport: false,
|
|
91
|
-
enableFilterTrimWhiteSpace: false,
|
|
92
|
-
enableGridMenu: true,
|
|
93
|
-
enableHeaderMenu: true,
|
|
94
|
-
enableEmptyDataWarningMessage: true,
|
|
95
|
-
emptyDataWarning: {
|
|
96
|
-
className: 'slick-empty-data-warning',
|
|
97
|
-
message: 'No data to display.',
|
|
98
|
-
messageKey: 'EMPTY_DATA_WARNING_MESSAGE',
|
|
99
|
-
hideFrozenLeftWarning: false,
|
|
100
|
-
hideFrozenRightWarning: false,
|
|
101
|
-
leftViewportMarginLeft: '40%',
|
|
102
|
-
rightViewportMarginLeft: '40%',
|
|
103
|
-
frozenLeftViewportMarginLeft: '0px',
|
|
104
|
-
frozenRightViewportMarginLeft: '40%',
|
|
105
|
-
},
|
|
106
|
-
enableMouseHoverHighlightRow: true,
|
|
107
|
-
enableSorting: true,
|
|
108
|
-
enableTextSelectionOnCells: true,
|
|
109
|
-
eventNamingStyle: EventNamingStyle.camelCase,
|
|
110
|
-
explicitInitialization: true,
|
|
111
|
-
excelExportOptions: {
|
|
112
|
-
addGroupIndentation: true,
|
|
113
|
-
exportWithFormatter: false,
|
|
114
|
-
filename: 'export',
|
|
115
|
-
format: FileType.xlsx,
|
|
116
|
-
groupingColumnHeaderTitle: 'Group By',
|
|
117
|
-
groupCollapsedSymbol: '⮞',
|
|
118
|
-
groupExpandedSymbol: '⮟',
|
|
119
|
-
groupingAggregatorRowText: '',
|
|
120
|
-
sanitizeDataExport: false,
|
|
121
|
-
},
|
|
122
|
-
exportOptions: {
|
|
123
|
-
delimiter: DelimiterType.comma,
|
|
124
|
-
exportWithFormatter: false,
|
|
125
|
-
filename: 'export',
|
|
126
|
-
format: FileType.csv,
|
|
127
|
-
groupingColumnHeaderTitle: 'Group By',
|
|
128
|
-
groupingAggregatorRowText: '',
|
|
129
|
-
sanitizeDataExport: false,
|
|
130
|
-
useUtf8WithBom: true
|
|
131
|
-
},
|
|
132
|
-
filterTypingDebounce: 0,
|
|
133
|
-
forceFitColumns: false,
|
|
134
|
-
frozenHeaderWidthCalcDifferential: 0,
|
|
135
|
-
gridMenu: {
|
|
136
|
-
commandLabels: {
|
|
137
|
-
clearAllFiltersCommandKey: 'CLEAR_ALL_FILTERS',
|
|
138
|
-
clearAllSortingCommandKey: 'CLEAR_ALL_SORTING',
|
|
139
|
-
clearFrozenColumnsCommandKey: 'CLEAR_PINNING',
|
|
140
|
-
exportCsvCommandKey: 'EXPORT_TO_CSV',
|
|
141
|
-
exportExcelCommandKey: 'EXPORT_TO_EXCEL',
|
|
142
|
-
exportTextDelimitedCommandKey: 'EXPORT_TO_TAB_DELIMITED',
|
|
143
|
-
refreshDatasetCommandKey: 'REFRESH_DATASET',
|
|
144
|
-
toggleFilterCommandKey: 'TOGGLE_FILTER_ROW',
|
|
145
|
-
togglePreHeaderCommandKey: 'TOGGLE_PRE_HEADER_ROW',
|
|
146
|
-
},
|
|
147
|
-
hideClearAllFiltersCommand: false,
|
|
148
|
-
hideClearAllSortingCommand: false,
|
|
149
|
-
hideClearFrozenColumnsCommand: true,
|
|
150
|
-
hideExportCsvCommand: false,
|
|
151
|
-
hideExportExcelCommand: false,
|
|
152
|
-
hideExportTextDelimitedCommand: true,
|
|
153
|
-
hideForceFitButton: false,
|
|
154
|
-
hideRefreshDatasetCommand: false,
|
|
155
|
-
hideSyncResizeButton: true,
|
|
156
|
-
hideToggleFilterCommand: false,
|
|
157
|
-
hideTogglePreHeaderCommand: false,
|
|
158
|
-
iconCssClass: 'fa fa-bars',
|
|
159
|
-
iconClearAllFiltersCommand: 'fa fa-filter text-danger',
|
|
160
|
-
iconClearAllSortingCommand: 'fa fa-unsorted text-danger',
|
|
161
|
-
iconClearFrozenColumnsCommand: 'fa fa-times',
|
|
162
|
-
iconExportCsvCommand: 'fa fa-download',
|
|
163
|
-
iconExportExcelCommand: 'fa fa-file-excel-o text-success',
|
|
164
|
-
iconExportTextDelimitedCommand: 'fa fa-download',
|
|
165
|
-
iconRefreshDatasetCommand: 'fa fa-refresh',
|
|
166
|
-
iconToggleFilterCommand: 'fa fa-random',
|
|
167
|
-
iconTogglePreHeaderCommand: 'fa fa-random',
|
|
168
|
-
menuWidth: 16,
|
|
169
|
-
resizeOnShowHeaderRow: true,
|
|
170
|
-
useClickToRepositionMenu: false,
|
|
171
|
-
headerColumnValueExtractor: pickerHeaderColumnValueExtractor
|
|
172
|
-
},
|
|
173
|
-
headerMenu: {
|
|
174
|
-
autoAlign: true,
|
|
175
|
-
autoAlignOffset: 12,
|
|
176
|
-
minWidth: 140,
|
|
177
|
-
iconClearFilterCommand: 'fa fa-filter text-danger',
|
|
178
|
-
iconClearSortCommand: 'fa fa-unsorted',
|
|
179
|
-
iconFreezeColumns: 'fa fa-thumb-tack',
|
|
180
|
-
iconSortAscCommand: 'fa fa-sort-amount-asc',
|
|
181
|
-
iconSortDescCommand: 'fa fa-sort-amount-desc',
|
|
182
|
-
iconColumnHideCommand: 'fa fa-times',
|
|
183
|
-
iconColumnResizeByContentCommand: 'fa fa-arrows-h',
|
|
184
|
-
hideColumnResizeByContentCommand: false,
|
|
185
|
-
hideColumnHideCommand: false,
|
|
186
|
-
hideClearFilterCommand: false,
|
|
187
|
-
hideClearSortCommand: false,
|
|
188
|
-
hideFreezeColumnsCommand: true,
|
|
189
|
-
hideSortCommands: false
|
|
190
|
-
},
|
|
191
|
-
headerRowHeight: 35,
|
|
192
|
-
multiColumnSort: true,
|
|
193
|
-
numberedMultiColumnSort: true,
|
|
194
|
-
tristateMultiColumnSort: false,
|
|
195
|
-
sortColNumberInSeparateSpan: true,
|
|
196
|
-
suppressActiveCellChangeOnEdit: true,
|
|
197
|
-
pagination: {
|
|
198
|
-
pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],
|
|
199
|
-
pageSize: 25,
|
|
200
|
-
totalItems: 0
|
|
201
|
-
},
|
|
202
|
-
// technically speaking the Row Detail requires the process & viewComponent but we'll ignore it just to set certain options
|
|
203
|
-
rowDetailView: {
|
|
204
|
-
cssClass: 'detail-view-toggle',
|
|
205
|
-
panelRows: 1,
|
|
206
|
-
keyPrefix: '__',
|
|
207
|
-
useRowClick: false,
|
|
208
|
-
useSimpleViewportCalc: true,
|
|
209
|
-
saveDetailViewOnScroll: false,
|
|
210
|
-
},
|
|
211
|
-
rowHeight: 35,
|
|
212
|
-
topPanelHeight: 35,
|
|
213
|
-
translationNamespaceSeparator: ':',
|
|
214
|
-
resetFilterSearchValueAfterOnBeforeCancellation: true,
|
|
215
|
-
resizeByContentOnlyOnFirstLoad: true,
|
|
216
|
-
resizeByContentOptions: {
|
|
217
|
-
alwaysRecalculateColumnWidth: false,
|
|
218
|
-
cellCharWidthInPx: 7.8,
|
|
219
|
-
cellPaddingWidthInPx: 14,
|
|
220
|
-
defaultRatioForStringType: 0.88,
|
|
221
|
-
formatterPaddingWidthInPx: 0,
|
|
222
|
-
maxItemToInspectCellContentWidth: 1000,
|
|
223
|
-
maxItemToInspectSingleColumnWidthByContent: 5000,
|
|
224
|
-
widthToRemoveFromExceededWidthReadjustment: 50,
|
|
225
|
-
},
|
|
226
|
-
treeDataOptions: {
|
|
227
|
-
exportIndentMarginLeft: 5,
|
|
228
|
-
exportIndentationLeadingChar: '͏͏͏͏͏͏͏͏͏·',
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
/**
|
|
232
|
-
* Value Extractor for both ColumnPicker & GridMenu Picker
|
|
233
|
-
* when using Column Header Grouping, we'll prefix the column group title
|
|
234
|
-
* else we'll simply return the column name title
|
|
235
|
-
*/
|
|
236
|
-
function pickerHeaderColumnValueExtractor(column) {
|
|
237
|
-
const headerGroup = column && column.columnGroup || '';
|
|
238
|
-
if (headerGroup) {
|
|
239
|
-
return headerGroup + ' - ' + column.name;
|
|
240
|
-
}
|
|
241
|
-
return column && column.name || '';
|
|
242
|
-
}
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWdyaWQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9nbG9iYWwtZ3JpZC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBd0IsWUFBWSxFQUFrQixNQUFNLDZCQUE2QixDQUFDO0FBRzdKLG1DQUFtQztBQUNuQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBd0I7SUFDcEQsd0JBQXdCLEVBQUUsSUFBSTtJQUM5QixRQUFRLEVBQUUsS0FBSztJQUNmLGtCQUFrQixFQUFFLEtBQUs7SUFDekIseUJBQXlCLEVBQUUsSUFBSTtJQUMvQixVQUFVLEVBQUU7UUFDVixzQkFBc0IsRUFBRSxJQUFJO1FBQzVCLHdCQUF3QixFQUFFLFFBQVE7UUFDbEMsYUFBYSxFQUFFLEVBQUU7UUFDakIsU0FBUyxFQUFFLEdBQUc7UUFDZCxRQUFRLEVBQUUsR0FBRztRQUNiLFlBQVksRUFBRSxDQUFDO0tBQ2hCO0lBQ0QscUJBQXFCLEVBQUUscUJBQXFCO0lBQzVDLGdCQUFnQixFQUFFO1FBQ2hCLFFBQVEsRUFBRSx3QkFBd0I7S0FDbkM7SUFDRCxZQUFZLEVBQUU7UUFDWixTQUFTLEVBQUUsQ0FBQztRQUNaLGtCQUFrQixFQUFFLEtBQUs7UUFDekIsb0JBQW9CLEVBQUUsSUFBSTtRQUMxQiwwQkFBMEIsRUFBRSxnQ0FBZ0M7S0FDN0Q7SUFDRCxRQUFRLEVBQUU7UUFDUixjQUFjLEVBQUUsSUFBSTtRQUNwQixhQUFhLEVBQUUsSUFBSTtRQUNuQixlQUFlLEVBQUUsSUFBSTtRQUNyQixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLGlCQUFpQixFQUFFLEtBQUs7S0FDekI7SUFDRCxXQUFXLEVBQUU7UUFDWCxjQUFjLEVBQUUsSUFBSTtRQUNwQixhQUFhLEVB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW4sIERlbGltaXRlclR5cGUsIEV2ZW50TmFtaW5nU3R5bGUsIEZpbGVUeXBlLCBGaWx0ZXJzLCBHcmlkQXV0b3NpemVDb2xzTW9kZSwgT3BlcmF0b3JUeXBlLCBUcmVlRGF0YU9wdGlvbiB9IGZyb20gJ0BzbGlja2dyaWQtdW5pdmVyc2FsL2NvbW1vbic7XHJcbmltcG9ydCB7IEdyaWRPcHRpb24sIFJvd0RldGFpbFZpZXcgfSBmcm9tICcuL21vZGVscy9pbmRleCc7XHJcblxyXG4vKiogR2xvYmFsIEdyaWQgT3B0aW9ucyBEZWZhdWx0cyAqL1xyXG5leHBvcnQgY29uc3QgR2xvYmFsR3JpZE9wdGlvbnM6IFBhcnRpYWw8R3JpZE9wdGlvbj4gPSB7XHJcbiAgYWx3YXlzU2hvd1ZlcnRpY2FsU2Nyb2xsOiB0cnVlLFxyXG4gIGF1dG9FZGl0OiBmYWxzZSxcclxuICBhc3luY0VkaXRvckxvYWRpbmc6IGZhbHNlLFxyXG4gIGF1dG9GaXRDb2x1bW5zT25GaXJzdExvYWQ6IHRydWUsXHJcbiAgYXV0b1Jlc2l6ZToge1xyXG4gICAgYXBwbHlSZXNpemVUb0NvbnRhaW5lcjogdHJ1ZSxcclxuICAgIGNhbGN1bGF0ZUF2YWlsYWJsZVNpemVCeTogJ3dpbmRvdycsXHJcbiAgICBib3R0b21QYWRkaW5nOiAyMCxcclxuICAgIG1pbkhlaWdodDogMTgwLFxyXG4gICAgbWluV2lkdGg6IDMwMCxcclxuICAgIHJpZ2h0UGFkZGluZzogMFxyXG4gIH0sXHJcbiAgY2VsbEhpZ2hsaWdodENzc0NsYXNzOiAnc2xpY2stY2VsbC1tb2RpZmllZCcsXHJcbiAgY2hlY2tib3hTZWxlY3Rvcjoge1xyXG4gICAgY3NzQ2xhc3M6ICdzbGljay1jZWxsLWNoZWNrYm94c2VsJ1xyXG4gIH0sXHJcbiAgY29sdW1uUGlja2VyOiB7XHJcbiAgICBmYWRlU3BlZWQ6IDAsXHJcbiAgICBoaWRlRm9yY2VGaXRCdXR0b246IGZhbHNlLFxyXG4gICAgaGlkZVN5bmNSZXNpemVCdXR0b246IHRydWUsXHJcbiAgICBoZWFkZXJDb2x1bW5WYWx1ZUV4dHJhY3RvcjogcGlja2VySGVhZGVyQ29sdW1uVmFsdWVFeHRyYWN0b3JcclxuICB9LFxyXG4gIGNlbGxNZW51OiB7XHJcbiAgICBhdXRvQWRqdXN0RHJvcDogdHJ1ZSxcclxuICAgIGF1dG9BbGlnblNpZGU6IHRydWUsXHJcbiAgICBoaWRlQ2xvc2VCdXR0b246IHRydWUsXHJcbiAgICBoaWRlQ29tbWFuZFNlY3Rpb246IGZhbHNlLFxyXG4gICAgaGlkZU9wdGlvblNlY3Rpb246IGZhbHNlLFxyXG4gIH0sXHJcbiAgY29udGV4dE1lbnU6IHtcclxuICAgIGF1dG9BZGp1c3REcm9wOiB0cnVlLFxyXG4gICAgYXV0b0FsaWduU2lkZTogdHJ1ZSxcclxuICAgIGhpZGVDbG9zZUJ1dHRvbjogdHJ1ZSxcclxuICAgIGhpZGVDbGVhckFsbEdyb3VwaW5nOiBmYWxzZSxcclxuICAgIGhpZGVDb2xsYXBzZUFsbEdyb3VwczogZmFsc2UsXHJcbiAgICBoaWRlQ29tbWFuZFNlY3Rpb246IGZhbHNlLFxyXG4gICAgaGlkZUNvcHlDZWxsVmFsdWVDb21tYW5kOiBmYWxzZSxcclxuICAgIGhpZGVFeHBhbmRBbGxHcm91cHM6IGZhbHNlLFxyXG4gICAgaGlkZUV4cG9ydENzdkNvbW1hbmQ6IGZhbHNlLFxyXG4gICAgaGlkZUV4cG9ydEV4Y2VsQ29tbWFuZDogZmFsc2UsXHJcbiAgICBoaWRlRXhwb3J0VGV4dERlbGltaXRlZENvbW1hbmQ6IHRydWUsXHJcbiAgICBoaWRlTWVudU9uU2Nyb2xsOiB0cnVlLFxyXG4gICAgaGlkZU9wdGlvblNlY3Rpb246IGZhbHNlLFxyXG4gICAgaWNvbkNvcHlDZWxsVmFsdWVDb21tYW5kOiAnZmEgZmEtY2xvbmUnLFxyXG4gICAgaWNvbkV4cG9ydENzdkNvbW1hbmQ6ICdmYSBmYS1kb3dubG9hZCcsXHJcbiAgICBpY29uRXhwb3J0RXhjZWxDb21tYW5kOiAnZmEgZmEtZmlsZS1leGNlbC1vIHRleHQtc3VjY2VzcycsXHJcbiAgICBpY29uRXhwb3J0VGV4dERlbGltaXRlZENvbW1hbmQ6ICdmYSBmYS1kb3dubG9hZCcsXHJcbiAgICB3aWR0aDogMjAwLFxyXG4gIH0sXHJcbiAgY3VzdG9tRm9vdGVyT3B0aW9uczoge1xyXG4gICAgZGF0ZUZvcm1hdDogJ1lZWVktTU0tREQsIGhoOm1tIGEnLFxyXG4gICAgaGlkZVJvd1NlbGVjdGlvbkNvdW50OiBmYWxzZSxcclxuICAgIGhpZGVUb3RhbEl0ZW1Db3VudDogZmFsc2UsXHJcbiAgICBoaWRlTGFzdFVwZGF0ZVRpbWVzdGFtcDogdHJ1ZSxcclxuICAgIGZvb3RlckhlaWdodDogMjUsXHJcbiAgICBsZWZ0Q29udGFpbmVyQ2xhc3M6ICdjb2wteHMtMTIgY29sLXNtLTUnLFxyXG4gICAgcmlnaHRDb250YWluZXJDbGFzczogJ2NvbC14cy02IGNvbC1zbS03JyxcclxuICAgIG1ldHJpY1NlcGFyYXRvcjogJ3wnLFxyXG4gICAgbWV0cmljVGV4dHM6IHtcclxuICAgICAgaXRlbXM6ICdpdGVtcycsXHJcbiAgICAgIGl0ZW1zS2V5OiAnSVRFTVMnLFxyXG4gICAgICBpdGVtc1NlbGVjdGVkOiAnaXRlbXMgc2VsZWN0ZWQnLFxyXG4gICAgICBpdGVtc1NlbGVjdGVkS2V5OiAnSVRFTVNfU0VMRUNURUQnLFxyXG4gICAgICBvZjogJ29mJyxcclxuICAgICAgb2ZLZXk6ICdPRicsXHJcbiAgICB9XHJcbiAgfSxcclxuICBkYXRhVmlldzoge1xyXG4gICAgc3luY0dyaWRTZWxlY3Rpb246IHRydWUsIC8vIHdoZW4gZW5hYmxlZCwgdGhpcyB3aWxsIHByZXNlcnZlIHRoZSByb3cgc2VsZWN0aW9uIGV2ZW4gYWZ0ZXIgZmlsdGVyaW5nL3NvcnRpbmcvZ3JvdXBpbmdcclxuICAgIHN5bmNHcmlkU2VsZWN0aW9uV2l0aEJhY2tlbmRTZXJ2aWNlOiBmYWxzZSwgLy8gYnV0IGRpc2FibGUgaXQgd2hlbiB1c2luZyBiYWNrZW5kIHNlcnZpY2VzXHJcbiAgfSxcclxuICBkYXRhc2V0SWRQcm9wZXJ0eU5hbWU6ICdpZCcsXHJcbiAgZGVmYXVsdEZpbHRlcjogRmlsdGVycy5pbnB1dCxcclxuICBkZWZhdWx0QmFja2VuZFNlcnZpY2VGaWx0ZXJUeXBpbmdEZWJvdW5jZTogNTAwLFxyXG4gIGRlZmF1bHRDb2x1bW5Tb3J0RmllbGRJZDogJ2lkJyxcclxuICBkZWZhdWx0RmlsdGVyUGxhY2Vob2xkZXI6ICfwn5SO77iOJyxcclxuICBkZWZhdWx0RmlsdGVyUmFuZ2VPcGVyYXRvcjogT3BlcmF0b3JUeXBlLnJhbmdlSW5jbHVzaXZlLFxyXG4gIGVkaXRhYmxlOiBmYWxzZSxcclxuICBlbmFibGVBdXRvUmVzaXplOiB0cnVlLFxyXG4gIGVuYWJsZUF1dG9TaXplQ29sdW1uczogdHJ1ZSxcclxuICBlbmFibGVDZWxsTmF2aWdhdGlvbjogZmFsc2UsXHJcbiAgZW5hYmxlQ29sdW1uUGlja2VyOiB0cnVlLFxyXG4gIGVuYWJsZUNvbHVtblJlb3JkZXI6IHRydWUsXHJcbiAgZW5hYmxlQ29sdW1uUmVzaXplT25Eb3VibGVDbGljazogdHJ1ZSxcclxuICBlbmFibGVDb250ZXh0TWVudTogdHJ1ZSxcclxuICBlbmFibGVFeGNlbEV4cG9ydDogdHJ1ZSwgLy8gRXhjZWwgRXhwb3J0IGlzIHRoZSBuZXcgZGVmYXVsdCxcclxuICBlbmFibGVFeHBvcnQ6IGZhbHNlLCAvLyBDU1YvVGV4dCB3aXRoIFRhYiBEZWxpbWl0ZWRcclxuICBlbmFibGVGaWx0ZXJUcmltV2hpdGVTcGFjZTogZmFsc2UsIC8vIGRvIHdlIHdhbnQgdG8gdHJpbSB3aGl0ZSBzcGFjZXMgb24gYWxsIEZpbHRlcnM/XHJcbiAgZW5hYmxlR3JpZE1lbnU6IHRydWUsXHJcbiAgZW5hYmxlSGVhZGVyTWVudTogdHJ1ZSxcclxuICBlbmFibGVFbXB0eURhdGFXYXJuaW5nTWVzc2FnZTogdHJ1ZSxcclxuICBlbXB0eURhdGFXYXJuaW5nOiB7XHJcbiAgICBjbGFzc05hbWU6ICdzbGljay1lbXB0eS1kYXRhLXdhcm5pbmcnLFxyXG4gICAgbWVzc2FnZTogJ05vIGRhdGEgdG8gZGlzcGxheS4nLFxyXG4gICAgbWVzc2FnZUtleTogJ0VNUFRZX0RBVEFfV0FSTklOR19NRVNTQUdFJyxcclxuICAgIGhpZGVGcm96ZW5MZWZ0V2FybmluZzogZmFsc2UsXHJcbiAgICBoaWRlRnJvemVuUmlnaHRXYXJuaW5nOiBmYWxzZSxcclxuICAgIGxlZnRWaWV3cG9ydE1hcmdpbkxlZnQ6ICc0MCUnLFxyXG4gICAgcmlnaHRWaWV3cG9ydE1hcmdpbkxlZnQ6ICc0MCUnLFxyXG4gICAgZnJvemVuTGVmdFZpZXdwb3J0TWFyZ2luTGVmdDogJzBweCcsXHJcbiAgICBmcm96ZW5SaWdodFZpZXdwb3J0TWFyZ2luTGVmdDogJzQwJScsXHJcbiAgfSxcclxuICBlbmFibGVNb3VzZUhvdmVySGlnaGxpZ2h0Um93OiB0cnVlLFxyXG4gIGVuYWJsZVNvcnRpbmc6IHRydWUsXHJcbiAgZW5hYmxlVGV4dFNlbGVjdGlvbk9uQ2VsbHM6IHRydWUsXHJcbiAgZXZlbnROYW1pbmdTdHlsZTogRXZlbnROYW1pbmdTdHlsZS5jYW1lbENhc2UsXHJcbiAgZXhwbGljaXRJbml0aWFsaXphdGlvbjogdHJ1ZSxcclxuICBleGNlbEV4cG9ydE9wdGlvbnM6IHtcclxuICAgIGFkZEdyb3VwSW5kZW50YXRpb246IHRydWUsXHJcbiAgICBleHBvcnRXaXRoRm9ybWF0dGVyOiBmYWxzZSxcclxuICAgIGZpbGVuYW1lOiAnZXhwb3J0JyxcclxuICAgIGZvcm1hdDogRmlsZVR5cGUueGxzeCxcclxuICAgIGdyb3VwaW5nQ29sdW1uSGVhZGVyVGl0bGU6ICdHcm91cCBCeScsXHJcbiAgICBncm91cENvbGxhcHNlZFN5bWJvbDogJ+KunicsXHJcbiAgICBncm91cEV4cGFuZGVkU3ltYm9sOiAn4q6fJyxcclxuICAgIGdyb3VwaW5nQWdncmVnYXRvclJvd1RleHQ6ICcnLFxyXG4gICAgc2FuaXRpemVEYXRhRXhwb3J0OiBmYWxzZSxcclxuICB9LFxyXG4gIGV4cG9ydE9wdGlvbnM6IHtcclxuICAgIGRlbGltaXRlcjogRGVsaW1pdGVyVHlwZS5jb21tYSxcclxuICAgIGV4cG9ydFdpdGhGb3JtYXR0ZXI6IGZhbHNlLFxyXG4gICAgZmlsZW5hbWU6ICdleHBvcnQnLFxyXG4gICAgZm9ybWF0OiBGaWxlVHlwZS5jc3YsXHJcbiAgICBncm91cGluZ0NvbHVtbkhlYWRlclRpdGxlOiAnR3JvdXAgQnknLFxyXG4gICAgZ3JvdXBpbmdBZ2dyZWdhdG9yUm93VGV4dDogJycsXHJcbiAgICBzYW5pdGl6ZURhdGFFeHBvcnQ6IGZhbHNlLFxyXG4gICAgdXNlVXRmOFdpdGhCb206IHRydWVcclxuICB9LFxyXG4gIGZpbHRlclR5cGluZ0RlYm91bmNlOiAwLFxyXG4gIGZvcmNlRml0Q29sdW1uczogZmFsc2UsXHJcbiAgZnJvemVuSGVhZGVyV2lkdGhDYWxjRGlmZmVyZW50aWFsOiAwLFxyXG4gIGdyaWRNZW51OiB7XHJcbiAgICBjb21tYW5kTGFiZWxzOiB7XHJcbiAgICAgIGNsZWFyQWxsRmlsdGVyc0NvbW1hbmRLZXk6ICdDTEVBUl9BTExfRklMVEVSUycsXHJcbiAgICAgIGNsZWFyQWxsU29ydGluZ0NvbW1hbmRLZXk6ICdDTEVBUl9BTExfU09SVElORycsXHJcbiAgICAgIGNsZWFyRnJvemVuQ29sdW1uc0NvbW1hbmRLZXk6ICdDTEVBUl9QSU5OSU5HJyxcclxuICAgICAgZXhwb3J0Q3N2Q29tbWFuZEtleTogJ0VYUE9SVF9UT19DU1YnLFxyXG4gICAgICBleHBvcnRFeGNlbENvbW1hbmRLZXk6ICdFWFBPUlRfVE9fRVhDRUwnLFxyXG4gICAgICBleHBvcnRUZXh0RGVsaW1pdGVkQ29tbWFuZEtleTogJ0VYUE9SVF9UT19UQUJfREVMSU1JVEVEJyxcclxuICAgICAgcmVmcmVzaERhdGFzZXRDb21tYW5kS2V5OiAnUkVGUkVTSF9EQVRBU0VUJyxcclxuICAgICAgdG9nZ2xlRmlsdGVyQ29tbWFuZEtleTogJ1RPR0dMRV9GSUxURVJfUk9XJyxcclxuICAgICAgdG9nZ2xlUHJlSGVhZGVyQ29tbWFuZEtleTogJ1RPR0dMRV9QUkVfSEVBREVSX1JPVycsXHJcbiAgICB9LFxyXG4gICAgaGlkZUNsZWFyQWxsRmlsdGVyc0NvbW1hbmQ6IGZhbHNlLFxyXG4gICAgaGlkZUNsZWFyQWxsU29ydGluZ0NvbW1hbmQ6IGZhbHNlLFxyXG4gICAgaGlkZUNsZWFyRnJvemVuQ29sdW1uc0NvbW1hbmQ6IHRydWUsIC8vIG9wdC1pbiBjb21tYW5kXHJcbiAgICBoaWRlRXhwb3J0Q3N2Q29tbWFuZDogZmFsc2UsXHJcbiAgICBoaWRlRXhwb3J0RXhjZWxDb21tYW5kOiBmYWxzZSxcclxuICAgIGhpZGVFeHBvcnRUZXh0RGVsaW1pdGVkQ29tbWFuZDogdHJ1ZSxcclxuICAgIGhpZGVGb3JjZUZpdEJ1dHRvbjogZmFsc2UsXHJcbiAgICBoaWRlUmVmcmVzaERhdGFzZXRDb21tYW5kOiBmYWxzZSxcclxuICAgIGhpZGVTeW5jUmVzaXplQnV0dG9uOiB0cnVlLFxyXG4gICAgaGlkZVRvZ2dsZUZpbHRlckNvbW1hbmQ6IGZhbHNlLFxyXG4gICAgaGlkZVRvZ2dsZVByZUhlYWRlckNvbW1hbmQ6IGZhbHNlLFxyXG4gICAgaWNvbkNzc0NsYXNzOiAnZmEgZmEtYmFycycsXHJcbiAgICBpY29uQ2xlYXJBbGxGaWx0ZXJzQ29tbWFuZDogJ2ZhIGZhLWZpbHRlciB0ZXh0LWRhbmdlcicsXHJcbiAgICBpY29uQ2xlYXJBbGxTb3J0aW5nQ29tbWFuZDogJ2ZhIGZhLXVuc29ydGVkIHRleHQtZGFuZ2VyJyxcclxuICAgIGljb25DbGVhckZyb3plbkNvbHVtbnNDb21tYW5kOiAnZmEgZmEtdGltZXMnLFxyXG4gICAgaWNvbkV4cG9ydENzdkNvbW1hbmQ6ICdmYSBmYS1kb3dubG9hZCcsXHJcbiAgICBpY29uRXhwb3J0RXhjZWxDb21tYW5kOiAnZmEgZmEtZmlsZS1leGNlbC1vIHRleHQtc3VjY2VzcycsXHJcbiAgICBpY29uRXhwb3J0VGV4dERlbGltaXRlZENvbW1hbmQ6ICdmYSBmYS1kb3dubG9hZCcsXHJcbiAgICBpY29uUmVmcmVzaERhdGFzZXRDb21tYW5kOiAnZmEgZmEtcmVmcmVzaCcsXHJcbiAgICBpY29uVG9nZ2xlRmlsdGVyQ29tbWFuZDogJ2ZhIGZhLXJhbmRvbScsXHJcbiAgICBpY29uVG9nZ2xlUHJlSGVhZGVyQ29tbWFuZDogJ2ZhIGZhLXJhbmRvbScsXHJcbiAgICBtZW51V2lkdGg6IDE2LFxyXG4gICAgcmVzaXplT25TaG93SGVhZGVyUm93OiB0cnVlLFxyXG4gICAgdXNlQ2xpY2tUb1JlcG9zaXRpb25NZW51OiBmYWxzZSwgLy8gdXNlIGljb24gbG9jYXRpb24gdG8gcmVwb3NpdGlvbiBpbnN0ZWFkXHJcbiAgICBoZWFkZXJDb2x1bW5WYWx1ZUV4dHJhY3RvcjogcGlja2VySGVhZGVyQ29sdW1uVmFsdWVFeHRyYWN0b3JcclxuICB9LFxyXG4gIGhlYWRlck1lbnU6IHtcclxuICAgIGF1dG9BbGlnbjogdHJ1ZSxcclxuICAgIGF1dG9BbGlnbk9mZnNldDogMTIsXHJcbiAgICBtaW5XaWR0aDogMTQwLFxyXG4gICAgaWNvbkNsZWFyRmlsdGVyQ29tbWFuZDogJ2ZhIGZhLWZpbHRlciB0ZXh0LWRhbmdlcicsXHJcbiAgICBpY29uQ2xlYXJTb3J0Q29tbWFuZDogJ2ZhIGZhLXVuc29ydGVkJyxcclxuICAgIGljb25GcmVlemVDb2x1bW5zOiAnZmEgZmEtdGh1bWItdGFjaycsXHJcbiAgICBpY29uU29ydEFzY0NvbW1hbmQ6ICdmYSBmYS1zb3J0LWFtb3VudC1hc2MnLFxyXG4gICAgaWNvblNvcnREZXNjQ29tbWFuZDogJ2ZhIGZhLXNvcnQtYW1vdW50LWRlc2MnLFxyXG4gICAgaWNvbkNvbHVtbkhpZGVDb21tYW5kOiAnZmEgZmEtdGltZXMnLFxyXG4gICAgaWNvbkNvbHVtblJlc2l6ZUJ5Q29udGVudENvbW1hbmQ6ICdmYSBmYS1hcnJvd3MtaCcsXHJcbiAgICBoaWRlQ29sdW1uUmVzaXplQnlDb250ZW50Q29tbWFuZDogZmFsc2UsXHJcbiAgICBoaWRlQ29sdW1uSGlkZUNvbW1hbmQ6IGZhbHNlLFxyXG4gICAgaGlkZUNsZWFyRmlsdGVyQ29tbWFuZDogZmFsc2UsXHJcbiAgICBoaWRlQ2xlYXJTb3J0Q29tbWFuZDogZmFsc2UsXHJcbiAgICBoaWRlRnJlZXplQ29sdW1uc0NvbW1hbmQ6IHRydWUsIC8vIG9wdC1pbiBjb21tYW5kXHJcbiAgICBoaWRlU29ydENvbW1hbmRzOiBmYWxzZVxyXG4gIH0sXHJcbiAgaGVhZGVyUm93SGVpZ2h0OiAzNSxcclxuICBtdWx0aUNvbHVtblNvcnQ6IHRydWUsXHJcbiAgbnVtYmVyZWRNdWx0aUNvbHVtblNvcnQ6IHRydWUsXHJcbiAgdHJpc3RhdGVNdWx0aUNvbHVtblNvcnQ6IGZhbHNlLFxyXG4gIHNvcnRDb2xOdW1iZXJJblNlcGFyYXRlU3BhbjogdHJ1ZSxcclxuICBzdXBwcmVzc0FjdGl2ZUNlbGxDaGFuZ2VPbkVkaXQ6IHRydWUsXHJcbiAgcGFnaW5hdGlvbjoge1xyXG4gICAgcGFnZVNpemVzOiBbMTAsIDE1LCAyMCwgMjUsIDMwLCA0MCwgNTAsIDc1LCAxMDBdLFxyXG4gICAgcGFnZVNpemU6IDI1LFxyXG4gICAgdG90YWxJdGVtczogMFxyXG4gIH0sXHJcbiAgLy8gdGVjaG5pY2FsbHkgc3BlYWtpbmcgdGhlIFJvdyBEZXRhaWwgcmVxdWlyZXMgdGhlIHByb2Nlc3MgJiB2aWV3Q29tcG9uZW50IGJ1dCB3ZSdsbCBpZ25vcmUgaXQganVzdCB0byBzZXQgY2VydGFpbiBvcHRpb25zXHJcbiAgcm93RGV0YWlsVmlldzoge1xyXG4gICAgY3NzQ2xhc3M6ICdkZXRhaWwtdmlldy10b2dnbGUnLFxyXG4gICAgcGFuZWxSb3dzOiAxLFxyXG4gICAga2V5UHJlZml4OiAnX18nLFxyXG4gICAgdXNlUm93Q2xpY2s6IGZhbHNlLFxyXG4gICAgdXNlU2ltcGxlVmlld3BvcnRDYWxjOiB0cnVlLFxyXG4gICAgc2F2ZURldGFpbFZpZXdPblNjcm9sbDogZmFsc2UsXHJcbiAgfSBhcyBSb3dEZXRhaWxWaWV3LFxyXG4gIHJvd0hlaWdodDogMzUsXHJcbiAgdG9wUGFuZWxIZWlnaHQ6IDM1LFxyXG4gIHRyYW5zbGF0aW9uTmFtZXNwYWNlU2VwYXJhdG9yOiAnOicsXHJcbiAgcmVzZXRGaWx0ZXJTZWFyY2hWYWx1ZUFmdGVyT25CZWZvcmVDYW5jZWxsYXRpb246IHRydWUsXHJcbiAgcmVzaXplQnlDb250ZW50T25seU9uRmlyc3RMb2FkOiB0cnVlLFxyXG4gIHJlc2l6ZUJ5Q29udGVudE9wdGlvbnM6IHtcclxuICAgIGFsd2F5c1JlY2FsY3VsYXRlQ29sdW1uV2lkdGg6IGZhbHNlLFxyXG4gICAgY2VsbENoYXJXaWR0aEluUHg6IDcuOCxcclxuICAgIGNlbGxQYWRkaW5nV2lkdGhJblB4OiAxNCxcclxuICAgIGRlZmF1bHRSYXRpb0ZvclN0cmluZ1R5cGU6IDAuODgsXHJcbiAgICBmb3JtYXR0ZXJQYWRkaW5nV2lkdGhJblB4OiAwLFxyXG4gICAgbWF4SXRlbVRvSW5zcGVjdENlbGxDb250ZW50V2lkdGg6IDEwMDAsXHJcbiAgICBtYXhJdGVtVG9JbnNwZWN0U2luZ2xlQ29sdW1uV2lkdGhCeUNvbnRlbnQ6IDUwMDAsXHJcbiAgICB3aWR0aFRvUmVtb3ZlRnJvbUV4Y2VlZGVkV2lkdGhSZWFkanVzdG1lbnQ6IDUwLFxyXG4gIH0sXHJcbiAgdHJlZURhdGFPcHRpb25zOiB7XHJcbiAgICBleHBvcnRJbmRlbnRNYXJnaW5MZWZ0OiA1LFxyXG4gICAgZXhwb3J0SW5kZW50YXRpb25MZWFkaW5nQ2hhcjogJ82PzY/Nj82PzY/Nj82PzY/Nj8K3JyxcclxuICB9IGFzIHVua25vd24gYXMgVHJlZURhdGFPcHRpb25cclxufTtcclxuXHJcbi8qKlxyXG4gKiBWYWx1ZSBFeHRyYWN0b3IgZm9yIGJvdGggQ29sdW1uUGlja2VyICYgR3JpZE1lbnUgUGlja2VyXHJcbiAqIHdoZW4gdXNpbmcgQ29sdW1uIEhlYWRlciBHcm91cGluZywgd2UnbGwgcHJlZml4IHRoZSBjb2x1bW4gZ3JvdXAgdGl0bGVcclxuICogZWxzZSB3ZSdsbCBzaW1wbHkgcmV0dXJuIHRoZSBjb2x1bW4gbmFtZSB0aXRsZVxyXG4gKi9cclxuZnVuY3Rpb24gcGlja2VySGVhZGVyQ29sdW1uVmFsdWVFeHRyYWN0b3IoY29sdW1uOiBDb2x1bW4pIHtcclxuICBjb25zdCBoZWFkZXJHcm91cCA9IGNvbHVtbiAmJiBjb2x1bW4uY29sdW1uR3JvdXAgfHwgJyc7XHJcbiAgaWYgKGhlYWRlckdyb3VwKSB7XHJcbiAgICByZXR1cm4gaGVhZGVyR3JvdXAgKyAnIC0gJyArIGNvbHVtbi5uYW1lO1xyXG4gIH1cclxuICByZXR1cm4gY29sdW1uICYmIGNvbHVtbi5uYW1lIHx8ICcnO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhckdyaWRJbnN0YW5jZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYW5ndWxhci1zbGlja2dyaWQvbW9kZWxzL2FuZ3VsYXJHcmlkSW5zdGFuY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEJhY2tlbmRTZXJ2aWNlLFxyXG4gIEV4dGVuc2lvbkxpc3QsXHJcbiAgRXh0ZW5zaW9uU2VydmljZSxcclxuICBGaWx0ZXJTZXJ2aWNlLFxyXG4gIEdyaWRFdmVudFNlcnZpY2UsXHJcbiAgR3JpZFNlcnZpY2UsXHJcbiAgR3JpZFN0YXRlU2VydmljZSxcclxuICBHcm91cGluZ0FuZENvbHNwYW5TZXJ2aWNlLFxyXG4gIFBhZ2luYXRpb25TZXJ2aWNlLFxyXG4gIFJlc2l6ZXJTZXJ2aWNlLFxyXG4gIFNsaWNrRGF0YVZpZXcsXHJcbiAgU2xpY2tHcmlkLFxyXG4gIFNvcnRTZXJ2aWNlLFxyXG4gIFRyZWVEYXRhU2VydmljZVxyXG59IGZyb20gJ0BzbGlja2dyaWQtdW5pdmVyc2FsL2NvbW1vbic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJHcmlkSW5zdGFuY2Uge1xyXG4gIC8qKiBTbGljayBEYXRhVmlldyBvYmplY3QgKi9cclxuICBkYXRhVmlldzogU2xpY2tEYXRhVmlldztcclxuXHJcbiAgLyoqIFNsaWNrIEdyaWQgb2JqZWN0ICovXHJcbiAgc2xpY2tHcmlkOiBTbGlja0dyaWQ7XHJcblxyXG4gIC8qKiBTbGlja0dyaWQgZXh0ZW5zaW9ucyAoZXh0ZXJuYWwgY29udHJvbHMvcGx1Z2lucykgKi9cclxuICBleHRlbnNpb25zOiBFeHRlbnNpb25MaXN0PGFueSwgYW55PjtcclxuXHJcbiAgLy8gLS1cclxuICAvLyBNZXRob2RzXHJcbiAgLyoqIERpc3Bvc2Ugb2YgdGhlIGdyaWQgYW5kIG9wdGlvbmFsbHkgZW1wdHkgdGhlIERPTSBlbGVtZW50IGdyaWQgY29udGFpbmVyIGFzIHdlbGwgKi9cclxuICBkZXN0cm95OiAoZW1wdHlEb21FbGVtZW50Q29udGFpbmVyPzogYm9vbGVhbikgPT4gdm9pZDtcclxuXHJcbiAgLy8gLS1cclxuICAvLyBTZXJ2aWNlc1xyXG5cclxuICAvKiogQmFja2VuZCBTZXJ2aWNlLCB3aGVuIGF2YWlsYWJsZSAqL1xyXG4gIGJhY2tlbmRTZXJ2aWNlPzogQmFja2VuZFNlcnZpY2U7XHJcblxyXG4gIC8qKiBFeHRlbnNpb24gKFBsdWdpbnMgJiBDb250cm9scykgU2VydmljZSAqL1xyXG4gIGV4dGVuc2lvblNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2U7XHJcblxyXG4gIC8qKiBGaWx0ZXIgU2VydmljZSAqL1xyXG4gIGZpbHRlclNlcnZpY2U6IEZpbHRlclNlcnZpY2U7XHJcblxyXG4gIC8qKiBHcmlkIFNlcnZpY2UgKGdyaWQgZXh0cmEgZnVuY3Rpb25hbGl0aWVzKSAqL1xyXG4gIGdyaWRTZXJ2aWNlOiBHcmlkU2VydmljZTtcclxuXHJcbiAgLyoqIEdyaWQgRXZlbnRzIFNlcnZpY2UgKi9cclxuICBncmlkRXZlbnRTZXJ2aWNlOiBHcmlkRXZlbnRTZXJ2aWNlO1xyXG5cclxuICAvKiogR3JpZCBTdGF0ZSBTZXJ2aWNlICovXHJcbiAgZ3JpZFN0YXRlU2VydmljZTogR3JpZFN0YXRlU2VydmljZTtcclxuXHJcbiAgLyoqIEdyb3VwaW5nIChhbmQgY29sc3BhbikgU2VydmljZSAqL1xyXG4gIGdyb3VwaW5nU2VydmljZTogR3JvdXBpbmdBbmRDb2xzcGFuU2VydmljZTtcclxuXHJcbiAgLyoqIFBhZ2luYXRpb24gU2VydmljZSAoYWxsb3dzIHlvdSB0byBwcm9ncmFtbWF0aWNhbGx5IGdvIHRvIGZpcnN0L2xhc3QgcGFnZSwgZXRjLi4uKSAqL1xyXG4gIHBhZ2luYXRpb25TZXJ2aWNlPzogUGFnaW5hdGlvblNlcnZpY2U7XHJcblxyXG4gIC8qKiBSZXNpemVyIFNlcnZpY2UgKGluY2x1ZGluZyBhdXRvLXJlc2l6ZSkgKi9cclxuICByZXNpemVyU2VydmljZTogUmVzaXplclNlcnZpY2U7XHJcblxyXG4gIC8qKiBTb3J0IFNlcnZpY2UgKi9cclxuICBzb3J0U2VydmljZTogU29ydFNlcnZpY2U7XHJcblxyXG4gIC8qKiBUcmVlIERhdGEgVmlldyBTZXJ2aWNlICovXHJcbiAgdHJlZURhdGFTZXJ2aWNlOiBUcmVlRGF0YVNlcnZpY2U7XHJcbn1cclxuIl19
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
-
import { AngularSlickgridComponent } from './../components/angular-slickgrid.component';
|
|
5
|
-
import { AngularUtilService } from '../services/angularUtil.service';
|
|
6
|
-
import { BsDropDownService } from '../services/bsDropdown.service';
|
|
7
|
-
import { ContainerService } from '../services/container.service';
|
|
8
|
-
export class AngularSlickgridModule {
|
|
9
|
-
static forRoot(config = {}) {
|
|
10
|
-
return {
|
|
11
|
-
ngModule: AngularSlickgridModule,
|
|
12
|
-
providers: [
|
|
13
|
-
{ provide: 'config', useValue: config },
|
|
14
|
-
{ provide: 'externalService', useValue: null },
|
|
15
|
-
AngularUtilService,
|
|
16
|
-
BsDropDownService,
|
|
17
|
-
ContainerService,
|
|
18
|
-
]
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
AngularSlickgridModule.decorators = [
|
|
23
|
-
{ type: NgModule, args: [{
|
|
24
|
-
imports: [
|
|
25
|
-
CommonModule,
|
|
26
|
-
TranslateModule
|
|
27
|
-
],
|
|
28
|
-
declarations: [
|
|
29
|
-
AngularSlickgridComponent,
|
|
30
|
-
],
|
|
31
|
-
exports: [
|
|
32
|
-
AngularSlickgridComponent,
|
|
33
|
-
],
|
|
34
|
-
entryComponents: [AngularSlickgridComponent]
|
|
35
|
-
},] }
|
|
36
|
-
];
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1zbGlja2dyaWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL21vZHVsZXMvYW5ndWxhci1zbGlja2dyaWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFlakUsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQXFCLEVBQUU7UUFDcEMsT0FBTztZQUNMLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2dCQUN2QyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUM5QyxrQkFBa0I7Z0JBQ2xCLGlCQUFpQjtnQkFDakIsZ0JBQWdCO2FBQ2pCO1NBQ0YsQ0FBQztJQUNKLENBQUM7OztZQXpCRixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osZUFBZTtpQkFDaEI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHlCQUF5QjtpQkFDMUI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHlCQUF5QjtpQkFDMUI7Z0JBQ0QsZUFBZSxFQUFFLENBQUMseUJBQXlCLENBQUM7YUFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbmltcG9ydCB7IEFuZ3VsYXJTbGlja2dyaWRDb21wb25lbnQgfSBmcm9tICcuLy4uL2NvbXBvbmVudHMvYW5ndWxhci1zbGlja2dyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JpZE9wdGlvbiB9IGZyb20gJy4vLi4vbW9kZWxzL2dyaWRPcHRpb24uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQW5ndWxhclV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYW5ndWxhclV0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEJzRHJvcERvd25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYnNEcm9wZG93bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udGFpbmVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbnRhaW5lci5zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFuZ3VsYXJTbGlja2dyaWRDb21wb25lbnQsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBbmd1bGFyU2xpY2tncmlkQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgZW50cnlDb21wb25lbnRzOiBbQW5ndWxhclNsaWNrZ3JpZENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJTbGlja2dyaWRNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogR3JpZE9wdGlvbiA9IHt9KTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFyU2xpY2tncmlkTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQW5ndWxhclNsaWNrZ3JpZE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiAnY29uZmlnJywgdXNlVmFsdWU6IGNvbmZpZyB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogJ2V4dGVybmFsU2VydmljZScsIHVzZVZhbHVlOiBudWxsIH0sXHJcbiAgICAgICAgQW5ndWxhclV0aWxTZXJ2aWNlLFxyXG4gICAgICAgIEJzRHJvcERvd25TZXJ2aWNlLFxyXG4gICAgICAgIENvbnRhaW5lclNlcnZpY2UsXHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector } from '@angular/core';
|
|
2
|
-
export class AngularUtilService {
|
|
3
|
-
constructor(compFactoryResolver, appRef, injector) {
|
|
4
|
-
this.compFactoryResolver = compFactoryResolver;
|
|
5
|
-
this.appRef = appRef;
|
|
6
|
-
this.injector = injector;
|
|
7
|
-
}
|
|
8
|
-
// ref https://hackernoon.com/angular-pro-tip-how-to-dynamically-create-components-in-body-ba200cc289e6
|
|
9
|
-
createAngularComponent(component) {
|
|
10
|
-
// Create a component reference from the component
|
|
11
|
-
const componentRef = this.compFactoryResolver
|
|
12
|
-
.resolveComponentFactory(component)
|
|
13
|
-
.create(this.injector);
|
|
14
|
-
// Attach component to the appRef so that it's inside the ng component tree
|
|
15
|
-
this.appRef.attachView(componentRef.hostView);
|
|
16
|
-
// Get DOM element from component
|
|
17
|
-
let domElem;
|
|
18
|
-
const viewRef = componentRef.hostView;
|
|
19
|
-
if (viewRef && Array.isArray(viewRef.rootNodes) && viewRef.rootNodes[0]) {
|
|
20
|
-
domElem = viewRef.rootNodes[0];
|
|
21
|
-
}
|
|
22
|
-
return { componentRef, domElement: domElem };
|
|
23
|
-
}
|
|
24
|
-
// ref https://hackernoon.com/angular-pro-tip-how-to-dynamically-create-components-in-body-ba200cc289e6
|
|
25
|
-
createAngularComponentAppendToDom(component, targetElement, clearTargetContent = false) {
|
|
26
|
-
const componentOutput = this.createAngularComponent(component);
|
|
27
|
-
// Append DOM element to the HTML element specified
|
|
28
|
-
if (targetElement && targetElement.appendChild) {
|
|
29
|
-
if (clearTargetContent && targetElement.innerHTML) {
|
|
30
|
-
targetElement.innerHTML = '';
|
|
31
|
-
}
|
|
32
|
-
targetElement.appendChild(componentOutput.domElement);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
document.body.appendChild(componentOutput.domElement); // when no target provided, we'll simply add it to the HTML Body
|
|
36
|
-
}
|
|
37
|
-
return componentOutput;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
AngularUtilService.decorators = [
|
|
41
|
-
{ type: Injectable }
|
|
42
|
-
];
|
|
43
|
-
AngularUtilService.ctorParameters = () => [
|
|
44
|
-
{ type: ComponentFactoryResolver },
|
|
45
|
-
{ type: ApplicationRef },
|
|
46
|
-
{ type: Injector }
|
|
47
|
-
];
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhclV0aWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zZXJ2aWNlcy9hbmd1bGFyVXRpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQW1CLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEgsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNVLG1CQUE2QyxFQUM3QyxNQUFzQixFQUN0QixRQUFrQjtRQUZsQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTBCO1FBQzdDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDeEIsQ0FBQztJQUVMLHVHQUF1RztJQUN2RyxzQkFBc0IsQ0FBQyxTQUFjO1FBQ25DLGtEQUFrRDtRQUNsRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CO2FBQzFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQzthQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpCLDJFQUEyRTtRQUMzRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUMsaUNBQWlDO1FBQ2pDLElBQUksT0FBTyxDQUFDO1FBQ1osTUFBTSxPQUFPLEdBQUksWUFBWSxDQUFDLFFBQWlDLENBQUM7UUFDaEUsSUFBSSxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2RSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7U0FDL0M7UUFFRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFzQixFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVELHVHQUF1RztJQUN2RyxpQ0FBaUMsQ0FBQyxTQUFjLEVBQUUsYUFBcUMsRUFBRSxrQkFBa0IsR0FBRyxLQUFLO1FBQ2pILE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUvRCxtREFBbUQ7UUFDbkQsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUM5QyxJQUFJLGtCQUFrQixJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUU7Z0JBQ2pELGFBQWEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2FBQzlCO1lBQ0QsYUFBYSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdkQ7YUFBTTtZQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGdFQUFnRTtTQUN4SDtRQUVELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7OztZQTNDRixVQUFVOzs7WUFGYyx3QkFBd0I7WUFBeEMsY0FBYztZQUF5RCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudE91dHB1dCB9IGZyb20gJy4uL21vZGVscy9hbmd1bGFyQ29tcG9uZW50T3V0cHV0LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVtYmVkZGVkVmlld1JlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJVdGlsU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbXBGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkgeyB9XHJcblxyXG4gIC8vIHJlZiBodHRwczovL2hhY2tlcm5vb24uY29tL2FuZ3VsYXItcHJvLXRpcC1ob3ctdG8tZHluYW1pY2FsbHktY3JlYXRlLWNvbXBvbmVudHMtaW4tYm9keS1iYTIwMGNjMjg5ZTZcclxuICBjcmVhdGVBbmd1bGFyQ29tcG9uZW50KGNvbXBvbmVudDogYW55KTogQW5ndWxhckNvbXBvbmVudE91dHB1dCB7XHJcbiAgICAvLyBDcmVhdGUgYSBjb21wb25lbnQgcmVmZXJlbmNlIGZyb20gdGhlIGNvbXBvbmVudFxyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wRmFjdG9yeVJlc29sdmVyXHJcbiAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpXHJcbiAgICAgIC5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcblxyXG4gICAgLy8gQXR0YWNoIGNvbXBvbmVudCB0byB0aGUgYXBwUmVmIHNvIHRoYXQgaXQncyBpbnNpZGUgdGhlIG5nIGNvbXBvbmVudCB0cmVlXHJcbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcblxyXG4gICAgLy8gR2V0IERPTSBlbGVtZW50IGZyb20gY29tcG9uZW50XHJcbiAgICBsZXQgZG9tRWxlbTtcclxuICAgIGNvbnN0IHZpZXdSZWYgPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KTtcclxuICAgIGlmICh2aWV3UmVmICYmIEFycmF5LmlzQXJyYXkodmlld1JlZi5yb290Tm9kZXMpICYmIHZpZXdSZWYucm9vdE5vZGVzWzBdKSB7XHJcbiAgICAgIGRvbUVsZW0gPSB2aWV3UmVmLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyBjb21wb25lbnRSZWYsIGRvbUVsZW1lbnQ6IGRvbUVsZW0gYXMgSFRNTEVsZW1lbnQgfTtcclxuICB9XHJcblxyXG4gIC8vIHJlZiBodHRwczovL2hhY2tlcm5vb24uY29tL2FuZ3VsYXItcHJvLXRpcC1ob3ctdG8tZHluYW1pY2FsbHktY3JlYXRlLWNvbXBvbmVudHMtaW4tYm9keS1iYTIwMGNjMjg5ZTZcclxuICBjcmVhdGVBbmd1bGFyQ29tcG9uZW50QXBwZW5kVG9Eb20oY29tcG9uZW50OiBhbnksIHRhcmdldEVsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IEVsZW1lbnQsIGNsZWFyVGFyZ2V0Q29udGVudCA9IGZhbHNlKTogQW5ndWxhckNvbXBvbmVudE91dHB1dCB7XHJcbiAgICBjb25zdCBjb21wb25lbnRPdXRwdXQgPSB0aGlzLmNyZWF0ZUFuZ3VsYXJDb21wb25lbnQoY29tcG9uZW50KTtcclxuXHJcbiAgICAvLyBBcHBlbmQgRE9NIGVsZW1lbnQgdG8gdGhlIEhUTUwgZWxlbWVudCBzcGVjaWZpZWRcclxuICAgIGlmICh0YXJnZXRFbGVtZW50ICYmIHRhcmdldEVsZW1lbnQuYXBwZW5kQ2hpbGQpIHtcclxuICAgICAgaWYgKGNsZWFyVGFyZ2V0Q29udGVudCAmJiB0YXJnZXRFbGVtZW50LmlubmVySFRNTCkge1xyXG4gICAgICAgIHRhcmdldEVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgdGFyZ2V0RWxlbWVudC5hcHBlbmRDaGlsZChjb21wb25lbnRPdXRwdXQuZG9tRWxlbWVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbXBvbmVudE91dHB1dC5kb21FbGVtZW50KTsgLy8gd2hlbiBubyB0YXJnZXQgcHJvdmlkZWQsIHdlJ2xsIHNpbXBseSBhZGQgaXQgdG8gdGhlIEhUTUwgQm9keVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb21wb25lbnRPdXRwdXQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { AngularUtilService } from './angularUtil.service';
|
|
3
|
-
// Boostrap dropdown service
|
|
4
|
-
export class BsDropDownService {
|
|
5
|
-
constructor(angularUtilService) {
|
|
6
|
-
this.angularUtilService = angularUtilService;
|
|
7
|
-
}
|
|
8
|
-
get domElement() {
|
|
9
|
-
return this._domElement;
|
|
10
|
-
}
|
|
11
|
-
get domContainerElement() {
|
|
12
|
-
return this._domContainerElement;
|
|
13
|
-
}
|
|
14
|
-
get gridViewport() {
|
|
15
|
-
return $('.slick-viewport');
|
|
16
|
-
}
|
|
17
|
-
dispose() {
|
|
18
|
-
if (this._domElement && this._domElement.remove) {
|
|
19
|
-
this._domElement.remove();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
dropContainerShow() {
|
|
23
|
-
if (this._domContainerElement && this._domContainerElement.show) {
|
|
24
|
-
this._domContainerElement.show();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
render(dropdownParams) {
|
|
28
|
-
return new Promise((resolve) => {
|
|
29
|
-
const { component, args, parent, offsetTop, offsetLeft, offsetDropupBottom } = dropdownParams;
|
|
30
|
-
const cell = args.cell;
|
|
31
|
-
const row = args.row;
|
|
32
|
-
this._domContainerElement = $(`#myDrop-r${row}-c${cell}`);
|
|
33
|
-
if (this._domContainerElement) {
|
|
34
|
-
// hide the dropdown we created as a formatter Component, we'll redisplay it later
|
|
35
|
-
const cellPos = this._domContainerElement.offset();
|
|
36
|
-
const componentOutput = this.angularUtilService.createAngularComponent(component);
|
|
37
|
-
const componentInstance = componentOutput && componentOutput.componentRef && componentOutput.componentRef.instance;
|
|
38
|
-
if (componentInstance) {
|
|
39
|
-
const myDropId = componentInstance.dropdownId || 'myDrop';
|
|
40
|
-
const dropDownToggleId = componentInstance.dropDownToggleId || 'dropdownMenu1';
|
|
41
|
-
this._domElement = $(`#${myDropId}`);
|
|
42
|
-
if (this._domElement) {
|
|
43
|
-
// make sure to remove any previous Action dropdown elements, to avoid having multiple element of the same on top of each other
|
|
44
|
-
this.dispose();
|
|
45
|
-
// assign the row data to the dropdown component instance
|
|
46
|
-
Object.assign(componentInstance, { parent, row: args.row, dataContext: args.grid.getDataItem(args.row) });
|
|
47
|
-
// use a delay to make sure Angular ran at least a full cycle and make sure it finished rendering the Component before using it
|
|
48
|
-
setTimeout(() => {
|
|
49
|
-
// create a new dropdown element
|
|
50
|
-
this._domElement = $(componentOutput.domElement);
|
|
51
|
-
const topPos = (cellPos && cellPos.top || 0) + 30 + (offsetTop || 0);
|
|
52
|
-
const leftPos = (cellPos && cellPos.left || 0) + (offsetLeft || 0);
|
|
53
|
-
this._domElement.appendTo('body');
|
|
54
|
-
this._domElement.css('position', 'absolute');
|
|
55
|
-
this._domElement.css('top', topPos);
|
|
56
|
-
this._domElement.css('left', leftPos);
|
|
57
|
-
$(`#${myDropId}`).addClass('open');
|
|
58
|
-
$(`#${dropDownToggleId}`).hide();
|
|
59
|
-
// check if it should drop Up or Down
|
|
60
|
-
const offset = 35;
|
|
61
|
-
const iElement = $('.dropdown-menu');
|
|
62
|
-
const iElementWrapper = iElement.parent();
|
|
63
|
-
const iElementWrapperOffset = iElementWrapper.offset() || {};
|
|
64
|
-
const iElementWrapperOffsetTop = iElementWrapperOffset.top || iElementWrapper && iElementWrapper.length > 0 && iElementWrapper[0].offsetTop;
|
|
65
|
-
const iElementHeight = iElement.height();
|
|
66
|
-
const windowHeight = window.innerHeight;
|
|
67
|
-
const shouldDropUp = (windowHeight - iElementHeight - offset) < iElementWrapperOffsetTop;
|
|
68
|
-
let menuMarginTop = '0px';
|
|
69
|
-
if (shouldDropUp) {
|
|
70
|
-
const offsetBottom = offsetDropupBottom || 0;
|
|
71
|
-
menuMarginTop = '-'.concat(`${iElementHeight + offset + offsetBottom + 5}`, 'px');
|
|
72
|
-
}
|
|
73
|
-
this._domElement.css({ 'margin-top': menuMarginTop });
|
|
74
|
-
// set dropdown margin left according to the document width
|
|
75
|
-
const parentOffset = iElementWrapperOffset.left;
|
|
76
|
-
const leftMargin = parentOffset - $(document).width();
|
|
77
|
-
this._domElement.css({ 'margin-left': (this._domElement.width() + leftMargin + 60) + 'px' });
|
|
78
|
-
try {
|
|
79
|
-
this._domElement.dropdown('show'); // required for Bootstrap 4 only
|
|
80
|
-
}
|
|
81
|
-
catch (e) {
|
|
82
|
-
// Bootstrap 3 wil throw an error since that method doesn't exist, we can safely disregard it
|
|
83
|
-
}
|
|
84
|
-
this._domElement.on('hidden.bs.dropdown', () => this.dropContainerShow());
|
|
85
|
-
// hide dropdown menu on grid scroll
|
|
86
|
-
this.gridViewport.on('scroll', () => this.dispose());
|
|
87
|
-
// hide on dropdown click
|
|
88
|
-
this._domElement.on('click', () => this.dispose());
|
|
89
|
-
resolve(true);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
BsDropDownService.decorators = [
|
|
98
|
-
{ type: Injectable }
|
|
99
|
-
];
|
|
100
|
-
BsDropDownService.ctorParameters = () => [
|
|
101
|
-
{ type: AngularUtilService }
|
|
102
|
-
];
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnNEcm9wZG93bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL3NlcnZpY2VzL2JzRHJvcGRvd24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBeUIzRCw0QkFBNEI7QUFFNUIsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QixZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFJLENBQUM7SUFFL0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUU7WUFDL0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFxQztRQUMxQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxjQUFjLENBQUM7WUFFOUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBRXJCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsWUFBWSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUUxRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDN0Isa0ZBQWtGO2dCQUNsRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBRW5ELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDbEYsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLFlBQVksSUFBSSxlQUFlLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztnQkFFbkgsSUFBSSxpQkFBaUIsRUFBRTtvQkFDckIsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQztvQkFDMUQsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsSUFBSSxlQUFlLENBQUM7b0JBQy9FLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFFckMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO3dCQUNwQiwrSEFBK0g7d0JBQy9ILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzt3QkFFZix5REFBeUQ7d0JBQ3pELE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBRTFHLCtIQUErSDt3QkFDL0gsVUFBVSxDQUFDLEdBQUcsRUFBRTs0QkFDZCxnQ0FBZ0M7NEJBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQzs0QkFDakQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUM7NEJBQ3JFLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUM7NEJBQ25FLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDOzRCQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7NEJBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQzs0QkFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDOzRCQUN0QyxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQzs0QkFDbkMsQ0FBQyxDQUFDLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDOzRCQUVqQyxxQ0FBcUM7NEJBQ3JDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQzs0QkFDbEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUM7NEJBQ3JDLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQzs0QkFDMUMsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzRCQUM3RCxNQUFNLHdCQUF3QixHQUFHLHFCQUFxQixDQUFDLEdBQUcsSUFBSSxlQUFlLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQzs0QkFDNUksTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDOzRCQUN6QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDOzRCQUN4QyxNQUFNLFlBQVksR0FBRyxDQUFDLFlBQVksR0FBRyxjQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsd0JBQXdCLENBQUM7NEJBQ3pGLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQzs0QkFDMUIsSUFBSSxZQUFZLEVBQUU7Z0NBQ2hCLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixJQUFJLENBQUMsQ0FBQztnQ0FDN0MsYUFBYSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxjQUFjLEdBQUcsTUFBTSxHQUFHLFlBQVksR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQzs2QkFDbkY7NEJBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQzs0QkFFdEQsMkRBQTJEOzRCQUMzRCxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7NEJBQ2hELE1BQU0sVUFBVSxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQzs0QkFFN0YsSUFBSTtnQ0FDRixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdDQUFnQzs2QkFDcEU7NEJBQUMsT0FBTyxDQUFDLEVBQUU7Z0NBQ1YsNkZBQTZGOzZCQUM5Rjs0QkFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDOzRCQUUxRSxvQ0FBb0M7NEJBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzs0QkFFckQseUJBQXlCOzRCQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7NEJBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDaEIsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBaEhGLFVBQVU7OztZQTFCRixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBbmd1bGFyVXRpbFNlcnZpY2UgfSBmcm9tICcuL2FuZ3VsYXJVdGlsLnNlcnZpY2UnO1xyXG5cclxuaW50ZXJmYWNlIERyb3BEb3duU2VydmljZVBhcmFtcyB7XHJcbiAgLyoqIHRoZSBjdXN0b20gYWN0aW9uIGZvcm1hdHRlciBjb21wb25lbnQgdGhhdCBjb250YWlucyB0aGUgZHJvcGRvd24gKi9cclxuICBjb21wb25lbnQ6IGFueTtcclxuXHJcbiAgLyoqIGhlbHAgdG8gZ2V0IHRoZSBkYXRhIGNvbnRleHQgKi9cclxuICBhcmdzOiBhbnk7XHJcblxyXG4gIC8qKiBwYXJlbnQgY29udGFpbmVyICovXHJcbiAgcGFyZW50OiBhbnk7XHJcblxyXG4gIC8qKiBPZmZzZXQgYm90dG9tIHdoZW4gdXNpbmcgYSBEcm9wIFVwLCBpZiB3ZSBuZWVkIHRvIHJlcG9zaXRpb24gdGhlIGRyb3Bkb3duIGNvbXBvbmVudCAqL1xyXG4gIG9mZnNldERyb3B1cEJvdHRvbT86IG51bWJlcjtcclxuXHJcbiAgLyoqIE9mZnNldCBsZWZ0IGlmIHdlIG5lZWQgdG8gcmVwb3NpdGlvbiB0aGUgZHJvcGRvd24gY29tcG9uZW50ICovXHJcbiAgb2Zmc2V0TGVmdD86IG51bWJlcjtcclxuXHJcbiAgLyoqIE9mZnNldCB0b3AgaWYgd2UgbmVlZCB0byByZXBvc2l0aW9uIHRoZSBkcm9wZG93biBjb21wb25lbnQgKi9cclxuICBvZmZzZXRUb3A/OiBudW1iZXI7XHJcbn1cclxuXHJcbi8vIHVzaW5nIGV4dGVybmFsIG5vbi10eXBlZCBqcyBsaWJyYXJpZXNcclxuZGVjbGFyZSBjb25zdCAkOiBhbnk7XHJcblxyXG4vLyBCb29zdHJhcCBkcm9wZG93biBzZXJ2aWNlXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJzRHJvcERvd25TZXJ2aWNlIHtcclxuICBwcml2YXRlIF9kb21Db250YWluZXJFbGVtZW50OiBhbnk7XHJcbiAgcHJpdmF0ZSBfZG9tRWxlbWVudDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFuZ3VsYXJVdGlsU2VydmljZTogQW5ndWxhclV0aWxTZXJ2aWNlKSB7IH1cclxuXHJcbiAgZ2V0IGRvbUVsZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZG9tRWxlbWVudDtcclxuICB9XHJcblxyXG4gIGdldCBkb21Db250YWluZXJFbGVtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RvbUNvbnRhaW5lckVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZ3JpZFZpZXdwb3J0KCkge1xyXG4gICAgcmV0dXJuICQoJy5zbGljay12aWV3cG9ydCcpO1xyXG4gIH1cclxuXHJcbiAgZGlzcG9zZSgpIHtcclxuICAgIGlmICh0aGlzLl9kb21FbGVtZW50ICYmIHRoaXMuX2RvbUVsZW1lbnQucmVtb3ZlKSB7XHJcbiAgICAgIHRoaXMuX2RvbUVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkcm9wQ29udGFpbmVyU2hvdygpIHtcclxuICAgIGlmICh0aGlzLl9kb21Db250YWluZXJFbGVtZW50ICYmIHRoaXMuX2RvbUNvbnRhaW5lckVsZW1lbnQuc2hvdykge1xyXG4gICAgICB0aGlzLl9kb21Db250YWluZXJFbGVtZW50LnNob3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlcihkcm9wZG93blBhcmFtczogRHJvcERvd25TZXJ2aWNlUGFyYW1zKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgY29uc3QgeyBjb21wb25lbnQsIGFyZ3MsIHBhcmVudCwgb2Zmc2V0VG9wLCBvZmZzZXRMZWZ0LCBvZmZzZXREcm9wdXBCb3R0b20gfSA9IGRyb3Bkb3duUGFyYW1zO1xyXG5cclxuICAgICAgY29uc3QgY2VsbCA9IGFyZ3MuY2VsbDtcclxuICAgICAgY29uc3Qgcm93ID0gYXJncy5yb3c7XHJcblxyXG4gICAgICB0aGlzLl9kb21Db250YWluZXJFbGVtZW50ID0gJChgI215RHJvcC1yJHtyb3d9LWMke2NlbGx9YCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5fZG9tQ29udGFpbmVyRWxlbWVudCkge1xyXG4gICAgICAgIC8vIGhpZGUgdGhlIGRyb3Bkb3duIHdlIGNyZWF0ZWQgYXMgYSBmb3JtYXR0ZXIgQ29tcG9uZW50LCB3ZSdsbCByZWRpc3BsYXkgaXQgbGF0ZXJcclxuICAgICAgICBjb25zdCBjZWxsUG9zID0gdGhpcy5fZG9tQ29udGFpbmVyRWxlbWVudC5vZmZzZXQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50T3V0cHV0ID0gdGhpcy5hbmd1bGFyVXRpbFNlcnZpY2UuY3JlYXRlQW5ndWxhckNvbXBvbmVudChjb21wb25lbnQpO1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEluc3RhbmNlID0gY29tcG9uZW50T3V0cHV0ICYmIGNvbXBvbmVudE91dHB1dC5jb21wb25lbnRSZWYgJiYgY29tcG9uZW50T3V0cHV0LmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuXHJcbiAgICAgICAgaWYgKGNvbXBvbmVudEluc3RhbmNlKSB7XHJcbiAgICAgICAgICBjb25zdCBteURyb3BJZCA9IGNvbXBvbmVudEluc3RhbmNlLmRyb3Bkb3duSWQgfHwgJ215RHJvcCc7XHJcbiAgICAgICAgICBjb25zdCBkcm9wRG93blRvZ2dsZUlkID0gY29tcG9uZW50SW5zdGFuY2UuZHJvcERvd25Ub2dnbGVJZCB8fCAnZHJvcGRvd25NZW51MSc7XHJcbiAgICAgICAgICB0aGlzLl9kb21FbGVtZW50ID0gJChgIyR7bXlEcm9wSWR9YCk7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuX2RvbUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRvIHJlbW92ZSBhbnkgcHJldmlvdXMgQWN0aW9uIGRyb3Bkb3duIGVsZW1lbnRzLCB0byBhdm9pZCBoYXZpbmcgbXVsdGlwbGUgZWxlbWVudCBvZiB0aGUgc2FtZSBvbiB0b3Agb2YgZWFjaCBvdGhlclxyXG4gICAgICAgICAgICB0aGlzLmRpc3Bvc2UoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGFzc2lnbiB0aGUgcm93IGRhdGEgdG8gdGhlIGRyb3Bkb3duIGNvbXBvbmVudCBpbnN0YW5jZVxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudEluc3RhbmNlLCB7IHBhcmVudCwgcm93OiBhcmdzLnJvdywgZGF0YUNvbnRleHQ6IGFyZ3MuZ3JpZC5nZXREYXRhSXRlbShhcmdzLnJvdykgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyB1c2UgYSBkZWxheSB0byBtYWtlIHN1cmUgQW5ndWxhciByYW4gYXQgbGVhc3QgYSBmdWxsIGN5Y2xlIGFuZCBtYWtlIHN1cmUgaXQgZmluaXNoZWQgcmVuZGVyaW5nIHRoZSBDb21wb25lbnQgYmVmb3JlIHVzaW5nIGl0XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIG5ldyBkcm9wZG93biBlbGVtZW50XHJcbiAgICAgICAgICAgICAgdGhpcy5fZG9tRWxlbWVudCA9ICQoY29tcG9uZW50T3V0cHV0LmRvbUVsZW1lbnQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRvcFBvcyA9IChjZWxsUG9zICYmIGNlbGxQb3MudG9wIHx8IDApICsgMzAgKyAob2Zmc2V0VG9wIHx8IDApO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxlZnRQb3MgPSAoY2VsbFBvcyAmJiBjZWxsUG9zLmxlZnQgfHwgMCkgKyAob2Zmc2V0TGVmdCB8fCAwKTtcclxuICAgICAgICAgICAgICB0aGlzLl9kb21FbGVtZW50LmFwcGVuZFRvKCdib2R5Jyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fZG9tRWxlbWVudC5jc3MoJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fZG9tRWxlbWVudC5jc3MoJ3RvcCcsIHRvcFBvcyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fZG9tRWxlbWVudC5jc3MoJ2xlZnQnLCBsZWZ0UG9zKTtcclxuICAgICAgICAgICAgICAkKGAjJHtteURyb3BJZH1gKS5hZGRDbGFzcygnb3BlbicpO1xyXG4gICAgICAgICAgICAgICQoYCMke2Ryb3BEb3duVG9nZ2xlSWR9YCkuaGlkZSgpO1xyXG5cclxuICAgICAgICAgICAgICAvLyBjaGVjayBpZiBpdCBzaG91bGQgZHJvcCBVcCBvciBEb3duXHJcbiAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gMzU7XHJcbiAgICAgICAgICAgICAgY29uc3QgaUVsZW1lbnQgPSAkKCcuZHJvcGRvd24tbWVudScpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGlFbGVtZW50V3JhcHBlciA9IGlFbGVtZW50LnBhcmVudCgpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGlFbGVtZW50V3JhcHBlck9mZnNldCA9IGlFbGVtZW50V3JhcHBlci5vZmZzZXQoKSB8fCB7fTtcclxuICAgICAgICAgICAgICBjb25zdCBpRWxlbWVudFdyYXBwZXJPZmZzZXRUb3AgPSBpRWxlbWVudFdyYXBwZXJPZmZzZXQudG9wIHx8IGlFbGVtZW50V3JhcHBlciAmJiBpRWxlbWVudFdyYXBwZXIubGVuZ3RoID4gMCAmJiBpRWxlbWVudFdyYXBwZXJbMF0ub2Zmc2V0VG9wO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGlFbGVtZW50SGVpZ2h0ID0gaUVsZW1lbnQuaGVpZ2h0KCk7XHJcbiAgICAgICAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNob3VsZERyb3BVcCA9ICh3aW5kb3dIZWlnaHQgLSBpRWxlbWVudEhlaWdodCAtIG9mZnNldCkgPCBpRWxlbWVudFdyYXBwZXJPZmZzZXRUb3A7XHJcbiAgICAgICAgICAgICAgbGV0IG1lbnVNYXJnaW5Ub3AgPSAnMHB4JztcclxuICAgICAgICAgICAgICBpZiAoc2hvdWxkRHJvcFVwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRCb3R0b20gPSBvZmZzZXREcm9wdXBCb3R0b20gfHwgMDtcclxuICAgICAgICAgICAgICAgIG1lbnVNYXJnaW5Ub3AgPSAnLScuY29uY2F0KGAke2lFbGVtZW50SGVpZ2h0ICsgb2Zmc2V0ICsgb2Zmc2V0Qm90dG9tICsgNX1gLCAncHgnKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5fZG9tRWxlbWVudC5jc3MoeyAnbWFyZ2luLXRvcCc6IG1lbnVNYXJnaW5Ub3AgfSk7XHJcblxyXG4gICAgICAgICAgICAgIC8vIHNldCBkcm9wZG93biBtYXJnaW4gbGVmdCBhY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50IHdpZHRoXHJcbiAgICAgICAgICAgICAgY29uc3QgcGFyZW50T2Zmc2V0ID0gaUVsZW1lbnRXcmFwcGVyT2Zmc2V0LmxlZnQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGVmdE1hcmdpbiA9IHBhcmVudE9mZnNldCAtICQoZG9jdW1lbnQpLndpZHRoKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fZG9tRWxlbWVudC5jc3MoeyAnbWFyZ2luLWxlZnQnOiAodGhpcy5fZG9tRWxlbWVudC53aWR0aCgpICsgbGVmdE1hcmdpbiArIDYwKSArICdweCcgfSk7XHJcblxyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kb21FbGVtZW50LmRyb3Bkb3duKCdzaG93Jyk7IC8vIHJlcXVpcmVkIGZvciBCb290c3RyYXAgNCBvbmx5XHJcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQm9vdHN0cmFwIDMgd2lsIHRocm93IGFuIGVycm9yIHNpbmNlIHRoYXQgbWV0aG9kIGRvZXNuJ3QgZXhpc3QsIHdlIGNhbiBzYWZlbHkgZGlzcmVnYXJkIGl0XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICB0aGlzLl9kb21FbGVtZW50Lm9uKCdoaWRkZW4uYnMuZHJvcGRvd24nLCAoKSA9PiB0aGlzLmRyb3BDb250YWluZXJTaG93KCkpO1xyXG5cclxuICAgICAgICAgICAgICAvLyBoaWRlIGRyb3Bkb3duIG1lbnUgb24gZ3JpZCBzY3JvbGxcclxuICAgICAgICAgICAgICB0aGlzLmdyaWRWaWV3cG9ydC5vbignc2Nyb2xsJywgKCkgPT4gdGhpcy5kaXNwb3NlKCkpO1xyXG5cclxuICAgICAgICAgICAgICAvLyBoaWRlIG9uIGRyb3Bkb3duIGNsaWNrXHJcbiAgICAgICAgICAgICAgdGhpcy5fZG9tRWxlbWVudC5vbignY2xpY2snLCAoKSA9PiB0aGlzLmRpc3Bvc2UoKSk7XHJcbiAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
export class ContainerService {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.dependencies = [];
|
|
5
|
-
}
|
|
6
|
-
get(key) {
|
|
7
|
-
const dependency = this.dependencies.find(dep => dep.key === key);
|
|
8
|
-
if (dependency === null || dependency === void 0 ? void 0 : dependency.instance) {
|
|
9
|
-
return dependency.instance;
|
|
10
|
-
}
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
registerInstance(key, instance) {
|
|
14
|
-
const dependency = this.dependencies.some(dep => dep.key === key);
|
|
15
|
-
if (!dependency) {
|
|
16
|
-
this.dependencies.push({ key, instance });
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
ContainerService.decorators = [
|
|
21
|
-
{ type: Injectable }
|
|
22
|
-
];
|
|
23
|
-
ContainerService.ctorParameters = () => [];
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYW5ndWxhci1zbGlja2dyaWQvc2VydmljZXMvY29udGFpbmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCO1FBRkEsaUJBQVksR0FBd0IsRUFBRSxDQUFDO0lBRXZCLENBQUM7SUFFakIsR0FBRyxDQUFVLEdBQVc7UUFDdEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLFFBQVEsRUFBRTtZQUN4QixPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDNUI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsUUFBYTtRQUN6QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDOzs7WUFuQkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udGFpbmVySW5zdGFuY2UsIENvbnRhaW5lclNlcnZpY2UgYXMgVW5pdmVyc2FsQ29udGFpbmVyU2VydmljZSB9IGZyb20gJ0BzbGlja2dyaWQtdW5pdmVyc2FsL2NvbW1vbic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb250YWluZXJTZXJ2aWNlIGltcGxlbWVudHMgVW5pdmVyc2FsQ29udGFpbmVyU2VydmljZSB7XHJcbiAgZGVwZW5kZW5jaWVzOiBDb250YWluZXJJbnN0YW5jZVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIGdldDxUID0gYW55PihrZXk6IHN0cmluZyk6IFQgfCBudWxsIHtcclxuICAgIGNvbnN0IGRlcGVuZGVuY3kgPSB0aGlzLmRlcGVuZGVuY2llcy5maW5kKGRlcCA9PiBkZXAua2V5ID09PSBrZXkpO1xyXG4gICAgaWYgKGRlcGVuZGVuY3k/Lmluc3RhbmNlKSB7XHJcbiAgICAgIHJldHVybiBkZXBlbmRlbmN5Lmluc3RhbmNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlckluc3RhbmNlKGtleTogc3RyaW5nLCBpbnN0YW5jZTogYW55KSB7XHJcbiAgICBjb25zdCBkZXBlbmRlbmN5ID0gdGhpcy5kZXBlbmRlbmNpZXMuc29tZShkZXAgPT4gZGVwLmtleSA9PT0ga2V5KTtcclxuICAgIGlmICghZGVwZW5kZW5jeSkge1xyXG4gICAgICB0aGlzLmRlcGVuZGVuY2llcy5wdXNoKHsga2V5LCBpbnN0YW5jZSB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
4
|
-
/**
|
|
5
|
-
* This is a Translate Service Wrapper for Slickgrid-Universal monorepo lib to work properly,
|
|
6
|
-
* it must implement Slickgrid-Universal TranslaterService interface to work properly
|
|
7
|
-
*/
|
|
8
|
-
export class TranslaterService {
|
|
9
|
-
constructor(translateService) {
|
|
10
|
-
this.translateService = translateService;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Method to return the current language used by the App
|
|
14
|
-
* @return {string} current language
|
|
15
|
-
*/
|
|
16
|
-
getCurrentLanguage() {
|
|
17
|
-
var _a, _b;
|
|
18
|
-
return (_b = (_a = this.translateService) === null || _a === void 0 ? void 0 : _a.currentLang) !== null && _b !== void 0 ? _b : '';
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Method to set the language to use in the App and Translate Service
|
|
22
|
-
* @param {string} language
|
|
23
|
-
* @return {Promise} output
|
|
24
|
-
*/
|
|
25
|
-
use(newLang) {
|
|
26
|
-
var _a, _b;
|
|
27
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
return (_b = (_a = this.translateService) === null || _a === void 0 ? void 0 : _a.use) === null || _b === void 0 ? void 0 : _b.call(_a, newLang);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Method which receives a translation key and returns the translated value assigned to that key
|
|
33
|
-
* @param {string} translation key
|
|
34
|
-
* @return {string} translated value
|
|
35
|
-
*/
|
|
36
|
-
translate(translationKey) {
|
|
37
|
-
var _a, _b;
|
|
38
|
-
return (_b = (_a = this.translateService) === null || _a === void 0 ? void 0 : _a.instant) === null || _b === void 0 ? void 0 : _b.call(_a, translationKey || ' ');
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
TranslaterService.decorators = [
|
|
42
|
-
{ type: Injectable }
|
|
43
|
-
];
|
|
44
|
-
TranslaterService.ctorParameters = () => [
|
|
45
|
-
{ type: TranslateService, decorators: [{ type: Optional }] }
|
|
46
|
-
];
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL3NlcnZpY2VzL3RyYW5zbGF0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdkQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUF5QyxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFJLENBQUM7SUFFaEY7OztPQUdHO0lBQ0gsa0JBQWtCOztRQUNoQixPQUFPLE1BQUEsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLDBDQUFFLFdBQVcsbUNBQUksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0csR0FBRyxDQUFDLE9BQWU7OztZQUN2QixPQUFPLE1BQUEsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLDBDQUFFLEdBQUcsbURBQUcsT0FBTyxDQUFDLENBQUM7O0tBQzlDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxjQUFzQjs7UUFDOUIsT0FBTyxNQUFBLE1BQUEsSUFBSSxDQUFDLGdCQUFnQiwwQ0FBRSxPQUFPLG1EQUFHLGNBQWMsSUFBSSxHQUFHLENBQVcsQ0FBQztJQUMzRSxDQUFDOzs7WUE1QkYsVUFBVTs7O1lBUEYsZ0JBQWdCLHVCQVNWLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZXJTZXJ2aWNlIGFzIFVuaXZlcnNhbFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAc2xpY2tncmlkLXVuaXZlcnNhbC9jb21tb24nO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgYSBUcmFuc2xhdGUgU2VydmljZSBXcmFwcGVyIGZvciBTbGlja2dyaWQtVW5pdmVyc2FsIG1vbm9yZXBvIGxpYiB0byB3b3JrIHByb3Blcmx5LFxyXG4gKiBpdCBtdXN0IGltcGxlbWVudCBTbGlja2dyaWQtVW5pdmVyc2FsIFRyYW5zbGF0ZXJTZXJ2aWNlIGludGVyZmFjZSB0byB3b3JrIHByb3Blcmx5XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVyU2VydmljZSBpbXBsZW1lbnRzIFVuaXZlcnNhbFRyYW5zbGF0ZVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZCB0byByZXR1cm4gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgdXNlZCBieSB0aGUgQXBwXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBjdXJyZW50IGxhbmd1YWdlXHJcbiAgICovXHJcbiAgZ2V0Q3VycmVudExhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlPy5jdXJyZW50TGFuZyA/PyAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZCB0byBzZXQgdGhlIGxhbmd1YWdlIHRvIHVzZSBpbiB0aGUgQXBwIGFuZCBUcmFuc2xhdGUgU2VydmljZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZVxyXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IG91dHB1dFxyXG4gICAqL1xyXG4gIGFzeW5jIHVzZShuZXdMYW5nOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZT8udXNlPy4obmV3TGFuZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2Qgd2hpY2ggcmVjZWl2ZXMgYSB0cmFuc2xhdGlvbiBrZXkgYW5kIHJldHVybnMgdGhlIHRyYW5zbGF0ZWQgdmFsdWUgYXNzaWduZWQgdG8gdGhhdCBrZXlcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHJhbnNsYXRpb24ga2V5XHJcbiAgICogQHJldHVybiB7c3RyaW5nfSB0cmFuc2xhdGVkIHZhbHVlXHJcbiAgICovXHJcbiAgdHJhbnNsYXRlKHRyYW5zbGF0aW9uS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZT8uaW5zdGFudD8uKHRyYW5zbGF0aW9uS2V5IHx8ICcgJykgYXMgc3RyaW5nO1xyXG4gIH1cclxufVxyXG4iXX0=
|