@skyux/tiles 13.11.4 → 13.12.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-tiles-testing.mjs","sources":["../tmp-esm2022/testing/modules/tiles/tile-content-section-harness.js","../tmp-esm2022/testing/modules/tiles/tile-content-harness.js","../tmp-esm2022/testing/modules/tiles/tile-harness.js","../tmp-esm2022/testing/modules/tiles/tile-dashboard-harness.js","../tmp-esm2022/testing/skyux-tiles-testing.js"],"sourcesContent":["import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n/**\n * Harness to interact with a tile content section component in tests.\n */\nexport class SkyTileContentSectionHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n static { this.hostSelector = 'sky-tile-content-section'; }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileContentSectionHarness` that meets certain criteria.\n */\n static with(filters) {\n return SkyTileContentSectionHarness.getDataSkyIdPredicate(filters);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LXNlY3Rpb24taGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy90ZXN0aW5nL3NyYy9tb2R1bGVzL3RpbGVzL3RpbGUtY29udGVudC1zZWN0aW9uLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJbkU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsNEJBQTRCO0lBQzVFOztPQUVHO2FBQ1csaUJBQVksR0FBRywwQkFBMEIsQ0FBQztJQUV4RDs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUE0QztRQUU1QyxPQUFPLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vdGlsZS1jb250ZW50LXNlY3Rpb24taGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIHRvIGludGVyYWN0IHdpdGggYSB0aWxlIGNvbnRlbnQgc2VjdGlvbiBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzIGV4dGVuZHMgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS10aWxlLWNvbnRlbnQtc2VjdGlvbic7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreVRpbGVDb250ZW50U2VjdGlvbkhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChcbiAgICBmaWx0ZXJzOiBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreVRpbGVDb250ZW50U2VjdGlvbkhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpO1xuICB9XG59XG4iXX0=","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\nimport { SkyTileContentSectionHarness } from './tile-content-section-harness';\n/**\n * Harness to interact with a tile content component in tests.\n */\nexport class SkyTileContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n static { this.hostSelector = 'sky-tile-content'; }\n /**\n * Gets a specific tile content section based on the filter criteria.\n * @param filter The filter criteria.\n */\n async getSection(filter) {\n return await this.locatorFor(SkyTileContentSectionHarness.with(filter))();\n }\n /**\n * Gets an array of tile content sections based on the filter criteria.\n * If no filter is provided, returns all tile content sections.\n * @param filters The optional filter criteria.\n */\n async getSections(filters) {\n return await this.locatorForAll(SkyTileContentSectionHarness.with(filters || {}))();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvdGVzdGluZy9zcmMvbW9kdWxlcy90aWxlcy90aWxlLWNvbnRlbnQtaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc5RTs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSw0QkFBNEI7SUFDckU7O09BRUc7YUFDVyxpQkFBWSxHQUFHLGtCQUFrQixDQUFDO0lBRWhEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxVQUFVLENBQ3JCLE1BQTJDO1FBRTNDLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsV0FBVyxDQUN0QixPQUE2QztRQUU3QyxPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FDN0IsNEJBQTRCLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FDakQsRUFBRSxDQUFDO0lBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5VGlsZUNvbnRlbnRTZWN0aW9uSGFybmVzcyB9IGZyb20gJy4vdGlsZS1jb250ZW50LXNlY3Rpb24taGFybmVzcyc7XG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vdGlsZS1jb250ZW50LXNlY3Rpb24taGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIHRvIGludGVyYWN0IHdpdGggYSB0aWxlIGNvbnRlbnQgY29tcG9uZW50IGluIHRlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbnRlbnRIYXJuZXNzIGV4dGVuZHMgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS10aWxlLWNvbnRlbnQnO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgc3BlY2lmaWMgdGlsZSBjb250ZW50IHNlY3Rpb24gYmFzZWQgb24gdGhlIGZpbHRlciBjcml0ZXJpYS5cbiAgICogQHBhcmFtIGZpbHRlciBUaGUgZmlsdGVyIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNlY3Rpb24oXG4gICAgZmlsdGVyOiBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzRmlsdGVycyxcbiAgKTogUHJvbWlzZTxTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvcihTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzLndpdGgoZmlsdGVyKSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFuIGFycmF5IG9mIHRpbGUgY29udGVudCBzZWN0aW9ucyBiYXNlZCBvbiB0aGUgZmlsdGVyIGNyaXRlcmlhLlxuICAgKiBJZiBubyBmaWx0ZXIgaXMgcHJvdmlkZWQsIHJldHVybnMgYWxsIHRpbGUgY29udGVudCBzZWN0aW9ucy5cbiAgICogQHBhcmFtIGZpbHRlcnMgVGhlIG9wdGlvbmFsIGZpbHRlciBjcml0ZXJpYS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTZWN0aW9ucyhcbiAgICBmaWx0ZXJzPzogU2t5VGlsZUNvbnRlbnRTZWN0aW9uSGFybmVzc0ZpbHRlcnMsXG4gICk6IFByb21pc2U8U2t5VGlsZUNvbnRlbnRTZWN0aW9uSGFybmVzc1tdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvckFsbChcbiAgICAgIFNreVRpbGVDb250ZW50U2VjdGlvbkhhcm5lc3Mud2l0aChmaWx0ZXJzIHx8IHt9KSxcbiAgICApKCk7XG4gIH1cbn1cbiJdfQ==","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyHelpInlineHarness } from '@skyux/help-inline/testing';\nimport { SkyChevronHarness } from '@skyux/indicators/testing';\nimport { SkyTileContentHarness } from './tile-content-harness';\n/**\n * Harness to interact with a tile component in tests.\n */\nexport class SkyTileHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n static { this.hostSelector = 'sky-tile'; }\n #getChevron = this.locatorFor(SkyChevronHarness);\n #getContent = this.locatorFor(SkyTileContentHarness);\n #getTitle = this.locatorFor('sky-tile-title');\n #getSummary = this.locatorFor('sky-tile-summary');\n #getSettings = this.locatorForOptional('button.sky-tile-settings');\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileHarness` that meets certain criteria.\n */\n static with(filters) {\n return SkyTileHarness.getDataSkyIdPredicate(filters).addOption('titleText', filters.titleText, async (harness, text) => {\n const title = await harness.getTitleText();\n return await HarnessPredicate.stringMatches(title, text);\n });\n }\n /**\n * Clicks the help inline button.\n */\n async clickHelpInline() {\n await (await this.#getHelpInline()).click();\n }\n /**\n * Clicks the settings button.\n */\n async clickSettingsButton() {\n const settings = await this.#getSettings();\n if (!settings) {\n throw Error('No settings button found.');\n }\n await settings.click();\n }\n /**\n * Collapses the tile, or does nothing if already collapsed.\n */\n async collapse() {\n const chevron = await this.#getChevron();\n if ((await chevron.getDirection()) === 'up') {\n await chevron.toggle();\n }\n }\n /**\n * Expands the tile, or does nothing if already expanded.\n */\n async expand() {\n const chevron = await this.#getChevron();\n if ((await chevron.getDirection()) === 'down') {\n await chevron.toggle();\n }\n }\n /**\n * Gets the help popover content.\n */\n async getHelpPopoverContent() {\n return await (await this.#getHelpInline()).getPopoverContent();\n }\n /**\n * Gets the help popover title.\n */\n async getHelpPopoverTitle() {\n return await (await this.#getHelpInline()).getPopoverTitle();\n }\n /**\n * Gets a harness for the tile content.\n */\n async getContent() {\n return await this.#getContent();\n }\n /**\n * Gets the tile summary text.\n */\n async getSummaryText() {\n return await (await this.#getSummary()).text();\n }\n /**\n * Gets the tile title text.\n */\n async getTitleText() {\n return await (await this.#getTitle()).text();\n }\n /**\n * Whether the tile is expanded.\n */\n async isExpanded() {\n const chevron = await this.#getChevron();\n return (await chevron.getDirection()) === 'up';\n }\n async #getHelpInline() {\n const harness = await this.locatorForOptional(SkyHelpInlineHarness)();\n if (harness) {\n return harness;\n }\n throw Error('No help inline found.');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3Rlc3Rpbmcvc3JjL21vZHVsZXMvdGlsZXMvdGlsZS1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRy9EOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxtQkFBbUI7SUFDckQ7O09BRUc7YUFDVyxpQkFBWSxHQUFHLFVBQVUsQ0FBQztJQUV4QyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pELFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDckQsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM5QyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xELFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUVuRTs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUE4QjtRQUU5QixPQUFPLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQzVELFdBQVcsRUFDWCxPQUFPLENBQUMsU0FBUyxFQUNqQixLQUFLLEVBQUUsT0FB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IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lSGFybmVzcyB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZS90ZXN0aW5nJztcbmltcG9ydCB7IFNreUNoZXZyb25IYXJuZXNzIH0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreVRpbGVDb250ZW50SGFybmVzcyB9IGZyb20gJy4vdGlsZS1jb250ZW50LWhhcm5lc3MnO1xuaW1wb3J0IHsgU2t5VGlsZUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi90aWxlLWhhcm5lc3MtZmlsdGVycyc7XG5cbi8qKlxuICogSGFybmVzcyB0byBpbnRlcmFjdCB3aXRoIGEgdGlsZSBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lUaWxlSGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktdGlsZSc7XG5cbiAgI2dldENoZXZyb24gPSB0aGlzLmxvY2F0b3JGb3IoU2t5Q2hldnJvbkhhcm5lc3MpO1xuICAjZ2V0Q29udGVudCA9IHRoaXMubG9jYXRvckZvcihTa3lUaWxlQ29udGVudEhhcm5lc3MpO1xuICAjZ2V0VGl0bGUgPSB0aGlzLmxvY2F0b3JGb3IoJ3NreS10aWxlLXRpdGxlJyk7XG4gICNnZXRTdW1tYXJ5ID0gdGhpcy5sb2NhdG9yRm9yKCdza3ktdGlsZS1zdW1tYXJ5Jyk7XG4gICNnZXRTZXR0aW5ncyA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdidXR0b24uc2t5LXRpbGUtc2V0dGluZ3MnKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5VGlsZUhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChcbiAgICBmaWx0ZXJzOiBTa3lUaWxlSGFybmVzc0ZpbHRlcnMsXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5VGlsZUhhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5VGlsZUhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpLmFkZE9wdGlvbihcbiAgICAgICd0aXRsZVRleHQnLFxuICAgICAgZmlsdGVycy50aXRsZVRleHQsXG4gICAgICBhc3luYyAoaGFybmVzcywgdGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB0aXRsZSA9IGF3YWl0IGhhcm5lc3MuZ2V0VGl0bGVUZXh0KCk7XG4gICAgICAgIHJldHVybiBhd2FpdCBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXModGl0bGUsIHRleHQpO1xuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgaGVscCBpbmxpbmUgYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrSGVscElubGluZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgc2V0dGluZ3MgYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrU2V0dGluZ3NCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBhd2FpdCB0aGlzLiNnZXRTZXR0aW5ncygpO1xuXG4gICAgaWYgKCFzZXR0aW5ncykge1xuICAgICAgdGhyb3cgRXJyb3IoJ05vIHNldHRpbmdzIGJ1dHRvbiBmb3VuZC4nKTtcbiAgICB9XG5cbiAgICBhd2FpdCBzZXR0aW5ncy5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbGxhcHNlcyB0aGUgdGlsZSwgb3IgZG9lcyBub3RoaW5nIGlmIGFscmVhZHkgY29sbGFwc2VkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNvbGxhcHNlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNoZXZyb24gPSBhd2FpdCB0aGlzLiNnZXRDaGV2cm9uKCk7XG4gICAgaWYgKChhd2FpdCBjaGV2cm9uLmdldERpcmVjdGlvbigpKSA9PT0gJ3VwJykge1xuICAgICAgYXdhaXQgY2hldnJvbi50b2dnbGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhwYW5kcyB0aGUgdGlsZSwgb3IgZG9lcyBub3RoaW5nIGlmIGFscmVhZHkgZXhwYW5kZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXhwYW5kKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNoZXZyb24gPSBhd2FpdCB0aGlzLiNnZXRDaGV2cm9uKCk7XG4gICAgaWYgKChhd2FpdCBjaGV2cm9uLmdldERpcmVjdGlvbigpKSA9PT0gJ2Rvd24nKSB7XG4gICAgICBhd2FpdCBjaGV2cm9uLnRvZ2dsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBoZWxwIHBvcG92ZXIgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWxwUG9wb3ZlckNvbnRlbnQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEhlbHBJbmxpbmUoKSkuZ2V0UG9wb3ZlckNvbnRlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBoZWxwIHBvcG92ZXIgdGl0bGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVscFBvcG92ZXJUaXRsZSgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5nZXRQb3BvdmVyVGl0bGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgaGFybmVzcyBmb3IgdGhlIHRpbGUgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRDb250ZW50KCk6IFByb21pc2U8U2t5VGlsZUNvbnRlbnRIYXJuZXNzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2dldENvbnRlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0aWxlIHN1bW1hcnkgdGV4dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTdW1tYXJ5VGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0U3VtbWFyeSgpKS50ZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdGlsZSB0aXRsZSB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFRpdGxlVGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0VGl0bGUoKSkudGV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHRpbGUgaXMgZXhwYW5kZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNFeHBhbmRlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBjaGV2cm9uID0gYXdhaXQgdGhpcy4jZ2V0Q2hldnJvbigpO1xuXG4gICAgcmV0dXJuIChhd2FpdCBjaGV2cm9uLmdldERpcmVjdGlvbigpKSA9PT0gJ3VwJztcbiAgfVxuXG4gIGFzeW5jICNnZXRIZWxwSW5saW5lKCk6IFByb21pc2U8U2t5SGVscElubGluZUhhcm5lc3M+IHtcbiAgICBjb25zdCBoYXJuZXNzID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoU2t5SGVscElubGluZUhhcm5lc3MpKCk7XG5cbiAgICBpZiAoaGFybmVzcykge1xuICAgICAgcmV0dXJuIGhhcm5lc3M7XG4gICAgfVxuXG4gICAgdGhyb3cgRXJyb3IoJ05vIGhlbHAgaW5saW5lIGZvdW5kLicpO1xuICB9XG59XG4iXX0=","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\nimport { SkyTileHarness } from './tile-harness';\n/**\n * Harness to interact with a tile dashboard component in tests.\n */\nexport class SkyTileDashboardHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n static { this.hostSelector = 'sky-tile-dashboard'; }\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileDashboardHarness` that meets certain criteria.\n */\n static with(filters) {\n return SkyTileDashboardHarness.getDataSkyIdPredicate(filters);\n }\n /**\n * Gets a specific tile based on the filter criteria.\n * @param filter The filter criteria.\n */\n async getTile(filter) {\n return await this.locatorFor(SkyTileHarness.with(filter))();\n }\n /**\n * Gets an array of tiles based on the filter criteria.\n * If no filter is provided, returns all tiles.\n * @param filters The optional filter criteria.\n */\n async getTiles(filters) {\n return await this.locatorForAll(SkyTileHarness.with(filters || {}))();\n }\n /**\n * Whether or not the dashboard is in multi-column mode.\n */\n async isMultiColumn() {\n const host = await this.host();\n return await host.hasClass('sky-tile-dashboard-multi-column');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy90ZXN0aW5nL3NyYy9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2hEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDRCQUE0QjtJQUN2RTs7T0FFRzthQUNXLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7SUFFbEQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBdUM7UUFFdkMsT0FBTyx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUE2QjtRQUNoRCxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxRQUFRLENBQ25CLE9BQStCO1FBRS9CLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsYUFBYTtRQUN4QixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUvQixPQUFPLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL3RpbGUtZGFzaGJvYXJkLWhhcm5lc3MtZmlsdGVycyc7XG5pbXBvcnQgeyBTa3lUaWxlSGFybmVzcyB9IGZyb20gJy4vdGlsZS1oYXJuZXNzJztcbmltcG9ydCB7IFNreVRpbGVIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vdGlsZS1oYXJuZXNzLWZpbHRlcnMnO1xuXG4vKipcbiAqIEhhcm5lc3MgdG8gaW50ZXJhY3Qgd2l0aCBhIHRpbGUgZGFzaGJvYXJkIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVRpbGVEYXNoYm9hcmRIYXJuZXNzIGV4dGVuZHMgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS10aWxlLWRhc2hib2FyZCc7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreVRpbGVEYXNoYm9hcmRIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5VGlsZURhc2hib2FyZEhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreVRpbGVEYXNoYm9hcmRIYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreVRpbGVEYXNoYm9hcmRIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc3BlY2lmaWMgdGlsZSBiYXNlZCBvbiB0aGUgZmlsdGVyIGNyaXRlcmlhLlxuICAgKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VGlsZShmaWx0ZXI6IFNreVRpbGVIYXJuZXNzRmlsdGVycyk6IFByb21pc2U8U2t5VGlsZUhhcm5lc3M+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yKFNreVRpbGVIYXJuZXNzLndpdGgoZmlsdGVyKSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFuIGFycmF5IG9mIHRpbGVzIGJhc2VkIG9uIHRoZSBmaWx0ZXIgY3JpdGVyaWEuXG4gICAqIElmIG5vIGZpbHRlciBpcyBwcm92aWRlZCwgcmV0dXJucyBhbGwgdGlsZXMuXG4gICAqIEBwYXJhbSBmaWx0ZXJzIFRoZSBvcHRpb25hbCBmaWx0ZXIgY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VGlsZXMoXG4gICAgZmlsdGVycz86IFNreVRpbGVIYXJuZXNzRmlsdGVycyxcbiAgKTogUHJvbWlzZTxTa3lUaWxlSGFybmVzc1tdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvckFsbChTa3lUaWxlSGFybmVzcy53aXRoKGZpbHRlcnMgfHwge30pKSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBkYXNoYm9hcmQgaXMgaW4gbXVsdGktY29sdW1uIG1vZGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNNdWx0aUNvbHVtbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBob3N0ID0gYXdhaXQgdGhpcy5ob3N0KCk7XG5cbiAgICByZXR1cm4gYXdhaXQgaG9zdC5oYXNDbGFzcygnc2t5LXRpbGUtZGFzaGJvYXJkLW11bHRpLWNvbHVtbicpO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtdGlsZXMtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy90ZXN0aW5nL3NyYy9za3l1eC10aWxlcy10ZXN0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0="],"names":[],"mappings":";;;;;AACA;AACA;AACA;AACO,MAAM,4BAA4B,SAAS,4BAA4B,CAAC;AAC/E;AACA;AACA;AACA,IAAI,SAAS,IAAI,CAAC,YAAY,GAAG,0BAA0B,CAAC;AAC5D;AACA;AACA;AACA;AACA,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,4BAA4B,CAAC,qBAAqB,CAAC,OAAO,CAAC;AAC1E,IAAI;AACJ;;ACdA;AACA;AACA;AACO,MAAM,qBAAqB,SAAS,4BAA4B,CAAC;AACxE;AACA;AACA;AACA,IAAI,SAAS,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC;AACpD;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,CAAC,MAAM,EAAE;AAC7B,QAAQ,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;AACjF,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,EAAE;AAC3F,IAAI;AACJ;;ACpBA;AACA;AACA;AACO,MAAM,cAAc,SAAS,mBAAmB,CAAC;AACxD;AACA;AACA;AACA,IAAI,SAAS,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;AAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACpD,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;AACxD,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;AACjD,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;AACrD,IAAI,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,CAAC;AACtE;AACA;AACA;AACA;AACA,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,OAAO,EAAE,IAAI,KAAK;AAChI,YAAY,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE;AACtD,YAAY,OAAO,MAAM,gBAAgB,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC;AACpE,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,eAAe,GAAG;AAC5B,QAAQ,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE;AACnD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,GAAG;AAChC,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE;AAClD,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,KAAK,CAAC,2BAA2B,CAAC;AACpD,QAAQ;AACR,QAAQ,MAAM,QAAQ,CAAC,KAAK,EAAE;AAC9B,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAChD,QAAQ,IAAI,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,EAAE;AACrD,YAAY,MAAM,OAAO,CAAC,MAAM,EAAE;AAClC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAChD,QAAQ,IAAI,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,MAAM,MAAM,EAAE;AACvD,YAAY,MAAM,OAAO,CAAC,MAAM,EAAE;AAClC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,qBAAqB,GAAG;AAClC,QAAQ,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,iBAAiB,EAAE;AACtE,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,GAAG;AAChC,QAAQ,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE;AACpE,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE;AACvC,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE;AACtD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE;AACpD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAChD,QAAQ,OAAO,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI;AACtD,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE;AAC7E,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,OAAO,OAAO;AAC1B,QAAQ;AACR,QAAQ,MAAM,KAAK,CAAC,uBAAuB,CAAC;AAC5C,IAAI;AACJ;;ACxGA;AACA;AACA;AACO,MAAM,uBAAuB,SAAS,4BAA4B,CAAC;AAC1E;AACA;AACA;AACA,IAAI,SAAS,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAC;AACtD;AACA;AACA;AACA;AACA,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,uBAAuB,CAAC,qBAAqB,CAAC,OAAO,CAAC;AACrE,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE;AAC1B,QAAQ,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;AACnE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,QAAQ,CAAC,OAAO,EAAE;AAC5B,QAAQ,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,EAAE;AAC7E,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AACtC,QAAQ,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,iCAAiC,CAAC;AACrE,IAAI;AACJ;;ACvCA;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"skyux-tiles-testing.mjs","sources":["../../../../../libs/components/tiles/testing/src/modules/tiles/tile-content-section-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-content-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-dashboard-harness.ts","../../../../../libs/components/tiles/testing/src/skyux-tiles-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileContentSectionHarnessFilters } from './tile-content-section-harness-filters';\n\n/**\n * Harness to interact with a tile content section component in tests.\n */\nexport class SkyTileContentSectionHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-content-section';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileContentSectionHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileContentSectionHarnessFilters,\n ): HarnessPredicate<SkyTileContentSectionHarness> {\n return SkyTileContentSectionHarness.getDataSkyIdPredicate(filters);\n }\n}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileContentSectionHarness } from './tile-content-section-harness';\nimport { SkyTileContentSectionHarnessFilters } from './tile-content-section-harness-filters';\n\n/**\n * Harness to interact with a tile content component in tests.\n */\nexport class SkyTileContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-content';\n\n /**\n * Gets a specific tile content section based on the filter criteria.\n * @param filter The filter criteria.\n */\n public async getSection(\n filter: SkyTileContentSectionHarnessFilters,\n ): Promise<SkyTileContentSectionHarness> {\n return await this.locatorFor(SkyTileContentSectionHarness.with(filter))();\n }\n\n /**\n * Gets an array of tile content sections based on the filter criteria.\n * If no filter is provided, returns all tile content sections.\n * @param filters The optional filter criteria.\n */\n public async getSections(\n filters?: SkyTileContentSectionHarnessFilters,\n ): Promise<SkyTileContentSectionHarness[]> {\n return await this.locatorForAll(\n SkyTileContentSectionHarness.with(filters || {}),\n )();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyHelpInlineHarness } from '@skyux/help-inline/testing';\nimport { SkyChevronHarness } from '@skyux/indicators/testing';\n\nimport { SkyTileContentHarness } from './tile-content-harness';\nimport { SkyTileHarnessFilters } from './tile-harness-filters';\n\n/**\n * Harness to interact with a tile component in tests.\n */\nexport class SkyTileHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile';\n\n #getChevron = this.locatorFor(SkyChevronHarness);\n #getContent = this.locatorFor(SkyTileContentHarness);\n #getTitle = this.locatorFor('sky-tile-title');\n #getSummary = this.locatorFor('sky-tile-summary');\n #getSettings = this.locatorForOptional('button.sky-tile-settings');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileHarnessFilters,\n ): HarnessPredicate<SkyTileHarness> {\n return SkyTileHarness.getDataSkyIdPredicate(filters).addOption(\n 'titleText',\n filters.titleText,\n async (harness, text) => {\n const title = await harness.getTitleText();\n return await HarnessPredicate.stringMatches(title, text);\n },\n );\n }\n\n /**\n * Clicks the help inline button.\n */\n public async clickHelpInline(): Promise<void> {\n await (await this.#getHelpInline()).click();\n }\n\n /**\n * Clicks the settings button.\n */\n public async clickSettingsButton(): Promise<void> {\n const settings = await this.#getSettings();\n\n if (!settings) {\n throw Error('No settings button found.');\n }\n\n await settings.click();\n }\n\n /**\n * Collapses the tile, or does nothing if already collapsed.\n */\n public async collapse(): Promise<void> {\n const chevron = await this.#getChevron();\n if ((await chevron.getDirection()) === 'up') {\n await chevron.toggle();\n }\n }\n\n /**\n * Expands the tile, or does nothing if already expanded.\n */\n public async expand(): Promise<void> {\n const chevron = await this.#getChevron();\n if ((await chevron.getDirection()) === 'down') {\n await chevron.toggle();\n }\n }\n\n /**\n * Gets the help popover content.\n */\n public async getHelpPopoverContent(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverContent();\n }\n\n /**\n * Gets the help popover title.\n */\n public async getHelpPopoverTitle(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverTitle();\n }\n\n /**\n * Gets a harness for the tile content.\n */\n public async getContent(): Promise<SkyTileContentHarness> {\n return await this.#getContent();\n }\n\n /**\n * Gets the tile summary text.\n */\n public async getSummaryText(): Promise<string> {\n return await (await this.#getSummary()).text();\n }\n\n /**\n * Gets the tile title text.\n */\n public async getTitleText(): Promise<string> {\n return await (await this.#getTitle()).text();\n }\n\n /**\n * Whether the tile is expanded.\n */\n public async isExpanded(): Promise<boolean> {\n const chevron = await this.#getChevron();\n\n return (await chevron.getDirection()) === 'up';\n }\n\n async #getHelpInline(): Promise<SkyHelpInlineHarness> {\n const harness = await this.locatorForOptional(SkyHelpInlineHarness)();\n\n if (harness) {\n return harness;\n }\n\n throw Error('No help inline found.');\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileDashboardHarnessFilters } from './tile-dashboard-harness-filters';\nimport { SkyTileHarness } from './tile-harness';\nimport { SkyTileHarnessFilters } from './tile-harness-filters';\n\n/**\n * Harness to interact with a tile dashboard component in tests.\n */\nexport class SkyTileDashboardHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-dashboard';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileDashboardHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileDashboardHarnessFilters,\n ): HarnessPredicate<SkyTileDashboardHarness> {\n return SkyTileDashboardHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets a specific tile based on the filter criteria.\n * @param filter The filter criteria.\n */\n public async getTile(filter: SkyTileHarnessFilters): Promise<SkyTileHarness> {\n return await this.locatorFor(SkyTileHarness.with(filter))();\n }\n\n /**\n * Gets an array of tiles based on the filter criteria.\n * If no filter is provided, returns all tiles.\n * @param filters The optional filter criteria.\n */\n public async getTiles(\n filters?: SkyTileHarnessFilters,\n ): Promise<SkyTileHarness[]> {\n return await this.locatorForAll(SkyTileHarness.with(filters || {}))();\n }\n\n /**\n * Whether or not the dashboard is in multi-column mode.\n */\n public async isMultiColumn(): Promise<boolean> {\n const host = await this.host();\n\n return await host.hasClass('sky-tile-dashboard-multi-column');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-tiles.mjs","sources":["../tmp-esm2022/lib/modules/tiles/tile/tile-summary.component.js","../tmp-esm2022/lib/modules/tiles/tile/tile-title-id-token.js","../tmp-esm2022/lib/modules/tiles/tile/tile-title.component.js","../tmp-esm2022/lib/modules/shared/sky-tiles-resources.module.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.service.js","../tmp-esm2022/lib/modules/tiles/tile/tile.component.js","../tmp-esm2022/lib/modules/tiles/tile/tile.module.js","../tmp-esm2022/lib/modules/tiles/tile-content/tile-content-section.component.js","../tmp-esm2022/lib/modules/tiles/tile-content/tile-content.component.js","../tmp-esm2022/lib/modules/tiles/tile-content/tile-content.module.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard-message-type.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.component.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard/tile-dashboard.module.js","../tmp-esm2022/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.js","../tmp-esm2022/lib/modules/tiles/tiles.module.js","../tmp-esm2022/skyux-tiles.js"],"sourcesContent":["import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies content to display in the tile's summary.\n */\nexport class SkyTileSummaryComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", type: SkyTileSummaryComponent, isStandalone: true, selector: \"sky-tile-summary\", ngImport: i0, template: \"<ng-content />\\n\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileSummaryComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-summary', template: \"<ng-content />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS90aWxlLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlL3RpbGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQzs7R0FFRztBQUtILE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjttR0FBdkIsdUJBQXVCLDRFQ1RwQyxrQkFDQTs7NEZEUWEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBjb250ZW50IHRvIGRpc3BsYXkgaW4gdGhlIHRpbGUncyBzdW1tYXJ5LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGlsZS1zdW1tYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICd0aWxlLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlU3VtbWFyeUNvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQgLz5cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const SKY_TILE_TITLE_ID = new InjectionToken('SKY_TILE_TITLE_ID');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS10aXRsZS1pZC10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS90aWxlLXRpdGxlLWlkLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQ2pELG1CQUFtQixDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFNLWV9USUxFX1RJVExFX0lEID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICdTS1lfVElMRV9USVRMRV9JRCcsXG4pO1xuIl19","import { Component, inject } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\n/**\n * Specifies content to display in the tile's title.\n */\nexport class SkyTileTitleComponent {\n constructor() {\n this.tileTitleId = inject(SKY_TILE_TITLE_ID);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", type: SkyTileTitleComponent, isStandalone: true, selector: \"sky-tile-title\", ngImport: i0, template: \"<h2 class=\\\"sky-tile-title sky-font-heading-2\\\">\\n <span skyTrim [id]=\\\"tileTitleId\\\"><ng-content /></span\\n ><span class=\\\"sky-control-help-container\\\"\\n ><ng-content select=\\\".sky-control-help\\\"></ng-content\\n ></span>\\n</h2>\\n\", styles: [\".sky-tile-title{margin:0;padding:0}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyTrimModule }, { kind: \"directive\", type: i1.λ4, selector: \"[skyTrim]\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileTitleComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-title', imports: [SkyTrimModule], template: \"<h2 class=\\\"sky-tile-title sky-font-heading-2\\\">\\n <span skyTrim [id]=\\\"tileTitleId\\\"><ng-content /></span\\n ><span class=\\\"sky-control-help-container\\\"\\n ><ng-content select=\\\".sky-control-help\\\"></ng-content\\n ></span>\\n</h2>\\n\", styles: [\".sky-tile-title{margin:0;padding:0}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS10aXRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS10aXRsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS10aXRsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFFMUQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBT3FCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDNUQ7K0dBRlkscUJBQXFCO21HQUFyQixxQkFBcUIsMEVDZGxDLDZPQU1BLDhGRE1ZLGFBQWE7OzRGQUVaLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxnQkFBZ0IsV0FHakIsQ0FBQyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5VHJpbU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU0tZX1RJTEVfVElUTEVfSUQgfSBmcm9tICcuL3RpbGUtdGl0bGUtaWQtdG9rZW4nO1xuXG4vKipcbiAqIFNwZWNpZmllcyBjb250ZW50IHRvIGRpc3BsYXkgaW4gdGhlIHRpbGUncyB0aXRsZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtdGl0bGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlsZS10aXRsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbGUtdGl0bGUuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1NreVRyaW1Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlVGl0bGVDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGlsZVRpdGxlSWQgPSBpbmplY3QoU0tZX1RJTEVfVElUTEVfSUQpO1xufVxuIiwiPGgyIGNsYXNzPVwic2t5LXRpbGUtdGl0bGUgc2t5LWZvbnQtaGVhZGluZy0yXCI+XG4gIDxzcGFuIHNreVRyaW0gW2lkXT1cInRpbGVUaXRsZUlkXCI+PG5nLWNvbnRlbnQgLz48L3NwYW5cbiAgPjxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIlxuICAgID48bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtaGVscFwiPjwvbmctY29udGVudFxuICA+PC9zcGFuPlxuPC9oMj5cbiJdfQ==","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-tiles' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule, SkyLibResourcesService, } from '@skyux/i18n';\nimport * as i0 from \"@angular/core\";\nconst RESOURCES = {\n 'EN-US': {\n skyux_tile_expand: { message: 'Expand or collapse {0}' },\n skyux_tile_expand_default: { message: 'Expand or collapse' },\n skyux_tile_help: { message: '{0} help' },\n skyux_tile_help_default: { message: 'Help' },\n skyux_tile_settings: { message: '{0} settings' },\n skyux_tile_settings_default: { message: 'Settings' },\n skyux_tile_move: { message: 'Move {0}' },\n skyux_tile_move_default: { message: 'Move' },\n skyux_tile_move_instructions: {\n message: \"When focus is placed on a tile's move button, use the arrow keys to move it. The up and down keys change its position within a column. The left and right keys move it between columns.\",\n },\n skyux_tile_moved_assistive_text: {\n message: '{0} moved. Current column: {1} of {2}. Current position in column: {3} of {4}',\n },\n },\n 'FR-CA': {\n skyux_tile_expand: { message: 'Agrandir ou réduire {0}' },\n skyux_tile_expand_default: { message: 'Agrandir ou réduire' },\n skyux_tile_help: { message: '{0} aide' },\n skyux_tile_help_default: { message: 'Aide' },\n skyux_tile_settings: { message: '{0} paramètres' },\n skyux_tile_settings_default: { message: 'Paramètres' },\n skyux_tile_move: { message: 'Déplacer {0}' },\n skyux_tile_move_default: { message: 'Déplacer' },\n skyux_tile_move_instructions: {\n message: 'Lorsque le curseur est placé sur le bouton déplacer d’une mosaïque, utilisez les touches fléchées pour la déplacer. Les flèches vers le haut et vers le bas modifie la position dans une colonne. Les flèches de gauche et de droite la déplace d’une colonne à l’autre.',\n },\n skyux_tile_moved_assistive_text: {\n message: '{0} déplacé(e). Colonne actuelle : {1} de {2}. Position actuelle dans la colonne : {3} de {4}',\n },\n },\n};\nSkyLibResourcesService.addResources(RESOURCES);\n/**\n * Import into any component library module that needs to use resource strings.\n */\nexport class SkyTilesResourcesModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTilesResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTilesResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTilesResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTilesResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LXRpbGVzLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktdGlsZXMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsaUJBQWlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7UUFDeEQseUJBQXlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7UUFDNUQsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN4Qyx1QkFBdUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDNUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFO1FBQ2hELDJCQUEyQixFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUNwRCxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ3hDLHVCQUF1QixFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtRQUM1Qyw0QkFBNEIsRUFBRTtZQUM1QixPQUFPLEVBQ0wseUxBQXlMO1NBQzVMO1FBQ0QsK0JBQStCLEVBQUU7WUFDL0IsT0FBTyxFQUNMLCtFQUErRTtTQUNsRjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsaUJBQWlCLEVBQUUsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUU7UUFDekQseUJBQXlCLEVBQUUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7UUFDN0QsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN4Qyx1QkFBdUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDNUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUU7UUFDbEQsMkJBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQ3RELGVBQWUsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUU7UUFDNUMsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ2hELDRCQUE0QixFQUFFO1lBQzVCLE9BQU8sRUFDTCwwUUFBMFE7U0FDN1E7UUFDRCwrQkFBK0IsRUFBRTtZQUMvQixPQUFPLEVBQ0wsK0ZBQStGO1NBQ2xHO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9DOztHQUVHO0FBSUgsTUFBTSxPQUFPLHVCQUF1QjsrR0FBdkIsdUJBQXVCO2dIQUF2Qix1QkFBdUIsWUFGeEIsYUFBYTtnSEFFWix1QkFBdUIsWUFGeEIsYUFBYTs7NEZBRVosdUJBQXVCO2tCQUhuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktdGlsZXMnIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUkxOG5Nb2R1bGUsXG4gIFNreUxpYlJlc291cmNlcyxcbiAgU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5jb25zdCBSRVNPVVJDRVM6IFJlY29yZDxzdHJpbmcsIFNreUxpYlJlc291cmNlcz4gPSB7XG4gICdFTi1VUyc6IHtcbiAgICBza3l1eF90aWxlX2V4cGFuZDogeyBtZXNzYWdlOiAnRXhwYW5kIG9yIGNvbGxhcHNlIHswfScgfSxcbiAgICBza3l1eF90aWxlX2V4cGFuZF9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdFeHBhbmQgb3IgY29sbGFwc2UnIH0sXG4gICAgc2t5dXhfdGlsZV9oZWxwOiB7IG1lc3NhZ2U6ICd7MH0gaGVscCcgfSxcbiAgICBza3l1eF90aWxlX2hlbHBfZGVmYXVsdDogeyBtZXNzYWdlOiAnSGVscCcgfSxcbiAgICBza3l1eF90aWxlX3NldHRpbmdzOiB7IG1lc3NhZ2U6ICd7MH0gc2V0dGluZ3MnIH0sXG4gICAgc2t5dXhfdGlsZV9zZXR0aW5nc19kZWZhdWx0OiB7IG1lc3NhZ2U6ICdTZXR0aW5ncycgfSxcbiAgICBza3l1eF90aWxlX21vdmU6IHsgbWVzc2FnZTogJ01vdmUgezB9JyB9LFxuICAgIHNreXV4X3RpbGVfbW92ZV9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdNb3ZlJyB9LFxuICAgIHNreXV4X3RpbGVfbW92ZV9pbnN0cnVjdGlvbnM6IHtcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgIFwiV2hlbiBmb2N1cyBpcyBwbGFjZWQgb24gYSB0aWxlJ3MgbW92ZSBidXR0b24sIHVzZSB0aGUgYXJyb3cga2V5cyB0byBtb3ZlIGl0LiBUaGUgdXAgYW5kIGRvd24ga2V5cyBjaGFuZ2UgaXRzIHBvc2l0aW9uIHdpdGhpbiBhIGNvbHVtbi4gVGhlIGxlZnQgYW5kIHJpZ2h0IGtleXMgbW92ZSBpdCBiZXR3ZWVuIGNvbHVtbnMuXCIsXG4gICAgfSxcbiAgICBza3l1eF90aWxlX21vdmVkX2Fzc2lzdGl2ZV90ZXh0OiB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICAnezB9IG1vdmVkLiBDdXJyZW50IGNvbHVtbjogezF9IG9mIHsyfS4gQ3VycmVudCBwb3NpdGlvbiBpbiBjb2x1bW46IHszfSBvZiB7NH0nLFxuICAgIH0sXG4gIH0sXG4gICdGUi1DQSc6IHtcbiAgICBza3l1eF90aWxlX2V4cGFuZDogeyBtZXNzYWdlOiAnQWdyYW5kaXIgb3UgcsOpZHVpcmUgezB9JyB9LFxuICAgIHNreXV4X3RpbGVfZXhwYW5kX2RlZmF1bHQ6IHsgbWVzc2FnZTogJ0FncmFuZGlyIG91IHLDqWR1aXJlJyB9LFxuICAgIHNreXV4X3RpbGVfaGVscDogeyBtZXNzYWdlOiAnezB9IGFpZGUnIH0sXG4gICAgc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQ6IHsgbWVzc2FnZTogJ0FpZGUnIH0sXG4gICAgc2t5dXhfdGlsZV9zZXR0aW5nczogeyBtZXNzYWdlOiAnezB9IHBhcmFtw6h0cmVzJyB9LFxuICAgIHNreXV4X3RpbGVfc2V0dGluZ3NfZGVmYXVsdDogeyBtZXNzYWdlOiAnUGFyYW3DqHRyZXMnIH0sXG4gICAgc2t5dXhfdGlsZV9tb3ZlOiB7IG1lc3NhZ2U6ICdEw6lwbGFjZXIgezB9JyB9LFxuICAgIHNreXV4X3RpbGVfbW92ZV9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdEw6lwbGFjZXInIH0sXG4gICAgc2t5dXhfdGlsZV9tb3ZlX2luc3RydWN0aW9uczoge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ0xvcnNxdWUgbGUgY3Vyc2V1ciBlc3QgcGxhY8OpIHN1ciBsZSBib3V0b24gZMOpcGxhY2VyIGTigJl1bmUgbW9zYcOvcXVlLCB1dGlsaXNleiBsZXMgdG91Y2hlcyBmbMOpY2jDqWVzIHBvdXIgbGEgZMOpcGxhY2VyLiBMZXMgZmzDqGNoZXMgdmVycyBsZSBoYXV0IGV0IHZlcnMgbGUgYmFzIG1vZGlmaWUgbGEgcG9zaXRpb24gZGFucyB1bmUgY29sb25uZS4gTGVzIGZsw6hjaGVzIGRlIGdhdWNoZSBldCBkZSBkcm9pdGUgbGEgZMOpcGxhY2UgZOKAmXVuZSBjb2xvbm5lIMOgIGzigJlhdXRyZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dDoge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ3swfcKgZMOpcGxhY8OpKGUpLiBDb2xvbm5lIGFjdHVlbGxlwqA6IHsxfSBkZSB7Mn0uIFBvc2l0aW9uIGFjdHVlbGxlIGRhbnMgbGEgY29sb25uZcKgOiB7M30gZGUgezR9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZXNSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==","import { DestroyRef, EventEmitter, Injectable, Output, RendererFactory2, computed, effect, inject, } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { SkyDynamicComponentService, SkyMediaQueryService, SkyUIConfigService, } from '@skyux/core';\nimport { DragulaService } from 'ng2-dragula';\nimport { take } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nconst ATTR_TILE_ID = '_sky-tile-dashboard-tile-id';\nlet bagIdIndex = 0;\nexport class SkyTileDashboardService {\n #columns;\n #config;\n #singleColumn;\n #settingsKey;\n #tileComponents;\n #breakpoint;\n #destroyRef;\n #dragulaService;\n #dynamicComponentService;\n #renderer;\n #uiConfigService;\n #mode;\n constructor() {\n /**\n * @internal\n */\n this.configChange = new EventEmitter();\n /**\n * Fires when the tile dashboard's initialization is complete.\n */\n this.dashboardInitialized = new EventEmitter();\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\n this.#destroyRef = inject(DestroyRef);\n this.#dragulaService = inject(DragulaService);\n this.#dynamicComponentService = inject(SkyDynamicComponentService);\n this.#renderer = inject(RendererFactory2).createRenderer(undefined, null);\n this.#uiConfigService = inject(SkyUIConfigService);\n this.#mode = computed(() => {\n const breakpoint = this.#breakpoint();\n return breakpoint === 'xs' || breakpoint === 'sm' ? 'single' : 'multi';\n }, ...(ngDevMode ? [{ debugName: \"#mode\" }] : []));\n effect(() => {\n const mode = this.#mode();\n this.changeColumnMode(mode);\n });\n this.bagId = `sky-tile-dashboard-bag-${++bagIdIndex}`;\n this.#initDragula();\n }\n /**\n * @internal\n */\n init(config, columns, singleColumn, settingsKey) {\n // Clone this so changes to the config object outside of this class don't modify\n // the config used inside and vice versa.\n this.#config = Object.assign({}, config);\n // Verify that all tiles are accounted for in the layout.\n const tileIds = [\n ...new Set([\n ...this.#config.layout.multiColumn.flatMap((column) => column.tiles.map(({ id }) => id)),\n ...this.#config.layout.singleColumn.tiles.map(({ id }) => id),\n ]),\n ];\n this.#checkForNewTiles(this.#config, tileIds);\n if (settingsKey) {\n this.#settingsKey = settingsKey;\n this.#uiConfigService\n .getConfig(settingsKey, this.#config)\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n next: (value) => {\n if (this.#config && value.persisted) {\n this.#config.layout = value.layout;\n this.#checkForNewTiles(this.#config, value.tileIds);\n this.configChange.emit(this.#config);\n }\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n error: () => {\n // Config setting key doesn't exist or other config service error\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n });\n }\n else {\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n }\n }\n /**\n * Adds a new tile to the tile dashboard.\n * @param tile Specifies the tile configuration.\n * @param component Specifies the tile component to add.\n */\n addTileComponent(tile, component) {\n this.#tileComponents = this.#tileComponents || [];\n this.#tileComponents.push(component);\n component.location.nativeElement.setAttribute(ATTR_TILE_ID, tile.id);\n }\n /**\n * Checks whether a specified tile is collapsed.\n * @param tile Specifies the tile component to check.\n */\n tileIsCollapsed(tile) {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n if (tileConfig) {\n return tileConfig.isCollapsed;\n }\n return false;\n }\n /**\n * Sets the collapsed state of all tiles.\n * @param isCollapsed Indicates whether tiles are collapsed.\n */\n setAllTilesCollapsed(isCollapsed) {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n for (const tile of column.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n for (const tile of this.#config.layout.singleColumn.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n this.configChange.emit(this.#config);\n }\n /**\n * Sets the collapsed state of a specified tile.\n * @param tile Specifies the tile component.\n * @param isCollapsed Indicates whether the tile is collapsed.\n */\n setTileCollapsed(tile, isCollapsed) {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n if (tileConfig) {\n tileConfig.isCollapsed = isCollapsed;\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n this.configChange.emit(this.#config);\n }\n }\n /**\n * @internal\n */\n getTileComponentType(layoutTile) {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile.componentType;\n }\n }\n }\n return undefined;\n }\n /**\n * @internal\n */\n changeColumnMode(mode) {\n if (this.#config) {\n if (mode === 'single') {\n this.#moveTilesToSingleColumn();\n }\n else {\n this.#moveTilesToMultiColumn();\n }\n }\n }\n /**\n * @internal\n */\n getTileComponent(tileId) {\n return this.#tileComponents?.find((tileComponent) => tileComponent.location.nativeElement.getAttribute(ATTR_TILE_ID) ===\n tileId);\n }\n /**\n * @internal\n */\n moveTileOnKeyDown(tileCmp, direction, tileDescription) {\n if (this.#config) {\n const mode = this.#mode();\n const tileId = this.#getTileId(tileCmp);\n const tile = this.#findTile(tileId);\n let column;\n let colIndex = 0;\n if (mode === 'single') {\n column = this.#config.layout.singleColumn;\n }\n else if (this.#config.layout.multiColumn) {\n colIndex = this.#findTileColumnIndex(this.#config.layout.multiColumn, tileId);\n column = this.#config.layout.multiColumn[colIndex];\n }\n if (column && tile && tileId) {\n if (direction === 'left' || direction === 'right') {\n if (mode === 'multi') {\n this.#moveTileArrowLeftRight(tile, tileDescription, direction, colIndex, column, this.#config.layout.multiColumn);\n }\n }\n else {\n // Get the column element\n let columnEl;\n if (mode === 'single') {\n columnEl = this.#getColumnEl(this.#singleColumn);\n }\n else {\n columnEl = this.#getColumnEl(this.#columns?.toArray()[colIndex]);\n }\n this.#moveTileArrowUpDown(tile, tileDescription, direction, colIndex, column, columnEl);\n }\n }\n }\n }\n #moveTileArrowLeftRight(tile, tileDescription, direction, colIndex, column, multiColumn) {\n const operator = direction === 'left' ? -1 : 1;\n const newColumn = multiColumn[colIndex + operator];\n if (newColumn) {\n // Move the tile to the end of the new column\n newColumn.tiles.push(tile);\n column.tiles = column.tiles.filter((item) => item !== tile);\n this.#moveTilesToColumn(this.#columns?.toArray()[colIndex + operator], [\n tile,\n ]);\n // Report the change in configuration\n this.#emitTileMove(tileDescription, tile, colIndex + operator + 1, newColumn.tiles.length);\n }\n }\n #moveTileArrowUpDown(tile, tileDescription, direction, colIndex, column, columnEl) {\n const operator = direction === 'up' ? -1 : 1;\n const curIndex = column.tiles.findIndex((value) => value.id === tile.id);\n const tileComponentInstance = this.getTileComponent(tile.id);\n if (tileComponentInstance && column.tiles[curIndex + operator]) {\n const temp = column.tiles[curIndex + operator];\n column.tiles[curIndex + operator] = tile;\n column.tiles[curIndex] = temp;\n if (columnEl) {\n // Move the tile element in the document\n if (curIndex + operator === column.tiles.length - 1) {\n this.#renderer.appendChild(columnEl, tileComponentInstance.location.nativeElement);\n }\n else {\n this.#renderer.insertBefore(columnEl, tileComponentInstance.location.nativeElement, this.getTileComponent(column.tiles[curIndex + operator + 1].id)\n ?.location.nativeElement);\n }\n }\n // Report the change in configuration\n this.#emitTileMove(tileDescription, tile, colIndex + 1, curIndex + operator + 1);\n }\n }\n #emitTileMove(tileDescription, tile, newColumnIndex, newRowIndex) {\n const reportConfig = this.#getConfigForUIState();\n if (reportConfig) {\n if (this.#settingsKey) {\n this.#setUserConfig({ ...reportConfig });\n }\n reportConfig.movedTile = {\n tileDescription: this.#getTileDescription(tileDescription, tile),\n column: newColumnIndex,\n position: newRowIndex,\n };\n this.configChange.emit(reportConfig);\n }\n }\n #getTileDescription(tileDescription, tile) {\n return tileDescription || tile.id;\n }\n #getTileId(tile) {\n if (tile) {\n let el = tile.elementRef.nativeElement;\n let tileId;\n while (el) {\n tileId = el.getAttribute(ATTR_TILE_ID);\n if (tileId) {\n return tileId;\n }\n el = el.parentElement;\n }\n }\n return undefined;\n }\n #getTileOrRemoveFromLayout(layoutTile) {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile;\n }\n }\n // If the layout tile was not found in the list of tiles, it was removed since last the user updated settings\n if (this.#config?.layout.singleColumn) {\n this.#config.layout.singleColumn.tiles =\n this.#config.layout.singleColumn.tiles.filter((elem) => elem.id !== layoutTile.id);\n }\n this.#config?.layout.multiColumn.forEach((elem) => {\n elem.tiles = elem.tiles.filter((res) => res.id !== layoutTile.id);\n });\n }\n return undefined;\n }\n #checkReadyAndLoadTiles(columns, singleColumn) {\n this.#columns = columns;\n this.#singleColumn = singleColumn;\n if (this.#config && this.#columns) {\n this.#loadTiles(this.#config, this.#columns.toArray());\n this.dashboardInitialized.emit();\n }\n }\n #loadTiles(config, columns) {\n const layout = config.layout;\n if (this.#mode() === 'single') {\n for (const tile of layout.singleColumn.tiles) {\n this.#loadTileIntoColumn(this.#singleColumn, tile);\n }\n }\n else {\n for (let i = 0, n = layout.multiColumn.length; i < n; i++) {\n const column = columns[i];\n for (const tile of layout.multiColumn[i].tiles) {\n this.#loadTileIntoColumn(column, tile);\n }\n }\n }\n }\n #loadTileIntoColumn(column, layoutTile) {\n if (column) {\n const tile = this.#getTileOrRemoveFromLayout(layoutTile);\n if (tile && this.#dynamicComponentService) {\n const componentType = tile.componentType;\n const providers = tile.providers ?? [];\n const componentRef = this.#dynamicComponentService.createComponent(componentType, {\n providers: providers,\n viewContainerRef: column.content,\n environmentInjector: column.injector,\n className: 'sky-tile-parent',\n });\n this.addTileComponent(layoutTile, componentRef);\n // Make sure the component is marked for changes in case the parent component uses\n // the OnPush change detection strategy.\n componentRef.changeDetectorRef.markForCheck();\n }\n }\n }\n #moveTilesToSingleColumn() {\n this.#moveTilesToColumn(this.#singleColumn, this.#config?.layout.singleColumn.tiles);\n }\n #moveTilesToMultiColumn() {\n let layoutColumns = [];\n if (this.#config) {\n layoutColumns = this.#config.layout.multiColumn;\n }\n const columns = this.#columns?.toArray() ?? [];\n for (let i = 0, n = layoutColumns.length; i < n; i++) {\n this.#moveTilesToColumn(columns[i], layoutColumns[i].tiles);\n }\n }\n #moveTilesToColumn(column, layoutTiles) {\n const columnEl = this.#getColumnEl(column);\n if (columnEl && layoutTiles) {\n for (const layoutTile of layoutTiles) {\n const tileComponentInstance = this.getTileComponent(layoutTile.id);\n if (tileComponentInstance) {\n this.#renderer.appendChild(columnEl, tileComponentInstance.location.nativeElement);\n }\n }\n }\n }\n #getConfigForUIState() {\n if (this.#config) {\n this.#config = {\n tiles: this.#config.tiles,\n layout: {\n singleColumn: this.#getSingleColumnLayoutForUIState(this.#config),\n multiColumn: this.#getMultiColumnLayoutForUIState(this.#config),\n },\n };\n }\n return this.#config;\n }\n #getSingleColumnLayoutForUIState(config) {\n if (this.#mode() === 'single') {\n return {\n tiles: this.#getTilesInEl(this.#getColumnEl(this.#singleColumn)),\n };\n }\n return config.layout.singleColumn;\n }\n #getMultiColumnLayoutForUIState(config) {\n if (this.#mode() === 'multi') {\n const layoutColumns = [];\n let columns = [];\n if (this.#columns) {\n columns = this.#columns?.toArray();\n }\n for (const column of columns) {\n if (column !== this.#singleColumn) {\n const layoutColumn = {\n tiles: this.#getTilesInEl(this.#getColumnEl(column)),\n };\n layoutColumns.push(layoutColumn);\n }\n }\n return layoutColumns;\n }\n return config.layout.multiColumn;\n }\n #getTilesInEl(el) {\n const tileEls = el?.querySelectorAll('[' + ATTR_TILE_ID + ']');\n const layoutTiles = [];\n if (tileEls) {\n for (let i = 0, n = tileEls.length; i < n; i++) {\n const tileEl = tileEls[i];\n const tileId = tileEl.getAttribute(ATTR_TILE_ID);\n const tile = this.#findTile(tileId);\n if (tile) {\n layoutTiles.push(tile);\n }\n }\n }\n return layoutTiles;\n }\n #initDragula() {\n this.#dragulaService.createGroup(this.bagId, {\n moves: (el, container, handle) => {\n const target = el?.querySelector('.sky-tile-grab-handle');\n return !!target && target.contains(handle);\n },\n });\n this.#dragulaService\n .drop(this.bagId)\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe(() => {\n const config = this.#getConfigForUIState();\n if (config) {\n if (this.#settingsKey) {\n this.#setUserConfig(config);\n }\n this.configChange.emit(config);\n }\n });\n }\n #getColumnEl(column) {\n return column?.content?.element.nativeElement.parentNode;\n }\n #findTile(tileId) {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n if (column.tiles) {\n for (const tile of column.tiles) {\n if (tile.id === tileId) {\n return tile;\n }\n }\n }\n }\n }\n return undefined;\n }\n #findTileColumnIndex(multiColumn, tileId) {\n return multiColumn.findIndex((col) => !!col.tiles?.find((tile) => tile.id === tileId));\n }\n #setUserConfig(config) {\n if (config && this.#settingsKey)\n this.#uiConfigService\n .setConfig(this.#settingsKey, {\n layout: config.layout,\n persisted: true,\n tileIds: config.tiles.map((elem) => elem.id),\n })\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n error: (err) => {\n console.warn('Could not save tile dashboard settings.');\n console.warn(err);\n },\n });\n }\n #checkForNewTiles(config, oldTileIds) {\n // Get a list of tiles that are in the config's default list but not in the user's settings\n const newTiles = config.tiles.filter(({ id }) => !oldTileIds.includes(id));\n let hasChange = newTiles.length > 0;\n const multiColumn = config.layout.multiColumn;\n const singleColumn = config.layout.singleColumn;\n // Append new tiles to the end of the layouts\n if (multiColumn) {\n const multiColumnTileIds = multiColumn.flatMap((column) => column.tiles.map((tile) => tile.id));\n const newMultiColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter((tile) => !multiColumnTileIds.includes(tile.id)),\n ]),\n ];\n newMultiColumnTiles.forEach((elem) => {\n const smallest = Math.min(...multiColumn.map((col) => col.tiles.length));\n const locationToAdd = multiColumn.findIndex((col) => col.tiles.length === smallest);\n multiColumn[locationToAdd].tiles.push({\n id: elem.id,\n isCollapsed: false,\n });\n });\n }\n if (singleColumn) {\n const singleColumnTileIds = singleColumn.tiles.map((tile) => tile.id);\n const newSingleColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter((tile) => !singleColumnTileIds.includes(tile.id)),\n ]),\n ];\n newSingleColumnTiles.forEach((elem) => {\n singleColumn.tiles.push({ id: elem.id, isCollapsed: false });\n });\n }\n singleColumn?.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n multiColumn?.forEach((column) => {\n column.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n });\n return hasChange;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [], propDecorators: { dashboardInitialized: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1kYXNoYm9hcmQvdGlsZS1kYXNoYm9hcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUVOLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsa0JBQWtCLEdBQ25CLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVd0QyxNQUFNLFlBQVksR0FBRyw2QkFBNkIsQ0FBQztBQUVuRCxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFHbkIsTUFBTSxPQUFPLHVCQUF1QjtJQWlCbEMsUUFBUSxDQUF5RDtJQUNqRSxPQUFPLENBQXFDO0lBQzVDLGFBQWEsQ0FBOEM7SUFDM0QsWUFBWSxDQUFxQjtJQUNqQyxlQUFlLENBQWtDO0lBRXhDLFdBQVcsQ0FFbEI7SUFFTyxXQUFXLENBQXNCO0lBQ2pDLGVBQWUsQ0FBMEI7SUFDekMsd0JBQXdCLENBQXNDO0lBQzlELFNBQVMsQ0FBNEQ7SUFDckUsZ0JBQWdCLENBQThCO0lBRTlDLEtBQUssQ0FJWDtJQUVIO1FBakNBOztXQUVHO1FBQ0ksaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUVqRTs7V0FFRztRQUVJ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TyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDNUIsU0FBUyxLQUFLLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOytHQTF0QlUsdUJBQXVCO21IQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVU7O3NCQWVSLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERlc3Ryb3lSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0YWJsZSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG4gIFNreU1lZGlhUXVlcnlTZXJ2aWNlLFxuICBTa3lVSUNvbmZpZ1NlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgRHJhZ3VsYVNlcnZpY2UgfSBmcm9tICduZzItZHJhZ3VsYSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbmZpZyB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy90aWxlLWRhc2hib2FyZC1jb25maWcnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbiB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy90aWxlLWRhc2hib2FyZC1jb25maWctbGF5b3V0LWNvbHVtbic7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbmZpZy90aWxlLWRhc2hib2FyZC1jb25maWctbGF5b3V0LXRpbGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbmZpZ1RpbGUgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb25maWcvdGlsZS1kYXNoYm9hcmQtY29uZmlnLXRpbGUnO1xuaW1wb3J0IHsgU2t5VGlsZUNvbXBvbmVudCB9IGZyb20gJy4uL3RpbGUvdGlsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLW1vZGUnO1xuXG5jb25zdCBBVFRSX1RJTEVfSUQgPSAnX3NreS10aWxlLWRhc2hib2FyZC10aWxlLWlkJztcblxubGV0IGJhZ0lkSW5kZXggPSAwO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VGlsZURhc2hib2FyZFNlcnZpY2Uge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYmFnSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgY29uZmlnQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lUaWxlRGFzaGJvYXJkQ29uZmlnPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB0aWxlIGRhc2hib2FyZCdzIGluaXRpYWxpemF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBkYXNoYm9hcmRJbml0aWFsaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAjY29sdW1uczogUXVlcnlMaXN0PFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuICAjY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAjc2luZ2xlQ29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICAjc2V0dGluZ3NLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI3RpbGVDb21wb25lbnRzOiBDb21wb25lbnRSZWY8YW55PltdIHwgdW5kZWZpbmVkO1xuXG4gIHJlYWRvbmx5ICNicmVha3BvaW50ID0gdG9TaWduYWwoXG4gICAgaW5qZWN0KFNreU1lZGlhUXVlcnlTZXJ2aWNlKS5icmVha3BvaW50Q2hhbmdlLFxuICApO1xuXG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSAjZHJhZ3VsYVNlcnZpY2UgPSBpbmplY3QoRHJhZ3VsYVNlcnZpY2UpO1xuICByZWFkb25seSAjZHluYW1pY0NvbXBvbmVudFNlcnZpY2UgPSBpbmplY3QoU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UpO1xuICByZWFkb25seSAjcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXJGYWN0b3J5MikuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgcmVhZG9ubHkgI3VpQ29uZmlnU2VydmljZSA9IGluamVjdChTa3lVSUNvbmZpZ1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5ICNtb2RlID0gY29tcHV0ZWQ8U2t5VGlsZURhc2hib2FyZENvbHVtbk1vZGU+KCgpID0+IHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jYnJlYWtwb2ludCgpO1xuXG4gICAgcmV0dXJuIGJyZWFrcG9pbnQgPT09ICd4cycgfHwgYnJlYWtwb2ludCA9PT0gJ3NtJyA/ICdzaW5nbGUnIDogJ211bHRpJztcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGUgPSB0aGlzLiNtb2RlKCk7XG4gICAgICB0aGlzLmNoYW5nZUNvbHVtbk1vZGUobW9kZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmJhZ0lkID0gYHNreS10aWxlLWRhc2hib2FyZC1iYWctJHsrK2JhZ0lkSW5kZXh9YDtcblxuICAgIHRoaXMuI2luaXREcmFndWxhKCk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgaW5pdChcbiAgICBjb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcsXG4gICAgY29sdW1ucz86IFF1ZXJ5TGlzdDxTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50PixcbiAgICBzaW5nbGVDb2x1bW4/OiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50LFxuICAgIHNldHRpbmdzS2V5Pzogc3RyaW5nLFxuICApOiB2b2lkIHtcbiAgICAvLyBDbG9uZSB0aGlzIHNvIGNoYW5nZXMgdG8gdGhlIGNvbmZpZyBvYmplY3Qgb3V0c2lkZSBvZiB0aGlzIGNsYXNzIGRvbid0IG1vZGlmeVxuICAgIC8vIHRoZSBjb25maWcgdXNlZCBpbnNpZGUgYW5kIHZpY2UgdmVyc2EuXG4gICAgdGhpcy4jY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnKSBhcyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnO1xuXG4gICAgLy8gVmVyaWZ5IHRoYXQgYWxsIHRpbGVzIGFyZSBhY2NvdW50ZWQgZm9yIGluIHRoZSBsYXlvdXQuXG4gICAgY29uc3QgdGlsZUlkcyA9IFtcbiAgICAgIC4uLm5ldyBTZXQoW1xuICAgICAgICAuLi50aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmZsYXRNYXAoKGNvbHVtbikgPT5cbiAgICAgICAgICBjb2x1bW4udGlsZXMubWFwKCh7IGlkIH0pID0+IGlkKSxcbiAgICAgICAgKSxcbiAgICAgICAgLi4udGhpcy4jY29uZmlnLmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMubWFwKCh7IGlkIH0pID0+IGlkKSxcbiAgICAgIF0pLFxuICAgIF07XG4gICAgdGhpcy4jY2hlY2tGb3JOZXdUaWxlcyh0aGlzLiNjb25maWcsIHRpbGVJZHMpO1xuXG4gICAgaWYgKHNldHRpbmdzS2V5KSB7XG4gICAgICB0aGlzLiNzZXR0aW5nc0tleSA9IHNldHRpbmdzS2V5O1xuXG4gICAgICB0aGlzLiN1aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgLmdldENvbmZpZyhzZXR0aW5nc0tleSwgdGhpcy4jY29uZmlnKVxuICAgICAgICAucGlwZSh0YWtlKDEpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZikpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy4jY29uZmlnICYmIHZhbHVlLnBlcnNpc3RlZCkge1xuICAgICAgICAgICAgICB0aGlzLiNjb25maWcubGF5b3V0ID0gdmFsdWUubGF5b3V0O1xuICAgICAgICAgICAgICB0aGlzLiNjaGVja0Zvck5ld1RpbGVzKHRoaXMuI2NvbmZpZywgdmFsdWUudGlsZUlkcyk7XG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnQ2hhbmdlLmVtaXQodGhpcy4jY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuI2NoZWNrUmVhZHlBbmRMb2FkVGlsZXMoY29sdW1ucywgc2luZ2xlQ29sdW1uKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAvLyBDb25maWcgc2V0dGluZyBrZXkgZG9lc24ndCBleGlzdCBvciBvdGhlciBjb25maWcgc2VydmljZSBlcnJvclxuICAgICAgICAgICAgdGhpcy4jY2hlY2tSZWFkeUFuZExvYWRUaWxlcyhjb2x1bW5zLCBzaW5nbGVDb2x1bW4pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNjaGVja1JlYWR5QW5kTG9hZFRpbGVzKGNvbHVtbnMsIHNpbmdsZUNvbHVtbik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgdGlsZSB0byB0aGUgdGlsZSBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSB0aWxlIFNwZWNpZmllcyB0aGUgdGlsZSBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gY29tcG9uZW50IFNwZWNpZmllcyB0aGUgdGlsZSBjb21wb25lbnQgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZFRpbGVDb21wb25lbnQoXG4gICAgdGlsZTogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dFRpbGUsXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRSZWY8YW55PixcbiAgKTogdm9pZCB7XG4gICAgdGhpcy4jdGlsZUNvbXBvbmVudHMgPSB0aGlzLiN0aWxlQ29tcG9uZW50cyB8fCBbXTtcblxuICAgIHRoaXMuI3RpbGVDb21wb25lbnRzLnB1c2goY29tcG9uZW50KTtcblxuICAgIGNvbXBvbmVudC5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZShBVFRSX1RJTEVfSUQsIHRpbGUuaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgc3BlY2lmaWVkIHRpbGUgaXMgY29sbGFwc2VkLlxuICAgKiBAcGFyYW0gdGlsZSBTcGVjaWZpZXMgdGhlIHRpbGUgY29tcG9uZW50IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIHRpbGVJc0NvbGxhcHNlZCh0aWxlOiBTa3lUaWxlQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGlsZUNvbmZpZyA9IHRoaXMuI2ZpbmRUaWxlKHRoaXMuI2dldFRpbGVJZCh0aWxlKSk7XG5cbiAgICBpZiAodGlsZUNvbmZpZykge1xuICAgICAgcmV0dXJuIHRpbGVDb25maWcuaXNDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbGxhcHNlZCBzdGF0ZSBvZiBhbGwgdGlsZXMuXG4gICAqIEBwYXJhbSBpc0NvbGxhcHNlZCBJbmRpY2F0ZXMgd2hldGhlciB0aWxlcyBhcmUgY29sbGFwc2VkLlxuICAgKi9cbiAgcHVibGljIHNldEFsbFRpbGVzQ29sbGFwc2VkKGlzQ29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2NvbmZpZyAmJiB0aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB0aGlzLiNjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uKSB7XG4gICAgICAgIGZvciAoY29uc3QgdGlsZSBvZiBjb2x1bW4udGlsZXMpIHtcbiAgICAgICAgICB0aWxlLmlzQ29sbGFwc2VkID0gaXNDb2xsYXBzZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgdGlsZSBvZiB0aGlzLiNjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbi50aWxlcykge1xuICAgICAgICB0aWxlLmlzQ29sbGFwc2VkID0gaXNDb2xsYXBzZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI3NldHRpbmdzS2V5KSB7XG4gICAgICB0aGlzLiNzZXRVc2VyQ29uZmlnKHRoaXMuI2NvbmZpZyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWdDaGFuZ2UuZW1pdCh0aGlzLiNjb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbGxhcHNlZCBzdGF0ZSBvZiBhIHNwZWNpZmllZCB0aWxlLlxuICAgKiBAcGFyYW0gdGlsZSBTcGVjaWZpZXMgdGhlIHRpbGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gaXNDb2xsYXBzZWQgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRpbGUgaXMgY29sbGFwc2VkLlxuICAgKi9cbiAgcHVibGljIHNldFRpbGVDb2xsYXBzZWQoXG4gICAgdGlsZTogU2t5VGlsZUNvbXBvbmVudCB8IHVuZGVmaW5lZCxcbiAgICBpc0NvbGxhcHNlZDogYm9vbGVhbixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgdGlsZUNvbmZpZyA9IHRoaXMuI2ZpbmRUaWxlKHRoaXMuI2dldFRpbGVJZCh0aWxlKSk7XG5cbiAgICBpZiAodGlsZUNvbmZpZykge1xuICAgICAgdGlsZUNvbmZpZy5pc0NvbGxhcHNlZCA9IGlzQ29sbGFwc2VkO1xuXG4gICAgICBpZiAodGhpcy4jc2V0dGluZ3NLZXkpIHtcbiAgICAgICAgdGhpcy4jc2V0VXNlckNvbmZpZyh0aGlzLiNjb25maWcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KHRoaXMuI2NvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGdldFRpbGVDb21wb25lbnRUeXBlKFxuICAgIGxheW91dFRpbGU6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlIHwgdW5kZWZpbmVkLFxuICApOiBhbnkge1xuICAgIGlmIChsYXlvdXRUaWxlICYmIHRoaXMuI2NvbmZpZykge1xuICAgICAgZm9yIChjb25zdCB0aWxlIG9mIHRoaXMuI2NvbmZpZy50aWxlcykge1xuICAgICAgICBpZiAodGlsZS5pZCA9PT0gbGF5b3V0VGlsZS5pZCkge1xuICAgICAgICAgIHJldHVybiB0aWxlLmNvbXBvbmVudFR5cGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGNoYW5nZUNvbHVtbk1vZGUobW9kZTogU2t5VGlsZURhc2hib2FyZENvbHVtbk1vZGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jY29uZmlnKSB7XG4gICAgICBpZiAobW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgdGhpcy4jbW92ZVRpbGVzVG9TaW5nbGVDb2x1bW4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI21vdmVUaWxlc1RvTXVsdGlDb2x1bW4oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZ2V0VGlsZUNvbXBvbmVudCh0aWxlSWQ6IHN0cmluZyk6IENvbXBvbmVudFJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jdGlsZUNvbXBvbmVudHM/LmZpbmQoXG4gICAgICAodGlsZUNvbXBvbmVudCkgPT5cbiAgICAgICAgdGlsZUNvbXBvbmVudC5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZShBVFRSX1RJTEVfSUQpID09PVxuICAgICAgICB0aWxlSWQsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBtb3ZlVGlsZU9uS2V5RG93bihcbiAgICB0aWxlQ21wOiBTa3lUaWxlQ29tcG9uZW50LFxuICAgIGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJyB8ICdsZWZ0JyB8ICdyaWdodCcsXG4gICAgdGlsZURlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNjb25maWcpIHtcbiAgICAgIGNvbnN0IG1vZGUgPSB0aGlzLiNtb2RlKCk7XG4gICAgICBjb25zdCB0aWxlSWQgPSB0aGlzLiNnZXRUaWxlSWQodGlsZUNtcCk7XG4gICAgICBjb25zdCB0aWxlID0gdGhpcy4jZmluZFRpbGUodGlsZUlkKTtcblxuICAgICAgbGV0IGNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbiB8IHVuZGVmaW5lZDtcbiAgICAgIGxldCBjb2xJbmRleCA9IDA7XG5cbiAgICAgIGlmIChtb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICBjb2x1bW4gPSB0aGlzLiNjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbjtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy4jY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbikge1xuICAgICAgICBjb2xJbmRleCA9IHRoaXMuI2ZpbmRUaWxlQ29sdW1uSW5kZXgoXG4gICAgICAgICAgdGhpcy4jY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbixcbiAgICAgICAgICB0aWxlSWQsXG4gICAgICAgICk7XG4gICAgICAgIGNvbHVtbiA9IHRoaXMuI2NvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW5bY29sSW5kZXhdO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29sdW1uICYmIHRpbGUgJiYgdGlsZUlkKSB7XG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT09ICdsZWZ0JyB8fCBkaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICBpZiAobW9kZSA9PT0gJ211bHRpJykge1xuICAgICAgICAgICAgdGhpcy4jbW92ZVRpbGVBcnJvd0xlZnRSaWdodChcbiAgICAgICAgICAgICAgdGlsZSxcbiAgICAgICAgICAgICAgdGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICAgIGNvbEluZGV4LFxuICAgICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICAgIHRoaXMuI2NvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW4sXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBHZXQgdGhlIGNvbHVtbiBlbGVtZW50XG4gICAgICAgICAgbGV0IGNvbHVtbkVsOiBFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChtb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgY29sdW1uRWwgPSB0aGlzLiNnZXRDb2x1bW5FbCh0aGlzLiNzaW5nbGVDb2x1bW4pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb2x1bW5FbCA9IHRoaXMuI2dldENvbHVtbkVsKHRoaXMuI2NvbHVtbnM/LnRvQXJyYXkoKVtjb2xJbmRleF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLiNtb3ZlVGlsZUFycm93VXBEb3duKFxuICAgICAgICAgICAgdGlsZSxcbiAgICAgICAgICAgIHRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgIGNvbEluZGV4LFxuICAgICAgICAgICAgY29sdW1uLFxuICAgICAgICAgICAgY29sdW1uRWwsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNtb3ZlVGlsZUFycm93TGVmdFJpZ2h0KFxuICAgIHRpbGU6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRUaWxlLFxuICAgIHRpbGVEZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyxcbiAgICBjb2xJbmRleDogbnVtYmVyLFxuICAgIGNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbixcbiAgICBtdWx0aUNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbltdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBvcGVyYXRvciA9IGRpcmVjdGlvbiA9PT0gJ2xlZnQnID8gLTEgOiAxO1xuICAgIGNvbnN0IG5ld0NvbHVtbiA9IG11bHRpQ29sdW1uW2NvbEluZGV4ICsgb3BlcmF0b3JdO1xuXG4gICAgaWYgKG5ld0NvbHVtbikge1xuICAgICAgLy8gTW92ZSB0aGUgdGlsZSB0byB0aGUgZW5kIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICBuZXdDb2x1bW4udGlsZXMucHVzaCh0aWxlKTtcbiAgICAgIGNvbHVtbi50aWxlcyA9IGNvbHVtbi50aWxlcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IHRpbGUpO1xuICAgICAgdGhpcy4jbW92ZVRpbGVzVG9Db2x1bW4odGhpcy4jY29sdW1ucz8udG9BcnJheSgpW2NvbEluZGV4ICsgb3BlcmF0b3JdLCBbXG4gICAgICAgIHRpbGUsXG4gICAgICBdKTtcblxuICAgICAgLy8gUmVwb3J0IHRoZSBjaGFuZ2UgaW4gY29uZmlndXJhdGlvblxuICAgICAgdGhpcy4jZW1pdFRpbGVNb3ZlKFxuICAgICAgICB0aWxlRGVzY3JpcHRpb24sXG4gICAgICAgIHRpbGUsXG4gICAgICAgIGNvbEluZGV4ICsgb3BlcmF0b3IgKyAxLFxuICAgICAgICBuZXdDb2x1bW4udGlsZXMubGVuZ3RoLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjbW92ZVRpbGVBcnJvd1VwRG93bihcbiAgICB0aWxlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSxcbiAgICB0aWxlRGVzY3JpcHRpb246IHN0cmluZyxcbiAgICBkaXJlY3Rpb246ICd1cCcgfCAnZG93bicsXG4gICAgY29sSW5kZXg6IG51bWJlcixcbiAgICBjb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRDb2x1bW4sXG4gICAgY29sdW1uRWw6IEVsZW1lbnQgfCB1bmRlZmluZWQsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IG9wZXJhdG9yID0gZGlyZWN0aW9uID09PSAndXAnID8gLTEgOiAxO1xuICAgIGNvbnN0IGN1ckluZGV4ID0gY29sdW1uLnRpbGVzLmZpbmRJbmRleCgodmFsdWUpID0+IHZhbHVlLmlkID09PSB0aWxlLmlkKTtcbiAgICBjb25zdCB0aWxlQ29tcG9uZW50SW5zdGFuY2UgPSB0aGlzLmdldFRpbGVDb21wb25lbnQodGlsZS5pZCk7XG5cbiAgICBpZiAodGlsZUNvbXBvbmVudEluc3RhbmNlICYmIGNvbHVtbi50aWxlc1tjdXJJbmRleCArIG9wZXJhdG9yXSkge1xuICAgICAgY29uc3QgdGVtcCA9IGNvbHVtbi50aWxlc1tjdXJJbmRleCArIG9wZXJhdG9yXTtcbiAgICAgIGNvbHVtbi50aWxlc1tjdXJJbmRleCArIG9wZXJhdG9yXSA9IHRpbGU7XG4gICAgICBjb2x1bW4udGlsZXNbY3VySW5kZXhdID0gdGVtcDtcblxuICAgICAgaWYgKGNvbHVtbkVsKSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIHRpbGUgZWxlbWVudCBpbiB0aGUgZG9jdW1lbnRcbiAgICAgICAgaWYgKGN1ckluZGV4ICsgb3BlcmF0b3IgPT09IGNvbHVtbi50aWxlcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIuYXBwZW5kQ2hpbGQoXG4gICAgICAgICAgICBjb2x1bW5FbCxcbiAgICAgICAgICAgIHRpbGVDb21wb25lbnRJbnN0YW5jZS5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIuaW5zZXJ0QmVmb3JlKFxuICAgICAgICAgICAgY29sdW1uRWwsXG4gICAgICAgICAgICB0aWxlQ29tcG9uZW50SW5zdGFuY2UubG9jYXRpb24ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHRoaXMuZ2V0VGlsZUNvbXBvbmVudChjb2x1bW4udGlsZXNbY3VySW5kZXggKyBvcGVyYXRvciArIDFdLmlkKVxuICAgICAgICAgICAgICA/LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBSZXBvcnQgdGhlIGNoYW5nZSBpbiBjb25maWd1cmF0aW9uXG4gICAgICB0aGlzLiNlbWl0VGlsZU1vdmUoXG4gICAgICAgIHRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgdGlsZSxcbiAgICAgICAgY29sSW5kZXggKyAxLFxuICAgICAgICBjdXJJbmRleCArIG9wZXJhdG9yICsgMSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI2VtaXRUaWxlTW92ZShcbiAgICB0aWxlRGVzY3JpcHRpb246IHN0cmluZyxcbiAgICB0aWxlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSxcbiAgICBuZXdDb2x1bW5JbmRleDogbnVtYmVyLFxuICAgIG5ld1Jvd0luZGV4OiBudW1iZXIsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHJlcG9ydENvbmZpZyA9IHRoaXMuI2dldENvbmZpZ0ZvclVJU3RhdGUoKTtcbiAgICBpZiAocmVwb3J0Q29uZmlnKSB7XG4gICAgICBpZiAodGhpcy4jc2V0dGluZ3NLZXkpIHtcbiAgICAgICAgdGhpcy4jc2V0VXNlckNvbmZpZyh7IC4uLnJlcG9ydENvbmZpZyB9KTtcbiAgICAgIH1cbiAgICAgIHJlcG9ydENvbmZpZy5tb3ZlZFRpbGUgPSB7XG4gICAgICAgIHRpbGVEZXNjcmlwdGlvbjogdGhpcy4jZ2V0VGlsZURlc2NyaXB0aW9uKHRpbGVEZXNjcmlwdGlvbiwgdGlsZSksXG4gICAgICAgIGNvbHVtbjogbmV3Q29sdW1uSW5kZXgsXG4gICAgICAgIHBvc2l0aW9uOiBuZXdSb3dJbmRleCxcbiAgICAgIH07XG4gICAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KHJlcG9ydENvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgI2dldFRpbGVEZXNjcmlwdGlvbihcbiAgICB0aWxlRGVzY3JpcHRpb246IHN0cmluZyxcbiAgICB0aWxlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSxcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGlsZURlc2NyaXB0aW9uIHx8IHRpbGUuaWQ7XG4gIH1cblxuICAjZ2V0VGlsZUlkKHRpbGU6IFNreVRpbGVDb21wb25lbnQgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aWxlKSB7XG4gICAgICBsZXQgZWwgPSB0aWxlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgIGxldCB0aWxlSWQ6IHN0cmluZztcblxuICAgICAgd2hpbGUgKGVsKSB7XG4gICAgICAgIHRpbGVJZCA9IGVsLmdldEF0dHJpYnV0ZShBVFRSX1RJTEVfSUQpO1xuXG4gICAgICAgIGlmICh0aWxlSWQpIHtcbiAgICAgICAgICByZXR1cm4gdGlsZUlkO1xuICAgICAgICB9XG5cbiAgICAgICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAjZ2V0VGlsZU9yUmVtb3ZlRnJvbUxheW91dChcbiAgICBsYXlvdXRUaWxlOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZSxcbiAgKTogU2t5VGlsZURhc2hib2FyZENvbmZpZ1RpbGUgfCB1bmRlZmluZWQge1xuICAgIGlmIChsYXlvdXRUaWxlICYmIHRoaXMuI2NvbmZpZykge1xuICAgICAgZm9yIChjb25zdCB0aWxlIG9mIHRoaXMuI2NvbmZpZy50aWxlcykge1xuICAgICAgICBpZiAodGlsZS5pZCA9PT0gbGF5b3V0VGlsZS5pZCkge1xuICAgICAgICAgIHJldHVybiB0aWxlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBsYXlvdXQgdGlsZSB3YXMgbm90IGZvdW5kIGluIHRoZSBsaXN0IG9mIHRpbGVzLCBpdCB3YXMgcmVtb3ZlZCBzaW5jZSBsYXN0IHRoZSB1c2VyIHVwZGF0ZWQgc2V0dGluZ3NcbiAgICAgIGlmICh0aGlzLiNjb25maWc/LmxheW91dC5zaW5nbGVDb2x1bW4pIHtcbiAgICAgICAgdGhpcy4jY29uZmlnLmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMgPVxuICAgICAgICAgIHRoaXMuI2NvbmZpZy5sYXlvdXQuc2luZ2xlQ29sdW1uLnRpbGVzLmZpbHRlcihcbiAgICAgICAgICAgIChlbGVtKSA9PiBlbGVtLmlkICE9PSBsYXlvdXRUaWxlLmlkLFxuICAgICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2NvbmZpZz8ubGF5b3V0Lm11bHRpQ29sdW1uLmZvckVhY2goKGVsZW0pID0+IHtcbiAgICAgICAgZWxlbS50aWxlcyA9IGVsZW0udGlsZXMuZmlsdGVyKChyZXMpID0+IHJlcy5pZCAhPT0gbGF5b3V0VGlsZS5pZCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgI2NoZWNrUmVhZHlBbmRMb2FkVGlsZXMoXG4gICAgY29sdW1uczogUXVlcnlMaXN0PFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQ+IHwgdW5kZWZpbmVkLFxuICAgIHNpbmdsZUNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy4jY29sdW1ucyA9IGNvbHVtbnM7XG4gICAgdGhpcy4jc2luZ2xlQ29sdW1uID0gc2luZ2xlQ29sdW1uO1xuICAgIGlmICh0aGlzLiNjb25maWcgJiYgdGhpcy4jY29sdW1ucykge1xuICAgICAgdGhpcy4jbG9hZFRpbGVzKHRoaXMuI2NvbmZpZywgdGhpcy4jY29sdW1ucy50b0FycmF5KCkpO1xuICAgICAgdGhpcy5kYXNoYm9hcmRJbml0aWFsaXplZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgI2xvYWRUaWxlcyhcbiAgICBjb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcsXG4gICAgY29sdW1uczogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudFtdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBsYXlvdXQgPSBjb25maWcubGF5b3V0O1xuXG4gICAgaWYgKHRoaXMuI21vZGUoKSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIGZvciAoY29uc3QgdGlsZSBvZiBsYXlvdXQuc2luZ2xlQ29sdW1uLnRpbGVzKSB7XG4gICAgICAgIHRoaXMuI2xvYWRUaWxlSW50b0NvbHVtbih0aGlzLiNzaW5nbGVDb2x1bW4sIHRpbGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMCwgbiA9IGxheW91dC5tdWx0aUNvbHVtbi5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1uc1tpXTtcbiAgICAgICAgZm9yIChjb25zdCB0aWxlIG9mIGxheW91dC5tdWx0aUNvbHVtbltpXS50aWxlcykge1xuICAgICAgICAgIHRoaXMuI2xvYWRUaWxlSW50b0NvbHVtbihjb2x1bW4sIHRpbGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2xvYWRUaWxlSW50b0NvbHVtbihcbiAgICBjb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfCB1bmRlZmluZWQsXG4gICAgbGF5b3V0VGlsZTogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dFRpbGUsXG4gICk6IHZvaWQge1xuICAgIGlmIChjb2x1bW4pIHtcbiAgICAgIGNvbnN0IHRpbGUgPSB0aGlzLiNnZXRUaWxlT3JSZW1vdmVGcm9tTGF5b3V0KGxheW91dFRpbGUpO1xuXG4gICAgICBpZiAodGlsZSAmJiB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZSkge1xuICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlID0gdGlsZS5jb21wb25lbnRUeXBlO1xuICAgICAgICBjb25zdCBwcm92aWRlcnMgPSB0aWxlLnByb3ZpZGVycyA/PyBbXTtcblxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgICAgY29tcG9uZW50VHlwZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlcnM6IHByb3ZpZGVycyxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IGNvbHVtbi5jb250ZW50LFxuICAgICAgICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogY29sdW1uLmluamVjdG9yLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc2t5LXRpbGUtcGFyZW50JyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuYWRkVGlsZUNvbXBvbmVudChsYXlvdXRUaWxlLCBjb21wb25lbnRSZWYpO1xuXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgY29tcG9uZW50IGlzIG1hcmtlZCBmb3IgY2hhbmdlcyBpbiBjYXNlIHRoZSBwYXJlbnQgY29tcG9uZW50IHVzZXNcbiAgICAgICAgLy8gdGhlIE9uUHVzaCBjaGFuZ2UgZGV0ZWN0aW9uIHN0cmF0ZWd5LlxuICAgICAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI21vdmVUaWxlc1RvU2luZ2xlQ29sdW1uKCk6IHZvaWQge1xuICAgIHRoaXMuI21vdmVUaWxlc1RvQ29sdW1uKFxuICAgICAgdGhpcy4jc2luZ2xlQ29sdW1uLFxuICAgICAgdGhpcy4jY29uZmlnPy5sYXlvdXQuc2luZ2xlQ29sdW1uLnRpbGVzLFxuICAgICk7XG4gIH1cblxuICAjbW92ZVRpbGVzVG9NdWx0aUNvbHVtbigpOiB2b2lkIHtcbiAgICBsZXQgbGF5b3V0Q29sdW1uczogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbltdID0gW107XG4gICAgaWYgKHRoaXMuI2NvbmZpZykge1xuICAgICAgbGF5b3V0Q29sdW1ucyA9IHRoaXMuI2NvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW47XG4gICAgfVxuICAgIGNvbnN0IGNvbHVtbnM6IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnRbXSA9XG4gICAgICB0aGlzLiNjb2x1bW5zPy50b0FycmF5KCkgPz8gW107XG5cbiAgICBmb3IgKGxldCBpID0gMCwgbiA9IGxheW91dENvbHVtbnMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICB0aGlzLiNtb3ZlVGlsZXNUb0NvbHVtbihjb2x1bW5zW2ldLCBsYXlvdXRDb2x1bW5zW2ldLnRpbGVzKTtcbiAgICB9XG4gIH1cblxuICAjbW92ZVRpbGVzVG9Db2x1bW4oXG4gICAgY29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IHwgdW5kZWZpbmVkLFxuICAgIGxheW91dFRpbGVzOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZVtdIHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb2x1bW5FbCA9IHRoaXMuI2dldENvbHVtbkVsKGNvbHVtbik7XG4gICAgaWYgKGNvbHVtbkVsICYmIGxheW91dFRpbGVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGxheW91dFRpbGUgb2YgbGF5b3V0VGlsZXMpIHtcbiAgICAgICAgY29uc3QgdGlsZUNvbXBvbmVudEluc3RhbmNlID0gdGhpcy5nZXRUaWxlQ29tcG9uZW50KGxheW91dFRpbGUuaWQpO1xuICAgICAgICBpZiAodGlsZUNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIuYXBwZW5kQ2hpbGQoXG4gICAgICAgICAgICBjb2x1bW5FbCxcbiAgICAgICAgICAgIHRpbGVDb21wb25lbnRJbnN0YW5jZS5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZ2V0Q29uZmlnRm9yVUlTdGF0ZSgpOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy4jY29uZmlnKSB7XG4gICAgICB0aGlzLiNjb25maWcgPSB7XG4gICAgICAgIHRpbGVzOiB0aGlzLiNjb25maWcudGlsZXMsXG4gICAgICAgIGxheW91dDoge1xuICAgICAgICAgIHNpbmdsZUNvbHVtbjogdGhpcy4jZ2V0U2luZ2xlQ29sdW1uTGF5b3V0Rm9yVUlTdGF0ZSh0aGlzLiNjb25maWcpLFxuICAgICAgICAgIG11bHRpQ29sdW1uOiB0aGlzLiNnZXRNdWx0aUNvbHVtbkxheW91dEZvclVJU3RhdGUodGhpcy4jY29uZmlnKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI2NvbmZpZztcbiAgfVxuXG4gICNnZXRTaW5nbGVDb2x1bW5MYXlvdXRGb3JVSVN0YXRlKFxuICAgIGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZyxcbiAgKTogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dENvbHVtbiB7XG4gICAgaWYgKHRoaXMuI21vZGUoKSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRpbGVzOiB0aGlzLiNnZXRUaWxlc0luRWwodGhpcy4jZ2V0Q29sdW1uRWwodGhpcy4jc2luZ2xlQ29sdW1uKSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjb25maWcubGF5b3V0LnNpbmdsZUNvbHVtbjtcbiAgfVxuXG4gICNnZXRNdWx0aUNvbHVtbkxheW91dEZvclVJU3RhdGUoXG4gICAgY29uZmlnOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnLFxuICApOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uW10ge1xuICAgIGlmICh0aGlzLiNtb2RlKCkgPT09ICdtdWx0aScpIHtcbiAgICAgIGNvbnN0IGxheW91dENvbHVtbnM6IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRDb2x1bW5bXSA9IFtdO1xuICAgICAgbGV0IGNvbHVtbnM6IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnRbXSA9IFtdO1xuICAgICAgaWYgKHRoaXMuI2NvbHVtbnMpIHtcbiAgICAgICAgY29sdW1ucyA9IHRoaXMuI2NvbHVtbnM/LnRvQXJyYXkoKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgICAgICBpZiAoY29sdW1uICE9PSB0aGlzLiNzaW5nbGVDb2x1bW4pIHtcbiAgICAgICAgICBjb25zdCBsYXlvdXRDb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRDb2x1bW4gPSB7XG4gICAgICAgICAgICB0aWxlczogdGhpcy4jZ2V0VGlsZXNJbkVsKHRoaXMuI2dldENvbHVtbkVsKGNvbHVtbikpLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBsYXlvdXRDb2x1bW5zLnB1c2gobGF5b3V0Q29sdW1uKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGF5b3V0Q29sdW1ucztcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbjtcbiAgfVxuXG4gICNnZXRUaWxlc0luRWwoZWw6IEVsZW1lbnQgfCB1bmRlZmluZWQpOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0VGlsZVtdIHtcbiAgICBjb25zdCB0aWxlRWxzID0gZWw/LnF1ZXJ5U2VsZWN0b3JBbGwoJ1snICsgQVRUUl9USUxFX0lEICsgJ10nKTtcbiAgICBjb25zdCBsYXlvdXRUaWxlczogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dFRpbGVbXSA9IFtdO1xuXG4gICAgaWYgKHRpbGVFbHMpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gdGlsZUVscy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGlsZUVsID0gdGlsZUVsc1tpXTtcbiAgICAgICAgY29uc3QgdGlsZUlkID0gdGlsZUVsLmdldEF0dHJpYnV0ZShBVFRSX1RJTEVfSUQpO1xuICAgICAgICBjb25zdCB0aWxlID0gdGhpcy4jZmluZFRpbGUodGlsZUlkKTtcblxuICAgICAgICBpZiAodGlsZSkge1xuICAgICAgICAgIGxheW91dFRpbGVzLnB1c2godGlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGF5b3V0VGlsZXM7XG4gIH1cblxuICAjaW5pdERyYWd1bGEoKTogdm9pZCB7XG4gICAgdGhpcy4jZHJhZ3VsYVNlcnZpY2UuY3JlYXRlR3JvdXAodGhpcy5iYWdJZCwge1xuICAgICAgbW92ZXM6IChlbCwgY29udGFpbmVyLCBoYW5kbGUpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZWw/LnF1ZXJ5U2VsZWN0b3IoJy5za3ktdGlsZS1ncmFiLWhhbmRsZScpO1xuICAgICAgICByZXR1cm4gISF0YXJnZXQgJiYgdGFyZ2V0LmNvbnRhaW5zKGhhbmRsZSEpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuI2RyYWd1bGFTZXJ2aWNlXG4gICAgICAuZHJvcCh0aGlzLmJhZ0lkKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuI2dldENvbmZpZ0ZvclVJU3RhdGUoKTtcblxuICAgICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgICAgaWYgKHRoaXMuI3NldHRpbmdzS2V5KSB7XG4gICAgICAgICAgICB0aGlzLiNzZXRVc2VyQ29uZmlnKGNvbmZpZyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5jb25maWdDaGFuZ2UuZW1pdChjb25maWcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gICNnZXRDb2x1bW5FbChcbiAgICBjb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfCB1bmRlZmluZWQsXG4gICk6IEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBjb2x1bW4/LmNvbnRlbnQ/LmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xuICB9XG5cbiAgI2ZpbmRUaWxlKFxuICAgIHRpbGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgKTogU2t5VGlsZURhc2hib2FyZENvbmZpZ0xheW91dFRpbGUgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLiNjb25maWcgJiYgdGhpcy4jY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbikge1xuICAgICAgZm9yIChjb25zdCBjb2x1bW4gb2YgdGhpcy4jY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbikge1xuICAgICAgICBpZiAoY29sdW1uLnRpbGVzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCB0aWxlIG9mIGNvbHVtbi50aWxlcykge1xuICAgICAgICAgICAgaWYgKHRpbGUuaWQgPT09IHRpbGVJZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdGlsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgI2ZpbmRUaWxlQ29sdW1uSW5kZXgoXG4gICAgbXVsdGlDb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRDb2x1bW5bXSxcbiAgICB0aWxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbXVsdGlDb2x1bW4uZmluZEluZGV4KFxuICAgICAgKGNvbCkgPT4gISFjb2wudGlsZXM/LmZpbmQoKHRpbGUpID0+IHRpbGUuaWQgPT09IHRpbGVJZCksXG4gICAgKTtcbiAgfVxuXG4gICNzZXRVc2VyQ29uZmlnKGNvbmZpZz86IFNreVRpbGVEYXNoYm9hcmRDb25maWcpOiB2b2lkIHtcbiAgICBpZiAoY29uZmlnICYmIHRoaXMuI3NldHRpbmdzS2V5KVxuICAgICAgdGhpcy4jdWlDb25maWdTZXJ2aWNlXG4gICAgICAgIC5zZXRDb25maWcodGhpcy4jc2V0dGluZ3NLZXksIHtcbiAgICAgICAgICBsYXlvdXQ6IGNvbmZpZy5sYXlvdXQsXG4gICAgICAgICAgcGVyc2lzdGVkOiB0cnVlLFxuICAgICAgICAgIHRpbGVJZHM6IGNvbmZpZy50aWxlcy5tYXAoKGVsZW0pID0+IGVsZW0uaWQpLFxuICAgICAgICB9KVxuICAgICAgICAucGlwZSh0YWtlKDEpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZikpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBzYXZlIHRpbGUgZGFzaGJvYXJkIHNldHRpbmdzLicpO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGVycik7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gIH1cblxuICAjY2hlY2tGb3JOZXdUaWxlcyhcbiAgICBjb25maWc6IFNreVRpbGVEYXNoYm9hcmRDb25maWcsXG4gICAgb2xkVGlsZUlkczogc3RyaW5nW10sXG4gICk6IGJvb2xlYW4ge1xuICAgIC8vIEdldCBhIGxpc3Qgb2YgdGlsZXMgdGhhdCBhcmUgaW4gdGhlIGNvbmZpZydzIGRlZmF1bHQgbGlzdCBidXQgbm90IGluIHRoZSB1c2VyJ3Mgc2V0dGluZ3NcbiAgICBjb25zdCBuZXdUaWxlcyA9IGNvbmZpZy50aWxlcy5maWx0ZXIoKHsgaWQgfSkgPT4gIW9sZFRpbGVJZHMuaW5jbHVkZXMoaWQpKTtcbiAgICBsZXQgaGFzQ2hhbmdlID0gbmV3VGlsZXMubGVuZ3RoID4gMDtcblxuICAgIGNvbnN0IG11bHRpQ29sdW1uOiBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnTGF5b3V0Q29sdW1uW10gfCB1bmRlZmluZWQgPVxuICAgICAgY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbjtcbiAgICBjb25zdCBzaW5nbGVDb2x1bW46IFNreVRpbGVEYXNoYm9hcmRDb25maWdMYXlvdXRDb2x1bW4gfCB1bmRlZmluZWQgPVxuICAgICAgY29uZmlnLmxheW91dC5zaW5nbGVDb2x1bW47XG5cbiAgICAvLyBBcHBlbmQgbmV3IHRpbGVzIHRvIHRoZSBlbmQgb2YgdGhlIGxheW91dHNcbiAgICBpZiAobXVsdGlDb2x1bW4pIHtcbiAgICAgIGNvbnN0IG11bHRpQ29sdW1uVGlsZUlkcyA9IG11bHRpQ29sdW1uLmZsYXRNYXAoKGNvbHVtbikgPT5cbiAgICAgICAgY29sdW1uLnRpbGVzLm1hcCgodGlsZSkgPT4gdGlsZS5pZCksXG4gICAgICApO1xuICAgICAgY29uc3QgbmV3TXVsdGlDb2x1bW5UaWxlcyA9IFtcbiAgICAgICAgLi4ubmV3IFNldChbXG4gICAgICAgICAgLi4ubmV3VGlsZXMsXG4gICAgICAgICAgLi4uY29uZmlnLnRpbGVzLmZpbHRlcihcbiAgICAgICAgICAgICh0aWxlKSA9PiAhbXVsdGlDb2x1bW5UaWxlSWRzLmluY2x1ZGVzKHRpbGUuaWQpLFxuICAgICAgICAgICksXG4gICAgICAgIF0pLFxuICAgICAgXSBhcyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnVGlsZVtdO1xuICAgICAgbmV3TXVsdGlDb2x1bW5UaWxlcy5mb3JFYWNoKChlbGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IHNtYWxsZXN0ID0gTWF0aC5taW4oXG4gICAgICAgICAgLi4ubXVsdGlDb2x1bW4ubWFwKChjb2wpID0+IGNvbC50aWxlcy5sZW5ndGgpLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBsb2NhdGlvblRvQWRkID0gbXVsdGlDb2x1bW4uZmluZEluZGV4KFxuICAgICAgICAgIChjb2wpID0+IGNvbC50aWxlcy5sZW5ndGggPT09IHNtYWxsZXN0LFxuICAgICAgICApO1xuICAgICAgICBtdWx0aUNvbHVtbltsb2NhdGlvblRvQWRkXS50aWxlcy5wdXNoKHtcbiAgICAgICAgICBpZDogZWxlbS5pZCxcbiAgICAgICAgICBpc0NvbGxhcHNlZDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHNpbmdsZUNvbHVtbikge1xuICAgICAgY29uc3Qgc2luZ2xlQ29sdW1uVGlsZUlkcyA9IHNpbmdsZUNvbHVtbi50aWxlcy5tYXAoKHRpbGUpID0+IHRpbGUuaWQpO1xuICAgICAgY29uc3QgbmV3U2luZ2xlQ29sdW1uVGlsZXMgPSBbXG4gICAgICAgIC4uLm5ldyBTZXQoW1xuICAgICAgICAgIC4uLm5ld1RpbGVzLFxuICAgICAgICAgIC4uLmNvbmZpZy50aWxlcy5maWx0ZXIoXG4gICAgICAgICAgICAodGlsZSkgPT4gIXNpbmdsZUNvbHVtblRpbGVJZHMuaW5jbHVkZXModGlsZS5pZCksXG4gICAgICAgICAgKSxcbiAgICAgICAgXSksXG4gICAgICBdIGFzIFNreVRpbGVEYXNoYm9hcmRDb25maWdUaWxlW107XG4gICAgICBuZXdTaW5nbGVDb2x1bW5UaWxlcy5mb3JFYWNoKChlbGVtKSA9PiB7XG4gICAgICAgIHNpbmdsZUNvbHVtbi50aWxlcy5wdXNoKHsgaWQ6IGVsZW0uaWQsIGlzQ29sbGFwc2VkOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHNpbmdsZUNvbHVtbj8udGlsZXMuZm9yRWFjaCgodGlsZSkgPT4ge1xuICAgICAgaGFzQ2hhbmdlIHx8PSAhdGhpcy4jZ2V0VGlsZU9yUmVtb3ZlRnJvbUxheW91dCh0aWxlKTtcbiAgICB9KTtcblxuICAgIG11bHRpQ29sdW1uPy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgIGNvbHVtbi50aWxlcy5mb3JFYWNoKCh0aWxlKSA9PiB7XG4gICAgICAgIGhhc0NoYW5nZSB8fD0gIXRoaXMuI2dldFRpbGVPclJlbW92ZUZyb21MYXlvdXQodGlsZSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBoYXNDaGFuZ2U7XG4gIH1cbn1cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, Optional, Output, ViewChild, inject, } from '@angular/core';\nimport { skyAnimationSlide } from '@skyux/animations';\nimport { SkyIdModule, SkyIdService, SkyLogService } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyChevronModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../tile-dashboard/tile-dashboard.service\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@skyux/indicators\";\nimport * as i4 from \"@skyux/help-inline\";\nimport * as i5 from \"@skyux/icon\";\nimport * as i6 from \"@skyux/core\";\nimport * as i7 from \"@skyux/theme\";\nimport * as i8 from \"@skyux/i18n\";\n/**\n * Provides a common look-and-feel for tab content.\n */\nexport class SkyTileComponent {\n get isCollapsed() {\n if (this.#dashboardService) {\n const configCollapsedState = this.#dashboardService.tileIsCollapsed(this);\n this.#_isCollapsed = configCollapsedState;\n }\n return this.#_isCollapsed;\n }\n /**\n * Whether the tile is in a collapsed state.\n * @default false\n */\n set isCollapsed(value) {\n this.#_isCollapsed = !!value;\n if (this.#dashboardService) {\n this.#dashboardService.setTileCollapsed(this, this.#_isCollapsed);\n }\n this.isCollapsedChange.emit(this.#_isCollapsed);\n }\n #changeDetector;\n #dashboardService;\n #ngUnsubscribe;\n #_isCollapsed;\n #logSvc;\n constructor(elementRef, changeDetector, dashboardService) {\n this.elementRef = elementRef;\n /**\n * Whether to display a settings button in the tile header. To display the\n * button, you must also listen for the `settingsClick` event.\n * @default true\n */\n this.showSettings = true;\n /**\n * Whether to display a help button in the tile header. To display the\n * button, you must also listen for the `helpClick` event.\n * @default true\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n this.showHelp = true;\n /**\n * Fires when users select the settings button in the tile header. The settings\n * button only appears when the `showSettings` property is set to `true`.\n */\n this.settingsClick = new EventEmitter();\n /**\n * Fires when the tile's collapsed state changes. Returns `true` when the tile\n * collapses and `false` when it expands.\n */\n this.isCollapsedChange = new EventEmitter();\n /**\n * Fires when users select the help button in the tile header. The help\n * button only appears when the `showHelp` property is set to `true`.\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n this.helpClick = new EventEmitter();\n this.isInDashboardColumn = false;\n this.#ngUnsubscribe = new Subject();\n this.#_isCollapsed = false;\n this.tileTitleId = inject(SKY_TILE_TITLE_ID);\n this.#logSvc = inject(SkyLogService);\n this.#changeDetector = changeDetector;\n this.#dashboardService = dashboardService;\n this.isInDashboardColumn = !!this.#dashboardService;\n if (this.#dashboardService) {\n this.ariaDescribedBy = `${this.#dashboardService.bagId}-move-instructions`;\n /**\n * This subscription ensures that if any values which come in from the dashboard service are\n * updated that the component will update if the tile's parent component utilizes OnPush\n * change detection.\n */\n this.#dashboardService.configChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n }\n ngOnChanges(changes) {\n if (changes['showHelp']?.firstChange) {\n this.#logSvc.deprecated('SkyTileComponent.showHelp', {\n deprecationMajorVersion: 10,\n replacementRecommendation: 'Set the `helpKey` or `helpPopoverContent` inputs instead.',\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n settingsButtonClicked() {\n this.settingsClick.emit(undefined);\n }\n /**\n * @deprecated\n */\n helpButtonClicked() {\n this.helpClick.emit(undefined);\n }\n get hasSettings() {\n return this.settingsClick.observed && this.showSettings;\n }\n /**\n * @deprecated\n */\n get hasHelp() {\n return this.helpClick.observed && this.showHelp;\n }\n titleClick(evt) {\n const targetEl = evt.target;\n // Don't expand/collapse if the help inline button is clicked.\n if (targetEl?.closest('sky-help-inline') === null) {\n this.isCollapsed = !this.isCollapsed;\n }\n }\n chevronDirectionChange(direction) {\n this.isCollapsed = direction === 'down';\n }\n moveTile(event) {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key) &&\n this.#dashboardService) {\n const direction = event.key.toLowerCase().replace('arrow', '');\n this.#dashboardService.moveTileOnKeyDown(this, direction, this.title?.nativeElement.innerText);\n this.#focusHandle();\n }\n }\n #focusHandle() {\n this.grabHandle?.nativeElement.focus();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.SkyTileDashboardService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: SkyTileComponent, isStandalone: true, selector: \"sky-tile\", inputs: { helpKey: \"helpKey\", helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\", showSettings: \"showSettings\", showHelp: \"showHelp\", tileName: \"tileName\", isCollapsed: \"isCollapsed\" }, outputs: { settingsClick: \"settingsClick\", isCollapsedChange: \"isCollapsedChange\", helpClick: \"helpClick\" }, providers: [\n {\n provide: SKY_TILE_TITLE_ID,\n useFactory() {\n const idService = inject(SkyIdService);\n return idService.generateId();\n },\n },\n ], queries: [{ propertyName: \"titleRef\", first: true, predicate: SkyTileTitleComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: \"grabHandle\", first: true, predicate: [\"grabHandle\"], descendants: true, read: ElementRef }, { propertyName: \"title\", first: true, predicate: [\"titleContainer\"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: \"<section\\n class=\\\"sky-tile\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-collapsed': isCollapsed\\n }\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-box sky-elevation-1-bordered': 'modern'\\n }\\\"\\n>\\n <header class=\\\"sky-tile-header\\\">\\n <div class=\\\"sky-tile-header-content\\\" (click)=\\\"titleClick($event)\\\">\\n <div #titleContainer class=\\\"sky-tile-header-title\\\">\\n <ng-content select=\\\"sky-tile-title\\\" />\\n @if (tileName && (helpKey || helpPopoverContent)) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"tileName\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n />\\n </span>\\n }\\n </div>\\n <div class=\\\"sky-tile-summary sky-font-heading-2\\\">\\n <ng-content select=\\\"sky-tile-summary\\\" />\\n </div>\\n </div>\\n <div class=\\\"sky-tile-header-column-tools\\\">\\n <div class=\\\"sky-tile-tools\\\">\\n <ng-container *skyThemeIf=\\\"'default'\\\">\\n @if (hasHelp) {\\n <button\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_help' | skyLibResources: tileName)\\n : ('skyux_tile_help_default' | skyLibResources)\\n \\\"\\n (click)=\\\"helpButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"question-circle\\\" />\\n </button>\\n }\\n </ng-container>\\n <sky-chevron\\n class=\\\"sky-tile-tools-control\\\"\\n [ariaControls]=\\\"tileContent.id\\\"\\n [ariaLabel]=\\\"\\n tileName\\n ? ('skyux_tile_expand' | skyLibResources: tileName)\\n : ('skyux_tile_expand_default' | skyLibResources)\\n \\\"\\n [direction]=\\\"isCollapsed ? 'down' : 'up'\\\"\\n (directionChange)=\\\"chevronDirectionChange($event)\\\"\\n />\\n @if (hasSettings) {\\n <button\\n class=\\\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_settings' | skyLibResources: tileName)\\n : ('skyux_tile_settings_default' | skyLibResources)\\n \\\"\\n (click)=\\\"settingsButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"settings\\\" />\\n </button>\\n }\\n @if (isInDashboardColumn) {\\n <button\\n #grabHandle\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_move' | skyLibResources: tileName)\\n : ('skyux_tile_move_default' | skyLibResources)\\n \\\"\\n [attr.aria-describedby]=\\\"ariaDescribedBy\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n (keydown)=\\\"moveTile($event)\\\"\\n >\\n <sky-icon iconName=\\\"re-order-dots-vertical\\\" iconSize=\\\"s\\\" />\\n </button>\\n }\\n </div>\\n </div>\\n </header>\\n <div\\n #tileContent=\\\"skyId\\\"\\n class=\\\"sky-tile-content\\\"\\n role=\\\"region\\\"\\n skyId\\n [attr.aria-label]=\\\"tileName\\\"\\n [attr.aria-labelledby]=\\\"!tileName && titleRef ? tileTitleId : undefined\\\"\\n [@skyAnimationSlide]=\\\"isCollapsed ? 'up' : 'down'\\\"\\n >\\n <ng-content select=\\\"sky-tile-content\\\" />\\n </div>\\n</section>\\n\", styles: [\".sky-tile:not(.sky-theme-modern *){--sky-override-tile-background-color: #fff;--sky-override-tile-border-radius: 0;--sky-override-tile-border-radius-xs-first: 0;--sky-override-tile-border-radius-xs-last: 0;--sky-override-tile-content-border-color: #e2e3e4;--sky-override-tile-content-border-style: solid solid none;--sky-override-tile-content-border-width: 1px 0;--sky-override-tile-header-border-color: #cdcfd2;--sky-override-tile-header-border-style: solid solid none;--sky-override-tile-header-border-width: 4px 0 0;--sky-override-tile-header-column-tools-align-items: center;--sky-override-tile-header-title-margin: 0;--sky-override-tile-header-title-padding: 10px 15px;--sky-override-tile-margin-bottom-base: 20px;--sky-override-tile-margin-bottom-gt-xs: 20px;--sky-override-tile-margin-bottom-xs: 0;--sky-override-tile-padding: 0;--sky-override-tile-summary-color: #0974a1;--sky-override-tile-summary-padding-left: 15px;--sky-override-tile-tools-control-color: var(--sky-text-color-deemphasized);--sky-override-tile-tools-control-margin-right: 9px;--sky-override-tile-tools-control-size: 24px;--sky-override-tile-tools-padding-right: 15px}.sky-tile{--sky-comp-override-list-header-background-color: initial;background-color:var(--sky-override-tile-background-color, var(--sky-color-background-container-base));margin-bottom:var(--sky-override-tile-margin-bottom-base, var(--sky-space-stacked-xl));padding:var(--sky-override-tile-padding, var(--sky-comp-tile-space-inset-top) var(--sky-comp-tile-space-inset-right) var(--sky-comp-tile-space-inset-bottom) var(--sky-comp-tile-space-inset-left));--sky-background-color-page-default: var( --sky-override-tile-background-color, var(--sky-color-background-container-base) )}:host-context(.sky-tile-dashboard-layout-single,.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-xs, var(--sky-space-stacked-0))}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-single) .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-gt-xs, var(--sky-space-stacked-xl))}.sky-tile-header{border-color:var(--sky-override-tile-header-border-color, none);border-style:var(--sky-override-tile-header-border-style, none);border-width:var(--sky-override-tile-header-border-width, 0);display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:var(--sky-override-tile-header-title-padding, 0);margin:var(--sky-override-tile-header-title-margin, 0 var(--sky-space-inline-xl) 0 0)}.sky-tile-summary{color:var(--sky-override-tile-summary-color, var(--sky-color-text-action));display:none;padding-right:var(--sky-override-tile-summary-padding-left, var(--sky-space-inline-m));max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:var(--sky-override-tile-header-column-tools-align-items, flex-start);flex:0 0 auto}.sky-tile-tools{align-items:center;display:flex;padding:0 var(--sky-override-tile-tools-padding-right, 0) 0 0}.sky-tile-tools-control{--sky-expansion-indicator-color: var( --sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized) );color:var(--sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized));height:var(--sky-override-tile-tools-control-size, auto);width:var(--sky-override-tile-tools-control-size, auto)}.sky-tile-tools-control:not(:last-child){margin-right:var(--sky-override-tile-tools-control-margin-right, var(--sky-space-gap-action_group-s))}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}.sky-tile-content{border-color:var(--sky-override-tile-content-border-color, none);border-style:var(--sky-override-tile-content-border-style, none);border-width:var(--sky-override-tile-content-border-width, 0);border-image:none}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-first, var(--sky-border-radius-s) var(--sky-border-radius-s) var(--sky-border-radius-0) var(--sky-border-radius-0))}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-last-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-last, var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-s) var(--sky-border-radius-s))}:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}:host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}@media (min-width: 768px){:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}}:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: SkyChevronModule }, { kind: \"component\", type: i3.λ2, selector: \"sky-chevron\", inputs: [\"ariaControls\", \"ariaLabel\", \"direction\", \"disabled\"], outputs: [\"directionChange\"] }, { kind: \"ngmodule\", type: SkyHelpInlineModule }, { kind: \"component\", type: i4.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i5.λ1, selector: \"sky-icon\", inputs: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyIdModule }, { kind: \"directive\", type: i6.λ2, selector: \"[skyId]\", exportAs: [\"skyId\"] }, { kind: \"ngmodule\", type: SkyThemeModule }, { kind: \"directive\", type: i7.λ2, selector: \"[skyThemeClass]\", inputs: [\"class\", \"skyThemeClass\"] }, { kind: \"directive\", type: i7.λ3, selector: \"[skyThemeIf]\", inputs: [\"skyThemeIf\"] }, { kind: \"ngmodule\", type: SkyTilesResourcesModule }, { kind: \"pipe\", type: i8.SkyLibResourcesPipe, name: \"skyLibResources\" }], animations: [skyAnimationSlide] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile', animations: [skyAnimationSlide], imports: [\n CommonModule,\n SkyChevronModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyThemeModule,\n SkyTilesResourcesModule,\n ], providers: [\n {\n provide: SKY_TILE_TITLE_ID,\n useFactory() {\n const idService = inject(SkyIdService);\n return idService.generateId();\n },\n },\n ], template: \"<section\\n class=\\\"sky-tile\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-collapsed': isCollapsed\\n }\\\"\\n [skyThemeClass]=\\\"{\\n 'sky-box sky-elevation-1-bordered': 'modern'\\n }\\\"\\n>\\n <header class=\\\"sky-tile-header\\\">\\n <div class=\\\"sky-tile-header-content\\\" (click)=\\\"titleClick($event)\\\">\\n <div #titleContainer class=\\\"sky-tile-header-title\\\">\\n <ng-content select=\\\"sky-tile-title\\\" />\\n @if (tileName && (helpKey || helpPopoverContent)) {\\n <span class=\\\"sky-control-help-container\\\">\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"tileName\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n />\\n </span>\\n }\\n </div>\\n <div class=\\\"sky-tile-summary sky-font-heading-2\\\">\\n <ng-content select=\\\"sky-tile-summary\\\" />\\n </div>\\n </div>\\n <div class=\\\"sky-tile-header-column-tools\\\">\\n <div class=\\\"sky-tile-tools\\\">\\n <ng-container *skyThemeIf=\\\"'default'\\\">\\n @if (hasHelp) {\\n <button\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_help' | skyLibResources: tileName)\\n : ('skyux_tile_help_default' | skyLibResources)\\n \\\"\\n (click)=\\\"helpButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"question-circle\\\" />\\n </button>\\n }\\n </ng-container>\\n <sky-chevron\\n class=\\\"sky-tile-tools-control\\\"\\n [ariaControls]=\\\"tileContent.id\\\"\\n [ariaLabel]=\\\"\\n tileName\\n ? ('skyux_tile_expand' | skyLibResources: tileName)\\n : ('skyux_tile_expand_default' | skyLibResources)\\n \\\"\\n [direction]=\\\"isCollapsed ? 'down' : 'up'\\\"\\n (directionChange)=\\\"chevronDirectionChange($event)\\\"\\n />\\n @if (hasSettings) {\\n <button\\n class=\\\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_settings' | skyLibResources: tileName)\\n : ('skyux_tile_settings_default' | skyLibResources)\\n \\\"\\n (click)=\\\"settingsButtonClicked()\\\"\\n >\\n <sky-icon iconName=\\\"settings\\\" />\\n </button>\\n }\\n @if (isInDashboardColumn) {\\n <button\\n #grabHandle\\n class=\\\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n tileName\\n ? ('skyux_tile_move' | skyLibResources: tileName)\\n : ('skyux_tile_move_default' | skyLibResources)\\n \\\"\\n [attr.aria-describedby]=\\\"ariaDescribedBy\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n (keydown)=\\\"moveTile($event)\\\"\\n >\\n <sky-icon iconName=\\\"re-order-dots-vertical\\\" iconSize=\\\"s\\\" />\\n </button>\\n }\\n </div>\\n </div>\\n </header>\\n <div\\n #tileContent=\\\"skyId\\\"\\n class=\\\"sky-tile-content\\\"\\n role=\\\"region\\\"\\n skyId\\n [attr.aria-label]=\\\"tileName\\\"\\n [attr.aria-labelledby]=\\\"!tileName && titleRef ? tileTitleId : undefined\\\"\\n [@skyAnimationSlide]=\\\"isCollapsed ? 'up' : 'down'\\\"\\n >\\n <ng-content select=\\\"sky-tile-content\\\" />\\n </div>\\n</section>\\n\", styles: [\".sky-tile:not(.sky-theme-modern *){--sky-override-tile-background-color: #fff;--sky-override-tile-border-radius: 0;--sky-override-tile-border-radius-xs-first: 0;--sky-override-tile-border-radius-xs-last: 0;--sky-override-tile-content-border-color: #e2e3e4;--sky-override-tile-content-border-style: solid solid none;--sky-override-tile-content-border-width: 1px 0;--sky-override-tile-header-border-color: #cdcfd2;--sky-override-tile-header-border-style: solid solid none;--sky-override-tile-header-border-width: 4px 0 0;--sky-override-tile-header-column-tools-align-items: center;--sky-override-tile-header-title-margin: 0;--sky-override-tile-header-title-padding: 10px 15px;--sky-override-tile-margin-bottom-base: 20px;--sky-override-tile-margin-bottom-gt-xs: 20px;--sky-override-tile-margin-bottom-xs: 0;--sky-override-tile-padding: 0;--sky-override-tile-summary-color: #0974a1;--sky-override-tile-summary-padding-left: 15px;--sky-override-tile-tools-control-color: var(--sky-text-color-deemphasized);--sky-override-tile-tools-control-margin-right: 9px;--sky-override-tile-tools-control-size: 24px;--sky-override-tile-tools-padding-right: 15px}.sky-tile{--sky-comp-override-list-header-background-color: initial;background-color:var(--sky-override-tile-background-color, var(--sky-color-background-container-base));margin-bottom:var(--sky-override-tile-margin-bottom-base, var(--sky-space-stacked-xl));padding:var(--sky-override-tile-padding, var(--sky-comp-tile-space-inset-top) var(--sky-comp-tile-space-inset-right) var(--sky-comp-tile-space-inset-bottom) var(--sky-comp-tile-space-inset-left));--sky-background-color-page-default: var( --sky-override-tile-background-color, var(--sky-color-background-container-base) )}:host-context(.sky-tile-dashboard-layout-single,.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-xs, var(--sky-space-stacked-0))}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-single) .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-gt-xs, var(--sky-space-stacked-xl))}.sky-tile-header{border-color:var(--sky-override-tile-header-border-color, none);border-style:var(--sky-override-tile-header-border-style, none);border-width:var(--sky-override-tile-header-border-width, 0);display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:var(--sky-override-tile-header-title-padding, 0);margin:var(--sky-override-tile-header-title-margin, 0 var(--sky-space-inline-xl) 0 0)}.sky-tile-summary{color:var(--sky-override-tile-summary-color, var(--sky-color-text-action));display:none;padding-right:var(--sky-override-tile-summary-padding-left, var(--sky-space-inline-m));max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:var(--sky-override-tile-header-column-tools-align-items, flex-start);flex:0 0 auto}.sky-tile-tools{align-items:center;display:flex;padding:0 var(--sky-override-tile-tools-padding-right, 0) 0 0}.sky-tile-tools-control{--sky-expansion-indicator-color: var( --sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized) );color:var(--sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized));height:var(--sky-override-tile-tools-control-size, auto);width:var(--sky-override-tile-tools-control-size, auto)}.sky-tile-tools-control:not(:last-child){margin-right:var(--sky-override-tile-tools-control-margin-right, var(--sky-space-gap-action_group-s))}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}.sky-tile-content{border-color:var(--sky-override-tile-content-border-color, none);border-style:var(--sky-override-tile-content-border-style, none);border-width:var(--sky-override-tile-content-border-width, 0);border-image:none}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-first, var(--sky-border-radius-s) var(--sky-border-radius-s) var(--sky-border-radius-0) var(--sky-border-radius-0))}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-last-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-last, var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-s) var(--sky-border-radius-s))}:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}:host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}@media (min-width: 768px){:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}}:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.SkyTileDashboardService, decorators: [{\n type: Optional\n }] }], propDecorators: { helpKey: [{\n type: Input\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], showSettings: [{\n type: Input\n }], showHelp: [{\n type: Input\n }], tileName: [{\n type: Input\n }], settingsClick: [{\n type: Output\n }], isCollapsedChange: [{\n type: Output\n }], helpClick: [{\n type: Output\n }], isCollapsed: [{\n type: Input\n }], grabHandle: [{\n type: ViewChild,\n args: ['grabHandle', {\n read: ElementRef,\n static: false,\n }]\n }], title: [{\n type: ViewChild,\n args: ['titleContainer', {\n read: ElementRef,\n static: false,\n }]\n }], titleRef: [{\n type: ContentChild,\n args: [SkyTileTitleComponent, { read: ElementRef }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFHTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7QUFFL0Q7O0dBRUc7QUF5QkgsTUFBTSxPQUFPLGdCQUFnQjtJQXNFM0IsSUFBVyxXQUFXO1FBQ3BCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxhQUFhLEdBQUcsb0JBQW9CLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDVyxXQUFXLENBQUMsS0FBMEI7UUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFxQkQsZUFBZSxDQUFvQjtJQUNuQyxpQkFBaUIsQ0FBc0M7SUFDdkQsY0FBYyxDQUF1QjtJQUNyQyxhQUFhLENBQVM7SUFJYixPQUFPLENBQXlCO0lBRXpDLFlBQ1MsVUFBc0IsRUFDN0IsY0FBaUMsRUFDckIsZ0JBQTBDO1FBRi9DLGVBQVUsR0FBVixVQUFVLENBQVk7UUFuRy9COzs7O1dBSUc7UUFFSSxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUUzQjs7Ozs7V0FLRztRQUVJLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFTdkI7OztXQUdHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFDOzs7V0FHRztRQUVJLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFdkQ7Ozs7V0FJRztRQUVJLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBNEIvQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFtQm5DLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUVaLGdCQUFXLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFekMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQU92QyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFcEQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssb0JBQW9CLENBQUM7WUFFM0U7Ozs7ZUFJRztZQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZO2lCQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDcEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsMkJBQTJCLEVBQUU7Z0JBQ25ELHVCQUF1QixFQUFFLEVBQUU7Z0JBQzNCLHlCQUF5QixFQUN2QiwyREFBMkQ7YUFDOUQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMxRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2xELENBQUM7SUFFTSxVQUFVLENBQUMsR0FBZTtRQUMvQixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsTUFBNEIsQ0FBQztRQUVsRCw4REFBOEQ7UUFDOUQsSUFBSSxRQUFRLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxTQUFpQjtRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsS0FBSyxNQUFNLENBQUM7SUFDMUMsQ0FBQztJQUVTLFFBQVEsQ0FBQyxLQUFvQjtRQUNyQyxJQUNFLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDdkUsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixDQUFDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FJbEQsQ0FBQztZQUNaLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FDdEMsSUFBSSxFQUNKLFNBQVMsRUFDVCxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQ3BDLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekMsQ0FBQzsrR0ExTlUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsMFhBVmhCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsVUFBVTtvQkFDUixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3ZDLE9BQU8sU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxDQUFDO2FBQ0Y7U0FDRixnRUFnSGEscUJBQXFCLDJCQUFVLFVBQVUsa0hBWC9DLFVBQVUsa0dBTVYsVUFBVSxrRENyS3BCLCtsSEF1R0EsNnlLRDdESSxZQUFZLDRIQUNaLGdCQUFnQix5TEFDaEIsbUJBQW1CLHdQQUNuQixhQUFhLHFJQUNiLFdBQVcsNEdBQ1gsY0FBYyx5TkFDZCx1QkFBdUIsMEZBUmIsQ0FBQyxpQkFBaUIsQ0FBQzs7NEZBb0JwQixnQkFBZ0I7a0JBeEI1QixTQUFTOytCQUNFLFVBQVUsY0FHUixDQUFDLGlCQUFpQixDQUFDLFdBQ3RCO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLHVCQUF1QjtxQkFDeEIsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixVQUFVO2dDQUNSLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQ0FDdkMsT0FBTyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7NEJBQ2hDLENBQUM7eUJBQ0Y7cUJBQ0Y7OzBCQStIRSxRQUFROztzQkF2SFYsS0FBSzs7c0JBUUwsS0FBSzs7c0JBT0wsS0FBSzs7c0JBUUwsS0FBSzs7c0JBU0wsS0FBSzs7c0JBT0wsS0FBSzs7c0JBT0wsTUFBTTs7c0JBT04sTUFBTTs7c0JBUU4sTUFBTTs7c0JBZ0JOLEtBQUs7O3NCQWVMLFNBQVM7dUJBQUMsWUFBWSxFQUFFO3dCQUN2QixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsTUFBTSxFQUFFLEtBQUs7cUJBQ2Q7O3NCQUdBLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUU7d0JBQzNCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsS0FBSztxQkFDZDs7c0JBR0EsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNreUFuaW1hdGlvblNsaWRlIH0gZnJvbSAnQHNreXV4L2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgU2t5SWRNb2R1bGUsIFNreUlkU2VydmljZSwgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUhlbHBJbmxpbmVNb2R1bGUgfSBmcm9tICdAc2t5dXgvaGVscC1pbmxpbmUnO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreUNoZXZyb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5pbXBvcnQgeyBTa3lUaGVtZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGlsZXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LXRpbGVzLXJlc291cmNlcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgU0tZX1RJTEVfVElUTEVfSUQgfSBmcm9tICcuL3RpbGUtdGl0bGUtaWQtdG9rZW4nO1xuaW1wb3J0IHsgU2t5VGlsZVRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi90aWxlLXRpdGxlLmNvbXBvbmVudCc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBjb21tb24gbG9vay1hbmQtZmVlbCBmb3IgdGFiIGNvbnRlbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10aWxlJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGlsZS5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlsZS5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFtza3lBbmltYXRpb25TbGlkZV0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5Q2hldnJvbk1vZHVsZSxcbiAgICBTa3lIZWxwSW5saW5lTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gICAgU2t5VGlsZXNSZXNvdXJjZXNNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNLWV9USUxFX1RJVExFX0lELFxuICAgICAgdXNlRmFjdG9yeSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBpZFNlcnZpY2UgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcbiAgICAgICAgcmV0dXJuIGlkU2VydmljZS5nZW5lcmF0ZUlkKCk7XG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGB0aWxlTmFtZWAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpIGJ1dHRvbiBpc1xuICAgKiBhZGRlZCB0byB0aGUgdGlsZSBoZWFkZXIuIENsaWNraW5nIHRoZSBidXR0b24gaW52b2tlcyBbZ2xvYmFsIGhlbHBdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vZGV2ZWxvcC9nbG9iYWwtaGVscCkgYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYHRpbGVOYW1lYCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYHRpbGVOYW1lYCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0aWxlIGhlYWRlci4gVGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBkaXNwbGF5cyBhIFtwb3BvdmVyXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvcG9wb3ZlcilcbiAgICogd2hlbiBjbGlja2VkIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgb3B0aW9uYWwgdGl0bGUuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYHRpbGVOYW1lYCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzcGxheSBhIHNldHRpbmdzIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRvIGRpc3BsYXkgdGhlXG4gICAqIGJ1dHRvbiwgeW91IG11c3QgYWxzbyBsaXN0ZW4gZm9yIHRoZSBgc2V0dGluZ3NDbGlja2AgZXZlbnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93U2V0dGluZ3MgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBoZWxwIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRvIGRpc3BsYXkgdGhlXG4gICAqIGJ1dHRvbiwgeW91IG11c3QgYWxzbyBsaXN0ZW4gZm9yIHRoZSBgaGVscENsaWNrYCBldmVudC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAZGVwcmVjYXRlZCBTZXQgdGhlIGBoZWxwS2V5YCBvciBgaGVscFBvcG92ZXJDb250ZW50YCBpbnB1dHMgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93SGVscCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgdGlsZSB0aGF0IGlzIGF2YWlsYWJsZSB0byB0aGUgdGlsZSBjb250cm9scyBmb3IgbXVsdGlwbGUgcHVycG9zZXMsIHN1Y2ggYXMgYWNjZXNzaWJpbGl0eSBhbmQgaW5zdHJ1bWVudGF0aW9uLiBUaGUgY29tcG9uZW50IHVzZXMgdGhlIG5hbWUgdG8gY29uc3RydWN0IEFSSUEgbGFiZWxzIGZvciB0aGUgaGVscCwgZXhwYW5kL2NvbGxhcHNlLCBzZXR0aW5ncywgYW5kIGRyYWcgaGFuZGxlIGJ1dHRvbnMgdG8gW3N1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSB0aWxlIG5hbWUgaXMgXCJDb25zdGl0dWVudHMsXCIgdGhlIGhlbHAgaW5wdXQncyBgYXJpYS1sYWJlbGAgaXMgXCJDb25zdGl0dWVudHMgaGVscFwiIGFuZCB0aGUgZHJhZyBoYW5kbGUncyBgYXJpYS1sYWJlbGAgaXMgXCJNb3ZlIENvbnN0aXR1ZW50cy5cIiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aWxlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgc2V0dGluZ3MgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVGhlIHNldHRpbmdzXG4gICAqIGJ1dHRvbiBvbmx5IGFwcGVhcnMgd2hlbiB0aGUgYHNob3dTZXR0aW5nc2AgcHJvcGVydHkgaXMgc2V0IHRvIGB0cnVlYC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2V0dGluZ3NDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgdGlsZSdzIGNvbGxhcHNlZCBzdGF0ZSBjaGFuZ2VzLiBSZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSB0aWxlXG4gICAqIGNvbGxhcHNlcyBhbmQgYGZhbHNlYCB3aGVuIGl0IGV4cGFuZHMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGlzQ29sbGFwc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgaGVscCBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUaGUgaGVscFxuICAgKiBidXR0b24gb25seSBhcHBlYXJzIHdoZW4gdGhlIGBzaG93SGVscGAgcHJvcGVydHkgaXMgc2V0IHRvIGB0cnVlYC5cbiAgICogQGRlcHJlY2F0ZWQgU2V0IHRoZSBgaGVscEtleWAgb3IgYGhlbHBQb3BvdmVyQ29udGVudGAgaW5wdXRzIGluc3RlYWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGhlbHBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgZ2V0IGlzQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlKSB7XG4gICAgICBjb25zdCBjb25maWdDb2xsYXBzZWRTdGF0ZSA9IHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UudGlsZUlzQ29sbGFwc2VkKHRoaXMpO1xuICAgICAgdGhpcy4jX2lzQ29sbGFwc2VkID0gY29uZmlnQ29sbGFwc2VkU3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI19pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0aWxlIGlzIGluIGEgY29sbGFwc2VkIHN0YXRlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc0NvbGxhcHNlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19pc0NvbGxhcHNlZCA9ICEhdmFsdWU7XG5cbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5zZXRUaWxlQ29sbGFwc2VkKHRoaXMsIHRoaXMuI19pc0NvbGxhcHNlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc0NvbGxhcHNlZENoYW5nZS5lbWl0KHRoaXMuI19pc0NvbGxhcHNlZCk7XG4gIH1cblxuICBwdWJsaWMgYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGlzSW5EYXNoYm9hcmRDb2x1bW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdncmFiSGFuZGxlJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIGdyYWJIYW5kbGU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgndGl0bGVDb250YWluZXInLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBwdWJsaWMgdGl0bGU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQENvbnRlbnRDaGlsZChTa3lUaWxlVGl0bGVDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgdGl0bGVSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2Rhc2hib2FyZFNlcnZpY2U6IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNfaXNDb2xsYXBzZWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgdGlsZVRpdGxlSWQgPSBpbmplY3QoU0tZX1RJTEVfVElUTEVfSUQpO1xuXG4gIHJlYWRvbmx5ICNsb2dTdmMgPSBpbmplY3QoU2t5TG9nU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIGRhc2hib2FyZFNlcnZpY2U/OiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcbiAgICB0aGlzLmlzSW5EYXNoYm9hcmRDb2x1bW4gPSAhIXRoaXMuI2Rhc2hib2FyZFNlcnZpY2U7XG5cbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgdGhpcy5hcmlhRGVzY3JpYmVkQnkgPSBgJHt0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmJhZ0lkfS1tb3ZlLWluc3RydWN0aW9uc2A7XG5cbiAgICAgIC8qKlxuICAgICAgICogVGhpcyBzdWJzY3JpcHRpb24gZW5zdXJlcyB0aGF0IGlmIGFueSB2YWx1ZXMgd2hpY2ggY29tZSBpbiBmcm9tIHRoZSBkYXNoYm9hcmQgc2VydmljZSBhcmVcbiAgICAgICAqIHVwZGF0ZWQgdGhhdCB0aGUgY29tcG9uZW50IHdpbGwgdXBkYXRlIGlmIHRoZSB0aWxlJ3MgcGFyZW50IGNvbXBvbmVudCB1dGlsaXplcyBPblB1c2hcbiAgICAgICAqIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAgKi9cbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UuY29uZmlnQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Nob3dIZWxwJ10/LmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLiNsb2dTdmMuZGVwcmVjYXRlZCgnU2t5VGlsZUNvbXBvbmVudC5zaG93SGVscCcsIHtcbiAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDEwLFxuICAgICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOlxuICAgICAgICAgICdTZXQgdGhlIGBoZWxwS2V5YCBvciBgaGVscFBvcG92ZXJDb250ZW50YCBpbnB1dHMgaW5zdGVhZC4nLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXR0aW5nc0J1dHRvbkNsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR0aW5nc0NsaWNrLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIGhlbHBCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaGVscENsaWNrLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzU2V0dGluZ3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NDbGljay5vYnNlcnZlZCAmJiB0aGlzLnNob3dTZXR0aW5ncztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIGdldCBoYXNIZWxwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhlbHBDbGljay5vYnNlcnZlZCAmJiB0aGlzLnNob3dIZWxwO1xuICB9XG5cbiAgcHVibGljIHRpdGxlQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0RWwgPSBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIC8vIERvbid0IGV4cGFuZC9jb2xsYXBzZSBpZiB0aGUgaGVscCBpbmxpbmUgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgaWYgKHRhcmdldEVsPy5jbG9zZXN0KCdza3ktaGVscC1pbmxpbmUnKSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGV2cm9uRGlyZWN0aW9uQ2hhbmdlKGRpcmVjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGRpcmVjdGlvbiA9PT0gJ2Rvd24nO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1vdmVUaWxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgWydBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCddLmluY2x1ZGVzKGV2ZW50LmtleSkgJiZcbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2VcbiAgICApIHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJ2Fycm93JywgJycpIGFzXG4gICAgICAgIHwgJ3VwJ1xuICAgICAgICB8ICdkb3duJ1xuICAgICAgICB8ICdsZWZ0J1xuICAgICAgICB8ICdyaWdodCc7XG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLm1vdmVUaWxlT25LZXlEb3duKFxuICAgICAgICB0aGlzLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIHRoaXMudGl0bGU/Lm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0LFxuICAgICAgKTtcbiAgICAgIHRoaXMuI2ZvY3VzSGFuZGxlKCk7XG4gICAgfVxuICB9XG5cbiAgI2ZvY3VzSGFuZGxlKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JhYkhhbmRsZT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iLCI8c2VjdGlvblxuICBjbGFzcz1cInNreS10aWxlXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdza3ktdGlsZS1jb2xsYXBzZWQnOiBpc0NvbGxhcHNlZFxuICB9XCJcbiAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICdza3ktYm94IHNreS1lbGV2YXRpb24tMS1ib3JkZXJlZCc6ICdtb2Rlcm4nXG4gIH1cIlxuPlxuICA8aGVhZGVyIGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb250ZW50XCIgKGNsaWNrKT1cInRpdGxlQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgPGRpdiAjdGl0bGVDb250YWluZXIgY2xhc3M9XCJza3ktdGlsZS1oZWFkZXItdGl0bGVcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXRpbGUtdGl0bGVcIiAvPlxuICAgICAgICBAaWYgKHRpbGVOYW1lICYmIChoZWxwS2V5IHx8IGhlbHBQb3BvdmVyQ29udGVudCkpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNreS1jb250cm9sLWhlbHAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgICAgICAgICAgICBbbGFiZWxUZXh0XT1cInRpbGVOYW1lXCJcbiAgICAgICAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXRpbGUtc3VtbWFyeSBza3ktZm9udC1oZWFkaW5nLTJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXRpbGUtc3VtbWFyeVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyLWNvbHVtbi10b29sc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLXRvb2xzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIj5cbiAgICAgICAgICBAaWYgKGhhc0hlbHApIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4taWNvbi1ib3JkZXJsZXNzIHNreS10aWxlLXRvb2xzLWNvbnRyb2wgc2t5LXRpbGUtaGVscFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9oZWxwJyB8IHNreUxpYlJlc291cmNlczogdGlsZU5hbWUpXG4gICAgICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGVscEJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxza3ktaWNvbiBpY29uTmFtZT1cInF1ZXN0aW9uLWNpcmNsZVwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8c2t5LWNoZXZyb25cbiAgICAgICAgICBjbGFzcz1cInNreS10aWxlLXRvb2xzLWNvbnRyb2xcIlxuICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwidGlsZUNvbnRlbnQuaWRcIlxuICAgICAgICAgIFthcmlhTGFiZWxdPVwiXG4gICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9leHBhbmQnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfZXhwYW5kX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2RpcmVjdGlvbl09XCJpc0NvbGxhcHNlZCA/ICdkb3duJyA6ICd1cCdcIlxuICAgICAgICAgIChkaXJlY3Rpb25DaGFuZ2UpPVwiY2hldnJvbkRpcmVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgQGlmIChoYXNTZXR0aW5ncykge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS1zZXR0aW5ncyBza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktdGlsZS10b29scy1jb250cm9sXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9zZXR0aW5ncycgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICAgIDogKCdza3l1eF90aWxlX3NldHRpbmdzX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXR0aW5nc0J1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1pY29uIGljb25OYW1lPVwic2V0dGluZ3NcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaXNJbkRhc2hib2FyZENvbHVtbikge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICNncmFiSGFuZGxlXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3Mgc2t5LXRpbGUtdG9vbHMtY29udHJvbCBza3ktdGlsZS1ncmFiLWhhbmRsZVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgIHRpbGVOYW1lXG4gICAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfbW92ZScgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICAgIDogKCdza3l1eF90aWxlX21vdmVfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJtb3ZlVGlsZSgkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2t5LWljb24gaWNvbk5hbWU9XCJyZS1vcmRlci1kb3RzLXZlcnRpY2FsXCIgaWNvblNpemU9XCJzXCIgLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvaGVhZGVyPlxuICA8ZGl2XG4gICAgI3RpbGVDb250ZW50PVwic2t5SWRcIlxuICAgIGNsYXNzPVwic2t5LXRpbGUtY29udGVudFwiXG4gICAgcm9sZT1cInJlZ2lvblwiXG4gICAgc2t5SWRcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpbGVOYW1lXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiIXRpbGVOYW1lICYmIHRpdGxlUmVmID8gdGlsZVRpdGxlSWQgOiB1bmRlZmluZWRcIlxuICAgIFtAc2t5QW5pbWF0aW9uU2xpZGVdPVwiaXNDb2xsYXBzZWQgPyAndXAnIDogJ2Rvd24nXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS10aWxlLWNvbnRlbnRcIiAvPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { SkyTileSummaryComponent } from './tile-summary.component';\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport { SkyTileComponent } from './tile.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent], exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileTitleComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGFBQWE7K0dBQWIsYUFBYTtnSEFBYixhQUFhLFlBSGQsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLGFBQ2hFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQjtnSEFFL0QsYUFBYSxZQUhkLGdCQUFnQixFQUEyQixxQkFBcUI7OzRGQUcvRCxhQUFhO2tCQUp6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixDQUFDO29CQUMzRSxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQztpQkFDNUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaWxlU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3RpbGUtdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRpbGVDb21wb25lbnQgfSBmcm9tICcuL3RpbGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1NreVRpbGVDb21wb25lbnQsIFNreVRpbGVTdW1tYXJ5Q29tcG9uZW50LCBTa3lUaWxlVGl0bGVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU2t5VGlsZUNvbXBvbmVudCwgU2t5VGlsZVN1bW1hcnlDb21wb25lbnQsIFNreVRpbGVUaXRsZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVNb2R1bGUge31cbiJdfQ==","import { Component } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies content to display inside a padded section of a SkyTileContentComponent.\n */\nexport class SkyTileContentSectionComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileContentSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", type: SkyTileContentSectionComponent, isStandalone: true, selector: \"sky-tile-content-section\", ngImport: i0, template: \"<div class=\\\"sky-tile-content-section sky-border-bottom-row\\\">\\n <ng-content />\\n</div>\\n\", styles: [\".sky-tile-content-section:not(.sky-theme-modern *){--sky-override-tile-content-section-border-color: #e2e3e4;--sky-override-tile-content-section-border-style: solid;--sky-override-tile-content-section-first-margin-top: 0;--sky-override-tile-content-section-padding: 15px;--sky-override-tile-content-section-padding-last: 15px}.sky-tile-content-section{border-bottom-color:var(--sky-override-tile-content-section-border-color, var(--sky-color-border-separator-row));border-bottom-style:var(--sky-override-tile-content-section-border-style, var(--sky-border-style-separator-row));padding:var(--sky-override-tile-content-section-padding, var(--sky-comp-tile-section-space-inset-top) var(--sky-comp-tile-section-space-inset-right) var(--sky-comp-tile-section-space-inset-bottom) var(--sky-comp-tile-section-space-inset-left))}:host:first-child .sky-tile-content-section{margin-top:var(--sky-override-tile-content-section-first-margin-top, var(--sky-space-stacked-m))}:host:last-child .sky-tile-content-section{padding-bottom:var(--sky-override-tile-content-section-padding-last, 0);border-bottom:none}\\n\"], dependencies: [{ kind: \"ngmodule\", type: SkyThemeModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileContentSectionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-content-section', imports: [SkyThemeModule], template: \"<div class=\\\"sky-tile-content-section sky-border-bottom-row\\\">\\n <ng-content />\\n</div>\\n\", styles: [\".sky-tile-content-section:not(.sky-theme-modern *){--sky-override-tile-content-section-border-color: #e2e3e4;--sky-override-tile-content-section-border-style: solid;--sky-override-tile-content-section-first-margin-top: 0;--sky-override-tile-content-section-padding: 15px;--sky-override-tile-content-section-padding-last: 15px}.sky-tile-content-section{border-bottom-color:var(--sky-override-tile-content-section-border-color, var(--sky-color-border-separator-row));border-bottom-style:var(--sky-override-tile-content-section-border-style, var(--sky-border-style-separator-row));padding:var(--sky-override-tile-content-section-padding, var(--sky-comp-tile-section-space-inset-top) var(--sky-comp-tile-section-space-inset-right) var(--sky-comp-tile-section-space-inset-bottom) var(--sky-comp-tile-section-space-inset-left))}:host:first-child .sky-tile-content-section{margin-top:var(--sky-override-tile-content-section-first-margin-top, var(--sky-space-stacked-m))}:host:last-child .sky-tile-content-section{padding-bottom:var(--sky-override-tile-content-section-padding-last, 0);border-bottom:none}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWNvbnRlbnQvdGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWNvbnRlbnQvdGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUU5Qzs7R0FFRztBQU9ILE1BQU0sT0FBTyw4QkFBOEI7K0dBQTlCLDhCQUE4QjttR0FBOUIsOEJBQThCLG9GQ1ozQyw0RkFHQSxvb0NET1ksY0FBYzs7NEZBRWIsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLDBCQUEwQixXQUczQixDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG4vKipcbiAqIFNwZWNpZmllcyBjb250ZW50IHRvIGRpc3BsYXkgaW5zaWRlIGEgcGFkZGVkIHNlY3Rpb24gb2YgYSBTa3lUaWxlQ29udGVudENvbXBvbmVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtY29udGVudC1zZWN0aW9uJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGlsZS1jb250ZW50LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUtY29udGVudC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1NreVRoZW1lTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbnRlbnRTZWN0aW9uQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXRpbGUtY29udGVudC1zZWN0aW9uIHNreS1ib3JkZXItYm90dG9tLXJvd1wiPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG4iXX0=","import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Specifies content to display in the tile's body.\n */\nexport class SkyTileContentComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", type: SkyTileContentComponent, isStandalone: true, selector: \"sky-tile-content\", ngImport: i0, template: \"<ng-content />\\n\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileContentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-content', template: \"<ng-content />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1jb250ZW50L3RpbGUtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtY29udGVudC90aWxlLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUM7O0dBRUc7QUFLSCxNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7bUdBQXZCLHVCQUF1Qiw0RUNUcEMsa0JBQ0E7OzRGRFFhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgY29udGVudCB0byBkaXNwbGF5IGluIHRoZSB0aWxlJ3MgYm9keS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAndGlsZS1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbnRlbnRDb21wb25lbnQge31cbiIsIjxuZy1jb250ZW50IC8+XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyTileContentSectionComponent } from './tile-content-section.component';\nimport { SkyTileContentComponent } from './tile-content.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileContentModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentComponent, SkyTileContentSectionComponent], exports: [SkyTileContentComponent, SkyTileContentSectionComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentSectionComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileContentModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n exports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1jb250ZW50L3RpbGUtY29udGVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNbkUsTUFBTSxPQUFPLG9CQUFvQjsrR0FBcEIsb0JBQW9CO2dIQUFwQixvQkFBb0IsWUFIckIsdUJBQXVCLEVBQUUsOEJBQThCLGFBQ3ZELHVCQUF1QixFQUFFLDhCQUE4QjtnSEFFdEQsb0JBQW9CLFlBSEksOEJBQThCOzs0RkFHdEQsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLDhCQUE4QixDQUFDO29CQUNsRSxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSw4QkFBOEIsQ0FBQztpQkFDbkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3RpbGUtY29udGVudC1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1jb250ZW50LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtTa3lUaWxlQ29udGVudENvbXBvbmVudCwgU2t5VGlsZUNvbnRlbnRTZWN0aW9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1NreVRpbGVDb250ZW50Q29tcG9uZW50LCBTa3lUaWxlQ29udGVudFNlY3Rpb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlQ29udGVudE1vZHVsZSB7fVxuIl19","/**\n * The type of message to send to the tile dashboard component.\n */\nexport var SkyTileDashboardMessageType;\n(function (SkyTileDashboardMessageType) {\n /**\n * Expands all tiles within the tile dashboard.\n */\n SkyTileDashboardMessageType[SkyTileDashboardMessageType[\"ExpandAll\"] = 0] = \"ExpandAll\";\n /**\n * Collapses all tiles within the tile dashboard.\n */\n SkyTileDashboardMessageType[SkyTileDashboardMessageType[\"CollapseAll\"] = 1] = \"CollapseAll\";\n})(SkyTileDashboardMessageType || (SkyTileDashboardMessageType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtbWVzc2FnZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC1tZXNzYWdlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSwyQkFVWDtBQVZELFdBQVksMkJBQTJCO0lBQ3JDOztPQUVHO0lBQ0gsdUZBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMkZBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQVV0QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIHR5cGUgb2YgbWVzc2FnZSB0byBzZW5kIHRvIHRoZSB0aWxlIGRhc2hib2FyZCBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBlbnVtIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZSB7XG4gIC8qKlxuICAgKiBFeHBhbmRzIGFsbCB0aWxlcyB3aXRoaW4gdGhlIHRpbGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgRXhwYW5kQWxsID0gMCxcblxuICAvKipcbiAgICogQ29sbGFwc2VzIGFsbCB0aWxlcyB3aXRoaW4gdGhlIHRpbGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgQ29sbGFwc2VBbGwgPSAxLFxufVxuIl19","import { Component, ViewChild, ViewContainerRef, } from '@angular/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\nimport { DragulaModule } from 'ng2-dragula';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../tile-dashboard/tile-dashboard.service\";\nimport * as i2 from \"@skyux/theme\";\nimport * as i3 from \"ng2-dragula\";\nlet columnIdIndex = 0;\n/**\n * @internal\n */\nexport class SkyTileDashboardColumnComponent {\n #dashboardService;\n constructor(injector, dashboardService) {\n this.injector = injector;\n this.#dashboardService = dashboardService;\n this.columnId = `tile-dashboard-column-${++columnIdIndex}`;\n this.bagId = this.#dashboardService.bagId;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardColumnComponent, deps: [{ token: i0.EnvironmentInjector }, { token: i1.SkyTileDashboardService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", type: SkyTileDashboardColumnComponent, isStandalone: true, selector: \"sky-tile-dashboard-column\", viewQueries: [{ propertyName: \"content\", first: true, predicate: [\"content\"], descendants: true, read: ViewContainerRef }], hostDirectives: [{ directive: i2.SkyThemeComponentClassDirective }], ngImport: i0, template: \"<div class=\\\"sky-tile-dashboard-column\\\" [dragula]=\\\"bagId\\\">\\n <div #content></div>\\n</div>\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-column-padding-gt-sm: 0 10px;--sky-override-tile-dashboard-column-padding-xs: 0}:host{display:flex;flex-grow:1;overflow:hidden}:host{padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}@media (min-width: 768px){:host{padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host.sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host-context(.sky-responsive-container-sm).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-md).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg).sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}.sky-tile-dashboard-column{min-height:100px;width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: DragulaModule }, { kind: \"directive\", type: i3.DragulaDirective, selector: \"[dragula]\", inputs: [\"dragula\", \"dragulaModel\"], outputs: [\"dragulaModelChange\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardColumnComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-dashboard-column', imports: [DragulaModule], hostDirectives: [SkyThemeComponentClassDirective], template: \"<div class=\\\"sky-tile-dashboard-column\\\" [dragula]=\\\"bagId\\\">\\n <div #content></div>\\n</div>\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-column-padding-gt-sm: 0 10px;--sky-override-tile-dashboard-column-padding-xs: 0}:host{display:flex;flex-grow:1;overflow:hidden}:host{padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}@media (min-width: 768px){:host{padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host.sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host-context(.sky-responsive-container-sm).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-md).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg).sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}.sky-tile-dashboard-column{min-height:100px;width:100%}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.EnvironmentInjector }, { type: i1.SkyTileDashboardService }], propDecorators: { content: [{\n type: ViewChild,\n args: ['content', {\n read: ViewContainerRef,\n static: false,\n }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQUk1QyxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFFdEI7O0dBRUc7QUFRSCxNQUFNLE9BQU8sK0JBQStCO0lBVzFDLGlCQUFpQixDQUEwQjtJQUUzQyxZQUNTLFFBQTZCLEVBQ3BDLGdCQUF5QztRQURsQyxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUdwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFFMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDNUMsQ0FBQzsrR0F0QlUsK0JBQStCO21HQUEvQiwrQkFBK0Isb0tBTWxDLGdCQUFnQixrR0M5QjFCLGlHQUdBLDBtRkRrQlksYUFBYTs7NEZBR1osK0JBQStCO2tCQVAzQyxTQUFTOytCQUNFLDJCQUEyQixXQUc1QixDQUFDLGFBQWEsQ0FBQyxrQkFDUixDQUFDLCtCQUErQixDQUFDOztzQkFPaEQsU0FBUzt1QkFBQyxTQUFTLEVBQUU7d0JBQ3BCLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLE1BQU0sRUFBRSxLQUFLO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5VGhlbWVDb21wb25lbnRDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IERyYWd1bGFNb2R1bGUgfSBmcm9tICduZzItZHJhZ3VsYSc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQvdGlsZS1kYXNoYm9hcmQuc2VydmljZSc7XG5cbmxldCBjb2x1bW5JZEluZGV4ID0gMDtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtbicsXG4gIHN0eWxlVXJsczogWycuL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0RyYWd1bGFNb2R1bGVdLFxuICBob3N0RGlyZWN0aXZlczogW1NreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50IHtcbiAgcHVibGljIGJhZ0lkOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbHVtbklkOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHtcbiAgICByZWFkOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBjb250ZW50OiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkO1xuXG4gICNkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgZGFzaGJvYXJkU2VydmljZTogU2t5VGlsZURhc2hib2FyZFNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UgPSBkYXNoYm9hcmRTZXJ2aWNlO1xuXG4gICAgdGhpcy5jb2x1bW5JZCA9IGB0aWxlLWRhc2hib2FyZC1jb2x1bW4tJHsrK2NvbHVtbklkSW5kZXh9YDtcblxuICAgIHRoaXMuYmFnSWQgPSB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmJhZ0lkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtblwiIFtkcmFndWxhXT1cImJhZ0lkXCI+XG4gIDxkaXYgI2NvbnRlbnQ+PC9kaXY+XG48L2Rpdj5cbiJdfQ==","import { Component, EventEmitter, Input, Optional, Output, ViewChild, ViewChildren, computed, inject, } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardMessageType } from './tile-dashboard-message-type';\nimport { SkyTileDashboardService } from './tile-dashboard.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./tile-dashboard.service\";\nimport * as i2 from \"@skyux/i18n\";\nimport * as i3 from \"@skyux/theme\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"../tile-dashboard-column/tile-dashboard-column.component\";\n/**\n * Specifies a container to group multiple tiles.\n */\nexport class SkyTileDashboardComponent {\n #breakpoint;\n /**\n * Populates the tile dashboard based on the `SkyTileDashboardConfig` object.\n * @required\n */\n set config(value) {\n if (value && !this.#configSet) {\n this.#_config = value;\n this.#configSet = true;\n this.#checkReady();\n }\n }\n get config() {\n return this.#_config;\n }\n #configSet;\n #dashboardService;\n #ngUnsubscribe;\n #resourcesService;\n #viewReady;\n #viewReadyTimer;\n #_config;\n constructor(dashboardService, resourcesService) {\n this.#breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);\n /**\n * The observable to send commands to the tile dashboard. The commands must respect the\n * `SkyTileDashboardMessage` type.\n */\n this.messageStream = new Subject();\n /**\n * Fires when the tile dashboard changes state and emits a SkyTileDashboardConfig\n * object. This occurs when tiles collapse or expand and when users drag and drop\n * tiles to rearrange them.\n */\n this.configChange = new EventEmitter();\n this.tileMovedReport = '';\n this.layoutClassName = computed(() => {\n const breakpoint = this.#breakpoint();\n let layoutClassName = '';\n if (breakpoint === 'xs' || breakpoint === 'sm') {\n layoutClassName = 'sky-tile-dashboard-single-column';\n }\n else {\n layoutClassName = 'sky-tile-dashboard-multi-column';\n }\n if (breakpoint === 'xs') {\n layoutClassName += ' sky-tile-dashboard-xs';\n }\n else {\n layoutClassName += ' sky-tile-dashboard-gt-xs';\n }\n return layoutClassName;\n }, ...(ngDevMode ? [{ debugName: \"layoutClassName\" }] : []));\n this.#configSet = false;\n this.#ngUnsubscribe = new Subject();\n this.#viewReady = false;\n this.#dashboardService = dashboardService;\n this.#resourcesService = resourcesService;\n this.moveInstructionsId =\n this.#dashboardService.bagId + '-move-instructions';\n this.#dashboardService.configChange.subscribe((config) => {\n this.configChange.emit(config);\n // Update aria live region with tile drag info\n if (config.movedTile && this.#resourcesService) {\n let messageObservable;\n if (this.#breakpoint() === 'xs' || this.#breakpoint() === 'sm') {\n messageObservable = this.#resourcesService.getString('skyux_tile_moved_assistive_text', config.movedTile.tileDescription, '1', '1', config.movedTile.position.toString(), config.layout.singleColumn.tiles.length.toString());\n }\n else {\n messageObservable = this.#resourcesService.getString('skyux_tile_moved_assistive_text', config.movedTile.tileDescription, config.movedTile.column.toString(), config.layout.multiColumn.length.toString(), config.movedTile.position.toString(), config.layout.multiColumn[config.movedTile.column - 1].tiles.length.toString());\n }\n messageObservable.pipe(take(1)).subscribe((message) => {\n this.tileMovedReport = message;\n });\n }\n });\n }\n ngAfterViewInit() {\n this.messageStream\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message) => {\n this.#handleIncomingMessages(message);\n });\n this.#viewReady = true;\n this.#checkReady();\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #checkReady() {\n if (this.#viewReady && this.config && !this.#viewReadyTimer) {\n this.#viewReadyTimer = setTimeout(() => {\n this.#viewReadyTimer = undefined;\n if (this.config && this.columns && this.singleColumn) {\n this.#dashboardService.init(this.config, this.columns, this.singleColumn, this.settingsKey);\n }\n }, 0);\n }\n }\n #handleIncomingMessages(message) {\n switch (message.type) {\n case SkyTileDashboardMessageType.ExpandAll:\n this.#dashboardService.setAllTilesCollapsed(false);\n break;\n case SkyTileDashboardMessageType.CollapseAll:\n this.#dashboardService.setAllTilesCollapsed(true);\n break;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardComponent, deps: [{ token: i1.SkyTileDashboardService }, { token: i2.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: SkyTileDashboardComponent, isStandalone: false, selector: \"sky-tile-dashboard\", inputs: { config: \"config\", messageStream: \"messageStream\", settingsKey: \"settingsKey\" }, outputs: { configChange: \"configChange\" }, host: { properties: { \"class\": \"layoutClassName()\" } }, providers: [SkyTileDashboardService], viewQueries: [{ propertyName: \"singleColumn\", first: true, predicate: [\"singleColumn\"], descendants: true, read: SkyTileDashboardColumnComponent }, { propertyName: \"columns\", predicate: SkyTileDashboardColumnComponent, descendants: true }], hostDirectives: [{ directive: i3.SkyThemeComponentClassDirective }], ngImport: i0, template: \"@if (config) {\\n <span aria-live=\\\"assertive\\\" class=\\\"sky-assistive-text\\\">\\n {{ tileMovedReport }}\\n </span>\\n @for (\\n column of config.layout.multiColumn;\\n track column;\\n let first = $first, last = $last\\n ) {\\n <sky-tile-dashboard-column\\n class=\\\"sky-tile-dashboard-layout-multi\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-dashboard-layout-multi-first': first,\\n 'sky-tile-dashboard-layout-multi-last': last\\n }\\\"\\n [ngStyle]=\\\"{\\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\\n }\\\"\\n />\\n }\\n <sky-tile-dashboard-column\\n #singleColumn\\n class=\\\"sky-tile-dashboard-layout-single\\\"\\n />\\n <span class=\\\"sky-screen-reader-only\\\" [id]=\\\"moveInstructionsId\\\">{{\\n 'skyux_tile_move_instructions' | skyLibResources\\n }}</span>\\n <ng-content />\\n}\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-background-color: #eeeeef;--sky-override-tile-dashboard-column-padding: 0;--sky-override-tile-dashboard-multi-column-padding: 0 10px;--sky-override-tile-dashboard-padding-top: 20px}:host{background-color:var(--sky-override-tile-dashboard-background-color, transparent);display:block;padding:var(--sky-override-tile-dashboard-column-padding, var(--sky-comp-tile-dashboard-space-inset-xs-top) var(--sky-comp-tile-dashboard-space-inset-xs-right) var(--sky-comp-tile-dashboard-space-inset-xs-bottom) var(--sky-comp-tile-dashboard-space-inset-xs-left));margin-bottom:calc(var(--sky-space-stacked-xl) * -1)}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host-context(.sky-tile-dashboard-gt-xs){padding-top:var(--sky-override-tile-dashboard-padding-top, var(--sky-comp-tile-dashboard-space-inset-xs-top))!important}:host{margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}@media (min-width: 768px){:host{margin-left:0;margin-right:0}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:0;margin-right:0}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:var(--sky-override-tile-dashboard-multi-column-padding, var(--sky-comp-tile-dashboard-space-inset-sm-top) var(--sky-comp-tile-dashboard-space-inset-sm-right) var(--sky-comp-tile-dashboard-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-space-inset-sm-left));margin-bottom:0}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-single{display:none}@media screen{.sky-assistive-text{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}}:host-context(.sky-theme-modern .sky-layout-host-blocks){padding:0;margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i4.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"component\", type: i5.SkyTileDashboardColumnComponent, selector: \"sky-tile-dashboard-column\" }, { kind: \"pipe\", type: i2.SkyLibResourcesPipe, name: \"skyLibResources\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-tile-dashboard', providers: [SkyTileDashboardService], host: {\n '[class]': 'layoutClassName()',\n }, standalone: false, hostDirectives: [SkyThemeComponentClassDirective], template: \"@if (config) {\\n <span aria-live=\\\"assertive\\\" class=\\\"sky-assistive-text\\\">\\n {{ tileMovedReport }}\\n </span>\\n @for (\\n column of config.layout.multiColumn;\\n track column;\\n let first = $first, last = $last\\n ) {\\n <sky-tile-dashboard-column\\n class=\\\"sky-tile-dashboard-layout-multi\\\"\\n [ngClass]=\\\"{\\n 'sky-tile-dashboard-layout-multi-first': first,\\n 'sky-tile-dashboard-layout-multi-last': last\\n }\\\"\\n [ngStyle]=\\\"{\\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\\n }\\\"\\n />\\n }\\n <sky-tile-dashboard-column\\n #singleColumn\\n class=\\\"sky-tile-dashboard-layout-single\\\"\\n />\\n <span class=\\\"sky-screen-reader-only\\\" [id]=\\\"moveInstructionsId\\\">{{\\n 'skyux_tile_move_instructions' | skyLibResources\\n }}</span>\\n <ng-content />\\n}\\n\", styles: [\":host.sky-cmp-theme-default{--sky-override-tile-dashboard-background-color: #eeeeef;--sky-override-tile-dashboard-column-padding: 0;--sky-override-tile-dashboard-multi-column-padding: 0 10px;--sky-override-tile-dashboard-padding-top: 20px}:host{background-color:var(--sky-override-tile-dashboard-background-color, transparent);display:block;padding:var(--sky-override-tile-dashboard-column-padding, var(--sky-comp-tile-dashboard-space-inset-xs-top) var(--sky-comp-tile-dashboard-space-inset-xs-right) var(--sky-comp-tile-dashboard-space-inset-xs-bottom) var(--sky-comp-tile-dashboard-space-inset-xs-left));margin-bottom:calc(var(--sky-space-stacked-xl) * -1)}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host-context(.sky-tile-dashboard-gt-xs){padding-top:var(--sky-override-tile-dashboard-padding-top, var(--sky-comp-tile-dashboard-space-inset-xs-top))!important}:host{margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}@media (min-width: 768px){:host{margin-left:0;margin-right:0}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:0;margin-right:0}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:var(--sky-override-tile-dashboard-multi-column-padding, var(--sky-comp-tile-dashboard-space-inset-sm-top) var(--sky-comp-tile-dashboard-space-inset-sm-right) var(--sky-comp-tile-dashboard-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-space-inset-sm-left));margin-bottom:0}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-single{display:none}@media screen{.sky-assistive-text{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}}:host-context(.sky-theme-modern .sky-layout-host-blocks){padding:0;margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}\\n\"] }]\n }], ctorParameters: () => [{ type: i1.SkyTileDashboardService }, { type: i2.SkyLibResourcesService, decorators: [{\n type: Optional\n }] }], propDecorators: { config: [{\n type: Input\n }], messageStream: [{\n type: Input\n }], settingsKey: [{\n type: Input\n }], configChange: [{\n type: Output\n }], columns: [{\n type: ViewChildren,\n args: [SkyTileDashboardColumnComponent]\n }], singleColumn: [{\n type: ViewChild,\n args: ['singleColumn', {\n read: SkyTileDashboardColumnComponent,\n static: false,\n }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFJM0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFFbkU7O0dBRUc7QUFZSCxNQUFNLE9BQU8seUJBQXlCO0lBQzNCLFdBQVcsQ0FFbEI7SUFFRjs7O09BR0c7SUFDSCxJQUNXLE1BQU0sQ0FBQyxLQUF5QztRQUN6RCxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQTRERCxVQUFVLENBQVM7SUFDbkIsaUJBQWlCLENBQTBCO0lBQzNDLGNBQWMsQ0FBdUI7SUFDckMsaUJBQWlCLENBQXFDO0lBQ3RELFVBQVUsQ0FBUztJQUNuQixlQUFlLENBQTRDO0lBQzNELFFBQVEsQ0FBcUM7SUFFN0MsWUFDRSxnQkFBeUMsRUFDN0IsZ0JBQXlDO1FBekY5QyxnQkFBVyxHQUFHLFFBQVEsQ0FDN0IsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsZ0JBQWdCLENBQzlDLENBQUM7UUFtQkY7OztXQUdHO1FBRUksa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztRQVk5RDs7OztXQUlHO1FBRUksaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQVcxRCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUlsQixvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRXRDLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUV6QixJQUFJLFVBQVUsS0FBSyxJQUFJLElBQUksVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUMvQyxlQUFlLEdBQUcsa0NBQWtDLENBQUM7WUFDdkQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGVBQWUsR0FBRyxpQ0FBaUMsQ0FBQztZQUN0RCxDQUFDO1lBRUQsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3hCLGVBQWUsSUFBSSx3QkFBd0IsQ0FBQztZQUM5QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZUFBZSxJQUFJLDJCQUEyQixDQUFDO1lBQ2pELENBQUM7WUFFRCxPQUFPLGVBQWUsQ0FBQztRQUN6QixDQUFDLDJEQUFDLENBQUM7UUFFSCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVyQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBUWpCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsSUFBSSxDQUFDLGtCQUFrQjtZQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDO1FBRXRELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUMzQyxDQUFDLE1BQThCLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUvQiw4Q0FBOEM7WUFDOUMsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLGlCQUFxQyxDQUFDO2dCQUUxQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUMvRCxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUNsRCxpQ0FBaUMsRUFDakMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQ2hDLEdBQUcsRUFDSCxHQUFHLEVBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQ25ELENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQ2xELGlDQUFpQyxFQUNqQyxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFDaEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFDM0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQzVCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FDMUIsQ0FBQztnQkFDSixDQUFDO2dCQUNELGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFlLEVBQUUsRUFBRTtvQkFDNUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGFBQWE7YUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxPQUFnQyxFQUFFLEVBQUU7WUFDOUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7Z0JBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDckQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDekIsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7SUFDSCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsT0FBZ0M7UUFDdEQsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsS0FBSywyQkFBMkIsQ0FBQyxTQUFTO2dCQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25ELE1BQU07WUFFUixLQUFLLDJCQUEyQixDQUFDLFdBQVc7Z0JBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEQsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDOytHQWhMVSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwrUEFQekIsQ0FBQyx1QkFBdUIsQ0FBQyxtSEEwRDVCLCtCQUErQiwwQ0FKekIsK0JBQStCLHFIQzFGL0MsbzBCQTZCQTs7NEZEY2EseUJBQXlCO2tCQVhyQyxTQUFTOytCQUNFLG9CQUFvQixhQUduQixDQUFDLHVCQUF1QixDQUFDLFFBQzlCO3dCQUNKLFNBQVMsRUFBRSxtQkFBbUI7cUJBQy9CLGNBQ1csS0FBSyxrQkFDRCxDQUFDLCtCQUErQixDQUFDOzswQkE0RjlDLFFBQVE7O3NCQWpGVixLQUFLOztzQkFpQkwsS0FBSzs7c0JBVUwsS0FBSzs7c0JBUUwsTUFBTTs7c0JBR04sWUFBWTt1QkFBQywrQkFBK0I7O3NCQUc1QyxTQUFTO3VCQUFDLGNBQWMsRUFBRTt3QkFDekIsSUFBSSxFQUFFLCtCQUErQjt3QkFDckMsTUFBTSxFQUFFLEtBQUs7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFNreU1lZGlhUXVlcnlTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi90aWxlLWRhc2hib2FyZC1jb2x1bW4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkQ29uZmlnIH0gZnJvbSAnLi4vdGlsZS1kYXNoYm9hcmQtY29uZmlnL3RpbGUtZGFzaGJvYXJkLWNvbmZpZyc7XG5cbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1tZXNzYWdlJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtbWVzc2FnZS10eXBlJztcbmltcG9ydCB7IFNreVRpbGVEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC5zZXJ2aWNlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgYSBjb250YWluZXIgdG8gZ3JvdXAgbXVsdGlwbGUgdGlsZXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10aWxlLWRhc2hib2FyZCcsXG4gIHN0eWxlVXJsczogWycuL3RpbGUtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90aWxlLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1NreVRpbGVEYXNoYm9hcmRTZXJ2aWNlXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogJ2xheW91dENsYXNzTmFtZSgpJyxcbiAgfSxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGhvc3REaXJlY3RpdmVzOiBbU2t5VGhlbWVDb21wb25lbnRDbGFzc0RpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVEYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICByZWFkb25seSAjYnJlYWtwb2ludCA9IHRvU2lnbmFsKFxuICAgIGluamVjdChTa3lNZWRpYVF1ZXJ5U2VydmljZSkuYnJlYWtwb2ludENoYW5nZSxcbiAgKTtcblxuICAvKipcbiAgICogUG9wdWxhdGVzIHRoZSB0aWxlIGRhc2hib2FyZCBiYXNlZCBvbiB0aGUgYFNreVRpbGVEYXNoYm9hcmRDb25maWdgIG9iamVjdC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogU2t5VGlsZURhc2hib2FyZENvbmZpZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAmJiAhdGhpcy4jY29uZmlnU2V0KSB7XG4gICAgICB0aGlzLiNfY29uZmlnID0gdmFsdWU7XG4gICAgICB0aGlzLiNjb25maWdTZXQgPSB0cnVlO1xuICAgICAgdGhpcy4jY2hlY2tSZWFkeSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29uZmlnKCk6IFNreVRpbGVEYXNoYm9hcmRDb25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvYnNlcnZhYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8gdGhlIHRpbGUgZGFzaGJvYXJkLiBUaGUgY29tbWFuZHMgbXVzdCByZXNwZWN0IHRoZVxuICAgKiBgU2t5VGlsZURhc2hib2FyZE1lc3NhZ2VgIHR5cGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVzc2FnZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGtleSBmb3IgdGhlIFVJIENvbmZpZyBTZXJ2aWNlIHRvIHJldHJpZXZlIHN0b3JlZCBzZXR0aW5nc1xuICAgKiBmcm9tIGEgZGF0YWJhc2UuIFRoZSBVSSBDb25maWcgU2VydmljZSBzYXZlcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB1c2Vyc1xuICAgKiB0byBwcmVzZXJ2ZSB0aGUgbGF5b3V0IGFuZCBjb2xsYXBzZWQgc3RhdGUgb2YgdGlsZSBkYXNoYm9hcmRzLiBUaGUgVUkgQ29uZmlnIFNlcnZpY2UgcmVsaWVzIG9uIGBpZGAgdmFsdWVzIGZyb20gdGhlIGBjb25maWdgIHByb3BlcnR5IHRvIG1haW50YWluIHVzZXIgc2V0dGluZ3MuIEZvciBtb3JlIGluZm9ybWF0aW9uXG4gICAqIGFib3V0IHRoZSBVSSBDb25maWcgU2VydmljZSwgc2VlIHRoZVxuICAgKiBbc3RpY2t5IHNldHRpbmdzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vZGV2ZWxvcC9zdGlja3ktc2V0dGluZ3MpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldHRpbmdzS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUgZGFzaGJvYXJkIGNoYW5nZXMgc3RhdGUgYW5kIGVtaXRzIGEgU2t5VGlsZURhc2hib2FyZENvbmZpZ1xuICAgKiBvYmplY3QuIFRoaXMgb2NjdXJzIHdoZW4gdGlsZXMgY29sbGFwc2Ugb3IgZXhwYW5kIGFuZCB3aGVuIHVzZXJzIGRyYWcgYW5kIGRyb3BcbiAgICogdGlsZXMgdG8gcmVhcnJhbmdlIHRoZW0uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGNvbmZpZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5VGlsZURhc2hib2FyZENvbmZpZz4oKTtcblxuICBAVmlld0NoaWxkcmVuKFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQpXG4gIHB1YmxpYyBjb2x1bW5zOiBRdWVyeUxpc3Q8U2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2luZ2xlQ29sdW1uJywge1xuICAgIHJlYWQ6IFNreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnQsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIHNpbmdsZUNvbHVtbjogU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgdGlsZU1vdmVkUmVwb3J0ID0gJyc7XG5cbiAgcHVibGljIG1vdmVJbnN0cnVjdGlvbnNJZDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBsYXlvdXRDbGFzc05hbWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYnJlYWtwb2ludCA9IHRoaXMuI2JyZWFrcG9pbnQoKTtcblxuICAgIGxldCBsYXlvdXRDbGFzc05hbWUgPSAnJztcblxuICAgIGlmIChicmVha3BvaW50ID09PSAneHMnIHx8IGJyZWFrcG9pbnQgPT09ICdzbScpIHtcbiAgICAgIGxheW91dENsYXNzTmFtZSA9ICdza3ktdGlsZS1kYXNoYm9hcmQtc2luZ2xlLWNvbHVtbic7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxheW91dENsYXNzTmFtZSA9ICdza3ktdGlsZS1kYXNoYm9hcmQtbXVsdGktY29sdW1uJztcbiAgICB9XG5cbiAgICBpZiAoYnJlYWtwb2ludCA9PT0gJ3hzJykge1xuICAgICAgbGF5b3V0Q2xhc3NOYW1lICs9ICcgc2t5LXRpbGUtZGFzaGJvYXJkLXhzJztcbiAgICB9IGVsc2Uge1xuICAgICAgbGF5b3V0Q2xhc3NOYW1lICs9ICcgc2t5LXRpbGUtZGFzaGJvYXJkLWd0LXhzJztcbiAgICB9XG5cbiAgICByZXR1cm4gbGF5b3V0Q2xhc3NOYW1lO1xuICB9KTtcblxuICAjY29uZmlnU2V0ID0gZmFsc2U7XG4gICNkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI3ZpZXdSZWFkeSA9IGZhbHNlO1xuICAjdmlld1JlYWR5VGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICAjX2NvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZXNTZXJ2aWNlPzogU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZSA9IGRhc2hib2FyZFNlcnZpY2U7XG4gICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZSA9IHJlc291cmNlc1NlcnZpY2U7XG4gICAgdGhpcy5tb3ZlSW5zdHJ1Y3Rpb25zSWQgPVxuICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5iYWdJZCArICctbW92ZS1pbnN0cnVjdGlvbnMnO1xuXG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5jb25maWdDaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgKGNvbmZpZzogU2t5VGlsZURhc2hib2FyZENvbmZpZykgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ0NoYW5nZS5lbWl0KGNvbmZpZyk7XG5cbiAgICAgICAgLy8gVXBkYXRlIGFyaWEgbGl2ZSByZWdpb24gd2l0aCB0aWxlIGRyYWcgaW5mb1xuICAgICAgICBpZiAoY29uZmlnLm1vdmVkVGlsZSAmJiB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlKSB7XG4gICAgICAgICAgbGV0IG1lc3NhZ2VPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICAgICAgICBpZiAodGhpcy4jYnJlYWtwb2ludCgpID09PSAneHMnIHx8IHRoaXMuI2JyZWFrcG9pbnQoKSA9PT0gJ3NtJykge1xuICAgICAgICAgICAgbWVzc2FnZU9ic2VydmFibGUgPSB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZyhcbiAgICAgICAgICAgICAgJ3NreXV4X3RpbGVfbW92ZWRfYXNzaXN0aXZlX3RleHQnLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnRpbGVEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgJzEnLFxuICAgICAgICAgICAgICAnMScsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUucG9zaXRpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgY29uZmlnLmxheW91dC5zaW5nbGVDb2x1bW4udGlsZXMubGVuZ3RoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZSA9IHRoaXMuI3Jlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nKFxuICAgICAgICAgICAgICAnc2t5dXhfdGlsZV9tb3ZlZF9hc3Npc3RpdmVfdGV4dCcsXG4gICAgICAgICAgICAgIGNvbmZpZy5tb3ZlZFRpbGUudGlsZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLmNvbHVtbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aC50b1N0cmluZygpLFxuICAgICAgICAgICAgICBjb25maWcubW92ZWRUaWxlLnBvc2l0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXQubXVsdGlDb2x1bW5bXG4gICAgICAgICAgICAgICAgY29uZmlnLm1vdmVkVGlsZS5jb2x1bW4gLSAxXG4gICAgICAgICAgICAgIF0udGlsZXMubGVuZ3RoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtZXNzYWdlT2JzZXJ2YWJsZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRpbGVNb3ZlZFJlcG9ydCA9IG1lc3NhZ2U7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLiNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiN2aWV3UmVhZHkgPSB0cnVlO1xuICAgIHRoaXMuI2NoZWNrUmVhZHkoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjY2hlY2tSZWFkeSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jdmlld1JlYWR5ICYmIHRoaXMuY29uZmlnICYmICF0aGlzLiN2aWV3UmVhZHlUaW1lcikge1xuICAgICAgdGhpcy4jdmlld1JlYWR5VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy4jdmlld1JlYWR5VGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZyAmJiB0aGlzLmNvbHVtbnMgJiYgdGhpcy5zaW5nbGVDb2x1bW4pIHtcbiAgICAgICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmluaXQoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyxcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgICAgICAgIHRoaXMuc2luZ2xlQ29sdW1uLFxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nc0tleSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICAjaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlOiBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZSk6IHZvaWQge1xuICAgIHN3aXRjaCAobWVzc2FnZS50eXBlKSB7XG4gICAgICBjYXNlIFNreVRpbGVEYXNoYm9hcmRNZXNzYWdlVHlwZS5FeHBhbmRBbGw6XG4gICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0QWxsVGlsZXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lUaWxlRGFzaGJvYXJkTWVzc2FnZVR5cGUuQ29sbGFwc2VBbGw6XG4gICAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0QWxsVGlsZXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChjb25maWcpIHtcbiAgPHNwYW4gYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCIgY2xhc3M9XCJza3ktYXNzaXN0aXZlLXRleHRcIj5cbiAgICB7eyB0aWxlTW92ZWRSZXBvcnQgfX1cbiAgPC9zcGFuPlxuICBAZm9yIChcbiAgICBjb2x1bW4gb2YgY29uZmlnLmxheW91dC5tdWx0aUNvbHVtbjtcbiAgICB0cmFjayBjb2x1bW47XG4gICAgbGV0IGZpcnN0ID0gJGZpcnN0LCBsYXN0ID0gJGxhc3RcbiAgKSB7XG4gICAgPHNreS10aWxlLWRhc2hib2FyZC1jb2x1bW5cbiAgICAgIGNsYXNzPVwic2t5LXRpbGUtZGFzaGJvYXJkLWxheW91dC1tdWx0aVwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktdGlsZS1kYXNoYm9hcmQtbGF5b3V0LW11bHRpLWZpcnN0JzogZmlyc3QsXG4gICAgICAgICdza3ktdGlsZS1kYXNoYm9hcmQtbGF5b3V0LW11bHRpLWxhc3QnOiBsYXN0XG4gICAgICB9XCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2ZsZXgtYmFzaXMnOiAxMDAgLyBjb25maWcubGF5b3V0Lm11bHRpQ29sdW1uLmxlbmd0aCArICclJ1xuICAgICAgfVwiXG4gICAgLz5cbiAgfVxuICA8c2t5LXRpbGUtZGFzaGJvYXJkLWNvbHVtblxuICAgICNzaW5nbGVDb2x1bW5cbiAgICBjbGFzcz1cInNreS10aWxlLWRhc2hib2FyZC1sYXlvdXQtc2luZ2xlXCJcbiAgLz5cbiAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCIgW2lkXT1cIm1vdmVJbnN0cnVjdGlvbnNJZFwiPnt7XG4gICAgJ3NreXV4X3RpbGVfbW92ZV9pbnN0cnVjdGlvbnMnIHwgc2t5TGliUmVzb3VyY2VzXG4gIH19PC9zcGFuPlxuICA8bmctY29udGVudCAvPlxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DragulaService } from 'ng2-dragula';\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardComponent } from './tile-dashboard.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileDashboardModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardModule, declarations: [SkyTileDashboardComponent], imports: [CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule], exports: [SkyTileDashboardComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardModule, providers: [DragulaService], imports: [CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [SkyTileDashboardComponent],\n providers: [DragulaService],\n imports: [\n CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule,\n ],\n exports: [SkyTileDashboardComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlLWRhc2hib2FyZC90aWxlLWRhc2hib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUUzRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFZdkUsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO2dIQUF0QixzQkFBc0IsaUJBVGxCLHlCQUF5QixhQUd0QyxZQUFZO1lBQ1osK0JBQStCO1lBQy9CLHVCQUF1QixhQUVmLHlCQUF5QjtnSEFFeEIsc0JBQXNCLGFBUnRCLENBQUMsY0FBYyxDQUFDLFlBRXpCLFlBQVk7WUFDWiwrQkFBK0I7WUFDL0IsdUJBQXVCOzs0RkFJZCxzQkFBc0I7a0JBVmxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDM0IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osK0JBQStCO3dCQUMvQix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEcmFndWxhU2VydmljZSB9IGZyb20gJ25nMi1kcmFndWxhJztcblxuaW1wb3J0IHsgU2t5VGlsZXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LXRpbGVzLXJlc291cmNlcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi90aWxlLWRhc2hib2FyZC1jb2x1bW4uY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5VGlsZURhc2hib2FyZENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW0RyYWd1bGFTZXJ2aWNlXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50LFxuICAgIFNreVRpbGVzUmVzb3VyY2VzTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU2t5VGlsZURhc2hib2FyZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVEYXNoYm9hcmRNb2R1bGUge31cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { SkyTileDashboardColumnComponent } from './tile-dashboard-column.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyTileDashboardColumnModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardColumnModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardColumnModule, imports: [SkyTileDashboardColumnComponent], exports: [SkyTileDashboardColumnComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardColumnModule, imports: [SkyTileDashboardColumnComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTileDashboardColumnModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SkyTileDashboardColumnComponent],\n exports: [SkyTileDashboardColumnComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtY29sdW1uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy9zcmMvbGliL21vZHVsZXMvdGlsZXMvdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFNcEYsTUFBTSxPQUFPLDRCQUE0QjsrR0FBNUIsNEJBQTRCO2dIQUE1Qiw0QkFBNEIsWUFIN0IsK0JBQStCLGFBQy9CLCtCQUErQjtnSEFFOUIsNEJBQTRCLFlBSDdCLCtCQUErQjs7NEZBRzlCLDRCQUE0QjtrQkFKeEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtY29sdW1uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtTa3lUaWxlRGFzaGJvYXJkQ29sdW1uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1NreVRpbGVEYXNoYm9hcmRDb2x1bW5Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kdWxlIHt9XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyTileContentModule } from './tile-content/tile-content.module';\nimport { SkyTileDashboardColumnModule } from './tile-dashboard-column/tile-dashboard-column.module';\nimport { SkyTileDashboardModule } from './tile-dashboard/tile-dashboard.module';\nimport { SkyTileModule } from './tile/tile.module';\nimport * as i0 from \"@angular/core\";\nexport class SkyTilesModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTilesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTilesModule, exports: [SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTilesModule, imports: [SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyTilesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [\n SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3NyYy9saWIvbW9kdWxlcy90aWxlcy90aWxlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNwRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBVW5ELE1BQU0sT0FBTyxjQUFjOytHQUFkLGNBQWM7Z0hBQWQsY0FBYyxZQU52QixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLDRCQUE0QjtZQUM1QixzQkFBc0I7Z0hBR2IsY0FBYyxZQU52QixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLDRCQUE0QjtZQUM1QixzQkFBc0I7OzRGQUdiLGNBQWM7a0JBUjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYiw0QkFBNEI7d0JBQzVCLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudE1vZHVsZSB9IGZyb20gJy4vdGlsZS1jb250ZW50L3RpbGUtY29udGVudC5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZENvbHVtbk1vZHVsZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQtY29sdW1uL3RpbGUtZGFzaGJvYXJkLWNvbHVtbi5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZE1vZHVsZSB9IGZyb20gJy4vdGlsZS1kYXNoYm9hcmQvdGlsZS1kYXNoYm9hcmQubW9kdWxlJztcbmltcG9ydCB7IFNreVRpbGVNb2R1bGUgfSBmcm9tICcuL3RpbGUvdGlsZS5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbXG4gICAgU2t5VGlsZUNvbnRlbnRNb2R1bGUsXG4gICAgU2t5VGlsZU1vZHVsZSxcbiAgICBTa3lUaWxlRGFzaGJvYXJkQ29sdW1uTW9kdWxlLFxuICAgIFNreVRpbGVEYXNoYm9hcmRNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbGVzTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtdGlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL3NreXV4LXRpbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.SkyTileDashboardService","i2","i4","i6","i8","i3","i5.SkyTileDashboardColumnComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-tiles.mjs","sources":["../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-summary.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-summary.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-title-id-token.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-title.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-title.component.html","../../../../../libs/components/tiles/src/lib/modules/shared/sky-tiles-resources.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.service.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content-section.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content-section.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard-message-type.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tiles.module.ts","../../../../../libs/components/tiles/src/skyux-tiles.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n/**\n * Specifies content to display in the tile's summary.\n */\n@Component({\n selector: 'sky-tile-summary',\n templateUrl: 'tile-summary.component.html',\n})\nexport class SkyTileSummaryComponent {}\n","<ng-content />\n","import { InjectionToken } from '@angular/core';\n\nexport const SKY_TILE_TITLE_ID = new InjectionToken<string>(\n 'SKY_TILE_TITLE_ID',\n);\n","import { Component, inject } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\n\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\n\n/**\n * Specifies content to display in the tile's title.\n */\n@Component({\n selector: 'sky-tile-title',\n templateUrl: './tile-title.component.html',\n styleUrls: ['./tile-title.component.scss'],\n imports: [SkyTrimModule],\n})\nexport class SkyTileTitleComponent {\n protected readonly tileTitleId = inject(SKY_TILE_TITLE_ID);\n}\n","<h2 class=\"sky-tile-title sky-font-heading-2\">\n <span skyTrim [id]=\"tileTitleId\"><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\"></ng-content\n ></span>\n</h2>\n","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-tiles' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_tile_expand: { message: 'Expand or collapse {0}' },\n skyux_tile_expand_default: { message: 'Expand or collapse' },\n skyux_tile_help: { message: '{0} help' },\n skyux_tile_help_default: { message: 'Help' },\n skyux_tile_settings: { message: '{0} settings' },\n skyux_tile_settings_default: { message: 'Settings' },\n skyux_tile_move: { message: 'Move {0}' },\n skyux_tile_move_default: { message: 'Move' },\n skyux_tile_move_instructions: {\n message:\n \"When focus is placed on a tile's move button, use the arrow keys to move it. The up and down keys change its position within a column. The left and right keys move it between columns.\",\n },\n skyux_tile_moved_assistive_text: {\n message:\n '{0} moved. Current column: {1} of {2}. Current position in column: {3} of {4}',\n },\n },\n 'FR-CA': {\n skyux_tile_expand: { message: 'Agrandir ou réduire {0}' },\n skyux_tile_expand_default: { message: 'Agrandir ou réduire' },\n skyux_tile_help: { message: '{0} aide' },\n skyux_tile_help_default: { message: 'Aide' },\n skyux_tile_settings: { message: '{0} paramètres' },\n skyux_tile_settings_default: { message: 'Paramètres' },\n skyux_tile_move: { message: 'Déplacer {0}' },\n skyux_tile_move_default: { message: 'Déplacer' },\n skyux_tile_move_instructions: {\n message:\n 'Lorsque le curseur est placé sur le bouton déplacer d’une mosaïque, utilisez les touches fléchées pour la déplacer. Les flèches vers le haut et vers le bas modifie la position dans une colonne. Les flèches de gauche et de droite la déplace d’une colonne à l’autre.',\n },\n skyux_tile_moved_assistive_text: {\n message:\n '{0} déplacé(e). Colonne actuelle : {1} de {2}. Position actuelle dans la colonne : {3} de {4}',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyTilesResourcesModule {}\n","import {\n ComponentRef,\n DestroyRef,\n EventEmitter,\n Injectable,\n Output,\n QueryList,\n RendererFactory2,\n computed,\n effect,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport {\n SkyDynamicComponentService,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\n\nimport { DragulaService } from 'ng2-dragula';\nimport { take } from 'rxjs/operators';\n\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardConfig } from '../tile-dashboard-config/tile-dashboard-config';\nimport { SkyTileDashboardConfigLayoutColumn } from '../tile-dashboard-config/tile-dashboard-config-layout-column';\nimport { SkyTileDashboardConfigLayoutTile } from '../tile-dashboard-config/tile-dashboard-config-layout-tile';\nimport { SkyTileDashboardConfigTile } from '../tile-dashboard-config/tile-dashboard-config-tile';\nimport { SkyTileComponent } from '../tile/tile.component';\n\nimport { SkyTileDashboardColumnMode } from './tile-dashboard-column-mode';\n\nconst ATTR_TILE_ID = '_sky-tile-dashboard-tile-id';\n\nlet bagIdIndex = 0;\n\n@Injectable()\nexport class SkyTileDashboardService {\n /**\n * @internal\n */\n public bagId: string;\n\n /**\n * @internal\n */\n public configChange = new EventEmitter<SkyTileDashboardConfig>();\n\n /**\n * Fires when the tile dashboard's initialization is complete.\n */\n @Output()\n public dashboardInitialized = new EventEmitter<void>();\n\n #columns: QueryList<SkyTileDashboardColumnComponent> | undefined;\n #config: SkyTileDashboardConfig | undefined;\n #singleColumn: SkyTileDashboardColumnComponent | undefined;\n #settingsKey: string | undefined;\n #tileComponents: ComponentRef<any>[] | undefined;\n\n readonly #breakpoint = toSignal(\n inject(SkyMediaQueryService).breakpointChange,\n );\n\n readonly #destroyRef = inject(DestroyRef);\n readonly #dragulaService = inject(DragulaService);\n readonly #dynamicComponentService = inject(SkyDynamicComponentService);\n readonly #renderer = inject(RendererFactory2).createRenderer(undefined, null);\n readonly #uiConfigService = inject(SkyUIConfigService);\n\n readonly #mode = computed<SkyTileDashboardColumnMode>(() => {\n const breakpoint = this.#breakpoint();\n\n return breakpoint === 'xs' || breakpoint === 'sm' ? 'single' : 'multi';\n });\n\n constructor() {\n effect(() => {\n const mode = this.#mode();\n this.changeColumnMode(mode);\n });\n\n this.bagId = `sky-tile-dashboard-bag-${++bagIdIndex}`;\n\n this.#initDragula();\n }\n\n /**\n * @internal\n */\n public init(\n config: SkyTileDashboardConfig,\n columns?: QueryList<SkyTileDashboardColumnComponent>,\n singleColumn?: SkyTileDashboardColumnComponent,\n settingsKey?: string,\n ): void {\n // Clone this so changes to the config object outside of this class don't modify\n // the config used inside and vice versa.\n this.#config = Object.assign({}, config) as SkyTileDashboardConfig;\n\n // Verify that all tiles are accounted for in the layout.\n const tileIds = [\n ...new Set([\n ...this.#config.layout.multiColumn.flatMap((column) =>\n column.tiles.map(({ id }) => id),\n ),\n ...this.#config.layout.singleColumn.tiles.map(({ id }) => id),\n ]),\n ];\n this.#checkForNewTiles(this.#config, tileIds);\n\n if (settingsKey) {\n this.#settingsKey = settingsKey;\n\n this.#uiConfigService\n .getConfig(settingsKey, this.#config)\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n next: (value: any) => {\n if (this.#config && value.persisted) {\n this.#config.layout = value.layout;\n this.#checkForNewTiles(this.#config, value.tileIds);\n this.configChange.emit(this.#config);\n }\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n error: () => {\n // Config setting key doesn't exist or other config service error\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n });\n } else {\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n }\n }\n\n /**\n * Adds a new tile to the tile dashboard.\n * @param tile Specifies the tile configuration.\n * @param component Specifies the tile component to add.\n */\n public addTileComponent(\n tile: SkyTileDashboardConfigLayoutTile,\n component: ComponentRef<any>,\n ): void {\n this.#tileComponents = this.#tileComponents || [];\n\n this.#tileComponents.push(component);\n\n component.location.nativeElement.setAttribute(ATTR_TILE_ID, tile.id);\n }\n\n /**\n * Checks whether a specified tile is collapsed.\n * @param tile Specifies the tile component to check.\n */\n public tileIsCollapsed(tile: SkyTileComponent): boolean {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n\n if (tileConfig) {\n return tileConfig.isCollapsed;\n }\n\n return false;\n }\n\n /**\n * Sets the collapsed state of all tiles.\n * @param isCollapsed Indicates whether tiles are collapsed.\n */\n public setAllTilesCollapsed(isCollapsed: boolean): void {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n for (const tile of column.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n for (const tile of this.#config.layout.singleColumn.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n\n this.configChange.emit(this.#config);\n }\n\n /**\n * Sets the collapsed state of a specified tile.\n * @param tile Specifies the tile component.\n * @param isCollapsed Indicates whether the tile is collapsed.\n */\n public setTileCollapsed(\n tile: SkyTileComponent | undefined,\n isCollapsed: boolean,\n ): void {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n\n if (tileConfig) {\n tileConfig.isCollapsed = isCollapsed;\n\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n\n this.configChange.emit(this.#config);\n }\n }\n\n /**\n * @internal\n */\n public getTileComponentType(\n layoutTile: SkyTileDashboardConfigLayoutTile | undefined,\n ): any {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile.componentType;\n }\n }\n }\n\n return undefined;\n }\n\n /**\n * @internal\n */\n public changeColumnMode(mode: SkyTileDashboardColumnMode): void {\n if (this.#config) {\n if (mode === 'single') {\n this.#moveTilesToSingleColumn();\n } else {\n this.#moveTilesToMultiColumn();\n }\n }\n }\n\n /**\n * @internal\n */\n public getTileComponent(tileId: string): ComponentRef<any> | undefined {\n return this.#tileComponents?.find(\n (tileComponent) =>\n tileComponent.location.nativeElement.getAttribute(ATTR_TILE_ID) ===\n tileId,\n );\n }\n\n /**\n * @internal\n */\n public moveTileOnKeyDown(\n tileCmp: SkyTileComponent,\n direction: 'up' | 'down' | 'left' | 'right',\n tileDescription: string,\n ): void {\n if (this.#config) {\n const mode = this.#mode();\n const tileId = this.#getTileId(tileCmp);\n const tile = this.#findTile(tileId);\n\n let column: SkyTileDashboardConfigLayoutColumn | undefined;\n let colIndex = 0;\n\n if (mode === 'single') {\n column = this.#config.layout.singleColumn;\n } else if (this.#config.layout.multiColumn) {\n colIndex = this.#findTileColumnIndex(\n this.#config.layout.multiColumn,\n tileId,\n );\n column = this.#config.layout.multiColumn[colIndex];\n }\n\n if (column && tile && tileId) {\n if (direction === 'left' || direction === 'right') {\n if (mode === 'multi') {\n this.#moveTileArrowLeftRight(\n tile,\n tileDescription,\n direction,\n colIndex,\n column,\n this.#config.layout.multiColumn,\n );\n }\n } else {\n // Get the column element\n let columnEl: Element | undefined;\n if (mode === 'single') {\n columnEl = this.#getColumnEl(this.#singleColumn);\n } else {\n columnEl = this.#getColumnEl(this.#columns?.toArray()[colIndex]);\n }\n this.#moveTileArrowUpDown(\n tile,\n tileDescription,\n direction,\n colIndex,\n column,\n columnEl,\n );\n }\n }\n }\n }\n\n #moveTileArrowLeftRight(\n tile: SkyTileDashboardConfigLayoutTile,\n tileDescription: string,\n direction: 'left' | 'right',\n colIndex: number,\n column: SkyTileDashboardConfigLayoutColumn,\n multiColumn: SkyTileDashboardConfigLayoutColumn[],\n ): void {\n const operator = direction === 'left' ? -1 : 1;\n const newColumn = multiColumn[colIndex + operator];\n\n if (newColumn) {\n // Move the tile to the end of the new column\n newColumn.tiles.push(tile);\n column.tiles = column.tiles.filter((item) => item !== tile);\n this.#moveTilesToColumn(this.#columns?.toArray()[colIndex + operator], [\n tile,\n ]);\n\n // Report the change in configuration\n this.#emitTileMove(\n tileDescription,\n tile,\n colIndex + operator + 1,\n newColumn.tiles.length,\n );\n }\n }\n\n #moveTileArrowUpDown(\n tile: SkyTileDashboardConfigLayoutTile,\n tileDescription: string,\n direction: 'up' | 'down',\n colIndex: number,\n column: SkyTileDashboardConfigLayoutColumn,\n columnEl: Element | undefined,\n ): void {\n const operator = direction === 'up' ? -1 : 1;\n const curIndex = column.tiles.findIndex((value) => value.id === tile.id);\n const tileComponentInstance = this.getTileComponent(tile.id);\n\n if (tileComponentInstance && column.tiles[curIndex + operator]) {\n const temp = column.tiles[curIndex + operator];\n column.tiles[curIndex + operator] = tile;\n column.tiles[curIndex] = temp;\n\n if (columnEl) {\n // Move the tile element in the document\n if (curIndex + operator === column.tiles.length - 1) {\n this.#renderer.appendChild(\n columnEl,\n tileComponentInstance.location.nativeElement,\n );\n } else {\n this.#renderer.insertBefore(\n columnEl,\n tileComponentInstance.location.nativeElement,\n this.getTileComponent(column.tiles[curIndex + operator + 1].id)\n ?.location.nativeElement,\n );\n }\n }\n\n // Report the change in configuration\n this.#emitTileMove(\n tileDescription,\n tile,\n colIndex + 1,\n curIndex + operator + 1,\n );\n }\n }\n\n #emitTileMove(\n tileDescription: string,\n tile: SkyTileDashboardConfigLayoutTile,\n newColumnIndex: number,\n newRowIndex: number,\n ): void {\n const reportConfig = this.#getConfigForUIState();\n if (reportConfig) {\n if (this.#settingsKey) {\n this.#setUserConfig({ ...reportConfig });\n }\n reportConfig.movedTile = {\n tileDescription: this.#getTileDescription(tileDescription, tile),\n column: newColumnIndex,\n position: newRowIndex,\n };\n this.configChange.emit(reportConfig);\n }\n }\n\n #getTileDescription(\n tileDescription: string,\n tile: SkyTileDashboardConfigLayoutTile,\n ): string {\n return tileDescription || tile.id;\n }\n\n #getTileId(tile: SkyTileComponent | undefined): string | undefined {\n if (tile) {\n let el = tile.elementRef.nativeElement;\n let tileId: string;\n\n while (el) {\n tileId = el.getAttribute(ATTR_TILE_ID);\n\n if (tileId) {\n return tileId;\n }\n\n el = el.parentElement;\n }\n }\n\n return undefined;\n }\n\n #getTileOrRemoveFromLayout(\n layoutTile: SkyTileDashboardConfigLayoutTile,\n ): SkyTileDashboardConfigTile | undefined {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile;\n }\n }\n\n // If the layout tile was not found in the list of tiles, it was removed since last the user updated settings\n if (this.#config?.layout.singleColumn) {\n this.#config.layout.singleColumn.tiles =\n this.#config.layout.singleColumn.tiles.filter(\n (elem) => elem.id !== layoutTile.id,\n );\n }\n\n this.#config?.layout.multiColumn.forEach((elem) => {\n elem.tiles = elem.tiles.filter((res) => res.id !== layoutTile.id);\n });\n }\n\n return undefined;\n }\n\n #checkReadyAndLoadTiles(\n columns: QueryList<SkyTileDashboardColumnComponent> | undefined,\n singleColumn: SkyTileDashboardColumnComponent | undefined,\n ): void {\n this.#columns = columns;\n this.#singleColumn = singleColumn;\n if (this.#config && this.#columns) {\n this.#loadTiles(this.#config, this.#columns.toArray());\n this.dashboardInitialized.emit();\n }\n }\n\n #loadTiles(\n config: SkyTileDashboardConfig,\n columns: SkyTileDashboardColumnComponent[],\n ): void {\n const layout = config.layout;\n\n if (this.#mode() === 'single') {\n for (const tile of layout.singleColumn.tiles) {\n this.#loadTileIntoColumn(this.#singleColumn, tile);\n }\n } else {\n for (let i = 0, n = layout.multiColumn.length; i < n; i++) {\n const column = columns[i];\n for (const tile of layout.multiColumn[i].tiles) {\n this.#loadTileIntoColumn(column, tile);\n }\n }\n }\n }\n\n #loadTileIntoColumn(\n column: SkyTileDashboardColumnComponent | undefined,\n layoutTile: SkyTileDashboardConfigLayoutTile,\n ): void {\n if (column) {\n const tile = this.#getTileOrRemoveFromLayout(layoutTile);\n\n if (tile && this.#dynamicComponentService) {\n const componentType = tile.componentType;\n const providers = tile.providers ?? [];\n\n const componentRef = this.#dynamicComponentService.createComponent(\n componentType,\n {\n providers: providers,\n viewContainerRef: column.content,\n environmentInjector: column.injector,\n className: 'sky-tile-parent',\n },\n );\n\n this.addTileComponent(layoutTile, componentRef);\n\n // Make sure the component is marked for changes in case the parent component uses\n // the OnPush change detection strategy.\n componentRef.changeDetectorRef.markForCheck();\n }\n }\n }\n\n #moveTilesToSingleColumn(): void {\n this.#moveTilesToColumn(\n this.#singleColumn,\n this.#config?.layout.singleColumn.tiles,\n );\n }\n\n #moveTilesToMultiColumn(): void {\n let layoutColumns: SkyTileDashboardConfigLayoutColumn[] = [];\n if (this.#config) {\n layoutColumns = this.#config.layout.multiColumn;\n }\n const columns: SkyTileDashboardColumnComponent[] =\n this.#columns?.toArray() ?? [];\n\n for (let i = 0, n = layoutColumns.length; i < n; i++) {\n this.#moveTilesToColumn(columns[i], layoutColumns[i].tiles);\n }\n }\n\n #moveTilesToColumn(\n column: SkyTileDashboardColumnComponent | undefined,\n layoutTiles: SkyTileDashboardConfigLayoutTile[] | undefined,\n ): void {\n const columnEl = this.#getColumnEl(column);\n if (columnEl && layoutTiles) {\n for (const layoutTile of layoutTiles) {\n const tileComponentInstance = this.getTileComponent(layoutTile.id);\n if (tileComponentInstance) {\n this.#renderer.appendChild(\n columnEl,\n tileComponentInstance.location.nativeElement,\n );\n }\n }\n }\n }\n\n #getConfigForUIState(): SkyTileDashboardConfig | undefined {\n if (this.#config) {\n this.#config = {\n tiles: this.#config.tiles,\n layout: {\n singleColumn: this.#getSingleColumnLayoutForUIState(this.#config),\n multiColumn: this.#getMultiColumnLayoutForUIState(this.#config),\n },\n };\n }\n\n return this.#config;\n }\n\n #getSingleColumnLayoutForUIState(\n config: SkyTileDashboardConfig,\n ): SkyTileDashboardConfigLayoutColumn {\n if (this.#mode() === 'single') {\n return {\n tiles: this.#getTilesInEl(this.#getColumnEl(this.#singleColumn)),\n };\n }\n\n return config.layout.singleColumn;\n }\n\n #getMultiColumnLayoutForUIState(\n config: SkyTileDashboardConfig,\n ): SkyTileDashboardConfigLayoutColumn[] {\n if (this.#mode() === 'multi') {\n const layoutColumns: SkyTileDashboardConfigLayoutColumn[] = [];\n let columns: SkyTileDashboardColumnComponent[] = [];\n if (this.#columns) {\n columns = this.#columns?.toArray();\n }\n\n for (const column of columns) {\n if (column !== this.#singleColumn) {\n const layoutColumn: SkyTileDashboardConfigLayoutColumn = {\n tiles: this.#getTilesInEl(this.#getColumnEl(column)),\n };\n\n layoutColumns.push(layoutColumn);\n }\n }\n\n return layoutColumns;\n }\n\n return config.layout.multiColumn;\n }\n\n #getTilesInEl(el: Element | undefined): SkyTileDashboardConfigLayoutTile[] {\n const tileEls = el?.querySelectorAll('[' + ATTR_TILE_ID + ']');\n const layoutTiles: SkyTileDashboardConfigLayoutTile[] = [];\n\n if (tileEls) {\n for (let i = 0, n = tileEls.length; i < n; i++) {\n const tileEl = tileEls[i];\n const tileId = tileEl.getAttribute(ATTR_TILE_ID);\n const tile = this.#findTile(tileId);\n\n if (tile) {\n layoutTiles.push(tile);\n }\n }\n }\n\n return layoutTiles;\n }\n\n #initDragula(): void {\n this.#dragulaService.createGroup(this.bagId, {\n moves: (el, container, handle) => {\n const target = el?.querySelector('.sky-tile-grab-handle');\n return !!target && target.contains(handle!);\n },\n });\n\n this.#dragulaService\n .drop(this.bagId)\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe(() => {\n const config = this.#getConfigForUIState();\n\n if (config) {\n if (this.#settingsKey) {\n this.#setUserConfig(config);\n }\n\n this.configChange.emit(config);\n }\n });\n }\n\n #getColumnEl(\n column: SkyTileDashboardColumnComponent | undefined,\n ): Element | undefined {\n return column?.content?.element.nativeElement.parentNode;\n }\n\n #findTile(\n tileId: string | undefined | null,\n ): SkyTileDashboardConfigLayoutTile | undefined {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n if (column.tiles) {\n for (const tile of column.tiles) {\n if (tile.id === tileId) {\n return tile;\n }\n }\n }\n }\n }\n\n return undefined;\n }\n\n #findTileColumnIndex(\n multiColumn: SkyTileDashboardConfigLayoutColumn[],\n tileId: string | undefined,\n ): number {\n return multiColumn.findIndex(\n (col) => !!col.tiles?.find((tile) => tile.id === tileId),\n );\n }\n\n #setUserConfig(config?: SkyTileDashboardConfig): void {\n if (config && this.#settingsKey)\n this.#uiConfigService\n .setConfig(this.#settingsKey, {\n layout: config.layout,\n persisted: true,\n tileIds: config.tiles.map((elem) => elem.id),\n })\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n error: (err) => {\n console.warn('Could not save tile dashboard settings.');\n console.warn(err);\n },\n });\n }\n\n #checkForNewTiles(\n config: SkyTileDashboardConfig,\n oldTileIds: string[],\n ): boolean {\n // Get a list of tiles that are in the config's default list but not in the user's settings\n const newTiles = config.tiles.filter(({ id }) => !oldTileIds.includes(id));\n let hasChange = newTiles.length > 0;\n\n const multiColumn: SkyTileDashboardConfigLayoutColumn[] | undefined =\n config.layout.multiColumn;\n const singleColumn: SkyTileDashboardConfigLayoutColumn | undefined =\n config.layout.singleColumn;\n\n // Append new tiles to the end of the layouts\n if (multiColumn) {\n const multiColumnTileIds = multiColumn.flatMap((column) =>\n column.tiles.map((tile) => tile.id),\n );\n const newMultiColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter(\n (tile) => !multiColumnTileIds.includes(tile.id),\n ),\n ]),\n ] as SkyTileDashboardConfigTile[];\n newMultiColumnTiles.forEach((elem) => {\n const smallest = Math.min(\n ...multiColumn.map((col) => col.tiles.length),\n );\n const locationToAdd = multiColumn.findIndex(\n (col) => col.tiles.length === smallest,\n );\n multiColumn[locationToAdd].tiles.push({\n id: elem.id,\n isCollapsed: false,\n });\n });\n }\n\n if (singleColumn) {\n const singleColumnTileIds = singleColumn.tiles.map((tile) => tile.id);\n const newSingleColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter(\n (tile) => !singleColumnTileIds.includes(tile.id),\n ),\n ]),\n ] as SkyTileDashboardConfigTile[];\n newSingleColumnTiles.forEach((elem) => {\n singleColumn.tiles.push({ id: elem.id, isCollapsed: false });\n });\n }\n\n singleColumn?.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n\n multiColumn?.forEach((column) => {\n column.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n });\n\n return hasChange;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { skyAnimationSlide } from '@skyux/animations';\nimport { SkyIdModule, SkyIdService, SkyLogService } from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyChevronModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SkyTileDashboardService } from '../tile-dashboard/tile-dashboard.service';\n\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\nimport { SkyTileTitleComponent } from './tile-title.component';\n\n/**\n * Provides a common look-and-feel for tab content.\n */\n@Component({\n selector: 'sky-tile',\n styleUrls: ['./tile.component.scss'],\n templateUrl: './tile.component.html',\n animations: [skyAnimationSlide],\n imports: [\n CommonModule,\n SkyChevronModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyThemeModule,\n SkyTilesResourcesModule,\n ],\n providers: [\n {\n provide: SKY_TILE_TITLE_ID,\n useFactory(): string {\n const idService = inject(SkyIdService);\n return idService.generateId();\n },\n },\n ],\n})\nexport class SkyTileComponent implements OnChanges, OnDestroy {\n /**\n * A help key that identifies the global help content to display. When specified along with `tileName`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline) button is\n * added to the tile header. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help) as configured by the application.\n * This property only applies when `tileName` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The content of the help popover. When specified along with `tileName`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the tile header. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `tileName` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * Whether to display a settings button in the tile header. To display the\n * button, you must also listen for the `settingsClick` event.\n * @default true\n */\n @Input()\n public showSettings = true;\n\n /**\n * Whether to display a help button in the tile header. To display the\n * button, you must also listen for the `helpClick` event.\n * @default true\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n @Input()\n public showHelp = true;\n\n /**\n * The human-readable name for the tile that is available to the tile controls for multiple purposes, such as accessibility and instrumentation. The component uses the name to construct ARIA labels for the help, expand/collapse, settings, and drag handle buttons to [support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For example, if the tile name is \"Constituents,\" the help input's `aria-label` is \"Constituents help\" and the drag handle's `aria-label` is \"Move Constituents.\" For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n */\n @Input()\n public tileName: string | undefined;\n\n /**\n * Fires when users select the settings button in the tile header. The settings\n * button only appears when the `showSettings` property is set to `true`.\n */\n @Output()\n public settingsClick = new EventEmitter();\n\n /**\n * Fires when the tile's collapsed state changes. Returns `true` when the tile\n * collapses and `false` when it expands.\n */\n @Output()\n public isCollapsedChange = new EventEmitter<boolean>();\n\n /**\n * Fires when users select the help button in the tile header. The help\n * button only appears when the `showHelp` property is set to `true`.\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n @Output()\n public helpClick = new EventEmitter();\n\n public get isCollapsed(): boolean {\n if (this.#dashboardService) {\n const configCollapsedState = this.#dashboardService.tileIsCollapsed(this);\n this.#_isCollapsed = configCollapsedState;\n }\n\n return this.#_isCollapsed;\n }\n\n /**\n * Whether the tile is in a collapsed state.\n * @default false\n */\n @Input()\n public set isCollapsed(value: boolean | undefined) {\n this.#_isCollapsed = !!value;\n\n if (this.#dashboardService) {\n this.#dashboardService.setTileCollapsed(this, this.#_isCollapsed);\n }\n\n this.isCollapsedChange.emit(this.#_isCollapsed);\n }\n\n public ariaDescribedBy: string | undefined;\n\n public isInDashboardColumn = false;\n\n @ViewChild('grabHandle', {\n read: ElementRef,\n static: false,\n })\n public grabHandle: ElementRef | undefined;\n\n @ViewChild('titleContainer', {\n read: ElementRef,\n static: false,\n })\n public title: ElementRef | undefined;\n\n @ContentChild(SkyTileTitleComponent, { read: ElementRef })\n protected titleRef: ElementRef | undefined;\n\n #changeDetector: ChangeDetectorRef;\n #dashboardService: SkyTileDashboardService | undefined;\n #ngUnsubscribe = new Subject<void>();\n #_isCollapsed = false;\n\n protected tileTitleId = inject(SKY_TILE_TITLE_ID);\n\n readonly #logSvc = inject(SkyLogService);\n\n constructor(\n public elementRef: ElementRef,\n changeDetector: ChangeDetectorRef,\n @Optional() dashboardService?: SkyTileDashboardService,\n ) {\n this.#changeDetector = changeDetector;\n this.#dashboardService = dashboardService;\n this.isInDashboardColumn = !!this.#dashboardService;\n\n if (this.#dashboardService) {\n this.ariaDescribedBy = `${this.#dashboardService.bagId}-move-instructions`;\n\n /**\n * This subscription ensures that if any values which come in from the dashboard service are\n * updated that the component will update if the tile's parent component utilizes OnPush\n * change detection.\n */\n this.#dashboardService.configChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['showHelp']?.firstChange) {\n this.#logSvc.deprecated('SkyTileComponent.showHelp', {\n deprecationMajorVersion: 10,\n replacementRecommendation:\n 'Set the `helpKey` or `helpPopoverContent` inputs instead.',\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public settingsButtonClicked(): void {\n this.settingsClick.emit(undefined);\n }\n\n /**\n * @deprecated\n */\n public helpButtonClicked(): void {\n this.helpClick.emit(undefined);\n }\n\n public get hasSettings(): boolean {\n return this.settingsClick.observed && this.showSettings;\n }\n\n /**\n * @deprecated\n */\n public get hasHelp(): boolean {\n return this.helpClick.observed && this.showHelp;\n }\n\n public titleClick(evt: MouseEvent): void {\n const targetEl = evt.target as HTMLElement | null;\n\n // Don't expand/collapse if the help inline button is clicked.\n if (targetEl?.closest('sky-help-inline') === null) {\n this.isCollapsed = !this.isCollapsed;\n }\n }\n\n public chevronDirectionChange(direction: string): void {\n this.isCollapsed = direction === 'down';\n }\n\n protected moveTile(event: KeyboardEvent): void {\n if (\n ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key) &&\n this.#dashboardService\n ) {\n const direction = event.key.toLowerCase().replace('arrow', '') as\n | 'up'\n | 'down'\n | 'left'\n | 'right';\n this.#dashboardService.moveTileOnKeyDown(\n this,\n direction,\n this.title?.nativeElement.innerText,\n );\n this.#focusHandle();\n }\n }\n\n #focusHandle(): void {\n this.grabHandle?.nativeElement.focus();\n }\n}\n","<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick($event)\">\n <div #titleContainer class=\"sky-tile-header-title\">\n <ng-content select=\"sky-tile-title\" />\n @if (tileName && (helpKey || helpPopoverContent)) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"tileName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n </span>\n }\n </div>\n <div class=\"sky-tile-summary sky-font-heading-2\">\n <ng-content select=\"sky-tile-summary\" />\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n @if (hasHelp) {\n <button\n class=\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n </ng-container>\n <sky-chevron\n class=\"sky-tile-tools-control\"\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n (directionChange)=\"chevronDirectionChange($event)\"\n />\n @if (hasSettings) {\n <button\n class=\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon iconName=\"settings\" />\n </button>\n }\n @if (isInDashboardColumn) {\n <button\n #grabHandle\n class=\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n >\n <sky-icon iconName=\"re-order-dots-vertical\" iconSize=\"s\" />\n </button>\n }\n </div>\n </div>\n </header>\n <div\n #tileContent=\"skyId\"\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [attr.aria-labelledby]=\"!tileName && titleRef ? tileTitleId : undefined\"\n [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n >\n <ng-content select=\"sky-tile-content\" />\n </div>\n</section>\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileSummaryComponent } from './tile-summary.component';\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport { SkyTileComponent } from './tile.component';\n\n@NgModule({\n imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n})\nexport class SkyTileModule {}\n","import { Component } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\n/**\n * Specifies content to display inside a padded section of a SkyTileContentComponent.\n */\n@Component({\n selector: 'sky-tile-content-section',\n styleUrls: ['./tile-content-section.component.scss'],\n templateUrl: './tile-content-section.component.html',\n imports: [SkyThemeModule],\n})\nexport class SkyTileContentSectionComponent {}\n","<div class=\"sky-tile-content-section sky-border-bottom-row\">\n <ng-content />\n</div>\n","import { Component } from '@angular/core';\n\n/**\n * Specifies content to display in the tile's body.\n */\n@Component({\n selector: 'sky-tile-content',\n templateUrl: 'tile-content.component.html',\n})\nexport class SkyTileContentComponent {}\n","<ng-content />\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileContentSectionComponent } from './tile-content-section.component';\nimport { SkyTileContentComponent } from './tile-content.component';\n\n@NgModule({\n imports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n exports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n})\nexport class SkyTileContentModule {}\n","/**\n * The type of message to send to the tile dashboard component.\n */\nexport enum SkyTileDashboardMessageType {\n /**\n * Expands all tiles within the tile dashboard.\n */\n ExpandAll = 0,\n\n /**\n * Collapses all tiles within the tile dashboard.\n */\n CollapseAll = 1,\n}\n","import {\n Component,\n EnvironmentInjector,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { DragulaModule } from 'ng2-dragula';\n\nimport { SkyTileDashboardService } from '../tile-dashboard/tile-dashboard.service';\n\nlet columnIdIndex = 0;\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-tile-dashboard-column',\n styleUrls: ['./tile-dashboard-column.component.scss'],\n templateUrl: './tile-dashboard-column.component.html',\n imports: [DragulaModule],\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyTileDashboardColumnComponent {\n public bagId: string;\n\n public columnId: string;\n\n @ViewChild('content', {\n read: ViewContainerRef,\n static: false,\n })\n public content: ViewContainerRef | undefined;\n\n #dashboardService: SkyTileDashboardService;\n\n constructor(\n public injector: EnvironmentInjector,\n dashboardService: SkyTileDashboardService,\n ) {\n this.#dashboardService = dashboardService;\n\n this.columnId = `tile-dashboard-column-${++columnIdIndex}`;\n\n this.bagId = this.#dashboardService.bagId;\n }\n}\n","<div class=\"sky-tile-dashboard-column\" [dragula]=\"bagId\">\n <div #content></div>\n</div>\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n computed,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { Observable, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardConfig } from '../tile-dashboard-config/tile-dashboard-config';\n\nimport { SkyTileDashboardMessage } from './tile-dashboard-message';\nimport { SkyTileDashboardMessageType } from './tile-dashboard-message-type';\nimport { SkyTileDashboardService } from './tile-dashboard.service';\n\n/**\n * Specifies a container to group multiple tiles.\n */\n@Component({\n selector: 'sky-tile-dashboard',\n styleUrls: ['./tile-dashboard.component.scss'],\n templateUrl: './tile-dashboard.component.html',\n providers: [SkyTileDashboardService],\n host: {\n '[class]': 'layoutClassName()',\n },\n standalone: false,\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyTileDashboardComponent implements AfterViewInit, OnDestroy {\n readonly #breakpoint = toSignal(\n inject(SkyMediaQueryService).breakpointChange,\n );\n\n /**\n * Populates the tile dashboard based on the `SkyTileDashboardConfig` object.\n * @required\n */\n @Input()\n public set config(value: SkyTileDashboardConfig | undefined) {\n if (value && !this.#configSet) {\n this.#_config = value;\n this.#configSet = true;\n this.#checkReady();\n }\n }\n\n public get config(): SkyTileDashboardConfig | undefined {\n return this.#_config;\n }\n\n /**\n * The observable to send commands to the tile dashboard. The commands must respect the\n * `SkyTileDashboardMessage` type.\n */\n @Input()\n public messageStream = new Subject<SkyTileDashboardMessage>();\n\n /**\n * The unique key for the UI Config Service to retrieve stored settings\n * from a database. The UI Config Service saves configuration settings for users\n * to preserve the layout and collapsed state of tile dashboards. The UI Config Service relies on `id` values from the `config` property to maintain user settings. For more information\n * about the UI Config Service, see the\n * [sticky settings documentation](https://developer.blackbaud.com/skyux/learn/develop/sticky-settings).\n */\n @Input()\n public settingsKey: string | undefined;\n\n /**\n * Fires when the tile dashboard changes state and emits a SkyTileDashboardConfig\n * object. This occurs when tiles collapse or expand and when users drag and drop\n * tiles to rearrange them.\n */\n @Output()\n public configChange = new EventEmitter<SkyTileDashboardConfig>();\n\n @ViewChildren(SkyTileDashboardColumnComponent)\n public columns: QueryList<SkyTileDashboardColumnComponent> | undefined;\n\n @ViewChild('singleColumn', {\n read: SkyTileDashboardColumnComponent,\n static: false,\n })\n public singleColumn: SkyTileDashboardColumnComponent | undefined;\n\n public tileMovedReport = '';\n\n public moveInstructionsId: string;\n\n protected layoutClassName = computed(() => {\n const breakpoint = this.#breakpoint();\n\n let layoutClassName = '';\n\n if (breakpoint === 'xs' || breakpoint === 'sm') {\n layoutClassName = 'sky-tile-dashboard-single-column';\n } else {\n layoutClassName = 'sky-tile-dashboard-multi-column';\n }\n\n if (breakpoint === 'xs') {\n layoutClassName += ' sky-tile-dashboard-xs';\n } else {\n layoutClassName += ' sky-tile-dashboard-gt-xs';\n }\n\n return layoutClassName;\n });\n\n #configSet = false;\n #dashboardService: SkyTileDashboardService;\n #ngUnsubscribe = new Subject<void>();\n #resourcesService: SkyLibResourcesService | undefined;\n #viewReady = false;\n #viewReadyTimer: ReturnType<typeof setTimeout> | undefined;\n #_config: SkyTileDashboardConfig | undefined;\n\n constructor(\n dashboardService: SkyTileDashboardService,\n @Optional() resourcesService?: SkyLibResourcesService,\n ) {\n this.#dashboardService = dashboardService;\n this.#resourcesService = resourcesService;\n this.moveInstructionsId =\n this.#dashboardService.bagId + '-move-instructions';\n\n this.#dashboardService.configChange.subscribe(\n (config: SkyTileDashboardConfig) => {\n this.configChange.emit(config);\n\n // Update aria live region with tile drag info\n if (config.movedTile && this.#resourcesService) {\n let messageObservable: Observable<string>;\n\n if (this.#breakpoint() === 'xs' || this.#breakpoint() === 'sm') {\n messageObservable = this.#resourcesService.getString(\n 'skyux_tile_moved_assistive_text',\n config.movedTile.tileDescription,\n '1',\n '1',\n config.movedTile.position.toString(),\n config.layout.singleColumn.tiles.length.toString(),\n );\n } else {\n messageObservable = this.#resourcesService.getString(\n 'skyux_tile_moved_assistive_text',\n config.movedTile.tileDescription,\n config.movedTile.column.toString(),\n config.layout.multiColumn.length.toString(),\n config.movedTile.position.toString(),\n config.layout.multiColumn[\n config.movedTile.column - 1\n ].tiles.length.toString(),\n );\n }\n messageObservable.pipe(take(1)).subscribe((message: string) => {\n this.tileMovedReport = message;\n });\n }\n },\n );\n }\n\n public ngAfterViewInit(): void {\n this.messageStream\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyTileDashboardMessage) => {\n this.#handleIncomingMessages(message);\n });\n\n this.#viewReady = true;\n this.#checkReady();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #checkReady(): void {\n if (this.#viewReady && this.config && !this.#viewReadyTimer) {\n this.#viewReadyTimer = setTimeout(() => {\n this.#viewReadyTimer = undefined;\n if (this.config && this.columns && this.singleColumn) {\n this.#dashboardService.init(\n this.config,\n this.columns,\n this.singleColumn,\n this.settingsKey,\n );\n }\n }, 0);\n }\n }\n\n #handleIncomingMessages(message: SkyTileDashboardMessage): void {\n switch (message.type) {\n case SkyTileDashboardMessageType.ExpandAll:\n this.#dashboardService.setAllTilesCollapsed(false);\n break;\n\n case SkyTileDashboardMessageType.CollapseAll:\n this.#dashboardService.setAllTilesCollapsed(true);\n break;\n }\n }\n}\n","@if (config) {\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n @for (\n column of config.layout.multiColumn;\n track column;\n let first = $first, last = $last\n ) {\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-multi\"\n [ngClass]=\"{\n 'sky-tile-dashboard-layout-multi-first': first,\n 'sky-tile-dashboard-layout-multi-last': last\n }\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n />\n }\n <sky-tile-dashboard-column\n #singleColumn\n class=\"sky-tile-dashboard-layout-single\"\n />\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DragulaService } from 'ng2-dragula';\n\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\n\nimport { SkyTileDashboardComponent } from './tile-dashboard.component';\n\n@NgModule({\n declarations: [SkyTileDashboardComponent],\n providers: [DragulaService],\n imports: [\n CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule,\n ],\n exports: [SkyTileDashboardComponent],\n})\nexport class SkyTileDashboardModule {}\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileDashboardColumnComponent } from './tile-dashboard-column.component';\n\n@NgModule({\n imports: [SkyTileDashboardColumnComponent],\n exports: [SkyTileDashboardColumnComponent],\n})\nexport class SkyTileDashboardColumnModule {}\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileContentModule } from './tile-content/tile-content.module';\nimport { SkyTileDashboardColumnModule } from './tile-dashboard-column/tile-dashboard-column.module';\nimport { SkyTileDashboardModule } from './tile-dashboard/tile-dashboard.module';\nimport { SkyTileModule } from './tile/tile.module';\n\n@NgModule({\n exports: [\n SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule,\n ],\n})\nexport class SkyTilesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyTileDashboardService","i2","i4","i6","i8","i3","i5.SkyTileDashboardColumnComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/tiles",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.12.0",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"@angular/cdk": "^20.2.14",
|
|
20
20
|
"@angular/common": "^20.3.15",
|
|
21
21
|
"@angular/core": "^20.3.15",
|
|
22
|
-
"@skyux/animations": "13.
|
|
23
|
-
"@skyux/core": "13.
|
|
24
|
-
"@skyux/help-inline": "13.
|
|
25
|
-
"@skyux/i18n": "13.
|
|
26
|
-
"@skyux/icon": "13.
|
|
27
|
-
"@skyux/indicators": "13.
|
|
28
|
-
"@skyux/theme": "13.
|
|
22
|
+
"@skyux/animations": "13.12.0",
|
|
23
|
+
"@skyux/core": "13.12.0",
|
|
24
|
+
"@skyux/help-inline": "13.12.0",
|
|
25
|
+
"@skyux/i18n": "13.12.0",
|
|
26
|
+
"@skyux/icon": "13.12.0",
|
|
27
|
+
"@skyux/indicators": "13.12.0",
|
|
28
|
+
"@skyux/theme": "13.12.0"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@types/dragula": "2.1.36",
|