@po-ui/ng-templates 17.1.0 → 17.2.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/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs +46 -2
- package/fesm2022/po-ui-ng-templates.mjs +45 -1
- package/fesm2022/po-ui-ng-templates.mjs.map +1 -1
- package/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.d.ts +24 -0
- package/package.json +4 -4
- package/po-ui-ng-templates-17.2.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/po-ui-ng-templates-17.1.0.tgz +0 -0
package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs
CHANGED
|
@@ -159,7 +159,7 @@ export class PoPageDynamicListBaseComponent {
|
|
|
159
159
|
return this._fields;
|
|
160
160
|
}
|
|
161
161
|
set columns(value) {
|
|
162
|
-
this._columns = [...value];
|
|
162
|
+
this._columns = [...(this._columns = this.sortColumnsByOrder(value))];
|
|
163
163
|
}
|
|
164
164
|
get columns() {
|
|
165
165
|
return this._columns;
|
|
@@ -194,6 +194,50 @@ export class PoPageDynamicListBaseComponent {
|
|
|
194
194
|
this.keys = fields.filter(field => field.key === true).map(field => field.property);
|
|
195
195
|
this.duplicates = fields.filter(field => field.duplicate === true).map(field => field.property);
|
|
196
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Ordena um array de colunas com base na propriedade `order` de cada coluna.
|
|
199
|
+
*
|
|
200
|
+
* Este método é utilizado para organizar as colunas de uma tabela ou qualquer coleção similar
|
|
201
|
+
* que necessite de ordenação baseada em um critério numérico definido pela propriedade `order`.
|
|
202
|
+
* A ordenação segue as seguintes regras:
|
|
203
|
+
*
|
|
204
|
+
* 1. Colunas que possuem a propriedade `order` com um valor numérico válido e maior que zero
|
|
205
|
+
* são ordenadas em ordem crescente de acordo com este valor.
|
|
206
|
+
*
|
|
207
|
+
* 2. Colunas que não possuem a propriedade `order` ou que possuem um valor inválido ou não numérico
|
|
208
|
+
* para esta propriedade são consideradas iguais em termos de ordenação e mantêm a ordem original
|
|
209
|
+
* em que apareceram no array fornecido.
|
|
210
|
+
*
|
|
211
|
+
* 3. No caso de duas colunas com valores de `order` válidos e idênticos, a ordem entre essas duas colunas
|
|
212
|
+
* é determinada pela sua ordem original no array fornecido.
|
|
213
|
+
*
|
|
214
|
+
* @param columns Array de colunas a ser ordenado. Cada coluna é um objeto que pode conter uma propriedade `order`.
|
|
215
|
+
* O tipo `Array<any>` é utilizado aqui para permitir flexibilidade nos objetos de coluna que podem ser passados,
|
|
216
|
+
* mas espera-se que cada objeto tenha pelo menos uma propriedade `order` para a ordenação adequada.
|
|
217
|
+
*
|
|
218
|
+
* @returns Um novo array de colunas ordenado com base na propriedade `order`.
|
|
219
|
+
*/
|
|
220
|
+
sortColumnsByOrder(columns) {
|
|
221
|
+
return columns.sort((a, b) => {
|
|
222
|
+
// Checa se 'order' existe e é um número válido em ambos os objetos
|
|
223
|
+
const hasValidOrderA = 'order' in a && typeof a.order === 'number' && a.order > 0;
|
|
224
|
+
const hasValidOrderB = 'order' in b && typeof b.order === 'number' && b.order > 0;
|
|
225
|
+
// Se ambos têm 'order' válido, compara diretamente
|
|
226
|
+
if (hasValidOrderA && hasValidOrderB) {
|
|
227
|
+
return a.order - b.order;
|
|
228
|
+
}
|
|
229
|
+
// Se apenas A tem 'order' válido, A vem antes de B
|
|
230
|
+
if (hasValidOrderA) {
|
|
231
|
+
return -1;
|
|
232
|
+
}
|
|
233
|
+
// Se apenas B tem 'order' válido, B vem antes de A
|
|
234
|
+
if (hasValidOrderB) {
|
|
235
|
+
return 1;
|
|
236
|
+
}
|
|
237
|
+
// Se nenhum dos dois tem 'order' válido, mantém a ordem original (considerando como iguais neste contexto)
|
|
238
|
+
return 0;
|
|
239
|
+
});
|
|
240
|
+
}
|
|
197
241
|
static ɵfac = function PoPageDynamicListBaseComponent_Factory(t) { return new (t || PoPageDynamicListBaseComponent)(); };
|
|
198
242
|
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoPageDynamicListBaseComponent, inputs: { breadcrumb: [i0.ɵɵInputFlags.None, "p-breadcrumb", "breadcrumb"], serviceApi: [i0.ɵɵInputFlags.None, "p-service-api", "serviceApi"], title: [i0.ɵɵInputFlags.None, "p-title", "title"], autoRouter: [i0.ɵɵInputFlags.None, "p-auto-router", "autoRouter"], fields: [i0.ɵɵInputFlags.None, "p-fields", "fields"] }, outputs: { changeVisibleColumns: "p-change-visible-columns", columnRestoreManager: "p-restore-column-manager", sortBy: "p-sort-by" } });
|
|
199
243
|
}
|
|
@@ -224,4 +268,4 @@ export class PoPageDynamicListBaseComponent {
|
|
|
224
268
|
type: Input,
|
|
225
269
|
args: ['p-fields']
|
|
226
270
|
}] }); })();
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1keW5hbWljLWxpc3QtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtZHluYW1pYy10YWJsZS9wby1wYWdlLWR5bmFtaWMtbGlzdC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUtwRCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLDZDQUE2QztJQUN0QixVQUFVLEdBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBRWpFLHVEQUF1RDtJQUN2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwRUc7SUFDcUIsVUFBVSxDQUFTO0lBRTNDLHdCQUF3QjtJQUNOLEtBQUssQ0FBUztJQUVoQzs7Ozs7Ozs7T0FRRztJQUNpQyxvQkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUU3Rjs7Ozs7Ozs7T0FRRztJQUNpQyxvQkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUU3Rjs7Ozs7Ozs7Ozs7T0FXRztJQUNrQixNQUFNLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO0lBRTdGLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsUUFBUSxHQUFlLEVBQUUsQ0FBQztJQUMxQixXQUFXLEdBQWtCLEVBQUUsQ0FBQztJQUNoQyxPQUFPLEdBQWUsRUFBRSxDQUFDO0lBQ3pCLFFBQVEsR0FBZSxFQUFFLENBQUM7SUFDMUIsS0FBSyxHQUFrQixFQUFFLENB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SyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7d0ZBdE5VLDhCQUE4Qjs2REFBOUIsOEJBQThCOztpRkFBOUIsOEJBQThCO2NBRDFDLFNBQVM7Z0JBR2UsVUFBVTtrQkFBaEMsS0FBSzttQkFBQyxjQUFjO1lBOEVHLFVBQVU7a0JBQWpDLEtBQUs7bUJBQUMsZUFBZTtZQUdKLEtBQUs7a0JBQXRCLEtBQUs7bUJBQUMsU0FBUztZQVdvQixvQkFBb0I7a0JBQXZELE1BQU07bUJBQUMsMEJBQTBCO1lBV0Usb0JBQW9CO2tCQUF2RCxNQUFNO21CQUFDLDBCQUEwQjtZQWNiLE1BQU07a0JBQTFCLE1BQU07bUJBQUMsV0FBVztZQXNCUyxVQUFVO2tCQUFyQyxLQUFLO21CQUFDLGVBQWU7WUFrQkMsTUFBTTtrQkFBNUIsS0FBSzttQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuLCBQb0JyZWFkY3J1bWIsIFBvVGFibGVDb2x1bW5Tb3J0IH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvUGFnZUR5bmFtaWNUYWJsZUZpbHRlcnMgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1keW5hbWljLXRhYmxlLWZpbHRlcnMuaW50ZXJmYWNlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUG9QYWdlRHluYW1pY0xpc3RCYXNlQ29tcG9uZW50IHtcbiAgLyoqIE9iamV0byBjb20gcHJvcHJpZWRhZGVzIGRvIGJyZWFkY3J1bWIuICovXG4gIEBJbnB1dCgncC1icmVhZGNydW1iJykgYnJlYWRjcnVtYj86IFBvQnJlYWRjcnVtYiA9IHsgaXRlbXM6IFtdIH07XG5cbiAgLyoqIEVuZHBvaW50IGRhIEFQSSBkb3MgcmVjdXJzb3MgcXVlIHNlcsOjbyBleGliaWRvcy4gKi9cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFbmRwb2ludCB1c2FkbyBwZWxvIHRlbXBsYXRlIHBhcmEgcmVxdWlzacOnw6NvIGRvcyByZWN1cnNvcyBxdWUgc2Vyw6NvIGV4aWJpZG9zLlxuICAgKlxuICAgKiBBbyByZWFsaXphciByZXF1aXNpw6fDtWVzIGRlIGJ1c2NhLCBwb2RlbSBzZXIgZW52aWFkb3Mgb3MgcGFyw6JtZXRyb3MgKGNhc28gcG9zc3VhbSB2YWxvcik6IGBwYWdlYCwgYHBhZ2VTaXplYCwgYHNlYXJjaGAgZSBgb3JkZXJgLlxuICAgKlxuICAgKiBDYXNvIGEgY29sdW5hIGVzdGl2ZXIgb3JkZW5hZGEgZGVzY2VuZGVudGVtZW50ZSBzZXLDoSBlbnZpYWRhIGRhIHNlZ3VpbnRlIGZvcm1hOiBgLW5hbWVgLCBzZSBmb3Igb3JkZW5hZGFcbiAgICogYXNjZW5kZW50ZW1lbnRlIHNlcsOhIGVudmlhZGEgYXBlbmFzIGNvbSBvIG5vbWUgZGEgY29sdW5hLCBwb3IgZXhlbXBsbzogYG5hbWVgLlxuICAgKlxuICAgKiBFeGVtcGxvIGRlIHVtYSByZXF1aXNpw6fDo28gZGUgYnVzY2E6XG4gICAqXG4gICAqID4gYEdFVCB7ZW5kLXBvaW50fS97cmVzb3VyY2V9P3BhZ2U9MSZwYWdlU2l6ZT0xMCZzZWFyY2g9Y29tcG9uZW50cyZvcmRlcj0tbmFtZWBcbiAgICpcbiAgICogQ2FzbyBhIGHDp8OjbyBgcmVtb3ZlYCBlc3RpdmVyIGNvbmZpZ3VyYWRhLCBzZXLDoSBmZWl0byB1bWEgcmVxdWlzacOnw6NvIGRlIGV4Y2x1c8OjbyBuZXNzZSBtZXNtbyBlbmRwb2ludCBwYXNzYW5kbyBvcyBjYW1wb3NcbiAgICogc2V0YWRvcyBjb21vIGBrZXk6IHRydWVgLlxuICAgKlxuICAgKiA+IGBERUxFVEUge2VuZC1wb2ludH0ve2tleXN9YFxuICAgKlxuICAgKiBgYGBcbiAgICogIDxwby1wYWdlLWR5bmFtaWMtdGFibGVcbiAgICogICAgW3AtYWN0aW9uc109XCJ7IHJlbW92ZTogdHJ1ZSB9XCJcbiAgICogICAgW3AtZmllbGRzXT1cIlsgeyBwcm9wZXJ0eTogJ2lkJywga2V5OiB0cnVlIH0gXVwiXG4gICAqICAgIHAtc2VydmljZT1cIi9hcGkvcG8tc2FtcGxlcy92MS9wZW9wbGVcIlxuICAgKiAgICAuLi4+XG4gICAqICA8L3BvLXBhZ2UtZHluYW1pYy10YWJsZT5cbiAgICogYGBgXG4gICAqXG4gICAqIFJlc3F1aXNpw6fDo28gZGlzcGFyYWRhLCBvbmRlIGEgcHJvcHJpZWRhZGUgYGlkYCDDqSBpZ3VhbCBhIDI6XG4gICAqXG4gICAqIGBgYFxuICAgKiAgREVMRVRFIC9hcGkvcG8tc2FtcGxlcy92MS9wZW9wbGUvMiBIVFRQLzEuMVxuICAgKiAgSG9zdDogbG9jYWxob3N0OjQwMDBcbiAgICogIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcbiAgICogIEFjY2VwdDogYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpblxuICAgKiAgLi4uXG4gICAqIGBgYFxuICAgKlxuICAgKiBQYXJhIGEgYcOnw6NvIGByZW1vdmVBbGxgLCBzZXLDoSBmZWl0byB1bWEgcmVxdWlzacOnw6NvIGRlIGV4Y2x1c8OjbyBlbSBsb3RlIHBhcmEgZXNzZSBtZXNtbyBlbmRwb2ludCBwYXNzYW5kbywgdW1hIGxpc3RhXG4gICAqIGRlIG9iamV0b3MgY29tIG9zIGNhbXBvcyBzZXRhZG9zIGNvbW8gYGtleTogdHJ1ZWAgdmlhIGBwYXlsb2FkYC5cbiAgICpcbiAgICogPiBgREVMRVRFIHtlbmQtcG9pbnR9YFxuICAgKlxuICAgKiA+IGBQYXlsb2FkOiBbIHtrZXl9LCB7a2V5fSAuLi4ge2tleX0gXWBcbiAgICpcbiAgICogYGBgXG4gICAqICA8cG8tcGFnZS1keW5hbWljLXRhYmxlXG4gICAqICAgIFtwLWFjdGlvbnNdPVwieyByZW1vdmVBbGw6IHRydWUgfVwiXG4gICAqICAgIFtwLWZpZWxkc109XCJbIHsgcHJvcGVydHk6ICdpZCcsIGtleTogdHJ1ZSB9IF1cIlxuICAgKiAgICBwLXNlcnZpY2U9XCIvYXBpL3BvLXNhbXBsZXMvdjEvcGVvcGxlXCJcbiAgICogICAgLi4uPlxuICAgKiAgPC9wby1wYWdlLWR5bmFtaWMtdGFibGU+XG4gICAqIGBgYFxuICAgKlxuICAgKiBSZXNxdWlzacOnw6NvIGRpc3BhcmFkYSwgb25kZSBmb3JhbSBzZWxlY2lvbmFkb3MgMyBpdGVucyBwYXJhIHNlcmVtIHJlbW92aWRvczpcbiAgICpcbiAgICogYGBgXG4gICAqICBERUxFVEUgL2FwaS9wby1zYW1wbGVzL3YxL3Blb3BsZSBIVFRQLzEuMVxuICAgKiAgSG9zdDogbG9jYWxob3N0OjQwMDBcbiAgICogIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcbiAgICogIEFjY2VwdDogYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpblxuICAgKiAgLi4uXG4gICAqIGBgYFxuICAgKlxuICAgKiBSZXF1ZXN0IHBheWxvYWQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiBbe1wiaWRcIjoyfSx7XCJpZFwiOjR9LHtcImlkXCI6NX1dXG4gICAqIGBgYFxuICAgKlxuICAgKiA+IENhc28gZXN0ZWphIHVzYW5kbyBtZXRhZGFkb3MgY29tIG8gdGVtcGxhdGUsIHNlcsOhIGRpc3BhcmFkbyB1bWEgcmVxdWlzacOnw6NvIG5hIGluaWNpYWxpemHDp8OjbyBkbyB0ZW1wbGF0ZSBwYXJhIGJ1c2NhclxuICAgKiA+IG9zIG1ldGFkYWRvcyBkYSBww6FnaW5hIHBhc3NhbmRvIG8gdGlwbyBkbyBtZXRhZGFkbyBlc3BlcmFkbyBlIGEgdmVyc8OjbyBjYWNoZWFkYSBwZWxvIGJyb3dzZXIuXG4gICAqID5cbiAgICogPiBgR0VUIHtlbmQtcG9pbnR9L21ldGFkYXRhP3R5cGU9bGlzdCZ2ZXJzaW9uPXt2ZXJzaW9ufWBcbiAgICovXG4gIEBJbnB1dCgncC1zZXJ2aWNlLWFwaScpIHNlcnZpY2VBcGk6IHN0cmluZztcblxuICAvKiogVMOtdHVsbyBkYSBww6FnaW5hLiAqL1xuICBASW5wdXQoJ3AtdGl0bGUnKSB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gZmVjaGFyIG8gcG9wb3ZlciBkbyBnZXJlbmNpYWRvciBkZSBjb2x1bmFzIGFww7NzIGFsdGVyYXIgYXMgY29sdW5hcyB2aXPDrXZlaXMuXG4gICAqXG4gICAqIE8gY29tcG9uZW50ZSBlbnZpYSBjb21vIHBhcsOibWV0cm8gdW0gYXJyYXkgZGUgc3RyaW5nIGNvbSBhcyBjb2x1bmFzIHZpc8OtdmVpcyBhdHVhbGl6YWRhcy5cbiAgICogUG9yIGV4ZW1wbG86IFtcImlkQ2FyZFwiLCBcIm5hbWVcIiwgXCJoaXJlU3RhdHVzXCIsIFwiYWdlXCJdLlxuICAgKi9cbiAgQE91dHB1dCgncC1jaGFuZ2UtdmlzaWJsZS1jb2x1bW5zJykgY2hhbmdlVmlzaWJsZUNvbHVtbnMgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PHN0cmluZz4+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXZlbnRvIGRpc3BhcmFkbyBhbyBjbGljYXIgbm8gYm90w6NvIGRlIHJlc3RhdXJhciBwYWRyw6NvIG5vIGdlcmVuY2lhZG9yIGRlIGNvbHVuYXMuXG4gICAqXG4gICAqIE8gY29tcG9uZW50ZSBlbnZpYSBjb21vIHBhcsOibWV0cm8gdW0gYXJyYXkgZGUgc3RyaW5nIGNvbSBhcyBjb2x1bmFzIGNvbmZpZ3VyYWRhcyBpbmljaWFsbWVudGUuXG4gICAqIFBvciBleGVtcGxvOiBbXCJpZENhcmRcIiwgXCJuYW1lXCIsIFwiaGlyZVN0YXR1c1wiLCBcImFnZVwiXS5cbiAgICovXG4gIEBPdXRwdXQoJ3AtcmVzdG9yZS1jb2x1bW4tbWFuYWdlcicpIGNvbHVtblJlc3RvcmVNYW5hZ2VyID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxTdHJpbmc+PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBleGVjdXRhZG8gYW8gb3JkZW5hciBjb2x1bmFzIGRhIHRhYmVsYS5cbiAgICpcbiAgICogUmVjZWJlIHVtIG9iamV0byBgeyBjb2x1bW4sIHR5cGUgfWAgb25kZTpcbiAgICpcbiAgICogLSBjb2x1bW4gKGBQb1RhYmxlQ29sdW1uYCk6IG9iamV0byBkYSBjb2x1bmEgcXVlIGZvaSBjbGljYWRhL29yZGVuYWRhLlxuICAgKiAtIHR5cGUgKGBQb1RhYmxlQ29sdW1uU29ydFR5cGVgKTogdGlwbyBkYSBvcmRlbmHDp8Ojby5cbiAgICovXG4gIEBPdXRwdXQoJ3Atc29ydC1ieScpIHNvcnRCeTogRXZlbnRFbWl0dGVyPFBvVGFibGVDb2x1bW5Tb3J0PiA9IG5ldyBFdmVudEVtaXR0ZXI8UG9UYWJsZUNvbHVtblNvcnQ+KCk7XG5cbiAgcHJpdmF0ZSBfYXV0b1JvdXRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9jb2x1bW5zOiBBcnJheTxhbnk+ID0gW107XG4gIHByaXZhdGUgX2R1cGxpY2F0ZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgcHJpdmF0ZSBfZmllbGRzOiBBcnJheTxhbnk+ID0gW107XG4gIHByaXZhdGUgX2ZpbHRlcnM6IEFycmF5PGFueT4gPSBbXTtcbiAgcHJpdmF0ZSBfa2V5czogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIENyaWEgYXV0b21hdGljYW1lbnRlIGFzIHJvdGFzIGRlIGVkacOnw6NvIChub3ZvL2R1cGxpY2F0ZSkgZSBkZXRhbGhlcyBjYXNvIHNlamFtIGRlZmluaWRhcyBhw6fDtWVzIG5hIHByb3ByaWVkYWRlIGBwLWFjdGlvbnNgXG4gICAqXG4gICAqIEFzIHJvdGFzIGNyaWFkYXMgc2Vyw6NvIGJhc2VhZGFzIG5hIHByb3ByaWVkYWRlIGBwLWFjdGlvbnNgLlxuICAgKlxuICAgKiA+IFBhcmEgbyBjb3JyZXRvIGZ1bmNpb25hbWVudG8gbsOjbyBwb2RlIGhhdmVyIG5lbmh1bWEgcm90YSBjb3JpbmdhIChgKipgKSBlc3BlY2lmaWNhZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoJ3AtYXV0by1yb3V0ZXInKSBzZXQgYXV0b1JvdXRlcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2F1dG9Sb3V0ZXIgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBhdXRvUm91dGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hdXRvUm91dGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGlzdGEgZG9zIGNhbXBvcyB1c2Fkb3MgbmEgdGFiZWxhIGUgYnVzY2EgYXZhbsOnYWRhLlxuICAgKlxuICAgKlxuICAgKiA+IENhc28gbsOjbyBzZWphIGRlZmluaWRvIGZpZWxkcyBhIHRhYmVsYSBhc3N1bWlyw6EgbyBjb21wb3J0YW1lbnRvIHBhZHLDo28uXG4gICAqL1xuICBASW5wdXQoJ3AtZmllbGRzJykgc2V0IGZpZWxkcyhmaWVsZHM6IEFycmF5PFBvUGFnZUR5bmFtaWNUYWJsZUZpbHRlcnM+KSB7XG4gICAgdGhpcy5fZmllbGRzID0gQXJyYXkuaXNBcnJheShmaWVsZHMpID8gWy4uLmZpZWxkc10gOiBbXTtcblxuICAgIHRoaXMuc2V0RmllbGRzUHJvcGVydGllcyh0aGlzLmZpZWxkcyk7XG4gIH1cblxuICBnZXQgZmllbGRzKCk6IEFycmF5PFBvUGFnZUR5bmFtaWNUYWJsZUZpbHRlcnM+IHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGRzO1xuICB9XG5cbiAgc2V0IGNvbHVtbnModmFsdWUpIHtcbiAgICB0aGlzLl9jb2x1bW5zID0gWy4uLnZhbHVlXTtcbiAgfVxuXG4gIGdldCBjb2x1bW5zKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zO1xuICB9XG5cbiAgc2V0IGR1cGxpY2F0ZXModmFsdWU6IEFycmF5PHN0cmluZz4pIHtcbiAgICB0aGlzLl9kdXBsaWNhdGVzID0gWy4uLnZhbHVlXTtcbiAgfVxuXG4gIGdldCBkdXBsaWNhdGVzKCkge1xuICAgIHJldHVybiB0aGlzLl9kdXBsaWNhdGVzO1xuICB9XG5cbiAgc2V0IGZpbHRlcnModmFsdWU6IEFycmF5PFBvUGFnZUR5bmFtaWNUYWJsZUZpbHRlcnM+KSB7XG4gICAgdGhpcy5fZmlsdGVycyA9IFsuLi52YWx1ZV07XG4gIH1cblxuICBnZXQgZmlsdGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVycztcbiAgfVxuXG4gIHNldCBrZXlzKHZhbHVlOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fa2V5cyA9IFsuLi52YWx1ZV07XG4gIH1cblxuICBnZXQga2V5cygpIHtcbiAgICByZXR1cm4gdGhpcy5fa2V5cztcbiAgfVxuXG4gIHByaXZhdGUgc2V0RmllbGRzUHJvcGVydGllcyhmaWVsZHM6IEFycmF5PGFueT4pIHtcbiAgICBsZXQgdmlzaWJsZUZpbHRlcjogYm9vbGVhbjtcbiAgICB0aGlzLmZpbHRlcnMgPSBmaWVsZHNcbiAgICAgIC5maWx0ZXIoZmllbGQgPT4gZmllbGQuZmlsdGVyID09PSB0cnVlKVxuICAgICAgLm1hcChmaWx0ZXJGaWVsZCA9PiB7XG4gICAgICAgIHZpc2libGVGaWx0ZXIgPSAhKGZpbHRlckZpZWxkLmluaXRWYWx1ZSAmJiBmaWx0ZXJGaWVsZC5maXhlZCk7XG4gICAgICAgIHJldHVybiB7IC4uLmZpbHRlckZpZWxkLCB2aXNpYmxlOiB2aXNpYmxlRmlsdGVyIH07XG4gICAgICB9KTtcbiAgICB0aGlzLmNvbHVtbnMgPSBmaWVsZHMuZmlsdGVyKFxuICAgICAgZmllbGQgPT4gZmllbGQudmlzaWJsZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkLnZpc2libGUgPT09IHRydWUgfHwgZmllbGQuYWxsb3dDb2x1bW5zTWFuYWdlciA9PT0gdHJ1ZVxuICAgICk7XG4gICAgdGhpcy5rZXlzID0gZmllbGRzLmZpbHRlcihmaWVsZCA9PiBmaWVsZC5rZXkgPT09IHRydWUpLm1hcChmaWVsZCA9PiBmaWVsZC5wcm9wZXJ0eSk7XG4gICAgdGhpcy5kdXBsaWNhdGVzID0gZmllbGRzLmZpbHRlcihmaWVsZCA9PiBmaWVsZC5kdXBsaWNhdGUgPT09IHRydWUpLm1hcChmaWVsZCA9PiBmaWVsZC5wcm9wZXJ0eSk7XG4gIH1cbn1cbiJdfQ==
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1keW5hbWljLWxpc3QtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtZHluYW1pYy10YWJsZS9wby1wYWdlLWR5bmFtaWMtbGlzdC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUtwRCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLDZDQUE2QztJQUN0QixVQUFVLEdBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBRWpFLHVEQUF1RDtJQUN2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwRUc7SUFDcUIsVUFBVSxDQUFTO0lBRTNDLHdCQUF3QjtJQUNOLEtBQUssQ0FBUztJQUVoQzs7Ozs7Ozs7T0FRRztJQUNpQyxvQkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUU3Rjs7Ozs7Ozs7T0FRRztJQUNpQyxvQkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUU3Rjs7Ozs7Ozs7Ozs7T0FXRztJQUNrQixNQUFNLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO0lBRTdGLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsUUFBUSxHQUFlLEVBQUUsQ0FBQztJQUMxQixXQUFXLEdBQWtCLEVBQUUsQ0FBQztJQUNoQyxPQUFPLEdBQWUsRUFBRSxDQUFDO0lBQ3pCLFFBQVEsR0FBZSxFQUFFLENBQUM7SUFDMUIsS0FBSyxHQUFrQixFQUFFLENB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O21CQUFDLDBCQUEwQjtZQVdFLG9CQUFvQjtrQkFBdkQsTUFBTTttQkFBQywwQkFBMEI7WUFjYixNQUFNO2tCQUExQixNQUFNO21CQUFDLFdBQVc7WUFzQlMsVUFBVTtrQkFBckMsS0FBSzttQkFBQyxlQUFlO1lBa0JDLE1BQU07a0JBQTVCLEtBQUs7bUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBEaXJlY3RpdmUsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElucHV0Qm9vbGVhbiwgUG9CcmVhZGNydW1iLCBQb1RhYmxlQ29sdW1uU29ydCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljVGFibGVGaWx0ZXJzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXBhZ2UtZHluYW1pYy10YWJsZS1maWx0ZXJzLmludGVyZmFjZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFBvUGFnZUR5bmFtaWNMaXN0QmFzZUNvbXBvbmVudCB7XG4gIC8qKiBPYmpldG8gY29tIHByb3ByaWVkYWRlcyBkbyBicmVhZGNydW1iLiAqL1xuICBASW5wdXQoJ3AtYnJlYWRjcnVtYicpIGJyZWFkY3J1bWI/OiBQb0JyZWFkY3J1bWIgPSB7IGl0ZW1zOiBbXSB9O1xuXG4gIC8qKiBFbmRwb2ludCBkYSBBUEkgZG9zIHJlY3Vyc29zIHF1ZSBzZXLDo28gZXhpYmlkb3MuICovXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRW5kcG9pbnQgdXNhZG8gcGVsbyB0ZW1wbGF0ZSBwYXJhIHJlcXVpc2nDp8OjbyBkb3MgcmVjdXJzb3MgcXVlIHNlcsOjbyBleGliaWRvcy5cbiAgICpcbiAgICogQW8gcmVhbGl6YXIgcmVxdWlzacOnw7VlcyBkZSBidXNjYSwgcG9kZW0gc2VyIGVudmlhZG9zIG9zIHBhcsOibWV0cm9zIChjYXNvIHBvc3N1YW0gdmFsb3IpOiBgcGFnZWAsIGBwYWdlU2l6ZWAsIGBzZWFyY2hgIGUgYG9yZGVyYC5cbiAgICpcbiAgICogQ2FzbyBhIGNvbHVuYSBlc3RpdmVyIG9yZGVuYWRhIGRlc2NlbmRlbnRlbWVudGUgc2Vyw6EgZW52aWFkYSBkYSBzZWd1aW50ZSBmb3JtYTogYC1uYW1lYCwgc2UgZm9yIG9yZGVuYWRhXG4gICAqIGFzY2VuZGVudGVtZW50ZSBzZXLDoSBlbnZpYWRhIGFwZW5hcyBjb20gbyBub21lIGRhIGNvbHVuYSwgcG9yIGV4ZW1wbG86IGBuYW1lYC5cbiAgICpcbiAgICogRXhlbXBsbyBkZSB1bWEgcmVxdWlzacOnw6NvIGRlIGJ1c2NhOlxuICAgKlxuICAgKiA+IGBHRVQge2VuZC1wb2ludH0ve3Jlc291cmNlfT9wYWdlPTEmcGFnZVNpemU9MTAmc2VhcmNoPWNvbXBvbmVudHMmb3JkZXI9LW5hbWVgXG4gICAqXG4gICAqIENhc28gYSBhw6fDo28gYHJlbW92ZWAgZXN0aXZlciBjb25maWd1cmFkYSwgc2Vyw6EgZmVpdG8gdW1hIHJlcXVpc2nDp8OjbyBkZSBleGNsdXPDo28gbmVzc2UgbWVzbW8gZW5kcG9pbnQgcGFzc2FuZG8gb3MgY2FtcG9zXG4gICAqIHNldGFkb3MgY29tbyBga2V5OiB0cnVlYC5cbiAgICpcbiAgICogPiBgREVMRVRFIHtlbmQtcG9pbnR9L3trZXlzfWBcbiAgICpcbiAgICogYGBgXG4gICAqICA8cG8tcGFnZS1keW5hbWljLXRhYmxlXG4gICAqICAgIFtwLWFjdGlvbnNdPVwieyByZW1vdmU6IHRydWUgfVwiXG4gICAqICAgIFtwLWZpZWxkc109XCJbIHsgcHJvcGVydHk6ICdpZCcsIGtleTogdHJ1ZSB9IF1cIlxuICAgKiAgICBwLXNlcnZpY2U9XCIvYXBpL3BvLXNhbXBsZXMvdjEvcGVvcGxlXCJcbiAgICogICAgLi4uPlxuICAgKiAgPC9wby1wYWdlLWR5bmFtaWMtdGFibGU+XG4gICAqIGBgYFxuICAgKlxuICAgKiBSZXNxdWlzacOnw6NvIGRpc3BhcmFkYSwgb25kZSBhIHByb3ByaWVkYWRlIGBpZGAgw6kgaWd1YWwgYSAyOlxuICAgKlxuICAgKiBgYGBcbiAgICogIERFTEVURSAvYXBpL3BvLXNhbXBsZXMvdjEvcGVvcGxlLzIgSFRUUC8xLjFcbiAgICogIEhvc3Q6IGxvY2FsaG9zdDo0MDAwXG4gICAqICBDb25uZWN0aW9uOiBrZWVwLWFsaXZlXG4gICAqICBBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW5cbiAgICogIC4uLlxuICAgKiBgYGBcbiAgICpcbiAgICogUGFyYSBhIGHDp8OjbyBgcmVtb3ZlQWxsYCwgc2Vyw6EgZmVpdG8gdW1hIHJlcXVpc2nDp8OjbyBkZSBleGNsdXPDo28gZW0gbG90ZSBwYXJhIGVzc2UgbWVzbW8gZW5kcG9pbnQgcGFzc2FuZG8sIHVtYSBsaXN0YVxuICAgKiBkZSBvYmpldG9zIGNvbSBvcyBjYW1wb3Mgc2V0YWRvcyBjb21vIGBrZXk6IHRydWVgIHZpYSBgcGF5bG9hZGAuXG4gICAqXG4gICAqID4gYERFTEVURSB7ZW5kLXBvaW50fWBcbiAgICpcbiAgICogPiBgUGF5bG9hZDogWyB7a2V5fSwge2tleX0gLi4uIHtrZXl9IF1gXG4gICAqXG4gICAqIGBgYFxuICAgKiAgPHBvLXBhZ2UtZHluYW1pYy10YWJsZVxuICAgKiAgICBbcC1hY3Rpb25zXT1cInsgcmVtb3ZlQWxsOiB0cnVlIH1cIlxuICAgKiAgICBbcC1maWVsZHNdPVwiWyB7IHByb3BlcnR5OiAnaWQnLCBrZXk6IHRydWUgfSBdXCJcbiAgICogICAgcC1zZXJ2aWNlPVwiL2FwaS9wby1zYW1wbGVzL3YxL3Blb3BsZVwiXG4gICAqICAgIC4uLj5cbiAgICogIDwvcG8tcGFnZS1keW5hbWljLXRhYmxlPlxuICAgKiBgYGBcbiAgICpcbiAgICogUmVzcXVpc2nDp8OjbyBkaXNwYXJhZGEsIG9uZGUgZm9yYW0gc2VsZWNpb25hZG9zIDMgaXRlbnMgcGFyYSBzZXJlbSByZW1vdmlkb3M6XG4gICAqXG4gICAqIGBgYFxuICAgKiAgREVMRVRFIC9hcGkvcG8tc2FtcGxlcy92MS9wZW9wbGUgSFRUUC8xLjFcbiAgICogIEhvc3Q6IGxvY2FsaG9zdDo0MDAwXG4gICAqICBDb25uZWN0aW9uOiBrZWVwLWFsaXZlXG4gICAqICBBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW5cbiAgICogIC4uLlxuICAgKiBgYGBcbiAgICpcbiAgICogUmVxdWVzdCBwYXlsb2FkOlxuICAgKlxuICAgKiBgYGBcbiAgICogW3tcImlkXCI6Mn0se1wiaWRcIjo0fSx7XCJpZFwiOjV9XVxuICAgKiBgYGBcbiAgICpcbiAgICogPiBDYXNvIGVzdGVqYSB1c2FuZG8gbWV0YWRhZG9zIGNvbSBvIHRlbXBsYXRlLCBzZXLDoSBkaXNwYXJhZG8gdW1hIHJlcXVpc2nDp8OjbyBuYSBpbmljaWFsaXphw6fDo28gZG8gdGVtcGxhdGUgcGFyYSBidXNjYXJcbiAgICogPiBvcyBtZXRhZGFkb3MgZGEgcMOhZ2luYSBwYXNzYW5kbyBvIHRpcG8gZG8gbWV0YWRhZG8gZXNwZXJhZG8gZSBhIHZlcnPDo28gY2FjaGVhZGEgcGVsbyBicm93c2VyLlxuICAgKiA+XG4gICAqID4gYEdFVCB7ZW5kLXBvaW50fS9tZXRhZGF0YT90eXBlPWxpc3QmdmVyc2lvbj17dmVyc2lvbn1gXG4gICAqL1xuICBASW5wdXQoJ3Atc2VydmljZS1hcGknKSBzZXJ2aWNlQXBpOiBzdHJpbmc7XG5cbiAgLyoqIFTDrXR1bG8gZGEgcMOhZ2luYS4gKi9cbiAgQElucHV0KCdwLXRpdGxlJykgdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIGZlY2hhciBvIHBvcG92ZXIgZG8gZ2VyZW5jaWFkb3IgZGUgY29sdW5hcyBhcMOzcyBhbHRlcmFyIGFzIGNvbHVuYXMgdmlzw612ZWlzLlxuICAgKlxuICAgKiBPIGNvbXBvbmVudGUgZW52aWEgY29tbyBwYXLDom1ldHJvIHVtIGFycmF5IGRlIHN0cmluZyBjb20gYXMgY29sdW5hcyB2aXPDrXZlaXMgYXR1YWxpemFkYXMuXG4gICAqIFBvciBleGVtcGxvOiBbXCJpZENhcmRcIiwgXCJuYW1lXCIsIFwiaGlyZVN0YXR1c1wiLCBcImFnZVwiXS5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlLXZpc2libGUtY29sdW1ucycpIGNoYW5nZVZpc2libGVDb2x1bW5zID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxzdHJpbmc+PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gY2xpY2FyIG5vIGJvdMOjbyBkZSByZXN0YXVyYXIgcGFkcsOjbyBubyBnZXJlbmNpYWRvciBkZSBjb2x1bmFzLlxuICAgKlxuICAgKiBPIGNvbXBvbmVudGUgZW52aWEgY29tbyBwYXLDom1ldHJvIHVtIGFycmF5IGRlIHN0cmluZyBjb20gYXMgY29sdW5hcyBjb25maWd1cmFkYXMgaW5pY2lhbG1lbnRlLlxuICAgKiBQb3IgZXhlbXBsbzogW1wiaWRDYXJkXCIsIFwibmFtZVwiLCBcImhpcmVTdGF0dXNcIiwgXCJhZ2VcIl0uXG4gICAqL1xuICBAT3V0cHV0KCdwLXJlc3RvcmUtY29sdW1uLW1hbmFnZXInKSBjb2x1bW5SZXN0b3JlTWFuYWdlciA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8U3RyaW5nPj4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZXhlY3V0YWRvIGFvIG9yZGVuYXIgY29sdW5hcyBkYSB0YWJlbGEuXG4gICAqXG4gICAqIFJlY2ViZSB1bSBvYmpldG8gYHsgY29sdW1uLCB0eXBlIH1gIG9uZGU6XG4gICAqXG4gICAqIC0gY29sdW1uIChgUG9UYWJsZUNvbHVtbmApOiBvYmpldG8gZGEgY29sdW5hIHF1ZSBmb2kgY2xpY2FkYS9vcmRlbmFkYS5cbiAgICogLSB0eXBlIChgUG9UYWJsZUNvbHVtblNvcnRUeXBlYCk6IHRpcG8gZGEgb3JkZW5hw6fDo28uXG4gICAqL1xuICBAT3V0cHV0KCdwLXNvcnQtYnknKSBzb3J0Qnk6IEV2ZW50RW1pdHRlcjxQb1RhYmxlQ29sdW1uU29ydD4gPSBuZXcgRXZlbnRFbWl0dGVyPFBvVGFibGVDb2x1bW5Tb3J0PigpO1xuXG4gIHByaXZhdGUgX2F1dG9Sb3V0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY29sdW1uczogQXJyYXk8YW55PiA9IFtdO1xuICBwcml2YXRlIF9kdXBsaWNhdGVzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIHByaXZhdGUgX2ZpZWxkczogQXJyYXk8YW55PiA9IFtdO1xuICBwcml2YXRlIF9maWx0ZXJzOiBBcnJheTxhbnk+ID0gW107XG4gIHByaXZhdGUgX2tleXM6IEFycmF5PHN0cmluZz4gPSBbXTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBDcmlhIGF1dG9tYXRpY2FtZW50ZSBhcyByb3RhcyBkZSBlZGnDp8OjbyAobm92by9kdXBsaWNhdGUpIGUgZGV0YWxoZXMgY2FzbyBzZWphbSBkZWZpbmlkYXMgYcOnw7VlcyBuYSBwcm9wcmllZGFkZSBgcC1hY3Rpb25zYFxuICAgKlxuICAgKiBBcyByb3RhcyBjcmlhZGFzIHNlcsOjbyBiYXNlYWRhcyBuYSBwcm9wcmllZGFkZSBgcC1hY3Rpb25zYC5cbiAgICpcbiAgICogPiBQYXJhIG8gY29ycmV0byBmdW5jaW9uYW1lbnRvIG7Do28gcG9kZSBoYXZlciBuZW5odW1hIHJvdGEgY29yaW5nYSAoYCoqYCkgZXNwZWNpZmljYWRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCdwLWF1dG8tcm91dGVyJykgc2V0IGF1dG9Sb3V0ZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hdXRvUm91dGVyID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gIH1cblxuICBnZXQgYXV0b1JvdXRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b1JvdXRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIExpc3RhIGRvcyBjYW1wb3MgdXNhZG9zIG5hIHRhYmVsYSBlIGJ1c2NhIGF2YW7Dp2FkYS5cbiAgICpcbiAgICpcbiAgICogPiBDYXNvIG7Do28gc2VqYSBkZWZpbmlkbyBmaWVsZHMgYSB0YWJlbGEgYXNzdW1pcsOhIG8gY29tcG9ydGFtZW50byBwYWRyw6NvLlxuICAgKi9cbiAgQElucHV0KCdwLWZpZWxkcycpIHNldCBmaWVsZHMoZmllbGRzOiBBcnJheTxQb1BhZ2VEeW5hbWljVGFibGVGaWx0ZXJzPikge1xuICAgIHRoaXMuX2ZpZWxkcyA9IEFycmF5LmlzQXJyYXkoZmllbGRzKSA/IFsuLi5maWVsZHNdIDogW107XG5cbiAgICB0aGlzLnNldEZpZWxkc1Byb3BlcnRpZXModGhpcy5maWVsZHMpO1xuICB9XG5cbiAgZ2V0IGZpZWxkcygpOiBBcnJheTxQb1BhZ2VEeW5hbWljVGFibGVGaWx0ZXJzPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkcztcbiAgfVxuXG4gIHNldCBjb2x1bW5zKHZhbHVlKSB7XG4gICAgdGhpcy5fY29sdW1ucyA9IFsuLi4odGhpcy5fY29sdW1ucyA9IHRoaXMuc29ydENvbHVtbnNCeU9yZGVyKHZhbHVlKSldO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gIH1cblxuICBzZXQgZHVwbGljYXRlcyh2YWx1ZTogQXJyYXk8c3RyaW5nPikge1xuICAgIHRoaXMuX2R1cGxpY2F0ZXMgPSBbLi4udmFsdWVdO1xuICB9XG5cbiAgZ2V0IGR1cGxpY2F0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2R1cGxpY2F0ZXM7XG4gIH1cblxuICBzZXQgZmlsdGVycyh2YWx1ZTogQXJyYXk8UG9QYWdlRHluYW1pY1RhYmxlRmlsdGVycz4pIHtcbiAgICB0aGlzLl9maWx0ZXJzID0gWy4uLnZhbHVlXTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzO1xuICB9XG5cbiAgc2V0IGtleXModmFsdWU6IEFycmF5PHN0cmluZz4pIHtcbiAgICB0aGlzLl9rZXlzID0gWy4uLnZhbHVlXTtcbiAgfVxuXG4gIGdldCBrZXlzKCkge1xuICAgIHJldHVybiB0aGlzLl9rZXlzO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaWVsZHNQcm9wZXJ0aWVzKGZpZWxkczogQXJyYXk8YW55Pikge1xuICAgIGxldCB2aXNpYmxlRmlsdGVyOiBib29sZWFuO1xuICAgIHRoaXMuZmlsdGVycyA9IGZpZWxkc1xuICAgICAgLmZpbHRlcihmaWVsZCA9PiBmaWVsZC5maWx0ZXIgPT09IHRydWUpXG4gICAgICAubWFwKGZpbHRlckZpZWxkID0+IHtcbiAgICAgICAgdmlzaWJsZUZpbHRlciA9ICEoZmlsdGVyRmllbGQuaW5pdFZhbHVlICYmIGZpbHRlckZpZWxkLmZpeGVkKTtcbiAgICAgICAgcmV0dXJuIHsgLi4uZmlsdGVyRmllbGQsIHZpc2libGU6IHZpc2libGVGaWx0ZXIgfTtcbiAgICAgIH0pO1xuICAgIHRoaXMuY29sdW1ucyA9IGZpZWxkcy5maWx0ZXIoXG4gICAgICBmaWVsZCA9PiBmaWVsZC52aXNpYmxlID09PSB1bmRlZmluZWQgfHwgZmllbGQudmlzaWJsZSA9PT0gdHJ1ZSB8fCBmaWVsZC5hbGxvd0NvbHVtbnNNYW5hZ2VyID09PSB0cnVlXG4gICAgKTtcbiAgICB0aGlzLmtleXMgPSBmaWVsZHMuZmlsdGVyKGZpZWxkID0+IGZpZWxkLmtleSA9PT0gdHJ1ZSkubWFwKGZpZWxkID0+IGZpZWxkLnByb3BlcnR5KTtcbiAgICB0aGlzLmR1cGxpY2F0ZXMgPSBmaWVsZHMuZmlsdGVyKGZpZWxkID0+IGZpZWxkLmR1cGxpY2F0ZSA9PT0gdHJ1ZSkubWFwKGZpZWxkID0+IGZpZWxkLnByb3BlcnR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcmRlbmEgdW0gYXJyYXkgZGUgY29sdW5hcyBjb20gYmFzZSBuYSBwcm9wcmllZGFkZSBgb3JkZXJgIGRlIGNhZGEgY29sdW5hLlxuICAgKlxuICAgKiBFc3RlIG3DqXRvZG8gw6kgdXRpbGl6YWRvIHBhcmEgb3JnYW5pemFyIGFzIGNvbHVuYXMgZGUgdW1hIHRhYmVsYSBvdSBxdWFscXVlciBjb2xlw6fDo28gc2ltaWxhclxuICAgKiBxdWUgbmVjZXNzaXRlIGRlIG9yZGVuYcOnw6NvIGJhc2VhZGEgZW0gdW0gY3JpdMOpcmlvIG51bcOpcmljbyBkZWZpbmlkbyBwZWxhIHByb3ByaWVkYWRlIGBvcmRlcmAuXG4gICAqIEEgb3JkZW5hw6fDo28gc2VndWUgYXMgc2VndWludGVzIHJlZ3JhczpcbiAgICpcbiAgICogMS4gQ29sdW5hcyBxdWUgcG9zc3VlbSBhIHByb3ByaWVkYWRlIGBvcmRlcmAgY29tIHVtIHZhbG9yIG51bcOpcmljbyB2w6FsaWRvIGUgbWFpb3IgcXVlIHplcm9cbiAgICogICAgc8OjbyBvcmRlbmFkYXMgZW0gb3JkZW0gY3Jlc2NlbnRlIGRlIGFjb3JkbyBjb20gZXN0ZSB2YWxvci5cbiAgICpcbiAgICogMi4gQ29sdW5hcyBxdWUgbsOjbyBwb3NzdWVtIGEgcHJvcHJpZWRhZGUgYG9yZGVyYCBvdSBxdWUgcG9zc3VlbSB1bSB2YWxvciBpbnbDoWxpZG8gb3UgbsOjbyBudW3DqXJpY29cbiAgICogICAgcGFyYSBlc3RhIHByb3ByaWVkYWRlIHPDo28gY29uc2lkZXJhZGFzIGlndWFpcyBlbSB0ZXJtb3MgZGUgb3JkZW5hw6fDo28gZSBtYW50w6ptIGEgb3JkZW0gb3JpZ2luYWxcbiAgICogICAgZW0gcXVlIGFwYXJlY2VyYW0gbm8gYXJyYXkgZm9ybmVjaWRvLlxuICAgKlxuICAgKiAzLiBObyBjYXNvIGRlIGR1YXMgY29sdW5hcyBjb20gdmFsb3JlcyBkZSBgb3JkZXJgIHbDoWxpZG9zIGUgaWTDqm50aWNvcywgYSBvcmRlbSBlbnRyZSBlc3NhcyBkdWFzIGNvbHVuYXNcbiAgICogICAgw6kgZGV0ZXJtaW5hZGEgcGVsYSBzdWEgb3JkZW0gb3JpZ2luYWwgbm8gYXJyYXkgZm9ybmVjaWRvLlxuICAgKlxuICAgKiBAcGFyYW0gY29sdW1ucyBBcnJheSBkZSBjb2x1bmFzIGEgc2VyIG9yZGVuYWRvLiBDYWRhIGNvbHVuYSDDqSB1bSBvYmpldG8gcXVlIHBvZGUgY29udGVyIHVtYSBwcm9wcmllZGFkZSBgb3JkZXJgLlxuICAgKiAgICAgICAgICAgICAgICBPIHRpcG8gYEFycmF5PGFueT5gIMOpIHV0aWxpemFkbyBhcXVpIHBhcmEgcGVybWl0aXIgZmxleGliaWxpZGFkZSBub3Mgb2JqZXRvcyBkZSBjb2x1bmEgcXVlIHBvZGVtIHNlciBwYXNzYWRvcyxcbiAgICogICAgICAgICAgICAgICAgbWFzIGVzcGVyYS1zZSBxdWUgY2FkYSBvYmpldG8gdGVuaGEgcGVsbyBtZW5vcyB1bWEgcHJvcHJpZWRhZGUgYG9yZGVyYCBwYXJhIGEgb3JkZW5hw6fDo28gYWRlcXVhZGEuXG4gICAqXG4gICAqIEByZXR1cm5zIFVtIG5vdm8gYXJyYXkgZGUgY29sdW5hcyBvcmRlbmFkbyBjb20gYmFzZSBuYSBwcm9wcmllZGFkZSBgb3JkZXJgLlxuICAgKi9cbiAgcHJpdmF0ZSBzb3J0Q29sdW1uc0J5T3JkZXIoY29sdW1uczogQXJyYXk8YW55Pik6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiBjb2x1bW5zLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIC8vIENoZWNhIHNlICdvcmRlcicgZXhpc3RlIGUgw6kgdW0gbsO6bWVybyB2w6FsaWRvIGVtIGFtYm9zIG9zIG9iamV0b3NcbiAgICAgIGNvbnN0IGhhc1ZhbGlkT3JkZXJBID0gJ29yZGVyJyBpbiBhICYmIHR5cGVvZiBhLm9yZGVyID09PSAnbnVtYmVyJyAmJiBhLm9yZGVyID4gMDtcbiAgICAgIGNvbnN0IGhhc1ZhbGlkT3JkZXJCID0gJ29yZGVyJyBpbiBiICYmIHR5cGVvZiBiLm9yZGVyID09PSAnbnVtYmVyJyAmJiBiLm9yZGVyID4gMDtcblxuICAgICAgLy8gU2UgYW1ib3MgdMOqbSAnb3JkZXInIHbDoWxpZG8sIGNvbXBhcmEgZGlyZXRhbWVudGVcbiAgICAgIGlmIChoYXNWYWxpZE9yZGVyQSAmJiBoYXNWYWxpZE9yZGVyQikge1xuICAgICAgICByZXR1cm4gYS5vcmRlciAtIGIub3JkZXI7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlIGFwZW5hcyBBIHRlbSAnb3JkZXInIHbDoWxpZG8sIEEgdmVtIGFudGVzIGRlIEJcbiAgICAgIGlmIChoYXNWYWxpZE9yZGVyQSkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlIGFwZW5hcyBCIHRlbSAnb3JkZXInIHbDoWxpZG8sIEIgdmVtIGFudGVzIGRlIEFcbiAgICAgIGlmIChoYXNWYWxpZE9yZGVyQikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cblxuICAgICAgLy8gU2UgbmVuaHVtIGRvcyBkb2lzIHRlbSAnb3JkZXInIHbDoWxpZG8sIG1hbnTDqW0gYSBvcmRlbSBvcmlnaW5hbCAoY29uc2lkZXJhbmRvIGNvbW8gaWd1YWlzIG5lc3RlIGNvbnRleHRvKVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5765,7 +5765,7 @@ class PoPageDynamicListBaseComponent {
|
|
|
5765
5765
|
return this._fields;
|
|
5766
5766
|
}
|
|
5767
5767
|
set columns(value) {
|
|
5768
|
-
this._columns = [...value];
|
|
5768
|
+
this._columns = [...(this._columns = this.sortColumnsByOrder(value))];
|
|
5769
5769
|
}
|
|
5770
5770
|
get columns() {
|
|
5771
5771
|
return this._columns;
|
|
@@ -5800,6 +5800,50 @@ class PoPageDynamicListBaseComponent {
|
|
|
5800
5800
|
this.keys = fields.filter(field => field.key === true).map(field => field.property);
|
|
5801
5801
|
this.duplicates = fields.filter(field => field.duplicate === true).map(field => field.property);
|
|
5802
5802
|
}
|
|
5803
|
+
/**
|
|
5804
|
+
* Ordena um array de colunas com base na propriedade `order` de cada coluna.
|
|
5805
|
+
*
|
|
5806
|
+
* Este método é utilizado para organizar as colunas de uma tabela ou qualquer coleção similar
|
|
5807
|
+
* que necessite de ordenação baseada em um critério numérico definido pela propriedade `order`.
|
|
5808
|
+
* A ordenação segue as seguintes regras:
|
|
5809
|
+
*
|
|
5810
|
+
* 1. Colunas que possuem a propriedade `order` com um valor numérico válido e maior que zero
|
|
5811
|
+
* são ordenadas em ordem crescente de acordo com este valor.
|
|
5812
|
+
*
|
|
5813
|
+
* 2. Colunas que não possuem a propriedade `order` ou que possuem um valor inválido ou não numérico
|
|
5814
|
+
* para esta propriedade são consideradas iguais em termos de ordenação e mantêm a ordem original
|
|
5815
|
+
* em que apareceram no array fornecido.
|
|
5816
|
+
*
|
|
5817
|
+
* 3. No caso de duas colunas com valores de `order` válidos e idênticos, a ordem entre essas duas colunas
|
|
5818
|
+
* é determinada pela sua ordem original no array fornecido.
|
|
5819
|
+
*
|
|
5820
|
+
* @param columns Array de colunas a ser ordenado. Cada coluna é um objeto que pode conter uma propriedade `order`.
|
|
5821
|
+
* O tipo `Array<any>` é utilizado aqui para permitir flexibilidade nos objetos de coluna que podem ser passados,
|
|
5822
|
+
* mas espera-se que cada objeto tenha pelo menos uma propriedade `order` para a ordenação adequada.
|
|
5823
|
+
*
|
|
5824
|
+
* @returns Um novo array de colunas ordenado com base na propriedade `order`.
|
|
5825
|
+
*/
|
|
5826
|
+
sortColumnsByOrder(columns) {
|
|
5827
|
+
return columns.sort((a, b) => {
|
|
5828
|
+
// Checa se 'order' existe e é um número válido em ambos os objetos
|
|
5829
|
+
const hasValidOrderA = 'order' in a && typeof a.order === 'number' && a.order > 0;
|
|
5830
|
+
const hasValidOrderB = 'order' in b && typeof b.order === 'number' && b.order > 0;
|
|
5831
|
+
// Se ambos têm 'order' válido, compara diretamente
|
|
5832
|
+
if (hasValidOrderA && hasValidOrderB) {
|
|
5833
|
+
return a.order - b.order;
|
|
5834
|
+
}
|
|
5835
|
+
// Se apenas A tem 'order' válido, A vem antes de B
|
|
5836
|
+
if (hasValidOrderA) {
|
|
5837
|
+
return -1;
|
|
5838
|
+
}
|
|
5839
|
+
// Se apenas B tem 'order' válido, B vem antes de A
|
|
5840
|
+
if (hasValidOrderB) {
|
|
5841
|
+
return 1;
|
|
5842
|
+
}
|
|
5843
|
+
// Se nenhum dos dois tem 'order' válido, mantém a ordem original (considerando como iguais neste contexto)
|
|
5844
|
+
return 0;
|
|
5845
|
+
});
|
|
5846
|
+
}
|
|
5803
5847
|
static ɵfac = function PoPageDynamicListBaseComponent_Factory(t) { return new (t || PoPageDynamicListBaseComponent)(); };
|
|
5804
5848
|
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoPageDynamicListBaseComponent, inputs: { breadcrumb: [i0.ɵɵInputFlags.None, "p-breadcrumb", "breadcrumb"], serviceApi: [i0.ɵɵInputFlags.None, "p-service-api", "serviceApi"], title: [i0.ɵɵInputFlags.None, "p-title", "title"], autoRouter: [i0.ɵɵInputFlags.None, "p-auto-router", "autoRouter"], fields: [i0.ɵɵInputFlags.None, "p-fields", "fields"] }, outputs: { changeVisibleColumns: "p-change-visible-columns", columnRestoreManager: "p-restore-column-manager", sortBy: "p-sort-by" } });
|
|
5805
5849
|
}
|